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,433 +0,0 @@
|
|
|
1
|
-
import { pathExists } from "../utils/fs.js";
|
|
2
|
-
import { openForeignDatabase } from "../core/db.js";
|
|
3
|
-
import { join } from "node:path";
|
|
4
|
-
import { stat } from "node:fs/promises";
|
|
5
|
-
import { homedir } from "node:os";
|
|
6
|
-
import { execFile } from "node:child_process";
|
|
7
|
-
import { promisify } from "node:util";
|
|
8
|
-
//#region src/providers/gemini-antigravity-state.ts
|
|
9
|
-
/**
|
|
10
|
-
* Antigravity's authoritative OAuth state.
|
|
11
|
-
*
|
|
12
|
-
* The IDE mirrors its `uss-oauth` topic into VS Code's global state SQLite
|
|
13
|
-
* database. Updating only the go-keyring item is not enough: a running IDE
|
|
14
|
-
* keeps this topic in memory and later writes its old token back. We therefore
|
|
15
|
-
* update both stores, but only while Antigravity is fully stopped.
|
|
16
|
-
*/
|
|
17
|
-
var execFileAsync = promisify(execFile);
|
|
18
|
-
var STATE_STORAGE_KEY = "antigravityUnifiedStateSync.oauthToken";
|
|
19
|
-
var TOKEN_SENTINEL_KEY = "oauthTokenInfoSentinelKey";
|
|
20
|
-
var AUTH_STATE_SENTINEL_KEY = "authStateWithContextSentinelKey";
|
|
21
|
-
var USER_STATUS_STORAGE_KEY = "antigravityUnifiedStateSync.userStatus";
|
|
22
|
-
var USER_STATUS_SENTINEL_KEY = "userStatusSentinelKey";
|
|
23
|
-
var LEGACY_AUTH_CACHE_KEYS = ["antigravityAuthStatus", "antigravity.profileUrl"];
|
|
24
|
-
/** Known Antigravity user-data locations, newest product name first. */
|
|
25
|
-
function antigravityStateDatabasePaths(home, platform = process.platform) {
|
|
26
|
-
const resolvedHome = home ?? homedir();
|
|
27
|
-
const override = process.env.ANTIGRAVITY_USER_DATA_DIR?.trim();
|
|
28
|
-
if (override) return [join(override, "User", "globalStorage", "state.vscdb")];
|
|
29
|
-
if (platform === "darwin") {
|
|
30
|
-
const support = join(resolvedHome, "Library", "Application Support");
|
|
31
|
-
return [join(support, "Antigravity", "User", "globalStorage", "state.vscdb"), join(support, "Antigravity IDE", "User", "globalStorage", "state.vscdb")];
|
|
32
|
-
}
|
|
33
|
-
if (platform === "win32") {
|
|
34
|
-
const appData = (home === void 0 ? process.env.APPDATA?.trim() : void 0) || join(resolvedHome, "AppData", "Roaming");
|
|
35
|
-
return [join(appData, "Antigravity", "User", "globalStorage", "state.vscdb"), join(appData, "Antigravity IDE", "User", "globalStorage", "state.vscdb")];
|
|
36
|
-
}
|
|
37
|
-
const config = (home === void 0 ? process.env.XDG_CONFIG_HOME?.trim() : void 0) || join(resolvedHome, ".config");
|
|
38
|
-
return [join(config, "Antigravity", "User", "globalStorage", "state.vscdb"), join(config, "Antigravity IDE", "User", "globalStorage", "state.vscdb")];
|
|
39
|
-
}
|
|
40
|
-
async function existingStatePaths(opts = {}) {
|
|
41
|
-
const candidates = [...opts.paths ?? antigravityStateDatabasePaths(opts.home)];
|
|
42
|
-
const existing = (await Promise.all(candidates.map(async (path) => await pathExists(path) ? path : void 0))).filter((path) => path !== void 0);
|
|
43
|
-
return (await Promise.all(existing.map(async (path) => ({
|
|
44
|
-
path,
|
|
45
|
-
mtime: await stat(path).then((entry) => entry.mtimeMs).catch(() => 0)
|
|
46
|
-
})))).toSorted((a, b) => b.mtime - a.mtime).map((entry) => entry.path);
|
|
47
|
-
}
|
|
48
|
-
function readVarint(buffer, offset) {
|
|
49
|
-
let value = 0n;
|
|
50
|
-
let shift = 0n;
|
|
51
|
-
for (let index = offset; index < buffer.length && index < offset + 10; index += 1) {
|
|
52
|
-
const byte = BigInt(buffer[index]);
|
|
53
|
-
value |= (byte & 127n) << shift;
|
|
54
|
-
if ((byte & 128n) === 0n) return {
|
|
55
|
-
value,
|
|
56
|
-
next: index + 1
|
|
57
|
-
};
|
|
58
|
-
shift += 7n;
|
|
59
|
-
}
|
|
60
|
-
throw new Error("Antigravity OAuth state contains an invalid protobuf varint.");
|
|
61
|
-
}
|
|
62
|
-
function encodeVarint(value) {
|
|
63
|
-
if (value < 0n) throw new Error("Antigravity OAuth state contains a negative protobuf varint.");
|
|
64
|
-
const bytes = [];
|
|
65
|
-
let remaining = value;
|
|
66
|
-
do {
|
|
67
|
-
const byte = Number(remaining & 127n);
|
|
68
|
-
remaining >>= 7n;
|
|
69
|
-
bytes.push(remaining === 0n ? byte : byte | 128);
|
|
70
|
-
} while (remaining !== 0n);
|
|
71
|
-
return Buffer.from(bytes);
|
|
72
|
-
}
|
|
73
|
-
function parseProto(buffer) {
|
|
74
|
-
const fields = [];
|
|
75
|
-
let offset = 0;
|
|
76
|
-
while (offset < buffer.length) {
|
|
77
|
-
const tag = readVarint(buffer, offset);
|
|
78
|
-
offset = tag.next;
|
|
79
|
-
const number = Number(tag.value >> 3n);
|
|
80
|
-
const wireType = Number(tag.value & 7n);
|
|
81
|
-
if (number <= 0) throw new Error("Antigravity OAuth state contains an invalid protobuf field.");
|
|
82
|
-
if (wireType === 0) {
|
|
83
|
-
const value = readVarint(buffer, offset);
|
|
84
|
-
fields.push({
|
|
85
|
-
number,
|
|
86
|
-
wireType,
|
|
87
|
-
value: value.value
|
|
88
|
-
});
|
|
89
|
-
offset = value.next;
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
if (wireType === 1 || wireType === 5) {
|
|
93
|
-
const length = wireType === 1 ? 8 : 4;
|
|
94
|
-
if (offset + length > buffer.length) throw new Error("Antigravity OAuth state contains a truncated protobuf field.");
|
|
95
|
-
fields.push({
|
|
96
|
-
number,
|
|
97
|
-
wireType,
|
|
98
|
-
value: buffer.subarray(offset, offset + length)
|
|
99
|
-
});
|
|
100
|
-
offset += length;
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
if (wireType === 2) {
|
|
104
|
-
const encodedLength = readVarint(buffer, offset);
|
|
105
|
-
offset = encodedLength.next;
|
|
106
|
-
const length = Number(encodedLength.value);
|
|
107
|
-
if (!Number.isSafeInteger(length) || offset + length > buffer.length) throw new Error("Antigravity OAuth state contains an invalid protobuf length.");
|
|
108
|
-
fields.push({
|
|
109
|
-
number,
|
|
110
|
-
wireType,
|
|
111
|
-
value: buffer.subarray(offset, offset + length)
|
|
112
|
-
});
|
|
113
|
-
offset += length;
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
throw new Error(`Antigravity OAuth state uses unsupported protobuf wire type ${wireType}.`);
|
|
117
|
-
}
|
|
118
|
-
return fields;
|
|
119
|
-
}
|
|
120
|
-
function encodeProto(fields) {
|
|
121
|
-
return Buffer.concat(fields.flatMap((field) => {
|
|
122
|
-
const tag = encodeVarint(BigInt(field.number << 3 | field.wireType));
|
|
123
|
-
if (field.wireType === 0) return [tag, encodeVarint(field.value)];
|
|
124
|
-
if (field.wireType === 2) return [
|
|
125
|
-
tag,
|
|
126
|
-
encodeVarint(BigInt(field.value.length)),
|
|
127
|
-
field.value
|
|
128
|
-
];
|
|
129
|
-
return [tag, field.value];
|
|
130
|
-
}));
|
|
131
|
-
}
|
|
132
|
-
function replaceBytesField(fields, number, value) {
|
|
133
|
-
let replaced = false;
|
|
134
|
-
const next = [];
|
|
135
|
-
for (const field of fields) {
|
|
136
|
-
if (field.number !== number) {
|
|
137
|
-
next.push(field);
|
|
138
|
-
continue;
|
|
139
|
-
}
|
|
140
|
-
if (!replaced) {
|
|
141
|
-
next.push({
|
|
142
|
-
number,
|
|
143
|
-
wireType: 2,
|
|
144
|
-
value
|
|
145
|
-
});
|
|
146
|
-
replaced = true;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
if (!replaced) next.push({
|
|
150
|
-
number,
|
|
151
|
-
wireType: 2,
|
|
152
|
-
value
|
|
153
|
-
});
|
|
154
|
-
return next;
|
|
155
|
-
}
|
|
156
|
-
function strictBase64(value, label) {
|
|
157
|
-
if (!value || value.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(value)) throw new Error(`Antigravity ${label} is not valid base64.`);
|
|
158
|
-
return Buffer.from(value, "base64");
|
|
159
|
-
}
|
|
160
|
-
function firstBytesField(fields, number) {
|
|
161
|
-
return fields.find((candidate) => candidate.number === number && candidate.wireType === 2)?.value;
|
|
162
|
-
}
|
|
163
|
-
function decodeTimestamp(buffer) {
|
|
164
|
-
if (!buffer) return;
|
|
165
|
-
const fields = parseProto(buffer);
|
|
166
|
-
const seconds = fields.find((field) => field.number === 1 && field.wireType === 0)?.value;
|
|
167
|
-
const nanos = fields.find((field) => field.number === 2 && field.wireType === 0)?.value;
|
|
168
|
-
if (seconds === void 0) return;
|
|
169
|
-
const milliseconds = Number(seconds) * 1e3 + Number(nanos ?? 0n) / 1e6;
|
|
170
|
-
const date = new Date(milliseconds);
|
|
171
|
-
return Number.isFinite(date.getTime()) ? date.toISOString() : void 0;
|
|
172
|
-
}
|
|
173
|
-
function encodeTimestamp(expiry) {
|
|
174
|
-
if (!expiry) return;
|
|
175
|
-
const milliseconds = new Date(expiry).getTime();
|
|
176
|
-
if (!Number.isFinite(milliseconds)) throw new Error("Antigravity OAuth credential has an invalid expiry timestamp.");
|
|
177
|
-
const seconds = Math.floor(milliseconds / 1e3);
|
|
178
|
-
const nanos = Math.floor((milliseconds - seconds * 1e3) * 1e6);
|
|
179
|
-
const fields = [{
|
|
180
|
-
number: 1,
|
|
181
|
-
wireType: 0,
|
|
182
|
-
value: BigInt(seconds)
|
|
183
|
-
}];
|
|
184
|
-
if (nanos !== 0) fields.push({
|
|
185
|
-
number: 2,
|
|
186
|
-
wireType: 0,
|
|
187
|
-
value: BigInt(nanos)
|
|
188
|
-
});
|
|
189
|
-
return encodeProto(fields);
|
|
190
|
-
}
|
|
191
|
-
function decodeOAuthTokenInfo(encoded) {
|
|
192
|
-
const fields = parseProto(strictBase64(encoded, "OAuth token"));
|
|
193
|
-
const refreshToken = firstBytesField(fields, 3)?.toString("utf8");
|
|
194
|
-
if (!refreshToken) return null;
|
|
195
|
-
const accessToken = firstBytesField(fields, 1)?.toString("utf8");
|
|
196
|
-
const tokenType = firstBytesField(fields, 2)?.toString("utf8");
|
|
197
|
-
const expiry = decodeTimestamp(firstBytesField(fields, 4));
|
|
198
|
-
return { token: {
|
|
199
|
-
...accessToken ? { access_token: accessToken } : {},
|
|
200
|
-
refresh_token: refreshToken,
|
|
201
|
-
token_type: tokenType || "Bearer",
|
|
202
|
-
...expiry ? { expiry } : {}
|
|
203
|
-
} };
|
|
204
|
-
}
|
|
205
|
-
function encodeOAuthTokenInfo(payload) {
|
|
206
|
-
const token = payload.token;
|
|
207
|
-
if (!token?.refresh_token) throw new Error("Refusing to write Antigravity state with no refresh token.");
|
|
208
|
-
const fields = [];
|
|
209
|
-
if (token.access_token) fields.push({
|
|
210
|
-
number: 1,
|
|
211
|
-
wireType: 2,
|
|
212
|
-
value: Buffer.from(token.access_token)
|
|
213
|
-
});
|
|
214
|
-
fields.push({
|
|
215
|
-
number: 2,
|
|
216
|
-
wireType: 2,
|
|
217
|
-
value: Buffer.from(token.token_type || "Bearer")
|
|
218
|
-
});
|
|
219
|
-
fields.push({
|
|
220
|
-
number: 3,
|
|
221
|
-
wireType: 2,
|
|
222
|
-
value: Buffer.from(token.refresh_token)
|
|
223
|
-
});
|
|
224
|
-
const expiry = encodeTimestamp(token.expiry);
|
|
225
|
-
if (expiry) fields.push({
|
|
226
|
-
number: 4,
|
|
227
|
-
wireType: 2,
|
|
228
|
-
value: expiry
|
|
229
|
-
});
|
|
230
|
-
return encodeProto(fields).toString("base64");
|
|
231
|
-
}
|
|
232
|
-
function topicEntry(topic, sentinelKey) {
|
|
233
|
-
for (const field of parseProto(topic)) {
|
|
234
|
-
if (field.number !== 1 || field.wireType !== 2) continue;
|
|
235
|
-
const entry = parseProto(field.value);
|
|
236
|
-
if (firstBytesField(entry, 1)?.toString("utf8") !== sentinelKey) continue;
|
|
237
|
-
const row = firstBytesField(entry, 2);
|
|
238
|
-
return {
|
|
239
|
-
encoded: (row ? firstBytesField(parseProto(row), 1)?.toString("utf8") : void 0) ?? "",
|
|
240
|
-
found: true
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
return {
|
|
244
|
-
encoded: "",
|
|
245
|
-
found: false
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
function rewriteTopicEntry(topic, sentinelKey, encodedValue) {
|
|
249
|
-
let found = false;
|
|
250
|
-
const fields = [];
|
|
251
|
-
for (const field of parseProto(topic)) {
|
|
252
|
-
if (field.number !== 1 || field.wireType !== 2) {
|
|
253
|
-
fields.push(field);
|
|
254
|
-
continue;
|
|
255
|
-
}
|
|
256
|
-
const entry = parseProto(field.value);
|
|
257
|
-
if (firstBytesField(entry, 1)?.toString("utf8") !== sentinelKey) {
|
|
258
|
-
fields.push(field);
|
|
259
|
-
continue;
|
|
260
|
-
}
|
|
261
|
-
found = true;
|
|
262
|
-
if (encodedValue === null) continue;
|
|
263
|
-
const row = firstBytesField(entry, 2);
|
|
264
|
-
const nextRow = encodeProto(replaceBytesField(row ? parseProto(row) : [], 1, Buffer.from(encodedValue)));
|
|
265
|
-
fields.push({
|
|
266
|
-
number: 1,
|
|
267
|
-
wireType: 2,
|
|
268
|
-
value: encodeProto(replaceBytesField(entry, 2, nextRow))
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
if (!found && encodedValue !== null) {
|
|
272
|
-
const row = encodeProto([{
|
|
273
|
-
number: 1,
|
|
274
|
-
wireType: 2,
|
|
275
|
-
value: Buffer.from(encodedValue)
|
|
276
|
-
}]);
|
|
277
|
-
const entry = encodeProto([{
|
|
278
|
-
number: 1,
|
|
279
|
-
wireType: 2,
|
|
280
|
-
value: Buffer.from(sentinelKey)
|
|
281
|
-
}, {
|
|
282
|
-
number: 2,
|
|
283
|
-
wireType: 2,
|
|
284
|
-
value: row
|
|
285
|
-
}]);
|
|
286
|
-
fields.push({
|
|
287
|
-
number: 1,
|
|
288
|
-
wireType: 2,
|
|
289
|
-
value: entry
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
return encodeProto(fields);
|
|
293
|
-
}
|
|
294
|
-
function readTopic(db, storageKey = STATE_STORAGE_KEY) {
|
|
295
|
-
const row = db.prepare("SELECT value FROM ItemTable WHERE key = ?").get(storageKey);
|
|
296
|
-
if (row?.value === void 0 || row.value === null || row.value === "") return Buffer.alloc(0);
|
|
297
|
-
return strictBase64(Buffer.isBuffer(row.value) ? row.value.toString("utf8") : String(row.value), "unified state topic");
|
|
298
|
-
}
|
|
299
|
-
function writeTopic(db, topic, storageKey = STATE_STORAGE_KEY) {
|
|
300
|
-
const encoded = topic.toString("base64");
|
|
301
|
-
const updated = db.prepare("UPDATE ItemTable SET value = ? WHERE key = ?").run(encoded, storageKey);
|
|
302
|
-
if (Number(updated.changes) === 0) db.prepare("INSERT INTO ItemTable (key, value) VALUES (?, ?)").run(storageKey, encoded);
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* A new OAuth token must not inherit the previous account's cached profile or
|
|
306
|
-
* auth state. Antigravity otherwise renders the old email and can skip token
|
|
307
|
-
* validation even though the durable OAuth token was switched successfully.
|
|
308
|
-
*/
|
|
309
|
-
function clearAccountCaches(db, oauthTopic) {
|
|
310
|
-
const nextOAuthTopic = rewriteTopicEntry(oauthTopic, AUTH_STATE_SENTINEL_KEY, null);
|
|
311
|
-
const userStatusTopic = readTopic(db, USER_STATUS_STORAGE_KEY);
|
|
312
|
-
if (topicEntry(userStatusTopic, USER_STATUS_SENTINEL_KEY).found) writeTopic(db, rewriteTopicEntry(userStatusTopic, USER_STATUS_SENTINEL_KEY, null), USER_STATUS_STORAGE_KEY);
|
|
313
|
-
db.prepare("DELETE FROM ItemTable WHERE key = ? OR key = ?").run(...LEGACY_AUTH_CACHE_KEYS);
|
|
314
|
-
return nextOAuthTopic;
|
|
315
|
-
}
|
|
316
|
-
function readPayloadFromPath(path) {
|
|
317
|
-
const db = openForeignDatabase(path, true);
|
|
318
|
-
try {
|
|
319
|
-
const token = topicEntry(readTopic(db), TOKEN_SENTINEL_KEY);
|
|
320
|
-
return token.found && token.encoded ? decodeOAuthTokenInfo(token.encoded) : null;
|
|
321
|
-
} finally {
|
|
322
|
-
db.close();
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
/** Read the OAuth token Antigravity itself will use on its next startup. */
|
|
326
|
-
async function readAntigravityStateOAuthPayload(opts = {}) {
|
|
327
|
-
let lastError;
|
|
328
|
-
for (const path of await existingStatePaths(opts)) try {
|
|
329
|
-
const payload = readPayloadFromPath(path);
|
|
330
|
-
if (payload) return payload;
|
|
331
|
-
} catch (err) {
|
|
332
|
-
lastError = err;
|
|
333
|
-
}
|
|
334
|
-
if (lastError) throw lastError;
|
|
335
|
-
return null;
|
|
336
|
-
}
|
|
337
|
-
async function antigravityStateCredentialExists(opts = {}) {
|
|
338
|
-
return readAntigravityStateOAuthPayload(opts).then((payload) => Boolean(payload?.token?.refresh_token)).catch(() => false);
|
|
339
|
-
}
|
|
340
|
-
function antigravityProcessListHasApplication(stdout, platform = process.platform) {
|
|
341
|
-
if (platform === "win32") return /antigravity(?: ide)?\.exe/i.test(stdout);
|
|
342
|
-
if (platform === "darwin") return stdout.split(/\r?\n/gu).some((line) => {
|
|
343
|
-
const executable = line.trim();
|
|
344
|
-
const pathWithoutProductSpaces = executable.replaceAll("Antigravity IDE", "Antigravity_IDE");
|
|
345
|
-
return executable === "Antigravity" || executable === "Antigravity IDE" || !/\s/u.test(pathWithoutProductSpaces) && /^\/.*\/Antigravity(?: IDE)?\.app\/Contents\/MacOS\/(?:Antigravity(?: IDE)?|Electron)$/u.test(executable);
|
|
346
|
-
});
|
|
347
|
-
return stdout.split(/\r?\n/gu).some((line) => /^(?:.*\/)?antigravity(?:-ide)?$/iu.test(line.trim()));
|
|
348
|
-
}
|
|
349
|
-
async function antigravityApplicationRunning() {
|
|
350
|
-
try {
|
|
351
|
-
if (process.platform === "win32") {
|
|
352
|
-
const { stdout } = await execFileAsync("tasklist", [
|
|
353
|
-
"/FO",
|
|
354
|
-
"CSV",
|
|
355
|
-
"/NH"
|
|
356
|
-
]);
|
|
357
|
-
return antigravityProcessListHasApplication(stdout, "win32");
|
|
358
|
-
}
|
|
359
|
-
const { stdout } = await execFileAsync("/bin/ps", ["-axo", "comm="], { maxBuffer: 8 * 1024 * 1024 });
|
|
360
|
-
return antigravityProcessListHasApplication(stdout);
|
|
361
|
-
} catch {
|
|
362
|
-
return false;
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Refuse an external DB rewrite while the owner can overwrite it from memory.
|
|
367
|
-
* Call before any Keychain mutation so a rejected switch remains mutation-free.
|
|
368
|
-
*/
|
|
369
|
-
async function assertAntigravityStateSafeToMutate(opts = {}) {
|
|
370
|
-
const paths = await existingStatePaths(opts);
|
|
371
|
-
const currentRefreshTokens = [];
|
|
372
|
-
for (const path of paths) {
|
|
373
|
-
const db = openForeignDatabase(path, true);
|
|
374
|
-
try {
|
|
375
|
-
const token = topicEntry(readTopic(db), TOKEN_SENTINEL_KEY);
|
|
376
|
-
const payload = token.found && token.encoded ? decodeOAuthTokenInfo(token.encoded) : null;
|
|
377
|
-
currentRefreshTokens.push(payload?.token?.refresh_token ?? null);
|
|
378
|
-
topicEntry(readTopic(db, USER_STATUS_STORAGE_KEY), USER_STATUS_SENTINEL_KEY);
|
|
379
|
-
} finally {
|
|
380
|
-
db.close();
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
if (paths.length > 0 && await (opts.isAppRunning ?? antigravityApplicationRunning)()) {
|
|
384
|
-
const expectedRefreshToken = opts.expectedPayload?.token?.refresh_token ?? null;
|
|
385
|
-
if (opts.expectedPayload !== void 0 && currentRefreshTokens.every((refreshToken) => refreshToken === expectedRefreshToken)) return [];
|
|
386
|
-
throw new Error("Antigravity is running. Quit Antigravity completely, switch again, then reopen it.");
|
|
387
|
-
}
|
|
388
|
-
return paths;
|
|
389
|
-
}
|
|
390
|
-
/** Update every installed Antigravity state store and verify the durable token. */
|
|
391
|
-
async function writeAntigravityStateOAuthPayload(payload, opts = {}) {
|
|
392
|
-
const paths = await existingStatePaths(opts);
|
|
393
|
-
const encodedToken = encodeOAuthTokenInfo(payload);
|
|
394
|
-
for (const path of paths) {
|
|
395
|
-
const db = openForeignDatabase(path);
|
|
396
|
-
try {
|
|
397
|
-
db.transaction(() => {
|
|
398
|
-
const oauthTopic = clearAccountCaches(db, readTopic(db));
|
|
399
|
-
writeTopic(db, rewriteTopicEntry(oauthTopic, TOKEN_SENTINEL_KEY, encodedToken));
|
|
400
|
-
});
|
|
401
|
-
} finally {
|
|
402
|
-
db.close();
|
|
403
|
-
}
|
|
404
|
-
if (readPayloadFromPath(path)?.token?.refresh_token !== payload.token?.refresh_token) throw new Error(`Antigravity OAuth state verification failed for ${path}.`);
|
|
405
|
-
}
|
|
406
|
-
return paths.length;
|
|
407
|
-
}
|
|
408
|
-
/** Remove only the OAuth entry, preserving every unrelated unified-state key. */
|
|
409
|
-
async function deleteAntigravityStateOAuthPayload(opts = {}) {
|
|
410
|
-
const paths = await existingStatePaths(opts);
|
|
411
|
-
let changed = 0;
|
|
412
|
-
for (const path of paths) {
|
|
413
|
-
const db = openForeignDatabase(path);
|
|
414
|
-
try {
|
|
415
|
-
db.transaction(() => {
|
|
416
|
-
const topic = readTopic(db);
|
|
417
|
-
const hadToken = topicEntry(topic, TOKEN_SENTINEL_KEY).found;
|
|
418
|
-
const nextTopic = clearAccountCaches(db, topic);
|
|
419
|
-
if (hadToken) {
|
|
420
|
-
writeTopic(db, rewriteTopicEntry(nextTopic, TOKEN_SENTINEL_KEY, null));
|
|
421
|
-
changed += 1;
|
|
422
|
-
}
|
|
423
|
-
});
|
|
424
|
-
} finally {
|
|
425
|
-
db.close();
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
return changed;
|
|
429
|
-
}
|
|
430
|
-
//#endregion
|
|
431
|
-
export { antigravityApplicationRunning, antigravityProcessListHasApplication, antigravityStateCredentialExists, antigravityStateDatabasePaths, assertAntigravityStateSafeToMutate, deleteAntigravityStateOAuthPayload, readAntigravityStateOAuthPayload, writeAntigravityStateOAuthPayload };
|
|
432
|
-
|
|
433
|
-
//# sourceMappingURL=gemini-antigravity-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-antigravity-state.js","names":[],"sources":["../../src/providers/gemini-antigravity-state.ts"],"sourcesContent":["/**\n * Antigravity's authoritative OAuth state.\n *\n * The IDE mirrors its `uss-oauth` topic into VS Code's global state SQLite\n * database. Updating only the go-keyring item is not enough: a running IDE\n * keeps this topic in memory and later writes its old token back. We therefore\n * update both stores, but only while Antigravity is fully stopped.\n */\n\nimport { execFile } from 'node:child_process';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport { stat } from 'node:fs/promises';\nimport { promisify } from 'node:util';\nimport { openForeignDatabase, type AnyPickDatabase } from '../core/db';\nimport { pathExists } from '../utils/fs';\nimport type { AntigravityKeyringPayload } from './gemini-antigravity-oauth';\n\nconst execFileAsync = promisify(execFile);\nconst STATE_STORAGE_KEY = 'antigravityUnifiedStateSync.oauthToken';\nconst TOKEN_SENTINEL_KEY = 'oauthTokenInfoSentinelKey';\nconst AUTH_STATE_SENTINEL_KEY = 'authStateWithContextSentinelKey';\nconst USER_STATUS_STORAGE_KEY = 'antigravityUnifiedStateSync.userStatus';\nconst USER_STATUS_SENTINEL_KEY = 'userStatusSentinelKey';\nconst LEGACY_AUTH_CACHE_KEYS = ['antigravityAuthStatus', 'antigravity.profileUrl'] as const;\n\ninterface ProtoVarintField {\n number: number;\n wireType: 0;\n value: bigint;\n}\n\ninterface ProtoBytesField {\n number: number;\n wireType: 1 | 2 | 5;\n value: Buffer;\n}\n\ntype ProtoField = ProtoVarintField | ProtoBytesField;\n\nexport interface AntigravityStateOptions {\n paths?: readonly string[];\n home?: string;\n}\n\ninterface AntigravityStateMutationOptions extends AntigravityStateOptions {\n expectedPayload?: AntigravityKeyringPayload | null;\n isAppRunning?: () => Promise<boolean>;\n}\n\n/** Known Antigravity user-data locations, newest product name first. */\nexport function antigravityStateDatabasePaths(\n home?: string,\n platform = process.platform,\n): string[] {\n const resolvedHome = home ?? homedir();\n const override = process.env.ANTIGRAVITY_USER_DATA_DIR?.trim();\n if (override) {\n return [join(override, 'User', 'globalStorage', 'state.vscdb')];\n }\n\n if (platform === 'darwin') {\n const support = join(resolvedHome, 'Library', 'Application Support');\n return [\n join(support, 'Antigravity', 'User', 'globalStorage', 'state.vscdb'),\n join(support, 'Antigravity IDE', 'User', 'globalStorage', 'state.vscdb'),\n ];\n }\n if (platform === 'win32') {\n const appData =\n (home === undefined ? process.env.APPDATA?.trim() : undefined) ||\n join(resolvedHome, 'AppData', 'Roaming');\n return [\n join(appData, 'Antigravity', 'User', 'globalStorage', 'state.vscdb'),\n join(appData, 'Antigravity IDE', 'User', 'globalStorage', 'state.vscdb'),\n ];\n }\n const config =\n (home === undefined ? process.env.XDG_CONFIG_HOME?.trim() : undefined) ||\n join(resolvedHome, '.config');\n return [\n join(config, 'Antigravity', 'User', 'globalStorage', 'state.vscdb'),\n join(config, 'Antigravity IDE', 'User', 'globalStorage', 'state.vscdb'),\n ];\n}\n\nasync function existingStatePaths(opts: AntigravityStateOptions = {}): Promise<string[]> {\n const candidates = [...(opts.paths ?? antigravityStateDatabasePaths(opts.home))];\n const existing = (\n await Promise.all(candidates.map(async (path) => ((await pathExists(path)) ? path : undefined)))\n ).filter((path): path is string => path !== undefined);\n\n // Prefer the product the user touched most recently when reading live auth.\n const withTimes = await Promise.all(\n existing.map(async (path) => ({\n path,\n mtime: await stat(path)\n .then((entry) => entry.mtimeMs)\n .catch(() => 0),\n })),\n );\n return withTimes.toSorted((a, b) => b.mtime - a.mtime).map((entry) => entry.path);\n}\n\nfunction readVarint(buffer: Buffer, offset: number): { value: bigint; next: number } {\n let value = 0n;\n let shift = 0n;\n for (let index = offset; index < buffer.length && index < offset + 10; index += 1) {\n const byte = BigInt(buffer[index]);\n value |= (byte & 0x7fn) << shift;\n if ((byte & 0x80n) === 0n) {\n return { value, next: index + 1 };\n }\n shift += 7n;\n }\n throw new Error('Antigravity OAuth state contains an invalid protobuf varint.');\n}\n\nfunction encodeVarint(value: bigint): Buffer {\n if (value < 0n) {\n throw new Error('Antigravity OAuth state contains a negative protobuf varint.');\n }\n const bytes: number[] = [];\n let remaining = value;\n do {\n const byte = Number(remaining & 0x7fn);\n remaining >>= 7n;\n bytes.push(remaining === 0n ? byte : byte | 0x80);\n } while (remaining !== 0n);\n return Buffer.from(bytes);\n}\n\nfunction parseProto(buffer: Buffer): ProtoField[] {\n const fields: ProtoField[] = [];\n let offset = 0;\n while (offset < buffer.length) {\n const tag = readVarint(buffer, offset);\n offset = tag.next;\n const number = Number(tag.value >> 3n);\n const wireType = Number(tag.value & 0x07n);\n if (number <= 0) {\n throw new Error('Antigravity OAuth state contains an invalid protobuf field.');\n }\n\n if (wireType === 0) {\n const value = readVarint(buffer, offset);\n fields.push({ number, wireType, value: value.value });\n offset = value.next;\n continue;\n }\n if (wireType === 1 || wireType === 5) {\n const length = wireType === 1 ? 8 : 4;\n if (offset + length > buffer.length) {\n throw new Error('Antigravity OAuth state contains a truncated protobuf field.');\n }\n fields.push({ number, wireType, value: buffer.subarray(offset, offset + length) });\n offset += length;\n continue;\n }\n if (wireType === 2) {\n const encodedLength = readVarint(buffer, offset);\n offset = encodedLength.next;\n const length = Number(encodedLength.value);\n if (!Number.isSafeInteger(length) || offset + length > buffer.length) {\n throw new Error('Antigravity OAuth state contains an invalid protobuf length.');\n }\n fields.push({ number, wireType, value: buffer.subarray(offset, offset + length) });\n offset += length;\n continue;\n }\n throw new Error(`Antigravity OAuth state uses unsupported protobuf wire type ${wireType}.`);\n }\n return fields;\n}\n\nfunction encodeProto(fields: readonly ProtoField[]): Buffer {\n return Buffer.concat(\n fields.flatMap((field) => {\n const tag = encodeVarint(BigInt((field.number << 3) | field.wireType));\n if (field.wireType === 0) {\n return [tag, encodeVarint(field.value)];\n }\n if (field.wireType === 2) {\n return [tag, encodeVarint(BigInt(field.value.length)), field.value];\n }\n return [tag, field.value];\n }),\n );\n}\n\nfunction replaceBytesField(\n fields: readonly ProtoField[],\n number: number,\n value: Buffer,\n): ProtoField[] {\n let replaced = false;\n const next: ProtoField[] = [];\n for (const field of fields) {\n if (field.number !== number) {\n next.push(field);\n continue;\n }\n if (!replaced) {\n next.push({ number, wireType: 2, value });\n replaced = true;\n }\n }\n if (!replaced) {\n next.push({ number, wireType: 2, value });\n }\n return next;\n}\n\nfunction strictBase64(value: string, label: string): Buffer {\n if (!value || value.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(value)) {\n throw new Error(`Antigravity ${label} is not valid base64.`);\n }\n return Buffer.from(value, 'base64');\n}\n\nfunction firstBytesField(fields: readonly ProtoField[], number: number): Buffer | undefined {\n const field = fields.find(\n (candidate): candidate is ProtoBytesField =>\n candidate.number === number && candidate.wireType === 2,\n );\n return field?.value;\n}\n\nfunction decodeTimestamp(buffer: Buffer | undefined): string | undefined {\n if (!buffer) {\n return undefined;\n }\n const fields = parseProto(buffer);\n const seconds = fields.find(\n (field): field is ProtoVarintField => field.number === 1 && field.wireType === 0,\n )?.value;\n const nanos = fields.find(\n (field): field is ProtoVarintField => field.number === 2 && field.wireType === 0,\n )?.value;\n if (seconds === undefined) {\n return undefined;\n }\n const milliseconds = Number(seconds) * 1_000 + Number(nanos ?? 0n) / 1_000_000;\n const date = new Date(milliseconds);\n return Number.isFinite(date.getTime()) ? date.toISOString() : undefined;\n}\n\nfunction encodeTimestamp(expiry: string | undefined): Buffer | undefined {\n if (!expiry) {\n return undefined;\n }\n const milliseconds = new Date(expiry).getTime();\n if (!Number.isFinite(milliseconds)) {\n throw new Error('Antigravity OAuth credential has an invalid expiry timestamp.');\n }\n const seconds = Math.floor(milliseconds / 1_000);\n const nanos = Math.floor((milliseconds - seconds * 1_000) * 1_000_000);\n const fields: ProtoField[] = [{ number: 1, wireType: 0, value: BigInt(seconds) }];\n if (nanos !== 0) {\n fields.push({ number: 2, wireType: 0, value: BigInt(nanos) });\n }\n return encodeProto(fields);\n}\n\nfunction decodeOAuthTokenInfo(encoded: string): AntigravityKeyringPayload | null {\n const fields = parseProto(strictBase64(encoded, 'OAuth token'));\n const refreshToken = firstBytesField(fields, 3)?.toString('utf8');\n if (!refreshToken) {\n return null;\n }\n const accessToken = firstBytesField(fields, 1)?.toString('utf8');\n const tokenType = firstBytesField(fields, 2)?.toString('utf8');\n const expiry = decodeTimestamp(firstBytesField(fields, 4));\n return {\n token: {\n ...(accessToken ? { access_token: accessToken } : {}),\n refresh_token: refreshToken,\n token_type: tokenType || 'Bearer',\n ...(expiry ? { expiry } : {}),\n },\n };\n}\n\nfunction encodeOAuthTokenInfo(payload: AntigravityKeyringPayload): string {\n const token = payload.token;\n if (!token?.refresh_token) {\n throw new Error('Refusing to write Antigravity state with no refresh token.');\n }\n const fields: ProtoField[] = [];\n if (token.access_token) {\n fields.push({ number: 1, wireType: 2, value: Buffer.from(token.access_token) });\n }\n fields.push({\n number: 2,\n wireType: 2,\n value: Buffer.from(token.token_type || 'Bearer'),\n });\n fields.push({ number: 3, wireType: 2, value: Buffer.from(token.refresh_token) });\n const expiry = encodeTimestamp(token.expiry);\n if (expiry) {\n fields.push({ number: 4, wireType: 2, value: expiry });\n }\n return encodeProto(fields).toString('base64');\n}\n\nfunction topicEntry(topic: Buffer, sentinelKey: string): { encoded: string; found: boolean } {\n for (const field of parseProto(topic)) {\n if (field.number !== 1 || field.wireType !== 2) {\n continue;\n }\n const entry = parseProto(field.value);\n if (firstBytesField(entry, 1)?.toString('utf8') !== sentinelKey) {\n continue;\n }\n const row = firstBytesField(entry, 2);\n const encoded = row ? firstBytesField(parseProto(row), 1)?.toString('utf8') : undefined;\n return { encoded: encoded ?? '', found: true };\n }\n return { encoded: '', found: false };\n}\n\nfunction rewriteTopicEntry(\n topic: Buffer,\n sentinelKey: string,\n encodedValue: string | null,\n): Buffer {\n let found = false;\n const fields: ProtoField[] = [];\n for (const field of parseProto(topic)) {\n if (field.number !== 1 || field.wireType !== 2) {\n fields.push(field);\n continue;\n }\n const entry = parseProto(field.value);\n if (firstBytesField(entry, 1)?.toString('utf8') !== sentinelKey) {\n fields.push(field);\n continue;\n }\n found = true;\n if (encodedValue === null) {\n continue;\n }\n const row = firstBytesField(entry, 2);\n const rowFields = row ? parseProto(row) : [];\n const nextRow = encodeProto(replaceBytesField(rowFields, 1, Buffer.from(encodedValue)));\n fields.push({\n number: 1,\n wireType: 2,\n value: encodeProto(replaceBytesField(entry, 2, nextRow)),\n });\n }\n\n if (!found && encodedValue !== null) {\n const row = encodeProto([{ number: 1, wireType: 2, value: Buffer.from(encodedValue) }]);\n const entry = encodeProto([\n { number: 1, wireType: 2, value: Buffer.from(sentinelKey) },\n { number: 2, wireType: 2, value: row },\n ]);\n fields.push({ number: 1, wireType: 2, value: entry });\n }\n return encodeProto(fields);\n}\n\nfunction readTopic(db: AnyPickDatabase, storageKey = STATE_STORAGE_KEY): Buffer {\n const row = db.prepare('SELECT value FROM ItemTable WHERE key = ?').get(storageKey) as\n | { value?: unknown }\n | undefined;\n if (row?.value === undefined || row.value === null || row.value === '') {\n return Buffer.alloc(0);\n }\n const encoded = Buffer.isBuffer(row.value) ? row.value.toString('utf8') : String(row.value);\n return strictBase64(encoded, 'unified state topic');\n}\n\nfunction writeTopic(db: AnyPickDatabase, topic: Buffer, storageKey = STATE_STORAGE_KEY): void {\n const encoded = topic.toString('base64');\n const updated = db\n .prepare('UPDATE ItemTable SET value = ? WHERE key = ?')\n .run(encoded, storageKey);\n if (Number(updated.changes) === 0) {\n db.prepare('INSERT INTO ItemTable (key, value) VALUES (?, ?)').run(storageKey, encoded);\n }\n}\n\n/**\n * A new OAuth token must not inherit the previous account's cached profile or\n * auth state. Antigravity otherwise renders the old email and can skip token\n * validation even though the durable OAuth token was switched successfully.\n */\nfunction clearAccountCaches(db: AnyPickDatabase, oauthTopic: Buffer): Buffer {\n const nextOAuthTopic = rewriteTopicEntry(oauthTopic, AUTH_STATE_SENTINEL_KEY, null);\n const userStatusTopic = readTopic(db, USER_STATUS_STORAGE_KEY);\n if (topicEntry(userStatusTopic, USER_STATUS_SENTINEL_KEY).found) {\n writeTopic(\n db,\n rewriteTopicEntry(userStatusTopic, USER_STATUS_SENTINEL_KEY, null),\n USER_STATUS_STORAGE_KEY,\n );\n }\n db.prepare('DELETE FROM ItemTable WHERE key = ? OR key = ?').run(...LEGACY_AUTH_CACHE_KEYS);\n return nextOAuthTopic;\n}\n\nfunction readPayloadFromPath(path: string): AntigravityKeyringPayload | null {\n const db = openForeignDatabase(path, true);\n try {\n const token = topicEntry(readTopic(db), TOKEN_SENTINEL_KEY);\n return token.found && token.encoded ? decodeOAuthTokenInfo(token.encoded) : null;\n } finally {\n db.close();\n }\n}\n\n/** Read the OAuth token Antigravity itself will use on its next startup. */\nexport async function readAntigravityStateOAuthPayload(\n opts: AntigravityStateOptions = {},\n): Promise<AntigravityKeyringPayload | null> {\n let lastError: unknown;\n for (const path of await existingStatePaths(opts)) {\n try {\n const payload = readPayloadFromPath(path);\n if (payload) {\n return payload;\n }\n } catch (err) {\n lastError = err;\n }\n }\n if (lastError) {\n throw lastError;\n }\n return null;\n}\n\nexport async function antigravityStateCredentialExists(\n opts: AntigravityStateOptions = {},\n): Promise<boolean> {\n return readAntigravityStateOAuthPayload(opts)\n .then((payload) => Boolean(payload?.token?.refresh_token))\n .catch(() => false);\n}\n\nexport function antigravityProcessListHasApplication(\n stdout: string,\n platform: NodeJS.Platform = process.platform,\n): boolean {\n if (platform === 'win32') {\n return /antigravity(?: ide)?\\.exe/i.test(stdout);\n }\n if (platform === 'darwin') {\n return stdout.split(/\\r?\\n/gu).some((line) => {\n const executable = line.trim();\n const pathWithoutProductSpaces = executable.replaceAll('Antigravity IDE', 'Antigravity_IDE');\n return (\n executable === 'Antigravity' ||\n executable === 'Antigravity IDE' ||\n (!/\\s/u.test(pathWithoutProductSpaces) &&\n /^\\/.*\\/Antigravity(?: IDE)?\\.app\\/Contents\\/MacOS\\/(?:Antigravity(?: IDE)?|Electron)$/u.test(\n executable,\n ))\n );\n });\n }\n return stdout\n .split(/\\r?\\n/gu)\n .some((line) => /^(?:.*\\/)?antigravity(?:-ide)?$/iu.test(line.trim()));\n}\n\nexport async function antigravityApplicationRunning(): Promise<boolean> {\n try {\n if (process.platform === 'win32') {\n const { stdout } = await execFileAsync('tasklist', ['/FO', 'CSV', '/NH']);\n return antigravityProcessListHasApplication(stdout, 'win32');\n }\n // `comm` contains only the executable identity. Searching the full command\n // line produced false positives when another process merely mentioned an\n // Antigravity.app path in one of its arguments.\n const { stdout } = await execFileAsync('/bin/ps', ['-axo', 'comm='], {\n maxBuffer: 8 * 1024 * 1024,\n });\n return antigravityProcessListHasApplication(stdout);\n } catch {\n // Process discovery is a guard, not the source of truth. SQLite will still\n // reject an unsafe concurrent write if the upstream store is locked.\n return false;\n }\n}\n\n/**\n * Refuse an external DB rewrite while the owner can overwrite it from memory.\n * Call before any Keychain mutation so a rejected switch remains mutation-free.\n */\nexport async function assertAntigravityStateSafeToMutate(\n opts: AntigravityStateMutationOptions = {},\n): Promise<string[]> {\n const paths = await existingStatePaths(opts);\n const currentRefreshTokens: Array<string | null> = [];\n for (const path of paths) {\n const db = openForeignDatabase(path, true);\n try {\n // Validate the full envelope before another credential store is changed.\n const token = topicEntry(readTopic(db), TOKEN_SENTINEL_KEY);\n const payload = token.found && token.encoded ? decodeOAuthTokenInfo(token.encoded) : null;\n currentRefreshTokens.push(payload?.token?.refresh_token ?? null);\n topicEntry(readTopic(db, USER_STATUS_STORAGE_KEY), USER_STATUS_SENTINEL_KEY);\n } finally {\n db.close();\n }\n }\n if (paths.length > 0 && (await (opts.isAppRunning ?? antigravityApplicationRunning)())) {\n const expectedRefreshToken = opts.expectedPayload?.token?.refresh_token ?? null;\n const alreadyCurrent =\n opts.expectedPayload !== undefined &&\n currentRefreshTokens.every((refreshToken) => refreshToken === expectedRefreshToken);\n if (alreadyCurrent) {\n // The rollback/no-op path is safe while Antigravity runs: its in-memory\n // owner already holds this account, so there is no database rewrite to\n // race. Returning no paths makes the caller update only the keyring mirror.\n return [];\n }\n throw new Error(\n 'Antigravity is running. Quit Antigravity completely, switch again, then reopen it.',\n );\n }\n return paths;\n}\n\n/** Update every installed Antigravity state store and verify the durable token. */\nexport async function writeAntigravityStateOAuthPayload(\n payload: AntigravityKeyringPayload,\n opts: AntigravityStateOptions = {},\n): Promise<number> {\n const paths = await existingStatePaths(opts);\n const encodedToken = encodeOAuthTokenInfo(payload);\n for (const path of paths) {\n const db = openForeignDatabase(path);\n try {\n db.transaction(() => {\n const oauthTopic = clearAccountCaches(db, readTopic(db));\n writeTopic(db, rewriteTopicEntry(oauthTopic, TOKEN_SENTINEL_KEY, encodedToken));\n });\n } finally {\n db.close();\n }\n const verified = readPayloadFromPath(path);\n if (verified?.token?.refresh_token !== payload.token?.refresh_token) {\n throw new Error(`Antigravity OAuth state verification failed for ${path}.`);\n }\n }\n return paths.length;\n}\n\n/** Remove only the OAuth entry, preserving every unrelated unified-state key. */\nexport async function deleteAntigravityStateOAuthPayload(\n opts: AntigravityStateOptions = {},\n): Promise<number> {\n const paths = await existingStatePaths(opts);\n let changed = 0;\n for (const path of paths) {\n const db = openForeignDatabase(path);\n try {\n db.transaction(() => {\n const topic = readTopic(db);\n const hadToken = topicEntry(topic, TOKEN_SENTINEL_KEY).found;\n const nextTopic = clearAccountCaches(db, topic);\n if (hadToken) {\n writeTopic(db, rewriteTopicEntry(nextTopic, TOKEN_SENTINEL_KEY, null));\n changed += 1;\n }\n });\n } finally {\n db.close();\n }\n }\n return changed;\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function stripEnvAuthKeys(envPath: string): Promise<string>;
|
|
2
|
-
/** Parse GEMINI_API_KEY (or GOOGLE_API_KEY) from a dotenv-style file. */
|
|
3
|
-
export declare function readGeminiApiKeyFromEnvFile(envPath: string): Promise<string | undefined>;
|
|
4
|
-
/**
|
|
5
|
-
* Merge key=value pairs into a dotenv file, replacing existing keys.
|
|
6
|
-
*/
|
|
7
|
-
export declare function upsertEnvFile(envPath: string, entries: Record<string, string | undefined>): Promise<void>;
|
|
8
|
-
//# sourceMappingURL=gemini-env.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-env.d.ts","sourceRoot":"","sources":["../../src/providers/gemini-env.ts"],"names":[],"mappings":"AAaA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAevE;AAED,yEAAyE;AACzE,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyB9F;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { pathExists, writeTextFile } from "../utils/fs.js";
|
|
2
|
-
import { readFile, rm } from "node:fs/promises";
|
|
3
|
-
//#region src/providers/gemini-env.ts
|
|
4
|
-
var AUTH_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
5
|
-
"GEMINI_API_KEY",
|
|
6
|
-
"GOOGLE_API_KEY",
|
|
7
|
-
"GOOGLE_APPLICATION_CREDENTIALS",
|
|
8
|
-
"GOOGLE_CLOUD_PROJECT",
|
|
9
|
-
"GOOGLE_CLOUD_PROJECT_ID",
|
|
10
|
-
"GOOGLE_CLOUD_LOCATION",
|
|
11
|
-
"GOOGLE_GENAI_USE_VERTEXAI"
|
|
12
|
-
]);
|
|
13
|
-
async function stripEnvAuthKeys(envPath) {
|
|
14
|
-
const raw = await readFile(envPath, "utf8");
|
|
15
|
-
const kept = [];
|
|
16
|
-
for (const line of raw.split(/\r?\n/)) {
|
|
17
|
-
const m = line.match(/^(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)=/);
|
|
18
|
-
if (m && AUTH_ENV_KEYS.has(m[1])) continue;
|
|
19
|
-
kept.push(line);
|
|
20
|
-
}
|
|
21
|
-
while (kept.length && kept[kept.length - 1] === "") kept.pop();
|
|
22
|
-
return kept.join("\n");
|
|
23
|
-
}
|
|
24
|
-
/** Parse GEMINI_API_KEY (or GOOGLE_API_KEY) from a dotenv-style file. */
|
|
25
|
-
async function readGeminiApiKeyFromEnvFile(envPath) {
|
|
26
|
-
if (!await pathExists(envPath)) return;
|
|
27
|
-
try {
|
|
28
|
-
const raw = await readFile(envPath, "utf8");
|
|
29
|
-
for (const line of raw.split(/\r?\n/)) {
|
|
30
|
-
const m = line.match(/^(?:export\s+)?(GEMINI_API_KEY|GOOGLE_API_KEY)=(.*)$/);
|
|
31
|
-
if (!m) continue;
|
|
32
|
-
let v = m[2] ?? "";
|
|
33
|
-
if (v.startsWith("\"") && v.endsWith("\"") || v.startsWith("'") && v.endsWith("'")) v = v.slice(1, -1);
|
|
34
|
-
v = v.trim();
|
|
35
|
-
if (v) return v;
|
|
36
|
-
}
|
|
37
|
-
} catch {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Merge key=value pairs into a dotenv file, replacing existing keys.
|
|
43
|
-
*/
|
|
44
|
-
async function upsertEnvFile(envPath, entries) {
|
|
45
|
-
let lines = [];
|
|
46
|
-
if (await pathExists(envPath)) try {
|
|
47
|
-
lines = (await readFile(envPath, "utf8")).split(/\r?\n/);
|
|
48
|
-
} catch {
|
|
49
|
-
lines = [];
|
|
50
|
-
}
|
|
51
|
-
const keys = new Set(Object.keys(entries).filter((k) => entries[k] !== void 0 && entries[k] !== ""));
|
|
52
|
-
const seen = /* @__PURE__ */ new Set();
|
|
53
|
-
const out = [];
|
|
54
|
-
for (const line of lines) {
|
|
55
|
-
const m = line.match(/^(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)=/);
|
|
56
|
-
if (m && keys.has(m[1])) {
|
|
57
|
-
const k = m[1];
|
|
58
|
-
if (!seen.has(k)) {
|
|
59
|
-
out.push(`${k}=${entries[k]}`);
|
|
60
|
-
seen.add(k);
|
|
61
|
-
}
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
out.push(line);
|
|
65
|
-
}
|
|
66
|
-
for (const k of keys) if (!seen.has(k) && entries[k]) out.push(`${k}=${entries[k]}`);
|
|
67
|
-
while (out.length && out[out.length - 1] === "") out.pop();
|
|
68
|
-
const body = out.length ? `${out.join("\n")}\n` : "";
|
|
69
|
-
if (!body) {
|
|
70
|
-
await rm(envPath, { force: true }).catch(() => {});
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
await writeTextFile(envPath, body, 384);
|
|
74
|
-
}
|
|
75
|
-
//#endregion
|
|
76
|
-
export { readGeminiApiKeyFromEnvFile, stripEnvAuthKeys, upsertEnvFile };
|
|
77
|
-
|
|
78
|
-
//# sourceMappingURL=gemini-env.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-env.js","names":[],"sources":["../../src/providers/gemini-env.ts"],"sourcesContent":["import { readFile, rm } from 'node:fs/promises';\nimport { pathExists, writeTextFile } from '../utils/fs';\n\nconst AUTH_ENV_KEYS = new Set([\n 'GEMINI_API_KEY',\n 'GOOGLE_API_KEY',\n 'GOOGLE_APPLICATION_CREDENTIALS',\n 'GOOGLE_CLOUD_PROJECT',\n 'GOOGLE_CLOUD_PROJECT_ID',\n 'GOOGLE_CLOUD_LOCATION',\n 'GOOGLE_GENAI_USE_VERTEXAI',\n]);\n\nexport async function stripEnvAuthKeys(envPath: string): Promise<string> {\n const raw = await readFile(envPath, 'utf8');\n const kept: string[] = [];\n for (const line of raw.split(/\\r?\\n/)) {\n const m = line.match(/^(?:export\\s+)?([A-Za-z_][A-Za-z0-9_]*)=/);\n if (m && AUTH_ENV_KEYS.has(m[1])) {\n continue;\n }\n kept.push(line);\n }\n // Drop trailing empty lines\n while (kept.length && kept[kept.length - 1] === '') {\n kept.pop();\n }\n return kept.join('\\n');\n}\n\n/** Parse GEMINI_API_KEY (or GOOGLE_API_KEY) from a dotenv-style file. */\nexport async function readGeminiApiKeyFromEnvFile(envPath: string): Promise<string | undefined> {\n if (!(await pathExists(envPath))) {\n return undefined;\n }\n try {\n const raw = await readFile(envPath, 'utf8');\n for (const line of raw.split(/\\r?\\n/)) {\n const m = line.match(/^(?:export\\s+)?(GEMINI_API_KEY|GOOGLE_API_KEY)=(.*)$/);\n if (!m) {\n continue;\n }\n let v = m[2] ?? '';\n // strip quotes\n if ((v.startsWith('\"') && v.endsWith('\"')) || (v.startsWith(\"'\") && v.endsWith(\"'\"))) {\n v = v.slice(1, -1);\n }\n v = v.trim();\n if (v) {\n return v;\n }\n }\n } catch {\n return undefined;\n }\n return undefined;\n}\n\n/**\n * Merge key=value pairs into a dotenv file, replacing existing keys.\n */\nexport async function upsertEnvFile(\n envPath: string,\n entries: Record<string, string | undefined>,\n): Promise<void> {\n let lines: string[] = [];\n if (await pathExists(envPath)) {\n try {\n lines = (await readFile(envPath, 'utf8')).split(/\\r?\\n/);\n } catch {\n lines = [];\n }\n }\n\n const keys = new Set(\n Object.keys(entries).filter((k) => entries[k] !== undefined && entries[k] !== ''),\n );\n const seen = new Set<string>();\n const out: string[] = [];\n\n for (const line of lines) {\n const m = line.match(/^(?:export\\s+)?([A-Za-z_][A-Za-z0-9_]*)=/);\n if (m && keys.has(m[1])) {\n const k = m[1];\n if (!seen.has(k)) {\n out.push(`${k}=${entries[k]}`);\n seen.add(k);\n }\n continue;\n }\n out.push(line);\n }\n\n for (const k of keys) {\n if (!seen.has(k) && entries[k]) {\n out.push(`${k}=${entries[k]}`);\n }\n }\n\n while (out.length && out[out.length - 1] === '') {\n out.pop();\n }\n const body = out.length ? `${out.join('\\n')}\\n` : '';\n if (!body) {\n await rm(envPath, { force: true }).catch(() => {});\n return;\n }\n await writeTextFile(envPath, body, 0o600);\n}\n"],"mappings":";;;AAGA,IAAM,gCAAgB,IAAI,IAAI;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,eAAsB,iBAAiB,SAAkC;CACvE,MAAM,MAAM,MAAM,SAAS,SAAS,MAAM;CAC1C,MAAM,OAAiB,CAAC;CACxB,KAAK,MAAM,QAAQ,IAAI,MAAM,OAAO,GAAG;EACrC,MAAM,IAAI,KAAK,MAAM,0CAA0C;EAC/D,IAAI,KAAK,cAAc,IAAI,EAAE,EAAE,GAC7B;EAEF,KAAK,KAAK,IAAI;CAChB;CAEA,OAAO,KAAK,UAAU,KAAK,KAAK,SAAS,OAAO,IAC9C,KAAK,IAAI;CAEX,OAAO,KAAK,KAAK,IAAI;AACvB;;AAGA,eAAsB,4BAA4B,SAA8C;CAC9F,IAAI,CAAE,MAAM,WAAW,OAAO,GAC5B;CAEF,IAAI;EACF,MAAM,MAAM,MAAM,SAAS,SAAS,MAAM;EAC1C,KAAK,MAAM,QAAQ,IAAI,MAAM,OAAO,GAAG;GACrC,MAAM,IAAI,KAAK,MAAM,sDAAsD;GAC3E,IAAI,CAAC,GACH;GAEF,IAAI,IAAI,EAAE,MAAM;GAEhB,IAAK,EAAE,WAAW,IAAG,KAAK,EAAE,SAAS,IAAG,KAAO,EAAE,WAAW,GAAG,KAAK,EAAE,SAAS,GAAG,GAChF,IAAI,EAAE,MAAM,GAAG,EAAE;GAEnB,IAAI,EAAE,KAAK;GACX,IAAI,GACF,OAAO;EAEX;CACF,QAAQ;EACN;CACF;AAEF;;;;AAKA,eAAsB,cACpB,SACA,SACe;CACf,IAAI,QAAkB,CAAC;CACvB,IAAI,MAAM,WAAW,OAAO,GAC1B,IAAI;EACF,SAAS,MAAM,SAAS,SAAS,MAAM,EAAA,CAAG,MAAM,OAAO;CACzD,QAAQ;EACN,QAAQ,CAAC;CACX;CAGF,MAAM,OAAO,IAAI,IACf,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ,MAAM,QAAQ,OAAO,KAAA,KAAa,QAAQ,OAAO,EAAE,CAClF;CACA,MAAM,uBAAO,IAAI,IAAY;CAC7B,MAAM,MAAgB,CAAC;CAEvB,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,IAAI,KAAK,MAAM,0CAA0C;EAC/D,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG;GACvB,MAAM,IAAI,EAAE;GACZ,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;IAChB,IAAI,KAAK,GAAG,EAAE,GAAG,QAAQ,IAAI;IAC7B,KAAK,IAAI,CAAC;GACZ;GACA;EACF;EACA,IAAI,KAAK,IAAI;CACf;CAEA,KAAK,MAAM,KAAK,MACd,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,QAAQ,IAC1B,IAAI,KAAK,GAAG,EAAE,GAAG,QAAQ,IAAI;CAIjC,OAAO,IAAI,UAAU,IAAI,IAAI,SAAS,OAAO,IAC3C,IAAI,IAAI;CAEV,MAAM,OAAO,IAAI,SAAS,GAAG,IAAI,KAAK,IAAI,EAAE,MAAM;CAClD,IAAI,CAAC,MAAM;EACT,MAAM,GAAG,SAAS,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;EACjD;CACF;CACA,MAAM,cAAc,SAAS,MAAM,GAAK;AAC1C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-identity.d.ts","sourceRoot":"","sources":["../../src/providers/gemini-identity.ts"],"names":[],"mappings":"AAGA,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAelF"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { pathExists, readJsonFile } from "../utils/fs.js";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
//#region src/providers/gemini-identity.ts
|
|
4
|
-
async function readIdentityFromDir(dir) {
|
|
5
|
-
const accountsPath = join(dir, "google_accounts.json");
|
|
6
|
-
if (await pathExists(accountsPath)) try {
|
|
7
|
-
const data = await readJsonFile(accountsPath);
|
|
8
|
-
if (typeof data.active === "string" && data.active.trim()) return data.active.trim();
|
|
9
|
-
} catch {}
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { readIdentityFromDir };
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=gemini-identity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-identity.js","names":[],"sources":["../../src/providers/gemini-identity.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { pathExists, readJsonFile } from '../utils/fs';\n\nexport async function readIdentityFromDir(dir: string): Promise<string | undefined> {\n const accountsPath = join(dir, 'google_accounts.json');\n if (await pathExists(accountsPath)) {\n try {\n const data = await readJsonFile<{ active?: string }>(accountsPath);\n if (typeof data.active === 'string' && data.active.trim()) {\n return data.active.trim();\n }\n } catch {\n // fall through\n }\n }\n\n // Best-effort: email-like line in .env comments is rare; skip.\n return undefined;\n}\n"],"mappings":";;;AAGA,eAAsB,oBAAoB,KAA0C;CAClF,MAAM,eAAe,KAAK,KAAK,sBAAsB;CACrD,IAAI,MAAM,WAAW,YAAY,GAC/B,IAAI;EACF,MAAM,OAAO,MAAM,aAAkC,YAAY;EACjE,IAAI,OAAO,KAAK,WAAW,YAAY,KAAK,OAAO,KAAK,GACtD,OAAO,KAAK,OAAO,KAAK;CAE5B,QAAQ,CAER;AAKJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini-proxy/main.ts"],"names":[],"mappings":""}
|