@fenix-agent/acp-runtime-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +123 -0
  2. package/dist/bin.js +74 -0
  3. package/package.json +30 -0
package/README.md ADDED
@@ -0,0 +1,123 @@
1
+ # @fenix-agent/acp-runtime-cli
2
+
3
+ > 在远程节点启动 ACP bridge 并向 RCS (Remote Control Server) 主服务器注册。
4
+
5
+ ## 简介
6
+
7
+ `acp-runtime` 是一个 CLI 工具,部署在远程机器上运行。它会:
8
+
9
+ 1. 启动指定的 ACP agent(如 opencode、Claude Code)
10
+ 2. 通过 [acp-link](../acp-link) 建立 ACP stdio ↔ WebSocket bridge
11
+ 3. 向 RCS 主服务器注册本机,让 RCS 可以远程调度本机上运行的 agent 实例
12
+
13
+ RCS 主服务器通过这个注册通道,向远程节点下发 `prepare` / `start` / `stop` 指令,实现多租户隔离的远程 agent 管理。
14
+
15
+ ## 安装
16
+
17
+ ### 全局安装(发布后)
18
+
19
+ ```bash
20
+ npm install -g @fenix-agent/acp-runtime-cli
21
+ ```
22
+
23
+ ### 通过 bun 直接运行(无需安装)
24
+
25
+ ```bash
26
+ bunx @fenix-agent/acp-runtime-cli <agent-command> [agent-args...]
27
+ ```
28
+
29
+ ## 快速开始
30
+
31
+ 配置三个必填环境变量后即可启动:
32
+
33
+ ```bash
34
+ RCS_URL=ws://localhost:3000 \
35
+ RCS_SECRET=<client端鉴权secret> \
36
+ RCS_TENANT_ID=<组织ID> \
37
+ acp-runtime opencode acp
38
+ ```
39
+
40
+ 使用 Claude Code (ccb) 模式连接远程 RCS:
41
+
42
+ ```bash
43
+ AGENT_TYPE=ccb \
44
+ RCS_URL=wss://rcs.example.com \
45
+ RCS_SECRET=<secret> \
46
+ RCS_TENANT_ID=<组织ID> \
47
+ acp-runtime npx @anthropic-ai/claude-code --acp
48
+ ```
49
+
50
+ 启动时 CLI 会先对 RCS 做一次 HTTP 健康检查,任何 HTTP 响应(含 3xx/4xx)都视为在线,只有网络错误才会中断。
51
+
52
+ ## 环境变量
53
+
54
+ ### 必填
55
+
56
+ 以下三个变量缺一不可,缺失时 CLI 会报错退出。
57
+
58
+ | 变量 | 说明 |
59
+ |------|------|
60
+ | `RCS_URL` | RCS 的 WS base URL,如 `ws://localhost:3000` 或 `wss://rcs.example.com` |
61
+ | `RCS_SECRET` | client 端鉴权 secret,需与 RCS 端配置一致 |
62
+ | `RCS_TENANT_ID` | 用于远程注册机器的组织 ID,决定机器在 RCS 中的可见范围 |
63
+
64
+ ### 可选
65
+
66
+ | 变量 | 默认值 | 说明 |
67
+ |------|--------|------|
68
+ | `RCS_USER_ID` | — | 用户 ID,进一步限定机器可见范围 |
69
+ | `RCS_LABELS` | `remote-runtime` | 节点标签,逗号分隔(如 `production,gpu`),用于调度筛选 |
70
+ | `RCS_MACHINE_NAME` | 系统主机名 | 机器在 RCS 中的显示名称 |
71
+
72
+ ### AGENT_TYPE
73
+
74
+ `AGENT_TYPE` 决定使用哪种 agent runtime,**直接影响节点能运行的 agent 类型和 RCS 对其生命周期的管理方式**。
75
+
76
+ | 值 | 说明 | 启动命令示例 |
77
+ |------|------|-------------|
78
+ | `opencode`(默认) | 使用 opencode runtime | `acp-runtime opencode acp` |
79
+ | `ccb` | 使用 Claude Code Bridge(Claude Code) | `AGENT_TYPE=ccb acp-runtime npx @anthropic-ai/claude-code --acp` |
80
+
81
+ > ⚠️ `AGENT_TYPE` **必须与实际启动的 agent 命令匹配**。类型不一致会导致 RCS 无法正确管理 agent 的 prepare/start/stop 生命周期。
82
+
83
+ ## 工作区路径
84
+
85
+ 启动目录(`cwd`)即为 workspace 根目录。RCS 会按以下结构计算实例路径:
86
+
87
+ ```
88
+ {cwd}/{organizationId}/{userId}/{environmentId}
89
+ ```
90
+
91
+ ## 构建与发布
92
+
93
+ ### 本地构建
94
+
95
+ ```bash
96
+ cd packages/acp-runtime-cli
97
+ bun run build
98
+ ```
99
+
100
+ 产物 `dist/bin.js` 是自包含 bundle(约 440KB),`acp-link` 及其所有依赖已打包进去,运行时无需额外 `npm install`。
101
+
102
+ ### 发布到 npm
103
+
104
+ ```bash
105
+ cd packages/acp-runtime-cli
106
+ npm publish
107
+ ```
108
+
109
+ `prepublishOnly` 钩子会自动执行 `bun run build`,确保发布的产物是最新的。
110
+
111
+ ## 开发
112
+
113
+ ```bash
114
+ # 类型检查
115
+ bun run typecheck
116
+
117
+ # 运行 build 验证产物
118
+ bun run build && bun dist/bin.js
119
+ ```
120
+
121
+ ## License
122
+
123
+ MIT