oc-chatgpt-multi-auth 5.2.5-beta → 5.2.6-beta

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 (59) hide show
  1. package/README.md +42 -7
  2. package/config/README.md +21 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +259 -17
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/config.d.ts +13 -2
  7. package/dist/lib/config.d.ts.map +1 -1
  8. package/dist/lib/config.js +155 -4
  9. package/dist/lib/config.js.map +1 -1
  10. package/dist/lib/prompts/codex-opencode-bridge.d.ts +16 -1
  11. package/dist/lib/prompts/codex-opencode-bridge.d.ts.map +1 -1
  12. package/dist/lib/prompts/codex-opencode-bridge.js +56 -15
  13. package/dist/lib/prompts/codex-opencode-bridge.js.map +1 -1
  14. package/dist/lib/prompts/codex.d.ts +16 -1
  15. package/dist/lib/prompts/codex.d.ts.map +1 -1
  16. package/dist/lib/prompts/codex.js +60 -18
  17. package/dist/lib/prompts/codex.js.map +1 -1
  18. package/dist/lib/request/fetch-helpers.d.ts +29 -2
  19. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  20. package/dist/lib/request/fetch-helpers.js +194 -3
  21. package/dist/lib/request/fetch-helpers.js.map +1 -1
  22. package/dist/lib/request/helpers/model-map.js +23 -23
  23. package/dist/lib/request/helpers/model-map.js.map +1 -1
  24. package/dist/lib/request/model-capabilities.d.ts +26 -0
  25. package/dist/lib/request/model-capabilities.d.ts.map +1 -0
  26. package/dist/lib/request/model-capabilities.js +274 -0
  27. package/dist/lib/request/model-capabilities.js.map +1 -0
  28. package/dist/lib/request/request-transformer.d.ts +23 -6
  29. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  30. package/dist/lib/request/request-transformer.js +142 -44
  31. package/dist/lib/request/request-transformer.js.map +1 -1
  32. package/dist/lib/request/response-handler.d.ts +2 -0
  33. package/dist/lib/request/response-handler.d.ts.map +1 -1
  34. package/dist/lib/request/response-handler.js +132 -7
  35. package/dist/lib/request/response-handler.js.map +1 -1
  36. package/dist/lib/request/retry-policy.d.ts +23 -0
  37. package/dist/lib/request/retry-policy.d.ts.map +1 -0
  38. package/dist/lib/request/retry-policy.js +156 -0
  39. package/dist/lib/request/retry-policy.js.map +1 -0
  40. package/dist/lib/request/runtime-tool-capabilities.d.ts +23 -0
  41. package/dist/lib/request/runtime-tool-capabilities.d.ts.map +1 -0
  42. package/dist/lib/request/runtime-tool-capabilities.js +169 -0
  43. package/dist/lib/request/runtime-tool-capabilities.js.map +1 -0
  44. package/dist/lib/schemas.d.ts +44 -2
  45. package/dist/lib/schemas.d.ts.map +1 -1
  46. package/dist/lib/schemas.js +11 -1
  47. package/dist/lib/schemas.js.map +1 -1
  48. package/dist/lib/storage/paths.d.ts +5 -0
  49. package/dist/lib/storage/paths.d.ts.map +1 -1
  50. package/dist/lib/storage/paths.js +8 -0
  51. package/dist/lib/storage/paths.js.map +1 -1
  52. package/dist/lib/storage.d.ts +10 -0
  53. package/dist/lib/storage.d.ts.map +1 -1
  54. package/dist/lib/storage.js +46 -2
  55. package/dist/lib/storage.js.map +1 -1
  56. package/dist/lib/types.d.ts +10 -1
  57. package/dist/lib/types.d.ts.map +1 -1
  58. package/package.json +3 -1
  59. package/scripts/audit-codex-releases.js +529 -0
package/README.md CHANGED
@@ -121,10 +121,12 @@ opencode run "Hello" --model=openai/gpt-5.2 --variant=medium
121
121
 
122
122
  ---
123
123
 
124
- ## Beta Quickstart (v5.2.4-beta)
124
+ ## Beta Quickstart (v5.2.6-beta)
125
125
 
126
126
  Use this only if you are testing the beta release.
127
127
 
128
+ Detailed beta release notes: `docs/releases/v5.2.6-beta.md`
129
+
128
130
  ### Install Beta
129
131
 
130
132
  ```bash
@@ -135,13 +137,19 @@ npm install -g oc-chatgpt-multi-auth@beta
135
137
 
136
138
  No extra config is required.
137
139
 
140
+ The beta already enables safe defaults for:
141
+
142
+ - one-time tool argument recovery for known-safe missing fields (for example `run_in_background`)
143
+ - approval/policy errors returning actionable guidance without unnecessary account rotation
144
+
138
145
  ### Optional Beta Feature Config
139
146
 
140
147
  Enable legacy bridge mode and hashline hint policy:
141
148
 
142
149
  ```bash
