agents-bridge 0.1.0 → 0.1.2
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/LICENSE +21 -21
- package/README.md +162 -131
- package/bin/agent-bridge.mjs +11 -11
- package/config.example.json +22 -55
- package/config.multi-agent.example.json +67 -0
- package/dist/agents/agent-resolver.d.ts +12 -0
- package/dist/agents/agent-resolver.d.ts.map +1 -0
- package/dist/agents/agent-resolver.js +114 -0
- package/dist/agents/agent-resolver.js.map +1 -0
- package/dist/agents/agent-router.d.ts +8 -0
- package/dist/agents/agent-router.d.ts.map +1 -0
- package/dist/agents/agent-router.js +72 -0
- package/dist/agents/agent-router.js.map +1 -0
- package/dist/agents/cli-backends.d.ts +20 -27
- package/dist/agents/cli-backends.d.ts.map +1 -1
- package/dist/agents/cli-backends.js +29 -4
- package/dist/agents/cli-backends.js.map +1 -1
- package/dist/agents/cli-output.d.ts +35 -0
- package/dist/agents/cli-output.d.ts.map +1 -0
- package/dist/agents/cli-output.js +277 -0
- package/dist/agents/cli-output.js.map +1 -0
- package/dist/agents/cli-output.test.d.ts +2 -0
- package/dist/agents/cli-output.test.d.ts.map +1 -0
- package/dist/agents/cli-output.test.js +56 -0
- package/dist/agents/cli-output.test.js.map +1 -0
- package/dist/agents/cli-runner.d.ts +23 -0
- package/dist/agents/cli-runner.d.ts.map +1 -1
- package/dist/agents/cli-runner.js +244 -153
- package/dist/agents/cli-runner.js.map +1 -1
- package/dist/agents/cli-runner.test.d.ts +2 -0
- package/dist/agents/cli-runner.test.d.ts.map +1 -0
- package/dist/agents/cli-runner.test.js +119 -0
- package/dist/agents/cli-runner.test.js.map +1 -0
- package/dist/agents/cli-session-store.d.ts +47 -0
- package/dist/agents/cli-session-store.d.ts.map +1 -1
- package/dist/agents/cli-session-store.js +72 -0
- package/dist/agents/cli-session-store.js.map +1 -1
- package/dist/agents/cli-session-store.test.d.ts +2 -0
- package/dist/agents/cli-session-store.test.d.ts.map +1 -0
- package/dist/agents/cli-session-store.test.js +30 -0
- package/dist/agents/cli-session-store.test.js.map +1 -0
- package/dist/agents/codex-app-server-runtime.d.ts +72 -0
- package/dist/agents/codex-app-server-runtime.d.ts.map +1 -0
- package/dist/agents/codex-app-server-runtime.js +772 -0
- package/dist/agents/codex-app-server-runtime.js.map +1 -0
- package/dist/agents/codex-app-server-runtime.test.d.ts +2 -0
- package/dist/agents/codex-app-server-runtime.test.d.ts.map +1 -0
- package/dist/agents/codex-app-server-runtime.test.js +164 -0
- package/dist/agents/codex-app-server-runtime.test.js.map +1 -0
- package/dist/agents/model-selection.d.ts +3 -2
- package/dist/agents/model-selection.js +1 -1
- package/dist/channels/botlink.d.ts +2 -0
- package/dist/channels/botlink.js +73 -60
- package/dist/channels/botlink.js.map +1 -1
- package/dist/cli/cmd-doctor.d.ts.map +1 -1
- package/dist/cli/cmd-doctor.js +41 -5
- package/dist/cli/cmd-doctor.js.map +1 -1
- package/dist/cli/cmd-logs.js +1 -1
- package/dist/cli/cmd-logs.js.map +1 -1
- package/dist/cli/cmd-onboard.d.ts.map +1 -1
- package/dist/cli/cmd-onboard.js +16 -10
- package/dist/cli/cmd-onboard.js.map +1 -1
- package/dist/cli/cmd-start.d.ts.map +1 -1
- package/dist/cli/cmd-start.js +205 -32
- package/dist/cli/cmd-start.js.map +1 -1
- package/dist/cli/run-main.js +27 -27
- package/dist/config/agent-dirs.d.ts +12 -0
- package/dist/config/agent-dirs.d.ts.map +1 -1
- package/dist/config/agent-dirs.js +43 -2
- package/dist/config/agent-dirs.js.map +1 -1
- package/dist/config/config.js +1 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/merge-config.d.ts.map +1 -1
- package/dist/config/merge-config.js +16 -4
- package/dist/config/merge-config.js.map +1 -1
- package/dist/config/paths.d.ts +4 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +7 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/zod-schema.d.ts +2158 -239
- package/dist/config/zod-schema.d.ts.map +1 -1
- package/dist/config/zod-schema.js +100 -1
- package/dist/config/zod-schema.js.map +1 -1
- package/dist/entry.d.ts +1 -1
- package/dist/logger.d.ts +1 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +28 -5
- package/dist/logger.js.map +1 -1
- package/dist/types/index.d.ts +130 -3
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +55 -54
- package/dist/console-encoding.d.ts +0 -6
- package/dist/console-encoding.d.ts.map +0 -1
- package/dist/console-encoding.js +0 -35
- package/dist/console-encoding.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,77 +1,76 @@
|
|
|
1
|
-
# agents-bridge
|
|
1
|
+
# agents-bridge
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
鏈湴 Agent 缃戝叧锛岄儴缃插湪瀹㈡埛鏈湴鏈哄櫒涓婏紝閫氳繃闀胯疆璇㈣繛鎺ヤ簯绔?botlink 骞冲彴锛岄┍鍔ㄦ湰鍦扮殑 Claude Code / Codex 绛?AI Agent銆?
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 鏋舵瀯姒傝
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
botlink
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
└──────────────────────────┘
|
|
8
|
+
botlink 浜戠 瀹㈡埛鏈湴
|
|
9
|
+
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
|
10
|
+
鈹? botlink-web 鈹? 鈹? agents-bridge 鈹?
|
|
11
|
+
鈹? client-gateway 鈹? 鈹? 鈹?
|
|
12
|
+
鈹? bot-gateway 鈼勨攢鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€ HTTP 鈹? botlink channel 鈹?
|
|
13
|
+
鈹? message-svc 鈹? 闀胯疆璇⑩攤 鈫? 鈹?
|
|
14
|
+
鈹? routing-svc 鈹? 鈹? Agent Runtime 鈹?
|
|
15
|
+
鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹溾攢 Claude Code (CLI) 鈹?
|
|
16
|
+
鈹? 鈹溾攢 Codex (CLI) 鈹?
|
|
17
|
+
鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
|
19
18
|
```
|
|
20
19
|
|
|
21
|
-
agents-bridge
|
|
20
|
+
agents-bridge 濮嬬粓浣滀负瀹㈡埛绔富鍔ㄥ杩炰簯绔紝瀹㈡埛鏃犻渶鏆撮湶浠讳綍绔彛銆?
|
|
22
21
|
|
|
23
|
-
##
|
|
22
|
+
## 蹇€熷紑濮?
|
|
24
23
|
|
|
25
|
-
###
|
|
24
|
+
### 鏂瑰紡 A锛歯pm 鍏ㄥ眬瀹夎锛堟帹鑽愶級
|
|
26
25
|
|
|
27
|
-
```bash
|
|
28
|
-
npm install -g agents-bridge@latest
|
|
26
|
+
```bash
|
|
27
|
+
npm install -g agents-bridge@latest
|
|
29
28
|
|
|
30
|
-
#
|
|
29
|
+
# 浜や簰寮忓紩瀵硷細杈撳叆 gateway URL銆乥ot token銆侀€夋嫨妯″瀷锛岃嚜鍔ㄧ敓鎴愰厤缃?
|
|
31
30
|
agents-bridge onboard
|
|
32
31
|
|
|
33
|
-
#
|
|
32
|
+
# 鍚姩
|
|
34
33
|
agents-bridge start
|
|
35
34
|
```
|
|
36
35
|
|
|
37
|
-
###
|
|
36
|
+
### 鏂瑰紡 B锛欴ocker
|
|
38
37
|
|
|
39
|
-
```bash
|
|
40
|
-
docker run -d --name agents-bridge \
|
|
41
|
-
-v /home/user/project:/workspace \
|
|
42
|
-
-v agents-bridge-data:/root/.agent-bridge \
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-e ANTHROPIC_API_KEY=sk-ant-xxx \
|
|
46
|
-
agents-bridge:latest
|
|
47
|
-
```
|
|
38
|
+
```bash
|
|
39
|
+
docker run -d --name agents-bridge \
|
|
40
|
+
-v /home/user/project:/workspace \
|
|
41
|
+
-v agents-bridge-data:/root/.agent-bridge \
|
|
42
|
+
| `AGENT_BRIDGE_GATEWAY_URL` | `channels.botlink.gateway_url` 或 `channels.botlink.accounts.default.gateway_url` | botlink 网关地址 |
|
|
43
|
+
| `AGENT_BRIDGE_BOT_TOKEN` | `channels.botlink.bot_token` 或 `channels.botlink.accounts.default.bot_token` | Bot Token |
|
|
44
|
+
-e ANTHROPIC_API_KEY=sk-ant-xxx \
|
|
45
|
+
agents-bridge:latest
|
|
46
|
+
```
|
|
48
47
|
|
|
49
|
-
|
|
48
|
+
鎴栦娇鐢?docker-compose锛?
|
|
50
49
|
|
|
51
50
|
```bash
|
|
52
51
|
cp .env.example .env
|
|
53
|
-
#
|
|
52
|
+
# 缂栬緫 .env 濉叆瀹為檯鍊?
|
|
54
53
|
docker compose up -d
|
|
55
54
|
```
|
|
56
55
|
|
|
57
|
-
###
|
|
56
|
+
### 鏂瑰紡 C锛氭簮鐮佽繍琛岋紙寮€鍙戣€咃級
|
|
58
57
|
|
|
59
|
-
```bash
|
|
60
|
-
git clone <repo-url>
|
|
61
|
-
cd <repo-dir>
|
|
62
|
-
pnpm install
|
|
63
|
-
pnpm build
|
|
64
|
-
cp config.example.json config.json #
|
|
65
|
-
node dist/entry.js start
|
|
58
|
+
```bash
|
|
59
|
+
git clone <repo-url>
|
|
60
|
+
cd <repo-dir>
|
|
61
|
+
pnpm install
|
|
62
|
+
pnpm build
|
|
63
|
+
cp config.example.json config.json # 缂栬緫閰嶇疆
|
|
64
|
+
node dist/entry.js start
|
|
66
65
|
```
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
寮€鍙戞ā寮忥紙鑷姩閲嶈浇锛夛細
|
|
69
68
|
|
|
70
69
|
```bash
|
|
71
70
|
pnpm dev
|
|
72
71
|
```
|
|
73
72
|
|
|
74
|
-
## CLI
|
|
73
|
+
## CLI 鍛戒护
|
|
75
74
|
|
|
76
75
|
```bash
|
|
77
76
|
agents-bridge start # 启动 gateway(前台)
|
|
@@ -80,26 +79,26 @@ agents-bridge start -c <path> # 指定配置文件启动
|
|
|
80
79
|
agents-bridge stop # 停止守护进程
|
|
81
80
|
agents-bridge status # 查看运行状态
|
|
82
81
|
agents-bridge onboard # 交互式初始化引导
|
|
83
|
-
agents-bridge doctor #
|
|
84
|
-
agents-bridge logs #
|
|
82
|
+
agents-bridge doctor # 诊断环境、会话持久化、日志与 CLI 路径
|
|
83
|
+
agents-bridge logs # 查看当天最新日志
|
|
85
84
|
agents-bridge config # 查看当前配置(脱敏显示)
|
|
86
85
|
agents-bridge help # 帮助
|
|
87
86
|
```
|
|
88
87
|
|
|
89
|
-
##
|
|
90
|
-
|
|
91
|
-
### 配置文件
|
|
88
|
+
## 閰嶇疆
|
|
92
89
|
|
|
93
|
-
|
|
90
|
+
### 閰嶇疆鏂囦欢
|
|
94
91
|
|
|
95
|
-
|
|
96
|
-
2. 环境变量:`AGENT_BRIDGE_CONFIG=/path/to/config.json`
|
|
97
|
-
3. 用户目录:`~/.agent-bridge/config.json`
|
|
98
|
-
4. 当前目录:`./config.json`
|
|
92
|
+
涓婚厤缃枃浠朵负 JSON 鏍煎紡锛屾悳绱㈤『搴忥細
|
|
99
93
|
|
|
100
|
-
|
|
94
|
+
1. CLI 鍙傛暟锛歚agents-bridge start -c /path/to/config.json`
|
|
95
|
+
2. 鐜鍙橀噺锛歚AGENT_BRIDGE_CONFIG=/path/to/config.json`
|
|
96
|
+
3. 鐢ㄦ埛鐩綍锛歚~/.agent-bridge/config.json`
|
|
97
|
+
4. 褰撳墠鐩綍锛歚./config.json`
|
|
101
98
|
|
|
102
|
-
|
|
99
|
+
瀹屾暣绀轰緥瑙?[config.example.json](config.example.json)锛堝崟 agent锛夊拰 [config.multi-agent.example.json](config.multi-agent.example.json)锛堝 agent锛夈€傞厤缃瓧娈佃缁嗚鏄庤 [閰嶇疆鏂囨。](../agent-bridge-docs/docs/guides/configuration.md)銆?
|
|
100
|
+
褰撳墠杩愯鏃朵粎鏀寔 CLI 妯″紡妯″瀷锛屽 `claude-cli/...`銆乣codex-cli/...`銆俙anthropic/...`銆乣openai/...` 杩欑被 API 鐩磋繛妯″瀷寮曠敤鏆傛湭瀹炵幇鎵ц閾捐矾銆?
|
|
101
|
+
### 鏍稿績閰嶇疆椤癸紙鍗?agent锛?
|
|
103
102
|
|
|
104
103
|
```json
|
|
105
104
|
{
|
|
@@ -115,8 +114,7 @@ agents-bridge help # 帮助
|
|
|
115
114
|
"agents": {
|
|
116
115
|
"defaults": {
|
|
117
116
|
"model": {
|
|
118
|
-
"primary": "claude-cli/opus-4.6"
|
|
119
|
-
"fallbacks": ["anthropic/claude-sonnet-4-6"]
|
|
117
|
+
"primary": "claude-cli/opus-4.6"
|
|
120
118
|
},
|
|
121
119
|
"cliBackends": {
|
|
122
120
|
"claude-cli": {
|
|
@@ -150,88 +148,118 @@ agents-bridge help # 帮助
|
|
|
150
148
|
}
|
|
151
149
|
```
|
|
152
150
|
|
|
153
|
-
###
|
|
151
|
+
### 澶?Agent 閰嶇疆
|
|
152
|
+
|
|
153
|
+
鍦?`agents` 涓嬪姞 `list` 瀹氫箟澶氫釜鍛藉悕 agent锛岀敤椤跺眰 `bindings` 鎸変細璇?鐢ㄦ埛璺敱锛?
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"agents": {
|
|
158
|
+
"defaults": { "model": { "primary": "claude-cli/opus-4.6" } },
|
|
159
|
+
"list": [
|
|
160
|
+
{ "id": "coder", "default": true, "workspace": "/home/user/app" },
|
|
161
|
+
{ "id": "ops", "model": "codex-cli/o3", "workspace": "/opt/infra" }
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
"bindings": [
|
|
165
|
+
{ "agentId": "ops", "match": { "peer": { "id": "-300" } } },
|
|
166
|
+
{ "agentId": "coder", "match": { "channel": "*" } }
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
姣忎釜 agent 缁ф壙 `defaults` 骞跺彲瑕嗙洊 model銆亀orkspace銆乪nv銆乧liBackends 绛夈€傝瑙?[閰嶇疆鏂囨。](../agent-bridge-docs/docs/guides/configuration.md)銆?
|
|
154
172
|
|
|
155
|
-
|
|
173
|
+
### 鐜鍙橀噺瑕嗙洊
|
|
156
174
|
|
|
157
|
-
|
|
175
|
+
鐜鍙橀噺鍙鐩栭厤缃枃浠朵腑鐨勫搴斿€硷細
|
|
176
|
+
|
|
177
|
+
| 鐜鍙橀噺 | 瑕嗙洊 | 璇存槑 |
|
|
158
178
|
|---|---|---|
|
|
159
|
-
| `AGENT_BRIDGE_CONFIG` |
|
|
160
|
-
| `AGENT_BRIDGE_GATEWAY_URL` | `channels.botlink.gateway_url` | botlink 网关地址 |
|
|
161
|
-
| `AGENT_BRIDGE_BOT_TOKEN` | `channels.botlink.bot_token` | Bot Token |
|
|
162
|
-
| `AGENT_BRIDGE_LOG_LEVEL` | `logging.level` |
|
|
163
|
-
| `AGENT_BRIDGE_TEMP_DIR` | `files.temp_dir` |
|
|
179
|
+
| `AGENT_BRIDGE_CONFIG` | 鈥?| 閰嶇疆鏂囦欢璺緞 |
|
|
180
|
+
| `AGENT_BRIDGE_GATEWAY_URL` | `channels.botlink.gateway_url` 或 `channels.botlink.accounts.default.gateway_url` | botlink 网关地址 |
|
|
181
|
+
| `AGENT_BRIDGE_BOT_TOKEN` | `channels.botlink.bot_token` 或 `channels.botlink.accounts.default.bot_token` | Bot Token |
|
|
182
|
+
| `AGENT_BRIDGE_LOG_LEVEL` | `logging.level` | 鏃ュ織绾у埆 |
|
|
183
|
+
| `AGENT_BRIDGE_TEMP_DIR` | `files.temp_dir` | 涓存椂鏂囦欢鐩綍 |
|
|
164
184
|
|
|
165
|
-
##
|
|
185
|
+
## 鏁版嵁鐩綍
|
|
166
186
|
|
|
167
187
|
```
|
|
168
188
|
~/.agent-bridge/
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
189
|
+
鈹溾攢鈹€ config.json # 涓婚厤缃紙onboard 鐢熸垚锛?
|
|
190
|
+
鈹溾攢鈹€ agent-bridge.pid # PID 鏂囦欢锛坉aemon 妯″紡锛?
|
|
191
|
+
鈹溾攢鈹€ agents/ # per-agent 鐘舵€侊紙澶?agent 妯″紡锛?
|
|
192
|
+
鈹? 鈹溾攢鈹€ coder/
|
|
193
|
+
鈹? 鈹? 鈹斺攢鈹€ cli-sessions.json # coder 鐨?session 鏄犲皠
|
|
194
|
+
鈹? 鈹溾攢鈹€ reviewer/
|
|
195
|
+
鈹? 鈹? 鈹斺攢鈹€ cli-sessions.json
|
|
196
|
+
鈹? 鈹斺攢鈹€ default/ # 闅愬紡 agent锛堟湭閰?list 鏃讹級
|
|
197
|
+
鈹? 鈹斺攢鈹€ cli-sessions.json
|
|
198
|
+
鈹溾攢鈹€ data/
|
|
199
|
+
鈹? 鈹溾攢鈹€ sessions/ # 鏃х増 session 瀛樺偍锛堝崌绾у悗鑷姩杩佺Щ锛?
|
|
200
|
+
鈹? 鈹溾攢鈹€ files/ # 鏂囦欢涓浆涓存椂鐩綍
|
|
201
|
+
鈹? 鈹斺攢鈹€ logs/ # 鏃ュ織鏂囦欢
|
|
202
|
+
鈹斺攢鈹€ skills/ # 鑷畾涔夋妧鑳?
|
|
177
203
|
```
|
|
178
204
|
|
|
179
|
-
##
|
|
180
|
-
|
|
181
|
-
```
|
|
182
|
-
agents-bridge/
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
205
|
+
## 椤圭洰缁撴瀯
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
agents-bridge/
|
|
209
|
+
鈹溾攢鈹€ bin/
|
|
210
|
+
鈹? 鈹斺攢鈹€ agent-bridge.mjs # CLI 鍏ュ彛锛坣pm 鍏ㄥ眬瀹夎锛?
|
|
211
|
+
鈹溾攢鈹€ src/
|
|
212
|
+
鈹? 鈹溾攢鈹€ entry.ts # 涓诲叆鍙o紝瀛愬懡浠よ矾鐢?
|
|
213
|
+
鈹? 鈹溾攢鈹€ cli/ # CLI 鍛戒护瀹炵幇
|
|
214
|
+
鈹? 鈹? 鈹溾攢鈹€ run-main.ts # 鍙傛暟瑙f瀽
|
|
215
|
+
鈹? 鈹? 鈹溾攢鈹€ cmd-start.ts # start 鍛戒护
|
|
216
|
+
鈹? 鈹? 鈹溾攢鈹€ cmd-stop.ts # stop 鍛戒护
|
|
217
|
+
鈹? 鈹? 鈹溾攢鈹€ cmd-status.ts # status 鍛戒护
|
|
218
|
+
鈹? 鈹? 鈹溾攢鈹€ cmd-onboard.ts # onboard 浜や簰寮曞
|
|
219
|
+
鈹? 鈹? 鈹溾攢鈹€ cmd-doctor.ts # doctor 鐜璇婃柇
|
|
220
|
+
鈹? 鈹? 鈹溾攢鈹€ cmd-logs.ts # logs 鏌ョ湅
|
|
221
|
+
鈹? 鈹? 鈹斺攢鈹€ cmd-config.ts # config 鏌ョ湅
|
|
222
|
+
鈹? 鈹溾攢鈹€ config/ # 閰嶇疆鍔犺浇涓庢牎楠?
|
|
223
|
+
鈹? 鈹? 鈹溾攢鈹€ config.ts # 涓诲姞杞藉櫒
|
|
224
|
+
鈹? 鈹? 鈹溾攢鈹€ zod-schema.ts # Zod schema
|
|
225
|
+
鈹? 鈹? 鈹溾攢鈹€ paths.ts # 鏁版嵁鐩綍璺緞甯搁噺
|
|
226
|
+
鈹? 鈹? 鈹溾攢鈹€ env-vars.ts # 鐜鍙橀噺璇诲彇
|
|
227
|
+
鈹? 鈹? 鈹溾攢鈹€ merge-config.ts # 閰嶇疆鍚堝苟
|
|
228
|
+
鈹? 鈹? 鈹斺攢鈹€ agent-dirs.ts # 鐩綍鍒濆鍖?
|
|
229
|
+
鈹? 鈹溾攢鈹€ channels/ # Channel 鎻掍欢妗嗘灦
|
|
230
|
+
鈹? 鈹? 鈹溾攢鈹€ registry.ts # 鎻掍欢娉ㄥ唽琛?
|
|
231
|
+
鈹? 鈹? 鈹溾攢鈹€ session.ts # 浼氳瘽绠$悊
|
|
232
|
+
鈹? 鈹? 鈹斺攢鈹€ ...
|
|
233
|
+
鈹? 鈹溾攢鈹€ agents/ # Agent 杩愯鏃?
|
|
234
|
+
鈹? 鈹? 鈹溾攢鈹€ agent-resolver.ts # 澶?agent 閰嶇疆瑙f瀽锛坉efaults + list 鍚堝苟锛?
|
|
235
|
+
鈹? 鈹? 鈹溾攢鈹€ agent-router.ts # 娑堟伅璺敱锛坆indings 鍖归厤锛?
|
|
236
|
+
鈹? 鈹? 鈹溾攢鈹€ cli-backends.ts # CLI backend provider id / 榛樿閰嶇疆瑁呴厤
|
|
237
|
+
鈹? 鈹? 鈹溾攢鈹€ cli-session-store.ts # CLI session 鏄犲皠鎸佷箙鍖栵紙per-agent锛?
|
|
238
|
+
鈹? 鈹? 鈹溾攢鈹€ cli-runner.ts # Claude/Codex CLI 鎵ц鍣?
|
|
239
|
+
鈹? 鈹? 鈹斺攢鈹€ ...
|
|
240
|
+
鈹? 鈹溾攢鈹€ types/ # 绫诲瀷瀹氫箟
|
|
241
|
+
鈹? 鈹斺攢鈹€ logger.ts # Pino 鏃ュ織
|
|
242
|
+
鈹溾攢鈹€ extensions/ # Channel 鎻掍欢锛坆otlink锛?
|
|
243
|
+
鈹溾攢鈹€ skills/ # 鎶€鑳藉畾涔?
|
|
244
|
+
鈹溾攢鈹€ config.example.json # 閰嶇疆绀轰緥
|
|
245
|
+
鈹溾攢鈹€ .env.example # 鐜鍙橀噺绀轰緥
|
|
246
|
+
鈹溾攢鈹€ Dockerfile
|
|
247
|
+
鈹溾攢鈹€ docker-compose.yml
|
|
248
|
+
鈹溾攢鈹€ package.json
|
|
249
|
+
鈹斺攢鈹€ tsconfig.json
|
|
222
250
|
```
|
|
223
251
|
|
|
224
|
-
##
|
|
252
|
+
## 褰撳墠鏀寔鐨?Agent 妯″紡
|
|
225
253
|
|
|
226
|
-
|
|
|
254
|
+
| 妯″紡 | 妯″瀷寮曠敤绀轰緥 | 璇存槑 |
|
|
227
255
|
|---|---|---|
|
|
228
256
|
| Claude Code | `claude-cli/opus-4.6` | 通过 CLI backend 启动本地 `claude` 命令 |
|
|
229
|
-
| Codex | `codex-cli/gpt-5.
|
|
257
|
+
| Codex | `codex-cli/gpt-5.4` | 通过 CLI backend 启动本地 `codex` 命令 |
|
|
230
258
|
| Pi Agent | `anthropic/claude-sonnet-4-6` | 通过 LLM API 直连,内置工具执行 |
|
|
231
259
|
|
|
232
|
-
|
|
260
|
+
鍦?`config.json` 鐨?`agents.defaults.model.primary` 涓€夋嫨銆?
|
|
233
261
|
|
|
234
|
-
## CLI Backend
|
|
262
|
+
## CLI Backend 绾﹀畾
|
|
235
263
|
|
|
236
264
|
- 内置 provider id 固定为 `claude-cli`、`codex-cli`。
|
|
237
265
|
- `agents.defaults.cliBackends` 会覆盖内置默认值,不需要重复写全量字段。
|
|
@@ -239,21 +267,24 @@ agents-bridge/
|
|
|
239
267
|
- CLI backend session id 会持久化到 `~/.agent-bridge/data/sessions/cli-sessions.json` 的 `cliSessionIds[providerId]`。
|
|
240
268
|
- `serialize: true` 的语义是“同一 botlink session 串行、跨 session 可并发”。
|
|
241
269
|
- Claude CLI 走 JSON 输出;Codex CLI 首次运行走 JSONL,resume 走 text。
|
|
270
|
+
- agents-bridge 会把运行日志同时写到 stdout 和 `~/.agent-bridge/data/logs/agent-bridge-YYYY-MM-DD.log`。
|
|
271
|
+
- `agents-bridge doctor` 会检查 Codex 会话是否缺失 `thread_id` 持久化,便于定位“每次都 fresh”的问题。
|
|
242
272
|
|
|
243
|
-
##
|
|
273
|
+
## 鎶€鏈爤
|
|
244
274
|
|
|
245
275
|
- TypeScript + Node.js (>= 22.0.0)
|
|
246
276
|
- pnpm (>= 9.0.0)
|
|
247
|
-
- Pino
|
|
248
|
-
- Zod
|
|
249
|
-
- JSON
|
|
277
|
+
- Pino锛堟棩蹇楋級
|
|
278
|
+
- Zod锛堥厤缃牎楠岋級
|
|
279
|
+
- JSON锛堥厤缃牸寮忥級
|
|
250
280
|
|
|
251
|
-
##
|
|
281
|
+
## 寮€鍙?
|
|
252
282
|
|
|
253
283
|
```bash
|
|
254
|
-
pnpm install #
|
|
255
|
-
pnpm build #
|
|
256
|
-
pnpm dev #
|
|
257
|
-
pnpm typecheck #
|
|
284
|
+
pnpm install # 瀹夎渚濊禆
|
|
285
|
+
pnpm build # 缂栬瘧
|
|
286
|
+
pnpm dev # 寮€鍙戞ā寮忥紙鑷姩閲嶈浇锛?
|
|
287
|
+
pnpm typecheck # 绫诲瀷妫€鏌?
|
|
258
288
|
```
|
|
259
289
|
|
|
290
|
+
|
package/bin/agent-bridge.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// agents-bridge CLI entry point
|
|
4
|
-
// Used by: npm install -g agents-bridge / npx agents-bridge
|
|
5
|
-
|
|
6
|
-
import { fileURLToPath } from 'node:url'
|
|
7
|
-
import { dirname, resolve } from 'node:path'
|
|
8
|
-
|
|
9
|
-
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
10
|
-
|
|
11
|
-
// Import the compiled entry point
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// agents-bridge CLI entry point
|
|
4
|
+
// Used by: npm install -g agents-bridge / npx agents-bridge
|
|
5
|
+
|
|
6
|
+
import { fileURLToPath } from 'node:url'
|
|
7
|
+
import { dirname, resolve } from 'node:path'
|
|
8
|
+
|
|
9
|
+
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
10
|
+
|
|
11
|
+
// Import the compiled entry point
|
|
12
12
|
await import(resolve(__dirname, '..', 'dist', 'entry.js'))
|
package/config.example.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
2
|
"channels": {
|
|
3
3
|
"botlink": {
|
|
4
|
-
"gateway_url": "https://
|
|
5
|
-
"bot_token": "
|
|
4
|
+
"gateway_url": "https://your-botlink.com",
|
|
5
|
+
"bot_token": "bot_xxx",
|
|
6
6
|
"poll_timeout": 30,
|
|
7
7
|
"retry_interval": 5,
|
|
8
8
|
"max_retry_interval": 60
|
|
@@ -11,10 +11,7 @@
|
|
|
11
11
|
"agents": {
|
|
12
12
|
"defaults": {
|
|
13
13
|
"model": {
|
|
14
|
-
"primary": "claude-cli/opus-4.6"
|
|
15
|
-
"fallbacks": [
|
|
16
|
-
"anthropic/claude-sonnet-4-6"
|
|
17
|
-
]
|
|
14
|
+
"primary": "claude-cli/opus-4.6"
|
|
18
15
|
},
|
|
19
16
|
"cliBackends": {
|
|
20
17
|
"claude-cli": {
|
|
@@ -45,67 +42,37 @@
|
|
|
45
42
|
"systemPromptArg": "--append-system-prompt",
|
|
46
43
|
"systemPromptMode": "append",
|
|
47
44
|
"systemPromptWhen": "first",
|
|
48
|
-
"clearEnv": [
|
|
49
|
-
"ANTHROPIC_API_KEY",
|
|
50
|
-
"ANTHROPIC_API_KEY_OLD"
|
|
51
|
-
],
|
|
52
45
|
"sessionMode": "always",
|
|
53
|
-
"serialize": true
|
|
54
|
-
"reliability": {
|
|
55
|
-
"watchdog": {
|
|
56
|
-
"fresh": {
|
|
57
|
-
"noOutputTimeoutRatio": 0.8,
|
|
58
|
-
"minMs": 180000,
|
|
59
|
-
"maxMs": 600000
|
|
60
|
-
},
|
|
61
|
-
"resume": {
|
|
62
|
-
"noOutputTimeoutRatio": 0.3,
|
|
63
|
-
"minMs": 60000,
|
|
64
|
-
"maxMs": 180000
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
46
|
+
"serialize": true
|
|
68
47
|
},
|
|
69
48
|
"codex-cli": {
|
|
70
49
|
"command": "codex",
|
|
71
|
-
"
|
|
72
|
-
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
50
|
+
"runtimeMode": "app-server",
|
|
51
|
+
"appServer": {
|
|
52
|
+
"listen": "stdio://",
|
|
53
|
+
"sessionSource": "agent-bridge",
|
|
54
|
+
"startupTimeoutMs": 15000,
|
|
55
|
+
"requestTimeoutMs": 30000,
|
|
56
|
+
"serviceName": "agent-bridge",
|
|
57
|
+
"experimentalApi": false,
|
|
58
|
+
"approvalPolicy": "never",
|
|
59
|
+
"sandbox": "read-only",
|
|
60
|
+
"persistExtendedHistory": false,
|
|
61
|
+
"experimentalRawEvents": false
|
|
62
|
+
},
|
|
82
63
|
"sessionIdFields": [
|
|
83
64
|
"thread_id"
|
|
84
65
|
],
|
|
85
|
-
"imageArg": "--image",
|
|
86
|
-
"imageMode": "repeat",
|
|
87
66
|
"sessionMode": "existing",
|
|
88
|
-
"serialize": true
|
|
89
|
-
"reliability": {
|
|
90
|
-
"watchdog": {
|
|
91
|
-
"fresh": {
|
|
92
|
-
"noOutputTimeoutRatio": 0.8,
|
|
93
|
-
"minMs": 180000,
|
|
94
|
-
"maxMs": 600000
|
|
95
|
-
},
|
|
96
|
-
"resume": {
|
|
97
|
-
"noOutputTimeoutRatio": 0.3,
|
|
98
|
-
"minMs": 60000,
|
|
99
|
-
"maxMs": 180000
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
67
|
+
"serialize": true
|
|
103
68
|
}
|
|
104
69
|
}
|
|
105
70
|
}
|
|
106
71
|
},
|
|
107
72
|
"skills": {
|
|
108
|
-
"dirs": [
|
|
73
|
+
"dirs": [
|
|
74
|
+
"./skills"
|
|
75
|
+
]
|
|
109
76
|
},
|
|
110
77
|
"files": {
|
|
111
78
|
"temp_dir": "/tmp/agent-bridge/files",
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"channels": {
|
|
3
|
+
"botlink": {
|
|
4
|
+
"accounts": {
|
|
5
|
+
"codex-bot": {
|
|
6
|
+
"gateway_url": "https://your-botlink.com",
|
|
7
|
+
"bot_token": "bot_codex_xxx",
|
|
8
|
+
"poll_timeout": 30,
|
|
9
|
+
"retry_interval": 5,
|
|
10
|
+
"max_retry_interval": 60
|
|
11
|
+
},
|
|
12
|
+
"claude-bot": {
|
|
13
|
+
"gateway_url": "https://your-botlink.com",
|
|
14
|
+
"bot_token": "bot_claude_xxx",
|
|
15
|
+
"poll_timeout": 30,
|
|
16
|
+
"retry_interval": 5,
|
|
17
|
+
"max_retry_interval": 60
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"agents": {
|
|
23
|
+
"defaults": {
|
|
24
|
+
"model": {
|
|
25
|
+
"primary": "claude-cli/opus-4.6"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"list": [
|
|
29
|
+
{
|
|
30
|
+
"id": "codex-assistant",
|
|
31
|
+
"default": true,
|
|
32
|
+
"name": "Codex 助理",
|
|
33
|
+
"model": "codex-cli/gpt-5.4",
|
|
34
|
+
"workspace": "/workspace/app",
|
|
35
|
+
"cliSessionId": "thread_xxxxxxxxxxxxxxxx"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "claudecode-assistant",
|
|
39
|
+
"name": "Claude Code 助理",
|
|
40
|
+
"model": "claude-cli/opus-4.6",
|
|
41
|
+
"workspace": "/workspace/app",
|
|
42
|
+
"cliSessionId": "01970df8-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"bindings": [
|
|
47
|
+
{
|
|
48
|
+
"agentId": "codex-assistant",
|
|
49
|
+
"comment": "codex bot",
|
|
50
|
+
"match": {
|
|
51
|
+
"channel": "botlink",
|
|
52
|
+
"accountId": "codex-bot"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"agentId": "claudecode-assistant",
|
|
57
|
+
"comment": "claude bot",
|
|
58
|
+
"match": {
|
|
59
|
+
"channel": "botlink",
|
|
60
|
+
"accountId": "claude-bot"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"logging": {
|
|
65
|
+
"level": "info"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AppConfig } from '../config/zod-schema.js';
|
|
2
|
+
import type { Logger, ResolvedAgent } from '../types/index.js';
|
|
3
|
+
export interface ResolveAgentsResult {
|
|
4
|
+
agents: Map<string, ResolvedAgent>;
|
|
5
|
+
defaultAgentId: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Resolve agent configurations: merge defaults + list → Map<agentId, ResolvedAgent>.
|
|
9
|
+
* Called once at startup, result cached for routing.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveAgentConfigs(config: AppConfig, logger: Logger): ResolveAgentsResult;
|
|
12
|
+
//# sourceMappingURL=agent-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-resolver.d.ts","sourceRoot":"","sources":["../../src/agents/agent-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAAoB,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAKhF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAClC,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAyC1F"}
|