oc-codex-multi-auth 6.0.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 (248) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +162 -0
  3. package/assets/opencode-logo-ornate-dark.svg +18 -0
  4. package/assets/readme-hero.svg +31 -0
  5. package/config/README.md +96 -0
  6. package/config/minimal-opencode.json +13 -0
  7. package/config/opencode-legacy.json +871 -0
  8. package/config/opencode-modern.json +358 -0
  9. package/dist/index.d.ts +45 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +5008 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/lib/accounts/rate-limits.d.ts +22 -0
  14. package/dist/lib/accounts/rate-limits.d.ts.map +1 -0
  15. package/dist/lib/accounts/rate-limits.js +63 -0
  16. package/dist/lib/accounts/rate-limits.js.map +1 -0
  17. package/dist/lib/accounts.d.ts +134 -0
  18. package/dist/lib/accounts.d.ts.map +1 -0
  19. package/dist/lib/accounts.js +795 -0
  20. package/dist/lib/accounts.js.map +1 -0
  21. package/dist/lib/audit.d.ts +45 -0
  22. package/dist/lib/audit.d.ts.map +1 -0
  23. package/dist/lib/audit.js +154 -0
  24. package/dist/lib/audit.js.map +1 -0
  25. package/dist/lib/auth/auth.d.ts +51 -0
  26. package/dist/lib/auth/auth.d.ts.map +1 -0
  27. package/dist/lib/auth/auth.js +191 -0
  28. package/dist/lib/auth/auth.js.map +1 -0
  29. package/dist/lib/auth/browser.d.ts +17 -0
  30. package/dist/lib/auth/browser.d.ts.map +1 -0
  31. package/dist/lib/auth/browser.js +90 -0
  32. package/dist/lib/auth/browser.js.map +1 -0
  33. package/dist/lib/auth/device-code.d.ts +28 -0
  34. package/dist/lib/auth/device-code.d.ts.map +1 -0
  35. package/dist/lib/auth/device-code.js +215 -0
  36. package/dist/lib/auth/device-code.js.map +1 -0
  37. package/dist/lib/auth/login-runner.d.ts +55 -0
  38. package/dist/lib/auth/login-runner.d.ts.map +1 -0
  39. package/dist/lib/auth/login-runner.js +631 -0
  40. package/dist/lib/auth/login-runner.js.map +1 -0
  41. package/dist/lib/auth/server.d.ts +10 -0
  42. package/dist/lib/auth/server.d.ts.map +1 -0
  43. package/dist/lib/auth/server.js +98 -0
  44. package/dist/lib/auth/server.js.map +1 -0
  45. package/dist/lib/auth/token-utils.d.ts +60 -0
  46. package/dist/lib/auth/token-utils.d.ts.map +1 -0
  47. package/dist/lib/auth/token-utils.js +416 -0
  48. package/dist/lib/auth/token-utils.js.map +1 -0
  49. package/dist/lib/auth-rate-limit.d.ts +20 -0
  50. package/dist/lib/auth-rate-limit.d.ts.map +1 -0
  51. package/dist/lib/auth-rate-limit.js +91 -0
  52. package/dist/lib/auth-rate-limit.js.map +1 -0
  53. package/dist/lib/auto-update-checker.d.ts +10 -0
  54. package/dist/lib/auto-update-checker.d.ts.map +1 -0
  55. package/dist/lib/auto-update-checker.js +129 -0
  56. package/dist/lib/auto-update-checker.js.map +1 -0
  57. package/dist/lib/circuit-breaker.d.ts +34 -0
  58. package/dist/lib/circuit-breaker.d.ts.map +1 -0
  59. package/dist/lib/circuit-breaker.js +124 -0
  60. package/dist/lib/circuit-breaker.js.map +1 -0
  61. package/dist/lib/cli.d.ts +46 -0
  62. package/dist/lib/cli.d.ts.map +1 -0
  63. package/dist/lib/cli.js +192 -0
  64. package/dist/lib/cli.js.map +1 -0
  65. package/dist/lib/config.d.ts +42 -0
  66. package/dist/lib/config.d.ts.map +1 -0
  67. package/dist/lib/config.js +314 -0
  68. package/dist/lib/config.js.map +1 -0
  69. package/dist/lib/constants.d.ts +90 -0
  70. package/dist/lib/constants.d.ts.map +1 -0
  71. package/dist/lib/constants.js +90 -0
  72. package/dist/lib/constants.js.map +1 -0
  73. package/dist/lib/context-overflow.d.ts +27 -0
  74. package/dist/lib/context-overflow.d.ts.map +1 -0
  75. package/dist/lib/context-overflow.js +124 -0
  76. package/dist/lib/context-overflow.js.map +1 -0
  77. package/dist/lib/errors.d.ts +113 -0
  78. package/dist/lib/errors.d.ts.map +1 -0
  79. package/dist/lib/errors.js +103 -0
  80. package/dist/lib/errors.js.map +1 -0
  81. package/dist/lib/health.d.ts +33 -0
  82. package/dist/lib/health.d.ts.map +1 -0
  83. package/dist/lib/health.js +70 -0
  84. package/dist/lib/health.js.map +1 -0
  85. package/dist/lib/index.d.ts +20 -0
  86. package/dist/lib/index.d.ts.map +1 -0
  87. package/dist/lib/index.js +20 -0
  88. package/dist/lib/index.js.map +1 -0
  89. package/dist/lib/logger.d.ts +40 -0
  90. package/dist/lib/logger.d.ts.map +1 -0
  91. package/dist/lib/logger.js +337 -0
  92. package/dist/lib/logger.js.map +1 -0
  93. package/dist/lib/oauth-success.html +712 -0
  94. package/dist/lib/parallel-probe.d.ts +28 -0
  95. package/dist/lib/parallel-probe.d.ts.map +1 -0
  96. package/dist/lib/parallel-probe.js +97 -0
  97. package/dist/lib/parallel-probe.js.map +1 -0
  98. package/dist/lib/proactive-refresh.d.ts +67 -0
  99. package/dist/lib/proactive-refresh.d.ts.map +1 -0
  100. package/dist/lib/proactive-refresh.js +161 -0
  101. package/dist/lib/proactive-refresh.js.map +1 -0
  102. package/dist/lib/prompts/codex-opencode-bridge.d.ts +20 -0
  103. package/dist/lib/prompts/codex-opencode-bridge.d.ts.map +1 -0
  104. package/dist/lib/prompts/codex-opencode-bridge.js +126 -0
  105. package/dist/lib/prompts/codex-opencode-bridge.js.map +1 -0
  106. package/dist/lib/prompts/codex.d.ts +41 -0
  107. package/dist/lib/prompts/codex.d.ts.map +1 -0
  108. package/dist/lib/prompts/codex.js +400 -0
  109. package/dist/lib/prompts/codex.js.map +1 -0
  110. package/dist/lib/prompts/opencode-codex.d.ts +25 -0
  111. package/dist/lib/prompts/opencode-codex.d.ts.map +1 -0
  112. package/dist/lib/prompts/opencode-codex.js +223 -0
  113. package/dist/lib/prompts/opencode-codex.js.map +1 -0
  114. package/dist/lib/recovery/constants.d.ts +12 -0
  115. package/dist/lib/recovery/constants.d.ts.map +1 -0
  116. package/dist/lib/recovery/constants.js +25 -0
  117. package/dist/lib/recovery/constants.js.map +1 -0
  118. package/dist/lib/recovery/index.d.ts +12 -0
  119. package/dist/lib/recovery/index.d.ts.map +1 -0
  120. package/dist/lib/recovery/index.js +12 -0
  121. package/dist/lib/recovery/index.js.map +1 -0
  122. package/dist/lib/recovery/storage.d.ts +24 -0
  123. package/dist/lib/recovery/storage.d.ts.map +1 -0
  124. package/dist/lib/recovery/storage.js +362 -0
  125. package/dist/lib/recovery/storage.js.map +1 -0
  126. package/dist/lib/recovery/types.d.ts +116 -0
  127. package/dist/lib/recovery/types.d.ts.map +1 -0
  128. package/dist/lib/recovery/types.js +7 -0
  129. package/dist/lib/recovery/types.js.map +1 -0
  130. package/dist/lib/recovery.d.ts +31 -0
  131. package/dist/lib/recovery.d.ts.map +1 -0
  132. package/dist/lib/recovery.js +313 -0
  133. package/dist/lib/recovery.js.map +1 -0
  134. package/dist/lib/refresh-queue.d.ts +131 -0
  135. package/dist/lib/refresh-queue.d.ts.map +1 -0
  136. package/dist/lib/refresh-queue.js +297 -0
  137. package/dist/lib/refresh-queue.js.map +1 -0
  138. package/dist/lib/request/fetch-helpers.d.ts +142 -0
  139. package/dist/lib/request/fetch-helpers.d.ts.map +1 -0
  140. package/dist/lib/request/fetch-helpers.js +749 -0
  141. package/dist/lib/request/fetch-helpers.js.map +1 -0
  142. package/dist/lib/request/helpers/input-utils.d.ts +7 -0
  143. package/dist/lib/request/helpers/input-utils.d.ts.map +1 -0
  144. package/dist/lib/request/helpers/input-utils.js +214 -0
  145. package/dist/lib/request/helpers/input-utils.js.map +1 -0
  146. package/dist/lib/request/helpers/model-map.d.ts +22 -0
  147. package/dist/lib/request/helpers/model-map.d.ts.map +1 -0
  148. package/dist/lib/request/helpers/model-map.js +183 -0
  149. package/dist/lib/request/helpers/model-map.js.map +1 -0
  150. package/dist/lib/request/helpers/tool-utils.d.ts +29 -0
  151. package/dist/lib/request/helpers/tool-utils.d.ts.map +1 -0
  152. package/dist/lib/request/helpers/tool-utils.js +117 -0
  153. package/dist/lib/request/helpers/tool-utils.js.map +1 -0
  154. package/dist/lib/request/rate-limit-backoff.d.ts +17 -0
  155. package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -0
  156. package/dist/lib/request/rate-limit-backoff.js +83 -0
  157. package/dist/lib/request/rate-limit-backoff.js.map +1 -0
  158. package/dist/lib/request/request-transformer.d.ts +107 -0
  159. package/dist/lib/request/request-transformer.d.ts.map +1 -0
  160. package/dist/lib/request/request-transformer.js +930 -0
  161. package/dist/lib/request/request-transformer.js.map +1 -0
  162. package/dist/lib/request/response-handler.d.ts +23 -0
  163. package/dist/lib/request/response-handler.d.ts.map +1 -0
  164. package/dist/lib/request/response-handler.js +245 -0
  165. package/dist/lib/request/response-handler.js.map +1 -0
  166. package/dist/lib/request/retry-budget.d.ts +19 -0
  167. package/dist/lib/request/retry-budget.d.ts.map +1 -0
  168. package/dist/lib/request/retry-budget.js +99 -0
  169. package/dist/lib/request/retry-budget.js.map +1 -0
  170. package/dist/lib/rotation.d.ts +130 -0
  171. package/dist/lib/rotation.d.ts.map +1 -0
  172. package/dist/lib/rotation.js +301 -0
  173. package/dist/lib/rotation.js.map +1 -0
  174. package/dist/lib/runtime-contracts.d.ts +16 -0
  175. package/dist/lib/runtime-contracts.d.ts.map +1 -0
  176. package/dist/lib/runtime-contracts.js +24 -0
  177. package/dist/lib/runtime-contracts.js.map +1 -0
  178. package/dist/lib/schemas.d.ts +457 -0
  179. package/dist/lib/schemas.d.ts.map +1 -0
  180. package/dist/lib/schemas.js +283 -0
  181. package/dist/lib/schemas.js.map +1 -0
  182. package/dist/lib/shutdown.d.ts +7 -0
  183. package/dist/lib/shutdown.d.ts.map +1 -0
  184. package/dist/lib/shutdown.js +43 -0
  185. package/dist/lib/shutdown.js.map +1 -0
  186. package/dist/lib/storage/migrations.d.ts +65 -0
  187. package/dist/lib/storage/migrations.d.ts.map +1 -0
  188. package/dist/lib/storage/migrations.js +44 -0
  189. package/dist/lib/storage/migrations.js.map +1 -0
  190. package/dist/lib/storage/paths.d.ts +16 -0
  191. package/dist/lib/storage/paths.d.ts.map +1 -0
  192. package/dist/lib/storage/paths.js +92 -0
  193. package/dist/lib/storage/paths.js.map +1 -0
  194. package/dist/lib/storage.d.ts +157 -0
  195. package/dist/lib/storage.d.ts.map +1 -0
  196. package/dist/lib/storage.js +1169 -0
  197. package/dist/lib/storage.js.map +1 -0
  198. package/dist/lib/table-formatter.d.ts +32 -0
  199. package/dist/lib/table-formatter.d.ts.map +1 -0
  200. package/dist/lib/table-formatter.js +44 -0
  201. package/dist/lib/table-formatter.js.map +1 -0
  202. package/dist/lib/types.d.ts +131 -0
  203. package/dist/lib/types.d.ts.map +1 -0
  204. package/dist/lib/types.js +2 -0
  205. package/dist/lib/types.js.map +1 -0
  206. package/dist/lib/ui/ansi.d.ts +22 -0
  207. package/dist/lib/ui/ansi.d.ts.map +1 -0
  208. package/dist/lib/ui/ansi.js +38 -0
  209. package/dist/lib/ui/ansi.js.map +1 -0
  210. package/dist/lib/ui/auth-menu.d.ts +39 -0
  211. package/dist/lib/ui/auth-menu.d.ts.map +1 -0
  212. package/dist/lib/ui/auth-menu.js +186 -0
  213. package/dist/lib/ui/auth-menu.js.map +1 -0
  214. package/dist/lib/ui/beginner.d.ts +62 -0
  215. package/dist/lib/ui/beginner.d.ts.map +1 -0
  216. package/dist/lib/ui/beginner.js +259 -0
  217. package/dist/lib/ui/beginner.js.map +1 -0
  218. package/dist/lib/ui/confirm.d.ts +2 -0
  219. package/dist/lib/ui/confirm.d.ts.map +1 -0
  220. package/dist/lib/ui/confirm.js +21 -0
  221. package/dist/lib/ui/confirm.js.map +1 -0
  222. package/dist/lib/ui/format.d.ts +9 -0
  223. package/dist/lib/ui/format.d.ts.map +1 -0
  224. package/dist/lib/ui/format.js +49 -0
  225. package/dist/lib/ui/format.js.map +1 -0
  226. package/dist/lib/ui/runtime.d.ts +11 -0
  227. package/dist/lib/ui/runtime.d.ts.map +1 -0
  228. package/dist/lib/ui/runtime.js +31 -0
  229. package/dist/lib/ui/runtime.js.map +1 -0
  230. package/dist/lib/ui/select.d.ts +20 -0
  231. package/dist/lib/ui/select.d.ts.map +1 -0
  232. package/dist/lib/ui/select.js +343 -0
  233. package/dist/lib/ui/select.js.map +1 -0
  234. package/dist/lib/ui/theme.d.ts +34 -0
  235. package/dist/lib/ui/theme.d.ts.map +1 -0
  236. package/dist/lib/ui/theme.js +84 -0
  237. package/dist/lib/ui/theme.js.map +1 -0
  238. package/dist/lib/utils.d.ts +29 -0
  239. package/dist/lib/utils.d.ts.map +1 -0
  240. package/dist/lib/utils.js +54 -0
  241. package/dist/lib/utils.js.map +1 -0
  242. package/package.json +113 -0
  243. package/scripts/audit-dev-allowlist.js +114 -0
  244. package/scripts/copy-oauth-success.js +37 -0
  245. package/scripts/install-oc-codex-multi-auth-core.js +381 -0
  246. package/scripts/install-oc-codex-multi-auth.js +15 -0
  247. package/scripts/test-all-models.sh +260 -0
  248. package/scripts/validate-model-map.sh +97 -0
