codex-multi-auth 0.1.3 → 0.1.5
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/LICENSE +1 -1
- package/README.md +7 -10
- package/assets/readme-hero.svg +31 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/auth/auth.d.ts +6 -2
- package/dist/lib/auth/auth.d.ts.map +1 -1
- package/dist/lib/auth/auth.js +34 -11
- package/dist/lib/auth/auth.js.map +1 -1
- package/dist/lib/auth/server.d.ts +1 -1
- package/dist/lib/auth/server.js +3 -3
- package/dist/lib/codex-cli/state.d.ts +9 -0
- package/dist/lib/codex-cli/state.d.ts.map +1 -1
- package/dist/lib/codex-cli/state.js +14 -0
- package/dist/lib/codex-cli/state.js.map +1 -1
- package/dist/lib/codex-cli/writer.d.ts.map +1 -1
- package/dist/lib/codex-cli/writer.js +106 -14
- package/dist/lib/codex-cli/writer.js.map +1 -1
- package/dist/lib/codex-manager/settings-hub.d.ts +16 -1
- package/dist/lib/codex-manager/settings-hub.d.ts.map +1 -1
- package/dist/lib/codex-manager/settings-hub.js +28 -2
- package/dist/lib/codex-manager/settings-hub.js.map +1 -1
- package/dist/lib/codex-manager.d.ts +1 -0
- package/dist/lib/codex-manager.d.ts.map +1 -1
- package/dist/lib/codex-manager.js +319 -16
- package/dist/lib/codex-manager.js.map +1 -1
- package/dist/lib/context-overflow.js +10 -10
- package/dist/lib/oauth-success.html +192 -260
- package/dist/lib/parallel-probe.d.ts +7 -0
- package/dist/lib/parallel-probe.d.ts.map +1 -1
- package/dist/lib/parallel-probe.js +37 -9
- package/dist/lib/parallel-probe.js.map +1 -1
- package/dist/lib/prompts/codex.js +2 -2
- package/dist/lib/refresh-queue.d.ts +4 -5
- package/dist/lib/refresh-queue.d.ts.map +1 -1
- package/dist/lib/refresh-queue.js +99 -21
- package/dist/lib/refresh-queue.js.map +1 -1
- package/dist/lib/request/fetch-helpers.d.ts +12 -4
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/request/fetch-helpers.js +53 -25
- package/dist/lib/request/fetch-helpers.js.map +1 -1
- package/dist/lib/request/helpers/tool-utils.d.ts.map +1 -1
- package/dist/lib/request/helpers/tool-utils.js +36 -6
- package/dist/lib/request/helpers/tool-utils.js.map +1 -1
- package/dist/lib/request/rate-limit-backoff.d.ts +7 -0
- package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -1
- package/dist/lib/request/rate-limit-backoff.js +24 -4
- package/dist/lib/request/rate-limit-backoff.js.map +1 -1
- package/dist/lib/request/request-transformer.d.ts +10 -0
- package/dist/lib/request/request-transformer.d.ts.map +1 -1
- package/dist/lib/request/request-transformer.js +61 -37
- package/dist/lib/request/request-transformer.js.map +1 -1
- package/dist/lib/rotation.d.ts +19 -0
- package/dist/lib/rotation.d.ts.map +1 -1
- package/dist/lib/rotation.js +60 -39
- package/dist/lib/rotation.js.map +1 -1
- package/dist/lib/ui/copy.d.ts +1 -1
- package/dist/lib/ui/copy.js +1 -1
- package/dist/lib/utils.d.ts +6 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +11 -0
- package/dist/lib/utils.js.map +1 -1
- package/node_modules/@codex-ai/plugin/dist/index.d.ts +1 -1
- package/node_modules/@codex-ai/plugin/dist/tool.d.ts +41 -41
- package/node_modules/@codex-ai/plugin/dist/tool.js +28 -28
- package/package.json +9 -5
- package/scripts/audit-dev-allowlist.js +186 -94
- package/scripts/bench-format/hashline-v2.mjs +642 -642
- package/scripts/bench-format/render.mjs +496 -496
- package/scripts/bench-format/stats.mjs +54 -54
- package/scripts/bench-format/tasks.mjs +151 -151
- package/scripts/benchmark-render-dashboard.mjs +49 -49
- package/scripts/benchmark-runtime-path.mjs +166 -0
- package/scripts/codex-multi-auth.js +1 -1
- package/scripts/codex.js +86 -26
- package/scripts/copy-oauth-success.js +42 -3
- package/scripts/install-codex-auth-utils.js +69 -0
- package/scripts/install-codex-auth.js +23 -14
- package/scripts/test-all-models.sh +7 -7
- package/scripts/test-model-matrix.js +108 -80
- package/scripts/validate-model-map.sh +7 -7
- package/vendor/codex-ai-plugin/dist/index.d.ts +1 -1
- package/vendor/codex-ai-plugin/dist/tool.d.ts +41 -41
- package/vendor/codex-ai-plugin/dist/tool.js +28 -28
- package/vendor/codex-ai-sdk/dist/index.d.ts +3 -3
|
@@ -3,336 +3,268 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
6
|
-
<title>OpenAI Codex
|
|
6
|
+
<title>OpenAI Codex Callback Received</title>
|
|
7
7
|
<style>
|
|
8
|
+
/* Space Grotesk import removed to avoid CSP font-src violations; rely on system stack. */
|
|
9
|
+
|
|
8
10
|
:root {
|
|
9
|
-
--bg: #
|
|
10
|
-
--bg2: #
|
|
11
|
-
--
|
|
12
|
-
--
|
|
13
|
-
--
|
|
14
|
-
--text: #
|
|
15
|
-
--muted:
|
|
16
|
-
--
|
|
17
|
-
--
|
|
18
|
-
--warn: #f2cc60;
|
|
11
|
+
--bg: #020403;
|
|
12
|
+
--bg2: #050908;
|
|
13
|
+
--surface: rgba(6, 10, 9, 0.92);
|
|
14
|
+
--border: rgba(255, 255, 255, 0.08);
|
|
15
|
+
--divider: rgba(255, 255, 255, 0.07);
|
|
16
|
+
--text: #f5fbf7;
|
|
17
|
+
--muted: rgba(245, 251, 247, 0.68);
|
|
18
|
+
--accent: #49f1a8;
|
|
19
|
+
--accent-soft: rgba(73, 241, 168, 0.15);
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
* {
|
|
22
|
+
* {
|
|
23
|
+
box-sizing: border-box;
|
|
24
|
+
}
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
body {
|
|
24
27
|
margin: 0;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
background: radial-gradient(1300px 700px at 20% -10%, #0f2b21 0%, transparent 55%),
|
|
29
|
-
radial-gradient(1000px 560px at 100% 0%, #0a2019 0%, transparent 60%),
|
|
28
|
+
min-height: 100vh;
|
|
29
|
+
font-family: "Segoe UI", system-ui, -apple-system, "IBM Plex Sans", sans-serif;
|
|
30
|
+
background: radial-gradient(circle at top, rgba(73, 241, 168, 0.12), transparent 55%),
|
|
30
31
|
linear-gradient(180deg, var(--bg), var(--bg2));
|
|
31
32
|
color: var(--text);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
.grid {
|
|
37
|
-
position: fixed;
|
|
38
|
-
inset: 0;
|
|
39
|
-
background-image:
|
|
40
|
-
linear-gradient(to right, rgba(53, 210, 138, 0.06) 1px, transparent 1px),
|
|
41
|
-
linear-gradient(to bottom, rgba(53, 210, 138, 0.05) 1px, transparent 1px);
|
|
42
|
-
background-size: 28px 28px;
|
|
43
|
-
mask-image: radial-gradient(circle at center, black 35%, transparent 90%);
|
|
44
|
-
pointer-events: none;
|
|
45
|
-
animation: drift 16s linear infinite;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.scanline {
|
|
49
|
-
position: fixed;
|
|
50
|
-
inset: 0;
|
|
51
|
-
pointer-events: none;
|
|
52
|
-
background: linear-gradient(180deg, transparent 0%, rgba(53, 210, 138, 0.07) 48%, transparent 52%, transparent 100%);
|
|
53
|
-
animation: sweep 5s linear infinite;
|
|
54
|
-
opacity: 0.45;
|
|
33
|
+
display: grid;
|
|
34
|
+
place-items: center;
|
|
35
|
+
padding: 32px 16px;
|
|
55
36
|
}
|
|
56
37
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
38
|
+
main {
|
|
39
|
+
width: min(440px, 100%);
|
|
40
|
+
background: var(--surface);
|
|
41
|
+
border-radius: 22px;
|
|
42
|
+
border: 1px solid var(--border);
|
|
43
|
+
padding: 32px;
|
|
44
|
+
box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
|
|
45
|
+
display: flex;
|
|
46
|
+
flex-direction: column;
|
|
47
|
+
gap: 18px;
|
|
60
48
|
}
|
|
61
49
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
50
|
+
.eyebrow {
|
|
51
|
+
font-size: 12px;
|
|
52
|
+
text-transform: uppercase;
|
|
53
|
+
letter-spacing: 0.22em;
|
|
54
|
+
color: var(--muted);
|
|
65
55
|
}
|
|
66
56
|
|
|
67
|
-
.
|
|
57
|
+
.icon {
|
|
58
|
+
width: 64px;
|
|
59
|
+
height: 64px;
|
|
60
|
+
border-radius: 16px;
|
|
61
|
+
border: 1px solid var(--border);
|
|
62
|
+
background: var(--accent-soft);
|
|
63
|
+
display: grid;
|
|
64
|
+
place-items: center;
|
|
65
|
+
color: var(--accent);
|
|
66
|
+
margin: 4px 0 6px;
|
|
68
67
|
position: relative;
|
|
69
|
-
|
|
70
|
-
margin: 24px auto;
|
|
71
|
-
top: 50%;
|
|
72
|
-
transform: translateY(-50%);
|
|
73
|
-
border: 1px solid var(--line);
|
|
74
|
-
border-radius: 14px;
|
|
75
|
-
background: linear-gradient(180deg, rgba(10, 16, 13, 0.94), rgba(6, 11, 9, 0.94));
|
|
76
|
-
box-shadow: 0 28px 80px rgba(0,0,0,0.58), 0 0 0 1px rgba(53,210,138,0.08) inset;
|
|
77
|
-
overflow: hidden;
|
|
78
|
-
animation: pop 380ms ease-out;
|
|
68
|
+
animation: fade 1s ease both;
|
|
79
69
|
}
|
|
80
70
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
71
|
+
.icon::after {
|
|
72
|
+
content: "";
|
|
73
|
+
width: 20px;
|
|
74
|
+
height: 12px;
|
|
75
|
+
border-left: 3px solid currentColor;
|
|
76
|
+
border-bottom: 3px solid currentColor;
|
|
77
|
+
transform: rotate(-45deg);
|
|
84
78
|
}
|
|
85
79
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
padding: 12px 16px;
|
|
91
|
-
border-bottom: 1px solid var(--line-soft);
|
|
92
|
-
background: rgba(6, 12, 10, 0.9);
|
|
80
|
+
h1 {
|
|
81
|
+
margin: 0;
|
|
82
|
+
font-size: clamp(26px, 4vw, 32px);
|
|
83
|
+
letter-spacing: -0.02em;
|
|
93
84
|
}
|
|
94
85
|
|
|
95
|
-
.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
background: #375a4a;
|
|
101
|
-
border: 1px solid #2b463b;
|
|
102
|
-
}
|
|
103
|
-
.dot.ok {
|
|
104
|
-
background: var(--green);
|
|
105
|
-
border-color: #1a6f46;
|
|
106
|
-
box-shadow: 0 0 8px rgba(53,210,138,0.65);
|
|
107
|
-
animation: blink 1.6s ease-in-out infinite;
|
|
86
|
+
.lead {
|
|
87
|
+
margin: 0;
|
|
88
|
+
color: var(--muted);
|
|
89
|
+
font-size: 15px;
|
|
90
|
+
line-height: 1.6;
|
|
108
91
|
}
|
|
109
92
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
93
|
+
.state {
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: baseline;
|
|
96
|
+
justify-content: space-between;
|
|
97
|
+
padding: 16px 18px;
|
|
98
|
+
border-radius: 16px;
|
|
99
|
+
background: rgba(8, 14, 11, 0.75);
|
|
100
|
+
border: 1px solid var(--border);
|
|
113
101
|
}
|
|
114
102
|
|
|
115
|
-
.
|
|
103
|
+
.state span {
|
|
116
104
|
font-size: 13px;
|
|
117
|
-
|
|
105
|
+
text-transform: uppercase;
|
|
106
|
+
letter-spacing: 0.15em;
|
|
118
107
|
color: var(--muted);
|
|
119
|
-
white-space: nowrap;
|
|
120
|
-
overflow: hidden;
|
|
121
|
-
text-overflow: ellipsis;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.content {
|
|
125
|
-
padding: 20px;
|
|
126
|
-
display: grid;
|
|
127
|
-
grid-template-columns: 1.15fr 0.85fr;
|
|
128
|
-
gap: 16px;
|
|
129
108
|
}
|
|
130
109
|
|
|
131
|
-
.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
background: rgba(8, 14, 11, 0.62);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.right {
|
|
139
|
-
border: 1px solid var(--line-soft);
|
|
140
|
-
border-radius: 10px;
|
|
141
|
-
padding: 16px;
|
|
142
|
-
background: rgba(8, 14, 11, 0.62);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.kicker {
|
|
146
|
-
color: var(--green);
|
|
147
|
-
font-size: 12px;
|
|
148
|
-
text-transform: uppercase;
|
|
149
|
-
letter-spacing: 0.11em;
|
|
150
|
-
margin-bottom: 10px;
|
|
110
|
+
.state strong {
|
|
111
|
+
font-size: 20px;
|
|
112
|
+
color: var(--accent);
|
|
113
|
+
font-weight: 600;
|
|
151
114
|
}
|
|
152
115
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
116
|
+
.status-list {
|
|
117
|
+
list-style: none;
|
|
118
|
+
margin: 8px 0 0;
|
|
119
|
+
padding: 0;
|
|
120
|
+
display: flex;
|
|
121
|
+
flex-direction: column;
|
|
122
|
+
gap: 10px;
|
|
158
123
|
}
|
|
159
124
|
|
|
160
|
-
.
|
|
161
|
-
|
|
162
|
-
|
|
125
|
+
.status-list li {
|
|
126
|
+
display: flex;
|
|
127
|
+
align-items: center;
|
|
128
|
+
justify-content: space-between;
|
|
129
|
+
border-bottom: 1px solid var(--divider);
|
|
130
|
+
padding-bottom: 8px;
|
|
163
131
|
font-size: 14px;
|
|
164
|
-
line-height: 1.5;
|
|
165
132
|
}
|
|
166
133
|
|
|
167
|
-
.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
gap: 8px;
|
|
171
|
-
margin: 0 0 14px;
|
|
172
|
-
padding: 7px 10px;
|
|
173
|
-
border-radius: 999px;
|
|
174
|
-
border: 1px solid rgba(53,210,138,0.4);
|
|
175
|
-
background: rgba(53,210,138,0.12);
|
|
176
|
-
color: #d9f9e9;
|
|
177
|
-
font-size: 12px;
|
|
178
|
-
font-weight: 700;
|
|
179
|
-
letter-spacing: 0.05em;
|
|
180
|
-
text-transform: uppercase;
|
|
134
|
+
.status-list li:last-child {
|
|
135
|
+
border-bottom: none;
|
|
136
|
+
padding-bottom: 0;
|
|
181
137
|
}
|
|
182
138
|
|
|
183
|
-
.
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
background: var(--green);
|
|
188
|
-
box-shadow: 0 0 9px rgba(53,210,138,0.85);
|
|
189
|
-
animation: ping 1.2s ease-out infinite;
|
|
139
|
+
.status-list span {
|
|
140
|
+
color: var(--muted);
|
|
141
|
+
font-size: 13px;
|
|
142
|
+
letter-spacing: 0.02em;
|
|
190
143
|
}
|
|
191
144
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
145
|
+
.status-list .ok {
|
|
146
|
+
color: var(--accent);
|
|
147
|
+
font-weight: 500;
|
|
195
148
|
}
|
|
196
149
|
|
|
197
|
-
.
|
|
198
|
-
|
|
199
|
-
padding:
|
|
200
|
-
list-style: none;
|
|
150
|
+
.meta {
|
|
151
|
+
border-top: 1px solid var(--divider);
|
|
152
|
+
padding-top: 14px;
|
|
201
153
|
display: grid;
|
|
202
|
-
gap:
|
|
154
|
+
gap: 10px;
|
|
203
155
|
}
|
|
204
156
|
|
|
205
|
-
.
|
|
206
|
-
border: 1px solid var(--line-soft);
|
|
207
|
-
background: rgba(7, 12, 10, 0.72);
|
|
208
|
-
border-radius: 8px;
|
|
209
|
-
padding: 9px 10px;
|
|
210
|
-
color: #cde6db;
|
|
211
|
-
font-size: 13px;
|
|
157
|
+
.meta-row {
|
|
212
158
|
display: flex;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
.steps li::before {
|
|
218
|
-
content: ">";
|
|
219
|
-
color: var(--green);
|
|
220
|
-
font-weight: 700;
|
|
159
|
+
justify-content: space-between;
|
|
160
|
+
align-items: baseline;
|
|
161
|
+
font-size: 13px;
|
|
162
|
+
color: var(--muted);
|
|
221
163
|
}
|
|
222
164
|
|
|
223
|
-
.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
border: 1px solid var(--line-soft);
|
|
165
|
+
.meta-row code {
|
|
166
|
+
font-family: "Segoe UI", system-ui, -apple-system, "SFMono-Regular", Menlo, monospace;
|
|
167
|
+
background: rgba(255, 255, 255, 0.04);
|
|
227
168
|
border-radius: 8px;
|
|
228
|
-
padding:
|
|
229
|
-
|
|
230
|
-
min-height: 180px;
|
|
169
|
+
padding: 4px 8px;
|
|
170
|
+
color: var(--text);
|
|
231
171
|
}
|
|
232
172
|
|
|
233
|
-
.
|
|
234
|
-
color: #cde6db;
|
|
173
|
+
.tip {
|
|
235
174
|
margin: 0;
|
|
236
|
-
font-size:
|
|
237
|
-
|
|
238
|
-
|
|
175
|
+
font-size: 13px;
|
|
176
|
+
color: var(--muted);
|
|
177
|
+
border-top: 1px solid var(--divider);
|
|
178
|
+
padding-top: 14px;
|
|
239
179
|
}
|
|
240
180
|
|
|
241
|
-
.
|
|
242
|
-
|
|
243
|
-
.prompt .warn { color: var(--warn); }
|
|
244
|
-
|
|
245
|
-
.progress {
|
|
246
|
-
margin-top: 10px;
|
|
247
|
-
height: 8px;
|
|
248
|
-
border-radius: 999px;
|
|
249
|
-
background: #0b1a14;
|
|
250
|
-
border: 1px solid var(--line-soft);
|
|
251
|
-
overflow: hidden;
|
|
252
|
-
position: relative;
|
|
181
|
+
.tip strong {
|
|
182
|
+
color: var(--text);
|
|
253
183
|
}
|
|
254
184
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
background: linear-gradient(90deg, var(--green-strong), var(--green));
|
|
260
|
-
animation: load 1.8s ease-in-out infinite;
|
|
185
|
+
footer {
|
|
186
|
+
font-size: 12px;
|
|
187
|
+
color: var(--muted);
|
|
188
|
+
text-align: center;
|
|
261
189
|
}
|
|
262
190
|
|
|
263
|
-
@keyframes
|
|
264
|
-
|
|
265
|
-
|
|
191
|
+
@keyframes fade {
|
|
192
|
+
from { opacity: 0; transform: translateY(6px); }
|
|
193
|
+
to { opacity: 1; transform: translateY(0); }
|
|
266
194
|
}
|
|
267
195
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
font-size: 12px;
|
|
273
|
-
display: flex;
|
|
274
|
-
justify-content: space-between;
|
|
275
|
-
gap: 8px;
|
|
276
|
-
flex-wrap: wrap;
|
|
277
|
-
background: rgba(6, 11, 9, 0.9);
|
|
196
|
+
@media (prefers-reduced-motion: reduce) {
|
|
197
|
+
.icon {
|
|
198
|
+
animation: none;
|
|
199
|
+
}
|
|
278
200
|
}
|
|
279
201
|
|
|
280
|
-
|
|
202
|
+
@media (max-width: 480px) {
|
|
203
|
+
main {
|
|
204
|
+
padding: 24px;
|
|
205
|
+
border-radius: 18px;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.state {
|
|
209
|
+
flex-direction: column;
|
|
210
|
+
align-items: flex-start;
|
|
211
|
+
gap: 4px;
|
|
212
|
+
}
|
|
281
213
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
214
|
+
.status-list li {
|
|
215
|
+
flex-direction: column;
|
|
216
|
+
align-items: flex-start;
|
|
217
|
+
gap: 2px;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.meta-row {
|
|
221
|
+
flex-direction: column;
|
|
222
|
+
gap: 4px;
|
|
285
223
|
}
|
|
286
224
|
}
|
|
287
225
|
</style>
|
|
288
226
|
</head>
|
|
289
227
|
<body>
|
|
290
|
-
<
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
<
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
228
|
+
<main role="main" aria-label="OAuth callback received">
|
|
229
|
+
<p class="eyebrow">OpenAI Codex</p>
|
|
230
|
+
<div class="icon" aria-hidden="true"></div>
|
|
231
|
+
<h1>Callback received</h1>
|
|
232
|
+
<p class="lead">Return to your terminal to complete sign-in.</p>
|
|
233
|
+
<div class="state">
|
|
234
|
+
<span>Status</span>
|
|
235
|
+
<strong>Processing</strong>
|
|
236
|
+
</div>
|
|
237
|
+
<ul class="status-list" aria-label="OAuth steps">
|
|
238
|
+
<li>
|
|
239
|
+
<span>Authorization code</span>
|
|
240
|
+
<span class="ok">received</span>
|
|
241
|
+
</li>
|
|
242
|
+
<li>
|
|
243
|
+
<span>Token exchange</span>
|
|
244
|
+
<span>running in terminal</span>
|
|
245
|
+
</li>
|
|
246
|
+
<li>
|
|
247
|
+
<span>Credentials</span>
|
|
248
|
+
<span>persisting after terminal completes</span>
|
|
249
|
+
</li>
|
|
250
|
+
<li>
|
|
251
|
+
<span>Session</span>
|
|
252
|
+
<span>activating in terminal</span>
|
|
253
|
+
</li>
|
|
254
|
+
</ul>
|
|
255
|
+
<section class="meta" aria-label="Callback summary">
|
|
256
|
+
<div class="meta-row">
|
|
257
|
+
<span>Callback</span>
|
|
258
|
+
<!-- Port 1455 is fixed by design via REDIRECT_URI -->
|
|
259
|
+
<code>localhost:1455</code>
|
|
260
|
+
</div>
|
|
261
|
+
<div class="meta-row">
|
|
262
|
+
<span>Tip</span>
|
|
263
|
+
<span>Close this tab when you are done.</span>
|
|
299
264
|
</div>
|
|
300
|
-
<div class="bar-title">OpenAI Codex - Callback Received</div>
|
|
301
|
-
</header>
|
|
302
|
-
|
|
303
|
-
<section class="content">
|
|
304
|
-
<article class="left">
|
|
305
|
-
<p class="kicker">OpenAI Codex</p>
|
|
306
|
-
<h1>Sign-in Complete</h1>
|
|
307
|
-
<p class="subtitle">Account connected. Return to terminal.</p>
|
|
308
|
-
|
|
309
|
-
<div class="badge"><span class="pulse"></span> Connected</div>
|
|
310
|
-
|
|
311
|
-
<ul class="steps" aria-label="Completion steps">
|
|
312
|
-
<li>Authorization code received</li>
|
|
313
|
-
<li>Token exchange complete</li>
|
|
314
|
-
<li>Credentials saved to local Codex auth storage</li>
|
|
315
|
-
<li>Session ready</li>
|
|
316
|
-
</ul>
|
|
317
|
-
</article>
|
|
318
|
-
|
|
319
|
-
<aside class="right" aria-label="Terminal status">
|
|
320
|
-
<div class="terminal">
|
|
321
|
-
<pre class="prompt"><span class="ok">[ok]</span> callback received on 127.0.0.1:1455
|
|
322
|
-
<span class="ok">[ok]</span> secure token flow complete
|
|
323
|
-
<span class="ok">[ok]</span> account saved
|
|
324
|
-
|
|
325
|
-
<span class="muted">next:</span> return to terminal
|
|
326
|
-
<span class="warn">tip:</span> close this tab</pre>
|
|
327
|
-
<div class="progress" aria-hidden="true"><span></span></div>
|
|
328
|
-
</div>
|
|
329
|
-
</aside>
|
|
330
265
|
</section>
|
|
331
|
-
|
|
332
|
-
<footer
|
|
333
|
-
<span>Status: <strong>Connected</strong></span>
|
|
334
|
-
<span>Back to terminal to continue.</span>
|
|
335
|
-
</footer>
|
|
266
|
+
<p class="tip"><strong>Next:</strong> return to the terminal window to continue.</p>
|
|
267
|
+
<footer>Back to terminal to continue.</footer>
|
|
336
268
|
</main>
|
|
337
269
|
</body>
|
|
338
270
|
</html>
|
|
@@ -14,10 +14,17 @@ export interface ParallelProbeOptions {
|
|
|
14
14
|
maxConcurrency: number;
|
|
15
15
|
timeoutMs: number;
|
|
16
16
|
}
|
|
17
|
+
export interface GetTopCandidatesParams {
|
|
18
|
+
accountManager: AccountManager;
|
|
19
|
+
modelFamily: ModelFamily;
|
|
20
|
+
model: string | null;
|
|
21
|
+
maxCandidates: number;
|
|
22
|
+
}
|
|
17
23
|
/**
|
|
18
24
|
* Get top N candidates ranked by hybrid score WITHOUT mutating AccountManager state.
|
|
19
25
|
* Uses getAccountsSnapshot() and ranks by health + tokens + freshness.
|
|
20
26
|
*/
|
|
27
|
+
export declare function getTopCandidates(params: GetTopCandidatesParams): ManagedAccount[];
|
|
21
28
|
export declare function getTopCandidates(accountManager: AccountManager, modelFamily: ModelFamily, model: string | null, maxCandidates: number): ManagedAccount[];
|
|
22
29
|
/**
|
|
23
30
|
* Probe accounts in parallel with first-success-wins racing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-probe.d.ts","sourceRoot":"","sources":["../../lib/parallel-probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWtD,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC7B,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,aAAa,EAAE,MAAM,GACnB,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"parallel-probe.d.ts","sourceRoot":"","sources":["../../lib/parallel-probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWtD,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC7B,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,sBAAsB,GAC5B,cAAc,EAAE,CAAC;AACpB,wBAAgB,gBAAgB,CAC/B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,aAAa,EAAE,MAAM,GACnB,cAAc,EAAE,CAAC;AAqFpB;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC9C,UAAU,EAAE,cAAc,EAAE,EAC5B,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EACrE,QAAQ,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC1C,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CA8ChC;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAKlF"}
|
|
@@ -2,21 +2,49 @@ import { createLogger } from "./logger.js";
|
|
|
2
2
|
import { getHealthTracker, getTokenTracker, } from "./rotation.js";
|
|
3
3
|
import { clearExpiredRateLimits, isRateLimitedForFamily } from "./accounts/rate-limits.js";
|
|
4
4
|
const log = createLogger("parallel-probe");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
export function getTopCandidates(accountManagerOrParams, modelFamily, model, maxCandidates) {
|
|
6
|
+
const useNamedParams = typeof modelFamily === "undefined";
|
|
7
|
+
let resolvedAccountManager;
|
|
8
|
+
let resolvedModelFamily;
|
|
9
|
+
let resolvedModel;
|
|
10
|
+
let resolvedMaxCandidates;
|
|
11
|
+
if (useNamedParams) {
|
|
12
|
+
const namedParams = accountManagerOrParams;
|
|
13
|
+
resolvedAccountManager = namedParams.accountManager;
|
|
14
|
+
resolvedModelFamily = namedParams.modelFamily;
|
|
15
|
+
resolvedModel = namedParams.model;
|
|
16
|
+
resolvedMaxCandidates = namedParams.maxCandidates;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
resolvedAccountManager = accountManagerOrParams;
|
|
20
|
+
resolvedModelFamily = modelFamily;
|
|
21
|
+
resolvedModel = model;
|
|
22
|
+
resolvedMaxCandidates = maxCandidates;
|
|
23
|
+
}
|
|
24
|
+
if (!resolvedAccountManager ||
|
|
25
|
+
typeof resolvedAccountManager.getAccountsSnapshot !== "function") {
|
|
26
|
+
throw new TypeError("getTopCandidates requires accountManager");
|
|
27
|
+
}
|
|
28
|
+
if (!resolvedModelFamily) {
|
|
29
|
+
throw new TypeError("getTopCandidates requires modelFamily");
|
|
30
|
+
}
|
|
31
|
+
if (typeof resolvedMaxCandidates !== "number" ||
|
|
32
|
+
!Number.isInteger(resolvedMaxCandidates) ||
|
|
33
|
+
resolvedMaxCandidates <= 0) {
|
|
34
|
+
throw new TypeError("getTopCandidates requires maxCandidates to be a positive integer");
|
|
35
|
+
}
|
|
36
|
+
const normalizedModelFamily = resolvedModelFamily;
|
|
37
|
+
const normalizedMaxCandidates = resolvedMaxCandidates;
|
|
38
|
+
const accounts = resolvedAccountManager.getAccountsSnapshot();
|
|
11
39
|
if (accounts.length === 0)
|
|
12
40
|
return [];
|
|
13
|
-
const quotaKey =
|
|
41
|
+
const quotaKey = resolvedModel ? `${normalizedModelFamily}:${resolvedModel}` : normalizedModelFamily;
|
|
14
42
|
const healthTracker = getHealthTracker();
|
|
15
43
|
const tokenTracker = getTokenTracker();
|
|
16
44
|
const accountsWithMetrics = [];
|
|
17
45
|
for (const account of accounts) {
|
|
18
46
|
clearExpiredRateLimits(account);
|
|
19
|
-
const isRateLimited = isRateLimitedForFamily(account,
|
|
47
|
+
const isRateLimited = isRateLimitedForFamily(account, normalizedModelFamily, resolvedModel);
|
|
20
48
|
const isCoolingDown = account.coolingDownUntil !== undefined && account.coolingDownUntil > Date.now();
|
|
21
49
|
const isAvailable = !isRateLimited && !isCoolingDown;
|
|
22
50
|
accountsWithMetrics.push({
|
|
@@ -38,7 +66,7 @@ export function getTopCandidates(accountManager, modelFamily, model, maxCandidat
|
|
|
38
66
|
return { ...a, score };
|
|
39
67
|
});
|
|
40
68
|
scored.sort((a, b) => b.score - a.score);
|
|
41
|
-
return scored.slice(0,
|
|
69
|
+
return scored.slice(0, normalizedMaxCandidates).map((s) => s.account);
|
|
42
70
|
}
|
|
43
71
|
/**
|
|
44
72
|
* Probe accounts in parallel with first-success-wins racing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-probe.js","sourceRoot":"","sources":["../../lib/parallel-probe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACN,gBAAgB,EAChB,eAAe,GAEf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE3F,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parallel-probe.js","sourceRoot":"","sources":["../../lib/parallel-probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -307,7 +307,7 @@ YOU ARE IN A DIFFERENT ENVIRONMENT. These instructions override ALL previous too
|
|
|
307
307
|
|
|
308
308
|
<tool_replacements priority="0">
|
|
309
309
|
<critical_rule priority="0">
|
|
310
|
-
apply_patch/applyPatch are Codex names, but host tool names vary by version.
|
|
310
|
+
apply_patch/applyPatch are Codex names, but host tool names vary by version.
|
|
311
311
|
- Inspect the actual tool list before editing.
|
|
312
312
|
- If edit exists: use edit for precise in-place string replacements and hashline edits.
|
|
313
313
|
- If edit is absent and apply_patch exists: use apply_patch for those precise/hashline edits in this plugin.
|
|
@@ -329,7 +329,7 @@ File Operations:
|
|
|
329
329
|
- write - Create new files (if available)
|
|
330
330
|
- edit - Modify existing files with string replacement (version-dependent)
|
|
331
331
|
- oldString must be literal text from the current file; never pass unresolved placeholders like \${TARGET_SNIPPET}
|
|
332
|
-
- apply_patch - May be the edit/patch tool name in newer host builds (version-dependent)
|
|
332
|
+
- apply_patch - May be the edit/patch tool name in newer host builds (version-dependent)
|
|
333
333
|
- hashline_read - Read lines with hashline refs (L<line>#<hash>) for deterministic edits
|
|
334
334
|
- patch - Apply diff patches (version-dependent)
|
|
335
335
|
- read - Read file contents
|