@tt-a1i/hive 0.6.0-alpha.2 → 0.6.0-alpha.3
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.
- package/CHANGELOG.md +22 -0
- package/README.md +16 -9
- package/README.zh-CN.md +9 -12
- package/SECURITY.md +15 -3
- package/dist/src/cli/hive.d.ts +2 -0
- package/dist/src/cli/hive.js +49 -13
- package/dist/src/cli/hive.js.map +1 -1
- package/dist/src/cli/team.js +72 -9
- package/dist/src/cli/team.js.map +1 -1
- package/dist/src/server/agent-launch-cache.js +2 -0
- package/dist/src/server/agent-launch-cache.js.map +1 -1
- package/dist/src/server/agent-manager-support.js +88 -9
- package/dist/src/server/agent-manager-support.js.map +1 -1
- package/dist/src/server/agent-manager.js +0 -2
- package/dist/src/server/agent-manager.js.map +1 -1
- package/dist/src/server/agent-run-bootstrap.js +2 -0
- package/dist/src/server/agent-run-bootstrap.js.map +1 -1
- package/dist/src/server/agent-run-starter.js +2 -2
- package/dist/src/server/agent-run-starter.js.map +1 -1
- package/dist/src/server/agent-run-store.d.ts +5 -0
- package/dist/src/server/agent-run-store.js +18 -3
- package/dist/src/server/agent-run-store.js.map +1 -1
- package/dist/src/server/agent-runtime-close.js +3 -5
- package/dist/src/server/agent-runtime-close.js.map +1 -1
- package/dist/src/server/agent-runtime-contract.d.ts +4 -1
- package/dist/src/server/agent-runtime-ports.d.ts +1 -0
- package/dist/src/server/agent-runtime.js +22 -3
- package/dist/src/server/agent-runtime.js.map +1 -1
- package/dist/src/server/agent-startup-instructions.js +2 -2
- package/dist/src/server/agent-startup-instructions.js.map +1 -1
- package/dist/src/server/agent-stdin-dispatcher.d.ts +4 -1
- package/dist/src/server/agent-stdin-dispatcher.js +12 -3
- package/dist/src/server/agent-stdin-dispatcher.js.map +1 -1
- package/dist/src/server/app.js +2 -0
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/command-preset-defaults.js +1 -1
- package/dist/src/server/command-preset-defaults.js.map +1 -1
- package/dist/src/server/dispatch-ledger-store.d.ts +7 -1
- package/dist/src/server/dispatch-ledger-store.js +39 -6
- package/dist/src/server/dispatch-ledger-store.js.map +1 -1
- package/dist/src/server/hive-team-guidance.js +3 -2
- package/dist/src/server/hive-team-guidance.js.map +1 -1
- package/dist/src/server/http-errors.d.ts +6 -0
- package/dist/src/server/http-errors.js +12 -0
- package/dist/src/server/http-errors.js.map +1 -1
- package/dist/src/server/local-request-guard.d.ts +3 -0
- package/dist/src/server/local-request-guard.js +42 -0
- package/dist/src/server/local-request-guard.js.map +1 -0
- package/dist/src/server/message-log-store.d.ts +7 -2
- package/dist/src/server/message-log-store.js +10 -6
- package/dist/src/server/message-log-store.js.map +1 -1
- package/dist/src/server/orchestrator-launch.d.ts +7 -5
- package/dist/src/server/orchestrator-launch.js +28 -6
- package/dist/src/server/orchestrator-launch.js.map +1 -1
- package/dist/src/server/post-start-input-writer.d.ts +1 -1
- package/dist/src/server/post-start-input-writer.js +15 -4
- package/dist/src/server/post-start-input-writer.js.map +1 -1
- package/dist/src/server/recovery-summary.js +4 -2
- package/dist/src/server/recovery-summary.js.map +1 -1
- package/dist/src/server/route-helpers.d.ts +3 -1
- package/dist/src/server/route-helpers.js +16 -2
- package/dist/src/server/route-helpers.js.map +1 -1
- package/dist/src/server/route-types.d.ts +3 -0
- package/dist/src/server/routes-settings.js +25 -11
- package/dist/src/server/routes-settings.js.map +1 -1
- package/dist/src/server/routes-team.js +64 -12
- package/dist/src/server/routes-team.js.map +1 -1
- package/dist/src/server/routes-workspaces.js +9 -3
- package/dist/src/server/routes-workspaces.js.map +1 -1
- package/dist/src/server/runtime-message-builders.d.ts +1 -0
- package/dist/src/server/runtime-message-builders.js +9 -0
- package/dist/src/server/runtime-message-builders.js.map +1 -1
- package/dist/src/server/runtime-store-helpers.js +2 -1
- package/dist/src/server/runtime-store-helpers.js.map +1 -1
- package/dist/src/server/runtime-store.d.ts +3 -2
- package/dist/src/server/runtime-store.js +1 -0
- package/dist/src/server/runtime-store.js.map +1 -1
- package/dist/src/server/sqlite-schema-v15.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v15.js +74 -0
- package/dist/src/server/sqlite-schema-v15.js.map +1 -0
- package/dist/src/server/sqlite-schema-v16.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v16.js +7 -0
- package/dist/src/server/sqlite-schema-v16.js.map +1 -0
- package/dist/src/server/sqlite-schema-v17.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v17.js +16 -0
- package/dist/src/server/sqlite-schema-v17.js.map +1 -0
- package/dist/src/server/sqlite-schema-v18.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v18.js +7 -0
- package/dist/src/server/sqlite-schema-v18.js.map +1 -0
- package/dist/src/server/sqlite-schema.d.ts +1 -1
- package/dist/src/server/sqlite-schema.js +23 -1
- package/dist/src/server/sqlite-schema.js.map +1 -1
- package/dist/src/server/startup-command-parser.d.ts +5 -0
- package/dist/src/server/startup-command-parser.js +38 -0
- package/dist/src/server/startup-command-parser.js.map +1 -0
- package/dist/src/server/tasks-websocket-server.js +5 -0
- package/dist/src/server/tasks-websocket-server.js.map +1 -1
- package/dist/src/server/team-authz.d.ts +1 -1
- package/dist/src/server/team-authz.js +2 -2
- package/dist/src/server/team-authz.js.map +1 -1
- package/dist/src/server/team-operations.d.ts +23 -2
- package/dist/src/server/team-operations.js +50 -9
- package/dist/src/server/team-operations.js.map +1 -1
- package/dist/src/server/terminal-ws-server.js +5 -0
- package/dist/src/server/terminal-ws-server.js.map +1 -1
- package/dist/src/server/workspace-path-validation.d.ts +1 -0
- package/dist/src/server/workspace-path-validation.js +27 -0
- package/dist/src/server/workspace-path-validation.js.map +1 -0
- package/dist/src/server/workspace-store-support.js +1 -1
- package/dist/src/server/workspace-store-support.js.map +1 -1
- package/dist/src/server/workspace-store.js +13 -8
- package/dist/src/server/workspace-store.js.map +1 -1
- package/package.json +2 -1
- package/web/dist/assets/index-CIlOwuEZ.js +70 -0
- package/web/dist/assets/index-eyw1Uar8.css +1 -0
- package/web/dist/index.html +4 -4
- package/web/dist/assets/index-BGhNuRRP.css +0 -1
- package/web/dist/assets/index-D8sy4JED.js +0 -75
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
All notable user-facing changes will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.6.0-alpha.3 - 2026-05-14
|
|
6
|
+
|
|
7
|
+
Runtime and team-protocol hardening after public-preview dogfooding.
|
|
8
|
+
|
|
9
|
+
- Added `team status` for worker check-ins when there is no open dispatch.
|
|
10
|
+
`team report` now requires an open dispatch and returns 409 otherwise, so
|
|
11
|
+
standby/status updates no longer accidentally close or pollute task history.
|
|
12
|
+
- Custom workspace startup commands can still run through the user's shell
|
|
13
|
+
while retaining the selected preset's interactive behavior and session-id
|
|
14
|
+
capture metadata. This supports alias-based resume commands without losing
|
|
15
|
+
Hive's CLI-specific terminal handling.
|
|
16
|
+
- Worker and orchestrator startup instructions now distinguish assigned work
|
|
17
|
+
(`team report`) from no-dispatch status updates (`team status`).
|
|
18
|
+
- OpenCode no longer receives Claude's `--dangerously-skip-permissions` flag;
|
|
19
|
+
its permissions are documented as config-driven through `opencode.json`.
|
|
20
|
+
- Add Worker now avoids unavailable CLI presets by default and surfaces
|
|
21
|
+
backend creation errors instead of collapsing them into generic UI failure.
|
|
22
|
+
- Local runtime endpoints now reject non-local Host/Origin requests and cap
|
|
23
|
+
JSON request bodies at 1 MiB.
|
|
24
|
+
- Workspace creation validates local paths more defensively, and README /
|
|
25
|
+
SECURITY / release notes were updated for the current npm release path.
|
|
26
|
+
|
|
5
27
|
## 0.6.0-alpha.2 - 2026-05-14
|
|
6
28
|
|
|
7
29
|
Follow-up to alpha.1 — corrects a handful of inconsistencies and tightens the
|
package/README.md
CHANGED
|
@@ -48,10 +48,11 @@ Install and start Hive:
|
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
50
|
npm install -g @tt-a1i/hive
|
|
51
|
-
hive
|
|
51
|
+
hive
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
Open the printed local URL, usually `http://127.0.0.1:
|
|
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.
|
|
55
56
|
|
|
56
57
|
First-run flow:
|
|
57
58
|
|
|
@@ -102,7 +103,7 @@ Three details matter:
|
|
|
102
103
|
| --- | --- | --- | --- |
|
|
103
104
|
| Claude Code | `claude` | `--dangerously-skip-permissions`, `--permission-mode=bypassPermissions` | `--resume <session_id>` |
|
|
104
105
|
| Codex | `codex` | `--dangerously-bypass-approvals-and-sandbox` | `resume <session_id>` |
|
|
105
|
-
| OpenCode | `opencode` |
|
|
106
|
+
| OpenCode | `opencode` | Config-driven in `~/.config/opencode/opencode.json` | `--session <session_id>` |
|
|
106
107
|
| Gemini | `gemini` | `--yolo` | `--resume <session_id>` |
|
|
107
108
|
| Custom | Any executable | User configured | User configured |
|
|
108
109
|
|
|
@@ -131,8 +132,9 @@ coding model. It coordinates tools you already run locally.
|
|
|
131
132
|
| Linux | Tier 1 | CI verified. Native folder picking expects `zenity`; manual path entry works without it. |
|
|
132
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. |
|
|
133
134
|
|
|
134
|
-
All platforms require Node.js 22+. Hive depends on
|
|
135
|
-
|
|
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.
|
|
136
138
|
|
|
137
139
|
## Safety Model
|
|
138
140
|
|
|
@@ -149,6 +151,8 @@ Hive is a local development tool, not a hosted service.
|
|
|
149
151
|
agent process environments, and not intended as internet-facing credentials.
|
|
150
152
|
- Hive has no multi-user authentication boundary. Treat same-machine processes
|
|
151
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.
|
|
152
156
|
|
|
153
157
|
Read [SECURITY.md](SECURITY.md) before using Hive with sensitive repositories.
|
|
154
158
|
|
|
@@ -176,11 +180,11 @@ Start Hive with another local port:
|
|
|
176
180
|
hive --port 4020
|
|
177
181
|
```
|
|
178
182
|
|
|
179
|
-
**Native
|
|
183
|
+
**Native package install fails**
|
|
180
184
|
|
|
181
|
-
Hive depends on `node-pty`, which
|
|
182
|
-
your package manager cache clean, and verify your platform
|
|
183
|
-
available.
|
|
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.
|
|
184
188
|
|
|
185
189
|
**Folder picker does not open on Linux**
|
|
186
190
|
|
|
@@ -238,6 +242,9 @@ Maintainer dry run:
|
|
|
238
242
|
pnpm release:dry
|
|
239
243
|
```
|
|
240
244
|
|
|
245
|
+
See [docs/release.md](docs/release.md) for the full tagged release checklist,
|
|
246
|
+
including manual Windows smoke steps.
|
|
247
|
+
|
|
241
248
|
Tag pushes matching `v*` run the GitHub Actions release workflow. The workflow
|
|
242
249
|
verifies macOS, Ubuntu, and Windows, then publishes to npm with `NPM_TOKEN`.
|
|
243
250
|
|
package/README.zh-CN.md
CHANGED
|
@@ -37,10 +37,10 @@ Hive 加上这一层调度,**不替换**任何 CLI。Agent 还是真实跑在
|
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
39
|
npm install -g @tt-a1i/hive
|
|
40
|
-
hive
|
|
40
|
+
hive
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
打开终端打印出来的本机地址,通常是 `http://127.0.0.1:4010
|
|
43
|
+
打开终端打印出来的本机地址,通常是 `http://127.0.0.1:3000/`。如果你想指定端口,可以用 `hive --port 4010`。
|
|
44
44
|
|
|
45
45
|
首次使用流程:
|
|
46
46
|
|
|
@@ -86,7 +86,7 @@ Workspace 任务图:
|
|
|
86
86
|
| --- | --- | --- | --- |
|
|
87
87
|
| Claude Code | `claude` | `--dangerously-skip-permissions`、`--permission-mode=bypassPermissions` | `--resume <session_id>` |
|
|
88
88
|
| Codex | `codex` | `--dangerously-bypass-approvals-and-sandbox` | `resume <session_id>` |
|
|
89
|
-
| OpenCode | `opencode` |
|
|
89
|
+
| OpenCode | `opencode` | 由 `~/.config/opencode/opencode.json` 配置 | `--session <session_id>` |
|
|
90
90
|
| Gemini | `gemini` | `--yolo` | `--resume <session_id>` |
|
|
91
91
|
| 自定义 | 任意可执行文件 | 自己配 | 自己配 |
|
|
92
92
|
|
|
@@ -105,13 +105,7 @@ Hive **不**提供 sandbox 隔离、多用户认证、云端托管,也没有
|
|
|
105
105
|
|
|
106
106
|
## 平台支持
|
|
107
107
|
|
|
108
|
-
|
|
109
|
-
| --- | --- | --- |
|
|
110
|
-
| macOS | Tier 1 | 主开发与发布验证平台 |
|
|
111
|
-
| Linux | Tier 1 | CI 持续验证。目录选择器需要 `zenity`,没装也可以手动粘贴路径 |
|
|
112
|
-
| Windows | Tier 2 | CI 跑 Windows 测试子集 + 打包安装 smoke。目录选择器走 Windows PowerShell,包内带了 `team.cmd`。视为 best-effort——每次发版前的完整 Windows 验证仍是手动 |
|
|
113
|
-
|
|
114
|
-
所有平台都需要 Node.js 22+。Hive 依赖 `node-pty`,没有预编译二进制时需要你本机有原生构建工具链。
|
|
108
|
+
所有平台都需要 Node.js 22+。Hive 依赖 `node-pty` 和 `better-sqlite3` 这类原生包,没有预编译二进制时需要你本机有原生构建工具链。
|
|
115
109
|
|
|
116
110
|
## 安全模型
|
|
117
111
|
|
|
@@ -122,6 +116,7 @@ Hive 是本机开发工具,**不是**托管服务。
|
|
|
122
116
|
- 只打开你信任的 workspace。Worker 拥有跟你登录账户一样的文件系统访问权限。
|
|
123
117
|
- Agent token 是 session 级的,由本机 runtime 生成,注入到 agent 进程环境变量里,**不**用于跨网络通信。
|
|
124
118
|
- Hive 不做多用户认证。任何能从本机访问到端口的进程都视为可信本地访问。
|
|
119
|
+
- 浏览器 UI token 只是本机会话保护,不是用来防同一系统账户下其他进程的安全边界。
|
|
125
120
|
|
|
126
121
|
在敏感仓库里用 Hive 之前,请先读 [SECURITY.md](SECURITY.md)。
|
|
127
122
|
|
|
@@ -148,9 +143,9 @@ Hive 是本机开发工具,**不是**托管服务。
|
|
|
148
143
|
hive --port 4020
|
|
149
144
|
```
|
|
150
145
|
|
|
151
|
-
|
|
146
|
+
**原生包构建失败**
|
|
152
147
|
|
|
153
|
-
Hive 依赖 `node-pty
|
|
148
|
+
Hive 依赖 `node-pty` 和 `better-sqlite3`,它们用原生二进制。确认 Node.js 22+,清干净 package manager 缓存,并准备好你平台的构建工具(macOS Xcode CLI、Linux build-essential + python3、Windows VS Build Tools)。
|
|
154
149
|
|
|
155
150
|
**Linux 上目录选择器不弹**
|
|
156
151
|
|
|
@@ -202,6 +197,8 @@ Production 模式下 runtime 直接服务构建好的 web UI,不需要单独
|
|
|
202
197
|
pnpm release:dry
|
|
203
198
|
```
|
|
204
199
|
|
|
200
|
+
完整 tag 发版清单见 [docs/release.md](docs/release.md),里面包含 Windows 手动 smoke 步骤。
|
|
201
|
+
|
|
205
202
|
带 `v*` 的 tag push 会触发 GitHub Actions release workflow。workflow 会在 macOS、Ubuntu、Windows 三平台验证,然后用 `NPM_TOKEN` 发布到 npm。
|
|
206
203
|
|
|
207
204
|
## 状态
|
package/SECURITY.md
CHANGED
|
@@ -12,9 +12,19 @@ hosted service and does not provide a multi-user security boundary.
|
|
|
12
12
|
|
|
13
13
|
## Reporting a Vulnerability
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
Use GitHub private vulnerability reporting for `tt-a1i/hive` whenever it is
|
|
16
|
+
available. Do not paste exploit details, tokens, terminal logs, private
|
|
17
|
+
workspace paths, or reproduction scripts into a public issue.
|
|
18
|
+
|
|
19
|
+
If private reporting is temporarily unavailable, open a minimal public issue
|
|
20
|
+
with the title `Security contact request` and no technical details; a maintainer
|
|
21
|
+
will provide a private contact path before triage continues.
|
|
22
|
+
|
|
23
|
+
Expected response during public preview:
|
|
24
|
+
|
|
25
|
+
- Initial maintainer response: best effort within 7 days.
|
|
26
|
+
- Public disclosure or changelog entry: after a fix is available, or earlier
|
|
27
|
+
when the issue does not expose users to practical exploitation.
|
|
18
28
|
|
|
19
29
|
Please include:
|
|
20
30
|
|
|
@@ -36,6 +46,8 @@ Please include:
|
|
|
36
46
|
selected workspace so they can edit files and run project commands.
|
|
37
47
|
- Agent tokens are generated by the local runtime, injected into agent process
|
|
38
48
|
environments, and intended only for local agent-to-runtime calls.
|
|
49
|
+
- The browser UI token is a same-machine session guard. It is not designed to
|
|
50
|
+
protect Hive from other processes already running as the same OS user.
|
|
39
51
|
- Do not paste Hive agent tokens, terminal output, or workspace logs into public
|
|
40
52
|
reports if they include private repository or machine details.
|
|
41
53
|
|
package/dist/src/cli/hive.d.ts
CHANGED
|
@@ -5,5 +5,7 @@ interface RunHiveCommandResult {
|
|
|
5
5
|
close: () => Promise<void>;
|
|
6
6
|
store: RuntimeStore;
|
|
7
7
|
}
|
|
8
|
+
export declare const HIVE_USAGE: string;
|
|
9
|
+
export declare const handleHiveInfoCommand: (argv: string[]) => boolean;
|
|
8
10
|
export declare const runHiveCommand: (argv: string[]) => Promise<RunHiveCommandResult>;
|
|
9
11
|
export type { RunHiveCommandResult };
|
package/dist/src/cli/hive.js
CHANGED
|
@@ -1,15 +1,54 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { once } from 'node:events';
|
|
3
|
-
import { realpathSync } from 'node:fs';
|
|
3
|
+
import { existsSync, readFileSync, realpathSync } from 'node:fs';
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
|
-
import { join } from 'node:path';
|
|
5
|
+
import { dirname, join } from 'node:path';
|
|
6
6
|
import { fileURLToPath } from 'node:url';
|
|
7
7
|
import { createAgentManager } from '../server/agent-manager.js';
|
|
8
8
|
import { createApp } from '../server/app.js';
|
|
9
9
|
import { createRuntimeStore } from '../server/runtime-store.js';
|
|
10
|
+
export const HIVE_USAGE = [
|
|
11
|
+
'Usage:',
|
|
12
|
+
' hive [--port <port>]',
|
|
13
|
+
'',
|
|
14
|
+
'Options:',
|
|
15
|
+
' --port <port> Bind the local runtime to a specific port (default: 3000).',
|
|
16
|
+
' -h, --help Print this help.',
|
|
17
|
+
' -v, --version Print the installed Hive version.',
|
|
18
|
+
].join('\n');
|
|
19
|
+
const readPackageVersion = () => {
|
|
20
|
+
let dir = dirname(fileURLToPath(import.meta.url));
|
|
21
|
+
for (let depth = 0; depth < 8; depth += 1) {
|
|
22
|
+
const candidate = join(dir, 'package.json');
|
|
23
|
+
if (existsSync(candidate)) {
|
|
24
|
+
const parsed = JSON.parse(readFileSync(candidate, 'utf8'));
|
|
25
|
+
if (typeof parsed.version === 'string')
|
|
26
|
+
return parsed.version;
|
|
27
|
+
}
|
|
28
|
+
dir = dirname(dir);
|
|
29
|
+
}
|
|
30
|
+
return 'unknown';
|
|
31
|
+
};
|
|
32
|
+
export const handleHiveInfoCommand = (argv) => {
|
|
33
|
+
if (argv.includes('--help') || argv.includes('-h')) {
|
|
34
|
+
console.log(HIVE_USAGE);
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
if (argv.includes('--version') || argv.includes('-v')) {
|
|
38
|
+
console.log(readPackageVersion());
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
};
|
|
10
43
|
const parsePort = (argv) => {
|
|
44
|
+
let parsedPort = null;
|
|
11
45
|
for (let index = 0; index < argv.length; index += 1) {
|
|
12
|
-
|
|
46
|
+
const arg = argv[index];
|
|
47
|
+
if (arg !== '--port') {
|
|
48
|
+
if (arg?.startsWith('-'))
|
|
49
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
50
|
+
if (arg)
|
|
51
|
+
throw new Error(`Unknown argument: ${arg}`);
|
|
13
52
|
continue;
|
|
14
53
|
}
|
|
15
54
|
const value = argv[index + 1];
|
|
@@ -20,9 +59,10 @@ const parsePort = (argv) => {
|
|
|
20
59
|
if (Number.isNaN(port) || port < 0) {
|
|
21
60
|
throw new Error(`Invalid port: ${value}`);
|
|
22
61
|
}
|
|
23
|
-
|
|
62
|
+
parsedPort = port;
|
|
63
|
+
index += 1;
|
|
24
64
|
}
|
|
25
|
-
return 3000;
|
|
65
|
+
return parsedPort ?? 3000;
|
|
26
66
|
};
|
|
27
67
|
const resolveDataDir = () => process.env.HIVE_DATA_DIR || join(homedir(), '.config', 'hive');
|
|
28
68
|
export const runHiveCommand = async (argv) => {
|
|
@@ -79,13 +119,6 @@ export const runHiveCommand = async (argv) => {
|
|
|
79
119
|
process.once('SIGTERM', gracefulShutdown);
|
|
80
120
|
process.once('SIGINT', gracefulShutdown);
|
|
81
121
|
console.log(`Hive running at http://127.0.0.1:${address.port}`);
|
|
82
|
-
void app.store.autostartConfiguredAgents({ hivePort: String(address.port) }).then((results) => {
|
|
83
|
-
for (const result of results) {
|
|
84
|
-
if (!result.ok && result.error) {
|
|
85
|
-
console.warn(`Failed to autostart ${result.agent_id}: ${result.error}`);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
122
|
return {
|
|
90
123
|
port: address.port,
|
|
91
124
|
close,
|
|
@@ -96,7 +129,10 @@ const isMainModule = process.argv[1]
|
|
|
96
129
|
? fileURLToPath(import.meta.url) === realpathSync(process.argv[1])
|
|
97
130
|
: false;
|
|
98
131
|
if (isMainModule) {
|
|
99
|
-
|
|
132
|
+
const argv = process.argv.slice(2);
|
|
133
|
+
if (handleHiveInfoCommand(argv))
|
|
134
|
+
process.exit(0);
|
|
135
|
+
runHiveCommand(argv).catch((error) => {
|
|
100
136
|
console.error(error);
|
|
101
137
|
process.exit(1);
|
|
102
138
|
});
|
package/dist/src/cli/hive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hive.js","sourceRoot":"","sources":["../../../src/cli/hive.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"hive.js","sourceRoot":"","sources":["../../../src/cli/hive.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/team.js
CHANGED
|
@@ -10,7 +10,8 @@ const TEAM_USAGE = [
|
|
|
10
10
|
'Usage:',
|
|
11
11
|
' team list',
|
|
12
12
|
' team send <worker-name> "<task>"',
|
|
13
|
-
' team report "<result>" [--artifact <path>]',
|
|
13
|
+
' team report "<result>" [--dispatch <dispatch-id>] [--artifact <path>]',
|
|
14
|
+
' team status "<current status>" [--artifact <path>]',
|
|
14
15
|
].join('\n');
|
|
15
16
|
const getHiveEnv = () => {
|
|
16
17
|
const values = Object.fromEntries(REQUIRED_ENV_KEYS.map((key) => [key, process.env[key]]));
|
|
@@ -34,6 +35,28 @@ const fetchRuntime = async (baseUrl, path, init) => {
|
|
|
34
35
|
throw new Error(describeFetchError(baseUrl, error));
|
|
35
36
|
}
|
|
36
37
|
};
|
|
38
|
+
const readHttpErrorDetail = async (response) => {
|
|
39
|
+
const text = await response.text().catch(() => '');
|
|
40
|
+
const trimmed = text.trim();
|
|
41
|
+
if (!trimmed)
|
|
42
|
+
return '';
|
|
43
|
+
try {
|
|
44
|
+
const body = JSON.parse(trimmed);
|
|
45
|
+
if (typeof body.error === 'string' && body.error.trim()) {
|
|
46
|
+
return body.error.trim();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Non-JSON responses still carry useful diagnostics in their text body.
|
|
51
|
+
}
|
|
52
|
+
return trimmed;
|
|
53
|
+
};
|
|
54
|
+
const throwHttpError = async (response) => {
|
|
55
|
+
const detail = await readHttpErrorDetail(response);
|
|
56
|
+
throw new Error(detail
|
|
57
|
+
? `Request failed with status ${response.status}: ${detail}`
|
|
58
|
+
: `Request failed with status ${response.status}`);
|
|
59
|
+
};
|
|
37
60
|
const postJson = async (baseUrl, path, body) => {
|
|
38
61
|
const response = await fetchRuntime(baseUrl, path, {
|
|
39
62
|
body: JSON.stringify(body),
|
|
@@ -41,16 +64,19 @@ const postJson = async (baseUrl, path, body) => {
|
|
|
41
64
|
method: 'POST',
|
|
42
65
|
});
|
|
43
66
|
if (!response.ok) {
|
|
44
|
-
|
|
67
|
+
await throwHttpError(response);
|
|
45
68
|
}
|
|
46
69
|
return response;
|
|
47
70
|
};
|
|
48
|
-
const parseReportArgs = (args) => {
|
|
71
|
+
const parseReportArgs = (args, command = 'report') => {
|
|
49
72
|
const [result, ...rest] = args;
|
|
50
73
|
if (!result) {
|
|
51
|
-
throw new Error(
|
|
74
|
+
throw new Error(command === 'status'
|
|
75
|
+
? 'Usage: team status <current status> [--artifact <path>]'
|
|
76
|
+
: 'Usage: team report <result> [--dispatch <dispatch-id>] [--artifact <path>]');
|
|
52
77
|
}
|
|
53
78
|
const artifacts = [];
|
|
79
|
+
let dispatchId;
|
|
54
80
|
for (let index = 0; index < rest.length; index += 1) {
|
|
55
81
|
const arg = rest[index];
|
|
56
82
|
if (arg === '--success' || arg === '--failed') {
|
|
@@ -60,15 +86,29 @@ const parseReportArgs = (args) => {
|
|
|
60
86
|
if (arg === '--artifact') {
|
|
61
87
|
const artifactPath = rest[index + 1];
|
|
62
88
|
if (!artifactPath) {
|
|
63
|
-
throw new Error(
|
|
89
|
+
throw new Error(command === 'status'
|
|
90
|
+
? 'Usage: team status <current status> [--artifact <path>]'
|
|
91
|
+
: 'Usage: team report <result> [--dispatch <dispatch-id>] [--artifact <path>]');
|
|
64
92
|
}
|
|
65
93
|
artifacts.push(artifactPath);
|
|
66
94
|
index += 1;
|
|
67
95
|
continue;
|
|
68
96
|
}
|
|
97
|
+
if (arg === '--dispatch') {
|
|
98
|
+
if (command === 'status') {
|
|
99
|
+
throw new Error('team status does not accept --dispatch; use team report for assigned work');
|
|
100
|
+
}
|
|
101
|
+
const nextDispatchId = rest[index + 1];
|
|
102
|
+
if (!nextDispatchId) {
|
|
103
|
+
throw new Error('Usage: team report <result> [--dispatch <dispatch-id>] [--artifact <path>]');
|
|
104
|
+
}
|
|
105
|
+
dispatchId = nextDispatchId;
|
|
106
|
+
index += 1;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
69
109
|
throw new Error(`Unknown argument: ${arg}`);
|
|
70
110
|
}
|
|
71
|
-
return { result, artifacts };
|
|
111
|
+
return { result, artifacts, dispatchId };
|
|
72
112
|
};
|
|
73
113
|
export const runTeamCommand = async (argv) => {
|
|
74
114
|
const [command, ...args] = argv;
|
|
@@ -87,13 +127,14 @@ export const runTeamCommand = async (argv) => {
|
|
|
87
127
|
},
|
|
88
128
|
});
|
|
89
129
|
if (!response.ok) {
|
|
90
|
-
|
|
130
|
+
await throwHttpError(response);
|
|
91
131
|
}
|
|
92
132
|
console.log(JSON.stringify(await response.json()));
|
|
93
133
|
return;
|
|
94
134
|
}
|
|
95
135
|
if (command === 'send') {
|
|
96
|
-
const [workerName,
|
|
136
|
+
const [workerName, ...taskParts] = args;
|
|
137
|
+
const task = taskParts.join(' ').trim();
|
|
97
138
|
if (!workerName || !task || uuidPattern.test(workerName)) {
|
|
98
139
|
throw new Error('Usage: team send <worker-name> <task>');
|
|
99
140
|
}
|
|
@@ -110,17 +151,39 @@ export const runTeamCommand = async (argv) => {
|
|
|
110
151
|
console.log(JSON.stringify(await response.json()));
|
|
111
152
|
return;
|
|
112
153
|
}
|
|
154
|
+
if (command === 'status') {
|
|
155
|
+
const report = parseReportArgs(args, 'status');
|
|
156
|
+
const env = getHiveEnv();
|
|
157
|
+
const baseUrl = getBaseUrl(env);
|
|
158
|
+
const response = await postJson(baseUrl, '/api/team/status', {
|
|
159
|
+
project_id: env.HIVE_PROJECT_ID,
|
|
160
|
+
from_agent_id: env.HIVE_AGENT_ID,
|
|
161
|
+
token: env.HIVE_AGENT_TOKEN,
|
|
162
|
+
result: report.result,
|
|
163
|
+
artifacts: report.artifacts,
|
|
164
|
+
});
|
|
165
|
+
const payload = (await response.json());
|
|
166
|
+
if (payload.forwarded === false && payload.forward_error) {
|
|
167
|
+
console.error(`Hive recorded the status update, but could not deliver it to Orchestrator in real time: ${payload.forward_error}`);
|
|
168
|
+
}
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
113
171
|
if (command === 'report') {
|
|
114
172
|
const report = parseReportArgs(args);
|
|
115
173
|
const env = getHiveEnv();
|
|
116
174
|
const baseUrl = getBaseUrl(env);
|
|
117
|
-
await postJson(baseUrl, '/api/team/report', {
|
|
175
|
+
const response = await postJson(baseUrl, '/api/team/report', {
|
|
176
|
+
...(report.dispatchId ? { dispatch_id: report.dispatchId } : {}),
|
|
118
177
|
project_id: env.HIVE_PROJECT_ID,
|
|
119
178
|
from_agent_id: env.HIVE_AGENT_ID,
|
|
120
179
|
token: env.HIVE_AGENT_TOKEN,
|
|
121
180
|
result: report.result,
|
|
122
181
|
artifacts: report.artifacts,
|
|
123
182
|
});
|
|
183
|
+
const payload = (await response.json());
|
|
184
|
+
if (payload.forwarded === false && payload.forward_error) {
|
|
185
|
+
console.error(`Hive recorded the report, but could not deliver it to Orchestrator in real time: ${payload.forward_error}`);
|
|
186
|
+
}
|
|
124
187
|
return;
|
|
125
188
|
}
|
|
126
189
|
throw new Error('Unsupported team command');
|
package/dist/src/cli/team.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../../src/cli/team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,iBAAiB,GAAG;IACxB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,kBAAkB;CACV,CAAA;AAWV,MAAM,UAAU,GAAG;IACjB,QAAQ;IACR,aAAa;IACb,oCAAoC;IACpC,
|
|
1
|
+
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../../src/cli/team.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,8 @@ export const createAgentLaunchCache = (store) => {
|
|
|
35
35
|
command: input.command,
|
|
36
36
|
args: input.args ?? [],
|
|
37
37
|
commandPresetId: input.commandPresetId ?? null,
|
|
38
|
+
interactiveCommand: input.interactiveCommand ?? null,
|
|
39
|
+
presetAugmentationDisabled: input.presetAugmentationDisabled ?? false,
|
|
38
40
|
resumeArgsTemplate: input.resumeArgsTemplate ?? null,
|
|
39
41
|
sessionIdCapture: input.sessionIdCapture ?? null,
|
|
40
42
|
};
|
|
@@ -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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"}
|