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.
- package/README.md +4 -4
- package/config/schema/config.schema.json +268 -21
- package/dist/index.js +0 -1
- package/dist/lib/account-policy.js +0 -1
- package/dist/lib/accounts/rate-limits.js +0 -1
- package/dist/lib/accounts.d.ts +3 -8
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +2 -3
- package/dist/lib/audit.js +0 -1
- package/dist/lib/auth/auth.js +0 -1
- package/dist/lib/auth/browser.js +0 -1
- package/dist/lib/auth/device-auth.js +0 -1
- package/dist/lib/auth/index.js +0 -1
- package/dist/lib/auth/org-override.js +0 -1
- package/dist/lib/auth/server.js +0 -1
- package/dist/lib/auth/token-utils.js +0 -1
- package/dist/lib/auth-rate-limit.js +0 -1
- package/dist/lib/budget-guard.js +0 -1
- package/dist/lib/capability-policy.js +0 -1
- package/dist/lib/circuit-breaker.js +0 -1
- package/dist/lib/cli.js +1 -2
- package/dist/lib/codex-cli/index.js +0 -1
- package/dist/lib/codex-cli/observability.js +0 -1
- package/dist/lib/codex-cli/state.js +0 -1
- package/dist/lib/codex-cli/sync.d.ts +2 -2
- package/dist/lib/codex-cli/sync.d.ts.map +1 -1
- package/dist/lib/codex-cli/sync.js +1 -2
- package/dist/lib/codex-cli/writer.js +0 -1
- package/dist/lib/codex-manager/account-credentials.d.ts +13 -0
- package/dist/lib/codex-manager/account-credentials.d.ts.map +1 -0
- package/dist/lib/codex-manager/account-credentials.js +55 -0
- package/dist/lib/codex-manager/account-manager-commands.js +0 -1
- package/dist/lib/codex-manager/account-pool-write.d.ts +1 -1
- package/dist/lib/codex-manager/account-pool-write.d.ts.map +1 -1
- package/dist/lib/codex-manager/account-pool-write.js +0 -1
- package/dist/lib/codex-manager/backend-category-entry.js +0 -1
- package/dist/lib/codex-manager/backend-category-helpers.js +0 -1
- package/dist/lib/codex-manager/backend-category-prompt.js +0 -1
- package/dist/lib/codex-manager/backend-settings-controller.js +0 -1
- package/dist/lib/codex-manager/backend-settings-entry.js +0 -1
- package/dist/lib/codex-manager/backend-settings-helpers.js +0 -1
- package/dist/lib/codex-manager/backend-settings-prompt.js +0 -1
- package/dist/lib/codex-manager/backend-settings-schema.js +0 -1
- package/dist/lib/codex-manager/behavior-settings-panel.d.ts +1 -1
- package/dist/lib/codex-manager/behavior-settings-panel.d.ts.map +1 -1
- package/dist/lib/codex-manager/behavior-settings-panel.js +0 -1
- package/dist/lib/codex-manager/commands/account.js +0 -1
- package/dist/lib/codex-manager/commands/best.d.ts +8 -0
- package/dist/lib/codex-manager/commands/best.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/best.js +64 -1
- package/dist/lib/codex-manager/commands/bridge.js +0 -1
- package/dist/lib/codex-manager/commands/budget.js +0 -1
- package/dist/lib/codex-manager/commands/check.js +0 -1
- package/dist/lib/codex-manager/commands/config-explain.js +0 -1
- package/dist/lib/codex-manager/commands/debug-bundle.js +0 -1
- package/dist/lib/codex-manager/commands/forecast.js +0 -1
- package/dist/lib/codex-manager/commands/init-config.js +0 -1
- package/dist/lib/codex-manager/commands/integrations.js +0 -1
- package/dist/lib/codex-manager/commands/models.js +0 -1
- package/dist/lib/codex-manager/commands/monitor.js +0 -1
- package/dist/lib/codex-manager/commands/report.js +0 -1
- package/dist/lib/codex-manager/commands/rotation.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/rotation.js +1 -4
- package/dist/lib/codex-manager/commands/status.js +0 -1
- package/dist/lib/codex-manager/commands/switch.js +0 -1
- package/dist/lib/codex-manager/commands/uninstall.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/uninstall.js +2 -33
- package/dist/lib/codex-manager/commands/unpin.js +0 -1
- package/dist/lib/codex-manager/commands/usage.js +0 -1
- package/dist/lib/codex-manager/commands/verify.js +0 -1
- package/dist/lib/codex-manager/commands/why-selected.js +0 -1
- package/dist/lib/codex-manager/commands/workspace.js +0 -1
- package/dist/lib/codex-manager/dashboard-display-panel.d.ts +1 -1
- package/dist/lib/codex-manager/dashboard-display-panel.d.ts.map +1 -1
- package/dist/lib/codex-manager/dashboard-display-panel.js +0 -1
- package/dist/lib/codex-manager/dashboard-formatters.js +0 -1
- package/dist/lib/codex-manager/dashboard-settings-controller.js +0 -1
- package/dist/lib/codex-manager/dashboard-settings-data.js +0 -1
- package/dist/lib/codex-manager/dashboard-settings-entry.js +0 -1
- package/dist/lib/codex-manager/experimental-settings-entry.js +0 -1
- package/dist/lib/codex-manager/experimental-settings-prompt.js +0 -1
- package/dist/lib/codex-manager/experimental-settings-schema.js +1 -2
- package/dist/lib/codex-manager/experimental-sync-target-entry.js +0 -1
- package/dist/lib/codex-manager/experimental-sync-target.js +0 -1
- package/dist/lib/codex-manager/forecast-report-commands.js +0 -1
- package/dist/lib/codex-manager/forecast-report-shared.d.ts +2 -2
- package/dist/lib/codex-manager/forecast-report-shared.d.ts.map +1 -1
- package/dist/lib/codex-manager/forecast-report-shared.js +5 -21
- package/dist/lib/codex-manager/formatters/account-formatters.d.ts +11 -0
- package/dist/lib/codex-manager/formatters/account-formatters.d.ts.map +1 -0
- package/dist/lib/codex-manager/formatters/account-formatters.js +79 -0
- package/dist/lib/codex-manager/formatters/index.d.ts +5 -0
- package/dist/lib/codex-manager/formatters/index.d.ts.map +1 -0
- package/dist/lib/codex-manager/formatters/index.js +4 -0
- package/dist/lib/codex-manager/formatters/model-formatters.d.ts +12 -0
- package/dist/lib/codex-manager/formatters/model-formatters.d.ts.map +1 -0
- package/dist/lib/codex-manager/formatters/model-formatters.js +23 -0
- package/dist/lib/codex-manager/formatters/quota-formatters.d.ts +11 -0
- package/dist/lib/codex-manager/formatters/quota-formatters.d.ts.map +1 -0
- package/dist/lib/codex-manager/formatters/quota-formatters.js +104 -0
- package/dist/lib/codex-manager/formatters/text-style.d.ts +14 -0
- package/dist/lib/codex-manager/formatters/text-style.d.ts.map +1 -0
- package/dist/lib/codex-manager/formatters/text-style.js +111 -0
- package/dist/lib/codex-manager/health-check.d.ts +14 -0
- package/dist/lib/codex-manager/health-check.d.ts.map +1 -0
- package/dist/lib/codex-manager/health-check.js +278 -0
- package/dist/lib/codex-manager/help.js +0 -1
- package/dist/lib/codex-manager/login-action-panel.d.ts +4 -0
- package/dist/lib/codex-manager/login-action-panel.d.ts.map +1 -0
- package/dist/lib/codex-manager/login-action-panel.js +238 -0
- package/dist/lib/codex-manager/login-flow.d.ts +17 -0
- package/dist/lib/codex-manager/login-flow.d.ts.map +1 -0
- package/dist/lib/codex-manager/login-flow.js +387 -0
- package/dist/lib/codex-manager/login-menu-actions.d.ts +20 -0
- package/dist/lib/codex-manager/login-menu-actions.d.ts.map +1 -0
- package/dist/lib/codex-manager/login-menu-actions.js +303 -0
- package/dist/lib/codex-manager/login-menu-data.d.ts +19 -0
- package/dist/lib/codex-manager/login-menu-data.d.ts.map +1 -0
- package/dist/lib/codex-manager/login-menu-data.js +378 -0
- package/dist/lib/codex-manager/login-oauth.d.ts +55 -0
- package/dist/lib/codex-manager/login-oauth.d.ts.map +1 -0
- package/dist/lib/codex-manager/login-oauth.js +345 -0
- package/dist/lib/codex-manager/manual-callback.js +0 -1
- package/dist/lib/codex-manager/persist-selected-account.d.ts +24 -0
- package/dist/lib/codex-manager/persist-selected-account.d.ts.map +1 -0
- package/dist/lib/codex-manager/persist-selected-account.js +107 -0
- package/dist/lib/codex-manager/quota-cache-helpers.d.ts +18 -0
- package/dist/lib/codex-manager/quota-cache-helpers.d.ts.map +1 -0
- package/dist/lib/codex-manager/quota-cache-helpers.js +112 -0
- package/dist/lib/codex-manager/rate-limit-markers.js +0 -1
- package/dist/lib/codex-manager/repair-commands.js +0 -1
- package/dist/lib/codex-manager/settings-hub/backend.js +1 -2
- package/dist/lib/codex-manager/settings-hub/dashboard.js +1 -2
- package/dist/lib/codex-manager/settings-hub/experimental.js +1 -2
- package/dist/lib/codex-manager/settings-hub/index.js +1 -2
- package/dist/lib/codex-manager/settings-hub/shared.js +0 -1
- package/dist/lib/codex-manager/settings-hub-entry.js +0 -1
- package/dist/lib/codex-manager/settings-hub-menu.js +0 -1
- package/dist/lib/codex-manager/settings-hub-prompt.js +0 -1
- package/dist/lib/codex-manager/settings-hub.js +0 -1
- package/dist/lib/codex-manager/settings-panels.js +0 -1
- package/dist/lib/codex-manager/settings-persist-utils.js +0 -1
- package/dist/lib/codex-manager/settings-preview.js +0 -1
- package/dist/lib/codex-manager/settings-write-queue.js +0 -1
- package/dist/lib/codex-manager/statusline-order.js +0 -1
- package/dist/lib/codex-manager/statusline-settings-panel.d.ts +1 -1
- package/dist/lib/codex-manager/statusline-settings-panel.d.ts.map +1 -1
- package/dist/lib/codex-manager/statusline-settings-panel.js +0 -1
- package/dist/lib/codex-manager/theme-settings-panel.d.ts +1 -1
- package/dist/lib/codex-manager/theme-settings-panel.d.ts.map +1 -1
- package/dist/lib/codex-manager/theme-settings-panel.js +0 -1
- package/dist/lib/codex-manager/unified-settings-controller.js +0 -1
- package/dist/lib/codex-manager/unified-settings-entry.js +0 -1
- package/dist/lib/codex-manager.d.ts +2 -4
- package/dist/lib/codex-manager.d.ts.map +1 -1
- package/dist/lib/codex-manager.js +219 -2570
- package/dist/lib/config-schema.d.ts +32 -0
- package/dist/lib/config-schema.d.ts.map +1 -0
- package/dist/lib/config-schema.js +96 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +60 -104
- package/dist/lib/constants.js +0 -1
- package/dist/lib/context-overflow.js +0 -1
- package/dist/lib/dashboard-settings.js +0 -1
- package/dist/lib/entitlement-cache.js +0 -1
- package/dist/lib/env-parsing.js +0 -1
- package/dist/lib/errors.js +0 -1
- package/dist/lib/forecast.js +0 -1
- package/dist/lib/fs-retry.d.ts +46 -0
- package/dist/lib/fs-retry.d.ts.map +1 -1
- package/dist/lib/fs-retry.js +74 -6
- package/dist/lib/health.js +0 -1
- package/dist/lib/index.js +0 -1
- package/dist/lib/integration-generators.js +0 -1
- package/dist/lib/live-account-sync.js +0 -1
- package/dist/lib/local-bridge.js +0 -1
- package/dist/lib/local-client-tokens.js +0 -1
- package/dist/lib/logger.js +0 -1
- package/dist/lib/model-capability-matrix.js +0 -1
- package/dist/lib/named-backup-export.js +0 -1
- package/dist/lib/oc-chatgpt-import-adapter.js +0 -1
- package/dist/lib/oc-chatgpt-orchestrator.js +0 -1
- package/dist/lib/oc-chatgpt-target-detection.js +0 -1
- package/dist/lib/parallel-probe.js +0 -1
- package/dist/lib/policy/runtime-policy.js +0 -1
- package/dist/lib/preemptive-quota-scheduler.js +0 -1
- package/dist/lib/proactive-refresh.js +0 -1
- package/dist/lib/prompts/codex-host-bridge.js +0 -1
- package/dist/lib/prompts/codex.d.ts +3 -11
- package/dist/lib/prompts/codex.d.ts.map +1 -1
- package/dist/lib/prompts/codex.js +4 -12
- package/dist/lib/prompts/fetch-utils.js +0 -1
- package/dist/lib/prompts/host-codex-prompt.js +0 -1
- package/dist/lib/quota-cache.d.ts.map +1 -1
- package/dist/lib/quota-cache.js +15 -43
- package/dist/lib/quota-probe.js +0 -1
- package/dist/lib/quota-readiness.js +0 -1
- package/dist/lib/recovery/constants.js +0 -1
- package/dist/lib/recovery/index.js +0 -1
- package/dist/lib/recovery/storage.d.ts.map +1 -1
- package/dist/lib/recovery/storage.js +30 -51
- package/dist/lib/recovery/storage.js.map +1 -1
- package/dist/lib/recovery/types.js +0 -1
- package/dist/lib/recovery.js +0 -1
- package/dist/lib/refresh-guardian.js +0 -1
- package/dist/lib/refresh-lease.d.ts.map +1 -1
- package/dist/lib/refresh-lease.js +1 -4
- package/dist/lib/refresh-queue.js +0 -1
- package/dist/lib/request/error-classification.d.ts +75 -0
- package/dist/lib/request/error-classification.d.ts.map +1 -0
- package/dist/lib/request/error-classification.js +295 -0
- package/dist/lib/request/failover-config.js +0 -1
- package/dist/lib/request/failure-policy.js +0 -1
- package/dist/lib/request/fetch-helpers.d.ts +10 -114
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/request/fetch-helpers.js +7 -589
- package/dist/lib/request/headers.d.ts +33 -0
- package/dist/lib/request/headers.d.ts.map +1 -0
- package/dist/lib/request/headers.js +64 -0
- package/dist/lib/request/helpers/input-utils.js +0 -1
- package/dist/lib/request/helpers/model-map.d.ts +10 -0
- package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
- package/dist/lib/request/helpers/model-map.js +11 -1
- package/dist/lib/request/helpers/tool-utils.js +0 -1
- package/dist/lib/request/index.js +0 -1
- package/dist/lib/request/rate-limit-backoff.js +0 -1
- package/dist/lib/request/rate-limit-decision.d.ts +28 -0
- package/dist/lib/request/rate-limit-decision.d.ts.map +1 -0
- package/dist/lib/request/rate-limit-decision.js +191 -0
- package/dist/lib/request/request-attempt-budget.js +0 -1
- package/dist/lib/request/request-init.js +0 -1
- package/dist/lib/request/request-resilience.js +0 -1
- package/dist/lib/request/request-transformer.js +0 -1
- package/dist/lib/request/response-compaction.js +0 -1
- package/dist/lib/request/response-handler.js +0 -1
- package/dist/lib/request/response-metadata.js +0 -1
- package/dist/lib/request/stream-failover-runtime.d.ts +8 -0
- package/dist/lib/request/stream-failover-runtime.d.ts.map +1 -0
- package/dist/lib/request/stream-failover-runtime.js +149 -0
- package/dist/lib/request/stream-failover.js +0 -1
- package/dist/lib/request/token-refresh.d.ts +30 -0
- package/dist/lib/request/token-refresh.d.ts.map +1 -0
- package/dist/lib/request/token-refresh.js +116 -0
- package/dist/lib/request/url-rewriting.d.ts +24 -0
- package/dist/lib/request/url-rewriting.d.ts.map +1 -0
- package/dist/lib/request/url-rewriting.js +153 -0
- package/dist/lib/request/wait-utils.js +0 -1
- package/dist/lib/rotation.d.ts +1 -1
- package/dist/lib/rotation.d.ts.map +1 -1
- package/dist/lib/rotation.js +0 -1
- package/dist/lib/routing-mutex.js +0 -1
- package/dist/lib/routing-profiles.js +0 -1
- package/dist/lib/runtime/account-check-helpers.js +0 -1
- package/dist/lib/runtime/account-check-types.js +0 -1
- package/dist/lib/runtime/account-check.js +0 -1
- package/dist/lib/runtime/account-health-check.js +0 -1
- package/dist/lib/runtime/account-manager-cache-entry.js +0 -1
- package/dist/lib/runtime/account-manager-cache.js +0 -1
- package/dist/lib/runtime/account-pool.js +0 -1
- package/dist/lib/runtime/account-scope.js +0 -1
- package/dist/lib/runtime/account-select-event.js +0 -1
- package/dist/lib/runtime/account-selection.js +0 -1
- package/dist/lib/runtime/account-state.js +0 -1
- package/dist/lib/runtime/account-status.js +0 -1
- package/dist/lib/runtime/account-storage-scope-entry.js +0 -1
- package/dist/lib/runtime/app-bind.js +0 -1
- package/dist/lib/runtime/auth-facade.js +0 -1
- package/dist/lib/runtime/browser-oauth-flow.js +0 -1
- package/dist/lib/runtime/capability-boost.js +0 -1
- package/dist/lib/runtime/config-toml.js +0 -1
- package/dist/lib/runtime/event-handler.js +0 -1
- package/dist/lib/runtime/first-run.d.ts +80 -0
- package/dist/lib/runtime/first-run.d.ts.map +1 -0
- package/dist/lib/runtime/first-run.js +327 -0
- package/dist/lib/runtime/flagged-verify-types.js +0 -1
- package/dist/lib/runtime/hydrate-emails.js +0 -1
- package/dist/lib/runtime/live-sync-entry.js +0 -1
- package/dist/lib/runtime/live-sync.js +0 -1
- package/dist/lib/runtime/loader-setup.js +0 -1
- package/dist/lib/runtime/login-menu-accounts.js +0 -1
- package/dist/lib/runtime/manual-oauth-flow.js +0 -1
- package/dist/lib/runtime/oauth-browser-flow.js +0 -1
- package/dist/lib/runtime/preemptive-quota.js +0 -1
- package/dist/lib/runtime/quota-headers.js +0 -1
- package/dist/lib/runtime/quota-probe.js +0 -1
- package/dist/lib/runtime/quota-settings.js +0 -1
- package/dist/lib/runtime/refresh-guardian-entry.js +0 -1
- package/dist/lib/runtime/refresh-guardian.js +0 -1
- package/dist/lib/runtime/request-init.js +0 -1
- package/dist/lib/runtime/rotation-account-selection.d.ts +38 -0
- package/dist/lib/runtime/rotation-account-selection.d.ts.map +1 -0
- package/dist/lib/runtime/rotation-account-selection.js +172 -0
- package/dist/lib/runtime/rotation-proxy-state.d.ts +54 -0
- package/dist/lib/runtime/rotation-proxy-state.d.ts.map +1 -0
- package/dist/lib/runtime/rotation-proxy-state.js +56 -0
- package/dist/lib/runtime/rotation-server-types.d.ts +57 -0
- package/dist/lib/runtime/rotation-server-types.d.ts.map +1 -0
- package/dist/lib/runtime/rotation-server-types.js +1 -0
- package/dist/lib/runtime/rotation-storage-meta.d.ts +40 -0
- package/dist/lib/runtime/rotation-storage-meta.d.ts.map +1 -0
- package/dist/lib/runtime/rotation-storage-meta.js +143 -0
- package/dist/lib/runtime/rotation-token-refresh.d.ts +25 -0
- package/dist/lib/runtime/rotation-token-refresh.d.ts.map +1 -0
- package/dist/lib/runtime/rotation-token-refresh.js +99 -0
- package/dist/lib/runtime/runtime-current-account.d.ts.map +1 -1
- package/dist/lib/runtime/runtime-current-account.js +1 -4
- package/dist/lib/runtime/runtime-observability.js +0 -1
- package/dist/lib/runtime/runtime-services.js +0 -1
- package/dist/lib/runtime/session-affinity-entry.js +0 -1
- package/dist/lib/runtime/session-affinity.js +0 -1
- package/dist/lib/runtime/session-recovery.js +0 -1
- package/dist/lib/runtime/status-marker.js +0 -1
- package/dist/lib/runtime/storage-scope.js +0 -1
- package/dist/lib/runtime/toast.js +0 -1
- package/dist/lib/runtime/ui-runtime-entry.js +0 -1
- package/dist/lib/runtime/ui-runtime.js +0 -1
- package/dist/lib/runtime/verify-flagged.js +0 -1
- package/dist/lib/runtime-constants.js +0 -1
- package/dist/lib/runtime-paths.js +0 -1
- package/dist/lib/runtime-rotation-proxy.d.ts +7 -124
- package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.js +614 -1353
- package/dist/lib/schemas.d.ts +3 -3
- package/dist/lib/schemas.js +1 -2
- package/dist/lib/session-affinity.js +0 -1
- package/dist/lib/shutdown.js +0 -1
- package/dist/lib/storage/account-clear-entry.js +0 -1
- package/dist/lib/storage/account-clear.js +0 -1
- package/dist/lib/storage/account-match-utils.js +0 -1
- package/dist/lib/storage/account-persistence.d.ts +1 -1
- package/dist/lib/storage/account-persistence.d.ts.map +1 -1
- package/dist/lib/storage/account-persistence.js +0 -1
- package/dist/lib/storage/account-port.d.ts +1 -1
- package/dist/lib/storage/account-port.d.ts.map +1 -1
- package/dist/lib/storage/account-port.js +0 -1
- package/dist/lib/storage/account-save-entry.d.ts +1 -1
- package/dist/lib/storage/account-save-entry.d.ts.map +1 -1
- package/dist/lib/storage/account-save-entry.js +0 -1
- package/dist/lib/storage/account-save.d.ts +1 -1
- package/dist/lib/storage/account-save.d.ts.map +1 -1
- package/dist/lib/storage/account-save.js +0 -1
- package/dist/lib/storage/account-snapshot.js +0 -1
- package/dist/lib/storage/backup-metadata-builder.d.ts +1 -1
- package/dist/lib/storage/backup-metadata-builder.d.ts.map +1 -1
- package/dist/lib/storage/backup-metadata-builder.js +0 -1
- package/dist/lib/storage/backup-metadata.d.ts +13 -0
- package/dist/lib/storage/backup-metadata.d.ts.map +1 -1
- package/dist/lib/storage/backup-metadata.js +0 -1
- package/dist/lib/storage/backup-paths.js +0 -1
- package/dist/lib/storage/backup-restore.d.ts +1 -1
- package/dist/lib/storage/backup-restore.d.ts.map +1 -1
- package/dist/lib/storage/backup-restore.js +0 -1
- package/dist/lib/storage/cache-artifacts.js +0 -1
- package/dist/lib/storage/error-hints.js +0 -1
- package/dist/lib/storage/file-paths.js +0 -1
- package/dist/lib/storage/fixture-guards.d.ts +1 -1
- package/dist/lib/storage/fixture-guards.d.ts.map +1 -1
- package/dist/lib/storage/fixture-guards.js +0 -1
- package/dist/lib/storage/flagged-entry.js +0 -1
- package/dist/lib/storage/flagged-load-entry.d.ts +1 -1
- package/dist/lib/storage/flagged-load-entry.d.ts.map +1 -1
- package/dist/lib/storage/flagged-load-entry.js +0 -1
- package/dist/lib/storage/flagged-save-entry.d.ts +1 -1
- package/dist/lib/storage/flagged-save-entry.d.ts.map +1 -1
- package/dist/lib/storage/flagged-save-entry.js +0 -1
- package/dist/lib/storage/flagged-storage-file.d.ts +1 -1
- package/dist/lib/storage/flagged-storage-file.d.ts.map +1 -1
- package/dist/lib/storage/flagged-storage-file.js +0 -1
- package/dist/lib/storage/flagged-storage-io.d.ts +1 -1
- package/dist/lib/storage/flagged-storage-io.d.ts.map +1 -1
- package/dist/lib/storage/flagged-storage-io.js +0 -1
- package/dist/lib/storage/flagged-storage.d.ts +1 -1
- package/dist/lib/storage/flagged-storage.d.ts.map +1 -1
- package/dist/lib/storage/flagged-storage.js +15 -2
- package/dist/lib/storage/flagged-storage.js.map +1 -1
- package/dist/lib/storage/gitignore.js +0 -1
- package/dist/lib/storage/hash.js +0 -1
- package/dist/lib/storage/health.js +0 -1
- package/dist/lib/storage/identity.js +0 -1
- package/dist/lib/storage/import-export.d.ts +1 -1
- package/dist/lib/storage/import-export.d.ts.map +1 -1
- package/dist/lib/storage/import-export.js +0 -1
- package/dist/lib/storage/metadata-section.js +0 -1
- package/dist/lib/storage/migrations.d.ts +5 -48
- package/dist/lib/storage/migrations.d.ts.map +1 -1
- package/dist/lib/storage/migrations.js +5 -2
- package/dist/lib/storage/named-backup-entry.js +0 -1
- package/dist/lib/storage/named-backups-entry.d.ts +1 -1
- package/dist/lib/storage/named-backups-entry.d.ts.map +1 -1
- package/dist/lib/storage/named-backups-entry.js +0 -1
- package/dist/lib/storage/named-backups.js +0 -1
- package/dist/lib/storage/path-state.js +0 -1
- package/dist/lib/storage/paths.js +0 -1
- package/dist/lib/storage/project-migration.d.ts +1 -1
- package/dist/lib/storage/project-migration.d.ts.map +1 -1
- package/dist/lib/storage/project-migration.js +0 -1
- package/dist/lib/storage/public-types.d.ts +70 -0
- package/dist/lib/storage/public-types.d.ts.map +1 -0
- package/dist/lib/storage/public-types.js +6 -0
- package/dist/lib/storage/record-utils.js +0 -1
- package/dist/lib/storage/restore-assessment.d.ts +1 -1
- package/dist/lib/storage/restore-assessment.d.ts.map +1 -1
- package/dist/lib/storage/restore-assessment.js +0 -1
- package/dist/lib/storage/restore-backup-entry.d.ts +1 -1
- package/dist/lib/storage/restore-backup-entry.d.ts.map +1 -1
- package/dist/lib/storage/restore-backup-entry.js +0 -1
- package/dist/lib/storage/restore-metadata.d.ts +1 -1
- package/dist/lib/storage/restore-metadata.d.ts.map +1 -1
- package/dist/lib/storage/restore-metadata.js +0 -1
- package/dist/lib/storage/restore.d.ts +1 -1
- package/dist/lib/storage/restore.d.ts.map +1 -1
- package/dist/lib/storage/restore.js +0 -1
- package/dist/lib/storage/save-retry.d.ts +10 -0
- package/dist/lib/storage/save-retry.d.ts.map +1 -0
- package/dist/lib/storage/save-retry.js +26 -0
- package/dist/lib/storage/snapshot-inspectors.d.ts +1 -1
- package/dist/lib/storage/snapshot-inspectors.d.ts.map +1 -1
- package/dist/lib/storage/snapshot-inspectors.js +0 -1
- package/dist/lib/storage/storage-parser.d.ts +1 -1
- package/dist/lib/storage/storage-parser.d.ts.map +1 -1
- package/dist/lib/storage/storage-parser.js +0 -1
- package/dist/lib/storage/transactions.d.ts +1 -1
- package/dist/lib/storage/transactions.d.ts.map +1 -1
- package/dist/lib/storage/transactions.js +0 -1
- package/dist/lib/storage.d.ts +3 -24
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +17 -32
- package/dist/lib/table-formatter.js +0 -1
- package/dist/lib/tools/hashline-tools.js +0 -1
- package/dist/lib/types.js +0 -1
- package/dist/lib/ui/ansi.js +0 -1
- package/dist/lib/ui/auth-menu-builder.d.ts +89 -0
- package/dist/lib/ui/auth-menu-builder.d.ts.map +1 -0
- package/dist/lib/ui/auth-menu-builder.js +350 -0
- package/dist/lib/ui/auth-menu.d.ts +2 -76
- package/dist/lib/ui/auth-menu.d.ts.map +1 -1
- package/dist/lib/ui/auth-menu.js +3 -349
- package/dist/lib/ui/confirm.js +0 -1
- package/dist/lib/ui/display-width.js +0 -1
- package/dist/lib/ui/format.js +0 -1
- package/dist/lib/ui/index.d.ts +10 -0
- package/dist/lib/ui/index.d.ts.map +1 -0
- package/dist/lib/ui/index.js +9 -0
- package/dist/lib/ui/runtime.js +0 -1
- package/dist/lib/ui/select.js +0 -1
- package/dist/lib/ui/theme.js +0 -1
- package/dist/lib/ui/ui-copy.d.ts +159 -0
- package/dist/lib/ui/ui-copy.d.ts.map +1 -0
- package/dist/lib/ui/ui-copy.js +163 -0
- package/dist/lib/unified-settings.js +0 -1
- package/dist/lib/update-notice.js +0 -1
- package/dist/lib/usage/index.js +0 -1
- package/dist/lib/usage/ledger.js +0 -1
- package/dist/lib/usage/pricing.js +0 -1
- package/dist/lib/usage/redaction.js +0 -1
- package/dist/lib/usage/types.js +0 -1
- package/dist/lib/utils.js +0 -1
- package/package.json +8 -8
- package/scripts/postinstall.js +34 -265
- 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 @@
|
|
|
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,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"}
|