agent-relay 3.1.21 → 3.1.23

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 (45) hide show
  1. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  2. package/bin/agent-relay-broker-darwin-x64 +0 -0
  3. package/bin/agent-relay-broker-linux-arm64 +0 -0
  4. package/bin/agent-relay-broker-linux-x64 +0 -0
  5. package/dist/index.cjs +341 -64
  6. package/dist/src/cli/commands/core.d.ts.map +1 -1
  7. package/dist/src/cli/commands/core.js +1 -0
  8. package/dist/src/cli/commands/core.js.map +1 -1
  9. package/dist/src/cli/lib/broker-lifecycle.d.ts +1 -0
  10. package/dist/src/cli/lib/broker-lifecycle.d.ts.map +1 -1
  11. package/dist/src/cli/lib/broker-lifecycle.js +107 -0
  12. package/dist/src/cli/lib/broker-lifecycle.js.map +1 -1
  13. package/dist/src/cli/lib/core-maintenance.d.ts.map +1 -1
  14. package/dist/src/cli/lib/core-maintenance.js +46 -1
  15. package/dist/src/cli/lib/core-maintenance.js.map +1 -1
  16. package/package.json +8 -8
  17. package/packages/acp-bridge/package.json +2 -2
  18. package/packages/config/dist/cli-registry.generated.d.ts +427 -67
  19. package/packages/config/dist/cli-registry.generated.d.ts.map +1 -1
  20. package/packages/config/dist/cli-registry.generated.js +334 -54
  21. package/packages/config/dist/cli-registry.generated.js.map +1 -1
  22. package/packages/config/package.json +1 -1
  23. package/packages/config/src/cli-registry.generated.ts +342 -54
  24. package/packages/hooks/package.json +4 -4
  25. package/packages/memory/package.json +2 -2
  26. package/packages/openclaw/package.json +2 -2
  27. package/packages/policy/package.json +2 -2
  28. package/packages/sdk/dist/__tests__/spawn-from-env.test.js +28 -12
  29. package/packages/sdk/dist/__tests__/spawn-from-env.test.js.map +1 -1
  30. package/packages/sdk/dist/spawn-from-env.d.ts +2 -1
  31. package/packages/sdk/dist/spawn-from-env.d.ts.map +1 -1
  32. package/packages/sdk/dist/spawn-from-env.js +20 -9
  33. package/packages/sdk/dist/spawn-from-env.js.map +1 -1
  34. package/packages/sdk/package.json +2 -2
  35. package/packages/sdk/src/__tests__/spawn-from-env.test.ts +37 -12
  36. package/packages/sdk/src/spawn-from-env.ts +26 -9
  37. package/packages/sdk-py/agent_relay/__init__.py +19 -16
  38. package/packages/sdk-py/agent_relay/models.py +230 -38
  39. package/packages/sdk-py/pyproject.toml +1 -1
  40. package/packages/shared/cli-registry.yaml +293 -42
  41. package/packages/telemetry/package.json +1 -1
  42. package/packages/trajectory/package.json +2 -2
  43. package/packages/user-directory/package.json +2 -2
  44. package/packages/utils/package.json +2 -2
  45. package/scripts/postinstall.js +117 -0
@@ -12,14 +12,18 @@
12
12
  * Update packages/shared/cli-registry.yaml to change versions.
13
13
  */