@@ -0,0 +1,457 @@
1
+ /**
2
+ * Zod schemas for runtime validation.
3
+ * These are the single source of truth for data structures.
4
+ * Types are inferred from schemas using z.infer.
5
+ */
6
+ import { z } from "zod";
7
+ export declare const PluginConfigSchema: z.ZodObject<{
8
+ codexMode: z.ZodOptional<z.ZodBoolean>;
9
+ requestTransformMode: z.ZodOptional<z.ZodEnum<{
10
+ native: "native";
11
+ legacy: "legacy";
12
+ }>>;
13
+ codexTuiV2: z.ZodOptional<z.ZodBoolean>;
14
+ codexTuiColorProfile: z.ZodOptional<z.ZodEnum<{
15
+ truecolor: "truecolor";
16
+ ansi16: "ansi16";
17
+ ansi256: "ansi256";
18
+ }>>;
19
+ codexTuiGlyphMode: z.ZodOptional<z.ZodEnum<{
20
+ ascii: "ascii";
21
+ unicode: "unicode";
22
+ auto: "auto";
23
+ }>>;
24
+ beginnerSafeMode: z.ZodOptional<z.ZodBoolean>;
25
+ fastSession: z.ZodOptional<z.ZodBoolean>;
26
+ fastSessionStrategy: z.ZodOptional<z.ZodEnum<{
27
+ hybrid: "hybrid";
28
+ always: "always";
29
+ }>>;
30
+ fastSessionMaxInputItems: z.ZodOptional<z.ZodNumber>;
31
+ retryProfile: z.ZodOptional<z.ZodEnum<{
32
+ conservative: "conservative";
33
+ balanced: "balanced";
34
+ aggressive: "aggressive";
35
+ }>>;
36
+ retryBudgetOverrides: z.ZodOptional<z.ZodObject<{
37
+ authRefresh: z.ZodOptional<z.ZodNumber>;
38
+ network: z.ZodOptional<z.ZodNumber>;
39
+ server: z.ZodOptional<z.ZodNumber>;
40
+ rateLimitShort: z.ZodOptional<z.ZodNumber>;
41
+ rateLimitGlobal: z.ZodOptional<z.ZodNumber>;
42
+ emptyResponse: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>>;
44
+ retryAllAccountsRateLimited: z.ZodOptional<z.ZodBoolean>;
45
+ retryAllAccountsMaxWaitMs: z.ZodOptional<z.ZodNumber>;
46
+ retryAllAccountsMaxRetries: z.ZodOptional<z.ZodNumber>;
47
+ unsupportedCodexPolicy: z.ZodOptional<z.ZodEnum<{
48
+ strict: "strict";
49
+ fallback: "fallback";
50
+ }>>;
51
+ fallbackOnUnsupportedCodexModel: z.ZodOptional<z.ZodBoolean>;
52
+ fallbackToGpt52OnUnsupportedGpt53: z.ZodOptional<z.ZodBoolean>;
53
+ unsupportedCodexFallbackChain: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
54
+ tokenRefreshSkewMs: z.ZodOptional<z.ZodNumber>;
55
+ rateLimitToastDebounceMs: z.ZodOptional<z.ZodNumber>;
56
+ toastDurationMs: z.ZodOptional<z.ZodNumber>;
57
+ perProjectAccounts: z.ZodOptional<z.ZodBoolean>;
58
+ sessionRecovery: z.ZodOptional<z.ZodBoolean>;
59
+ autoResume: z.ZodOptional<z.ZodBoolean>;
60
+ parallelProbing: z.ZodOptional<z.ZodBoolean>;
61
+ parallelProbingMaxConcurrency: z.ZodOptional<z.ZodNumber>;
62
+ emptyResponseMaxRetries: z.ZodOptional<z.ZodNumber>;
63
+ emptyResponseRetryDelayMs: z.ZodOptional<z.ZodNumber>;
64
+ pidOffsetEnabled: z.ZodOptional<z.ZodBoolean>;
65
+ fetchTimeoutMs: z.ZodOptional<z.ZodNumber>;
66
+ streamStallTimeoutMs: z.ZodOptional<z.ZodNumber>;
67
+ }, z.core.$strip>;
68
+ export type PluginConfigFromSchema = z.infer<typeof PluginConfigSchema>;
69
+ /**
70
+ * Source of the accountId used for ChatGPT requests.
71
+ */
72
+ export declare const AccountIdSourceSchema: z.ZodEnum<{
73
+ token: "token";
74
+ id_token: "id_token";
75
+ org: "org";
76
+ manual: "manual";
77
+ }>;
78
+ export type AccountIdSourceFromSchema = z.infer<typeof AccountIdSourceSchema>;
79
+ /**
80
+ * Cooldown reason for temporary account suspension.
81
+ */
82
+ export declare const CooldownReasonSchema: z.ZodEnum<{
83
+ "auth-failure": "auth-failure";
84
+ "network-error": "network-error";
85
+ }>;
86
+ export type CooldownReasonFromSchema = z.infer<typeof CooldownReasonSchema>;
87
+ /**
88
+ * Last switch reason for account rotation tracking.
89
+ */
90
+ export declare const SwitchReasonSchema: z.ZodEnum<{
91
+ "rate-limit": "rate-limit";
92
+ initial: "initial";
93
+ rotation: "rotation";
94
+ }>;
95
+ export type SwitchReasonFromSchema = z.infer<typeof SwitchReasonSchema>;
96
+ /**
97
+ * Rate limit state - maps model family to reset timestamp.
98
+ */
99
+ export declare const RateLimitStateV3Schema: z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodNumber>>;
100
+ export type RateLimitStateV3FromSchema = z.infer<typeof RateLimitStateV3Schema>;
101
+ /**
102
+ * Account metadata V3 - current storage format.
103
+ */
104
+ export declare const AccountMetadataV3Schema: z.ZodObject<{
105
+ accountId: z.ZodOptional<z.ZodString>;
106
+ organizationId: z.ZodOptional<z.ZodString>;
107
+ accountIdSource: z.ZodOptional<z.ZodEnum<{
108
+ token: "token";
109
+ id_token: "id_token";
110
+ org: "org";
111
+ manual: "manual";
112
+ }>>;
113
+ accountLabel: z.ZodOptional<z.ZodString>;
114
+ accountTags: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
115
+ accountNote: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
116
+ email: z.ZodOptional<z.ZodString>;
117
+ refreshToken: z.ZodString;
118
+ accessToken: z.ZodOptional<z.ZodString>;
119
+ expiresAt: z.ZodOptional<z.ZodNumber>;
120
+ enabled: z.ZodOptional<z.ZodBoolean>;
121
+ addedAt: z.ZodNumber;
122
+ lastUsed: z.ZodNumber;
123
+ lastSwitchReason: z.ZodOptional<z.ZodEnum<{
124
+ "rate-limit": "rate-limit";
125
+ initial: "initial";
126
+ rotation: "rotation";
127
+ }>>;
128
+ rateLimitResetTimes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodNumber>>>;
129
+ coolingDownUntil: z.ZodOptional<z.ZodNumber>;
130
+ cooldownReason: z.ZodOptional<z.ZodEnum<{
131
+ "auth-failure": "auth-failure";
132
+ "network-error": "network-error";
133
+ }>>;
134
+ }, z.core.$strip>;
135
+ export type AccountMetadataV3FromSchema = z.infer<typeof AccountMetadataV3Schema>;
136
+ export declare const ActiveIndexByFamilySchema: z.ZodObject<{
137
+ "gpt-5-codex": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
138
+ "codex-max": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
139
+ codex: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
140
+ "gpt-5.4": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
141
+ "gpt-5.4-mini": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
142
+ "gpt-5.4-pro": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
143
+ "gpt-5.2": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
144
+ "gpt-5.1": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
145
+ }, z.core.$strip>;
146
+ export type ActiveIndexByFamilyFromSchema = z.infer<typeof ActiveIndexByFamilySchema>;
147
+ /**
148
+ * Account storage V3 - current storage format with per-family active indices.
149
+ */
150
+ export declare const AccountStorageV3Schema: z.ZodObject<{
151
+ version: z.ZodLiteral<3>;
152
+ accounts: z.ZodArray<z.ZodObject<{
153
+ accountId: z.ZodOptional<z.ZodString>;
154
+ organizationId: z.ZodOptional<z.ZodString>;
155
+ accountIdSource: z.ZodOptional<z.ZodEnum<{
156
+ token: "token";
157
+ id_token: "id_token";
158
+ org: "org";
159
+ manual: "manual";
160
+ }>>;
161
+ accountLabel: z.ZodOptional<z.ZodString>;
162
+ accountTags: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
163
+ accountNote: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
164
+ email: z.ZodOptional<z.ZodString>;
165
+ refreshToken: z.ZodString;
166
+ accessToken: z.ZodOptional<z.ZodString>;
167
+ expiresAt: z.ZodOptional<z.ZodNumber>;
168
+ enabled: z.ZodOptional<z.ZodBoolean>;
169
+ addedAt: z.ZodNumber;
170
+ lastUsed: z.ZodNumber;
171
+ lastSwitchReason: z.ZodOptional<z.ZodEnum<{
172
+ "rate-limit": "rate-limit";
173
+ initial: "initial";
174
+ rotation: "rotation";
175
+ }>>;
176
+ rateLimitResetTimes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodNumber>>>;
177
+ coolingDownUntil: z.ZodOptional<z.ZodNumber>;
178
+ cooldownReason: z.ZodOptional<z.ZodEnum<{
179
+ "auth-failure": "auth-failure";
180
+ "network-error": "network-error";
181
+ }>>;
182
+ }, z.core.$strip>>;
183
+ activeIndex: z.ZodNumber;
184
+ activeIndexByFamily: z.ZodOptional<z.ZodObject<{
185
+ "gpt-5-codex": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
186
+ "codex-max": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
187
+ codex: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
188
+ "gpt-5.4": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
189
+ "gpt-5.4-mini": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
190
+ "gpt-5.4-pro": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
191
+ "gpt-5.2": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
192
+ "gpt-5.1": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
193
+ }, z.core.$strip>>;
194
+ }, z.core.$strip>;
195
+ export type AccountStorageV3FromSchema = z.infer<typeof AccountStorageV3Schema>;
196
+ /**
197
+ * Legacy V1 account metadata for migration support.
198
+ */
199
+ export declare const AccountMetadataV1Schema: z.ZodObject<{
200
+ accountId: z.ZodOptional<z.ZodString>;
201
+ organizationId: z.ZodOptional<z.ZodString>;
202
+ accountIdSource: z.ZodOptional<z.ZodEnum<{
203
+ token: "token";
204
+ id_token: "id_token";
205
+ org: "org";
206
+ manual: "manual";
207
+ }>>;
208
+ accountLabel: z.ZodOptional<z.ZodString>;
209
+ accountTags: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
210
+ accountNote: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
211
+ email: z.ZodOptional<z.ZodString>;
212
+ refreshToken: z.ZodString;
213
+ accessToken: z.ZodOptional<z.ZodString>;
214
+ expiresAt: z.ZodOptional<z.ZodNumber>;
215
+ enabled: z.ZodOptional<z.ZodBoolean>;
216
+ addedAt: z.ZodNumber;
217
+ lastUsed: z.ZodNumber;
218
+ lastSwitchReason: z.ZodOptional<z.ZodEnum<{
219
+ "rate-limit": "rate-limit";
220
+ initial: "initial";
221
+ rotation: "rotation";
222
+ }>>;
223
+ rateLimitResetTime: z.ZodOptional<z.ZodNumber>;
224
+ coolingDownUntil: z.ZodOptional<z.ZodNumber>;
225
+ cooldownReason: z.ZodOptional<z.ZodEnum<{
226
+ "auth-failure": "auth-failure";
227
+ "network-error": "network-error";
228
+ }>>;
229
+ }, z.core.$strip>;
230
+ export type AccountMetadataV1FromSchema = z.infer<typeof AccountMetadataV1Schema>;
231
+ /**
232
+ * Legacy V1 storage format for migration support.
233
+ */
234
+ export declare const AccountStorageV1Schema: z.ZodObject<{
235
+ version: z.ZodLiteral<1>;
236
+ accounts: z.ZodArray<z.ZodObject<{
237
+ accountId: z.ZodOptional<z.ZodString>;
238
+ organizationId: z.ZodOptional<z.ZodString>;
239
+ accountIdSource: z.ZodOptional<z.ZodEnum<{
240
+ token: "token";
241
+ id_token: "id_token";
242
+ org: "org";
243
+ manual: "manual";
244
+ }>>;
245
+ accountLabel: z.ZodOptional<z.ZodString>;
246
+ accountTags: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
247
+ accountNote: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
248
+ email: z.ZodOptional<z.ZodString>;
249
+ refreshToken: z.ZodString;
250
+ accessToken: z.ZodOptional<z.ZodString>;
251
+ expiresAt: z.ZodOptional<z.ZodNumber>;
252
+ enabled: z.ZodOptional<z.ZodBoolean>;
253
+ addedAt: z.ZodNumber;
254
+ lastUsed: z.ZodNumber;
255
+ lastSwitchReason: z.ZodOptional<z.ZodEnum<{
256
+ "rate-limit": "rate-limit";
257
+ initial: "initial";
258
+ rotation: "rotation";
259
+ }>>;
260
+ rateLimitResetTime: z.ZodOptional<z.ZodNumber>;
261
+ coolingDownUntil: z.ZodOptional<z.ZodNumber>;
262
+ cooldownReason: z.ZodOptional<z.ZodEnum<{
263
+ "auth-failure": "auth-failure";
264
+ "network-error": "network-error";
265
+ }>>;
266
+ }, z.core.$strip>>;
267
+ activeIndex: z.ZodNumber;
268
+ }, z.core.$strip>;
269
+ export type AccountStorageV1FromSchema = z.infer<typeof AccountStorageV1Schema>;
270
+ /**
271
+ * Union of V1 and V3 storage formats for migration detection.
272
+ */
273
+ export declare const AnyAccountStorageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
274
+ version: z.ZodLiteral<1>;
275
+ accounts: z.ZodArray<z.ZodObject<{
276
+ accountId: z.ZodOptional<z.ZodString>;
277
+ organizationId: z.ZodOptional<z.ZodString>;
278
+ accountIdSource: z.ZodOptional<z.ZodEnum<{
279
+ token: "token";
280
+ id_token: "id_token";
281
+ org: "org";
282
+ manual: "manual";
283
+ }>>;
284
+ accountLabel: z.ZodOptional<z.ZodString>;
285
+ accountTags: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
286
+ accountNote: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
287
+ email: z.ZodOptional<z.ZodString>;
288
+ refreshToken: z.ZodString;
289
+ accessToken: z.ZodOptional<z.ZodString>;
290
+ expiresAt: z.ZodOptional<z.ZodNumber>;
291
+ enabled: z.ZodOptional<z.ZodBoolean>;
292
+ addedAt: z.ZodNumber;
293
+ lastUsed: z.ZodNumber;
294
+ lastSwitchReason: z.ZodOptional<z.ZodEnum<{
295
+ "rate-limit": "rate-limit";
296
+ initial: "initial";
297
+ rotation: "rotation";
298
+ }>>;
299
+ rateLimitResetTime: z.ZodOptional<z.ZodNumber>;
300
+ coolingDownUntil: z.ZodOptional<z.ZodNumber>;
301
+ cooldownReason: z.ZodOptional<z.ZodEnum<{
302
+ "auth-failure": "auth-failure";
303
+ "network-error": "network-error";
304
+ }>>;
305
+ }, z.core.$strip>>;
306
+ activeIndex: z.ZodNumber;
307
+ }, z.core.$strip>, z.ZodObject<{
308
+ version: z.ZodLiteral<3>;
309
+ accounts: z.ZodArray<z.ZodObject<{
310
+ accountId: z.ZodOptional<z.ZodString>;
311
+ organizationId: z.ZodOptional<z.ZodString>;
312
+ accountIdSource: z.ZodOptional<z.ZodEnum<{
313
+ token: "token";
314
+ id_token: "id_token";
315
+ org: "org";
316
+ manual: "manual";
317
+ }>>;
318
+ accountLabel: z.ZodOptional<z.ZodString>;
319
+ accountTags: z.ZodPipe<z.ZodOptional<z.ZodArray<z.ZodString>>, z.ZodTransform<string[] | undefined, string[] | undefined>>;
320
+ accountNote: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string | undefined, string | undefined>>;
321
+ email: z.ZodOptional<z.ZodString>;
322
+ refreshToken: z.ZodString;
323
+ accessToken: z.ZodOptional<z.ZodString>;
324
+ expiresAt: z.ZodOptional<z.ZodNumber>;
325
+ enabled: z.ZodOptional<z.ZodBoolean>;
326
+ addedAt: z.ZodNumber;
327
+ lastUsed: z.ZodNumber;
328
+ lastSwitchReason: z.ZodOptional<z.ZodEnum<{
329
+ "rate-limit": "rate-limit";
330
+ initial: "initial";
331
+ rotation: "rotation";
332
+ }>>;
333
+ rateLimitResetTimes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodNumber>>>;
334
+ coolingDownUntil: z.ZodOptional<z.ZodNumber>;
335
+ cooldownReason: z.ZodOptional<z.ZodEnum<{
336
+ "auth-failure": "auth-failure";
337
+ "network-error": "network-error";
338
+ }>>;
339
+ }, z.core.$strip>>;
340
+ activeIndex: z.ZodNumber;
341
+ activeIndexByFamily: z.ZodOptional<z.ZodObject<{
342
+ "gpt-5-codex": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
343
+ "codex-max": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
344
+ codex: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
345
+ "gpt-5.4": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
346
+ "gpt-5.4-mini": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
347
+ "gpt-5.4-pro": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
348
+ "gpt-5.2": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
349
+ "gpt-5.1": z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
350
+ }, z.core.$strip>>;
351
+ }, z.core.$strip>], "version">;
352
+ export type AnyAccountStorageFromSchema = z.infer<typeof AnyAccountStorageSchema>;
353
+ /**
354
+ * Token failure reason codes.
355
+ */
356
+ export declare const TokenFailureReasonSchema: z.ZodEnum<{
357
+ unknown: "unknown";
358
+ http_error: "http_error";
359
+ invalid_response: "invalid_response";
360
+ network_error: "network_error";
361
+ missing_refresh: "missing_refresh";
362
+ }>;
363
+ export type TokenFailureReasonFromSchema = z.infer<typeof TokenFailureReasonSchema>;
364
+ /**
365
+ * Successful token exchange result.
366
+ */
367
+ export declare const TokenSuccessSchema: z.ZodObject<{
368
+ type: z.ZodLiteral<"success">;
369
+ access: z.ZodString;
370
+ refresh: z.ZodString;
371
+ expires: z.ZodNumber;
372
+ idToken: z.ZodOptional<z.ZodString>;
373
+ multiAccount: z.ZodOptional<z.ZodBoolean>;
374
+ }, z.core.$strip>;
375
+ export type TokenSuccessFromSchema = z.infer<typeof TokenSuccessSchema>;
376
+ /**
377
+ * Failed token exchange result.
378
+ */
379
+ export declare const TokenFailureSchema: z.ZodObject<{
380
+ type: z.ZodLiteral<"failed">;
381
+ reason: z.ZodOptional<z.ZodEnum<{
382
+ unknown: "unknown";
383
+ http_error: "http_error";
384
+ invalid_response: "invalid_response";
385
+ network_error: "network_error";
386
+ missing_refresh: "missing_refresh";
387
+ }>>;
388
+ statusCode: z.ZodOptional<z.ZodNumber>;
389
+ message: z.ZodOptional<z.ZodString>;
390
+ }, z.core.$strip>;
391
+ export type TokenFailureFromSchema = z.infer<typeof TokenFailureSchema>;
392
+ /**
393
+ * Token result - discriminated union of success/failure.
394
+ */
395
+ export declare const TokenResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
396
+ type: z.ZodLiteral<"success">;
397
+ access: z.ZodString;
398
+ refresh: z.ZodString;
399
+ expires: z.ZodNumber;
400
+ idToken: z.ZodOptional<z.ZodString>;
401
+ multiAccount: z.ZodOptional<z.ZodBoolean>;
402
+ }, z.core.$strip>, z.ZodObject<{
403
+ type: z.ZodLiteral<"failed">;
404
+ reason: z.ZodOptional<z.ZodEnum<{
405
+ unknown: "unknown";
406
+ http_error: "http_error";
407
+ invalid_response: "invalid_response";
408
+ network_error: "network_error";
409
+ missing_refresh: "missing_refresh";
410
+ }>>;
411
+ statusCode: z.ZodOptional<z.ZodNumber>;
412
+ message: z.ZodOptional<z.ZodString>;
413
+ }, z.core.$strip>], "type">;
414
+ export type TokenResultFromSchema = z.infer<typeof TokenResultSchema>;
415
+ /**
416
+ * OAuth token response from OpenAI.
417
+ */
418
+ export declare const OAuthTokenResponseSchema: z.ZodObject<{
419
+ access_token: z.ZodString;
420
+ refresh_token: z.ZodOptional<z.ZodString>;
421
+ expires_in: z.ZodNumber;
422
+ id_token: z.ZodOptional<z.ZodString>;
423
+ token_type: z.ZodOptional<z.ZodString>;
424
+ scope: z.ZodOptional<z.ZodString>;
425
+ }, z.core.$strip>;
426
+ export type OAuthTokenResponseFromSchema = z.infer<typeof OAuthTokenResponseSchema>;
427
+ /**
428
+ * Safely parse plugin configuration with detailed error logging.
429
+ * Returns null on failure, allowing graceful degradation.
430
+ */
431
+ export declare function safeParsePluginConfig(data: unknown): PluginConfigFromSchema | null;
432
+ /**
433
+ * Safely parse account storage (any version).
434
+ * Returns null on failure, allowing graceful degradation.
435
+ */
436
+ export declare function safeParseAccountStorage(data: unknown): AnyAccountStorageFromSchema | null;
437
+ /**
438
+ * Safely parse V3 account storage specifically.
439
+ * Returns null on failure.
440
+ */
441
+ export declare function safeParseAccountStorageV3(data: unknown): AccountStorageV3FromSchema | null;
442
+ /**
443
+ * Safely parse token result.
444
+ * Returns null on failure.
445
+ */
446
+ export declare function safeParseTokenResult(data: unknown): TokenResultFromSchema | null;
447
+ /**
448
+ * Safely parse OAuth token response from API.
449
+ * Returns null on failure.
450
+ */
451
+ export declare function safeParseOAuthTokenResponse(data: unknown): OAuthTokenResponseFromSchema | null;
452
+ /**
453
+ * Get validation errors as a flat array of strings.
454
+ * Useful for logging and error messages.
455
+ */
456
+ export declare function getValidationErrors(schema: z.ZodType, data: unknown): string[];
457
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../lib/schemas.ts"],"names":[],"mappings":"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"}