anypick 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -582
- package/bin/anypick.js +249 -0
- package/package.json +14 -106
- package/dist/adapters.d.ts +0 -4
- package/dist/adapters.d.ts.map +0 -1
- package/dist/adapters.js +0 -2
- package/dist/catalog/model-fetch.d.ts +0 -34
- package/dist/catalog/model-fetch.d.ts.map +0 -1
- package/dist/catalog/model-fetch.js +0 -99
- package/dist/catalog/model-fetch.js.map +0 -1
- package/dist/catalog/providers.d.ts +0 -42
- package/dist/catalog/providers.d.ts.map +0 -1
- package/dist/catalog/providers.js +0 -424
- package/dist/catalog/providers.js.map +0 -1
- package/dist/cli/bootstrap.d.ts +0 -3
- package/dist/cli/bootstrap.d.ts.map +0 -1
- package/dist/cli/bootstrap.js +0 -78
- package/dist/cli/bootstrap.js.map +0 -1
- package/dist/cli/commands.d.ts +0 -29
- package/dist/cli/commands.d.ts.map +0 -1
- package/dist/cli/commands.js +0 -1043
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/completion.d.ts +0 -6
- package/dist/cli/completion.d.ts.map +0 -1
- package/dist/cli/completion.js +0 -202
- package/dist/cli/completion.js.map +0 -1
- package/dist/cli/errors.d.ts +0 -20
- package/dist/cli/errors.d.ts.map +0 -1
- package/dist/cli/errors.js +0 -47
- package/dist/cli/errors.js.map +0 -1
- package/dist/cli/format.d.ts +0 -6
- package/dist/cli/format.d.ts.map +0 -1
- package/dist/cli/format.js +0 -75
- package/dist/cli/format.js.map +0 -1
- package/dist/cli/help.d.ts +0 -6
- package/dist/cli/help.d.ts.map +0 -1
- package/dist/cli/help.js +0 -66
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/interactive-accounts.d.ts +0 -3
- package/dist/cli/interactive-accounts.d.ts.map +0 -1
- package/dist/cli/interactive-accounts.js +0 -86
- package/dist/cli/interactive-accounts.js.map +0 -1
- package/dist/cli/interactive-maintenance.d.ts +0 -4
- package/dist/cli/interactive-maintenance.d.ts.map +0 -1
- package/dist/cli/interactive-maintenance.js +0 -30
- package/dist/cli/interactive-maintenance.js.map +0 -1
- package/dist/cli/interactive.d.ts +0 -14
- package/dist/cli/interactive.d.ts.map +0 -1
- package/dist/cli/interactive.js +0 -242
- package/dist/cli/interactive.js.map +0 -1
- package/dist/cli/launch-client.d.ts +0 -18
- package/dist/cli/launch-client.d.ts.map +0 -1
- package/dist/cli/launch-client.js +0 -117
- package/dist/cli/launch-client.js.map +0 -1
- package/dist/cli/launcher-model.d.ts +0 -64
- package/dist/cli/launcher-model.d.ts.map +0 -1
- package/dist/cli/launcher-model.js +0 -200
- package/dist/cli/launcher-model.js.map +0 -1
- package/dist/cli/launcher-render.d.ts +0 -22
- package/dist/cli/launcher-render.d.ts.map +0 -1
- package/dist/cli/launcher-render.js +0 -113
- package/dist/cli/launcher-render.js.map +0 -1
- package/dist/cli/launcher.d.ts +0 -27
- package/dist/cli/launcher.d.ts.map +0 -1
- package/dist/cli/launcher.js +0 -93
- package/dist/cli/launcher.js.map +0 -1
- package/dist/cli/local-health.d.ts +0 -17
- package/dist/cli/local-health.d.ts.map +0 -1
- package/dist/cli/local-health.js +0 -31
- package/dist/cli/local-health.js.map +0 -1
- package/dist/cli/plugin-commands.d.ts +0 -4
- package/dist/cli/plugin-commands.d.ts.map +0 -1
- package/dist/cli/plugin-commands.js +0 -160
- package/dist/cli/plugin-commands.js.map +0 -1
- package/dist/cli/primary.d.ts +0 -18
- package/dist/cli/primary.d.ts.map +0 -1
- package/dist/cli/primary.js +0 -593
- package/dist/cli/primary.js.map +0 -1
- package/dist/cli/render-util.d.ts +0 -24
- package/dist/cli/render-util.d.ts.map +0 -1
- package/dist/cli/render-util.js +0 -58
- package/dist/cli/render-util.js.map +0 -1
- package/dist/cli/ux.d.ts +0 -43
- package/dist/cli/ux.d.ts.map +0 -1
- package/dist/cli/ux.js +0 -114
- package/dist/cli/ux.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -35
- package/dist/cli.js.map +0 -1
- package/dist/clients/claude-client-apply.d.ts +0 -8
- package/dist/clients/claude-client-apply.d.ts.map +0 -1
- package/dist/clients/claude-client-apply.js +0 -108
- package/dist/clients/claude-client-apply.js.map +0 -1
- package/dist/clients/claude-code.d.ts +0 -5
- package/dist/clients/claude-code.d.ts.map +0 -1
- package/dist/clients/claude-code.js +0 -189
- package/dist/clients/claude-code.js.map +0 -1
- package/dist/clients/claude-settings-guard.d.ts +0 -18
- package/dist/clients/claude-settings-guard.d.ts.map +0 -1
- package/dist/clients/codex-desktop-catalog.d.ts +0 -67
- package/dist/clients/codex-desktop-catalog.d.ts.map +0 -1
- package/dist/clients/codex-desktop-catalog.js +0 -212
- package/dist/clients/codex-desktop-catalog.js.map +0 -1
- package/dist/clients/codex.d.ts +0 -181
- package/dist/clients/codex.d.ts.map +0 -1
- package/dist/clients/codex.js +0 -783
- package/dist/clients/codex.js.map +0 -1
- package/dist/clients/env-files.d.ts +0 -14
- package/dist/clients/env-files.d.ts.map +0 -1
- package/dist/clients/env-files.js +0 -50
- package/dist/clients/env-files.js.map +0 -1
- package/dist/clients/gemini-client-utils.d.ts +0 -4
- package/dist/clients/gemini-client-utils.d.ts.map +0 -1
- package/dist/clients/gemini-client-utils.js +0 -33
- package/dist/clients/gemini-client-utils.js.map +0 -1
- package/dist/clients/gemini.d.ts +0 -16
- package/dist/clients/gemini.d.ts.map +0 -1
- package/dist/clients/gemini.js +0 -233
- package/dist/clients/gemini.js.map +0 -1
- package/dist/clients/index.d.ts +0 -14
- package/dist/clients/index.d.ts.map +0 -1
- package/dist/clients/index.js +0 -18
- package/dist/clients/index.js.map +0 -1
- package/dist/clients/isolation.d.ts +0 -28
- package/dist/clients/isolation.d.ts.map +0 -1
- package/dist/clients/isolation.js +0 -131
- package/dist/clients/isolation.js.map +0 -1
- package/dist/clients/kiro.d.ts +0 -10
- package/dist/clients/kiro.d.ts.map +0 -1
- package/dist/clients/kiro.js +0 -168
- package/dist/clients/kiro.js.map +0 -1
- package/dist/clients/model-roles.d.ts +0 -58
- package/dist/clients/model-roles.d.ts.map +0 -1
- package/dist/clients/model-roles.js +0 -139
- package/dist/clients/model-roles.js.map +0 -1
- package/dist/clients/registry.d.ts +0 -7
- package/dist/clients/registry.d.ts.map +0 -1
- package/dist/clients/registry.js +0 -16
- package/dist/clients/registry.js.map +0 -1
- package/dist/clients/resolve.d.ts +0 -27
- package/dist/clients/resolve.d.ts.map +0 -1
- package/dist/clients/resolve.js +0 -49
- package/dist/clients/resolve.js.map +0 -1
- package/dist/core/account-codec.d.ts +0 -32
- package/dist/core/account-codec.d.ts.map +0 -1
- package/dist/core/account-codec.js +0 -134
- package/dist/core/account-codec.js.map +0 -1
- package/dist/core/account-transfer.d.ts +0 -20
- package/dist/core/account-transfer.d.ts.map +0 -1
- package/dist/core/account-transfer.js +0 -136
- package/dist/core/account-transfer.js.map +0 -1
- package/dist/core/activation-executor.d.ts +0 -72
- package/dist/core/activation-executor.d.ts.map +0 -1
- package/dist/core/activation-executor.js +0 -690
- package/dist/core/activation-executor.js.map +0 -1
- package/dist/core/activation-models.d.ts +0 -6
- package/dist/core/activation-models.d.ts.map +0 -1
- package/dist/core/activation-models.js +0 -33
- package/dist/core/activation-models.js.map +0 -1
- package/dist/core/activation-planner.d.ts +0 -38
- package/dist/core/activation-planner.d.ts.map +0 -1
- package/dist/core/activation-planner.js +0 -248
- package/dist/core/activation-planner.js.map +0 -1
- package/dist/core/activation-protocol.d.ts +0 -3
- package/dist/core/activation-protocol.d.ts.map +0 -1
- package/dist/core/activation-protocol.js +0 -9
- package/dist/core/activation-protocol.js.map +0 -1
- package/dist/core/activation-transport.d.ts +0 -15
- package/dist/core/activation-transport.d.ts.map +0 -1
- package/dist/core/activation-transport.js +0 -23
- package/dist/core/activation-transport.js.map +0 -1
- package/dist/core/app.d.ts +0 -149
- package/dist/core/app.d.ts.map +0 -1
- package/dist/core/app.js +0 -372
- package/dist/core/app.js.map +0 -1
- package/dist/core/binding-service.d.ts +0 -93
- package/dist/core/binding-service.d.ts.map +0 -1
- package/dist/core/binding-service.js +0 -281
- package/dist/core/binding-service.js.map +0 -1
- package/dist/core/binding-store.d.ts +0 -23
- package/dist/core/binding-store.d.ts.map +0 -1
- package/dist/core/binding-store.js +0 -154
- package/dist/core/binding-store.js.map +0 -1
- package/dist/core/brand.d.ts +0 -18
- package/dist/core/brand.d.ts.map +0 -1
- package/dist/core/brand.js +0 -22
- package/dist/core/brand.js.map +0 -1
- package/dist/core/capabilities.d.ts +0 -30
- package/dist/core/capabilities.d.ts.map +0 -1
- package/dist/core/capabilities.js +0 -27
- package/dist/core/capabilities.js.map +0 -1
- package/dist/core/client-state-store.d.ts +0 -17
- package/dist/core/client-state-store.d.ts.map +0 -1
- package/dist/core/client-state-store.js +0 -47
- package/dist/core/client-state-store.js.map +0 -1
- package/dist/core/codec/account.d.ts +0 -52
- package/dist/core/codec/account.d.ts.map +0 -1
- package/dist/core/codec/account.js +0 -69
- package/dist/core/codec/account.js.map +0 -1
- package/dist/core/codec/bindings.d.ts +0 -38
- package/dist/core/codec/bindings.d.ts.map +0 -1
- package/dist/core/codec/bindings.js +0 -79
- package/dist/core/codec/bindings.js.map +0 -1
- package/dist/core/codec/operations.d.ts +0 -36
- package/dist/core/codec/operations.d.ts.map +0 -1
- package/dist/core/codec/operations.js +0 -82
- package/dist/core/codec/operations.js.map +0 -1
- package/dist/core/codec/primitives.d.ts +0 -59
- package/dist/core/codec/primitives.d.ts.map +0 -1
- package/dist/core/codec/primitives.js +0 -123
- package/dist/core/codec/primitives.js.map +0 -1
- package/dist/core/codec/proxy-hub.d.ts +0 -43
- package/dist/core/codec/proxy-hub.d.ts.map +0 -1
- package/dist/core/codec/proxy-hub.js +0 -69
- package/dist/core/codec/proxy-hub.js.map +0 -1
- package/dist/core/codec/runtime.d.ts +0 -41
- package/dist/core/codec/runtime.d.ts.map +0 -1
- package/dist/core/codec/runtime.js +0 -66
- package/dist/core/codec/runtime.js.map +0 -1
- package/dist/core/codec.d.ts +0 -43
- package/dist/core/codec.d.ts.map +0 -1
- package/dist/core/codec.js +0 -69
- package/dist/core/codec.js.map +0 -1
- package/dist/core/codex-live-config.d.ts +0 -92
- package/dist/core/codex-live-config.d.ts.map +0 -1
- package/dist/core/codex-live-config.js +0 -263
- package/dist/core/codex-live-config.js.map +0 -1
- package/dist/core/config-service.d.ts +0 -35
- package/dist/core/config-service.d.ts.map +0 -1
- package/dist/core/config-service.js +0 -87
- package/dist/core/config-service.js.map +0 -1
- package/dist/core/config.d.ts +0 -14
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -45
- package/dist/core/config.js.map +0 -1
- package/dist/core/db-schema.d.ts +0 -30
- package/dist/core/db-schema.d.ts.map +0 -1
- package/dist/core/db-schema.js +0 -278
- package/dist/core/db-schema.js.map +0 -1
- package/dist/core/db.d.ts +0 -72
- package/dist/core/db.d.ts.map +0 -1
- package/dist/core/db.js +0 -192
- package/dist/core/db.js.map +0 -1
- package/dist/core/doctor-fixes.d.ts +0 -3
- package/dist/core/doctor-fixes.d.ts.map +0 -1
- package/dist/core/doctor-fixes.js +0 -102
- package/dist/core/doctor-fixes.js.map +0 -1
- package/dist/core/doctor-format.d.ts +0 -10
- package/dist/core/doctor-format.d.ts.map +0 -1
- package/dist/core/doctor-format.js +0 -45
- package/dist/core/doctor-format.js.map +0 -1
- package/dist/core/doctor-report.d.ts +0 -3
- package/dist/core/doctor-report.d.ts.map +0 -1
- package/dist/core/doctor-report.js +0 -174
- package/dist/core/doctor-report.js.map +0 -1
- package/dist/core/doctor-scan.d.ts +0 -7
- package/dist/core/doctor-scan.d.ts.map +0 -1
- package/dist/core/doctor-scan.js +0 -139
- package/dist/core/doctor-scan.js.map +0 -1
- package/dist/core/doctor-types.d.ts +0 -89
- package/dist/core/doctor-types.d.ts.map +0 -1
- package/dist/core/doctor-types.js +0 -14
- package/dist/core/doctor-types.js.map +0 -1
- package/dist/core/doctor-utils.d.ts +0 -3
- package/dist/core/doctor-utils.d.ts.map +0 -1
- package/dist/core/doctor-utils.js +0 -36
- package/dist/core/doctor-utils.js.map +0 -1
- package/dist/core/doctor.d.ts +0 -14
- package/dist/core/doctor.d.ts.map +0 -1
- package/dist/core/doctor.js +0 -127
- package/dist/core/doctor.js.map +0 -1
- package/dist/core/events.d.ts +0 -58
- package/dist/core/events.d.ts.map +0 -1
- package/dist/core/events.js +0 -88
- package/dist/core/events.js.map +0 -1
- package/dist/core/journal.d.ts +0 -23
- package/dist/core/journal.d.ts.map +0 -1
- package/dist/core/journal.js +0 -93
- package/dist/core/journal.js.map +0 -1
- package/dist/core/lease-store.d.ts +0 -22
- package/dist/core/lease-store.d.ts.map +0 -1
- package/dist/core/lease-store.js +0 -81
- package/dist/core/lease-store.js.map +0 -1
- package/dist/core/migrate-bindings.d.ts +0 -10
- package/dist/core/migrate-bindings.d.ts.map +0 -1
- package/dist/core/migrate-bindings.js +0 -98
- package/dist/core/migrate-bindings.js.map +0 -1
- package/dist/core/migrate-fs.d.ts +0 -11
- package/dist/core/migrate-fs.d.ts.map +0 -1
- package/dist/core/migrate-fs.js +0 -184
- package/dist/core/migrate-fs.js.map +0 -1
- package/dist/core/model-cache-store.d.ts +0 -27
- package/dist/core/model-cache-store.d.ts.map +0 -1
- package/dist/core/model-cache-store.js +0 -50
- package/dist/core/model-cache-store.js.map +0 -1
- package/dist/core/model-discovery.d.ts +0 -66
- package/dist/core/model-discovery.d.ts.map +0 -1
- package/dist/core/model-discovery.js +0 -127
- package/dist/core/model-discovery.js.map +0 -1
- package/dist/core/model-policy.d.ts +0 -40
- package/dist/core/model-policy.d.ts.map +0 -1
- package/dist/core/model-policy.js +0 -77
- package/dist/core/model-policy.js.map +0 -1
- package/dist/core/model-roles.d.ts +0 -9
- package/dist/core/model-roles.d.ts.map +0 -1
- package/dist/core/model-roles.js +0 -20
- package/dist/core/model-roles.js.map +0 -1
- package/dist/core/mutation-lock.d.ts +0 -31
- package/dist/core/mutation-lock.d.ts.map +0 -1
- package/dist/core/mutation-lock.js +0 -69
- package/dist/core/mutation-lock.js.map +0 -1
- package/dist/core/paths.d.ts +0 -49
- package/dist/core/paths.d.ts.map +0 -1
- package/dist/core/paths.js +0 -110
- package/dist/core/paths.js.map +0 -1
- package/dist/core/plugin-loader.d.ts +0 -40
- package/dist/core/plugin-loader.d.ts.map +0 -1
- package/dist/core/plugin-loader.js +0 -184
- package/dist/core/plugin-loader.js.map +0 -1
- package/dist/core/plugin-service.d.ts +0 -32
- package/dist/core/plugin-service.d.ts.map +0 -1
- package/dist/core/plugin-service.js +0 -110
- package/dist/core/plugin-service.js.map +0 -1
- package/dist/core/plugin-store.d.ts +0 -18
- package/dist/core/plugin-store.d.ts.map +0 -1
- package/dist/core/plugin-store.js +0 -50
- package/dist/core/plugin-store.js.map +0 -1
- package/dist/core/pool-store.d.ts +0 -44
- package/dist/core/pool-store.d.ts.map +0 -1
- package/dist/core/pool-store.js +0 -198
- package/dist/core/pool-store.js.map +0 -1
- package/dist/core/preset-store.d.ts +0 -29
- package/dist/core/preset-store.d.ts.map +0 -1
- package/dist/core/preset-store.js +0 -105
- package/dist/core/preset-store.js.map +0 -1
- package/dist/core/profile-service.d.ts +0 -50
- package/dist/core/profile-service.d.ts.map +0 -1
- package/dist/core/profile-service.js +0 -149
- package/dist/core/profile-service.js.map +0 -1
- package/dist/core/profile-store.d.ts +0 -20
- package/dist/core/profile-store.d.ts.map +0 -1
- package/dist/core/profile-store.js +0 -92
- package/dist/core/profile-store.js.map +0 -1
- package/dist/core/profile-synth.d.ts +0 -24
- package/dist/core/profile-synth.d.ts.map +0 -1
- package/dist/core/profile-synth.js +0 -30
- package/dist/core/profile-synth.js.map +0 -1
- package/dist/core/project-root.d.ts +0 -7
- package/dist/core/project-root.d.ts.map +0 -1
- package/dist/core/project-root.js +0 -23
- package/dist/core/project-root.js.map +0 -1
- package/dist/core/proxy-hub-cli.d.ts +0 -3
- package/dist/core/proxy-hub-cli.d.ts.map +0 -1
- package/dist/core/proxy-hub-cli.js +0 -80
- package/dist/core/proxy-hub-cli.js.map +0 -1
- package/dist/core/proxy-hub-routes.d.ts +0 -22
- package/dist/core/proxy-hub-routes.d.ts.map +0 -1
- package/dist/core/proxy-hub-routes.js +0 -92
- package/dist/core/proxy-hub-routes.js.map +0 -1
- package/dist/core/proxy-hub-server.d.ts +0 -59
- package/dist/core/proxy-hub-server.d.ts.map +0 -1
- package/dist/core/proxy-hub-server.js +0 -409
- package/dist/core/proxy-hub-server.js.map +0 -1
- package/dist/core/proxy-hub-service.d.ts +0 -97
- package/dist/core/proxy-hub-service.d.ts.map +0 -1
- package/dist/core/proxy-hub-service.js +0 -553
- package/dist/core/proxy-hub-service.js.map +0 -1
- package/dist/core/proxy-hub-store.d.ts +0 -28
- package/dist/core/proxy-hub-store.d.ts.map +0 -1
- package/dist/core/proxy-hub-store.js +0 -152
- package/dist/core/proxy-hub-store.js.map +0 -1
- package/dist/core/proxy-lifecycle.d.ts +0 -26
- package/dist/core/proxy-lifecycle.d.ts.map +0 -1
- package/dist/core/proxy-lifecycle.js +0 -33
- package/dist/core/proxy-lifecycle.js.map +0 -1
- package/dist/core/proxy-ports.d.ts +0 -50
- package/dist/core/proxy-ports.d.ts.map +0 -1
- package/dist/core/proxy-ports.js +0 -86
- package/dist/core/proxy-ports.js.map +0 -1
- package/dist/core/proxy-service.d.ts +0 -184
- package/dist/core/proxy-service.d.ts.map +0 -1
- package/dist/core/proxy-service.js +0 -860
- package/dist/core/proxy-service.js.map +0 -1
- package/dist/core/quota-guard-policy.d.ts +0 -8
- package/dist/core/quota-guard-policy.d.ts.map +0 -1
- package/dist/core/quota-guard-policy.js +0 -21
- package/dist/core/quota-guard-policy.js.map +0 -1
- package/dist/core/realign-proxy-clients.d.ts +0 -19
- package/dist/core/realign-proxy-clients.d.ts.map +0 -1
- package/dist/core/realign-proxy-clients.js +0 -40
- package/dist/core/realign-proxy-clients.js.map +0 -1
- package/dist/core/refs.d.ts +0 -84
- package/dist/core/refs.d.ts.map +0 -1
- package/dist/core/refs.js +0 -250
- package/dist/core/refs.js.map +0 -1
- package/dist/core/registry.d.ts +0 -46
- package/dist/core/registry.d.ts.map +0 -1
- package/dist/core/registry.js +0 -70
- package/dist/core/registry.js.map +0 -1
- package/dist/core/resolve-source.d.ts +0 -54
- package/dist/core/resolve-source.d.ts.map +0 -1
- package/dist/core/resolve-source.js +0 -148
- package/dist/core/resolve-source.js.map +0 -1
- package/dist/core/runtime-service.d.ts +0 -158
- package/dist/core/runtime-service.d.ts.map +0 -1
- package/dist/core/runtime-service.js +0 -422
- package/dist/core/runtime-service.js.map +0 -1
- package/dist/core/service.d.ts +0 -200
- package/dist/core/service.d.ts.map +0 -1
- package/dist/core/service.js +0 -643
- package/dist/core/service.js.map +0 -1
- package/dist/core/store-snapshot.d.ts +0 -10
- package/dist/core/store-snapshot.d.ts.map +0 -1
- package/dist/core/store-snapshot.js +0 -79
- package/dist/core/store-snapshot.js.map +0 -1
- package/dist/core/store.d.ts +0 -68
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -159
- package/dist/core/store.js.map +0 -1
- package/dist/core/tray-runtime.d.ts +0 -15
- package/dist/core/tray-runtime.d.ts.map +0 -1
- package/dist/core/tray-runtime.js +0 -33
- package/dist/core/tray-runtime.js.map +0 -1
- package/dist/core/tray-settings-service.d.ts +0 -7
- package/dist/core/tray-settings-service.d.ts.map +0 -1
- package/dist/core/tray-settings-service.js +0 -24
- package/dist/core/tray-settings-service.js.map +0 -1
- package/dist/core/update.d.ts +0 -26
- package/dist/core/update.d.ts.map +0 -1
- package/dist/core/update.js +0 -128
- package/dist/core/update.js.map +0 -1
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -7
- package/dist/network/egress/allowlist.d.ts +0 -2
- package/dist/network/egress/allowlist.d.ts.map +0 -1
- package/dist/network/egress/allowlist.js +0 -14
- package/dist/network/egress/allowlist.js.map +0 -1
- package/dist/network/egress/direct.d.ts +0 -17
- package/dist/network/egress/direct.d.ts.map +0 -1
- package/dist/network/egress/direct.js +0 -28
- package/dist/network/egress/direct.js.map +0 -1
- package/dist/network/egress/errors.d.ts +0 -4
- package/dist/network/egress/errors.d.ts.map +0 -1
- package/dist/network/egress/errors.js +0 -8
- package/dist/network/egress/errors.js.map +0 -1
- package/dist/network/egress/index.d.ts +0 -6
- package/dist/network/egress/index.d.ts.map +0 -1
- package/dist/network/egress/index.js +0 -11
- package/dist/network/egress/index.js.map +0 -1
- package/dist/network/egress/types.d.ts +0 -16
- package/dist/network/egress/types.d.ts.map +0 -1
- package/dist/presentation/client-name.d.ts +0 -14
- package/dist/presentation/client-name.d.ts.map +0 -1
- package/dist/presentation/client-name.js +0 -22
- package/dist/presentation/client-name.js.map +0 -1
- package/dist/presentation/layout.d.ts +0 -7
- package/dist/presentation/layout.d.ts.map +0 -1
- package/dist/presentation/layout.js +0 -10
- package/dist/presentation/layout.js.map +0 -1
- package/dist/providers/auth-fingerprint.d.ts +0 -56
- package/dist/providers/auth-fingerprint.d.ts.map +0 -1
- package/dist/providers/auth-fingerprint.js +0 -163
- package/dist/providers/auth-fingerprint.js.map +0 -1
- package/dist/providers/claude.d.ts +0 -43
- package/dist/providers/claude.d.ts.map +0 -1
- package/dist/providers/claude.js +0 -191
- package/dist/providers/claude.js.map +0 -1
- package/dist/providers/codex-identity.d.ts +0 -13
- package/dist/providers/codex-identity.d.ts.map +0 -1
- package/dist/providers/codex-identity.js +0 -69
- package/dist/providers/codex-identity.js.map +0 -1
- package/dist/providers/codex-refresh.d.ts +0 -30
- package/dist/providers/codex-refresh.d.ts.map +0 -1
- package/dist/providers/codex-refresh.js +0 -64
- package/dist/providers/codex-refresh.js.map +0 -1
- package/dist/providers/codex-usage.d.ts +0 -3
- package/dist/providers/codex-usage.d.ts.map +0 -1
- package/dist/providers/codex-usage.js +0 -42
- package/dist/providers/codex-usage.js.map +0 -1
- package/dist/providers/codex.d.ts +0 -61
- package/dist/providers/codex.d.ts.map +0 -1
- package/dist/providers/codex.js +0 -212
- package/dist/providers/codex.js.map +0 -1
- package/dist/providers/gemini-antigravity-oauth.d.ts +0 -83
- package/dist/providers/gemini-antigravity-oauth.d.ts.map +0 -1
- package/dist/providers/gemini-antigravity-oauth.js +0 -343
- package/dist/providers/gemini-antigravity-oauth.js.map +0 -1
- package/dist/providers/gemini-antigravity-state.d.ts +0 -35
- package/dist/providers/gemini-antigravity-state.d.ts.map +0 -1
- package/dist/providers/gemini-antigravity-state.js +0 -433
- package/dist/providers/gemini-antigravity-state.js.map +0 -1
- package/dist/providers/gemini-env.d.ts +0 -8
- package/dist/providers/gemini-env.d.ts.map +0 -1
- package/dist/providers/gemini-env.js +0 -78
- package/dist/providers/gemini-env.js.map +0 -1
- package/dist/providers/gemini-identity.d.ts +0 -2
- package/dist/providers/gemini-identity.d.ts.map +0 -1
- package/dist/providers/gemini-identity.js +0 -14
- package/dist/providers/gemini-identity.js.map +0 -1
- package/dist/providers/gemini-proxy/main.d.ts +0 -3
- package/dist/providers/gemini-proxy/main.d.ts.map +0 -1
- package/dist/providers/gemini-proxy/main.js +0 -176
- package/dist/providers/gemini-proxy/main.js.map +0 -1
- package/dist/providers/gemini-proxy/server.d.ts +0 -57
- package/dist/providers/gemini-proxy/server.d.ts.map +0 -1
- package/dist/providers/gemini-proxy/server.js +0 -1240
- package/dist/providers/gemini-proxy/server.js.map +0 -1
- package/dist/providers/gemini-proxy-entry.d.ts +0 -2
- package/dist/providers/gemini-proxy-entry.d.ts.map +0 -1
- package/dist/providers/gemini-proxy-entry.js +0 -16
- package/dist/providers/gemini-proxy-entry.js.map +0 -1
- package/dist/providers/gemini-proxy-lifecycle.d.ts +0 -11
- package/dist/providers/gemini-proxy-lifecycle.d.ts.map +0 -1
- package/dist/providers/gemini-proxy-lifecycle.js +0 -131
- package/dist/providers/gemini-proxy-lifecycle.js.map +0 -1
- package/dist/providers/gemini.d.ts +0 -137
- package/dist/providers/gemini.d.ts.map +0 -1
- package/dist/providers/gemini.js +0 -471
- package/dist/providers/gemini.js.map +0 -1
- package/dist/providers/grok-proxy/auth.d.ts +0 -27
- package/dist/providers/grok-proxy/auth.d.ts.map +0 -1
- package/dist/providers/grok-proxy/auth.js +0 -123
- package/dist/providers/grok-proxy/auth.js.map +0 -1
- package/dist/providers/grok-proxy/main.d.ts +0 -3
- package/dist/providers/grok-proxy/main.d.ts.map +0 -1
- package/dist/providers/grok-proxy/main.js +0 -111
- package/dist/providers/grok-proxy/main.js.map +0 -1
- package/dist/providers/grok-proxy/server.d.ts +0 -46
- package/dist/providers/grok-proxy/server.d.ts.map +0 -1
- package/dist/providers/grok-proxy/server.js +0 -595
- package/dist/providers/grok-proxy/server.js.map +0 -1
- package/dist/providers/grok.d.ts +0 -38
- package/dist/providers/grok.d.ts.map +0 -1
- package/dist/providers/grok.js +0 -250
- package/dist/providers/grok.js.map +0 -1
- package/dist/providers/index.d.ts +0 -14
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -23
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/kiro-secret-store.d.ts +0 -39
- package/dist/providers/kiro-secret-store.d.ts.map +0 -1
- package/dist/providers/kiro-secret-store.js +0 -168
- package/dist/providers/kiro-secret-store.js.map +0 -1
- package/dist/providers/kiro.d.ts +0 -50
- package/dist/providers/kiro.d.ts.map +0 -1
- package/dist/providers/kiro.js +0 -373
- package/dist/providers/kiro.js.map +0 -1
- package/dist/providers/model-policy.d.ts +0 -15
- package/dist/providers/model-policy.d.ts.map +0 -1
- package/dist/providers/model-policy.js +0 -26
- package/dist/providers/model-policy.js.map +0 -1
- package/dist/providers/opencode-auth.d.ts +0 -67
- package/dist/providers/opencode-auth.d.ts.map +0 -1
- package/dist/providers/opencode-auth.js +0 -146
- package/dist/providers/opencode-auth.js.map +0 -1
- package/dist/providers/opencode-cli-entry.d.ts +0 -36
- package/dist/providers/opencode-cli-entry.d.ts.map +0 -1
- package/dist/providers/opencode-cli-entry.js +0 -90
- package/dist/providers/opencode-cli-entry.js.map +0 -1
- package/dist/providers/opencode-proxy/abort.d.ts +0 -8
- package/dist/providers/opencode-proxy/abort.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/abort.js +0 -42
- package/dist/providers/opencode-proxy/abort.js.map +0 -1
- package/dist/providers/opencode-proxy/anthropic-handler.d.ts +0 -4
- package/dist/providers/opencode-proxy/anthropic-handler.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/anthropic-handler.js +0 -108
- package/dist/providers/opencode-proxy/anthropic-handler.js.map +0 -1
- package/dist/providers/opencode-proxy/auth.d.ts +0 -38
- package/dist/providers/opencode-proxy/auth.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/auth.js +0 -128
- package/dist/providers/opencode-proxy/auth.js.map +0 -1
- package/dist/providers/opencode-proxy/body.d.ts +0 -9
- package/dist/providers/opencode-proxy/body.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/body.js +0 -69
- package/dist/providers/opencode-proxy/body.js.map +0 -1
- package/dist/providers/opencode-proxy/catalog-handlers.d.ts +0 -7
- package/dist/providers/opencode-proxy/catalog-handlers.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/catalog-handlers.js +0 -132
- package/dist/providers/opencode-proxy/catalog-handlers.js.map +0 -1
- package/dist/providers/opencode-proxy/catalog.d.ts +0 -41
- package/dist/providers/opencode-proxy/catalog.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/catalog.js +0 -146
- package/dist/providers/opencode-proxy/catalog.js.map +0 -1
- package/dist/providers/opencode-proxy/cli.d.ts +0 -2
- package/dist/providers/opencode-proxy/cli.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/cli.js +0 -162
- package/dist/providers/opencode-proxy/cli.js.map +0 -1
- package/dist/providers/opencode-proxy/constants.d.ts +0 -13
- package/dist/providers/opencode-proxy/constants.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/constants.js +0 -15
- package/dist/providers/opencode-proxy/constants.js.map +0 -1
- package/dist/providers/opencode-proxy/context-budget.d.ts +0 -31
- package/dist/providers/opencode-proxy/context-budget.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/context-budget.js +0 -165
- package/dist/providers/opencode-proxy/context-budget.js.map +0 -1
- package/dist/providers/opencode-proxy/errors.d.ts +0 -5
- package/dist/providers/opencode-proxy/errors.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/errors.js +0 -45
- package/dist/providers/opencode-proxy/errors.js.map +0 -1
- package/dist/providers/opencode-proxy/forwarders.d.ts +0 -7
- package/dist/providers/opencode-proxy/forwarders.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/forwarders.js +0 -214
- package/dist/providers/opencode-proxy/forwarders.js.map +0 -1
- package/dist/providers/opencode-proxy/http.d.ts +0 -11
- package/dist/providers/opencode-proxy/http.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/http.js +0 -97
- package/dist/providers/opencode-proxy/http.js.map +0 -1
- package/dist/providers/opencode-proxy/models.d.ts +0 -42
- package/dist/providers/opencode-proxy/models.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/models.js +0 -148
- package/dist/providers/opencode-proxy/models.js.map +0 -1
- package/dist/providers/opencode-proxy/openai-handler.d.ts +0 -5
- package/dist/providers/opencode-proxy/openai-handler.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/openai-handler.js +0 -115
- package/dist/providers/opencode-proxy/openai-handler.js.map +0 -1
- package/dist/providers/opencode-proxy/router.d.ts +0 -4
- package/dist/providers/opencode-proxy/router.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/router.js +0 -65
- package/dist/providers/opencode-proxy/router.js.map +0 -1
- package/dist/providers/opencode-proxy/runtime.d.ts +0 -23
- package/dist/providers/opencode-proxy/runtime.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/runtime.js +0 -158
- package/dist/providers/opencode-proxy/runtime.js.map +0 -1
- package/dist/providers/opencode-proxy/server.d.ts +0 -13
- package/dist/providers/opencode-proxy/server.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/server.js +0 -52
- package/dist/providers/opencode-proxy/server.js.map +0 -1
- package/dist/providers/opencode-proxy/stream.d.ts +0 -4
- package/dist/providers/opencode-proxy/stream.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/stream.js +0 -71
- package/dist/providers/opencode-proxy/stream.js.map +0 -1
- package/dist/providers/opencode-proxy/translate-stream.d.ts +0 -3
- package/dist/providers/opencode-proxy/translate-stream.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/translate-stream.js +0 -205
- package/dist/providers/opencode-proxy/translate-stream.js.map +0 -1
- package/dist/providers/opencode-proxy/translate.d.ts +0 -11
- package/dist/providers/opencode-proxy/translate.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/translate.js +0 -250
- package/dist/providers/opencode-proxy/translate.js.map +0 -1
- package/dist/providers/opencode-proxy/types.d.ts +0 -110
- package/dist/providers/opencode-proxy/types.d.ts.map +0 -1
- package/dist/providers/opencode-proxy/types.js +0 -38
- package/dist/providers/opencode-proxy/types.js.map +0 -1
- package/dist/providers/opencode-proxy-lifecycle.d.ts +0 -11
- package/dist/providers/opencode-proxy-lifecycle.d.ts.map +0 -1
- package/dist/providers/opencode-proxy-lifecycle.js +0 -144
- package/dist/providers/opencode-proxy-lifecycle.js.map +0 -1
- package/dist/providers/opencode.d.ts +0 -40
- package/dist/providers/opencode.d.ts.map +0 -1
- package/dist/providers/opencode.js +0 -190
- package/dist/providers/opencode.js.map +0 -1
- package/dist/providers/protocol/anthropic-convert.d.ts +0 -12
- package/dist/providers/protocol/anthropic-convert.d.ts.map +0 -1
- package/dist/providers/protocol/anthropic-convert.js +0 -113
- package/dist/providers/protocol/anthropic-convert.js.map +0 -1
- package/dist/providers/protocol/anthropic-helpers.d.ts +0 -13
- package/dist/providers/protocol/anthropic-helpers.d.ts.map +0 -1
- package/dist/providers/protocol/anthropic-helpers.js +0 -179
- package/dist/providers/protocol/anthropic-helpers.js.map +0 -1
- package/dist/providers/protocol/anthropic-stream-reader.d.ts +0 -13
- package/dist/providers/protocol/anthropic-stream-reader.d.ts.map +0 -1
- package/dist/providers/protocol/anthropic-stream-reader.js +0 -46
- package/dist/providers/protocol/anthropic-stream-reader.js.map +0 -1
- package/dist/providers/protocol/anthropic-stream.d.ts +0 -7
- package/dist/providers/protocol/anthropic-stream.d.ts.map +0 -1
- package/dist/providers/protocol/anthropic-stream.js +0 -318
- package/dist/providers/protocol/anthropic-stream.js.map +0 -1
- package/dist/providers/protocol/anthropic-types.d.ts +0 -240
- package/dist/providers/protocol/anthropic-types.d.ts.map +0 -1
- package/dist/providers/protocol/anthropic.d.ts +0 -20
- package/dist/providers/protocol/anthropic.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-anthropic.d.ts +0 -15
- package/dist/providers/protocol/gemini/translate-anthropic.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-anthropic.js +0 -84
- package/dist/providers/protocol/gemini/translate-anthropic.js.map +0 -1
- package/dist/providers/protocol/gemini/translate-chat.d.ts +0 -5
- package/dist/providers/protocol/gemini/translate-chat.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-chat.js +0 -142
- package/dist/providers/protocol/gemini/translate-chat.js.map +0 -1
- package/dist/providers/protocol/gemini/translate-models.d.ts +0 -40
- package/dist/providers/protocol/gemini/translate-models.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-models.js +0 -186
- package/dist/providers/protocol/gemini/translate-models.js.map +0 -1
- package/dist/providers/protocol/gemini/translate-responses.d.ts +0 -6
- package/dist/providers/protocol/gemini/translate-responses.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-responses.js +0 -187
- package/dist/providers/protocol/gemini/translate-responses.js.map +0 -1
- package/dist/providers/protocol/gemini/translate-schema.d.ts +0 -9
- package/dist/providers/protocol/gemini/translate-schema.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-schema.js +0 -48
- package/dist/providers/protocol/gemini/translate-schema.js.map +0 -1
- package/dist/providers/protocol/gemini/translate-shared.d.ts +0 -8
- package/dist/providers/protocol/gemini/translate-shared.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-shared.js +0 -47
- package/dist/providers/protocol/gemini/translate-shared.js.map +0 -1
- package/dist/providers/protocol/gemini/translate-thinking.d.ts +0 -7
- package/dist/providers/protocol/gemini/translate-thinking.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate-thinking.js +0 -65
- package/dist/providers/protocol/gemini/translate-thinking.js.map +0 -1
- package/dist/providers/protocol/gemini/translate-types.d.ts +0 -133
- package/dist/providers/protocol/gemini/translate-types.d.ts.map +0 -1
- package/dist/providers/protocol/gemini/translate.d.ts +0 -7
- package/dist/providers/protocol/gemini/translate.d.ts.map +0 -1
- package/dist/providers/protocol/json-schema.d.ts +0 -52
- package/dist/providers/protocol/json-schema.d.ts.map +0 -1
- package/dist/providers/protocol/json-schema.js +0 -189
- package/dist/providers/protocol/json-schema.js.map +0 -1
- package/dist/providers/protocol/token-estimate.d.ts +0 -15
- package/dist/providers/protocol/token-estimate.d.ts.map +0 -1
- package/dist/providers/protocol/token-estimate.js +0 -34
- package/dist/providers/protocol/token-estimate.js.map +0 -1
- package/dist/providers/proxy-hub-backend.d.ts +0 -4
- package/dist/providers/proxy-hub-backend.d.ts.map +0 -1
- package/dist/providers/proxy-hub-backend.js +0 -11
- package/dist/providers/proxy-hub-backend.js.map +0 -1
- package/dist/providers/proxy-process.d.ts +0 -35
- package/dist/providers/proxy-process.d.ts.map +0 -1
- package/dist/providers/proxy-process.js +0 -119
- package/dist/providers/proxy-process.js.map +0 -1
- package/dist/providers/proxy-shared.d.ts +0 -43
- package/dist/providers/proxy-shared.d.ts.map +0 -1
- package/dist/providers/proxy-shared.js +0 -128
- package/dist/providers/proxy-shared.js.map +0 -1
- package/dist/providers/quota-guard.d.ts +0 -49
- package/dist/providers/quota-guard.d.ts.map +0 -1
- package/dist/providers/quota-guard.js +0 -107
- package/dist/providers/quota-guard.js.map +0 -1
- package/dist/providers/reasoning.d.ts +0 -27
- package/dist/providers/reasoning.d.ts.map +0 -1
- package/dist/providers/reasoning.js +0 -61
- package/dist/providers/reasoning.js.map +0 -1
- package/dist/providers/upstream-policy.d.ts +0 -33
- package/dist/providers/upstream-policy.d.ts.map +0 -1
- package/dist/providers/upstream-policy.js +0 -97
- package/dist/providers/upstream-policy.js.map +0 -1
- package/dist/public-types.d.ts +0 -3
- package/dist/public-types.d.ts.map +0 -1
- package/dist/public.d.ts +0 -19
- package/dist/public.d.ts.map +0 -1
- package/dist/public.js +0 -16
- package/dist/public.js.map +0 -1
- package/dist/sources/account-adapters.d.ts +0 -64
- package/dist/sources/account-adapters.d.ts.map +0 -1
- package/dist/sources/account-adapters.js +0 -205
- package/dist/sources/account-adapters.js.map +0 -1
- package/dist/sources/gateway-adapters.d.ts +0 -26
- package/dist/sources/gateway-adapters.d.ts.map +0 -1
- package/dist/sources/gateway-adapters.js +0 -43
- package/dist/sources/gateway-adapters.js.map +0 -1
- package/dist/sources/kiro-proxy-bin.d.ts +0 -41
- package/dist/sources/kiro-proxy-bin.d.ts.map +0 -1
- package/dist/sources/kiro-proxy-bin.js +0 -140
- package/dist/sources/kiro-proxy-bin.js.map +0 -1
- package/dist/sources/proxy-hub-adapters.d.ts +0 -7
- package/dist/sources/proxy-hub-adapters.d.ts.map +0 -1
- package/dist/sources/proxy-hub-adapters.js +0 -26
- package/dist/sources/proxy-hub-adapters.js.map +0 -1
- package/dist/testing.d.ts +0 -9
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -6
- package/dist/tray/AnyPickTray.swift +0 -3
- package/dist/tray/activity.d.ts +0 -18
- package/dist/tray/activity.d.ts.map +0 -1
- package/dist/tray/activity.js +0 -51
- package/dist/tray/activity.js.map +0 -1
- 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 +0 -1
- package/dist/tray/icons/googlegemini.svg +0 -1
- package/dist/tray/icons/grok.svg +0 -1
- package/dist/tray/icons/kiro.svg +0 -1
- package/dist/tray/icons/openai.svg +0 -1
- package/dist/tray/icons/opencode.svg +0 -1
- package/dist/tray/icons/openrouter.svg +0 -1
- package/dist/tray/model-role-actions.d.ts +0 -15
- package/dist/tray/model-role-actions.d.ts.map +0 -1
- package/dist/tray/model-role-actions.js +0 -41
- package/dist/tray/model-role-actions.js.map +0 -1
- package/dist/tray/native/AccountsPanel.swift +0 -434
- package/dist/tray/native/AppEntry.swift +0 -229
- package/dist/tray/native/MainWindow.swift +0 -300
- package/dist/tray/native/ManageFormChrome.swift +0 -332
- package/dist/tray/native/ManageForms.swift +0 -472
- package/dist/tray/native/ManagePanel.swift +0 -356
- package/dist/tray/native/Models.swift +0 -259
- package/dist/tray/native/ModelsEditor.swift +0 -390
- package/dist/tray/native/ModelsOverview.swift +0 -76
- package/dist/tray/native/ModelsPickers.swift +0 -273
- package/dist/tray/native/ModelsRoutePickers.swift +0 -718
- package/dist/tray/native/MonitorPanel.swift +0 -375
- package/dist/tray/native/ProxyPanel.swift +0 -326
- package/dist/tray/native/QuickActivityRow.swift +0 -40
- package/dist/tray/native/QuickNav.swift +0 -62
- package/dist/tray/native/QuickPanel.swift +0 -447
- package/dist/tray/native/QuickRouteRow.swift +0 -189
- package/dist/tray/native/QuickServiceRows.swift +0 -292
- package/dist/tray/native/RoutingIssues.swift +0 -293
- package/dist/tray/native/SettingsPanel.swift +0 -225
- package/dist/tray/native/SharedUI.swift +0 -681
- package/dist/tray/native/Store.swift +0 -540
- package/dist/tray/native/Theme.swift +0 -139
- package/dist/tray/native/TrayChrome.swift +0 -657
- package/dist/tray/native/TrayControls.swift +0 -475
- package/dist/tray/native/TrayPreferences.swift +0 -46
- package/dist/tray/native/sources.txt +0 -26
- package/dist/tray/native-sources.d.ts +0 -8
- package/dist/tray/native-sources.d.ts.map +0 -1
- package/dist/tray/native-sources.js +0 -19
- package/dist/tray/native-sources.js.map +0 -1
- package/dist/tray/protocol.d.ts +0 -79
- package/dist/tray/protocol.d.ts.map +0 -1
- package/dist/tray/protocol.js +0 -145
- package/dist/tray/protocol.js.map +0 -1
- package/dist/tray/settings.d.ts +0 -15
- package/dist/tray/settings.d.ts.map +0 -1
- package/dist/tray/settings.js +0 -72
- package/dist/tray/settings.js.map +0 -1
- package/dist/tray/snapshot-client-routes.d.ts +0 -11
- package/dist/tray/snapshot-client-routes.d.ts.map +0 -1
- package/dist/tray/snapshot-client-routes.js +0 -305
- package/dist/tray/snapshot-client-routes.js.map +0 -1
- package/dist/tray/snapshot-helpers.d.ts +0 -20
- package/dist/tray/snapshot-helpers.d.ts.map +0 -1
- package/dist/tray/snapshot-helpers.js +0 -74
- package/dist/tray/snapshot-helpers.js.map +0 -1
- package/dist/tray/snapshot-hub.d.ts +0 -7
- package/dist/tray/snapshot-hub.d.ts.map +0 -1
- package/dist/tray/snapshot-hub.js +0 -93
- package/dist/tray/snapshot-hub.js.map +0 -1
- package/dist/tray/snapshot-resources.d.ts +0 -19
- package/dist/tray/snapshot-resources.d.ts.map +0 -1
- package/dist/tray/snapshot-resources.js +0 -216
- package/dist/tray/snapshot-resources.js.map +0 -1
- package/dist/tray/snapshot-types.d.ts +0 -229
- package/dist/tray/snapshot-types.d.ts.map +0 -1
- package/dist/tray/snapshot-usage.d.ts +0 -9
- package/dist/tray/snapshot-usage.d.ts.map +0 -1
- package/dist/tray/snapshot-usage.js +0 -35
- package/dist/tray/snapshot-usage.js.map +0 -1
- package/dist/tray/snapshot.d.ts +0 -7
- package/dist/tray/snapshot.d.ts.map +0 -1
- package/dist/tray/snapshot.js +0 -48
- package/dist/tray/snapshot.js.map +0 -1
- package/dist/tray/supervisor-actions.d.ts +0 -19
- package/dist/tray/supervisor-actions.d.ts.map +0 -1
- package/dist/tray/supervisor-actions.js +0 -224
- package/dist/tray/supervisor-actions.js.map +0 -1
- package/dist/tray/supervisor-activity.d.ts +0 -5
- package/dist/tray/supervisor-activity.d.ts.map +0 -1
- package/dist/tray/supervisor-activity.js +0 -19
- package/dist/tray/supervisor-activity.js.map +0 -1
- package/dist/tray/supervisor-errors.d.ts +0 -9
- package/dist/tray/supervisor-errors.d.ts.map +0 -1
- package/dist/tray/supervisor-errors.js +0 -91
- package/dist/tray/supervisor-errors.js.map +0 -1
- package/dist/tray/supervisor-logs.d.ts +0 -6
- package/dist/tray/supervisor-logs.d.ts.map +0 -1
- package/dist/tray/supervisor-logs.js +0 -52
- package/dist/tray/supervisor-logs.js.map +0 -1
- package/dist/tray/supervisor-mutations.d.ts +0 -14
- package/dist/tray/supervisor-mutations.d.ts.map +0 -1
- package/dist/tray/supervisor-mutations.js +0 -218
- package/dist/tray/supervisor-mutations.js.map +0 -1
- package/dist/tray/supervisor-native.d.ts +0 -22
- package/dist/tray/supervisor-native.d.ts.map +0 -1
- package/dist/tray/supervisor-native.js +0 -227
- package/dist/tray/supervisor-native.js.map +0 -1
- package/dist/tray/supervisor-proxies.d.ts +0 -6
- package/dist/tray/supervisor-proxies.d.ts.map +0 -1
- package/dist/tray/supervisor-proxies.js +0 -37
- package/dist/tray/supervisor-proxies.js.map +0 -1
- package/dist/tray/supervisor-tauri.d.ts +0 -13
- package/dist/tray/supervisor-tauri.d.ts.map +0 -1
- package/dist/tray/supervisor-tauri.js +0 -36
- package/dist/tray/supervisor-tauri.js.map +0 -1
- package/dist/tray/supervisor.d.ts +0 -17
- package/dist/tray/supervisor.d.ts.map +0 -1
- package/dist/tray/supervisor.js +0 -372
- package/dist/tray/supervisor.js.map +0 -1
- package/dist/tray/terminal-launcher.d.ts +0 -12
- package/dist/tray/terminal-launcher.d.ts.map +0 -1
- package/dist/tray/terminal-launcher.js +0 -130
- package/dist/tray/terminal-launcher.js.map +0 -1
- package/dist/tui/actions/ensure-proxy-up.d.ts +0 -15
- package/dist/tui/actions/ensure-proxy-up.d.ts.map +0 -1
- package/dist/tui/actions/ensure-proxy-up.js +0 -41
- package/dist/tui/actions/ensure-proxy-up.js.map +0 -1
- package/dist/tui/actions/use-account-actions.d.ts +0 -35
- package/dist/tui/actions/use-account-actions.d.ts.map +0 -1
- package/dist/tui/actions/use-account-actions.js +0 -527
- package/dist/tui/actions/use-account-actions.js.map +0 -1
- package/dist/tui/actions/use-app-bindings.d.ts +0 -83
- package/dist/tui/actions/use-app-bindings.d.ts.map +0 -1
- package/dist/tui/actions/use-app-bindings.js +0 -472
- package/dist/tui/actions/use-app-bindings.js.map +0 -1
- package/dist/tui/actions/use-gateway-actions.d.ts +0 -45
- package/dist/tui/actions/use-gateway-actions.d.ts.map +0 -1
- package/dist/tui/actions/use-gateway-actions.js +0 -370
- package/dist/tui/actions/use-gateway-actions.js.map +0 -1
- package/dist/tui/actions/use-home-filter.d.ts +0 -24
- package/dist/tui/actions/use-home-filter.d.ts.map +0 -1
- package/dist/tui/actions/use-home-filter.js +0 -48
- package/dist/tui/actions/use-home-filter.js.map +0 -1
- package/dist/tui/actions/use-model-role-editor.d.ts +0 -44
- package/dist/tui/actions/use-model-role-editor.d.ts.map +0 -1
- package/dist/tui/actions/use-model-role-editor.js +0 -68
- package/dist/tui/actions/use-model-role-editor.js.map +0 -1
- package/dist/tui/actions/use-provider-filter.d.ts +0 -10
- package/dist/tui/actions/use-provider-filter.d.ts.map +0 -1
- package/dist/tui/actions/use-provider-filter.js +0 -22
- package/dist/tui/actions/use-provider-filter.js.map +0 -1
- package/dist/tui/actions/use-proxy-actions.d.ts +0 -31
- package/dist/tui/actions/use-proxy-actions.d.ts.map +0 -1
- package/dist/tui/actions/use-proxy-actions.js +0 -474
- package/dist/tui/actions/use-proxy-actions.js.map +0 -1
- package/dist/tui/actions/use-text-input-submit.d.ts +0 -16
- package/dist/tui/actions/use-text-input-submit.d.ts.map +0 -1
- package/dist/tui/actions/use-text-input-submit.js +0 -96
- package/dist/tui/actions/use-text-input-submit.js.map +0 -1
- package/dist/tui/actions/use-tray-runtime-actions.d.ts +0 -18
- package/dist/tui/actions/use-tray-runtime-actions.d.ts.map +0 -1
- package/dist/tui/actions/use-tray-runtime-actions.js +0 -78
- package/dist/tui/actions/use-tray-runtime-actions.js.map +0 -1
- package/dist/tui/app-ui-helpers.d.ts +0 -14
- package/dist/tui/app-ui-helpers.d.ts.map +0 -1
- package/dist/tui/app-ui-helpers.js +0 -48
- package/dist/tui/app-ui-helpers.js.map +0 -1
- package/dist/tui/app-ui.d.ts +0 -19
- package/dist/tui/app-ui.d.ts.map +0 -1
- package/dist/tui/app-ui.js +0 -98
- package/dist/tui/app-ui.js.map +0 -1
- package/dist/tui/components/chrome/header.d.ts +0 -39
- package/dist/tui/components/chrome/header.d.ts.map +0 -1
- package/dist/tui/components/chrome/header.js +0 -161
- package/dist/tui/components/chrome/header.js.map +0 -1
- package/dist/tui/components/chrome/inputs.d.ts +0 -34
- package/dist/tui/components/chrome/inputs.d.ts.map +0 -1
- package/dist/tui/components/chrome/inputs.js +0 -82
- package/dist/tui/components/chrome/inputs.js.map +0 -1
- package/dist/tui/components/chrome/layout.d.ts +0 -61
- package/dist/tui/components/chrome/layout.d.ts.map +0 -1
- package/dist/tui/components/chrome/layout.js +0 -119
- package/dist/tui/components/chrome/layout.js.map +0 -1
- package/dist/tui/components/chrome/legacy.d.ts +0 -84
- package/dist/tui/components/chrome/legacy.d.ts.map +0 -1
- package/dist/tui/components/chrome/legacy.js +0 -6
- package/dist/tui/components/chrome/rows.d.ts +0 -89
- package/dist/tui/components/chrome/rows.d.ts.map +0 -1
- package/dist/tui/components/chrome/rows.js +0 -151
- package/dist/tui/components/chrome/rows.js.map +0 -1
- package/dist/tui/components/chrome/status.d.ts +0 -50
- package/dist/tui/components/chrome/status.d.ts.map +0 -1
- package/dist/tui/components/chrome/status.js +0 -157
- package/dist/tui/components/chrome/status.js.map +0 -1
- package/dist/tui/components/chrome.d.ts +0 -7
- package/dist/tui/components/chrome.d.ts.map +0 -1
- package/dist/tui/components/chrome.js +0 -7
- package/dist/tui/components.d.ts +0 -26
- package/dist/tui/components.d.ts.map +0 -1
- package/dist/tui/components.js +0 -182
- package/dist/tui/components.js.map +0 -1
- package/dist/tui/model/anypick.d.ts +0 -106
- package/dist/tui/model/anypick.d.ts.map +0 -1
- package/dist/tui/model/anypick.js +0 -116
- package/dist/tui/model/anypick.js.map +0 -1
- package/dist/tui/model/bindings.d.ts +0 -39
- package/dist/tui/model/bindings.d.ts.map +0 -1
- package/dist/tui/model/bindings.js +0 -102
- package/dist/tui/model/bindings.js.map +0 -1
- package/dist/tui/model/detail.d.ts +0 -6
- package/dist/tui/model/detail.d.ts.map +0 -1
- package/dist/tui/model/detail.js +0 -85
- package/dist/tui/model/detail.js.map +0 -1
- package/dist/tui/model/gateway.d.ts +0 -46
- package/dist/tui/model/gateway.d.ts.map +0 -1
- package/dist/tui/model/gateway.js +0 -134
- package/dist/tui/model/gateway.js.map +0 -1
- package/dist/tui/model/home-format.d.ts +0 -52
- package/dist/tui/model/home-format.d.ts.map +0 -1
- package/dist/tui/model/home-format.js +0 -64
- package/dist/tui/model/home-format.js.map +0 -1
- package/dist/tui/model/home-load.d.ts +0 -8
- package/dist/tui/model/home-load.d.ts.map +0 -1
- package/dist/tui/model/home-load.js +0 -244
- package/dist/tui/model/home-load.js.map +0 -1
- package/dist/tui/model/identity.d.ts +0 -53
- package/dist/tui/model/identity.d.ts.map +0 -1
- package/dist/tui/model/identity.js +0 -176
- package/dist/tui/model/identity.js.map +0 -1
- package/dist/tui/model/line-editor.d.ts +0 -99
- package/dist/tui/model/line-editor.d.ts.map +0 -1
- package/dist/tui/model/line-editor.js +0 -186
- package/dist/tui/model/line-editor.js.map +0 -1
- package/dist/tui/model/names.d.ts +0 -28
- package/dist/tui/model/names.d.ts.map +0 -1
- package/dist/tui/model/names.js +0 -42
- package/dist/tui/model/names.js.map +0 -1
- package/dist/tui/model/pool.d.ts +0 -11
- package/dist/tui/model/pool.d.ts.map +0 -1
- package/dist/tui/model/pool.js +0 -115
- package/dist/tui/model/pool.js.map +0 -1
- package/dist/tui/model/provider-filter.d.ts +0 -14
- package/dist/tui/model/provider-filter.d.ts.map +0 -1
- package/dist/tui/model/provider-filter.js +0 -46
- package/dist/tui/model/provider-filter.js.map +0 -1
- package/dist/tui/model/proxy-hub.d.ts +0 -23
- package/dist/tui/model/proxy-hub.d.ts.map +0 -1
- package/dist/tui/model/proxy-hub.js +0 -69
- package/dist/tui/model/proxy-hub.js.map +0 -1
- package/dist/tui/model/proxy-labels.d.ts +0 -5
- package/dist/tui/model/proxy-labels.d.ts.map +0 -1
- package/dist/tui/model/proxy-labels.js +0 -18
- package/dist/tui/model/proxy-labels.js.map +0 -1
- package/dist/tui/model/proxy.d.ts +0 -15
- package/dist/tui/model/proxy.d.ts.map +0 -1
- package/dist/tui/model/proxy.js +0 -214
- package/dist/tui/model/proxy.js.map +0 -1
- package/dist/tui/model/root.d.ts +0 -20
- package/dist/tui/model/root.d.ts.map +0 -1
- package/dist/tui/model/root.js +0 -126
- package/dist/tui/model/root.js.map +0 -1
- package/dist/tui/model/route-builder.d.ts +0 -25
- package/dist/tui/model/route-builder.d.ts.map +0 -1
- package/dist/tui/model/route-builder.js +0 -199
- package/dist/tui/model/route-builder.js.map +0 -1
- package/dist/tui/model/screen.d.ts +0 -260
- package/dist/tui/model/screen.d.ts.map +0 -1
- package/dist/tui/model/types.d.ts +0 -179
- package/dist/tui/model/types.d.ts.map +0 -1
- package/dist/tui/model.d.ts +0 -18
- package/dist/tui/model.d.ts.map +0 -1
- package/dist/tui/model.js +0 -17
- package/dist/tui/proxy-models-fetch.d.ts +0 -34
- package/dist/tui/proxy-models-fetch.d.ts.map +0 -1
- package/dist/tui/proxy-models-fetch.js +0 -87
- package/dist/tui/proxy-models-fetch.js.map +0 -1
- package/dist/tui/routes/account.d.ts +0 -4
- package/dist/tui/routes/account.d.ts.map +0 -1
- package/dist/tui/routes/account.js +0 -327
- package/dist/tui/routes/account.js.map +0 -1
- package/dist/tui/routes/apps.d.ts +0 -3
- package/dist/tui/routes/apps.d.ts.map +0 -1
- package/dist/tui/routes/apps.js +0 -296
- package/dist/tui/routes/apps.js.map +0 -1
- package/dist/tui/routes/common.d.ts +0 -4
- package/dist/tui/routes/common.d.ts.map +0 -1
- package/dist/tui/routes/common.js +0 -117
- package/dist/tui/routes/common.js.map +0 -1
- package/dist/tui/routes/context.d.ts +0 -43
- package/dist/tui/routes/context.d.ts.map +0 -1
- package/dist/tui/routes/gateway.d.ts +0 -3
- package/dist/tui/routes/gateway.d.ts.map +0 -1
- package/dist/tui/routes/gateway.js +0 -199
- package/dist/tui/routes/gateway.js.map +0 -1
- package/dist/tui/routes/proxy.d.ts +0 -3
- package/dist/tui/routes/proxy.d.ts.map +0 -1
- package/dist/tui/routes/proxy.js +0 -234
- package/dist/tui/routes/proxy.js.map +0 -1
- package/dist/tui/screens/account-detail.d.ts +0 -14
- package/dist/tui/screens/account-detail.d.ts.map +0 -1
- package/dist/tui/screens/account-detail.js +0 -98
- package/dist/tui/screens/account-detail.js.map +0 -1
- package/dist/tui/screens/accounts-home.d.ts +0 -42
- package/dist/tui/screens/accounts-home.d.ts.map +0 -1
- package/dist/tui/screens/accounts-home.js +0 -321
- package/dist/tui/screens/accounts-home.js.map +0 -1
- package/dist/tui/screens/add-account.d.ts +0 -70
- package/dist/tui/screens/add-account.d.ts.map +0 -1
- package/dist/tui/screens/add-account.js +0 -323
- package/dist/tui/screens/add-account.js.map +0 -1
- package/dist/tui/screens/anypick-home.d.ts +0 -39
- package/dist/tui/screens/anypick-home.d.ts.map +0 -1
- package/dist/tui/screens/anypick-home.js +0 -253
- package/dist/tui/screens/anypick-home.js.map +0 -1
- package/dist/tui/screens/anypick-preview.d.ts +0 -13
- package/dist/tui/screens/anypick-preview.d.ts.map +0 -1
- package/dist/tui/screens/anypick-preview.js +0 -49
- package/dist/tui/screens/anypick-preview.js.map +0 -1
- package/dist/tui/screens/app-route-preview.d.ts +0 -14
- package/dist/tui/screens/app-route-preview.d.ts.map +0 -1
- package/dist/tui/screens/app-route-preview.js +0 -35
- package/dist/tui/screens/app-route-preview.js.map +0 -1
- package/dist/tui/screens/app-route-source.d.ts +0 -15
- package/dist/tui/screens/app-route-source.d.ts.map +0 -1
- package/dist/tui/screens/app-route-source.js +0 -97
- package/dist/tui/screens/app-route-source.js.map +0 -1
- package/dist/tui/screens/apps-home.d.ts +0 -22
- package/dist/tui/screens/apps-home.d.ts.map +0 -1
- package/dist/tui/screens/apps-home.js +0 -111
- package/dist/tui/screens/apps-home.js.map +0 -1
- package/dist/tui/screens/confirm.d.ts +0 -19
- package/dist/tui/screens/confirm.d.ts.map +0 -1
- package/dist/tui/screens/confirm.js +0 -42
- package/dist/tui/screens/confirm.js.map +0 -1
- package/dist/tui/screens/credential-form.d.ts +0 -30
- package/dist/tui/screens/credential-form.d.ts.map +0 -1
- package/dist/tui/screens/credential-form.js +0 -241
- package/dist/tui/screens/credential-form.js.map +0 -1
- package/dist/tui/screens/gateway-connection-form.d.ts +0 -16
- package/dist/tui/screens/gateway-connection-form.d.ts.map +0 -1
- package/dist/tui/screens/gateway-connection-form.js +0 -127
- package/dist/tui/screens/gateway-connection-form.js.map +0 -1
- package/dist/tui/screens/gateway-pick-provider.d.ts +0 -19
- package/dist/tui/screens/gateway-pick-provider.d.ts.map +0 -1
- package/dist/tui/screens/gateway-pick-provider.js +0 -62
- package/dist/tui/screens/gateway-pick-provider.js.map +0 -1
- package/dist/tui/screens/gateways-home.d.ts +0 -38
- package/dist/tui/screens/gateways-home.d.ts.map +0 -1
- package/dist/tui/screens/gateways-home.js +0 -247
- package/dist/tui/screens/gateways-home.js.map +0 -1
- package/dist/tui/screens/health.d.ts +0 -16
- package/dist/tui/screens/health.d.ts.map +0 -1
- package/dist/tui/screens/health.js +0 -109
- package/dist/tui/screens/health.js.map +0 -1
- package/dist/tui/screens/help.d.ts +0 -10
- package/dist/tui/screens/help.d.ts.map +0 -1
- package/dist/tui/screens/help.js +0 -213
- package/dist/tui/screens/help.js.map +0 -1
- package/dist/tui/screens/manage-apps.d.ts +0 -29
- package/dist/tui/screens/manage-apps.d.ts.map +0 -1
- package/dist/tui/screens/manage-apps.js +0 -165
- package/dist/tui/screens/manage-apps.js.map +0 -1
- package/dist/tui/screens/proxy-board-helpers.d.ts +0 -9
- package/dist/tui/screens/proxy-board-helpers.d.ts.map +0 -1
- package/dist/tui/screens/proxy-board-helpers.js +0 -70
- package/dist/tui/screens/proxy-board-helpers.js.map +0 -1
- package/dist/tui/screens/proxy-board.d.ts +0 -43
- package/dist/tui/screens/proxy-board.d.ts.map +0 -1
- package/dist/tui/screens/proxy-board.js +0 -351
- package/dist/tui/screens/proxy-board.js.map +0 -1
- package/dist/tui/screens/proxy-hub.d.ts +0 -21
- package/dist/tui/screens/proxy-hub.d.ts.map +0 -1
- package/dist/tui/screens/proxy-hub.js +0 -150
- package/dist/tui/screens/proxy-hub.js.map +0 -1
- package/dist/tui/screens/proxy-models-utils.d.ts +0 -13
- package/dist/tui/screens/proxy-models-utils.d.ts.map +0 -1
- package/dist/tui/screens/proxy-models-utils.js +0 -53
- package/dist/tui/screens/proxy-models-utils.js.map +0 -1
- package/dist/tui/screens/proxy-models.d.ts +0 -65
- package/dist/tui/screens/proxy-models.d.ts.map +0 -1
- package/dist/tui/screens/proxy-models.js +0 -252
- package/dist/tui/screens/proxy-models.js.map +0 -1
- package/dist/tui/screens/proxy.d.ts +0 -26
- package/dist/tui/screens/proxy.d.ts.map +0 -1
- package/dist/tui/screens/text-input.d.ts +0 -18
- package/dist/tui/screens/text-input.d.ts.map +0 -1
- package/dist/tui/screens/text-input.js +0 -67
- package/dist/tui/screens/text-input.js.map +0 -1
- package/dist/tui/screens/tray-runtime.d.ts +0 -19
- package/dist/tui/screens/tray-runtime.d.ts.map +0 -1
- package/dist/tui/screens/tray-runtime.js +0 -108
- package/dist/tui/screens/tray-runtime.js.map +0 -1
- package/dist/tui/use-tui-nav.d.ts +0 -40
- package/dist/tui/use-tui-nav.d.ts.map +0 -1
- package/dist/tui/use-tui-nav.js +0 -256
- package/dist/tui/use-tui-nav.js.map +0 -1
- package/dist/tui/use-tui-shell.d.ts +0 -46
- package/dist/tui/use-tui-shell.d.ts.map +0 -1
- package/dist/tui/use-tui-shell.js +0 -95
- package/dist/tui/use-tui-shell.js.map +0 -1
- package/dist/types/account.d.ts +0 -410
- package/dist/types/account.d.ts.map +0 -1
- package/dist/types/account.js +0 -7
- package/dist/types/account.js.map +0 -1
- package/dist/types/bindings.d.ts +0 -300
- package/dist/types/bindings.d.ts.map +0 -1
- package/dist/types/catalog.d.ts +0 -165
- package/dist/types/catalog.d.ts.map +0 -1
- package/dist/types/clients.d.ts +0 -174
- package/dist/types/clients.d.ts.map +0 -1
- package/dist/types/clients.js +0 -11
- package/dist/types/clients.js.map +0 -1
- package/dist/types/plugins.d.ts +0 -89
- package/dist/types/plugins.d.ts.map +0 -1
- package/dist/types/plugins.js +0 -14
- package/dist/types/plugins.js.map +0 -1
- package/dist/types/proxy-hub.d.ts +0 -109
- package/dist/types/proxy-hub.d.ts.map +0 -1
- package/dist/types.d.ts +0 -7
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
- package/dist/utils/errors.d.ts +0 -61
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -119
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -39
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js +0 -126
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/lock.d.ts +0 -33
- package/dist/utils/lock.d.ts.map +0 -1
- package/dist/utils/lock.js +0 -95
- package/dist/utils/lock.js.map +0 -1
- package/dist/utils/log.d.ts +0 -10
- package/dist/utils/log.d.ts.map +0 -1
- package/dist/utils/log.js +0 -21
- package/dist/utils/log.js.map +0 -1
- package/dist/utils/network.d.ts +0 -3
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js +0 -13
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/process/binary.d.ts +0 -14
- package/dist/utils/process/binary.d.ts.map +0 -1
- package/dist/utils/process/binary.js +0 -29
- package/dist/utils/process/binary.js.map +0 -1
- package/dist/utils/process/follow.d.ts +0 -2
- package/dist/utils/process/follow.d.ts.map +0 -1
- package/dist/utils/process/follow.js +0 -90
- package/dist/utils/process/follow.js.map +0 -1
- package/dist/utils/process/health.d.ts +0 -43
- package/dist/utils/process/health.d.ts.map +0 -1
- package/dist/utils/process/health.js +0 -132
- package/dist/utils/process/health.js.map +0 -1
- package/dist/utils/process/pid.d.ts +0 -95
- package/dist/utils/process/pid.d.ts.map +0 -1
- package/dist/utils/process/pid.js +0 -243
- package/dist/utils/process/pid.js.map +0 -1
- package/dist/utils/process.d.ts +0 -5
- package/dist/utils/process.d.ts.map +0 -1
- package/dist/utils/process.js +0 -5
- package/dist/utils/slug.d.ts +0 -18
- package/dist/utils/slug.d.ts.map +0 -1
- package/dist/utils/slug.js +0 -42
- package/dist/utils/slug.js.map +0 -1
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import "./auth.js";
|
|
2
|
-
import { MODELS_FETCH_MS, USER_AGENT } from "./constants.js";
|
|
3
|
-
import { parseOpenCodeModelDescriptors, parseOpenCodeProviderMetadata } from "./models.js";
|
|
4
|
-
//#region src/providers/opencode-proxy/catalog.ts
|
|
5
|
-
var CatalogStore = class {
|
|
6
|
-
opts;
|
|
7
|
-
cache;
|
|
8
|
-
inflight;
|
|
9
|
-
forcedUpstream;
|
|
10
|
-
zenBase;
|
|
11
|
-
goBase;
|
|
12
|
-
metadataUrl;
|
|
13
|
-
constructor(opts) {
|
|
14
|
-
this.opts = opts;
|
|
15
|
-
this.forcedUpstream = strip(opts.forcedUpstream);
|
|
16
|
-
this.zenBase = strip(opts.zenUpstream ?? "https://opencode.ai/zen/v1");
|
|
17
|
-
this.goBase = strip(opts.goUpstream ?? "https://opencode.ai/zen/go/v1");
|
|
18
|
-
this.metadataUrl = opts.metadataUrl === false ? void 0 : strip(opts.metadataUrl ?? (opts.forcedUpstream || opts.zenUpstream || opts.goUpstream ? void 0 : "https://models.dev/api.json"));
|
|
19
|
-
}
|
|
20
|
-
baseFor(catalog) {
|
|
21
|
-
if (this.forcedUpstream) return this.forcedUpstream;
|
|
22
|
-
return catalog === "go" ? this.goBase : this.zenBase;
|
|
23
|
-
}
|
|
24
|
-
async route(modelId) {
|
|
25
|
-
const catalog = (await this.live()).byModel.get(modelId)?.catalog ?? "zen";
|
|
26
|
-
return {
|
|
27
|
-
catalog,
|
|
28
|
-
base: this.baseFor(catalog)
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Drop any cached list so the next `live()` (or an explicit reload) refetches
|
|
33
|
-
* the upstream catalog. Used when a caller asks for a fresh model list instead
|
|
34
|
-
* of one cached up to CATALOG_TTL_MS ago — new models users are entitled to
|
|
35
|
-
* (e.g. a free tier added upstream) otherwise stay hidden until the TTL lapses.
|
|
36
|
-
*/
|
|
37
|
-
invalidate() {
|
|
38
|
-
this.cache = void 0;
|
|
39
|
-
this.inflight = void 0;
|
|
40
|
-
}
|
|
41
|
-
async live() {
|
|
42
|
-
const now = Date.now();
|
|
43
|
-
if (this.cache) {
|
|
44
|
-
const age = now - this.cache.fetchedAt;
|
|
45
|
-
if (age < 6e5) return this.cache;
|
|
46
|
-
if (age < 36e5) {
|
|
47
|
-
this.refresh().catch((err) => this.opts.log(`catalog refresh failed: ${err instanceof Error ? err.message : String(err)}`));
|
|
48
|
-
return this.cache;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return this.refresh();
|
|
52
|
-
}
|
|
53
|
-
refresh() {
|
|
54
|
-
if (this.inflight) return this.inflight;
|
|
55
|
-
this.inflight = (async () => {
|
|
56
|
-
const cred = await this.opts.credential();
|
|
57
|
-
const [lists, metadata] = await Promise.all([Promise.all(this.catalogs(cred).map(async (catalog) => ({
|
|
58
|
-
catalog,
|
|
59
|
-
list: await this.fetchModels(catalog, cred.apiKey)
|
|
60
|
-
}))), this.fetchMetadata()]);
|
|
61
|
-
const byModel = /* @__PURE__ */ new Map();
|
|
62
|
-
const ids = [];
|
|
63
|
-
const metadataByModel = new Map(metadata.map((model) => [`${model.source ?? "zen"}:${model.id.toLowerCase()}`, model]));
|
|
64
|
-
for (const { catalog, list } of lists) for (const live of list) {
|
|
65
|
-
if (byModel.has(live.id)) continue;
|
|
66
|
-
const extra = metadataByModel.get(`${catalog}:${live.id.toLowerCase()}`);
|
|
67
|
-
byModel.set(live.id, {
|
|
68
|
-
...extra,
|
|
69
|
-
...live,
|
|
70
|
-
id: live.id,
|
|
71
|
-
protocol: live.protocol ?? extra?.protocol,
|
|
72
|
-
providerPackage: live.providerPackage ?? extra?.providerPackage,
|
|
73
|
-
catalog
|
|
74
|
-
});
|
|
75
|
-
ids.push(live.id);
|
|
76
|
-
}
|
|
77
|
-
const next = {
|
|
78
|
-
byModel,
|
|
79
|
-
ids,
|
|
80
|
-
fetchedAt: Date.now()
|
|
81
|
-
};
|
|
82
|
-
this.cache = next;
|
|
83
|
-
this.opts.log(`models list ← ${ids.length} (zen+go)`);
|
|
84
|
-
return next;
|
|
85
|
-
})().finally(() => {
|
|
86
|
-
this.inflight = void 0;
|
|
87
|
-
});
|
|
88
|
-
return this.inflight;
|
|
89
|
-
}
|
|
90
|
-
catalogs(cred) {
|
|
91
|
-
return this.forcedUpstream || cred.mode === "public" ? ["zen"] : ["zen", "go"];
|
|
92
|
-
}
|
|
93
|
-
async fetchModels(catalog, apiKey) {
|
|
94
|
-
const base = this.baseFor(catalog);
|
|
95
|
-
for (let attempt = 1; attempt <= 2; attempt++) try {
|
|
96
|
-
const response = await this.opts.egress.fetch(`${base}/models`, {
|
|
97
|
-
headers: {
|
|
98
|
-
accept: "application/json",
|
|
99
|
-
authorization: `Bearer ${apiKey}`,
|
|
100
|
-
"x-opencode-client": "desktop",
|
|
101
|
-
"user-agent": USER_AGENT
|
|
102
|
-
},
|
|
103
|
-
signal: AbortSignal.timeout(MODELS_FETCH_MS)
|
|
104
|
-
}, { operation: "catalog" });
|
|
105
|
-
if (response.ok) return parseOpenCodeModelDescriptors(await response.json());
|
|
106
|
-
this.opts.log(`models ${catalog} ← ${response.status}${attempt === 1 ? " (retrying)" : ""}`);
|
|
107
|
-
if (![
|
|
108
|
-
502,
|
|
109
|
-
503,
|
|
110
|
-
504
|
|
111
|
-
].includes(response.status) || attempt === 2) return [];
|
|
112
|
-
} catch (err) {
|
|
113
|
-
this.opts.log(`models ${catalog} ✗ ${err instanceof Error ? err.message : String(err)}`);
|
|
114
|
-
if (attempt === 2) return [];
|
|
115
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
116
|
-
}
|
|
117
|
-
return [];
|
|
118
|
-
}
|
|
119
|
-
async fetchMetadata() {
|
|
120
|
-
if (!this.metadataUrl) return [];
|
|
121
|
-
try {
|
|
122
|
-
const response = await this.opts.egress.fetch(this.metadataUrl, {
|
|
123
|
-
headers: {
|
|
124
|
-
accept: "application/json",
|
|
125
|
-
"user-agent": USER_AGENT
|
|
126
|
-
},
|
|
127
|
-
signal: AbortSignal.timeout(MODELS_FETCH_MS)
|
|
128
|
-
}, { operation: "catalog" });
|
|
129
|
-
if (!response.ok) {
|
|
130
|
-
this.opts.log(`model metadata ← ${response.status} (using live ids without enrichment)`);
|
|
131
|
-
return [];
|
|
132
|
-
}
|
|
133
|
-
return parseOpenCodeProviderMetadata(await response.json());
|
|
134
|
-
} catch (err) {
|
|
135
|
-
this.opts.log(`model metadata ✗ ${err instanceof Error ? err.message : String(err)} (using live ids without enrichment)`);
|
|
136
|
-
return [];
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
function strip(value) {
|
|
141
|
-
return value?.replace(/\/$/, "");
|
|
142
|
-
}
|
|
143
|
-
//#endregion
|
|
144
|
-
export { CatalogStore };
|
|
145
|
-
|
|
146
|
-
//# sourceMappingURL=catalog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","names":[],"sources":["../../../src/providers/opencode-proxy/catalog.ts"],"sourcesContent":["import {\n OPENCODE_GO_UPSTREAM,\n OPENCODE_ZEN_UPSTREAM,\n type OpenCodeCatalog as OpenCodeCatalogKind,\n type OpenCodeCredential,\n} from './auth';\nimport {\n parseOpenCodeModelDescriptors,\n parseOpenCodeProviderMetadata,\n type OpenCodeModelDescriptor,\n} from './models';\nimport {\n CATALOG_STALE_MAX_MS,\n CATALOG_TTL_MS,\n DEFAULT_MODEL_METADATA_URL,\n MODELS_FETCH_MS,\n USER_AGENT,\n} from './constants';\nimport type { EgressTransport } from '../../network/egress/types';\nimport type { CatalogCache, CatalogModel, OpenCodeCatalogStore } from './types';\n\nexport interface OpenCodeCatalogOptions {\n egress: EgressTransport;\n authMode: string;\n forcedUpstream?: string;\n zenUpstream?: string;\n goUpstream?: string;\n metadataUrl?: string | false;\n credential: () => Promise<OpenCodeCredential>;\n log: (line: string) => void;\n}\n\nexport class CatalogStore implements OpenCodeCatalogStore {\n private cache?: CatalogCache;\n private inflight?: Promise<CatalogCache>;\n private readonly forcedUpstream?: string;\n private readonly zenBase: string;\n private readonly goBase: string;\n private readonly metadataUrl?: string;\n\n constructor(private readonly opts: OpenCodeCatalogOptions) {\n this.forcedUpstream = strip(opts.forcedUpstream);\n this.zenBase = strip(opts.zenUpstream ?? OPENCODE_ZEN_UPSTREAM)!;\n this.goBase = strip(opts.goUpstream ?? OPENCODE_GO_UPSTREAM)!;\n this.metadataUrl =\n opts.metadataUrl === false\n ? undefined\n : strip(\n opts.metadataUrl ??\n (opts.forcedUpstream || opts.zenUpstream || opts.goUpstream\n ? undefined\n : DEFAULT_MODEL_METADATA_URL),\n );\n }\n\n baseFor(catalog: OpenCodeCatalogKind): string {\n if (this.forcedUpstream) {\n return this.forcedUpstream;\n }\n return catalog === 'go' ? this.goBase : this.zenBase;\n }\n\n async route(modelId: string): Promise<{ catalog: OpenCodeCatalogKind; base: string }> {\n const cache = await this.live();\n const catalog = cache.byModel.get(modelId)?.catalog ?? 'zen';\n return { catalog, base: this.baseFor(catalog) };\n }\n\n /**\n * Drop any cached list so the next `live()` (or an explicit reload) refetches\n * the upstream catalog. Used when a caller asks for a fresh model list instead\n * of one cached up to CATALOG_TTL_MS ago — new models users are entitled to\n * (e.g. a free tier added upstream) otherwise stay hidden until the TTL lapses.\n */\n invalidate(): void {\n this.cache = undefined;\n this.inflight = undefined;\n }\n\n async live(): Promise<CatalogCache> {\n const now = Date.now();\n if (this.cache) {\n const age = now - this.cache.fetchedAt;\n if (age < CATALOG_TTL_MS) {\n return this.cache;\n }\n if (age < CATALOG_STALE_MAX_MS) {\n void this.refresh().catch((err) =>\n this.opts.log(\n `catalog refresh failed: ${err instanceof Error ? err.message : String(err)}`,\n ),\n );\n return this.cache;\n }\n }\n return this.refresh();\n }\n\n private refresh(): Promise<CatalogCache> {\n if (this.inflight) {\n return this.inflight;\n }\n this.inflight = (async () => {\n const cred = await this.opts.credential();\n const [lists, metadata] = await Promise.all([\n Promise.all(\n this.catalogs(cred).map(async (catalog) => ({\n catalog,\n list: await this.fetchModels(catalog, cred.apiKey),\n })),\n ),\n this.fetchMetadata(),\n ]);\n const byModel = new Map<string, CatalogModel>();\n const ids: string[] = [];\n const metadataByModel = new Map(\n metadata.map((model) => [`${model.source ?? 'zen'}:${model.id.toLowerCase()}`, model]),\n );\n for (const { catalog, list } of lists) {\n for (const live of list) {\n if (byModel.has(live.id)) {\n continue;\n }\n const extra = metadataByModel.get(`${catalog}:${live.id.toLowerCase()}`);\n byModel.set(live.id, {\n ...extra,\n ...live,\n id: live.id,\n protocol: live.protocol ?? extra?.protocol,\n providerPackage: live.providerPackage ?? extra?.providerPackage,\n catalog,\n });\n ids.push(live.id);\n }\n }\n const next = { byModel, ids, fetchedAt: Date.now() };\n this.cache = next;\n this.opts.log(`models list ← ${ids.length} (zen+go)`);\n return next;\n })().finally(() => {\n this.inflight = undefined;\n });\n return this.inflight;\n }\n\n private catalogs(cred: OpenCodeCredential): OpenCodeCatalogKind[] {\n return this.forcedUpstream || cred.mode === 'public' ? ['zen'] : ['zen', 'go'];\n }\n\n private async fetchModels(\n catalog: OpenCodeCatalogKind,\n apiKey: string,\n ): Promise<OpenCodeModelDescriptor[]> {\n const base = this.baseFor(catalog);\n for (let attempt = 1; attempt <= 2; attempt++) {\n try {\n const response = await this.opts.egress.fetch(\n `${base}/models`,\n {\n headers: {\n accept: 'application/json',\n authorization: `Bearer ${apiKey}`,\n 'x-opencode-client': 'desktop',\n 'user-agent': USER_AGENT,\n },\n signal: AbortSignal.timeout(MODELS_FETCH_MS),\n },\n { operation: 'catalog' },\n );\n if (response.ok) {\n return parseOpenCodeModelDescriptors(await response.json());\n }\n this.opts.log(\n `models ${catalog} ← ${response.status}${attempt === 1 ? ' (retrying)' : ''}`,\n );\n if (![502, 503, 504].includes(response.status) || attempt === 2) {\n return [];\n }\n } catch (err) {\n this.opts.log(`models ${catalog} ✗ ${err instanceof Error ? err.message : String(err)}`);\n if (attempt === 2) {\n return [];\n }\n await new Promise((resolve) => setTimeout(resolve, 100));\n }\n }\n return [];\n }\n\n private async fetchMetadata(): Promise<OpenCodeModelDescriptor[]> {\n if (!this.metadataUrl) {\n return [];\n }\n try {\n const response = await this.opts.egress.fetch(\n this.metadataUrl,\n {\n headers: { accept: 'application/json', 'user-agent': USER_AGENT },\n signal: AbortSignal.timeout(MODELS_FETCH_MS),\n },\n { operation: 'catalog' },\n );\n if (!response.ok) {\n this.opts.log(`model metadata ← ${response.status} (using live ids without enrichment)`);\n return [];\n }\n return parseOpenCodeProviderMetadata(await response.json());\n } catch (err) {\n this.opts.log(\n `model metadata ✗ ${err instanceof Error ? err.message : String(err)} (using live ids without enrichment)`,\n );\n return [];\n }\n }\n}\n\nfunction strip(value: string | undefined): string | undefined {\n return value?.replace(/\\/$/, '');\n}\n"],"mappings":";;;;AAgCA,IAAa,eAAb,MAA0D;CAQ3B;CAP7B;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,MAA+C;EAA9B,KAAA,OAAA;EAC3B,KAAK,iBAAiB,MAAM,KAAK,cAAc;EAC/C,KAAK,UAAU,MAAM,KAAK,eAAA,4BAAoC;EAC9D,KAAK,SAAS,MAAM,KAAK,cAAA,+BAAkC;EAC3D,KAAK,cACH,KAAK,gBAAgB,QACjB,KAAA,IACA,MACE,KAAK,gBACF,KAAK,kBAAkB,KAAK,eAAe,KAAK,aAC7C,KAAA,IAAA,8BAER;CACR;CAEA,QAAQ,SAAsC;EAC5C,IAAI,KAAK,gBACP,OAAO,KAAK;EAEd,OAAO,YAAY,OAAO,KAAK,SAAS,KAAK;CAC/C;CAEA,MAAM,MAAM,SAA0E;EAEpF,MAAM,WAAU,MADI,KAAK,KAAK,EAAA,CACR,QAAQ,IAAI,OAAO,CAAC,EAAE,WAAW;EACvD,OAAO;GAAE;GAAS,MAAM,KAAK,QAAQ,OAAO;EAAE;CAChD;;;;;;;CAQA,aAAmB;EACjB,KAAK,QAAQ,KAAA;EACb,KAAK,WAAW,KAAA;CAClB;CAEA,MAAM,OAA8B;EAClC,MAAM,MAAM,KAAK,IAAI;EACrB,IAAI,KAAK,OAAO;GACd,MAAM,MAAM,MAAM,KAAK,MAAM;GAC7B,IAAI,MAAA,KACF,OAAO,KAAK;GAEd,IAAI,MAAA,MAA4B;IAC9B,KAAU,QAAQ,CAAC,CAAC,OAAO,QACzB,KAAK,KAAK,IACR,2BAA2B,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,GAC5E,CACF;IACA,OAAO,KAAK;GACd;EACF;EACA,OAAO,KAAK,QAAQ;CACtB;CAEA,UAAyC;EACvC,IAAI,KAAK,UACP,OAAO,KAAK;EAEd,KAAK,YAAY,YAAY;GAC3B,MAAM,OAAO,MAAM,KAAK,KAAK,WAAW;GACxC,MAAM,CAAC,OAAO,YAAY,MAAM,QAAQ,IAAI,CAC1C,QAAQ,IACN,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,aAAa;IAC1C;IACA,MAAM,MAAM,KAAK,YAAY,SAAS,KAAK,MAAM;GACnD,EAAE,CACJ,GACA,KAAK,cAAc,CACrB,CAAC;GACD,MAAM,0BAAU,IAAI,IAA0B;GAC9C,MAAM,MAAgB,CAAC;GACvB,MAAM,kBAAkB,IAAI,IAC1B,SAAS,KAAK,UAAU,CAAC,GAAG,MAAM,UAAU,MAAM,GAAG,MAAM,GAAG,YAAY,KAAK,KAAK,CAAC,CACvF;GACA,KAAK,MAAM,EAAE,SAAS,UAAU,OAC9B,KAAK,MAAM,QAAQ,MAAM;IACvB,IAAI,QAAQ,IAAI,KAAK,EAAE,GACrB;IAEF,MAAM,QAAQ,gBAAgB,IAAI,GAAG,QAAQ,GAAG,KAAK,GAAG,YAAY,GAAG;IACvE,QAAQ,IAAI,KAAK,IAAI;KACnB,GAAG;KACH,GAAG;KACH,IAAI,KAAK;KACT,UAAU,KAAK,YAAY,OAAO;KAClC,iBAAiB,KAAK,mBAAmB,OAAO;KAChD;IACF,CAAC;IACD,IAAI,KAAK,KAAK,EAAE;GAClB;GAEF,MAAM,OAAO;IAAE;IAAS;IAAK,WAAW,KAAK,IAAI;GAAE;GACnD,KAAK,QAAQ;GACb,KAAK,KAAK,IAAI,iBAAiB,IAAI,OAAO,UAAU;GACpD,OAAO;EACT,EAAA,CAAG,CAAC,CAAC,cAAc;GACjB,KAAK,WAAW,KAAA;EAClB,CAAC;EACD,OAAO,KAAK;CACd;CAEA,SAAiB,MAAiD;EAChE,OAAO,KAAK,kBAAkB,KAAK,SAAS,WAAW,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI;CAC/E;CAEA,MAAc,YACZ,SACA,QACoC;EACpC,MAAM,OAAO,KAAK,QAAQ,OAAO;EACjC,KAAK,IAAI,UAAU,GAAG,WAAW,GAAG,WAClC,IAAI;GACF,MAAM,WAAW,MAAM,KAAK,KAAK,OAAO,MACtC,GAAG,KAAK,UACR;IACE,SAAS;KACP,QAAQ;KACR,eAAe,UAAU;KACzB,qBAAqB;KACrB,cAAc;IAChB;IACA,QAAQ,YAAY,QAAQ,eAAe;GAC7C,GACA,EAAE,WAAW,UAAU,CACzB;GACA,IAAI,SAAS,IACX,OAAO,8BAA8B,MAAM,SAAS,KAAK,CAAC;GAE5D,KAAK,KAAK,IACR,UAAU,QAAQ,KAAK,SAAS,SAAS,YAAY,IAAI,gBAAgB,IAC3E;GACA,IAAI,CAAC;IAAC;IAAK;IAAK;GAAG,CAAC,CAAC,SAAS,SAAS,MAAM,KAAK,YAAY,GAC5D,OAAO,CAAC;EAEZ,SAAS,KAAK;GACZ,KAAK,KAAK,IAAI,UAAU,QAAQ,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,GAAG;GACvF,IAAI,YAAY,GACd,OAAO,CAAC;GAEV,MAAM,IAAI,SAAS,YAAY,WAAW,SAAS,GAAG,CAAC;EACzD;EAEF,OAAO,CAAC;CACV;CAEA,MAAc,gBAAoD;EAChE,IAAI,CAAC,KAAK,aACR,OAAO,CAAC;EAEV,IAAI;GACF,MAAM,WAAW,MAAM,KAAK,KAAK,OAAO,MACtC,KAAK,aACL;IACE,SAAS;KAAE,QAAQ;KAAoB,cAAc;IAAW;IAChE,QAAQ,YAAY,QAAQ,eAAe;GAC7C,GACA,EAAE,WAAW,UAAU,CACzB;GACA,IAAI,CAAC,SAAS,IAAI;IAChB,KAAK,KAAK,IAAI,oBAAoB,SAAS,OAAO,qCAAqC;IACvF,OAAO,CAAC;GACV;GACA,OAAO,8BAA8B,MAAM,SAAS,KAAK,CAAC;EAC5D,SAAS,KAAK;GACZ,KAAK,KAAK,IACR,oBAAoB,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,EAAE,qCACvE;GACA,OAAO,CAAC;EACV;CACF;AACF;AAEA,SAAS,MAAM,OAA+C;CAC5D,OAAO,OAAO,QAAQ,OAAO,EAAE;AACjC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode-proxy/cli.ts"],"names":[],"mappings":"AAgBA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFvE"}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { expandHome } from "../../utils/fs.js";
|
|
2
|
-
import { assertLoopbackHost } from "../../utils/network.js";
|
|
3
|
-
import { installProxyShutdown } from "../proxy-shared.js";
|
|
4
|
-
import { listenOpenCodeProxy } from "./server.js";
|
|
5
|
-
import { appendFileSync } from "node:fs";
|
|
6
|
-
import { join } from "node:path";
|
|
7
|
-
import { homedir } from "node:os";
|
|
8
|
-
import { parseArgs } from "node:util";
|
|
9
|
-
//#region src/providers/opencode-proxy/cli.ts
|
|
10
|
-
/** Internal `anypick proxy serve opencode` process entry. */
|
|
11
|
-
var defaultAuth = join(process.env.XDG_DATA_HOME ?? join(homedir(), ".local", "share"), "opencode", "auth.json");
|
|
12
|
-
async function runOpenCodeProxyCli(args) {
|
|
13
|
-
const { values } = parseArgs({
|
|
14
|
-
args,
|
|
15
|
-
options: {
|
|
16
|
-
port: {
|
|
17
|
-
type: "string",
|
|
18
|
-
short: "p",
|
|
19
|
-
default: "4120"
|
|
20
|
-
},
|
|
21
|
-
host: {
|
|
22
|
-
type: "string",
|
|
23
|
-
default: "127.0.0.1"
|
|
24
|
-
},
|
|
25
|
-
"auth-path": {
|
|
26
|
-
type: "string",
|
|
27
|
-
default: ""
|
|
28
|
-
},
|
|
29
|
-
"auth-paths": {
|
|
30
|
-
type: "string",
|
|
31
|
-
default: ""
|
|
32
|
-
},
|
|
33
|
-
"auth-account-names": {
|
|
34
|
-
type: "string",
|
|
35
|
-
default: ""
|
|
36
|
-
},
|
|
37
|
-
"auth-mode": {
|
|
38
|
-
type: "string",
|
|
39
|
-
default: "auto"
|
|
40
|
-
},
|
|
41
|
-
"quota-guard": {
|
|
42
|
-
type: "boolean",
|
|
43
|
-
default: false
|
|
44
|
-
},
|
|
45
|
-
"quota-guard-state": {
|
|
46
|
-
type: "string",
|
|
47
|
-
default: ""
|
|
48
|
-
},
|
|
49
|
-
"quota-guard-cooldown-ms": {
|
|
50
|
-
type: "string",
|
|
51
|
-
default: "3600000"
|
|
52
|
-
},
|
|
53
|
-
upstream: {
|
|
54
|
-
type: "string",
|
|
55
|
-
default: ""
|
|
56
|
-
},
|
|
57
|
-
"model-metadata-url": {
|
|
58
|
-
type: "string",
|
|
59
|
-
default: ""
|
|
60
|
-
},
|
|
61
|
-
"proxy-token": {
|
|
62
|
-
type: "string",
|
|
63
|
-
default: ""
|
|
64
|
-
},
|
|
65
|
-
quiet: {
|
|
66
|
-
type: "boolean",
|
|
67
|
-
short: "q",
|
|
68
|
-
default: false
|
|
69
|
-
},
|
|
70
|
-
help: {
|
|
71
|
-
type: "boolean",
|
|
72
|
-
short: "h",
|
|
73
|
-
default: false
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
allowPositionals: true
|
|
77
|
-
});
|
|
78
|
-
if (values.help) {
|
|
79
|
-
process.stdout.write(proxyHelp());
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const port = Number(values.port);
|
|
83
|
-
if (!Number.isInteger(port) || port < 0 || port > 65535) throw new Error(`Invalid port: ${values.port}`);
|
|
84
|
-
const host = values.host ?? "127.0.0.1";
|
|
85
|
-
assertLoopbackHost(host);
|
|
86
|
-
const authMode = values["auth-mode"];
|
|
87
|
-
if (authMode !== "auto" && authMode !== "public" && authMode !== "api") throw new Error(`Invalid auth mode: ${authMode}`);
|
|
88
|
-
const authPath = expandHome(values["auth-path"] || defaultAuth);
|
|
89
|
-
const authPaths = (values["auth-paths"] || "").split(",").map((path) => path.trim()).filter(Boolean).map(expandHome);
|
|
90
|
-
const authAccountNames = (values["auth-account-names"] || "").split(",").map((name) => name.trim()).filter(Boolean);
|
|
91
|
-
const quotaGuardCooldownMs = Number(values["quota-guard-cooldown-ms"]);
|
|
92
|
-
if (!Number.isFinite(quotaGuardCooldownMs) || quotaGuardCooldownMs < 1e3) throw new Error(`Invalid quota guard cooldown: ${values["quota-guard-cooldown-ms"]}`);
|
|
93
|
-
const metadataSetting = values["model-metadata-url"] || process.env.OPENCODE_MODEL_METADATA_URL;
|
|
94
|
-
const modelMetadataUrl = metadataSetting === "none" ? false : metadataSetting || void 0;
|
|
95
|
-
const log = values.quiet ? () => {} : makeLog();
|
|
96
|
-
const { endpoint, server } = await listenOpenCodeProxy({
|
|
97
|
-
host,
|
|
98
|
-
port,
|
|
99
|
-
authPath,
|
|
100
|
-
authPaths,
|
|
101
|
-
authAccountNames: authAccountNames.length ? authAccountNames : void 0,
|
|
102
|
-
authMode,
|
|
103
|
-
upstream: values.upstream || void 0,
|
|
104
|
-
token: values["proxy-token"] || process.env.ANYPICK_PROXY_TOKEN || void 0,
|
|
105
|
-
modelMetadataUrl,
|
|
106
|
-
quiet: values.quiet,
|
|
107
|
-
quotaGuard: {
|
|
108
|
-
enabled: values["quota-guard"] === true,
|
|
109
|
-
cooldownMs: Math.floor(quotaGuardCooldownMs),
|
|
110
|
-
statePath: values["quota-guard-state"] ? expandHome(values["quota-guard-state"]) : void 0,
|
|
111
|
-
accountNames: authAccountNames,
|
|
112
|
-
providerId: "opencode"
|
|
113
|
-
},
|
|
114
|
-
log
|
|
115
|
-
});
|
|
116
|
-
process.stdout.write(`anypick-opencode-proxy listening on ${endpoint}\n`);
|
|
117
|
-
log(`listening on ${endpoint}`);
|
|
118
|
-
log(`auth: ${authPath}`);
|
|
119
|
-
if (authPaths.length > 0) log(`auth pool: ${authPaths.length + 1} members`);
|
|
120
|
-
log("catalogs: zen + go (route by model)");
|
|
121
|
-
if (values.upstream) log(`upstream override: ${values.upstream}`);
|
|
122
|
-
if (metadataSetting) log(`model metadata: ${metadataSetting}`);
|
|
123
|
-
installProxyShutdown(server);
|
|
124
|
-
}
|
|
125
|
-
function makeLog() {
|
|
126
|
-
return (line) => {
|
|
127
|
-
const clean = line.replace(/^\s+/, "");
|
|
128
|
-
const ts = (/* @__PURE__ */ new Date()).toISOString().slice(11, 19);
|
|
129
|
-
process.stderr.write(`${ts} ${tagFor(clean)} ${clean}\n`);
|
|
130
|
-
const extraLog = process.env.ANYPICK_PROXY_LOG;
|
|
131
|
-
if (extraLog && process.stderr.isTTY) try {
|
|
132
|
-
appendFileSync(extraLog, `${ts} ${tagFor(clean)} ${clean}\n`);
|
|
133
|
-
} catch {}
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
function tagFor(line) {
|
|
137
|
-
if (line.startsWith("✗")) return "ERR ";
|
|
138
|
-
if (line.startsWith("↻")) return "RETRY";
|
|
139
|
-
if (line.startsWith("✓")) return "OK ";
|
|
140
|
-
if (line.includes("←")) return "RECV";
|
|
141
|
-
if (line.startsWith("models")) return "CAT ";
|
|
142
|
-
return "INFO";
|
|
143
|
-
}
|
|
144
|
-
function proxyHelp() {
|
|
145
|
-
return `anypick proxy serve opencode — OpenAI + Anthropic via OpenCode Zen+Go
|
|
146
|
-
|
|
147
|
-
--port <n> Listen port (default 4120)
|
|
148
|
-
--host <host> Listen host (default 127.0.0.1)
|
|
149
|
-
--auth-path <path> Path to OpenCode auth.json
|
|
150
|
-
--auth-paths <paths> Comma-separated auth.json files for pool failover
|
|
151
|
-
--auth-account-names Comma-separated saved account labels for pool audit
|
|
152
|
-
--auth-mode <mode> auto, public, or api (default auto)
|
|
153
|
-
--quota-guard Fail over only on confirmed credential quota errors
|
|
154
|
-
--upstream <url> Force a single upstream (tests)
|
|
155
|
-
--model-metadata-url Override dynamic model metadata URL
|
|
156
|
-
-q, --quiet Less logging
|
|
157
|
-
`;
|
|
158
|
-
}
|
|
159
|
-
//#endregion
|
|
160
|
-
export { runOpenCodeProxyCli };
|
|
161
|
-
|
|
162
|
-
//# sourceMappingURL=cli.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","names":[],"sources":["../../../src/providers/opencode-proxy/cli.ts"],"sourcesContent":["/** Internal `anypick proxy serve opencode` process entry. */\nimport { appendFileSync } from 'node:fs';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport { parseArgs } from 'node:util';\nimport { expandHome } from '../../utils/fs';\nimport { assertLoopbackHost } from '../../utils/network';\nimport { installProxyShutdown } from '../proxy-shared';\nimport { listenOpenCodeProxy } from './server';\n\nconst defaultAuth = join(\n process.env.XDG_DATA_HOME ?? join(homedir(), '.local', 'share'),\n 'opencode',\n 'auth.json',\n);\n\nexport async function runOpenCodeProxyCli(args: string[]): Promise<void> {\n const { values } = parseArgs({\n args,\n options: {\n port: { type: 'string', short: 'p', default: '4120' },\n host: { type: 'string', default: '127.0.0.1' },\n 'auth-path': { type: 'string', default: '' },\n 'auth-paths': { type: 'string', default: '' },\n 'auth-account-names': { type: 'string', default: '' },\n 'auth-mode': { type: 'string', default: 'auto' },\n 'quota-guard': { type: 'boolean', default: false },\n 'quota-guard-state': { type: 'string', default: '' },\n 'quota-guard-cooldown-ms': { type: 'string', default: '3600000' },\n upstream: { type: 'string', default: '' },\n 'model-metadata-url': { type: 'string', default: '' },\n 'proxy-token': { type: 'string', default: '' },\n quiet: { type: 'boolean', short: 'q', default: false },\n help: { type: 'boolean', short: 'h', default: false },\n },\n allowPositionals: true,\n });\n if (values.help) {\n process.stdout.write(proxyHelp());\n return;\n }\n\n const port = Number(values.port);\n if (!Number.isInteger(port) || port < 0 || port > 65535) {\n throw new Error(`Invalid port: ${values.port}`);\n }\n const host = values.host ?? '127.0.0.1';\n assertLoopbackHost(host);\n const authMode = values['auth-mode'];\n if (authMode !== 'auto' && authMode !== 'public' && authMode !== 'api') {\n throw new Error(`Invalid auth mode: ${authMode}`);\n }\n\n const authPath = expandHome(values['auth-path'] || defaultAuth);\n const authPaths = (values['auth-paths'] || '')\n .split(',')\n .map((path) => path.trim())\n .filter(Boolean)\n .map(expandHome);\n const authAccountNames = (values['auth-account-names'] || '')\n .split(',')\n .map((name) => name.trim())\n .filter(Boolean);\n const quotaGuardCooldownMs = Number(values['quota-guard-cooldown-ms']);\n if (!Number.isFinite(quotaGuardCooldownMs) || quotaGuardCooldownMs < 1_000) {\n throw new Error(`Invalid quota guard cooldown: ${values['quota-guard-cooldown-ms']}`);\n }\n const metadataSetting = values['model-metadata-url'] || process.env.OPENCODE_MODEL_METADATA_URL;\n const modelMetadataUrl = metadataSetting === 'none' ? false : metadataSetting || undefined;\n const log = values.quiet ? () => {} : makeLog();\n const { endpoint, server } = await listenOpenCodeProxy({\n host,\n port,\n authPath,\n authPaths,\n authAccountNames: authAccountNames.length ? authAccountNames : undefined,\n authMode,\n upstream: values.upstream || undefined,\n token: values['proxy-token'] || process.env.ANYPICK_PROXY_TOKEN || undefined,\n modelMetadataUrl,\n quiet: values.quiet,\n quotaGuard: {\n enabled: values['quota-guard'] === true,\n cooldownMs: Math.floor(quotaGuardCooldownMs),\n statePath: values['quota-guard-state'] ? expandHome(values['quota-guard-state']) : undefined,\n accountNames: authAccountNames,\n providerId: 'opencode',\n },\n log,\n });\n\n process.stdout.write(`anypick-opencode-proxy listening on ${endpoint}\\n`);\n log(`listening on ${endpoint}`);\n log(`auth: ${authPath}`);\n if (authPaths.length > 0) {\n log(`auth pool: ${authPaths.length + 1} members`);\n }\n log('catalogs: zen + go (route by model)');\n if (values.upstream) {\n log(`upstream override: ${values.upstream}`);\n }\n if (metadataSetting) {\n log(`model metadata: ${metadataSetting}`);\n }\n installProxyShutdown(server);\n}\n\nfunction makeLog(): (line: string) => void {\n return (line) => {\n const clean = line.replace(/^\\s+/, '');\n const ts = new Date().toISOString().slice(11, 19);\n process.stderr.write(`${ts} ${tagFor(clean)} ${clean}\\n`);\n const extraLog = process.env.ANYPICK_PROXY_LOG;\n if (extraLog && process.stderr.isTTY) {\n try {\n appendFileSync(extraLog, `${ts} ${tagFor(clean)} ${clean}\\n`);\n } catch {\n // ignore secondary log failures\n }\n }\n };\n}\n\nfunction tagFor(line: string): string {\n if (line.startsWith('✗')) {\n return 'ERR ';\n }\n if (line.startsWith('↻')) {\n return 'RETRY';\n }\n if (line.startsWith('✓')) {\n return 'OK ';\n }\n if (line.includes('←')) {\n return 'RECV';\n }\n if (line.startsWith('models')) {\n return 'CAT ';\n }\n return 'INFO';\n}\n\nfunction proxyHelp(): string {\n return `anypick proxy serve opencode — OpenAI + Anthropic via OpenCode Zen+Go\n\n --port <n> Listen port (default 4120)\n --host <host> Listen host (default 127.0.0.1)\n --auth-path <path> Path to OpenCode auth.json\n --auth-paths <paths> Comma-separated auth.json files for pool failover\n --auth-account-names Comma-separated saved account labels for pool audit\n --auth-mode <mode> auto, public, or api (default auto)\n --quota-guard Fail over only on confirmed credential quota errors\n --upstream <url> Force a single upstream (tests)\n --model-metadata-url Override dynamic model metadata URL\n -q, --quiet Less logging\n`;\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const COMPAT_LABEL = "OpenAI + Anthropic API";
|
|
2
|
-
export declare const USER_AGENT = "anypick-opencode-proxy/0.8";
|
|
3
|
-
export declare const DEFAULT_MODEL_METADATA_URL = "https://models.dev/api.json";
|
|
4
|
-
export declare const CATALOG_TTL_MS: number;
|
|
5
|
-
export declare const CATALOG_STALE_MAX_MS: number;
|
|
6
|
-
export declare const MODELS_FETCH_MS = 8000;
|
|
7
|
-
export declare const UPSTREAM_TIMEOUT_MS = 600000;
|
|
8
|
-
export declare const STREAM_IDLE_MS = 25000;
|
|
9
|
-
export declare const MAX_BODY_BYTES: number;
|
|
10
|
-
export declare const TRANSIENT_UPSTREAM_ATTEMPTS = 3;
|
|
11
|
-
export declare const TRANSIENT_UPSTREAM_BACKOFF_MS: readonly [200, 500];
|
|
12
|
-
export declare const FREE_TIER_IP_COOLDOWN_MS: number;
|
|
13
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode-proxy/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,2BAA2B,CAAC;AACrD,eAAO,MAAM,UAAU,+BAA+B,CAAC;AACvD,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AACxE,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAc,CAAC;AAChD,eAAO,MAAM,eAAe,OAAQ,CAAC;AACrC,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAC3C,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,cAAc,QAAmB,CAAC;AAC/C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,6BAA6B,YAAI,GAAG,EAAE,GAAG,CAAU,CAAC;AACjE,eAAO,MAAM,wBAAwB,QAAc,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/providers/opencode-proxy/constants.ts
|
|
2
|
-
var USER_AGENT = "anypick-opencode-proxy/0.8";
|
|
3
|
-
var DEFAULT_MODEL_METADATA_URL = "https://models.dev/api.json";
|
|
4
|
-
var CATALOG_TTL_MS = 10 * 6e4;
|
|
5
|
-
var CATALOG_STALE_MAX_MS = 60 * 6e4;
|
|
6
|
-
var MODELS_FETCH_MS = 8e3;
|
|
7
|
-
var UPSTREAM_TIMEOUT_MS = 6e5;
|
|
8
|
-
var STREAM_IDLE_MS = 25e3;
|
|
9
|
-
var MAX_BODY_BYTES = 32 * 1024 * 1024;
|
|
10
|
-
var TRANSIENT_UPSTREAM_BACKOFF_MS = [200, 500];
|
|
11
|
-
var FREE_TIER_IP_COOLDOWN_MS = 15 * 6e4;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { CATALOG_STALE_MAX_MS, CATALOG_TTL_MS, DEFAULT_MODEL_METADATA_URL, FREE_TIER_IP_COOLDOWN_MS, MAX_BODY_BYTES, MODELS_FETCH_MS, STREAM_IDLE_MS, TRANSIENT_UPSTREAM_BACKOFF_MS, UPSTREAM_TIMEOUT_MS, USER_AGENT };
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":[],"sources":["../../../src/providers/opencode-proxy/constants.ts"],"sourcesContent":["export const COMPAT_LABEL = 'OpenAI + Anthropic API';\nexport const USER_AGENT = 'anypick-opencode-proxy/0.8';\nexport const DEFAULT_MODEL_METADATA_URL = 'https://models.dev/api.json';\nexport const CATALOG_TTL_MS = 10 * 60_000;\nexport const CATALOG_STALE_MAX_MS = 60 * 60_000;\nexport const MODELS_FETCH_MS = 8_000;\nexport const UPSTREAM_TIMEOUT_MS = 600_000;\nexport const STREAM_IDLE_MS = 25_000;\nexport const MAX_BODY_BYTES = 32 * 1024 * 1024;\nexport const TRANSIENT_UPSTREAM_ATTEMPTS = 3;\nexport const TRANSIENT_UPSTREAM_BACKOFF_MS = [200, 500] as const;\nexport const FREE_TIER_IP_COOLDOWN_MS = 15 * 60_000;\n"],"mappings":";AACA,IAAa,aAAa;AAC1B,IAAa,6BAA6B;AAC1C,IAAa,iBAAiB,KAAK;AACnC,IAAa,uBAAuB,KAAK;AACzC,IAAa,kBAAkB;AAC/B,IAAa,sBAAsB;AACnC,IAAa,iBAAiB;AAC9B,IAAa,iBAAiB,KAAK,OAAO;AAE1C,IAAa,gCAAgC,CAAC,KAAK,GAAG;AACtD,IAAa,2BAA2B,KAAK"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAI Responses clients (including Codex) classify this exact error code as
|
|
3
|
-
* a context-window overflow and use it to enter their compaction flow.
|
|
4
|
-
*/
|
|
5
|
-
export declare const CONTEXT_WINDOW_ERROR_CODE = "context_length_exceeded";
|
|
6
|
-
export declare const OPENAI_CONTEXT_WINDOW_MESSAGE = "Your input exceeds the context window of this model. Please adjust your input and try again.";
|
|
7
|
-
/** Return true for provider error variants that mean the prompt is too large. */
|
|
8
|
-
export declare function isContextWindowError(raw: string): boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Convert a context overflow into the error envelope expected by the selected
|
|
11
|
-
* compatibility protocol. The original upstream body is deliberately kept
|
|
12
|
-
* out of the OpenAI message so Codex can match the stable error code/message.
|
|
13
|
-
*/
|
|
14
|
-
export declare function normalizeContextWindowError(response: Response, protocol: 'openai' | 'anthropic'): Promise<Response>;
|
|
15
|
-
/**
|
|
16
|
-
* Codex's Responses SSE parser maps `response.failed` with this code to its
|
|
17
|
-
* ContextWindowExceeded error, which is the signal that triggers compaction.
|
|
18
|
-
*/
|
|
19
|
-
export declare function openAIResponsesContextWindowError(): Response;
|
|
20
|
-
export declare function anthropicContextWindowMessage(raw: string): string;
|
|
21
|
-
/** Build the standard Anthropic HTTP error envelope used by Claude Code. */
|
|
22
|
-
export declare function anthropicContextWindowErrorBody(raw: string, requestId?: string): {
|
|
23
|
-
type: 'error';
|
|
24
|
-
error: {
|
|
25
|
-
type: 'invalid_request_error';
|
|
26
|
-
code: typeof CONTEXT_WINDOW_ERROR_CODE;
|
|
27
|
-
message: string;
|
|
28
|
-
};
|
|
29
|
-
request_id: string;
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=context-budget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-budget.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode-proxy/context-budget.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAEnE,eAAO,MAAM,6BAA6B,iGACsD,CAAC;AAEjG,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAwCzD;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAiCnB;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,IAAI,QAAQ,CA4B5D;AA2ED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4BjE;AAED,4EAA4E;AAC5E,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB;IACD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,IAAI,EAAE,uBAAuB,CAAC;QAC9B,IAAI,EAAE,OAAO,yBAAyB,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB,CAgBA"}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { randomBytes } from "node:crypto";
|
|
2
|
-
//#region src/providers/opencode-proxy/context-budget.ts
|
|
3
|
-
/**
|
|
4
|
-
* OpenAI Responses clients (including Codex) classify this exact error code as
|
|
5
|
-
* a context-window overflow and use it to enter their compaction flow.
|
|
6
|
-
*/
|
|
7
|
-
var CONTEXT_WINDOW_ERROR_CODE = "context_length_exceeded";
|
|
8
|
-
var OPENAI_CONTEXT_WINDOW_MESSAGE = "Your input exceeds the context window of this model. Please adjust your input and try again.";
|
|
9
|
-
/** Return true for provider error variants that mean the prompt is too large. */
|
|
10
|
-
function isContextWindowError(raw) {
|
|
11
|
-
const payload = parseErrorPayload(raw);
|
|
12
|
-
const error = jsonRecord(payload?.error);
|
|
13
|
-
const responseError = jsonRecord(jsonRecord(payload?.response)?.error);
|
|
14
|
-
if (error?.code === "context_length_exceeded" || error?.type === "context_length_exceeded" || payload?.code === "context_length_exceeded" || payload?.type === "context_length_exceeded" || responseError?.code === "context_length_exceeded" || responseError?.type === "context_length_exceeded") return true;
|
|
15
|
-
const message = errorMessage(payload, raw);
|
|
16
|
-
return [
|
|
17
|
-
/prompt is too long/i,
|
|
18
|
-
/input is too long for requested model/i,
|
|
19
|
-
/exceeds the context window/i,
|
|
20
|
-
/input token count.*exceeds the maximum/i,
|
|
21
|
-
/tokens in request more than max tokens allowed/i,
|
|
22
|
-
/maximum prompt length is \d+/i,
|
|
23
|
-
/reduce the length of (?:the )?messages/i,
|
|
24
|
-
/maximum context length is \d+ tokens/i,
|
|
25
|
-
/exceeds the limit of \d+/i,
|
|
26
|
-
/exceeds the available context size/i,
|
|
27
|
-
/greater than the context length/i,
|
|
28
|
-
/context window exceeds limit/i,
|
|
29
|
-
/exceeded model token limit/i,
|
|
30
|
-
/context[_ ]length[_ ]exceeded/i,
|
|
31
|
-
/request entity too large/i,
|
|
32
|
-
/context length is only \d+ tokens/i,
|
|
33
|
-
/input length.*exceeds.*context length/i,
|
|
34
|
-
/input length and max_tokens exceed context limit/i,
|
|
35
|
-
/prompt too long; exceeded (?:max )?context length/i,
|
|
36
|
-
/too large for model with \d+ maximum context length/i,
|
|
37
|
-
/model_context_window_exceeded/i
|
|
38
|
-
].some((pattern) => pattern.test(message));
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Convert a context overflow into the error envelope expected by the selected
|
|
42
|
-
* compatibility protocol. The original upstream body is deliberately kept
|
|
43
|
-
* out of the OpenAI message so Codex can match the stable error code/message.
|
|
44
|
-
*/
|
|
45
|
-
async function normalizeContextWindowError(response, protocol) {
|
|
46
|
-
if (response.status !== 400 && response.status !== 413) return response;
|
|
47
|
-
const raw = await response.clone().text();
|
|
48
|
-
if (!isContextWindowError(raw)) return response;
|
|
49
|
-
const body = protocol === "openai" ? { error: {
|
|
50
|
-
message: OPENAI_CONTEXT_WINDOW_MESSAGE,
|
|
51
|
-
type: "invalid_request_error",
|
|
52
|
-
param: "input",
|
|
53
|
-
code: CONTEXT_WINDOW_ERROR_CODE
|
|
54
|
-
} } : anthropicContextWindowErrorBody(raw, response.headers.get("request-id") ?? void 0);
|
|
55
|
-
const headers = new Headers(response.headers);
|
|
56
|
-
headers.delete("content-length");
|
|
57
|
-
headers.delete("content-encoding");
|
|
58
|
-
headers.set("content-type", "application/json; charset=utf-8");
|
|
59
|
-
if ("request_id" in body) headers.set("request-id", body.request_id);
|
|
60
|
-
return new Response(JSON.stringify(body), {
|
|
61
|
-
status: 400,
|
|
62
|
-
headers
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Codex's Responses SSE parser maps `response.failed` with this code to its
|
|
67
|
-
* ContextWindowExceeded error, which is the signal that triggers compaction.
|
|
68
|
-
*/
|
|
69
|
-
function openAIResponsesContextWindowError() {
|
|
70
|
-
const data = {
|
|
71
|
-
type: "response.failed",
|
|
72
|
-
sequence_number: 0,
|
|
73
|
-
response: {
|
|
74
|
-
id: `resp_context_${Date.now().toString(36)}`,
|
|
75
|
-
object: "response",
|
|
76
|
-
created_at: Math.floor(Date.now() / 1e3),
|
|
77
|
-
status: "failed",
|
|
78
|
-
background: false,
|
|
79
|
-
error: {
|
|
80
|
-
code: CONTEXT_WINDOW_ERROR_CODE,
|
|
81
|
-
message: OPENAI_CONTEXT_WINDOW_MESSAGE
|
|
82
|
-
},
|
|
83
|
-
usage: null,
|
|
84
|
-
user: null,
|
|
85
|
-
metadata: {}
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
return new Response(`event: response.failed\ndata: ${JSON.stringify(data)}\n\n`, {
|
|
89
|
-
status: 200,
|
|
90
|
-
headers: {
|
|
91
|
-
"content-type": "text/event-stream; charset=utf-8",
|
|
92
|
-
"cache-control": "no-cache, no-transform",
|
|
93
|
-
connection: "keep-alive",
|
|
94
|
-
"x-accel-buffering": "no"
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
function parseContextBudgetError(raw) {
|
|
99
|
-
const normalized = errorMessage(parseErrorPayload(raw), raw).replace(/,/g, "");
|
|
100
|
-
const arithmetic = normalized.match(/(?:context (?:limit|length)[^:]*:\s*)?(\d+)\s*\+\s*(\d+)\s*>\s*(\d+)/i);
|
|
101
|
-
const contextWindow = arithmetic?.[3] ?? normalized.match(/maximum context length is\s+(\d+)\s+tokens/i)?.[1] ?? normalized.match(/maximum number of tokens allowed\s*\(?\s*(\d+)\s*\)?/i)?.[1] ?? normalized.match(/context length is only\s+(\d+)\s+tokens/i)?.[1] ?? normalized.match(/context (?:limit|length)[^\d]*(\d+)\s*(?:tokens?)?/i)?.[1];
|
|
102
|
-
const requestedOutputTokens = arithmetic?.[2] ?? normalized.match(/requested\s+(\d+)\s+output tokens/i)?.[1] ?? normalized.match(/requested\s+output tokens?\s*[:=]?\s*(\d+)/i)?.[1] ?? normalized.match(/max_tokens\s*[:=]?\s*(\d+)/i)?.[1];
|
|
103
|
-
const inputTokens = arithmetic?.[1] ?? normalized.match(/prompt contains(?:\s+at least)?\s+(\d+)\s+input tokens/i)?.[1] ?? normalized.match(/input token count\s*\(?\s*(\d+)\s*\)?/i)?.[1] ?? normalized.match(/(?:input tokens?|input length|input)\s*[:=]?\s*(\d+)/i)?.[1];
|
|
104
|
-
const totalTokens = normalized.match(/total of(?:\s+at least)?\s+(\d+)\s+tokens/i)?.[1] ?? (arithmetic ? String(Number(arithmetic[1]) + Number(arithmetic[2])) : void 0);
|
|
105
|
-
const derivedInput = inputTokens ?? (totalTokens && requestedOutputTokens ? String(Number(totalTokens) - Number(requestedOutputTokens)) : void 0);
|
|
106
|
-
if (!contextWindow || !derivedInput) return;
|
|
107
|
-
return {
|
|
108
|
-
contextWindow: Number(contextWindow),
|
|
109
|
-
inputTokens: Number(derivedInput),
|
|
110
|
-
...requestedOutputTokens ? { requestedOutputTokens: Number(requestedOutputTokens) } : {},
|
|
111
|
-
...totalTokens ? { totalTokens: Number(totalTokens) } : {}
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
function parseErrorPayload(raw) {
|
|
115
|
-
try {
|
|
116
|
-
return jsonRecord(JSON.parse(raw));
|
|
117
|
-
} catch {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
function errorMessage(payload, fallback) {
|
|
122
|
-
const error = jsonRecord(payload?.error);
|
|
123
|
-
if (typeof error?.message === "string") return error.message;
|
|
124
|
-
const responseError = jsonRecord(jsonRecord(payload?.response)?.error);
|
|
125
|
-
if (typeof responseError?.message === "string") return responseError.message;
|
|
126
|
-
if (typeof payload?.message === "string") return payload.message;
|
|
127
|
-
return fallback;
|
|
128
|
-
}
|
|
129
|
-
function anthropicContextWindowMessage(raw) {
|
|
130
|
-
const detail = errorMessage(parseErrorPayload(raw), raw).trim();
|
|
131
|
-
const canonical = detail.match(/prompt is too long:\s*(\d+)\s+tokens\s*>\s*(\d+)\s+maximum/i);
|
|
132
|
-
if (canonical) return `prompt is too long: ${canonical[1]} tokens > ${canonical[2]} maximum`;
|
|
133
|
-
const counts = parseContextBudgetError(raw);
|
|
134
|
-
if (counts) {
|
|
135
|
-
const totalTokens = counts.totalTokens ?? (counts.requestedOutputTokens != null ? counts.inputTokens + counts.requestedOutputTokens : counts.inputTokens);
|
|
136
|
-
if (Number.isSafeInteger(totalTokens) && totalTokens > 0) return `prompt is too long: ${totalTokens} tokens > ${counts.contextWindow} maximum`;
|
|
137
|
-
}
|
|
138
|
-
if (detail && detail.length <= 800) return `prompt is too long: input exceeds this model's context window maximum. ${detail}`;
|
|
139
|
-
return "prompt is too long: input exceeds this model's context window maximum. Please use /compact or reduce the input and try again.";
|
|
140
|
-
}
|
|
141
|
-
/** Build the standard Anthropic HTTP error envelope used by Claude Code. */
|
|
142
|
-
function anthropicContextWindowErrorBody(raw, requestId) {
|
|
143
|
-
const payload = parseErrorPayload(raw);
|
|
144
|
-
const upstreamRequestId = typeof payload?.request_id === "string" && payload.request_id.trim() ? payload.request_id.trim() : void 0;
|
|
145
|
-
const resolvedRequestId = requestId?.trim() || upstreamRequestId || newAnthropicRequestId();
|
|
146
|
-
return {
|
|
147
|
-
type: "error",
|
|
148
|
-
error: {
|
|
149
|
-
type: "invalid_request_error",
|
|
150
|
-
code: CONTEXT_WINDOW_ERROR_CODE,
|
|
151
|
-
message: anthropicContextWindowMessage(raw)
|
|
152
|
-
},
|
|
153
|
-
request_id: resolvedRequestId
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
function newAnthropicRequestId() {
|
|
157
|
-
return `req_${randomBytes(12).toString("hex")}`;
|
|
158
|
-
}
|
|
159
|
-
function jsonRecord(value) {
|
|
160
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
161
|
-
}
|
|
162
|
-
//#endregion
|
|
163
|
-
export { CONTEXT_WINDOW_ERROR_CODE, OPENAI_CONTEXT_WINDOW_MESSAGE, anthropicContextWindowErrorBody, anthropicContextWindowMessage, isContextWindowError, normalizeContextWindowError, openAIResponsesContextWindowError };
|
|
164
|
-
|
|
165
|
-
//# sourceMappingURL=context-budget.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-budget.js","names":[],"sources":["../../../src/providers/opencode-proxy/context-budget.ts"],"sourcesContent":["import { randomBytes } from 'node:crypto';\n\n/**\n * OpenAI Responses clients (including Codex) classify this exact error code as\n * a context-window overflow and use it to enter their compaction flow.\n */\nexport const CONTEXT_WINDOW_ERROR_CODE = 'context_length_exceeded';\n\nexport const OPENAI_CONTEXT_WINDOW_MESSAGE =\n 'Your input exceeds the context window of this model. Please adjust your input and try again.';\n\n/** Return true for provider error variants that mean the prompt is too large. */\nexport function isContextWindowError(raw: string): boolean {\n const payload = parseErrorPayload(raw);\n const error = jsonRecord(payload?.error);\n const response = jsonRecord(payload?.response);\n const responseError = jsonRecord(response?.error);\n if (\n error?.code === CONTEXT_WINDOW_ERROR_CODE ||\n error?.type === CONTEXT_WINDOW_ERROR_CODE ||\n payload?.code === CONTEXT_WINDOW_ERROR_CODE ||\n payload?.type === CONTEXT_WINDOW_ERROR_CODE ||\n responseError?.code === CONTEXT_WINDOW_ERROR_CODE ||\n responseError?.type === CONTEXT_WINDOW_ERROR_CODE\n ) {\n return true;\n }\n const message = errorMessage(payload, raw);\n return [\n // Keep this list in lockstep with OpenCode's provider overflow classifier.\n /prompt is too long/i,\n /input is too long for requested model/i,\n /exceeds the context window/i,\n /input token count.*exceeds the maximum/i,\n /tokens in request more than max tokens allowed/i,\n /maximum prompt length is \\d+/i,\n /reduce the length of (?:the )?messages/i,\n /maximum context length is \\d+ tokens/i,\n /exceeds the limit of \\d+/i,\n /exceeds the available context size/i,\n /greater than the context length/i,\n /context window exceeds limit/i,\n /exceeded model token limit/i,\n /context[_ ]length[_ ]exceeded/i,\n /request entity too large/i,\n /context length is only \\d+ tokens/i,\n /input length.*exceeds.*context length/i,\n /input length and max_tokens exceed context limit/i,\n /prompt too long; exceeded (?:max )?context length/i,\n /too large for model with \\d+ maximum context length/i,\n /model_context_window_exceeded/i,\n ].some((pattern) => pattern.test(message));\n}\n\n/**\n * Convert a context overflow into the error envelope expected by the selected\n * compatibility protocol. The original upstream body is deliberately kept\n * out of the OpenAI message so Codex can match the stable error code/message.\n */\nexport async function normalizeContextWindowError(\n response: Response,\n protocol: 'openai' | 'anthropic',\n): Promise<Response> {\n if (response.status !== 400 && response.status !== 413) {\n return response;\n }\n const raw = await response.clone().text();\n if (!isContextWindowError(raw)) {\n return response;\n }\n const body =\n protocol === 'openai'\n ? {\n error: {\n message: OPENAI_CONTEXT_WINDOW_MESSAGE,\n type: 'invalid_request_error',\n param: 'input',\n code: CONTEXT_WINDOW_ERROR_CODE,\n },\n }\n : anthropicContextWindowErrorBody(raw, response.headers.get('request-id') ?? undefined);\n const headers = new Headers(response.headers);\n headers.delete('content-length');\n headers.delete('content-encoding');\n headers.set('content-type', 'application/json; charset=utf-8');\n if ('request_id' in body) {\n headers.set('request-id', body.request_id);\n }\n return new Response(JSON.stringify(body), {\n // Context overflow is an invalid request in both compatibility APIs. A\n // provider may use 413 for it, but Claude Code's reactive compactor and\n // OpenAI clients expect the canonical 400 contract.\n status: 400,\n headers,\n });\n}\n\n/**\n * Codex's Responses SSE parser maps `response.failed` with this code to its\n * ContextWindowExceeded error, which is the signal that triggers compaction.\n */\nexport function openAIResponsesContextWindowError(): Response {\n const data = {\n type: 'response.failed',\n sequence_number: 0,\n response: {\n id: `resp_context_${Date.now().toString(36)}`,\n object: 'response',\n created_at: Math.floor(Date.now() / 1000),\n status: 'failed',\n background: false,\n error: {\n code: CONTEXT_WINDOW_ERROR_CODE,\n message: OPENAI_CONTEXT_WINDOW_MESSAGE,\n },\n usage: null,\n user: null,\n metadata: {},\n },\n };\n return new Response(`event: response.failed\\ndata: ${JSON.stringify(data)}\\n\\n`, {\n status: 200,\n headers: {\n 'content-type': 'text/event-stream; charset=utf-8',\n 'cache-control': 'no-cache, no-transform',\n connection: 'keep-alive',\n 'x-accel-buffering': 'no',\n },\n });\n}\n\ninterface ContextBudgetCounts {\n contextWindow: number;\n requestedOutputTokens?: number;\n inputTokens: number;\n totalTokens?: number;\n}\n\nfunction parseContextBudgetError(raw: string): ContextBudgetCounts | undefined {\n const parsed = parseErrorPayload(raw);\n const message = errorMessage(parsed, raw);\n const normalized = message.replace(/,/g, '');\n const arithmetic = normalized.match(\n /(?:context (?:limit|length)[^:]*:\\s*)?(\\d+)\\s*\\+\\s*(\\d+)\\s*>\\s*(\\d+)/i,\n );\n const contextWindow =\n arithmetic?.[3] ??\n normalized.match(/maximum context length is\\s+(\\d+)\\s+tokens/i)?.[1] ??\n normalized.match(/maximum number of tokens allowed\\s*\\(?\\s*(\\d+)\\s*\\)?/i)?.[1] ??\n normalized.match(/context length is only\\s+(\\d+)\\s+tokens/i)?.[1] ??\n normalized.match(/context (?:limit|length)[^\\d]*(\\d+)\\s*(?:tokens?)?/i)?.[1];\n const requestedOutputTokens =\n arithmetic?.[2] ??\n normalized.match(/requested\\s+(\\d+)\\s+output tokens/i)?.[1] ??\n normalized.match(/requested\\s+output tokens?\\s*[:=]?\\s*(\\d+)/i)?.[1] ??\n normalized.match(/max_tokens\\s*[:=]?\\s*(\\d+)/i)?.[1];\n const inputTokens =\n arithmetic?.[1] ??\n normalized.match(/prompt contains(?:\\s+at least)?\\s+(\\d+)\\s+input tokens/i)?.[1] ??\n normalized.match(/input token count\\s*\\(?\\s*(\\d+)\\s*\\)?/i)?.[1] ??\n normalized.match(/(?:input tokens?|input length|input)\\s*[:=]?\\s*(\\d+)/i)?.[1];\n const totalTokens =\n normalized.match(/total of(?:\\s+at least)?\\s+(\\d+)\\s+tokens/i)?.[1] ??\n (arithmetic ? String(Number(arithmetic[1]) + Number(arithmetic[2])) : undefined);\n const derivedInput =\n inputTokens ??\n (totalTokens && requestedOutputTokens\n ? String(Number(totalTokens) - Number(requestedOutputTokens))\n : undefined);\n if (!contextWindow || !derivedInput) {\n return undefined;\n }\n return {\n contextWindow: Number(contextWindow),\n inputTokens: Number(derivedInput),\n ...(requestedOutputTokens ? { requestedOutputTokens: Number(requestedOutputTokens) } : {}),\n ...(totalTokens ? { totalTokens: Number(totalTokens) } : {}),\n };\n}\n\nfunction parseErrorPayload(raw: string): Record<string, unknown> | undefined {\n try {\n return jsonRecord(JSON.parse(raw));\n } catch {\n return undefined;\n }\n}\n\nfunction errorMessage(payload: Record<string, unknown> | undefined, fallback: string): string {\n const error = jsonRecord(payload?.error);\n if (typeof error?.message === 'string') {\n return error.message;\n }\n const response = jsonRecord(payload?.response);\n const responseError = jsonRecord(response?.error);\n if (typeof responseError?.message === 'string') {\n return responseError.message;\n }\n if (typeof payload?.message === 'string') {\n return payload.message;\n }\n return fallback;\n}\n\nexport function anthropicContextWindowMessage(raw: string): string {\n const detail = errorMessage(parseErrorPayload(raw), raw).trim();\n const canonical = detail.match(/prompt is too long:\\s*(\\d+)\\s+tokens\\s*>\\s*(\\d+)\\s+maximum/i);\n if (canonical) {\n return `prompt is too long: ${canonical[1]} tokens > ${canonical[2]} maximum`;\n }\n const counts = parseContextBudgetError(raw);\n if (counts) {\n // Claude Code parses the left-hand count as the *total request size*\n // (input plus the requested output budget), not input tokens alone. When\n // a provider gives us an explicit total, prefer it; otherwise derive the\n // same value from the two components before emitting Claude's canonical\n // form. This numeric gap seeds Claude's reactive-compaction strategy.\n const totalTokens =\n counts.totalTokens ??\n (counts.requestedOutputTokens != null\n ? counts.inputTokens + counts.requestedOutputTokens\n : counts.inputTokens);\n if (Number.isSafeInteger(totalTokens) && totalTokens > 0) {\n return `prompt is too long: ${totalTokens} tokens > ${counts.contextWindow} maximum`;\n }\n }\n if (detail && detail.length <= 800) {\n // Keep the phrase Claude Code recognizes, while preserving a short\n // provider hint for humans. Never echo arbitrarily large upstream bodies.\n return `prompt is too long: input exceeds this model's context window maximum. ${detail}`;\n }\n return \"prompt is too long: input exceeds this model's context window maximum. Please use /compact or reduce the input and try again.\";\n}\n\n/** Build the standard Anthropic HTTP error envelope used by Claude Code. */\nexport function anthropicContextWindowErrorBody(\n raw: string,\n requestId?: string,\n): {\n type: 'error';\n error: {\n type: 'invalid_request_error';\n code: typeof CONTEXT_WINDOW_ERROR_CODE;\n message: string;\n };\n request_id: string;\n} {\n const payload = parseErrorPayload(raw);\n const upstreamRequestId =\n typeof payload?.request_id === 'string' && payload.request_id.trim()\n ? payload.request_id.trim()\n : undefined;\n const resolvedRequestId = requestId?.trim() || upstreamRequestId || newAnthropicRequestId();\n return {\n type: 'error',\n error: {\n type: 'invalid_request_error',\n code: CONTEXT_WINDOW_ERROR_CODE,\n message: anthropicContextWindowMessage(raw),\n },\n request_id: resolvedRequestId,\n };\n}\n\nfunction newAnthropicRequestId(): string {\n return `req_${randomBytes(12).toString('hex')}`;\n}\n\nfunction jsonRecord(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n"],"mappings":";;;;;;AAMA,IAAa,4BAA4B;AAEzC,IAAa,gCACX;;AAGF,SAAgB,qBAAqB,KAAsB;CACzD,MAAM,UAAU,kBAAkB,GAAG;CACrC,MAAM,QAAQ,WAAW,SAAS,KAAK;CAEvC,MAAM,gBAAgB,WADL,WAAW,SAAS,QACJ,CAAA,EAAU,KAAK;CAChD,IACE,OAAO,SAAA,6BACP,OAAO,SAAA,6BACP,SAAS,SAAA,6BACT,SAAS,SAAA,6BACT,eAAe,SAAA,6BACf,eAAe,SAAA,2BAEf,OAAO;CAET,MAAM,UAAU,aAAa,SAAS,GAAG;CACzC,OAAO;EAEL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,MAAM,YAAY,QAAQ,KAAK,OAAO,CAAC;AAC3C;;;;;;AAOA,eAAsB,4BACpB,UACA,UACmB;CACnB,IAAI,SAAS,WAAW,OAAO,SAAS,WAAW,KACjD,OAAO;CAET,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,CAAC,KAAK;CACxC,IAAI,CAAC,qBAAqB,GAAG,GAC3B,OAAO;CAET,MAAM,OACJ,aAAa,WACT,EACE,OAAO;EACL,SAAS;EACT,MAAM;EACN,OAAO;EACP,MAAM;CACR,EACF,IACA,gCAAgC,KAAK,SAAS,QAAQ,IAAI,YAAY,KAAK,KAAA,CAAS;CAC1F,MAAM,UAAU,IAAI,QAAQ,SAAS,OAAO;CAC5C,QAAQ,OAAO,gBAAgB;CAC/B,QAAQ,OAAO,kBAAkB;CACjC,QAAQ,IAAI,gBAAgB,iCAAiC;CAC7D,IAAI,gBAAgB,MAClB,QAAQ,IAAI,cAAc,KAAK,UAAU;CAE3C,OAAO,IAAI,SAAS,KAAK,UAAU,IAAI,GAAG;EAIxC,QAAQ;EACR;CACF,CAAC;AACH;;;;;AAMA,SAAgB,oCAA8C;CAC5D,MAAM,OAAO;EACX,MAAM;EACN,iBAAiB;EACjB,UAAU;GACR,IAAI,gBAAgB,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE;GAC1C,QAAQ;GACR,YAAY,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;GACxC,QAAQ;GACR,YAAY;GACZ,OAAO;IACL,MAAM;IACN,SAAS;GACX;GACA,OAAO;GACP,MAAM;GACN,UAAU,CAAC;EACb;CACF;CACA,OAAO,IAAI,SAAS,iCAAiC,KAAK,UAAU,IAAI,EAAE,OAAO;EAC/E,QAAQ;EACR,SAAS;GACP,gBAAgB;GAChB,iBAAiB;GACjB,YAAY;GACZ,qBAAqB;EACvB;CACF,CAAC;AACH;AASA,SAAS,wBAAwB,KAA8C;CAG7E,MAAM,aADU,aADD,kBAAkB,GACJ,GAAQ,GAClB,CAAA,CAAQ,QAAQ,MAAM,EAAE;CAC3C,MAAM,aAAa,WAAW,MAC5B,uEACF;CACA,MAAM,gBACJ,aAAa,MACb,WAAW,MAAM,6CAA6C,CAAC,GAAG,MAClE,WAAW,MAAM,uDAAuD,CAAC,GAAG,MAC5E,WAAW,MAAM,0CAA0C,CAAC,GAAG,MAC/D,WAAW,MAAM,qDAAqD,CAAC,GAAG;CAC5E,MAAM,wBACJ,aAAa,MACb,WAAW,MAAM,oCAAoC,CAAC,GAAG,MACzD,WAAW,MAAM,6CAA6C,CAAC,GAAG,MAClE,WAAW,MAAM,6BAA6B,CAAC,GAAG;CACpD,MAAM,cACJ,aAAa,MACb,WAAW,MAAM,yDAAyD,CAAC,GAAG,MAC9E,WAAW,MAAM,wCAAwC,CAAC,GAAG,MAC7D,WAAW,MAAM,uDAAuD,CAAC,GAAG;CAC9E,MAAM,cACJ,WAAW,MAAM,4CAA4C,CAAC,GAAG,OAChE,aAAa,OAAO,OAAO,WAAW,EAAE,IAAI,OAAO,WAAW,EAAE,CAAC,IAAI,KAAA;CACxE,MAAM,eACJ,gBACC,eAAe,wBACZ,OAAO,OAAO,WAAW,IAAI,OAAO,qBAAqB,CAAC,IAC1D,KAAA;CACN,IAAI,CAAC,iBAAiB,CAAC,cACrB;CAEF,OAAO;EACL,eAAe,OAAO,aAAa;EACnC,aAAa,OAAO,YAAY;EAChC,GAAI,wBAAwB,EAAE,uBAAuB,OAAO,qBAAqB,EAAE,IAAI,CAAC;EACxF,GAAI,cAAc,EAAE,aAAa,OAAO,WAAW,EAAE,IAAI,CAAC;CAC5D;AACF;AAEA,SAAS,kBAAkB,KAAkD;CAC3E,IAAI;EACF,OAAO,WAAW,KAAK,MAAM,GAAG,CAAC;CACnC,QAAQ;EACN;CACF;AACF;AAEA,SAAS,aAAa,SAA8C,UAA0B;CAC5F,MAAM,QAAQ,WAAW,SAAS,KAAK;CACvC,IAAI,OAAO,OAAO,YAAY,UAC5B,OAAO,MAAM;CAGf,MAAM,gBAAgB,WADL,WAAW,SAAS,QACJ,CAAA,EAAU,KAAK;CAChD,IAAI,OAAO,eAAe,YAAY,UACpC,OAAO,cAAc;CAEvB,IAAI,OAAO,SAAS,YAAY,UAC9B,OAAO,QAAQ;CAEjB,OAAO;AACT;AAEA,SAAgB,8BAA8B,KAAqB;CACjE,MAAM,SAAS,aAAa,kBAAkB,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK;CAC9D,MAAM,YAAY,OAAO,MAAM,6DAA6D;CAC5F,IAAI,WACF,OAAO,uBAAuB,UAAU,GAAG,YAAY,UAAU,GAAG;CAEtE,MAAM,SAAS,wBAAwB,GAAG;CAC1C,IAAI,QAAQ;EAMV,MAAM,cACJ,OAAO,gBACN,OAAO,yBAAyB,OAC7B,OAAO,cAAc,OAAO,wBAC5B,OAAO;EACb,IAAI,OAAO,cAAc,WAAW,KAAK,cAAc,GACrD,OAAO,uBAAuB,YAAY,YAAY,OAAO,cAAc;CAE/E;CACA,IAAI,UAAU,OAAO,UAAU,KAG7B,OAAO,0EAA0E;CAEnF,OAAO;AACT;;AAGA,SAAgB,gCACd,KACA,WASA;CACA,MAAM,UAAU,kBAAkB,GAAG;CACrC,MAAM,oBACJ,OAAO,SAAS,eAAe,YAAY,QAAQ,WAAW,KAAK,IAC/D,QAAQ,WAAW,KAAK,IACxB,KAAA;CACN,MAAM,oBAAoB,WAAW,KAAK,KAAK,qBAAqB,sBAAsB;CAC1F,OAAO;EACL,MAAM;EACN,OAAO;GACL,MAAM;GACN,MAAM;GACN,SAAS,8BAA8B,GAAG;EAC5C;EACA,YAAY;CACd;AACF;AAEA,SAAS,wBAAgC;CACvC,OAAO,OAAO,YAAY,EAAE,CAAC,CAAC,SAAS,KAAK;AAC9C;AAEA,SAAS,WAAW,OAAqD;CACvE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD,KAAA;AACN"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function safeUpstreamErrorForLog(raw: string): string;
|
|
2
|
-
export declare function formatUpstreamModelError(raw: string, model: string | undefined): string;
|
|
3
|
-
export declare function isOpenCodeFreeTierModel(model: string): boolean;
|
|
4
|
-
export declare function freeTierIpLimitResponse(remainingMs: number): Response;
|
|
5
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode-proxy/errors.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA6B3D;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAevF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAerE"}
|