@oonacode/linux-x64 0.3.223 → 0.3.237

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/registry.json CHANGED
@@ -116,7 +116,8 @@
116
116
  "supportsVision": true,
117
117
  "inputPricePerM": 4,
118
118
  "outputPricePerM": 20,
119
- "notes": "The Opus after Opus 5, cheaper than it: $4 / $20 per MTok, cache reads $0.20, 1M context, 128K output (Anthropic's model table, 2026-09-23). Needs Claude Code 2.1.280 or newer: Anthropic answers any request carrying an older engine's identity with 400 'version 2.1.280 or newer is required', on the API key and the subscription alike (measured 2026-09-23 with engine 2.1.272), which is why it arrived with the move to Agent SDK 0.3.280. Thinking cannot be disabled and forced tool_choice is refused; its effort default is medium, one below Opus 5's high. Listed AFTER Opus 5 on purpose, on both Claude entries: neither declares modelAliases, so the 'opus' family (ANTHROPIC_DEFAULT_OPUS_MODEL, and the word 'opus' asked of the pool) resolves to the first listed model whose id says opus, and it stays on Opus 5, the default (2026-09-23 review). An old Opus ID the pool does not carry is refused pool_model_unknown since 2026-09-28, never answered by Opus 5."
119
+ "notes": "The Opus after Opus 5, cheaper than it: $4 / $20 per MTok, cache reads $0.20, 1M context, 128K output (Anthropic's model table, 2026-09-23). Needs Claude Code 2.1.280 or newer: Anthropic answers any request carrying an older engine's identity with 400 'version 2.1.280 or newer is required', on the API key and the subscription alike (measured 2026-09-23 with engine 2.1.272), which is why it arrived with the move to Agent SDK 0.3.280. Thinking cannot be disabled and forced tool_choice is refused; its effort default is medium, one below Opus 5's high. Listed AFTER Opus 5 on purpose, on both Claude entries: neither declares modelAliases, so the 'opus' family (ANTHROPIC_DEFAULT_OPUS_MODEL, and the word 'opus' asked of the pool) resolves to the first listed model whose id says opus, and it stays on Opus 5, the default (2026-09-23 review). An old Opus ID the pool does not carry is refused pool_model_unknown since 2026-09-28, never answered by Opus 5.",
120
+ "defaultEffort": "medium"
120
121
  },
121
122
  {
122
123
  "id": "claude-sonnet-5-5",
@@ -138,7 +139,8 @@
138
139
  "supportsVision": true,
139
140
  "inputPricePerM": 0.1,
140
141
  "outputPricePerM": 0.5,
141
- "notes": "The Haiku after Haiku 4.5, released 2026-10-07, at $0.10 / $0.50 per MTok for prompts up to 100k, cache reads $0.01, 5-minute cache write $0.125; 1M context, 128K output (Anthropic's model page and price list, read 2026-10-08). It REPLACES Haiku 4.5 here: Haiku 4.5 is no longer listed, and its id is an admin alias of this row (migration 0179), so a chat or a program still naming claude-haiku-4-5 is served — and billed — as Haiku 5.5. Being the only Haiku listed, it is what the 'haiku' family word resolves to. Engine 2.1.280 does not know the id but serves it (probed from the production gateway 2026-10-08: subscription token 200, both with adaptive thinking and disabled thinking)."
142
+ "notes": "The Haiku after Haiku 4.5, released 2026-10-07, at $0.10 / $0.50 per MTok for prompts up to 100k, cache reads $0.01, 5-minute cache write $0.125; 1M context, 128K output (Anthropic's model page and price list, read 2026-10-08). It REPLACES Haiku 4.5 here: Haiku 4.5 is no longer listed, and its id is an admin alias of this row (migration 0179), so a chat or a program still naming claude-haiku-4-5 is served — and billed — as Haiku 5.5. Being the only Haiku listed, it is what the 'haiku' family word resolves to. Engine 2.1.280 does not know the id but serves it (probed from the production gateway 2026-10-08: subscription token 200, both with adaptive thinking and disabled thinking).",
143
+ "defaultEffort": "medium"
142
144
  }
143
145
  ],
144
146
  "defaultModel": "claude-opus-5",
@@ -179,8 +181,8 @@
179
181
  "keyFormat": "sk-ant-oat01-...",
180
182
  "claudeCodeShape": {
181
183
  "betas": "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,prompt-caching-scope-2026-01-05,effort-2025-11-24",
182
- "userAgent": "claude-cli/2.1.280 (external, sdk-ts)",
183
- "billingHeader": "x-anthropic-billing-header: cc_version=2.1.280; cc_entrypoint=sdk-ts;",
184
+ "userAgent": "claude-cli/2.1.296 (external, sdk-ts)",
185
+ "billingHeader": "x-anthropic-billing-header: cc_version=2.1.296; cc_entrypoint=sdk-ts;",
184
186
  "headers": {
185
187
  "x-app": "cli"
186
188
  }
@@ -189,7 +191,8 @@
189
191
  "operatorOnly": true
190
192
  }
191
193
  ],
192
- "recordLabel": "API"
194
+ "recordLabel": "API",
195
+ "defaultEffort": "high"
193
196
  },
194
197
  {
195
198
  "id": "openai",
@@ -227,7 +230,8 @@
227
230
  "contextWindow": 1000000,
228
231
  "supportsTools": true,
229
232
  "supportsThinking": false,
230
- "supportsVision": true
233
+ "supportsVision": true,
234
+ "effortLevels": []
231
235
  },
232
236
  {
233
237
  "id": "o4-mini",
@@ -238,11 +242,474 @@
238
242
  "supportsVision": true
239
243
  }
240
244
  ],
