codex-multi-auth 2.3.0-beta.1 → 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 (460) hide show
  1. package/README.md +4 -4
  2. package/config/schema/config.schema.json +268 -21
  3. package/dist/index.js +0 -1
  4. package/dist/lib/account-policy.js +0 -1
  5. package/dist/lib/accounts/rate-limits.js +0 -1
  6. package/dist/lib/accounts.d.ts +3 -8
  7. package/dist/lib/accounts.d.ts.map +1 -1
  8. package/dist/lib/accounts.js +2 -3
  9. package/dist/lib/audit.js +0 -1
  10. package/dist/lib/auth/auth.js +0 -1
  11. package/dist/lib/auth/browser.js +0 -1
  12. package/dist/lib/auth/device-auth.js +0 -1
  13. package/dist/lib/auth/index.js +0 -1
  14. package/dist/lib/auth/org-override.js +0 -1
  15. package/dist/lib/auth/server.js +0 -1
  16. package/dist/lib/auth/token-utils.js +0 -1
  17. package/dist/lib/auth-rate-limit.js +0 -1
  18. package/dist/lib/budget-guard.js +0 -1
  19. package/dist/lib/capability-policy.js +0 -1
  20. package/dist/lib/circuit-breaker.js +0 -1
  21. package/dist/lib/cli.js +1 -2
  22. package/dist/lib/codex-cli/index.js +0 -1
  23. package/dist/lib/codex-cli/observability.js +0 -1
  24. package/dist/lib/codex-cli/state.js +0 -1
  25. package/dist/lib/codex-cli/sync.d.ts +2 -2
  26. package/dist/lib/codex-cli/sync.d.ts.map +1 -1
  27. package/dist/lib/codex-cli/sync.js +1 -2
  28. package/dist/lib/codex-cli/writer.js +0 -1
  29. package/dist/lib/codex-manager/account-credentials.d.ts +13 -0
  30. package/dist/lib/codex-manager/account-credentials.d.ts.map +1 -0
  31. package/dist/lib/codex-manager/account-credentials.js +55 -0
  32. package/dist/lib/codex-manager/account-manager-commands.js +0 -1
  33. package/dist/lib/codex-manager/account-pool-write.d.ts +1 -1
  34. package/dist/lib/codex-manager/account-pool-write.d.ts.map +1 -1
  35. package/dist/lib/codex-manager/account-pool-write.js +0 -1
  36. package/dist/lib/codex-manager/backend-category-entry.js +0 -1
  37. package/dist/lib/codex-manager/backend-category-helpers.js +0 -1
  38. package/dist/lib/codex-manager/backend-category-prompt.js +0 -1
  39. package/dist/lib/codex-manager/backend-settings-controller.js +0 -1
  40. package/dist/lib/codex-manager/backend-settings-entry.js +0 -1
  41. package/dist/lib/codex-manager/backend-settings-helpers.js +0 -1
  42. package/dist/lib/codex-manager/backend-settings-prompt.js +0 -1
  43. package/dist/lib/codex-manager/backend-settings-schema.js +0 -1
  44. package/dist/lib/codex-manager/behavior-settings-panel.d.ts +1 -1
  45. package/dist/lib/codex-manager/behavior-settings-panel.d.ts.map +1 -1
  46. package/dist/lib/codex-manager/behavior-settings-panel.js +0 -1
  47. package/dist/lib/codex-manager/commands/account.js +0 -1
  48. package/dist/lib/codex-manager/commands/best.d.ts +8 -0
  49. package/dist/lib/codex-manager/commands/best.d.ts.map +1 -1
  50. package/dist/lib/codex-manager/commands/best.js +64 -1
  51. package/dist/lib/codex-manager/commands/bridge.js +0 -1
  52. package/dist/lib/codex-manager/commands/budget.js +0 -1
  53. package/dist/lib/codex-manager/commands/check.js +0 -1
  54. package/dist/lib/codex-manager/commands/config-explain.js +0 -1
  55. package/dist/lib/codex-manager/commands/debug-bundle.js +0 -1
  56. package/dist/lib/codex-manager/commands/forecast.js +0 -1
  57. package/dist/lib/codex-manager/commands/init-config.js +0 -1
  58. package/dist/lib/codex-manager/commands/integrations.js +0 -1
  59. package/dist/lib/codex-manager/commands/models.js +0 -1
  60. package/dist/lib/codex-manager/commands/monitor.js +0 -1
  61. package/dist/lib/codex-manager/commands/report.js +0 -1
  62. package/dist/lib/codex-manager/commands/rotation.d.ts.map +1 -1
  63. package/dist/lib/codex-manager/commands/rotation.js +1 -4
  64. package/dist/lib/codex-manager/commands/status.js +0 -1
  65. package/dist/lib/codex-manager/commands/switch.js +0 -1
  66. package/dist/lib/codex-manager/commands/uninstall.d.ts.map +1 -1
  67. package/dist/lib/codex-manager/commands/uninstall.js +2 -33
  68. package/dist/lib/codex-manager/commands/unpin.js +0 -1
  69. package/dist/lib/codex-manager/commands/usage.js +0 -1
  70. package/dist/lib/codex-manager/commands/verify.js +0 -1
  71. package/dist/lib/codex-manager/commands/why-selected.js +0 -1
  72. package/dist/lib/codex-manager/commands/workspace.js +0 -1
  73. package/dist/lib/codex-manager/dashboard-display-panel.d.ts +1 -1
  74. package/dist/lib/codex-manager/dashboard-display-panel.d.ts.map +1 -1
  75. package/dist/lib/codex-manager/dashboard-display-panel.js +0 -1
  76. package/dist/lib/codex-manager/dashboard-formatters.js +0 -1
  77. package/dist/lib/codex-manager/dashboard-settings-controller.js +0 -1
  78. package/dist/lib/codex-manager/dashboard-settings-data.js +0 -1
  79. package/dist/lib/codex-manager/dashboard-settings-entry.js +0 -1
  80. package/dist/lib/codex-manager/experimental-settings-entry.js +0 -1
  81. package/dist/lib/codex-manager/experimental-settings-prompt.js +0 -1
  82. package/dist/lib/codex-manager/experimental-settings-schema.js +1 -2
  83. package/dist/lib/codex-manager/experimental-sync-target-entry.js +0 -1
  84. package/dist/lib/codex-manager/experimental-sync-target.js +0 -1
  85. package/dist/lib/codex-manager/forecast-report-commands.js +0 -1
  86. package/dist/lib/codex-manager/forecast-report-shared.d.ts +2 -2
  87. package/dist/lib/codex-manager/forecast-report-shared.d.ts.map +1 -1
  88. package/dist/lib/codex-manager/forecast-report-shared.js +5 -21
  89. package/dist/lib/codex-manager/formatters/account-formatters.d.ts +11 -0
  90. package/dist/lib/codex-manager/formatters/account-formatters.d.ts.map +1 -0
  91. package/dist/lib/codex-manager/formatters/account-formatters.js +79 -0
  92. package/dist/lib/codex-manager/formatters/index.d.ts +5 -0
  93. package/dist/lib/codex-manager/formatters/index.d.ts.map +1 -0
  94. package/dist/lib/codex-manager/formatters/index.js +4 -0
  95. package/dist/lib/codex-manager/formatters/model-formatters.d.ts +12 -0
  96. package/dist/lib/codex-manager/formatters/model-formatters.d.ts.map +1 -0
  97. package/dist/lib/codex-manager/formatters/model-formatters.js +23 -0
  98. package/dist/lib/codex-manager/formatters/quota-formatters.d.ts +11 -0
  99. package/dist/lib/codex-manager/formatters/quota-formatters.d.ts.map +1 -0
  100. package/dist/lib/codex-manager/formatters/quota-formatters.js +104 -0
  101. package/dist/lib/codex-manager/formatters/text-style.d.ts +14 -0
  102. package/dist/lib/codex-manager/formatters/text-style.d.ts.map +1 -0
  103. package/dist/lib/codex-manager/formatters/text-style.js +111 -0
  104. package/dist/lib/codex-manager/health-check.d.ts +14 -0
  105. package/dist/lib/codex-manager/health-check.d.ts.map +1 -0
  106. package/dist/lib/codex-manager/health-check.js +278 -0
  107. package/dist/lib/codex-manager/help.js +0 -1
  108. package/dist/lib/codex-manager/login-action-panel.d.ts +4 -0
  109. package/dist/lib/codex-manager/login-action-panel.d.ts.map +1 -0
  110. package/dist/lib/codex-manager/login-action-panel.js +238 -0
  111. package/dist/lib/codex-manager/login-flow.d.ts +17 -0
  112. package/dist/lib/codex-manager/login-flow.d.ts.map +1 -0
  113. package/dist/lib/codex-manager/login-flow.js +387 -0
  114. package/dist/lib/codex-manager/login-menu-actions.d.ts +20 -0
  115. package/dist/lib/codex-manager/login-menu-actions.d.ts.map +1 -0
  116. package/dist/lib/codex-manager/login-menu-actions.js +303 -0
  117. package/dist/lib/codex-manager/login-menu-data.d.ts +19 -0
  118. package/dist/lib/codex-manager/login-menu-data.d.ts.map +1 -0
  119. package/dist/lib/codex-manager/login-menu-data.js +378 -0
  120. package/dist/lib/codex-manager/login-oauth.d.ts +55 -0
  121. package/dist/lib/codex-manager/login-oauth.d.ts.map +1 -0
  122. package/dist/lib/codex-manager/login-oauth.js +345 -0
  123. package/dist/lib/codex-manager/manual-callback.js +0 -1
  124. package/dist/lib/codex-manager/persist-selected-account.d.ts +24 -0
  125. package/dist/lib/codex-manager/persist-selected-account.d.ts.map +1 -0
  126. package/dist/lib/codex-manager/persist-selected-account.js +107 -0
  127. package/dist/lib/codex-manager/quota-cache-helpers.d.ts +18 -0
  128. package/dist/lib/codex-manager/quota-cache-helpers.d.ts.map +1 -0
  129. package/dist/lib/codex-manager/quota-cache-helpers.js +112 -0
  130. package/dist/lib/codex-manager/rate-limit-markers.js +0 -1
  131. package/dist/lib/codex-manager/repair-commands.js +0 -1
  132. package/dist/lib/codex-manager/settings-hub/backend.js +1 -2
  133. package/dist/lib/codex-manager/settings-hub/dashboard.js +1 -2
  134. package/dist/lib/codex-manager/settings-hub/experimental.js +1 -2
  135. package/dist/lib/codex-manager/settings-hub/index.js +1 -2
  136. package/dist/lib/codex-manager/settings-hub/shared.js +0 -1
  137. package/dist/lib/codex-manager/settings-hub-entry.js +0 -1
  138. package/dist/lib/codex-manager/settings-hub-menu.js +0 -1
  139. package/dist/lib/codex-manager/settings-hub-prompt.js +0 -1
  140. package/dist/lib/codex-manager/settings-hub.js +0 -1
  141. package/dist/lib/codex-manager/settings-panels.js +0 -1
  142. package/dist/lib/codex-manager/settings-persist-utils.js +0 -1
  143. package/dist/lib/codex-manager/settings-preview.js +0 -1
  144. package/dist/lib/codex-manager/settings-write-queue.js +0 -1
  145. package/dist/lib/codex-manager/statusline-order.js +0 -1
  146. package/dist/lib/codex-manager/statusline-settings-panel.d.ts +1 -1
  147. package/dist/lib/codex-manager/statusline-settings-panel.d.ts.map +1 -1
  148. package/dist/lib/codex-manager/statusline-settings-panel.js +0 -1
  149. package/dist/lib/codex-manager/theme-settings-panel.d.ts +1 -1
  150. package/dist/lib/codex-manager/theme-settings-panel.d.ts.map +1 -1
  151. package/dist/lib/codex-manager/theme-settings-panel.js +0 -1
  152. package/dist/lib/codex-manager/unified-settings-controller.js +0 -1
  153. package/dist/lib/codex-manager/unified-settings-entry.js +0 -1
  154. package/dist/lib/codex-manager.d.ts +2 -4
  155. package/dist/lib/codex-manager.d.ts.map +1 -1
  156. package/dist/lib/codex-manager.js +219 -2570
  157. package/dist/lib/config-schema.d.ts +32 -0
  158. package/dist/lib/config-schema.d.ts.map +1 -0
  159. package/dist/lib/config-schema.js +96 -0
  160. package/dist/lib/config.d.ts.map +1 -1
  161. package/dist/lib/config.js +60 -104
  162. package/dist/lib/constants.js +0 -1
  163. package/dist/lib/context-overflow.js +0 -1
  164. package/dist/lib/dashboard-settings.js +0 -1
  165. package/dist/lib/entitlement-cache.js +0 -1
  166. package/dist/lib/env-parsing.js +0 -1
  167. package/dist/lib/errors.js +0 -1
  168. package/dist/lib/forecast.js +0 -1
  169. package/dist/lib/fs-retry.d.ts +46 -0
  170. package/dist/lib/fs-retry.d.ts.map +1 -1
  171. package/dist/lib/fs-retry.js +74 -6
  172. package/dist/lib/health.js +0 -1
  173. package/dist/lib/index.js +0 -1
  174. package/dist/lib/integration-generators.js +0 -1
  175. package/dist/lib/live-account-sync.js +0 -1
  176. package/dist/lib/local-bridge.js +0 -1
  177. package/dist/lib/local-client-tokens.js +0 -1
  178. package/dist/lib/logger.js +0 -1
  179. package/dist/lib/model-capability-matrix.js +0 -1
  180. package/dist/lib/named-backup-export.js +0 -1
  181. package/dist/lib/oc-chatgpt-import-adapter.js +0 -1
  182. package/dist/lib/oc-chatgpt-orchestrator.js +0 -1
  183. package/dist/lib/oc-chatgpt-target-detection.js +0 -1
  184. package/dist/lib/parallel-probe.js +0 -1
  185. package/dist/lib/policy/runtime-policy.js +0 -1
  186. package/dist/lib/preemptive-quota-scheduler.js +0 -1
  187. package/dist/lib/proactive-refresh.js +0 -1
  188. package/dist/lib/prompts/codex-host-bridge.js +0 -1
  189. package/dist/lib/prompts/codex.d.ts +3 -11
  190. package/dist/lib/prompts/codex.d.ts.map +1 -1
  191. package/dist/lib/prompts/codex.js +4 -12
  192. package/dist/lib/prompts/fetch-utils.js +0 -1
  193. package/dist/lib/prompts/host-codex-prompt.js +0 -1
  194. package/dist/lib/quota-cache.d.ts.map +1 -1
  195. package/dist/lib/quota-cache.js +15 -43
  196. package/dist/lib/quota-probe.js +0 -1
  197. package/dist/lib/quota-readiness.js +0 -1
  198. package/dist/lib/recovery/constants.js +0 -1
  199. package/dist/lib/recovery/index.js +0 -1
  200. package/dist/lib/recovery/storage.d.ts.map +1 -1
  201. package/dist/lib/recovery/storage.js +30 -51
  202. package/dist/lib/recovery/storage.js.map +1 -1
  203. package/dist/lib/recovery/types.js +0 -1
  204. package/dist/lib/recovery.js +0 -1
  205. package/dist/lib/refresh-guardian.js +0 -1
  206. package/dist/lib/refresh-lease.d.ts.map +1 -1
  207. package/dist/lib/refresh-lease.js +1 -4
  208. package/dist/lib/refresh-queue.js +0 -1
  209. package/dist/lib/request/error-classification.d.ts +75 -0
  210. package/dist/lib/request/error-classification.d.ts.map +1 -0
  211. package/dist/lib/request/error-classification.js +295 -0
  212. package/dist/lib/request/failover-config.js +0 -1
  213. package/dist/lib/request/failure-policy.js +0 -1
  214. package/dist/lib/request/fetch-helpers.d.ts +10 -114
  215. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  216. package/dist/lib/request/fetch-helpers.js +7 -589
  217. package/dist/lib/request/headers.d.ts +33 -0
  218. package/dist/lib/request/headers.d.ts.map +1 -0
  219. package/dist/lib/request/headers.js +64 -0
  220. package/dist/lib/request/helpers/input-utils.js +0 -1
  221. package/dist/lib/request/helpers/model-map.d.ts +10 -0
  222. package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
  223. package/dist/lib/request/helpers/model-map.js +11 -1
  224. package/dist/lib/request/helpers/tool-utils.js +0 -1
  225. package/dist/lib/request/index.js +0 -1
  226. package/dist/lib/request/rate-limit-backoff.js +0 -1
  227. package/dist/lib/request/rate-limit-decision.d.ts +28 -0
  228. package/dist/lib/request/rate-limit-decision.d.ts.map +1 -0
  229. package/dist/lib/request/rate-limit-decision.js +191 -0
  230. package/dist/lib/request/request-attempt-budget.js +0 -1
  231. package/dist/lib/request/request-init.js +0 -1
  232. package/dist/lib/request/request-resilience.js +0 -1
  233. package/dist/lib/request/request-transformer.js +0 -1
  234. package/dist/lib/request/response-compaction.js +0 -1
  235. package/dist/lib/request/response-handler.js +0 -1
  236. package/dist/lib/request/response-metadata.js +0 -1
  237. package/dist/lib/request/stream-failover-runtime.d.ts +8 -0
  238. package/dist/lib/request/stream-failover-runtime.d.ts.map +1 -0
  239. package/dist/lib/request/stream-failover-runtime.js +149 -0
  240. package/dist/lib/request/stream-failover.js +0 -1
  241. package/dist/lib/request/token-refresh.d.ts +30 -0
  242. package/dist/lib/request/token-refresh.d.ts.map +1 -0
  243. package/dist/lib/request/token-refresh.js +116 -0
  244. package/dist/lib/request/url-rewriting.d.ts +24 -0
  245. package/dist/lib/request/url-rewriting.d.ts.map +1 -0
  246. package/dist/lib/request/url-rewriting.js +153 -0
  247. package/dist/lib/request/wait-utils.js +0 -1
  248. package/dist/lib/rotation.d.ts +1 -1
  249. package/dist/lib/rotation.d.ts.map +1 -1
  250. package/dist/lib/rotation.js +0 -1
  251. package/dist/lib/routing-mutex.js +0 -1
  252. package/dist/lib/routing-profiles.js +0 -1
  253. package/dist/lib/runtime/account-check-helpers.js +0 -1
  254. package/dist/lib/runtime/account-check-types.js +0 -1
  255. package/dist/lib/runtime/account-check.js +0 -1
  256. package/dist/lib/runtime/account-health-check.js +0 -1
  257. package/dist/lib/runtime/account-manager-cache-entry.js +0 -1
  258. package/dist/lib/runtime/account-manager-cache.js +0 -1
  259. package/dist/lib/runtime/account-pool.js +0 -1
  260. package/dist/lib/runtime/account-scope.js +0 -1
  261. package/dist/lib/runtime/account-select-event.js +0 -1
  262. package/dist/lib/runtime/account-selection.js +0 -1
  263. package/dist/lib/runtime/account-state.js +0 -1
  264. package/dist/lib/runtime/account-status.js +0 -1
  265. package/dist/lib/runtime/account-storage-scope-entry.js +0 -1
  266. package/dist/lib/runtime/app-bind.js +0 -1
  267. package/dist/lib/runtime/auth-facade.js +0 -1
  268. package/dist/lib/runtime/browser-oauth-flow.js +0 -1
  269. package/dist/lib/runtime/capability-boost.js +0 -1
  270. package/dist/lib/runtime/config-toml.js +0 -1
  271. package/dist/lib/runtime/event-handler.js +0 -1
  272. package/dist/lib/runtime/first-run.d.ts +80 -0
  273. package/dist/lib/runtime/first-run.d.ts.map +1 -0
  274. package/dist/lib/runtime/first-run.js +327 -0
  275. package/dist/lib/runtime/flagged-verify-types.js +0 -1
  276. package/dist/lib/runtime/hydrate-emails.js +0 -1
  277. package/dist/lib/runtime/live-sync-entry.js +0 -1
  278. package/dist/lib/runtime/live-sync.js +0 -1
  279. package/dist/lib/runtime/loader-setup.js +0 -1
  280. package/dist/lib/runtime/login-menu-accounts.js +0 -1
  281. package/dist/lib/runtime/manual-oauth-flow.js +0 -1
  282. package/dist/lib/runtime/oauth-browser-flow.js +0 -1
  283. package/dist/lib/runtime/preemptive-quota.js +0 -1
  284. package/dist/lib/runtime/quota-headers.js +0 -1
  285. package/dist/lib/runtime/quota-probe.js +0 -1
  286. package/dist/lib/runtime/quota-settings.js +0 -1
  287. package/dist/lib/runtime/refresh-guardian-entry.js +0 -1
  288. package/dist/lib/runtime/refresh-guardian.js +0 -1
  289. package/dist/lib/runtime/request-init.js +0 -1
  290. package/dist/lib/runtime/rotation-account-selection.d.ts +38 -0
  291. package/dist/lib/runtime/rotation-account-selection.d.ts.map +1 -0
  292. package/dist/lib/runtime/rotation-account-selection.js +172 -0
  293. package/dist/lib/runtime/rotation-proxy-state.d.ts +54 -0
  294. package/dist/lib/runtime/rotation-proxy-state.d.ts.map +1 -0
  295. package/dist/lib/runtime/rotation-proxy-state.js +56 -0
  296. package/dist/lib/runtime/rotation-server-types.d.ts +57 -0
  297. package/dist/lib/runtime/rotation-server-types.d.ts.map +1 -0
  298. package/dist/lib/runtime/rotation-server-types.js +1 -0
  299. package/dist/lib/runtime/rotation-storage-meta.d.ts +40 -0
  300. package/dist/lib/runtime/rotation-storage-meta.d.ts.map +1 -0
  301. package/dist/lib/runtime/rotation-storage-meta.js +143 -0
  302. package/dist/lib/runtime/rotation-token-refresh.d.ts +25 -0
  303. package/dist/lib/runtime/rotation-token-refresh.d.ts.map +1 -0
  304. package/dist/lib/runtime/rotation-token-refresh.js +99 -0
  305. package/dist/lib/runtime/runtime-current-account.d.ts.map +1 -1
  306. package/dist/lib/runtime/runtime-current-account.js +1 -4
  307. package/dist/lib/runtime/runtime-observability.js +0 -1
  308. package/dist/lib/runtime/runtime-services.js +0 -1
  309. package/dist/lib/runtime/session-affinity-entry.js +0 -1
  310. package/dist/lib/runtime/session-affinity.js +0 -1
  311. package/dist/lib/runtime/session-recovery.js +0 -1
  312. package/dist/lib/runtime/status-marker.js +0 -1
  313. package/dist/lib/runtime/storage-scope.js +0 -1
  314. package/dist/lib/runtime/toast.js +0 -1
  315. package/dist/lib/runtime/ui-runtime-entry.js +0 -1
  316. package/dist/lib/runtime/ui-runtime.js +0 -1
  317. package/dist/lib/runtime/verify-flagged.js +0 -1
  318. package/dist/lib/runtime-constants.js +0 -1
  319. package/dist/lib/runtime-paths.js +0 -1
  320. package/dist/lib/runtime-rotation-proxy.d.ts +7 -124
  321. package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
  322. package/dist/lib/runtime-rotation-proxy.js +614 -1353
  323. package/dist/lib/schemas.d.ts +3 -3
  324. package/dist/lib/schemas.js +1 -2
  325. package/dist/lib/session-affinity.js +0 -1
  326. package/dist/lib/shutdown.js +0 -1
  327. package/dist/lib/storage/account-clear-entry.js +0 -1
  328. package/dist/lib/storage/account-clear.js +0 -1
  329. package/dist/lib/storage/account-match-utils.js +0 -1
  330. package/dist/lib/storage/account-persistence.d.ts +1 -1
  331. package/dist/lib/storage/account-persistence.d.ts.map +1 -1
  332. package/dist/lib/storage/account-persistence.js +0 -1
  333. package/dist/lib/storage/account-port.d.ts +1 -1
  334. package/dist/lib/storage/account-port.d.ts.map +1 -1
  335. package/dist/lib/storage/account-port.js +0 -1
  336. package/dist/lib/storage/account-save-entry.d.ts +1 -1
  337. package/dist/lib/storage/account-save-entry.d.ts.map +1 -1
  338. package/dist/lib/storage/account-save-entry.js +0 -1
  339. package/dist/lib/storage/account-save.d.ts +1 -1
  340. package/dist/lib/storage/account-save.d.ts.map +1 -1
  341. package/dist/lib/storage/account-save.js +0 -1
  342. package/dist/lib/storage/account-snapshot.js +0 -1
  343. package/dist/lib/storage/backup-metadata-builder.d.ts +1 -1
  344. package/dist/lib/storage/backup-metadata-builder.d.ts.map +1 -1
  345. package/dist/lib/storage/backup-metadata-builder.js +0 -1
  346. package/dist/lib/storage/backup-metadata.d.ts +13 -0
  347. package/dist/lib/storage/backup-metadata.d.ts.map +1 -1
  348. package/dist/lib/storage/backup-metadata.js +0 -1
  349. package/dist/lib/storage/backup-paths.js +0 -1
  350. package/dist/lib/storage/backup-restore.d.ts +1 -1
  351. package/dist/lib/storage/backup-restore.d.ts.map +1 -1
  352. package/dist/lib/storage/backup-restore.js +0 -1
  353. package/dist/lib/storage/cache-artifacts.js +0 -1
  354. package/dist/lib/storage/error-hints.js +0 -1
  355. package/dist/lib/storage/file-paths.js +0 -1
  356. package/dist/lib/storage/fixture-guards.d.ts +1 -1
  357. package/dist/lib/storage/fixture-guards.d.ts.map +1 -1
  358. package/dist/lib/storage/fixture-guards.js +0 -1
  359. package/dist/lib/storage/flagged-entry.js +0 -1
  360. package/dist/lib/storage/flagged-load-entry.d.ts +1 -1
  361. package/dist/lib/storage/flagged-load-entry.d.ts.map +1 -1
  362. package/dist/lib/storage/flagged-load-entry.js +0 -1
  363. package/dist/lib/storage/flagged-save-entry.d.ts +1 -1
  364. package/dist/lib/storage/flagged-save-entry.d.ts.map +1 -1
  365. package/dist/lib/storage/flagged-save-entry.js +0 -1
  366. package/dist/lib/storage/flagged-storage-file.d.ts +1 -1
  367. package/dist/lib/storage/flagged-storage-file.d.ts.map +1 -1
  368. package/dist/lib/storage/flagged-storage-file.js +0 -1
  369. package/dist/lib/storage/flagged-storage-io.d.ts +1 -1
  370. package/dist/lib/storage/flagged-storage-io.d.ts.map +1 -1
  371. package/dist/lib/storage/flagged-storage-io.js +0 -1
  372. package/dist/lib/storage/flagged-storage.d.ts +1 -1
  373. package/dist/lib/storage/flagged-storage.d.ts.map +1 -1
  374. package/dist/lib/storage/flagged-storage.js +15 -2
  375. package/dist/lib/storage/flagged-storage.js.map +1 -1
  376. package/dist/lib/storage/gitignore.js +0 -1
  377. package/dist/lib/storage/hash.js +0 -1
  378. package/dist/lib/storage/health.js +0 -1
  379. package/dist/lib/storage/identity.js +0 -1
  380. package/dist/lib/storage/import-export.d.ts +1 -1
  381. package/dist/lib/storage/import-export.d.ts.map +1 -1
  382. package/dist/lib/storage/import-export.js +0 -1
  383. package/dist/lib/storage/metadata-section.js +0 -1
  384. package/dist/lib/storage/migrations.d.ts +5 -48
  385. package/dist/lib/storage/migrations.d.ts.map +1 -1
  386. package/dist/lib/storage/migrations.js +5 -2
  387. package/dist/lib/storage/named-backup-entry.js +0 -1
  388. package/dist/lib/storage/named-backups-entry.d.ts +1 -1
  389. package/dist/lib/storage/named-backups-entry.d.ts.map +1 -1
  390. package/dist/lib/storage/named-backups-entry.js +0 -1
  391. package/dist/lib/storage/named-backups.js +0 -1
  392. package/dist/lib/storage/path-state.js +0 -1
  393. package/dist/lib/storage/paths.js +0 -1
  394. package/dist/lib/storage/project-migration.d.ts +1 -1
  395. package/dist/lib/storage/project-migration.d.ts.map +1 -1
  396. package/dist/lib/storage/project-migration.js +0 -1
  397. package/dist/lib/storage/public-types.d.ts +70 -0
  398. package/dist/lib/storage/public-types.d.ts.map +1 -0
  399. package/dist/lib/storage/public-types.js +6 -0
  400. package/dist/lib/storage/record-utils.js +0 -1
  401. package/dist/lib/storage/restore-assessment.d.ts +1 -1
  402. package/dist/lib/storage/restore-assessment.d.ts.map +1 -1
  403. package/dist/lib/storage/restore-assessment.js +0 -1
  404. package/dist/lib/storage/restore-backup-entry.d.ts +1 -1
  405. package/dist/lib/storage/restore-backup-entry.d.ts.map +1 -1
  406. package/dist/lib/storage/restore-backup-entry.js +0 -1
  407. package/dist/lib/storage/restore-metadata.d.ts +1 -1
  408. package/dist/lib/storage/restore-metadata.d.ts.map +1 -1
  409. package/dist/lib/storage/restore-metadata.js +0 -1
  410. package/dist/lib/storage/restore.d.ts +1 -1
  411. package/dist/lib/storage/restore.d.ts.map +1 -1
  412. package/dist/lib/storage/restore.js +0 -1
  413. package/dist/lib/storage/save-retry.d.ts +10 -0
  414. package/dist/lib/storage/save-retry.d.ts.map +1 -0
  415. package/dist/lib/storage/save-retry.js +26 -0
  416. package/dist/lib/storage/snapshot-inspectors.d.ts +1 -1
  417. package/dist/lib/storage/snapshot-inspectors.d.ts.map +1 -1
  418. package/dist/lib/storage/snapshot-inspectors.js +0 -1
  419. package/dist/lib/storage/storage-parser.d.ts +1 -1
  420. package/dist/lib/storage/storage-parser.d.ts.map +1 -1
  421. package/dist/lib/storage/storage-parser.js +0 -1
  422. package/dist/lib/storage/transactions.d.ts +1 -1
  423. package/dist/lib/storage/transactions.d.ts.map +1 -1
  424. package/dist/lib/storage/transactions.js +0 -1
  425. package/dist/lib/storage.d.ts +3 -24
  426. package/dist/lib/storage.d.ts.map +1 -1
  427. package/dist/lib/storage.js +17 -32
  428. package/dist/lib/table-formatter.js +0 -1
  429. package/dist/lib/tools/hashline-tools.js +0 -1
  430. package/dist/lib/types.js +0 -1
  431. package/dist/lib/ui/ansi.js +0 -1
  432. package/dist/lib/ui/auth-menu-builder.d.ts +89 -0
  433. package/dist/lib/ui/auth-menu-builder.d.ts.map +1 -0
  434. package/dist/lib/ui/auth-menu-builder.js +350 -0
  435. package/dist/lib/ui/auth-menu.d.ts +2 -76
  436. package/dist/lib/ui/auth-menu.d.ts.map +1 -1
  437. package/dist/lib/ui/auth-menu.js +3 -349
  438. package/dist/lib/ui/confirm.js +0 -1
  439. package/dist/lib/ui/display-width.js +0 -1
  440. package/dist/lib/ui/format.js +0 -1
  441. package/dist/lib/ui/index.d.ts +10 -0
  442. package/dist/lib/ui/index.d.ts.map +1 -0
  443. package/dist/lib/ui/index.js +9 -0
  444. package/dist/lib/ui/runtime.js +0 -1
  445. package/dist/lib/ui/select.js +0 -1
  446. package/dist/lib/ui/theme.js +0 -1
  447. package/dist/lib/ui/ui-copy.d.ts +159 -0
  448. package/dist/lib/ui/ui-copy.d.ts.map +1 -0
  449. package/dist/lib/ui/ui-copy.js +163 -0
  450. package/dist/lib/unified-settings.js +0 -1
  451. package/dist/lib/update-notice.js +0 -1
  452. package/dist/lib/usage/index.js +0 -1
  453. package/dist/lib/usage/ledger.js +0 -1
  454. package/dist/lib/usage/pricing.js +0 -1
  455. package/dist/lib/usage/redaction.js +0 -1
  456. package/dist/lib/usage/types.js +0 -1
  457. package/dist/lib/utils.js +0 -1
  458. package/package.json +8 -8
  459. package/scripts/postinstall.js +34 -265
  460. package/scripts/preuninstall.js +2 -2