143
150
  CODEX_AUTH_REQUEST_TRANSFORM_MODE=legacy
144
- CODEX_AUTH_HASHLINE_HINTS_MODE=off # or: hints | strict
151
+ CODEX_AUTH_HASHLINE_HINTS_MODE=auto # default; or: off | hints | strict
152
+ CODEX_AUTH_TOOL_ARGUMENT_RECOVERY_MODE=safe # default; set off to disable safe auto-recovery
145
153
  ```
146
154
 
147
155
  Legacy compatibility toggle (used only when `CODEX_AUTH_HASHLINE_HINTS_MODE` is unset):
@@ -163,12 +171,19 @@ Then inspect plugin logs for markers:
163
171
  - `hashline_beta_hints`
164
172
  - `hashline_policy mode="strict"`
165
173
  - `tool_unavailable_recovery`
174
+ - `tool_argument_recovery`
166
175
  - `runtime_tool_alias_compat` (appears when runtime tool names conflict with generic alias rules)
167
176
 
177
+ Also watch warn logs for `Model reroute observed` when the upstream endpoint serves a different effective model than requested.
178
+
168
179
  Hashline marker interpretation:
169
180
 
181
+ - `auto` mode checks the runtime tool manifest each turn.
182
+ - Detection uses runtime tool names and hashline capability signals from tool metadata (description/schema) for runtimes that keep the tool name as `edit`.
170
183
  - If hashline tools are present, marker block is active.
171
- - If hashline tools are missing, marker block is emitted with `active="false"` and guidance falls back to runtime-listed edit tools.
184
+ - If hashline tools are missing, marker block is not injected in `auto`; guidance falls back to runtime-listed edit tools.
185
+ - In forced `hints`/`strict`, marker block is still emitted with `active="false"` when hashline tools are missing.
186
+ - True hashline execution requires runtime-exposed hashline edit tools (for example `hashline_*` / `line-hash-*`). If runtime only exposes `apply_patch`/`edit`, hashline cannot be forced.
172
187
 
173
188
  ### Roll Back To Stable
174
189
 
@@ -213,7 +228,9 @@ CODEX_AUTH_REQUEST_TRANSFORM_MODE=legacy CODEX_AUTH_HASHLINE_HINTS_MODE=strict o
213
228
  |-------|----------|-------|
214
229
  | `gpt-5.2` | none, low, medium, high, xhigh | Latest GPT-5.2 with reasoning levels |
215
230
  | `gpt-5-codex` | low, medium, high | Canonical Codex model for code generation (default: high) |
231
+ | `gpt-5.3-codex` | low, medium, high, xhigh | Versioned Codex path (kept as-is in outbound requests) |
216
232
  | `gpt-5.3-codex-spark` | low, medium, high, xhigh | Spark IDs are supported by the plugin, but access is entitlement-gated by account/workspace |
233
+ | `gpt-5.2-codex` | low, medium, high, xhigh | Versioned Codex path (kept as-is in outbound requests) |
217
234
  | `gpt-5.1-codex-max` | low, medium, high, xhigh | Maximum context Codex |
218
235
  | `gpt-5.1-codex` | low, medium, high | Standard Codex |
219
236
  | `gpt-5.1-codex-mini` | medium, high | Lightweight Codex |
@@ -792,21 +809,29 @@ Create `~/.opencode/openai-codex-auth-config.json` for optional settings:
792
809
  | Option | Default | What It Does |
793
810
  |--------|---------|--------------|
794
811
  | `requestTransformMode` | `native` | Request shaping mode: `native` keeps OpenCode payloads unchanged; `legacy` enables Codex compatibility rewrites |
812
+ | `policyProfile` | `stable` | Bundled defaults for advanced toggles (`stable`, `balanced`, `aggressive`) while preserving explicit per-setting overrides |
795
813
  | `codexMode` | `true` | Legacy-only bridge prompt behavior (applies when `requestTransformMode=legacy`) |
796
- | `hashlineBridgeHintsMode` | `off` | Legacy-transform hint mode for hashline runtimes: `off` (disabled), `hints` (soft preference), `strict` (enforce hashline-first guidance for targeted edits) |
797
- | `hashlineBridgeHintsBeta` | `false` | Legacy compatibility boolean mapped to `hashlineBridgeHintsMode` (`true -> hints`, `false -> off`) |
814
+ | `hashlineBridgeHintsMode` | `auto` | Legacy-transform hint mode for hashline runtimes: `auto` (enable hints only when runtime exposes hashline tools), `off`, `hints`, `strict` |
815
+ | `hashlineBridgeHintsBeta` | `false` | Legacy compatibility boolean used only when `hashlineBridgeHintsMode` is unset (`true -> hints`, `false -> off`) |
798
816
  | `codexTuiV2` | `true` | Enables Codex-style terminal UI output (set `false` for legacy output) |
799
817
  | `codexTuiColorProfile` | `truecolor` | Terminal color profile for Codex UI (`truecolor`, `ansi256`, `ansi16`) |
800
818
  | `codexTuiGlyphMode` | `ascii` | Glyph mode for Codex UI (`ascii`, `unicode`, `auto`) |
801
819
  | `fastSession` | `false` | Forces low-latency settings per request (`reasoningEffort=none/low`, `reasoningSummary=auto`, `textVerbosity=low`) |
802
820
  | `fastSessionStrategy` | `hybrid` | `hybrid` speeds simple turns but keeps full-depth on complex prompts; `always` forces fast tuning on every turn |
803
821
  | `fastSessionMaxInputItems` | `30` | Max input items kept when fast tuning is applied |
822
+ | `toolArgumentRecoveryMode` | `safe` | One-time safe retry guidance for common tool argument schema failures; supports `off`, `safe`, `schema-safe` |
823
+ | `retryPolicyMode` | `legacy` | Retry orchestration mode (`legacy` or `route-matrix`) |
824
+ | `rerouteNoticeMode` | `log` | Reroute visibility (`off`, `log`, `log+ui`) |
825
+ | `jsonRepairMode` | `safe` | Safe SSE JSON repair during non-stream conversion (`safe`, `off`) |
826
+ | `configDoctorMode` | `warn` | Startup warnings for conflicting/legacy config settings (`warn`, `off`) |
804
827
 
805
828
  ### Account Settings (v4.10.0+)
806
829
 
807
830
  | Option | Default | What It Does |
808
831
  |--------|---------|--------------|
809
- | `perProjectAccounts` | `true` | Each project gets its own account storage namespace under `~/.opencode/projects/` |
832
+ | `accountScopeMode` | `project` | Explicit account storage scope: `global`, `project`, or `worktree` |
833
+ | `perProjectAccounts` | `true` | Legacy boolean compatibility (`true -> project`, `false -> global`) |
834
+ | `tokenRefreshSkewMode` | `static` | Refresh-window mode: `static` uses `tokenRefreshSkewMs`, `adaptive` scales skew by expiry horizon + recent refresh failures |
810
835
  | `toastDurationMs` | `5000` | How long toast notifications stay visible (ms) |
811
836
 
812
837
  ### Retry Behavior
@@ -838,7 +863,8 @@ CODEX_PLUGIN_LOG_BODIES=1 opencode # Include raw request/response
838
863
  CODEX_PLUGIN_LOG_LEVEL=debug opencode # Set log level (debug|info|warn|error)
839
864
  CODEX_AUTH_REQUEST_TRANSFORM_MODE=legacy opencode # Re-enable legacy Codex request rewrites
840
865
  CODEX_MODE=0 opencode # Temporarily disable bridge prompt
841
- CODEX_AUTH_HASHLINE_HINTS_MODE=hints opencode # Hashline guidance mode: off|hints|strict
866
+ CODEX_AUTH_POLICY_PROFILE=balanced opencode # Apply bundled defaults (stable|balanced|aggressive)
867
+ CODEX_AUTH_HASHLINE_HINTS_MODE=auto opencode # Hashline guidance mode: auto|off|hints|strict
842
868
  CODEX_AUTH_HASHLINE_HINTS_BETA=1 opencode # Legacy toggle (maps to hints/off when MODE is unset)
843
869
  CODEX_TUI_V2=0 opencode # Disable Codex-style UI (legacy output)
844
870
  CODEX_TUI_COLOR_PROFILE=ansi16 opencode # Force UI color profile
@@ -847,6 +873,13 @@ CODEX_AUTH_PREWARM=0 opencode # Disable startup prewarm (prom
847
873
  CODEX_AUTH_FAST_SESSION=1 opencode # Enable faster response defaults
848
874
  CODEX_AUTH_FAST_SESSION_STRATEGY=always opencode # Force fast mode for all prompts
849
875
  CODEX_AUTH_FAST_SESSION_MAX_INPUT_ITEMS=24 opencode # Tune fast-mode history window
876
+ CODEX_AUTH_ACCOUNT_SCOPE_MODE=worktree opencode # Explicit account storage scope (global|project|worktree)
877
+ CODEX_AUTH_TOOL_ARGUMENT_RECOVERY_MODE=schema-safe opencode # Runtime-schema-aware safe tool-arg recovery
878
+ CODEX_AUTH_RETRY_POLICY_MODE=route-matrix opencode # Route-aware retry policy engine (opt-in)
879
+ CODEX_AUTH_REROUTE_NOTICE_MODE=log+ui opencode # Warn log + TUI toast on upstream model reroute
880
+ CODEX_AUTH_JSON_REPAIR_MODE=safe opencode # Safe SSE JSON payload repair during non-stream parsing
881
+ CODEX_AUTH_CONFIG_DOCTOR_MODE=warn opencode # Startup warnings for conflicting/legacy config
882
+ CODEX_AUTH_TOKEN_REFRESH_SKEW_MODE=adaptive opencode # Adaptive token refresh windowing
850
883
  CODEX_AUTH_UNSUPPORTED_MODEL_POLICY=fallback opencode # Enable generic unsupported-model fallback
851
884
  CODEX_AUTH_FALLBACK_UNSUPPORTED_MODEL=1 opencode # Legacy fallback toggle (prefer policy var above)
852
885
  CODEX_AUTH_FALLBACK_GPT53_TO_GPT52=0 opencode # Disable only the legacy gpt-5.3 -> gpt-5.2 edge
@@ -862,6 +895,8 @@ For all options, see [docs/configuration.md](docs/configuration.md).
862
895
 
863
896
  - [Getting Started](docs/getting-started.md) — Complete installation guide
864
897
  - [Configuration](docs/configuration.md) — All configuration options
898
+ - [Codex Release Audit](docs/audit/codex-release-parity.md) — Stable non-beta Codex release snapshot
899
+ - [Codex Release Parity Matrix](docs/audit/codex-release-parity-matrix.md) — Semantic release-note parity matrix (plugin relevance)
865
900
  - [Troubleshooting](docs/troubleshooting.md) — Common issues and fixes
866
901
  - [Architecture](docs/development/ARCHITECTURE.md) — How the plugin works
867
902
 
package/config/README.md CHANGED
@@ -75,16 +75,33 @@ Current defaults are strict entitlement handling:
75
75
 
76
76
  ### Optional hashline guidance mode for edit-tool performance
77
77
 
78
- If you use legacy request transforms and your runtime exposes hashline edit tools, you can enable:
79
- - `hashlineBridgeHintsMode: "hints"` in `~/.opencode/openai-codex-auth-config.json`
80
- - or `CODEX_AUTH_HASHLINE_HINTS_MODE=hints`
78
+ If you use legacy request transforms, `hashlineBridgeHintsMode` now defaults to `auto`.
79
+ That means the plugin checks runtime tool names each turn and only enables hashline hints when hashline-style edit tools are actually exposed.
80
+ It also checks runtime tool metadata signals (description/schema) so hashline-backed `edit` overrides can still be detected.
81
+
82
+ You can still force behavior manually:
83
+ - `hashlineBridgeHintsMode: "auto"` (default), `"off"`, `"hints"`, or `"strict"` in `~/.opencode/openai-codex-auth-config.json`
84
+ - or `CODEX_AUTH_HASHLINE_HINTS_MODE=auto|off|hints|strict`
81
85
 
82
86
  Modes:
83
- - `off` (default): disabled
87
+ - `auto` (default): automatic runtime detection
88
+ - `off`: disabled
84
89
  - `hints`: soft preference for hashline-style edits over generic patch flows
85
90
  - `strict`: hashline-first guidance for targeted edits
86
91
 
87
92
  Legacy compatibility remains available via `hashlineBridgeHintsBeta` / `CODEX_AUTH_HASHLINE_HINTS_BETA`.
93
+ True hashline execution requires runtime-exposed hashline tools; if runtime only exposes generic edit tools, hashline cannot be forced by config alone.
94
+
95
+ ### Policy profile + account scope defaults
96
+
97
+ - `policyProfile`: `stable` (default), `balanced`, `aggressive`
98
+ - `accountScopeMode`: `global`, `project` (default), `worktree`
99
+ - `tokenRefreshSkewMode`: `static` (default), `adaptive`
100
+
101
+ Profile defaults are applied only when specific keys are unset. Explicit settings still win.
102
+ Legacy compatibility:
103
+ - `perProjectAccounts: true|false` maps to `accountScopeMode=project|global`
104
+ - `CODEX_AUTH_PER_PROJECT_ACCOUNTS=1|0` works the same way
88
105
 
89
106
  Default fallback chain (when policy is `fallback`):
90
107
  - `gpt-5.3-codex -> gpt-5-codex -> gpt-5.2-codex`
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAgJ/D;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,iBAAiB,EAAE,MA4jG/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAoB,CAAC;AAElD,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AA+J/D;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,iBAAiB,EAAE,MA63G/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAoB,CAAC;AAElD,eAAe,iBAAiB,CAAC"}