241
- "defaultModel": "gpt-5",
245
+ "defaultModel": "gpt-5",
246
+ "modelAliases": {
247
+ "opus": "gpt-5",
248
+ "sonnet": "gpt-5",
249
+ "haiku": "gpt-5-mini"
250
+ },
251
+ "capabilities": {
252
+ "streaming": true,
253
+ "tools": true,
254
+ "thinking": true,
255
+ "vision": true,
256
+ "countTokens": false,
257
+ "promptCaching": true,
258
+ "promptCacheTtlSec": 300
259
+ },
260
+ "translate": {
261
+ "maxTokensParam": "max_completion_tokens",
262
+ "reasoningEffortFromBudget": true,
263
+ "reasoningContentField": null,
264
+ "supportsParallelToolCalls": true,
265
+ "systemRole": "developer",
266
+ "streamIncludeUsage": true
267
+ },
268
+ "phase": 1,
269
+ "enabled": true,
270
+ "docsUrl": "https://platform.openai.com/docs",
271
+ "defaultEffort": "medium"
272
+ },
273
+ {
274
+ "id": "openai-subscription",
275
+ "displayName": "ChatGPT Subscription (Codex)",
276
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
277
+ "kind": "openai-compatible",
278
+ "route": "direct",
279
+ "credentialClass": "subscription",
280
+ "baseUrl": "https://chatgpt.com/backend-api/codex",
281
+ "messagesPath": "/responses",
282
+ "defaultModel": "gpt-6-luna",
283
+ "auth": {
284
+ "header": "authorization-bearer",
285
+ "extraHeaders": {
286
+ "originator": "codex_exec",
287
+ "user-agent": "codex_exec/0.162.1"
288
+ }
289
+ },
290
+ "models": [
291
+ {
292
+ "id": "gpt-6-luna",
293
+ "displayName": "GPT-6 Luna",
294
+ "contextWindow": 272000,
295
+ "supportsTools": true,
296
+ "supportsThinking": true,
297
+ "supportsVision": true,
298
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
299
+ "notes": "Codex's first choice (priority 4 in its model list). Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs.",
300
+ "defaultEffort": "medium"
301
+ },
302
+ {
303
+ "id": "gpt-5.6-terra",
304
+ "displayName": "GPT-5.6 Terra",
305
+ "contextWindow": 272000,
306
+ "supportsTools": true,
307
+ "supportsThinking": true,
308
+ "supportsVision": true,
309
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
310
+ "notes": "Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs.",
311
+ "defaultEffort": "medium"
312
+ },
313
+ {
314
+ "id": "gpt-5.6-luna",
315
+ "displayName": "GPT-5.6 Luna",
316
+ "contextWindow": 272000,
317
+ "supportsTools": true,
318
+ "supportsThinking": true,
319
+ "supportsVision": true,
320
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
321
+ "notes": "Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs.",
322
+ "defaultEffort": "medium"
323
+ },
324
+ {
325
+ "id": "gpt-5.5",
326
+ "displayName": "GPT-5.5",
327
+ "contextWindow": 272000,
328
+ "supportsTools": true,
329
+ "supportsThinking": true,
330
+ "supportsVision": true,
331
+ "effortLevels": ["low", "medium", "high", "xhigh"],
332
+ "notes": "Legacy: Codex hides it from its picker but the backend still serves it, and older chats are on it. No max effort. Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs.",
333
+ "defaultEffort": "medium"
334
+ },
335
+ {
336
+ "id": "gpt-6.1-sol",
337
+ "displayName": "GPT-6.1 Sol",
338
+ "contextWindow": 500000,
339
+ "supportsTools": true,
340
+ "supportsThinking": true,
341
+ "supportsVision": true,
342
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
343
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs. The Codex backend takes 500k of context. Codex ultra effort is refused by the backend.",
344
+ "defaultEffort": "low"
345
+ },
346
+ {
347
+ "id": "gpt-6-sol",
348
+ "displayName": "GPT-6 Sol",
349
+ "contextWindow": 272000,
350
+ "supportsTools": true,
351
+ "supportsThinking": true,
352
+ "supportsVision": true,
353
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
354
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs. The Codex backend takes 272k of context. Codex ultra effort is refused by the backend.",
355
+ "defaultEffort": "medium"
356
+ },
357
+ {
358
+ "id": "gpt-6-astra",
359
+ "displayName": "GPT-6 Astra",
360
+ "contextWindow": 272000,
361
+ "supportsTools": true,
362
+ "supportsThinking": true,
363
+ "supportsVision": true,
364
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
365
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs. The Codex backend takes 272k of context. Codex ultra effort is refused by the backend.",
366
+ "defaultEffort": "low"
367
+ },
368
+ {
369
+ "id": "gpt-5.6-sol",
370
+ "displayName": "GPT-5.6 Sol",
371
+ "contextWindow": 272000,
372
+ "supportsTools": true,
373
+ "supportsThinking": true,
374
+ "supportsVision": true,
375
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
376
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. Served from the person's own ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs. The Codex backend takes 272k of context. Codex ultra effort is refused by the backend.",
377
+ "defaultEffort": "low"
378
+ }
379
+ ],
380
+ "rateLimits": {
381
+ "maxConcurrent": 4,
382
+ "requestsPerMinute": 60
383
+ },
384
+ "capabilities": {
385
+ "streaming": true,
386
+ "tools": true,
387
+ "thinking": true,
388
+ "vision": true,
389
+ "countTokens": false,
390
+ "promptCaching": true
391
+ },
392
+ "translate": {
393
+ "wire": "responses",
394
+ "systemRole": "developer",
395
+ "reasoningEffortFromBudget": true,
396
+ "supportsParallelToolCalls": true
397
+ },
398
+ "phase": 1,
399
+ "enabled": true,
400
+ "clientGroup": "openai",
401
+ "adminGroup": "openai",
402
+ "recordLabel": "Subscription",
403
+ "subscriptionLogin": {
404
+ "type": "openai-device",
405
+ "deviceAuthorizationUrl": "https://auth.openai.com/api/accounts/deviceauth/usercode",
406
+ "pollUrl": "https://auth.openai.com/api/accounts/deviceauth/token",
407
+ "tokenUrl": "https://auth.openai.com/oauth/token",
408
+ "verificationUri": "https://auth.openai.com/codex/device",
409
+ "redirectUri": "https://auth.openai.com/deviceauth/callback",
410
+ "clientId": "app_EMoamEEZ73f0CkXaXp7hrann",
411
+ "signInLabel": "Sign in with ChatGPT"
412
+ },
413
+ "docsUrl": "https://developers.openai.com/codex",
414
+ "notes": "The user's OWN ChatGPT plan (Plus, Pro, Team), signed in with OpenAI's device flow as `codex login --device-auth` runs it (docs/codex-engine.md section 6, 2026-09-19): the host asks auth.openai.com for a code, the person types it at auth.openai.com/codex/device, the host polls, exchanges the code with the verifier OpenAI's server minted, and keeps the access + refresh pair in the vault, refreshed two minutes before expiry. The backend a ChatGPT token belongs to is chatgpt.com/backend-api/codex, which speaks ONLY the Responses API (translate.wire = responses) and wants the chatgpt-account-id header (a claim of the id token, kept beside the pair), an originator and the responses=experimental beta - so the engine reaches it through the host's loopback upstream, which translates every request. route=direct: the token never reaches the gateway (guardrail 4) and this entry seeds no server rows. The client id is Codex's PUBLIC one; OpenAI names third-party harnesses (OpenCode, pi) as tolerated users of a ChatGPT plan and the owner accepted that standing on 2026-09-19 - the residual risk is OpenAI changing its mind. Models, context windows and effort levels are what Codex 0.162.1's own model list answered for a ChatGPT account on 2026-10-11 (gpt-6-astra, gpt-5.6-sol and gpt-5.2, listed before, answer 'not supported when using Codex with a ChatGPT account'); each level was sent and answered 200, and minimal and Codex's own ultra are refused by every model. A plan is flat-rate, so no prices. Its x-codex-primary/secondary-used-percent answer headers are the plan's usage."
415
+ },
416
+ {
417
+ "id": "openai-codex",
418
+ "displayName": "OpenAI Codex (ChatGPT plan)",
419
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
420
+ "kind": "openai-compatible",
421
+ "route": "gateway",
422
+ "credentialClass": "api_key",
423
+ "poolOnly": true,
424
+ "baseUrl": "https://chatgpt.com/backend-api/codex",
425
+ "messagesPath": "/responses",
426
+ "auth": {
427
+ "header": "authorization-bearer",
428
+ "extraHeaders": {
429
+ "originator": "codex_exec",
430
+ "user-agent": "codex_exec/0.162.1"
431
+ }
432
+ },
433
+ "defaultModel": "gpt-6-luna",
434
+ "models": [
435
+ {
436
+ "id": "gpt-6-luna",
437
+ "displayName": "GPT-6 Luna",
438
+ "contextWindow": 272000,
439
+ "supportsTools": true,
440
+ "supportsThinking": true,
441
+ "supportsVision": true,
442
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
443
+ "maxOutputTokens": 128000,
444
+ "notes": "Codex's default (priority 4 in its model list). OpenAI API list price $0.10 / $0.01 cached / $0.50 per 1M (developers.openai.com/api/docs/models/gpt-6-luna, 2026-10-12) — the catalogue cost cells. The Codex backend takes 272k of its 1.05M window.",
445
+ "defaultEffort": "medium"
446
+ },
447
+ {
448
+ "id": "gpt-5.6-terra",
449
+ "displayName": "GPT-5.6 Terra",
450
+ "contextWindow": 272000,
451
+ "supportsTools": true,
452
+ "supportsThinking": true,
453
+ "supportsVision": true,
454
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
455
+ "maxOutputTokens": 128000,
456
+ "notes": "OpenAI API list price $2 / $0.20 cached / $12 per 1M (developers.openai.com/api/docs/models/gpt-5.6-terra, 2026-10-12). The Codex backend takes 272k.",
457
+ "defaultEffort": "medium"
458
+ },
459
+ {
460
+ "id": "gpt-5.6-luna",
461
+ "displayName": "GPT-5.6 Luna",
462
+ "contextWindow": 272000,
463
+ "supportsTools": true,
464
+ "supportsThinking": true,
465
+ "supportsVision": true,
466
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
467
+ "maxOutputTokens": 128000,
468
+ "notes": "OpenAI API list price $0.20 / $0.02 cached / $1.20 per 1M (developers.openai.com/api/docs/models/gpt-5.6-luna, 2026-10-12). The Codex backend takes 272k.",
469
+ "defaultEffort": "medium"
470
+ },
471
+ {
472
+ "id": "gpt-5.5",
473
+ "displayName": "GPT-5.5",
474
+ "contextWindow": 272000,
475
+ "supportsTools": true,
476
+ "supportsThinking": true,
477
+ "supportsVision": true,
478
+ "effortLevels": ["low", "medium", "high", "xhigh"],
479
+ "maxOutputTokens": 128000,
480
+ "notes": "Legacy: Codex hides it from its picker, the backend still serves it. No max effort. OpenAI API list price $5 / $0.50 cached / $30 per 1M (developers.openai.com/api/docs/models/gpt-5.5, 2026-10-12).",
481
+ "defaultEffort": "medium"
482
+ },
483
+ {
484
+ "id": "gpt-6.1-sol",
485
+ "displayName": "GPT-6.1 Sol",
486
+ "contextWindow": 500000,
487
+ "supportsTools": true,
488
+ "supportsThinking": true,
489
+ "supportsVision": true,
490
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
491
+ "maxOutputTokens": 128000,
492
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. OpenAI API list price $2 / $0.1 cached / $10 per 1M (developers.openai.com/api/docs/models/gpt-6.1-sol, 2026-10-13). The Codex backend takes 500k of context. Codex ultra effort is refused by the backend.",
493
+ "defaultEffort": "low"
494
+ },
495
+ {
496
+ "id": "gpt-6-sol",
497
+ "displayName": "GPT-6 Sol",
498
+ "contextWindow": 272000,
499
+ "supportsTools": true,
500
+ "supportsThinking": true,
501
+ "supportsVision": true,
502
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
503
+ "maxOutputTokens": 128000,
504
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. OpenAI API list price $2 / $0.2 cached / $10 per 1M (developers.openai.com/api/docs/models/gpt-6-sol, 2026-10-13). The Codex backend takes 272k of context. Codex ultra effort is refused by the backend.",
505
+ "defaultEffort": "medium"
506
+ },
507
+ {
508
+ "id": "gpt-6-astra",
509
+ "displayName": "GPT-6 Astra",
510
+ "contextWindow": 272000,
511
+ "supportsTools": true,
512
+ "supportsThinking": true,
513
+ "supportsVision": true,
514
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
515
+ "maxOutputTokens": 128000,
516
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. OpenAI API list price $10 / $1 cached / $50 per 1M (developers.openai.com/api/docs/models/gpt-6-astra, 2026-10-13). The Codex backend takes 272k of context. Codex ultra effort is refused by the backend.",
517
+ "defaultEffort": "low"
518
+ },
519
+ {
520
+ "id": "gpt-5.6-sol",
521
+ "displayName": "GPT-5.6 Sol",
522
+ "contextWindow": 272000,
523
+ "supportsTools": true,
524
+ "supportsThinking": true,
525
+ "supportsVision": true,
526
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
527
+ "maxOutputTokens": 128000,
528
+ "notes": "Listed by the Codex backend for the operator's ChatGPT account on 2026-10-13 and answered a real turn through the genuine Codex CLI. OpenAI API list price $4 / $0.4 cached / $20 per 1M (developers.openai.com/api/docs/models/gpt-5.6-sol, 2026-10-13). The Codex backend takes 272k of context. Codex ultra effort is refused by the backend.",
529
+ "defaultEffort": "low"
530
+ }
531
+ ],
532
+ "modelAliases": {
533
+ "opus": "gpt-5.6-terra",
534
+ "sonnet": "gpt-5.6-terra",
535
+ "haiku": "gpt-6-luna"
536
+ },
537
+ "rateLimits": {
538
+ "maxConcurrent": 4,
539
+ "requestsPerMinute": 60
540
+ },
541
+ "capabilities": {
542
+ "streaming": true,
543
+ "tools": true,
544
+ "thinking": true,
545
+ "vision": true,
546
+ "countTokens": false,
547
+ "promptCaching": true
548
+ },
549
+ "translate": {
550
+ "wire": "responses",
551
+ "systemRole": "developer",
552
+ "reasoningEffortFromBudget": true,
553
+ "supportsParallelToolCalls": true
554
+ },
555
+ "phase": 1,
556
+ "enabled": true,
557
+ "adminGroup": "openai",
558
+ "recordLabel": "Subscription",
559
+ "docsUrl": "https://developers.openai.com/codex",
560
+ "references": [
561
+ {
562
+ "label": "Codex CLI (open source, Apache-2.0)",
563
+ "url": "https://github.com/openai/codex",
564
+ "kind": "docs"
565
+ },
566
+ {
567
+ "label": "OpenAI API model pages (the cost cells)",
568
+ "url": "https://developers.openai.com/api/docs/models",
569
+ "kind": "pricing"
570
+ },
571
+ {
572
+ "label": "OpenAI terms of use",
573
+ "url": "https://openai.com/policies/terms-of-use/",
574
+ "kind": "other"
575
+ }
576
+ ],
577
+ "notes": "OPERATOR POOL ONLY (owner, 2026-10-12: \"in the admin we need to add subscription tab … install codex cli on server like supergrok and use native login flow. but the user requests not goes to codex cli they already translated and proxy to openai\"). The operator's own ChatGPT plan, signed in from Admin → Providers → OpenAI → Subscription by a REAL Codex CLI on the server (`codex login --device-auth` in a private CODEX_HOME; packages/gateway/src/codex/*). The credential row is a POINTER; the access token and the account id are read from Codex's own auth.json per request, and only Codex refreshes them (app-server getAuthStatus refreshToken:true). Chats are NOT run through Codex: the engine's Anthropic request is translated to the Responses wire (@oonacode/translate responses-*.ts) and sent to chatgpt.com/backend-api/codex with Codex's identity headers and chatgpt-account-id. A ChatGPT plan is a consumer subscription and serving other people from it is against OpenAI's terms — the owner's call, as for the Claude and SuperGrok subscriptions. Administered under OpenAI (adminGroup): its record is the OpenAI page's Subscription tab. A user's OWN ChatGPT plan is openai-subscription, direct from their PC. docs/codex-engine.md §8.",
578
+ "credentialVariants": [
579
+ {
580
+ "id": "token-plan",
581
+ "label": "ChatGPT subscription (Codex on the server)",
582
+ "header": "authorization-bearer",
583
+ "operatorOnly": true,
584
+ "baseUrl": "https://chatgpt.com/backend-api/codex",
585
+ "codexLogin": {
586
+ "type": "codex-server",
587
+ "signInLabel": "Sign in with ChatGPT (Codex on the server)"
588
+ },
589
+ "notes": "Signed in by the server's own Codex CLI (version pinned in @oonacode/shared CODEX_TESTED_VERSION, installed at boot from OpenAI's npm package into the codexdata volume, sha512-verified). The identity headers are the ones the real Codex sends (recorded 2026-10-11, docs/codex-engine.md §7) — bump the user-agent version with Codex."
590
+ }
591
+ ]
592
+ },
593
+ {
594
+ "id": "muse",
595
+ "displayName": "Meta Muse (Muse Code plan)",
596
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
597
+ "kind": "openai-compatible",
598
+ "route": "gateway",
599
+ "credentialClass": "api_key",
600
+ "poolOnly": true,
601
+ "contributorMode": {
602
+ "suffix": "-contributor",
603
+ "summary": "Meta lists every Muse model twice; the -contributor twin is cheaper, and in exchange Meta may use the content sent to it for product improvement and to train its models."
604
+ },
605
+ "baseUrl": "https://api.meta.ai/v1",
606
+ "messagesPath": "/responses",
607
+ "auth": {
608
+ "header": "authorization-bearer",
609
+ "extraHeaders": {
610
+ "x-client-id": "tbh:exec",
611
+ "user-agent": "muse-build/1.4.7 (non-interactive; linux-x86_64; build d8c53d25bd30cda15ab32b18b9bb9961df9c4be0)"
612
+ }
613
+ },
614
+ "defaultModel": "muse-spark-1.3",
615
+ "models": [
616
+ {
617
+ "id": "muse-spark-1.3",
618
+ "displayName": "Muse Spark 1.3",
619
+ "contextWindow": 1007997,
620
+ "supportsTools": true,
621
+ "supportsThinking": true,
622
+ "supportsVision": true,
623
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
624
+ "maxOutputTokens": 128000,
625
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. Meta's newest Spark (released 2026-09-02). Meta's list price $1.25 input / $0.15 cached / $4.25 output per 1M tokens, no long-context premium (dev.meta.ai/docs/pricing-rate-limits, 2026-10-13)."
626
+ },
627
+ {
628
+ "id": "muse-spark-1.2",
629
+ "displayName": "Muse Spark 1.2",
630
+ "contextWindow": 1007997,
631
+ "supportsTools": true,
632
+ "supportsThinking": true,
633
+ "supportsVision": true,
634
+ "effortLevels": ["low", "medium", "high", "xhigh"],
635
+ "maxOutputTokens": 128000,
636
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. Muse Code's earlier default; no max effort. Meta's list price $1.25 input / $0.15 cached / $4.25 output per 1M tokens, no long-context premium (dev.meta.ai/docs/pricing-rate-limits, 2026-10-13)."
637
+ },
638
+ {
639
+ "id": "muse-wonder-1.0",
640
+ "displayName": "Muse Wonder 1.0",
641
+ "contextWindow": 1007997,
642
+ "supportsTools": true,
643
+ "supportsThinking": true,
644
+ "supportsVision": true,
645
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
646
+ "maxOutputTokens": 128000,
647
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. Meta's larger model (released 2026-10-12). Meta's list price $4 input / $0.20 cached / $20 output per 1M tokens (dev.meta.ai/docs/pricing-rate-limits, 2026-10-13)."
648
+ },
649
+ {
650
+ "id": "muse-wonder-full-1.0",
651
+ "displayName": "Muse Wonder Full 1.0",
652
+ "contextWindow": 1007997,
653
+ "supportsTools": true,
654
+ "supportsThinking": true,
655
+ "supportsVision": true,
656
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
657
+ "maxOutputTokens": 128000,
658
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. The strongest Muse model (Power/Maximum plans). Meta publishes no price for it; the pool row uses Wonder's as an upper bound. "
659
+ },
660
+ {
661
+ "id": "muse-spark-1.3-contributor",
662
+ "displayName": "Muse Spark 1.3 (contributor)",
663
+ "contextWindow": 1007997,
664
+ "supportsTools": true,
665
+ "supportsThinking": true,
666
+ "supportsVision": true,
667
+ "effortLevels": ["low", "medium", "high", "xhigh"],
668
+ "maxOutputTokens": 128000,
669
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. Cheaper: Meta's contributor-mode price $0.10 input / $0.002 cached / $0.20 output per 1M tokens (dev.meta.ai/docs/pricing-rate-limits, 2026-10-13); contributor rate limit 150 RPM / 3M TPM. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
670
+ },
671
+ {
672
+ "id": "muse-spark-1.2-contributor",
673
+ "displayName": "Muse Spark 1.2 (contributor)",
674
+ "contextWindow": 1007997,
675
+ "supportsTools": true,
676
+ "supportsThinking": true,
677
+ "supportsVision": true,
678
+ "effortLevels": ["low", "medium", "high", "xhigh"],
679
+ "maxOutputTokens": 128000,
680
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. Cheaper: Meta's contributor-mode price $0.10 input / $0.002 cached / $0.20 output per 1M tokens; no max effort. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
681
+ },
682
+ {
683
+ "id": "muse-wonder-1.0-contributor",
684
+ "displayName": "Muse Wonder 1.0 (contributor)",
685
+ "contextWindow": 1007997,
686
+ "supportsTools": true,
687
+ "supportsThinking": true,
688
+ "supportsVision": true,
689
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
690
+ "maxOutputTokens": 128000,
691
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. Meta lists no contributor price for Wonder; the pool row uses Wonder's standard price ($4 / $0.20 / $20) as an upper bound. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
692
+ },
693
+ {
694
+ "id": "muse-wonder-full-1.0-contributor",
695
+ "displayName": "Muse Wonder Full 1.0 (contributor)",
696
+ "contextWindow": 1007997,
697
+ "supportsTools": true,
698
+ "supportsThinking": true,
699
+ "supportsVision": true,
700
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
701
+ "maxOutputTokens": 128000,
702
+ "notes": "Meta may use what you send to this model, and its answers, to train its models (the pool reaches it over a Meta subscription that Meta treats as Contributor use) - do not send confidential or personal data. Meta lists no price for Wonder Full or its contributor twin; the pool row uses Wonder's standard price as an upper bound. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
703
+ }
704
+ ],
242
705
  "modelAliases": {
243
- "opus": "gpt-5",
244
- "sonnet": "gpt-5",
245
- "haiku": "gpt-5-mini"
706
+ "opus": "muse-wonder-full-1.0",
707
+ "sonnet": "muse-spark-1.3",
708
+ "haiku": "muse-spark-1.2"
709
+ },
710
+ "rateLimits": {
711
+ "maxConcurrent": 4,
712
+ "requestsPerMinute": 60
246
713
  },
247
714
  "capabilities": {
248
715
  "streaming": true,
@@ -250,92 +717,157 @@
250
717
  "thinking": true,
251
718
  "vision": true,
252
719
  "countTokens": false,
253
- "promptCaching": true,
254
- "promptCacheTtlSec": 300
720
+ "promptCaching": true
255
721
  },
256
722
  "translate": {
257
- "maxTokensParam": "max_completion_tokens",
258
- "reasoningEffortFromBudget": true,
259
- "reasoningContentField": null,
260
- "supportsParallelToolCalls": true,
723
+ "wire": "responses",
261
724
  "systemRole": "developer",
262
- "streamIncludeUsage": true
725
+ "reasoningEffortFromBudget": true,
726
+ "supportsParallelToolCalls": true
263
727
  },
264
728
  "phase": 1,
265
729
  "enabled": true,
266
- "docsUrl": "https://platform.openai.com/docs"
730
+ "recordLabel": "Subscription",
731
+ "docsUrl": "https://dev.meta.ai/docs/muse-code",
732
+ "references": [
733
+ {
734
+ "label": "Muse Code (Meta Model API docs)",
735
+ "url": "https://dev.meta.ai/docs/muse-code",
736
+ "kind": "docs"
737
+ },
738
+ {
739
+ "label": "Pricing and rate limits (the cost cells)",
740
+ "url": "https://dev.meta.ai/docs/pricing-rate-limits",
741
+ "kind": "pricing"
742
+ },
743
+ {
744
+ "label": "Muse Code subscriptions",
745
+ "url": "https://dev.meta.ai/docs/muse-code/subscriptions",
746
+ "kind": "other"
747
+ }
748
+ ],
749
+ "notes": "OPERATOR POOL ONLY (owner, 2026-10-13: \"integrate into oonacode … muse and codex … on the oonacode server in the pool list, all models … implement authentication flow on the server for both … similar to supergrok and codex with translation layer\"). The operator's own Meta Muse Code subscription, signed in from Admin → Providers → Meta Muse by a REAL Muse CLI on the server (`muse login` in a private HOME; packages/gateway/src/muse/*). The credential row is a POINTER; the static api_key a browser sign-in mints is read from Muse's own ~/.config/muse/auth.json per request (there is no refresh token and no expiry). Chats are NOT run through Muse: the engine's Anthropic request is translated to the Responses wire (@oonacode/translate responses-*.ts — the wire muse itself speaks, POST /v1/responses) and sent to api.meta.ai with Muse's identity headers (recorded 2026-10-13 through a loopback recorder). The pool serves the -contributor ids too (owner, 2026-10-13: cheaper; Muse's contributor mode lets Meta use the content for product improvement, accepted for the pool); a request for one carries x-tbh-contributor-mode: 1 like the CLI's, any other model does not. Meta's subscription terms say the credential is for use with Muse Code only; serving other people from it is the owner's call (2026-10-13), as for the Claude, SuperGrok and ChatGPT plans. A user's OWN Muse key is muse-subscription, direct from their PC. The model list is what GET api.meta.ai/muse-code/models answered for the owner's account on 2026-10-13 (muse-image-1.0 is hidden and image-only; the contributor twins are left out). docs/muse-engine.md.",
750
+ "credentialVariants": [
751
+ {
752
+ "id": "token-plan",
753
+ "label": "Muse Code subscription (Muse on the server)",
754
+ "header": "authorization-bearer",
755
+ "operatorOnly": true,
756
+ "baseUrl": "https://api.meta.ai/v1",
757
+ "museLogin": {
758
+ "type": "muse-server",
759
+ "signInLabel": "Sign in with Meta (Muse on the server)"
760
+ },
761
+ "notes": "Signed in by the server's own Muse CLI (version pinned in @oonacode/shared MUSE_TESTED_VERSION, installed at boot from Meta's download endpoint into the musedata volume, SHA-256-verified against Meta's manifest). The identity headers are the ones the real Muse sends (recorded 2026-10-13) — bump the user-agent version with Muse."
762
+ }
763
+ ],
764
+ "defaultEffort": "high"
267
765
  },
