oc-codex-multi-auth 6.22.0 → 6.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +729 -729
  3. package/assets/icon.svg +7 -7
  4. package/assets/opencode-logo-ornate-dark.svg +18 -18
  5. package/assets/readme-hero.svg +31 -31
  6. package/config/README.md +197 -177
  7. package/config/minimal-opencode.json +14 -14
  8. package/config/opencode-legacy.json +1346 -1496
  9. package/config/opencode-modern.json +466 -555
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -4
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/accounts/warm-request.d.ts.map +1 -1
  14. package/dist/lib/accounts/warm-request.js +9 -11
  15. package/dist/lib/accounts/warm-request.js.map +1 -1
  16. package/dist/lib/constants.d.ts +13 -0
  17. package/dist/lib/constants.d.ts.map +1 -1
  18. package/dist/lib/constants.js +13 -0
  19. package/dist/lib/constants.js.map +1 -1
  20. package/dist/lib/context-overflow.js +10 -10
  21. package/dist/lib/desktop-notifications.js +6 -6
  22. package/dist/lib/oauth-success.js +202 -202
  23. package/dist/lib/prompts/codex-opencode-bridge.js +67 -67
  24. package/dist/lib/prompts/codex.d.ts +12 -2
  25. package/dist/lib/prompts/codex.d.ts.map +1 -1
  26. package/dist/lib/prompts/codex.js +122 -91
  27. package/dist/lib/prompts/codex.js.map +1 -1
  28. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  29. package/dist/lib/request/fetch-helpers.js +84 -50
  30. package/dist/lib/request/fetch-helpers.js.map +1 -1
  31. package/dist/lib/request/helpers/model-map.d.ts +10 -0
  32. package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
  33. package/dist/lib/request/helpers/model-map.js +39 -11
  34. package/dist/lib/request/helpers/model-map.js.map +1 -1
  35. package/dist/lib/request/helpers/responses-lite.d.ts.map +1 -1
  36. package/dist/lib/request/helpers/responses-lite.js +4 -1
  37. package/dist/lib/request/helpers/responses-lite.js.map +1 -1
  38. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  39. package/dist/lib/request/request-transformer.js +37 -15
  40. package/dist/lib/request/request-transformer.js.map +1 -1
  41. package/dist/lib/schemas.d.ts +6 -0
  42. package/dist/lib/schemas.d.ts.map +1 -1
  43. package/package.json +155 -155
  44. package/scripts/audit-dev-allowlist.js +114 -114
  45. package/scripts/clean-dist.js +27 -27
  46. package/scripts/copy-oauth-success.js +47 -47
  47. package/scripts/install-oc-codex-multi-auth-core.js +2016 -2003
  48. package/scripts/install-oc-codex-multi-auth.js +37 -37
  49. package/scripts/test-all-models.sh +260 -260
  50. package/scripts/validate-model-map.sh +97 -97
