opencode-enhancer 1.2.1 → 1.2.3
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/README.md +110 -28
- package/dist/account-ranking.d.ts.map +1 -1
- package/dist/account-ranking.js +7 -5
- package/dist/account-ranking.js.map +1 -1
- package/dist/auth-sync.d.ts.map +1 -1
- package/dist/auth-sync.js +4 -1
- package/dist/auth-sync.js.map +1 -1
- package/dist/cli.js +68 -62
- package/dist/cli.js.map +1 -1
- package/dist/codex-auth.d.ts +3 -1
- package/dist/codex-auth.d.ts.map +1 -1
- package/dist/codex-auth.js +9 -2
- package/dist/codex-auth.js.map +1 -1
- package/dist/force-mode.js +2 -2
- package/dist/force-mode.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -22
- package/dist/index.js.map +1 -1
- package/dist/rotation.js +1 -1
- package/dist/settings.d.ts +4 -4
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +46 -45
- package/dist/settings.js.map +1 -1
- package/dist/store.js +3 -3
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +9 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +78 -82
- package/dist/types.js.map +1 -1
- package/dist/usage-command.d.ts.map +1 -1
- package/dist/usage-command.js +38 -1
- package/dist/usage-command.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -74,42 +74,75 @@ Default paths:
|
|
|
74
74
|
|
|
75
75
|
Legacy `opencode-multi-auth` paths are migrated automatically.
|
|
76
76
|
|
|
77
|
-
##
|
|
77
|
+
## Configuration Reference
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
This section documents all user-facing configuration surfaces:
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
1. OpenCode `config.json` (runtime plugin config)
|
|
82
|
+
2. persisted enhancer store (`settings.json`)
|
|
83
|
+
3. environment variables
|
|
82
84
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
- `OPENCODE_ENHANCER_STORE_DIR`
|
|
86
|
-
- `OPENCODE_ENHANCER_STORE_FILE`
|
|
87
|
-
- `OPENCODE_ENHANCER_STORE_PASSPHRASE`
|
|
88
|
-
- `OPENCODE_ENHANCER_CACHE_DIR`
|
|
89
|
-
- `OPENCODE_ENHANCER_LOG_PATH`
|
|
90
|
-
- `OPENCODE_ENHANCER_CODEX_AUTH_FILE`
|
|
91
|
-
- `OPENCODE_ENHANCER_DEBUG`
|
|
92
|
-
- `OPENCODE_ENHANCER_USAGE_BASE_URL`
|
|
93
|
-
- `OPENCODE_ENHANCER_REFRESH_QUEUE_CONCURRENCY`
|
|
85
|
+
### 1) OpenCode `config.json`
|
|
94
86
|
|
|
95
|
-
|
|
87
|
+
Currently supported plugin option:
|
|
96
88
|
|
|
97
|
-
- `
|
|
98
|
-
- `OPENCODE_ENHANCER_NOTIFY_BACKEND=auto`
|
|
99
|
-
- `OPENCODE_ENHANCER_NOTIFY_BACKEND=terminal`
|
|
100
|
-
- `OPENCODE_ENHANCER_NOTIFY_BACKEND=system`
|
|
101
|
-
- `OPENCODE_ENHANCER_NOTIFY_NTFY_URL=...`
|
|
89
|
+
- `autoSwitchThreshold` (`0..100`, default `95`) — trigger for automatic switching when current account reaches **5h used >= threshold**.
|
|
102
90
|
|
|
103
|
-
|
|
91
|
+
Recognized locations (checked in this order):
|
|
104
92
|
|
|
105
|
-
|
|
93
|
+
1. `provider.openai.enhancer.autoSwitchThreshold`
|
|
94
|
+
2. `provider.openai.autoSwitchThreshold`
|
|
95
|
+
3. `opencodeEnhancer.autoSwitchThreshold`
|
|
106
96
|
|
|
107
|
-
|
|
97
|
+
Example:
|
|
108
98
|
|
|
109
99
|
```json
|
|
100
|
+
{
|
|
101
|
+
"provider": {
|
|
102
|
+
"openai": {
|
|
103
|
+
"enhancer": {
|
|
104
|
+
"autoSwitchThreshold": 92
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 2) Persisted settings (`~/.config/opencode-enhancer/settings.json`)
|
|
112
|
+
|
|
113
|
+
Enhancer stores runtime settings under top-level `settings`:
|
|
114
|
+
|
|
115
|
+
```jsonc
|
|
110
116
|
{
|
|
111
117
|
"settings": {
|
|
118
|
+
// rotationStrategy:
|
|
119
|
+
// - round-robin: cyklicznie przechodzi po zdrowych kontach (A -> B -> C -> A...)
|
|
120
|
+
// - least-used: wybiera konto z najmniejszym usageCount (potem najdłużej nieużywane)
|
|
121
|
+
// - random: losuje konto z górnej połowy rankingu zdrowia
|
|
122
|
+
// - weighted-round-robin: wybór ważony wg accountWeights; brak wag => fallback do round-robin
|
|
123
|
+
// - usage-priority: wybiera konto z największym remaining (najpierw weekly, potem 5h)
|
|
124
|
+
"rotationStrategy": "usage-priority",
|
|
125
|
+
|
|
126
|
+
// number 0..100 (must be < lowThreshold)
|
|
127
|
+
"criticalThreshold": 10,
|
|
128
|
+
|
|
129
|
+
// number 0..100 (must be > criticalThreshold)
|
|
130
|
+
"lowThreshold": 30,
|
|
131
|
+
|
|
132
|
+
// map { alias: weight }, each weight in (0, 1], sum should be ~1.0
|
|
133
|
+
"accountWeights": {},
|
|
134
|
+
|
|
135
|
+
"featureFlags": {
|
|
136
|
+
// boolean
|
|
137
|
+
"antigravityEnabled": false,
|
|
138
|
+
|
|
139
|
+
// boolean
|
|
140
|
+
"autoSwitch": true
|
|
141
|
+
},
|
|
142
|
+
|
|
112
143
|
"notifications": {
|
|
144
|
+
// booleans; controls notifications when the agent
|
|
145
|
+
// asks for permissions, finishes a task, emits an error, or asks a question
|
|
113
146
|
"permissionRequest": true,
|
|
114
147
|
"taskComplete": true,
|
|
115
148
|
"error": true,
|
|
@@ -119,12 +152,61 @@ Default values:
|
|
|
119
152
|
}
|
|
120
153
|
```
|
|
121
154
|
|
|
122
|
-
|
|
155
|
+
### 3) Environment variables (complete)
|
|
156
|
+
|
|
157
|
+
Primary prefix is `OPENCODE_ENHANCER_*`.
|
|
158
|
+
|
|
159
|
+
Most variables also accept legacy aliases with `OPENCODE_MULTI_AUTH_*`.
|
|
160
|
+
Additionally, `CODEX_SOFT_LOG_PATH` and `CODEX_SOFT_STORE_PASSPHRASE` are still supported for backward compatibility.
|
|
161
|
+
|
|
162
|
+
#### Core / request behavior
|
|
163
|
+
|
|
164
|
+
- `OPENCODE_ENHANCER_DEBUG` — verbose debug logs (`1` enables).
|
|
165
|
+
- `OPENCODE_ENHANCER_UPSTREAM_TIMEOUT_MS` — upstream request timeout in ms (default: `120000`).
|
|
166
|
+
- `OPENCODE_ENHANCER_TOKEN_FAILURE_COOLDOWN_MS` — cooldown when token refresh fails (default: `60000`).
|
|
167
|
+
- `OPENCODE_ENHANCER_TRUNCATION` — forces request `truncation` when payload does not specify it (`0|false|disabled` means no override).
|
|
168
|
+
- `OPENCODE_ENHANCER_USAGE_BASE_URL` — override usage API base URL (default: `https://chatgpt.com/backend-api`).
|
|
169
|
+
|
|
170
|
+
#### Model routing / injection
|
|
171
|
+
|
|
172
|
+
- `OPENCODE_ENHANCER_PREFER_CODEX_LATEST` — when `1|true`, maps older codex model ids to latest model.
|
|
173
|
+
- `OPENCODE_ENHANCER_CODEX_LATEST_MODEL` — target latest model id (default: `gpt-5.4`).
|
|
174
|
+
- `OPENCODE_ENHANCER_INJECT_MODELS` — runtime model injection toggle (`0|false` disables).
|
|
175
|
+
|
|
176
|
+
#### Store / cache / paths
|
|
177
|
+
|
|
178
|
+
- `OPENCODE_ENHANCER_STORE_DIR` — enhancer store directory.
|
|
179
|
+
- `OPENCODE_ENHANCER_STORE_FILE` — enhancer store file path.
|
|
180
|
+
- `OPENCODE_ENHANCER_STORE_PASSPHRASE` — passphrase for encrypted store.
|
|
181
|
+
- `OPENCODE_ENHANCER_CACHE_DIR` — usage cache directory.
|
|
182
|
+
- `OPENCODE_ENHANCER_LOG_PATH` — log file path.
|
|
183
|
+
- `OPENCODE_ENHANCER_CODEX_AUTH_FILE` — path to Codex auth file.
|
|
184
|
+
- `OPENCODE_ENHANCER_REFRESH_QUEUE_CONCURRENCY` — refresh queue concurrency (default `20`, max `20`).
|
|
185
|
+
|
|
186
|
+
#### Feature/settings overrides
|
|
187
|
+
|
|
188
|
+
- `OPENCODE_ENHANCER_ROTATION_STRATEGY` — `round-robin|least-used|random|weighted-round-robin|usage-priority`.
|
|
189
|
+
- `OPENCODE_ENHANCER_CRITICAL_THRESHOLD` — settings override `0..100`.
|
|
190
|
+
- `OPENCODE_ENHANCER_LOW_THRESHOLD` — settings override `0..100`.
|
|
191
|
+
- `OPENCODE_ENHANCER_ANTIGRAVITY_ENABLED` — feature flag override (`1|true`).
|
|
192
|
+
- `OPENCODE_ENHANCER_AUTOSWITCH_ENABLED` — feature flag override (`1|true`).
|
|
193
|
+
|
|
194
|
+
#### Notifications
|
|
195
|
+
|
|
196
|
+
- `OPENCODE_ENHANCER_NOTIFY` — global notifications toggle (`0|false` disables).
|
|
197
|
+
- `OPENCODE_ENHANCER_NOTIFY_BACKEND` — `auto|terminal|system`.
|
|
198
|
+
- `OPENCODE_ENHANCER_NOTIFY_SOUND` — sound path for macOS system notifications.
|
|
199
|
+
- `OPENCODE_ENHANCER_NOTIFY_MAC_OPEN` — macOS click-to-open support toggle (`0|false` disables).
|
|
200
|
+
- `OPENCODE_ENHANCER_NOTIFY_NTFY_URL` — optional ntfy endpoint.
|
|
201
|
+
- `OPENCODE_ENHANCER_NOTIFY_NTFY_TOKEN` — optional ntfy token.
|
|
202
|
+
- `OPENCODE_ENHANCER_NOTIFY_UI_BASE_URL` — base URL for session links in notifications.
|
|
203
|
+
|
|
204
|
+
#### Limits probing / provider auth (advanced)
|
|
123
205
|
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
206
|
+
- `OPENCODE_ENHANCER_PROBE_EFFORT` — `low|medium|high` (default: `low`).
|
|
207
|
+
- `OPENCODE_ENHANCER_LIMITS_PROBE_MODELS` — comma-separated probe model list.
|
|
208
|
+
- `OPENCODE_ENHANCER_GOOGLE_CLIENT_ID` — Gemini OAuth client id override.
|
|
209
|
+
- `OPENCODE_ENHANCER_GOOGLE_CLIENT_SECRET` — Gemini OAuth client secret override.
|
|
128
210
|
|
|
129
211
|
## Terminal-native Notifications
|
|
130
212
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-ranking.d.ts","sourceRoot":"","sources":["../src/account-ranking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AAQzF,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,iBAAiB,EAC9B,GAAG,GAAE,MAAmB,GACvB;IAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAKtE;
|
|
1
|
+
{"version":3,"file":"account-ranking.d.ts","sourceRoot":"","sources":["../src/account-ranking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AAQzF,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,iBAAiB,EAC9B,GAAG,GAAE,MAAmB,GACvB;IAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAKtE;AAkBD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACA,MAAM,CAqBR"}
|
package/dist/account-ranking.js
CHANGED
|
@@ -19,22 +19,24 @@ function compareRemainingDescending(a, b) {
|
|
|
19
19
|
return b - a;
|
|
20
20
|
return 0;
|
|
21
21
|
}
|
|
22
|
+
// Unknown remaining is usually less preferred than a known value,
|
|
23
|
+
// except when the known value is already exhausted (<= 0).
|
|
22
24
|
if (aKnown)
|
|
23
|
-
return -1;
|
|
25
|
+
return a <= 0 ? 1 : -1;
|
|
24
26
|
if (bKnown)
|
|
25
|
-
return 1;
|
|
27
|
+
return b <= 0 ? -1 : 1;
|
|
26
28
|
return 0;
|
|
27
29
|
}
|
|
28
30
|
export function compareAccountsByUsagePriority(accountA, accountB, options) {
|
|
29
31
|
const now = options?.now ?? Date.now();
|
|
30
32
|
const usageA = getUsagePrioritySnapshot(accountA.rateLimits, now);
|
|
31
33
|
const usageB = getUsagePrioritySnapshot(accountB.rateLimits, now);
|
|
32
|
-
const fiveHourDiff = compareRemainingDescending(usageA.fiveHourRemaining, usageB.fiveHourRemaining);
|
|
33
|
-
if (fiveHourDiff !== 0)
|
|
34
|
-
return fiveHourDiff;
|
|
35
34
|
const weeklyDiff = compareRemainingDescending(usageA.weeklyRemaining, usageB.weeklyRemaining);
|
|
36
35
|
if (weeklyDiff !== 0)
|
|
37
36
|
return weeklyDiff;
|
|
37
|
+
const fiveHourDiff = compareRemainingDescending(usageA.fiveHourRemaining, usageB.fiveHourRemaining);
|
|
38
|
+
if (fiveHourDiff !== 0)
|
|
39
|
+
return fiveHourDiff;
|
|
38
40
|
const priorityDiff = (options?.healthPriorityB || 0) - (options?.healthPriorityA || 0);
|
|
39
41
|
if (priorityDiff !== 0)
|
|
40
42
|
return priorityDiff;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-ranking.js","sourceRoot":"","sources":["../src/account-ranking.ts"],"names":[],"mappings":"AAEA,SAAS,kBAAkB,CAAC,MAAwB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IAC5E,IAAI,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAA8B,EAC9B,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,OAAO;QACL,iBAAiB,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC;QAChE,eAAe,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,CAAgB,EAAE,CAAgB;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC;IAErC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"account-ranking.js","sourceRoot":"","sources":["../src/account-ranking.ts"],"names":[],"mappings":"AAEA,SAAS,kBAAkB,CAAC,MAAwB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IAC5E,IAAI,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAA8B,EAC9B,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,OAAO;QACL,iBAAiB,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC;QAChE,eAAe,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,CAAgB,EAAE,CAAgB;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC;IAErC,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,kEAAkE;IAClE,2DAA2D;IAC3D,IAAI,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAA4B,EAC5B,QAA4B,EAC5B,OAIC;IAED,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,0BAA0B,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC9F,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAExC,MAAM,YAAY,GAAG,0BAA0B,CAC7C,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,iBAAiB,CACzB,CAAC;IACF,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IAE5C,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC;IACvF,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IAE5C,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,cAAc,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAEhD,OAAO,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/auth-sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-sync.d.ts","sourceRoot":"","sources":["../src/auth-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAoD5C,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"auth-sync.d.ts","sourceRoot":"","sources":["../src/auth-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAoD5C,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEtF"}
|
package/dist/auth-sync.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { addAccount, loadStore, updateAccount } from './store.js';
|
|
1
|
+
import { addAccount, loadStore, setActiveAlias, updateAccount } from './store.js';
|
|
2
2
|
import { decodeJwtPayload } from './jwt.js';
|
|
3
3
|
import { getAccountIdFromClaims, getEmailFromClaims, getNameFromClaims } from './codex-auth.js';
|
|
4
4
|
const OPENAI_ISSUER = 'https://auth.openai.com';
|
|
@@ -80,6 +80,7 @@ export async function syncAuthFromOpenCode(getAuth) {
|
|
|
80
80
|
name: derivedName,
|
|
81
81
|
accountId: derivedAccountId
|
|
82
82
|
});
|
|
83
|
+
setActiveAlias(existingAlias);
|
|
83
84
|
return;
|
|
84
85
|
}
|
|
85
86
|
const store = loadStore();
|
|
@@ -96,6 +97,7 @@ export async function syncAuthFromOpenCode(getAuth) {
|
|
|
96
97
|
email,
|
|
97
98
|
name
|
|
98
99
|
});
|
|
100
|
+
setActiveAlias(existingByEmail);
|
|
99
101
|
return;
|
|
100
102
|
}
|
|
101
103
|
}
|
|
@@ -109,5 +111,6 @@ export async function syncAuthFromOpenCode(getAuth) {
|
|
|
109
111
|
accountId: derivedAccountId,
|
|
110
112
|
source: 'opencode'
|
|
111
113
|
});
|
|
114
|
+
setActiveAlias(alias);
|
|
112
115
|
}
|
|
113
116
|
//# sourceMappingURL=auth-sync.js.map
|
package/dist/auth-sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-sync.js","sourceRoot":"","sources":["../src/auth-sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"auth-sync.js","sourceRoot":"","sources":["../src/auth-sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAE/F,MAAM,aAAa,GAAG,yBAAyB,CAAA;AAC/C,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAEpC,IAAI,gBAAgB,GAAkB,IAAI,CAAA;AAC1C,IAAI,UAAU,GAAG,CAAC,CAAA;AAElB,KAAK,UAAU,aAAa,CAAC,WAAmB;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,WAAW,EAAE;YACnD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE;YACnD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsC,CAAA;QACpE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc,EAAE,OAAgB;IAC/D,MAAM,KAAK,GAAG,SAAS,EAAE,CAAA;IACzB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,KAAK,CAAA;QACxD,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC,KAAK,CAAA;IACvE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,KAAmC;IACjF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,OAAO,CAAC,KAAK,CAAA;IACpE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB,EAAE,eAA4B;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpD,IAAI,SAAS,GAAG,IAAI,IAAI,SAAS,CAAA;IACjC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,SAAS,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAA;QAC/B,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAA4B;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,IAAI,GAAG,GAAG,UAAU,GAAG,qBAAqB;QAAE,OAAM;IACpD,UAAU,GAAG,GAAG,CAAA;IAEhB,IAAI,IAAI,GAAgB,IAAI,CAAA;IAC5B,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAM;IAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAM;IACxB,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB;QAAE,OAAM;IAE5C,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAA;IAE9B,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACxE,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,aAAa,EAAE;YAC3B,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,YAAY,EAAE,IAAI,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAA;QACF,cAAc,CAAC,aAAa,CAAC,CAAA;QAC7B,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,EAAE,CAAA;IACzB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,YAAY,CAAA;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAA;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC7D,IAAI,eAAe,EAAE,CAAC;YACpB,aAAa,CAAC,eAAe,EAAE;gBAC7B,WAAW,EAAE,IAAI,CAAC,MAAM;gBACxB,YAAY,EAAE,IAAI,CAAC,OAAO;gBAC1B,SAAS,EAAE,IAAI,CAAC,OAAO;gBACvB,KAAK;gBACL,IAAI;aACL,CAAC,CAAA;YACF,cAAc,CAAC,eAAe,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAErE,UAAU,CAAC,KAAK,EAAE;QAChB,WAAW,EAAE,IAAI,CAAC,MAAM;QACxB,YAAY,EAAE,IAAI,CAAC,OAAO;QAC1B,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,KAAK;QACL,IAAI;QACJ,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,UAAU;KACnB,CAAC,CAAA;IACF,cAAc,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { createInterface } from
|
|
3
|
-
import { stdin as input, stdout as output } from
|
|
4
|
-
import { loginAccount } from
|
|
5
|
-
import { removeAccount, listAccounts, getStorePath, loadStore } from
|
|
6
|
-
import { runPluginsUpdateCommand } from
|
|
7
|
-
import { runUsageCommand } from
|
|
2
|
+
import { createInterface } from "node:readline/promises";
|
|
3
|
+
import { stdin as input, stdout as output } from "node:process";
|
|
4
|
+
import { loginAccount } from "./auth.js";
|
|
5
|
+
import { removeAccount, listAccounts, getStorePath, loadStore } from "./store.js";
|
|
6
|
+
import { runPluginsUpdateCommand } from "./plugin-updates.js";
|
|
7
|
+
import { runUsageCommand } from "./usage-command.js";
|
|
8
8
|
const args = process.argv.slice(2);
|
|
9
9
|
const command = args[0];
|
|
10
10
|
const alias = args[1];
|
|
@@ -20,8 +20,8 @@ function hasFlag(flag) {
|
|
|
20
20
|
function formatAccountUsageHint(account) {
|
|
21
21
|
const parts = [];
|
|
22
22
|
const fiveHour = account.rateLimits?.fiveHour;
|
|
23
|
-
if (typeof fiveHour?.remaining ===
|
|
24
|
-
if (typeof fiveHour.limit ===
|
|
23
|
+
if (typeof fiveHour?.remaining === "number") {
|
|
24
|
+
if (typeof fiveHour.limit === "number" && fiveHour.limit !== 100) {
|
|
25
25
|
parts.push(`5h ${fiveHour.remaining}/${fiveHour.limit} left`);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
@@ -29,49 +29,49 @@ function formatAccountUsageHint(account) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
const weekly = account.rateLimits?.weekly;
|
|
32
|
-
if (typeof weekly?.remaining ===
|
|
33
|
-
if (typeof weekly.limit ===
|
|
32
|
+
if (typeof weekly?.remaining === "number") {
|
|
33
|
+
if (typeof weekly.limit === "number" && weekly.limit !== 100) {
|
|
34
34
|
parts.push(`weekly ${weekly.remaining}/${weekly.limit} left`);
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
37
|
parts.push(`weekly ${weekly.remaining}% left`);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
return parts.join(
|
|
40
|
+
return parts.join(" · ");
|
|
41
41
|
}
|
|
42
42
|
function formatAccountOption(account, activeAlias) {
|
|
43
43
|
const primary = account.email?.trim() || account.alias;
|
|
44
|
-
const secondary = primary === account.alias ?
|
|
45
|
-
const active = account.alias === activeAlias ?
|
|
44
|
+
const secondary = primary === account.alias ? "" : ` (${account.alias})`;
|
|
45
|
+
const active = account.alias === activeAlias ? " [active]" : "";
|
|
46
46
|
const usage = formatAccountUsageHint(account);
|
|
47
47
|
return usage ? `${primary}${secondary}${active} - ${usage}` : `${primary}${secondary}${active}`;
|
|
48
48
|
}
|
|
49
49
|
async function selectAccountAliasForRemoval() {
|
|
50
50
|
const accounts = listAccounts();
|
|
51
51
|
if (accounts.length === 0) {
|
|
52
|
-
console.log(
|
|
52
|
+
console.log("No accounts configured.");
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
if (!input.isTTY || !output.isTTY) {
|
|
56
|
-
throw new Error(
|
|
56
|
+
throw new Error("Interactive account selection requires a TTY.");
|
|
57
57
|
}
|
|
58
58
|
const store = loadStore();
|
|
59
|
-
console.log(
|
|
59
|
+
console.log("\nSelect account to remove:\n");
|
|
60
60
|
for (const [index, account] of accounts.entries()) {
|
|
61
61
|
console.log(` ${index + 1}. ${formatAccountOption(account, store.activeAlias)}`);
|
|
62
62
|
}
|
|
63
|
-
console.log(
|
|
63
|
+
console.log(" 0. Cancel\n");
|
|
64
64
|
const rl = createInterface({ input, output });
|
|
65
65
|
try {
|
|
66
66
|
while (true) {
|
|
67
|
-
const answer = (await rl.question(
|
|
67
|
+
const answer = (await rl.question("Choose account: ")).trim();
|
|
68
68
|
const choice = Number.parseInt(answer, 10);
|
|
69
69
|
if (Number.isNaN(choice)) {
|
|
70
|
-
console.log(
|
|
70
|
+
console.log("Enter a number from the list.");
|
|
71
71
|
continue;
|
|
72
72
|
}
|
|
73
73
|
if (choice === 0) {
|
|
74
|
-
console.log(
|
|
74
|
+
console.log("Removal cancelled.");
|
|
75
75
|
return null;
|
|
76
76
|
}
|
|
77
77
|
const selected = accounts[choice - 1];
|
|
@@ -87,17 +87,17 @@ async function selectAccountAliasForRemoval() {
|
|
|
87
87
|
}
|
|
88
88
|
async function main() {
|
|
89
89
|
switch (command) {
|
|
90
|
-
case
|
|
91
|
-
case
|
|
90
|
+
case "add":
|
|
91
|
+
case "login": {
|
|
92
92
|
if (!alias) {
|
|
93
|
-
console.error(
|
|
94
|
-
console.error(
|
|
93
|
+
console.error("Usage: opencode-enhancer add <alias>");
|
|
94
|
+
console.error("Example: opencode-enhancer add work");
|
|
95
95
|
process.exit(1);
|
|
96
96
|
}
|
|
97
97
|
try {
|
|
98
98
|
const account = await loginAccount(alias);
|
|
99
99
|
console.log(`\nAccount "${alias}" added successfully!`);
|
|
100
|
-
console.log(`Email: ${account.email ||
|
|
100
|
+
console.log(`Email: ${account.email || "unknown"}`);
|
|
101
101
|
}
|
|
102
102
|
catch (err) {
|
|
103
103
|
console.error(`Failed to add account: ${err}`);
|
|
@@ -105,10 +105,10 @@ async function main() {
|
|
|
105
105
|
}
|
|
106
106
|
break;
|
|
107
107
|
}
|
|
108
|
-
case
|
|
109
|
-
case
|
|
108
|
+
case "remove":
|
|
109
|
+
case "rm": {
|
|
110
110
|
if (alias) {
|
|
111
|
-
console.error(
|
|
111
|
+
console.error("Usage: opencode-enhancer remove");
|
|
112
112
|
process.exit(1);
|
|
113
113
|
}
|
|
114
114
|
try {
|
|
@@ -125,79 +125,85 @@ async function main() {
|
|
|
125
125
|
}
|
|
126
126
|
break;
|
|
127
127
|
}
|
|
128
|
-
case
|
|
129
|
-
case
|
|
128
|
+
case "list":
|
|
129
|
+
case "ls": {
|
|
130
130
|
const accounts = listAccounts();
|
|
131
131
|
if (accounts.length === 0) {
|
|
132
|
-
console.log(
|
|
133
|
-
console.log(
|
|
132
|
+
console.log("No accounts configured.");
|
|
133
|
+
console.log("Add one with: opencode-enhancer add <alias>");
|
|
134
134
|
}
|
|
135
135
|
else {
|
|
136
|
-
console.log(
|
|
136
|
+
console.log("\nConfigured accounts:\n");
|
|
137
137
|
for (const acc of accounts) {
|
|
138
|
-
console.log(` ${acc.alias}: ${acc.email ||
|
|
138
|
+
console.log(` ${acc.alias}: ${acc.email || "unknown email"} (uses: ${acc.usageCount})`);
|
|
139
139
|
}
|
|
140
140
|
console.log();
|
|
141
141
|
}
|
|
142
142
|
break;
|
|
143
143
|
}
|
|
144
|
-
case
|
|
144
|
+
case "status": {
|
|
145
145
|
const store = loadStore();
|
|
146
146
|
const accounts = Object.values(store.accounts);
|
|
147
|
-
|
|
148
|
-
console.log(
|
|
147
|
+
const strategy = store.settings?.rotationStrategy || store.rotationStrategy || "usage-priority";
|
|
148
|
+
console.log("\n[enhancer] Account Status\n");
|
|
149
|
+
console.log(`Strategy: ${strategy}`);
|
|
149
150
|
console.log(`Accounts: ${accounts.length}`);
|
|
150
|
-
console.log(`Active: ${store.activeAlias ||
|
|
151
|
+
console.log(`Active: ${store.activeAlias || "none"}\n`);
|
|
151
152
|
if (accounts.length === 0) {
|
|
152
|
-
console.log(
|
|
153
|
+
console.log("No accounts configured. Run: opencode-enhancer add <alias>\n");
|
|
153
154
|
return;
|
|
154
155
|
}
|
|
155
156
|
for (const acc of accounts) {
|
|
156
|
-
const isActive = acc.alias === store.activeAlias ?
|
|
157
|
+
const isActive = acc.alias === store.activeAlias ? " (active)" : "";
|
|
157
158
|
const isRateLimited = acc.rateLimitedUntil && acc.rateLimitedUntil > Date.now()
|
|
158
159
|
? ` [RATE LIMITED until ${new Date(acc.rateLimitedUntil).toLocaleTimeString()}]`
|
|
159
|
-
:
|
|
160
|
+
: "";
|
|
160
161
|
const expiry = new Date(acc.expiresAt).toLocaleString();
|
|
161
162
|
console.log(` ${acc.alias}${isActive}${isRateLimited}`);
|
|
162
|
-
console.log(` Email: ${acc.email ||
|
|
163
|
+
console.log(` Email: ${acc.email || "unknown"}`);
|
|
163
164
|
console.log(` Uses: ${acc.usageCount}`);
|
|
164
165
|
console.log(` Token expires: ${expiry}`);
|
|
165
166
|
console.log();
|
|
166
167
|
}
|
|
167
168
|
break;
|
|
168
169
|
}
|
|
169
|
-
case
|
|
170
|
+
case "path": {
|
|
170
171
|
console.log(getStorePath());
|
|
171
172
|
break;
|
|
172
173
|
}
|
|
173
|
-
case
|
|
174
|
-
const providerArg = getFlagValue(
|
|
175
|
-
const jsonFlag = args.includes(
|
|
176
|
-
const verboseFlag = args.includes(
|
|
177
|
-
const noCacheFlag = args.includes(
|
|
178
|
-
await runUsageCommand({
|
|
174
|
+
case "usage": {
|
|
175
|
+
const providerArg = getFlagValue("--provider");
|
|
176
|
+
const jsonFlag = args.includes("--json");
|
|
177
|
+
const verboseFlag = args.includes("--verbose") || args.includes("-v");
|
|
178
|
+
const noCacheFlag = args.includes("--no-cache");
|
|
179
|
+
await runUsageCommand({
|
|
180
|
+
provider: providerArg || undefined,
|
|
181
|
+
json: jsonFlag,
|
|
182
|
+
verbose: verboseFlag,
|
|
183
|
+
noCache: noCacheFlag,
|
|
184
|
+
});
|
|
179
185
|
break;
|
|
180
186
|
}
|
|
181
|
-
case
|
|
182
|
-
const action = args[1] ||
|
|
183
|
-
if (action !==
|
|
184
|
-
console.error(
|
|
187
|
+
case "plugins": {
|
|
188
|
+
const action = args[1] || "help";
|
|
189
|
+
if (action !== "update") {
|
|
190
|
+
console.error("Usage: opencode-enhancer plugins update [--dry-run] [--include-pinned] [--exclude name1,name2]");
|
|
185
191
|
process.exit(1);
|
|
186
192
|
}
|
|
187
|
-
const exclude = (getFlagValue(
|
|
188
|
-
.split(
|
|
193
|
+
const exclude = (getFlagValue("--exclude") || "")
|
|
194
|
+
.split(",")
|
|
189
195
|
.map((item) => item.trim())
|
|
190
196
|
.filter(Boolean);
|
|
191
197
|
await runPluginsUpdateCommand({
|
|
192
|
-
dryRun: hasFlag(
|
|
193
|
-
includePinned: hasFlag(
|
|
198
|
+
dryRun: hasFlag("--dry-run"),
|
|
199
|
+
includePinned: hasFlag("--include-pinned"),
|
|
194
200
|
exclude,
|
|
195
201
|
});
|
|
196
202
|
break;
|
|
197
203
|
}
|
|
198
|
-
case
|
|
199
|
-
case
|
|
200
|
-
case
|
|
204
|
+
case "help":
|
|
205
|
+
case "--help":
|
|
206
|
+
case "-h":
|
|
201
207
|
default: {
|
|
202
208
|
console.log(`
|
|
203
209
|
opencode-enhancer - OpenCode enhancer for Codex accounts, usage, plugin updates, and automation
|
|
@@ -239,8 +245,8 @@ After adding accounts, the plugin auto-rotates between them.
|
|
|
239
245
|
}
|
|
240
246
|
}
|
|
241
247
|
}
|
|
242
|
-
main().catch(err => {
|
|
243
|
-
console.error(
|
|
248
|
+
main().catch((err) => {
|
|
249
|
+
console.error("Fatal error:", err);
|
|
244
250
|
process.exit(1);
|
|
245
251
|
});
|
|
246
252
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/codex-auth.d.ts
CHANGED
|
@@ -31,7 +31,9 @@ export declare function getAccountIdFromClaims(claims: Record<string, any> | nul
|
|
|
31
31
|
export declare function getExpiryFromClaims(claims: Record<string, any> | null): number | undefined;
|
|
32
32
|
export declare function getCodexAuthSummary(): CodexAuthSummary;
|
|
33
33
|
export declare function resolveAliasForCurrentAuth(store?: ReturnType<typeof loadStore>): string | null;
|
|
34
|
-
export declare function syncCodexAuthFile(
|
|
34
|
+
export declare function syncCodexAuthFile(options?: {
|
|
35
|
+
setActiveAlias?: boolean;
|
|
36
|
+
}): {
|
|
35
37
|
alias: string | null;
|
|
36
38
|
added: boolean;
|
|
37
39
|
updated: boolean;
|
package/dist/codex-auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-auth.d.ts","sourceRoot":"","sources":["../src/codex-auth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,SAAS,
|
|
1
|
+
{"version":3,"file":"codex-auth.d.ts","sourceRoot":"","sources":["../src/codex-auth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,SAAS,EAAiC,MAAM,YAAY,CAAA;AAIjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAiBD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;CACpB;AASD,wBAAgB,iBAAiB,IAAI,aAAa,GAAG,IAAI,CAWxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAK5D;AAqDD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAMzF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAUxF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAI7F;AAwBD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAK1F;AAmDD,wBAAgB,mBAAmB,IAAI,gBAAgB,CA0BtD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,CAuB9F;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG;IACzE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CA4EA;AAED,wBAAgB,kBAAkB,IAAI;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAE7D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAkC1D"}
|
package/dist/codex-auth.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as os from 'os';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
import { addAccount, loadStore, updateAccount } from './store.js';
|
|
4
|
+
import { addAccount, loadStore, setActiveAlias, updateAccount } from './store.js';
|
|
5
5
|
import { decodeJwtPayload } from './jwt.js';
|
|
6
6
|
const CODEX_AUTH_FILE_ENV = 'OPENCODE_ENHANCER_CODEX_AUTH_FILE';
|
|
7
7
|
const LEGACY_CODEX_AUTH_FILE_ENV = 'OPENCODE_MULTI_AUTH_CODEX_AUTH_FILE';
|
|
@@ -235,7 +235,8 @@ export function resolveAliasForCurrentAuth(store) {
|
|
|
235
235
|
id_token: normalized.idToken
|
|
236
236
|
}, accountId, accountUserId, userId, email, targetStore);
|
|
237
237
|
}
|
|
238
|
-
export function syncCodexAuthFile() {
|
|
238
|
+
export function syncCodexAuthFile(options) {
|
|
239
|
+
const shouldSetActiveAlias = options?.setActiveAlias !== false;
|
|
239
240
|
const auth = loadCodexAuthFile();
|
|
240
241
|
const normalized = normalizeTokens(auth);
|
|
241
242
|
if (!normalized?.accessToken || !normalized.refreshToken) {
|
|
@@ -294,10 +295,16 @@ export function syncCodexAuthFile() {
|
|
|
294
295
|
}
|
|
295
296
|
if (alias) {
|
|
296
297
|
updateAccount(alias, update);
|
|
298
|
+
if (shouldSetActiveAlias) {
|
|
299
|
+
setActiveAlias(alias);
|
|
300
|
+
}
|
|
297
301
|
return { alias, added: false, updated: true, authEmail: email, authAccountId: accountId };
|
|
298
302
|
}
|
|
299
303
|
const newAlias = buildAlias(email, accountId, store);
|
|
300
304
|
addAccount(newAlias, update);
|
|
305
|
+
if (shouldSetActiveAlias) {
|
|
306
|
+
setActiveAlias(newAlias);
|
|
307
|
+
}
|
|
301
308
|
return { alias: newAlias, added: true, updated: true, authEmail: email, authAccountId: accountId };
|
|
302
309
|
}
|
|
303
310
|
export function getCodexAuthStatus() {
|