codex-multi-auth 2.3.0-beta.0 → 2.3.0-beta.2

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 (470) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/README.md +4 -3
  3. package/config/schema/config.schema.json +268 -21
  4. package/dist/index.js +0 -1
  5. package/dist/lib/account-policy.js +0 -1
  6. package/dist/lib/accounts/rate-limits.js +0 -1
  7. package/dist/lib/accounts.d.ts +3 -8
  8. package/dist/lib/accounts.d.ts.map +1 -1
  9. package/dist/lib/accounts.js +2 -3
  10. package/dist/lib/audit.js +0 -1
  11. package/dist/lib/auth/auth.js +0 -1
  12. package/dist/lib/auth/browser.js +0 -1
  13. package/dist/lib/auth/device-auth.js +0 -1
  14. package/dist/lib/auth/index.js +0 -1
  15. package/dist/lib/auth/org-override.js +0 -1
  16. package/dist/lib/auth/server.js +0 -1
  17. package/dist/lib/auth/token-utils.js +0 -1
  18. package/dist/lib/auth-rate-limit.js +0 -1
  19. package/dist/lib/budget-guard.js +0 -1
  20. package/dist/lib/capability-policy.js +0 -1
  21. package/dist/lib/circuit-breaker.js +0 -1
  22. package/dist/lib/cli.js +1 -2
  23. package/dist/lib/codex-cli/index.js +0 -1
  24. package/dist/lib/codex-cli/observability.js +0 -1
  25. package/dist/lib/codex-cli/state.js +0 -1
  26. package/dist/lib/codex-cli/sync.d.ts +2 -2
  27. package/dist/lib/codex-cli/sync.d.ts.map +1 -1
  28. package/dist/lib/codex-cli/sync.js +1 -2
  29. package/dist/lib/codex-cli/writer.js +0 -1
  30. package/dist/lib/codex-manager/account-credentials.d.ts +13 -0
  31. package/dist/lib/codex-manager/account-credentials.d.ts.map +1 -0
  32. package/dist/lib/codex-manager/account-credentials.js +55 -0
  33. package/dist/lib/codex-manager/account-manager-commands.js +0 -1
  34. package/dist/lib/codex-manager/account-pool-write.d.ts +95 -0
  35. package/dist/lib/codex-manager/account-pool-write.d.ts.map +1 -0
  36. package/dist/lib/codex-manager/account-pool-write.js +165 -0
  37. package/dist/lib/codex-manager/account-pool-write.js.map +1 -0
  38. package/dist/lib/codex-manager/backend-category-entry.js +0 -1
  39. package/dist/lib/codex-manager/backend-category-helpers.js +0 -1
  40. package/dist/lib/codex-manager/backend-category-prompt.js +0 -1
  41. package/dist/lib/codex-manager/backend-settings-controller.js +0 -1
  42. package/dist/lib/codex-manager/backend-settings-entry.js +0 -1
  43. package/dist/lib/codex-manager/backend-settings-helpers.js +0 -1
  44. package/dist/lib/codex-manager/backend-settings-prompt.js +0 -1
  45. package/dist/lib/codex-manager/backend-settings-schema.js +0 -1
  46. package/dist/lib/codex-manager/behavior-settings-panel.d.ts +1 -1
  47. package/dist/lib/codex-manager/behavior-settings-panel.d.ts.map +1 -1
  48. package/dist/lib/codex-manager/behavior-settings-panel.js +0 -1
  49. package/dist/lib/codex-manager/commands/account.js +0 -1
  50. package/dist/lib/codex-manager/commands/best.d.ts +8 -0
  51. package/dist/lib/codex-manager/commands/best.d.ts.map +1 -1
  52. package/dist/lib/codex-manager/commands/best.js +64 -1
  53. package/dist/lib/codex-manager/commands/bridge.js +0 -1
  54. package/dist/lib/codex-manager/commands/budget.js +0 -1
  55. package/dist/lib/codex-manager/commands/check.js +0 -1
  56. package/dist/lib/codex-manager/commands/config-explain.js +0 -1
  57. package/dist/lib/codex-manager/commands/debug-bundle.js +0 -1
  58. package/dist/lib/codex-manager/commands/forecast.js +0 -1
  59. package/dist/lib/codex-manager/commands/init-config.js +0 -1
  60. package/dist/lib/codex-manager/commands/integrations.js +0 -1
  61. package/dist/lib/codex-manager/commands/models.js +0 -1
  62. package/dist/lib/codex-manager/commands/monitor.js +0 -1
  63. package/dist/lib/codex-manager/commands/report.js +0 -1
  64. package/dist/lib/codex-manager/commands/rotation.d.ts.map +1 -1
  65. package/dist/lib/codex-manager/commands/rotation.js +1 -4
  66. package/dist/lib/codex-manager/commands/status.js +0 -1
  67. package/dist/lib/codex-manager/commands/switch.js +0 -1
  68. package/dist/lib/codex-manager/commands/uninstall.d.ts.map +1 -1
  69. package/dist/lib/codex-manager/commands/uninstall.js +2 -33
  70. package/dist/lib/codex-manager/commands/unpin.js +0 -1
  71. package/dist/lib/codex-manager/commands/usage.js +0 -1
  72. package/dist/lib/codex-manager/commands/verify.js +0 -1
  73. package/dist/lib/codex-manager/commands/why-selected.js +0 -1
  74. package/dist/lib/codex-manager/commands/workspace.js +0 -1
  75. package/dist/lib/codex-manager/dashboard-display-panel.d.ts +1 -1
  76. package/dist/lib/codex-manager/dashboard-display-panel.d.ts.map +1 -1
  77. package/dist/lib/codex-manager/dashboard-display-panel.js +0 -1
  78. package/dist/lib/codex-manager/dashboard-formatters.js +0 -1
  79. package/dist/lib/codex-manager/dashboard-settings-controller.js +0 -1
  80. package/dist/lib/codex-manager/dashboard-settings-data.js +0 -1
  81. package/dist/lib/codex-manager/dashboard-settings-entry.js +0 -1
  82. package/dist/lib/codex-manager/experimental-settings-entry.js +0 -1
  83. package/dist/lib/codex-manager/experimental-settings-prompt.js +0 -1
  84. package/dist/lib/codex-manager/experimental-settings-schema.js +1 -2
  85. package/dist/lib/codex-manager/experimental-sync-target-entry.js +0 -1
  86. package/dist/lib/codex-manager/experimental-sync-target.js +0 -1
  87. package/dist/lib/codex-manager/forecast-report-commands.js +0 -1
  88. package/dist/lib/codex-manager/forecast-report-shared.d.ts +2 -2
  89. package/dist/lib/codex-manager/forecast-report-shared.d.ts.map +1 -1
  90. package/dist/lib/codex-manager/forecast-report-shared.js +5 -21
  91. package/dist/lib/codex-manager/formatters/account-formatters.d.ts +11 -0
  92. package/dist/lib/codex-manager/formatters/account-formatters.d.ts.map +1 -0
  93. package/dist/lib/codex-manager/formatters/account-formatters.js +79 -0
  94. package/dist/lib/codex-manager/formatters/index.d.ts +5 -0
  95. package/dist/lib/codex-manager/formatters/index.d.ts.map +1 -0
  96. package/dist/lib/codex-manager/formatters/index.js +4 -0
  97. package/dist/lib/codex-manager/formatters/model-formatters.d.ts +12 -0
  98. package/dist/lib/codex-manager/formatters/model-formatters.d.ts.map +1 -0
  99. package/dist/lib/codex-manager/formatters/model-formatters.js +23 -0
  100. package/dist/lib/codex-manager/formatters/quota-formatters.d.ts +11 -0
  101. package/dist/lib/codex-manager/formatters/quota-formatters.d.ts.map +1 -0
  102. package/dist/lib/codex-manager/formatters/quota-formatters.js +104 -0
  103. package/dist/lib/codex-manager/formatters/text-style.d.ts +14 -0
  104. package/dist/lib/codex-manager/formatters/text-style.d.ts.map +1 -0
  105. package/dist/lib/codex-manager/formatters/text-style.js +111 -0
  106. package/dist/lib/codex-manager/health-check.d.ts +14 -0
  107. package/dist/lib/codex-manager/health-check.d.ts.map +1 -0
  108. package/dist/lib/codex-manager/health-check.js +278 -0
  109. package/dist/lib/codex-manager/help.js +0 -1
  110. package/dist/lib/codex-manager/login-action-panel.d.ts +4 -0
  111. package/dist/lib/codex-manager/login-action-panel.d.ts.map +1 -0
  112. package/dist/lib/codex-manager/login-action-panel.js +238 -0
  113. package/dist/lib/codex-manager/login-flow.d.ts +17 -0
  114. package/dist/lib/codex-manager/login-flow.d.ts.map +1 -0
  115. package/dist/lib/codex-manager/login-flow.js +387 -0
  116. package/dist/lib/codex-manager/login-menu-actions.d.ts +20 -0
  117. package/dist/lib/codex-manager/login-menu-actions.d.ts.map +1 -0
  118. package/dist/lib/codex-manager/login-menu-actions.js +303 -0
  119. package/dist/lib/codex-manager/login-menu-data.d.ts +19 -0
  120. package/dist/lib/codex-manager/login-menu-data.d.ts.map +1 -0
  121. package/dist/lib/codex-manager/login-menu-data.js +378 -0
  122. package/dist/lib/codex-manager/login-oauth.d.ts +55 -0
  123. package/dist/lib/codex-manager/login-oauth.d.ts.map +1 -0
  124. package/dist/lib/codex-manager/login-oauth.js +345 -0
  125. package/dist/lib/codex-manager/manual-callback.d.ts +33 -0
  126. package/dist/lib/codex-manager/manual-callback.d.ts.map +1 -0
  127. package/dist/lib/codex-manager/manual-callback.js +30 -0
  128. package/dist/lib/codex-manager/manual-callback.js.map +1 -0
  129. package/dist/lib/codex-manager/persist-selected-account.d.ts +24 -0
  130. package/dist/lib/codex-manager/persist-selected-account.d.ts.map +1 -0
  131. package/dist/lib/codex-manager/persist-selected-account.js +107 -0
  132. package/dist/lib/codex-manager/quota-cache-helpers.d.ts +18 -0
  133. package/dist/lib/codex-manager/quota-cache-helpers.d.ts.map +1 -0
  134. package/dist/lib/codex-manager/quota-cache-helpers.js +112 -0
  135. package/dist/lib/codex-manager/rate-limit-markers.js +0 -1
  136. package/dist/lib/codex-manager/repair-commands.js +0 -1
  137. package/dist/lib/codex-manager/settings-hub/backend.js +1 -2
  138. package/dist/lib/codex-manager/settings-hub/dashboard.js +1 -2
  139. package/dist/lib/codex-manager/settings-hub/experimental.js +1 -2
  140. package/dist/lib/codex-manager/settings-hub/index.js +1 -2
  141. package/dist/lib/codex-manager/settings-hub/shared.js +0 -1
  142. package/dist/lib/codex-manager/settings-hub-entry.js +0 -1
  143. package/dist/lib/codex-manager/settings-hub-menu.js +0 -1
  144. package/dist/lib/codex-manager/settings-hub-prompt.js +0 -1
  145. package/dist/lib/codex-manager/settings-hub.js +0 -1
  146. package/dist/lib/codex-manager/settings-panels.js +0 -1
  147. package/dist/lib/codex-manager/settings-persist-utils.js +0 -1
  148. package/dist/lib/codex-manager/settings-preview.js +0 -1
  149. package/dist/lib/codex-manager/settings-write-queue.js +0 -1
  150. package/dist/lib/codex-manager/statusline-order.js +0 -1
  151. package/dist/lib/codex-manager/statusline-settings-panel.d.ts +1 -1
  152. package/dist/lib/codex-manager/statusline-settings-panel.d.ts.map +1 -1
  153. package/dist/lib/codex-manager/statusline-settings-panel.js +0 -1
  154. package/dist/lib/codex-manager/theme-settings-panel.d.ts +1 -1
  155. package/dist/lib/codex-manager/theme-settings-panel.d.ts.map +1 -1
  156. package/dist/lib/codex-manager/theme-settings-panel.js +0 -1
  157. package/dist/lib/codex-manager/unified-settings-controller.js +0 -1
  158. package/dist/lib/codex-manager/unified-settings-entry.js +0 -1
  159. package/dist/lib/codex-manager.d.ts +2 -4
  160. package/dist/lib/codex-manager.d.ts.map +1 -1
  161. package/dist/lib/codex-manager.js +219 -2578
  162. package/dist/lib/codex-manager.js.map +1 -1
  163. package/dist/lib/config-schema.d.ts +32 -0
  164. package/dist/lib/config-schema.d.ts.map +1 -0
  165. package/dist/lib/config-schema.js +96 -0
  166. package/dist/lib/config.d.ts.map +1 -1
  167. package/dist/lib/config.js +60 -104
  168. package/dist/lib/constants.js +0 -1
  169. package/dist/lib/context-overflow.js +0 -1
  170. package/dist/lib/dashboard-settings.js +0 -1
  171. package/dist/lib/entitlement-cache.js +0 -1
  172. package/dist/lib/env-parsing.js +0 -1
  173. package/dist/lib/errors.js +0 -1
  174. package/dist/lib/forecast.js +0 -1
  175. package/dist/lib/fs-retry.d.ts +46 -0
  176. package/dist/lib/fs-retry.d.ts.map +1 -1
  177. package/dist/lib/fs-retry.js +74 -6
  178. package/dist/lib/health.js +0 -1
  179. package/dist/lib/index.js +0 -1
  180. package/dist/lib/integration-generators.js +0 -1
  181. package/dist/lib/live-account-sync.js +0 -1
  182. package/dist/lib/local-bridge.js +0 -1
  183. package/dist/lib/local-client-tokens.js +0 -1
  184. package/dist/lib/logger.js +0 -1
  185. package/dist/lib/model-capability-matrix.js +0 -1
  186. package/dist/lib/named-backup-export.js +0 -1
  187. package/dist/lib/oc-chatgpt-import-adapter.js +0 -1
  188. package/dist/lib/oc-chatgpt-orchestrator.js +0 -1
  189. package/dist/lib/oc-chatgpt-target-detection.js +0 -1
  190. package/dist/lib/parallel-probe.js +0 -1
  191. package/dist/lib/policy/runtime-policy.js +0 -1
  192. package/dist/lib/preemptive-quota-scheduler.js +0 -1
  193. package/dist/lib/proactive-refresh.js +0 -1
  194. package/dist/lib/prompts/codex-host-bridge.js +0 -1
  195. package/dist/lib/prompts/codex.d.ts +3 -11
  196. package/dist/lib/prompts/codex.d.ts.map +1 -1
  197. package/dist/lib/prompts/codex.js +4 -12
  198. package/dist/lib/prompts/fetch-utils.js +0 -1
  199. package/dist/lib/prompts/host-codex-prompt.js +0 -1
  200. package/dist/lib/quota-cache.d.ts.map +1 -1
  201. package/dist/lib/quota-cache.js +15 -43
  202. package/dist/lib/quota-probe.js +0 -1
  203. package/dist/lib/quota-readiness.js +0 -1
  204. package/dist/lib/recovery/constants.js +0 -1
  205. package/dist/lib/recovery/index.js +0 -1
  206. package/dist/lib/recovery/storage.d.ts.map +1 -1
  207. package/dist/lib/recovery/storage.js +30 -51
  208. package/dist/lib/recovery/storage.js.map +1 -1
  209. package/dist/lib/recovery/types.js +0 -1
  210. package/dist/lib/recovery.js +0 -1
  211. package/dist/lib/refresh-guardian.js +0 -1
  212. package/dist/lib/refresh-lease.d.ts.map +1 -1
  213. package/dist/lib/refresh-lease.js +1 -4
  214. package/dist/lib/refresh-queue.js +0 -1
  215. package/dist/lib/request/error-classification.d.ts +75 -0
  216. package/dist/lib/request/error-classification.d.ts.map +1 -0
  217. package/dist/lib/request/error-classification.js +295 -0
  218. package/dist/lib/request/failover-config.js +0 -1
  219. package/dist/lib/request/failure-policy.js +0 -1
  220. package/dist/lib/request/fetch-helpers.d.ts +10 -114
  221. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  222. package/dist/lib/request/fetch-helpers.js +7 -589
  223. package/dist/lib/request/headers.d.ts +33 -0
  224. package/dist/lib/request/headers.d.ts.map +1 -0
  225. package/dist/lib/request/headers.js +64 -0
  226. package/dist/lib/request/helpers/input-utils.js +0 -1
  227. package/dist/lib/request/helpers/model-map.d.ts +10 -0
  228. package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
  229. package/dist/lib/request/helpers/model-map.js +11 -1
  230. package/dist/lib/request/helpers/tool-utils.js +0 -1
  231. package/dist/lib/request/index.js +0 -1
  232. package/dist/lib/request/rate-limit-backoff.js +0 -1
  233. package/dist/lib/request/rate-limit-decision.d.ts +28 -0
  234. package/dist/lib/request/rate-limit-decision.d.ts.map +1 -0
  235. package/dist/lib/request/rate-limit-decision.js +191 -0
  236. package/dist/lib/request/request-attempt-budget.js +0 -1
  237. package/dist/lib/request/request-init.js +0 -1
  238. package/dist/lib/request/request-resilience.js +0 -1
  239. package/dist/lib/request/request-transformer.js +0 -1
  240. package/dist/lib/request/response-compaction.js +0 -1
  241. package/dist/lib/request/response-handler.js +0 -1
  242. package/dist/lib/request/response-metadata.js +0 -1
  243. package/dist/lib/request/stream-failover-runtime.d.ts +8 -0
  244. package/dist/lib/request/stream-failover-runtime.d.ts.map +1 -0
  245. package/dist/lib/request/stream-failover-runtime.js +149 -0
  246. package/dist/lib/request/stream-failover.js +0 -1
  247. package/dist/lib/request/token-refresh.d.ts +30 -0
  248. package/dist/lib/request/token-refresh.d.ts.map +1 -0
  249. package/dist/lib/request/token-refresh.js +116 -0
  250. package/dist/lib/request/url-rewriting.d.ts +24 -0
  251. package/dist/lib/request/url-rewriting.d.ts.map +1 -0
  252. package/dist/lib/request/url-rewriting.js +153 -0
  253. package/dist/lib/request/wait-utils.js +0 -1
  254. package/dist/lib/rotation.d.ts +1 -1
  255. package/dist/lib/rotation.d.ts.map +1 -1
  256. package/dist/lib/rotation.js +0 -1
  257. package/dist/lib/routing-mutex.js +0 -1
  258. package/dist/lib/routing-profiles.js +0 -1
  259. package/dist/lib/runtime/account-check-helpers.js +0 -1
  260. package/dist/lib/runtime/account-check-types.js +0 -1
  261. package/dist/lib/runtime/account-check.js +0 -1
  262. package/dist/lib/runtime/account-health-check.js +0 -1
  263. package/dist/lib/runtime/account-manager-cache-entry.js +0 -1
  264. package/dist/lib/runtime/account-manager-cache.js +0 -1
  265. package/dist/lib/runtime/account-pool.js +0 -1
  266. package/dist/lib/runtime/account-scope.js +0 -1
  267. package/dist/lib/runtime/account-select-event.js +0 -1
  268. package/dist/lib/runtime/account-selection.js +0 -1
  269. package/dist/lib/runtime/account-state.js +0 -1
  270. package/dist/lib/runtime/account-status.js +0 -1
  271. package/dist/lib/runtime/account-storage-scope-entry.js +0 -1
  272. package/dist/lib/runtime/app-bind.js +0 -1
  273. package/dist/lib/runtime/auth-facade.js +0 -1
  274. package/dist/lib/runtime/browser-oauth-flow.js +0 -1
  275. package/dist/lib/runtime/capability-boost.js +0 -1
  276. package/dist/lib/runtime/config-toml.js +0 -1
  277. package/dist/lib/runtime/event-handler.js +0 -1
  278. package/dist/lib/runtime/first-run.d.ts +80 -0
  279. package/dist/lib/runtime/first-run.d.ts.map +1 -0
  280. package/dist/lib/runtime/first-run.js +327 -0
  281. package/dist/lib/runtime/flagged-verify-types.js +0 -1
  282. package/dist/lib/runtime/hydrate-emails.js +0 -1
  283. package/dist/lib/runtime/live-sync-entry.js +0 -1
  284. package/dist/lib/runtime/live-sync.js +0 -1
  285. package/dist/lib/runtime/loader-setup.js +0 -1
  286. package/dist/lib/runtime/login-menu-accounts.js +0 -1
  287. package/dist/lib/runtime/manual-oauth-flow.js +0 -1
  288. package/dist/lib/runtime/oauth-browser-flow.js +0 -1
  289. package/dist/lib/runtime/preemptive-quota.js +0 -1
  290. package/dist/lib/runtime/quota-headers.js +0 -1
  291. package/dist/lib/runtime/quota-probe.js +0 -1
  292. package/dist/lib/runtime/quota-settings.js +0 -1
  293. package/dist/lib/runtime/refresh-guardian-entry.js +0 -1
  294. package/dist/lib/runtime/refresh-guardian.js +0 -1
  295. package/dist/lib/runtime/request-init.js +0 -1
  296. package/dist/lib/runtime/rotation-account-selection.d.ts +38 -0
  297. package/dist/lib/runtime/rotation-account-selection.d.ts.map +1 -0
  298. package/dist/lib/runtime/rotation-account-selection.js +172 -0
  299. package/dist/lib/runtime/rotation-proxy-state.d.ts +54 -0
  300. package/dist/lib/runtime/rotation-proxy-state.d.ts.map +1 -0
  301. package/dist/lib/runtime/rotation-proxy-state.js +56 -0
  302. package/dist/lib/runtime/rotation-server-types.d.ts +57 -0
  303. package/dist/lib/runtime/rotation-server-types.d.ts.map +1 -0
  304. package/dist/lib/runtime/rotation-server-types.js +1 -0
  305. package/dist/lib/runtime/rotation-storage-meta.d.ts +40 -0
  306. package/dist/lib/runtime/rotation-storage-meta.d.ts.map +1 -0
  307. package/dist/lib/runtime/rotation-storage-meta.js +143 -0
  308. package/dist/lib/runtime/rotation-token-refresh.d.ts +25 -0
  309. package/dist/lib/runtime/rotation-token-refresh.d.ts.map +1 -0
  310. package/dist/lib/runtime/rotation-token-refresh.js +99 -0
  311. package/dist/lib/runtime/runtime-current-account.d.ts.map +1 -1
  312. package/dist/lib/runtime/runtime-current-account.js +1 -4
  313. package/dist/lib/runtime/runtime-observability.js +0 -1
  314. package/dist/lib/runtime/runtime-services.js +0 -1
  315. package/dist/lib/runtime/session-affinity-entry.js +0 -1
  316. package/dist/lib/runtime/session-affinity.js +0 -1
  317. package/dist/lib/runtime/session-recovery.js +0 -1
  318. package/dist/lib/runtime/status-marker.js +0 -1
  319. package/dist/lib/runtime/storage-scope.js +0 -1
  320. package/dist/lib/runtime/toast.js +0 -1
  321. package/dist/lib/runtime/ui-runtime-entry.js +0 -1
  322. package/dist/lib/runtime/ui-runtime.js +0 -1
  323. package/dist/lib/runtime/verify-flagged.js +0 -1
  324. package/dist/lib/runtime-constants.js +0 -1
  325. package/dist/lib/runtime-paths.js +0 -1
  326. package/dist/lib/runtime-rotation-proxy.d.ts +7 -124
  327. package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
  328. package/dist/lib/runtime-rotation-proxy.js +614 -1353
  329. package/dist/lib/schemas.d.ts +3 -3
  330. package/dist/lib/schemas.js +1 -2
  331. package/dist/lib/session-affinity.js +0 -1
  332. package/dist/lib/shutdown.js +0 -1
  333. package/dist/lib/storage/account-clear-entry.js +0 -1
  334. package/dist/lib/storage/account-clear.js +0 -1
  335. package/dist/lib/storage/account-match-utils.js +0 -1
  336. package/dist/lib/storage/account-persistence.d.ts +1 -1
  337. package/dist/lib/storage/account-persistence.d.ts.map +1 -1
  338. package/dist/lib/storage/account-persistence.js +0 -1
  339. package/dist/lib/storage/account-port.d.ts +1 -1
  340. package/dist/lib/storage/account-port.d.ts.map +1 -1
  341. package/dist/lib/storage/account-port.js +0 -1
  342. package/dist/lib/storage/account-save-entry.d.ts +1 -1
  343. package/dist/lib/storage/account-save-entry.d.ts.map +1 -1
  344. package/dist/lib/storage/account-save-entry.js +0 -1
  345. package/dist/lib/storage/account-save.d.ts +1 -1
  346. package/dist/lib/storage/account-save.d.ts.map +1 -1
  347. package/dist/lib/storage/account-save.js +0 -1
  348. package/dist/lib/storage/account-snapshot.js +0 -1
  349. package/dist/lib/storage/backup-metadata-builder.d.ts +1 -1
  350. package/dist/lib/storage/backup-metadata-builder.d.ts.map +1 -1
  351. package/dist/lib/storage/backup-metadata-builder.js +0 -1
  352. package/dist/lib/storage/backup-metadata.d.ts +13 -0
  353. package/dist/lib/storage/backup-metadata.d.ts.map +1 -1
  354. package/dist/lib/storage/backup-metadata.js +0 -1
  355. package/dist/lib/storage/backup-paths.js +0 -1
  356. package/dist/lib/storage/backup-restore.d.ts +1 -1
  357. package/dist/lib/storage/backup-restore.d.ts.map +1 -1
  358. package/dist/lib/storage/backup-restore.js +0 -1
  359. package/dist/lib/storage/cache-artifacts.js +0 -1
  360. package/dist/lib/storage/error-hints.js +0 -1
  361. package/dist/lib/storage/file-paths.js +0 -1
  362. package/dist/lib/storage/fixture-guards.d.ts +1 -1
  363. package/dist/lib/storage/fixture-guards.d.ts.map +1 -1
  364. package/dist/lib/storage/fixture-guards.js +0 -1
  365. package/dist/lib/storage/flagged-entry.js +0 -1
  366. package/dist/lib/storage/flagged-load-entry.d.ts +1 -1
  367. package/dist/lib/storage/flagged-load-entry.d.ts.map +1 -1
  368. package/dist/lib/storage/flagged-load-entry.js +0 -1
  369. package/dist/lib/storage/flagged-save-entry.d.ts +1 -1
  370. package/dist/lib/storage/flagged-save-entry.d.ts.map +1 -1
  371. package/dist/lib/storage/flagged-save-entry.js +0 -1
  372. package/dist/lib/storage/flagged-storage-file.d.ts +1 -1
  373. package/dist/lib/storage/flagged-storage-file.d.ts.map +1 -1
  374. package/dist/lib/storage/flagged-storage-file.js +0 -1
  375. package/dist/lib/storage/flagged-storage-io.d.ts +1 -1
  376. package/dist/lib/storage/flagged-storage-io.d.ts.map +1 -1
  377. package/dist/lib/storage/flagged-storage-io.js +0 -1
  378. package/dist/lib/storage/flagged-storage.d.ts +1 -1
  379. package/dist/lib/storage/flagged-storage.d.ts.map +1 -1
  380. package/dist/lib/storage/flagged-storage.js +15 -2
  381. package/dist/lib/storage/flagged-storage.js.map +1 -1
  382. package/dist/lib/storage/gitignore.js +0 -1
  383. package/dist/lib/storage/hash.js +0 -1
  384. package/dist/lib/storage/health.js +0 -1
  385. package/dist/lib/storage/identity.js +0 -1
  386. package/dist/lib/storage/import-export.d.ts +1 -1
  387. package/dist/lib/storage/import-export.d.ts.map +1 -1
  388. package/dist/lib/storage/import-export.js +0 -1
  389. package/dist/lib/storage/metadata-section.js +0 -1
  390. package/dist/lib/storage/migrations.d.ts +5 -48
  391. package/dist/lib/storage/migrations.d.ts.map +1 -1
  392. package/dist/lib/storage/migrations.js +5 -2
  393. package/dist/lib/storage/named-backup-entry.js +0 -1
  394. package/dist/lib/storage/named-backups-entry.d.ts +1 -1
  395. package/dist/lib/storage/named-backups-entry.d.ts.map +1 -1
  396. package/dist/lib/storage/named-backups-entry.js +0 -1
  397. package/dist/lib/storage/named-backups.js +0 -1
  398. package/dist/lib/storage/path-state.js +0 -1
  399. package/dist/lib/storage/paths.js +0 -1
  400. package/dist/lib/storage/project-migration.d.ts +1 -1
  401. package/dist/lib/storage/project-migration.d.ts.map +1 -1
  402. package/dist/lib/storage/project-migration.js +0 -1
  403. package/dist/lib/storage/public-types.d.ts +70 -0
  404. package/dist/lib/storage/public-types.d.ts.map +1 -0
  405. package/dist/lib/storage/public-types.js +6 -0
  406. package/dist/lib/storage/record-utils.js +0 -1
  407. package/dist/lib/storage/restore-assessment.d.ts +1 -1
  408. package/dist/lib/storage/restore-assessment.d.ts.map +1 -1
  409. package/dist/lib/storage/restore-assessment.js +0 -1
  410. package/dist/lib/storage/restore-backup-entry.d.ts +1 -1
  411. package/dist/lib/storage/restore-backup-entry.d.ts.map +1 -1
  412. package/dist/lib/storage/restore-backup-entry.js +0 -1
  413. package/dist/lib/storage/restore-metadata.d.ts +1 -1
  414. package/dist/lib/storage/restore-metadata.d.ts.map +1 -1
  415. package/dist/lib/storage/restore-metadata.js +0 -1
  416. package/dist/lib/storage/restore.d.ts +1 -1
  417. package/dist/lib/storage/restore.d.ts.map +1 -1
  418. package/dist/lib/storage/restore.js +0 -1
  419. package/dist/lib/storage/save-retry.d.ts +10 -0
  420. package/dist/lib/storage/save-retry.d.ts.map +1 -0
  421. package/dist/lib/storage/save-retry.js +26 -0
  422. package/dist/lib/storage/snapshot-inspectors.d.ts +1 -1
  423. package/dist/lib/storage/snapshot-inspectors.d.ts.map +1 -1
  424. package/dist/lib/storage/snapshot-inspectors.js +0 -1
  425. package/dist/lib/storage/storage-parser.d.ts +1 -1
  426. package/dist/lib/storage/storage-parser.d.ts.map +1 -1
  427. package/dist/lib/storage/storage-parser.js +0 -1
  428. package/dist/lib/storage/transactions.d.ts +1 -1
  429. package/dist/lib/storage/transactions.d.ts.map +1 -1
  430. package/dist/lib/storage/transactions.js +0 -1
  431. package/dist/lib/storage.d.ts +3 -24
  432. package/dist/lib/storage.d.ts.map +1 -1
  433. package/dist/lib/storage.js +17 -32
  434. package/dist/lib/table-formatter.js +0 -1
  435. package/dist/lib/tools/hashline-tools.js +0 -1
  436. package/dist/lib/types.js +0 -1
  437. package/dist/lib/ui/ansi.js +0 -1
  438. package/dist/lib/ui/auth-menu-builder.d.ts +89 -0
  439. package/dist/lib/ui/auth-menu-builder.d.ts.map +1 -0
  440. package/dist/lib/ui/auth-menu-builder.js +350 -0
  441. package/dist/lib/ui/auth-menu.d.ts +2 -76
  442. package/dist/lib/ui/auth-menu.d.ts.map +1 -1
  443. package/dist/lib/ui/auth-menu.js +3 -349
  444. package/dist/lib/ui/confirm.js +0 -1
  445. package/dist/lib/ui/copy.d.ts +2 -0
  446. package/dist/lib/ui/copy.d.ts.map +1 -1
  447. package/dist/lib/ui/copy.js +2 -0
  448. package/dist/lib/ui/copy.js.map +1 -1
  449. package/dist/lib/ui/display-width.js +0 -1
  450. package/dist/lib/ui/format.js +0 -1
  451. package/dist/lib/ui/index.d.ts +10 -0
  452. package/dist/lib/ui/index.d.ts.map +1 -0
  453. package/dist/lib/ui/index.js +9 -0
  454. package/dist/lib/ui/runtime.js +0 -1
  455. package/dist/lib/ui/select.js +0 -1
  456. package/dist/lib/ui/theme.js +0 -1
  457. package/dist/lib/ui/ui-copy.d.ts +159 -0
  458. package/dist/lib/ui/ui-copy.d.ts.map +1 -0
  459. package/dist/lib/ui/ui-copy.js +163 -0
  460. package/dist/lib/unified-settings.js +0 -1
  461. package/dist/lib/update-notice.js +0 -1
  462. package/dist/lib/usage/index.js +0 -1
  463. package/dist/lib/usage/ledger.js +0 -1
  464. package/dist/lib/usage/pricing.js +0 -1
  465. package/dist/lib/usage/redaction.js +0 -1
  466. package/dist/lib/usage/types.js +0 -1
  467. package/dist/lib/utils.js +0 -1
  468. package/package.json +8 -8
  469. package/scripts/postinstall.js +34 -265
  470. package/scripts/preuninstall.js +2 -2