268
766
  {
269
- "id": "openai-subscription",
270
- "displayName": "ChatGPT Subscription (Codex)",
271
- "effortLevels": ["low", "medium", "high", "xhigh"],
767
+ "id": "muse-subscription",
768
+ "displayName": "Meta Muse Subscription",
769
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
272
770
  "kind": "openai-compatible",
273
771
  "route": "direct",
274
772
  "credentialClass": "subscription",
275
- "baseUrl": "https://chatgpt.com/backend-api/codex",
773
+ "baseUrl": "https://api.meta.ai/v1",
276
774
  "messagesPath": "/responses",
277
- "defaultModel": "gpt-5.5",
775
+ "defaultModel": "muse-spark-1.3",
278
776
  "auth": {
279
777
  "header": "authorization-bearer",
280
778
  "extraHeaders": {
281
- "originator": "codex_cli_rs",
282
- "OpenAI-Beta": "responses=experimental"
779
+ "x-client-id": "tbh:exec",
780
+ "user-agent": "muse-build/1.4.7 (non-interactive; linux-x86_64; build d8c53d25bd30cda15ab32b18b9bb9961df9c4be0)"
283
781
  }
284
782
  },
285
783
  "models": [
286
784
  {
287
- "id": "gpt-6-astra",
288
- "displayName": "GPT-6 Astra",
289
- "contextWindow": 400000,
785
+ "id": "muse-spark-1.3",
786
+ "displayName": "Muse Spark 1.3",
787
+ "contextWindow": 1007997,
290
788
  "supportsTools": true,
291
789
  "supportsThinking": true,
292
790
  "supportsVision": true,
293
- "notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
791
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
792
+ "maxOutputTokens": 128000,
793
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. Meta's newest Spark (released 2026-09-02). "
294
794
  },
295
795
  {
296
- "id": "gpt-5.6-sol",
297
- "displayName": "GPT-5.6 Sol",
298
- "contextWindow": 400000,
796
+ "id": "muse-spark-1.2",
797
+ "displayName": "Muse Spark 1.2",
798
+ "contextWindow": 1007997,
299
799
  "supportsTools": true,
300
800
  "supportsThinking": true,
301
801
  "supportsVision": true,
302
- "notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
802
+ "effortLevels": ["low", "medium", "high", "xhigh"],
803
+ "maxOutputTokens": 128000,
804
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. Muse Code's earlier default; no max effort. "
303
805
  },
304
806
  {
305
- "id": "gpt-5.6-terra",
306
- "displayName": "GPT-5.6 Terra",
307
- "contextWindow": 400000,
807
+ "id": "muse-wonder-1.0",
808
+ "displayName": "Muse Wonder 1.0",
809
+ "contextWindow": 1007997,
308
810
  "supportsTools": true,
309
811
  "supportsThinking": true,
310
812
  "supportsVision": true,
311
- "notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
813
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
814
+ "maxOutputTokens": 128000,
815
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. Meta's larger model (released 2026-10-12). "
312
816
  },
313
817
  {
314
- "id": "gpt-5.6-luna",
315
- "displayName": "GPT-5.6 Luna",
316
- "contextWindow": 400000,
818
+ "id": "muse-wonder-full-1.0",
819
+ "displayName": "Muse Wonder Full 1.0",
820
+ "contextWindow": 1007997,
317
821
  "supportsTools": true,
318
822
  "supportsThinking": true,
319
823
  "supportsVision": true,
320
- "notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
824
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
825
+ "maxOutputTokens": 128000,
826
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. The strongest Muse model (Power/Maximum plans). Meta publishes no price for it; the pool row uses Wonder's as an upper bound. "
321
827
  },
322
828
  {
323
- "id": "gpt-5.5",
324
- "displayName": "GPT-5.5",
325
- "contextWindow": 400000,
829
+ "id": "muse-spark-1.3-contributor",
830
+ "displayName": "Muse Spark 1.3 (contributor)",
831
+ "contextWindow": 1007997,
832
+ "supportsTools": true,
833
+ "supportsThinking": true,
834
+ "supportsVision": true,
835
+ "effortLevels": ["low", "medium", "high", "xhigh"],
836
+ "maxOutputTokens": 128000,
837
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. Cheaper: Meta's contributor-mode price $0.10 input / $0.002 cached / $0.20 output per 1M tokens (dev.meta.ai/docs/pricing-rate-limits, 2026-10-13); contributor rate limit 150 RPM / 3M TPM. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
838
+ },
839
+ {
840
+ "id": "muse-spark-1.2-contributor",
841
+ "displayName": "Muse Spark 1.2 (contributor)",
842
+ "contextWindow": 1007997,
843
+ "supportsTools": true,
844
+ "supportsThinking": true,
845
+ "supportsVision": true,
846
+ "effortLevels": ["low", "medium", "high", "xhigh"],
847
+ "maxOutputTokens": 128000,
848
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. Cheaper: Meta's contributor-mode price $0.10 input / $0.002 cached / $0.20 output per 1M tokens; no max effort. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
849
+ },
850
+ {
851
+ "id": "muse-wonder-1.0-contributor",
852
+ "displayName": "Muse Wonder 1.0 (contributor)",
853
+ "contextWindow": 1007997,
326
854
  "supportsTools": true,
327
855
  "supportsThinking": true,
328
856
  "supportsVision": true,
329
- "notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
857
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
858
+ "maxOutputTokens": 128000,
859
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. Meta lists no contributor price for Wonder; the pool row uses Wonder's standard price ($4 / $0.20 / $20) as an upper bound. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
330
860
  },
331
861
  {
332
- "id": "gpt-5.2",
333
- "displayName": "GPT-5.2",
334
- "contextWindow": 400000,
862
+ "id": "muse-wonder-full-1.0-contributor",
863
+ "displayName": "Muse Wonder Full 1.0 (contributor)",
864
+ "contextWindow": 1007997,
335
865
  "supportsTools": true,
336
866
  "supportsThinking": true,
337
867
  "supportsVision": true,
338
- "notes": "Served from the ChatGPT plan through the Codex backend; no per-token price - the plan's 5-hour and weekly windows are what it costs."
868
+ "effortLevels": ["low", "medium", "high", "xhigh", "max"],
869
+ "maxOutputTokens": 128000,
870
+ "notes": "Served from the person's own Muse subscription key through Meta's Responses API (api.meta.ai/v1/responses); the plan's 5-hour windows are what it costs. Meta lists no price for Wonder Full or its contributor twin; the pool row uses Wonder's standard price as an upper bound. Contributor mode: Meta may use the content sent for product improvement (the owner accepted this for the pool, 2026-10-13); sent with the model id's -contributor suffix and the x-tbh-contributor-mode header."
339
871
  }
340
872
  ],
341
873
  "rateLimits": {
@@ -358,21 +890,15 @@
358
890
  },
359
891
  "phase": 1,
360
892
  "enabled": true,
361
- "clientGroup": "openai",
362
- "adminGroup": "openai",
363
- "recordLabel": "Subscription",
364
- "subscriptionLogin": {
365
- "type": "openai-device",
366
- "deviceAuthorizationUrl": "https://auth.openai.com/api/accounts/deviceauth/usercode",
367
- "pollUrl": "https://auth.openai.com/api/accounts/deviceauth/token",
368
- "tokenUrl": "https://auth.openai.com/oauth/token",
369
- "verificationUri": "https://auth.openai.com/codex/device",
370
- "redirectUri": "https://auth.openai.com/deviceauth/callback",
371
- "clientId": "app_EMoamEEZ73f0CkXaXp7hrann",
372
- "signInLabel": "Sign in with ChatGPT"
893
+ "museCliLogin": {
894
+ "type": "muse-cli",
895
+ "signInLabel": "Sign in with Meta"
373
896
  },
374
- "docsUrl": "https://developers.openai.com/codex",
375
- "notes": "The user's OWN ChatGPT plan (Plus, Pro, Team), signed in with OpenAI's device flow as `codex login --device-auth` runs it (docs/codex-engine.md section 6, 2026-09-19): the host asks auth.openai.com for a code, the person types it at auth.openai.com/codex/device, the host polls, exchanges the code with the verifier OpenAI's server minted, and keeps the access + refresh pair in the vault, refreshed two minutes before expiry. The backend a ChatGPT token belongs to is chatgpt.com/backend-api/codex, which speaks ONLY the Responses API (translate.wire = responses) and wants the chatgpt-account-id header (a claim of the id token, kept beside the pair), an originator and the responses=experimental beta - so the engine reaches it through the host's loopback upstream, which translates every request. route=direct: the token never reaches the gateway (guardrail 4) and this entry seeds no server rows. The client id is Codex's PUBLIC one; OpenAI names third-party harnesses (OpenCode, pi) as tolerated users of a ChatGPT plan and the owner accepted that standing on 2026-09-19 - the residual risk is OpenAI changing its mind. Models are what Codex's own model/list answered on 2026-09-17; a plan is flat-rate, so no prices. Its x-codex-primary/secondary-used-percent answer headers are the plan's usage."
897
+ "adminGroup": "muse",
898
+ "recordLabel": "Subscription",
899
+ "docsUrl": "https://dev.meta.ai/docs/muse-code",
900
+ "notes": "The user's OWN Meta Muse key — a Muse Code subscription key (minted by `muse login`) or a Meta Model API key — kept in the vault and used straight from the PC (guardrail 4; the gateway is never on the path and this entry seeds no server rows). Muse speaks the OpenAI Responses API at api.meta.ai/v1/responses, so the engine reaches it through the host's loopback upstream, which translates every request (translate.wire = responses) and presents Muse's identity headers. Meta's terms: a subscription key is for use with Muse Code only — that is the person's standing, as for the other consumer plans. Models and limits are what Meta's own model list answered on 2026-10-13. docs/muse-engine.md.",
901
+ "defaultEffort": "high"
376
902
  },
377
903
  {
378
904
  "id": "xai",
@@ -394,10 +920,11 @@
394
920
  "contextWindow": 500000,
395
921
  "supportsTools": true,
396
922
  "supportsThinking": true,
397
- "supportsVision": false,
923
+ "supportsVision": true,
398
924
  "inputPricePerM": 4,
399
925
  "outputPricePerM": 12,
400
- "notes": "xAI's newest frontier model (SuperGrok's proxy lists it alone, 2026-10-04). Read from api.x.ai /v1/models with the pool's key that night: 500,000 context, prices identical to grok-4.6, reasoning effort low/medium/high/xhigh. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it ($2 in / $0.50 cached / $6 out). The cheaper tier is `models.price_tier_rule` (migration 0163 copies grok-4.6's rows)."
926
+ "notes": "xAI's newest frontier model (SuperGrok's proxy lists it alone, 2026-10-04). Read from api.x.ai /v1/models with the pool's key that night: 500,000 context, prices identical to grok-4.6, reasoning effort low/medium/high/xhigh. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it ($2 in / $0.50 cached / $6 out). The cheaper tier is `models.price_tier_rule` (migration 0163 copies grok-4.6's rows).",
927
+ "defaultEffort": "high"
401
928
  },
402
929
  {
403
930
  "id": "grok-4.6",
@@ -406,22 +933,24 @@
406
933
  "contextWindow": 500000,
407
934
  "supportsTools": true,
408
935
  "supportsThinking": true,
409
- "supportsVision": false,
936
+ "supportsVision": true,
410
937
  "inputPricePerM": 4,
411
938
  "outputPricePerM": 12,
412
- "notes": "xAI's recommendation for code and chat. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
939
+ "notes": "xAI's recommendation for code and chat. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054).",
940
+ "defaultEffort": "high"
413
941
  },
414
942
  {
415
943
  "id": "grok-4.5",
416
- "effortLevels": ["low", "medium", "high", "xhigh"],
944
+ "effortLevels": ["low", "medium", "high"],
417
945
  "displayName": "Grok 4.5",
418
946
  "contextWindow": 500000,
419
947
  "supportsTools": true,
420
948
  "supportsThinking": true,
421
- "supportsVision": false,
949
+ "supportsVision": true,
422
950
  "inputPricePerM": 4,
423
951
  "outputPricePerM": 12,
424
- "notes": "TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
952
+ "notes": "TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054).",
953
+ "defaultEffort": "high"
425
954
  },
426
955
  {
427
956
  "id": "grok-4.3",
@@ -429,7 +958,7 @@
429
958
  "contextWindow": 1000000,
430
959
  "supportsTools": true,
431
960
  "supportsThinking": true,
432
- "supportsVision": false,
961
+ "supportsVision": true,
433
962
  "inputPricePerM": 2.5,
434
963
  "outputPricePerM": 5,
435
964
  "notes": "TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
@@ -440,7 +969,7 @@
440
969
  "contextWindow": 256000,
441
970
  "supportsTools": true,
442
971
  "supportsThinking": true,
443
- "supportsVision": false,
972
+ "supportsVision": true,
444
973
  "inputPricePerM": 2,
445
974
  "outputPricePerM": 4,
446
975
  "notes": "TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it. The cheaper tier is `models.price_tier_rule` (migration 0054)."
@@ -451,7 +980,7 @@
451
980
  "contextWindow": 1000000,
452
981
  "supportsTools": true,
453
982
  "supportsThinking": true,
454
- "supportsVision": false,
983
+ "supportsVision": true,
455
984
  "inputPricePerM": 2.5,
456
985
  "outputPricePerM": 5,
457
986
  "notes": "Grok 4.20 (0309 build), the reasoning variant. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it ($1.25 in / $0.20 cached / $2.50 out). The cheaper tier is `models.price_tier_rule` (migration 0099). Read from docs.x.ai/docs/models on 2026-09-18 (owner: \"read x.ai/pricing and add all models\")."
@@ -462,7 +991,7 @@
462
991
  "contextWindow": 1000000,
463
992
  "supportsTools": true,
464
993
  "supportsThinking": false,
465
- "supportsVision": false,
994
+ "supportsVision": true,
466
995
  "inputPricePerM": 2.5,
467
996
  "outputPricePerM": 5,
468
997
  "notes": "Grok 4.20 (0309 build) without reasoning: same prices, faster, no thinking. TIERED upstream: this is the >=200k price; below 200k prompt tokens xAI charges half of it ($1.25 in / $0.20 cached / $2.50 out). The cheaper tier is `models.price_tier_rule` (migration 0099). Read from docs.x.ai/docs/models on 2026-09-18 (owner: \"read x.ai/pricing and add all models\"). NOT LISTED: `grok-4.20-multi-agent-0309` — every request from the engine carries tools and xAI answers `400 Client-side tools for multi-agent models require beta access` (measured 2026-09-19 through the pool on the owner's SuperGrok); delisted by migration 0100 until xAI opens that beta."
@@ -531,8 +1060,8 @@
531
1060
  "x-authenticateresponse": "authenticate-response",
532
1061
  "x-grok-client-mode": "interactive",
533
1062
  "x-grok-client-identifier": "grok-pager",
534
- "x-grok-client-version": "1.0.46",
535
- "user-agent": "grok-pager/1.0.46 grok-shell/1.0.46 (windows; x86_64)"
1063
+ "x-grok-client-version": "1.0.50",
1064
+ "user-agent": "grok-pager/1.0.50 grok-shell/1.0.50 (windows; x86_64)"
536
1065
  }
537
1066
  }
