oc-codex-multi-auth 6.24.0 → 6.25.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.
- package/LICENSE +21 -21
- package/README.md +795 -793
- package/assets/icon.svg +7 -7
- package/assets/opencode-logo-ornate-dark.svg +18 -18
- package/assets/readme-hero.svg +31 -31
- package/config/README.md +197 -197
- package/config/minimal-opencode.json +14 -14
- package/config/opencode-legacy.json +1346 -1346
- package/config/opencode-modern.json +466 -466
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -42
- package/dist/index.js.map +1 -1
- package/dist/lib/accounts/persistence.d.ts +6 -6
- package/dist/lib/accounts/persistence.d.ts.map +1 -1
- package/dist/lib/accounts/persistence.js +60 -6
- package/dist/lib/accounts/persistence.js.map +1 -1
- package/dist/lib/accounts/recovery.d.ts +5 -1
- package/dist/lib/accounts/recovery.d.ts.map +1 -1
- package/dist/lib/accounts/recovery.js +26 -1
- package/dist/lib/accounts/recovery.js.map +1 -1
- package/dist/lib/accounts/state.d.ts +18 -0
- package/dist/lib/accounts/state.d.ts.map +1 -1
- package/dist/lib/accounts/state.js +26 -2
- package/dist/lib/accounts/state.js.map +1 -1
- package/dist/lib/accounts.d.ts +2 -0
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +7 -1
- package/dist/lib/accounts.js.map +1 -1
- package/dist/lib/auth/login-runner.d.ts.map +1 -1
- package/dist/lib/auth/login-runner.js +8 -0
- package/dist/lib/auth/login-runner.js.map +1 -1
- package/dist/lib/auth/plan-tier.d.ts.map +1 -1
- package/dist/lib/auth/plan-tier.js +2 -1
- package/dist/lib/auth/plan-tier.js.map +1 -1
- package/dist/lib/codex-usage.d.ts +49 -0
- package/dist/lib/codex-usage.d.ts.map +1 -1
- package/dist/lib/codex-usage.js +135 -5
- package/dist/lib/codex-usage.js.map +1 -1
- package/dist/lib/config.d.ts +11 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +12 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/context-overflow.js +10 -10
- package/dist/lib/desktop-notifications.js +6 -6
- package/dist/lib/oauth-success.js +202 -202
- package/dist/lib/opencode-v2-rpc.d.ts +4 -0
- package/dist/lib/opencode-v2-rpc.d.ts.map +1 -1
- package/dist/lib/opencode-v2-rpc.js +1 -0
- package/dist/lib/opencode-v2-rpc.js.map +1 -1
- package/dist/lib/opencode-v2-status.d.ts +1 -0
- package/dist/lib/opencode-v2-status.d.ts.map +1 -1
- package/dist/lib/opencode-v2-status.js +8 -1
- package/dist/lib/opencode-v2-status.js.map +1 -1
- package/dist/lib/opencode-v2-tui.d.ts.map +1 -1
- package/dist/lib/opencode-v2-tui.js +8 -1
- package/dist/lib/opencode-v2-tui.js.map +1 -1
- package/dist/lib/prompts/codex-opencode-bridge.js +67 -67
- package/dist/lib/prompts/codex.js +75 -75
- package/dist/lib/schemas.d.ts +11 -0
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +4 -0
- package/dist/lib/schemas.js.map +1 -1
- package/dist/lib/storage/load-save.d.ts.map +1 -1
- package/dist/lib/storage/load-save.js +22 -20
- package/dist/lib/storage/load-save.js.map +1 -1
- package/dist/lib/tui-quota-cache.d.ts +7 -0
- package/dist/lib/tui-quota-cache.d.ts.map +1 -1
- package/dist/lib/tui-quota-cache.js +2 -1
- package/dist/lib/tui-quota-cache.js.map +1 -1
- package/dist/lib/tui-quota-overview.d.ts.map +1 -1
- package/dist/lib/tui-quota-overview.js +11 -2
- package/dist/lib/tui-quota-overview.js.map +1 -1
- package/package.json +157 -157
- package/scripts/audit-dev-allowlist.js +114 -114
- package/scripts/clean-dist.js +27 -27
- package/scripts/copy-oauth-success.js +47 -47
- package/scripts/install-oc-codex-multi-auth-core.js +2661 -2092
- package/scripts/install-oc-codex-multi-auth.js +37 -37
- package/scripts/test-all-models.sh +260 -260
- package/scripts/validate-model-map.sh +97 -97
|
@@ -1,206 +1,206 @@
|
|
|
1
1
|
export function renderOAuthSuccessHtml(styleNonce) {
|
|
2
|
-
return `<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="utf-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
-
<meta name="color-scheme" content="dark">
|
|
8
|
-
<title>OpenCode - Authentication complete</title>
|
|
9
|
-
<style nonce="${styleNonce}">
|
|
10
|
-
:root {
|
|
11
|
-
color-scheme: dark;
|
|
12
|
-
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
|
13
|
-
font-synthesis: none;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
* {
|
|
17
|
-
box-sizing: border-box;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
body {
|
|
21
|
-
min-width: 320px;
|
|
22
|
-
min-height: 100vh;
|
|
23
|
-
margin: 0;
|
|
24
|
-
display: grid;
|
|
25
|
-
place-items: center;
|
|
26
|
-
padding: 32px 20px;
|
|
27
|
-
background:
|
|
28
|
-
radial-gradient(circle at 50% 0%, rgba(42, 195, 126, 0.12), transparent 38rem),
|
|
29
|
-
#080b0a;
|
|
30
|
-
color: #f2f5f3;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
main {
|
|
34
|
-
width: min(100%, 540px);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.brand {
|
|
38
|
-
display: flex;
|
|
39
|
-
margin: 0 0 24px 0;
|
|
40
|
-
justify-content: center;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.brand svg {
|
|
44
|
-
height: 22px;
|
|
45
|
-
width: auto;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.card {
|
|
49
|
-
position: relative;
|
|
50
|
-
overflow: hidden;
|
|
51
|
-
padding: 44px;
|
|
52
|
-
border: 1px solid #26312c;
|
|
53
|
-
border-radius: 20px;
|
|
54
|
-
background: linear-gradient(145deg, rgba(22, 28, 25, 0.98), rgba(13, 17, 15, 0.98));
|
|
55
|
-
box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.card::before {
|
|
59
|
-
content: "";
|
|
60
|
-
position: absolute;
|
|
61
|
-
inset: 0 0 auto;
|
|
62
|
-
height: 1px;
|
|
63
|
-
background: linear-gradient(90deg, transparent, rgba(86, 224, 157, 0.7), transparent);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.success-icon {
|
|
67
|
-
width: 58px;
|
|
68
|
-
height: 58px;
|
|
69
|
-
display: grid;
|
|
70
|
-
place-items: center;
|
|
71
|
-
margin-bottom: 28px;
|
|
72
|
-
border: 1px solid rgba(86, 224, 157, 0.45);
|
|
73
|
-
border-radius: 16px;
|
|
74
|
-
background: rgba(42, 195, 126, 0.1);
|
|
75
|
-
color: #56e09d;
|
|
76
|
-
box-shadow: inset 0 0 28px rgba(42, 195, 126, 0.08);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.success-icon svg {
|
|
80
|
-
width: 28px;
|
|
81
|
-
height: 28px;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
h1 {
|
|
85
|
-
margin: 0;
|
|
86
|
-
font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
87
|
-
font-size: clamp(28px, 6vw, 38px);
|
|
88
|
-
font-weight: 650;
|
|
89
|
-
letter-spacing: -0.035em;
|
|
90
|
-
line-height: 1.12;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.lead {
|
|
94
|
-
margin: 16px 0 0;
|
|
95
|
-
color: #aeb8b3;
|
|
96
|
-
font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
97
|
-
font-size: 17px;
|
|
98
|
-
line-height: 1.6;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.status {
|
|
102
|
-
display: flex;
|
|
103
|
-
align-items: center;
|
|
104
|
-
gap: 12px;
|
|
105
|
-
margin-top: 30px;
|
|
106
|
-
padding: 15px 16px;
|
|
107
|
-
border: 1px solid #29362f;
|
|
108
|
-
border-radius: 12px;
|
|
109
|
-
background: #0b100d;
|
|
110
|
-
color: #c9d2cd;
|
|
111
|
-
font-size: 13px;
|
|
112
|
-
line-height: 1.5;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.status-dot {
|
|
116
|
-
width: 8px;
|
|
117
|
-
height: 8px;
|
|
118
|
-
flex: 0 0 auto;
|
|
119
|
-
border-radius: 50%;
|
|
120
|
-
background: #56e09d;
|
|
121
|
-
box-shadow: 0 0 0 4px rgba(86, 224, 157, 0.1);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.next-step {
|
|
125
|
-
margin: 24px 0 0;
|
|
126
|
-
color: #7f8c85;
|
|
127
|
-
font-size: 13px;
|
|
128
|
-
line-height: 1.6;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.next-step strong {
|
|
132
|
-
color: #b9c3be;
|
|
133
|
-
font-weight: 600;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
@media (max-width: 520px) {
|
|
137
|
-
body {
|
|
138
|
-
padding: 24px 16px;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.card {
|
|
142
|
-
padding: 32px 24px;
|
|
143
|
-
border-radius: 16px;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.success-icon {
|
|
147
|
-
width: 52px;
|
|
148
|
-
height: 52px;
|
|
149
|
-
margin-bottom: 24px;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
@media (prefers-reduced-motion: reduce) {
|
|
154
|
-
*, *::before, *::after {
|
|
155
|
-
scroll-behavior: auto !important;
|
|
156
|
-
animation-duration: 0.01ms !important;
|
|
157
|
-
animation-iteration-count: 1 !important;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
</style>
|
|
161
|
-
</head>
|
|
162
|
-
<body>
|
|
163
|
-
<main>
|
|
164
|
-
<div class="brand" aria-label="OpenCode">
|
|
165
|
-
<svg width="234" height="42" viewBox="0 0 234 42" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
166
|
-
<path d="M18 30H6V18H18V30Z" fill="#4B4646"/>
|
|
167
|
-
<path d="M18 12H6V30H18V12ZM24 36H0V6H24V36Z" fill="#B7B1B1"/>
|
|
168
|
-
<path d="M48 30H36V18H48V30Z" fill="#4B4646"/>
|
|
169
|
-
<path d="M36 30H48V12H36V30ZM54 36H36V42H30V6H54V36Z" fill="#B7B1B1"/>
|
|
170
|
-
<path d="M84 24V30H66V24H84Z" fill="#4B4646"/>
|
|
171
|
-
<path d="M84 24H66V30H84V36H60V6H84V24ZM66 18H78V12H66V18Z" fill="#B7B1B1"/>
|
|
172
|
-
<path d="M108 36H96V18H108V36Z" fill="#4B4646"/>
|
|
173
|
-
<path d="M108 12H96V36H90V6H108V12ZM114 36H108V12H114V36Z" fill="#B7B1B1"/>
|
|
174
|
-
<path d="M144 30H126V18H144V30Z" fill="#4B4646"/>
|
|
175
|
-
<path d="M144 12H126V30H144V36H120V6H144V12Z" fill="#F1ECEC"/>
|
|
176
|
-
<path d="M168 30H156V18H168V30Z" fill="#4B4646"/>
|
|
177
|
-
<path d="M168 12H156V30H168V12ZM174 36H150V6H174V36Z" fill="#F1ECEC"/>
|
|
178
|
-
<path d="M198 30H186V18H198V30Z" fill="#4B4646"/>
|
|
179
|
-
<path d="M198 12H186V30H198V12ZM204 36H180V6H198V0H204V36Z" fill="#F1ECEC"/>
|
|
180
|
-
<path d="M234 24V30H216V24H234Z" fill="#4B4646"/>
|
|
181
|
-
<path d="M216 12V18H228V12H216ZM234 24H216V30H234V36H210V6H234V24Z" fill="#F1ECEC"/>
|
|
182
|
-
</svg>
|
|
183
|
-
</div>
|
|
184
|
-
|
|
185
|
-
<section class="card" aria-labelledby="success-title">
|
|
186
|
-
<div class="success-icon" aria-hidden="true">
|
|
187
|
-
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
188
|
-
<path d="M5 12.5 9.25 17 19 7" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round"/>
|
|
189
|
-
</svg>
|
|
190
|
-
</div>
|
|
191
|
-
|
|
192
|
-
<h1 id="success-title">Authentication complete</h1>
|
|
193
|
-
<p class="lead">Your OpenAI account is connected securely and ready to use with OpenCode.</p>
|
|
194
|
-
|
|
195
|
-
<div class="status" role="status">
|
|
196
|
-
<span class="status-dot" aria-hidden="true"></span>
|
|
197
|
-
<span>Credentials encrypted and stored</span>
|
|
198
|
-
</div>
|
|
199
|
-
|
|
200
|
-
<p class="next-step"><strong>You can close this tab.</strong> Return to your terminal to continue.</p>
|
|
201
|
-
</section>
|
|
202
|
-
</main>
|
|
203
|
-
</body>
|
|
2
|
+
return `<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
|
+
<meta name="color-scheme" content="dark">
|
|
8
|
+
<title>OpenCode - Authentication complete</title>
|
|
9
|
+
<style nonce="${styleNonce}">
|
|
10
|
+
:root {
|
|
11
|
+
color-scheme: dark;
|
|
12
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
|
13
|
+
font-synthesis: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
* {
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
body {
|
|
21
|
+
min-width: 320px;
|
|
22
|
+
min-height: 100vh;
|
|
23
|
+
margin: 0;
|
|
24
|
+
display: grid;
|
|
25
|
+
place-items: center;
|
|
26
|
+
padding: 32px 20px;
|
|
27
|
+
background:
|
|
28
|
+
radial-gradient(circle at 50% 0%, rgba(42, 195, 126, 0.12), transparent 38rem),
|
|
29
|
+
#080b0a;
|
|
30
|
+
color: #f2f5f3;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
main {
|
|
34
|
+
width: min(100%, 540px);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.brand {
|
|
38
|
+
display: flex;
|
|
39
|
+
margin: 0 0 24px 0;
|
|
40
|
+
justify-content: center;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.brand svg {
|
|
44
|
+
height: 22px;
|
|
45
|
+
width: auto;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.card {
|
|
49
|
+
position: relative;
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
padding: 44px;
|
|
52
|
+
border: 1px solid #26312c;
|
|
53
|
+
border-radius: 20px;
|
|
54
|
+
background: linear-gradient(145deg, rgba(22, 28, 25, 0.98), rgba(13, 17, 15, 0.98));
|
|
55
|
+
box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.card::before {
|
|
59
|
+
content: "";
|
|
60
|
+
position: absolute;
|
|
61
|
+
inset: 0 0 auto;
|
|
62
|
+
height: 1px;
|
|
63
|
+
background: linear-gradient(90deg, transparent, rgba(86, 224, 157, 0.7), transparent);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.success-icon {
|
|
67
|
+
width: 58px;
|
|
68
|
+
height: 58px;
|
|
69
|
+
display: grid;
|
|
70
|
+
place-items: center;
|
|
71
|
+
margin-bottom: 28px;
|
|
72
|
+
border: 1px solid rgba(86, 224, 157, 0.45);
|
|
73
|
+
border-radius: 16px;
|
|
74
|
+
background: rgba(42, 195, 126, 0.1);
|
|
75
|
+
color: #56e09d;
|
|
76
|
+
box-shadow: inset 0 0 28px rgba(42, 195, 126, 0.08);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.success-icon svg {
|
|
80
|
+
width: 28px;
|
|
81
|
+
height: 28px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
h1 {
|
|
85
|
+
margin: 0;
|
|
86
|
+
font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
87
|
+
font-size: clamp(28px, 6vw, 38px);
|
|
88
|
+
font-weight: 650;
|
|
89
|
+
letter-spacing: -0.035em;
|
|
90
|
+
line-height: 1.12;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.lead {
|
|
94
|
+
margin: 16px 0 0;
|
|
95
|
+
color: #aeb8b3;
|
|
96
|
+
font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
97
|
+
font-size: 17px;
|
|
98
|
+
line-height: 1.6;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.status {
|
|
102
|
+
display: flex;
|
|
103
|
+
align-items: center;
|
|
104
|
+
gap: 12px;
|
|
105
|
+
margin-top: 30px;
|
|
106
|
+
padding: 15px 16px;
|
|
107
|
+
border: 1px solid #29362f;
|
|
108
|
+
border-radius: 12px;
|
|
109
|
+
background: #0b100d;
|
|
110
|
+
color: #c9d2cd;
|
|
111
|
+
font-size: 13px;
|
|
112
|
+
line-height: 1.5;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.status-dot {
|
|
116
|
+
width: 8px;
|
|
117
|
+
height: 8px;
|
|
118
|
+
flex: 0 0 auto;
|
|
119
|
+
border-radius: 50%;
|
|
120
|
+
background: #56e09d;
|
|
121
|
+
box-shadow: 0 0 0 4px rgba(86, 224, 157, 0.1);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.next-step {
|
|
125
|
+
margin: 24px 0 0;
|
|
126
|
+
color: #7f8c85;
|
|
127
|
+
font-size: 13px;
|
|
128
|
+
line-height: 1.6;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.next-step strong {
|
|
132
|
+
color: #b9c3be;
|
|
133
|
+
font-weight: 600;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@media (max-width: 520px) {
|
|
137
|
+
body {
|
|
138
|
+
padding: 24px 16px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.card {
|
|
142
|
+
padding: 32px 24px;
|
|
143
|
+
border-radius: 16px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.success-icon {
|
|
147
|
+
width: 52px;
|
|
148
|
+
height: 52px;
|
|
149
|
+
margin-bottom: 24px;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
@media (prefers-reduced-motion: reduce) {
|
|
154
|
+
*, *::before, *::after {
|
|
155
|
+
scroll-behavior: auto !important;
|
|
156
|
+
animation-duration: 0.01ms !important;
|
|
157
|
+
animation-iteration-count: 1 !important;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
</style>
|
|
161
|
+
</head>
|
|
162
|
+
<body>
|
|
163
|
+
<main>
|
|
164
|
+
<div class="brand" aria-label="OpenCode">
|
|
165
|
+
<svg width="234" height="42" viewBox="0 0 234 42" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
166
|
+
<path d="M18 30H6V18H18V30Z" fill="#4B4646"/>
|
|
167
|
+
<path d="M18 12H6V30H18V12ZM24 36H0V6H24V36Z" fill="#B7B1B1"/>
|
|
168
|
+
<path d="M48 30H36V18H48V30Z" fill="#4B4646"/>
|
|
169
|
+
<path d="M36 30H48V12H36V30ZM54 36H36V42H30V6H54V36Z" fill="#B7B1B1"/>
|
|
170
|
+
<path d="M84 24V30H66V24H84Z" fill="#4B4646"/>
|
|
171
|
+
<path d="M84 24H66V30H84V36H60V6H84V24ZM66 18H78V12H66V18Z" fill="#B7B1B1"/>
|
|
172
|
+
<path d="M108 36H96V18H108V36Z" fill="#4B4646"/>
|
|
173
|
+
<path d="M108 12H96V36H90V6H108V12ZM114 36H108V12H114V36Z" fill="#B7B1B1"/>
|
|
174
|
+
<path d="M144 30H126V18H144V30Z" fill="#4B4646"/>
|
|
175
|
+
<path d="M144 12H126V30H144V36H120V6H144V12Z" fill="#F1ECEC"/>
|
|
176
|
+
<path d="M168 30H156V18H168V30Z" fill="#4B4646"/>
|
|
177
|
+
<path d="M168 12H156V30H168V12ZM174 36H150V6H174V36Z" fill="#F1ECEC"/>
|
|
178
|
+
<path d="M198 30H186V18H198V30Z" fill="#4B4646"/>
|
|
179
|
+
<path d="M198 12H186V30H198V12ZM204 36H180V6H198V0H204V36Z" fill="#F1ECEC"/>
|
|
180
|
+
<path d="M234 24V30H216V24H234Z" fill="#4B4646"/>
|
|
181
|
+
<path d="M216 12V18H228V12H216ZM234 24H216V30H234V36H210V6H234V24Z" fill="#F1ECEC"/>
|
|
182
|
+
</svg>
|
|
183
|
+
</div>
|
|
184
|
+
|
|
185
|
+
<section class="card" aria-labelledby="success-title">
|
|
186
|
+
<div class="success-icon" aria-hidden="true">
|
|
187
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
188
|
+
<path d="M5 12.5 9.25 17 19 7" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round"/>
|
|
189
|
+
</svg>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
<h1 id="success-title">Authentication complete</h1>
|
|
193
|
+
<p class="lead">Your OpenAI account is connected securely and ready to use with OpenCode.</p>
|
|
194
|
+
|
|
195
|
+
<div class="status" role="status">
|
|
196
|
+
<span class="status-dot" aria-hidden="true"></span>
|
|
197
|
+
<span>Credentials encrypted and stored</span>
|
|
198
|
+
</div>
|
|
199
|
+
|
|
200
|
+
<p class="next-step"><strong>You can close this tab.</strong> Return to your terminal to continue.</p>
|
|
201
|
+
</section>
|
|
202
|
+
</main>
|
|
203
|
+
</body>
|
|
204
204
|
</html>`;
|
|
205
205
|
}
|
|
206
206
|
// Retained for the standalone HTML artifact generated by the package build.
|
|
@@ -13,6 +13,10 @@ export declare const CodexStatusRpc: {
|
|
|
13
13
|
always: "always";
|
|
14
14
|
"codex-models": "codex-models";
|
|
15
15
|
}>;
|
|
16
|
+
accountStorage: z.ZodEnum<{
|
|
17
|
+
global: "global";
|
|
18
|
+
project: "project";
|
|
19
|
+
}>;
|
|
16
20
|
accounts: z.ZodArray<z.ZodObject<{
|
|
17
21
|
index: z.ZodNumber;
|
|
18
22
|
label: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-v2-rpc.d.ts","sourceRoot":"","sources":["../../lib/opencode-v2-rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"opencode-v2-rpc.d.ts","sourceRoot":"","sources":["../../lib/opencode-v2-rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAazB,CAAC"}
|
|
@@ -7,6 +7,7 @@ export const CodexStatusRpc = Rpc.define({
|
|
|
7
7
|
input: z.object({ width: z.number().int().min(1).max(1000) }),
|
|
8
8
|
output: z.object({
|
|
9
9
|
text: z.string(), details: z.string(), showFor: z.enum(["always", "codex-models"]),
|
|
10
|
+
accountStorage: z.enum(["project", "global"]),
|
|
10
11
|
accounts: z.array(z.object({ index: z.number().int(), label: z.string(), active: z.boolean(), enabled: z.boolean() })),
|
|
11
12
|
}),
|
|
12
13
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-v2-rpc.js","sourceRoot":"","sources":["../../lib/opencode-v2-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,qBAAqB;IACzB,OAAO,EAAE;QACR,MAAM,EAAE;YACP,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAClF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aACtH,CAAC;SACF;KACD;IACD,MAAM,EAAE,EAAE;CACV,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"opencode-v2-rpc.js","sourceRoot":"","sources":["../../lib/opencode-v2-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,qBAAqB;IACzB,OAAO,EAAE;QACR,MAAM,EAAE;YACP,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAClF,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC7C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;aACtH,CAAC;SACF;KACD;IACD,MAAM,EAAE,EAAE;CACV,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-v2-status.d.ts","sourceRoot":"","sources":["../../lib/opencode-v2-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opencode-v2-status.d.ts","sourceRoot":"","sources":["../../lib/opencode-v2-status.ts"],"names":[],"mappings":"AAeA,yDAAyD;AACzD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAwBD,4EAA4E;AAC5E,wBAAsB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;GAwD9D"}
|
|
@@ -4,6 +4,7 @@ import { readTuiQuotaSnapshot, readTuiQuotaOverviewSnapshot, isFreshTuiQuotaSnap
|
|
|
4
4
|
import { formatPromptStatusText, formatQuotaDetailsText, formatQuotaOverviewStatusLines, formatQuotaResetsStatusLines } from "./tui-status.js";
|
|
5
5
|
import { dirname, join } from "node:path";
|
|
6
6
|
import { getStoragePath, loadAccounts } from "./storage.js";
|
|
7
|
+
import { getCurrentProjectRoot } from "./storage/state.js";
|
|
7
8
|
import { createUsageAccountFingerprint } from "./codex-usage.js";
|
|
8
9
|
import { resolveDisplayEmail } from "./account-display.js";
|
|
9
10
|
/** Same cadence as the V1 prompt status poll. */
|
|
@@ -43,6 +44,11 @@ export async function readV2Status({ width }) {
|
|
|
43
44
|
const maskEmail = getCodexTuiMaskEmail(config);
|
|
44
45
|
const snapshot = await readTuiQuotaSnapshot();
|
|
45
46
|
const pool = await loadAccounts();
|
|
47
|
+
// The headers cache is global: project pools seeded from the same accounts
|
|
48
|
+
// share fingerprints, so it cannot attribute a request to this project.
|
|
49
|
+
const servingIndex = !getCurrentProjectRoot() && snapshot?.source === "headers" && isFreshTuiQuotaSnapshot(snapshot)
|
|
50
|
+
? pool?.accounts.findIndex((account) => createUsageAccountFingerprint(account) === snapshot.fingerprint)
|
|
51
|
+
: undefined;
|
|
46
52
|
const owned = snapshot && pool?.accounts.some((account) => createUsageAccountFingerprint(account) === snapshot.fingerprint);
|
|
47
53
|
let quota = snapshot && owned
|
|
48
54
|
? { ...snapshot, type: "ready", stale: !isFreshTuiQuotaSnapshot(snapshot) }
|
|
@@ -78,10 +84,11 @@ export async function readV2Status({ width }) {
|
|
|
78
84
|
: "";
|
|
79
85
|
return {
|
|
80
86
|
text,
|
|
87
|
+
accountStorage: getCurrentProjectRoot() ? "project" : "global",
|
|
81
88
|
accounts: (pool?.accounts ?? []).map((account, index) => ({
|
|
82
89
|
index: index + 1,
|
|
83
90
|
label: account.accountLabel?.trim() || resolveDisplayEmail(account.email, maskEmail) || `Account ${index + 1}`,
|
|
84
|
-
active: index === pool?.activeIndex,
|
|
91
|
+
active: index === (servingIndex !== undefined && servingIndex >= 0 ? servingIndex : pool?.activeIndex),
|
|
85
92
|
enabled: account.enabled !== false,
|
|
86
93
|
})),
|
|
87
94
|
details: formatQuotaDetailsText(quota, Date.now(), { quotaDisplay, maskEmail: getCodexTuiMaskEmailInQuotaDetails(config) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-v2-status.js","sourceRoot":"","sources":["../../lib/opencode-v2-status.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"opencode-v2-status.js","sourceRoot":"","sources":["../../lib/opencode-v2-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kCAAkC,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1I,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAClJ,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,4BAA4B,EAA2B,MAAM,iBAAiB,CAAC;AACxK,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,iDAAiD;AACjD,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkD,CAAC;AAEtF,yDAAyD;AACzD,MAAM,UAAU,qBAAqB;IACpC,mBAAmB,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,4BAA4B,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;QAClC,OAAO,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvF,CAAC;IACD,MAAM,KAAK,GAA2C,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACvF,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,KAAK,CAAC,QAAQ,GAAG,MAAM,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAE,KAAK,EAAqB;IAC9D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,YAAY,GAAG,CAAC,qBAAqB,EAAE,IAAI,QAAQ,EAAE,MAAM,KAAK,SAAS,IAAI,uBAAuB,CAAC,QAAQ,CAAC;QACnH,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC;QACxG,CAAC,CAAC,SAAS,CAAC;IACb,MAAM,KAAK,GAAG,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5H,IAAI,KAAK,GAAuB,QAAQ,IAAI,KAAK;QAChD,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE;QAC3E,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;QAC7F,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,6BAA6B,CAAC,CAAC;QACxF,CAAC,CAAC,IAAI,CAAC;IACR,MAAM,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5H,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACvB,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC;YACvF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YACrG,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY;YAClG,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,CAAC,MAAuC,EAAU,EAAE;QACxE,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,8BAA8B,CAAC;QACnG,OAAO,MAAM,CAAC;YACb,QAAQ,EAAE,uBAAuB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI;YAC/F,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE;SACjF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;IACF,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;QAC5E,CAAC,CAAC,EAAE,CAAC;IACN,OAAO;QACN,IAAI;QACJ,cAAc,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,QAAiB;QAChF,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACzD,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,WAAW,KAAK,GAAG,CAAC,EAAE;YAC9G,MAAM,EAAE,KAAK,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC;YACtG,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK;SAClC,CAAC,CAAC;QACH,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,kCAAkC,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3H,OAAO,EAAE,MAAM,CAAC,OAAO;KACvB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-v2-tui.d.ts","sourceRoot":"","sources":["../../lib/opencode-v2-tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKnD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"opencode-v2-tui.d.ts","sourceRoot":"","sources":["../../lib/opencode-v2-tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKnD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,cAsGjD"}
|
|
@@ -5,6 +5,7 @@ import { CodexStatusRpc } from "./opencode-v2-rpc.js";
|
|
|
5
5
|
export function setupV2Tui(context) {
|
|
6
6
|
const [text, setText] = createSignal("");
|
|
7
7
|
const [accounts, setAccounts] = createSignal("Loading accounts…");
|
|
8
|
+
const [accountStorage, setAccountStorage] = createSignal("unknown");
|
|
8
9
|
const [showFor, setShowFor] = createSignal("always");
|
|
9
10
|
const disposers = [context.ui.slot({
|
|
10
11
|
append: "app",
|
|
@@ -26,12 +27,14 @@ export function setupV2Tui(context) {
|
|
|
26
27
|
return;
|
|
27
28
|
setText(result.text);
|
|
28
29
|
setShowFor(result.showFor);
|
|
30
|
+
setAccountStorage(result.accountStorage);
|
|
29
31
|
setAccounts(result.accounts.length ? result.accounts.map((account) => `${account.active ? "●" : "○"} ${account.index}. ${account.label}${account.enabled ? "" : " (disabled)"}`).join("\n") : "No Codex accounts in this pool.");
|
|
30
32
|
details = result.details;
|
|
31
33
|
}
|
|
32
34
|
catch {
|
|
33
35
|
if (!disposed) {
|
|
34
36
|
setText("limits ?");
|
|
37
|
+
setAccountStorage("unknown");
|
|
35
38
|
setAccounts("Accounts unavailable — retry shortly.");
|
|
36
39
|
details = "Quota unavailable — retry shortly.";
|
|
37
40
|
}
|
|
@@ -57,7 +60,11 @@ export function setupV2Tui(context) {
|
|
|
57
60
|
await refresh();
|
|
58
61
|
await context.ui.dialog.alert({
|
|
59
62
|
title: "Codex accounts",
|
|
60
|
-
message: `${accounts()}\n\
|
|
63
|
+
message: `${accounts()}\n\n${accountStorage() === "project"
|
|
64
|
+
? "Account storage: this project uses its own pool. If it has no account file yet, an existing global pool is used to seed it; later changes stay in this project."
|
|
65
|
+
: accountStorage() === "global"
|
|
66
|
+
? "Account storage: the global pool is shared across projects."
|
|
67
|
+
: "Account storage: unavailable — retry shortly to check which pool is in use."}\nTo change this, set "perProjectAccounts" to true (per-project) or false (global) in ~/.opencode/openai-codex-auth-config.json, then restart the OpenCode service and TUI. CODEX_AUTH_PER_PROJECT_ACCOUNTS overrides this setting: 1 enables per-project storage; 0 disables it.\n\nAdd an account: run opencode auth login${accountStorage() === "project" ? " from this project directory" : ""}, then select OpenAI → Codex OAuth (Add account — ChatGPT Plus/Pro). Repeat for each account, using a private browser window to choose a different login.`,
|
|
61
68
|
});
|
|
62
69
|
},
|
|
63
70
|
}],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-v2-tui.js","sourceRoot":"","sources":["../../lib/opencode-v2-tui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,OAAuB;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;YAClC,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,GAAG,EAAE;gBACZ,IAAI,OAAO,GAAG,mBAAmB,CAAC;gBAClC,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;oBAC1B,IAAI,OAAO,IAAI,QAAQ;wBAAE,OAAO;oBAChC,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,CAAC;wBACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;4BACpG,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;yBACxF,CAAC,CAAC;wBACH,IAAI,QAAQ;4BAAE,OAAO;wBACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACrB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC3B,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACpE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CACzG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;wBAClD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC;wBACR,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACf,OAAO,CAAC,UAAU,CAAC,CAAC;4BACpB,WAAW,CAAC,uCAAuC,CAAC,CAAC;4BACrD,OAAO,GAAG,oCAAoC,CAAC;wBAChD,CAAC;oBACF,CAAC;4BAAS,CAAC;wBACV,OAAO,GAAG,KAAK,CAAC;oBACjB,CAAC;gBACF,CAAC,CAAC;gBACF,KAAK,OAAO,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC3B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC;4BACV,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI;4BACtF,KAAK,CAAC,GAAG;gCACR,MAAM,OAAO,EAAE,CAAC;gCAChB,MAAM,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;4BAC3E,CAAC;yBACD,EAAE;4BACF,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI;4BAC5E,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;4BACjC,KAAK,CAAC,GAAG;gCACR,MAAM,OAAO,EAAE,CAAC;gCAChB,MAAM,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;oCAC7B,KAAK,EAAE,gBAAgB;oCACvB,OAAO,EAAE,GAAG,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"opencode-v2-tui.js","sourceRoot":"","sources":["../../lib/opencode-v2-tui.ts"],"names":[],"mappings":"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"}
|