@@ -2,39 +2,9 @@ import { readFile, writeFile, rm } from "node:fs/promises";
2
2
  import { homedir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import process from "node:process";
5
+ import { withFileOperationRetry } from "../../fs-retry.js";
5
6
  import { unbindCodexAppRuntimeRotation } from "../../runtime/app-bind.js";
6
7
  const PLUGIN_NAME = "codex-multi-auth";
7
- const FILE_RETRY_CODES = new Set([
8
- "EBUSY",
9
- "EPERM",
10
- "EAGAIN",
11
- "ENOTEMPTY",
12
- "EACCES",
13
- ]);
14
- const FILE_RETRY_MAX_ATTEMPTS = 6;
15
- const FILE_RETRY_BASE_DELAY_MS = 25;
16
- const FILE_RETRY_JITTER_MS = 20;
17
- function isRetryableFsError(error) {
18
- if (!(error instanceof Error))
19
- return false;
20
- const code = error.code;
21
- return typeof code === "string" && FILE_RETRY_CODES.has(code);
22
- }
23
- async function withFileOperationRetry(operation) {
24
- for (let attempt = 1;; attempt += 1) {
25
- try {
26
- return await operation();
27
- }
28
- catch (error) {
29
- if (!isRetryableFsError(error) || attempt >= FILE_RETRY_MAX_ATTEMPTS) {
30
- throw error;
31
- }
32
- const jitter = Math.floor(Math.random() * FILE_RETRY_JITTER_MS);
33
- const delayMs = FILE_RETRY_BASE_DELAY_MS * 2 ** (attempt - 1) + jitter;
34
- await new Promise((resolve) => setTimeout(resolve, delayMs));
35
- }
36
- }
37
- }
38
8
  export function resolveUninstallPaths(platform = process.platform, env = process.env, home = homedir()) {
39
9
  const isWindows = platform === "win32";
40
10
  const appData = (env["APPDATA"] ?? "").trim();
@@ -74,7 +44,7 @@ export function printUninstallUsage() {
74
44
  " --clear-accounts Also remove stored account credentials (irreversible)",
75
45
  "",
76
46
  "Behavior:",
77
- " Reverses all postinstall changes: unbinds Codex app, removes OS launchers,",
47
+ " Reverses all first-run setup changes: unbinds Codex app, removes OS launchers,",
78
48
  " strips plugin from Codex.json, and clears the plugin cache.",
79
49
  "",
80
50
  "Recommended order (npm@7+ no longer fires preuninstall lifecycle scripts,",
@@ -285,4 +255,3 @@ export async function runUninstallCommand(args, deps = {}) {
285
255
  }
286
256
  return partialFailure ? 1 : 0;
287
257
  }
288
- //# sourceMappingURL=uninstall.js.map
@@ -32,4 +32,3 @@ export async function runUnpinCommand(deps) {
32
32
  logInfo(`Cleared manual pin (was account ${previousPin + 1}). Runtime routing will resume hybrid rotation.`);
33
33
  return 0;
34
34
  }
35
- //# sourceMappingURL=unpin.js.map
@@ -344,4 +344,3 @@ export async function runUsageCommand(args, deps = {}) {
344
344
  logInfo(rendered);
345
345
  return 0;
346
346
  }
347
- //# sourceMappingURL=usage.js.map
@@ -329,4 +329,3 @@ export function printVerifyUsage() {
329
329
  " - `--paths` and `--flagged` cannot be combined; use `verify-flagged` when you only need flagged checks.",
330
330
  ].join("\n"));
331
331
  }