538
1067
  ]
@@ -552,8 +1081,8 @@
552
1081
  "x-authenticateresponse": "authenticate-response",
553
1082
  "x-grok-client-mode": "interactive",
554
1083
  "x-grok-client-identifier": "grok-pager",
555
- "x-grok-client-version": "1.0.46",
556
- "user-agent": "grok-pager/1.0.46 grok-shell/1.0.46 (windows; x86_64)"
1084
+ "x-grok-client-version": "1.0.50",
1085
+ "user-agent": "grok-pager/1.0.50 grok-shell/1.0.50 (windows; x86_64)"
557
1086
  }
558
1087
  },
559
1088
  "models": [
@@ -564,9 +1093,22 @@
564
1093
  "contextWindow": 500000,
565
1094
  "supportsTools": true,
566
1095
  "supportsThinking": true,
567
- "supportsVision": false,
1096
+ "supportsVision": true,
568
1097
  "inputPricePerM": 4,
569
- "outputPricePerM": 12
1098
+ "outputPricePerM": 12,
1099
+ "defaultEffort": "high"
1100
+ },
1101
+ {
1102
+ "id": "grok-4.7-build-fast",
1103
+ "effortLevels": ["low", "medium", "high", "xhigh"],
1104
+ "displayName": "Grok 4.7 Fast",
1105
+ "contextWindow": 500000,
1106
+ "supportsTools": true,
1107
+ "supportsThinking": true,
1108
+ "supportsVision": false,
1109
+ "inputPricePerM": 8,
1110
+ "outputPricePerM": 24,
1111
+ "defaultEffort": "high"
570
1112
  },