@@ -1 +1 @@
1
- {"version":3,"file":"warm-request.d.ts","sourceRoot":"","sources":["../../../lib/accounts/warm-request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAeH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAqB/C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAkC3C,MAAM,WAAW,iBAAiB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAkCnF;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAuGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,iBAAiB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAwC5B"}
1
+ {"version":3,"file":"warm-request.d.ts","sourceRoot":"","sources":["../../../lib/accounts/warm-request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAeH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmB/C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAkC3C,MAAM,WAAW,iBAAiB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAkCnF;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAuGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,iBAAiB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAwC5B"}
@@ -17,7 +17,7 @@ import { CODEX_BASE_URL } from "../constants.js";
17
17
  import { createCodexHeaders, getUnsupportedCodexModelInfo, resolveUnsupportedCodexFallbackModel, DEFAULT_UNSUPPORTED_CODEX_FALLBACK_CHAIN, } from "../request/fetch-helpers.js";
18
18
  import { getReasoningConfig } from "../request/request-transformer.js";
19
19
  import { shapeBodyForModel } from "../request/helpers/responses-lite.js";
20
- import { GPT_55_MODEL_ID } from "../request/helpers/model-map.js";
20
+ import { GPT_6_LUNA_MODEL_ID } from "../request/helpers/model-map.js";
21
21
  import { sanitizeCodexApiErrorMessage } from "../codex-usage.js";
22
22
  import { getCodexInstructions } from "../prompts/codex.js";
23
23
  import { parseRateLimitReason } from "./rate-limits.js";
@@ -26,18 +26,16 @@ const log = createLogger("warm-request");
26
26
  /**
27
27
  * Model used for the warm ping.
28
28
  *
29
- * GPT-5.5 is the generally-available anchor the shared fallback chain degrades
30
- * *toward* (every 5.6 preview tier lands on it), and it ships in the installer's
31
- * model catalog. The previous entry point, `gpt-5.4`, was dropped from that
32
- * catalog and is removed from user config as a stale key, so it is the weaker
33
- * anchor to start from.
29
+ * GPT-6 Luna: listed for every plan in the Codex catalog, and the cheapest
30
+ * general tier. It replaced GPT-5.5, which OpenAI's Codex model docs retire
31
+ * from Codex with ChatGPT sign-in on 2026-10-14; an anchor that stops working
32
+ * would turn every warm ping into a fallback walk. An account outside the
33
+ * GPT-6 rollout degrades onto gpt-5.6-luna through the shared chain.
34
34
  *
35
- * Note this was *not* the cause of the `HTTP 400` in #210 — that was the missing
36
- * request content type, fixed in `attemptWarm`. The error body which would have
37
- * shown it was read but discarded, so warming reported a bare `HTTP 400` and the
38
- * retired model looked like the likeliest explanation.
35
+ * The HTTP 400 in #210 was the missing request content type, fixed in
36
+ * `attemptWarm`, not the choice of model.
39
37
  */
40
- const WARM_MODEL = GPT_55_MODEL_ID;
38
+ const WARM_MODEL = GPT_6_LUNA_MODEL_ID;
41
39
  /**
42
40
  * Absolute ceiling on warm attempts, independent of the chain's shape.
43
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"warm-request.js","sourceRoot":"","sources":["../../../lib/accounts/warm-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warm-request.js","sourceRoot":"","sources":["../../../lib/accounts/warm-request.ts"],"names":[],"mappings":"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"}
@@ -90,4 +90,17 @@ export declare const ACCOUNT_LIMITS: {
90
90
  /** Number of consecutive auth failures before auto-removing account */
91
91
  readonly MAX_AUTH_FAILURES_BEFORE_REMOVAL: 3;
92
92
  };
93
+ /**
94
+ * Cap on quota-exhausted model hops within one request (index.ts).
95
+ *
96
+ * The attempted set already stops a request revisiting a model; this bounds
97
+ * total hops even under a cyclic custom chain. It must be at least the longest
98
+ * DEFAULT_UNSUPPORTED_CODEX_FALLBACK_CHAIN row (gpt-6-astra's, 6 targets), or a
99
+ * request whose models are blocked one after another stops before reaching the
100
+ * tail of its own default chain. A hop only happens onto a model some account
101
+ * can serve right now, so a larger cap costs nothing when nothing is usable.
102
+ * Kept here rather than in fetch-helpers because test/index.test.ts replaces
103
+ * that module with a factory mock, which would read a new export as undefined.
104
+ */
105
+ export declare const MAX_QUOTA_FALLBACK_SWITCHES = 6;
93
106
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kFAAkF;AAClF,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,uDAAuD;AACvD,eAAO,MAAM,WAAW,wBAAe,CAAC;AAExC,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AACtE,eAAO,MAAM,0BAA0B,8CAA8C,CAAC;AACtF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AACtF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AAEtF,uCAAuC;AACvC,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,gEAAgE;AAChE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,yEAAyE;AACzE,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,8BAA8B;AAC9B,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAEX,oCAAoC;AACpC,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX,wBAAwB;AACxB,eAAO,MAAM,SAAS;;;CAGZ,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,cAAc,EAAG,6BAAsC,CAAC;AAErE,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,EAAG,gCAAyC,CAAC;AAEhF,qBAAqB;AACrB,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,qCAAqC;AACrC,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,iCAAiC;AACjC,eAAO,MAAM,WAAW;;;;;;;;CAUd,CAAC;AAEX,kCAAkC;AAClC,eAAO,MAAM,cAAc;IAC1B,8DAA8D;;IAE9D,sEAAsE;;IAEtE,uEAAuE;;CAE9D,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kFAAkF;AAClF,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,uDAAuD;AACvD,eAAO,MAAM,WAAW,wBAAe,CAAC;AAExC,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,sCAAsC,CAAC;AACtE,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AACtE,eAAO,MAAM,0BAA0B,8CAA8C,CAAC;AACtF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AACtF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AAEtF,uCAAuC;AACvC,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,gEAAgE;AAChE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,yEAAyE;AACzE,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,8BAA8B;AAC9B,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAEX,oCAAoC;AACpC,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX,wBAAwB;AACxB,eAAO,MAAM,SAAS;;;CAGZ,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,cAAc,EAAG,6BAAsC,CAAC;AAErE,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,EAAG,gCAAyC,CAAC;AAEhF,qBAAqB;AACrB,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,qCAAqC;AACrC,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,iCAAiC;AACjC,eAAO,MAAM,WAAW;;;;;;;;CAUd,CAAC;AAEX,kCAAkC;AAClC,eAAO,MAAM,cAAc;IAC1B,8DAA8D;;IAE9D,sEAAsE;;IAEtE,uEAAuE;;CAE9D,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
@@ -90,4 +90,17 @@ export const ACCOUNT_LIMITS = {
90
90
  /** Number of consecutive auth failures before auto-removing account */
91
91
  MAX_AUTH_FAILURES_BEFORE_REMOVAL: 3,
92
92
  };
93
+ /**
94
+ * Cap on quota-exhausted model hops within one request (index.ts).
95
+ *
96
+ * The attempted set already stops a request revisiting a model; this bounds
97
+ * total hops even under a cyclic custom chain. It must be at least the longest
98
+ * DEFAULT_UNSUPPORTED_CODEX_FALLBACK_CHAIN row (gpt-6-astra's, 6 targets), or a
99
+ * request whose models are blocked one after another stops before reaching the
100
+ * tail of its own default chain. A hop only happens onto a model some account
101
+ * can serve right now, so a larger cap costs nothing when nothing is usable.
102
+ * Kept here rather than in fetch-helpers because test/index.test.ts replaces
103
+ * that module with a factory mock, which would read a new export as undefined.
104
+ */
105
+ export const MAX_QUOTA_FALLBACK_SWITCHES = 6;
93
106
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"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"}
@@ -32,16 +32,16 @@ export function isContextOverflowError(status, bodyText) {
32
32
  /**
33
33
  * The message shown to users when context overflow occurs
34
34
  */
35
- const CONTEXT_OVERFLOW_MESSAGE = `[Plugin Notice] Context is too long for this model.
36
-
37
- Please use one of these commands to reduce context size:
38
-
39
- • **/compact** - Compress conversation history (recommended)
40
- • **/clear** - Start fresh with empty context
41
- • **/undo** - Remove recent messages
42
-
43
- Then retry your request.
44
-
35
+ const CONTEXT_OVERFLOW_MESSAGE = `[Plugin Notice] Context is too long for this model.
36
+
37
+ Please use one of these commands to reduce context size:
38
+
39
+ • **/compact** - Compress conversation history (recommended)
40
+ • **/clear** - Start fresh with empty context
41
+ • **/undo** - Remove recent messages
42
+
43
+ Then retry your request.
44
+
45
45
  Alternatively, you can switch to a model with a larger context window.`;
46
46
  /**
47
47
  * Creates a synthetic SSE response for context overflow errors.
@@ -1,12 +1,12 @@
1
1
  import { execFile } from "node:child_process";
2
2
  import { logDebug, logWarn } from "./logger.js";
3
3
  const DELIVERY_TIMEOUT_MS = 10_000;
4
- const MACOS_NOTIFICATION_SCRIPT = `
5
- function run(argv) {
6
- const app = Application.currentApplication();
7
- app.includeStandardAdditions = true;
8
- app.displayNotification(argv[1], { withTitle: argv[0] });
9
- }
4
+ const MACOS_NOTIFICATION_SCRIPT = `
5
+ function run(argv) {
6
+ const app = Application.currentApplication();
7
+ app.includeStandardAdditions = true;
8
+ app.displayNotification(argv[1], { withTitle: argv[0] });
9
+ }
10
10
  `.trim();
11
11
  const executeFile = (file, args, options, callback) => {
12
12
  return execFile(file, args, options, (error) => callback(error));
@@ -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.