332
- //# sourceMappingURL=verify.js.map
@@ -195,4 +195,3 @@ export function printWhySelectedUsage() {
195
195
  "Exits 0 when an account is selected, 1 when no account can be selected.",
196
196
  ].join("\n"));
197
197
  }
198
- //# sourceMappingURL=why-selected.js.map
@@ -93,4 +93,3 @@ export async function runWorkspaceCommand(args, deps) {
93
93
  logInfo(`Account ${parsedAccount} now using workspace ${parsedWorkspace}: [${targetName}]${idSuffix ? ` (id:${idSuffix})` : ""}.`);
94
94
  return 0;
95
95
  }
96
- //# sourceMappingURL=workspace.js.map
@@ -1,5 +1,5 @@
1
1
  import { type DashboardAccountSortMode, type DashboardDisplaySettings } from "../dashboard-settings.js";
2
- import type { UI_COPY } from "../ui/copy.js";
2
+ import type { UI_COPY } from "../ui/ui-copy.js";
3
3
  import { getUiRuntimeOptions } from "../ui/runtime.js";
4
4
  export type DashboardDisplaySettingKey = "menuShowStatusBadge" | "menuShowCurrentBadge" | "menuShowLastUsed" | "menuShowQuotaSummary" | "menuShowQuotaCooldown" | "menuShowDetailsForUnselectedRows" | "menuShowFetchStatus" | "menuHighlightCurrentRow" | "menuSortEnabled" | "menuSortPinCurrent" | "menuSortQuickSwitchVisibleRow";