571
1113
  {
572
1114
  "id": "grok-4.6",
@@ -575,20 +1117,22 @@
575
1117
  "contextWindow": 500000,
576
1118
  "supportsTools": true,
577
1119
  "supportsThinking": true,
578
- "supportsVision": false,
1120
+ "supportsVision": true,
579
1121
  "inputPricePerM": 4,
580
- "outputPricePerM": 12
1122
+ "outputPricePerM": 12,
1123
+ "defaultEffort": "high"
581
1124
  },
582
1125
  {
583
1126
  "id": "grok-4.5",
584
- "effortLevels": ["low", "medium", "high", "xhigh"],
1127
+ "effortLevels": ["low", "medium", "high"],
585
1128
  "displayName": "Grok 4.5",
586
1129
  "contextWindow": 500000,
587
1130
  "supportsTools": true,
588
1131
  "supportsThinking": true,
589
- "supportsVision": false,
1132
+ "supportsVision": true,
590
1133
  "inputPricePerM": 4,
591
- "outputPricePerM": 12
1134
+ "outputPricePerM": 12,
1135
+ "defaultEffort": "high"
592
1136
  },
593
1137
  {
594
1138
  "id": "grok-4.3",
@@ -596,7 +1140,7 @@
596
1140
  "contextWindow": 1000000,
597
1141
  "supportsTools": true,
598
1142
  "supportsThinking": true,
599
- "supportsVision": false,
1143
+ "supportsVision": true,
600
1144
  "inputPricePerM": 2.5,
601
1145
  "outputPricePerM": 5
602
1146
  },
