agent-relay 3.1.21 → 3.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.
- package/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/dist/index.cjs +341 -64
- package/package.json +8 -8
- package/packages/acp-bridge/package.json +2 -2
- package/packages/config/dist/cli-registry.generated.d.ts +427 -67
- package/packages/config/dist/cli-registry.generated.d.ts.map +1 -1
- package/packages/config/dist/cli-registry.generated.js +334 -54
- package/packages/config/dist/cli-registry.generated.js.map +1 -1
- package/packages/config/package.json +1 -1
- package/packages/config/src/cli-registry.generated.ts +342 -54
- package/packages/hooks/package.json +4 -4
- package/packages/memory/package.json +2 -2
- package/packages/openclaw/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/sdk/dist/__tests__/spawn-from-env.test.js +28 -12
- package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +1 -1
- package/packages/sdk/dist/spawn-from-env.d.ts +2 -1
- package/packages/sdk/dist/spawn-from-env.d.ts.map +1 -1
- package/packages/sdk/dist/spawn-from-env.js +20 -9
- package/packages/sdk/dist/spawn-from-env.js.map +1 -1
- package/packages/sdk/package.json +2 -2
- package/packages/sdk/src/__tests__/spawn-from-env.test.ts +37 -12
- package/packages/sdk/src/spawn-from-env.ts +26 -9
- package/packages/sdk-py/agent_relay/__init__.py +19 -16
- package/packages/sdk-py/agent_relay/models.py +230 -38
- package/packages/sdk-py/pyproject.toml +1 -1
- package/packages/shared/cli-registry.yaml +293 -42
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/package.json +2 -2
- package/scripts/postinstall.js +117 -0
|
@@ -12,7 +12,7 @@ clis:
|
|
|
12
12
|
name: "Claude Code"
|
|
13
13
|
package: "@anthropic-ai/claude-code"
|
|
14
14
|
npm_link: "https://www.npmjs.com/package/@anthropic-ai"
|
|
15
|
-
version: "2.1.
|
|
15
|
+
version: "2.1.72"
|
|
16
16
|
install: "npm install -g @anthropic-ai/claude-code"
|
|
17
17
|
models:
|
|
18
18
|
sonnet:
|
|
@@ -30,25 +30,28 @@ clis:
|
|
|
30
30
|
name: "Codex CLI"
|
|
31
31
|
package: "@openai/codex"
|
|
32
32
|
npm_link: "https://www.npmjs.com/package/@openai/codex"
|
|
33
|
-
version: "0.
|
|
33
|
+
version: "0.114.0"
|
|
34
34
|
install: "npm install -g @openai/codex"
|
|
35
35
|
models:
|
|
36
|
-
|
|
37
|
-
id: "gpt-5.
|
|
38
|
-
label: "GPT-5.
|
|
36
|
+
gpt_5_4:
|
|
37
|
+
id: "gpt-5.4"
|
|
38
|
+
label: "GPT-5.4 — Latest frontier agentic coding model"
|
|
39
39
|
default: true
|
|
40
40
|
gpt_5_3_codex:
|
|
41
41
|
id: "gpt-5.3-codex"
|
|
42
|
-
label: "GPT-5.3 Codex —
|
|
42
|
+
label: "GPT-5.3 Codex — Frontier agentic coding model"
|
|
43
43
|
gpt_5_3_codex_spark:
|
|
44
44
|
id: "gpt-5.3-codex-spark"
|
|
45
45
|
label: "GPT-5.3 Codex Spark — Ultra-fast coding model"
|
|
46
|
-
|
|
47
|
-
id: "gpt-5.
|
|
48
|
-
label: "GPT-5.
|
|
46
|
+
gpt_5_2_codex:
|
|
47
|
+
id: "gpt-5.2-codex"
|
|
48
|
+
label: "GPT-5.2 Codex — Frontier agentic coding model"
|
|
49
49
|
gpt_5_2:
|
|
50
50
|
id: "gpt-5.2"
|
|
51
51
|
label: "GPT-5.2 — Frontier model, knowledge & reasoning"
|
|
52
|
+
gpt_5_1_codex_max:
|
|
53
|
+
id: "gpt-5.1-codex-max"
|
|
54
|
+
label: "GPT-5.1 Codex Max — Deep and fast reasoning"
|
|
52
55
|
gpt_5_1_codex_mini:
|
|
53
56
|
id: "gpt-5.1-codex-mini"
|
|
54
57
|
label: "GPT-5.1 Codex Mini — Cheaper, faster"
|
|
@@ -57,16 +60,19 @@ clis:
|
|
|
57
60
|
name: "Gemini CLI"
|
|
58
61
|
package: "@google/gemini-cli"
|
|
59
62
|
npm_link: "https://www.npmjs.com/package/@google/gemini-cli"
|
|
60
|
-
version: "0.
|
|
63
|
+
version: "0.33.0"
|
|
61
64
|
install: "npm install -g @google/gemini-cli"
|
|
62
65
|
models:
|
|
63
|
-
|
|
64
|
-
id: "gemini-3-pro-preview"
|
|
65
|
-
label: "Gemini 3 Pro Preview"
|
|
66
|
+
gemini_3_1_pro_preview:
|
|
67
|
+
id: "gemini-3.1-pro-preview"
|
|
68
|
+
label: "Gemini 3.1 Pro Preview"
|
|
69
|
+
default: true
|
|
70
|
+
gemini_3_flash_preview:
|
|
71
|
+
id: "gemini-3-flash-preview"
|
|
72
|
+
label: "Gemini 3 Flash Preview"
|
|
66
73
|
gemini_2_5_pro:
|
|
67
74
|
id: "gemini-2.5-pro"
|
|
68
75
|
label: "Gemini 2.5 Pro"
|
|
69
|
-
default: true
|
|
70
76
|
gemini_2_5_flash:
|
|
71
77
|
id: "gemini-2.5-flash"
|
|
72
78
|
label: "Gemini 2.5 Flash"
|
|
@@ -77,73 +83,318 @@ clis:
|
|
|
77
83
|
cursor:
|
|
78
84
|
name: "Cursor"
|
|
79
85
|
package: "cursor"
|
|
80
|
-
version: "
|
|
86
|
+
version: "2026.02.27-e7d2ef6"
|
|
81
87
|
install: "Download from cursor.com"
|
|
82
88
|
models:
|
|
83
|
-
|
|
84
|
-
id: "opus-4.
|
|
85
|
-
label: "Claude 4.
|
|
89
|
+
opus_4_6_thinking:
|
|
90
|
+
id: "opus-4.6-thinking"
|
|
91
|
+
label: "Claude 4.6 Opus (Thinking)"
|
|
86
92
|
default: true
|
|
93
|
+
opus_4_6:
|
|
94
|
+
id: "opus-4.6"
|
|
95
|
+
label: "Claude 4.6 Opus"
|
|
87
96
|
opus_4_5:
|
|
88
97
|
id: "opus-4.5"
|
|
89
98
|
label: "Claude 4.5 Opus"
|
|
99
|
+
opus_4_5_thinking:
|
|
100
|
+
id: "opus-4.5-thinking"
|
|
101
|
+
label: "Claude 4.5 Opus (Thinking)"
|
|
102
|
+
sonnet_4_6:
|
|
103
|
+
id: "sonnet-4.6"
|
|
104
|
+
label: "Claude 4.6 Sonnet"
|
|
105
|
+
sonnet_4_6_thinking:
|
|
106
|
+
id: "sonnet-4.6-thinking"
|
|
107
|
+
label: "Claude 4.6 Sonnet (Thinking)"
|
|
90
108
|
sonnet_4_5:
|
|
91
109
|
id: "sonnet-4.5"
|
|
92
110
|
label: "Claude 4.5 Sonnet"
|
|
93
111
|
sonnet_4_5_thinking:
|
|
94
112
|
id: "sonnet-4.5-thinking"
|
|
95
113
|
label: "Claude 4.5 Sonnet (Thinking)"
|
|
96
|
-
|
|
97
|
-
id: "
|
|
98
|
-
label: "
|
|
99
|
-
|
|
100
|
-
id: "
|
|
101
|
-
label: "
|
|
102
|
-
|
|
103
|
-
id: "gpt-5.
|
|
104
|
-
label: "GPT-5.
|
|
114
|
+
composer_1_5:
|
|
115
|
+
id: "composer-1.5"
|
|
116
|
+
label: "Composer 1.5"
|
|
117
|
+
composer_1:
|
|
118
|
+
id: "composer-1"
|
|
119
|
+
label: "Composer 1"
|
|
120
|
+
gpt_5_4_xhigh:
|
|
121
|
+
id: "gpt-5.4-xhigh"
|
|
122
|
+
label: "GPT-5.4 Extra High"
|
|
123
|
+
gpt_5_4_xhigh_fast:
|
|
124
|
+
id: "gpt-5.4-xhigh-fast"
|
|
125
|
+
label: "GPT-5.4 Extra High Fast"
|
|
126
|
+
gpt_5_4_high:
|
|
127
|
+
id: "gpt-5.4-high"
|
|
128
|
+
label: "GPT-5.4 High"
|
|
129
|
+
gpt_5_4_high_fast:
|
|
130
|
+
id: "gpt-5.4-high-fast"
|
|
131
|
+
label: "GPT-5.4 High Fast"
|
|
132
|
+
gpt_5_4_medium:
|
|
133
|
+
id: "gpt-5.4-medium"
|
|
134
|
+
label: "GPT-5.4"
|
|
135
|
+
gpt_5_4_medium_fast:
|
|
136
|
+
id: "gpt-5.4-medium-fast"
|
|
137
|
+
label: "GPT-5.4 Fast"
|
|
138
|
+
gpt_5_4_low:
|
|
139
|
+
id: "gpt-5.4-low"
|
|
140
|
+
label: "GPT-5.4 Low"
|
|
141
|
+
gpt_5_3_codex_xhigh:
|
|
142
|
+
id: "gpt-5.3-codex-xhigh"
|
|
143
|
+
label: "GPT-5.3 Codex Extra High"
|
|
144
|
+
gpt_5_3_codex_xhigh_fast:
|
|
145
|
+
id: "gpt-5.3-codex-xhigh-fast"
|
|
146
|
+
label: "GPT-5.3 Codex Extra High Fast"
|
|
147
|
+
gpt_5_3_codex_high:
|
|
148
|
+
id: "gpt-5.3-codex-high"
|
|
149
|
+
label: "GPT-5.3 Codex High"
|
|
150
|
+
gpt_5_3_codex_high_fast:
|
|
151
|
+
id: "gpt-5.3-codex-high-fast"
|
|
152
|
+
label: "GPT-5.3 Codex High Fast"
|
|
153
|
+
gpt_5_3_codex:
|
|
154
|
+
id: "gpt-5.3-codex"
|
|
155
|
+
label: "GPT-5.3 Codex"
|
|
156
|
+
gpt_5_3_codex_fast:
|
|
157
|
+
id: "gpt-5.3-codex-fast"
|
|
158
|
+
label: "GPT-5.3 Codex Fast"
|
|
159
|
+
gpt_5_3_codex_low:
|
|
160
|
+
id: "gpt-5.3-codex-low"
|
|
161
|
+
label: "GPT-5.3 Codex Low"
|
|
162
|
+
gpt_5_3_codex_low_fast:
|
|
163
|
+
id: "gpt-5.3-codex-low-fast"
|
|
164
|
+
label: "GPT-5.3 Codex Low Fast"
|
|
165
|
+
gpt_5_3_codex_spark_preview:
|
|
166
|
+
id: "gpt-5.3-codex-spark-preview"
|
|
167
|
+
label: "GPT-5.3 Codex Spark"
|
|
105
168
|
gpt_5_2_codex_xhigh:
|
|
106
169
|
id: "gpt-5.2-codex-xhigh"
|
|
107
170
|
label: "GPT-5.2 Codex Extra High"
|
|
108
|
-
|
|
109
|
-
id: "gpt-5.2-codex-fast"
|
|
110
|
-
label: "GPT-5.2 Codex Fast"
|
|
171
|
+
gpt_5_2_codex_xhigh_fast:
|
|
172
|
+
id: "gpt-5.2-codex-xhigh-fast"
|
|
173
|
+
label: "GPT-5.2 Codex Extra High Fast"
|
|
174
|
+
gpt_5_2_codex_high:
|
|
175
|
+
id: "gpt-5.2-codex-high"
|
|
176
|
+
label: "GPT-5.2 Codex High"
|
|
111
177
|
gpt_5_2_codex_high_fast:
|
|
112
178
|
id: "gpt-5.2-codex-high-fast"
|
|
113
179
|
label: "GPT-5.2 Codex High Fast"
|
|
180
|
+
gpt_5_2_codex:
|
|
181
|
+
id: "gpt-5.2-codex"
|
|
182
|
+
label: "GPT-5.2 Codex"
|
|
183
|
+
gpt_5_2_codex_fast:
|
|
184
|
+
id: "gpt-5.2-codex-fast"
|
|
185
|
+
label: "GPT-5.2 Codex Fast"
|
|
186
|
+
gpt_5_2_codex_low:
|
|
187
|
+
id: "gpt-5.2-codex-low"
|
|
188
|
+
label: "GPT-5.2 Codex Low"
|
|
114
189
|
gpt_5_2_codex_low_fast:
|
|
115
190
|
id: "gpt-5.2-codex-low-fast"
|
|
116
191
|
label: "GPT-5.2 Codex Low Fast"
|
|
117
|
-
gpt_5_2_codex_xhigh_fast:
|
|
118
|
-
id: "gpt-5.2-codex-xhigh-fast"
|
|
119
|
-
label: "GPT-5.2 Codex Extra High Fast"
|
|
120
|
-
gpt_5_1_codex_max:
|
|
121
|
-
id: "gpt-5.1-codex-max"
|
|
122
|
-
label: "GPT-5.1 Codex Max"
|
|
123
|
-
gpt_5_1_codex_max_high:
|
|
124
|
-
id: "gpt-5.1-codex-max-high"
|
|
125
|
-
label: "GPT-5.1 Codex Max High"
|
|
126
192
|
gpt_5_2:
|
|
127
193
|
id: "gpt-5.2"
|
|
128
194
|
label: "GPT-5.2"
|
|
129
195
|
gpt_5_2_high:
|
|
130
196
|
id: "gpt-5.2-high"
|
|
131
197
|
label: "GPT-5.2 High"
|
|
198
|
+
gpt_5_1_codex_max:
|
|
199
|
+
id: "gpt-5.1-codex-max"
|
|
200
|
+
label: "GPT-5.1 Codex Max"
|
|
201
|
+
gpt_5_1_codex_max_high:
|
|
202
|
+
id: "gpt-5.1-codex-max-high"
|
|
203
|
+
label: "GPT-5.1 Codex Max High"
|
|
204
|
+
gpt_5_1_codex_mini:
|
|
205
|
+
id: "gpt-5.1-codex-mini"
|
|
206
|
+
label: "GPT-5.1 Codex Mini"
|
|
132
207
|
gpt_5_1_high:
|
|
133
208
|
id: "gpt-5.1-high"
|
|
134
209
|
label: "GPT-5.1 High"
|
|
210
|
+
gemini_3_1_pro:
|
|
211
|
+
id: "gemini-3.1-pro"
|
|
212
|
+
label: "Gemini 3.1 Pro"
|
|
135
213
|
gemini_3_pro:
|
|
136
214
|
id: "gemini-3-pro"
|
|
137
215
|
label: "Gemini 3 Pro"
|
|
138
216
|
gemini_3_flash:
|
|
139
217
|
id: "gemini-3-flash"
|
|
140
218
|
label: "Gemini 3 Flash"
|
|
141
|
-
composer_1:
|
|
142
|
-
id: "composer-1"
|
|
143
|
-
label: "Composer 1"
|
|
144
219
|
grok:
|
|
145
220
|
id: "grok"
|
|
146
221
|
label: "Grok"
|
|
222
|
+
kimi_k2_5:
|
|
223
|
+
id: "kimi-k2.5"
|
|
224
|
+
label: "Kimi K2.5"
|
|
225
|
+
|
|
226
|
+
droid:
|
|
227
|
+
name: "Droid"
|
|
228
|
+
package: "droid"
|
|
229
|
+
version: "0.1.0"
|
|
230
|
+
install: "Download from droid.dev"
|
|
231
|
+
models:
|
|
232
|
+
opus_4_6_fast:
|
|
233
|
+
id: "opus-4.6-fast"
|
|
234
|
+
label: "Opus 4.6 Fast Mode (12x)"
|
|
235
|
+
default: true
|
|
236
|
+
opus_4_5:
|
|
237
|
+
id: "opus-4.5"
|
|
238
|
+
label: "Opus 4.5 (2x)"
|
|
239
|
+
sonnet_4_5:
|
|
240
|
+
id: "sonnet-4.5"
|
|
241
|
+
label: "Sonnet 4.5 (1.2x)"
|
|
242
|
+
haiku_4_5:
|
|
243
|
+
id: "haiku-4.5"
|
|
244
|
+
label: "Haiku 4.5 (0.4x)"
|
|
245
|
+
gpt_5_2:
|
|
246
|
+
id: "gpt-5.2"
|
|
247
|
+
label: "GPT-5.2 (0.7x)"
|
|
248
|
+
gpt_5_2_codex:
|
|
249
|
+
id: "gpt-5.2-codex"
|
|
250
|
+
label: "GPT-5.2 Codex (0.7x)"
|
|
251
|
+
gemini_3_flash:
|
|
252
|
+
id: "gemini-3-flash"
|
|
253
|
+
label: "Gemini 3 Flash (0.2x)"
|
|
254
|
+
droid_core:
|
|
255
|
+
id: "droid-core-glm-4.7"
|
|
256
|
+
label: "Droid Core (GLM-4.7) (0.25x)"
|
|
257
|
+
|
|
258
|
+
opencode:
|
|
259
|
+
name: "OpenCode"
|
|
260
|
+
package: "opencode-ai"
|
|
261
|
+
npm_link: "https://www.npmjs.com/package/opencode-ai"
|
|
262
|
+
version: "1.2.24"
|
|
263
|
+
install: "npm install -g opencode-ai"
|
|
264
|
+
models:
|
|
265
|
+
opencode_big_pickle:
|
|
266
|
+
id: "opencode/big-pickle"
|
|
267
|
+
label: "Big Pickle"
|
|
268
|
+
opencode_gpt_5_nano:
|
|
269
|
+
id: "opencode/gpt-5-nano"
|
|
270
|
+
label: "GPT-5 Nano (OpenCode)"
|
|
271
|
+
opencode_mimo_v2_flash_free:
|
|
272
|
+
id: "opencode/mimo-v2-flash-free"
|
|
273
|
+
label: "Mimo V2 Flash Free"
|
|
274
|
+
opencode_minimax_m2_5_free:
|
|
275
|
+
id: "opencode/minimax-m2.5-free"
|
|
276
|
+
label: "MiniMax M2.5 Free"
|
|
277
|
+
openai_codex_mini_latest:
|
|
278
|
+
id: "openai/codex-mini-latest"
|
|
279
|
+
label: "Codex Mini Latest"
|
|
280
|
+
openai_gpt_3_5_turbo:
|
|
281
|
+
id: "openai/gpt-3.5-turbo"
|
|
282
|
+
label: "GPT-3.5 Turbo"
|
|
283
|
+
openai_gpt_4:
|
|
284
|
+
id: "openai/gpt-4"
|
|
285
|
+
label: "GPT-4"
|
|
286
|
+
openai_gpt_4_turbo:
|
|
287
|
+
id: "openai/gpt-4-turbo"
|
|
288
|
+
label: "GPT-4 Turbo"
|
|
289
|
+
openai_gpt_4_1:
|
|
290
|
+
id: "openai/gpt-4.1"
|
|
291
|
+
label: "GPT-4.1"
|
|
292
|
+
openai_gpt_4_1_mini:
|
|
293
|
+
id: "openai/gpt-4.1-mini"
|
|
294
|
+
label: "GPT-4.1 Mini"
|
|
295
|
+
openai_gpt_4_1_nano:
|
|
296
|
+
id: "openai/gpt-4.1-nano"
|
|
297
|
+
label: "GPT-4.1 Nano"
|
|
298
|
+
openai_gpt_4o:
|
|
299
|
+
id: "openai/gpt-4o"
|
|
300
|
+
label: "GPT-4o"
|
|
301
|
+
openai_gpt_4o_2024_05_13:
|
|
302
|
+
id: "openai/gpt-4o-2024-05-13"
|
|
303
|
+
label: "GPT-4o (2024-05-13)"
|
|
304
|
+
openai_gpt_4o_2024_08_06:
|
|
305
|
+
id: "openai/gpt-4o-2024-08-06"
|
|
306
|
+
label: "GPT-4o (2024-08-06)"
|
|
307
|
+
openai_gpt_4o_2024_11_20:
|
|
308
|
+
id: "openai/gpt-4o-2024-11-20"
|
|
309
|
+
label: "GPT-4o (2024-11-20)"
|
|
310
|
+
openai_gpt_4o_mini:
|
|
311
|
+
id: "openai/gpt-4o-mini"
|
|
312
|
+
label: "GPT-4o Mini"
|
|
313
|
+
openai_gpt_5:
|
|
314
|
+
id: "openai/gpt-5"
|
|
315
|
+
label: "GPT-5"
|
|
316
|
+
openai_gpt_5_codex:
|
|
317
|
+
id: "openai/gpt-5-codex"
|
|
318
|
+
label: "GPT-5 Codex"
|
|
319
|
+
openai_gpt_5_mini:
|
|
320
|
+
id: "openai/gpt-5-mini"
|
|
321
|
+
label: "GPT-5 Mini"
|
|
322
|
+
openai_gpt_5_nano:
|
|
323
|
+
id: "openai/gpt-5-nano"
|
|
324
|
+
label: "GPT-5 Nano"
|
|
325
|
+
openai_gpt_5_pro:
|
|
326
|
+
id: "openai/gpt-5-pro"
|
|
327
|
+
label: "GPT-5 Pro"
|
|
328
|
+
openai_gpt_5_1:
|
|
329
|
+
id: "openai/gpt-5.1"
|
|
330
|
+
label: "GPT-5.1"
|
|
331
|
+
openai_gpt_5_1_chat_latest:
|
|
332
|
+
id: "openai/gpt-5.1-chat-latest"
|
|
333
|
+
label: "GPT-5.1 Chat Latest"
|
|
334
|
+
openai_gpt_5_1_codex:
|
|
335
|
+
id: "openai/gpt-5.1-codex"
|
|
336
|
+
label: "GPT-5.1 Codex"
|
|
337
|
+
openai_gpt_5_1_codex_max:
|
|
338
|
+
id: "openai/gpt-5.1-codex-max"
|
|
339
|
+
label: "GPT-5.1 Codex Max"
|
|
340
|
+
openai_gpt_5_1_codex_mini:
|
|
341
|
+
id: "openai/gpt-5.1-codex-mini"
|
|
342
|
+
label: "GPT-5.1 Codex Mini"
|
|
343
|
+
openai_gpt_5_2:
|
|
344
|
+
id: "openai/gpt-5.2"
|
|
345
|
+
label: "GPT-5.2"
|
|
346
|
+
default: true
|
|
347
|
+
openai_gpt_5_2_chat_latest:
|
|
348
|
+
id: "openai/gpt-5.2-chat-latest"
|
|
349
|
+
label: "GPT-5.2 Chat Latest"
|
|
350
|
+
openai_gpt_5_2_codex:
|
|
351
|
+
id: "openai/gpt-5.2-codex"
|
|
352
|
+
label: "GPT-5.2 Codex"
|
|
353
|
+
openai_gpt_5_2_pro:
|
|
354
|
+
id: "openai/gpt-5.2-pro"
|
|
355
|
+
label: "GPT-5.2 Pro"
|
|
356
|
+
openai_gpt_5_3_codex:
|
|
357
|
+
id: "openai/gpt-5.3-codex"
|
|
358
|
+
label: "GPT-5.3 Codex"
|
|
359
|
+
openai_gpt_5_3_codex_spark:
|
|
360
|
+
id: "openai/gpt-5.3-codex-spark"
|
|
361
|
+
label: "GPT-5.3 Codex Spark"
|
|
362
|
+
openai_gpt_5_4:
|
|
363
|
+
id: "openai/gpt-5.4"
|
|
364
|
+
label: "GPT-5.4"
|
|
365
|
+
openai_gpt_5_4_pro:
|
|
366
|
+
id: "openai/gpt-5.4-pro"
|
|
367
|
+
label: "GPT-5.4 Pro"
|
|
368
|
+
openai_o1:
|
|
369
|
+
id: "openai/o1"
|
|
370
|
+
label: "O1"
|
|
371
|
+
openai_o1_mini:
|
|
372
|
+
id: "openai/o1-mini"
|
|
373
|
+
label: "O1 Mini"
|
|
374
|
+
openai_o1_preview:
|
|
375
|
+
id: "openai/o1-preview"
|
|
376
|
+
label: "O1 Preview"
|
|
377
|
+
openai_o1_pro:
|
|
378
|
+
id: "openai/o1-pro"
|
|
379
|
+
label: "O1 Pro"
|
|
380
|
+
openai_o3:
|
|
381
|
+
id: "openai/o3"
|
|
382
|
+
label: "O3"
|
|
383
|
+
openai_o3_deep_research:
|
|
384
|
+
id: "openai/o3-deep-research"
|
|
385
|
+
label: "O3 Deep Research"
|
|
386
|
+
openai_o3_mini:
|
|
387
|
+
id: "openai/o3-mini"
|
|
388
|
+
label: "O3 Mini"
|
|
389
|
+
openai_o3_pro:
|
|
390
|
+
id: "openai/o3-pro"
|
|
391
|
+
label: "O3 Pro"
|
|
392
|
+
openai_o4_mini:
|
|
393
|
+
id: "openai/o4-mini"
|
|
394
|
+
label: "O4 Mini"
|
|
395
|
+
openai_o4_mini_deep_research:
|
|
396
|
+
id: "openai/o4-mini-deep-research"
|
|
397
|
+
label: "O4 Mini Deep Research"
|
|
147
398
|
|
|
148
399
|
aider:
|
|
149
400
|
name: "Aider"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/trajectory",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.22",
|
|
4
4
|
"description": "Trajectory integration utilities (trail/PDERO) for Relay",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:watch": "vitest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agent-relay/config": "3.1.
|
|
25
|
+
"@agent-relay/config": "3.1.22"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.19.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/user-directory",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.22",
|
|
4
4
|
"description": "User directory service for agent-relay (per-user credential storage)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:watch": "vitest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agent-relay/utils": "3.1.
|
|
25
|
+
"@agent-relay/utils": "3.1.22"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.19.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/utils",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.22",
|
|
4
4
|
"description": "Shared utilities for agent-relay: logging, name generation, command resolution, update checking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"vitest": "^3.2.4"
|
|
113
113
|
},
|
|
114
114
|
"dependencies": {
|
|
115
|
-
"@agent-relay/config": "3.1.
|
|
115
|
+
"@agent-relay/config": "3.1.22",
|
|
116
116
|
"compare-versions": "^6.1.1"
|
|
117
117
|
},
|
|
118
118
|
"publishConfig": {
|
package/scripts/postinstall.js
CHANGED
|
@@ -373,6 +373,112 @@ async function installBrokerBinary() {
|
|
|
373
373
|
return false;
|
|
374
374
|
}
|
|
375
375
|
|
|
376
|
+
/**
|
|
377
|
+
* Install the standalone dashboard-server binary.
|
|
378
|
+
*
|
|
379
|
+
* The curl-based installer downloads this binary, but npm install does not.
|
|
380
|
+
* This brings the npm install path to parity so `agent-relay up` can start
|
|
381
|
+
* the dashboard without falling back to `npx @agent-relay/dashboard-server@latest`.
|
|
382
|
+
*/
|
|
383
|
+
async function installDashboardBinary() {
|
|
384
|
+
const homeDir = os.homedir();
|
|
385
|
+
const targetPath = path.join(homeDir, '.local', 'bin', 'relay-dashboard-server');
|
|
386
|
+
|
|
387
|
+
// Already installed?
|
|
388
|
+
if (fs.existsSync(targetPath)) {
|
|
389
|
+
try {
|
|
390
|
+
execSync(`"${targetPath}" --version`, { stdio: 'pipe' });
|
|
391
|
+
info('Dashboard server binary already installed');
|
|
392
|
+
return true;
|
|
393
|
+
} catch {
|
|
394
|
+
// Binary exists but broken — reinstall
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
const platform = os.platform();
|
|
399
|
+
const arch = os.arch();
|
|
400
|
+
const platformMap = { darwin: 'darwin', linux: 'linux' };
|
|
401
|
+
const archMap = { arm64: 'arm64', x64: 'x64' };
|
|
402
|
+
const targetPlatform = platformMap[platform];
|
|
403
|
+
const targetArch = archMap[arch];
|
|
404
|
+
|
|
405
|
+
if (!targetPlatform || !targetArch) {
|
|
406
|
+
info(`No prebuilt dashboard binary for ${platform}-${arch}`);
|
|
407
|
+
return false;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
const binaryName = `relay-dashboard-server-${targetPlatform}-${targetArch}`;
|
|
411
|
+
const downloadUrl = `https://github.com/AgentWorkforce/relay-dashboard/releases/latest/download/${binaryName}`;
|
|
412
|
+
|
|
413
|
+
info(`Downloading dashboard-server binary...`);
|
|
414
|
+
try {
|
|
415
|
+
fs.mkdirSync(path.dirname(targetPath), { recursive: true });
|
|
416
|
+
await downloadBinary(downloadUrl, targetPath);
|
|
417
|
+
fs.chmodSync(targetPath, 0o755);
|
|
418
|
+
resignBinaryForMacOS(targetPath);
|
|
419
|
+
success('Downloaded dashboard-server binary');
|
|
420
|
+
return true;
|
|
421
|
+
} catch (err) {
|
|
422
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
423
|
+
info(`Dashboard binary not available (${message}) — will use npx fallback`);
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Install the relay-acp binary (Zed editor integration).
|
|
430
|
+
*
|
|
431
|
+
* The curl-based installer downloads this binary, but npm install does not.
|
|
432
|
+
* This brings the npm install path to parity.
|
|
433
|
+
*/
|
|
434
|
+
async function installRelayAcpBinary() {
|
|
435
|
+
const homeDir = os.homedir();
|
|
436
|
+
const targetPath = path.join(homeDir, '.local', 'bin', 'relay-acp');
|
|
437
|
+
|
|
438
|
+
// Already installed and functional?
|
|
439
|
+
if (fs.existsSync(targetPath)) {
|
|
440
|
+
try {
|
|
441
|
+
execSync(`"${targetPath}" --version`, { stdio: 'pipe' });
|
|
442
|
+
info('relay-acp binary already installed');
|
|
443
|
+
return true;
|
|
444
|
+
} catch {
|
|
445
|
+
// Binary exists but broken or outdated — reinstall
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
const platform = os.platform();
|
|
450
|
+
const arch = os.arch();
|
|
451
|
+
const platformMap = { darwin: 'darwin', linux: 'linux' };
|
|
452
|
+
const archMap = { arm64: 'arm64', x64: 'x64' };
|
|
453
|
+
const targetPlatform = platformMap[platform];
|
|
454
|
+
const targetArch = archMap[arch];
|
|
455
|
+
|
|
456
|
+
if (!targetPlatform || !targetArch) {
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
const pkgRoot = getPackageRoot();
|
|
461
|
+
const version = getPackageVersion(pkgRoot);
|
|
462
|
+
if (!version) return false;
|
|
463
|
+
|
|
464
|
+
const binaryName = `relay-acp-${targetPlatform}-${targetArch}`;
|
|
465
|
+
const downloadUrl = `https://github.com/AgentWorkforce/relay/releases/download/v${version}/${binaryName}`;
|
|
466
|
+
|
|
467
|
+
info('Downloading relay-acp binary (Zed editor integration)...');
|
|
468
|
+
try {
|
|
469
|
+
fs.mkdirSync(path.dirname(targetPath), { recursive: true });
|
|
470
|
+
await downloadBinary(downloadUrl, targetPath);
|
|
471
|
+
fs.chmodSync(targetPath, 0o755);
|
|
472
|
+
resignBinaryForMacOS(targetPath);
|
|
473
|
+
success('Downloaded relay-acp binary');
|
|
474
|
+
return true;
|
|
475
|
+
} catch (err) {
|
|
476
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
477
|
+
info(`relay-acp binary not available (${message}) — Zed integration requires manual install`);
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
376
482
|
/**
|
|
377
483
|
* Setup workspace package symlinks for global/bundled installs.
|
|
378
484
|
*
|
|
@@ -639,9 +745,20 @@ async function main() {
|
|
|
639
745
|
// Always install dashboard dependencies (needed for build)
|
|
640
746
|
installDashboardDeps();
|
|
641
747
|
|
|
748
|
+
// Install dashboard-server and relay-acp binaries for parity with curl installer
|
|
749
|
+
const hasDashboardBinary = await installDashboardBinary();
|
|
750
|
+
const hasAcpBinary = await installRelayAcpBinary();
|
|
751
|
+
|
|
642
752
|
// Always print diagnostics (even in CI)
|
|
643
753
|
logPostinstallDiagnostics(hasBrokerBinary, sqliteStatus, linkResult);
|
|
644
754
|
|
|
755
|
+
if (hasDashboardBinary) {
|
|
756
|
+
console.log('✓ dashboard-server binary installed');
|
|
757
|
+
}
|
|
758
|
+
if (hasAcpBinary) {
|
|
759
|
+
console.log('✓ relay-acp binary installed (Zed editor integration)');
|
|
760
|
+
}
|
|
761
|
+
|
|
645
762
|
if (!hasBrokerBinary) {
|
|
646
763
|
warn('agent-relay-broker binary not available');
|
|
647
764
|
info('Agent spawning will not work without the broker binary.');
|