5
5
  export interface DashboardDisplaySettingOption {
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-display-panel.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/dashboard-display-panel.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAE7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,MAAM,0BAA0B,GACnC,qBAAqB,GACrB,sBAAsB,GACtB,kBAAkB,GAClB,sBAAsB,GACtB,uBAAuB,GACvB,kCAAkC,GAClC,qBAAqB,GACrB,yBAAyB,GACzB,iBAAiB,GACjB,oBAAoB,GACpB,+BAA+B,CAAC;AAEnC,MAAM,WAAW,6BAA6B;IAC7C,GAAG,EAAE,0BAA0B,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,0BAA0B,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEtB,MAAM,WAAW,yBAAyB;IACzC,sBAAsB,EAAE,CACvB,QAAQ,EAAE,wBAAwB,KAC9B,wBAAwB,CAAC;IAC9B,uBAAuB,EAAE,CACxB,QAAQ,EAAE,wBAAwB,EAClC,EAAE,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC1C,QAAQ,EAAE,0BAA0B,GAAG,cAAc,GAAG,gBAAgB,KACpE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,2BAA2B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1D,kBAAkB,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,MAAM,CAAC;IAC/D,qBAAqB,EAAE,CACtB,QAAQ,EAAE,wBAAwB,KAC9B,iBAAiB,GAAG,eAAe,CAAC;IACzC,oBAAoB,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,KAAK,MAAM,CAAC;IAC5E,6BAA6B,EAAE,CAC9B,KAAK,EAAE,wBAAwB,EAC/B,IAAI,EAAE,SAAS,CAAC,MAAM,wBAAwB,CAAC,EAAE,KAC7C,wBAAwB,CAAC;IAC9B,yBAAyB,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACpE,uBAAuB,EAAE,SAAS,CAAC,MAAM,wBAAwB,CAAC,EAAE,CAAC;IACrE,OAAO,EAAE,OAAO,OAAO,CAAC;CACxB;AAED,wBAAsB,2BAA2B,CAChD,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,yBAAyB,GAC7B,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAiM1C"}
1
+ {"version":3,"file":"dashboard-display-panel.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/dashboard-display-panel.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAE7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,MAAM,0BAA0B,GACnC,qBAAqB,GACrB,sBAAsB,GACtB,kBAAkB,GAClB,sBAAsB,GACtB,uBAAuB,GACvB,kCAAkC,GAClC,qBAAqB,GACrB,yBAAyB,GACzB,iBAAiB,GACjB,oBAAoB,GACpB,+BAA+B,CAAC;AAEnC,MAAM,WAAW,6BAA6B;IAC7C,GAAG,EAAE,0BAA0B,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,0BAA0B,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEtB,MAAM,WAAW,yBAAyB;IACzC,sBAAsB,EAAE,CACvB,QAAQ,EAAE,wBAAwB,KAC9B,wBAAwB,CAAC;IAC9B,uBAAuB,EAAE,CACxB,QAAQ,EAAE,wBAAwB,EAClC,EAAE,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC1C,QAAQ,EAAE,0BAA0B,GAAG,cAAc,GAAG,gBAAgB,KACpE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,2BAA2B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1D,kBAAkB,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,MAAM,CAAC;IAC/D,qBAAqB,EAAE,CACtB,QAAQ,EAAE,wBAAwB,KAC9B,iBAAiB,GAAG,eAAe,CAAC;IACzC,oBAAoB,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,KAAK,MAAM,CAAC;IAC5E,6BAA6B,EAAE,CAC9B,KAAK,EAAE,wBAAwB,EAC/B,IAAI,EAAE,SAAS,CAAC,MAAM,wBAAwB,CAAC,EAAE,KAC7C,wBAAwB,CAAC;IAC9B,yBAAyB,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACpE,uBAAuB,EAAE,SAAS,CAAC,MAAM,wBAAwB,CAAC,EAAE,CAAC;IACrE,OAAO,EAAE,OAAO,OAAO,CAAC;CACxB;AAED,wBAAsB,2BAA2B,CAChD,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,yBAAyB,GAC7B,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAiM1C"}
@@ -184,4 +184,3 @@ export async function promptDashboardDisplayPanel(initial, deps) {
184
184
  draft = { ...draft, [result.key]: !draft[result.key] };
185
185
  }
186
186
  }
