anypick 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +589 -0
- package/dist/adapters.d.ts +4 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +2 -0
- package/dist/catalog/model-fetch.d.ts +34 -0
- package/dist/catalog/model-fetch.d.ts.map +1 -0
- package/dist/catalog/model-fetch.js +99 -0
- package/dist/catalog/model-fetch.js.map +1 -0
- package/dist/catalog/providers.d.ts +42 -0
- package/dist/catalog/providers.d.ts.map +1 -0
- package/dist/catalog/providers.js +424 -0
- package/dist/catalog/providers.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +3 -0
- package/dist/cli/bootstrap.d.ts.map +1 -0
- package/dist/cli/bootstrap.js +78 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/commands.d.ts +29 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +1043 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/completion.d.ts +6 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +202 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/errors.d.ts +20 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +47 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/format.d.ts +6 -0
- package/dist/cli/format.d.ts.map +1 -0
- package/dist/cli/format.js +75 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/help.d.ts +6 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +66 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/interactive-accounts.d.ts +3 -0
- package/dist/cli/interactive-accounts.d.ts.map +1 -0
- package/dist/cli/interactive-accounts.js +86 -0
- package/dist/cli/interactive-accounts.js.map +1 -0
- package/dist/cli/interactive-maintenance.d.ts +4 -0
- package/dist/cli/interactive-maintenance.d.ts.map +1 -0
- package/dist/cli/interactive-maintenance.js +30 -0
- package/dist/cli/interactive-maintenance.js.map +1 -0
- package/dist/cli/interactive.d.ts +14 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +242 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/launch-client.d.ts +18 -0
- package/dist/cli/launch-client.d.ts.map +1 -0
- package/dist/cli/launch-client.js +117 -0
- package/dist/cli/launch-client.js.map +1 -0
- package/dist/cli/launcher-model.d.ts +64 -0
- package/dist/cli/launcher-model.d.ts.map +1 -0
- package/dist/cli/launcher-model.js +200 -0
- package/dist/cli/launcher-model.js.map +1 -0
- package/dist/cli/launcher-render.d.ts +22 -0
- package/dist/cli/launcher-render.d.ts.map +1 -0
- package/dist/cli/launcher-render.js +113 -0
- package/dist/cli/launcher-render.js.map +1 -0
- package/dist/cli/launcher.d.ts +27 -0
- package/dist/cli/launcher.d.ts.map +1 -0
- package/dist/cli/launcher.js +93 -0
- package/dist/cli/launcher.js.map +1 -0
- package/dist/cli/local-health.d.ts +17 -0
- package/dist/cli/local-health.d.ts.map +1 -0
- package/dist/cli/local-health.js +31 -0
- package/dist/cli/local-health.js.map +1 -0
- package/dist/cli/plugin-commands.d.ts +4 -0
- package/dist/cli/plugin-commands.d.ts.map +1 -0
- package/dist/cli/plugin-commands.js +160 -0
- package/dist/cli/plugin-commands.js.map +1 -0
- package/dist/cli/primary.d.ts +18 -0
- package/dist/cli/primary.d.ts.map +1 -0
- package/dist/cli/primary.js +593 -0
- package/dist/cli/primary.js.map +1 -0
- package/dist/cli/render-util.d.ts +24 -0
- package/dist/cli/render-util.d.ts.map +1 -0
- package/dist/cli/render-util.js +58 -0
- package/dist/cli/render-util.js.map +1 -0
- package/dist/cli/ux.d.ts +43 -0
- package/dist/cli/ux.d.ts.map +1 -0
- package/dist/cli/ux.js +114 -0
- package/dist/cli/ux.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +35 -0
- package/dist/cli.js.map +1 -0
- package/dist/clients/claude-client-apply.d.ts +8 -0
- package/dist/clients/claude-client-apply.d.ts.map +1 -0
- package/dist/clients/claude-client-apply.js +108 -0
- package/dist/clients/claude-client-apply.js.map +1 -0
- package/dist/clients/claude-code.d.ts +5 -0
- package/dist/clients/claude-code.d.ts.map +1 -0
- package/dist/clients/claude-code.js +189 -0
- package/dist/clients/claude-code.js.map +1 -0
- package/dist/clients/claude-settings-guard.d.ts +18 -0
- package/dist/clients/claude-settings-guard.d.ts.map +1 -0
- package/dist/clients/codex-desktop-catalog.d.ts +67 -0
- package/dist/clients/codex-desktop-catalog.d.ts.map +1 -0
- package/dist/clients/codex-desktop-catalog.js +212 -0
- package/dist/clients/codex-desktop-catalog.js.map +1 -0
- package/dist/clients/codex.d.ts +181 -0
- package/dist/clients/codex.d.ts.map +1 -0
- package/dist/clients/codex.js +783 -0
- package/dist/clients/codex.js.map +1 -0
- package/dist/clients/env-files.d.ts +14 -0
- package/dist/clients/env-files.d.ts.map +1 -0
- package/dist/clients/env-files.js +50 -0
- package/dist/clients/env-files.js.map +1 -0
- package/dist/clients/gemini-client-utils.d.ts +4 -0
- package/dist/clients/gemini-client-utils.d.ts.map +1 -0
- package/dist/clients/gemini-client-utils.js +33 -0
- package/dist/clients/gemini-client-utils.js.map +1 -0
- package/dist/clients/gemini.d.ts +16 -0
- package/dist/clients/gemini.d.ts.map +1 -0
- package/dist/clients/gemini.js +233 -0
- package/dist/clients/gemini.js.map +1 -0
- package/dist/clients/index.d.ts +14 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +18 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/isolation.d.ts +28 -0
- package/dist/clients/isolation.d.ts.map +1 -0
- package/dist/clients/isolation.js +131 -0
- package/dist/clients/isolation.js.map +1 -0
- package/dist/clients/kiro.d.ts +10 -0
- package/dist/clients/kiro.d.ts.map +1 -0
- package/dist/clients/kiro.js +168 -0
- package/dist/clients/kiro.js.map +1 -0
- package/dist/clients/model-roles.d.ts +58 -0
- package/dist/clients/model-roles.d.ts.map +1 -0
- package/dist/clients/model-roles.js +139 -0
- package/dist/clients/model-roles.js.map +1 -0
- package/dist/clients/registry.d.ts +7 -0
- package/dist/clients/registry.d.ts.map +1 -0
- package/dist/clients/registry.js +16 -0
- package/dist/clients/registry.js.map +1 -0
- package/dist/clients/resolve.d.ts +27 -0
- package/dist/clients/resolve.d.ts.map +1 -0
- package/dist/clients/resolve.js +49 -0
- package/dist/clients/resolve.js.map +1 -0
- package/dist/core/account-codec.d.ts +32 -0
- package/dist/core/account-codec.d.ts.map +1 -0
- package/dist/core/account-codec.js +134 -0
- package/dist/core/account-codec.js.map +1 -0
- package/dist/core/account-transfer.d.ts +20 -0
- package/dist/core/account-transfer.d.ts.map +1 -0
- package/dist/core/account-transfer.js +136 -0
- package/dist/core/account-transfer.js.map +1 -0
- package/dist/core/activation-executor.d.ts +72 -0
- package/dist/core/activation-executor.d.ts.map +1 -0
- package/dist/core/activation-executor.js +690 -0
- package/dist/core/activation-executor.js.map +1 -0
- package/dist/core/activation-models.d.ts +6 -0
- package/dist/core/activation-models.d.ts.map +1 -0
- package/dist/core/activation-models.js +33 -0
- package/dist/core/activation-models.js.map +1 -0
- package/dist/core/activation-planner.d.ts +38 -0
- package/dist/core/activation-planner.d.ts.map +1 -0
- package/dist/core/activation-planner.js +248 -0
- package/dist/core/activation-planner.js.map +1 -0
- package/dist/core/activation-protocol.d.ts +3 -0
- package/dist/core/activation-protocol.d.ts.map +1 -0
- package/dist/core/activation-protocol.js +9 -0
- package/dist/core/activation-protocol.js.map +1 -0
- package/dist/core/activation-transport.d.ts +15 -0
- package/dist/core/activation-transport.d.ts.map +1 -0
- package/dist/core/activation-transport.js +23 -0
- package/dist/core/activation-transport.js.map +1 -0
- package/dist/core/app.d.ts +149 -0
- package/dist/core/app.d.ts.map +1 -0
- package/dist/core/app.js +372 -0
- package/dist/core/app.js.map +1 -0
- package/dist/core/binding-service.d.ts +93 -0
- package/dist/core/binding-service.d.ts.map +1 -0
- package/dist/core/binding-service.js +281 -0
- package/dist/core/binding-service.js.map +1 -0
- package/dist/core/binding-store.d.ts +23 -0
- package/dist/core/binding-store.d.ts.map +1 -0
- package/dist/core/binding-store.js +154 -0
- package/dist/core/binding-store.js.map +1 -0
- package/dist/core/brand.d.ts +18 -0
- package/dist/core/brand.d.ts.map +1 -0
- package/dist/core/brand.js +22 -0
- package/dist/core/brand.js.map +1 -0
- package/dist/core/capabilities.d.ts +30 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/capabilities.js +27 -0
- package/dist/core/capabilities.js.map +1 -0
- package/dist/core/client-state-store.d.ts +17 -0
- package/dist/core/client-state-store.d.ts.map +1 -0
- package/dist/core/client-state-store.js +47 -0
- package/dist/core/client-state-store.js.map +1 -0
- package/dist/core/codec/account.d.ts +52 -0
- package/dist/core/codec/account.d.ts.map +1 -0
- package/dist/core/codec/account.js +69 -0
- package/dist/core/codec/account.js.map +1 -0
- package/dist/core/codec/bindings.d.ts +38 -0
- package/dist/core/codec/bindings.d.ts.map +1 -0
- package/dist/core/codec/bindings.js +79 -0
- package/dist/core/codec/bindings.js.map +1 -0
- package/dist/core/codec/operations.d.ts +36 -0
- package/dist/core/codec/operations.d.ts.map +1 -0
- package/dist/core/codec/operations.js +82 -0
- package/dist/core/codec/operations.js.map +1 -0
- package/dist/core/codec/primitives.d.ts +59 -0
- package/dist/core/codec/primitives.d.ts.map +1 -0
- package/dist/core/codec/primitives.js +123 -0
- package/dist/core/codec/primitives.js.map +1 -0
- package/dist/core/codec/proxy-hub.d.ts +43 -0
- package/dist/core/codec/proxy-hub.d.ts.map +1 -0
- package/dist/core/codec/proxy-hub.js +69 -0
- package/dist/core/codec/proxy-hub.js.map +1 -0
- package/dist/core/codec/runtime.d.ts +41 -0
- package/dist/core/codec/runtime.d.ts.map +1 -0
- package/dist/core/codec/runtime.js +66 -0
- package/dist/core/codec/runtime.js.map +1 -0
- package/dist/core/codec.d.ts +43 -0
- package/dist/core/codec.d.ts.map +1 -0
- package/dist/core/codec.js +69 -0
- package/dist/core/codec.js.map +1 -0
- package/dist/core/codex-live-config.d.ts +92 -0
- package/dist/core/codex-live-config.d.ts.map +1 -0
- package/dist/core/codex-live-config.js +263 -0
- package/dist/core/codex-live-config.js.map +1 -0
- package/dist/core/config-service.d.ts +35 -0
- package/dist/core/config-service.d.ts.map +1 -0
- package/dist/core/config-service.js +87 -0
- package/dist/core/config-service.js.map +1 -0
- package/dist/core/config.d.ts +14 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +45 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/db-schema.d.ts +30 -0
- package/dist/core/db-schema.d.ts.map +1 -0
- package/dist/core/db-schema.js +278 -0
- package/dist/core/db-schema.js.map +1 -0
- package/dist/core/db.d.ts +72 -0
- package/dist/core/db.d.ts.map +1 -0
- package/dist/core/db.js +192 -0
- package/dist/core/db.js.map +1 -0
- package/dist/core/doctor-fixes.d.ts +3 -0
- package/dist/core/doctor-fixes.d.ts.map +1 -0
- package/dist/core/doctor-fixes.js +102 -0
- package/dist/core/doctor-fixes.js.map +1 -0
- package/dist/core/doctor-format.d.ts +10 -0
- package/dist/core/doctor-format.d.ts.map +1 -0
- package/dist/core/doctor-format.js +45 -0
- package/dist/core/doctor-format.js.map +1 -0
- package/dist/core/doctor-report.d.ts +3 -0
- package/dist/core/doctor-report.d.ts.map +1 -0
- package/dist/core/doctor-report.js +174 -0
- package/dist/core/doctor-report.js.map +1 -0
- package/dist/core/doctor-scan.d.ts +7 -0
- package/dist/core/doctor-scan.d.ts.map +1 -0
- package/dist/core/doctor-scan.js +139 -0
- package/dist/core/doctor-scan.js.map +1 -0
- package/dist/core/doctor-types.d.ts +89 -0
- package/dist/core/doctor-types.d.ts.map +1 -0
- package/dist/core/doctor-types.js +14 -0
- package/dist/core/doctor-types.js.map +1 -0
- package/dist/core/doctor-utils.d.ts +3 -0
- package/dist/core/doctor-utils.d.ts.map +1 -0
- package/dist/core/doctor-utils.js +36 -0
- package/dist/core/doctor-utils.js.map +1 -0
- package/dist/core/doctor.d.ts +14 -0
- package/dist/core/doctor.d.ts.map +1 -0
- package/dist/core/doctor.js +127 -0
- package/dist/core/doctor.js.map +1 -0
- package/dist/core/events.d.ts +58 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +88 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/journal.d.ts +23 -0
- package/dist/core/journal.d.ts.map +1 -0
- package/dist/core/journal.js +93 -0
- package/dist/core/journal.js.map +1 -0
- package/dist/core/lease-store.d.ts +22 -0
- package/dist/core/lease-store.d.ts.map +1 -0
- package/dist/core/lease-store.js +81 -0
- package/dist/core/lease-store.js.map +1 -0
- package/dist/core/migrate-bindings.d.ts +10 -0
- package/dist/core/migrate-bindings.d.ts.map +1 -0
- package/dist/core/migrate-bindings.js +98 -0
- package/dist/core/migrate-bindings.js.map +1 -0
- package/dist/core/migrate-fs.d.ts +11 -0
- package/dist/core/migrate-fs.d.ts.map +1 -0
- package/dist/core/migrate-fs.js +184 -0
- package/dist/core/migrate-fs.js.map +1 -0
- package/dist/core/model-cache-store.d.ts +27 -0
- package/dist/core/model-cache-store.d.ts.map +1 -0
- package/dist/core/model-cache-store.js +50 -0
- package/dist/core/model-cache-store.js.map +1 -0
- package/dist/core/model-discovery.d.ts +66 -0
- package/dist/core/model-discovery.d.ts.map +1 -0
- package/dist/core/model-discovery.js +127 -0
- package/dist/core/model-discovery.js.map +1 -0
- package/dist/core/model-policy.d.ts +40 -0
- package/dist/core/model-policy.d.ts.map +1 -0
- package/dist/core/model-policy.js +77 -0
- package/dist/core/model-policy.js.map +1 -0
- package/dist/core/model-roles.d.ts +9 -0
- package/dist/core/model-roles.d.ts.map +1 -0
- package/dist/core/model-roles.js +20 -0
- package/dist/core/model-roles.js.map +1 -0
- package/dist/core/mutation-lock.d.ts +31 -0
- package/dist/core/mutation-lock.d.ts.map +1 -0
- package/dist/core/mutation-lock.js +69 -0
- package/dist/core/mutation-lock.js.map +1 -0
- package/dist/core/paths.d.ts +49 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +110 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/plugin-loader.d.ts +40 -0
- package/dist/core/plugin-loader.d.ts.map +1 -0
- package/dist/core/plugin-loader.js +184 -0
- package/dist/core/plugin-loader.js.map +1 -0
- package/dist/core/plugin-service.d.ts +32 -0
- package/dist/core/plugin-service.d.ts.map +1 -0
- package/dist/core/plugin-service.js +110 -0
- package/dist/core/plugin-service.js.map +1 -0
- package/dist/core/plugin-store.d.ts +18 -0
- package/dist/core/plugin-store.d.ts.map +1 -0
- package/dist/core/plugin-store.js +50 -0
- package/dist/core/plugin-store.js.map +1 -0
- package/dist/core/pool-store.d.ts +44 -0
- package/dist/core/pool-store.d.ts.map +1 -0
- package/dist/core/pool-store.js +198 -0
- package/dist/core/pool-store.js.map +1 -0
- package/dist/core/preset-store.d.ts +29 -0
- package/dist/core/preset-store.d.ts.map +1 -0
- package/dist/core/preset-store.js +105 -0
- package/dist/core/preset-store.js.map +1 -0
- package/dist/core/profile-service.d.ts +50 -0
- package/dist/core/profile-service.d.ts.map +1 -0
- package/dist/core/profile-service.js +149 -0
- package/dist/core/profile-service.js.map +1 -0
- package/dist/core/profile-store.d.ts +20 -0
- package/dist/core/profile-store.d.ts.map +1 -0
- package/dist/core/profile-store.js +92 -0
- package/dist/core/profile-store.js.map +1 -0
- package/dist/core/profile-synth.d.ts +24 -0
- package/dist/core/profile-synth.d.ts.map +1 -0
- package/dist/core/profile-synth.js +30 -0
- package/dist/core/profile-synth.js.map +1 -0
- package/dist/core/project-root.d.ts +7 -0
- package/dist/core/project-root.d.ts.map +1 -0
- package/dist/core/project-root.js +23 -0
- package/dist/core/project-root.js.map +1 -0
- package/dist/core/proxy-hub-cli.d.ts +3 -0
- package/dist/core/proxy-hub-cli.d.ts.map +1 -0
- package/dist/core/proxy-hub-cli.js +80 -0
- package/dist/core/proxy-hub-cli.js.map +1 -0
- package/dist/core/proxy-hub-routes.d.ts +22 -0
- package/dist/core/proxy-hub-routes.d.ts.map +1 -0
- package/dist/core/proxy-hub-routes.js +92 -0
- package/dist/core/proxy-hub-routes.js.map +1 -0
- package/dist/core/proxy-hub-server.d.ts +59 -0
- package/dist/core/proxy-hub-server.d.ts.map +1 -0
- package/dist/core/proxy-hub-server.js +409 -0
- package/dist/core/proxy-hub-server.js.map +1 -0
- package/dist/core/proxy-hub-service.d.ts +97 -0
- package/dist/core/proxy-hub-service.d.ts.map +1 -0
- package/dist/core/proxy-hub-service.js +553 -0
- package/dist/core/proxy-hub-service.js.map +1 -0
- package/dist/core/proxy-hub-store.d.ts +28 -0
- package/dist/core/proxy-hub-store.d.ts.map +1 -0
- package/dist/core/proxy-hub-store.js +152 -0
- package/dist/core/proxy-hub-store.js.map +1 -0
- package/dist/core/proxy-lifecycle.d.ts +26 -0
- package/dist/core/proxy-lifecycle.d.ts.map +1 -0
- package/dist/core/proxy-lifecycle.js +33 -0
- package/dist/core/proxy-lifecycle.js.map +1 -0
- package/dist/core/proxy-ports.d.ts +50 -0
- package/dist/core/proxy-ports.d.ts.map +1 -0
- package/dist/core/proxy-ports.js +86 -0
- package/dist/core/proxy-ports.js.map +1 -0
- package/dist/core/proxy-service.d.ts +184 -0
- package/dist/core/proxy-service.d.ts.map +1 -0
- package/dist/core/proxy-service.js +860 -0
- package/dist/core/proxy-service.js.map +1 -0
- package/dist/core/quota-guard-policy.d.ts +8 -0
- package/dist/core/quota-guard-policy.d.ts.map +1 -0
- package/dist/core/quota-guard-policy.js +21 -0
- package/dist/core/quota-guard-policy.js.map +1 -0
- package/dist/core/realign-proxy-clients.d.ts +19 -0
- package/dist/core/realign-proxy-clients.d.ts.map +1 -0
- package/dist/core/realign-proxy-clients.js +40 -0
- package/dist/core/realign-proxy-clients.js.map +1 -0
- package/dist/core/refs.d.ts +84 -0
- package/dist/core/refs.d.ts.map +1 -0
- package/dist/core/refs.js +250 -0
- package/dist/core/refs.js.map +1 -0
- package/dist/core/registry.d.ts +46 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +70 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/resolve-source.d.ts +54 -0
- package/dist/core/resolve-source.d.ts.map +1 -0
- package/dist/core/resolve-source.js +148 -0
- package/dist/core/resolve-source.js.map +1 -0
- package/dist/core/runtime-service.d.ts +158 -0
- package/dist/core/runtime-service.d.ts.map +1 -0
- package/dist/core/runtime-service.js +422 -0
- package/dist/core/runtime-service.js.map +1 -0
- package/dist/core/service.d.ts +200 -0
- package/dist/core/service.d.ts.map +1 -0
- package/dist/core/service.js +643 -0
- package/dist/core/service.js.map +1 -0
- package/dist/core/store-snapshot.d.ts +10 -0
- package/dist/core/store-snapshot.d.ts.map +1 -0
- package/dist/core/store-snapshot.js +79 -0
- package/dist/core/store-snapshot.js.map +1 -0
- package/dist/core/store.d.ts +68 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +159 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/tray-runtime.d.ts +15 -0
- package/dist/core/tray-runtime.d.ts.map +1 -0
- package/dist/core/tray-runtime.js +33 -0
- package/dist/core/tray-runtime.js.map +1 -0
- package/dist/core/tray-settings-service.d.ts +7 -0
- package/dist/core/tray-settings-service.d.ts.map +1 -0
- package/dist/core/tray-settings-service.js +24 -0
- package/dist/core/tray-settings-service.js.map +1 -0
- package/dist/core/update.d.ts +26 -0
- package/dist/core/update.d.ts.map +1 -0
- package/dist/core/update.js +128 -0
- package/dist/core/update.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/network/egress/allowlist.d.ts +2 -0
- package/dist/network/egress/allowlist.d.ts.map +1 -0
- package/dist/network/egress/allowlist.js +14 -0
- package/dist/network/egress/allowlist.js.map +1 -0
- package/dist/network/egress/direct.d.ts +17 -0
- package/dist/network/egress/direct.d.ts.map +1 -0
- package/dist/network/egress/direct.js +28 -0
- package/dist/network/egress/direct.js.map +1 -0
- package/dist/network/egress/errors.d.ts +4 -0
- package/dist/network/egress/errors.d.ts.map +1 -0
- package/dist/network/egress/errors.js +8 -0
- package/dist/network/egress/errors.js.map +1 -0
- package/dist/network/egress/index.d.ts +6 -0
- package/dist/network/egress/index.d.ts.map +1 -0
- package/dist/network/egress/index.js +11 -0
- package/dist/network/egress/index.js.map +1 -0
- package/dist/network/egress/types.d.ts +16 -0
- package/dist/network/egress/types.d.ts.map +1 -0
- package/dist/presentation/client-name.d.ts +14 -0
- package/dist/presentation/client-name.d.ts.map +1 -0
- package/dist/presentation/client-name.js +22 -0
- package/dist/presentation/client-name.js.map +1 -0
- package/dist/presentation/layout.d.ts +7 -0
- package/dist/presentation/layout.d.ts.map +1 -0
- package/dist/presentation/layout.js +10 -0
- package/dist/presentation/layout.js.map +1 -0
- package/dist/providers/auth-fingerprint.d.ts +56 -0
- package/dist/providers/auth-fingerprint.d.ts.map +1 -0
- package/dist/providers/auth-fingerprint.js +163 -0
- package/dist/providers/auth-fingerprint.js.map +1 -0
- package/dist/providers/claude.d.ts +43 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +191 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex-identity.d.ts +13 -0
- package/dist/providers/codex-identity.d.ts.map +1 -0
- package/dist/providers/codex-identity.js +69 -0
- package/dist/providers/codex-identity.js.map +1 -0
- package/dist/providers/codex-refresh.d.ts +30 -0
- package/dist/providers/codex-refresh.d.ts.map +1 -0
- package/dist/providers/codex-refresh.js +64 -0
- package/dist/providers/codex-refresh.js.map +1 -0
- package/dist/providers/codex-usage.d.ts +3 -0
- package/dist/providers/codex-usage.d.ts.map +1 -0
- package/dist/providers/codex-usage.js +42 -0
- package/dist/providers/codex-usage.js.map +1 -0
- package/dist/providers/codex.d.ts +61 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +212 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/gemini-antigravity-oauth.d.ts +83 -0
- package/dist/providers/gemini-antigravity-oauth.d.ts.map +1 -0
- package/dist/providers/gemini-antigravity-oauth.js +343 -0
- package/dist/providers/gemini-antigravity-oauth.js.map +1 -0
- package/dist/providers/gemini-antigravity-state.d.ts +35 -0
- package/dist/providers/gemini-antigravity-state.d.ts.map +1 -0
- package/dist/providers/gemini-antigravity-state.js +433 -0
- package/dist/providers/gemini-antigravity-state.js.map +1 -0
- package/dist/providers/gemini-env.d.ts +8 -0
- package/dist/providers/gemini-env.d.ts.map +1 -0
- package/dist/providers/gemini-env.js +78 -0
- package/dist/providers/gemini-env.js.map +1 -0
- package/dist/providers/gemini-identity.d.ts +2 -0
- package/dist/providers/gemini-identity.d.ts.map +1 -0
- package/dist/providers/gemini-identity.js +14 -0
- package/dist/providers/gemini-identity.js.map +1 -0
- package/dist/providers/gemini-proxy/main.d.ts +3 -0
- package/dist/providers/gemini-proxy/main.d.ts.map +1 -0
- package/dist/providers/gemini-proxy/main.js +176 -0
- package/dist/providers/gemini-proxy/main.js.map +1 -0
- package/dist/providers/gemini-proxy/server.d.ts +57 -0
- package/dist/providers/gemini-proxy/server.d.ts.map +1 -0
- package/dist/providers/gemini-proxy/server.js +1240 -0
- package/dist/providers/gemini-proxy/server.js.map +1 -0
- package/dist/providers/gemini-proxy-entry.d.ts +2 -0
- package/dist/providers/gemini-proxy-entry.d.ts.map +1 -0
- package/dist/providers/gemini-proxy-entry.js +16 -0
- package/dist/providers/gemini-proxy-entry.js.map +1 -0
- package/dist/providers/gemini-proxy-lifecycle.d.ts +11 -0
- package/dist/providers/gemini-proxy-lifecycle.d.ts.map +1 -0
- package/dist/providers/gemini-proxy-lifecycle.js +131 -0
- package/dist/providers/gemini-proxy-lifecycle.js.map +1 -0
- package/dist/providers/gemini.d.ts +137 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +471 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/grok-proxy/auth.d.ts +27 -0
- package/dist/providers/grok-proxy/auth.d.ts.map +1 -0
- package/dist/providers/grok-proxy/auth.js +123 -0
- package/dist/providers/grok-proxy/auth.js.map +1 -0
- package/dist/providers/grok-proxy/main.d.ts +3 -0
- package/dist/providers/grok-proxy/main.d.ts.map +1 -0
- package/dist/providers/grok-proxy/main.js +111 -0
- package/dist/providers/grok-proxy/main.js.map +1 -0
- package/dist/providers/grok-proxy/server.d.ts +46 -0
- package/dist/providers/grok-proxy/server.d.ts.map +1 -0
- package/dist/providers/grok-proxy/server.js +595 -0
- package/dist/providers/grok-proxy/server.js.map +1 -0
- package/dist/providers/grok.d.ts +38 -0
- package/dist/providers/grok.d.ts.map +1 -0
- package/dist/providers/grok.js +250 -0
- package/dist/providers/grok.js.map +1 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +23 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/kiro-secret-store.d.ts +39 -0
- package/dist/providers/kiro-secret-store.d.ts.map +1 -0
- package/dist/providers/kiro-secret-store.js +168 -0
- package/dist/providers/kiro-secret-store.js.map +1 -0
- package/dist/providers/kiro.d.ts +50 -0
- package/dist/providers/kiro.d.ts.map +1 -0
- package/dist/providers/kiro.js +373 -0
- package/dist/providers/kiro.js.map +1 -0
- package/dist/providers/model-policy.d.ts +15 -0
- package/dist/providers/model-policy.d.ts.map +1 -0
- package/dist/providers/model-policy.js +26 -0
- package/dist/providers/model-policy.js.map +1 -0
- package/dist/providers/opencode-auth.d.ts +67 -0
- package/dist/providers/opencode-auth.d.ts.map +1 -0
- package/dist/providers/opencode-auth.js +146 -0
- package/dist/providers/opencode-auth.js.map +1 -0
- package/dist/providers/opencode-cli-entry.d.ts +36 -0
- package/dist/providers/opencode-cli-entry.d.ts.map +1 -0
- package/dist/providers/opencode-cli-entry.js +90 -0
- package/dist/providers/opencode-cli-entry.js.map +1 -0
- package/dist/providers/opencode-proxy/abort.d.ts +8 -0
- package/dist/providers/opencode-proxy/abort.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/abort.js +42 -0
- package/dist/providers/opencode-proxy/abort.js.map +1 -0
- package/dist/providers/opencode-proxy/anthropic-handler.d.ts +4 -0
- package/dist/providers/opencode-proxy/anthropic-handler.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/anthropic-handler.js +108 -0
- package/dist/providers/opencode-proxy/anthropic-handler.js.map +1 -0
- package/dist/providers/opencode-proxy/auth.d.ts +38 -0
- package/dist/providers/opencode-proxy/auth.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/auth.js +128 -0
- package/dist/providers/opencode-proxy/auth.js.map +1 -0
- package/dist/providers/opencode-proxy/body.d.ts +9 -0
- package/dist/providers/opencode-proxy/body.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/body.js +69 -0
- package/dist/providers/opencode-proxy/body.js.map +1 -0
- package/dist/providers/opencode-proxy/catalog-handlers.d.ts +7 -0
- package/dist/providers/opencode-proxy/catalog-handlers.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/catalog-handlers.js +132 -0
- package/dist/providers/opencode-proxy/catalog-handlers.js.map +1 -0
- package/dist/providers/opencode-proxy/catalog.d.ts +41 -0
- package/dist/providers/opencode-proxy/catalog.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/catalog.js +146 -0
- package/dist/providers/opencode-proxy/catalog.js.map +1 -0
- package/dist/providers/opencode-proxy/cli.d.ts +2 -0
- package/dist/providers/opencode-proxy/cli.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/cli.js +162 -0
- package/dist/providers/opencode-proxy/cli.js.map +1 -0
- package/dist/providers/opencode-proxy/constants.d.ts +13 -0
- package/dist/providers/opencode-proxy/constants.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/constants.js +15 -0
- package/dist/providers/opencode-proxy/constants.js.map +1 -0
- package/dist/providers/opencode-proxy/context-budget.d.ts +31 -0
- package/dist/providers/opencode-proxy/context-budget.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/context-budget.js +165 -0
- package/dist/providers/opencode-proxy/context-budget.js.map +1 -0
- package/dist/providers/opencode-proxy/errors.d.ts +5 -0
- package/dist/providers/opencode-proxy/errors.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/errors.js +45 -0
- package/dist/providers/opencode-proxy/errors.js.map +1 -0
- package/dist/providers/opencode-proxy/forwarders.d.ts +7 -0
- package/dist/providers/opencode-proxy/forwarders.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/forwarders.js +214 -0
- package/dist/providers/opencode-proxy/forwarders.js.map +1 -0
- package/dist/providers/opencode-proxy/http.d.ts +11 -0
- package/dist/providers/opencode-proxy/http.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/http.js +97 -0
- package/dist/providers/opencode-proxy/http.js.map +1 -0
- package/dist/providers/opencode-proxy/models.d.ts +42 -0
- package/dist/providers/opencode-proxy/models.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/models.js +148 -0
- package/dist/providers/opencode-proxy/models.js.map +1 -0
- package/dist/providers/opencode-proxy/openai-handler.d.ts +5 -0
- package/dist/providers/opencode-proxy/openai-handler.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/openai-handler.js +115 -0
- package/dist/providers/opencode-proxy/openai-handler.js.map +1 -0
- package/dist/providers/opencode-proxy/router.d.ts +4 -0
- package/dist/providers/opencode-proxy/router.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/router.js +65 -0
- package/dist/providers/opencode-proxy/router.js.map +1 -0
- package/dist/providers/opencode-proxy/runtime.d.ts +23 -0
- package/dist/providers/opencode-proxy/runtime.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/runtime.js +158 -0
- package/dist/providers/opencode-proxy/runtime.js.map +1 -0
- package/dist/providers/opencode-proxy/server.d.ts +13 -0
- package/dist/providers/opencode-proxy/server.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/server.js +52 -0
- package/dist/providers/opencode-proxy/server.js.map +1 -0
- package/dist/providers/opencode-proxy/stream.d.ts +4 -0
- package/dist/providers/opencode-proxy/stream.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/stream.js +71 -0
- package/dist/providers/opencode-proxy/stream.js.map +1 -0
- package/dist/providers/opencode-proxy/translate-stream.d.ts +3 -0
- package/dist/providers/opencode-proxy/translate-stream.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/translate-stream.js +205 -0
- package/dist/providers/opencode-proxy/translate-stream.js.map +1 -0
- package/dist/providers/opencode-proxy/translate.d.ts +11 -0
- package/dist/providers/opencode-proxy/translate.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/translate.js +250 -0
- package/dist/providers/opencode-proxy/translate.js.map +1 -0
- package/dist/providers/opencode-proxy/types.d.ts +110 -0
- package/dist/providers/opencode-proxy/types.d.ts.map +1 -0
- package/dist/providers/opencode-proxy/types.js +38 -0
- package/dist/providers/opencode-proxy/types.js.map +1 -0
- package/dist/providers/opencode-proxy-lifecycle.d.ts +11 -0
- package/dist/providers/opencode-proxy-lifecycle.d.ts.map +1 -0
- package/dist/providers/opencode-proxy-lifecycle.js +144 -0
- package/dist/providers/opencode-proxy-lifecycle.js.map +1 -0
- package/dist/providers/opencode.d.ts +40 -0
- package/dist/providers/opencode.d.ts.map +1 -0
- package/dist/providers/opencode.js +190 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/protocol/anthropic-convert.d.ts +12 -0
- package/dist/providers/protocol/anthropic-convert.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-convert.js +113 -0
- package/dist/providers/protocol/anthropic-convert.js.map +1 -0
- package/dist/providers/protocol/anthropic-helpers.d.ts +13 -0
- package/dist/providers/protocol/anthropic-helpers.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-helpers.js +179 -0
- package/dist/providers/protocol/anthropic-helpers.js.map +1 -0
- package/dist/providers/protocol/anthropic-stream-reader.d.ts +13 -0
- package/dist/providers/protocol/anthropic-stream-reader.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-stream-reader.js +46 -0
- package/dist/providers/protocol/anthropic-stream-reader.js.map +1 -0
- package/dist/providers/protocol/anthropic-stream.d.ts +7 -0
- package/dist/providers/protocol/anthropic-stream.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic-stream.js +318 -0
- package/dist/providers/protocol/anthropic-stream.js.map +1 -0
- package/dist/providers/protocol/anthropic-types.d.ts +240 -0
- package/dist/providers/protocol/anthropic-types.d.ts.map +1 -0
- package/dist/providers/protocol/anthropic.d.ts +20 -0
- package/dist/providers/protocol/anthropic.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-anthropic.d.ts +15 -0
- package/dist/providers/protocol/gemini/translate-anthropic.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-anthropic.js +84 -0
- package/dist/providers/protocol/gemini/translate-anthropic.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-chat.d.ts +5 -0
- package/dist/providers/protocol/gemini/translate-chat.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-chat.js +142 -0
- package/dist/providers/protocol/gemini/translate-chat.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-models.d.ts +40 -0
- package/dist/providers/protocol/gemini/translate-models.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-models.js +186 -0
- package/dist/providers/protocol/gemini/translate-models.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-responses.d.ts +6 -0
- package/dist/providers/protocol/gemini/translate-responses.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-responses.js +187 -0
- package/dist/providers/protocol/gemini/translate-responses.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-schema.d.ts +9 -0
- package/dist/providers/protocol/gemini/translate-schema.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-schema.js +48 -0
- package/dist/providers/protocol/gemini/translate-schema.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-shared.d.ts +8 -0
- package/dist/providers/protocol/gemini/translate-shared.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-shared.js +47 -0
- package/dist/providers/protocol/gemini/translate-shared.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-thinking.d.ts +7 -0
- package/dist/providers/protocol/gemini/translate-thinking.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate-thinking.js +65 -0
- package/dist/providers/protocol/gemini/translate-thinking.js.map +1 -0
- package/dist/providers/protocol/gemini/translate-types.d.ts +133 -0
- package/dist/providers/protocol/gemini/translate-types.d.ts.map +1 -0
- package/dist/providers/protocol/gemini/translate.d.ts +7 -0
- package/dist/providers/protocol/gemini/translate.d.ts.map +1 -0
- package/dist/providers/protocol/json-schema.d.ts +52 -0
- package/dist/providers/protocol/json-schema.d.ts.map +1 -0
- package/dist/providers/protocol/json-schema.js +189 -0
- package/dist/providers/protocol/json-schema.js.map +1 -0
- package/dist/providers/protocol/token-estimate.d.ts +15 -0
- package/dist/providers/protocol/token-estimate.d.ts.map +1 -0
- package/dist/providers/protocol/token-estimate.js +34 -0
- package/dist/providers/protocol/token-estimate.js.map +1 -0
- package/dist/providers/proxy-hub-backend.d.ts +4 -0
- package/dist/providers/proxy-hub-backend.d.ts.map +1 -0
- package/dist/providers/proxy-hub-backend.js +11 -0
- package/dist/providers/proxy-hub-backend.js.map +1 -0
- package/dist/providers/proxy-process.d.ts +35 -0
- package/dist/providers/proxy-process.d.ts.map +1 -0
- package/dist/providers/proxy-process.js +119 -0
- package/dist/providers/proxy-process.js.map +1 -0
- package/dist/providers/proxy-shared.d.ts +43 -0
- package/dist/providers/proxy-shared.d.ts.map +1 -0
- package/dist/providers/proxy-shared.js +128 -0
- package/dist/providers/proxy-shared.js.map +1 -0
- package/dist/providers/quota-guard.d.ts +49 -0
- package/dist/providers/quota-guard.d.ts.map +1 -0
- package/dist/providers/quota-guard.js +107 -0
- package/dist/providers/quota-guard.js.map +1 -0
- package/dist/providers/reasoning.d.ts +27 -0
- package/dist/providers/reasoning.d.ts.map +1 -0
- package/dist/providers/reasoning.js +61 -0
- package/dist/providers/reasoning.js.map +1 -0
- package/dist/providers/upstream-policy.d.ts +33 -0
- package/dist/providers/upstream-policy.d.ts.map +1 -0
- package/dist/providers/upstream-policy.js +97 -0
- package/dist/providers/upstream-policy.js.map +1 -0
- package/dist/public-types.d.ts +3 -0
- package/dist/public-types.d.ts.map +1 -0
- package/dist/public.d.ts +19 -0
- package/dist/public.d.ts.map +1 -0
- package/dist/public.js +16 -0
- package/dist/public.js.map +1 -0
- package/dist/sources/account-adapters.d.ts +64 -0
- package/dist/sources/account-adapters.d.ts.map +1 -0
- package/dist/sources/account-adapters.js +205 -0
- package/dist/sources/account-adapters.js.map +1 -0
- package/dist/sources/gateway-adapters.d.ts +26 -0
- package/dist/sources/gateway-adapters.d.ts.map +1 -0
- package/dist/sources/gateway-adapters.js +43 -0
- package/dist/sources/gateway-adapters.js.map +1 -0
- package/dist/sources/kiro-proxy-bin.d.ts +41 -0
- package/dist/sources/kiro-proxy-bin.d.ts.map +1 -0
- package/dist/sources/kiro-proxy-bin.js +140 -0
- package/dist/sources/kiro-proxy-bin.js.map +1 -0
- package/dist/sources/proxy-hub-adapters.d.ts +7 -0
- package/dist/sources/proxy-hub-adapters.d.ts.map +1 -0
- package/dist/sources/proxy-hub-adapters.js +26 -0
- package/dist/sources/proxy-hub-adapters.js.map +1 -0
- package/dist/testing.d.ts +9 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +6 -0
- package/dist/tray/AnyPickTray.swift +3 -0
- package/dist/tray/activity.d.ts +18 -0
- package/dist/tray/activity.d.ts.map +1 -0
- package/dist/tray/activity.js +51 -0
- package/dist/tray/activity.js.map +1 -0
- package/dist/tray/app-icons/icon-1024.png +0 -0
- package/dist/tray/app-icons/icon-128.png +0 -0
- package/dist/tray/app-icons/icon-16.png +0 -0
- package/dist/tray/app-icons/icon-256.png +0 -0
- package/dist/tray/app-icons/icon-32.png +0 -0
- package/dist/tray/app-icons/icon-512.png +0 -0
- package/dist/tray/app-icons/icon-64.png +0 -0
- package/dist/tray/icons/claude.svg +1 -0
- package/dist/tray/icons/googlegemini.svg +1 -0
- package/dist/tray/icons/grok.svg +1 -0
- package/dist/tray/icons/kiro.svg +1 -0
- package/dist/tray/icons/openai.svg +1 -0
- package/dist/tray/icons/opencode.svg +1 -0
- package/dist/tray/icons/openrouter.svg +1 -0
- package/dist/tray/model-role-actions.d.ts +15 -0
- package/dist/tray/model-role-actions.d.ts.map +1 -0
- package/dist/tray/model-role-actions.js +41 -0
- package/dist/tray/model-role-actions.js.map +1 -0
- package/dist/tray/native/AccountsPanel.swift +434 -0
- package/dist/tray/native/AppEntry.swift +229 -0
- package/dist/tray/native/MainWindow.swift +300 -0
- package/dist/tray/native/ManageFormChrome.swift +332 -0
- package/dist/tray/native/ManageForms.swift +472 -0
- package/dist/tray/native/ManagePanel.swift +356 -0
- package/dist/tray/native/Models.swift +259 -0
- package/dist/tray/native/ModelsEditor.swift +390 -0
- package/dist/tray/native/ModelsOverview.swift +76 -0
- package/dist/tray/native/ModelsPickers.swift +273 -0
- package/dist/tray/native/ModelsRoutePickers.swift +718 -0
- package/dist/tray/native/MonitorPanel.swift +375 -0
- package/dist/tray/native/ProxyPanel.swift +326 -0
- package/dist/tray/native/QuickActivityRow.swift +40 -0
- package/dist/tray/native/QuickNav.swift +62 -0
- package/dist/tray/native/QuickPanel.swift +447 -0
- package/dist/tray/native/QuickRouteRow.swift +189 -0
- package/dist/tray/native/QuickServiceRows.swift +292 -0
- package/dist/tray/native/RoutingIssues.swift +293 -0
- package/dist/tray/native/SettingsPanel.swift +225 -0
- package/dist/tray/native/SharedUI.swift +681 -0
- package/dist/tray/native/Store.swift +540 -0
- package/dist/tray/native/Theme.swift +139 -0
- package/dist/tray/native/TrayChrome.swift +657 -0
- package/dist/tray/native/TrayControls.swift +475 -0
- package/dist/tray/native/TrayPreferences.swift +46 -0
- package/dist/tray/native/sources.txt +26 -0
- package/dist/tray/native-sources.d.ts +8 -0
- package/dist/tray/native-sources.d.ts.map +1 -0
- package/dist/tray/native-sources.js +19 -0
- package/dist/tray/native-sources.js.map +1 -0
- package/dist/tray/protocol.d.ts +79 -0
- package/dist/tray/protocol.d.ts.map +1 -0
- package/dist/tray/protocol.js +145 -0
- package/dist/tray/protocol.js.map +1 -0
- package/dist/tray/settings.d.ts +15 -0
- package/dist/tray/settings.d.ts.map +1 -0
- package/dist/tray/settings.js +72 -0
- package/dist/tray/settings.js.map +1 -0
- package/dist/tray/snapshot-client-routes.d.ts +11 -0
- package/dist/tray/snapshot-client-routes.d.ts.map +1 -0
- package/dist/tray/snapshot-client-routes.js +305 -0
- package/dist/tray/snapshot-client-routes.js.map +1 -0
- package/dist/tray/snapshot-helpers.d.ts +20 -0
- package/dist/tray/snapshot-helpers.d.ts.map +1 -0
- package/dist/tray/snapshot-helpers.js +74 -0
- package/dist/tray/snapshot-helpers.js.map +1 -0
- package/dist/tray/snapshot-hub.d.ts +7 -0
- package/dist/tray/snapshot-hub.d.ts.map +1 -0
- package/dist/tray/snapshot-hub.js +93 -0
- package/dist/tray/snapshot-hub.js.map +1 -0
- package/dist/tray/snapshot-resources.d.ts +19 -0
- package/dist/tray/snapshot-resources.d.ts.map +1 -0
- package/dist/tray/snapshot-resources.js +216 -0
- package/dist/tray/snapshot-resources.js.map +1 -0
- package/dist/tray/snapshot-types.d.ts +229 -0
- package/dist/tray/snapshot-types.d.ts.map +1 -0
- package/dist/tray/snapshot-usage.d.ts +9 -0
- package/dist/tray/snapshot-usage.d.ts.map +1 -0
- package/dist/tray/snapshot-usage.js +35 -0
- package/dist/tray/snapshot-usage.js.map +1 -0
- package/dist/tray/snapshot.d.ts +7 -0
- package/dist/tray/snapshot.d.ts.map +1 -0
- package/dist/tray/snapshot.js +48 -0
- package/dist/tray/snapshot.js.map +1 -0
- package/dist/tray/supervisor-actions.d.ts +19 -0
- package/dist/tray/supervisor-actions.d.ts.map +1 -0
- package/dist/tray/supervisor-actions.js +224 -0
- package/dist/tray/supervisor-actions.js.map +1 -0
- package/dist/tray/supervisor-activity.d.ts +5 -0
- package/dist/tray/supervisor-activity.d.ts.map +1 -0
- package/dist/tray/supervisor-activity.js +19 -0
- package/dist/tray/supervisor-activity.js.map +1 -0
- package/dist/tray/supervisor-errors.d.ts +9 -0
- package/dist/tray/supervisor-errors.d.ts.map +1 -0
- package/dist/tray/supervisor-errors.js +91 -0
- package/dist/tray/supervisor-errors.js.map +1 -0
- package/dist/tray/supervisor-logs.d.ts +6 -0
- package/dist/tray/supervisor-logs.d.ts.map +1 -0
- package/dist/tray/supervisor-logs.js +52 -0
- package/dist/tray/supervisor-logs.js.map +1 -0
- package/dist/tray/supervisor-mutations.d.ts +14 -0
- package/dist/tray/supervisor-mutations.d.ts.map +1 -0
- package/dist/tray/supervisor-mutations.js +218 -0
- package/dist/tray/supervisor-mutations.js.map +1 -0
- package/dist/tray/supervisor-native.d.ts +22 -0
- package/dist/tray/supervisor-native.d.ts.map +1 -0
- package/dist/tray/supervisor-native.js +227 -0
- package/dist/tray/supervisor-native.js.map +1 -0
- package/dist/tray/supervisor-proxies.d.ts +6 -0
- package/dist/tray/supervisor-proxies.d.ts.map +1 -0
- package/dist/tray/supervisor-proxies.js +37 -0
- package/dist/tray/supervisor-proxies.js.map +1 -0
- package/dist/tray/supervisor-tauri.d.ts +13 -0
- package/dist/tray/supervisor-tauri.d.ts.map +1 -0
- package/dist/tray/supervisor-tauri.js +36 -0
- package/dist/tray/supervisor-tauri.js.map +1 -0
- package/dist/tray/supervisor.d.ts +17 -0
- package/dist/tray/supervisor.d.ts.map +1 -0
- package/dist/tray/supervisor.js +372 -0
- package/dist/tray/supervisor.js.map +1 -0
- package/dist/tray/terminal-launcher.d.ts +12 -0
- package/dist/tray/terminal-launcher.d.ts.map +1 -0
- package/dist/tray/terminal-launcher.js +130 -0
- package/dist/tray/terminal-launcher.js.map +1 -0
- package/dist/tui/actions/ensure-proxy-up.d.ts +15 -0
- package/dist/tui/actions/ensure-proxy-up.d.ts.map +1 -0
- package/dist/tui/actions/ensure-proxy-up.js +41 -0
- package/dist/tui/actions/ensure-proxy-up.js.map +1 -0
- package/dist/tui/actions/use-account-actions.d.ts +35 -0
- package/dist/tui/actions/use-account-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-account-actions.js +527 -0
- package/dist/tui/actions/use-account-actions.js.map +1 -0
- package/dist/tui/actions/use-app-bindings.d.ts +83 -0
- package/dist/tui/actions/use-app-bindings.d.ts.map +1 -0
- package/dist/tui/actions/use-app-bindings.js +472 -0
- package/dist/tui/actions/use-app-bindings.js.map +1 -0
- package/dist/tui/actions/use-gateway-actions.d.ts +45 -0
- package/dist/tui/actions/use-gateway-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-gateway-actions.js +370 -0
- package/dist/tui/actions/use-gateway-actions.js.map +1 -0
- package/dist/tui/actions/use-home-filter.d.ts +24 -0
- package/dist/tui/actions/use-home-filter.d.ts.map +1 -0
- package/dist/tui/actions/use-home-filter.js +48 -0
- package/dist/tui/actions/use-home-filter.js.map +1 -0
- package/dist/tui/actions/use-model-role-editor.d.ts +44 -0
- package/dist/tui/actions/use-model-role-editor.d.ts.map +1 -0
- package/dist/tui/actions/use-model-role-editor.js +68 -0
- package/dist/tui/actions/use-model-role-editor.js.map +1 -0
- package/dist/tui/actions/use-provider-filter.d.ts +10 -0
- package/dist/tui/actions/use-provider-filter.d.ts.map +1 -0
- package/dist/tui/actions/use-provider-filter.js +22 -0
- package/dist/tui/actions/use-provider-filter.js.map +1 -0
- package/dist/tui/actions/use-proxy-actions.d.ts +31 -0
- package/dist/tui/actions/use-proxy-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-proxy-actions.js +474 -0
- package/dist/tui/actions/use-proxy-actions.js.map +1 -0
- package/dist/tui/actions/use-text-input-submit.d.ts +16 -0
- package/dist/tui/actions/use-text-input-submit.d.ts.map +1 -0
- package/dist/tui/actions/use-text-input-submit.js +96 -0
- package/dist/tui/actions/use-text-input-submit.js.map +1 -0
- package/dist/tui/actions/use-tray-runtime-actions.d.ts +18 -0
- package/dist/tui/actions/use-tray-runtime-actions.d.ts.map +1 -0
- package/dist/tui/actions/use-tray-runtime-actions.js +78 -0
- package/dist/tui/actions/use-tray-runtime-actions.js.map +1 -0
- package/dist/tui/app-ui-helpers.d.ts +14 -0
- package/dist/tui/app-ui-helpers.d.ts.map +1 -0
- package/dist/tui/app-ui-helpers.js +48 -0
- package/dist/tui/app-ui-helpers.js.map +1 -0
- package/dist/tui/app-ui.d.ts +19 -0
- package/dist/tui/app-ui.d.ts.map +1 -0
- package/dist/tui/app-ui.js +98 -0
- package/dist/tui/app-ui.js.map +1 -0
- package/dist/tui/components/chrome/header.d.ts +39 -0
- package/dist/tui/components/chrome/header.d.ts.map +1 -0
- package/dist/tui/components/chrome/header.js +161 -0
- package/dist/tui/components/chrome/header.js.map +1 -0
- package/dist/tui/components/chrome/inputs.d.ts +34 -0
- package/dist/tui/components/chrome/inputs.d.ts.map +1 -0
- package/dist/tui/components/chrome/inputs.js +82 -0
- package/dist/tui/components/chrome/inputs.js.map +1 -0
- package/dist/tui/components/chrome/layout.d.ts +61 -0
- package/dist/tui/components/chrome/layout.d.ts.map +1 -0
- package/dist/tui/components/chrome/layout.js +119 -0
- package/dist/tui/components/chrome/layout.js.map +1 -0
- package/dist/tui/components/chrome/legacy.d.ts +84 -0
- package/dist/tui/components/chrome/legacy.d.ts.map +1 -0
- package/dist/tui/components/chrome/legacy.js +6 -0
- package/dist/tui/components/chrome/rows.d.ts +89 -0
- package/dist/tui/components/chrome/rows.d.ts.map +1 -0
- package/dist/tui/components/chrome/rows.js +151 -0
- package/dist/tui/components/chrome/rows.js.map +1 -0
- package/dist/tui/components/chrome/status.d.ts +50 -0
- package/dist/tui/components/chrome/status.d.ts.map +1 -0
- package/dist/tui/components/chrome/status.js +157 -0
- package/dist/tui/components/chrome/status.js.map +1 -0
- package/dist/tui/components/chrome.d.ts +7 -0
- package/dist/tui/components/chrome.d.ts.map +1 -0
- package/dist/tui/components/chrome.js +7 -0
- package/dist/tui/components.d.ts +26 -0
- package/dist/tui/components.d.ts.map +1 -0
- package/dist/tui/components.js +182 -0
- package/dist/tui/components.js.map +1 -0
- package/dist/tui/model/anypick.d.ts +106 -0
- package/dist/tui/model/anypick.d.ts.map +1 -0
- package/dist/tui/model/anypick.js +116 -0
- package/dist/tui/model/anypick.js.map +1 -0
- package/dist/tui/model/bindings.d.ts +39 -0
- package/dist/tui/model/bindings.d.ts.map +1 -0
- package/dist/tui/model/bindings.js +102 -0
- package/dist/tui/model/bindings.js.map +1 -0
- package/dist/tui/model/detail.d.ts +6 -0
- package/dist/tui/model/detail.d.ts.map +1 -0
- package/dist/tui/model/detail.js +85 -0
- package/dist/tui/model/detail.js.map +1 -0
- package/dist/tui/model/gateway.d.ts +46 -0
- package/dist/tui/model/gateway.d.ts.map +1 -0
- package/dist/tui/model/gateway.js +134 -0
- package/dist/tui/model/gateway.js.map +1 -0
- package/dist/tui/model/home-format.d.ts +52 -0
- package/dist/tui/model/home-format.d.ts.map +1 -0
- package/dist/tui/model/home-format.js +64 -0
- package/dist/tui/model/home-format.js.map +1 -0
- package/dist/tui/model/home-load.d.ts +8 -0
- package/dist/tui/model/home-load.d.ts.map +1 -0
- package/dist/tui/model/home-load.js +244 -0
- package/dist/tui/model/home-load.js.map +1 -0
- package/dist/tui/model/identity.d.ts +53 -0
- package/dist/tui/model/identity.d.ts.map +1 -0
- package/dist/tui/model/identity.js +176 -0
- package/dist/tui/model/identity.js.map +1 -0
- package/dist/tui/model/line-editor.d.ts +99 -0
- package/dist/tui/model/line-editor.d.ts.map +1 -0
- package/dist/tui/model/line-editor.js +186 -0
- package/dist/tui/model/line-editor.js.map +1 -0
- package/dist/tui/model/names.d.ts +28 -0
- package/dist/tui/model/names.d.ts.map +1 -0
- package/dist/tui/model/names.js +42 -0
- package/dist/tui/model/names.js.map +1 -0
- package/dist/tui/model/pool.d.ts +11 -0
- package/dist/tui/model/pool.d.ts.map +1 -0
- package/dist/tui/model/pool.js +115 -0
- package/dist/tui/model/pool.js.map +1 -0
- package/dist/tui/model/provider-filter.d.ts +14 -0
- package/dist/tui/model/provider-filter.d.ts.map +1 -0
- package/dist/tui/model/provider-filter.js +46 -0
- package/dist/tui/model/provider-filter.js.map +1 -0
- package/dist/tui/model/proxy-hub.d.ts +23 -0
- package/dist/tui/model/proxy-hub.d.ts.map +1 -0
- package/dist/tui/model/proxy-hub.js +69 -0
- package/dist/tui/model/proxy-hub.js.map +1 -0
- package/dist/tui/model/proxy-labels.d.ts +5 -0
- package/dist/tui/model/proxy-labels.d.ts.map +1 -0
- package/dist/tui/model/proxy-labels.js +18 -0
- package/dist/tui/model/proxy-labels.js.map +1 -0
- package/dist/tui/model/proxy.d.ts +15 -0
- package/dist/tui/model/proxy.d.ts.map +1 -0
- package/dist/tui/model/proxy.js +214 -0
- package/dist/tui/model/proxy.js.map +1 -0
- package/dist/tui/model/root.d.ts +20 -0
- package/dist/tui/model/root.d.ts.map +1 -0
- package/dist/tui/model/root.js +126 -0
- package/dist/tui/model/root.js.map +1 -0
- package/dist/tui/model/route-builder.d.ts +25 -0
- package/dist/tui/model/route-builder.d.ts.map +1 -0
- package/dist/tui/model/route-builder.js +199 -0
- package/dist/tui/model/route-builder.js.map +1 -0
- package/dist/tui/model/screen.d.ts +260 -0
- package/dist/tui/model/screen.d.ts.map +1 -0
- package/dist/tui/model/types.d.ts +179 -0
- package/dist/tui/model/types.d.ts.map +1 -0
- package/dist/tui/model.d.ts +18 -0
- package/dist/tui/model.d.ts.map +1 -0
- package/dist/tui/model.js +17 -0
- package/dist/tui/proxy-models-fetch.d.ts +34 -0
- package/dist/tui/proxy-models-fetch.d.ts.map +1 -0
- package/dist/tui/proxy-models-fetch.js +87 -0
- package/dist/tui/proxy-models-fetch.js.map +1 -0
- package/dist/tui/routes/account.d.ts +4 -0
- package/dist/tui/routes/account.d.ts.map +1 -0
- package/dist/tui/routes/account.js +327 -0
- package/dist/tui/routes/account.js.map +1 -0
- package/dist/tui/routes/apps.d.ts +3 -0
- package/dist/tui/routes/apps.d.ts.map +1 -0
- package/dist/tui/routes/apps.js +296 -0
- package/dist/tui/routes/apps.js.map +1 -0
- package/dist/tui/routes/common.d.ts +4 -0
- package/dist/tui/routes/common.d.ts.map +1 -0
- package/dist/tui/routes/common.js +117 -0
- package/dist/tui/routes/common.js.map +1 -0
- package/dist/tui/routes/context.d.ts +43 -0
- package/dist/tui/routes/context.d.ts.map +1 -0
- package/dist/tui/routes/gateway.d.ts +3 -0
- package/dist/tui/routes/gateway.d.ts.map +1 -0
- package/dist/tui/routes/gateway.js +199 -0
- package/dist/tui/routes/gateway.js.map +1 -0
- package/dist/tui/routes/proxy.d.ts +3 -0
- package/dist/tui/routes/proxy.d.ts.map +1 -0
- package/dist/tui/routes/proxy.js +234 -0
- package/dist/tui/routes/proxy.js.map +1 -0
- package/dist/tui/screens/account-detail.d.ts +14 -0
- package/dist/tui/screens/account-detail.d.ts.map +1 -0
- package/dist/tui/screens/account-detail.js +98 -0
- package/dist/tui/screens/account-detail.js.map +1 -0
- package/dist/tui/screens/accounts-home.d.ts +42 -0
- package/dist/tui/screens/accounts-home.d.ts.map +1 -0
- package/dist/tui/screens/accounts-home.js +321 -0
- package/dist/tui/screens/accounts-home.js.map +1 -0
- package/dist/tui/screens/add-account.d.ts +70 -0
- package/dist/tui/screens/add-account.d.ts.map +1 -0
- package/dist/tui/screens/add-account.js +323 -0
- package/dist/tui/screens/add-account.js.map +1 -0
- package/dist/tui/screens/anypick-home.d.ts +39 -0
- package/dist/tui/screens/anypick-home.d.ts.map +1 -0
- package/dist/tui/screens/anypick-home.js +253 -0
- package/dist/tui/screens/anypick-home.js.map +1 -0
- package/dist/tui/screens/anypick-preview.d.ts +13 -0
- package/dist/tui/screens/anypick-preview.d.ts.map +1 -0
- package/dist/tui/screens/anypick-preview.js +49 -0
- package/dist/tui/screens/anypick-preview.js.map +1 -0
- package/dist/tui/screens/app-route-preview.d.ts +14 -0
- package/dist/tui/screens/app-route-preview.d.ts.map +1 -0
- package/dist/tui/screens/app-route-preview.js +35 -0
- package/dist/tui/screens/app-route-preview.js.map +1 -0
- package/dist/tui/screens/app-route-source.d.ts +15 -0
- package/dist/tui/screens/app-route-source.d.ts.map +1 -0
- package/dist/tui/screens/app-route-source.js +97 -0
- package/dist/tui/screens/app-route-source.js.map +1 -0
- package/dist/tui/screens/apps-home.d.ts +22 -0
- package/dist/tui/screens/apps-home.d.ts.map +1 -0
- package/dist/tui/screens/apps-home.js +111 -0
- package/dist/tui/screens/apps-home.js.map +1 -0
- package/dist/tui/screens/confirm.d.ts +19 -0
- package/dist/tui/screens/confirm.d.ts.map +1 -0
- package/dist/tui/screens/confirm.js +42 -0
- package/dist/tui/screens/confirm.js.map +1 -0
- package/dist/tui/screens/credential-form.d.ts +30 -0
- package/dist/tui/screens/credential-form.d.ts.map +1 -0
- package/dist/tui/screens/credential-form.js +241 -0
- package/dist/tui/screens/credential-form.js.map +1 -0
- package/dist/tui/screens/gateway-connection-form.d.ts +16 -0
- package/dist/tui/screens/gateway-connection-form.d.ts.map +1 -0
- package/dist/tui/screens/gateway-connection-form.js +127 -0
- package/dist/tui/screens/gateway-connection-form.js.map +1 -0
- package/dist/tui/screens/gateway-pick-provider.d.ts +19 -0
- package/dist/tui/screens/gateway-pick-provider.d.ts.map +1 -0
- package/dist/tui/screens/gateway-pick-provider.js +62 -0
- package/dist/tui/screens/gateway-pick-provider.js.map +1 -0
- package/dist/tui/screens/gateways-home.d.ts +38 -0
- package/dist/tui/screens/gateways-home.d.ts.map +1 -0
- package/dist/tui/screens/gateways-home.js +247 -0
- package/dist/tui/screens/gateways-home.js.map +1 -0
- package/dist/tui/screens/health.d.ts +16 -0
- package/dist/tui/screens/health.d.ts.map +1 -0
- package/dist/tui/screens/health.js +109 -0
- package/dist/tui/screens/health.js.map +1 -0
- package/dist/tui/screens/help.d.ts +10 -0
- package/dist/tui/screens/help.d.ts.map +1 -0
- package/dist/tui/screens/help.js +213 -0
- package/dist/tui/screens/help.js.map +1 -0
- package/dist/tui/screens/manage-apps.d.ts +29 -0
- package/dist/tui/screens/manage-apps.d.ts.map +1 -0
- package/dist/tui/screens/manage-apps.js +165 -0
- package/dist/tui/screens/manage-apps.js.map +1 -0
- package/dist/tui/screens/proxy-board-helpers.d.ts +9 -0
- package/dist/tui/screens/proxy-board-helpers.d.ts.map +1 -0
- package/dist/tui/screens/proxy-board-helpers.js +70 -0
- package/dist/tui/screens/proxy-board-helpers.js.map +1 -0
- package/dist/tui/screens/proxy-board.d.ts +43 -0
- package/dist/tui/screens/proxy-board.d.ts.map +1 -0
- package/dist/tui/screens/proxy-board.js +351 -0
- package/dist/tui/screens/proxy-board.js.map +1 -0
- package/dist/tui/screens/proxy-hub.d.ts +21 -0
- package/dist/tui/screens/proxy-hub.d.ts.map +1 -0
- package/dist/tui/screens/proxy-hub.js +150 -0
- package/dist/tui/screens/proxy-hub.js.map +1 -0
- package/dist/tui/screens/proxy-models-utils.d.ts +13 -0
- package/dist/tui/screens/proxy-models-utils.d.ts.map +1 -0
- package/dist/tui/screens/proxy-models-utils.js +53 -0
- package/dist/tui/screens/proxy-models-utils.js.map +1 -0
- package/dist/tui/screens/proxy-models.d.ts +65 -0
- package/dist/tui/screens/proxy-models.d.ts.map +1 -0
- package/dist/tui/screens/proxy-models.js +252 -0
- package/dist/tui/screens/proxy-models.js.map +1 -0
- package/dist/tui/screens/proxy.d.ts +26 -0
- package/dist/tui/screens/proxy.d.ts.map +1 -0
- package/dist/tui/screens/text-input.d.ts +18 -0
- package/dist/tui/screens/text-input.d.ts.map +1 -0
- package/dist/tui/screens/text-input.js +67 -0
- package/dist/tui/screens/text-input.js.map +1 -0
- package/dist/tui/screens/tray-runtime.d.ts +19 -0
- package/dist/tui/screens/tray-runtime.d.ts.map +1 -0
- package/dist/tui/screens/tray-runtime.js +108 -0
- package/dist/tui/screens/tray-runtime.js.map +1 -0
- package/dist/tui/use-tui-nav.d.ts +40 -0
- package/dist/tui/use-tui-nav.d.ts.map +1 -0
- package/dist/tui/use-tui-nav.js +256 -0
- package/dist/tui/use-tui-nav.js.map +1 -0
- package/dist/tui/use-tui-shell.d.ts +46 -0
- package/dist/tui/use-tui-shell.d.ts.map +1 -0
- package/dist/tui/use-tui-shell.js +95 -0
- package/dist/tui/use-tui-shell.js.map +1 -0
- package/dist/types/account.d.ts +410 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/account.js +7 -0
- package/dist/types/account.js.map +1 -0
- package/dist/types/bindings.d.ts +300 -0
- package/dist/types/bindings.d.ts.map +1 -0
- package/dist/types/catalog.d.ts +165 -0
- package/dist/types/catalog.d.ts.map +1 -0
- package/dist/types/clients.d.ts +174 -0
- package/dist/types/clients.d.ts.map +1 -0
- package/dist/types/clients.js +11 -0
- package/dist/types/clients.js.map +1 -0
- package/dist/types/plugins.d.ts +89 -0
- package/dist/types/plugins.d.ts.map +1 -0
- package/dist/types/plugins.js +14 -0
- package/dist/types/plugins.js.map +1 -0
- package/dist/types/proxy-hub.d.ts +109 -0
- package/dist/types/proxy-hub.d.ts.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/utils/errors.d.ts +61 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +119 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/fs.d.ts +39 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +126 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/lock.d.ts +33 -0
- package/dist/utils/lock.d.ts.map +1 -0
- package/dist/utils/lock.js +95 -0
- package/dist/utils/lock.js.map +1 -0
- package/dist/utils/log.d.ts +10 -0
- package/dist/utils/log.d.ts.map +1 -0
- package/dist/utils/log.js +21 -0
- package/dist/utils/log.js.map +1 -0
- package/dist/utils/network.d.ts +3 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +13 -0
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/process/binary.d.ts +14 -0
- package/dist/utils/process/binary.d.ts.map +1 -0
- package/dist/utils/process/binary.js +29 -0
- package/dist/utils/process/binary.js.map +1 -0
- package/dist/utils/process/follow.d.ts +2 -0
- package/dist/utils/process/follow.d.ts.map +1 -0
- package/dist/utils/process/follow.js +90 -0
- package/dist/utils/process/follow.js.map +1 -0
- package/dist/utils/process/health.d.ts +43 -0
- package/dist/utils/process/health.d.ts.map +1 -0
- package/dist/utils/process/health.js +132 -0
- package/dist/utils/process/health.js.map +1 -0
- package/dist/utils/process/pid.d.ts +95 -0
- package/dist/utils/process/pid.d.ts.map +1 -0
- package/dist/utils/process/pid.js +243 -0
- package/dist/utils/process/pid.js.map +1 -0
- package/dist/utils/process.d.ts +5 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +5 -0
- package/dist/utils/slug.d.ts +18 -0
- package/dist/utils/slug.d.ts.map +1 -0
- package/dist/utils/slug.js +42 -0
- package/dist/utils/slug.js.map +1 -0
- package/package.json +121 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-schema.d.ts","sourceRoot":"","sources":["../../src/core/db-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AA+K5C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,EAAE,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC;CAC/B;AAcD,iFAAiF;AACjF,eAAO,MAAM,UAAU,EAAE,eAAe,EAkFvC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAgCvD"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
//#region src/core/db-schema.ts
|
|
2
|
+
var SCHEMA = `
|
|
3
|
+
PRAGMA journal_mode = WAL;
|
|
4
|
+
PRAGMA foreign_keys = ON;
|
|
5
|
+
|
|
6
|
+
CREATE TABLE IF NOT EXISTS config (
|
|
7
|
+
key TEXT PRIMARY KEY NOT NULL,
|
|
8
|
+
value TEXT NOT NULL
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS accounts (
|
|
12
|
+
provider TEXT NOT NULL,
|
|
13
|
+
name TEXT NOT NULL,
|
|
14
|
+
meta_json TEXT NOT NULL,
|
|
15
|
+
proxy_json TEXT NOT NULL DEFAULT '{}',
|
|
16
|
+
created_at TEXT NOT NULL,
|
|
17
|
+
updated_at TEXT NOT NULL,
|
|
18
|
+
PRIMARY KEY (provider, name)
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE TABLE IF NOT EXISTS account_snapshot_files (
|
|
22
|
+
provider TEXT NOT NULL,
|
|
23
|
+
account TEXT NOT NULL,
|
|
24
|
+
path TEXT NOT NULL,
|
|
25
|
+
content BLOB NOT NULL,
|
|
26
|
+
PRIMARY KEY (provider, account, path),
|
|
27
|
+
FOREIGN KEY (provider, account)
|
|
28
|
+
REFERENCES accounts(provider, name)
|
|
29
|
+
ON DELETE CASCADE
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
CREATE TABLE IF NOT EXISTS provider_active (
|
|
33
|
+
provider TEXT PRIMARY KEY NOT NULL,
|
|
34
|
+
account_name TEXT NOT NULL
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE TABLE IF NOT EXISTS proxy_state (
|
|
38
|
+
provider TEXT NOT NULL,
|
|
39
|
+
account TEXT NOT NULL,
|
|
40
|
+
state_json TEXT NOT NULL,
|
|
41
|
+
PRIMARY KEY (provider, account)
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
CREATE TABLE IF NOT EXISTS profiles (
|
|
45
|
+
name TEXT PRIMARY KEY NOT NULL,
|
|
46
|
+
meta_json TEXT NOT NULL,
|
|
47
|
+
secrets_json TEXT NOT NULL DEFAULT '{}',
|
|
48
|
+
created_at TEXT NOT NULL,
|
|
49
|
+
updated_at TEXT NOT NULL
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
CREATE TABLE IF NOT EXISTS client_state (
|
|
53
|
+
client_id TEXT PRIMARY KEY NOT NULL,
|
|
54
|
+
state_json TEXT NOT NULL
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
CREATE TABLE IF NOT EXISTS meta (
|
|
58
|
+
key TEXT PRIMARY KEY NOT NULL,
|
|
59
|
+
value TEXT NOT NULL
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
CREATE TABLE IF NOT EXISTS global_bindings (
|
|
63
|
+
client_id TEXT PRIMARY KEY NOT NULL,
|
|
64
|
+
spec_json TEXT NOT NULL,
|
|
65
|
+
provenance_json TEXT NOT NULL,
|
|
66
|
+
managed_config_revision TEXT,
|
|
67
|
+
created_at TEXT NOT NULL,
|
|
68
|
+
updated_at TEXT NOT NULL
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS project_bindings (
|
|
72
|
+
project_root TEXT NOT NULL,
|
|
73
|
+
client_id TEXT NOT NULL,
|
|
74
|
+
spec_json TEXT NOT NULL,
|
|
75
|
+
provenance_json TEXT NOT NULL,
|
|
76
|
+
created_at TEXT NOT NULL,
|
|
77
|
+
updated_at TEXT NOT NULL,
|
|
78
|
+
PRIMARY KEY (project_root, client_id)
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
CREATE TABLE IF NOT EXISTS source_resumes (
|
|
82
|
+
source_ref TEXT NOT NULL,
|
|
83
|
+
client_id TEXT NOT NULL,
|
|
84
|
+
spec_json TEXT NOT NULL,
|
|
85
|
+
updated_at TEXT NOT NULL,
|
|
86
|
+
PRIMARY KEY (source_ref, client_id)
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
CREATE TABLE IF NOT EXISTS presets (
|
|
90
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
91
|
+
name TEXT NOT NULL UNIQUE,
|
|
92
|
+
revision INTEGER NOT NULL DEFAULT 1,
|
|
93
|
+
spec_json TEXT NOT NULL,
|
|
94
|
+
created_at TEXT NOT NULL,
|
|
95
|
+
updated_at TEXT NOT NULL,
|
|
96
|
+
last_used_at TEXT,
|
|
97
|
+
use_count INTEGER NOT NULL DEFAULT 0
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
CREATE TABLE IF NOT EXISTS operation_journal (
|
|
101
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
102
|
+
type TEXT NOT NULL,
|
|
103
|
+
state TEXT NOT NULL,
|
|
104
|
+
affected_resources_json TEXT NOT NULL DEFAULT '[]',
|
|
105
|
+
backup_paths_json TEXT NOT NULL DEFAULT '[]',
|
|
106
|
+
params_json TEXT,
|
|
107
|
+
started_at TEXT NOT NULL,
|
|
108
|
+
updated_at TEXT NOT NULL
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
CREATE TABLE IF NOT EXISTS proxy_leases (
|
|
112
|
+
lease_id TEXT PRIMARY KEY NOT NULL,
|
|
113
|
+
provider TEXT NOT NULL,
|
|
114
|
+
account TEXT,
|
|
115
|
+
port INTEGER NOT NULL,
|
|
116
|
+
host TEXT NOT NULL DEFAULT '127.0.0.1',
|
|
117
|
+
endpoint TEXT,
|
|
118
|
+
owner_pid INTEGER NOT NULL,
|
|
119
|
+
instance_id TEXT,
|
|
120
|
+
binding_refs_json TEXT NOT NULL DEFAULT '[]',
|
|
121
|
+
created_at TEXT NOT NULL,
|
|
122
|
+
updated_at TEXT NOT NULL
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
CREATE TABLE IF NOT EXISTS pools (
|
|
126
|
+
provider TEXT PRIMARY KEY NOT NULL,
|
|
127
|
+
mode TEXT NOT NULL DEFAULT 'single',
|
|
128
|
+
enabled INTEGER NOT NULL DEFAULT 0,
|
|
129
|
+
strategy TEXT NOT NULL DEFAULT 'failover',
|
|
130
|
+
host TEXT,
|
|
131
|
+
port INTEGER,
|
|
132
|
+
members_json TEXT NOT NULL DEFAULT '[]',
|
|
133
|
+
updated_at TEXT NOT NULL
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
-- Cached vendor model lists. Advisory data: a miss or a stale row costs a
|
|
137
|
+
-- refetch, never correctness, so it is safe to delete this table at any time.
|
|
138
|
+
CREATE TABLE IF NOT EXISTS model_catalog_cache (
|
|
139
|
+
provider TEXT NOT NULL,
|
|
140
|
+
endpoint TEXT NOT NULL,
|
|
141
|
+
models_json TEXT NOT NULL DEFAULT '[]',
|
|
142
|
+
fetched_at TEXT NOT NULL,
|
|
143
|
+
PRIMARY KEY (provider, endpoint)
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
-- The unified local Proxy Hub. Config and public runtime state intentionally
|
|
147
|
+
-- live apart from per-account proxy_state: one hub can serve many providers.
|
|
148
|
+
CREATE TABLE IF NOT EXISTS proxy_hubs (
|
|
149
|
+
name TEXT PRIMARY KEY NOT NULL,
|
|
150
|
+
config_json TEXT NOT NULL,
|
|
151
|
+
created_at TEXT NOT NULL,
|
|
152
|
+
updated_at TEXT NOT NULL
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
CREATE TABLE IF NOT EXISTS proxy_hub_runtime (
|
|
156
|
+
name TEXT PRIMARY KEY NOT NULL,
|
|
157
|
+
state_json TEXT NOT NULL,
|
|
158
|
+
updated_at TEXT NOT NULL,
|
|
159
|
+
FOREIGN KEY (name) REFERENCES proxy_hubs(name) ON DELETE CASCADE
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
-- token_secret is owner-only material. It is never decoded into public status
|
|
163
|
+
-- types or included in the Tray/CLI snapshot surface.
|
|
164
|
+
CREATE TABLE IF NOT EXISTS proxy_hub_routes (
|
|
165
|
+
route_id TEXT PRIMARY KEY NOT NULL,
|
|
166
|
+
hub_name TEXT NOT NULL,
|
|
167
|
+
manifest_json TEXT NOT NULL,
|
|
168
|
+
token_secret TEXT NOT NULL UNIQUE,
|
|
169
|
+
created_at TEXT NOT NULL,
|
|
170
|
+
updated_at TEXT NOT NULL,
|
|
171
|
+
FOREIGN KEY (hub_name) REFERENCES proxy_hubs(name) ON DELETE CASCADE
|
|
172
|
+
);
|
|
173
|
+
`;
|
|
174
|
+
function hasColumn(db, table, column) {
|
|
175
|
+
return db.prepare(`PRAGMA table_info(${table})`).all().some((entry) => {
|
|
176
|
+
if (typeof entry !== "object" || entry === null) return false;
|
|
177
|
+
return entry.name === column;
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/** Migrations are applied in array order; index i corresponds to version i+2. */
|
|
181
|
+
var MIGRATIONS = [
|
|
182
|
+
{
|
|
183
|
+
name: "add source resume history",
|
|
184
|
+
up: (db) => db.exec(`
|
|
185
|
+
CREATE TABLE IF NOT EXISTS source_resumes (
|
|
186
|
+
source_ref TEXT NOT NULL,
|
|
187
|
+
client_id TEXT NOT NULL,
|
|
188
|
+
spec_json TEXT NOT NULL,
|
|
189
|
+
updated_at TEXT NOT NULL,
|
|
190
|
+
PRIMARY KEY (source_ref, client_id)
|
|
191
|
+
);
|
|
192
|
+
`)
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: "add plugin registry",
|
|
196
|
+
up: (db) => db.exec(`
|
|
197
|
+
CREATE TABLE IF NOT EXISTS plugins (
|
|
198
|
+
name TEXT PRIMARY KEY NOT NULL,
|
|
199
|
+
path TEXT NOT NULL,
|
|
200
|
+
version TEXT NOT NULL,
|
|
201
|
+
enabled INTEGER NOT NULL DEFAULT 0,
|
|
202
|
+
digest TEXT NOT NULL,
|
|
203
|
+
added_at TEXT NOT NULL,
|
|
204
|
+
updated_at TEXT NOT NULL
|
|
205
|
+
);
|
|
206
|
+
`)
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: "add proxy lease instance identity",
|
|
210
|
+
up: (db) => {
|
|
211
|
+
if (!hasColumn(db, "proxy_leases", "instance_id")) db.exec("ALTER TABLE proxy_leases ADD COLUMN instance_id TEXT");
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
name: "add model catalog cache",
|
|
216
|
+
up: (db) => db.exec(`
|
|
217
|
+
CREATE TABLE IF NOT EXISTS model_catalog_cache (
|
|
218
|
+
provider TEXT NOT NULL,
|
|
219
|
+
endpoint TEXT NOT NULL,
|
|
220
|
+
models_json TEXT NOT NULL DEFAULT '[]',
|
|
221
|
+
fetched_at TEXT NOT NULL,
|
|
222
|
+
PRIMARY KEY (provider, endpoint)
|
|
223
|
+
);
|
|
224
|
+
`)
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: "add proxy hub state and token-scoped routes",
|
|
228
|
+
up: (db) => db.exec(`
|
|
229
|
+
CREATE TABLE IF NOT EXISTS proxy_hubs (
|
|
230
|
+
name TEXT PRIMARY KEY NOT NULL,
|
|
231
|
+
config_json TEXT NOT NULL,
|
|
232
|
+
created_at TEXT NOT NULL,
|
|
233
|
+
updated_at TEXT NOT NULL
|
|
234
|
+
);
|
|
235
|
+
CREATE TABLE IF NOT EXISTS proxy_hub_runtime (
|
|
236
|
+
name TEXT PRIMARY KEY NOT NULL,
|
|
237
|
+
state_json TEXT NOT NULL,
|
|
238
|
+
updated_at TEXT NOT NULL,
|
|
239
|
+
FOREIGN KEY (name) REFERENCES proxy_hubs(name) ON DELETE CASCADE
|
|
240
|
+
);
|
|
241
|
+
CREATE TABLE IF NOT EXISTS proxy_hub_routes (
|
|
242
|
+
route_id TEXT PRIMARY KEY NOT NULL,
|
|
243
|
+
hub_name TEXT NOT NULL,
|
|
244
|
+
manifest_json TEXT NOT NULL,
|
|
245
|
+
token_secret TEXT NOT NULL UNIQUE,
|
|
246
|
+
created_at TEXT NOT NULL,
|
|
247
|
+
updated_at TEXT NOT NULL,
|
|
248
|
+
FOREIGN KEY (hub_name) REFERENCES proxy_hubs(name) ON DELETE CASCADE
|
|
249
|
+
);
|
|
250
|
+
`)
|
|
251
|
+
}
|
|
252
|
+
];
|
|
253
|
+
/**
|
|
254
|
+
* Apply `SCHEMA` (baseline) then any pending versioned migrations. Idempotent:
|
|
255
|
+
* safe to call on every open. Reads/writes `PRAGMA user_version`.
|
|
256
|
+
*/
|
|
257
|
+
function migrateSchema(db) {
|
|
258
|
+
const versionRow = db.prepare("PRAGMA user_version").get();
|
|
259
|
+
let current = Number(versionRow?.user_version ?? 0);
|
|
260
|
+
const target = 1 + MIGRATIONS.length;
|
|
261
|
+
if (current > target) throw new Error(`anypick.db schema version ${current} is newer than this AnyPick build supports (${target}). Upgrade AnyPick before using this data directory.`);
|
|
262
|
+
db.exec(SCHEMA);
|
|
263
|
+
if (current < 1) {
|
|
264
|
+
db.exec(`PRAGMA user_version = 1`);
|
|
265
|
+
current = 1;
|
|
266
|
+
}
|
|
267
|
+
for (let v = current; v < target; v++) {
|
|
268
|
+
const migration = MIGRATIONS[v - 1];
|
|
269
|
+
db.transaction(() => {
|
|
270
|
+
migration.up(db);
|
|
271
|
+
db.exec(`PRAGMA user_version = ${v + 1}`);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
//#endregion
|
|
276
|
+
export { MIGRATIONS, migrateSchema };
|
|
277
|
+
|
|
278
|
+
//# sourceMappingURL=db-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-schema.js","names":[],"sources":["../../src/core/db-schema.ts"],"sourcesContent":["import type { AnyPickDatabase } from './db';\n\nconst SCHEMA = `\nPRAGMA journal_mode = WAL;\nPRAGMA foreign_keys = ON;\n\nCREATE TABLE IF NOT EXISTS config (\n key TEXT PRIMARY KEY NOT NULL,\n value TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS accounts (\n provider TEXT NOT NULL,\n name TEXT NOT NULL,\n meta_json TEXT NOT NULL,\n proxy_json TEXT NOT NULL DEFAULT '{}',\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n PRIMARY KEY (provider, name)\n);\n\nCREATE TABLE IF NOT EXISTS account_snapshot_files (\n provider TEXT NOT NULL,\n account TEXT NOT NULL,\n path TEXT NOT NULL,\n content BLOB NOT NULL,\n PRIMARY KEY (provider, account, path),\n FOREIGN KEY (provider, account)\n REFERENCES accounts(provider, name)\n ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS provider_active (\n provider TEXT PRIMARY KEY NOT NULL,\n account_name TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS proxy_state (\n provider TEXT NOT NULL,\n account TEXT NOT NULL,\n state_json TEXT NOT NULL,\n PRIMARY KEY (provider, account)\n);\n\nCREATE TABLE IF NOT EXISTS profiles (\n name TEXT PRIMARY KEY NOT NULL,\n meta_json TEXT NOT NULL,\n secrets_json TEXT NOT NULL DEFAULT '{}',\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS client_state (\n client_id TEXT PRIMARY KEY NOT NULL,\n state_json TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS meta (\n key TEXT PRIMARY KEY NOT NULL,\n value TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS global_bindings (\n client_id TEXT PRIMARY KEY NOT NULL,\n spec_json TEXT NOT NULL,\n provenance_json TEXT NOT NULL,\n managed_config_revision TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS project_bindings (\n project_root TEXT NOT NULL,\n client_id TEXT NOT NULL,\n spec_json TEXT NOT NULL,\n provenance_json TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n PRIMARY KEY (project_root, client_id)\n);\n\nCREATE TABLE IF NOT EXISTS source_resumes (\n source_ref TEXT NOT NULL,\n client_id TEXT NOT NULL,\n spec_json TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n PRIMARY KEY (source_ref, client_id)\n);\n\nCREATE TABLE IF NOT EXISTS presets (\n id TEXT PRIMARY KEY NOT NULL,\n name TEXT NOT NULL UNIQUE,\n revision INTEGER NOT NULL DEFAULT 1,\n spec_json TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n last_used_at TEXT,\n use_count INTEGER NOT NULL DEFAULT 0\n);\n\nCREATE TABLE IF NOT EXISTS operation_journal (\n id TEXT PRIMARY KEY NOT NULL,\n type TEXT NOT NULL,\n state TEXT NOT NULL,\n affected_resources_json TEXT NOT NULL DEFAULT '[]',\n backup_paths_json TEXT NOT NULL DEFAULT '[]',\n params_json TEXT,\n started_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS proxy_leases (\n lease_id TEXT PRIMARY KEY NOT NULL,\n provider TEXT NOT NULL,\n account TEXT,\n port INTEGER NOT NULL,\n host TEXT NOT NULL DEFAULT '127.0.0.1',\n endpoint TEXT,\n owner_pid INTEGER NOT NULL,\n instance_id TEXT,\n binding_refs_json TEXT NOT NULL DEFAULT '[]',\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS pools (\n provider TEXT PRIMARY KEY NOT NULL,\n mode TEXT NOT NULL DEFAULT 'single',\n enabled INTEGER NOT NULL DEFAULT 0,\n strategy TEXT NOT NULL DEFAULT 'failover',\n host TEXT,\n port INTEGER,\n members_json TEXT NOT NULL DEFAULT '[]',\n updated_at TEXT NOT NULL\n);\n\n-- Cached vendor model lists. Advisory data: a miss or a stale row costs a\n-- refetch, never correctness, so it is safe to delete this table at any time.\nCREATE TABLE IF NOT EXISTS model_catalog_cache (\n provider TEXT NOT NULL,\n endpoint TEXT NOT NULL,\n models_json TEXT NOT NULL DEFAULT '[]',\n fetched_at TEXT NOT NULL,\n PRIMARY KEY (provider, endpoint)\n);\n\n-- The unified local Proxy Hub. Config and public runtime state intentionally\n-- live apart from per-account proxy_state: one hub can serve many providers.\nCREATE TABLE IF NOT EXISTS proxy_hubs (\n name TEXT PRIMARY KEY NOT NULL,\n config_json TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS proxy_hub_runtime (\n name TEXT PRIMARY KEY NOT NULL,\n state_json TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (name) REFERENCES proxy_hubs(name) ON DELETE CASCADE\n);\n\n-- token_secret is owner-only material. It is never decoded into public status\n-- types or included in the Tray/CLI snapshot surface.\nCREATE TABLE IF NOT EXISTS proxy_hub_routes (\n route_id TEXT PRIMARY KEY NOT NULL,\n hub_name TEXT NOT NULL,\n manifest_json TEXT NOT NULL,\n token_secret TEXT NOT NULL UNIQUE,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (hub_name) REFERENCES proxy_hubs(name) ON DELETE CASCADE\n);\n`;\n\n/**\n * Schema versioning.\n *\n * `SCHEMA` above is the *baseline* (version 1). It is applied idempotently with\n * `CREATE TABLE IF NOT EXISTS` so a fresh database is fully formed. `MIGRATIONS`\n * holds *ordered* DDL/backfill steps for every schema change *after* the\n * baseline. Each entry bumps `user_version` by one and is applied exactly once\n * per installed database, keyed off `PRAGMA user_version`.\n *\n * This exists because `IF NOT EXISTS` silently skips altered column types and\n * new constraints — without a versioned runner, the installed base would drift\n * from `SCHEMA` the first time a column changes. Add new steps here rather than\n * editing `SCHEMA` for anything that is not purely additive.\n */\nexport const BASELINE_VERSION = 1;\n\nexport interface SchemaMigration {\n /** Human label, used in logs. */\n name: string;\n /** Apply against an already-open database. Run inside a transaction by caller. */\n up(db: AnyPickDatabase): void;\n}\n\nfunction hasColumn(db: AnyPickDatabase, table: string, column: string): boolean {\n return db\n .prepare(`PRAGMA table_info(${table})`)\n .all()\n .some((entry: unknown) => {\n if (typeof entry !== 'object' || entry === null) {\n return false;\n }\n return (entry as Record<string, unknown>).name === column;\n });\n}\n\n/** Migrations are applied in array order; index i corresponds to version i+2. */\nexport const MIGRATIONS: SchemaMigration[] = [\n {\n name: 'add source resume history',\n up: (db) =>\n db.exec(`\n CREATE TABLE IF NOT EXISTS source_resumes (\n source_ref TEXT NOT NULL,\n client_id TEXT NOT NULL,\n spec_json TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n PRIMARY KEY (source_ref, client_id)\n );\n `),\n },\n {\n name: 'add plugin registry',\n up: (db) =>\n db.exec(`\n CREATE TABLE IF NOT EXISTS plugins (\n name TEXT PRIMARY KEY NOT NULL,\n path TEXT NOT NULL,\n version TEXT NOT NULL,\n enabled INTEGER NOT NULL DEFAULT 0,\n digest TEXT NOT NULL,\n added_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n `),\n },\n {\n // `instance_id` was originally added to the fresh-install schema without\n // a corresponding ALTER migration. Existing version-3 databases therefore\n // failed whenever lease code selected the column (doctor/startup reaping).\n name: 'add proxy lease instance identity',\n up: (db) => {\n if (!hasColumn(db, 'proxy_leases', 'instance_id')) {\n db.exec('ALTER TABLE proxy_leases ADD COLUMN instance_id TEXT');\n }\n },\n },\n {\n // Also present in the baseline SCHEMA so a fresh install is fully formed;\n // this step is what gives an already-installed database the table.\n name: 'add model catalog cache',\n up: (db) =>\n db.exec(`\n CREATE TABLE IF NOT EXISTS model_catalog_cache (\n provider TEXT NOT NULL,\n endpoint TEXT NOT NULL,\n models_json TEXT NOT NULL DEFAULT '[]',\n fetched_at TEXT NOT NULL,\n PRIMARY KEY (provider, endpoint)\n );\n `),\n },\n {\n name: 'add proxy hub state and token-scoped routes',\n up: (db) =>\n db.exec(`\n CREATE TABLE IF NOT EXISTS proxy_hubs (\n name TEXT PRIMARY KEY NOT NULL,\n config_json TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n );\n CREATE TABLE IF NOT EXISTS proxy_hub_runtime (\n name TEXT PRIMARY KEY NOT NULL,\n state_json TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (name) REFERENCES proxy_hubs(name) ON DELETE CASCADE\n );\n CREATE TABLE IF NOT EXISTS proxy_hub_routes (\n route_id TEXT PRIMARY KEY NOT NULL,\n hub_name TEXT NOT NULL,\n manifest_json TEXT NOT NULL,\n token_secret TEXT NOT NULL UNIQUE,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY (hub_name) REFERENCES proxy_hubs(name) ON DELETE CASCADE\n );\n `),\n },\n];\n\n/**\n * Apply `SCHEMA` (baseline) then any pending versioned migrations. Idempotent:\n * safe to call on every open. Reads/writes `PRAGMA user_version`.\n */\nexport function migrateSchema(db: AnyPickDatabase): void {\n const versionRow = db.prepare('PRAGMA user_version').get() as\n | { user_version?: unknown }\n | undefined;\n let current = Number(versionRow?.user_version ?? 0);\n const target = BASELINE_VERSION + MIGRATIONS.length;\n\n // Opening a newer database with an older binary is unsafe: SQLite would\n // happily let this build write against tables whose invariants it does not\n // understand. Refuse before executing even idempotent DDL.\n if (current > target) {\n throw new Error(\n `anypick.db schema version ${current} is newer than this AnyPick build supports (${target}). Upgrade AnyPick before using this data directory.`,\n );\n }\n\n db.exec(SCHEMA);\n\n // Unversioned database (fresh, or created before the versioning runner\n // existed): the baseline SCHEMA above is exactly version BASELINE_VERSION.\n if (current < BASELINE_VERSION) {\n db.exec(`PRAGMA user_version = ${BASELINE_VERSION}`);\n current = BASELINE_VERSION;\n }\n\n for (let v = current; v < target; v++) {\n const migration = MIGRATIONS[v - BASELINE_VERSION];\n db.transaction(() => {\n migration.up(db);\n db.exec(`PRAGMA user_version = ${v + 1}`);\n });\n }\n}\n"],"mappings":";AAEA,IAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoMf,SAAS,UAAU,IAAqB,OAAe,QAAyB;CAC9E,OAAO,GACJ,QAAQ,qBAAqB,MAAM,EAAE,CAAC,CACtC,IAAI,CAAC,CACL,MAAM,UAAmB;EACxB,IAAI,OAAO,UAAU,YAAY,UAAU,MACzC,OAAO;EAET,OAAQ,MAAkC,SAAS;CACrD,CAAC;AACL;;AAGA,IAAa,aAAgC;CAC3C;EACE,MAAM;EACN,KAAK,OACH,GAAG,KAAK;;;;;;;;OAQP;CACL;CACA;EACE,MAAM;EACN,KAAK,OACH,GAAG,KAAK;;;;;;;;;;OAUP;CACL;CACA;EAIE,MAAM;EACN,KAAK,OAAO;GACV,IAAI,CAAC,UAAU,IAAI,gBAAgB,aAAa,GAC9C,GAAG,KAAK,sDAAsD;EAElE;CACF;CACA;EAGE,MAAM;EACN,KAAK,OACH,GAAG,KAAK;;;;;;;;OAQP;CACL;CACA;EACE,MAAM;EACN,KAAK,OACH,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;OAsBP;CACL;AACF;;;;;AAMA,SAAgB,cAAc,IAA2B;CACvD,MAAM,aAAa,GAAG,QAAQ,qBAAqB,CAAC,CAAC,IAAI;CAGzD,IAAI,UAAU,OAAO,YAAY,gBAAgB,CAAC;CAClD,MAAM,SAAA,IAA4B,WAAW;CAK7C,IAAI,UAAU,QACZ,MAAM,IAAI,MACR,6BAA6B,QAAQ,8CAA8C,OAAO,qDAC5F;CAGF,GAAG,KAAK,MAAM;CAId,IAAI,UAAA,GAA4B;EAC9B,GAAG,KAAK,yBAA2C;EACnD,UAAA;CACF;CAEA,KAAK,IAAI,IAAI,SAAS,IAAI,QAAQ,KAAK;EACrC,MAAM,YAAY,WAAW,IAAA;EAC7B,GAAG,kBAAkB;GACnB,UAAU,GAAG,EAAE;GACf,GAAG,KAAK,yBAAyB,IAAI,GAAG;EAC1C,CAAC;CACH;AACF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export { BASELINE_VERSION, MIGRATIONS, migrateSchema } from './db-schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Database boundary.
|
|
4
|
+
*
|
|
5
|
+
* `node:sqlite` is an experimental Node API and may change before 1.0. Every
|
|
6
|
+
* other module depends only on the `AnyPickDatabase` interface defined here; the
|
|
7
|
+
* concrete `node:sqlite` binding is confined to this file (the only module that
|
|
8
|
+
* imports `node:sqlite`). To swap the backend, implement `AnyPickDatabase` with
|
|
9
|
+
* another engine and change `openDatabase` and `openForeignDatabase` alone.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Result of a mutating statement. SQLite reports these for every `run()`, so
|
|
13
|
+
* the shape is known even though row shapes are not — typing it keeps
|
|
14
|
+
* `.changes` checks honest at ~20 call sites across the stores.
|
|
15
|
+
*/
|
|
16
|
+
export interface SqlRunResult {
|
|
17
|
+
/** Rows inserted, updated, or deleted by this statement. */
|
|
18
|
+
changes: number | bigint;
|
|
19
|
+
lastInsertRowid: number | bigint;
|
|
20
|
+
}
|
|
21
|
+
export interface SqlStatement {
|
|
22
|
+
/**
|
|
23
|
+
* Row shapes are genuinely dynamic (each query selects different columns), so
|
|
24
|
+
* `get`/`all` surface `any` rather than leaking the concrete `node:sqlite`
|
|
25
|
+
* binding. Callers assert the shape they expect. `run` is different: its
|
|
26
|
+
* result shape is fixed by SQLite, so it is typed.
|
|
27
|
+
*/
|
|
28
|
+
get(...params: unknown[]): any;
|
|
29
|
+
all(...params: unknown[]): any[];
|
|
30
|
+
run(...params: unknown[]): SqlRunResult;
|
|
31
|
+
}
|
|
32
|
+
export interface AnyPickDatabase {
|
|
33
|
+
prepare(sql: string): SqlStatement;
|
|
34
|
+
exec(sql: string): void;
|
|
35
|
+
close(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Run `fn` inside a SQLite transaction. Commits on success; rolls back if
|
|
38
|
+
* `fn` throws or rejects. Nested calls are not supported (SQLite has a single
|
|
39
|
+
* implicit transaction level) — callers must not nest.
|
|
40
|
+
*/
|
|
41
|
+
transaction<T>(fn: () => T): T;
|
|
42
|
+
}
|
|
43
|
+
/** Path to the SQLite database under the anypick root. */
|
|
44
|
+
export declare function dbPath(root?: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Copy the pre-rename data root into the AnyPick root exactly once.
|
|
47
|
+
*
|
|
48
|
+
* This runs only while the destination is the bootstrap database created by an
|
|
49
|
+
* interrupted first launch. The source remains intact, and the SQLite snapshot
|
|
50
|
+
* is produced with VACUUM INTO so WAL-backed changes are captured consistently.
|
|
51
|
+
*/
|
|
52
|
+
export declare function migrateLegacyRootIfPristine(root: string, legacyRoot: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Open (or create) the anypick SQLite database.
|
|
55
|
+
* File permissions are tightened to 0600 when possible.
|
|
56
|
+
*/
|
|
57
|
+
export declare function openDatabase(root?: string): AnyPickDatabase;
|
|
58
|
+
/**
|
|
59
|
+
* Open another application's SQLite file — no migrations, no permission
|
|
60
|
+
* changes, no anypick schema. Providers need this to read or rewrite the stores
|
|
61
|
+
* their upstream CLI owns (kiro-cli's `auth_kv`), and routing it through here
|
|
62
|
+
* keeps `node:sqlite` confined to this module.
|
|
63
|
+
*
|
|
64
|
+
* Throws when the file is missing or is not a database; callers decide whether
|
|
65
|
+
* that means "not logged in" or a real failure.
|
|
66
|
+
*/
|
|
67
|
+
export declare function openForeignDatabase(path: string, readOnly?: boolean): AnyPickDatabase;
|
|
68
|
+
export declare function getMeta(db: AnyPickDatabase, key: string): string | null;
|
|
69
|
+
export declare function setMeta(db: AnyPickDatabase, key: string, value: string): void;
|
|
70
|
+
export declare function getConfigValue(db: AnyPickDatabase, key: string): string | null;
|
|
71
|
+
export declare function setConfigValue(db: AnyPickDatabase, key: string, value: string): void;
|
|
72
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE1E;;;;;;;;GAQG;AACH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IAEH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAC/B,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;IAEjC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC;AAoCD,0DAA0D;AAC1D,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AA6CD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAkErF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAqC3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,eAAe,CAEnF;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvE;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK7E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKpF"}
|
package/dist/core/db.js
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { anypickDbPath, getAnyPickRoot } from "./paths.js";
|
|
2
|
+
import { migrateSchema } from "./db-schema.js";
|
|
3
|
+
import { chmodSync, cpSync, existsSync, mkdirSync, readdirSync, renameSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { basename, dirname, join } from "node:path";
|
|
5
|
+
import { DatabaseSync } from "node:sqlite";
|
|
6
|
+
//#region src/core/db.ts
|
|
7
|
+
/** Adapter wrapping the experimental `node:sqlite` binding behind AnyPickDatabase. */
|
|
8
|
+
var NodeSqliteDatabase = class {
|
|
9
|
+
inner;
|
|
10
|
+
constructor(inner) {
|
|
11
|
+
this.inner = inner;
|
|
12
|
+
}
|
|
13
|
+
prepare(sql) {
|
|
14
|
+
const stmt = this.inner.prepare(sql);
|
|
15
|
+
return {
|
|
16
|
+
get: (...params) => stmt.get(...params),
|
|
17
|
+
all: (...params) => stmt.all(...params),
|
|
18
|
+
run: (...params) => stmt.run(...params)
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exec(sql) {
|
|
22
|
+
this.inner.exec(sql);
|
|
23
|
+
}
|
|
24
|
+
transaction(fn) {
|
|
25
|
+
this.inner.exec("BEGIN");
|
|
26
|
+
try {
|
|
27
|
+
const result = fn();
|
|
28
|
+
this.inner.exec("COMMIT");
|
|
29
|
+
return result;
|
|
30
|
+
} catch (err) {
|
|
31
|
+
this.inner.exec("ROLLBACK");
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
close() {
|
|
36
|
+
this.inner.close();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
/** Path to the SQLite database under the anypick root. */
|
|
40
|
+
function dbPath(root) {
|
|
41
|
+
return anypickDbPath(getAnyPickRoot(root));
|
|
42
|
+
}
|
|
43
|
+
var BOOTSTRAP_FILES = /* @__PURE__ */ new Set([
|
|
44
|
+
"anypick.db",
|
|
45
|
+
"anypick.db-shm",
|
|
46
|
+
"anypick.db-wal",
|
|
47
|
+
".migrate.lock"
|
|
48
|
+
]);
|
|
49
|
+
var SYSTEM_TABLE_PREFIX = "sqlite_";
|
|
50
|
+
var BOOTSTRAP_TABLES = /* @__PURE__ */ new Set(["config", "meta"]);
|
|
51
|
+
function hasUserData(path) {
|
|
52
|
+
if (!existsSync(path)) return false;
|
|
53
|
+
let source;
|
|
54
|
+
try {
|
|
55
|
+
source = new DatabaseSync(path, { readOnly: true });
|
|
56
|
+
const database = source;
|
|
57
|
+
return database.prepare("SELECT name FROM sqlite_master WHERE type = 'table'").all().some(({ name }) => {
|
|
58
|
+
if (name.startsWith(SYSTEM_TABLE_PREFIX) || BOOTSTRAP_TABLES.has(name)) return false;
|
|
59
|
+
const row = database.prepare(`SELECT COUNT(*) AS count FROM "${name.replaceAll("\"", "\"\"")}"`).get();
|
|
60
|
+
return Number(row?.count ?? 0) > 0;
|
|
61
|
+
});
|
|
62
|
+
} catch {
|
|
63
|
+
return true;
|
|
64
|
+
} finally {
|
|
65
|
+
source?.close();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function quoteSqlString(value) {
|
|
69
|
+
return `'${value.replaceAll("'", "''")}'`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Copy the pre-rename data root into the AnyPick root exactly once.
|
|
73
|
+
*
|
|
74
|
+
* This runs only while the destination is the bootstrap database created by an
|
|
75
|
+
* interrupted first launch. The source remains intact, and the SQLite snapshot
|
|
76
|
+
* is produced with VACUUM INTO so WAL-backed changes are captured consistently.
|
|
77
|
+
*/
|
|
78
|
+
function migrateLegacyRootIfPristine(root, legacyRoot) {
|
|
79
|
+
if (!existsSync(legacyRoot)) return false;
|
|
80
|
+
if ((existsSync(root) ? readdirSync(root) : []).some((file) => !BOOTSTRAP_FILES.has(file)) || hasUserData(anypickDbPath(root))) return false;
|
|
81
|
+
const sourceDb = ["hotplug.db", "anypick.db"].map((file) => join(legacyRoot, file)).find((file) => existsSync(file));
|
|
82
|
+
if (!sourceDb || !hasUserData(sourceDb)) return false;
|
|
83
|
+
const stagingRoot = `${root}.migration-${process.pid}-${Date.now()}`;
|
|
84
|
+
const backupRoot = `${root}.bootstrap-${process.pid}-${Date.now()}`;
|
|
85
|
+
mkdirSync(dirname(root), {
|
|
86
|
+
recursive: true,
|
|
87
|
+
mode: 448
|
|
88
|
+
});
|
|
89
|
+
try {
|
|
90
|
+
cpSync(legacyRoot, stagingRoot, {
|
|
91
|
+
recursive: true,
|
|
92
|
+
preserveTimestamps: true,
|
|
93
|
+
filter: (source) => {
|
|
94
|
+
const file = basename(source);
|
|
95
|
+
return ![
|
|
96
|
+
"anypick.db",
|
|
97
|
+
"anypick.db-shm",
|
|
98
|
+
"anypick.db-wal",
|
|
99
|
+
"hotplug.db"
|
|
100
|
+
].includes(file);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
mkdirSync(stagingRoot, {
|
|
104
|
+
recursive: true,
|
|
105
|
+
mode: 448
|
|
106
|
+
});
|
|
107
|
+
const snapshot = new DatabaseSync(sourceDb);
|
|
108
|
+
try {
|
|
109
|
+
snapshot.exec(`VACUUM INTO ${quoteSqlString(join(stagingRoot, "anypick.db"))}`);
|
|
110
|
+
} finally {
|
|
111
|
+
snapshot.close();
|
|
112
|
+
}
|
|
113
|
+
chmodSync(stagingRoot, 448);
|
|
114
|
+
chmodSync(join(stagingRoot, "anypick.db"), 384);
|
|
115
|
+
if (existsSync(join(root, ".migrate.lock"))) cpSync(join(root, ".migrate.lock"), join(stagingRoot, ".migrate.lock"));
|
|
116
|
+
else writeFileSync(join(stagingRoot, ".migrate.lock"), "", { mode: 384 });
|
|
117
|
+
if (existsSync(root)) renameSync(root, backupRoot);
|
|
118
|
+
try {
|
|
119
|
+
renameSync(stagingRoot, root);
|
|
120
|
+
} catch (error) {
|
|
121
|
+
if (existsSync(backupRoot)) renameSync(backupRoot, root);
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
} catch (error) {
|
|
126
|
+
if (existsSync(stagingRoot)) renameSync(stagingRoot, `${stagingRoot}.failed`);
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Open (or create) the anypick SQLite database.
|
|
132
|
+
* File permissions are tightened to 0600 when possible.
|
|
133
|
+
*/
|
|
134
|
+
function openDatabase(root) {
|
|
135
|
+
const path = dbPath(root);
|
|
136
|
+
const anypickRoot = dirname(path);
|
|
137
|
+
mkdirSync(anypickRoot, {
|
|
138
|
+
recursive: true,
|
|
139
|
+
mode: 448
|
|
140
|
+
});
|
|
141
|
+
try {
|
|
142
|
+
chmodSync(anypickRoot, 448);
|
|
143
|
+
} catch {}
|
|
144
|
+
const inner = new DatabaseSync(path);
|
|
145
|
+
const db = new NodeSqliteDatabase(inner);
|
|
146
|
+
try {
|
|
147
|
+
migrateSchema(db);
|
|
148
|
+
} catch (err) {
|
|
149
|
+
inner.close();
|
|
150
|
+
throw err;
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
chmodSync(path, 384);
|
|
154
|
+
} catch {}
|
|
155
|
+
for (const suffix of ["-wal", "-shm"]) {
|
|
156
|
+
const side = `${path}${suffix}`;
|
|
157
|
+
if (existsSync(side)) try {
|
|
158
|
+
chmodSync(side, 384);
|
|
159
|
+
} catch {}
|
|
160
|
+
}
|
|
161
|
+
return db;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Open another application's SQLite file — no migrations, no permission
|
|
165
|
+
* changes, no anypick schema. Providers need this to read or rewrite the stores
|
|
166
|
+
* their upstream CLI owns (kiro-cli's `auth_kv`), and routing it through here
|
|
167
|
+
* keeps `node:sqlite` confined to this module.
|
|
168
|
+
*
|
|
169
|
+
* Throws when the file is missing or is not a database; callers decide whether
|
|
170
|
+
* that means "not logged in" or a real failure.
|
|
171
|
+
*/
|
|
172
|
+
function openForeignDatabase(path, readOnly = false) {
|
|
173
|
+
return new NodeSqliteDatabase(new DatabaseSync(path, { readOnly }));
|
|
174
|
+
}
|
|
175
|
+
function getMeta(db, key) {
|
|
176
|
+
return db.prepare("SELECT value FROM meta WHERE key = ?").get(key)?.value ?? null;
|
|
177
|
+
}
|
|
178
|
+
function setMeta(db, key, value) {
|
|
179
|
+
db.prepare(`INSERT INTO meta (key, value) VALUES (?, ?)
|
|
180
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(key, value);
|
|
181
|
+
}
|
|
182
|
+
function getConfigValue(db, key) {
|
|
183
|
+
return db.prepare("SELECT value FROM config WHERE key = ?").get(key)?.value ?? null;
|
|
184
|
+
}
|
|
185
|
+
function setConfigValue(db, key, value) {
|
|
186
|
+
db.prepare(`INSERT INTO config (key, value) VALUES (?, ?)
|
|
187
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(key, value);
|
|
188
|
+
}
|
|
189
|
+
//#endregion
|
|
190
|
+
export { dbPath, getConfigValue, getMeta, migrateLegacyRootIfPristine, openDatabase, openForeignDatabase, setConfigValue, setMeta };
|
|
191
|
+
|
|
192
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","names":[],"sources":["../../src/core/db.ts"],"sourcesContent":["import {\n chmodSync,\n cpSync,\n existsSync,\n mkdirSync,\n readdirSync,\n renameSync,\n writeFileSync,\n} from 'node:fs';\nimport { basename, dirname, join } from 'node:path';\nimport { DatabaseSync } from 'node:sqlite';\nimport { anypickDbPath, getAnyPickRoot } from './paths';\nimport { migrateSchema } from './db-schema';\nexport { BASELINE_VERSION, MIGRATIONS, migrateSchema } from './db-schema';\n\n/**\n * Database boundary.\n *\n * `node:sqlite` is an experimental Node API and may change before 1.0. Every\n * other module depends only on the `AnyPickDatabase` interface defined here; the\n * concrete `node:sqlite` binding is confined to this file (the only module that\n * imports `node:sqlite`). To swap the backend, implement `AnyPickDatabase` with\n * another engine and change `openDatabase` and `openForeignDatabase` alone.\n */\n/**\n * Result of a mutating statement. SQLite reports these for every `run()`, so\n * the shape is known even though row shapes are not — typing it keeps\n * `.changes` checks honest at ~20 call sites across the stores.\n */\nexport interface SqlRunResult {\n /** Rows inserted, updated, or deleted by this statement. */\n changes: number | bigint;\n lastInsertRowid: number | bigint;\n}\n\nexport interface SqlStatement {\n /**\n * Row shapes are genuinely dynamic (each query selects different columns), so\n * `get`/`all` surface `any` rather than leaking the concrete `node:sqlite`\n * binding. Callers assert the shape they expect. `run` is different: its\n * result shape is fixed by SQLite, so it is typed.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n get(...params: unknown[]): any;\n all(...params: unknown[]): any[];\n /* eslint-enable @typescript-eslint/no-explicit-any */\n run(...params: unknown[]): SqlRunResult;\n}\n\nexport interface AnyPickDatabase {\n prepare(sql: string): SqlStatement;\n exec(sql: string): void;\n close(): void;\n /**\n * Run `fn` inside a SQLite transaction. Commits on success; rolls back if\n * `fn` throws or rejects. Nested calls are not supported (SQLite has a single\n * implicit transaction level) — callers must not nest.\n */\n transaction<T>(fn: () => T): T;\n}\n\n/** Adapter wrapping the experimental `node:sqlite` binding behind AnyPickDatabase. */\nclass NodeSqliteDatabase implements AnyPickDatabase {\n constructor(private readonly inner: DatabaseSync) {}\n\n prepare(sql: string): SqlStatement {\n const stmt = this.inner.prepare(sql);\n return {\n get: (...params: unknown[]) => stmt.get(...(params as Parameters<typeof stmt.get>)),\n all: (...params: unknown[]) => stmt.all(...(params as Parameters<typeof stmt.all>)),\n run: (...params: unknown[]) => stmt.run(...(params as Parameters<typeof stmt.run>)),\n };\n }\n\n exec(sql: string): void {\n this.inner.exec(sql);\n }\n\n transaction<T>(fn: () => T): T {\n this.inner.exec('BEGIN');\n try {\n const result = fn();\n this.inner.exec('COMMIT');\n return result;\n } catch (err) {\n this.inner.exec('ROLLBACK');\n throw err;\n }\n }\n\n close(): void {\n this.inner.close();\n }\n}\n\n/** Path to the SQLite database under the anypick root. */\nexport function dbPath(root?: string): string {\n return anypickDbPath(getAnyPickRoot(root));\n}\n\nconst BOOTSTRAP_FILES = new Set([\n 'anypick.db',\n 'anypick.db-shm',\n 'anypick.db-wal',\n '.migrate.lock',\n]);\nconst SYSTEM_TABLE_PREFIX = 'sqlite_';\nconst BOOTSTRAP_TABLES = new Set(['config', 'meta']);\n\nfunction hasUserData(path: string): boolean {\n if (!existsSync(path)) {\n return false;\n }\n let source: DatabaseSync | undefined;\n try {\n source = new DatabaseSync(path, { readOnly: true });\n const database = source;\n const tables = database\n .prepare(\"SELECT name FROM sqlite_master WHERE type = 'table'\")\n .all() as {\n name: string;\n }[];\n return tables.some(({ name }) => {\n if (name.startsWith(SYSTEM_TABLE_PREFIX) || BOOTSTRAP_TABLES.has(name)) {\n return false;\n }\n const row = database\n .prepare(`SELECT COUNT(*) AS count FROM \"${name.replaceAll('\"', '\"\"')}\"`)\n .get() as { count?: number | bigint } | undefined;\n return Number(row?.count ?? 0) > 0;\n });\n } catch {\n // A malformed or inaccessible destination is not safe to overwrite.\n return true;\n } finally {\n source?.close();\n }\n}\n\nfunction quoteSqlString(value: string): string {\n return `'${value.replaceAll(\"'\", \"''\")}'`;\n}\n\n/**\n * Copy the pre-rename data root into the AnyPick root exactly once.\n *\n * This runs only while the destination is the bootstrap database created by an\n * interrupted first launch. The source remains intact, and the SQLite snapshot\n * is produced with VACUUM INTO so WAL-backed changes are captured consistently.\n */\nexport function migrateLegacyRootIfPristine(root: string, legacyRoot: string): boolean {\n if (!existsSync(legacyRoot)) {\n return false;\n }\n const destinationFiles = existsSync(root) ? readdirSync(root) : [];\n if (\n destinationFiles.some((file) => !BOOTSTRAP_FILES.has(file)) ||\n hasUserData(anypickDbPath(root))\n ) {\n return false;\n }\n\n // The original database remains authoritative during the rename. A partial\n // first launch can create an AnyPick-named database alongside it, but that\n // bootstrap file must never win over the saved account store.\n const sourceDb = ['hotplug.db', 'anypick.db']\n .map((file) => join(legacyRoot, file))\n .find((file) => existsSync(file));\n if (!sourceDb || !hasUserData(sourceDb)) {\n return false;\n }\n\n const stagingRoot = `${root}.migration-${process.pid}-${Date.now()}`;\n const backupRoot = `${root}.bootstrap-${process.pid}-${Date.now()}`;\n mkdirSync(dirname(root), { recursive: true, mode: 0o700 });\n try {\n cpSync(legacyRoot, stagingRoot, {\n recursive: true,\n preserveTimestamps: true,\n filter: (source) => {\n const file = basename(source);\n return !['anypick.db', 'anypick.db-shm', 'anypick.db-wal', 'hotplug.db'].includes(file);\n },\n });\n mkdirSync(stagingRoot, { recursive: true, mode: 0o700 });\n const snapshot = new DatabaseSync(sourceDb);\n try {\n snapshot.exec(`VACUUM INTO ${quoteSqlString(join(stagingRoot, 'anypick.db'))}`);\n } finally {\n snapshot.close();\n }\n chmodSync(stagingRoot, 0o700);\n chmodSync(join(stagingRoot, 'anypick.db'), 0o600);\n if (existsSync(join(root, '.migrate.lock'))) {\n cpSync(join(root, '.migrate.lock'), join(stagingRoot, '.migrate.lock'));\n } else {\n writeFileSync(join(stagingRoot, '.migrate.lock'), '', { mode: 0o600 });\n }\n if (existsSync(root)) {\n renameSync(root, backupRoot);\n }\n try {\n renameSync(stagingRoot, root);\n } catch (error) {\n if (existsSync(backupRoot)) {\n renameSync(backupRoot, root);\n }\n throw error;\n }\n return true;\n } catch (error) {\n if (existsSync(stagingRoot)) {\n renameSync(stagingRoot, `${stagingRoot}.failed`);\n }\n throw error;\n }\n}\n\n/**\n * Open (or create) the anypick SQLite database.\n * File permissions are tightened to 0600 when possible.\n */\nexport function openDatabase(root?: string): AnyPickDatabase {\n const path = dbPath(root);\n const anypickRoot = dirname(path);\n mkdirSync(anypickRoot, { recursive: true, mode: 0o700 });\n try {\n chmodSync(anypickRoot, 0o700);\n } catch {\n // Windows / some FS may not support chmod\n }\n const inner = new DatabaseSync(path);\n const db = new NodeSqliteDatabase(inner);\n try {\n // Apply baseline schema + any pending versioned migrations.\n migrateSchema(db);\n } catch (err) {\n // In particular, a forward-incompatible schema must not leave a live\n // descriptor behind every time a caller retries startup.\n inner.close();\n throw err;\n }\n try {\n chmodSync(path, 0o600);\n } catch {\n // Windows / some FS may not support chmod\n }\n // Best-effort WAL sidecar permissions\n for (const suffix of ['-wal', '-shm']) {\n const side = `${path}${suffix}`;\n if (existsSync(side)) {\n try {\n chmodSync(side, 0o600);\n } catch {\n // ignore\n }\n }\n }\n return db;\n}\n\n/**\n * Open another application's SQLite file — no migrations, no permission\n * changes, no anypick schema. Providers need this to read or rewrite the stores\n * their upstream CLI owns (kiro-cli's `auth_kv`), and routing it through here\n * keeps `node:sqlite` confined to this module.\n *\n * Throws when the file is missing or is not a database; callers decide whether\n * that means \"not logged in\" or a real failure.\n */\nexport function openForeignDatabase(path: string, readOnly = false): AnyPickDatabase {\n return new NodeSqliteDatabase(new DatabaseSync(path, { readOnly }));\n}\n\nexport function getMeta(db: AnyPickDatabase, key: string): string | null {\n const row = db.prepare('SELECT value FROM meta WHERE key = ?').get(key) as\n | { value: string }\n | undefined;\n return row?.value ?? null;\n}\n\nexport function setMeta(db: AnyPickDatabase, key: string, value: string): void {\n db.prepare(\n `INSERT INTO meta (key, value) VALUES (?, ?)\n ON CONFLICT(key) DO UPDATE SET value = excluded.value`,\n ).run(key, value);\n}\n\nexport function getConfigValue(db: AnyPickDatabase, key: string): string | null {\n const row = db.prepare('SELECT value FROM config WHERE key = ?').get(key) as\n | { value: string }\n | undefined;\n return row?.value ?? null;\n}\n\nexport function setConfigValue(db: AnyPickDatabase, key: string, value: string): void {\n db.prepare(\n `INSERT INTO config (key, value) VALUES (?, ?)\n ON CONFLICT(key) DO UPDATE SET value = excluded.value`,\n ).run(key, value);\n}\n"],"mappings":";;;;;;;AA8DA,IAAM,qBAAN,MAAoD;CACrB;CAA7B,YAAY,OAAsC;EAArB,KAAA,QAAA;CAAsB;CAEnD,QAAQ,KAA2B;EACjC,MAAM,OAAO,KAAK,MAAM,QAAQ,GAAG;EACnC,OAAO;GACL,MAAM,GAAG,WAAsB,KAAK,IAAI,GAAI,MAAsC;GAClF,MAAM,GAAG,WAAsB,KAAK,IAAI,GAAI,MAAsC;GAClF,MAAM,GAAG,WAAsB,KAAK,IAAI,GAAI,MAAsC;EACpF;CACF;CAEA,KAAK,KAAmB;EACtB,KAAK,MAAM,KAAK,GAAG;CACrB;CAEA,YAAe,IAAgB;EAC7B,KAAK,MAAM,KAAK,OAAO;EACvB,IAAI;GACF,MAAM,SAAS,GAAG;GAClB,KAAK,MAAM,KAAK,QAAQ;GACxB,OAAO;EACT,SAAS,KAAK;GACZ,KAAK,MAAM,KAAK,UAAU;GAC1B,MAAM;EACR;CACF;CAEA,QAAc;EACZ,KAAK,MAAM,MAAM;CACnB;AACF;;AAGA,SAAgB,OAAO,MAAuB;CAC5C,OAAO,cAAc,eAAe,IAAI,CAAC;AAC3C;AAEA,IAAM,kCAAkB,IAAI,IAAI;CAC9B;CACA;CACA;CACA;AACF,CAAC;AACD,IAAM,sBAAsB;AAC5B,IAAM,mCAAmB,IAAI,IAAI,CAAC,UAAU,MAAM,CAAC;AAEnD,SAAS,YAAY,MAAuB;CAC1C,IAAI,CAAC,WAAW,IAAI,GAClB,OAAO;CAET,IAAI;CACJ,IAAI;EACF,SAAS,IAAI,aAAa,MAAM,EAAE,UAAU,KAAK,CAAC;EAClD,MAAM,WAAW;EAMjB,OALe,SACZ,QAAQ,qDAAqD,CAAC,CAC9D,IAGI,CAAA,CAAO,MAAM,EAAE,WAAW;GAC/B,IAAI,KAAK,WAAW,mBAAmB,KAAK,iBAAiB,IAAI,IAAI,GACnE,OAAO;GAET,MAAM,MAAM,SACT,QAAQ,kCAAkC,KAAK,WAAW,MAAK,MAAI,EAAE,EAAE,CAAC,CACxE,IAAI;GACP,OAAO,OAAO,KAAK,SAAS,CAAC,IAAI;EACnC,CAAC;CACH,QAAQ;EAEN,OAAO;CACT,UAAU;EACR,QAAQ,MAAM;CAChB;AACF;AAEA,SAAS,eAAe,OAAuB;CAC7C,OAAO,IAAI,MAAM,WAAW,KAAK,IAAI,EAAE;AACzC;;;;;;;;AASA,SAAgB,4BAA4B,MAAc,YAA6B;CACrF,IAAI,CAAC,WAAW,UAAU,GACxB,OAAO;CAGT,KADyB,WAAW,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,EAAA,CAE9C,MAAM,SAAS,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAC1D,YAAY,cAAc,IAAI,CAAC,GAE/B,OAAO;CAMT,MAAM,WAAW,CAAC,cAAc,YAAY,CAAC,CAC1C,KAAK,SAAS,KAAK,YAAY,IAAI,CAAC,CAAC,CACrC,MAAM,SAAS,WAAW,IAAI,CAAC;CAClC,IAAI,CAAC,YAAY,CAAC,YAAY,QAAQ,GACpC,OAAO;CAGT,MAAM,cAAc,GAAG,KAAK,aAAa,QAAQ,IAAI,GAAG,KAAK,IAAI;CACjE,MAAM,aAAa,GAAG,KAAK,aAAa,QAAQ,IAAI,GAAG,KAAK,IAAI;CAChE,UAAU,QAAQ,IAAI,GAAG;EAAE,WAAW;EAAM,MAAM;CAAM,CAAC;CACzD,IAAI;EACF,OAAO,YAAY,aAAa;GAC9B,WAAW;GACX,oBAAoB;GACpB,SAAS,WAAW;IAClB,MAAM,OAAO,SAAS,MAAM;IAC5B,OAAO,CAAC;KAAC;KAAc;KAAkB;KAAkB;IAAY,CAAC,CAAC,SAAS,IAAI;GACxF;EACF,CAAC;EACD,UAAU,aAAa;GAAE,WAAW;GAAM,MAAM;EAAM,CAAC;EACvD,MAAM,WAAW,IAAI,aAAa,QAAQ;EAC1C,IAAI;GACF,SAAS,KAAK,eAAe,eAAe,KAAK,aAAa,YAAY,CAAC,GAAG;EAChF,UAAU;GACR,SAAS,MAAM;EACjB;EACA,UAAU,aAAa,GAAK;EAC5B,UAAU,KAAK,aAAa,YAAY,GAAG,GAAK;EAChD,IAAI,WAAW,KAAK,MAAM,eAAe,CAAC,GACxC,OAAO,KAAK,MAAM,eAAe,GAAG,KAAK,aAAa,eAAe,CAAC;OAEtE,cAAc,KAAK,aAAa,eAAe,GAAG,IAAI,EAAE,MAAM,IAAM,CAAC;EAEvE,IAAI,WAAW,IAAI,GACjB,WAAW,MAAM,UAAU;EAE7B,IAAI;GACF,WAAW,aAAa,IAAI;EAC9B,SAAS,OAAO;GACd,IAAI,WAAW,UAAU,GACvB,WAAW,YAAY,IAAI;GAE7B,MAAM;EACR;EACA,OAAO;CACT,SAAS,OAAO;EACd,IAAI,WAAW,WAAW,GACxB,WAAW,aAAa,GAAG,YAAY,QAAQ;EAEjD,MAAM;CACR;AACF;;;;;AAMA,SAAgB,aAAa,MAAgC;CAC3D,MAAM,OAAO,OAAO,IAAI;CACxB,MAAM,cAAc,QAAQ,IAAI;CAChC,UAAU,aAAa;EAAE,WAAW;EAAM,MAAM;CAAM,CAAC;CACvD,IAAI;EACF,UAAU,aAAa,GAAK;CAC9B,QAAQ,CAER;CACA,MAAM,QAAQ,IAAI,aAAa,IAAI;CACnC,MAAM,KAAK,IAAI,mBAAmB,KAAK;CACvC,IAAI;EAEF,cAAc,EAAE;CAClB,SAAS,KAAK;EAGZ,MAAM,MAAM;EACZ,MAAM;CACR;CACA,IAAI;EACF,UAAU,MAAM,GAAK;CACvB,QAAQ,CAER;CAEA,KAAK,MAAM,UAAU,CAAC,QAAQ,MAAM,GAAG;EACrC,MAAM,OAAO,GAAG,OAAO;EACvB,IAAI,WAAW,IAAI,GACjB,IAAI;GACF,UAAU,MAAM,GAAK;EACvB,QAAQ,CAER;CAEJ;CACA,OAAO;AACT;;;;;;;;;;AAWA,SAAgB,oBAAoB,MAAc,WAAW,OAAwB;CACnF,OAAO,IAAI,mBAAmB,IAAI,aAAa,MAAM,EAAE,SAAS,CAAC,CAAC;AACpE;AAEA,SAAgB,QAAQ,IAAqB,KAA4B;CAIvE,OAHY,GAAG,QAAQ,sCAAsC,CAAC,CAAC,IAAI,GAG5D,CAAA,EAAK,SAAS;AACvB;AAEA,SAAgB,QAAQ,IAAqB,KAAa,OAAqB;CAC7E,GAAG,QACD;2DAEF,CAAC,CAAC,IAAI,KAAK,KAAK;AAClB;AAEA,SAAgB,eAAe,IAAqB,KAA4B;CAI9E,OAHY,GAAG,QAAQ,wCAAwC,CAAC,CAAC,IAAI,GAG9D,CAAA,EAAK,SAAS;AACvB;AAEA,SAAgB,eAAe,IAAqB,KAAa,OAAqB;CACpF,GAAG,QACD;2DAEF,CAAC,CAAC,IAAI,KAAK,KAAK;AAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-fixes.d.ts","sourceRoot":"","sources":["../../src/core/doctor-fixes.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGzE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|