oc-codex-multi-auth 6.16.0 → 6.18.0

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/README.md +18 -13
  2. package/config/README.md +36 -13
  3. package/config/opencode-legacy.json +150 -0
  4. package/config/opencode-modern.json +48 -0
  5. package/dist/lib/codex-usage.d.ts +22 -0
  6. package/dist/lib/codex-usage.d.ts.map +1 -1
  7. package/dist/lib/codex-usage.js +73 -0
  8. package/dist/lib/codex-usage.js.map +1 -1
  9. package/dist/lib/config.d.ts +2 -0
  10. package/dist/lib/config.d.ts.map +1 -1
  11. package/dist/lib/config.js +7 -1
  12. package/dist/lib/config.js.map +1 -1
  13. package/dist/lib/prompts/codex.d.ts +1 -1
  14. package/dist/lib/prompts/codex.d.ts.map +1 -1
  15. package/dist/lib/prompts/codex.js +50 -4
  16. package/dist/lib/prompts/codex.js.map +1 -1
  17. package/dist/lib/quota-notifications.d.ts +1 -1
  18. package/dist/lib/quota-notifications.d.ts.map +1 -1
  19. package/dist/lib/quota-notifications.js +42 -13
  20. package/dist/lib/quota-notifications.js.map +1 -1
  21. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  22. package/dist/lib/request/fetch-helpers.js +101 -11
  23. package/dist/lib/request/fetch-helpers.js.map +1 -1
  24. package/dist/lib/request/helpers/client-identity.d.ts.map +1 -1
  25. package/dist/lib/request/helpers/client-identity.js +9 -2
  26. package/dist/lib/request/helpers/client-identity.js.map +1 -1
  27. package/dist/lib/request/helpers/model-map.d.ts +23 -0
  28. package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
  29. package/dist/lib/request/helpers/model-map.js +92 -2
  30. package/dist/lib/request/helpers/model-map.js.map +1 -1
  31. package/dist/lib/request/helpers/responses-lite.d.ts.map +1 -1
  32. package/dist/lib/request/helpers/responses-lite.js +16 -1
  33. package/dist/lib/request/helpers/responses-lite.js.map +1 -1
  34. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  35. package/dist/lib/request/request-transformer.js +78 -13
  36. package/dist/lib/request/request-transformer.js.map +1 -1
  37. package/dist/lib/schemas.d.ts +13 -0
  38. package/dist/lib/schemas.d.ts.map +1 -1
  39. package/dist/lib/schemas.js +1 -0
  40. package/dist/lib/schemas.js.map +1 -1
  41. package/dist/lib/tools/codex-limits.d.ts.map +1 -1
  42. package/dist/lib/tools/codex-limits.js +21 -2
  43. package/dist/lib/tools/codex-limits.js.map +1 -1
  44. package/package.json +1 -1
  45. package/scripts/install-oc-codex-multi-auth-core.js +18 -5
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![CI](https://github.com/ndycode/oc-codex-multi-auth/actions/workflows/ci.yml/badge.svg)](https://github.com/ndycode/oc-codex-multi-auth/actions/workflows/ci.yml)
6
6
  [![MIT license](https://img.shields.io/npm/l/oc-codex-multi-auth.svg)](LICENSE)
7
7
 
8
- `oc-codex-multi-auth` is an OpenCode plugin for ChatGPT Plus/Pro OAuth, Codex and GPT-5 model routing (including GPT-5.6 Sol/Terra/Luna), multi-account rotation, account switching, health checks, quota visibility, diagnostics, and recovery tools. It installs the OpenCode provider/TUI configuration, registers a 24-tool `codex-*` command toolkit, and routes OpenCode OpenAI SDK requests through the ChatGPT-backed Codex flow with local account state.
8
+ `oc-codex-multi-auth` is an OpenCode plugin for ChatGPT Plus/Pro OAuth, Codex and GPT-5/GPT-6 model routing (including GPT-6 Astra, the Daybreak cyber tiers, and GPT-5.6 Sol/Terra/Luna), multi-account rotation, account switching, health checks, quota visibility, diagnostics, and recovery tools. It installs the OpenCode provider/TUI configuration, registers a 24-tool `codex-*` command toolkit, and routes OpenCode OpenAI SDK requests through the ChatGPT-backed Codex flow with local account state.
9
9
 
10
10
  Use it when you want OpenCode to run Codex-style coding workflows from your own ChatGPT subscription while keeping accounts visible, switchable, health-checked, and recoverable from the terminal.
11
11
 
@@ -20,8 +20,9 @@ Use it when you want OpenCode to run Codex-style coding workflows from your own
20
20
  ## What You Get
21
21
 
22
22
  - OpenCode plugin support for ChatGPT Plus/Pro OAuth and Codex/GPT-5 coding workflows
23
- - GPT-5.6 Sol, Terra, and Luna (responses-lite path) plus GPT-5.5, GPT-5.5 Fast, GPT-5.4 Mini, GPT-5.4 Nano, GPT-5.1, and Codex model templates
24
- - Compact modern OpenCode config with 12 base families and 53 variant presets; explicit legacy selector IDs when needed
23
+ - GPT-6 Astra and GPT-5.6 Sol/Terra/Luna (responses-lite path) plus GPT-5.5, GPT-5.5 Fast, GPT-5.4 Mini, GPT-5.4 Nano, GPT-5.1, and Codex model templates
24
+ - Routing for the Daybreak-gated cyber tiers (`gpt-daybreak-blue-latest`, `gpt-daybreak-red-latest`, `gpt-5.6-cyber`), deliberately kept out of the shipped templates since they need program approval
25
+ - Compact modern OpenCode config with 13 base families and 59 variant presets; explicit legacy selector IDs when needed
25
26
  - Stateless Codex-compatible request handling with `store: false` and `reasoning.encrypted_content`
26
27
  - Multi-account rotation with hybrid health scoring, cooldowns, automatic token refresh, and failover
27
28
  - Explicit saved-account listing, account switching, labeling, tagging, notes, health checks, and diagnostics
@@ -89,8 +90,8 @@ Installer flags:
89
90
  | Flag | Effect |
90
91
  | --- | --- |
91
92
  | (default) / `--plugin-only` | Register the plugin and TUI integration without changing `provider.openai` |
92
- | `--modern` | Install compact modern catalog: 12 bases, 53 variants |
93
- | `--full` | Compact bases plus 53 explicit selector IDs |
93
+ | `--modern` | Install compact modern catalog: 13 bases, 59 variants |
94
+ | `--full` | Compact bases plus 59 explicit selector IDs |
94
95
  | `--legacy` | Explicit-only catalog for older OpenCode |
95
96
  | `--dry-run` | Show changed config paths without values or writes |
96
97
  | `--no-cache-clear` | Skip clearing the OpenCode plugin cache |
@@ -190,7 +191,7 @@ Run a prompt with compact modern selectors:
190
191
  ```bash
191
192
  opencode run "Summarize the failing test and suggest a fix" --model=openai/gpt-5.5 --variant=medium
192
193
  opencode run "Summarize the failing test and suggest a fix" --model=openai/gpt-5.5-fast --variant=medium
193
- opencode run "Plan the refactor" --model=openai/gpt-5.6-sol --variant=high
194
+ opencode run "Plan the refactor" --model=openai/gpt-6-astra --variant=high
194
195
  ```
195
196
 
196
197
  Use Codex-focused routing:
@@ -255,8 +256,9 @@ Most of these also run as a **direct CLI** with no agent/model involvement (no t
255
256
 
256
257
  - stateless request handling forces `store: false`
257
258
  - `reasoning.encrypted_content` is preserved for multi-turn continuity
258
- - GPT-5.6 tiers use the responses-lite request shape and default client identity `opencode`; other models default to `codex_cli_rs`
259
+ - GPT-6 Astra, the Daybreak tiers and the GPT-5.6 tiers use the responses-lite request shape and default client identity `opencode`; other models default to `codex_cli_rs`
259
260
  - account rotation is health-aware (`rotationStrategy` default `hybrid`) and avoids repeatedly selecting cooling accounts
261
+ - The quota guard checks each enabled account at a bounded interval (30 minutes by default). When it finds a fully spent 5-hour or weekly subscription quota, rotation skips that account until its reported reset instead of drawing from paid Credits. `codex-limits` applies the same guard immediately when run manually. After running standalone `limits`, restart an already-running OpenCode instance or wait for its next quota poll to reload the updated account state.
260
262
  - same-host OpenCode processes sharing an account file serialize refresh-token exchange and commit so one current single-use token is exchanged once
261
263
  - 5xx bursts, network failures, and quota responses penalize account health
262
264
  - token refresh is queued to avoid refresh races
@@ -297,10 +299,12 @@ Primary config files:
297
299
 
298
300
  ### Desktop quota notifications
299
301
 
300
- Quota notifications are an optional macOS-only feature. While the plugin is
301
- running, it checks all enabled accounts and alerts through Notification Center
302
- when the best remaining 5-hour or weekly pool quota crosses 25%, 10%, or 0%.
303
- The feature is disabled by default.
302
+ Quota notifications are an optional macOS-only feature. Separately, the quota
303
+ guard checks enabled accounts every 30 minutes by default and prevents rotation
304
+ from drawing paid Credits after the backend reports a fully spent subscription
305
+ window. While notifications are enabled, the same poll also alerts through
306
+ Notification Center when the best remaining 5-hour or weekly pool quota crosses
307
+ 25%, 10%, or 0%. Alerts are disabled by default; the quota guard is enabled.
304
308
 
305
309
  Each line reports the enabled account with the most headroom in that window,
306
310
  together with that same account's reset time, so the pair always describes a
@@ -318,6 +322,7 @@ Weekly: 72% | resets 22:30 on Aug 30
318
322
  {
319
323
  "quotaNotifications": {
320
324
  "enabled": true,
325
+ "autoProtectCredits": true,
321
326
  "intervalMs": 1800000,
322
327
  "notifyEveryCheck": false,
323
328
  "thresholds": [25, 10, 0]
@@ -334,8 +339,8 @@ ignored on Windows and Linux.
334
339
  Set `"notifyEveryCheck": true` to show the aggregate quota notification after
335
340
  every successful poll interval instead of only when a configured threshold is
336
341
  crossed. Set `"thresholds": []` to turn threshold alerts off entirely; pair it
337
- with `"notifyEveryCheck": true` or the monitor has nothing to deliver and stops
338
- polling.
342
+ with `"notifyEveryCheck": true` to keep receiving alerts. The quota guard keeps
343
+ polling unless `"autoProtectCredits": false` is set.
339
344
 
340
345
  Delivery state lives beside the accounts file the alerts are computed from, so
341
346
  OpenCode processes working in the same account scope show only one alert per
package/config/README.md CHANGED
@@ -6,17 +6,17 @@ This directory contains the official OpenCode config templates for `oc-codex-mul
6
6
 
7
7
  | File | OpenCode version | Description |
8
8
  |------|------------------|-------------|
9
- | [`opencode-modern.json`](./opencode-modern.json) | **v1.0.210+** | Variant-based config: **12 base models**, **53 variants** total |
10
- | [`opencode-legacy.json`](./opencode-legacy.json) | **v1.0.209 and below** | Legacy explicit entries: **53** individual model definitions |
9
+ | [`opencode-modern.json`](./opencode-modern.json) | **v1.0.210+** | Variant-based config: **13 base models**, **59 variants** total |
10
+ | [`opencode-legacy.json`](./opencode-legacy.json) | **v1.0.209 and below** | Legacy explicit entries: **59** individual model definitions |
11
11
 
12
12
  ## Install modes
13
13
 
14
14
  | Installer flag | What gets written |
15
15
  |----------------|-------------------|
16
16
  | default / `--plugin-only` | Register plugin entries; preserve `provider.openai` |
17
- | `--modern` | Compact modern: 12 base OAuth families + variant picker |
17
+ | `--modern` | Compact modern: 13 base OAuth families + variant picker |
18
18
  | `--full` | Modern bases **plus** explicit legacy selector IDs |
19
- | `--legacy` | Explicit-only catalog (53 preset model entries) |
19
+ | `--legacy` | Explicit-only catalog (59 preset model entries) |
20
20
 
21
21
  ```bash
22
22
  npx -y oc-codex-multi-auth@latest # plugin entries only
@@ -53,16 +53,17 @@ OpenCode v1.0.210+ added model `variants`, so one model entry can expose multipl
53
53
 
54
54
  Both templates include:
55
55
 
56
- ### Base model families (12)
56
+ ### Base model families (13)
57
57
 
58
58
  | Base | Variants (modern) |
59
59
  |------|-------------------|
60
+ | `gpt-6-astra` | low, medium, high, xhigh, max, ultra |
60
61
  | `gpt-5.6-sol` | low, medium, high, xhigh, max, ultra |
61
62
  | `gpt-5.6-terra` | low, medium, high, xhigh, max, ultra |
62
63
  | `gpt-5.6-luna` | low, medium, high, xhigh, max |
63
64
  | `gpt-5.5` | none, low, medium, high, xhigh |
64
65
  | `gpt-5.5-fast` | none, low, medium, high, xhigh |
65
- | `gpt-5.4-mini` | none, low, medium, high, xhigh |
66
+ | `gpt-5.4-mini` | none, low, medium, high, xhigh (retired from Codex 2026-08-31; auto-upgrades to `gpt-5.6-luna`) |
66
67
  | `gpt-5.4-nano` | none, low, medium, high, xhigh |
67
68
  | `gpt-5.1-codex-max` | low, medium, high, xhigh |
68
69
  | `gpt-5.1-codex` | low, medium, high |
@@ -74,7 +75,7 @@ Shared template requirements:
74
75
 
75
76
  - `store: false` and `include: ["reasoning.encrypted_content"]`
76
77
  - Context metadata:
77
- - `gpt-5.6-sol` / `gpt-5.6-terra` / `gpt-5.6-luna` / `gpt-5.5` / `gpt-5.5-fast`: context **1,050,000**, output **128,000**
78
+ - `gpt-6-astra` / `gpt-5.6-sol` / `gpt-5.6-terra` / `gpt-5.6-luna` / `gpt-5.5` / `gpt-5.5-fast`: context **1,050,000**, output **128,000**
78
79
  - `gpt-5.4-mini` / `gpt-5.4-nano` / Codex models (`gpt-5-codex`, `gpt-5.1-codex*`, …): context **400,000**, output **128,000**
79
80
  - `gpt-5.1`: context **272,000**, output **128,000**
80
81
 
@@ -82,13 +83,28 @@ Use `opencode debug config` to verify that these template entries were merged in
82
83
 
83
84
  If your OpenCode runtime supports global compaction tuning, you can also set values near the largest context windows (for example ~1M context / slightly lower auto-compact limit). Prefer values that match your selected model family.
84
85
 
86
+ ## GPT-6 Astra notes
87
+
88
+ - Served over the **responses-lite** path. Astra's catalog entry landed in openai/codex commit `ed391d4d` (2026-09-03) and reads `use_responses_lite: true`, `tool_mode: "code_mode_only"`, `multi_agent_version: "v2"`, so the shape is read rather than inferred. The `CODEX_AUTH_ASTRA_RESPONSES_LITE` switch that 6.17.0 carried while this was unverifiable has been removed.
89
+ - Rollout gate: Astra reached a limited set of organizations first, so accounts outside it auto-fallback
90
+ `gpt-6-astra → gpt-5.6-sol → gpt-5.6-terra → gpt-5.6-luna → gpt-5.5`
91
+ (disable with `CODEX_AUTH_DISABLE_GPT6_AUTO_FALLBACK=1`).
92
+ - Efforts are low through `ultra`, per OpenAI's Codex model list. `ultra` is sent as `max` on the wire, as with 5.6.
93
+ - Bare `gpt-6` is a plugin-side alias. `gpt-6-astra-pro` is not a Codex-routable id and collapses onto `gpt-6-astra`.
94
+
95
+ ## Cyber tier notes (Daybreak-gated)
96
+
97
+ - `gpt-daybreak-blue-latest` (defensive) and `gpt-daybreak-red-latest` (cyber-permissive, for authorized security research) are catalog-verified cyber-specialty models, served over the responses-lite path. `gpt-5.6-cyber` is OpenAI's published alias fronting them, and belongs to the 5.6 generation rather than GPT-6.
98
+ - All three need Daybreak program approval, and Blue/Red are `visibility: "hide"` in the catalog, so they are **not** in the shipped templates — same policy as `gpt-5.3-codex-spark` below. The plugin routes them fully; entitled users add the ids by hand.
99
+ - None has a fallback chain on purpose — a cyber-specialty request must not be silently answered by a general model.
100
+
85
101
  ## GPT-5.6 notes
86
102
 
87
103
  - Served over the **responses-lite** path (`use_responses_lite`).
88
104
  - Preview entitlement: accounts without access auto-fallback
89
105
  `gpt-5.6-sol → gpt-5.6-terra → gpt-5.6-luna → gpt-5.5`
90
106
  (disable with `CODEX_AUTH_DISABLE_GPT56_AUTO_FALLBACK=1`).
91
- - Default client identity for 5.6 is host/opencode (`originator: opencode`); other families default to Codex CLI identity.
107
+ - Default client identity for every responses-lite model (5.6, GPT-6 Astra, Daybreak) is host/opencode (`originator: opencode`); other families default to Codex CLI identity.
92
108
  - `ultra` is accepted as a client-side alias and sent as `max` on the wire (no subagent orchestration in this plugin).
93
109
 
94
110
  ## Spark model note
@@ -104,6 +120,7 @@ Recommended compact UI selectors:
104
120
  ```bash
105
121
  opencode run "task" --model=openai/gpt-5.5 --variant=medium
106
122
  opencode run "task" --model=openai/gpt-5.5-fast --variant=medium
123
+ opencode run "task" --model=openai/gpt-6-astra --variant=medium
107
124
  opencode run "task" --model=openai/gpt-5.6-sol --variant=medium
108
125
  opencode run "task" --model=openai/gpt-5-codex --variant=high
109
126
  ```
@@ -122,13 +139,16 @@ A barebones debug template is available at [`minimal-opencode.json`](./minimal-o
122
139
 
123
140
  Current defaults are strict entitlement handling except for common default-selector entitlement gates:
124
141
 
142
+ - **GPT-6 Astra** auto-fallback: `gpt-6-astra → gpt-5.6-sol → gpt-5.6-terra → gpt-5.6-luna → gpt-5.5`
143
+ - **Daybreak** cyber tiers: no fallback chain, deliberately
125
144
  - **GPT-5.6** auto-fallback: `gpt-5.6-sol → gpt-5.6-terra → gpt-5.6-luna → gpt-5.5`
126
- - **`gpt-5.5`** and canonical **`gpt-5-codex`** can auto-fallback through `gpt-5.4`, `gpt-5.4-mini`, then `gpt-5.4-nano` when the backend reports the selected model is not supported
145
+ - **`gpt-5.5`** and canonical **`gpt-5-codex`** can auto-fallback through `gpt-5.6-terra`, `gpt-5.6-luna`, then `gpt-5.2` when the backend reports the selected model is not supported
127
146
  - `unsupportedCodexPolicy: "strict"` returns other entitlement errors directly
128
147
  - set `unsupportedCodexPolicy: "fallback"` (or `CODEX_AUTH_UNSUPPORTED_MODEL_POLICY=fallback`) to enable the full fallback chain for manual/legacy selectors
129
148
  - `fallbackToGpt52OnUnsupportedGpt53: true` keeps the legacy `gpt-5.3-codex -> gpt-5.2-codex` edge inside fallback mode
130
- - user-typed `gpt-5.5-pro*` is canonicalized to `gpt-5.5` before fallback because GPT-5.5 Pro is ChatGPT-only, not a Codex-routable model
131
- - legacy Codex selectors such as `gpt-5.2-codex`, `gpt-5.3-codex`, and `gpt-5.3-codex-spark` normalize to canonical `gpt-5-codex`; if that canonical Codex model is gated, the default auto-fallback can retry through the GPT-5.4 family
149
+ - user-typed `gpt-5.5-pro*` is canonicalized to `gpt-5.5` before fallback because GPT-5.5 Pro is ChatGPT-only, not a Codex-routable model; `gpt-6-astra-pro*` is canonicalized to `gpt-6-astra` for the same reason
150
+ - legacy Codex selectors such as `gpt-5.2-codex`, `gpt-5.3-codex`, and `gpt-5.3-codex-spark` normalize to canonical `gpt-5-codex`; if that canonical Codex model is gated, the default auto-fallback can retry through `gpt-5.6-terra`, `gpt-5.5`, then `gpt-5.2`
151
+ - set `CODEX_AUTH_DISABLE_GPT6_AUTO_FALLBACK=1` to disable GPT-6 Astra auto-fallback
132
152
  - set `CODEX_AUTH_DISABLE_GPT56_AUTO_FALLBACK=1` to disable GPT-5.6 auto-fallback
133
153
  - set `CODEX_AUTH_DISABLE_GPT55_AUTO_FALLBACK=1` to disable GPT-5.5 auto-fallback
134
154
  - set `CODEX_AUTH_DISABLE_CODEX_AUTO_FALLBACK=1` to disable canonical Codex/GPT-5.4-family auto-fallback
@@ -137,9 +157,12 @@ Current defaults are strict entitlement handling except for common default-selec
137
157
 
138
158
  Default chains when generic fallback policy is enabled (and empty override map):
139
159
 
160
+ - `gpt-6-astra → gpt-5.6-sol → gpt-5.6-terra → gpt-5.6-luna → gpt-5.5` (also auto under default strict for rollout gates)
140
161
  - `gpt-5.6-sol → gpt-5.6-terra → gpt-5.6-luna → gpt-5.5` (also auto under default strict for preview gates)
141
- - `gpt-5.5 → gpt-5.4 → gpt-5.4-mini → gpt-5.4-nano`
142
- - `gpt-5-codex → gpt-5.4 → gpt-5.4-mini → gpt-5.4-nano`
162
+ - `gpt-5.5 → gpt-5.6-terra → gpt-5.6-luna → gpt-5.2`
163
+ - `gpt-5-codex → gpt-5.6-terra → gpt-5.5 → gpt-5.2`
164
+
165
+ > GPT-5.4 and GPT-5.4 Mini were retired from Codex on 2026-08-31; the catalog marks both `visibility: "hide"` and names their replacements (`gpt-5.4` -> `gpt-5.6-terra`, `gpt-5.4-mini` -> `gpt-5.6-luna`), and `gpt-5.4-nano` has no catalog entry. The default chains therefore end at live models rather than leading with retired ones.
143
166
  - `gpt-5.4-pro → gpt-5.4` (if you manually select `gpt-5.4-pro`)
144
167
  - `gpt-5.3-codex → gpt-5-codex → gpt-5.2-codex`
145
168
  - `gpt-5.3-codex-spark → gpt-5-codex → gpt-5.3-codex → gpt-5.2-codex` (only if Spark IDs are added manually)
@@ -15,6 +15,156 @@
15
15
  "store": false
16
16
  },
17
17
  "models": {
18
+ "gpt-6-astra-low": {
19
+ "name": "GPT 6 Astra Low (OAuth)",
20
+ "limit": {
21
+ "context": 1050000,
22
+ "output": 128000
23
+ },
24
+ "modalities": {
25
+ "input": [
26
+ "text",
27
+ "image"
28
+ ],
29
+ "output": [
30
+ "text"
31
+ ]
32
+ },
33
+ "options": {
34
+ "reasoningEffort": "low",
35
+ "reasoningSummary": "auto",
36
+ "textVerbosity": "medium",
37
+ "include": [
38
+ "reasoning.encrypted_content"
39
+ ],
40
+ "store": false
41
+ }
42
+ },
43
+ "gpt-6-astra-medium": {
44
+ "name": "GPT 6 Astra Medium (OAuth)",
45
+ "limit": {
46
+ "context": 1050000,
47
+ "output": 128000
48
+ },
49
+ "modalities": {
50
+ "input": [
51
+ "text",
52
+ "image"
53
+ ],
54
+ "output": [
55
+ "text"
56
+ ]
57
+ },
58
+ "options": {
59
+ "reasoningEffort": "medium",
60
+ "reasoningSummary": "auto",
61
+ "textVerbosity": "medium",
62
+ "include": [
63
+ "reasoning.encrypted_content"
64
+ ],
65
+ "store": false
66
+ }
67
+ },
68
+ "gpt-6-astra-high": {
69
+ "name": "GPT 6 Astra High (OAuth)",
70
+ "limit": {
71
+ "context": 1050000,
72
+ "output": 128000
73
+ },
74
+ "modalities": {
75
+ "input": [
76
+ "text",
77
+ "image"
78
+ ],
79
+ "output": [
80
+ "text"
81
+ ]
82
+ },
83
+ "options": {
84
+ "reasoningEffort": "high",
85
+ "reasoningSummary": "detailed",
86
+ "textVerbosity": "medium",
87
+ "include": [
88
+ "reasoning.encrypted_content"
89
+ ],
90
+ "store": false
91
+ }
92
+ },
93
+ "gpt-6-astra-xhigh": {
94
+ "name": "GPT 6 Astra Xhigh (OAuth)",
95
+ "limit": {
96
+ "context": 1050000,
97
+ "output": 128000
98
+ },
99
+ "modalities": {
100
+ "input": [
101
+ "text",
102
+ "image"
103
+ ],
104
+ "output": [
105
+ "text"
106
+ ]
107
+ },
108
+ "options": {
109
+ "reasoningEffort": "xhigh",
110
+ "reasoningSummary": "detailed",
111
+ "textVerbosity": "medium",
112
+ "include": [
113
+ "reasoning.encrypted_content"
114
+ ],
115
+ "store": false
116
+ }
117
+ },
118
+ "gpt-6-astra-max": {
119
+ "name": "GPT 6 Astra Max (OAuth)",
120
+ "limit": {
121
+ "context": 1050000,
122
+ "output": 128000
123
+ },
124
+ "modalities": {
125
+ "input": [
126
+ "text",
127
+ "image"
128
+ ],
129
+ "output": [
130
+ "text"
131
+ ]
132
+ },
133
+ "options": {
134
+ "reasoningEffort": "max",
135
+ "reasoningSummary": "detailed",
136
+ "textVerbosity": "medium",
137
+ "include": [
138
+ "reasoning.encrypted_content"
139
+ ],
140
+ "store": false
141
+ }
142
+ },
143
+ "gpt-6-astra-ultra": {
144
+ "name": "GPT 6 Astra Ultra (OAuth)",
145
+ "limit": {
146
+ "context": 1050000,
147
+ "output": 128000
148
+ },
149
+ "modalities": {
150
+ "input": [
151
+ "text",
152
+ "image"
153
+ ],
154
+ "output": [
155
+ "text"
156
+ ]
157
+ },
158
+ "options": {
159
+ "reasoningEffort": "ultra",
160
+ "reasoningSummary": "detailed",
161
+ "textVerbosity": "medium",
162
+ "include": [
163
+ "reasoning.encrypted_content"
164
+ ],
165
+ "store": false
166
+ }
167
+ },
18
168
  "gpt-5.6-sol-low": {
19
169
  "name": "GPT 5.6 Sol Low (OAuth)",
20
170
  "limit": {
@@ -15,6 +15,54 @@
15
15
  "store": false
16
16
  },
17
17
  "models": {
18
+ "gpt-6-astra": {
19
+ "name": "GPT 6 Astra (OAuth)",
20
+ "limit": {
21
+ "context": 1050000,
22
+ "output": 128000
23
+ },
24
+ "modalities": {
25
+ "input": [
26
+ "text",
27
+ "image"
28
+ ],
29
+ "output": [
30
+ "text"
31
+ ]
32
+ },
33
+ "variants": {
34
+ "low": {
35
+ "reasoningEffort": "low",
36
+ "reasoningSummary": "auto",
37
+ "textVerbosity": "medium"
38
+ },
39
+ "medium": {
40
+ "reasoningEffort": "medium",
41
+ "reasoningSummary": "auto",
42
+ "textVerbosity": "medium"
43
+ },
44
+ "high": {
45
+ "reasoningEffort": "high",
46
+ "reasoningSummary": "detailed",
47
+ "textVerbosity": "medium"
48
+ },
49
+ "xhigh": {
50
+ "reasoningEffort": "xhigh",
51
+ "reasoningSummary": "detailed",
52
+ "textVerbosity": "medium"
53
+ },
54
+ "max": {
55
+ "reasoningEffort": "max",
56
+ "reasoningSummary": "detailed",
57
+ "textVerbosity": "medium"
58
+ },
59
+ "ultra": {
60
+ "reasoningEffort": "ultra",
61
+ "reasoningSummary": "detailed",
62
+ "textVerbosity": "medium"
63
+ }
64
+ }
65
+ },
18
66
  "gpt-5.6-sol": {
19
67
  "name": "GPT 5.6 Sol (OAuth)",
20
68
  "limit": {
@@ -76,6 +76,28 @@ export declare function formatAdditionalUsageLimitName(name: string | undefined)
76
76
  * rejected on the explicit zero length or it renders as a full quota.
77
77
  */
78
78
  export declare function hasUsageWindow(window: LimitWindow): boolean;
79
+ /**
80
+ * Return the latest valid reset time among fully spent ordinary Codex usage
81
+ * windows. This deliberately accepts only the primary and secondary windows:
82
+ * code-review and additional quotas do not govern ordinary model requests.
83
+ *
84
+ * The `/wham/usage` endpoint and request response headers describe the same
85
+ * 5-hour/weekly quota state. Applying this result to rotation lets an explicit
86
+ * `codex-limits` refresh protect paid Credits before the next model request.
87
+ */
88
+ export declare function getUsageQuotaExhaustedResetAtMs(windows: readonly LimitWindow[], now?: number): number | undefined;
89
+ /**
90
+ * Persist a base block for every model family on stored entries sharing the
91
+ * queried usage quota. Rotation tracks each family independently, whereas the
92
+ * `/wham/usage` primary/secondary subscription quota is shared by all models.
93
+ * Writing every base key ensures the next round-robin selection cannot use a
94
+ * different model family to spend an already-exhausted account's Credits.
95
+ *
96
+ * This uses a storage transaction rather than saving the caller's usage
97
+ * snapshot: usage inspection can refresh a single-use token, while another
98
+ * process can independently update credentials or account membership.
99
+ */
100
+ export declare function persistUsageQuotaExhaustion(account: AccountMetadataV3, resetAtMs: number): Promise<boolean>;
79
101
  /**
80
102
  * Reduce a `/wham/usage` document to the summary the callers render.
81
103
  *
@@ -1 +1 @@
1
- {"version":3,"file":"codex-usage.d.ts","sourceRoot":"","sources":["../../lib/codex-usage.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,WAAW,GAAG;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,WAAW,GAAG;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,gBAAgB,CAAC,EAAE,WAAW,CAAC;CAC/B,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,YAAY,GAAG;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,YAAY,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC,sBAAsB,CAAC,EAAE,KAAK,CAAC;QAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,cAAc,CAAC;KAC5B,CAAC,GAAG,IAAI,CAAC;IACV,OAAO,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAIF,wBAAgB,mBAAmB,CAClC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC7B,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,sBAAsB,CACrC,aAAa,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAWR;AAED,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,SAAS,CAuBpB;AAuBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAiB/D;AAED,wBAAgB,qBAAqB,CACpC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,QAAQ,SAAU,GAChB,MAAM,CAKR;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAOnE;AAED,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GACjB,iBAAiB,CAUnB;AAED,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,YAAY,GACnB,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,8BAA8B,CAC7C,IAAI,EAAE,MAAM,GAAG,SAAS,GACtB,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAO3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GACtC,iBAAiB,CAoDnB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,MAAM,CAWR;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOzD;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,OAAO,CAAC,YAAY,CAAC,CAkExB;AAqBD,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACzD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,iBAAiB,CAAC;CAC3B,GAAG,OAAO,CAAC,iCAAiC,CAAC,CA8C7C;AAYD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,iBAAiB,GACxB,MAAM,GAAG,SAAS,CAepB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAalF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,gBAAgB,GACvB,qBAAqB,GAAG,IAAI,CAgD9B;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IAClD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,GAAG,SAAS,CAErB;AAED,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,iBAAiB,GACxB,MAAM,CAQR"}
1
+ {"version":3,"file":"codex-usage.d.ts","sourceRoot":"","sources":["../../lib/codex-usage.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,11 @@ import { getFetchTimeoutMs, loadPluginConfig } from "./config.js";
5
5
  import { CODEX_BASE_URL, PLUGIN_NAME } from "./constants.js";
6
6
  import { createDeactivatedWorkspaceError, createUsageRequestTimeoutError, } from "./error-sentinels.js";
7
7
  import { logWarn } from "./logger.js";
8
+ import { MODEL_FAMILIES } from "./prompts/codex.js";
9
+ import { isQuotaWindowExhausted, MAX_QUOTA_RESET_HORIZON_MS, } from "./quota-windows.js";
8
10
  import { coordinatePersistedRefresh } from "./storage/coordinated-refresh.js";
9
11
  import { createCodexHeaders, isDeactivatedWorkspaceError, isInvalidatedAuthTokenError, } from "./request/fetch-helpers.js";
12
+ import { withAccountStorageTransaction, } from "./storage.js";
10
13
  const usageErrorBodyMaxChars = 4096;
11
14
  export function getUsageLeftPercent(usedPercent) {
12
15
  return typeof usedPercent === "number" && Number.isFinite(usedPercent)
@@ -149,6 +152,76 @@ export function hasUsageWindow(window) {
149
152
  typeof window.usedPercent === "number" ||
150
153
  window.resetAtMs);
151
154
  }
155
+ /**
156
+ * Return the latest valid reset time among fully spent ordinary Codex usage
157
+ * windows. This deliberately accepts only the primary and secondary windows:
158
+ * code-review and additional quotas do not govern ordinary model requests.
159
+ *
160
+ * The `/wham/usage` endpoint and request response headers describe the same
161
+ * 5-hour/weekly quota state. Applying this result to rotation lets an explicit
162
+ * `codex-limits` refresh protect paid Credits before the next model request.
163
+ */
164
+ export function getUsageQuotaExhaustedResetAtMs(windows, now = Date.now()) {
165
+ let latest;
166
+ for (const window of windows) {
167
+ if (!isQuotaWindowExhausted(window))
168
+ continue;
169
+ const resetAtMs = window.resetAtMs;
170
+ if (typeof resetAtMs !== "number" ||
171
+ !Number.isFinite(resetAtMs) ||
172
+ resetAtMs <= now ||
173
+ resetAtMs - now > MAX_QUOTA_RESET_HORIZON_MS) {
174
+ continue;
175
+ }
176
+ if (latest === undefined || resetAtMs > latest)
177
+ latest = resetAtMs;
178
+ }
179
+ return latest;
180
+ }
181
+ /**
182
+ * Persist a base block for every model family on stored entries sharing the
183
+ * queried usage quota. Rotation tracks each family independently, whereas the
184
+ * `/wham/usage` primary/secondary subscription quota is shared by all models.
185
+ * Writing every base key ensures the next round-robin selection cannot use a
186
+ * different model family to spend an already-exhausted account's Credits.
187
+ *
188
+ * This uses a storage transaction rather than saving the caller's usage
189
+ * snapshot: usage inspection can refresh a single-use token, while another
190
+ * process can independently update credentials or account membership.
191
+ */
192
+ export async function persistUsageQuotaExhaustion(account, resetAtMs) {
193
+ const usageKey = getUsageAccountDedupeKey(account);
194
+ if (!usageKey)
195
+ return false;
196
+ return withAccountStorageTransaction(async (current, persist) => {
197
+ if (!current)
198
+ return false;
199
+ let changed = false;
200
+ for (const storedAccount of current.accounts) {
201
+ if (getUsageAccountDedupeKey(storedAccount) !== usageKey)
202
+ continue;
203
+ const rateLimitResetTimes = { ...(storedAccount.rateLimitResetTimes ?? {}) };
204
+ let accountChanged = false;
205
+ for (const family of MODEL_FAMILIES) {
206
+ const existingResetAtMs = rateLimitResetTimes[family];
207
+ if (typeof existingResetAtMs === "number" &&
208
+ Number.isFinite(existingResetAtMs) &&
209
+ existingResetAtMs >= resetAtMs) {
210
+ continue;
211
+ }
212
+ rateLimitResetTimes[family] = resetAtMs;
213
+ accountChanged = true;
214
+ }
215
+ if (accountChanged) {
216
+ storedAccount.rateLimitResetTimes = rateLimitResetTimes;
217
+ changed = true;
218
+ }
219
+ }
220
+ if (changed)
221
+ await persist(current);
222
+ return changed;
223
+ });
224
+ }
152
225
  /**
153
226
  * Reduce a `/wham/usage` document to the summary the callers render.
154
227
  *
@@ -1 +1 @@
1
- {"version":3,"file":"codex-usage.js","sourceRoot":"","sources":["../../lib/codex-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACN,+BAA+B,EAC/B,8BAA8B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EACN,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,GAC3B,MAAM,4BAA4B,CAAC;AA6EpC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAEpC,MAAM,UAAU,mBAAmB,CAClC,WAA+B;IAE/B,OAAO,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,aAAiC;IAEjC,IACC,CAAC,aAAa;QACd,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/B,aAAa,IAAI,CAAC,EACjB,CAAC;QACF,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,aAAa,GAAG,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,aAAa,GAAG,IAAI,GAAG,CAAC;IAClE,IAAI,aAAa,GAAG,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,aAAa,GAAG,EAAE,GAAG,CAAC;IAC9D,OAAO,GAAG,aAAa,GAAG,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,SAA6B;IAE7B,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,OAAO,GACZ,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;QACxC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;QAClC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC/C,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,KAAK;KACb,CAAC,CAAC;IACH,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC9C,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACd,CAAC,CAAC;IACH,OAAO,GAAG,IAAI,OAAO,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC7B,kBAAsC;IAEtC,IACC,OAAO,kBAAkB,KAAK,QAAQ;QACtC,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EACnC,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,kBAAkB,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO;QACN,WAAW,EACV,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,SAAS;QACb,aAAa,EAAE,qBAAqB,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACjE,SAAS,EACR,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;YACxB,CAAC,CAAC,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ;gBAC9C,MAAM,CAAC,mBAAmB,GAAG,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,mBAAmB,GAAG,IAAI;gBAChD,CAAC,CAAC,SAAS;KACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACpC,aAAiC,EACjC,QAAQ,GAAG,OAAO;IAElB,IAAI,aAAa,KAAK,GAAG;QAAE,OAAO,UAAU,CAAC;IAC7C,IAAI,aAAa,KAAK,KAAK;QAAE,OAAO,cAAc,CAAC;IACnD,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,GAAG,sBAAsB,CAAC,aAAa,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IAC1D,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK;QAAE,OAAO,GAAG,IAAI,kBAAkB,KAAK,GAAG,CAAC;IAC1E,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,QAAQ,CAAC;IAC/C,IAAI,KAAK;QAAE,OAAO,UAAU,KAAK,EAAE,CAAC;IACpC,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,IAAY,EACZ,MAAmB;IAEnB,OAAO;QACN,IAAI;QACJ,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;QAC3C,WAAW,EACV,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QACnE,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI;QAC5D,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC;KACxC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,OAAqB;IAErB,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,OAAO,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC;IAC1C,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IAC5C,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC7C,IAAwB;IAExB,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC;IACjE,IAAI,IAAI,KAAK,wBAAwB;QAAE,OAAO,aAAa,CAAC;IAC5D,OAAO,IAAI;SACT,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IACjD,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,OAAO,CACb,MAAM,CAAC,aAAa;QACnB,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,MAAM,CAAC,SAAS,CACjB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACrC,OAAwC;IAExC,MAAM,MAAM,GACX,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,0EAA0E;IAC1E,yEAAyE;IACzE,uCAAuC;IACvC,MAAM,oBAAoB,GAAG,CAC5B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CACjF,CAAC,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAC3C,CAAC;IACF,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,IAAI,IAAI,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GACxB,MAAM,CAAC,sBAAsB;QAC7B,oBAAoB,CAAC,IAAI,CACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,wBAAwB,CACxD,EAAE,UAAU;QACb,IAAI,CAAC;IACN,MAAM,UAAU,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,oBAAoB;SAC3C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,wBAAwB,CAAC;SAChE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChB,IAAI,EAAE,8BAA8B,CACnC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,eAAe,CACzC;QACD,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,IAAI,IAAI,CAAC;KAChE,CAAC,CAAC,CAAC;IACL,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAAE,SAAS;QACtC,MAAM,CAAC,IAAI,CACV,mBAAmB,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CACxE,CAAC;IACH,CAAC;IACD,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACN,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QAClC,OAAO,EAAE,OAAO,IAAI,IAAI;QACxB,OAAO;QACP,SAAS;QACT,UAAU;QACV,gBAAgB;QAChB,MAAM;KACN,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC3C,MAAc,EACd,QAAgB;IAEhB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,UAAU;SACzB,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;SAC9C,OAAO,CACP,oDAAoD,EACpD,kBAAkB,CAClB;SACA,OAAO,CAAC,0CAA0C,EAAE,kBAAkB,CAAC;SACvE,OAAO,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC/C,OAAO,CACN,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;QACvD,CAAC,OAAO,YAAY,KAAK,WAAW;YACnC,KAAK,YAAY,YAAY;YAC7B,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAC7B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAMrC;IACA,MAAM,OAAO,GAAG,kBAAkB,CACjC,SAAS,EACT,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB;QACC,cAAc,EAAE,MAAM,CAAC,cAAc;KACrC,CACD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CACzD,CAAC;IAEF,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,aAAa,EAAE;YAC5D,MAAM,EAAE,KAAK;YACb,OAAO;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC;gBACJ,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC3D,MAAM,8BAA8B,EAAE,CAAC;gBACxC,CAAC;gBACD,MAAM,KAAK,CAAC;YACb,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,8BAA8B,EAAE,CAAC;YACxC,CAAC;YACD,IAAI,SAAS,GAAY,QAAQ,CAAC;YAClC,IAAI,CAAC;gBACJ,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACR,+DAA+D;YAChE,CAAC;YACD,IACC,MAAM,CAAC,sBAAsB;gBAC7B,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtD,CAAC;gBACF,MAAM,+BAA+B,EAAE,CAAC;YACzC,CAAC;YACD,IACC,MAAM,CAAC,sBAAsB;gBAC7B,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtD,CAAC;gBACF,MAAM,IAAI,KAAK,CACd,8EAA8E,CAC9E,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,8BAA8B,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;YAAS,CAAC;QACV,YAAY,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB,CACjC,MAKC,EACD,MAIC;IAED,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IACrC,MAAM,CAAC,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC;IACnF,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAGjD;IACA,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IAC7C,IACC,OAAO,WAAW,KAAK,QAAQ;QAC/B,WAAW;QACX,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ;QAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAC7C,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IACzD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrD,IAAI,aAAa,CAAC,YAAY,KAAK,oBAAoB,EAAE,CAAC;YACzD,yBAAyB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACxD,cAAc,IAAI,CAAC,CAAC;QACrB,CAAC;IACF,CAAC;IACD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QAC1B,sEAAsE;QACtE,2EAA2E;QAC3E,oEAAoE;QACpE,0EAA0E;QAC1E,sEAAsE;QACtE,OAAO,CACN,IAAI,WAAW,+IAA+I,EAC9J;YACC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;YACnC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc;SAC7C,CACD,CAAC;QACF,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACnC,wEAAwE;IACxE,6EAA6E;IAC7E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,KAAyB;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,wBAAwB,CACvC,OAA0B;IAE1B,MAAM,SAAS,GAAG,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,0BAA0B,CAC/C,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAC1E,CAAC;IACF,MAAM,cAAc,GAAG,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1E,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,YAAY,GAAG,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtE,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAyB;IACvE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,yEAAyE;QACzE,yEAAyE;QACzE,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,8BAA8B,CAC7C,OAAyB;IAEzB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,EAAE,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAC3E,MAAM,YAAY,GACjB,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACrB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,IACC,CAAC,aAAa;QACd,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,EACzE,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,CAAC;IACzE,MAAM,cAAc,GACnB,aAAa;QACb,OAAO,aAAa,EAAE,QAAQ,KAAK,QAAQ;QAC3C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC,aAAa,CAAC,QAAQ;QACxB,CAAC,CAAC,aAAa;YACd,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC,CAAC;IACR,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,cAAc,GAAG,cAAc,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;YAAE,SAAS;QACpD,MAAM,QAAQ,GACb,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxE,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClB,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,QAAQ,GAAG,cAAc,EAAE,CAAC;YAC/B,WAAW,GAAG,CAAC,CAAC;YAChB,cAAc,GAAG,QAAQ,CAAC;QAC3B,CAAC;IACF,CAAC;IACD,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAG1C;IACA,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC5C,OAA0B;IAE1B,MAAM,iBAAiB,GAAG;QACzB,OAAO,CAAC,SAAS,IAAI,EAAE;QACvB,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;QAChF,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5B,OAAO,CAAC,YAAY,IAAI,EAAE;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC"}
1
+ {"version":3,"file":"codex-usage.js","sourceRoot":"","sources":["../../lib/codex-usage.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,8 @@ export declare function getFetchTimeoutMs(pluginConfig: PluginConfig): number;
100
100
  export declare function getStreamStallTimeoutMs(pluginConfig: PluginConfig): number;
101
101
  export interface QuotaNotificationsConfig {
102
102
  enabled: boolean;
103
+ /** Poll usage to block fully spent subscription quotas before they spend Credits. */
104
+ autoProtectCredits?: boolean;
103
105
  intervalMs: number;
104
106
  notifyEveryCheck: boolean;
105
107
  thresholds: number[];