anypick 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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,110 +0,0 @@
|
|
|
1
|
-
import type { ServerResponse } from 'node:http';
|
|
2
|
-
import type { EgressTransport } from '../../network/egress/types.js';
|
|
3
|
-
import type { OpenCodeAuthMode, OpenCodeCatalog, OpenCodeCredential } from './auth.js';
|
|
4
|
-
import type { OpenCodeModelDescriptor, OpenCodeModelProtocol } from './models.js';
|
|
5
|
-
import type { QuotaGuardOptions } from '../quota-guard.js';
|
|
6
|
-
export interface OpenCodeProxyServerOptions {
|
|
7
|
-
host: string;
|
|
8
|
-
port: number;
|
|
9
|
-
authPath: string;
|
|
10
|
-
authPaths?: string[];
|
|
11
|
-
/** Pool account labels in the same order as authPath + authPaths. */
|
|
12
|
-
authAccountNames?: string[];
|
|
13
|
-
authMode?: OpenCodeAuthMode;
|
|
14
|
-
quotaGuard?: QuotaGuardOptions;
|
|
15
|
-
upstream?: string;
|
|
16
|
-
zenUpstream?: string;
|
|
17
|
-
goUpstream?: string;
|
|
18
|
-
modelMetadataUrl?: string | false;
|
|
19
|
-
token?: string;
|
|
20
|
-
log?: (line: string) => void;
|
|
21
|
-
quiet?: boolean;
|
|
22
|
-
egress?: EgressTransport;
|
|
23
|
-
}
|
|
24
|
-
export interface CatalogModel extends OpenCodeModelDescriptor {
|
|
25
|
-
catalog: OpenCodeCatalog;
|
|
26
|
-
}
|
|
27
|
-
export interface CatalogCache {
|
|
28
|
-
byModel: Map<string, CatalogModel>;
|
|
29
|
-
ids: string[];
|
|
30
|
-
fetchedAt: number;
|
|
31
|
-
}
|
|
32
|
-
export interface OpenCodeModelResponse {
|
|
33
|
-
id: string;
|
|
34
|
-
object: 'model';
|
|
35
|
-
owned_by: string;
|
|
36
|
-
created?: number;
|
|
37
|
-
protocol?: OpenCodeModelProtocol;
|
|
38
|
-
/** Best-effort limit hints for clients that inspect OpenAI-compatible model metadata. */
|
|
39
|
-
context_window?: number;
|
|
40
|
-
max_context_window?: number;
|
|
41
|
-
auto_compact_token_limit?: number;
|
|
42
|
-
max_input_tokens?: number;
|
|
43
|
-
max_output_tokens?: number;
|
|
44
|
-
}
|
|
45
|
-
export interface OpenCodeRequestContext {
|
|
46
|
-
runtime: OpenCodeProxyRuntime;
|
|
47
|
-
log: (line: string) => void;
|
|
48
|
-
proxyToken: string;
|
|
49
|
-
sessionId: string;
|
|
50
|
-
}
|
|
51
|
-
export interface OpenCodeProxyRuntime {
|
|
52
|
-
readonly authMode: OpenCodeAuthMode;
|
|
53
|
-
readonly catalog: OpenCodeCatalogStore;
|
|
54
|
-
readonly egress: EgressTransport;
|
|
55
|
-
readonly sessionId: string;
|
|
56
|
-
credential(): Promise<OpenCodeCredential>;
|
|
57
|
-
credentials(): Promise<OpenCodeCredential[]>;
|
|
58
|
-
inferenceFetch(target: string, init: RequestInit, model: string, preferredCredential: OpenCodeCredential): Promise<Response>;
|
|
59
|
-
baseFor(catalog: OpenCodeCatalog): string;
|
|
60
|
-
}
|
|
61
|
-
export interface OpenCodeCatalogStore {
|
|
62
|
-
live(): Promise<CatalogCache>;
|
|
63
|
-
route(modelId: string): Promise<{
|
|
64
|
-
catalog: OpenCodeCatalog;
|
|
65
|
-
base: string;
|
|
66
|
-
}>;
|
|
67
|
-
/** Drop the cached model list so the next read refetches from upstream. */
|
|
68
|
-
invalidate(): void;
|
|
69
|
-
}
|
|
70
|
-
export interface OpenAIResponsesResult {
|
|
71
|
-
id?: string;
|
|
72
|
-
model?: string;
|
|
73
|
-
output?: Array<{
|
|
74
|
-
type?: string;
|
|
75
|
-
id?: string;
|
|
76
|
-
call_id?: string;
|
|
77
|
-
name?: string;
|
|
78
|
-
arguments?: string;
|
|
79
|
-
content?: Array<{
|
|
80
|
-
type?: string;
|
|
81
|
-
text?: string;
|
|
82
|
-
}>;
|
|
83
|
-
summary?: Array<{
|
|
84
|
-
type?: string;
|
|
85
|
-
text?: string;
|
|
86
|
-
}>;
|
|
87
|
-
}>;
|
|
88
|
-
output_text?: string;
|
|
89
|
-
usage?: {
|
|
90
|
-
input_tokens?: number;
|
|
91
|
-
output_tokens?: number;
|
|
92
|
-
};
|
|
93
|
-
error?: {
|
|
94
|
-
type?: string;
|
|
95
|
-
message?: string;
|
|
96
|
-
code?: string;
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
export interface AnthropicErrorResult {
|
|
100
|
-
type: 'error';
|
|
101
|
-
error: {
|
|
102
|
-
type: string;
|
|
103
|
-
message: string;
|
|
104
|
-
code?: string;
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
export type AnthropicResult = import('../protocol/anthropic.js').AnthropicMessageResponse | AnthropicErrorResult;
|
|
108
|
-
export declare function modelObject(id: string, model: CatalogModel | undefined): OpenCodeModelResponse;
|
|
109
|
-
export type ResponseWriter = ServerResponse;
|
|
110
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/opencode-proxy/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//#region src/providers/opencode-proxy/types.ts
|
|
2
|
-
function modelObject(id, model) {
|
|
3
|
-
const contextWindow = model?.limits?.context;
|
|
4
|
-
const autoCompactLimit = model && contextWindow != null ? autoCompactTokenLimit(model) : void 0;
|
|
5
|
-
return {
|
|
6
|
-
id,
|
|
7
|
-
object: "model",
|
|
8
|
-
owned_by: model?.ownedBy ?? (model?.catalog === "go" ? "opencode-go" : "opencode"),
|
|
9
|
-
...model?.created != null ? { created: model.created } : {},
|
|
10
|
-
...model?.protocol ? { protocol: model.protocol } : {},
|
|
11
|
-
...contextWindow != null ? {
|
|
12
|
-
context_window: contextWindow,
|
|
13
|
-
max_context_window: contextWindow,
|
|
14
|
-
...autoCompactLimit != null ? { auto_compact_token_limit: autoCompactLimit } : {}
|
|
15
|
-
} : {},
|
|
16
|
-
...model?.limits?.input != null ? { max_input_tokens: model.limits.input } : {},
|
|
17
|
-
...model?.limits?.output != null ? { max_output_tokens: model.limits.output } : {}
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Publish the same usable-input boundary OpenCode uses before compaction.
|
|
22
|
-
* OpenCode caps generation at 32k, reserves up to 20k when the provider has a
|
|
23
|
-
* separate input limit, and otherwise subtracts the full generation budget
|
|
24
|
-
* from the context window. This is metadata only—the proxy never rewrites a
|
|
25
|
-
* caller's generation budget.
|
|
26
|
-
*/
|
|
27
|
-
function autoCompactTokenLimit(model) {
|
|
28
|
-
const context = model.limits?.context;
|
|
29
|
-
if (context == null || !Number.isFinite(context) || context <= 0) return;
|
|
30
|
-
const outputMax = Math.min(model.limits?.output ?? 32e3, 32e3);
|
|
31
|
-
const input = model.limits?.input;
|
|
32
|
-
const usable = input != null && Number.isFinite(input) && input > 0 ? input - Math.min(2e4, outputMax) : context - outputMax;
|
|
33
|
-
return Number.isFinite(usable) && usable > 0 ? Math.floor(usable) : void 0;
|
|
34
|
-
}
|
|
35
|
-
//#endregion
|
|
36
|
-
export { modelObject };
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/opencode-proxy/types.ts"],"sourcesContent":["import type { ServerResponse } from 'node:http';\nimport type { EgressTransport } from '../../network/egress/types';\nimport type { OpenCodeAuthMode, OpenCodeCatalog, OpenCodeCredential } from './auth';\nimport type { OpenCodeModelDescriptor, OpenCodeModelProtocol } from './models';\nimport type { QuotaGuardOptions } from '../quota-guard';\n\nexport interface OpenCodeProxyServerOptions {\n host: string;\n port: number;\n authPath: string;\n authPaths?: string[];\n /** Pool account labels in the same order as authPath + authPaths. */\n authAccountNames?: string[];\n authMode?: OpenCodeAuthMode;\n quotaGuard?: QuotaGuardOptions;\n upstream?: string;\n zenUpstream?: string;\n goUpstream?: string;\n modelMetadataUrl?: string | false;\n token?: string;\n log?: (line: string) => void;\n quiet?: boolean;\n egress?: EgressTransport;\n}\n\nexport interface CatalogModel extends OpenCodeModelDescriptor {\n catalog: OpenCodeCatalog;\n}\n\nexport interface CatalogCache {\n byModel: Map<string, CatalogModel>;\n ids: string[];\n fetchedAt: number;\n}\n\nexport interface OpenCodeModelResponse {\n id: string;\n object: 'model';\n owned_by: string;\n created?: number;\n protocol?: OpenCodeModelProtocol;\n /** Best-effort limit hints for clients that inspect OpenAI-compatible model metadata. */\n context_window?: number;\n max_context_window?: number;\n auto_compact_token_limit?: number;\n max_input_tokens?: number;\n max_output_tokens?: number;\n}\n\nexport interface OpenCodeRequestContext {\n runtime: OpenCodeProxyRuntime;\n log: (line: string) => void;\n proxyToken: string;\n sessionId: string;\n}\n\nexport interface OpenCodeProxyRuntime {\n readonly authMode: OpenCodeAuthMode;\n readonly catalog: OpenCodeCatalogStore;\n readonly egress: EgressTransport;\n readonly sessionId: string;\n credential(): Promise<OpenCodeCredential>;\n credentials(): Promise<OpenCodeCredential[]>;\n inferenceFetch(\n target: string,\n init: RequestInit,\n model: string,\n preferredCredential: OpenCodeCredential,\n ): Promise<Response>;\n baseFor(catalog: OpenCodeCatalog): string;\n}\n\nexport interface OpenCodeCatalogStore {\n live(): Promise<CatalogCache>;\n route(modelId: string): Promise<{ catalog: OpenCodeCatalog; base: string }>;\n /** Drop the cached model list so the next read refetches from upstream. */\n invalidate(): void;\n}\n\nexport interface OpenAIResponsesResult {\n id?: string;\n model?: string;\n output?: Array<{\n type?: string;\n id?: string;\n call_id?: string;\n name?: string;\n arguments?: string;\n content?: Array<{ type?: string; text?: string }>;\n summary?: Array<{ type?: string; text?: string }>;\n }>;\n output_text?: string;\n usage?: { input_tokens?: number; output_tokens?: number };\n error?: { type?: string; message?: string; code?: string };\n}\n\nexport interface AnthropicErrorResult {\n type: 'error';\n error: { type: string; message: string; code?: string };\n}\n\nexport type AnthropicResult =\n | import('../protocol/anthropic').AnthropicMessageResponse\n | AnthropicErrorResult;\n\nexport function modelObject(id: string, model: CatalogModel | undefined): OpenCodeModelResponse {\n const contextWindow = model?.limits?.context;\n const autoCompactLimit =\n model && contextWindow != null ? autoCompactTokenLimit(model) : undefined;\n return {\n id,\n object: 'model',\n owned_by: model?.ownedBy ?? (model?.catalog === 'go' ? 'opencode-go' : 'opencode'),\n ...(model?.created != null ? { created: model.created } : {}),\n ...(model?.protocol ? { protocol: model.protocol } : {}),\n ...(contextWindow != null\n ? {\n context_window: contextWindow,\n max_context_window: contextWindow,\n ...(autoCompactLimit != null ? { auto_compact_token_limit: autoCompactLimit } : {}),\n }\n : {}),\n ...(model?.limits?.input != null ? { max_input_tokens: model.limits.input } : {}),\n ...(model?.limits?.output != null ? { max_output_tokens: model.limits.output } : {}),\n };\n}\n\n/**\n * Publish the same usable-input boundary OpenCode uses before compaction.\n * OpenCode caps generation at 32k, reserves up to 20k when the provider has a\n * separate input limit, and otherwise subtracts the full generation budget\n * from the context window. This is metadata only—the proxy never rewrites a\n * caller's generation budget.\n */\nfunction autoCompactTokenLimit(model: CatalogModel): number | undefined {\n const context = model.limits?.context;\n if (context == null || !Number.isFinite(context) || context <= 0) {\n return undefined;\n }\n const outputMax = Math.min(model.limits?.output ?? 32_000, 32_000);\n const input = model.limits?.input;\n const usable =\n input != null && Number.isFinite(input) && input > 0\n ? input - Math.min(20_000, outputMax)\n : context - outputMax;\n return Number.isFinite(usable) && usable > 0 ? Math.floor(usable) : undefined;\n}\n\nexport type ResponseWriter = ServerResponse;\n"],"mappings":";AAyGA,SAAgB,YAAY,IAAY,OAAwD;CAC9F,MAAM,gBAAgB,OAAO,QAAQ;CACrC,MAAM,mBACJ,SAAS,iBAAiB,OAAO,sBAAsB,KAAK,IAAI,KAAA;CAClE,OAAO;EACL;EACA,QAAQ;EACR,UAAU,OAAO,YAAY,OAAO,YAAY,OAAO,gBAAgB;EACvE,GAAI,OAAO,WAAW,OAAO,EAAE,SAAS,MAAM,QAAQ,IAAI,CAAC;EAC3D,GAAI,OAAO,WAAW,EAAE,UAAU,MAAM,SAAS,IAAI,CAAC;EACtD,GAAI,iBAAiB,OACjB;GACE,gBAAgB;GAChB,oBAAoB;GACpB,GAAI,oBAAoB,OAAO,EAAE,0BAA0B,iBAAiB,IAAI,CAAC;EACnF,IACA,CAAC;EACL,GAAI,OAAO,QAAQ,SAAS,OAAO,EAAE,kBAAkB,MAAM,OAAO,MAAM,IAAI,CAAC;EAC/E,GAAI,OAAO,QAAQ,UAAU,OAAO,EAAE,mBAAmB,MAAM,OAAO,OAAO,IAAI,CAAC;CACpF;AACF;;;;;;;;AASA,SAAS,sBAAsB,OAAyC;CACtE,MAAM,UAAU,MAAM,QAAQ;CAC9B,IAAI,WAAW,QAAQ,CAAC,OAAO,SAAS,OAAO,KAAK,WAAW,GAC7D;CAEF,MAAM,YAAY,KAAK,IAAI,MAAM,QAAQ,UAAU,MAAQ,IAAM;CACjE,MAAM,QAAQ,MAAM,QAAQ;CAC5B,MAAM,SACJ,SAAS,QAAQ,OAAO,SAAS,KAAK,KAAK,QAAQ,IAC/C,QAAQ,KAAK,IAAI,KAAQ,SAAS,IAClC,UAAU;CAChB,OAAO,OAAO,SAAS,MAAM,KAAK,SAAS,IAAI,KAAK,MAAM,MAAM,IAAI,KAAA;AACtE"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ProxyContext, ProxyHandle, ProxyStatus } from '../types.js';
|
|
2
|
-
export interface OpenCodeProxyLifecycleOptions {
|
|
3
|
-
authPath: string;
|
|
4
|
-
compatibility: string;
|
|
5
|
-
defaultPort: number;
|
|
6
|
-
}
|
|
7
|
-
export declare function startOpenCodeProxy(ctx: ProxyContext, opts: OpenCodeProxyLifecycleOptions): Promise<ProxyHandle>;
|
|
8
|
-
export declare function stopOpenCodeProxy(ctx: ProxyContext): Promise<void>;
|
|
9
|
-
export declare function openCodeProxyStatus(ctx: ProxyContext, compatibility: string, defaultPort: number): Promise<ProxyStatus>;
|
|
10
|
-
export declare function readOpenCodeProxyLogs(ctx: ProxyContext, lines?: number): Promise<string>;
|
|
11
|
-
//# sourceMappingURL=opencode-proxy-lifecycle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-proxy-lifecycle.d.ts","sourceRoot":"","sources":["../../src/providers/opencode-proxy-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAcvE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,WAAW,CAAC,CA4KtB;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAExE;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CA0CtB;AAED,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { AnyPickError } from "../utils/errors.js";
|
|
2
|
-
import { ensureDir, pathExists, readJsonFile } from "../utils/fs.js";
|
|
3
|
-
import { waitForHttp } from "../utils/process/health.js";
|
|
4
|
-
import { isProcessRunning, readPidFile, spawnDetached, stopPidFile } from "../utils/process/pid.js";
|
|
5
|
-
import { assertLoopbackHost } from "../utils/network.js";
|
|
6
|
-
import { listZenGoCredentials } from "./opencode-proxy/auth.js";
|
|
7
|
-
import { resolveAnyPickCliLaunch } from "./opencode-cli-entry.js";
|
|
8
|
-
import { join } from "node:path";
|
|
9
|
-
import { writeFile } from "node:fs/promises";
|
|
10
|
-
//#region src/providers/opencode-proxy-lifecycle.ts
|
|
11
|
-
async function startOpenCodeProxy(ctx, opts) {
|
|
12
|
-
const host = ctx.config.host ?? "127.0.0.1";
|
|
13
|
-
assertLoopbackHost(host);
|
|
14
|
-
const port = ctx.config.port ?? opts.defaultPort;
|
|
15
|
-
const authMode = ctx.config.options?.authMode;
|
|
16
|
-
if (authMode !== void 0 && authMode !== "auto" && authMode !== "public" && authMode !== "api") throw new AnyPickError("OpenCode auth mode must be auto, public, or api.", "INVALID_USAGE");
|
|
17
|
-
await ensureDir(ctx.runtimeDir);
|
|
18
|
-
const logPath = join(ctx.runtimeDir, "proxy.log");
|
|
19
|
-
const pidPath = join(ctx.runtimeDir, "proxy.pid");
|
|
20
|
-
await writeFile(logPath, "", { mode: 384 });
|
|
21
|
-
const poolAuthPaths = (Array.isArray(ctx.config.options?.authDirs) ? ctx.config.options.authDirs.filter((dir) => typeof dir === "string" && dir.trim().length > 0) : []).map((dir) => join(dir, "auth.json"));
|
|
22
|
-
const poolAccountNames = Array.isArray(ctx.config.options?.quotaGuardAccountNames) ? ctx.config.options.quotaGuardAccountNames.filter((name) => typeof name === "string" && name.trim().length > 0) : [];
|
|
23
|
-
const authPath = poolAuthPaths[0] ?? (await pathExists(opts.authPath) ? opts.authPath : join(ctx.snapshotDir, "auth.json"));
|
|
24
|
-
if (authMode !== "public" && !await pathExists(authPath)) throw new AnyPickError("No OpenCode auth available. Run: opencode auth login then anypick add account opencode --current --name <name>", "NO_LIVE_AUTH");
|
|
25
|
-
try {
|
|
26
|
-
const data = await readJsonFile(authPath);
|
|
27
|
-
if (authMode === "api" && listZenGoCredentials(data).length === 0) throw new AnyPickError("OpenCode proxy needs a Zen/Go API key in auth.json (opencode auth login → OpenCode Zen or Go). OAuth providers (ChatGPT, etc.) are activated via anypick use, not this proxy.", "NO_LIVE_AUTH");
|
|
28
|
-
} catch (err) {
|
|
29
|
-
if (err instanceof AnyPickError) throw err;
|
|
30
|
-
}
|
|
31
|
-
const upstream = (typeof ctx.config.options?.upstream === "string" ? ctx.config.options.upstream : void 0) ?? process.env.OPENCODE_PROXY_UPSTREAM ?? void 0;
|
|
32
|
-
const subArgs = [
|
|
33
|
-
"proxy",
|
|
34
|
-
"serve",
|
|
35
|
-
"opencode",
|
|
36
|
-
"--port",
|
|
37
|
-
String(port),
|
|
38
|
-
"--host",
|
|
39
|
-
host,
|
|
40
|
-
"--auth-mode",
|
|
41
|
-
authMode ?? "auto"
|
|
42
|
-
];
|
|
43
|
-
if (authMode !== "public") subArgs.push("--auth-path", authPath);
|
|
44
|
-
if (poolAuthPaths.length > 1) subArgs.push("--auth-paths", poolAuthPaths.slice(1).join(","));
|
|
45
|
-
if (poolAccountNames.length > 0) subArgs.push("--auth-account-names", poolAccountNames.join(","));
|
|
46
|
-
const quotaGuard = ctx.config.options?.quotaGuard;
|
|
47
|
-
if (quotaGuard && typeof quotaGuard === "object" && !Array.isArray(quotaGuard)) {
|
|
48
|
-
const policy = quotaGuard;
|
|
49
|
-
if (policy.enabled === true) {
|
|
50
|
-
subArgs.push("--quota-guard");
|
|
51
|
-
if (typeof policy.cooldownMs === "number" && Number.isFinite(policy.cooldownMs)) subArgs.push("--quota-guard-cooldown-ms", String(Math.max(1e3, Math.floor(policy.cooldownMs))));
|
|
52
|
-
subArgs.push("--quota-guard-state", join(ctx.runtimeDir, "quota-guard.json"));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (upstream) subArgs.push("--upstream", upstream);
|
|
56
|
-
const modelMetadataUrl = ctx.config.options?.modelMetadataUrl;
|
|
57
|
-
if (modelMetadataUrl === false) subArgs.push("--model-metadata-url", "none");
|
|
58
|
-
else if (typeof modelMetadataUrl === "string" && modelMetadataUrl.trim()) subArgs.push("--model-metadata-url", modelMetadataUrl.trim());
|
|
59
|
-
const launch = resolveAnyPickCliLaunch(subArgs);
|
|
60
|
-
if (!await pathExists(launch.entry)) throw new AnyPickError(`AnyPick CLI entry not found at ${launch.entry}. Run: pnpm build`, "PROXY_BINARY_MISSING");
|
|
61
|
-
const endpoint = `http://${host}:${port}`;
|
|
62
|
-
const { pid, instanceId } = await spawnDetached(launch.command, launch.args, {
|
|
63
|
-
logPath,
|
|
64
|
-
pidPath,
|
|
65
|
-
endpoint,
|
|
66
|
-
provider: "opencode",
|
|
67
|
-
account: ctx.accountName,
|
|
68
|
-
env: {
|
|
69
|
-
...process.env,
|
|
70
|
-
OPENCODE_AUTH_PATH: authPath,
|
|
71
|
-
...ctx.token ? { ANYPICK_PROXY_TOKEN: ctx.token } : {},
|
|
72
|
-
ANYPICK_PROXY_LOG: logPath,
|
|
73
|
-
...launch.watch ? { ANYPICK_DEV_WATCH: process.env.ANYPICK_DEV_WATCH ?? "1" } : {}
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
if (!await waitForHttp(`${endpoint}/health`, {
|
|
77
|
-
timeoutMs: launch.watch ? 15e3 : 5e3,
|
|
78
|
-
requirePid: pid,
|
|
79
|
-
expectInstanceId: instanceId
|
|
80
|
-
}) || !isProcessRunning(pid)) {
|
|
81
|
-
const { readFile } = await import("node:fs/promises");
|
|
82
|
-
let tail = "";
|
|
83
|
-
try {
|
|
84
|
-
tail = (await readFile(logPath, "utf8")).split(/\r?\n/).slice(-20).join("\n");
|
|
85
|
-
} catch {}
|
|
86
|
-
if (isProcessRunning(pid)) try {
|
|
87
|
-
process.kill(pid, "SIGTERM");
|
|
88
|
-
} catch {}
|
|
89
|
-
throw new AnyPickError(`OpenCode proxy failed to bind ${host}:${port} (port busy or crash). AnyPick will try the next free port on retry.${tail ? `\n${tail}` : ""}`, "PROXY_START_FAILED");
|
|
90
|
-
}
|
|
91
|
-
return {
|
|
92
|
-
endpoint,
|
|
93
|
-
compatibility: opts.compatibility,
|
|
94
|
-
pid,
|
|
95
|
-
instanceId,
|
|
96
|
-
token: ctx.token,
|
|
97
|
-
logPath
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
async function stopOpenCodeProxy(ctx) {
|
|
101
|
-
await stopPidFile(join(ctx.runtimeDir, "proxy.pid"));
|
|
102
|
-
}
|
|
103
|
-
async function openCodeProxyStatus(ctx, compatibility, defaultPort) {
|
|
104
|
-
const pidPath = join(ctx.runtimeDir, "proxy.pid");
|
|
105
|
-
const logPath = join(ctx.runtimeDir, "proxy.log");
|
|
106
|
-
const pid = await readPidFile(pidPath);
|
|
107
|
-
const running = pid != null && isProcessRunning(pid);
|
|
108
|
-
const host = ctx.config.host ?? "127.0.0.1";
|
|
109
|
-
const port = ctx.config.port ?? defaultPort;
|
|
110
|
-
let detail;
|
|
111
|
-
if (!running) detail = ctx.config.enabled ? "stopped · zen+go by model" : "disabled";
|
|
112
|
-
else try {
|
|
113
|
-
const endpoint = `http://${host}:${port}`;
|
|
114
|
-
const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2e3) });
|
|
115
|
-
if (res.ok) {
|
|
116
|
-
const m = (await res.json()).credential?.models;
|
|
117
|
-
detail = m ? `zen+go · ${m.total ?? "?"} models (${m.zen ?? "?"} zen, ${m.goOnly ?? "?"} go-only)` : "zen+go · route by model";
|
|
118
|
-
} else detail = "running";
|
|
119
|
-
} catch {
|
|
120
|
-
detail = "running";
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
enabled: ctx.config.enabled,
|
|
124
|
-
running,
|
|
125
|
-
port,
|
|
126
|
-
host,
|
|
127
|
-
endpoint: running ? `http://${host}:${port}` : void 0,
|
|
128
|
-
compatibility,
|
|
129
|
-
pid: running ? pid ?? void 0 : void 0,
|
|
130
|
-
logPath: await pathExists(logPath) ? logPath : void 0,
|
|
131
|
-
detail
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
async function readOpenCodeProxyLogs(ctx, lines = 50) {
|
|
135
|
-
const logPath = join(ctx.runtimeDir, "proxy.log");
|
|
136
|
-
if (!await pathExists(logPath)) return "(no log file yet)";
|
|
137
|
-
const { readFile } = await import("node:fs/promises");
|
|
138
|
-
const all = (await readFile(logPath, "utf8")).split(/\r?\n/);
|
|
139
|
-
return all.slice(Math.max(0, all.length - lines)).join("\n");
|
|
140
|
-
}
|
|
141
|
-
//#endregion
|
|
142
|
-
export { openCodeProxyStatus, readOpenCodeProxyLogs, startOpenCodeProxy, stopOpenCodeProxy };
|
|
143
|
-
|
|
144
|
-
//# sourceMappingURL=opencode-proxy-lifecycle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-proxy-lifecycle.js","names":[],"sources":["../../src/providers/opencode-proxy-lifecycle.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { writeFile } from 'node:fs/promises';\nimport type { ProxyContext, ProxyHandle, ProxyStatus } from '../types';\nimport { ensureDir, pathExists, readJsonFile } from '../utils/fs';\nimport { AnyPickError } from '../utils/errors';\nimport { assertLoopbackHost } from '../utils/network';\nimport {\n isProcessRunning,\n readPidFile,\n spawnDetached,\n stopPidFile,\n waitForHttp,\n} from '../utils/process';\nimport { listZenGoCredentials } from './opencode-proxy/auth';\nimport { resolveAnyPickCliLaunch } from './opencode-cli-entry';\n\nexport interface OpenCodeProxyLifecycleOptions {\n authPath: string;\n compatibility: string;\n defaultPort: number;\n}\n\nexport async function startOpenCodeProxy(\n ctx: ProxyContext,\n opts: OpenCodeProxyLifecycleOptions,\n): Promise<ProxyHandle> {\n const host = ctx.config.host ?? '127.0.0.1';\n assertLoopbackHost(host);\n const port = ctx.config.port ?? opts.defaultPort;\n const authMode = ctx.config.options?.authMode;\n if (\n authMode !== undefined &&\n authMode !== 'auto' &&\n authMode !== 'public' &&\n authMode !== 'api'\n ) {\n throw new AnyPickError('OpenCode auth mode must be auto, public, or api.', 'INVALID_USAGE');\n }\n await ensureDir(ctx.runtimeDir);\n const logPath = join(ctx.runtimeDir, 'proxy.log');\n const pidPath = join(ctx.runtimeDir, 'proxy.pid');\n await writeFile(logPath, '', { mode: 0o600 });\n\n const poolDirs = Array.isArray(ctx.config.options?.authDirs)\n ? (ctx.config.options.authDirs as unknown[]).filter(\n (dir): dir is string => typeof dir === 'string' && dir.trim().length > 0,\n )\n : [];\n const poolAuthPaths = poolDirs.map((dir) => join(dir, 'auth.json'));\n const poolAccountNames = Array.isArray(ctx.config.options?.quotaGuardAccountNames)\n ? (ctx.config.options.quotaGuardAccountNames as unknown[]).filter(\n (name): name is string => typeof name === 'string' && name.trim().length > 0,\n )\n : [];\n // A pool must be isolated from whichever unrelated account happens to be\n // live in ~/.local/share/opencode. Its configured member order is the\n // credential failover order.\n const authPath =\n poolAuthPaths[0] ??\n ((await pathExists(opts.authPath)) ? opts.authPath : join(ctx.snapshotDir, 'auth.json'));\n\n if (authMode !== 'public' && !(await pathExists(authPath))) {\n throw new AnyPickError(\n 'No OpenCode auth available. Run: opencode auth login then anypick add account opencode --current --name <name>',\n 'NO_LIVE_AUTH',\n );\n }\n\n // Proxy needs a Zen/Go API key (oauth-only accounts cannot drive this proxy)\n try {\n const data = await readJsonFile<Record<string, unknown>>(authPath);\n if (authMode === 'api' && listZenGoCredentials(data).length === 0) {\n throw new AnyPickError(\n 'OpenCode proxy needs a Zen/Go API key in auth.json (opencode auth login → OpenCode Zen or Go). OAuth providers (ChatGPT, etc.) are activated via anypick use, not this proxy.',\n 'NO_LIVE_AUTH',\n );\n }\n } catch (err) {\n if (err instanceof AnyPickError) {\n throw err;\n }\n // unreadable — let proxy process fail with clearer log\n }\n\n // Optional single-upstream override (tests). Default: dual zen+go, route by model.\n const upstream =\n (typeof ctx.config.options?.upstream === 'string' ? ctx.config.options.upstream : undefined) ??\n process.env.OPENCODE_PROXY_UPSTREAM ??\n undefined;\n\n const subArgs = [\n 'proxy',\n 'serve',\n 'opencode',\n '--port',\n String(port),\n '--host',\n host,\n '--auth-mode',\n authMode ?? 'auto',\n ];\n if (authMode !== 'public') {\n subArgs.push('--auth-path', authPath);\n }\n if (poolAuthPaths.length > 1) {\n // auth-path already contains the primary member. Do not repeat it: the\n // account-name vector must remain exactly aligned with the credential ring.\n subArgs.push('--auth-paths', poolAuthPaths.slice(1).join(','));\n }\n if (poolAccountNames.length > 0) {\n subArgs.push('--auth-account-names', poolAccountNames.join(','));\n }\n const quotaGuard = ctx.config.options?.quotaGuard;\n if (quotaGuard && typeof quotaGuard === 'object' && !Array.isArray(quotaGuard)) {\n const policy = quotaGuard as Record<string, unknown>;\n if (policy.enabled === true) {\n subArgs.push('--quota-guard');\n if (typeof policy.cooldownMs === 'number' && Number.isFinite(policy.cooldownMs)) {\n subArgs.push(\n '--quota-guard-cooldown-ms',\n String(Math.max(1_000, Math.floor(policy.cooldownMs))),\n );\n }\n subArgs.push('--quota-guard-state', join(ctx.runtimeDir, 'quota-guard.json'));\n }\n }\n if (upstream) {\n subArgs.push('--upstream', upstream);\n }\n const modelMetadataUrl = ctx.config.options?.modelMetadataUrl;\n if (modelMetadataUrl === false) {\n subArgs.push('--model-metadata-url', 'none');\n } else if (typeof modelMetadataUrl === 'string' && modelMetadataUrl.trim()) {\n subArgs.push('--model-metadata-url', modelMetadataUrl.trim());\n }\n\n const launch = resolveAnyPickCliLaunch(subArgs);\n if (!(await pathExists(launch.entry))) {\n throw new AnyPickError(\n `AnyPick CLI entry not found at ${launch.entry}. Run: pnpm build`,\n 'PROXY_BINARY_MISSING',\n );\n }\n\n const endpoint = `http://${host}:${port}`;\n const { pid, instanceId } = await spawnDetached(launch.command, launch.args, {\n logPath,\n pidPath,\n endpoint,\n provider: 'opencode',\n account: ctx.accountName,\n env: {\n ...process.env,\n OPENCODE_AUTH_PATH: authPath,\n ...(ctx.token ? { ANYPICK_PROXY_TOKEN: ctx.token } : {}),\n ANYPICK_PROXY_LOG: logPath,\n ...(launch.watch ? { ANYPICK_DEV_WATCH: process.env.ANYPICK_DEV_WATCH ?? '1' } : {}),\n },\n });\n\n const ready = await waitForHttp(`${endpoint}/health`, {\n timeoutMs: launch.watch ? 15_000 : 5_000,\n requirePid: pid,\n expectInstanceId: instanceId,\n });\n\n if (!ready || !isProcessRunning(pid)) {\n const { readFile } = await import('node:fs/promises');\n let tail = '';\n try {\n const raw = await readFile(logPath, 'utf8');\n tail = raw.split(/\\r?\\n/).slice(-20).join('\\n');\n } catch {\n // ignore\n }\n // Only stop the child we just spawned (our pid file) — not whatever held the port\n if (isProcessRunning(pid)) {\n try {\n process.kill(pid, 'SIGTERM');\n } catch {\n // ignore\n }\n }\n throw new AnyPickError(\n `OpenCode proxy failed to bind ${host}:${port} (port busy or crash). AnyPick will try the next free port on retry.${tail ? `\\n${tail}` : ''}`,\n 'PROXY_START_FAILED',\n );\n }\n\n return {\n endpoint,\n compatibility: opts.compatibility,\n pid,\n instanceId,\n token: ctx.token,\n logPath,\n };\n}\n\nexport async function stopOpenCodeProxy(ctx: ProxyContext): Promise<void> {\n await stopPidFile(join(ctx.runtimeDir, 'proxy.pid'));\n}\n\nexport async function openCodeProxyStatus(\n ctx: ProxyContext,\n compatibility: string,\n defaultPort: number,\n): Promise<ProxyStatus> {\n const pidPath = join(ctx.runtimeDir, 'proxy.pid');\n const logPath = join(ctx.runtimeDir, 'proxy.log');\n const pid = await readPidFile(pidPath);\n const running = pid != null && isProcessRunning(pid);\n const host = ctx.config.host ?? '127.0.0.1';\n const port = ctx.config.port ?? defaultPort;\n\n let detail: string | undefined;\n if (!running) {\n detail = ctx.config.enabled ? 'stopped · zen+go by model' : 'disabled';\n } else {\n try {\n const endpoint = `http://${host}:${port}`;\n const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2000) });\n if (res.ok) {\n const h = (await res.json()) as {\n credential?: { models?: { total?: number; zen?: number; goOnly?: number } };\n };\n const m = h.credential?.models;\n detail = m\n ? `zen+go · ${m.total ?? '?'} models (${m.zen ?? '?'} zen, ${m.goOnly ?? '?'} go-only)`\n : 'zen+go · route by model';\n } else {\n detail = 'running';\n }\n } catch {\n detail = 'running';\n }\n }\n\n return {\n enabled: ctx.config.enabled,\n running,\n port,\n host,\n endpoint: running ? `http://${host}:${port}` : undefined,\n compatibility,\n pid: running ? (pid ?? undefined) : undefined,\n logPath: (await pathExists(logPath)) ? logPath : undefined,\n detail,\n };\n}\n\nexport async function readOpenCodeProxyLogs(ctx: ProxyContext, lines = 50): Promise<string> {\n const logPath = join(ctx.runtimeDir, 'proxy.log');\n if (!(await pathExists(logPath))) {\n return '(no log file yet)';\n }\n const { readFile } = await import('node:fs/promises');\n const raw = await readFile(logPath, 'utf8');\n const all = raw.split(/\\r?\\n/);\n return all.slice(Math.max(0, all.length - lines)).join('\\n');\n}\n"],"mappings":";;;;;;;;;;AAsBA,eAAsB,mBACpB,KACA,MACsB;CACtB,MAAM,OAAO,IAAI,OAAO,QAAQ;CAChC,mBAAmB,IAAI;CACvB,MAAM,OAAO,IAAI,OAAO,QAAQ,KAAK;CACrC,MAAM,WAAW,IAAI,OAAO,SAAS;CACrC,IACE,aAAa,KAAA,KACb,aAAa,UACb,aAAa,YACb,aAAa,OAEb,MAAM,IAAI,aAAa,oDAAoD,eAAe;CAE5F,MAAM,UAAU,IAAI,UAAU;CAC9B,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;CAChD,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;CAChD,MAAM,UAAU,SAAS,IAAI,EAAE,MAAM,IAAM,CAAC;CAO5C,MAAM,iBALW,MAAM,QAAQ,IAAI,OAAO,SAAS,QAAQ,IACtD,IAAI,OAAO,QAAQ,SAAuB,QACxC,QAAuB,OAAO,QAAQ,YAAY,IAAI,KAAK,CAAC,CAAC,SAAS,CACzE,IACA,CAAC,EAAA,CAC0B,KAAK,QAAQ,KAAK,KAAK,WAAW,CAAC;CAClE,MAAM,mBAAmB,MAAM,QAAQ,IAAI,OAAO,SAAS,sBAAsB,IAC5E,IAAI,OAAO,QAAQ,uBAAqC,QACtD,SAAyB,OAAO,SAAS,YAAY,KAAK,KAAK,CAAC,CAAC,SAAS,CAC7E,IACA,CAAC;CAIL,MAAM,WACJ,cAAc,OACZ,MAAM,WAAW,KAAK,QAAQ,IAAK,KAAK,WAAW,KAAK,IAAI,aAAa,WAAW;CAExF,IAAI,aAAa,YAAY,CAAE,MAAM,WAAW,QAAQ,GACtD,MAAM,IAAI,aACR,oHACA,cACF;CAIF,IAAI;EACF,MAAM,OAAO,MAAM,aAAsC,QAAQ;EACjE,IAAI,aAAa,SAAS,qBAAqB,IAAI,CAAC,CAAC,WAAW,GAC9D,MAAM,IAAI,aACR,iLACA,cACF;CAEJ,SAAS,KAAK;EACZ,IAAI,eAAe,cACjB,MAAM;CAGV;CAGA,MAAM,YACH,OAAO,IAAI,OAAO,SAAS,aAAa,WAAW,IAAI,OAAO,QAAQ,WAAW,KAAA,MAClF,QAAQ,IAAI,2BACZ,KAAA;CAEF,MAAM,UAAU;EACd;EACA;EACA;EACA;EACA,OAAO,IAAI;EACX;EACA;EACA;EACA,YAAY;CACd;CACA,IAAI,aAAa,UACf,QAAQ,KAAK,eAAe,QAAQ;CAEtC,IAAI,cAAc,SAAS,GAGzB,QAAQ,KAAK,gBAAgB,cAAc,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;CAE/D,IAAI,iBAAiB,SAAS,GAC5B,QAAQ,KAAK,wBAAwB,iBAAiB,KAAK,GAAG,CAAC;CAEjE,MAAM,aAAa,IAAI,OAAO,SAAS;CACvC,IAAI,cAAc,OAAO,eAAe,YAAY,CAAC,MAAM,QAAQ,UAAU,GAAG;EAC9E,MAAM,SAAS;EACf,IAAI,OAAO,YAAY,MAAM;GAC3B,QAAQ,KAAK,eAAe;GAC5B,IAAI,OAAO,OAAO,eAAe,YAAY,OAAO,SAAS,OAAO,UAAU,GAC5E,QAAQ,KACN,6BACA,OAAO,KAAK,IAAI,KAAO,KAAK,MAAM,OAAO,UAAU,CAAC,CAAC,CACvD;GAEF,QAAQ,KAAK,uBAAuB,KAAK,IAAI,YAAY,kBAAkB,CAAC;EAC9E;CACF;CACA,IAAI,UACF,QAAQ,KAAK,cAAc,QAAQ;CAErC,MAAM,mBAAmB,IAAI,OAAO,SAAS;CAC7C,IAAI,qBAAqB,OACvB,QAAQ,KAAK,wBAAwB,MAAM;MACtC,IAAI,OAAO,qBAAqB,YAAY,iBAAiB,KAAK,GACvE,QAAQ,KAAK,wBAAwB,iBAAiB,KAAK,CAAC;CAG9D,MAAM,SAAS,wBAAwB,OAAO;CAC9C,IAAI,CAAE,MAAM,WAAW,OAAO,KAAK,GACjC,MAAM,IAAI,aACR,kCAAkC,OAAO,MAAM,oBAC/C,sBACF;CAGF,MAAM,WAAW,UAAU,KAAK,GAAG;CACnC,MAAM,EAAE,KAAK,eAAe,MAAM,cAAc,OAAO,SAAS,OAAO,MAAM;EAC3E;EACA;EACA;EACA,UAAU;EACV,SAAS,IAAI;EACb,KAAK;GACH,GAAG,QAAQ;GACX,oBAAoB;GACpB,GAAI,IAAI,QAAQ,EAAE,qBAAqB,IAAI,MAAM,IAAI,CAAC;GACtD,mBAAmB;GACnB,GAAI,OAAO,QAAQ,EAAE,mBAAmB,QAAQ,IAAI,qBAAqB,IAAI,IAAI,CAAC;EACpF;CACF,CAAC;CAQD,IAAI,CAAC,MANe,YAAY,GAAG,SAAS,UAAU;EACpD,WAAW,OAAO,QAAQ,OAAS;EACnC,YAAY;EACZ,kBAAkB;CACpB,CAAC,KAEa,CAAC,iBAAiB,GAAG,GAAG;EACpC,MAAM,EAAE,aAAa,MAAM,OAAO;EAClC,IAAI,OAAO;EACX,IAAI;GAEF,QAAO,MADW,SAAS,SAAS,MAAM,EAAA,CAC/B,MAAM,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;EAChD,QAAQ,CAER;EAEA,IAAI,iBAAiB,GAAG,GACtB,IAAI;GACF,QAAQ,KAAK,KAAK,SAAS;EAC7B,QAAQ,CAER;EAEF,MAAM,IAAI,aACR,iCAAiC,KAAK,GAAG,KAAK,sEAAsE,OAAO,KAAK,SAAS,MACzI,oBACF;CACF;CAEA,OAAO;EACL;EACA,eAAe,KAAK;EACpB;EACA;EACA,OAAO,IAAI;EACX;CACF;AACF;AAEA,eAAsB,kBAAkB,KAAkC;CACxE,MAAM,YAAY,KAAK,IAAI,YAAY,WAAW,CAAC;AACrD;AAEA,eAAsB,oBACpB,KACA,eACA,aACsB;CACtB,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;CAChD,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;CAChD,MAAM,MAAM,MAAM,YAAY,OAAO;CACrC,MAAM,UAAU,OAAO,QAAQ,iBAAiB,GAAG;CACnD,MAAM,OAAO,IAAI,OAAO,QAAQ;CAChC,MAAM,OAAO,IAAI,OAAO,QAAQ;CAEhC,IAAI;CACJ,IAAI,CAAC,SACH,SAAS,IAAI,OAAO,UAAU,8BAA8B;MAE5D,IAAI;EACF,MAAM,WAAW,UAAU,KAAK,GAAG;EACnC,MAAM,MAAM,MAAM,MAAM,GAAG,SAAS,UAAU,EAAE,QAAQ,YAAY,QAAQ,GAAI,EAAE,CAAC;EACnF,IAAI,IAAI,IAAI;GAIV,MAAM,KAAI,MAHO,IAAI,KAAK,EAAA,CAGd,YAAY;GACxB,SAAS,IACL,YAAY,EAAE,SAAS,IAAI,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,UAAU,IAAI,aAC3E;EACN,OACE,SAAS;CAEb,QAAQ;EACN,SAAS;CACX;CAGF,OAAO;EACL,SAAS,IAAI,OAAO;EACpB;EACA;EACA;EACA,UAAU,UAAU,UAAU,KAAK,GAAG,SAAS,KAAA;EAC/C;EACA,KAAK,UAAW,OAAO,KAAA,IAAa,KAAA;EACpC,SAAU,MAAM,WAAW,OAAO,IAAK,UAAU,KAAA;EACjD;CACF;AACF;AAEA,eAAsB,sBAAsB,KAAmB,QAAQ,IAAqB;CAC1F,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;CAChD,IAAI,CAAE,MAAM,WAAW,OAAO,GAC5B,OAAO;CAET,MAAM,EAAE,aAAa,MAAM,OAAO;CAElC,MAAM,OAAM,MADM,SAAS,SAAS,MAAM,EAAA,CAC1B,MAAM,OAAO;CAC7B,OAAO,IAAI,MAAM,KAAK,IAAI,GAAG,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;AAC7D"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { Account, AccountMeta, LiveAuthStatus, ModelDiscoveryContext, Provider, ProxyContext, ProxyHubBackendContext, ProxyHubBackendHandle, ProxyHandle, ProxyStatus, SourceAdapter } from '../types.js';
|
|
2
|
-
export declare class OpenCodeProvider implements Provider {
|
|
3
|
-
private readonly home;
|
|
4
|
-
readonly id = "opencode";
|
|
5
|
-
readonly name = "OpenCode";
|
|
6
|
-
readonly shortName = "OpenCode";
|
|
7
|
-
readonly description = "Manages OpenCode CLI auth (oauth + api keys) + optional Zen/Go proxy";
|
|
8
|
-
readonly defaultProxyPort = 4120;
|
|
9
|
-
readonly proxyCompatibility = "OpenAI + Anthropic API";
|
|
10
|
-
roleDefaults(): Record<string, string>;
|
|
11
|
-
fetchLiveModels(ctx: ModelDiscoveryContext): Promise<readonly string[]>;
|
|
12
|
-
constructor(home?: string);
|
|
13
|
-
sourceAdapter(account: Account): SourceAdapter;
|
|
14
|
-
poolSourceAdapter(): SourceAdapter;
|
|
15
|
-
createProxyHubBackend(ctx: ProxyHubBackendContext): Promise<ProxyHubBackendHandle>;
|
|
16
|
-
private get dataDir();
|
|
17
|
-
private get authPath();
|
|
18
|
-
private get accountPath();
|
|
19
|
-
detectLive(): Promise<LiveAuthStatus>;
|
|
20
|
-
backup(destDir: string): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>>;
|
|
21
|
-
restore(srcDir: string): Promise<void>;
|
|
22
|
-
describeSnapshot(srcDir: string): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>>;
|
|
23
|
-
/**
|
|
24
|
-
* Clear local OpenCode auth only — does NOT revoke OAuth / API keys server-side.
|
|
25
|
-
* Saved anypick snapshots stay valid for later restore (same as codex stash).
|
|
26
|
-
*/
|
|
27
|
-
clearLive(): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Refresh OAuth tokens inside a snapshot (openai ChatGPT, etc.).
|
|
30
|
-
* API-key providers are left as-is.
|
|
31
|
-
*/
|
|
32
|
-
refreshAuth(authDir: string): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>>;
|
|
33
|
-
snapshotMatchesLive(snapshotDir: string): Promise<boolean>;
|
|
34
|
-
startProxy(ctx: ProxyContext): Promise<ProxyHandle>;
|
|
35
|
-
stopProxy(ctx: ProxyContext): Promise<void>;
|
|
36
|
-
proxyStatus(ctx: ProxyContext): Promise<ProxyStatus>;
|
|
37
|
-
readProxyLogs(ctx: ProxyContext, lines?: number): Promise<string>;
|
|
38
|
-
}
|
|
39
|
-
export declare const opencodeProvider: OpenCodeProvider;
|
|
40
|
-
//# sourceMappingURL=opencode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAiDlB,qBAAa,gBAAiB,YAAW,QAAQ;IAsCnC,OAAO,CAAC,QAAQ,CAAC,IAAI;IArCjC,QAAQ,CAAC,EAAE,cAAc;IACzB,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,SAAS,cAAc;IAChC,QAAQ,CAAC,WAAW,0EAA0E;IAC9F,QAAQ,CAAC,gBAAgB,QAAgB;IACzC,QAAQ,CAAC,kBAAkB,4BAA4B;IAIvD,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAErC;IAEK,eAAe,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAsB5E;IAED,YAA6B,IAAI,SAAY,EAAI;IAEjD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAE7C;IAED,iBAAiB,IAAI,aAAa,CAEjC;IAEK,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0BvF;IAED,OAAO,KAAK,OAAO,GASlB;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,WAAW,GAEtB;IAEK,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC,CAiB1C;IAEK,MAAM,CACV,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAarE;IAEK,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3C;IAEK,gBAAgB,CACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAWrE;IAED;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAS/B;IAED;;;OAGG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CASrE;IAEK,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/D;IAIK,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAMxD;IAEK,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhD;IAEK,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAEzD;IAEK,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;CACF;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { backupRequiredFile, copyFileSafe, ensureDir, pathExists, readJsonFile, restoreRequiredFile, writeJsonFile } from "../utils/fs.js";
|
|
2
|
-
import { fetchOpenAiStyleModels } from "../catalog/model-fetch.js";
|
|
3
|
-
import { opencodeAccountAdapter, poolAdapterFor } from "../sources/account-adapters.js";
|
|
4
|
-
import { rolesFromLiveDiscovery } from "./model-policy.js";
|
|
5
|
-
import { closeProxyHubBackend } from "./proxy-hub-backend.js";
|
|
6
|
-
import { extractOpenCodeIdentity, hasAnyAuth, refreshOpenCodeAuth, summarizeAuth } from "./opencode-auth.js";
|
|
7
|
-
import { snapshotMatchesLiveDefault } from "./auth-fingerprint.js";
|
|
8
|
-
import { loadOpenCodeCredential } from "./opencode-proxy/auth.js";
|
|
9
|
-
import { openCodeProxyStatus, readOpenCodeProxyLogs, startOpenCodeProxy, stopOpenCodeProxy } from "./opencode-proxy-lifecycle.js";
|
|
10
|
-
import { listenOpenCodeProxy } from "./opencode-proxy/server.js";
|
|
11
|
-
import { join } from "node:path";
|
|
12
|
-
import { homedir } from "node:os";
|
|
13
|
-
//#region src/providers/opencode.ts
|
|
14
|
-
/**
|
|
15
|
-
* OpenCode CLI — multi-provider auth (like Codex) + optional Zen/Go proxy.
|
|
16
|
-
*
|
|
17
|
-
* Live auth: ~/.local/share/opencode/auth.json
|
|
18
|
-
*
|
|
19
|
-
* Auth entry types (per provider id):
|
|
20
|
-
* oauth — ChatGPT Plus/Pro, GitLab, xAI SuperGrok, … (refreshable)
|
|
21
|
-
* api — API keys (OpenCode Zen/Go, DeepSeek, MiniMax, …)
|
|
22
|
-
* wellknown — remote org tokens
|
|
23
|
-
*
|
|
24
|
-
* Optional companion: account.json (multi-account map)
|
|
25
|
-
*
|
|
26
|
-
* Built-in proxy (optional) uses Zen/Go **api** keys only:
|
|
27
|
-
* Go: https://opencode.ai/zen/go/v1
|
|
28
|
-
* Zen: https://opencode.ai/zen/v1
|
|
29
|
-
* Dual protocol for Codex + Claude Code.
|
|
30
|
-
*/
|
|
31
|
-
var DEFAULT_PORT = 4120;
|
|
32
|
-
var OpenCodeProvider = class {
|
|
33
|
-
home;
|
|
34
|
-
id = "opencode";
|
|
35
|
-
name = "OpenCode";
|
|
36
|
-
shortName = "OpenCode";
|
|
37
|
-
description = "Manages OpenCode CLI auth (oauth + api keys) + optional Zen/Go proxy";
|
|
38
|
-
defaultProxyPort = DEFAULT_PORT;
|
|
39
|
-
proxyCompatibility = "OpenAI + Anthropic API";
|
|
40
|
-
roleDefaults() {
|
|
41
|
-
return rolesFromLiveDiscovery();
|
|
42
|
-
}
|
|
43
|
-
async fetchLiveModels(ctx) {
|
|
44
|
-
let apiKey = ctx.apiKey;
|
|
45
|
-
if (!apiKey && await pathExists(this.authPath)) try {
|
|
46
|
-
apiKey = (await loadOpenCodeCredential(this.authPath)).apiKey;
|
|
47
|
-
} catch {}
|
|
48
|
-
const discoveryCtx = {
|
|
49
|
-
...ctx,
|
|
50
|
-
...apiKey ? { apiKey } : {}
|
|
51
|
-
};
|
|
52
|
-
const zenModels = await fetchOpenAiStyleModels({
|
|
53
|
-
...discoveryCtx,
|
|
54
|
-
endpoint: ctx.endpoint ?? "https://opencode.ai/zen"
|
|
55
|
-
});
|
|
56
|
-
const goModels = await fetchOpenAiStyleModels({
|
|
57
|
-
...discoveryCtx,
|
|
58
|
-
endpoint: ctx.endpoint ? `${ctx.endpoint.replace(/\/$/, "")}/go` : "https://opencode.ai/zen/go"
|
|
59
|
-
});
|
|
60
|
-
return [.../* @__PURE__ */ new Set([...zenModels, ...goModels])];
|
|
61
|
-
}
|
|
62
|
-
constructor(home = homedir()) {
|
|
63
|
-
this.home = home;
|
|
64
|
-
}
|
|
65
|
-
sourceAdapter(account) {
|
|
66
|
-
return opencodeAccountAdapter(account);
|
|
67
|
-
}
|
|
68
|
-
poolSourceAdapter() {
|
|
69
|
-
return poolAdapterFor(this.id, this);
|
|
70
|
-
}
|
|
71
|
-
async createProxyHubBackend(ctx) {
|
|
72
|
-
const [primary, ...rest] = ctx.accounts;
|
|
73
|
-
if (!primary) throw new Error("OpenCode Hub backend requires at least one account");
|
|
74
|
-
const options = primary.proxy.options ?? {};
|
|
75
|
-
const authMode = options.authMode === "public" || options.authMode === "api" || options.authMode === "auto" ? options.authMode : "auto";
|
|
76
|
-
const { server, endpoint } = await listenOpenCodeProxy({
|
|
77
|
-
host: "127.0.0.1",
|
|
78
|
-
port: 0,
|
|
79
|
-
authPath: join(primary.snapshotDir, "auth.json"),
|
|
80
|
-
authPaths: rest.map((account) => join(account.snapshotDir, "auth.json")),
|
|
81
|
-
authAccountNames: ctx.accounts.map((account) => account.name),
|
|
82
|
-
authMode,
|
|
83
|
-
upstream: typeof options.upstream === "string" ? options.upstream : void 0,
|
|
84
|
-
modelMetadataUrl: options.modelMetadataUrl === false || typeof options.modelMetadataUrl === "string" ? options.modelMetadataUrl : void 0,
|
|
85
|
-
token: ctx.token,
|
|
86
|
-
log: ctx.log
|
|
87
|
-
});
|
|
88
|
-
return {
|
|
89
|
-
endpoint,
|
|
90
|
-
close: () => closeProxyHubBackend(server)
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
get dataDir() {
|
|
94
|
-
if (process.env.OPENCODE_DATA_DIR) return process.env.OPENCODE_DATA_DIR;
|
|
95
|
-
return join(this.home === homedir() && process.env.XDG_DATA_HOME ? process.env.XDG_DATA_HOME : join(this.home, ".local", "share"), "opencode");
|
|
96
|
-
}
|
|
97
|
-
get authPath() {
|
|
98
|
-
return process.env.OPENCODE_AUTH_PATH ?? join(this.dataDir, "auth.json");
|
|
99
|
-
}
|
|
100
|
-
get accountPath() {
|
|
101
|
-
return join(this.dataDir, "account.json");
|
|
102
|
-
}
|
|
103
|
-
async detectLive() {
|
|
104
|
-
if (!await pathExists(this.authPath)) return { present: false };
|
|
105
|
-
try {
|
|
106
|
-
const data = await readJsonFile(this.authPath);
|
|
107
|
-
if (!hasAnyAuth(data)) return { present: false };
|
|
108
|
-
return {
|
|
109
|
-
present: true,
|
|
110
|
-
identity: extractOpenCodeIdentity(data),
|
|
111
|
-
details: summarizeAuth(data)
|
|
112
|
-
};
|
|
113
|
-
} catch {
|
|
114
|
-
return {
|
|
115
|
-
present: true,
|
|
116
|
-
details: "auth.json present (unreadable)"
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
async backup(destDir) {
|
|
121
|
-
await ensureDir(destDir);
|
|
122
|
-
await backupRequiredFile(this.authPath, join(destDir, "auth.json"), "OpenCode auth.json");
|
|
123
|
-
if (await pathExists(this.accountPath)) await copyFileSafe(this.accountPath, join(destDir, "account.json"));
|
|
124
|
-
try {
|
|
125
|
-
return { identity: extractOpenCodeIdentity(await readJsonFile(join(destDir, "auth.json"))) };
|
|
126
|
-
} catch {
|
|
127
|
-
return {};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
async restore(srcDir) {
|
|
131
|
-
await ensureDir(this.dataDir);
|
|
132
|
-
await restoreRequiredFile(join(srcDir, "auth.json"), this.authPath, "auth.json");
|
|
133
|
-
const accountSrc = join(srcDir, "account.json");
|
|
134
|
-
if (await pathExists(accountSrc)) await copyFileSafe(accountSrc, this.accountPath);
|
|
135
|
-
}
|
|
136
|
-
async describeSnapshot(srcDir) {
|
|
137
|
-
const path = join(srcDir, "auth.json");
|
|
138
|
-
if (!await pathExists(path)) return {};
|
|
139
|
-
try {
|
|
140
|
-
return { identity: extractOpenCodeIdentity(await readJsonFile(path)) };
|
|
141
|
-
} catch {
|
|
142
|
-
return {};
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Clear local OpenCode auth only — does NOT revoke OAuth / API keys server-side.
|
|
147
|
-
* Saved anypick snapshots stay valid for later restore (same as codex stash).
|
|
148
|
-
*/
|
|
149
|
-
async clearLive() {
|
|
150
|
-
const { rm } = await import("node:fs/promises");
|
|
151
|
-
for (const p of [this.authPath, this.accountPath]) try {
|
|
152
|
-
await rm(p, { force: true });
|
|
153
|
-
} catch {}
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Refresh OAuth tokens inside a snapshot (openai ChatGPT, etc.).
|
|
157
|
-
* API-key providers are left as-is.
|
|
158
|
-
*/
|
|
159
|
-
async refreshAuth(authDir) {
|
|
160
|
-
const path = join(authDir, "auth.json");
|
|
161
|
-
if (!await pathExists(path)) throw new Error(`No auth.json in ${authDir}`);
|
|
162
|
-
const { data, identity } = await refreshOpenCodeAuth(await readJsonFile(path));
|
|
163
|
-
await writeJsonFile(path, data, 384);
|
|
164
|
-
return { identity };
|
|
165
|
-
}
|
|
166
|
-
async snapshotMatchesLive(snapshotDir) {
|
|
167
|
-
return snapshotMatchesLiveDefault("opencode", snapshotDir);
|
|
168
|
-
}
|
|
169
|
-
async startProxy(ctx) {
|
|
170
|
-
return startOpenCodeProxy(ctx, {
|
|
171
|
-
authPath: this.authPath,
|
|
172
|
-
compatibility: this.proxyCompatibility,
|
|
173
|
-
defaultPort: DEFAULT_PORT
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
async stopProxy(ctx) {
|
|
177
|
-
await stopOpenCodeProxy(ctx);
|
|
178
|
-
}
|
|
179
|
-
async proxyStatus(ctx) {
|
|
180
|
-
return openCodeProxyStatus(ctx, this.proxyCompatibility, DEFAULT_PORT);
|
|
181
|
-
}
|
|
182
|
-
async readProxyLogs(ctx, lines = 50) {
|
|
183
|
-
return readOpenCodeProxyLogs(ctx, lines);
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
var opencodeProvider = new OpenCodeProvider();
|
|
187
|
-
//#endregion
|
|
188
|
-
export { OpenCodeProvider, opencodeProvider };
|
|
189
|
-
|
|
190
|
-
//# sourceMappingURL=opencode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","names":[],"sources":["../../src/providers/opencode.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { homedir } from 'node:os';\nimport type {\n Account,\n AccountMeta,\n LiveAuthStatus,\n ModelDiscoveryContext,\n Provider,\n ProxyContext,\n ProxyHubBackendContext,\n ProxyHubBackendHandle,\n ProxyHandle,\n ProxyStatus,\n SourceAdapter,\n} from '../types';\nimport { opencodeAccountAdapter, poolAdapterFor } from '../sources/account-adapters';\nimport {\n backupRequiredFile,\n copyFileSafe,\n ensureDir,\n pathExists,\n readJsonFile,\n restoreRequiredFile,\n writeJsonFile,\n} from '../utils/fs';\nimport { snapshotMatchesLiveDefault } from './auth-fingerprint';\nimport {\n extractOpenCodeIdentity,\n hasAnyAuth,\n refreshOpenCodeAuth,\n summarizeAuth,\n} from './opencode-auth';\nimport { rolesFromLiveDiscovery } from './model-policy';\nimport {\n startOpenCodeProxy,\n stopOpenCodeProxy,\n openCodeProxyStatus,\n readOpenCodeProxyLogs,\n} from './opencode-proxy-lifecycle';\nimport { listenOpenCodeProxy } from './opencode-proxy/server';\nimport { closeProxyHubBackend } from './proxy-hub-backend';\nimport { fetchOpenAiStyleModels } from '../catalog/model-fetch';\nimport { loadOpenCodeCredential } from './opencode-proxy/auth';\n\n/**\n * OpenCode CLI — multi-provider auth (like Codex) + optional Zen/Go proxy.\n *\n * Live auth: ~/.local/share/opencode/auth.json\n *\n * Auth entry types (per provider id):\n * oauth — ChatGPT Plus/Pro, GitLab, xAI SuperGrok, … (refreshable)\n * api — API keys (OpenCode Zen/Go, DeepSeek, MiniMax, …)\n * wellknown — remote org tokens\n *\n * Optional companion: account.json (multi-account map)\n *\n * Built-in proxy (optional) uses Zen/Go **api** keys only:\n * Go: https://opencode.ai/zen/go/v1\n * Zen: https://opencode.ai/zen/v1\n * Dual protocol for Codex + Claude Code.\n */\nconst DEFAULT_PORT = 4120;\n\nexport class OpenCodeProvider implements Provider {\n readonly id = 'opencode';\n readonly name = 'OpenCode';\n readonly shortName = 'OpenCode';\n readonly description = 'Manages OpenCode CLI auth (oauth + api keys) + optional Zen/Go proxy';\n readonly defaultProxyPort = DEFAULT_PORT;\n readonly proxyCompatibility = 'OpenAI + Anthropic API';\n\n // Static Claude maps mislead the OpenCode proxy — the real list comes from\n // /v1/models, which reflects the account's Zen/Go entitlements.\n roleDefaults(): Record<string, string> {\n return rolesFromLiveDiscovery();\n }\n\n async fetchLiveModels(ctx: ModelDiscoveryContext): Promise<readonly string[]> {\n let apiKey = ctx.apiKey;\n if (!apiKey && (await pathExists(this.authPath))) {\n try {\n const cred = await loadOpenCodeCredential(this.authPath);\n apiKey = cred.apiKey;\n } catch {\n // ignore\n }\n }\n const discoveryCtx = { ...ctx, ...(apiKey ? { apiKey } : {}) };\n const zenModels = await fetchOpenAiStyleModels({\n ...discoveryCtx,\n endpoint: ctx.endpoint ?? 'https://opencode.ai/zen',\n });\n const goModels = await fetchOpenAiStyleModels({\n ...discoveryCtx,\n endpoint: ctx.endpoint\n ? `${ctx.endpoint.replace(/\\/$/, '')}/go`\n : 'https://opencode.ai/zen/go',\n });\n return [...new Set([...zenModels, ...goModels])];\n }\n\n constructor(private readonly home = homedir()) {}\n\n sourceAdapter(account: Account): SourceAdapter {\n return opencodeAccountAdapter(account);\n }\n\n poolSourceAdapter(): SourceAdapter {\n return poolAdapterFor(this.id, this);\n }\n\n async createProxyHubBackend(ctx: ProxyHubBackendContext): Promise<ProxyHubBackendHandle> {\n const [primary, ...rest] = ctx.accounts;\n if (!primary) {\n throw new Error('OpenCode Hub backend requires at least one account');\n }\n const options = primary.proxy.options ?? {};\n const authMode =\n options.authMode === 'public' || options.authMode === 'api' || options.authMode === 'auto'\n ? options.authMode\n : 'auto';\n const { server, endpoint } = await listenOpenCodeProxy({\n host: '127.0.0.1',\n port: 0,\n authPath: join(primary.snapshotDir, 'auth.json'),\n authPaths: rest.map((account) => join(account.snapshotDir, 'auth.json')),\n authAccountNames: ctx.accounts.map((account) => account.name),\n authMode,\n upstream: typeof options.upstream === 'string' ? options.upstream : undefined,\n modelMetadataUrl:\n options.modelMetadataUrl === false || typeof options.modelMetadataUrl === 'string'\n ? options.modelMetadataUrl\n : undefined,\n token: ctx.token,\n log: ctx.log,\n });\n return { endpoint, close: () => closeProxyHubBackend(server) };\n }\n\n private get dataDir(): string {\n if (process.env.OPENCODE_DATA_DIR) {\n return process.env.OPENCODE_DATA_DIR;\n }\n const xdgShare =\n this.home === homedir() && process.env.XDG_DATA_HOME\n ? process.env.XDG_DATA_HOME\n : join(this.home, '.local', 'share');\n return join(xdgShare, 'opencode');\n }\n\n private get authPath(): string {\n return process.env.OPENCODE_AUTH_PATH ?? join(this.dataDir, 'auth.json');\n }\n\n private get accountPath(): string {\n return join(this.dataDir, 'account.json');\n }\n\n async detectLive(): Promise<LiveAuthStatus> {\n if (!(await pathExists(this.authPath))) {\n return { present: false };\n }\n try {\n const data = await readJsonFile<Record<string, unknown>>(this.authPath);\n if (!hasAnyAuth(data)) {\n return { present: false };\n }\n return {\n present: true,\n identity: extractOpenCodeIdentity(data),\n details: summarizeAuth(data),\n };\n } catch {\n return { present: true, details: 'auth.json present (unreadable)' };\n }\n }\n\n async backup(\n destDir: string,\n ): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>> {\n await ensureDir(destDir);\n await backupRequiredFile(this.authPath, join(destDir, 'auth.json'), 'OpenCode auth.json');\n // Best-effort multi-account map (OpenCode may keep parallel accounts)\n if (await pathExists(this.accountPath)) {\n await copyFileSafe(this.accountPath, join(destDir, 'account.json'));\n }\n try {\n const data = await readJsonFile<Record<string, unknown>>(join(destDir, 'auth.json'));\n return { identity: extractOpenCodeIdentity(data) };\n } catch {\n return {};\n }\n }\n\n async restore(srcDir: string): Promise<void> {\n await ensureDir(this.dataDir);\n await restoreRequiredFile(join(srcDir, 'auth.json'), this.authPath, 'auth.json');\n const accountSrc = join(srcDir, 'account.json');\n if (await pathExists(accountSrc)) {\n await copyFileSafe(accountSrc, this.accountPath);\n }\n }\n\n async describeSnapshot(\n srcDir: string,\n ): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>> {\n const path = join(srcDir, 'auth.json');\n if (!(await pathExists(path))) {\n return {};\n }\n try {\n const data = await readJsonFile<Record<string, unknown>>(path);\n return { identity: extractOpenCodeIdentity(data) };\n } catch {\n return {};\n }\n }\n\n /**\n * Clear local OpenCode auth only — does NOT revoke OAuth / API keys server-side.\n * Saved anypick snapshots stay valid for later restore (same as codex stash).\n */\n async clearLive(): Promise<void> {\n const { rm } = await import('node:fs/promises');\n for (const p of [this.authPath, this.accountPath]) {\n try {\n await rm(p, { force: true });\n } catch {\n // ignore\n }\n }\n }\n\n /**\n * Refresh OAuth tokens inside a snapshot (openai ChatGPT, etc.).\n * API-key providers are left as-is.\n */\n async refreshAuth(\n authDir: string,\n ): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>> {\n const path = join(authDir, 'auth.json');\n if (!(await pathExists(path))) {\n throw new Error(`No auth.json in ${authDir}`);\n }\n const current = await readJsonFile<Record<string, unknown>>(path);\n const { data, identity } = await refreshOpenCodeAuth(current);\n await writeJsonFile(path, data, 0o600);\n return { identity };\n }\n\n async snapshotMatchesLive(snapshotDir: string): Promise<boolean> {\n return snapshotMatchesLiveDefault('opencode', snapshotDir);\n }\n\n // ── Built-in proxy (Zen/Go API keys → Codex + Claude) ───────────\n\n async startProxy(ctx: ProxyContext): Promise<ProxyHandle> {\n return startOpenCodeProxy(ctx, {\n authPath: this.authPath,\n compatibility: this.proxyCompatibility,\n defaultPort: DEFAULT_PORT,\n });\n }\n\n async stopProxy(ctx: ProxyContext): Promise<void> {\n await stopOpenCodeProxy(ctx);\n }\n\n async proxyStatus(ctx: ProxyContext): Promise<ProxyStatus> {\n return openCodeProxyStatus(ctx, this.proxyCompatibility, DEFAULT_PORT);\n }\n\n async readProxyLogs(ctx: ProxyContext, lines = 50): Promise<string> {\n return readOpenCodeProxyLogs(ctx, lines);\n }\n}\n\nexport const opencodeProvider = new OpenCodeProvider();\n"],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { AnthropicMessageRequest, AnthropicMessageResponse, AnthropicToOpenAIOptions, OpenAIChatRequest, OpenAIChatResponse } from './anthropic-types.js';
|
|
2
|
-
export declare function anthropicToOpenAI(req: AnthropicMessageRequest, options?: AnthropicToOpenAIOptions): OpenAIChatRequest;
|
|
3
|
-
/** Convert OpenAI chat completion → Anthropic message. */
|
|
4
|
-
export declare function openAIToAnthropic(res: OpenAIChatResponse, fallbackModel: string, inputTokensFallback?: number): AnthropicMessageResponse | {
|
|
5
|
-
type: 'error';
|
|
6
|
-
error: {
|
|
7
|
-
type: string;
|
|
8
|
-
message: string;
|
|
9
|
-
code?: string;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=anthropic-convert.d.ts.map
|