anypick 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +589 -0
- package/dist/adapters.d.ts +4 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +2 -0
- package/dist/catalog/model-fetch.d.ts +34 -0
- package/dist/catalog/model-fetch.d.ts.map +1 -0
- package/dist/catalog/model-fetch.js +99 -0
- package/dist/catalog/model-fetch.js.map +1 -0
- package/dist/catalog/providers.d.ts +42 -0
- package/dist/catalog/providers.d.ts.map +1 -0
- package/dist/catalog/providers.js +424 -0
- package/dist/catalog/providers.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +3 -0
- package/dist/cli/bootstrap.d.ts.map +1 -0
- package/dist/cli/bootstrap.js +78 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/commands.d.ts +29 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +1043 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/completion.d.ts +6 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +202 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/errors.d.ts +20 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +47 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/format.d.ts +6 -0
- package/dist/cli/format.d.ts.map +1 -0
- package/dist/cli/format.js +75 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/help.d.ts +6 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +66 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/interactive-accounts.d.ts +3 -0
- package/dist/cli/interactive-accounts.d.ts.map +1 -0
- package/dist/cli/interactive-accounts.js +86 -0
- package/dist/cli/interactive-accounts.js.map +1 -0
- package/dist/cli/interactive-maintenance.d.ts +4 -0
- package/dist/cli/interactive-maintenance.d.ts.map +1 -0
- package/dist/cli/interactive-maintenance.js +30 -0
- package/dist/cli/interactive-maintenance.js.map +1 -0
- package/dist/cli/interactive.d.ts +14 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +242 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/launch-client.d.ts +18 -0
- package/dist/cli/launch-client.d.ts.map +1 -0
- package/dist/cli/launch-client.js +117 -0
- package/dist/cli/launch-client.js.map +1 -0
- package/dist/cli/launcher-model.d.ts +64 -0
- package/dist/cli/launcher-model.d.ts.map +1 -0
- package/dist/cli/launcher-model.js +200 -0
- package/dist/cli/launcher-model.js.map +1 -0
- package/dist/cli/launcher-render.d.ts +22 -0
- package/dist/cli/launcher-render.d.ts.map +1 -0
- package/dist/cli/launcher-render.js +113 -0
- package/dist/cli/launcher-render.js.map +1 -0
- package/dist/cli/launcher.d.ts +27 -0
- package/dist/cli/launcher.d.ts.map +1 -0
- package/dist/cli/launcher.js +93 -0
- package/dist/cli/launcher.js.map +1 -0
- package/dist/cli/local-health.d.ts +17 -0
- package/dist/cli/local-health.d.ts.map +1 -0
- package/dist/cli/local-health.js +31 -0
- package/dist/cli/local-health.js.map +1 -0
- package/dist/cli/plugin-commands.d.ts +4 -0
- package/dist/cli/plugin-commands.d.ts.map +1 -0
- package/dist/cli/plugin-commands.js +160 -0
- package/dist/cli/plugin-commands.js.map +1 -0
- package/dist/cli/primary.d.ts +18 -0
- package/dist/cli/primary.d.ts.map +1 -0
- package/dist/cli/primary.js +593 -0
- package/dist/cli/primary.js.map +1 -0
- package/dist/cli/render-util.d.ts +24 -0
- package/dist/cli/render-util.d.ts.map +1 -0
- package/dist/cli/render-util.js +58 -0
- package/dist/cli/render-util.js.map +1 -0
- package/dist/cli/ux.d.ts +43 -0
- package/dist/cli/ux.d.ts.map +1 -0
- package/dist/cli/ux.js +114 -0
- package/dist/cli/ux.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +35 -0
- package/dist/cli.js.map +1 -0
- package/dist/clients/claude-client-apply.d.ts +8 -0
- package/dist/clients/claude-client-apply.d.ts.map +1 -0
- package/dist/clients/claude-client-apply.js +108 -0
- package/dist/clients/claude-client-apply.js.map +1 -0
- package/dist/clients/claude-code.d.ts +5 -0
- package/dist/clients/claude-code.d.ts.map +1 -0
- package/dist/clients/claude-code.js +189 -0
- package/dist/clients/claude-code.js.map +1 -0
- package/dist/clients/claude-settings-guard.d.ts +18 -0
- package/dist/clients/claude-settings-guard.d.ts.map +1 -0
- package/dist/clients/codex-desktop-catalog.d.ts +67 -0
- package/dist/clients/codex-desktop-catalog.d.ts.map +1 -0
- package/dist/clients/codex-desktop-catalog.js +212 -0
- package/dist/clients/codex-desktop-catalog.js.map +1 -0
- package/dist/clients/codex.d.ts +181 -0
- package/dist/clients/codex.d.ts.map +1 -0
- package/dist/clients/codex.js +783 -0
- package/dist/clients/codex.js.map +1 -0
- package/dist/clients/env-files.d.ts +14 -0
- package/dist/clients/env-files.d.ts.map +1 -0
- package/dist/clients/env-files.js +50 -0
- package/dist/clients/env-files.js.map +1 -0
- package/dist/clients/gemini-client-utils.d.ts +4 -0
- package/dist/clients/gemini-client-utils.d.ts.map +1 -0
- package/dist/clients/gemini-client-utils.js +33 -0
- package/dist/clients/gemini-client-utils.js.map +1 -0
- package/dist/clients/gemini.d.ts +16 -0
- package/dist/clients/gemini.d.ts.map +1 -0
- package/dist/clients/gemini.js +233 -0
- package/dist/clients/gemini.js.map +1 -0
- package/dist/clients/index.d.ts +14 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +18 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/isolation.d.ts +28 -0
- package/dist/clients/isolation.d.ts.map +1 -0
- package/dist/clients/isolation.js +131 -0
- package/dist/clients/isolation.js.map +1 -0
- package/dist/clients/kiro.d.ts +10 -0
- package/dist/clients/kiro.d.ts.map +1 -0
- package/dist/clients/kiro.js +168 -0
- package/dist/clients/kiro.js.map +1 -0
- package/dist/clients/model-roles.d.ts +58 -0
- package/dist/clients/model-roles.d.ts.map +1 -0
- package/dist/clients/model-roles.js +139 -0
- package/dist/clients/model-roles.js.map +1 -0
- package/dist/clients/registry.d.ts +7 -0
- package/dist/clients/registry.d.ts.map +1 -0
- package/dist/clients/registry.js +16 -0
- package/dist/clients/registry.js.map +1 -0
- package/dist/clients/resolve.d.ts +27 -0
- package/dist/clients/resolve.d.ts.map +1 -0
- package/dist/clients/resolve.js +49 -0
- package/dist/clients/resolve.js.map +1 -0
- package/dist/core/account-codec.d.ts +32 -0
- package/dist/core/account-codec.d.ts.map +1 -0
- package/dist/core/account-codec.js +134 -0
- package/dist/core/account-codec.js.map +1 -0
- package/dist/core/account-transfer.d.ts +20 -0
- package/dist/core/account-transfer.d.ts.map +1 -0
- package/dist/core/account-transfer.js +136 -0
- package/dist/core/account-transfer.js.map +1 -0
- package/dist/core/activation-executor.d.ts +72 -0
- package/dist/core/activation-executor.d.ts.map +1 -0
- package/dist/core/activation-executor.js +690 -0
- package/dist/core/activation-executor.js.map +1 -0
- package/dist/core/activation-models.d.ts +6 -0
- package/dist/core/activation-models.d.ts.map +1 -0
- package/dist/core/activation-models.js +33 -0
- package/dist/core/activation-models.js.map +1 -0
- package/dist/core/activation-planner.d.ts +38 -0
- package/dist/core/activation-planner.d.ts.map +1 -0
- package/dist/core/activation-planner.js +248 -0
- package/dist/core/activation-planner.js.map +1 -0
- package/dist/core/activation-protocol.d.ts +3 -0
- package/dist/core/activation-protocol.d.ts.map +1 -0
- package/dist/core/activation-protocol.js +9 -0
- package/dist/core/activation-protocol.js.map +1 -0
- package/dist/core/activation-transport.d.ts +15 -0
- package/dist/core/activation-transport.d.ts.map +1 -0
- package/dist/core/activation-transport.js +23 -0
- package/dist/core/activation-transport.js.map +1 -0
- package/dist/core/app.d.ts +149 -0
- package/dist/core/app.d.ts.map +1 -0
- package/dist/core/app.js +372 -0
- package/dist/core/app.js.map +1 -0
- package/dist/core/binding-service.d.ts +93 -0
- package/dist/core/binding-service.d.ts.map +1 -0
- package/dist/core/binding-service.js +281 -0
- package/dist/core/binding-service.js.map +1 -0
- package/dist/core/binding-store.d.ts +23 -0
- package/dist/core/binding-store.d.ts.map +1 -0
- package/dist/core/binding-store.js +154 -0
- package/dist/core/binding-store.js.map +1 -0
- package/dist/core/brand.d.ts +18 -0
- package/dist/core/brand.d.ts.map +1 -0
- package/dist/core/brand.js +22 -0
- package/dist/core/brand.js.map +1 -0
- package/dist/core/capabilities.d.ts +30 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/capabilities.js +27 -0
- package/dist/core/capabilities.js.map +1 -0
- package/dist/core/client-state-store.d.ts +17 -0
- package/dist/core/client-state-store.d.ts.map +1 -0
- package/dist/core/client-state-store.js +47 -0
- package/dist/core/client-state-store.js.map +1 -0
- package/dist/core/codec/account.d.ts +52 -0
- package/dist/core/codec/account.d.ts.map +1 -0
- package/dist/core/codec/account.js +69 -0
- package/dist/core/codec/account.js.map +1 -0
- package/dist/core/codec/bindings.d.ts +38 -0
- package/dist/core/codec/bindings.d.ts.map +1 -0
- package/dist/core/codec/bindings.js +79 -0
- package/dist/core/codec/bindings.js.map +1 -0
- package/dist/core/codec/operations.d.ts +36 -0
- package/dist/core/codec/operations.d.ts.map +1 -0
- package/dist/core/codec/operations.js +82 -0
- package/dist/core/codec/operations.js.map +1 -0
- package/dist/core/codec/primitives.d.ts +59 -0
- package/dist/core/codec/primitives.d.ts.map +1 -0
- package/dist/core/codec/primitives.js +123 -0
- package/dist/core/codec/primitives.js.map +1 -0
- package/dist/core/codec/proxy-hub.d.ts +43 -0
- package/dist/core/codec/proxy-hub.d.ts.map +1 -0
- package/dist/core/codec/proxy-hub.js +69 -0
- package/dist/core/codec/proxy-hub.js.map +1 -0
- package/dist/core/codec/runtime.d.ts +41 -0
- package/dist/core/codec/runtime.d.ts.map +1 -0
- package/dist/core/codec/runtime.js +66 -0
- package/dist/core/codec/runtime.js.map +1 -0
- package/dist/core/codec.d.ts +43 -0
- package/dist/core/codec.d.ts.map +1 -0
- package/dist/core/codec.js +69 -0
- package/dist/core/codec.js.map +1 -0
- package/dist/core/codex-live-config.d.ts +92 -0
- package/dist/core/codex-live-config.d.ts.map +1 -0
- package/dist/core/codex-live-config.js +263 -0
- package/dist/core/codex-live-config.js.map +1 -0
- package/dist/core/config-service.d.ts +35 -0
- package/dist/core/config-service.d.ts.map +1 -0
- package/dist/core/config-service.js +87 -0
- package/dist/core/config-service.js.map +1 -0
- package/dist/core/config.d.ts +14 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +45 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/db-schema.d.ts +30 -0
- package/dist/core/db-schema.d.ts.map +1 -0
- package/dist/core/db-schema.js +278 -0
- package/dist/core/db-schema.js.map +1 -0
- package/dist/core/db.d.ts +72 -0
- package/dist/core/db.d.ts.map +1 -0
- package/dist/core/db.js +192 -0
- package/dist/core/db.js.map +1 -0
- package/dist/core/doctor-fixes.d.ts +3 -0
- package/dist/core/doctor-fixes.d.ts.map +1 -0
- package/dist/core/doctor-fixes.js +102 -0
- package/dist/core/doctor-fixes.js.map +1 -0
- package/dist/core/doctor-format.d.ts +10 -0
- package/dist/core/doctor-format.d.ts.map +1 -0
- package/dist/core/doctor-format.js +45 -0
- package/dist/core/doctor-format.js.map +1 -0
- package/dist/core/doctor-report.d.ts +3 -0
- package/dist/core/doctor-report.d.ts.map +1 -0
- package/dist/core/doctor-report.js +174 -0
- package/dist/core/doctor-report.js.map +1 -0
- package/dist/core/doctor-scan.d.ts +7 -0
- package/dist/core/doctor-scan.d.ts.map +1 -0
- package/dist/core/doctor-scan.js +139 -0
- package/dist/core/doctor-scan.js.map +1 -0
- package/dist/core/doctor-types.d.ts +89 -0
- package/dist/core/doctor-types.d.ts.map +1 -0
- package/dist/core/doctor-types.js +14 -0
- package/dist/core/doctor-types.js.map +1 -0
- package/dist/core/doctor-utils.d.ts +3 -0
- package/dist/core/doctor-utils.d.ts.map +1 -0
- package/dist/core/doctor-utils.js +36 -0
- package/dist/core/doctor-utils.js.map +1 -0
- package/dist/core/doctor.d.ts +14 -0
- package/dist/core/doctor.d.ts.map +1 -0
- package/dist/core/doctor.js +127 -0
- package/dist/core/doctor.js.map +1 -0
- package/dist/core/events.d.ts +58 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +88 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/journal.d.ts +23 -0
- package/dist/core/journal.d.ts.map +1 -0
- package/dist/core/journal.js +93 -0
- package/dist/core/journal.js.map +1 -0
- package/dist/core/lease-store.d.ts +22 -0
- package/dist/core/lease-store.d.ts.map +1 -0
- package/dist/core/lease-store.js +81 -0
- package/dist/core/lease-store.js.map +1 -0
- package/dist/core/migrate-bindings.d.ts +10 -0
- package/dist/core/migrate-bindings.d.ts.map +1 -0
- package/dist/core/migrate-bindings.js +98 -0
- package/dist/core/migrate-bindings.js.map +1 -0
- package/dist/core/migrate-fs.d.ts +11 -0
- package/dist/core/migrate-fs.d.ts.map +1 -0
- package/dist/core/migrate-fs.js +184 -0
- package/dist/core/migrate-fs.js.map +1 -0
- package/dist/core/model-cache-store.d.ts +27 -0
- package/dist/core/model-cache-store.d.ts.map +1 -0
- package/dist/core/model-cache-store.js +50 -0
- package/dist/core/model-cache-store.js.map +1 -0
- package/dist/core/model-discovery.d.ts +66 -0
- package/dist/core/model-discovery.d.ts.map +1 -0
- package/dist/core/model-discovery.js +127 -0
- package/dist/core/model-discovery.js.map +1 -0
- package/dist/core/model-policy.d.ts +40 -0
- package/dist/core/model-policy.d.ts.map +1 -0
- package/dist/core/model-policy.js +77 -0
- package/dist/core/model-policy.js.map +1 -0
- package/dist/core/model-roles.d.ts +9 -0
- package/dist/core/model-roles.d.ts.map +1 -0
- package/dist/core/model-roles.js +20 -0
- package/dist/core/model-roles.js.map +1 -0
- package/dist/core/mutation-lock.d.ts +31 -0
- package/dist/core/mutation-lock.d.ts.map +1 -0
- package/dist/core/mutation-lock.js +69 -0
- package/dist/core/mutation-lock.js.map +1 -0
- package/dist/core/paths.d.ts +49 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +110 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/plugin-loader.d.ts +40 -0
- package/dist/core/plugin-loader.d.ts.map +1 -0
- package/dist/core/plugin-loader.js +184 -0
- package/dist/core/plugin-loader.js.map +1 -0
- package/dist/core/plugin-service.d.ts +32 -0
- package/dist/core/plugin-service.d.ts.map +1 -0
- package/dist/core/plugin-service.js +110 -0
- package/dist/core/plugin-service.js.map +1 -0
- package/dist/core/plugin-store.d.ts +18 -0
- package/dist/core/plugin-store.d.ts.map +1 -0
- package/dist/core/plugin-store.js +50 -0
- package/dist/core/plugin-store.js.map +1 -0
- package/dist/core/pool-store.d.ts +44 -0
- package/dist/core/pool-store.d.ts.map +1 -0
- package/dist/core/pool-store.js +198 -0
- package/dist/core/pool-store.js.map +1 -0
- package/dist/core/preset-store.d.ts +29 -0
- package/dist/core/preset-store.d.ts.map +1 -0
- package/dist/core/preset-store.js +105 -0
- package/dist/core/preset-store.js.map +1 -0
- package/dist/core/profile-service.d.ts +50 -0
- package/dist/core/profile-service.d.ts.map +1 -0
- package/dist/core/profile-service.js +149 -0
- package/dist/core/profile-service.js.map +1 -0
- package/dist/core/profile-store.d.ts +20 -0
- package/dist/core/profile-store.d.ts.map +1 -0
- package/dist/core/profile-store.js +92 -0
- package/dist/core/profile-store.js.map +1 -0
- package/dist/core/profile-synth.d.ts +24 -0
- package/dist/core/profile-synth.d.ts.map +1 -0
- package/dist/core/profile-synth.js +30 -0
- package/dist/core/profile-synth.js.map +1 -0
- package/dist/core/project-root.d.ts +7 -0
- package/dist/core/project-root.d.ts.map +1 -0
- package/dist/core/project-root.js +23 -0
- package/dist/core/project-root.js.map +1 -0
- package/dist/core/proxy-hub-cli.d.ts +3 -0
- package/dist/core/proxy-hub-cli.d.ts.map +1 -0
- package/dist/core/proxy-hub-cli.js +80 -0
- package/dist/core/proxy-hub-cli.js.map +1 -0
- package/dist/core/proxy-hub-routes.d.ts +22 -0
- package/dist/core/proxy-hub-routes.d.ts.map +1 -0
- package/dist/core/proxy-hub-routes.js +92 -0
- package/dist/core/proxy-hub-routes.js.map +1 -0
- package/dist/core/proxy-hub-server.d.ts +59 -0
- package/dist/core/proxy-hub-server.d.ts.map +1 -0
- package/dist/core/proxy-hub-server.js +409 -0
- package/dist/core/proxy-hub-server.js.map +1 -0
- package/dist/core/proxy-hub-service.d.ts +97 -0
- package/dist/core/proxy-hub-service.d.ts.map +1 -0
- package/dist/core/proxy-hub-service.js +553 -0
- package/dist/core/proxy-hub-service.js.map +1 -0
- package/dist/core/proxy-hub-store.d.ts +28 -0
- package/dist/core/proxy-hub-store.d.ts.map +1 -0
- package/dist/core/proxy-hub-store.js +152 -0
- package/dist/core/proxy-hub-store.js.map +1 -0
- package/dist/core/proxy-lifecycle.d.ts +26 -0
- package/dist/core/proxy-lifecycle.d.ts.map +1 -0
- package/dist/core/proxy-lifecycle.js +33 -0
- package/dist/core/proxy-lifecycle.js.map +1 -0
- package/dist/core/proxy-ports.d.ts +50 -0
- package/dist/core/proxy-ports.d.ts.map +1 -0
- package/dist/core/proxy-ports.js +86 -0
- package/dist/core/proxy-ports.js.map +1 -0
- package/dist/core/proxy-service.d.ts +184 -0
- package/dist/core/proxy-service.d.ts.map +1 -0
- package/dist/core/proxy-service.js +860 -0
- package/dist/core/proxy-service.js.map +1 -0
- package/dist/core/quota-guard-policy.d.ts +8 -0
- package/dist/core/quota-guard-policy.d.ts.map +1 -0
- package/dist/core/quota-guard-policy.js +21 -0
- package/dist/core/quota-guard-policy.js.map +1 -0
- package/dist/core/realign-proxy-clients.d.ts +19 -0
- package/dist/core/realign-proxy-clients.d.ts.map +1 -0
- package/dist/core/realign-proxy-clients.js +40 -0
- package/dist/core/realign-proxy-clients.js.map +1 -0
- package/dist/core/refs.d.ts +84 -0
- package/dist/core/refs.d.ts.map +1 -0
- package/dist/core/refs.js +250 -0
- package/dist/core/refs.js.map +1 -0
- package/dist/core/registry.d.ts +46 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +70 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/resolve-source.d.ts +54 -0
- package/dist/core/resolve-source.d.ts.map +1 -0
- package/dist/core/resolve-source.js +148 -0
- package/dist/core/resolve-source.js.map +1 -0
- package/dist/core/runtime-service.d.ts +158 -0
- package/dist/core/runtime-service.d.ts.map +1 -0
- package/dist/core/runtime-service.js +422 -0
- package/dist/core/runtime-service.js.map +1 -0
- package/dist/core/service.d.ts +200 -0
- package/dist/core/service.d.ts.map +1 -0
- package/dist/core/service.js +643 -0
- package/dist/core/service.js.map +1 -0
- package/dist/core/store-snapshot.d.ts +10 -0
- package/dist/core/store-snapshot.d.ts.map +1 -0
- package/dist/core/store-snapshot.js +79 -0
- package/dist/core/store-snapshot.js.map +1 -0
- package/dist/core/store.d.ts +68 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +159 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/tray-runtime.d.ts +15 -0
- package/dist/core/tray-runtime.d.ts.map +1 -0
- package/dist/core/tray-runtime.js +33 -0
- package/dist/core/tray-runtime.js.map +1 -0
- package/dist/core/tray-settings-service.d.ts +7 -0
- package/dist/core/tray-settings-service.d.ts.map +1 -0
- package/dist/core/tray-settings-service.js +24 -0
- package/dist/core/tray-settings-service.js.map +1 -0
- package/dist/core/update.d.ts +26 -0
- package/dist/core/update.d.ts.map +1 -0
- package/dist/core/update.js +128 -0
- package/dist/core/update.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/network/egress/allowlist.d.ts +2 -0
- package/dist/network/egress/allowlist.d.ts.map +1 -0
- package/dist/network/egress/allowlist.js +14 -0
- package/dist/network/egress/allowlist.js.map +1 -0
- package/dist/network/egress/direct.d.ts +17 -0
- package/dist/network/egress/direct.d.ts.map +1 -0
- package/dist/network/egress/direct.js +28 -0
- package/dist/network/egress/direct.js.map +1 -0
- package/dist/network/egress/errors.d.ts +4 -0
- package/dist/network/egress/errors.d.ts.map +1 -0
- package/dist/network/egress/errors.js +8 -0
- package/dist/network/egress/errors.js.map +1 -0
- package/dist/network/egress/index.d.ts +6 -0
- package/dist/network/egress/index.d.ts.map +1 -0
- package/dist/network/egress/index.js +11 -0
- package/dist/network/egress/index.js.map +1 -0
- package/dist/network/egress/types.d.ts +16 -0
- package/dist/network/egress/types.d.ts.map +1 -0
- package/dist/presentation/client-name.d.ts +14 -0
- package/dist/presentation/client-name.d.ts.map +1 -0
- package/dist/presentation/client-name.js +22 -0
- package/dist/presentation/client-name.js.map +1 -0
- package/dist/presentation/layout.d.ts +7 -0
- package/dist/presentation/layout.d.ts.map +1 -0
- package/dist/presentation/layout.js +10 -0
- package/dist/presentation/layout.js.map +1 -0
- package/dist/providers/auth-fingerprint.d.ts +56 -0
- package/dist/providers/auth-fingerprint.d.ts.map +1 -0
- package/dist/providers/auth-fingerprint.js +163 -0
- package/dist/providers/auth-fingerprint.js.map +1 -0
- package/dist/providers/claude.d.ts +43 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +191 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex-identity.d.ts +13 -0
- package/dist/providers/codex-identity.d.ts.map +1 -0
- package/dist/providers/codex-identity.js +69 -0
- package/dist/providers/codex-identity.js.map +1 -0
- package/dist/providers/codex-refresh.d.ts +30 -0
- package/dist/providers/codex-refresh.d.ts.map +1 -0
- package/dist/providers/codex-refresh.js +64 -0
- package/dist/providers/codex-refresh.js.map +1 -0
- package/dist/providers/codex-usage.d.ts +3 -0
- package/dist/providers/codex-usage.d.ts.map +1 -0
- package/dist/providers/codex-usage.js +42 -0
- package/dist/providers/codex-usage.js.map +1 -0
- package/dist/providers/codex.d.ts +61 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +212 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/gemini-antigravity-oauth.d.ts +83 -0
- package/dist/providers/gemini-antigravity-oauth.d.ts.map +1 -0
- package/dist/providers/gemini-antigravity-oauth.js +343 -0
- package/dist/providers/gemini-antigravity-oauth.js.map +1 -0
- package/dist/providers/gemini-antigravity-state.d.ts +35 -0
- package/dist/providers/gemini-antigravity-state.d.ts.map +1 -0
- package/dist/providers/gemini-antigravity-state.js +433 -0
- package/dist/providers/gemini-antigravity-state.js.map +1 -0
- package/dist/providers/gemini-env.d.ts +8 -0
- package/dist/providers/gemini-env.d.ts.map +1 -0
- package/dist/providers/gemini-env.js +78 -0
- package/dist/providers/gemini-env.js.map +1 -0
- package/dist/providers/gemini-identity.d.ts +2 -0
- package/dist/providers/gemini-identity.d.ts.map +1 -0
- package/dist/providers/gemini-identity.js +14 -0
- package/dist/providers/gemini-identity.js.map +1 -0
- package/dist/providers/gemini-proxy/main.d.ts +3 -0
- package/dist/providers/gemini-proxy/main.d.ts.map +1 -0
- package/dist/providers/gemini-proxy/main.js +176 -0
- package/dist/providers/gemini-proxy/main.js.map +1 -0
- package/dist/providers/gemini-proxy/server.d.ts +57 -0
- package/dist/providers/gemini-proxy/server.d.ts.map +1 -0
- package/dist/providers/gemini-proxy/server.js +1240 -0
- package/dist/providers/gemini-proxy/server.js.map +1 -0
- package/dist/providers/gemini-proxy-entry.d.ts +2 -0
- package/dist/providers/gemini-proxy-entry.d.ts.map +1 -0
- package/dist/providers/gemini-proxy-entry.js +16 -0
- package/dist/providers/gemini-proxy-entry.js.map +1 -0
- package/dist/providers/gemini-proxy-lifecycle.d.ts +11 -0
- package/dist/providers/gemini-proxy-lifecycle.d.ts.map +1 -0
- package/dist/providers/gemini-proxy-lifecycle.js +131 -0
- package/dist/providers/gemini-proxy-lifecycle.js.map +1 -0
- package/dist/providers/gemini.d.ts +137 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +471 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/grok-proxy/auth.d.ts +27 -0
- package/dist/providers/grok-proxy/auth.d.ts.map +1 -0
- package/dist/providers/grok-proxy/auth.js +123 -0
- package/dist/providers/grok-proxy/auth.js.map +1 -0
- package/dist/providers/grok-proxy/main.d.ts +3 -0
- package/dist/providers/grok-proxy/main.d.ts.map +1 -0
- package/dist/providers/grok-proxy/main.js +111 -0
- package/dist/providers/grok-proxy/main.js.map +1 -0
- package/dist/providers/grok-proxy/server.d.ts +46 -0
- package/dist/providers/grok-proxy/server.d.ts.map +1 -0
- package/dist/providers/grok-proxy/server.js +595 -0
- package/dist/providers/grok-proxy/server.js.map +1 -0
- package/dist/providers/grok.d.ts +38 -0
- package/dist/providers/grok.d.ts.map +1 -0
- package/dist/providers/grok.js +250 -0
- package/dist/providers/grok.js.map +1 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +23 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/kiro-secret-store.d.ts +39 -0
- package/dist/providers/kiro-secret-store.d.ts.map +1 -0
- package/dist/providers/kiro-secret-store.js +168 -0
- package/dist/providers/kiro-secret-store.js.map +1 -0
- package/dist/providers/kiro.d.ts +50 -0
- package/dist/providers/kiro.d.ts.map +1 -0
- package/dist/providers/kiro.js +373 -0
- package/dist/providers/kiro.js.map +1 -0
- package/dist/providers/model-policy.d.ts +15 -0
- package/dist/providers/model-policy.d.ts.map +1 -0
- package/dist/providers/model-policy.js +26 -0
- package/dist/providers/model-policy.js.map +1 -0
- package/dist/providers/opencode-auth.d.ts +67 -0
- package/dist/providers/opencode-auth.d.ts.map +1 -0
- package/dist/providers/opencode-auth.js +146 -0
- package/dist/providers/opencode-auth.js.map +1 -0
- package/dist/providers/opencode-cli-entry.d.ts +36 -0
- package/dist/providers/opencode-cli-entry.d.ts.map +1 -0
- package/dist/providers/opencode-cli-entry.js +90 -0
- package/dist/providers/opencode-cli-entry.js.map +1 -0
- package/dist/providers/opencode-proxy/abort.d.ts +8 -0
- package/dist/providers/opencode-proxy/abort.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/abort.js +42 -0
- package/dist/providers/opencode-proxy/abort.js.map +1 -0
- package/dist/providers/opencode-proxy/anthropic-handler.d.ts +4 -0
- package/dist/providers/opencode-proxy/anthropic-handler.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/anthropic-handler.js +108 -0
- package/dist/providers/opencode-proxy/anthropic-handler.js.map +1 -0
- package/dist/providers/opencode-proxy/auth.d.ts +38 -0
- package/dist/providers/opencode-proxy/auth.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/auth.js +128 -0
- package/dist/providers/opencode-proxy/auth.js.map +1 -0
- package/dist/providers/opencode-proxy/body.d.ts +9 -0
- package/dist/providers/opencode-proxy/body.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/body.js +69 -0
- package/dist/providers/opencode-proxy/body.js.map +1 -0
- package/dist/providers/opencode-proxy/catalog-handlers.d.ts +7 -0
- package/dist/providers/opencode-proxy/catalog-handlers.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/catalog-handlers.js +132 -0
- package/dist/providers/opencode-proxy/catalog-handlers.js.map +1 -0
- package/dist/providers/opencode-proxy/catalog.d.ts +41 -0
- package/dist/providers/opencode-proxy/catalog.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/catalog.js +146 -0
- package/dist/providers/opencode-proxy/catalog.js.map +1 -0
- package/dist/providers/opencode-proxy/cli.d.ts +2 -0
- package/dist/providers/opencode-proxy/cli.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/cli.js +162 -0
- package/dist/providers/opencode-proxy/cli.js.map +1 -0
- package/dist/providers/opencode-proxy/constants.d.ts +13 -0
- package/dist/providers/opencode-proxy/constants.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/constants.js +15 -0
- package/dist/providers/opencode-proxy/constants.js.map +1 -0
- package/dist/providers/opencode-proxy/context-budget.d.ts +31 -0
- package/dist/providers/opencode-proxy/context-budget.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/context-budget.js +165 -0
- package/dist/providers/opencode-proxy/context-budget.js.map +1 -0
- package/dist/providers/opencode-proxy/errors.d.ts +5 -0
- package/dist/providers/opencode-proxy/errors.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/errors.js +45 -0
- package/dist/providers/opencode-proxy/errors.js.map +1 -0
- package/dist/providers/opencode-proxy/forwarders.d.ts +7 -0
- package/dist/providers/opencode-proxy/forwarders.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/forwarders.js +214 -0
- package/dist/providers/opencode-proxy/forwarders.js.map +1 -0
- package/dist/providers/opencode-proxy/http.d.ts +11 -0
- package/dist/providers/opencode-proxy/http.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/http.js +97 -0
- package/dist/providers/opencode-proxy/http.js.map +1 -0
- package/dist/providers/opencode-proxy/models.d.ts +42 -0
- package/dist/providers/opencode-proxy/models.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/models.js +148 -0
- package/dist/providers/opencode-proxy/models.js.map +1 -0
- package/dist/providers/opencode-proxy/openai-handler.d.ts +5 -0
- package/dist/providers/opencode-proxy/openai-handler.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/openai-handler.js +115 -0
- package/dist/providers/opencode-proxy/openai-handler.js.map +1 -0
- package/dist/providers/opencode-proxy/router.d.ts +4 -0
- package/dist/providers/opencode-proxy/router.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/router.js +65 -0
- package/dist/providers/opencode-proxy/router.js.map +1 -0
- package/dist/providers/opencode-proxy/runtime.d.ts +23 -0
- package/dist/providers/opencode-proxy/runtime.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/runtime.js +158 -0
- package/dist/providers/opencode-proxy/runtime.js.map +1 -0
- package/dist/providers/opencode-proxy/server.d.ts +13 -0
- package/dist/providers/opencode-proxy/server.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/server.js +52 -0
- package/dist/providers/opencode-proxy/server.js.map +1 -0
- package/dist/providers/opencode-proxy/stream.d.ts +4 -0
- package/dist/providers/opencode-proxy/stream.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/stream.js +71 -0
- package/dist/providers/opencode-proxy/stream.js.map +1 -0
- package/dist/providers/opencode-proxy/translate-stream.d.ts +3 -0
- package/dist/providers/opencode-proxy/translate-stream.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/translate-stream.js +205 -0
- package/dist/providers/opencode-proxy/translate-stream.js.map +1 -0
- package/dist/providers/opencode-proxy/translate.d.ts +11 -0
- package/dist/providers/opencode-proxy/translate.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/translate.js +250 -0
- package/dist/providers/opencode-proxy/translate.js.map +1 -0
- package/dist/providers/opencode-proxy/types.d.ts +110 -0
- package/dist/providers/opencode-proxy/types.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/types.js +38 -0
- package/dist/providers/opencode-proxy/types.js.map +1 -0
- package/dist/providers/opencode-proxy-lifecycle.d.ts +11 -0
- package/dist/providers/opencode-proxy-lifecycle.d.ts.map +1 -0
- package/dist/providers/opencode-proxy-lifecycle.js +144 -0
- package/dist/providers/opencode-proxy-lifecycle.js.map +1 -0
- package/dist/providers/opencode.d.ts +40 -0
- package/dist/providers/opencode.d.ts.map +1 -0
- package/dist/providers/opencode.js +190 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/protocol/anthropic-convert.d.ts +12 -0
- package/dist/providers/protocol/anthropic-convert.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-convert.js +113 -0
- package/dist/providers/protocol/anthropic-convert.js.map +1 -0
- package/dist/providers/protocol/anthropic-helpers.d.ts +13 -0
- package/dist/providers/protocol/anthropic-helpers.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-helpers.js +179 -0
- package/dist/providers/protocol/anthropic-helpers.js.map +1 -0
- package/dist/providers/protocol/anthropic-stream-reader.d.ts +13 -0
- package/dist/providers/protocol/anthropic-stream-reader.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-stream-reader.js +46 -0
- package/dist/providers/protocol/anthropic-stream-reader.js.map +1 -0
- package/dist/providers/protocol/anthropic-stream.d.ts +7 -0
- package/dist/providers/protocol/anthropic-stream.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-stream.js +318 -0
- package/dist/providers/protocol/anthropic-stream.js.map +1 -0
- package/dist/providers/protocol/anthropic-types.d.ts +240 -0
- package/dist/providers/protocol/anthropic-types.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic.d.ts +20 -0
- package/dist/providers/protocol/anthropic.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-anthropic.d.ts +15 -0
- package/dist/providers/protocol/gemini/translate-anthropic.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-anthropic.js +84 -0
- package/dist/providers/protocol/gemini/translate-anthropic.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-chat.d.ts +5 -0
- package/dist/providers/protocol/gemini/translate-chat.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-chat.js +142 -0
- package/dist/providers/protocol/gemini/translate-chat.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-models.d.ts +40 -0
- package/dist/providers/protocol/gemini/translate-models.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-models.js +186 -0
- package/dist/providers/protocol/gemini/translate-models.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-responses.d.ts +6 -0
- package/dist/providers/protocol/gemini/translate-responses.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-responses.js +187 -0
- package/dist/providers/protocol/gemini/translate-responses.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-schema.d.ts +9 -0
- package/dist/providers/protocol/gemini/translate-schema.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-schema.js +48 -0
- package/dist/providers/protocol/gemini/translate-schema.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-shared.d.ts +8 -0
- package/dist/providers/protocol/gemini/translate-shared.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-shared.js +47 -0
- package/dist/providers/protocol/gemini/translate-shared.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-thinking.d.ts +7 -0
- package/dist/providers/protocol/gemini/translate-thinking.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-thinking.js +65 -0
- package/dist/providers/protocol/gemini/translate-thinking.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-types.d.ts +133 -0
- package/dist/providers/protocol/gemini/translate-types.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate.d.ts +7 -0
- package/dist/providers/protocol/gemini/translate.d.ts.map +1 -0
- package/dist/providers/protocol/json-schema.d.ts +52 -0
- package/dist/providers/protocol/json-schema.d.ts.map +1 -0
- package/dist/providers/protocol/json-schema.js +189 -0
- package/dist/providers/protocol/json-schema.js.map +1 -0
- package/dist/providers/protocol/token-estimate.d.ts +15 -0
- package/dist/providers/protocol/token-estimate.d.ts.map +1 -0
- package/dist/providers/protocol/token-estimate.js +34 -0
- package/dist/providers/protocol/token-estimate.js.map +1 -0
- package/dist/providers/proxy-hub-backend.d.ts +4 -0
- package/dist/providers/proxy-hub-backend.d.ts.map +1 -0
- package/dist/providers/proxy-hub-backend.js +11 -0
- package/dist/providers/proxy-hub-backend.js.map +1 -0
- package/dist/providers/proxy-process.d.ts +35 -0
- package/dist/providers/proxy-process.d.ts.map +1 -0
- package/dist/providers/proxy-process.js +119 -0
- package/dist/providers/proxy-process.js.map +1 -0
- package/dist/providers/proxy-shared.d.ts +43 -0
- package/dist/providers/proxy-shared.d.ts.map +1 -0
- package/dist/providers/proxy-shared.js +128 -0
- package/dist/providers/proxy-shared.js.map +1 -0
- package/dist/providers/quota-guard.d.ts +49 -0
- package/dist/providers/quota-guard.d.ts.map +1 -0
- package/dist/providers/quota-guard.js +107 -0
- package/dist/providers/quota-guard.js.map +1 -0
- package/dist/providers/reasoning.d.ts +27 -0
- package/dist/providers/reasoning.d.ts.map +1 -0
- package/dist/providers/reasoning.js +61 -0
- package/dist/providers/reasoning.js.map +1 -0
- package/dist/providers/upstream-policy.d.ts +33 -0
- package/dist/providers/upstream-policy.d.ts.map +1 -0
- package/dist/providers/upstream-policy.js +97 -0
- package/dist/providers/upstream-policy.js.map +1 -0
- package/dist/public-types.d.ts +3 -0
- package/dist/public-types.d.ts.map +1 -0
- package/dist/public.d.ts +19 -0
- package/dist/public.d.ts.map +1 -0
- package/dist/public.js +16 -0
- package/dist/public.js.map +1 -0
- package/dist/sources/account-adapters.d.ts +64 -0
- package/dist/sources/account-adapters.d.ts.map +1 -0
- package/dist/sources/account-adapters.js +205 -0
- package/dist/sources/account-adapters.js.map +1 -0
- package/dist/sources/gateway-adapters.d.ts +26 -0
- package/dist/sources/gateway-adapters.d.ts.map +1 -0
- package/dist/sources/gateway-adapters.js +43 -0
- package/dist/sources/gateway-adapters.js.map +1 -0
- package/dist/sources/kiro-proxy-bin.d.ts +41 -0
- package/dist/sources/kiro-proxy-bin.d.ts.map +1 -0
- package/dist/sources/kiro-proxy-bin.js +140 -0
- package/dist/sources/kiro-proxy-bin.js.map +1 -0
- package/dist/sources/proxy-hub-adapters.d.ts +7 -0
- package/dist/sources/proxy-hub-adapters.d.ts.map +1 -0
- package/dist/sources/proxy-hub-adapters.js +26 -0
- package/dist/sources/proxy-hub-adapters.js.map +1 -0
- package/dist/testing.d.ts +9 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +6 -0
- package/dist/tray/AnyPickTray.swift +3 -0
- package/dist/tray/activity.d.ts +18 -0
- package/dist/tray/activity.d.ts.map +1 -0
- package/dist/tray/activity.js +51 -0
- package/dist/tray/activity.js.map +1 -0
- package/dist/tray/app-icons/icon-1024.png +0 -0
- package/dist/tray/app-icons/icon-128.png +0 -0
- package/dist/tray/app-icons/icon-16.png +0 -0
- package/dist/tray/app-icons/icon-256.png +0 -0
- package/dist/tray/app-icons/icon-32.png +0 -0
- package/dist/tray/app-icons/icon-512.png +0 -0
- package/dist/tray/app-icons/icon-64.png +0 -0
- package/dist/tray/icons/claude.svg +1 -0
- package/dist/tray/icons/googlegemini.svg +1 -0
- package/dist/tray/icons/grok.svg +1 -0
- package/dist/tray/icons/kiro.svg +1 -0
- package/dist/tray/icons/openai.svg +1 -0
- package/dist/tray/icons/opencode.svg +1 -0
- package/dist/tray/icons/openrouter.svg +1 -0
- package/dist/tray/model-role-actions.d.ts +15 -0
- package/dist/tray/model-role-actions.d.ts.map +1 -0
- package/dist/tray/model-role-actions.js +41 -0
- package/dist/tray/model-role-actions.js.map +1 -0
- package/dist/tray/native/AccountsPanel.swift +434 -0
- package/dist/tray/native/AppEntry.swift +229 -0
- package/dist/tray/native/MainWindow.swift +300 -0
- package/dist/tray/native/ManageFormChrome.swift +332 -0
- package/dist/tray/native/ManageForms.swift +472 -0
- package/dist/tray/native/ManagePanel.swift +356 -0
- package/dist/tray/native/Models.swift +259 -0
- package/dist/tray/native/ModelsEditor.swift +390 -0
- package/dist/tray/native/ModelsOverview.swift +76 -0
- package/dist/tray/native/ModelsPickers.swift +273 -0
- package/dist/tray/native/ModelsRoutePickers.swift +718 -0
- package/dist/tray/native/MonitorPanel.swift +375 -0
- package/dist/tray/native/ProxyPanel.swift +326 -0
- package/dist/tray/native/QuickActivityRow.swift +40 -0
- package/dist/tray/native/QuickNav.swift +62 -0
- package/dist/tray/native/QuickPanel.swift +447 -0
- package/dist/tray/native/QuickRouteRow.swift +189 -0
- package/dist/tray/native/QuickServiceRows.swift +292 -0
- package/dist/tray/native/RoutingIssues.swift +293 -0
- package/dist/tray/native/SettingsPanel.swift +225 -0
- package/dist/tray/native/SharedUI.swift +681 -0
- package/dist/tray/native/Store.swift +540 -0
- package/dist/tray/native/Theme.swift +139 -0
- package/dist/tray/native/TrayChrome.swift +657 -0
- package/dist/tray/native/TrayControls.swift +475 -0
- package/dist/tray/native/TrayPreferences.swift +46 -0
- package/dist/tray/native/sources.txt +26 -0
- package/dist/tray/native-sources.d.ts +8 -0
- package/dist/tray/native-sources.d.ts.map +1 -0
- package/dist/tray/native-sources.js +19 -0
- package/dist/tray/native-sources.js.map +1 -0
- package/dist/tray/protocol.d.ts +79 -0
- package/dist/tray/protocol.d.ts.map +1 -0
- package/dist/tray/protocol.js +145 -0
- package/dist/tray/protocol.js.map +1 -0
- package/dist/tray/settings.d.ts +15 -0
- package/dist/tray/settings.d.ts.map +1 -0
- package/dist/tray/settings.js +72 -0
- package/dist/tray/settings.js.map +1 -0
- package/dist/tray/snapshot-client-routes.d.ts +11 -0
- package/dist/tray/snapshot-client-routes.d.ts.map +1 -0
- package/dist/tray/snapshot-client-routes.js +305 -0
- package/dist/tray/snapshot-client-routes.js.map +1 -0
- package/dist/tray/snapshot-helpers.d.ts +20 -0
- package/dist/tray/snapshot-helpers.d.ts.map +1 -0
- package/dist/tray/snapshot-helpers.js +74 -0
- package/dist/tray/snapshot-helpers.js.map +1 -0
- package/dist/tray/snapshot-hub.d.ts +7 -0
- package/dist/tray/snapshot-hub.d.ts.map +1 -0
- package/dist/tray/snapshot-hub.js +93 -0
- package/dist/tray/snapshot-hub.js.map +1 -0
- package/dist/tray/snapshot-resources.d.ts +19 -0
- package/dist/tray/snapshot-resources.d.ts.map +1 -0
- package/dist/tray/snapshot-resources.js +216 -0
- package/dist/tray/snapshot-resources.js.map +1 -0
- package/dist/tray/snapshot-types.d.ts +229 -0
- package/dist/tray/snapshot-types.d.ts.map +1 -0
- package/dist/tray/snapshot-usage.d.ts +9 -0
- package/dist/tray/snapshot-usage.d.ts.map +1 -0
- package/dist/tray/snapshot-usage.js +35 -0
- package/dist/tray/snapshot-usage.js.map +1 -0
- package/dist/tray/snapshot.d.ts +7 -0
- package/dist/tray/snapshot.d.ts.map +1 -0
- package/dist/tray/snapshot.js +48 -0
- package/dist/tray/snapshot.js.map +1 -0
- package/dist/tray/supervisor-actions.d.ts +19 -0
- package/dist/tray/supervisor-actions.d.ts.map +1 -0
- package/dist/tray/supervisor-actions.js +224 -0
- package/dist/tray/supervisor-actions.js.map +1 -0
- package/dist/tray/supervisor-activity.d.ts +5 -0
- package/dist/tray/supervisor-activity.d.ts.map +1 -0
- package/dist/tray/supervisor-activity.js +19 -0
- package/dist/tray/supervisor-activity.js.map +1 -0
- package/dist/tray/supervisor-errors.d.ts +9 -0
- package/dist/tray/supervisor-errors.d.ts.map +1 -0
- package/dist/tray/supervisor-errors.js +91 -0
- package/dist/tray/supervisor-errors.js.map +1 -0
- package/dist/tray/supervisor-logs.d.ts +6 -0
- package/dist/tray/supervisor-logs.d.ts.map +1 -0
- package/dist/tray/supervisor-logs.js +52 -0
- package/dist/tray/supervisor-logs.js.map +1 -0
- package/dist/tray/supervisor-mutations.d.ts +14 -0
- package/dist/tray/supervisor-mutations.d.ts.map +1 -0
- package/dist/tray/supervisor-mutations.js +218 -0
- package/dist/tray/supervisor-mutations.js.map +1 -0
- package/dist/tray/supervisor-native.d.ts +22 -0
- package/dist/tray/supervisor-native.d.ts.map +1 -0
- package/dist/tray/supervisor-native.js +227 -0
- package/dist/tray/supervisor-native.js.map +1 -0
- package/dist/tray/supervisor-proxies.d.ts +6 -0
- package/dist/tray/supervisor-proxies.d.ts.map +1 -0
- package/dist/tray/supervisor-proxies.js +37 -0
- package/dist/tray/supervisor-proxies.js.map +1 -0
- package/dist/tray/supervisor-tauri.d.ts +13 -0
- package/dist/tray/supervisor-tauri.d.ts.map +1 -0
- package/dist/tray/supervisor-tauri.js +36 -0
- package/dist/tray/supervisor-tauri.js.map +1 -0
- package/dist/tray/supervisor.d.ts +17 -0
- package/dist/tray/supervisor.d.ts.map +1 -0
- package/dist/tray/supervisor.js +372 -0
- package/dist/tray/supervisor.js.map +1 -0
- package/dist/tray/terminal-launcher.d.ts +12 -0
- package/dist/tray/terminal-launcher.d.ts.map +1 -0
- package/dist/tray/terminal-launcher.js +130 -0
- package/dist/tray/terminal-launcher.js.map +1 -0
- package/dist/tui/actions/ensure-proxy-up.d.ts +15 -0
- package/dist/tui/actions/ensure-proxy-up.d.ts.map +1 -0
- package/dist/tui/actions/ensure-proxy-up.js +41 -0
- package/dist/tui/actions/ensure-proxy-up.js.map +1 -0
- package/dist/tui/actions/use-account-actions.d.ts +35 -0
- package/dist/tui/actions/use-account-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-account-actions.js +527 -0
- package/dist/tui/actions/use-account-actions.js.map +1 -0
- package/dist/tui/actions/use-app-bindings.d.ts +83 -0
- package/dist/tui/actions/use-app-bindings.d.ts.map +1 -0
- package/dist/tui/actions/use-app-bindings.js +472 -0
- package/dist/tui/actions/use-app-bindings.js.map +1 -0
- package/dist/tui/actions/use-gateway-actions.d.ts +45 -0
- package/dist/tui/actions/use-gateway-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-gateway-actions.js +370 -0
- package/dist/tui/actions/use-gateway-actions.js.map +1 -0
- package/dist/tui/actions/use-home-filter.d.ts +24 -0
- package/dist/tui/actions/use-home-filter.d.ts.map +1 -0
- package/dist/tui/actions/use-home-filter.js +48 -0
- package/dist/tui/actions/use-home-filter.js.map +1 -0
- package/dist/tui/actions/use-model-role-editor.d.ts +44 -0
- package/dist/tui/actions/use-model-role-editor.d.ts.map +1 -0
- package/dist/tui/actions/use-model-role-editor.js +68 -0
- package/dist/tui/actions/use-model-role-editor.js.map +1 -0
- package/dist/tui/actions/use-provider-filter.d.ts +10 -0
- package/dist/tui/actions/use-provider-filter.d.ts.map +1 -0
- package/dist/tui/actions/use-provider-filter.js +22 -0
- package/dist/tui/actions/use-provider-filter.js.map +1 -0
- package/dist/tui/actions/use-proxy-actions.d.ts +31 -0
- package/dist/tui/actions/use-proxy-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-proxy-actions.js +474 -0
- package/dist/tui/actions/use-proxy-actions.js.map +1 -0
- package/dist/tui/actions/use-text-input-submit.d.ts +16 -0
- package/dist/tui/actions/use-text-input-submit.d.ts.map +1 -0
- package/dist/tui/actions/use-text-input-submit.js +96 -0
- package/dist/tui/actions/use-text-input-submit.js.map +1 -0
- package/dist/tui/actions/use-tray-runtime-actions.d.ts +18 -0
- package/dist/tui/actions/use-tray-runtime-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-tray-runtime-actions.js +78 -0
- package/dist/tui/actions/use-tray-runtime-actions.js.map +1 -0
- package/dist/tui/app-ui-helpers.d.ts +14 -0
- package/dist/tui/app-ui-helpers.d.ts.map +1 -0
- package/dist/tui/app-ui-helpers.js +48 -0
- package/dist/tui/app-ui-helpers.js.map +1 -0
- package/dist/tui/app-ui.d.ts +19 -0
- package/dist/tui/app-ui.d.ts.map +1 -0
- package/dist/tui/app-ui.js +98 -0
- package/dist/tui/app-ui.js.map +1 -0
- package/dist/tui/components/chrome/header.d.ts +39 -0
- package/dist/tui/components/chrome/header.d.ts.map +1 -0
- package/dist/tui/components/chrome/header.js +161 -0
- package/dist/tui/components/chrome/header.js.map +1 -0
- package/dist/tui/components/chrome/inputs.d.ts +34 -0
- package/dist/tui/components/chrome/inputs.d.ts.map +1 -0
- package/dist/tui/components/chrome/inputs.js +82 -0
- package/dist/tui/components/chrome/inputs.js.map +1 -0
- package/dist/tui/components/chrome/layout.d.ts +61 -0
- package/dist/tui/components/chrome/layout.d.ts.map +1 -0
- package/dist/tui/components/chrome/layout.js +119 -0
- package/dist/tui/components/chrome/layout.js.map +1 -0
- package/dist/tui/components/chrome/legacy.d.ts +84 -0
- package/dist/tui/components/chrome/legacy.d.ts.map +1 -0
- package/dist/tui/components/chrome/legacy.js +6 -0
- package/dist/tui/components/chrome/rows.d.ts +89 -0
- package/dist/tui/components/chrome/rows.d.ts.map +1 -0
- package/dist/tui/components/chrome/rows.js +151 -0
- package/dist/tui/components/chrome/rows.js.map +1 -0
- package/dist/tui/components/chrome/status.d.ts +50 -0
- package/dist/tui/components/chrome/status.d.ts.map +1 -0
- package/dist/tui/components/chrome/status.js +157 -0
- package/dist/tui/components/chrome/status.js.map +1 -0
- package/dist/tui/components/chrome.d.ts +7 -0
- package/dist/tui/components/chrome.d.ts.map +1 -0
- package/dist/tui/components/chrome.js +7 -0
- package/dist/tui/components.d.ts +26 -0
- package/dist/tui/components.d.ts.map +1 -0
- package/dist/tui/components.js +182 -0
- package/dist/tui/components.js.map +1 -0
- package/dist/tui/model/anypick.d.ts +106 -0
- package/dist/tui/model/anypick.d.ts.map +1 -0
- package/dist/tui/model/anypick.js +116 -0
- package/dist/tui/model/anypick.js.map +1 -0
- package/dist/tui/model/bindings.d.ts +39 -0
- package/dist/tui/model/bindings.d.ts.map +1 -0
- package/dist/tui/model/bindings.js +102 -0
- package/dist/tui/model/bindings.js.map +1 -0
- package/dist/tui/model/detail.d.ts +6 -0
- package/dist/tui/model/detail.d.ts.map +1 -0
- package/dist/tui/model/detail.js +85 -0
- package/dist/tui/model/detail.js.map +1 -0
- package/dist/tui/model/gateway.d.ts +46 -0
- package/dist/tui/model/gateway.d.ts.map +1 -0
- package/dist/tui/model/gateway.js +134 -0
- package/dist/tui/model/gateway.js.map +1 -0
- package/dist/tui/model/home-format.d.ts +52 -0
- package/dist/tui/model/home-format.d.ts.map +1 -0
- package/dist/tui/model/home-format.js +64 -0
- package/dist/tui/model/home-format.js.map +1 -0
- package/dist/tui/model/home-load.d.ts +8 -0
- package/dist/tui/model/home-load.d.ts.map +1 -0
- package/dist/tui/model/home-load.js +244 -0
- package/dist/tui/model/home-load.js.map +1 -0
- package/dist/tui/model/identity.d.ts +53 -0
- package/dist/tui/model/identity.d.ts.map +1 -0
- package/dist/tui/model/identity.js +176 -0
- package/dist/tui/model/identity.js.map +1 -0
- package/dist/tui/model/line-editor.d.ts +99 -0
- package/dist/tui/model/line-editor.d.ts.map +1 -0
- package/dist/tui/model/line-editor.js +186 -0
- package/dist/tui/model/line-editor.js.map +1 -0
- package/dist/tui/model/names.d.ts +28 -0
- package/dist/tui/model/names.d.ts.map +1 -0
- package/dist/tui/model/names.js +42 -0
- package/dist/tui/model/names.js.map +1 -0
- package/dist/tui/model/pool.d.ts +11 -0
- package/dist/tui/model/pool.d.ts.map +1 -0
- package/dist/tui/model/pool.js +115 -0
- package/dist/tui/model/pool.js.map +1 -0
- package/dist/tui/model/provider-filter.d.ts +14 -0
- package/dist/tui/model/provider-filter.d.ts.map +1 -0
- package/dist/tui/model/provider-filter.js +46 -0
- package/dist/tui/model/provider-filter.js.map +1 -0
- package/dist/tui/model/proxy-hub.d.ts +23 -0
- package/dist/tui/model/proxy-hub.d.ts.map +1 -0
- package/dist/tui/model/proxy-hub.js +69 -0
- package/dist/tui/model/proxy-hub.js.map +1 -0
- package/dist/tui/model/proxy-labels.d.ts +5 -0
- package/dist/tui/model/proxy-labels.d.ts.map +1 -0
- package/dist/tui/model/proxy-labels.js +18 -0
- package/dist/tui/model/proxy-labels.js.map +1 -0
- package/dist/tui/model/proxy.d.ts +15 -0
- package/dist/tui/model/proxy.d.ts.map +1 -0
- package/dist/tui/model/proxy.js +214 -0
- package/dist/tui/model/proxy.js.map +1 -0
- package/dist/tui/model/root.d.ts +20 -0
- package/dist/tui/model/root.d.ts.map +1 -0
- package/dist/tui/model/root.js +126 -0
- package/dist/tui/model/root.js.map +1 -0
- package/dist/tui/model/route-builder.d.ts +25 -0
- package/dist/tui/model/route-builder.d.ts.map +1 -0
- package/dist/tui/model/route-builder.js +199 -0
- package/dist/tui/model/route-builder.js.map +1 -0
- package/dist/tui/model/screen.d.ts +260 -0
- package/dist/tui/model/screen.d.ts.map +1 -0
- package/dist/tui/model/types.d.ts +179 -0
- package/dist/tui/model/types.d.ts.map +1 -0
- package/dist/tui/model.d.ts +18 -0
- package/dist/tui/model.d.ts.map +1 -0
- package/dist/tui/model.js +17 -0
- package/dist/tui/proxy-models-fetch.d.ts +34 -0
- package/dist/tui/proxy-models-fetch.d.ts.map +1 -0
- package/dist/tui/proxy-models-fetch.js +87 -0
- package/dist/tui/proxy-models-fetch.js.map +1 -0
- package/dist/tui/routes/account.d.ts +4 -0
- package/dist/tui/routes/account.d.ts.map +1 -0
- package/dist/tui/routes/account.js +327 -0
- package/dist/tui/routes/account.js.map +1 -0
- package/dist/tui/routes/apps.d.ts +3 -0
- package/dist/tui/routes/apps.d.ts.map +1 -0
- package/dist/tui/routes/apps.js +296 -0
- package/dist/tui/routes/apps.js.map +1 -0
- package/dist/tui/routes/common.d.ts +4 -0
- package/dist/tui/routes/common.d.ts.map +1 -0
- package/dist/tui/routes/common.js +117 -0
- package/dist/tui/routes/common.js.map +1 -0
- package/dist/tui/routes/context.d.ts +43 -0
- package/dist/tui/routes/context.d.ts.map +1 -0
- package/dist/tui/routes/gateway.d.ts +3 -0
- package/dist/tui/routes/gateway.d.ts.map +1 -0
- package/dist/tui/routes/gateway.js +199 -0
- package/dist/tui/routes/gateway.js.map +1 -0
- package/dist/tui/routes/proxy.d.ts +3 -0
- package/dist/tui/routes/proxy.d.ts.map +1 -0
- package/dist/tui/routes/proxy.js +234 -0
- package/dist/tui/routes/proxy.js.map +1 -0
- package/dist/tui/screens/account-detail.d.ts +14 -0
- package/dist/tui/screens/account-detail.d.ts.map +1 -0
- package/dist/tui/screens/account-detail.js +98 -0
- package/dist/tui/screens/account-detail.js.map +1 -0
- package/dist/tui/screens/accounts-home.d.ts +42 -0
- package/dist/tui/screens/accounts-home.d.ts.map +1 -0
- package/dist/tui/screens/accounts-home.js +321 -0
- package/dist/tui/screens/accounts-home.js.map +1 -0
- package/dist/tui/screens/add-account.d.ts +70 -0
- package/dist/tui/screens/add-account.d.ts.map +1 -0
- package/dist/tui/screens/add-account.js +323 -0
- package/dist/tui/screens/add-account.js.map +1 -0
- package/dist/tui/screens/anypick-home.d.ts +39 -0
- package/dist/tui/screens/anypick-home.d.ts.map +1 -0
- package/dist/tui/screens/anypick-home.js +253 -0
- package/dist/tui/screens/anypick-home.js.map +1 -0
- package/dist/tui/screens/anypick-preview.d.ts +13 -0
- package/dist/tui/screens/anypick-preview.d.ts.map +1 -0
- package/dist/tui/screens/anypick-preview.js +49 -0
- package/dist/tui/screens/anypick-preview.js.map +1 -0
- package/dist/tui/screens/app-route-preview.d.ts +14 -0
- package/dist/tui/screens/app-route-preview.d.ts.map +1 -0
- package/dist/tui/screens/app-route-preview.js +35 -0
- package/dist/tui/screens/app-route-preview.js.map +1 -0
- package/dist/tui/screens/app-route-source.d.ts +15 -0
- package/dist/tui/screens/app-route-source.d.ts.map +1 -0
- package/dist/tui/screens/app-route-source.js +97 -0
- package/dist/tui/screens/app-route-source.js.map +1 -0
- package/dist/tui/screens/apps-home.d.ts +22 -0
- package/dist/tui/screens/apps-home.d.ts.map +1 -0
- package/dist/tui/screens/apps-home.js +111 -0
- package/dist/tui/screens/apps-home.js.map +1 -0
- package/dist/tui/screens/confirm.d.ts +19 -0
- package/dist/tui/screens/confirm.d.ts.map +1 -0
- package/dist/tui/screens/confirm.js +42 -0
- package/dist/tui/screens/confirm.js.map +1 -0
- package/dist/tui/screens/credential-form.d.ts +30 -0
- package/dist/tui/screens/credential-form.d.ts.map +1 -0
- package/dist/tui/screens/credential-form.js +241 -0
- package/dist/tui/screens/credential-form.js.map +1 -0
- package/dist/tui/screens/gateway-connection-form.d.ts +16 -0
- package/dist/tui/screens/gateway-connection-form.d.ts.map +1 -0
- package/dist/tui/screens/gateway-connection-form.js +127 -0
- package/dist/tui/screens/gateway-connection-form.js.map +1 -0
- package/dist/tui/screens/gateway-pick-provider.d.ts +19 -0
- package/dist/tui/screens/gateway-pick-provider.d.ts.map +1 -0
- package/dist/tui/screens/gateway-pick-provider.js +62 -0
- package/dist/tui/screens/gateway-pick-provider.js.map +1 -0
- package/dist/tui/screens/gateways-home.d.ts +38 -0
- package/dist/tui/screens/gateways-home.d.ts.map +1 -0
- package/dist/tui/screens/gateways-home.js +247 -0
- package/dist/tui/screens/gateways-home.js.map +1 -0
- package/dist/tui/screens/health.d.ts +16 -0
- package/dist/tui/screens/health.d.ts.map +1 -0
- package/dist/tui/screens/health.js +109 -0
- package/dist/tui/screens/health.js.map +1 -0
- package/dist/tui/screens/help.d.ts +10 -0
- package/dist/tui/screens/help.d.ts.map +1 -0
- package/dist/tui/screens/help.js +213 -0
- package/dist/tui/screens/help.js.map +1 -0
- package/dist/tui/screens/manage-apps.d.ts +29 -0
- package/dist/tui/screens/manage-apps.d.ts.map +1 -0
- package/dist/tui/screens/manage-apps.js +165 -0
- package/dist/tui/screens/manage-apps.js.map +1 -0
- package/dist/tui/screens/proxy-board-helpers.d.ts +9 -0
- package/dist/tui/screens/proxy-board-helpers.d.ts.map +1 -0
- package/dist/tui/screens/proxy-board-helpers.js +70 -0
- package/dist/tui/screens/proxy-board-helpers.js.map +1 -0
- package/dist/tui/screens/proxy-board.d.ts +43 -0
- package/dist/tui/screens/proxy-board.d.ts.map +1 -0
- package/dist/tui/screens/proxy-board.js +351 -0
- package/dist/tui/screens/proxy-board.js.map +1 -0
- package/dist/tui/screens/proxy-hub.d.ts +21 -0
- package/dist/tui/screens/proxy-hub.d.ts.map +1 -0
- package/dist/tui/screens/proxy-hub.js +150 -0
- package/dist/tui/screens/proxy-hub.js.map +1 -0
- package/dist/tui/screens/proxy-models-utils.d.ts +13 -0
- package/dist/tui/screens/proxy-models-utils.d.ts.map +1 -0
- package/dist/tui/screens/proxy-models-utils.js +53 -0
- package/dist/tui/screens/proxy-models-utils.js.map +1 -0
- package/dist/tui/screens/proxy-models.d.ts +65 -0
- package/dist/tui/screens/proxy-models.d.ts.map +1 -0
- package/dist/tui/screens/proxy-models.js +252 -0
- package/dist/tui/screens/proxy-models.js.map +1 -0
- package/dist/tui/screens/proxy.d.ts +26 -0
- package/dist/tui/screens/proxy.d.ts.map +1 -0
- package/dist/tui/screens/text-input.d.ts +18 -0
- package/dist/tui/screens/text-input.d.ts.map +1 -0
- package/dist/tui/screens/text-input.js +67 -0
- package/dist/tui/screens/text-input.js.map +1 -0
- package/dist/tui/screens/tray-runtime.d.ts +19 -0
- package/dist/tui/screens/tray-runtime.d.ts.map +1 -0
- package/dist/tui/screens/tray-runtime.js +108 -0
- package/dist/tui/screens/tray-runtime.js.map +1 -0
- package/dist/tui/use-tui-nav.d.ts +40 -0
- package/dist/tui/use-tui-nav.d.ts.map +1 -0
- package/dist/tui/use-tui-nav.js +256 -0
- package/dist/tui/use-tui-nav.js.map +1 -0
- package/dist/tui/use-tui-shell.d.ts +46 -0
- package/dist/tui/use-tui-shell.d.ts.map +1 -0
- package/dist/tui/use-tui-shell.js +95 -0
- package/dist/tui/use-tui-shell.js.map +1 -0
- package/dist/types/account.d.ts +410 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/account.js +7 -0
- package/dist/types/account.js.map +1 -0
- package/dist/types/bindings.d.ts +300 -0
- package/dist/types/bindings.d.ts.map +1 -0
- package/dist/types/catalog.d.ts +165 -0
- package/dist/types/catalog.d.ts.map +1 -0
- package/dist/types/clients.d.ts +174 -0
- package/dist/types/clients.d.ts.map +1 -0
- package/dist/types/clients.js +11 -0
- package/dist/types/clients.js.map +1 -0
- package/dist/types/plugins.d.ts +89 -0
- package/dist/types/plugins.d.ts.map +1 -0
- package/dist/types/plugins.js +14 -0
- package/dist/types/plugins.js.map +1 -0
- package/dist/types/proxy-hub.d.ts +109 -0
- package/dist/types/proxy-hub.d.ts.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/utils/errors.d.ts +61 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +119 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/fs.d.ts +39 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +126 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/lock.d.ts +33 -0
- package/dist/utils/lock.d.ts.map +1 -0
- package/dist/utils/lock.js +95 -0
- package/dist/utils/lock.js.map +1 -0
- package/dist/utils/log.d.ts +10 -0
- package/dist/utils/log.d.ts.map +1 -0
- package/dist/utils/log.js +21 -0
- package/dist/utils/log.js.map +1 -0
- package/dist/utils/network.d.ts +3 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +13 -0
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/process/binary.d.ts +14 -0
- package/dist/utils/process/binary.d.ts.map +1 -0
- package/dist/utils/process/binary.js +29 -0
- package/dist/utils/process/binary.js.map +1 -0
- package/dist/utils/process/follow.d.ts +2 -0
- package/dist/utils/process/follow.d.ts.map +1 -0
- package/dist/utils/process/follow.js +90 -0
- package/dist/utils/process/follow.js.map +1 -0
- package/dist/utils/process/health.d.ts +43 -0
- package/dist/utils/process/health.d.ts.map +1 -0
- package/dist/utils/process/health.js +132 -0
- package/dist/utils/process/health.js.map +1 -0
- package/dist/utils/process/pid.d.ts +95 -0
- package/dist/utils/process/pid.d.ts.map +1 -0
- package/dist/utils/process/pid.js +243 -0
- package/dist/utils/process/pid.js.map +1 -0
- package/dist/utils/process.d.ts +5 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +5 -0
- package/dist/utils/slug.d.ts +18 -0
- package/dist/utils/slug.d.ts.map +1 -0
- package/dist/utils/slug.js +42 -0
- package/dist/utils/slug.js.map +1 -0
- package/package.json +121 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { AnyPickError } from "../utils/errors.js";
|
|
2
|
+
import { ensureDir, pathExists, readJsonFile, writeJsonFile } from "../utils/fs.js";
|
|
3
|
+
import { resolveFromContext } from "./resolve.js";
|
|
4
|
+
import { syntheticProxyProfile } from "../core/profile-synth.js";
|
|
5
|
+
import { ANYPICK_MANAGED_KEY, removeClientEnvFiles } from "./env-files.js";
|
|
6
|
+
import { createTempRuntimeRoot, makeIsolatedRuntime, materializeIsolatablePaths } from "./isolation.js";
|
|
7
|
+
import { CLAUDE_MODEL_ROLES } from "./model-roles.js";
|
|
8
|
+
import { applyClaudeToHome, settingsPath } from "./claude-client-apply.js";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import { homedir } from "node:os";
|
|
11
|
+
//#region src/clients/claude-code.ts
|
|
12
|
+
function effectiveHome(ctx, liveHome) {
|
|
13
|
+
return ctx.isolatedHome ?? liveHome;
|
|
14
|
+
}
|
|
15
|
+
function createClaudeCodeClient(home = process.env.HOME ?? homedir()) {
|
|
16
|
+
const liveSettings = settingsPath(home);
|
|
17
|
+
const adapter = {
|
|
18
|
+
id: "claude",
|
|
19
|
+
name: "Claude Code",
|
|
20
|
+
shortName: "Claude",
|
|
21
|
+
binaryName: "claude",
|
|
22
|
+
binaryEnvVar: "CLAUDE_BINARY",
|
|
23
|
+
description: "Anthropic Claude Code CLI / IDE",
|
|
24
|
+
supportedApiStyles: [
|
|
25
|
+
"openai",
|
|
26
|
+
"anthropic",
|
|
27
|
+
"custom"
|
|
28
|
+
],
|
|
29
|
+
nativeInstallations: [{
|
|
30
|
+
sourceId: "claude-code",
|
|
31
|
+
executables: ["claude"],
|
|
32
|
+
macApplications: ["Claude.app"]
|
|
33
|
+
}],
|
|
34
|
+
routingSurfacePolicy: "all-compatible",
|
|
35
|
+
capabilities: {
|
|
36
|
+
id: "claude",
|
|
37
|
+
acceptedProtocols: ["anthropic"],
|
|
38
|
+
supportsEnvironmentOverlay: false,
|
|
39
|
+
supportsIsolatedHome: true,
|
|
40
|
+
supportsPersistentConfig: true,
|
|
41
|
+
protocolPreference: "anthropic"
|
|
42
|
+
},
|
|
43
|
+
modelRoles: () => CLAUDE_MODEL_ROLES,
|
|
44
|
+
async validate(ctx) {
|
|
45
|
+
if (!resolveFromContext(ctx).endpoint) throw new AnyPickError("Profile has no endpoint. Set with: profile edit <name> --endpoint …", "CLIENT_CONFIG_INVALID");
|
|
46
|
+
},
|
|
47
|
+
async apply(ctx) {
|
|
48
|
+
return applyClaudeToHome(ctx, effectiveHome(ctx, home));
|
|
49
|
+
},
|
|
50
|
+
async listIsolatablePaths(liveState) {
|
|
51
|
+
return [{
|
|
52
|
+
sourcePath: settingsPath(liveState.home),
|
|
53
|
+
destinationPath: join(".claude", "settings.json"),
|
|
54
|
+
kind: "file",
|
|
55
|
+
required: false
|
|
56
|
+
}];
|
|
57
|
+
},
|
|
58
|
+
async createIsolatedRuntime(plan, paths) {
|
|
59
|
+
const runtimeRoot = await createTempRuntimeRoot("anypick-claude-");
|
|
60
|
+
const isoHome = join(runtimeRoot, "home");
|
|
61
|
+
await ensureDir(isoHome);
|
|
62
|
+
await materializeIsolatablePaths(isoHome, paths);
|
|
63
|
+
const endpoint = plan.transport.endpoint ?? (plan.transport.managedProxy ? `http://127.0.0.1:${plan.transport.managedProxy.port}` : "");
|
|
64
|
+
const profile = plan.profile ?? syntheticProxyProfile({
|
|
65
|
+
name: `ephemeral-${plan.source.display}`,
|
|
66
|
+
endpoint,
|
|
67
|
+
apiKey: "anypick-proxy",
|
|
68
|
+
defaultModel: plan.model.mode === "explicit" ? plan.model.id : void 0
|
|
69
|
+
});
|
|
70
|
+
const ctx = {
|
|
71
|
+
profile: {
|
|
72
|
+
...profile,
|
|
73
|
+
meta: {
|
|
74
|
+
...profile.meta,
|
|
75
|
+
endpoint
|
|
76
|
+
},
|
|
77
|
+
secrets: {
|
|
78
|
+
...profile.secrets,
|
|
79
|
+
apiKey: profile.secrets.apiKey ?? "anypick-proxy"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
clientId: "claude",
|
|
83
|
+
dryRun: plan.dryRun,
|
|
84
|
+
verbose: plan.verbose,
|
|
85
|
+
proxyEndpoint: endpoint || void 0,
|
|
86
|
+
anypickRoot: plan.anypickRoot,
|
|
87
|
+
isolatedHome: isoHome
|
|
88
|
+
};
|
|
89
|
+
if (!plan.dryRun) {
|
|
90
|
+
await adapter.validate(ctx);
|
|
91
|
+
await applyClaudeToHome(ctx, isoHome);
|
|
92
|
+
}
|
|
93
|
+
return makeIsolatedRuntime(runtimeRoot, { HOME: isoHome });
|
|
94
|
+
},
|
|
95
|
+
async applyPersistent(plan) {
|
|
96
|
+
const profile = plan.profile ?? syntheticProxyProfile({
|
|
97
|
+
name: `proxy-${plan.source.display}`,
|
|
98
|
+
endpoint: plan.transport.endpoint ?? "",
|
|
99
|
+
apiKey: "anypick-proxy",
|
|
100
|
+
defaultModel: plan.model.mode === "explicit" ? plan.model.id : void 0
|
|
101
|
+
});
|
|
102
|
+
const endpoint = plan.transport.endpoint ?? (plan.transport.managedProxy ? `http://127.0.0.1:${plan.transport.managedProxy.port}` : profile.meta.endpoint ?? "");
|
|
103
|
+
const ctx = {
|
|
104
|
+
profile: {
|
|
105
|
+
...profile,
|
|
106
|
+
meta: {
|
|
107
|
+
...profile.meta,
|
|
108
|
+
endpoint
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
clientId: "claude",
|
|
112
|
+
dryRun: plan.dryRun,
|
|
113
|
+
verbose: plan.verbose,
|
|
114
|
+
proxyEndpoint: endpoint || void 0,
|
|
115
|
+
anypickRoot: plan.anypickRoot
|
|
116
|
+
};
|
|
117
|
+
await adapter.validate(ctx);
|
|
118
|
+
return applyClaudeToHome(ctx, home);
|
|
119
|
+
},
|
|
120
|
+
async reset(state) {
|
|
121
|
+
await removeClientEnvFiles(stateHomeRoot(state), "claude");
|
|
122
|
+
const anypickRoot = inferAnyPickRoot(state) ?? process.env.ANYPICK_HOME;
|
|
123
|
+
if (anypickRoot) await removeClientEnvFiles(anypickRoot, "claude");
|
|
124
|
+
if (await pathExists(liveSettings)) try {
|
|
125
|
+
const doc = await readJsonFile(liveSettings);
|
|
126
|
+
const keys = [
|
|
127
|
+
...doc["_anypickManaged"]?.keys ?? state.managedEnvKeys ?? [],
|
|
128
|
+
"OPENAI_API_KEY",
|
|
129
|
+
"OPENAI_BASE_URL",
|
|
130
|
+
"OPENAI_MODEL"
|
|
131
|
+
];
|
|
132
|
+
if (doc.env && typeof doc.env === "object") {
|
|
133
|
+
const env = { ...doc.env };
|
|
134
|
+
for (const key of keys) delete env[key];
|
|
135
|
+
if (Object.keys(env).length === 0) delete doc.env;
|
|
136
|
+
else doc.env = env;
|
|
137
|
+
}
|
|
138
|
+
delete doc[ANYPICK_MANAGED_KEY];
|
|
139
|
+
await writeJsonFile(liveSettings, doc, 384);
|
|
140
|
+
} catch (err) {
|
|
141
|
+
throw new Error(`Could not safely reset Claude Code settings: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
async inspect() {
|
|
145
|
+
const present = await pathExists(liveSettings);
|
|
146
|
+
const issues = [];
|
|
147
|
+
let summary;
|
|
148
|
+
if (present) try {
|
|
149
|
+
const doc = await readJsonFile(liveSettings);
|
|
150
|
+
const managed = doc[ANYPICK_MANAGED_KEY];
|
|
151
|
+
const env = doc.env && typeof doc.env === "object" ? doc.env : {};
|
|
152
|
+
if (env.OPENAI_API_KEY || env.OPENAI_BASE_URL) issues.push("settings.env still has OPENAI_* keys (not used by Claude Code) — re-run runtime use or reset");
|
|
153
|
+
for (const k of [
|
|
154
|
+
"ANTHROPIC_MODEL",
|
|
155
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL",
|
|
156
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL",
|
|
157
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL"
|
|
158
|
+
]) {
|
|
159
|
+
const v = env[k];
|
|
160
|
+
if (v && v.includes("/")) issues.push(`${k}="${v}" has a provider prefix; Claude Code expects bare model ids`);
|
|
161
|
+
}
|
|
162
|
+
summary = managed?.keys?.length ? `anypick-managed env keys: ${managed.keys.length}` : "settings present (no anypick marker)";
|
|
163
|
+
} catch {
|
|
164
|
+
issues.push("settings.json unreadable");
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
present,
|
|
168
|
+
configPaths: [liveSettings],
|
|
169
|
+
summary,
|
|
170
|
+
issues: issues.length ? issues : void 0
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
return adapter;
|
|
175
|
+
}
|
|
176
|
+
function inferAnyPickRoot(state) {
|
|
177
|
+
for (const p of state.managedPaths) {
|
|
178
|
+
const idx = p.replace(/\\/g, "/").indexOf("/clients/claude/");
|
|
179
|
+
if (idx > 0) return p.slice(0, idx);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function stateHomeRoot(state) {
|
|
183
|
+
return inferAnyPickRoot(state) ?? process.env.ANYPICK_HOME ?? join(homedir(), ".anypick");
|
|
184
|
+
}
|
|
185
|
+
var claudeCodeClient = createClaudeCodeClient();
|
|
186
|
+
//#endregion
|
|
187
|
+
export { claudeCodeClient, createClaudeCodeClient };
|
|
188
|
+
|
|
189
|
+
//# sourceMappingURL=claude-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.js","names":[],"sources":["../../src/clients/claude-code.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { homedir } from 'node:os';\nimport type {\n ApplyContext,\n ClientAdapter,\n ClientInspectResult,\n ClientLiveState,\n ClientState,\n IsolatablePath,\n IsolatedClientRuntime,\n ResolvedClientPlan,\n} from '../types';\nimport { AnyPickError } from '../utils/errors';\nimport { ensureDir, pathExists, readJsonFile, writeJsonFile } from '../utils/fs';\nimport { resolveFromContext } from './resolve';\nimport { removeClientEnvFiles, ANYPICK_MANAGED_KEY } from './env-files';\nimport {\n createTempRuntimeRoot,\n makeIsolatedRuntime,\n materializeIsolatablePaths,\n syntheticProxyProfile,\n} from './isolation';\nimport { CLAUDE_MODEL_ROLES } from './model-roles';\nimport { applyClaudeToHome, settingsPath } from './claude-client-apply';\nexport { bareModelId } from './claude-client-apply';\n\nfunction effectiveHome(ctx: ApplyContext, liveHome: string): string {\n return ctx.isolatedHome ?? liveHome;\n}\n\nexport function createClaudeCodeClient(home = process.env.HOME ?? homedir()): ClientAdapter {\n const liveSettings = settingsPath(home);\n\n const adapter: ClientAdapter = {\n id: 'claude',\n name: 'Claude Code',\n shortName: 'Claude',\n binaryName: 'claude',\n binaryEnvVar: 'CLAUDE_BINARY',\n description: 'Anthropic Claude Code CLI / IDE',\n supportedApiStyles: ['openai', 'anthropic', 'custom'],\n nativeInstallations: [\n {\n sourceId: 'claude-code',\n executables: ['claude'],\n macApplications: ['Claude.app'],\n },\n ],\n routingSurfacePolicy: 'all-compatible',\n capabilities: {\n id: 'claude',\n acceptedProtocols: ['anthropic'],\n supportsEnvironmentOverlay: false,\n supportsIsolatedHome: true,\n supportsPersistentConfig: true,\n protocolPreference: 'anthropic',\n },\n modelRoles: () => CLAUDE_MODEL_ROLES,\n\n async validate(ctx: ApplyContext): Promise<void> {\n const r = resolveFromContext(ctx);\n if (!r.endpoint) {\n throw new AnyPickError(\n 'Profile has no endpoint. Set with: profile edit <name> --endpoint …',\n 'CLIENT_CONFIG_INVALID',\n );\n }\n },\n\n async apply(ctx: ApplyContext) {\n const targetHome = effectiveHome(ctx, home);\n return applyClaudeToHome(ctx, targetHome);\n },\n\n async listIsolatablePaths(liveState: ClientLiveState): Promise<readonly IsolatablePath[]> {\n return [\n {\n sourcePath: settingsPath(liveState.home),\n destinationPath: join('.claude', 'settings.json'),\n kind: 'file',\n required: false,\n },\n ];\n },\n\n async createIsolatedRuntime(\n plan: ResolvedClientPlan,\n paths: readonly IsolatablePath[],\n ): Promise<IsolatedClientRuntime> {\n const runtimeRoot = await createTempRuntimeRoot('anypick-claude-');\n const isoHome = join(runtimeRoot, 'home');\n await ensureDir(isoHome);\n\n await materializeIsolatablePaths(isoHome, paths);\n\n const endpoint =\n plan.transport.endpoint ??\n (plan.transport.managedProxy ? `http://127.0.0.1:${plan.transport.managedProxy.port}` : '');\n\n const profile =\n plan.profile ??\n syntheticProxyProfile({\n name: `ephemeral-${plan.source.display}`,\n endpoint,\n apiKey: 'anypick-proxy',\n defaultModel: plan.model.mode === 'explicit' ? plan.model.id : undefined,\n });\n\n const ctx: ApplyContext = {\n profile: {\n ...profile,\n meta: { ...profile.meta, endpoint },\n secrets: {\n ...profile.secrets,\n apiKey: profile.secrets.apiKey ?? 'anypick-proxy',\n },\n },\n clientId: 'claude',\n dryRun: plan.dryRun,\n verbose: plan.verbose,\n proxyEndpoint: endpoint || undefined,\n anypickRoot: plan.anypickRoot,\n isolatedHome: isoHome,\n };\n\n if (!plan.dryRun) {\n await adapter.validate(ctx);\n await applyClaudeToHome(ctx, isoHome);\n }\n\n return makeIsolatedRuntime(runtimeRoot, {\n HOME: isoHome,\n });\n },\n\n async applyPersistent(plan: ResolvedClientPlan) {\n const profile =\n plan.profile ??\n syntheticProxyProfile({\n name: `proxy-${plan.source.display}`,\n endpoint: plan.transport.endpoint ?? '',\n apiKey: 'anypick-proxy',\n defaultModel: plan.model.mode === 'explicit' ? plan.model.id : undefined,\n });\n const endpoint =\n plan.transport.endpoint ??\n (plan.transport.managedProxy\n ? `http://127.0.0.1:${plan.transport.managedProxy.port}`\n : (profile.meta.endpoint ?? ''));\n const ctx: ApplyContext = {\n profile: {\n ...profile,\n meta: { ...profile.meta, endpoint },\n },\n clientId: 'claude',\n dryRun: plan.dryRun,\n verbose: plan.verbose,\n proxyEndpoint: endpoint || undefined,\n anypickRoot: plan.anypickRoot,\n };\n await adapter.validate(ctx);\n return applyClaudeToHome(ctx, home);\n },\n\n async reset(state: ClientState): Promise<void> {\n await removeClientEnvFiles(stateHomeRoot(state), 'claude');\n\n const anypickRoot = inferAnyPickRoot(state) ?? process.env.ANYPICK_HOME;\n if (anypickRoot) {\n await removeClientEnvFiles(anypickRoot, 'claude');\n }\n\n if (await pathExists(liveSettings)) {\n try {\n const doc = await readJsonFile<Record<string, unknown>>(liveSettings);\n const managed = doc[ANYPICK_MANAGED_KEY] as { keys?: string[] } | undefined;\n const keys = [\n ...(managed?.keys ?? state.managedEnvKeys ?? []),\n 'OPENAI_API_KEY',\n 'OPENAI_BASE_URL',\n 'OPENAI_MODEL',\n ];\n if (doc.env && typeof doc.env === 'object') {\n const env = { ...(doc.env as Record<string, string>) };\n for (const key of keys) {\n delete env[key];\n }\n if (Object.keys(env).length === 0) {\n delete doc.env;\n } else {\n doc.env = env;\n }\n }\n delete doc[ANYPICK_MANAGED_KEY];\n await writeJsonFile(liveSettings, doc, 0o600);\n } catch (err) {\n // Never report a successful reset when the file that may contain a\n // managed endpoint/token could not be inspected safely.\n throw new Error(\n `Could not safely reset Claude Code settings: ${err instanceof Error ? err.message : String(err)}`,\n { cause: err },\n );\n }\n }\n },\n\n async inspect(): Promise<ClientInspectResult> {\n const present = await pathExists(liveSettings);\n const issues: string[] = [];\n let summary: string | undefined;\n if (present) {\n try {\n const doc = await readJsonFile<Record<string, unknown>>(liveSettings);\n const managed = doc[ANYPICK_MANAGED_KEY] as { keys?: string[] } | undefined;\n const env =\n doc.env && typeof doc.env === 'object' ? (doc.env as Record<string, string>) : {};\n if (env.OPENAI_API_KEY || env.OPENAI_BASE_URL) {\n issues.push(\n 'settings.env still has OPENAI_* keys (not used by Claude Code) — re-run runtime use or reset',\n );\n }\n for (const k of [\n 'ANTHROPIC_MODEL',\n 'ANTHROPIC_DEFAULT_SONNET_MODEL',\n 'ANTHROPIC_DEFAULT_OPUS_MODEL',\n 'ANTHROPIC_DEFAULT_HAIKU_MODEL',\n ]) {\n const v = env[k];\n if (v && v.includes('/')) {\n issues.push(`${k}=\"${v}\" has a provider prefix; Claude Code expects bare model ids`);\n }\n }\n summary = managed?.keys?.length\n ? `anypick-managed env keys: ${managed.keys.length}`\n : 'settings present (no anypick marker)';\n } catch {\n issues.push('settings.json unreadable');\n }\n }\n return {\n present,\n configPaths: [liveSettings],\n summary,\n issues: issues.length ? issues : undefined,\n };\n },\n };\n\n return adapter;\n}\n\nfunction inferAnyPickRoot(state: ClientState): string | undefined {\n for (const p of state.managedPaths) {\n const idx = p.replace(/\\\\/g, '/').indexOf('/clients/claude/');\n if (idx > 0) {\n return p.slice(0, idx);\n }\n }\n return undefined;\n}\n\nfunction stateHomeRoot(state: ClientState): string {\n return inferAnyPickRoot(state) ?? process.env.ANYPICK_HOME ?? join(homedir(), '.anypick');\n}\n\nexport const claudeCodeClient = createClaudeCodeClient();\n"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface ClaudeSettingsGuardOptions {
|
|
2
|
+
/** Expected ANTHROPIC_BASE_URL (local proxy). */
|
|
3
|
+
endpoint: string;
|
|
4
|
+
/** Dummy key Claude sends to the proxy. */
|
|
5
|
+
apiKey?: string;
|
|
6
|
+
home?: string;
|
|
7
|
+
intervalMs?: number;
|
|
8
|
+
log?: (line: string) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* One-shot repair. Returns true when a write was needed and applied.
|
|
12
|
+
*/
|
|
13
|
+
export declare function repairClaudeSettingsIfDrifted(opts: ClaudeSettingsGuardOptions): Promise<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* Poll settings and repair drift until stop() is called.
|
|
16
|
+
*/
|
|
17
|
+
export declare function startClaudeSettingsGuard(opts: ClaudeSettingsGuardOptions): () => void;
|
|
18
|
+
//# sourceMappingURL=claude-settings-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-settings-guard.d.ts","sourceRoot":"","sources":["../../src/clients/claude-settings-guard.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,0BAA0B;IACzC,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAUD;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,OAAO,CAAC,CA6ClB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,0BAA0B,GAAG,MAAM,IAAI,CAqBrF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex Desktop only lists models whose slugs pass a server-delivered allowlist
|
|
3
|
+
* of native GPT ids (typically ~5 "list" entries). Custom hub slugs (big-pickle,
|
|
4
|
+
* claude-*, gemini-*) load fine in the CLI but are filtered out of the Desktop
|
|
5
|
+
* picker — the same constraint codex-router works around by republishing
|
|
6
|
+
* external models under native GPT slugs and rewriting on the wire.
|
|
7
|
+
*
|
|
8
|
+
* AnyPick mirrors that for Proxy Hub: catalog entries use native slugs + Hub
|
|
9
|
+
* display names; the Hub route table maps those slugs back via `upstreamModel`.
|
|
10
|
+
*/
|
|
11
|
+
import type { CodexCatalogModel } from './codex.js';
|
|
12
|
+
import type { ProxyHubRouteTarget } from '../types.js';
|
|
13
|
+
/** Fallback when `codex debug models --bundled` is unavailable. */
|
|
14
|
+
export declare const FALLBACK_NATIVE_LIST_SLUGS: readonly ['gpt-5.6-sol', 'gpt-5.6-terra', 'gpt-5.6-luna', 'gpt-5.5', 'gpt-5.2'];
|
|
15
|
+
export interface NativeListSlot {
|
|
16
|
+
slug: string;
|
|
17
|
+
/** Full native catalog row used as a capability template when present. */
|
|
18
|
+
template?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface DesktopModelAlias {
|
|
21
|
+
/** Allowlisted GPT slug shown in Desktop. */
|
|
22
|
+
nativeSlug: string;
|
|
23
|
+
/** Real Hub / upstream model id. */
|
|
24
|
+
hubModel: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Prefer configured models first (Default + List 2–5 from Apps / Configure
|
|
28
|
+
* Models), then the rest of the hub catalog. Stable unique order.
|
|
29
|
+
*/
|
|
30
|
+
export declare function orderHubModelsForDesktop(hubModels: readonly string[], preferred?: string | readonly string[]): string[];
|
|
31
|
+
/** Role order for Codex Desktop list slots (matches CODEX_DESKTOP_MODEL_ROLES). */
|
|
32
|
+
export declare const CODEX_DESKTOP_ROLE_ORDER: readonly ['default', 'list2', 'list3', 'list4', 'list5'];
|
|
33
|
+
/**
|
|
34
|
+
* Pull preferred Hub models from binding clientOptions.modelRoles in Desktop
|
|
35
|
+
* slot order. Only non-empty customized roles are included (inherited slots
|
|
36
|
+
* stay unset so the catalog can auto-fill from the Hub list).
|
|
37
|
+
*/
|
|
38
|
+
export declare function preferredHubModelsFromRoles(roles: Record<string, string> | undefined | null): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Pair non-allowlisted hub models (claude-*, gemini-*, big-pickle, …) onto the
|
|
41
|
+
* native GPT list slots Desktop will actually show. Hub catalogs often also
|
|
42
|
+
* list real `gpt-*` ids — those keep their own slugs for the CLI, but Desktop
|
|
43
|
+
* slots are reserved for external Hub models (codex-router login-free style).
|
|
44
|
+
*/
|
|
45
|
+
export declare function assignDesktopAliases(hubModelsOrdered: readonly string[], nativeSlots: readonly NativeListSlot[]): DesktopModelAlias[];
|
|
46
|
+
/**
|
|
47
|
+
* Expand a Hub route table so Desktop-selected GPT slugs rewrite to real hub
|
|
48
|
+
* models via `upstreamModel` (see proxy-hub-server request rewrite). Overwrites
|
|
49
|
+
* a native-slug route when the hub already exposes that id — the Desktop picker
|
|
50
|
+
* slot is the alias surface, not a second GPT identity.
|
|
51
|
+
*/
|
|
52
|
+
export declare function expandHubRoutesWithDesktopAliases(routes: readonly ProxyHubRouteTarget[], aliases: readonly DesktopModelAlias[]): ProxyHubRouteTarget[];
|
|
53
|
+
/** Config top-level `model` that Desktop will highlight for a hub selection. */
|
|
54
|
+
export declare function desktopConfigModelId(preferredHubModel: string | undefined, aliases: readonly DesktopModelAlias[]): string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Build catalog models for live publish: Desktop-visible native-slug aliases
|
|
57
|
+
* first (friendly Hub names), then every real hub model under its own slug for
|
|
58
|
+
* CLI `/model` and direct use. Alias rows win on slug collision so Hub labels
|
|
59
|
+
* surface instead of stock GPT names.
|
|
60
|
+
*/
|
|
61
|
+
export declare function desktopAwareRouteModels(routeModels: readonly CodexCatalogModel[], aliases: readonly DesktopModelAlias[], nativeSlots: readonly NativeListSlot[]): CodexCatalogModel[];
|
|
62
|
+
/**
|
|
63
|
+
* Load list-visible native GPT models from the local Codex CLI (bundled catalog).
|
|
64
|
+
* Falls back to a static allowlist when Codex is missing or the probe fails.
|
|
65
|
+
*/
|
|
66
|
+
export declare function loadNativeListSlots(): NativeListSlot[];
|
|
67
|
+
//# sourceMappingURL=codex-desktop-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-desktop-catalog.d.ts","sourceRoot":"","sources":["../../src/clients/codex-desktop-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAuB,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEzE,mEAAmE;AACnE,eAAO,MAAM,0BAA0B,YACrC,aAAa,EACb,eAAe,EACf,cAAc,EACd,SAAS,EACT,SAAS,CACD,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GACrC,MAAM,EAAE,CAmBV;AAED,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,YAAI,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;AAEjG;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,GAC/C,MAAM,EAAE,CAeV;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,SAAS,MAAM,EAAE,EACnC,WAAW,EAAE,SAAS,cAAc,EAAE,GACrC,iBAAiB,EAAE,CAgBrB;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,SAAS,mBAAmB,EAAE,EACtC,OAAO,EAAE,SAAS,iBAAiB,EAAE,GACpC,mBAAmB,EAAE,CAiBvB;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,OAAO,EAAE,SAAS,iBAAiB,EAAE,GACpC,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,SAAS,iBAAiB,EAAE,EACzC,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,WAAW,EAAE,SAAS,cAAc,EAAE,GACrC,iBAAiB,EAAE,CAoDrB;AAsCD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAoCtD"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
//#region src/clients/codex-desktop-catalog.ts
|
|
3
|
+
/**
|
|
4
|
+
* Codex Desktop only lists models whose slugs pass a server-delivered allowlist
|
|
5
|
+
* of native GPT ids (typically ~5 "list" entries). Custom hub slugs (big-pickle,
|
|
6
|
+
* claude-*, gemini-*) load fine in the CLI but are filtered out of the Desktop
|
|
7
|
+
* picker — the same constraint codex-router works around by republishing
|
|
8
|
+
* external models under native GPT slugs and rewriting on the wire.
|
|
9
|
+
*
|
|
10
|
+
* AnyPick mirrors that for Proxy Hub: catalog entries use native slugs + Hub
|
|
11
|
+
* display names; the Hub route table maps those slugs back via `upstreamModel`.
|
|
12
|
+
*/
|
|
13
|
+
/** Fallback when `codex debug models --bundled` is unavailable. */
|
|
14
|
+
var FALLBACK_NATIVE_LIST_SLUGS = [
|
|
15
|
+
"gpt-5.6-sol",
|
|
16
|
+
"gpt-5.6-terra",
|
|
17
|
+
"gpt-5.6-luna",
|
|
18
|
+
"gpt-5.5",
|
|
19
|
+
"gpt-5.2"
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Prefer configured models first (Default + List 2–5 from Apps / Configure
|
|
23
|
+
* Models), then the rest of the hub catalog. Stable unique order.
|
|
24
|
+
*/
|
|
25
|
+
function orderHubModelsForDesktop(hubModels, preferred) {
|
|
26
|
+
const seen = /* @__PURE__ */ new Set();
|
|
27
|
+
const out = [];
|
|
28
|
+
const push = (raw) => {
|
|
29
|
+
const model = raw?.trim();
|
|
30
|
+
if (!model || seen.has(model)) return;
|
|
31
|
+
seen.add(model);
|
|
32
|
+
out.push(model);
|
|
33
|
+
};
|
|
34
|
+
const preferredList = typeof preferred === "string" ? [preferred] : preferred ?? [];
|
|
35
|
+
for (const model of preferredList) push(model);
|
|
36
|
+
for (const model of hubModels) push(model);
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
/** Role order for Codex Desktop list slots (matches CODEX_DESKTOP_MODEL_ROLES). */
|
|
40
|
+
var CODEX_DESKTOP_ROLE_ORDER = [
|
|
41
|
+
"default",
|
|
42
|
+
"list2",
|
|
43
|
+
"list3",
|
|
44
|
+
"list4",
|
|
45
|
+
"list5"
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* Pull preferred Hub models from binding clientOptions.modelRoles in Desktop
|
|
49
|
+
* slot order. Only non-empty customized roles are included (inherited slots
|
|
50
|
+
* stay unset so the catalog can auto-fill from the Hub list).
|
|
51
|
+
*/
|
|
52
|
+
function preferredHubModelsFromRoles(roles) {
|
|
53
|
+
if (!roles || typeof roles !== "object") return [];
|
|
54
|
+
const out = [];
|
|
55
|
+
const seen = /* @__PURE__ */ new Set();
|
|
56
|
+
for (const id of CODEX_DESKTOP_ROLE_ORDER) {
|
|
57
|
+
const model = roles[id]?.trim();
|
|
58
|
+
if (!model || seen.has(model)) continue;
|
|
59
|
+
seen.add(model);
|
|
60
|
+
out.push(model);
|
|
61
|
+
}
|
|
62
|
+
return out;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Pair non-allowlisted hub models (claude-*, gemini-*, big-pickle, …) onto the
|
|
66
|
+
* native GPT list slots Desktop will actually show. Hub catalogs often also
|
|
67
|
+
* list real `gpt-*` ids — those keep their own slugs for the CLI, but Desktop
|
|
68
|
+
* slots are reserved for external Hub models (codex-router login-free style).
|
|
69
|
+
*/
|
|
70
|
+
function assignDesktopAliases(hubModelsOrdered, nativeSlots) {
|
|
71
|
+
const nativeSlugSet = new Set(nativeSlots.map((slot) => slot.slug));
|
|
72
|
+
const external = hubModelsOrdered.filter((model) => !nativeSlugSet.has(model));
|
|
73
|
+
const n = Math.min(external.length, nativeSlots.length);
|
|
74
|
+
const out = [];
|
|
75
|
+
for (let i = 0; i < n; i++) {
|
|
76
|
+
const slot = nativeSlots[i];
|
|
77
|
+
const hubModel = external[i];
|
|
78
|
+
if (!slot?.slug || !hubModel) continue;
|
|
79
|
+
out.push({
|
|
80
|
+
nativeSlug: slot.slug,
|
|
81
|
+
hubModel
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Expand a Hub route table so Desktop-selected GPT slugs rewrite to real hub
|
|
88
|
+
* models via `upstreamModel` (see proxy-hub-server request rewrite). Overwrites
|
|
89
|
+
* a native-slug route when the hub already exposes that id — the Desktop picker
|
|
90
|
+
* slot is the alias surface, not a second GPT identity.
|
|
91
|
+
*/
|
|
92
|
+
function expandHubRoutesWithDesktopAliases(routes, aliases) {
|
|
93
|
+
if (aliases.length === 0) return [...routes];
|
|
94
|
+
const byModel = new Map(routes.map((route) => [route.model, route]));
|
|
95
|
+
for (const alias of aliases) {
|
|
96
|
+
const base = byModel.get(alias.hubModel);
|
|
97
|
+
if (!base) continue;
|
|
98
|
+
byModel.set(alias.nativeSlug, {
|
|
99
|
+
model: alias.nativeSlug,
|
|
100
|
+
source: base.source,
|
|
101
|
+
upstreamModel: base.upstreamModel
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return [...byModel.values()];
|
|
105
|
+
}
|
|
106
|
+
/** Config top-level `model` that Desktop will highlight for a hub selection. */
|
|
107
|
+
function desktopConfigModelId(preferredHubModel, aliases) {
|
|
108
|
+
if (preferredHubModel) {
|
|
109
|
+
const hit = aliases.find((alias) => alias.hubModel === preferredHubModel);
|
|
110
|
+
if (hit) return hit.nativeSlug;
|
|
111
|
+
}
|
|
112
|
+
return aliases[0]?.nativeSlug ?? preferredHubModel;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Build catalog models for live publish: Desktop-visible native-slug aliases
|
|
116
|
+
* first (friendly Hub names), then every real hub model under its own slug for
|
|
117
|
+
* CLI `/model` and direct use. Alias rows win on slug collision so Hub labels
|
|
118
|
+
* surface instead of stock GPT names.
|
|
119
|
+
*/
|
|
120
|
+
function desktopAwareRouteModels(routeModels, aliases, nativeSlots) {
|
|
121
|
+
const hubBySlug = new Map(routeModels.map((model) => [model.slug, model]));
|
|
122
|
+
const aliasModels = [];
|
|
123
|
+
for (const alias of aliases) {
|
|
124
|
+
const hub = hubBySlug.get(alias.hubModel);
|
|
125
|
+
const displayName = `${hub?.displayName ?? hub?.slug ?? alias.hubModel} · Hub`;
|
|
126
|
+
const template = nativeSlots.find((entry) => entry.slug === alias.nativeSlug)?.template;
|
|
127
|
+
const contextWindow = hub?.contextWindow ?? positiveFromUnknown(template?.context_window);
|
|
128
|
+
const maxContextWindow = hub?.maxContextWindow ?? positiveFromUnknown(template?.max_context_window);
|
|
129
|
+
const autoCompactTokenLimit = hub?.autoCompactTokenLimit ?? positiveFromUnknown(template?.auto_compact_token_limit);
|
|
130
|
+
const supportedReasoningLevels = hub?.supportedReasoningLevels?.length ? hub.supportedReasoningLevels : reasoningLevelsFromTemplate(template);
|
|
131
|
+
const defaultReasoningLevel = hub?.defaultReasoningLevel ?? (typeof template?.default_reasoning_level === "string" ? template.default_reasoning_level : void 0);
|
|
132
|
+
const supportsVerbosity = hub?.supportsVerbosity ?? (typeof template?.support_verbosity === "boolean" ? template.support_verbosity : void 0);
|
|
133
|
+
aliasModels.push({
|
|
134
|
+
slug: alias.nativeSlug,
|
|
135
|
+
displayName,
|
|
136
|
+
description: hub?.description ?? `Proxy Hub: ${alias.hubModel} (Desktop picker slot ${alias.nativeSlug}).`,
|
|
137
|
+
contextWindow,
|
|
138
|
+
maxContextWindow,
|
|
139
|
+
autoCompactTokenLimit,
|
|
140
|
+
defaultReasoningLevel,
|
|
141
|
+
supportedReasoningLevels,
|
|
142
|
+
inputModalities: hub?.inputModalities,
|
|
143
|
+
supportsParallelToolCalls: hub?.supportsParallelToolCalls,
|
|
144
|
+
supportsSearchTool: hub?.supportsSearchTool,
|
|
145
|
+
supportsVerbosity,
|
|
146
|
+
supportsImageDetailOriginal: hub?.supportsImageDetailOriginal
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
const aliasSlugs = new Set(aliasModels.map((model) => model.slug));
|
|
150
|
+
const rest = routeModels.filter((model) => !aliasSlugs.has(model.slug));
|
|
151
|
+
return [...aliasModels, ...rest];
|
|
152
|
+
}
|
|
153
|
+
function positiveFromUnknown(value) {
|
|
154
|
+
if (typeof value === "number" && Number.isFinite(value) && value > 0) return Math.floor(value);
|
|
155
|
+
if (typeof value === "string" && value.trim()) {
|
|
156
|
+
const n = Number(value);
|
|
157
|
+
if (Number.isFinite(n) && n > 0) return Math.floor(n);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/** Copy native allowlist reasoning efforts so Desktop keeps the effort UI. */
|
|
161
|
+
function reasoningLevelsFromTemplate(template) {
|
|
162
|
+
const raw = template?.supported_reasoning_levels;
|
|
163
|
+
if (!Array.isArray(raw)) return;
|
|
164
|
+
const levels = [];
|
|
165
|
+
for (const item of raw) {
|
|
166
|
+
if (!item || typeof item !== "object" || Array.isArray(item)) continue;
|
|
167
|
+
const row = item;
|
|
168
|
+
const effort = typeof row.effort === "string" ? row.effort.trim() : "";
|
|
169
|
+
const description = typeof row.description === "string" ? row.description.trim() : "";
|
|
170
|
+
if (effort && description) levels.push({
|
|
171
|
+
effort,
|
|
172
|
+
description
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return levels.length > 0 ? levels : void 0;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Load list-visible native GPT models from the local Codex CLI (bundled catalog).
|
|
179
|
+
* Falls back to a static allowlist when Codex is missing or the probe fails.
|
|
180
|
+
*/
|
|
181
|
+
function loadNativeListSlots() {
|
|
182
|
+
try {
|
|
183
|
+
const result = spawnSync("codex", [
|
|
184
|
+
"debug",
|
|
185
|
+
"models",
|
|
186
|
+
"--bundled"
|
|
187
|
+
], {
|
|
188
|
+
encoding: "utf8",
|
|
189
|
+
timeout: 2e4,
|
|
190
|
+
maxBuffer: 16 * 1024 * 1024
|
|
191
|
+
});
|
|
192
|
+
if (result.status !== 0 || !result.stdout?.trim()) return fallbackSlots();
|
|
193
|
+
const parsed = JSON.parse(result.stdout);
|
|
194
|
+
if (!Array.isArray(parsed.models)) return fallbackSlots();
|
|
195
|
+
const slots = parsed.models.filter((model) => Boolean(model) && typeof model === "object" && !Array.isArray(model) && model.visibility === "list" && typeof model.slug === "string").map((model) => ({
|
|
196
|
+
slug: String(model.slug),
|
|
197
|
+
template: model
|
|
198
|
+
})).toSorted((left, right) => {
|
|
199
|
+
return Number(left.template?.priority ?? 999) - Number(right.template?.priority ?? 999) || left.slug.localeCompare(right.slug);
|
|
200
|
+
});
|
|
201
|
+
return slots.length > 0 ? slots : fallbackSlots();
|
|
202
|
+
} catch {
|
|
203
|
+
return fallbackSlots();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
function fallbackSlots() {
|
|
207
|
+
return FALLBACK_NATIVE_LIST_SLUGS.map((slug) => ({ slug }));
|
|
208
|
+
}
|
|
209
|
+
//#endregion
|
|
210
|
+
export { CODEX_DESKTOP_ROLE_ORDER, FALLBACK_NATIVE_LIST_SLUGS, assignDesktopAliases, desktopAwareRouteModels, desktopConfigModelId, expandHubRoutesWithDesktopAliases, loadNativeListSlots, orderHubModelsForDesktop, preferredHubModelsFromRoles };
|
|
211
|
+
|
|
212
|
+
//# sourceMappingURL=codex-desktop-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-desktop-catalog.js","names":[],"sources":["../../src/clients/codex-desktop-catalog.ts"],"sourcesContent":["/**\n * Codex Desktop only lists models whose slugs pass a server-delivered allowlist\n * of native GPT ids (typically ~5 \"list\" entries). Custom hub slugs (big-pickle,\n * claude-*, gemini-*) load fine in the CLI but are filtered out of the Desktop\n * picker — the same constraint codex-router works around by republishing\n * external models under native GPT slugs and rewriting on the wire.\n *\n * AnyPick mirrors that for Proxy Hub: catalog entries use native slugs + Hub\n * display names; the Hub route table maps those slugs back via `upstreamModel`.\n */\n\nimport { spawnSync } from 'node:child_process';\nimport type { CodexCatalogModel } from './codex';\nimport type { ModelReasoningLevel, ProxyHubRouteTarget } from '../types';\n\n/** Fallback when `codex debug models --bundled` is unavailable. */\nexport const FALLBACK_NATIVE_LIST_SLUGS = [\n 'gpt-5.6-sol',\n 'gpt-5.6-terra',\n 'gpt-5.6-luna',\n 'gpt-5.5',\n 'gpt-5.2',\n] as const;\n\nexport interface NativeListSlot {\n slug: string;\n /** Full native catalog row used as a capability template when present. */\n template?: Record<string, unknown>;\n}\n\nexport interface DesktopModelAlias {\n /** Allowlisted GPT slug shown in Desktop. */\n nativeSlug: string;\n /** Real Hub / upstream model id. */\n hubModel: string;\n}\n\n/**\n * Prefer configured models first (Default + List 2–5 from Apps / Configure\n * Models), then the rest of the hub catalog. Stable unique order.\n */\nexport function orderHubModelsForDesktop(\n hubModels: readonly string[],\n preferred?: string | readonly string[],\n): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n const push = (raw: string | undefined) => {\n const model = raw?.trim();\n if (!model || seen.has(model)) {\n return;\n }\n seen.add(model);\n out.push(model);\n };\n const preferredList = typeof preferred === 'string' ? [preferred] : (preferred ?? []);\n for (const model of preferredList) {\n push(model);\n }\n for (const model of hubModels) {\n push(model);\n }\n return out;\n}\n\n/** Role order for Codex Desktop list slots (matches CODEX_DESKTOP_MODEL_ROLES). */\nexport const CODEX_DESKTOP_ROLE_ORDER = ['default', 'list2', 'list3', 'list4', 'list5'] as const;\n\n/**\n * Pull preferred Hub models from binding clientOptions.modelRoles in Desktop\n * slot order. Only non-empty customized roles are included (inherited slots\n * stay unset so the catalog can auto-fill from the Hub list).\n */\nexport function preferredHubModelsFromRoles(\n roles: Record<string, string> | undefined | null,\n): string[] {\n if (!roles || typeof roles !== 'object') {\n return [];\n }\n const out: string[] = [];\n const seen = new Set<string>();\n for (const id of CODEX_DESKTOP_ROLE_ORDER) {\n const model = roles[id]?.trim();\n if (!model || seen.has(model)) {\n continue;\n }\n seen.add(model);\n out.push(model);\n }\n return out;\n}\n\n/**\n * Pair non-allowlisted hub models (claude-*, gemini-*, big-pickle, …) onto the\n * native GPT list slots Desktop will actually show. Hub catalogs often also\n * list real `gpt-*` ids — those keep their own slugs for the CLI, but Desktop\n * slots are reserved for external Hub models (codex-router login-free style).\n */\nexport function assignDesktopAliases(\n hubModelsOrdered: readonly string[],\n nativeSlots: readonly NativeListSlot[],\n): DesktopModelAlias[] {\n const nativeSlugSet = new Set(nativeSlots.map((slot) => slot.slug));\n // Prefer external models as alias *targets*; native GPT ids already pass the\n // Desktop allowlist under their own names when the hub routes them.\n const external = hubModelsOrdered.filter((model) => !nativeSlugSet.has(model));\n const n = Math.min(external.length, nativeSlots.length);\n const out: DesktopModelAlias[] = [];\n for (let i = 0; i < n; i++) {\n const slot = nativeSlots[i];\n const hubModel = external[i];\n if (!slot?.slug || !hubModel) {\n continue;\n }\n out.push({ nativeSlug: slot.slug, hubModel });\n }\n return out;\n}\n\n/**\n * Expand a Hub route table so Desktop-selected GPT slugs rewrite to real hub\n * models via `upstreamModel` (see proxy-hub-server request rewrite). Overwrites\n * a native-slug route when the hub already exposes that id — the Desktop picker\n * slot is the alias surface, not a second GPT identity.\n */\nexport function expandHubRoutesWithDesktopAliases(\n routes: readonly ProxyHubRouteTarget[],\n aliases: readonly DesktopModelAlias[],\n): ProxyHubRouteTarget[] {\n if (aliases.length === 0) {\n return [...routes];\n }\n const byModel = new Map(routes.map((route) => [route.model, route]));\n for (const alias of aliases) {\n const base = byModel.get(alias.hubModel);\n if (!base) {\n continue;\n }\n byModel.set(alias.nativeSlug, {\n model: alias.nativeSlug,\n source: base.source,\n upstreamModel: base.upstreamModel,\n });\n }\n return [...byModel.values()];\n}\n\n/** Config top-level `model` that Desktop will highlight for a hub selection. */\nexport function desktopConfigModelId(\n preferredHubModel: string | undefined,\n aliases: readonly DesktopModelAlias[],\n): string | undefined {\n if (preferredHubModel) {\n const hit = aliases.find((alias) => alias.hubModel === preferredHubModel);\n if (hit) {\n return hit.nativeSlug;\n }\n }\n return aliases[0]?.nativeSlug ?? preferredHubModel;\n}\n\n/**\n * Build catalog models for live publish: Desktop-visible native-slug aliases\n * first (friendly Hub names), then every real hub model under its own slug for\n * CLI `/model` and direct use. Alias rows win on slug collision so Hub labels\n * surface instead of stock GPT names.\n */\nexport function desktopAwareRouteModels(\n routeModels: readonly CodexCatalogModel[],\n aliases: readonly DesktopModelAlias[],\n nativeSlots: readonly NativeListSlot[],\n): CodexCatalogModel[] {\n const hubBySlug = new Map(routeModels.map((model) => [model.slug, model]));\n const aliasModels: CodexCatalogModel[] = [];\n for (const alias of aliases) {\n const hub = hubBySlug.get(alias.hubModel);\n // Hub id + marker so the Desktop picker is not mistaken for stock GPT.\n const hubLabel = hub?.displayName ?? hub?.slug ?? alias.hubModel;\n const displayName = `${hubLabel} · Hub`;\n const slot = nativeSlots.find((entry) => entry.slug === alias.nativeSlug);\n const template = slot?.template;\n // Prefer hub capability fields; fall back to the native allowlist row so\n // Desktop keeps treating the entry as a first-class list model — including\n // reasoning-effort / verbosity controls that empty catalog rows disable.\n const contextWindow = hub?.contextWindow ?? positiveFromUnknown(template?.context_window);\n const maxContextWindow =\n hub?.maxContextWindow ?? positiveFromUnknown(template?.max_context_window);\n const autoCompactTokenLimit =\n hub?.autoCompactTokenLimit ?? positiveFromUnknown(template?.auto_compact_token_limit);\n const supportedReasoningLevels = hub?.supportedReasoningLevels?.length\n ? hub.supportedReasoningLevels\n : reasoningLevelsFromTemplate(template);\n const defaultReasoningLevel =\n hub?.defaultReasoningLevel ??\n (typeof template?.default_reasoning_level === 'string'\n ? template.default_reasoning_level\n : undefined);\n const supportsVerbosity =\n hub?.supportsVerbosity ??\n (typeof template?.support_verbosity === 'boolean' ? template.support_verbosity : undefined);\n aliasModels.push({\n slug: alias.nativeSlug,\n displayName,\n description:\n hub?.description ??\n `Proxy Hub: ${alias.hubModel} (Desktop picker slot ${alias.nativeSlug}).`,\n contextWindow,\n maxContextWindow,\n autoCompactTokenLimit,\n defaultReasoningLevel,\n supportedReasoningLevels,\n inputModalities: hub?.inputModalities,\n supportsParallelToolCalls: hub?.supportsParallelToolCalls,\n supportsSearchTool: hub?.supportsSearchTool,\n supportsVerbosity,\n supportsImageDetailOriginal: hub?.supportsImageDetailOriginal,\n });\n }\n // Real hub slugs remain listed so CLI users can pick beyond the Desktop slots.\n // Drop hub rows whose slug was claimed by an alias (aliases win the label).\n const aliasSlugs = new Set(aliasModels.map((model) => model.slug));\n const rest = routeModels.filter((model) => !aliasSlugs.has(model.slug));\n return [...aliasModels, ...rest];\n}\n\nfunction positiveFromUnknown(value: unknown): number | undefined {\n if (typeof value === 'number' && Number.isFinite(value) && value > 0) {\n return Math.floor(value);\n }\n if (typeof value === 'string' && value.trim()) {\n const n = Number(value);\n if (Number.isFinite(n) && n > 0) {\n return Math.floor(n);\n }\n }\n return undefined;\n}\n\n/** Copy native allowlist reasoning efforts so Desktop keeps the effort UI. */\nfunction reasoningLevelsFromTemplate(\n template: Record<string, unknown> | undefined,\n): readonly ModelReasoningLevel[] | undefined {\n const raw = template?.supported_reasoning_levels;\n if (!Array.isArray(raw)) {\n return undefined;\n }\n const levels: ModelReasoningLevel[] = [];\n for (const item of raw) {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n continue;\n }\n const row = item as Record<string, unknown>;\n const effort = typeof row.effort === 'string' ? row.effort.trim() : '';\n const description = typeof row.description === 'string' ? row.description.trim() : '';\n if (effort && description) {\n levels.push({ effort, description });\n }\n }\n return levels.length > 0 ? levels : undefined;\n}\n\n/**\n * Load list-visible native GPT models from the local Codex CLI (bundled catalog).\n * Falls back to a static allowlist when Codex is missing or the probe fails.\n */\nexport function loadNativeListSlots(): NativeListSlot[] {\n try {\n const result = spawnSync('codex', ['debug', 'models', '--bundled'], {\n encoding: 'utf8',\n timeout: 20_000,\n maxBuffer: 16 * 1024 * 1024,\n });\n if (result.status !== 0 || !result.stdout?.trim()) {\n return fallbackSlots();\n }\n const parsed = JSON.parse(result.stdout) as { models?: unknown };\n if (!Array.isArray(parsed.models)) {\n return fallbackSlots();\n }\n const slots = parsed.models\n .filter(\n (model): model is Record<string, unknown> =>\n Boolean(model) &&\n typeof model === 'object' &&\n !Array.isArray(model) &&\n (model as { visibility?: unknown }).visibility === 'list' &&\n typeof (model as { slug?: unknown }).slug === 'string',\n )\n .map((model) => ({\n slug: String(model.slug),\n template: model,\n }))\n .toSorted((left, right) => {\n const lp = Number(left.template?.priority ?? 999);\n const rp = Number(right.template?.priority ?? 999);\n return lp - rp || left.slug.localeCompare(right.slug);\n });\n return slots.length > 0 ? slots : fallbackSlots();\n } catch {\n return fallbackSlots();\n }\n}\n\nfunction fallbackSlots(): NativeListSlot[] {\n return FALLBACK_NATIVE_LIST_SLUGS.map((slug) => ({ slug }));\n}\n"],"mappings":"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"}
|