@@ -606,7 +1150,7 @@
606
1150
  "contextWindow": 256000,
607
1151
  "supportsTools": true,
608
1152
  "supportsThinking": true,
609
- "supportsVision": false,
1153
+ "supportsVision": true,
610
1154
  "inputPricePerM": 2,
611
1155
  "outputPricePerM": 4
612
1156
  },
@@ -616,7 +1160,7 @@
616
1160
  "contextWindow": 1000000,
617
1161
  "supportsTools": true,
618
1162
  "supportsThinking": true,
619
- "supportsVision": false,
1163
+ "supportsVision": true,
620
1164
  "notes": "Served from the subscription pool through the Grok CLI chat proxy; no per-token price — the weekly pool is what it costs."
621
1165
  },
622
1166
  {
@@ -625,7 +1169,7 @@
625
1169
  "contextWindow": 1000000,
626
1170
  "supportsTools": true,
627
1171
  "supportsThinking": false,
628
- "supportsVision": false,
1172
+ "supportsVision": true,
629
1173
  "notes": "Served from the subscription pool through the Grok CLI chat proxy; no per-token price — the weekly pool is what it costs."
630
1174
  }
631
1175
  ],
@@ -1143,26 +1687,6 @@
1143
1687
  "supportsThinking": true,
1144
1688
  "supportsVision": true,
