agents-bridge 0.1.21 → 0.1.22

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.
@@ -1,168 +1,168 @@
1
- {
2
- "channels": {
3
- "botlink": {
4
- "poll_timeout": 30,
5
- "retry_interval": 5,
6
- "max_retry_interval": 60,
7
- "accounts": {
8
- "default": {
9
- "gateway_url": "https://your-botlink.com",
10
- "bot_token": "bot_xxx",
11
- "poll_timeout": 30,
12
- "retry_interval": 5,
13
- "max_retry_interval": 60
14
- }
15
- }
16
- }
17
- },
18
- "agents": {
19
- "defaults": {
20
- "model": {
21
- "primary": "claude-cli/opus-4.6",
22
- "fallbacks": [
23
- "codex-cli/gpt-5.4"
24
- ]
25
- },
26
- "cliBackends": {
27
- "claude-cli": {
28
- "command": "claude",
29
- "runtimeMode": "exec",
30
- "args": [
31
- "-p",
32
- "--verbose",
33
- "--output-format",
34
- "stream-json",
35
- "--dangerously-skip-permissions"
36
- ],
37
- "resumeArgs": [
38
- "-p",
39
- "--verbose",
40
- "--output-format",
41
- "stream-json",
42
- "--dangerously-skip-permissions",
43
- "--resume",
44
- "{sessionId}"
45
- ],
46
- "output": "jsonl",
47
- "resumeOutput": "jsonl",
48
- "input": "arg",
49
- "modelArg": "--model",
50
- "sessionArg": "--session-id",
51
- "sessionIdFields": [
52
- "session_id",
53
- "sessionId",
54
- "conversation_id",
55
- "conversationId"
56
- ],
57
- "systemPromptArg": "--append-system-prompt",
58
- "systemPromptMode": "append",
59
- "systemPromptWhen": "first",
60
- "clearEnv": [
61
- "ANTHROPIC_API_KEY",
62
- "ANTHROPIC_API_KEY_OLD"
63
- ],
64
- "sessionMode": "always",
65
- "serialize": true,
66
- "reliability": {
67
- "watchdog": {
68
- "fresh": {
69
- "noOutputTimeoutRatio": 0.8,
70
- "minMs": 180000,
71
- "maxMs": 600000
72
- },
73
- "resume": {
74
- "noOutputTimeoutRatio": 0.3,
75
- "minMs": 60000,
76
- "maxMs": 180000
77
- }
78
- }
79
- }
80
- },
81
- "codex-cli": {
82
- "command": "codex",
83
- "runtimeMode": "app-server",
84
- "appServer": {
85
- "listen": "stdio://",
86
- "startupTimeoutMs": 15000,
87
- "requestTimeoutMs": 30000,
88
- "serviceName": "agent-bridge",
89
- "experimentalApi": false,
90
- "approvalPolicy": "never",
91
- "sandbox": "danger-full-access",
92
- "persistExtendedHistory": false,
93
- "experimentalRawEvents": false
94
- },
95
- "sessionMode": "existing",
96
- "serialize": true
97
- },
98
- "qwen-cli": {
99
- "command": "qwen",
100
- "runtimeMode": "exec",
101
- "args": [
102
- "-p",
103
- "--output-format",
104
- "json"
105
- ],
106
- "resumeArgs": [
107
- "-p",
108
- "--resume",
109
- "{sessionId}",
110
- "--output-format",
111
- "json"
112
- ],
113
- "output": "json",
114
- "resumeOutput": "json",
115
- "input": "arg",
116
- "modelArg": "--model",
117
- "sessionArg": "--session-id",
118
- "sessionIdFields": [
119
- "session_id",
120
- "sessionId"
121
- ],
122
- "sessionMode": "always",
123
- "serialize": true,
124
- "reliability": {
125
- "watchdog": {
126
- "fresh": {
127
- "noOutputTimeoutRatio": 0.8,
128
- "minMs": 180000,
129
- "maxMs": 600000
130
- },
131
- "resume": {
132
- "noOutputTimeoutRatio": 0.3,
133
- "minMs": 60000,
134
- "maxMs": 180000
135
- }
136
- }
137
- }
138
- }
139
- }
140
- },
141
- "list": [
142
- {
143
- "id": "default",
144
- "default": true
145
- }
146
- ]
147
- },
148
- "bindings": [
149
- {
150
- "agentId": "default",
151
- "match": {
152
- "channel": "*"
153
- }
154
- }
155
- ],
156
- "skills": {
157
- "dirs": [
158
- "./skills"
159
- ]
160
- },
161
- "files": {
162
- "temp_dir": "/tmp/agent-bridge/files",
163
- "max_file_size": 52428800
164
- },
165
- "logging": {
166
- "level": "info"
167
- }
168
- }
1
+ {
2
+ "channels": {
3
+ "botlink": {
4
+ "poll_timeout": 30,
5
+ "retry_interval": 5,
6
+ "max_retry_interval": 60,
7
+ "accounts": {
8
+ "default": {
9
+ "gateway_url": "https://your-botlink.com",
10
+ "bot_token": "bot_xxx",
11
+ "poll_timeout": 30,
12
+ "retry_interval": 5,
13
+ "max_retry_interval": 60
14
+ }
15
+ }
16
+ }
17
+ },
18
+ "agents": {
19
+ "defaults": {
20
+ "model": {
21
+ "primary": "claude-cli/opus-4.6",
22
+ "fallbacks": [
23
+ "codex-cli/gpt-5.4"
24
+ ]
25
+ },
26
+ "cliBackends": {
27
+ "claude-cli": {
28
+ "command": "claude",
29
+ "runtimeMode": "exec",
30
+ "args": [
31
+ "-p",
32
+ "--verbose",
33
+ "--output-format",
34
+ "stream-json",
35
+ "--dangerously-skip-permissions"
36
+ ],
37
+ "resumeArgs": [
38
+ "-p",
39
+ "--verbose",
40
+ "--output-format",
41
+ "stream-json",
42
+ "--dangerously-skip-permissions",
43
+ "--resume",
44
+ "{sessionId}"
45
+ ],
46
+ "output": "jsonl",
47
+ "resumeOutput": "jsonl",
48
+ "input": "arg",
49
+ "modelArg": "--model",
50
+ "sessionArg": "--session-id",
51
+ "sessionIdFields": [
52
+ "session_id",
53
+ "sessionId",
54
+ "conversation_id",
55
+ "conversationId"
56
+ ],
57
+ "systemPromptArg": "--append-system-prompt",
58
+ "systemPromptMode": "append",
59
+ "systemPromptWhen": "first",
60
+ "clearEnv": [
61
+ "ANTHROPIC_API_KEY",
62
+ "ANTHROPIC_API_KEY_OLD"
63
+ ],
64
+ "sessionMode": "always",
65
+ "serialize": true,
66
+ "reliability": {
67
+ "watchdog": {
68
+ "fresh": {
69
+ "noOutputTimeoutRatio": 0.8,
70
+ "minMs": 180000,
71
+ "maxMs": 600000
72
+ },
73
+ "resume": {
74
+ "noOutputTimeoutRatio": 0.3,
75
+ "minMs": 60000,
76
+ "maxMs": 180000
77
+ }
78
+ }
79
+ }
80
+ },
81
+ "codex-cli": {
82
+ "command": "codex",
83
+ "runtimeMode": "app-server",
84
+ "appServer": {
85
+ "listen": "stdio://",
86
+ "startupTimeoutMs": 15000,
87
+ "requestTimeoutMs": 30000,
88
+ "serviceName": "agent-bridge",
89
+ "experimentalApi": false,
90
+ "approvalPolicy": "never",
91
+ "sandbox": "danger-full-access",
92
+ "persistExtendedHistory": false,
93
+ "experimentalRawEvents": false
94
+ },
95
+ "sessionMode": "existing",
96
+ "serialize": true
97
+ },
98
+ "qwen-cli": {
99
+ "command": "qwen",
100
+ "runtimeMode": "exec",
101
+ "args": [
102
+ "-p",
103
+ "--output-format",
104
+ "json"
105
+ ],
106
+ "resumeArgs": [
107
+ "-p",
108
+ "--resume",
109
+ "{sessionId}",
110
+ "--output-format",
111
+ "json"
112
+ ],
113
+ "output": "json",
114
+ "resumeOutput": "json",
115
+ "input": "arg",
116
+ "modelArg": "--model",
117
+ "sessionArg": "--session-id",
118
+ "sessionIdFields": [
119
+ "session_id",
120
+ "sessionId"
121
+ ],
122
+ "sessionMode": "always",
123
+ "serialize": true,
124
+ "reliability": {
125
+ "watchdog": {
126
+ "fresh": {
127
+ "noOutputTimeoutRatio": 0.8,
128
+ "minMs": 180000,
129
+ "maxMs": 600000
130
+ },
131
+ "resume": {
132
+ "noOutputTimeoutRatio": 0.3,
133
+ "minMs": 60000,
134
+ "maxMs": 180000
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ },
141
+ "list": [
142
+ {
143
+ "id": "default",
144
+ "default": true
145
+ }
146
+ ]
147
+ },
148
+ "bindings": [
149
+ {
150
+ "agentId": "default",
151
+ "match": {
152
+ "channel": "*"
153
+ }
154
+ }
155
+ ],
156
+ "skills": {
157
+ "dirs": [
158
+ "./skills"
159
+ ]
160
+ },
161
+ "files": {
162
+ "temp_dir": "/tmp/agent-bridge/files",
163
+ "max_file_size": 52428800
164
+ },
165
+ "logging": {
166
+ "level": "info"
167
+ }
168
+ }
@@ -1,88 +1,88 @@
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
- "qwen-bot": {
20
- "gateway_url": "https://your-botlink.com",
21
- "bot_token": "bot_qwen_xxx",
22
- "poll_timeout": 30,
23
- "retry_interval": 5,
24
- "max_retry_interval": 60
25
- }
26
- }
27
- }
28
- },
29
- "agents": {
30
- "defaults": {
31
- "model": {
32
- "primary": "claude-cli/opus-4.6"
33
- }
34
- },
35
- "list": [
36
- {
37
- "id": "codex-assistant",
38
- "default": true,
39
- "name": "Codex 助理",
40
- "model": "codex-cli/gpt-5.4",
41
- "workspace": "/workspace/app",
42
- "cliSessionId": "thread_xxxxxxxxxxxxxxxx"
43
- },
44
- {
45
- "id": "claudecode-assistant",
46
- "name": "Claude Code 助理",
47
- "model": "claude-cli/opus-4.6",
48
- "workspace": "/workspace/app",
49
- "cliSessionId": "01970df8-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
50
- },
51
- {
52
- "id": "qwen-assistant",
53
- "name": "Qwen 助理",
54
- "model": "qwen-cli/qwen3-coder-plus",
55
- "workspace": "/workspace/app"
56
- }
57
- ]
58
- },
59
- "bindings": [
60
- {
61
- "agentId": "codex-assistant",
62
- "comment": "codex bot",
63
- "match": {
64
- "channel": "botlink",
65
- "accountId": "codex-bot"
66
- }
67
- },
68
- {
69
- "agentId": "claudecode-assistant",
70
- "comment": "claude bot",
71
- "match": {
72
- "channel": "botlink",
73
- "accountId": "claude-bot"
74
- }
75
- },
76
- {
77
- "agentId": "qwen-assistant",
78
- "comment": "qwen bot",
79
- "match": {
80
- "channel": "botlink",
81
- "accountId": "qwen-bot"
82
- }
83
- }
84
- ],
85
- "logging": {
86
- "level": "info"
87
- }
88
- }
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
+ "qwen-bot": {
20
+ "gateway_url": "https://your-botlink.com",
21
+ "bot_token": "bot_qwen_xxx",
22
+ "poll_timeout": 30,
23
+ "retry_interval": 5,
24
+ "max_retry_interval": 60
25
+ }
26
+ }
27
+ }
28
+ },
29
+ "agents": {
30
+ "defaults": {
31
+ "model": {
32
+ "primary": "claude-cli/opus-4.6"
33
+ }
34
+ },
35
+ "list": [
36
+ {
37
+ "id": "codex-assistant",
38
+ "default": true,
39
+ "name": "Codex 助理",
40
+ "model": "codex-cli/gpt-5.4",
41
+ "workspace": "/workspace/app",
42
+ "cliSessionId": "thread_xxxxxxxxxxxxxxxx"
43
+ },
44
+ {
45
+ "id": "claudecode-assistant",
46
+ "name": "Claude Code 助理",
47
+ "model": "claude-cli/opus-4.6",
48
+ "workspace": "/workspace/app",
49
+ "cliSessionId": "01970df8-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
50
+ },
51
+ {
52
+ "id": "qwen-assistant",
53
+ "name": "Qwen 助理",
54
+ "model": "qwen-cli/qwen3-coder-plus",
55
+ "workspace": "/workspace/app"
56
+ }
57
+ ]
58
+ },
59
+ "bindings": [
60
+ {
61
+ "agentId": "codex-assistant",
62
+ "comment": "codex bot",
63
+ "match": {
64
+ "channel": "botlink",
65
+ "accountId": "codex-bot"
66
+ }
67
+ },
68
+ {
69
+ "agentId": "claudecode-assistant",
70
+ "comment": "claude bot",
71
+ "match": {
72
+ "channel": "botlink",
73
+ "accountId": "claude-bot"
74
+ }
75
+ },
76
+ {
77
+ "agentId": "qwen-assistant",
78
+ "comment": "qwen bot",
79
+ "match": {
80
+ "channel": "botlink",
81
+ "accountId": "qwen-bot"
82
+ }
83
+ }
84
+ ],
85
+ "logging": {
86
+ "level": "info"
87
+ }
88
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"fch-runtime-context.d.ts","sourceRoot":"","sources":["../../src/agents/fch-runtime-context.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;CAKjB,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAA;AAEV,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,iBAAiB,CAOpB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO9E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAc7E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAUrE"}
1
+ {"version":3,"file":"fch-runtime-context.d.ts","sourceRoot":"","sources":["../../src/agents/fch-runtime-context.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;CAKjB,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAA;AAIV,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,iBAAiB,CAOpB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO9E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAgB7E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAUrE"}
@@ -11,6 +11,7 @@ export const FCH_HEADER_NAMES = {
11
11
  applyId: 'X-FCH-Apply-Id',
12
12
  requestId: 'X-Request-Id',
13
13
  };
14
+ const FCH_CODEX_MODEL_PROVIDER = 'cliproxy';
14
15
  export function createFchRuntimeContext(params) {
15
16
  return {
16
17
  sessionId: params.sessionId,
@@ -33,7 +34,9 @@ export function buildCodexFchConfigArgs(context) {
33
34
  }
34
35
  return [
35
36
  '-c',
36
- `model_providers.cliproxy.env_http_headers=${toTomlInlineTable({
37
+ `model_providers.${FCH_CODEX_MODEL_PROVIDER}.name=${JSON.stringify(FCH_CODEX_MODEL_PROVIDER)}`,
38
+ '-c',
39
+ `model_providers.${FCH_CODEX_MODEL_PROVIDER}.env_http_headers=${toTomlInlineTable({
37
40
  [FCH_HEADER_NAMES.sessionId]: FCH_HEADER_ENV.sessionId,
38
41
  [FCH_HEADER_NAMES.agentId]: FCH_HEADER_ENV.agentId,
39
42
  [FCH_HEADER_NAMES.applyId]: FCH_HEADER_ENV.applyId,
@@ -1 +1 @@
1
- {"version":3,"file":"fch-runtime-context.js","sourceRoot":"","sources":["../../src/agents/fch-runtime-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;CACnB,CAAA;AAEV,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,gBAAgB;IACzB,OAAO,EAAE,gBAAgB;IACzB,SAAS,EAAE,cAAc;CACjB,CAAA;AASV,MAAM,UAAU,uBAAuB,CAAC,MAKvC;IACC,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,cAAc,EAAE;QACnD,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE;KACpD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAA0B;IACpD,OAAO;QACL,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS;QAC7C,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO;QACzC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO;QACzC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS;KAC9C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAA2B;IACjE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,IAAI;QACJ,6CAA6C,iBAAiB,CAAC;YAC7D,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS;YACtD,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO;YAClD,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO;YAClD,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,SAAS;SACvD,CAAC,EAAE;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO;QACL,OAAO,CAAC,SAAS;QACjB,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,SAAS;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE;WAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE;WACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;WAC5B,SAAS,CAAA;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA8B;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC3D,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACpD,CAAC,CAAA;IACF,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"fch-runtime-context.js","sourceRoot":"","sources":["../../src/agents/fch-runtime-context.ts"],"names":[],"mappings":"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"}