187
- //# sourceMappingURL=dashboard-display-panel.js.map
@@ -16,4 +16,3 @@ export function formatMenuQuotaTtl(ttlMs) {
16
16
  }
17
17
  return `${ttlMs}ms`;
18
18
  }
19
- //# sourceMappingURL=dashboard-formatters.js.map
@@ -14,4 +14,3 @@ export async function configureDashboardSettingsController(currentSettings, deps
14
14
  deps.applyUiThemeFromDashboardSettings(merged);
15
15
  return merged;
16
16
  }
17
- //# sourceMappingURL=dashboard-settings-controller.js.map
@@ -92,4 +92,3 @@ export function dashboardSettingsDataEqual(left, right, deps) {
92
92
  JSON.stringify(deps.normalizeStatuslineFields(left.menuStatuslineFields)) ===
93
93
  JSON.stringify(deps.normalizeStatuslineFields(right.menuStatuslineFields)));
94
94
  }
95
- //# sourceMappingURL=dashboard-settings-data.js.map
@@ -10,4 +10,3 @@ export async function configureDashboardSettingsEntry(currentSettings, deps) {
10
10
  writeLine: deps.writeLine,
11
11
  });
12
12
  }
13
- //# sourceMappingURL=dashboard-settings-entry.js.map
@@ -27,4 +27,3 @@ export async function promptExperimentalSettingsEntry(params) {
27
27
  getAppliedLabel: params.getAppliedLabel,
28
28
  });