1145
1689
  "notes": "The cheap half of the V2.6 series and what replaces mimo-v2.5. Same 1M context and 128K output as the Pro, a fifth of the price ($0.14 / $0.28 per MTok overseas). Read from mimo.mi.com/models/en-US/mimo-v2.6-flash on 2026-09-22."
1146
- },
1147
- {
1148
- "id": "mimo-v2.5",
1149
- "displayName": "MiMo v2.5",
1150
- "contextWindow": 1000000,
1151
- "maxOutputTokens": 128000,
1152
- "supportsTools": true,
1153
- "supportsThinking": true,
1154
- "supportsVision": false,
1155
- "notes": "WITHDRAWN BY XIAOMI on 2026-10-21 at 10:00 GMT+8 — the name stops working, so a chat pinned to it fails from that moment. mimo-v2.6-flash is the replacement at the same price. Verified present on api.xiaomimimo.com/v1/models 2026-08-31; it was missing here because this list is hand-maintained. 1M context and 128K output, read from mimo.mi.com/models/en-US/mimo-v2.5 on 2026-09-24 — until then no size was listed and the engine compacted these chats at its own 200k guess. Xiaomi's image-understanding guide lists this model as accepting images, which contradicts the false below; left as it stands because the model has weeks to live and changing it would change what the host lets you attach."
1156
- },
1157
- {
1158
- "id": "mimo-v2.5-pro",
1159
- "displayName": "MiMo v2.5 Pro",
1160
- "contextWindow": 1000000,
1161
- "maxOutputTokens": 128000,
1162
- "supportsTools": true,
1163
- "supportsThinking": true,
1164
- "supportsVision": false,
1165
- "notes": "WITHDRAWN BY XIAOMI on 2026-10-21 at 10:00 GMT+8, together with mimo-v2.5. mimo-v2.6-pro is the replacement, at the same price. 1M context and 128K output, read from mimo.mi.com/models/en-US/mimo-v2.5-pro on 2026-09-24."
1166
1690
  }
1167
1691
  ],
1168
1692
  "defaultModel": "mimo-v2.6-pro",
@@ -1300,6 +1824,19 @@
1300
1824
  "outputPricePerM": 3.75,
1301
1825
  "notes": "Google lists one model per level — gemini-3.7-flash-high, -medium and -low (fetchAvailableModels, 2026-10-03: 1,048,576 context / 65,536 output each); OonaCode shows ONE model and the chat’s effort picker fills the level (upstreamId template; xhigh and max read as high; no effort = high). Cost = Google’s Gemini API list price for gemini-3.7-flash: $0.75 in / $0.075 cached / $3.75 out per 1M through 2026-12-31, DOUBLING to $1.50 / $0.15 / $7.50 from 2027-01-01 (ai.google.dev/gemini-api/docs/pricing, updated 2026-10-01) — move the cost cells on the model page then."
1302
1826
  },
1827
+ {
1828
+ "id": "gemini-4-argon",
1829
+ "displayName": "Gemini 4 Argon (Antigravity)",
1830
+ "upstreamId": "gemini-4-argon-{effort:high}",
1831
+ "contextWindow": 1048576,
1832
+ "maxOutputTokens": 65536,
1833
+ "supportsTools": true,
1834
+ "supportsThinking": true,
1835
+ "supportsVision": true,
1836
+ "inputPricePerM": 2,
1837
+ "outputPricePerM": 10,
1838
+ "notes": "Google lists one model per level - gemini-4-argon-high, -medium and -low (fetchAvailableModels on the operator's Ultra account, 2026-10-13: 1,048,576 context / 65,536 output each; model enums M417 / M418 / M419); OonaCode shows ONE model and the chat's effort picks the level. Asked like the Google-hosted Claude models: a dynamic thinking budget (-1) AND the thinkingLevel (recorded from agy 1.3.3, three real turns plus a tool call). Ultra accounts only: a non-Ultra personal account does not list it. Google's Gemini API list price is INTRODUCTORY $2 / $0.10 cached / $10 per 1M through 2026-11-30 and $4 / $0.20 / $20 from 2026-12-01 - move the catalogue cells then."
1839
+ },
1303
1840
  {
1304
1841
  "id": "google-claude-opus-5-5",
1305
1842
  "displayName": "Claude Opus 5.5 (via Google)",
@@ -1380,7 +1917,7 @@
1380
1917
  "operatorOnly": true,
1381
1918
  "baseUrl": "https://daily-cloudcode-pa.googleapis.com",
1382
1919
  "extraHeaders": {
1383
- "user-agent": "antigravity/cli/1.3.1 (aidev_client; os_type=linux; arch=amd64; cl=994719654; auth_method=consumer)"
1920
+ "user-agent": "antigravity/cli/1.3.3 (aidev_client; os_type=linux; arch=amd64; cl=996823801; auth_method=consumer)"
1384
1921
  },
1385
1922
  "agyLogin": {
1386
1923
  "type": "agy-server",
@@ -1406,7 +1943,146 @@
1406
1943
  "notes": "The operator’s Antigravity account. The base URL is the daily Code Assist channel Antigravity itself talks to (its language server runs with --cloud_code_endpoint https://daily-cloudcode-pa.googleapis.com; prod is https://cloudcode-pa.googleapis.com — the row’s base URL decides). The ONE identity header is the user-agent Google’s own agy CLI sends (1.3.0, os_type=linux — the server’s own agy — cl=994000447, recorded 2026-10-06 on Windows and on the server’s Linux; docs/antigravity.md section 12) — bump its version with Antigravity’s, after the new agy has been recorded and tested on dev. Scopes: the six the language server carries minus `aicode`, which the public Antigravity sign-in integrations do not request; add it here if Google ever refuses a Code Assist call for want of it."
1407
1944
  }
1408
1945
  ],