14
14
  export const CLIVersions = {
15
- /** Claude Code v2.1.50 */
16
- CLAUDE: '2.1.50',
17
- /** Codex CLI v0.104.0 */
18
- CODEX: '0.104.0',
19
- /** Gemini CLI v0.29.5 */
20
- GEMINI: '0.29.5',
21
- /** Cursor v0.48.6 */
22
- CURSOR: '0.48.6',
15
+ /** Claude Code v2.1.72 */
16
+ CLAUDE: '2.1.72',
17
+ /** Codex CLI v0.114.0 */
18
+ CODEX: '0.114.0',
19
+ /** Gemini CLI v0.33.0 */
20
+ GEMINI: '0.33.0',
21
+ /** Cursor v2026.02.27-e7d2ef6 */
22
+ CURSOR: '2026.02.27-e7d2ef6',
23
+ /** Droid v0.1.0 */
24
+ DROID: '0.1.0',
25
+ /** OpenCode v1.2.24 */
26
+ OPENCODE: '1.2.24',
23
27
  /** Aider v0.72.1 */
24
28
  AIDER: '0.72.1',
25
29
  /** Goose v1.0.16 */
@@ -34,6 +38,8 @@ export const CLIs = {
34
38
  CODEX: 'codex',
35
39
  GEMINI: 'gemini',
36
40
  CURSOR: 'cursor',
41
+ DROID: 'droid',
42
+ OPENCODE: 'opencode',
37
43
  AIDER: 'aider',
38
44
  GOOSE: 'goose',
39
45
  } as const;
@@ -58,16 +64,18 @@ export type ClaudeModel = (typeof ClaudeModels)[keyof typeof ClaudeModels];
58
64
  * Codex CLI model identifiers.
59
65
  */
60
66
  export const CodexModels = {
61
- /** GPT-5.2 Codex Frontier agentic coding model (default) */
62
- GPT_5_2_CODEX: 'gpt-5.2-codex',
63
- /** GPT-5.3 Codex — Latest frontier agentic coding model */
67
+ /** GPT-5.4Latest frontier agentic coding model (default) */
68
+ GPT_5_4: 'gpt-5.4',
69
+ /** GPT-5.3 Codex — Frontier agentic coding model */
64
70
  GPT_5_3_CODEX: 'gpt-5.3-codex',
65
71
  /** GPT-5.3 Codex Spark — Ultra-fast coding model */
66
72
  GPT_5_3_CODEX_SPARK: 'gpt-5.3-codex-spark',
67
- /** GPT-5.1 Codex Max Deep and fast reasoning */
68
- GPT_5_1_CODEX_MAX: 'gpt-5.1-codex-max',
73
+ /** GPT-5.2 Codex — Frontier agentic coding model */
74
+ GPT_5_2_CODEX: 'gpt-5.2-codex',
69
75
  /** GPT-5.2 — Frontier model, knowledge & reasoning */
70
76
  GPT_5_2: 'gpt-5.2',
77
+ /** GPT-5.1 Codex Max — Deep and fast reasoning */
78
+ GPT_5_1_CODEX_MAX: 'gpt-5.1-codex-max',
71
79
  /** GPT-5.1 Codex Mini — Cheaper, faster */
72
80
  GPT_5_1_CODEX_MINI: 'gpt-5.1-codex-mini',
73
81
  } as const;
@@ -78,9 +86,11 @@ export type CodexModel = (typeof CodexModels)[keyof typeof CodexModels];
78
86
  * Gemini CLI model identifiers.
79
87
  */
80
88
  export const GeminiModels = {
81
- /** Gemini 3 Pro Preview */
82
- GEMINI_3_PRO_PREVIEW: 'gemini-3-pro-preview',
83
- /** Gemini 2.5 Pro (default) */
89
+ /** Gemini 3.1 Pro Preview (default) */
90
+ GEMINI_3_1_PRO_PREVIEW: 'gemini-3.1-pro-preview',
91
+ /** Gemini 3 Flash Preview */
92
+ GEMINI_3_FLASH_PREVIEW: 'gemini-3-flash-preview',
93
+ /** Gemini 2.5 Pro */
84
94
  GEMINI_2_5_PRO: 'gemini-2.5-pro',
85
95
  /** Gemini 2.5 Flash */
86
96
  GEMINI_2_5_FLASH: 'gemini-2.5-flash',
@@ -94,52 +104,220 @@ export type GeminiModel = (typeof GeminiModels)[keyof typeof GeminiModels];
94
104
  * Cursor model identifiers.
95
105
  */
96
106
  export const CursorModels = {
97
- /** Claude 4.5 Opus (Thinking) (default) */
98
- OPUS_4_5_THINKING: 'opus-4.5-thinking',
107
+ /** Claude 4.6 Opus (Thinking) (default) */
108
+ OPUS_4_6_THINKING: 'opus-4.6-thinking',
109
+ /** Claude 4.6 Opus */
110
+ OPUS_4_6: 'opus-4.6',
99
111
  /** Claude 4.5 Opus */
100
112
  OPUS_4_5: 'opus-4.5',
113
+ /** Claude 4.5 Opus (Thinking) */
114
+ OPUS_4_5_THINKING: 'opus-4.5-thinking',
115
+ /** Claude 4.6 Sonnet */
116
+ SONNET_4_6: 'sonnet-4.6',
117
+ /** Claude 4.6 Sonnet (Thinking) */
118
+ SONNET_4_6_THINKING: 'sonnet-4.6-thinking',
101
119
  /** Claude 4.5 Sonnet */
102
120
  SONNET_4_5: 'sonnet-4.5',
103
121
  /** Claude 4.5 Sonnet (Thinking) */
104
122
  SONNET_4_5_THINKING: 'sonnet-4.5-thinking',
105
- /** GPT-5.2 Codex */
106
- GPT_5_2_CODEX: 'gpt-5.2-codex',
107
- /** GPT-5.2 Codex High */
108
- GPT_5_2_CODEX_HIGH: 'gpt-5.2-codex-high',
109
- /** GPT-5.2 Codex Low */
110
- GPT_5_2_CODEX_LOW: 'gpt-5.2-codex-low',
123
+ /** Composer 1.5 */
124
+ COMPOSER_1_5: 'composer-1.5',
125
+ /** Composer 1 */
126
+ COMPOSER_1: 'composer-1',
127
+ /** GPT-5.4 Extra High */
128
+ GPT_5_4_XHIGH: 'gpt-5.4-xhigh',
129
+ /** GPT-5.4 Extra High Fast */
130
+ GPT_5_4_XHIGH_FAST: 'gpt-5.4-xhigh-fast',
131
+ /** GPT-5.4 High */
132
+ GPT_5_4_HIGH: 'gpt-5.4-high',
133
+ /** GPT-5.4 High Fast */
134
+ GPT_5_4_HIGH_FAST: 'gpt-5.4-high-fast',
135
+ /** GPT-5.4 */
136
+ GPT_5_4_MEDIUM: 'gpt-5.4-medium',
137
+ /** GPT-5.4 Fast */
138
+ GPT_5_4_MEDIUM_FAST: 'gpt-5.4-medium-fast',
139
+ /** GPT-5.4 Low */
140
+ GPT_5_4_LOW: 'gpt-5.4-low',
141
+ /** GPT-5.3 Codex Extra High */
142
+ GPT_5_3_CODEX_XHIGH: 'gpt-5.3-codex-xhigh',
143
+ /** GPT-5.3 Codex Extra High Fast */
144
+ GPT_5_3_CODEX_XHIGH_FAST: 'gpt-5.3-codex-xhigh-fast',
145
+ /** GPT-5.3 Codex High */
146
+ GPT_5_3_CODEX_HIGH: 'gpt-5.3-codex-high',
147
+ /** GPT-5.3 Codex High Fast */
148
+ GPT_5_3_CODEX_HIGH_FAST: 'gpt-5.3-codex-high-fast',
149
+ /** GPT-5.3 Codex */
150
+ GPT_5_3_CODEX: 'gpt-5.3-codex',
151
+ /** GPT-5.3 Codex Fast */
152
+ GPT_5_3_CODEX_FAST: 'gpt-5.3-codex-fast',
153
+ /** GPT-5.3 Codex Low */
154
+ GPT_5_3_CODEX_LOW: 'gpt-5.3-codex-low',
155
+ /** GPT-5.3 Codex Low Fast */
156
+ GPT_5_3_CODEX_LOW_FAST: 'gpt-5.3-codex-low-fast',
157
+ /** GPT-5.3 Codex Spark */
158
+ GPT_5_3_CODEX_SPARK_PREVIEW: 'gpt-5.3-codex-spark-preview',
111
159
  /** GPT-5.2 Codex Extra High */
112
160
  GPT_5_2_CODEX_XHIGH: 'gpt-5.2-codex-xhigh',
113
- /** GPT-5.2 Codex Fast */
114
- GPT_5_2_CODEX_FAST: 'gpt-5.2-codex-fast',
161
+ /** GPT-5.2 Codex Extra High Fast */
162
+ GPT_5_2_CODEX_XHIGH_FAST: 'gpt-5.2-codex-xhigh-fast',
163
+ /** GPT-5.2 Codex High */
164
+ GPT_5_2_CODEX_HIGH: 'gpt-5.2-codex-high',
115
165
  /** GPT-5.2 Codex High Fast */
116
166
  GPT_5_2_CODEX_HIGH_FAST: 'gpt-5.2-codex-high-fast',
167
+ /** GPT-5.2 Codex */
168
+ GPT_5_2_CODEX: 'gpt-5.2-codex',
169
+ /** GPT-5.2 Codex Fast */
170
+ GPT_5_2_CODEX_FAST: 'gpt-5.2-codex-fast',
171
+ /** GPT-5.2 Codex Low */
172
+ GPT_5_2_CODEX_LOW: 'gpt-5.2-codex-low',
117
173
  /** GPT-5.2 Codex Low Fast */
118
174
  GPT_5_2_CODEX_LOW_FAST: 'gpt-5.2-codex-low-fast',
119
- /** GPT-5.2 Codex Extra High Fast */
120
- GPT_5_2_CODEX_XHIGH_FAST: 'gpt-5.2-codex-xhigh-fast',
121
- /** GPT-5.1 Codex Max */
122
- GPT_5_1_CODEX_MAX: 'gpt-5.1-codex-max',
123
- /** GPT-5.1 Codex Max High */
124
- GPT_5_1_CODEX_MAX_HIGH: 'gpt-5.1-codex-max-high',
125
175
  /** GPT-5.2 */
126
176
  GPT_5_2: 'gpt-5.2',
127
177
  /** GPT-5.2 High */
128
178
  GPT_5_2_HIGH: 'gpt-5.2-high',
179
+ /** GPT-5.1 Codex Max */
180
+ GPT_5_1_CODEX_MAX: 'gpt-5.1-codex-max',
181
+ /** GPT-5.1 Codex Max High */
182
+ GPT_5_1_CODEX_MAX_HIGH: 'gpt-5.1-codex-max-high',
183
+ /** GPT-5.1 Codex Mini */
184
+ GPT_5_1_CODEX_MINI: 'gpt-5.1-codex-mini',
129
185
  /** GPT-5.1 High */
130
186
  GPT_5_1_HIGH: 'gpt-5.1-high',
187
+ /** Gemini 3.1 Pro */
188
+ GEMINI_3_1_PRO: 'gemini-3.1-pro',
131
189
  /** Gemini 3 Pro */
132
190
  GEMINI_3_PRO: 'gemini-3-pro',
133
191
  /** Gemini 3 Flash */
134
192
  GEMINI_3_FLASH: 'gemini-3-flash',
135
- /** Composer 1 */
136
- COMPOSER_1: 'composer-1',
137
193
  /** Grok */
138
194
  GROK: 'grok',
195
+ /** Kimi K2.5 */
196
+ KIMI_K2_5: 'kimi-k2.5',
139
197
  } as const;
140
198
 
141
199
  export type CursorModel = (typeof CursorModels)[keyof typeof CursorModels];
142
200
 
201
+ /**
202
+ * Droid model identifiers.
203
+ */
204
+ export const DroidModels = {
205
+ /** Opus 4.6 Fast Mode (12x) (default) */
206
+ OPUS_4_6_FAST: 'opus-4.6-fast',
207
+ /** Opus 4.5 (2x) */
208
+ OPUS_4_5: 'opus-4.5',
209
+ /** Sonnet 4.5 (1.2x) */
210
+ SONNET_4_5: 'sonnet-4.5',
211
+ /** Haiku 4.5 (0.4x) */
212
+ HAIKU_4_5: 'haiku-4.5',
213
+ /** GPT-5.2 (0.7x) */
214
+ GPT_5_2: 'gpt-5.2',
215
+ /** GPT-5.2 Codex (0.7x) */
216
+ GPT_5_2_CODEX: 'gpt-5.2-codex',
217
+ /** Gemini 3 Flash (0.2x) */
218
+ GEMINI_3_FLASH: 'gemini-3-flash',
219
+ /** Droid Core (GLM-4.7) (0.25x) */
220
+ DROID_CORE: 'droid-core-glm-4.7',
221
+ } as const;
222
+
223
+ export type DroidModel = (typeof DroidModels)[keyof typeof DroidModels];
224
+
225
+ /**
226
+ * OpenCode model identifiers.
227
+ */
228
+ export const OpencodeModels = {
229
+ /** Big Pickle */
230
+ OPENCODE_BIG_PICKLE: 'opencode/big-pickle',
231
+ /** GPT-5 Nano (OpenCode) */
232
+ OPENCODE_GPT_5_NANO: 'opencode/gpt-5-nano',
233
+ /** Mimo V2 Flash Free */
234
+ OPENCODE_MIMO_V2_FLASH_FREE: 'opencode/mimo-v2-flash-free',
235
+ /** MiniMax M2.5 Free */
236
+ OPENCODE_MINIMAX_M2_5_FREE: 'opencode/minimax-m2.5-free',
237
+ /** Codex Mini Latest */
238
+ OPENAI_CODEX_MINI_LATEST: 'openai/codex-mini-latest',
239
+ /** GPT-3.5 Turbo */
240
+ OPENAI_GPT_3_5_TURBO: 'openai/gpt-3.5-turbo',
241
+ /** GPT-4 */
242
+ OPENAI_GPT_4: 'openai/gpt-4',
243
+ /** GPT-4 Turbo */
244
+ OPENAI_GPT_4_TURBO: 'openai/gpt-4-turbo',
245
+ /** GPT-4.1 */
246
+ OPENAI_GPT_4_1: 'openai/gpt-4.1',
247
+ /** GPT-4.1 Mini */
248
+ OPENAI_GPT_4_1_MINI: 'openai/gpt-4.1-mini',
249
+ /** GPT-4.1 Nano */
250
+ OPENAI_GPT_4_1_NANO: 'openai/gpt-4.1-nano',
251
+ /** GPT-4o */
252
+ OPENAI_GPT_4O: 'openai/gpt-4o',
253
+ /** GPT-4o (2024-05-13) */
254
+ OPENAI_GPT_4O_2024_05_13: 'openai/gpt-4o-2024-05-13',
255
+ /** GPT-4o (2024-08-06) */
256
+ OPENAI_GPT_4O_2024_08_06: 'openai/gpt-4o-2024-08-06',
257
+ /** GPT-4o (2024-11-20) */
258
+ OPENAI_GPT_4O_2024_11_20: 'openai/gpt-4o-2024-11-20',
259
+ /** GPT-4o Mini */
260
+ OPENAI_GPT_4O_MINI: 'openai/gpt-4o-mini',
261
+ /** GPT-5 */
262
+ OPENAI_GPT_5: 'openai/gpt-5',
263
+ /** GPT-5 Codex */
264
+ OPENAI_GPT_5_CODEX: 'openai/gpt-5-codex',
265
+ /** GPT-5 Mini */
266
+ OPENAI_GPT_5_MINI: 'openai/gpt-5-mini',
267
+ /** GPT-5 Nano */
268
+ OPENAI_GPT_5_NANO: 'openai/gpt-5-nano',
269
+ /** GPT-5 Pro */
270
+ OPENAI_GPT_5_PRO: 'openai/gpt-5-pro',
271
+ /** GPT-5.1 */
272
+ OPENAI_GPT_5_1: 'openai/gpt-5.1',
273
+ /** GPT-5.1 Chat Latest */
274
+ OPENAI_GPT_5_1_CHAT_LATEST: 'openai/gpt-5.1-chat-latest',
275
+ /** GPT-5.1 Codex */
276
+ OPENAI_GPT_5_1_CODEX: 'openai/gpt-5.1-codex',
277
+ /** GPT-5.1 Codex Max */
278
+ OPENAI_GPT_5_1_CODEX_MAX: 'openai/gpt-5.1-codex-max',
279
+ /** GPT-5.1 Codex Mini */
280
+ OPENAI_GPT_5_1_CODEX_MINI: 'openai/gpt-5.1-codex-mini',
281
+ /** GPT-5.2 (default) */
282
+ OPENAI_GPT_5_2: 'openai/gpt-5.2',
283
+ /** GPT-5.2 Chat Latest */
284
+ OPENAI_GPT_5_2_CHAT_LATEST: 'openai/gpt-5.2-chat-latest',
285
+ /** GPT-5.2 Codex */
286
+ OPENAI_GPT_5_2_CODEX: 'openai/gpt-5.2-codex',
287
+ /** GPT-5.2 Pro */
288
+ OPENAI_GPT_5_2_PRO: 'openai/gpt-5.2-pro',
289
+ /** GPT-5.3 Codex */
290
+ OPENAI_GPT_5_3_CODEX: 'openai/gpt-5.3-codex',
291
+ /** GPT-5.3 Codex Spark */
292
+ OPENAI_GPT_5_3_CODEX_SPARK: 'openai/gpt-5.3-codex-spark',
293
+ /** GPT-5.4 */
294
+ OPENAI_GPT_5_4: 'openai/gpt-5.4',
295
+ /** GPT-5.4 Pro */
296
+ OPENAI_GPT_5_4_PRO: 'openai/gpt-5.4-pro',
297
+ /** O1 */
298
+ OPENAI_O1: 'openai/o1',
299
+ /** O1 Mini */
300
+ OPENAI_O1_MINI: 'openai/o1-mini',
301
+ /** O1 Preview */
302
+ OPENAI_O1_PREVIEW: 'openai/o1-preview',
303
+ /** O1 Pro */
304
+ OPENAI_O1_PRO: 'openai/o1-pro',
305
+ /** O3 */
306
+ OPENAI_O3: 'openai/o3',
307
+ /** O3 Deep Research */
308
+ OPENAI_O3_DEEP_RESEARCH: 'openai/o3-deep-research',
309
+ /** O3 Mini */
310
+ OPENAI_O3_MINI: 'openai/o3-mini',
311
+ /** O3 Pro */
312
+ OPENAI_O3_PRO: 'openai/o3-pro',
313
+ /** O4 Mini */
314
+ OPENAI_O4_MINI: 'openai/o4-mini',
315
+ /** O4 Mini Deep Research */
316
+ OPENAI_O4_MINI_DEEP_RESEARCH: 'openai/o4-mini-deep-research',
317
+ } as const;
318
+
319
+ export type OpencodeModel = (typeof OpencodeModels)[keyof typeof OpencodeModels];
320
+
143
321
  /** Model option type for UI dropdowns */
144
322
  export interface ModelOption {
145
323
  value: string;
@@ -159,11 +337,12 @@ export const CLAUDE_MODEL_OPTIONS: ModelOption[] = [
159
337
  * Codex CLI model options for UI dropdowns.
160
338
  */
161
339
  export const CODEX_MODEL_OPTIONS: ModelOption[] = [
162
- { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex Frontier agentic coding model' },
163
- { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex — Latest frontier agentic coding model' },
340
+ { value: 'gpt-5.4', label: 'GPT-5.4Latest frontier agentic coding model' },
341
+ { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex — Frontier agentic coding model' },
164
342
  { value: 'gpt-5.3-codex-spark', label: 'GPT-5.3 Codex Spark — Ultra-fast coding model' },
165
- { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max Deep and fast reasoning' },
343
+ { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex — Frontier agentic coding model' },
166
344
  { value: 'gpt-5.2', label: 'GPT-5.2 — Frontier model, knowledge & reasoning' },
345
+ { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max — Deep and fast reasoning' },
167
346
  { value: 'gpt-5.1-codex-mini', label: 'GPT-5.1 Codex Mini — Cheaper, faster' },
168
347
  ];
169
348
 
@@ -171,7 +350,8 @@ export const CODEX_MODEL_OPTIONS: ModelOption[] = [
171
350
  * Gemini CLI model options for UI dropdowns.
172
351
  */
173
352
  export const GEMINI_MODEL_OPTIONS: ModelOption[] = [
174
- { value: 'gemini-3-pro-preview', label: 'Gemini 3 Pro Preview' },
353
+ { value: 'gemini-3.1-pro-preview', label: 'Gemini 3.1 Pro Preview' },
354
+ { value: 'gemini-3-flash-preview', label: 'Gemini 3 Flash Preview' },
175
355
  { value: 'gemini-2.5-pro', label: 'Gemini 2.5 Pro' },
176
356
  { value: 'gemini-2.5-flash', label: 'Gemini 2.5 Flash' },
177
357
  { value: 'gemini-2.5-flash-lite', label: 'Gemini 2.5 Flash Lite' },
@@ -181,27 +361,115 @@ export const GEMINI_MODEL_OPTIONS: ModelOption[] = [
181
361
  * Cursor model options for UI dropdowns.
182
362
  */
183
363
  export const CURSOR_MODEL_OPTIONS: ModelOption[] = [
184
- { value: 'opus-4.5-thinking', label: 'Claude 4.5 Opus (Thinking)' },
364
+ { value: 'opus-4.6-thinking', label: 'Claude 4.6 Opus (Thinking)' },
365
+ { value: 'opus-4.6', label: 'Claude 4.6 Opus' },
185
366
  { value: 'opus-4.5', label: 'Claude 4.5 Opus' },
367
+ { value: 'opus-4.5-thinking', label: 'Claude 4.5 Opus (Thinking)' },
368
+ { value: 'sonnet-4.6', label: 'Claude 4.6 Sonnet' },
369
+ { value: 'sonnet-4.6-thinking', label: 'Claude 4.6 Sonnet (Thinking)' },
186
370
  { value: 'sonnet-4.5', label: 'Claude 4.5 Sonnet' },
187
371
  { value: 'sonnet-4.5-thinking', label: 'Claude 4.5 Sonnet (Thinking)' },
188
- { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex' },
189
- { value: 'gpt-5.2-codex-high', label: 'GPT-5.2 Codex High' },
190
- { value: 'gpt-5.2-codex-low', label: 'GPT-5.2 Codex Low' },
372
+ { value: 'composer-1.5', label: 'Composer 1.5' },
373
+ { value: 'composer-1', label: 'Composer 1' },
374
+ { value: 'gpt-5.4-xhigh', label: 'GPT-5.4 Extra High' },
375
+ { value: 'gpt-5.4-xhigh-fast', label: 'GPT-5.4 Extra High Fast' },
376
+ { value: 'gpt-5.4-high', label: 'GPT-5.4 High' },
377
+ { value: 'gpt-5.4-high-fast', label: 'GPT-5.4 High Fast' },
378
+ { value: 'gpt-5.4-medium', label: 'GPT-5.4' },
379
+ { value: 'gpt-5.4-medium-fast', label: 'GPT-5.4 Fast' },
380
+ { value: 'gpt-5.4-low', label: 'GPT-5.4 Low' },
381
+ { value: 'gpt-5.3-codex-xhigh', label: 'GPT-5.3 Codex Extra High' },
382
+ { value: 'gpt-5.3-codex-xhigh-fast', label: 'GPT-5.3 Codex Extra High Fast' },
383
+ { value: 'gpt-5.3-codex-high', label: 'GPT-5.3 Codex High' },
384
+ { value: 'gpt-5.3-codex-high-fast', label: 'GPT-5.3 Codex High Fast' },
385
+ { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex' },
386
+ { value: 'gpt-5.3-codex-fast', label: 'GPT-5.3 Codex Fast' },
387
+ { value: 'gpt-5.3-codex-low', label: 'GPT-5.3 Codex Low' },
388
+ { value: 'gpt-5.3-codex-low-fast', label: 'GPT-5.3 Codex Low Fast' },
389
+ { value: 'gpt-5.3-codex-spark-preview', label: 'GPT-5.3 Codex Spark' },
191
390
  { value: 'gpt-5.2-codex-xhigh', label: 'GPT-5.2 Codex Extra High' },
192
- { value: 'gpt-5.2-codex-fast', label: 'GPT-5.2 Codex Fast' },
391
+ { value: 'gpt-5.2-codex-xhigh-fast', label: 'GPT-5.2 Codex Extra High Fast' },
392
+ { value: 'gpt-5.2-codex-high', label: 'GPT-5.2 Codex High' },
193
393
  { value: 'gpt-5.2-codex-high-fast', label: 'GPT-5.2 Codex High Fast' },
394
+ { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex' },
395
+ { value: 'gpt-5.2-codex-fast', label: 'GPT-5.2 Codex Fast' },
396
+ { value: 'gpt-5.2-codex-low', label: 'GPT-5.2 Codex Low' },
194
397
  { value: 'gpt-5.2-codex-low-fast', label: 'GPT-5.2 Codex Low Fast' },
195
- { value: 'gpt-5.2-codex-xhigh-fast', label: 'GPT-5.2 Codex Extra High Fast' },
196
- { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max' },
197
- { value: 'gpt-5.1-codex-max-high', label: 'GPT-5.1 Codex Max High' },
198
398
  { value: 'gpt-5.2', label: 'GPT-5.2' },
199
399
  { value: 'gpt-5.2-high', label: 'GPT-5.2 High' },
400
+ { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max' },
401
+ { value: 'gpt-5.1-codex-max-high', label: 'GPT-5.1 Codex Max High' },
402
+ { value: 'gpt-5.1-codex-mini', label: 'GPT-5.1 Codex Mini' },
200
403
  { value: 'gpt-5.1-high', label: 'GPT-5.1 High' },
404
+ { value: 'gemini-3.1-pro', label: 'Gemini 3.1 Pro' },
201
405
  { value: 'gemini-3-pro', label: 'Gemini 3 Pro' },
202
406
  { value: 'gemini-3-flash', label: 'Gemini 3 Flash' },
203
- { value: 'composer-1', label: 'Composer 1' },
204
407
  { value: 'grok', label: 'Grok' },
408
+ { value: 'kimi-k2.5', label: 'Kimi K2.5' },
409
+ ];
410
+
411
+ /**
412
+ * Droid model options for UI dropdowns.
413
+ */
414
+ export const DROID_MODEL_OPTIONS: ModelOption[] = [
415
+ { value: 'opus-4.6-fast', label: 'Opus 4.6 Fast Mode (12x)' },
416
+ { value: 'opus-4.5', label: 'Opus 4.5 (2x)' },
417
+ { value: 'sonnet-4.5', label: 'Sonnet 4.5 (1.2x)' },
418
+ { value: 'haiku-4.5', label: 'Haiku 4.5 (0.4x)' },
419
+ { value: 'gpt-5.2', label: 'GPT-5.2 (0.7x)' },
420
+ { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex (0.7x)' },
421
+ { value: 'gemini-3-flash', label: 'Gemini 3 Flash (0.2x)' },
422
+ { value: 'droid-core-glm-4.7', label: 'Droid Core (GLM-4.7) (0.25x)' },
423
+ ];
424
+
425
+ /**
426
+ * OpenCode model options for UI dropdowns.
427
+ */
428
+ export const OPENCODE_MODEL_OPTIONS: ModelOption[] = [
429
+ { value: 'opencode/big-pickle', label: 'Big Pickle' },
430
+ { value: 'opencode/gpt-5-nano', label: 'GPT-5 Nano (OpenCode)' },
431
+ { value: 'opencode/mimo-v2-flash-free', label: 'Mimo V2 Flash Free' },
432
+ { value: 'opencode/minimax-m2.5-free', label: 'MiniMax M2.5 Free' },
433
+ { value: 'openai/codex-mini-latest', label: 'Codex Mini Latest' },
434
+ { value: 'openai/gpt-3.5-turbo', label: 'GPT-3.5 Turbo' },
435
+ { value: 'openai/gpt-4', label: 'GPT-4' },
436
+ { value: 'openai/gpt-4-turbo', label: 'GPT-4 Turbo' },
437
+ { value: 'openai/gpt-4.1', label: 'GPT-4.1' },
438
+ { value: 'openai/gpt-4.1-mini', label: 'GPT-4.1 Mini' },
439
+ { value: 'openai/gpt-4.1-nano', label: 'GPT-4.1 Nano' },
440
+ { value: 'openai/gpt-4o', label: 'GPT-4o' },
441
+ { value: 'openai/gpt-4o-2024-05-13', label: 'GPT-4o (2024-05-13)' },
442
+ { value: 'openai/gpt-4o-2024-08-06', label: 'GPT-4o (2024-08-06)' },
443
+ { value: 'openai/gpt-4o-2024-11-20', label: 'GPT-4o (2024-11-20)' },
444
+ { value: 'openai/gpt-4o-mini', label: 'GPT-4o Mini' },
445
+ { value: 'openai/gpt-5', label: 'GPT-5' },
446
+ { value: 'openai/gpt-5-codex', label: 'GPT-5 Codex' },
447
+ { value: 'openai/gpt-5-mini', label: 'GPT-5 Mini' },
448
+ { value: 'openai/gpt-5-nano', label: 'GPT-5 Nano' },
449
+ { value: 'openai/gpt-5-pro', label: 'GPT-5 Pro' },
450
+ { value: 'openai/gpt-5.1', label: 'GPT-5.1' },
451
+ { value: 'openai/gpt-5.1-chat-latest', label: 'GPT-5.1 Chat Latest' },
452
+ { value: 'openai/gpt-5.1-codex', label: 'GPT-5.1 Codex' },
453
+ { value: 'openai/gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max' },
454
+ { value: 'openai/gpt-5.1-codex-mini', label: 'GPT-5.1 Codex Mini' },
455
+ { value: 'openai/gpt-5.2', label: 'GPT-5.2' },
456
+ { value: 'openai/gpt-5.2-chat-latest', label: 'GPT-5.2 Chat Latest' },
457
+ { value: 'openai/gpt-5.2-codex', label: 'GPT-5.2 Codex' },
458
+ { value: 'openai/gpt-5.2-pro', label: 'GPT-5.2 Pro' },
459
+ { value: 'openai/gpt-5.3-codex', label: 'GPT-5.3 Codex' },
460
+ { value: 'openai/gpt-5.3-codex-spark', label: 'GPT-5.3 Codex Spark' },
461
+ { value: 'openai/gpt-5.4', label: 'GPT-5.4' },
462
+ { value: 'openai/gpt-5.4-pro', label: 'GPT-5.4 Pro' },
463
+ { value: 'openai/o1', label: 'O1' },
464
+ { value: 'openai/o1-mini', label: 'O1 Mini' },
465
+ { value: 'openai/o1-preview', label: 'O1 Preview' },
466
+ { value: 'openai/o1-pro', label: 'O1 Pro' },
467
+ { value: 'openai/o3', label: 'O3' },
468
+ { value: 'openai/o3-deep-research', label: 'O3 Deep Research' },
469
+ { value: 'openai/o3-mini', label: 'O3 Mini' },
470
+ { value: 'openai/o3-pro', label: 'O3 Pro' },
471
+ { value: 'openai/o4-mini', label: 'O4 Mini' },
472
+ { value: 'openai/o4-mini-deep-research', label: 'O4 Mini Deep Research' },
205
473
  ];
206
474
 
207
475
  /**
@@ -220,6 +488,8 @@ export const Models = {
220
488
  Codex: CodexModels,
221
489
  Gemini: GeminiModels,
222
490
  Cursor: CursorModels,
491
+ Droid: DroidModels,
492
+ Opencode: OpencodeModels,
223
493
  } as const;
224
494
 
225
495
  /**
@@ -239,6 +509,8 @@ export const ModelOptions = {
239
509
  Codex: CODEX_MODEL_OPTIONS,
240
510
  Gemini: GEMINI_MODEL_OPTIONS,
241
511
  Cursor: CURSOR_MODEL_OPTIONS,
512
+ Droid: DROID_MODEL_OPTIONS,
513
+ Opencode: OPENCODE_MODEL_OPTIONS,
242
514
  } as const;
243
515
 
244
516
  /**
@@ -276,31 +548,45 @@ export const CLIRegistry = {
276
548
  claude: {
277
549
  name: 'Claude Code',
278
550
  package: '@anthropic-ai/claude-code',
279
- version: '2.1.50',
551
+ version: '2.1.72',
280
552
  install: 'npm install -g @anthropic-ai/claude-code',
281
553
  npmLink: 'https://www.npmjs.com/package/@anthropic-ai',
282
554
  },
283
555
  codex: {
284
556
  name: 'Codex CLI',
285
557
  package: '@openai/codex',
286
- version: '0.104.0',
558
+ version: '0.114.0',
287
559
  install: 'npm install -g @openai/codex',
288
560
  npmLink: 'https://www.npmjs.com/package/@openai/codex',
289
561
  },
290
562
  gemini: {
291
563
  name: 'Gemini CLI',
292
564
  package: '@google/gemini-cli',
293
- version: '0.29.5',
565
+ version: '0.33.0',
294
566
  install: 'npm install -g @google/gemini-cli',
295
567
  npmLink: 'https://www.npmjs.com/package/@google/gemini-cli',
296
568
  },
297
569
  cursor: {
298
570
  name: 'Cursor',
299
571
  package: 'cursor',
300
- version: '0.48.6',
572
+ version: '2026.02.27-e7d2ef6',
301
573
  install: 'Download from cursor.com',
302
574
  npmLink: undefined,
303
575
  },
576
+ droid: {
577
+ name: 'Droid',
578
+ package: 'droid',
579
+ version: '0.1.0',
580
+ install: 'Download from droid.dev',
581
+ npmLink: undefined,
582
+ },
583
+ opencode: {
584
+ name: 'OpenCode',
585
+ package: 'opencode-ai',
586
+ version: '1.2.24',
587
+ install: 'npm install -g opencode-ai',
588
+ npmLink: 'https://www.npmjs.com/package/opencode-ai',
589
+ },
304
590
  aider: {
305
591
  name: 'Aider',
306
592
  package: 'aider-chat',
@@ -322,7 +608,9 @@ export const CLIRegistry = {
322
608
  */
323
609
  export const DefaultModels = {
324
610
  claude: 'sonnet',
325
- codex: 'gpt-5.2-codex',
326
- gemini: 'gemini-2.5-pro',
327
- cursor: 'opus-4.5-thinking',
611
+ codex: 'gpt-5.4',
612
+ gemini: 'gemini-3.1-pro-preview',
613
+ cursor: 'opus-4.6-thinking',
614
+ droid: 'opus-4.6-fast',
615
+ opencode: 'openai/gpt-5.2',
328
616
  } as const;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/hooks",
3
- "version": "3.1.21",
3
+ "version": "3.1.23",
4
4
  "description": "Hook emitter, registry, and trajectory hooks for Agent Relay",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,9 +37,9 @@
37
37
  "test:watch": "vitest"
38
38
  },
39
39
  "dependencies": {
40
- "@agent-relay/config": "3.1.21",
41
- "@agent-relay/trajectory": "3.1.21",
42
- "@agent-relay/sdk": "3.1.21"
40
+ "@agent-relay/config": "3.1.23",
41
+ "@agent-relay/trajectory": "3.1.23",
42
+ "@agent-relay/sdk": "3.1.23"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/memory",
3
- "version": "3.1.21",
3
+ "version": "3.1.23",
4
4
  "description": "Semantic memory storage and retrieval system for agent-relay with multiple backend support",
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/hooks": "3.1.21"
25
+ "@agent-relay/hooks": "3.1.23"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/openclaw",
3
- "version": "3.1.21",
3
+ "version": "3.1.23",
4
4
  "description": "Relaycast bridge for OpenClaw — messaging, identity, runtime setup, and local spawning",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "postinstall": "node -e \"try{require('child_process').execSync('ldd --version 2>&1',{stdio:'pipe'})}catch{try{require('child_process').execSync('apk info gcompat 2>/dev/null',{stdio:'pipe'})}catch{console.warn('\\n\\u26a0\\ufe0f @agent-relay/openclaw: Alpine detected without gcompat. Spawning requires glibc.\\n Install with: apk add gcompat libstdc++\\n')}}\""
30
30
  },
31
31
  "dependencies": {
32
- "@agent-relay/sdk": "3.1.21",
32
+ "@agent-relay/sdk": "3.1.23",
33
33
  "@relaycast/sdk": "^0.4.0",
34
34
  "ws": "^8.0.0"
35
35
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/policy",
3
- "version": "3.1.21",
3
+ "version": "3.1.23",
4
4
  "description": "Agent policy management with multi-level fallback (repo, local PRPM, cloud workspace)",
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.21"
25
+ "@agent-relay/config": "3.1.23"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",