@cortexkit/opencode-antigravity-auth 1.1.0 → 2.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/README.md +225 -569
- package/dist/cli.js +3790 -0
- package/dist/cli.js.map +7 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18767 -13829
- package/dist/index.js.map +4 -4
- package/dist/src/antigravity/oauth.d.ts +1 -1
- package/dist/src/antigravity/oauth.js +1 -1
- package/dist/src/cli.d.ts +21 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +237 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/constants.d.ts +1 -1
- package/dist/src/constants.js +1 -1
- package/dist/src/hooks/auto-update-checker/cache.d.ts.map +1 -1
- package/dist/src/hooks/auto-update-checker/cache.js +13 -13
- package/dist/src/hooks/auto-update-checker/cache.js.map +1 -1
- package/dist/src/hooks/auto-update-checker/checker.d.ts +1 -1
- package/dist/src/hooks/auto-update-checker/checker.d.ts.map +1 -1
- package/dist/src/hooks/auto-update-checker/checker.js +75 -51
- package/dist/src/hooks/auto-update-checker/checker.js.map +1 -1
- package/dist/src/hooks/auto-update-checker/constants.d.ts.map +1 -1
- package/dist/src/hooks/auto-update-checker/constants.js +12 -12
- package/dist/src/hooks/auto-update-checker/constants.js.map +1 -1
- package/dist/src/hooks/auto-update-checker/index.d.ts +6 -6
- package/dist/src/hooks/auto-update-checker/index.d.ts.map +1 -1
- package/dist/src/hooks/auto-update-checker/index.js +17 -17
- package/dist/src/hooks/auto-update-checker/index.js.map +1 -1
- package/dist/src/hooks/auto-update-checker/logging.js +2 -2
- package/dist/src/hooks/auto-update-checker/logging.js.map +1 -1
- package/dist/src/hooks/auto-update-checker/types.d.ts.map +1 -1
- package/dist/src/plugin/account-access.d.ts +99 -0
- package/dist/src/plugin/account-access.d.ts.map +1 -0
- package/dist/src/plugin/account-access.js +480 -0
- package/dist/src/plugin/account-access.js.map +1 -0
- package/dist/src/plugin/accounts.d.ts +7 -256
- package/dist/src/plugin/accounts.d.ts.map +1 -1
- package/dist/src/plugin/accounts.js +31 -1367
- package/dist/src/plugin/accounts.js.map +1 -1
- package/dist/src/plugin/agy-request-metadata.d.ts +1 -1
- package/dist/src/plugin/agy-request-metadata.js +1 -1
- package/dist/src/plugin/agy-transport.d.ts +1 -1
- package/dist/src/plugin/agy-transport.js +1 -1
- package/dist/src/plugin/auth-doctor.d.ts +6 -6
- package/dist/src/plugin/auth-doctor.d.ts.map +1 -1
- package/dist/src/plugin/auth-doctor.js +74 -66
- package/dist/src/plugin/auth-doctor.js.map +1 -1
- package/dist/src/plugin/auth-drift.d.ts +4 -4
- package/dist/src/plugin/auth-drift.d.ts.map +1 -1
- package/dist/src/plugin/auth-drift.js +15 -15
- package/dist/src/plugin/auth-drift.js.map +1 -1
- package/dist/src/plugin/auth-loader.d.ts +35 -0
- package/dist/src/plugin/auth-loader.d.ts.map +1 -0
- package/dist/src/plugin/auth-loader.js +144 -0
- package/dist/src/plugin/auth-loader.js.map +1 -0
- package/dist/src/plugin/auth.d.ts +1 -1
- package/dist/src/plugin/auth.js +1 -1
- package/dist/src/plugin/cache/index.d.ts +1 -1
- package/dist/src/plugin/cache/index.d.ts.map +1 -1
- package/dist/src/plugin/cache/index.js +1 -1
- package/dist/src/plugin/cache/index.js.map +1 -1
- package/dist/src/plugin/cache/signature-cache.d.ts +1 -1
- package/dist/src/plugin/cache/signature-cache.d.ts.map +1 -1
- package/dist/src/plugin/cache/signature-cache.js +23 -24
- package/dist/src/plugin/cache/signature-cache.js.map +1 -1
- package/dist/src/plugin/cache.d.ts +6 -5
- package/dist/src/plugin/cache.d.ts.map +1 -1
- package/dist/src/plugin/cache.js +21 -7
- package/dist/src/plugin/cache.js.map +1 -1
- package/dist/src/plugin/catalog.d.ts +23 -0
- package/dist/src/plugin/catalog.d.ts.map +1 -0
- package/dist/src/plugin/catalog.js +60 -0
- package/dist/src/plugin/catalog.js.map +1 -0
- package/dist/src/plugin/cli.d.ts +7 -7
- package/dist/src/plugin/cli.d.ts.map +1 -1
- package/dist/src/plugin/cli.js +62 -55
- package/dist/src/plugin/cli.js.map +1 -1
- package/dist/src/plugin/command-data.d.ts +276 -0
- package/dist/src/plugin/command-data.d.ts.map +1 -0
- package/dist/src/plugin/command-data.js +325 -0
- package/dist/src/plugin/command-data.js.map +1 -0
- package/dist/src/plugin/commands.d.ts +151 -0
- package/dist/src/plugin/commands.d.ts.map +1 -0
- package/dist/src/plugin/commands.js +639 -0
- package/dist/src/plugin/commands.js.map +1 -0
- package/dist/src/plugin/config/index.d.ts +2 -2
- package/dist/src/plugin/config/index.d.ts.map +1 -1
- package/dist/src/plugin/config/index.js +2 -2
- package/dist/src/plugin/config/index.js.map +1 -1
- package/dist/src/plugin/config/loader.d.ts +1 -1
- package/dist/src/plugin/config/loader.d.ts.map +1 -1
- package/dist/src/plugin/config/loader.js +18 -16
- package/dist/src/plugin/config/loader.js.map +1 -1
- package/dist/src/plugin/config/models.d.ts +2 -2
- package/dist/src/plugin/config/models.d.ts.map +1 -1
- package/dist/src/plugin/config/models.js +1 -1
- package/dist/src/plugin/config/models.js.map +1 -1
- package/dist/src/plugin/config/operator-settings-schema.d.ts +29 -0
- package/dist/src/plugin/config/operator-settings-schema.d.ts.map +1 -0
- package/dist/src/plugin/config/operator-settings-schema.js +28 -0
- package/dist/src/plugin/config/operator-settings-schema.js.map +1 -0
- package/dist/src/plugin/config/schema.d.ts +21 -2
- package/dist/src/plugin/config/schema.d.ts.map +1 -1
- package/dist/src/plugin/config/schema.js +85 -25
- package/dist/src/plugin/config/schema.js.map +1 -1
- package/dist/src/plugin/config/updater.d.ts.map +1 -1
- package/dist/src/plugin/config/updater.js +15 -15
- package/dist/src/plugin/config/updater.js.map +1 -1
- package/dist/src/plugin/config/writer.d.ts +34 -0
- package/dist/src/plugin/config/writer.d.ts.map +1 -0
- package/dist/src/plugin/config/writer.js +81 -0
- package/dist/src/plugin/config/writer.js.map +1 -0
- package/dist/src/plugin/core/streaming/index.d.ts +1 -1
- package/dist/src/plugin/core/streaming/index.d.ts.map +1 -1
- package/dist/src/plugin/core/streaming/index.js +1 -1
- package/dist/src/plugin/core/streaming/index.js.map +1 -1
- package/dist/src/plugin/core/streaming/transformer.d.ts.map +1 -1
- package/dist/src/plugin/core/streaming/transformer.js +85 -44
- package/dist/src/plugin/core/streaming/transformer.js.map +1 -1
- package/dist/src/plugin/core/streaming/types.d.ts.map +1 -1
- package/dist/src/plugin/debug.d.ts +3 -3
- package/dist/src/plugin/debug.d.ts.map +1 -1
- package/dist/src/plugin/debug.js +85 -47
- package/dist/src/plugin/debug.js.map +1 -1
- package/dist/src/plugin/dependencies.d.ts +129 -0
- package/dist/src/plugin/dependencies.d.ts.map +1 -0
- package/dist/src/plugin/dependencies.js +107 -0
- package/dist/src/plugin/dependencies.js.map +1 -0
- package/dist/src/plugin/errors.d.ts +27 -0
- package/dist/src/plugin/errors.d.ts.map +1 -1
- package/dist/src/plugin/errors.js +29 -3
- package/dist/src/plugin/errors.js.map +1 -1
- package/dist/src/plugin/event-handler.d.ts +53 -0
- package/dist/src/plugin/event-handler.d.ts.map +1 -0
- package/dist/src/plugin/event-handler.js +101 -0
- package/dist/src/plugin/event-handler.js.map +1 -0
- package/dist/src/plugin/fetch/retry-state.d.ts +61 -0
- package/dist/src/plugin/fetch/retry-state.d.ts.map +1 -0
- package/dist/src/plugin/fetch/retry-state.js +248 -0
- package/dist/src/plugin/fetch/retry-state.js.map +1 -0
- package/dist/src/plugin/fetch/warmup.d.ts +30 -0
- package/dist/src/plugin/fetch/warmup.d.ts.map +1 -0
- package/dist/src/plugin/fetch/warmup.js +76 -0
- package/dist/src/plugin/fetch/warmup.js.map +1 -0
- package/dist/src/plugin/fetch-interceptor.d.ts +59 -0
- package/dist/src/plugin/fetch-interceptor.d.ts.map +1 -0
- package/dist/src/plugin/fetch-interceptor.js +1387 -0
- package/dist/src/plugin/fetch-interceptor.js.map +1 -0
- package/dist/src/plugin/fetch-routing.d.ts +26 -0
- package/dist/src/plugin/fetch-routing.d.ts.map +1 -0
- package/dist/src/plugin/fetch-routing.js +99 -0
- package/dist/src/plugin/fetch-routing.js.map +1 -0
- package/dist/src/plugin/fingerprint.d.ts +1 -1
- package/dist/src/plugin/fingerprint.js +1 -1
- package/dist/src/plugin/gemini-dump.d.ts +5 -5
- package/dist/src/plugin/gemini-dump.d.ts.map +1 -1
- package/dist/src/plugin/gemini-dump.js +109 -55
- package/dist/src/plugin/gemini-dump.js.map +1 -1
- package/dist/src/plugin/google-search-tool.d.ts +9 -0
- package/dist/src/plugin/google-search-tool.d.ts.map +1 -0
- package/dist/src/plugin/google-search-tool.js +56 -0
- package/dist/src/plugin/google-search-tool.js.map +1 -0
- package/dist/src/plugin/image-saver.d.ts.map +1 -1
- package/dist/src/plugin/image-saver.js +16 -16
- package/dist/src/plugin/image-saver.js.map +1 -1
- package/dist/src/plugin/index.d.ts +23 -0
- package/dist/src/plugin/index.d.ts.map +1 -0
- package/dist/src/plugin/index.js +308 -0
- package/dist/src/plugin/index.js.map +1 -0
- package/dist/src/plugin/killswitch.d.ts +94 -0
- package/dist/src/plugin/killswitch.d.ts.map +1 -0
- package/dist/src/plugin/killswitch.js +194 -0
- package/dist/src/plugin/killswitch.js.map +1 -0
- package/dist/src/plugin/lifecycle.d.ts +40 -0
- package/dist/src/plugin/lifecycle.d.ts.map +1 -0
- package/dist/src/plugin/lifecycle.js +73 -0
- package/dist/src/plugin/lifecycle.js.map +1 -0
- package/dist/src/plugin/logger.d.ts +10 -1
- package/dist/src/plugin/logger.d.ts.map +1 -1
- package/dist/src/plugin/logger.js +38 -12
- package/dist/src/plugin/logger.js.map +1 -1
- package/dist/src/plugin/logging-utils.d.ts +35 -1
- package/dist/src/plugin/logging-utils.d.ts.map +1 -1
- package/dist/src/plugin/logging-utils.js +98 -15
- package/dist/src/plugin/logging-utils.js.map +1 -1
- package/dist/src/plugin/model-registry.d.ts +1 -1
- package/dist/src/plugin/model-registry.js +1 -1
- package/dist/src/plugin/oauth-login.d.ts +22 -0
- package/dist/src/plugin/oauth-login.d.ts.map +1 -0
- package/dist/src/plugin/oauth-login.js +37 -0
- package/dist/src/plugin/oauth-login.js.map +1 -0
- package/dist/src/plugin/oauth-methods.d.ts +42 -0
- package/dist/src/plugin/oauth-methods.d.ts.map +1 -0
- package/dist/src/plugin/oauth-methods.js +1284 -0
- package/dist/src/plugin/oauth-methods.js.map +1 -0
- package/dist/src/plugin/operator-settings.d.ts +40 -0
- package/dist/src/plugin/operator-settings.d.ts.map +1 -0
- package/dist/src/plugin/operator-settings.js +148 -0
- package/dist/src/plugin/operator-settings.js.map +1 -0
- package/dist/src/plugin/persist-account-pool.d.ts +37 -0
- package/dist/src/plugin/persist-account-pool.d.ts.map +1 -0
- package/dist/src/plugin/persist-account-pool.js +142 -0
- package/dist/src/plugin/persist-account-pool.js.map +1 -0
- package/dist/src/plugin/project.d.ts +1 -1
- package/dist/src/plugin/project.js +1 -1
- package/dist/src/plugin/prompt-context.d.ts.map +1 -1
- package/dist/src/plugin/prompt-context.js +11 -11
- package/dist/src/plugin/prompt-context.js.map +1 -1
- package/dist/src/plugin/quota.d.ts +97 -41
- package/dist/src/plugin/quota.d.ts.map +1 -1
- package/dist/src/plugin/quota.js +273 -285
- package/dist/src/plugin/quota.js.map +1 -1
- package/dist/src/plugin/recovery/constants.d.ts.map +1 -1
- package/dist/src/plugin/recovery/constants.js +24 -15
- package/dist/src/plugin/recovery/constants.js.map +1 -1
- package/dist/src/plugin/recovery/index.d.ts +3 -3
- package/dist/src/plugin/recovery/index.d.ts.map +1 -1
- package/dist/src/plugin/recovery/index.js +3 -3
- package/dist/src/plugin/recovery/index.js.map +1 -1
- package/dist/src/plugin/recovery/storage.d.ts +1 -1
- package/dist/src/plugin/recovery/storage.d.ts.map +1 -1
- package/dist/src/plugin/recovery/storage.js +31 -39
- package/dist/src/plugin/recovery/storage.js.map +1 -1
- package/dist/src/plugin/recovery/types.d.ts +12 -12
- package/dist/src/plugin/recovery/types.d.ts.map +1 -1
- package/dist/src/plugin/recovery.d.ts +3 -3
- package/dist/src/plugin/recovery.d.ts.map +1 -1
- package/dist/src/plugin/recovery.js +62 -58
- package/dist/src/plugin/recovery.js.map +1 -1
- package/dist/src/plugin/refresh-queue.d.ts +5 -2
- package/dist/src/plugin/refresh-queue.d.ts.map +1 -1
- package/dist/src/plugin/refresh-queue.js +37 -15
- package/dist/src/plugin/refresh-queue.js.map +1 -1
- package/dist/src/plugin/request-helpers.d.ts +1 -1
- package/dist/src/plugin/request-helpers.d.ts.map +1 -1
- package/dist/src/plugin/request-helpers.js +451 -352
- package/dist/src/plugin/request-helpers.js.map +1 -1
- package/dist/src/plugin/request.d.ts +7 -7
- package/dist/src/plugin/request.d.ts.map +1 -1
- package/dist/src/plugin/request.js +622 -384
- package/dist/src/plugin/request.js.map +1 -1
- package/dist/src/plugin/rotation.d.ts +1 -168
- package/dist/src/plugin/rotation.d.ts.map +1 -1
- package/dist/src/plugin/rotation.js +1 -327
- package/dist/src/plugin/rotation.js.map +1 -1
- package/dist/src/plugin/search.d.ts.map +1 -1
- package/dist/src/plugin/search.js +39 -35
- package/dist/src/plugin/search.js.map +1 -1
- package/dist/src/plugin/server.d.ts +1 -1
- package/dist/src/plugin/server.d.ts.map +1 -1
- package/dist/src/plugin/server.js +42 -37
- package/dist/src/plugin/server.js.map +1 -1
- package/dist/src/plugin/session-context.d.ts +2 -1
- package/dist/src/plugin/session-context.d.ts.map +1 -1
- package/dist/src/plugin/session-context.js +11 -7
- package/dist/src/plugin/session-context.js.map +1 -1
- package/dist/src/plugin/storage.d.ts +59 -120
- package/dist/src/plugin/storage.d.ts.map +1 -1
- package/dist/src/plugin/storage.js +140 -485
- package/dist/src/plugin/storage.js.map +1 -1
- package/dist/src/plugin/stores/signature-store.d.ts.map +1 -1
- package/dist/src/plugin/stores/signature-store.js.map +1 -1
- package/dist/src/plugin/thinking-recovery.d.ts.map +1 -1
- package/dist/src/plugin/thinking-recovery.js +35 -33
- package/dist/src/plugin/thinking-recovery.js.map +1 -1
- package/dist/src/plugin/token.d.ts +2 -2
- package/dist/src/plugin/token.d.ts.map +1 -1
- package/dist/src/plugin/token.js +30 -21
- package/dist/src/plugin/token.js.map +1 -1
- package/dist/src/plugin/transform/cross-model-sanitizer.d.ts +1 -1
- package/dist/src/plugin/transform/cross-model-sanitizer.js +1 -1
- package/dist/src/plugin/transform/index.d.ts +1 -1
- package/dist/src/plugin/transform/index.js +1 -1
- package/dist/src/plugin/transform/model-resolver.d.ts +1 -1
- package/dist/src/plugin/transform/model-resolver.js +1 -1
- package/dist/src/plugin/transform/types.d.ts +1 -1
- package/dist/src/plugin/transform/types.js +1 -1
- package/dist/src/plugin/types.d.ts +25 -69
- package/dist/src/plugin/types.d.ts.map +1 -1
- package/dist/src/plugin/ui/ansi.d.ts.map +1 -1
- package/dist/src/plugin/ui/ansi.js.map +1 -1
- package/dist/src/plugin/ui/auth-menu.d.ts +1 -1
- package/dist/src/plugin/ui/auth-menu.d.ts.map +1 -1
- package/dist/src/plugin/ui/auth-menu.js +82 -31
- package/dist/src/plugin/ui/auth-menu.js.map +1 -1
- package/dist/src/plugin/ui/confirm.d.ts.map +1 -1
- package/dist/src/plugin/ui/confirm.js.map +1 -1
- package/dist/src/plugin/ui/model-status.d.ts +3 -3
- package/dist/src/plugin/ui/model-status.d.ts.map +1 -1
- package/dist/src/plugin/ui/model-status.js +3 -3
- package/dist/src/plugin/ui/model-status.js.map +1 -1
- package/dist/src/plugin/ui/quota-status.d.ts +4 -4
- package/dist/src/plugin/ui/quota-status.d.ts.map +1 -1
- package/dist/src/plugin/ui/quota-status.js +51 -49
- package/dist/src/plugin/ui/quota-status.js.map +1 -1
- package/dist/src/plugin/ui/select.d.ts.map +1 -1
- package/dist/src/plugin/ui/select.js +22 -12
- package/dist/src/plugin/ui/select.js.map +1 -1
- package/dist/src/plugin/version.d.ts +1 -1
- package/dist/src/plugin/version.js +1 -1
- package/dist/src/rpc/notifications.d.ts +6 -0
- package/dist/src/rpc/notifications.d.ts.map +1 -0
- package/dist/src/rpc/notifications.js +46 -0
- package/dist/src/rpc/notifications.js.map +1 -0
- package/dist/src/rpc/port-file.d.ts +13 -0
- package/dist/src/rpc/port-file.d.ts.map +1 -0
- package/dist/src/rpc/port-file.js +109 -0
- package/dist/src/rpc/port-file.js.map +1 -0
- package/dist/src/rpc/protocol.d.ts +22 -0
- package/dist/src/rpc/protocol.d.ts.map +1 -0
- package/dist/src/rpc/protocol.js +1 -0
- package/dist/src/rpc/protocol.js.map +1 -0
- package/dist/src/rpc/rpc-client.d.ts +10 -0
- package/dist/src/rpc/rpc-client.d.ts.map +1 -0
- package/dist/src/rpc/rpc-client.js +58 -0
- package/dist/src/rpc/rpc-client.js.map +1 -0
- package/dist/src/rpc/rpc-dir.d.ts +4 -0
- package/dist/src/rpc/rpc-dir.d.ts.map +1 -0
- package/dist/src/rpc/rpc-dir.js +19 -0
- package/dist/src/rpc/rpc-dir.js.map +1 -0
- package/dist/src/rpc/rpc-server.d.ts +13 -0
- package/dist/src/rpc/rpc-server.d.ts.map +1 -0
- package/dist/src/rpc/rpc-server.js +231 -0
- package/dist/src/rpc/rpc-server.js.map +1 -0
- package/dist/src/sidebar-state.d.ts +240 -0
- package/dist/src/sidebar-state.d.ts.map +1 -0
- package/dist/src/sidebar-state.js +520 -0
- package/dist/src/sidebar-state.js.map +1 -0
- package/dist/src/tui/command-dialogs.d.ts +61 -0
- package/dist/src/tui/command-dialogs.d.ts.map +1 -0
- package/dist/src/tui/command-dialogs.js +497 -0
- package/dist/src/tui/command-dialogs.js.map +1 -0
- package/dist/src/tui/file-logger.d.ts +41 -0
- package/dist/src/tui/file-logger.d.ts.map +1 -0
- package/dist/src/tui/file-logger.js +114 -0
- package/dist/src/tui/file-logger.js.map +1 -0
- package/dist/src/tui-preferences.d.ts +40 -0
- package/dist/src/tui-preferences.d.ts.map +1 -0
- package/dist/src/tui-preferences.js +328 -0
- package/dist/src/tui-preferences.js.map +1 -0
- package/dist/src/tui.d.ts +68 -0
- package/dist/src/tui.d.ts.map +1 -0
- package/dist/src/tui.js +662 -0
- package/dist/src/tui.js.map +1 -0
- package/package.json +46 -22
- package/src/plugin/command-data.ts +651 -0
- package/src/rpc/port-file.ts +143 -0
- package/src/rpc/protocol.ts +31 -0
- package/src/rpc/rpc-client.ts +102 -0
- package/src/rpc/rpc-dir.ts +24 -0
- package/src/sidebar-state.ts +717 -0
- package/src/tui/command-dialogs.tsx +699 -0
- package/src/tui/entry.mjs +74 -0
- package/src/tui/file-logger.ts +145 -0
- package/src/tui-compiled/plugin/command-data.ts +651 -0
- package/src/tui-compiled/rpc/port-file.ts +143 -0
- package/src/tui-compiled/rpc/protocol.ts +31 -0
- package/src/tui-compiled/rpc/rpc-client.ts +102 -0
- package/src/tui-compiled/rpc/rpc-dir.ts +24 -0
- package/src/tui-compiled/sidebar-state.ts +717 -0
- package/src/tui-compiled/tui/command-dialogs.tsx +659 -0
- package/src/tui-compiled/tui/file-logger.ts +145 -0
- package/src/tui-compiled/tui-preferences.ts +416 -0
- package/src/tui-compiled/tui.tsx +1150 -0
- package/src/tui-preferences.ts +416 -0
- package/src/tui.tsx +1117 -0
- package/dist/src/plugin.d.ts +0 -48
- package/dist/src/plugin.d.ts.map +0 -1
- package/dist/src/plugin.js +0 -3311
- package/dist/src/plugin.js.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ANTIGRAVITY_REDIRECT_URI } from
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { createServer } from 'node:http';
|
|
3
|
+
import { ANTIGRAVITY_REDIRECT_URI } from '../constants';
|
|
4
4
|
const redirectUri = new URL(ANTIGRAVITY_REDIRECT_URI);
|
|
5
|
-
const callbackPath = redirectUri.pathname ||
|
|
5
|
+
const callbackPath = redirectUri.pathname || '/';
|
|
6
6
|
/**
|
|
7
7
|
* Detect if running in OrbStack Docker with --network host mode.
|
|
8
8
|
* OrbStack's host networking only forwards ports bound to 127.0.0.1 to macOS.
|
|
9
9
|
*/
|
|
10
10
|
function isOrbStackDockerHost() {
|
|
11
11
|
// Check if we're in Docker
|
|
12
|
-
if (!existsSync(
|
|
12
|
+
if (!existsSync('/.dockerenv')) {
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
15
|
// Check for OrbStack-specific indicators
|
|
@@ -17,31 +17,33 @@ function isOrbStackDockerHost() {
|
|
|
17
17
|
try {
|
|
18
18
|
// OrbStack containers often have /run/.containerenv or specific mount patterns
|
|
19
19
|
// Also check if /proc/version contains orbstack
|
|
20
|
-
if (existsSync(
|
|
21
|
-
const version = readFileSync(
|
|
22
|
-
if (version.includes(
|
|
20
|
+
if (existsSync('/proc/version')) {
|
|
21
|
+
const version = readFileSync('/proc/version', 'utf8').toLowerCase();
|
|
22
|
+
if (version.includes('orbstack')) {
|
|
23
23
|
return true;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
// Check hostname pattern (OrbStack uses specific patterns)
|
|
27
|
-
const hostname = process.env.HOSTNAME ||
|
|
28
|
-
if (hostname.startsWith(
|
|
27
|
+
const hostname = process.env.HOSTNAME || '';
|
|
28
|
+
if (hostname.startsWith('orbstack-') ||
|
|
29
|
+
hostname.endsWith('.orb') ||
|
|
30
|
+
hostname === 'orbstack') {
|
|
29
31
|
return true;
|
|
30
32
|
}
|
|
31
33
|
// Check for OrbStack's network host mode by looking at resolv.conf
|
|
32
34
|
// OrbStack with --network host has specific DNS configuration
|
|
33
|
-
if (existsSync(
|
|
34
|
-
const resolv = readFileSync(
|
|
35
|
-
if (resolv.includes(
|
|
35
|
+
if (existsSync('/etc/resolv.conf')) {
|
|
36
|
+
const resolv = readFileSync('/etc/resolv.conf', 'utf8');
|
|
37
|
+
if (resolv.includes('orb.local') || resolv.includes('orbstack')) {
|
|
36
38
|
return true;
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
// Fallback: Check if running on macOS/Darwin host via Docker
|
|
40
42
|
// This is a heuristic - if in Docker on Linux but /proc/version shows darwin-like patterns
|
|
41
|
-
if (process.platform ===
|
|
43
|
+
if (process.platform === 'linux' && existsSync('/.dockerenv')) {
|
|
42
44
|
// Most OrbStack containers will have been caught above
|
|
43
45
|
// For safety, also check common OrbStack mount patterns
|
|
44
|
-
if (existsSync(
|
|
46
|
+
if (existsSync('/run/host-services')) {
|
|
45
47
|
return true;
|
|
46
48
|
}
|
|
47
49
|
}
|
|
@@ -55,11 +57,11 @@ function isOrbStackDockerHost() {
|
|
|
55
57
|
* Detect WSL (Windows Subsystem for Linux) environment.
|
|
56
58
|
*/
|
|
57
59
|
function isWSL() {
|
|
58
|
-
if (process.platform !==
|
|
60
|
+
if (process.platform !== 'linux')
|
|
59
61
|
return false;
|
|
60
62
|
try {
|
|
61
|
-
const release = readFileSync(
|
|
62
|
-
return release.includes(
|
|
63
|
+
const release = readFileSync('/proc/version', 'utf8').toLowerCase();
|
|
64
|
+
return release.includes('microsoft') || release.includes('wsl');
|
|
63
65
|
}
|
|
64
66
|
catch {
|
|
65
67
|
return false;
|
|
@@ -69,7 +71,9 @@ function isWSL() {
|
|
|
69
71
|
* Detect remote/SSH environment where localhost may not be accessible from browser.
|
|
70
72
|
*/
|
|
71
73
|
function isRemoteEnvironment() {
|
|
72
|
-
if (process.env.SSH_CLIENT ||
|
|
74
|
+
if (process.env.SSH_CLIENT ||
|
|
75
|
+
process.env.SSH_TTY ||
|
|
76
|
+
process.env.SSH_CONNECTION) {
|
|
73
77
|
return true;
|
|
74
78
|
}
|
|
75
79
|
if (process.env.REMOTE_CONTAINERS || process.env.CODESPACES) {
|
|
@@ -94,23 +98,23 @@ function getBindAddress() {
|
|
|
94
98
|
}
|
|
95
99
|
// OrbStack Docker needs 127.0.0.1 for --network host port forwarding
|
|
96
100
|
if (isOrbStackDockerHost()) {
|
|
97
|
-
return
|
|
101
|
+
return '127.0.0.1';
|
|
98
102
|
}
|
|
99
103
|
// WSL and remote environments need 0.0.0.0 to be reachable
|
|
100
104
|
if (isWSL() || isRemoteEnvironment()) {
|
|
101
|
-
return
|
|
105
|
+
return '0.0.0.0';
|
|
102
106
|
}
|
|
103
107
|
// Default to 127.0.0.1 for security (local-only access)
|
|
104
|
-
return
|
|
108
|
+
return '127.0.0.1';
|
|
105
109
|
}
|
|
106
110
|
/**
|
|
107
111
|
* Starts a lightweight HTTP server that listens for the Antigravity OAuth redirect
|
|
108
112
|
* and resolves with the captured callback URL.
|
|
109
113
|
*/
|
|
110
|
-
export async function startOAuthListener({ timeoutMs = 5 * 60 * 1000 } = {}) {
|
|
114
|
+
export async function startOAuthListener({ timeoutMs = 5 * 60 * 1000, } = {}) {
|
|
111
115
|
const port = redirectUri.port
|
|
112
116
|
? Number.parseInt(redirectUri.port, 10)
|
|
113
|
-
: redirectUri.protocol ===
|
|
117
|
+
: redirectUri.protocol === 'https:'
|
|
114
118
|
? 443
|
|
115
119
|
: 80;
|
|
116
120
|
const origin = `${redirectUri.protocol}//${redirectUri.host}`;
|
|
@@ -262,22 +266,22 @@ export async function startOAuthListener({ timeoutMs = 5 * 60 * 1000 } = {}) {
|
|
|
262
266
|
</body>
|
|
263
267
|
</html>`;
|
|
264
268
|
timeoutHandle = setTimeout(() => {
|
|
265
|
-
rejectCallback(new Error(
|
|
269
|
+
rejectCallback(new Error('Timed out waiting for OAuth callback'));
|
|
266
270
|
}, timeoutMs);
|
|
267
271
|
timeoutHandle.unref?.();
|
|
268
272
|
const server = createServer((request, response) => {
|
|
269
273
|
if (!request.url) {
|
|
270
|
-
response.writeHead(400, {
|
|
271
|
-
response.end(
|
|
274
|
+
response.writeHead(400, { 'Content-Type': 'text/plain' });
|
|
275
|
+
response.end('Invalid request');
|
|
272
276
|
return;
|
|
273
277
|
}
|
|
274
278
|
const url = new URL(request.url, origin);
|
|
275
279
|
if (url.pathname !== callbackPath) {
|
|
276
|
-
response.writeHead(404, {
|
|
277
|
-
response.end(
|
|
280
|
+
response.writeHead(404, { 'Content-Type': 'text/plain' });
|
|
281
|
+
response.end('Not found');
|
|
278
282
|
return;
|
|
279
283
|
}
|
|
280
|
-
response.writeHead(200, {
|
|
284
|
+
response.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
281
285
|
response.end(successResponse);
|
|
282
286
|
resolveCallback(url);
|
|
283
287
|
setImmediate(() => {
|
|
@@ -287,8 +291,8 @@ export async function startOAuthListener({ timeoutMs = 5 * 60 * 1000 } = {}) {
|
|
|
287
291
|
const bindAddress = getBindAddress();
|
|
288
292
|
await new Promise((resolve, reject) => {
|
|
289
293
|
const handleError = (error) => {
|
|
290
|
-
server.off(
|
|
291
|
-
if (error.code ===
|
|
294
|
+
server.off('error', handleError);
|
|
295
|
+
if (error.code === 'EADDRINUSE') {
|
|
292
296
|
reject(new Error(`Port ${port} is already in use. ` +
|
|
293
297
|
`Another process is occupying this port. ` +
|
|
294
298
|
`Please terminate the process or try again later.`));
|
|
@@ -296,25 +300,26 @@ export async function startOAuthListener({ timeoutMs = 5 * 60 * 1000 } = {}) {
|
|
|
296
300
|
}
|
|
297
301
|
reject(error);
|
|
298
302
|
};
|
|
299
|
-
server.once(
|
|
303
|
+
server.once('error', handleError);
|
|
300
304
|
server.listen(port, bindAddress, () => {
|
|
301
|
-
server.off(
|
|
305
|
+
server.off('error', handleError);
|
|
302
306
|
resolve();
|
|
303
307
|
});
|
|
304
308
|
});
|
|
305
|
-
server.on(
|
|
309
|
+
server.on('error', (error) => {
|
|
306
310
|
rejectCallback(error instanceof Error ? error : new Error(String(error)));
|
|
307
311
|
});
|
|
308
312
|
return {
|
|
309
313
|
waitForCallback: () => callbackPromise,
|
|
310
314
|
close: () => new Promise((resolve, reject) => {
|
|
311
315
|
server.close((error) => {
|
|
312
|
-
if (error &&
|
|
316
|
+
if (error &&
|
|
317
|
+
error.code !== 'ERR_SERVER_NOT_RUNNING') {
|
|
313
318
|
reject(error);
|
|
314
319
|
return;
|
|
315
320
|
}
|
|
316
321
|
if (!settled) {
|
|
317
|
-
rejectCallback(new Error(
|
|
322
|
+
rejectCallback(new Error('OAuth listener closed before callback'));
|
|
318
323
|
}
|
|
319
324
|
resolve();
|
|
320
325
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/plugin/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/plugin/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AgyRequestScope, type AgyRequestSessionContext, type AgyRequestSessionStoreOptions } from
|
|
1
|
+
import { type AgyRequestScope, type AgyRequestSessionContext, type AgyRequestSessionStoreOptions } from './agy-request-metadata';
|
|
2
2
|
export interface OpenCodeSessionIdentity {
|
|
3
3
|
sessionId: string | null;
|
|
4
4
|
parentSessionId: string | null;
|
|
@@ -14,6 +14,7 @@ export declare class AgySessionRegistry {
|
|
|
14
14
|
register(sessionId: string, parentSessionId?: string | null): void;
|
|
15
15
|
getParentSessionId(sessionId: string): string | null;
|
|
16
16
|
delete(sessionId: string): void;
|
|
17
|
+
clear(): void;
|
|
17
18
|
get size(): number;
|
|
18
19
|
private recordParent;
|
|
19
20
|
private pruneParentRelationships;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../../src/plugin/session-context.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../../src/plugin/session-context.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAE7B,KAAK,6BAA6B,EACnC,MAAM,wBAAwB,CAAA;AAI/B,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAED,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAA;AAErE,wBAAgB,8BAA8B,CAC5C,OAAO,CAAC,EAAE,WAAW,GACpB,uBAAuB,CAOzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmC;gBAExD,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B;IAKtE,WAAW,CAAC,QAAQ,EAAE,uBAAuB,GAAG,wBAAwB;IAQxE,YAAY,CAAC,QAAQ,EAAE,uBAAuB,GAAG,eAAe;IAQhE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IAIxE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQpD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK/B,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,wBAAwB;CAOjC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { resolve } from
|
|
2
|
-
import { pathToFileURL } from
|
|
3
|
-
import { AgyRequestSessionStore, } from
|
|
4
|
-
const FALLBACK_SESSION_KEY =
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { pathToFileURL } from 'node:url';
|
|
3
|
+
import { AgyRequestSessionStore, } from './agy-request-metadata';
|
|
4
|
+
const FALLBACK_SESSION_KEY = '__default__';
|
|
5
5
|
export function extractOpenCodeSessionIdentity(headers) {
|
|
6
6
|
const normalized = new Headers(headers);
|
|
7
7
|
return {
|
|
8
|
-
sessionId: normalized.get(
|
|
9
|
-
parentSessionId: normalized.get(
|
|
8
|
+
sessionId: normalized.get('x-session-affinity') ?? normalized.get('x-session-id'),
|
|
9
|
+
parentSessionId: normalized.get('x-parent-session-id'),
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
export class AgySessionRegistry {
|
|
13
13
|
requestSessions;
|
|
14
14
|
parentSessionIds = new Map();
|
|
15
15
|
constructor(directory, options = {}) {
|
|
16
|
-
const workspaceUri = directory ? pathToFileURL(resolve(directory)).href :
|
|
16
|
+
const workspaceUri = directory ? pathToFileURL(resolve(directory)).href : '';
|
|
17
17
|
this.requestSessions = new AgyRequestSessionStore(workspaceUri, options);
|
|
18
18
|
}
|
|
19
19
|
getOrCreate(identity) {
|
|
@@ -44,6 +44,10 @@ export class AgySessionRegistry {
|
|
|
44
44
|
this.requestSessions.delete(sessionId);
|
|
45
45
|
this.parentSessionIds.delete(sessionId);
|
|
46
46
|
}
|
|
47
|
+
clear() {
|
|
48
|
+
this.requestSessions.clear();
|
|
49
|
+
this.parentSessionIds.clear();
|
|
50
|
+
}
|
|
47
51
|
get size() {
|
|
48
52
|
return this.requestSessions.size;
|
|
49
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-context.js","sourceRoot":"","sources":["../../../src/plugin/session-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,
|
|
1
|
+
{"version":3,"file":"session-context.js","sourceRoot":"","sources":["../../../src/plugin/session-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Host-path adapter for account storage.
|
|
3
|
+
*
|
|
4
|
+
* Resolves the on-disk path for the OpenCode config directory, handles
|
|
5
|
+
* the legacy Windows migration, and keeps the .gitignore in sync. All
|
|
6
|
+
* data operations are delegated to `@cortexkit/antigravity-auth-core`'s
|
|
7
|
+
* lock-held account-storage engine.
|
|
8
|
+
*
|
|
9
|
+
* The split keeps this module harness-specific (it knows about
|
|
10
|
+
* `OPENCODE_CONFIG_DIR`, `%APPDATA%`, and OpenCode-specific gitignore
|
|
11
|
+
* entries) while the schema, migrations, and lock semantics live in
|
|
12
|
+
* core.
|
|
13
|
+
*/
|
|
14
|
+
import type { AccountMetadataV2, AccountMetadataV3, AccountModelFamily, AccountStorageUnreadableReason, AccountStorageV2, AccountStorageV4, AnyAccountStorage, CooldownReason, HeaderStyle, RateLimitStateV2, RateLimitStateV3 } from '@cortexkit/antigravity-auth-core';
|
|
15
|
+
import { AccountStorageUnreadableError, deduplicateAccountsByEmail as coreDeduplicateAccountsByEmail, mergeAccountStorage as coreMergeAccountStorage, migrateV2ToV3 as coreMigrateV2ToV3, mutateAccountStorage as coreMutateAccountStorage } from '@cortexkit/antigravity-auth-core';
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated use `AccountModelFamily` from `@cortexkit/antigravity-auth-core`.
|
|
18
|
+
* Retained under the old name so existing call sites continue to compile.
|
|
19
|
+
*/
|
|
20
|
+
export type ModelFamily = AccountModelFamily;
|
|
21
|
+
export type { AccountMetadataV2, AccountMetadataV3, AccountStorageUnreadableReason, AccountStorageV2, AccountStorageV4, AnyAccountStorage, CooldownReason, HeaderStyle, RateLimitStateV2, RateLimitStateV3, };
|
|
22
|
+
/**
|
|
23
|
+
* Re-export the typed unreadable-storage error so consumers can
|
|
24
|
+
* `instanceof`-check without pulling core into their own dependency
|
|
25
|
+
* graph. When the on-disk accounts file exists but cannot be parsed
|
|
26
|
+
* as a valid v4 (corrupt JSON, schema mismatch, unknown version, or
|
|
27
|
+
* an I/O error other than ENOENT), every read/write here throws this
|
|
28
|
+
* — never silently overwrites the user's data.
|
|
29
|
+
*/
|
|
30
|
+
export { AccountStorageUnreadableError };
|
|
31
|
+
/**
|
|
32
|
+
* Backward-compat re-exports for harnesses still importing
|
|
33
|
+
* `deduplicateAccountsByEmail` / `mergeAccountStorage` / `migrateV2ToV3`
|
|
34
|
+
* from `./storage`. The definitions live in core; the adapter exposes
|
|
35
|
+
* them so legacy test files compile without modification.
|
|
36
|
+
*/
|
|
37
|
+
export declare const deduplicateAccountsByEmail: typeof coreDeduplicateAccountsByEmail;
|
|
38
|
+
export declare const mergeAccountStorage: typeof coreMergeAccountStorage;
|
|
39
|
+
export declare const migrateV2ToV3: typeof coreMigrateV2ToV3;
|
|
40
|
+
export declare const mutateAccountStorage: typeof coreMutateAccountStorage;
|
|
2
41
|
/**
|
|
3
42
|
* Files/directories that should be gitignored in the config directory.
|
|
4
43
|
* These contain sensitive data or machine-specific state.
|
|
@@ -14,115 +53,6 @@ export declare function ensureGitignore(configDir: string): Promise<void>;
|
|
|
14
53
|
* Synchronous version of ensureGitignore for use in sync code paths.
|
|
15
54
|
*/
|
|
16
55
|
export declare function ensureGitignoreSync(configDir: string): void;
|
|
17
|
-
export type ModelFamily = "claude" | "gemini";
|
|
18
|
-
export type { HeaderStyle };
|
|
19
|
-
export interface RateLimitState {
|
|
20
|
-
claude?: number;
|
|
21
|
-
gemini?: number;
|
|
22
|
-
}
|
|
23
|
-
export interface RateLimitStateV3 {
|
|
24
|
-
claude?: number;
|
|
25
|
-
"gemini-antigravity"?: number;
|
|
26
|
-
"gemini-cli"?: number;
|
|
27
|
-
[key: string]: number | undefined;
|
|
28
|
-
}
|
|
29
|
-
export interface AccountMetadataV1 {
|
|
30
|
-
email?: string;
|
|
31
|
-
refreshToken: string;
|
|
32
|
-
projectId?: string;
|
|
33
|
-
managedProjectId?: string;
|
|
34
|
-
addedAt: number;
|
|
35
|
-
lastUsed: number;
|
|
36
|
-
isRateLimited?: boolean;
|
|
37
|
-
rateLimitResetTime?: number;
|
|
38
|
-
lastSwitchReason?: "rate-limit" | "initial" | "rotation";
|
|
39
|
-
}
|
|
40
|
-
export interface AccountStorageV1 {
|
|
41
|
-
version: 1;
|
|
42
|
-
accounts: AccountMetadataV1[];
|
|
43
|
-
activeIndex: number;
|
|
44
|
-
}
|
|
45
|
-
export interface AccountMetadata {
|
|
46
|
-
email?: string;
|
|
47
|
-
refreshToken: string;
|
|
48
|
-
projectId?: string;
|
|
49
|
-
managedProjectId?: string;
|
|
50
|
-
addedAt: number;
|
|
51
|
-
lastUsed: number;
|
|
52
|
-
lastSwitchReason?: "rate-limit" | "initial" | "rotation";
|
|
53
|
-
rateLimitResetTimes?: RateLimitState;
|
|
54
|
-
}
|
|
55
|
-
export interface AccountStorage {
|
|
56
|
-
version: 2;
|
|
57
|
-
accounts: AccountMetadata[];
|
|
58
|
-
activeIndex: number;
|
|
59
|
-
}
|
|
60
|
-
export type CooldownReason = "auth-failure" | "network-error" | "project-error" | "validation-required";
|
|
61
|
-
export interface AccountMetadataV3 {
|
|
62
|
-
email?: string;
|
|
63
|
-
refreshToken: string;
|
|
64
|
-
projectId?: string;
|
|
65
|
-
managedProjectId?: string;
|
|
66
|
-
addedAt: number;
|
|
67
|
-
lastUsed: number;
|
|
68
|
-
enabled?: boolean;
|
|
69
|
-
lastSwitchReason?: "rate-limit" | "initial" | "rotation";
|
|
70
|
-
rateLimitResetTimes?: RateLimitStateV3;
|
|
71
|
-
coolingDownUntil?: number;
|
|
72
|
-
cooldownReason?: CooldownReason;
|
|
73
|
-
/** Per-account device fingerprint for rate limit mitigation */
|
|
74
|
-
fingerprint?: import("./fingerprint").Fingerprint;
|
|
75
|
-
fingerprintHistory?: import("./fingerprint").FingerprintVersion[];
|
|
76
|
-
/** Set when Google asks the user to verify this account before requests can continue. */
|
|
77
|
-
verificationRequired?: boolean;
|
|
78
|
-
verificationRequiredAt?: number;
|
|
79
|
-
verificationRequiredReason?: string;
|
|
80
|
-
verificationUrl?: string;
|
|
81
|
-
/** Set when the API explicitly returns ACCOUNT_INELIGIBLE. */
|
|
82
|
-
accountIneligible?: boolean;
|
|
83
|
-
accountIneligibleAt?: number;
|
|
84
|
-
accountIneligibleReason?: string;
|
|
85
|
-
eligibilityStateUpdatedAt?: number;
|
|
86
|
-
/** Cached soft quota data (group-level aggregation) */
|
|
87
|
-
cachedQuota?: Record<string, {
|
|
88
|
-
remainingFraction?: number;
|
|
89
|
-
resetTime?: string;
|
|
90
|
-
modelCount: number;
|
|
91
|
-
}>;
|
|
92
|
-
/** Cached per-model quota data (individual model granularity) */
|
|
93
|
-
cachedPerModelQuota?: {
|
|
94
|
-
modelId: string;
|
|
95
|
-
displayName?: string;
|
|
96
|
-
group: string | null;
|
|
97
|
-
remainingFraction: number;
|
|
98
|
-
resetTime?: string;
|
|
99
|
-
}[];
|
|
100
|
-
cachedQuotaUpdatedAt?: number;
|
|
101
|
-
/** Daily request counts per model family, resets when date changes */
|
|
102
|
-
dailyRequestCounts?: {
|
|
103
|
-
date: string;
|
|
104
|
-
claude: number;
|
|
105
|
-
gemini: number;
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
export interface AccountStorageV3 {
|
|
109
|
-
version: 3;
|
|
110
|
-
accounts: AccountMetadataV3[];
|
|
111
|
-
activeIndex: number;
|
|
112
|
-
activeIndexByFamily?: {
|
|
113
|
-
claude?: number;
|
|
114
|
-
gemini?: number;
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
export interface AccountStorageV4 {
|
|
118
|
-
version: 4;
|
|
119
|
-
accounts: AccountMetadataV3[];
|
|
120
|
-
activeIndex: number;
|
|
121
|
-
activeIndexByFamily?: {
|
|
122
|
-
claude?: number;
|
|
123
|
-
gemini?: number;
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
56
|
/**
|
|
127
57
|
* Gets the config directory path, with the following precedence:
|
|
128
58
|
* 1. OPENCODE_CONFIG_DIR env var (if set)
|
|
@@ -136,21 +66,30 @@ export declare function getStoragePath(): string;
|
|
|
136
66
|
* Gets the config directory path. Exported for use by other modules.
|
|
137
67
|
*/
|
|
138
68
|
export { getConfigDir };
|
|
139
|
-
export declare function mergeAccountStorage(existing: AccountStorageV4, incoming: AccountStorageV4): AccountStorageV4;
|
|
140
|
-
export declare function deduplicateAccountsByEmail<T extends {
|
|
141
|
-
email?: string;
|
|
142
|
-
lastUsed?: number;
|
|
143
|
-
addedAt?: number;
|
|
144
|
-
}>(accounts: T[]): T[];
|
|
145
|
-
export declare function migrateV2ToV3(v2: AccountStorage): AccountStorageV3;
|
|
146
|
-
export declare function migrateV3ToV4(v3: AccountStorageV3): AccountStorageV4;
|
|
147
69
|
export declare function loadAccounts(): Promise<AccountStorageV4 | null>;
|
|
70
|
+
/**
|
|
71
|
+
* Merge `storage` into the persisted pool. Use this for non-destructive
|
|
72
|
+
* writes (quota cache, eligibility, last-used) so concurrent writers
|
|
73
|
+
* do not silently drop each other's data.
|
|
74
|
+
*/
|
|
148
75
|
export declare function saveAccounts(storage: AccountStorageV4): Promise<void>;
|
|
149
76
|
/**
|
|
150
77
|
* Save accounts storage by replacing the entire file (no merge).
|
|
151
|
-
*
|
|
152
|
-
*
|
|
78
|
+
* Required for destructive operations like delete where the next-state
|
|
79
|
+
* must replace — never be merged with — what is on disk.
|
|
153
80
|
*/
|
|
154
81
|
export declare function saveAccountsReplace(storage: AccountStorageV4): Promise<void>;
|
|
155
82
|
export declare function clearAccounts(): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Locate a stored account by its refresh token under the lock-held
|
|
85
|
+
* mutator and apply `mutate(account)`. Returns the (possibly mutated)
|
|
86
|
+
* account, or `undefined` when the token no longer matches any stored
|
|
87
|
+
* account. Concurrent writers that add/remove accounts will not
|
|
88
|
+
* disturb the lookup — the read happens while the lock is held.
|
|
89
|
+
*
|
|
90
|
+
* `mutate` may mutate `account` in place and return `true` to commit
|
|
91
|
+
* the change; returning `false` is treated as "no change" and skips
|
|
92
|
+
* the write.
|
|
93
|
+
*/
|
|
94
|
+
export declare function mutateAccountByRefreshToken(refreshToken: string, mutate: (account: AccountMetadataV3) => boolean): Promise<AccountMetadataV3 | undefined>;
|
|
156
95
|
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/plugin/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/plugin/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgBH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,8BAA8B,EAC9B,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,6BAA6B,EAE7B,0BAA0B,IAAI,8BAA8B,EAE5D,mBAAmB,IAAI,uBAAuB,EAC9C,aAAa,IAAI,iBAAiB,EAClC,oBAAoB,IAAI,wBAAwB,EAGjD,MAAM,kCAAkC,CAAA;AAWzC;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAE5C,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,8BAA8B,EAC9B,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,CAAA;AAED;;;;;;;GAOG;AACH,OAAO,EAAE,6BAA6B,EAAE,CAAA;AAExC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,uCAAiC,CAAA;AACxE,eAAO,MAAM,mBAAmB,gCAA0B,CAAA;AAC1D,eAAO,MAAM,aAAa,0BAAoB,CAAA;AAC9C,eAAO,MAAM,oBAAoB,iCAA2B,CAAA;AAE5D;;;GAGG;AAIH,eAAO,MAAM,iBAAiB,UAK7B,CAAA;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAyC3D;AAaD;;;;;;GAMG;AACH,iBAAS,YAAY,IAAI,MAAM,CAO9B;AAiFD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,CAAA;AAUvB,wBAAsB,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAIrE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAUnD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,GAC9C,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAqBxC"}
|