1409
- "effortLevels": ["low", "medium", "high"]
1946
+ "effortLevels": ["low", "medium", "high"],
1947
+ "defaultEffort": "high"
1948
+ },
1949
+ {
1950
+ "id": "nvidia",
1951
+ "displayName": "NVIDIA NIM (cloud)",
1952
+ "kind": "openai-compatible",
1953
+ "route": "gateway",
1954
+ "credentialClass": "api_key",
1955
+ "baseUrl": "https://integrate.api.nvidia.com",
1956
+ "messagesPath": "/v1/chat/completions",
1957
+ "modelsPath": "/v1/models",
1958
+ "auth": {
1959
+ "header": "authorization-bearer"
1960
+ },
1961
+ "models": [
1962
+ {
1963
+ "id": "nvidia/nemotron-3-ultra-550b-a55b",
1964
+ "displayName": "Nemotron 3 Ultra 550B (NIM)",
1965
+ "contextWindow": 262144,
1966
+ "supportsTools": true,
1967
+ "supportsThinking": true,
1968
+ "supportsVision": false
1969
+ },
1970
+ {
1971
+ "id": "nvidia/nemotron-3-super-120b-a12b",
1972
+ "displayName": "Nemotron 3 Super 120B (NIM)",
1973
+ "supportsTools": true,
1974
+ "supportsThinking": true,
1975
+ "supportsVision": false
1976
+ },
1977
+ {
1978
+ "id": "nvidia/nemotron-3.5-lightning-30b-a3b",
1979
+ "displayName": "Nemotron 3.5 Lightning 30B (NIM)",
1980
+ "supportsTools": true,
1981
+ "supportsThinking": true,
1982
+ "supportsVision": false
1983
+ },
1984
+ {
1985
+ "id": "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning",
1986
+ "displayName": "Nemotron 3 Nano Omni 30B (NIM)",
1987
+ "contextWindow": 262144,
1988
+ "supportsTools": true,
1989
+ "supportsThinking": true,
1990
+ "supportsVision": true
1991
+ },
1992
+ {
1993
+ "id": "moonshotai/kimi-k3",
1994
+ "displayName": "Kimi K3 (NIM)",
1995
+ "contextWindow": 1048576,
1996
+ "supportsTools": true,
1997
+ "supportsThinking": true,
1998
+ "supportsVision": true,
1999
+ "notes": "NVIDIA's card says a multi-turn tool conversation must send back the earlier reasoning_content; the translator drops thinking blocks on replay, so long tool loops may degrade. Unverified."
2000
+ },
2001
+ {
2002
+ "id": "z-ai/glm-5.3",
2003
+ "displayName": "GLM-5.3 (NIM)",
2004
+ "contextWindow": 1048576,
2005
+ "supportsTools": true,
2006
+ "supportsThinking": true,
2007
+ "supportsVision": false
2008
+ },
2009
+ {
2010
+ "id": "z-ai/glm-5.3-flash",
2011
+ "displayName": "GLM-5.3 Flash (NIM)",
2012
+ "contextWindow": 1048576,
2013
+ "supportsTools": true,
2014
+ "supportsThinking": true,
2015
+ "supportsVision": true
2016
+ },
2017
+ {
2018
+ "id": "deepseek-ai/deepseek-v4.1-flash",
2019
+ "displayName": "DeepSeek V4.1 Flash (NIM)",
2020
+ "supportsTools": true,
2021
+ "supportsThinking": true,
2022
+ "supportsVision": false,
2023
+ "notes": "NVIDIA's card was not readable (404), so no context window is set: the engine assumes 200k."
2024
+ },
2025
+ {
2026
+ "id": "poolside/laguna-xs-2.1",
2027
+ "displayName": "Poolside Laguna XS 2.1 (NIM)",
2028
+ "contextWindow": 262144,
2029
+ "supportsTools": true,
2030
+ "supportsThinking": true,
2031
+ "supportsVision": false
2032
+ },
2033
+ {
2034
+ "id": "meta/muse-glimmer-30b",
2035
+ "displayName": "Meta Muse Glimmer 30B (NIM)",
2036
+ "contextWindow": 131072,
2037
+ "supportsTools": true,
2038
+ "supportsThinking": true,
2039
+ "supportsVision": true
2040
+ },
2041
+ {
2042
+ "id": "google/gemma-4-31b-it",
2043
+ "displayName": "Gemma 4 31B (NIM)",
2044
+ "contextWindow": 262144,
2045
+ "supportsTools": true,
2046
+ "supportsThinking": false,
2047
+ "supportsVision": true,
2048
+ "notes": "Thinking is switched by a token in the system prompt, which the translator does not send, so it runs without."
2049
+ },
2050
+ {
2051
+ "id": "openai/gpt-oss-20b",
2052
+ "displayName": "GPT-OSS 20B (NIM)",
2053
+ "contextWindow": 128000,
2054
+ "supportsTools": true,
2055
+ "supportsThinking": true,
2056
+ "supportsVision": false
2057
+ }
2058
+ ],
2059
+ "defaultModel": "nvidia/nemotron-3-ultra-550b-a55b",
2060
+ "modelAliases": {
2061
+ "opus": "nvidia/nemotron-3-ultra-550b-a55b",
2062
+ "sonnet": "nvidia/nemotron-3-ultra-550b-a55b",
2063
+ "haiku": "nvidia/nemotron-3-super-120b-a12b"
2064
+ },
2065
+ "capabilities": {
2066
+ "streaming": true,
2067
+ "tools": true,
2068
+ "thinking": true,
2069
+ "vision": false,
2070
+ "countTokens": false,
2071
+ "promptCaching": false
2072
+ },
2073
+ "translate": {
2074
+ "maxTokensParam": "max_tokens",
2075
+ "reasoningEffortFromBudget": false,
2076
+ "reasoningContentField": "reasoning_content",
2077
+ "supportsParallelToolCalls": false,
2078
+ "systemRole": "system",
2079
+ "streamIncludeUsage": true
2080
+ },
2081
+ "userBaseUrl": true,
2082
+ "phase": 1,
2083
+ "enabled": true,
2084
+ "notes": "A user's OWN key only (owner, 2026-10-12: \"bring back the nvidia for local only, i have apikey want to use it now\"). The host translates it on the PC (engine/local-upstream.ts) and the key never reaches the gateway; the server never calls NVIDIA (SERVER_EXCLUDED_PROVIDER_IDS: no pool rows, no admin page). Models are NVIDIA's current hosted catalogue that call tools (build.nvidia.com, 2026-10-12); a context window is set only where the model card states one, otherwise the engine's 200k default applies. Left out: embeddings, safety filters, parsers, DiffusionGemma and the two Llama 3.2 vision models (no tool calling).",
2085
+ "docsUrl": "https://docs.api.nvidia.com/nim/"
1410
2086
  }
1411
2087
  ]
1412
2088
  }