29
29
  }
30
- //# sourceMappingURL=experimental-settings-entry.js.map
@@ -228,4 +228,3 @@ export async function promptExperimentalSettingsMenu(params) {
228
228
  ], params.getExperimentalSelectOptions(params.ui, copy.experimentalHelpStatus, params.mapExperimentalStatusHotkey));
229
229
  }
230
230
  }
231
- //# sourceMappingURL=experimental-settings-prompt.js.map
@@ -1,4 +1,4 @@
1
- import { UI_COPY } from "../ui/copy.js";
1
+ import { UI_COPY } from "../ui/ui-copy.js";
2
2
  export function getExperimentalSelectOptions(ui, help, onInput) {
3
3
  return {
4
4
  message: UI_COPY.settings.experimentalTitle,
@@ -31,4 +31,3 @@ export function mapExperimentalMenuHotkey(raw) {
31
31
  export function mapExperimentalStatusHotkey(raw) {
32
32
  return raw.toLowerCase() === "q" ? { type: "back" } : undefined;
33
33
  }
34
- //# sourceMappingURL=experimental-settings-schema.js.map
@@ -13,4 +13,3 @@ export async function loadExperimentalSyncTargetEntry(params) {
13
13
  normalizeAccountStorage: params.normalizeAccountStorage,
14
14
  });
15
15
  }
16
- //# sourceMappingURL=experimental-sync-target-entry.js.map
@@ -36,4 +36,3 @@ export async function loadExperimentalSyncTargetState(deps) {
36
36
  };
37
37
  }
38
38
  }
39
- //# sourceMappingURL=experimental-sync-target.js.map
@@ -441,4 +441,3 @@ export async function runReport(args, deps) {
441
441
  }
442
442
  return 0;
443
443
  }
444
- //# sourceMappingURL=forecast-report-commands.js.map
@@ -1,15 +1,15 @@
1
1
  import type { ForecastAccountResult } from "../forecast.js";
2
2
  import type { CodexQuotaSnapshot } from "../quota-probe.js";
3
3
  import { type AccountMetadataV3, type AccountStorageV3 } from "../storage.js";
4
+ import { isRetryableStorageWriteError, saveAccountsWithRetry } from "../storage/save-retry.js";
4
5
  import type { TokenFailure } from "../types.js";
6
+ export { isRetryableStorageWriteError, saveAccountsWithRetry };
5
7
  export type AccountIdentityMatch = Pick<AccountMetadataV3, "accountId" | "email" | "refreshToken">;
6
8
  export type RefreshedAccountPatch = Pick<AccountMetadataV3, "refreshToken" | "accessToken" | "expiresAt"> & {
7
9
  email?: AccountMetadataV3["email"];
8
10
  accountId?: AccountMetadataV3["accountId"];
9
11
  accountIdSource?: AccountMetadataV3["accountIdSource"];
10
12
  };
11
- export declare function isRetryableStorageWriteError(error: unknown): boolean;
12
- export declare function saveAccountsWithRetry(storage: AccountStorageV3, saveAccounts: (storage: AccountStorageV3) => Promise<void>): Promise<void>;
13
13
  export declare function applyRefreshedAccountPatch(account: AccountMetadataV3, patch: RefreshedAccountPatch): void;
14
14
  export declare function persistRefreshedAccountPatch(storage: AccountStorageV3, accountMatch: AccountIdentityMatch, patch: RefreshedAccountPatch, loadAccounts: () => Promise<AccountStorageV3 | null>, saveAccounts: (storage: AccountStorageV3) => Promise<void>): Promise<void>;
15
15
  export declare function serializeForecastResults(results: ForecastAccountResult[], liveQuotaByIndex: Map<number, CodexQuotaSnapshot>, refreshFailures: Map<number, TokenFailure>, formatQuotaSnapshotLine: (snapshot: CodexQuotaSnapshot) => string): Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"forecast-report-shared.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/forecast-report-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACtC,iBAAiB,EACjB,WAAW,GAAG,OAAO,GAAG,cAAc,CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACvC,iBAAiB,EACjB,cAAc,GAAG,aAAa,GAAG,WAAW,CAC5C,GAAG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGpE;AAED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,qBAAqB,GAC1B,IAAI,CASN;AAED,wBAAsB,4BAA4B,CACjD,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,oBAAoB,EAClC,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,EACpD,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,qBAAqB,EAAE,EAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACjD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1C,uBAAuB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,GAC/D,KAAK,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC,CA0BD"}
1
+ {"version":3,"file":"forecast-report-shared.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/forecast-report-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,4BAA4B,EAC5B,qBAAqB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACtC,iBAAiB,EACjB,WAAW,GAAG,OAAO,GAAG,cAAc,CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACvC,iBAAiB,EACjB,cAAc,GAAG,aAAa,GAAG,WAAW,CAC5C,GAAG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,qBAAqB,GAC1B,IAAI,CASN;AAED,wBAAsB,4BAA4B,CACjD,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,oBAAoB,EAClC,KAAK,EAAE,qBAAqB,EAC5B,YAAY,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,EACpD,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,qBAAqB,EAAE,EAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACjD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1C,uBAAuB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,GAC/D,KAAK,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC,CA0BD"}
@@ -1,24 +1,9 @@
1
1
  import { findMatchingAccountIndex, } from "../storage.js";
2
- import { sleep } from "../utils.js";
3
- const RETRYABLE_STORAGE_WRITE_CODES = new Set(["EBUSY", "EPERM"]);
4
- export function isRetryableStorageWriteError(error) {
5
- const code = error?.code;
6
- return typeof code === "string" && RETRYABLE_STORAGE_WRITE_CODES.has(code);
7
- }
8
- export async function saveAccountsWithRetry(storage, saveAccounts) {
9
- for (let attempt = 0;; attempt += 1) {
10
- try {
11
- await saveAccounts(storage);
12
- return;
13
- }
14
- catch (error) {
15
- if (!isRetryableStorageWriteError(error) || attempt >= 3) {
16
- throw error;
17
- }
18
- await sleep(10 * 2 ** attempt);
19
- }
20
- }
21
- }
2
+ import { isRetryableStorageWriteError, saveAccountsWithRetry, } from "../storage/save-retry.js";
3
+ // Moved to lib/storage/save-retry.ts so lib/accounts.ts can use the retry
4
+ // helper without importing this codex-manager module; re-exported here to
5
+ // preserve the historical import surface.
6
+ export { isRetryableStorageWriteError, saveAccountsWithRetry };
22
7
  export function applyRefreshedAccountPatch(account, patch) {
23
8
  account.refreshToken = patch.refreshToken;
24
9
  account.accessToken = patch.accessToken;
@@ -76,4 +61,3 @@ export function serializeForecastResults(results, liveQuotaByIndex, refreshFailu
76
61
  };
77
62
  });