@@ -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"}
@@ -0,0 +1,111 @@
1
+ import { stdout as output } from "node:process";
2
+ import { ANSI } from "../../ui/ansi.js";
3
+ import { paintUiText } from "../../ui/format.js";
4
+ import { getUiRuntimeOptions } from "../../ui/runtime.js";
5
+ export function stylePromptText(text, tone) {
6
+ if (!output.isTTY)
7
+ return text;
8
+ const ui = getUiRuntimeOptions();
9
+ if (ui.v2Enabled) {
10
+ if (tone === "muted") {
11
+ return `${ui.theme.colors.dim}${paintUiText(ui, text, "muted")}${ui.theme.colors.reset}`;
12
+ }
13
+ const mapped = tone === "accent" ? "primary" : tone;
14
+ return paintUiText(ui, text, mapped);
15
+ }
16
+ const legacyCode = tone === "accent"
17
+ ? ANSI.green
18
+ : tone === "success"
19
+ ? ANSI.green
20
+ : tone === "warning"
21
+ ? ANSI.yellow
22
+ : tone === "danger"
23
+ ? ANSI.red
24
+ : ANSI.dim;
25
+ return `${legacyCode}${text}${ANSI.reset}`;
26
+ }
27
+ export function collapseWhitespace(value) {
28
+ return value.replace(/\s+/g, " ").trim();
29
+ }
30
+ export function formatReasonLabel(reason) {
31
+ if (!reason)
32
+ return undefined;
33
+ const normalized = collapseWhitespace(reason.replace(/_/g, " "));
34
+ return normalized.length > 0 ? normalized : undefined;
35
+ }
36
+ export function extractErrorMessageFromPayload(payload) {
37
+ if (!payload || typeof payload !== "object")
38
+ return undefined;
39
+ const record = payload;
40
+ const directMessage = typeof record.message === "string"
41
+ ? collapseWhitespace(record.message)
42
+ : "";
43
+ const directCode = typeof record.code === "string" ? collapseWhitespace(record.code) : "";
44
+ if (directMessage) {
45
+ if (directCode &&
46
+ !directMessage.toLowerCase().includes(directCode.toLowerCase())) {
47
+ return `${directMessage} [${directCode}]`;
48
+ }
49
+ return directMessage;
50
+ }
51
+ const nested = record.error;
52
+ if (nested && typeof nested === "object") {
53
+ return extractErrorMessageFromPayload(nested);
54
+ }
55
+ return undefined;
56
+ }
57
+ export function parseStructuredErrorMessage(raw) {
58
+ const trimmed = raw.trim();
59
+ if (!trimmed)
60
+ return undefined;
61
+ const candidates = new Set([trimmed]);
62
+ const firstBrace = trimmed.indexOf("{");
63
+ const lastBrace = trimmed.lastIndexOf("}");
64
+ if (firstBrace >= 0 && lastBrace > firstBrace) {
65
+ candidates.add(trimmed.slice(firstBrace, lastBrace + 1));
66
+ }
67
+ for (const candidate of candidates) {
68
+ try {
69
+ const parsed = JSON.parse(candidate);
70
+ const message = extractErrorMessageFromPayload(parsed);
71
+ if (message)
72
+ return message;
73
+ }
74
+ catch {
75
+ // ignore non-JSON candidates
76
+ }
77
+ }
78
+ return undefined;
79
+ }
80
+ export function normalizeFailureDetail(message, reason) {
81
+ const reasonLabel = formatReasonLabel(reason);
82
+ const raw = message?.trim() || reasonLabel || "refresh failed";
83
+ const structured = parseStructuredErrorMessage(raw);
84
+ const normalized = collapseWhitespace(structured ?? raw);
85
+ const bounded = normalized.length > 260 ? `${normalized.slice(0, 257)}...` : normalized;
86
+ return bounded.length > 0 ? bounded : "refresh failed";
87
+ }
88
+ export function joinStyledSegments(parts) {
89
+ if (parts.length === 0)
90
+ return "";
91
+ const separator = stylePromptText(" | ", "muted");
92
+ return parts.join(separator);
93
+ }
94
+ export function formatResultSummary(segments) {
95
+ const rendered = segments.map((segment) => stylePromptText(segment.text, segment.tone));
96
+ return `${stylePromptText("Result:", "accent")} ${joinStyledSegments(rendered)}`;
97
+ }
98
+ export function stringifyLogArgs(args) {
99
+ return args
100
+ .map((value) => {
101
+ if (typeof value === "string")
102
+ return value;
103
+ try {
104
+ return JSON.stringify(value);
105
+ }
106
+ catch {
107
+ return String(value);
108
+ }
109
+ })
110
+ .join(" ");
111
+ }
@@ -0,0 +1,14 @@
1
+ import { type DashboardDisplaySettings } from "../dashboard-settings.js";
2
+ /**
3
+ * Body of the `check` command, also reused by the login dashboard's quick
4
+ * check / deep check actions. Moved verbatim out of lib/codex-manager.ts
5
+ * (audit roadmap §4.1.1 phase 3).
6
+ */
7
+ export interface HealthCheckOptions {
8
+ forceRefresh?: boolean;
9
+ liveProbe?: boolean;
10
+ model?: string;
11
+ display?: DashboardDisplaySettings;
12
+ }
13
+ export declare function runHealthCheck(options?: HealthCheckOptions): Promise<void>;
14
+ //# sourceMappingURL=health-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/health-check.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,KAAK,wBAAwB,EAE7B,MAAM,0BAA0B,CAAC;AAiClC;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,wBAAsB,cAAc,CACnC,OAAO,GAAE,kBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA6Tf"}