78
63
  }
79
- //# sourceMappingURL=forecast-report-shared.js.map
@@ -0,0 +1,11 @@
1
+ import type { ForecastAccountResult } from "../../forecast.js";
2
+ import type { ModelFamily } from "../../prompts/codex.js";
3
+ import { type PromptTone } from "./text-style.js";
4
+ export declare function styleAccountDetailText(detail: string, fallbackTone?: PromptTone): string;
5
+ export declare function riskTone(level: ForecastAccountResult["riskLevel"]): "success" | "warning" | "danger";
6
+ export declare function availabilityTone(availability: ForecastAccountResult["availability"]): "success" | "warning" | "danger";
7
+ export declare function formatRateLimitEntry(account: {
8
+ rateLimitResetTimes?: Record<string, number | undefined>;
9
+ }, now: number, family?: ModelFamily): string | null;
10
+ export declare function formatBackupSavedAt(mtimeMs: number): string;
11
+ //# sourceMappingURL=account-formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-formatters.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/formatters/account-formatters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAEN,KAAK,UAAU,EAEf,MAAM,iBAAiB,CAAC;AAKzB,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,UAAoB,GAChC,MAAM,CA4CR;AAED,wBAAgB,QAAQ,CACvB,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC,GACvC,SAAS,GAAG,SAAS,GAAG,QAAQ,CAIlC;AAED,wBAAgB,gBAAgB,CAC/B,YAAY,EAAE,qBAAqB,CAAC,cAAc,CAAC,GACjD,SAAS,GAAG,SAAS,GAAG,QAAQ,CAIlC;AAED,wBAAgB,oBAAoB,CACnC,OAAO,EAAE;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE,EACrE,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,WAAqB,GAC3B,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ3D"}
@@ -0,0 +1,79 @@
1
+ import { formatWaitTime } from "../../accounts.js";
2
+ import { formatRateLimitEntry as formatAccountRateLimitEntry } from "../../runtime/account-status.js";
3
+ import { styleQuotaSummary } from "./quota-formatters.js";
4
+ import { collapseWhitespace, stylePromptText, } from "./text-style.js";
5
+ // Exported for unit tests: tone precedence (danger before warning) is
6
+ // security/UX-relevant — a failure whose text contains "unavailable" must
7
+ // render red, not be downgraded to yellow. See test/codex-manager-detail-tone.test.ts.
8
+ export function styleAccountDetailText(detail, fallbackTone = "muted") {
9
+ const compact = collapseWhitespace(detail);
10
+ if (!compact)
11
+ return stylePromptText("", fallbackTone);
12
+ const quotaMatch = compact.match(/^(.*?)\(([^()]*\d{1,3}%[^()]*)\)(.*)$/);
13
+ if (quotaMatch) {
14
+ const prefix = (quotaMatch[1] ?? "").trim();
15
+ const quota = (quotaMatch[2] ?? "").trim();
16
+ const suffix = (quotaMatch[3] ?? "").trim();
17
+ // danger wins across the WHOLE detail: a failure keyword anywhere — even
18
+ // trapped inside the (…%) quota segment, e.g.
19
+ // "signed in and working (live check failed: … 0%)" — must keep the prefix
20
+ // red, never let a "working"/"ok" prefix render green over a real failure.
21
+ const detailHasFailure = /failed|error|rate-limited/i.test(compact);
22
+ const prefixTone = detailHasFailure
23
+ ? "danger"
24
+ : /\b(ok|working|succeeded|valid)\b/i.test(prefix)
25
+ ? "success"
26
+ : fallbackTone;
27
+ const suffixTone =
28
+ // danger wins first: a real failure whose text happens to contain
29
+ // "unavailable"/"not available" (e.g. a 5xx "service not available")
30
+ // must render red, not be downgraded to a yellow warning.
31
+ /failed|error/i.test(suffix)
32
+ ? "danger"
33
+ : /re-login|stale|warning|retry|fallback|unavailable|not available/i.test(suffix)
34
+ ? "warning"
35
+ : "muted";
36
+ const chunks = [];
37
+ if (prefix)
38
+ chunks.push(stylePromptText(prefix, prefixTone));
39
+ chunks.push(`(${styleQuotaSummary(quota)})`);
40
+ if (suffix)
41
+ chunks.push(stylePromptText(suffix, suffixTone));
42
+ return chunks.join(" ");
43
+ }
44
+ if (/rate-limited/i.test(compact))
45
+ return stylePromptText(compact, "danger");
46
+ if (/failed|error/i.test(compact))
47
+ return stylePromptText(compact, "danger");
48
+ if (/re-login|stale|warning|fallback|unavailable|not available/i.test(compact))
49
+ return stylePromptText(compact, "warning");
50
+ if (/\b(ok|working|succeeded|valid)\b/i.test(compact))
51
+ return stylePromptText(compact, "success");
52
+ return stylePromptText(compact, fallbackTone);
53
+ }
54
+ export function riskTone(level) {
55
+ if (level === "low")
56
+ return "success";
57
+ if (level === "medium")
58
+ return "warning";
59
+ return "danger";
60
+ }
61
+ export function availabilityTone(availability) {
62
+ if (availability === "ready")
63
+ return "success";
64
+ if (availability === "delayed")
65
+ return "warning";
66
+ return "danger";
67
+ }
68
+ export function formatRateLimitEntry(account, now, family = "codex") {
69
+ return formatAccountRateLimitEntry(account, now, formatWaitTime, family);
70
+ }
71
+ export function formatBackupSavedAt(mtimeMs) {
72
+ return new Date(mtimeMs).toLocaleString(undefined, {
73
+ month: "short",
74
+ day: "numeric",
75
+ year: "numeric",
76
+ hour: "numeric",
77
+ minute: "2-digit",
78
+ });
79
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./account-formatters.js";
2
+ export * from "./model-formatters.js";
3
+ export * from "./quota-formatters.js";
4
+ export * from "./text-style.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/formatters/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./account-formatters.js";
2
+ export * from "./model-formatters.js";
3
+ export * from "./quota-formatters.js";
4
+ export * from "./text-style.js";
@@ -0,0 +1,12 @@
1
+ import type { ModelFamily } from "../../prompts/codex.js";
2
+ import { getModelCapabilities } from "../../request/helpers/model-map.js";
3
+ export interface ModelInspection {
4
+ requested: string;
5
+ normalized: string;
6
+ remapped: boolean;
7
+ promptFamily: ModelFamily;
8
+ capabilities: ReturnType<typeof getModelCapabilities>;
9
+ }
10
+ export declare function inspectRequestedModel(requestedModel: string): ModelInspection;
11
+ export declare function formatModelInspection(model: ModelInspection): string;
12
+ //# sourceMappingURL=model-formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-formatters.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/formatters/model-formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACN,oBAAoB,EAGpB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;CACtD;AAED,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe,CAU7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAUpE"}
@@ -0,0 +1,23 @@
1
+ import { getModelCapabilities, getModelProfile, resolveNormalizedModel, } from "../../request/helpers/model-map.js";
2
+ export function inspectRequestedModel(requestedModel) {
3
+ const normalized = resolveNormalizedModel(requestedModel);
4
+ const profile = getModelProfile(normalized);
5
+ return {
6
+ requested: requestedModel,
7
+ normalized,
8
+ remapped: requestedModel !== normalized,
9
+ promptFamily: profile.promptFamily,
10
+ capabilities: getModelCapabilities(normalized),
11
+ };
12
+ }
13
+ export function formatModelInspection(model) {
14
+ const route = model.remapped
15
+ ? `${model.requested} -> ${model.normalized}`
16
+ : model.normalized;
17
+ return [
18
+ route,
19
+ `prompt family ${model.promptFamily}`,
20
+ `tool search ${model.capabilities.toolSearch ? "yes" : "no"}`,
21
+ `computer use ${model.capabilities.computerUse ? "yes" : "no"}`,
22
+ ].join(" | ");
23
+ }
@@ -0,0 +1,11 @@
1
+ import type { DashboardDisplaySettings } from "../../dashboard-settings.js";
2
+ import type { QuotaCacheEntry } from "../../quota-cache.js";
3
+ import { type CodexQuotaSnapshot, fetchCodexQuotaSnapshot } from "../../quota-probe.js";
4
+ export declare function styleQuotaSummary(summary: string): string;
5
+ export declare function formatQuotaSnapshotForDashboard(snapshot: Awaited<ReturnType<typeof fetchCodexQuotaSnapshot>>, settings: DashboardDisplaySettings): string;
6
+ export declare function quotaCacheEntryToSnapshot(entry: QuotaCacheEntry): CodexQuotaSnapshot;
7
+ export declare function formatCompactQuotaWindowLabel(windowMinutes: number | undefined): string;
8
+ export declare function formatCompactQuotaPart(windowMinutes: number | undefined, usedPercent: number | undefined): string | null;
9
+ export declare function formatCompactQuotaSnapshot(snapshot: CodexQuotaSnapshot, now?: number): string;
10
+ export declare function formatAccountQuotaSummary(entry: QuotaCacheEntry, now?: number): string;
11
+ //# sourceMappingURL=quota-formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-formatters.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/formatters/quota-formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACN,KAAK,kBAAkB,EACvB,uBAAuB,EAEvB,MAAM,sBAAsB,CAAC;AAY9B,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8BzD;AAED,wBAAgB,+BAA+B,CAC9C,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,EAC7D,QAAQ,EAAE,wBAAwB,GAChC,MAAM,CAGR;AAED,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,eAAe,GACpB,kBAAkB,CAgBpB;AAED,wBAAgB,6BAA6B,CAC5C,aAAa,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAOR;AAED,wBAAgB,sBAAsB,CACrC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,0BAA0B,CACzC,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,SAAa,GACd,MAAM,CAuBR;AAED,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,eAAe,EACtB,GAAG,SAAa,GACd,MAAM,CAuBR"}
@@ -0,0 +1,104 @@
1
+ import { formatQuotaSnapshotLine, } from "../../quota-probe.js";
2
+ import { isQuotaCacheEntryExhausted, quotaLeftPercentFromUsed, } from "../../quota-readiness.js";
3
+ import { quotaToneFromLeftPercent } from "../../ui/format.js";
4
+ import { collapseWhitespace, joinStyledSegments, stylePromptText, } from "./text-style.js";
5
+ export function styleQuotaSummary(summary) {
6
+ const normalized = collapseWhitespace(summary);
7
+ if (!normalized)
8
+ return stylePromptText(summary, "muted");
9
+ const segments = normalized
10
+ .split("|")
11
+ .map((segment) => segment.trim())
12
+ .filter(Boolean);
13
+ if (segments.length === 0)
14
+ return stylePromptText(normalized, "muted");
15
+ const rendered = segments.map((segment) => {
16
+ if (/rate-limited/i.test(segment)) {
17
+ return stylePromptText(segment, "danger");
18
+ }
19
+ const match = segment.match(/^([0-9a-zA-Z]+)\s+(\d{1,3})%$/);
20
+ if (!match) {
21
+ return stylePromptText(segment, "muted");
22
+ }
23
+ const windowLabel = match[1] ?? "";
24
+ const leftPercent = Math.max(0, Math.min(100, Number.parseInt(match[2] ?? "", 10)));
25
+ if (!Number.isFinite(leftPercent)) {
26
+ return stylePromptText(segment, "muted");
27
+ }
28
+ const tone = quotaToneFromLeftPercent(leftPercent);
29
+ return `${stylePromptText(windowLabel, "muted")} ${stylePromptText(`${leftPercent}%`, tone)}`;
30
+ });
31
+ return joinStyledSegments(rendered);
32
+ }
33
+ export function formatQuotaSnapshotForDashboard(snapshot, settings) {
34
+ if (!settings.showQuotaDetails)
35
+ return "live session OK";
36
+ return `live session OK (${formatCompactQuotaSnapshot(snapshot)})`;
37
+ }
38
+ export function quotaCacheEntryToSnapshot(entry) {
39
+ return {
40
+ status: entry.status,
41
+ planType: entry.planType,
42
+ model: entry.model,
43
+ primary: {
44
+ usedPercent: entry.primary.usedPercent,
45
+ windowMinutes: entry.primary.windowMinutes,
46
+ resetAtMs: entry.primary.resetAtMs,
47
+ },
48
+ secondary: {
49
+ usedPercent: entry.secondary.usedPercent,
50
+ windowMinutes: entry.secondary.windowMinutes,
51
+ resetAtMs: entry.secondary.resetAtMs,
52
+ },
53
+ };
54
+ }
55
+ export function formatCompactQuotaWindowLabel(windowMinutes) {
56
+ if (!windowMinutes || !Number.isFinite(windowMinutes) || windowMinutes <= 0) {
57
+ return "quota";
58
+ }
59
+ if (windowMinutes % 1440 === 0)
60
+ return `${windowMinutes / 1440}d`;
61
+ if (windowMinutes % 60 === 0)
62
+ return `${windowMinutes / 60}h`;
63
+ return `${windowMinutes}m`;
64
+ }
65
+ export function formatCompactQuotaPart(windowMinutes, usedPercent) {
66
+ const label = formatCompactQuotaWindowLabel(windowMinutes);
67
+ if (typeof usedPercent !== "number" || !Number.isFinite(usedPercent)) {
68
+ return null;
69
+ }
70
+ const left = quotaLeftPercentFromUsed(usedPercent);
71
+ return `${label} ${left}%`;
72
+ }
73
+ export function formatCompactQuotaSnapshot(snapshot, now = Date.now()) {
74
+ const parts = [
75
+ formatCompactQuotaPart(snapshot.primary.windowMinutes, snapshot.primary.usedPercent),
76
+ formatCompactQuotaPart(snapshot.secondary.windowMinutes, snapshot.secondary.usedPercent),
77
+ ].filter((value) => typeof value === "string" && value.length > 0);
78
+ if (snapshot.status === 429) {
79
+ parts.push("rate-limited");
80
+ }
81
+ if (isQuotaCacheEntryExhausted(snapshot, now)) {
82
+ parts.push("quota-exhausted");
83
+ }
84
+ if (parts.length > 0) {
85
+ return parts.join(" | ");
86
+ }
87
+ return formatQuotaSnapshotLine(snapshot);
88
+ }
89
+ export function formatAccountQuotaSummary(entry, now = Date.now()) {
90
+ const parts = [
91
+ formatCompactQuotaPart(entry.primary.windowMinutes, entry.primary.usedPercent),
92
+ formatCompactQuotaPart(entry.secondary.windowMinutes, entry.secondary.usedPercent),
93
+ ].filter((value) => typeof value === "string" && value.length > 0);
94
+ if (entry.status === 429) {
95
+ parts.push("rate-limited");
96
+ }
97
+ if (isQuotaCacheEntryExhausted(entry, now)) {
98
+ parts.push("quota-exhausted");
99
+ }
100
+ if (parts.length > 0) {
101
+ return parts.join(" | ");
102
+ }
103
+ return formatQuotaSnapshotLine(quotaCacheEntryToSnapshot(entry));
104
+ }
@@ -0,0 +1,14 @@
1
+ export type PromptTone = "accent" | "success" | "warning" | "danger" | "muted";
2
+ export declare function stylePromptText(text: string, tone: PromptTone): string;
3
+ export declare function collapseWhitespace(value: string): string;
4
+ export declare function formatReasonLabel(reason: string | undefined): string | undefined;
5
+ export declare function extractErrorMessageFromPayload(payload: unknown): string | undefined;
6
+ export declare function parseStructuredErrorMessage(raw: string): string | undefined;
7
+ export declare function normalizeFailureDetail(message: string | undefined, reason: string | undefined): string;
8
+ export declare function joinStyledSegments(parts: string[]): string;
9
+ export declare function formatResultSummary(segments: ReadonlyArray<{
10
+ text: string;
11
+ tone: PromptTone;
12
+ }>): string;
13
+ export declare function stringifyLogArgs(args: unknown[]): string;
14
+ //# sourceMappingURL=text-style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-style.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/formatters/text-style.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAqBtE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,OAAO,GACd,MAAM,GAAG,SAAS,CAyBpB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoB3E;AAED,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAQR;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAI1D;AAED,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GACzD,MAAM,CAKR;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAWxD"}