@antseed/cli 0.1.178 → 0.1.180
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 +5 -0
- package/dist/buyer-identities/store.d.ts +39 -2
- package/dist/buyer-identities/store.d.ts.map +1 -1
- package/dist/buyer-identities/store.js +99 -10
- package/dist/buyer-identities/store.js.map +1 -1
- package/dist/cli/commands/apps/index.d.ts +42 -0
- package/dist/cli/commands/apps/index.d.ts.map +1 -0
- package/dist/cli/commands/apps/index.js +224 -0
- package/dist/cli/commands/apps/index.js.map +1 -0
- package/dist/cli/commands/apps/index.test.d.ts +2 -0
- package/dist/cli/commands/apps/index.test.d.ts.map +1 -0
- package/dist/cli/commands/apps/index.test.js +206 -0
- package/dist/cli/commands/apps/index.test.js.map +1 -0
- package/dist/cli/commands/buyer/deposit.d.ts.map +1 -1
- package/dist/cli/commands/buyer/deposit.js +9 -1
- package/dist/cli/commands/buyer/deposit.js.map +1 -1
- package/dist/cli/commands/buyer/identity.d.ts +3 -1
- package/dist/cli/commands/buyer/identity.d.ts.map +1 -1
- package/dist/cli/commands/buyer/identity.js +55 -8
- package/dist/cli/commands/buyer/identity.js.map +1 -1
- package/dist/cli/commands/buyer/identity.test.d.ts +2 -0
- package/dist/cli/commands/buyer/identity.test.d.ts.map +1 -0
- package/dist/cli/commands/buyer/identity.test.js +168 -0
- package/dist/cli/commands/buyer/identity.test.js.map +1 -0
- package/dist/cli/commands/buyer/set-authorized-wallet.d.ts +10 -0
- package/dist/cli/commands/buyer/set-authorized-wallet.d.ts.map +1 -1
- package/dist/cli/commands/buyer/set-authorized-wallet.js +26 -4
- package/dist/cli/commands/buyer/set-authorized-wallet.js.map +1 -1
- package/dist/cli/commands/buyer/set-authorized-wallet.test.js +37 -2
- package/dist/cli/commands/buyer/set-authorized-wallet.test.js.map +1 -1
- package/dist/cli/commands/buyer/start.d.ts +15 -0
- package/dist/cli/commands/buyer/start.d.ts.map +1 -1
- package/dist/cli/commands/buyer/start.js +158 -48
- package/dist/cli/commands/buyer/start.js.map +1 -1
- package/dist/cli/commands/buyer/start.test.js +16 -1
- package/dist/cli/commands/buyer/start.test.js.map +1 -1
- package/dist/cli/commands/chat.d.ts +3 -0
- package/dist/cli/commands/chat.d.ts.map +1 -0
- package/dist/cli/commands/chat.js +189 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/gateway/activity.d.ts +15 -0
- package/dist/cli/commands/gateway/activity.d.ts.map +1 -0
- package/dist/cli/commands/gateway/activity.js +233 -0
- package/dist/cli/commands/gateway/activity.js.map +1 -0
- package/dist/cli/commands/gateway/admin-token.d.ts +3 -0
- package/dist/cli/commands/gateway/admin-token.d.ts.map +1 -0
- package/dist/cli/commands/gateway/admin-token.js +90 -0
- package/dist/cli/commands/gateway/admin-token.js.map +1 -0
- package/dist/cli/commands/gateway/console-link.d.ts +20 -0
- package/dist/cli/commands/gateway/console-link.d.ts.map +1 -0
- package/dist/cli/commands/gateway/console-link.js +92 -0
- package/dist/cli/commands/gateway/console-link.js.map +1 -0
- package/dist/cli/commands/gateway/gateway-commands.test.d.ts +2 -0
- package/dist/cli/commands/gateway/gateway-commands.test.d.ts.map +1 -0
- package/dist/cli/commands/gateway/gateway-commands.test.js +230 -0
- package/dist/cli/commands/gateway/gateway-commands.test.js.map +1 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.d.ts +2 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.d.ts.map +1 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.js +373 -0
- package/dist/cli/commands/gateway/gateway-console-commands.test.js.map +1 -0
- package/dist/cli/commands/gateway/index.d.ts +8 -0
- package/dist/cli/commands/gateway/index.d.ts.map +1 -1
- package/dist/cli/commands/gateway/index.js +93 -14
- package/dist/cli/commands/gateway/index.js.map +1 -1
- package/dist/cli/commands/gateway/key.d.ts +4 -0
- package/dist/cli/commands/gateway/key.d.ts.map +1 -1
- package/dist/cli/commands/gateway/key.js +297 -182
- package/dist/cli/commands/gateway/key.js.map +1 -1
- package/dist/cli/commands/gateway/member.d.ts +3 -0
- package/dist/cli/commands/gateway/member.d.ts.map +1 -0
- package/dist/cli/commands/gateway/member.js +302 -0
- package/dist/cli/commands/gateway/member.js.map +1 -0
- package/dist/cli/commands/gateway/migrate.d.ts +18 -0
- package/dist/cli/commands/gateway/migrate.d.ts.map +1 -0
- package/dist/cli/commands/gateway/migrate.js +158 -0
- package/dist/cli/commands/gateway/migrate.js.map +1 -0
- package/dist/cli/commands/gateway/operator.d.ts +11 -0
- package/dist/cli/commands/gateway/operator.d.ts.map +1 -0
- package/dist/cli/commands/gateway/operator.js +199 -0
- package/dist/cli/commands/gateway/operator.js.map +1 -0
- package/dist/cli/commands/gateway/operator.test.d.ts +2 -0
- package/dist/cli/commands/gateway/operator.test.d.ts.map +1 -0
- package/dist/cli/commands/gateway/operator.test.js +151 -0
- package/dist/cli/commands/gateway/operator.test.js.map +1 -0
- package/dist/cli/commands/gateway/peer-list.d.ts +3 -0
- package/dist/cli/commands/gateway/peer-list.d.ts.map +1 -0
- package/dist/cli/commands/gateway/peer-list.js +107 -0
- package/dist/cli/commands/gateway/peer-list.js.map +1 -0
- package/dist/cli/commands/gateway/policy-options.d.ts +23 -0
- package/dist/cli/commands/gateway/policy-options.d.ts.map +1 -0
- package/dist/cli/commands/gateway/policy-options.js +156 -0
- package/dist/cli/commands/gateway/policy-options.js.map +1 -0
- package/dist/cli/commands/gateway/preset.d.ts +3 -0
- package/dist/cli/commands/gateway/preset.d.ts.map +1 -0
- package/dist/cli/commands/gateway/preset.js +181 -0
- package/dist/cli/commands/gateway/preset.js.map +1 -0
- package/dist/cli/commands/gateway/routing.d.ts +3 -0
- package/dist/cli/commands/gateway/routing.d.ts.map +1 -0
- package/dist/cli/commands/gateway/routing.js +110 -0
- package/dist/cli/commands/gateway/routing.js.map +1 -0
- package/dist/cli/commands/gateway/settings.d.ts +4 -0
- package/dist/cli/commands/gateway/settings.d.ts.map +1 -0
- package/dist/cli/commands/gateway/settings.js +314 -0
- package/dist/cli/commands/gateway/settings.js.map +1 -0
- package/dist/cli/commands/gateway/shared.d.ts +55 -6
- package/dist/cli/commands/gateway/shared.d.ts.map +1 -1
- package/dist/cli/commands/gateway/shared.js +206 -26
- package/dist/cli/commands/gateway/shared.js.map +1 -1
- package/dist/cli/commands/gateway/workspace.d.ts +3 -0
- package/dist/cli/commands/gateway/workspace.d.ts.map +1 -0
- package/dist/cli/commands/gateway/workspace.js +250 -0
- package/dist/cli/commands/gateway/workspace.js.map +1 -0
- package/dist/cli/commands/tunnel/start.d.ts.map +1 -1
- package/dist/cli/commands/tunnel/start.js +23 -5
- package/dist/cli/commands/tunnel/start.js.map +1 -1
- package/dist/cli/index.js +12 -42
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/program.d.ts +4 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +49 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/program.test.d.ts +2 -0
- package/dist/cli/program.test.d.ts.map +1 -0
- package/dist/cli/program.test.js +38 -0
- package/dist/cli/program.test.js.map +1 -0
- package/dist/cli/prompt-hidden.d.ts +3 -0
- package/dist/cli/prompt-hidden.d.ts.map +1 -0
- package/dist/cli/prompt-hidden.js +38 -0
- package/dist/cli/prompt-hidden.js.map +1 -0
- package/dist/cli/wallet-passphrase.d.ts +48 -0
- package/dist/cli/wallet-passphrase.d.ts.map +1 -0
- package/dist/cli/wallet-passphrase.js +119 -0
- package/dist/cli/wallet-passphrase.js.map +1 -0
- package/dist/cli/wallet-passphrase.test.d.ts +2 -0
- package/dist/cli/wallet-passphrase.test.d.ts.map +1 -0
- package/dist/cli/wallet-passphrase.test.js +79 -0
- package/dist/cli/wallet-passphrase.test.js.map +1 -0
- package/dist/config/effective.d.ts +12 -0
- package/dist/config/effective.d.ts.map +1 -1
- package/dist/config/effective.js +39 -6
- package/dist/config/effective.js.map +1 -1
- package/dist/config/effective.test.js +9 -1
- package/dist/config/effective.test.js.map +1 -1
- package/dist/config/loader.d.ts +6 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +12 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +7 -1
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/types.d.ts +14 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +19 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/gateway/accounting.d.ts +33 -3
- package/dist/gateway/accounting.d.ts.map +1 -1
- package/dist/gateway/accounting.js +86 -7
- package/dist/gateway/accounting.js.map +1 -1
- package/dist/gateway/admission-benchmark.test.d.ts +2 -0
- package/dist/gateway/admission-benchmark.test.d.ts.map +1 -0
- package/dist/gateway/admission-benchmark.test.js +75 -0
- package/dist/gateway/admission-benchmark.test.js.map +1 -0
- package/dist/gateway/auth/auth.test.d.ts +4 -0
- package/dist/gateway/auth/auth.test.d.ts.map +1 -0
- package/dist/gateway/auth/auth.test.js +337 -0
- package/dist/gateway/auth/auth.test.js.map +1 -0
- package/dist/gateway/auth/credentials.test.d.ts +2 -0
- package/dist/gateway/auth/credentials.test.d.ts.map +1 -0
- package/dist/gateway/auth/credentials.test.js +132 -0
- package/dist/gateway/auth/credentials.test.js.map +1 -0
- package/dist/gateway/auth/db.d.ts +156 -0
- package/dist/gateway/auth/db.d.ts.map +1 -0
- package/dist/gateway/auth/db.js +390 -0
- package/dist/gateway/auth/db.js.map +1 -0
- package/dist/gateway/auth/hardening.test.d.ts +2 -0
- package/dist/gateway/auth/hardening.test.d.ts.map +1 -0
- package/dist/gateway/auth/hardening.test.js +155 -0
- package/dist/gateway/auth/hardening.test.js.map +1 -0
- package/dist/gateway/auth/http.d.ts +53 -0
- package/dist/gateway/auth/http.d.ts.map +1 -0
- package/dist/gateway/auth/http.js +165 -0
- package/dist/gateway/auth/http.js.map +1 -0
- package/dist/gateway/auth/index.d.ts +26 -0
- package/dist/gateway/auth/index.d.ts.map +1 -0
- package/dist/gateway/auth/index.js +1014 -0
- package/dist/gateway/auth/index.js.map +1 -0
- package/dist/gateway/auth/oidc.d.ts +57 -0
- package/dist/gateway/auth/oidc.d.ts.map +1 -0
- package/dist/gateway/auth/oidc.js +159 -0
- package/dist/gateway/auth/oidc.js.map +1 -0
- package/dist/gateway/auth/oidc.test.d.ts +2 -0
- package/dist/gateway/auth/oidc.test.d.ts.map +1 -0
- package/dist/gateway/auth/oidc.test.js +223 -0
- package/dist/gateway/auth/oidc.test.js.map +1 -0
- package/dist/gateway/auth/reauth.test.d.ts +2 -0
- package/dist/gateway/auth/reauth.test.d.ts.map +1 -0
- package/dist/gateway/auth/reauth.test.js +108 -0
- package/dist/gateway/auth/reauth.test.js.map +1 -0
- package/dist/gateway/auth/store-integration.test.d.ts +2 -0
- package/dist/gateway/auth/store-integration.test.d.ts.map +1 -0
- package/dist/gateway/auth/store-integration.test.js +100 -0
- package/dist/gateway/auth/store-integration.test.js.map +1 -0
- package/dist/gateway/auth/test-helpers.d.ts +167 -0
- package/dist/gateway/auth/test-helpers.d.ts.map +1 -0
- package/dist/gateway/auth/test-helpers.js +368 -0
- package/dist/gateway/auth/test-helpers.js.map +1 -0
- package/dist/gateway/auth/types.d.ts +145 -0
- package/dist/gateway/auth/types.d.ts.map +1 -0
- package/dist/gateway/auth/types.js +2 -0
- package/dist/gateway/auth/types.js.map +1 -0
- package/dist/gateway/auth/wallet.d.ts +15 -0
- package/dist/gateway/auth/wallet.d.ts.map +1 -0
- package/dist/gateway/auth/wallet.js +43 -0
- package/dist/gateway/auth/wallet.js.map +1 -0
- package/dist/gateway/bundle.d.ts +127 -0
- package/dist/gateway/bundle.d.ts.map +1 -0
- package/dist/gateway/bundle.js +604 -0
- package/dist/gateway/bundle.js.map +1 -0
- package/dist/gateway/bundle.test.d.ts +2 -0
- package/dist/gateway/bundle.test.d.ts.map +1 -0
- package/dist/gateway/bundle.test.js +277 -0
- package/dist/gateway/bundle.test.js.map +1 -0
- package/dist/gateway/buyer-control.d.ts +33 -0
- package/dist/gateway/buyer-control.d.ts.map +1 -0
- package/dist/gateway/buyer-control.js +93 -0
- package/dist/gateway/buyer-control.js.map +1 -0
- package/dist/gateway/buyer-policy-probe.d.ts +41 -0
- package/dist/gateway/buyer-policy-probe.d.ts.map +1 -0
- package/dist/gateway/buyer-policy-probe.js +99 -0
- package/dist/gateway/buyer-policy-probe.js.map +1 -0
- package/dist/gateway/buyer-policy-probe.test.d.ts +2 -0
- package/dist/gateway/buyer-policy-probe.test.d.ts.map +1 -0
- package/dist/gateway/buyer-policy-probe.test.js +128 -0
- package/dist/gateway/buyer-policy-probe.test.js.map +1 -0
- package/dist/gateway/buyer-process.d.ts +30 -0
- package/dist/gateway/buyer-process.d.ts.map +1 -0
- package/dist/gateway/buyer-process.js +101 -0
- package/dist/gateway/buyer-process.js.map +1 -0
- package/dist/gateway/buyer-process.test.d.ts +2 -0
- package/dist/gateway/buyer-process.test.d.ts.map +1 -0
- package/dist/gateway/buyer-process.test.js +112 -0
- package/dist/gateway/buyer-process.test.js.map +1 -0
- package/dist/gateway/chat/routes.d.ts +45 -0
- package/dist/gateway/chat/routes.d.ts.map +1 -0
- package/dist/gateway/chat/routes.js +439 -0
- package/dist/gateway/chat/routes.js.map +1 -0
- package/dist/gateway/chat/routes.test.d.ts +2 -0
- package/dist/gateway/chat/routes.test.d.ts.map +1 -0
- package/dist/gateway/chat/routes.test.js +304 -0
- package/dist/gateway/chat/routes.test.js.map +1 -0
- package/dist/gateway/chat/tools.d.ts +35 -0
- package/dist/gateway/chat/tools.d.ts.map +1 -0
- package/dist/gateway/chat/tools.js +347 -0
- package/dist/gateway/chat/tools.js.map +1 -0
- package/dist/gateway/chat/tools.test.d.ts +2 -0
- package/dist/gateway/chat/tools.test.d.ts.map +1 -0
- package/dist/gateway/chat/tools.test.js +136 -0
- package/dist/gateway/chat/tools.test.js.map +1 -0
- package/dist/gateway/console-api/access.d.ts +52 -0
- package/dist/gateway/console-api/access.d.ts.map +1 -0
- package/dist/gateway/console-api/access.js +171 -0
- package/dist/gateway/console-api/access.js.map +1 -0
- package/dist/gateway/console-api/deps.d.ts +52 -0
- package/dist/gateway/console-api/deps.d.ts.map +1 -0
- package/dist/gateway/console-api/deps.js +2 -0
- package/dist/gateway/console-api/deps.js.map +1 -0
- package/dist/gateway/console-api/handlers/admin-tokens.d.ts +8 -0
- package/dist/gateway/console-api/handlers/admin-tokens.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/admin-tokens.js +48 -0
- package/dist/gateway/console-api/handlers/admin-tokens.js.map +1 -0
- package/dist/gateway/console-api/handlers/audit.d.ts +8 -0
- package/dist/gateway/console-api/handlers/audit.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/audit.js +19 -0
- package/dist/gateway/console-api/handlers/audit.js.map +1 -0
- package/dist/gateway/console-api/handlers/audit.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/audit.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/audit.test.js +241 -0
- package/dist/gateway/console-api/handlers/audit.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/data-settings.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/data-settings.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/data-settings.test.js +264 -0
- package/dist/gateway/console-api/handlers/data-settings.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/index.d.ts +4 -0
- package/dist/gateway/console-api/handlers/index.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/index.js +24 -0
- package/dist/gateway/console-api/handlers/index.js.map +1 -0
- package/dist/gateway/console-api/handlers/keys.d.ts +13 -0
- package/dist/gateway/console-api/handlers/keys.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/keys.js +128 -0
- package/dist/gateway/console-api/handlers/keys.js.map +1 -0
- package/dist/gateway/console-api/handlers/keys.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/keys.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/keys.test.js +166 -0
- package/dist/gateway/console-api/handlers/keys.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/network-buyer.d.ts +22 -0
- package/dist/gateway/console-api/handlers/network-buyer.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network-buyer.js +39 -0
- package/dist/gateway/console-api/handlers/network-buyer.js.map +1 -0
- package/dist/gateway/console-api/handlers/network-mapping.d.ts +33 -0
- package/dist/gateway/console-api/handlers/network-mapping.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network-mapping.js +219 -0
- package/dist/gateway/console-api/handlers/network-mapping.js.map +1 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.d.ts +35 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.js +121 -0
- package/dist/gateway/console-api/handlers/network-test-helpers.js.map +1 -0
- package/dist/gateway/console-api/handlers/network.d.ts +15 -0
- package/dist/gateway/console-api/handlers/network.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network.js +57 -0
- package/dist/gateway/console-api/handlers/network.js.map +1 -0
- package/dist/gateway/console-api/handlers/network.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/network.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/network.test.js +383 -0
- package/dist/gateway/console-api/handlers/network.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/org.d.ts +10 -0
- package/dist/gateway/console-api/handlers/org.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/org.js +150 -0
- package/dist/gateway/console-api/handlers/org.js.map +1 -0
- package/dist/gateway/console-api/handlers/peer-lists.d.ts +5 -0
- package/dist/gateway/console-api/handlers/peer-lists.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/peer-lists.js +43 -0
- package/dist/gateway/console-api/handlers/peer-lists.js.map +1 -0
- package/dist/gateway/console-api/handlers/presets.d.ts +9 -0
- package/dist/gateway/console-api/handlers/presets.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/presets.js +79 -0
- package/dist/gateway/console-api/handlers/presets.js.map +1 -0
- package/dist/gateway/console-api/handlers/routing.d.ts +5 -0
- package/dist/gateway/console-api/handlers/routing.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/routing.js +20 -0
- package/dist/gateway/console-api/handlers/routing.js.map +1 -0
- package/dist/gateway/console-api/handlers/settings.d.ts +10 -0
- package/dist/gateway/console-api/handlers/settings.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/settings.js +38 -0
- package/dist/gateway/console-api/handlers/settings.js.map +1 -0
- package/dist/gateway/console-api/handlers/status.d.ts +9 -0
- package/dist/gateway/console-api/handlers/status.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/status.js +47 -0
- package/dist/gateway/console-api/handlers/status.js.map +1 -0
- package/dist/gateway/console-api/handlers/status.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/status.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/status.test.js +82 -0
- package/dist/gateway/console-api/handlers/status.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/usage.d.ts +10 -0
- package/dist/gateway/console-api/handlers/usage.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/usage.js +68 -0
- package/dist/gateway/console-api/handlers/usage.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.d.ts +29 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.js +46 -0
- package/dist/gateway/console-api/handlers/wallet-card-link.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-chain.d.ts +26 -0
- package/dist/gateway/console-api/handlers/wallet-chain.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-chain.js +80 -0
- package/dist/gateway/console-api/handlers/wallet-chain.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.d.ts +45 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.js +202 -0
- package/dist/gateway/console-api/handlers/wallet-mapping.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.d.ts +41 -0
- package/dist/gateway/console-api/handlers/wallet-operator.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.js +198 -0
- package/dist/gateway/console-api/handlers/wallet-operator.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.js +195 -0
- package/dist/gateway/console-api/handlers/wallet-operator.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.d.ts +61 -0
- package/dist/gateway/console-api/handlers/wallet.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.js +221 -0
- package/dist/gateway/console-api/handlers/wallet.js.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.test.d.ts +2 -0
- package/dist/gateway/console-api/handlers/wallet.test.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/wallet.test.js +581 -0
- package/dist/gateway/console-api/handlers/wallet.test.js.map +1 -0
- package/dist/gateway/console-api/handlers/workspaces.d.ts +12 -0
- package/dist/gateway/console-api/handlers/workspaces.d.ts.map +1 -0
- package/dist/gateway/console-api/handlers/workspaces.js +96 -0
- package/dist/gateway/console-api/handlers/workspaces.js.map +1 -0
- package/dist/gateway/console-api/operator-types.d.ts +68 -0
- package/dist/gateway/console-api/operator-types.d.ts.map +1 -0
- package/dist/gateway/console-api/operator-types.js +21 -0
- package/dist/gateway/console-api/operator-types.js.map +1 -0
- package/dist/gateway/console-api/router.d.ts +97 -0
- package/dist/gateway/console-api/router.d.ts.map +1 -0
- package/dist/gateway/console-api/router.js +69 -0
- package/dist/gateway/console-api/router.js.map +1 -0
- package/dist/gateway/console-api/routes.test.d.ts +2 -0
- package/dist/gateway/console-api/routes.test.d.ts.map +1 -0
- package/dist/gateway/console-api/routes.test.js +331 -0
- package/dist/gateway/console-api/routes.test.js.map +1 -0
- package/dist/gateway/console-api/serialize.d.ts +33 -0
- package/dist/gateway/console-api/serialize.d.ts.map +1 -0
- package/dist/gateway/console-api/serialize.js +179 -0
- package/dist/gateway/console-api/serialize.js.map +1 -0
- package/dist/gateway/console-api/server.d.ts +38 -0
- package/dist/gateway/console-api/server.d.ts.map +1 -0
- package/dist/gateway/console-api/server.js +308 -0
- package/dist/gateway/console-api/server.js.map +1 -0
- package/dist/gateway/console-api/server.test.d.ts +2 -0
- package/dist/gateway/console-api/server.test.d.ts.map +1 -0
- package/dist/gateway/console-api/server.test.js +149 -0
- package/dist/gateway/console-api/server.test.js.map +1 -0
- package/dist/gateway/console-api/test-support.d.ts +59 -0
- package/dist/gateway/console-api/test-support.d.ts.map +1 -0
- package/dist/gateway/console-api/test-support.js +120 -0
- package/dist/gateway/console-api/test-support.js.map +1 -0
- package/dist/gateway/console-api/types.d.ts +779 -0
- package/dist/gateway/console-api/types.d.ts.map +1 -0
- package/dist/gateway/console-api/types.js +6 -0
- package/dist/gateway/console-api/types.js.map +1 -0
- package/dist/gateway/console-location.d.ts +21 -0
- package/dist/gateway/console-location.d.ts.map +1 -0
- package/dist/gateway/console-location.js +41 -0
- package/dist/gateway/console-location.js.map +1 -0
- package/dist/gateway/console-recovery.d.ts +34 -0
- package/dist/gateway/console-recovery.d.ts.map +1 -0
- package/dist/gateway/console-recovery.js +94 -0
- package/dist/gateway/console-recovery.js.map +1 -0
- package/dist/gateway/console-recovery.test.d.ts +2 -0
- package/dist/gateway/console-recovery.test.d.ts.map +1 -0
- package/dist/gateway/console-recovery.test.js +106 -0
- package/dist/gateway/console-recovery.test.js.map +1 -0
- package/dist/gateway/console.d.ts +18 -0
- package/dist/gateway/console.d.ts.map +1 -0
- package/dist/gateway/console.js +101 -0
- package/dist/gateway/console.js.map +1 -0
- package/dist/gateway/console.test.d.ts +2 -0
- package/dist/gateway/console.test.d.ts.map +1 -0
- package/dist/gateway/console.test.js +165 -0
- package/dist/gateway/console.test.js.map +1 -0
- package/dist/gateway/errors.d.ts +3 -0
- package/dist/gateway/errors.d.ts.map +1 -0
- package/dist/gateway/errors.js +5 -0
- package/dist/gateway/errors.js.map +1 -0
- package/dist/gateway/exposure.d.ts +33 -0
- package/dist/gateway/exposure.d.ts.map +1 -0
- package/dist/gateway/exposure.js +146 -0
- package/dist/gateway/exposure.js.map +1 -0
- package/dist/gateway/exposure.test.d.ts +2 -0
- package/dist/gateway/exposure.test.d.ts.map +1 -0
- package/dist/gateway/exposure.test.js +93 -0
- package/dist/gateway/exposure.test.js.map +1 -0
- package/dist/gateway/gateway-policy.test.d.ts +2 -0
- package/dist/gateway/gateway-policy.test.d.ts.map +1 -0
- package/dist/gateway/gateway-policy.test.js +404 -0
- package/dist/gateway/gateway-policy.test.js.map +1 -0
- package/dist/gateway/gateway.test.js +77 -24
- package/dist/gateway/gateway.test.js.map +1 -1
- package/dist/gateway/keys.d.ts +2 -0
- package/dist/gateway/keys.d.ts.map +1 -1
- package/dist/gateway/keys.js +2 -0
- package/dist/gateway/keys.js.map +1 -1
- package/dist/gateway/limits.d.ts +32 -8
- package/dist/gateway/limits.d.ts.map +1 -1
- package/dist/gateway/limits.js +27 -11
- package/dist/gateway/limits.js.map +1 -1
- package/dist/gateway/observability.d.ts +51 -0
- package/dist/gateway/observability.d.ts.map +1 -0
- package/dist/gateway/observability.js +136 -0
- package/dist/gateway/observability.js.map +1 -0
- package/dist/gateway/policy-resolver.d.ts +73 -0
- package/dist/gateway/policy-resolver.d.ts.map +1 -0
- package/dist/gateway/policy-resolver.js +142 -0
- package/dist/gateway/policy-resolver.js.map +1 -0
- package/dist/gateway/policy-resolver.test.d.ts +2 -0
- package/dist/gateway/policy-resolver.test.d.ts.map +1 -0
- package/dist/gateway/policy-resolver.test.js +273 -0
- package/dist/gateway/policy-resolver.test.js.map +1 -0
- package/dist/gateway/request-errors.test.d.ts +2 -0
- package/dist/gateway/request-errors.test.d.ts.map +1 -0
- package/dist/gateway/request-errors.test.js +108 -0
- package/dist/gateway/request-errors.test.js.map +1 -0
- package/dist/gateway/request-shaping.d.ts +25 -0
- package/dist/gateway/request-shaping.d.ts.map +1 -0
- package/dist/gateway/request-shaping.js +66 -0
- package/dist/gateway/request-shaping.js.map +1 -0
- package/dist/gateway/response-usage.d.ts +35 -0
- package/dist/gateway/response-usage.d.ts.map +1 -0
- package/dist/gateway/response-usage.js +167 -0
- package/dist/gateway/response-usage.js.map +1 -0
- package/dist/gateway/response-usage.test.d.ts +2 -0
- package/dist/gateway/response-usage.test.d.ts.map +1 -0
- package/dist/gateway/response-usage.test.js +78 -0
- package/dist/gateway/response-usage.test.js.map +1 -0
- package/dist/gateway/runtime.d.ts +25 -0
- package/dist/gateway/runtime.d.ts.map +1 -1
- package/dist/gateway/runtime.js +39 -19
- package/dist/gateway/runtime.js.map +1 -1
- package/dist/gateway/server.d.ts +68 -2
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +533 -114
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/services/audit.d.ts +16 -0
- package/dist/gateway/services/audit.d.ts.map +1 -0
- package/dist/gateway/services/audit.js +18 -0
- package/dist/gateway/services/audit.js.map +1 -0
- package/dist/gateway/services/context.d.ts +66 -0
- package/dist/gateway/services/context.d.ts.map +1 -0
- package/dist/gateway/services/context.js +52 -0
- package/dist/gateway/services/context.js.map +1 -0
- package/dist/gateway/services/keys.d.ts +78 -0
- package/dist/gateway/services/keys.d.ts.map +1 -0
- package/dist/gateway/services/keys.js +232 -0
- package/dist/gateway/services/keys.js.map +1 -0
- package/dist/gateway/services/members.d.ts +72 -0
- package/dist/gateway/services/members.d.ts.map +1 -0
- package/dist/gateway/services/members.js +161 -0
- package/dist/gateway/services/members.js.map +1 -0
- package/dist/gateway/services/network.d.ts +36 -0
- package/dist/gateway/services/network.d.ts.map +1 -0
- package/dist/gateway/services/network.js +147 -0
- package/dist/gateway/services/network.js.map +1 -0
- package/dist/gateway/services/operator.d.ts +98 -0
- package/dist/gateway/services/operator.d.ts.map +1 -0
- package/dist/gateway/services/operator.js +170 -0
- package/dist/gateway/services/operator.js.map +1 -0
- package/dist/gateway/services/operator.test.d.ts +2 -0
- package/dist/gateway/services/operator.test.d.ts.map +1 -0
- package/dist/gateway/services/operator.test.js +184 -0
- package/dist/gateway/services/operator.test.js.map +1 -0
- package/dist/gateway/services/peer-lists.d.ts +20 -0
- package/dist/gateway/services/peer-lists.d.ts.map +1 -0
- package/dist/gateway/services/peer-lists.js +134 -0
- package/dist/gateway/services/peer-lists.js.map +1 -0
- package/dist/gateway/services/presets.d.ts +34 -0
- package/dist/gateway/services/presets.d.ts.map +1 -0
- package/dist/gateway/services/presets.js +134 -0
- package/dist/gateway/services/presets.js.map +1 -0
- package/dist/gateway/services/routing.d.ts +13 -0
- package/dist/gateway/services/routing.d.ts.map +1 -0
- package/dist/gateway/services/routing.js +18 -0
- package/dist/gateway/services/routing.js.map +1 -0
- package/dist/gateway/services/services.test.d.ts +2 -0
- package/dist/gateway/services/services.test.d.ts.map +1 -0
- package/dist/gateway/services/services.test.js +476 -0
- package/dist/gateway/services/services.test.js.map +1 -0
- package/dist/gateway/services/settings.d.ts +68 -0
- package/dist/gateway/services/settings.d.ts.map +1 -0
- package/dist/gateway/services/settings.js +580 -0
- package/dist/gateway/services/settings.js.map +1 -0
- package/dist/gateway/services/tokens.d.ts +29 -0
- package/dist/gateway/services/tokens.d.ts.map +1 -0
- package/dist/gateway/services/tokens.js +48 -0
- package/dist/gateway/services/tokens.js.map +1 -0
- package/dist/gateway/services/usage.d.ts +55 -0
- package/dist/gateway/services/usage.d.ts.map +1 -0
- package/dist/gateway/services/usage.js +225 -0
- package/dist/gateway/services/usage.js.map +1 -0
- package/dist/gateway/services/wallet-address-env.test.d.ts +2 -0
- package/dist/gateway/services/wallet-address-env.test.d.ts.map +1 -0
- package/dist/gateway/services/wallet-address-env.test.js +119 -0
- package/dist/gateway/services/wallet-address-env.test.js.map +1 -0
- package/dist/gateway/services/wallet-address.d.ts +40 -0
- package/dist/gateway/services/wallet-address.d.ts.map +1 -0
- package/dist/gateway/services/wallet-address.js +116 -0
- package/dist/gateway/services/wallet-address.js.map +1 -0
- package/dist/gateway/services/wallet-address.test.d.ts +2 -0
- package/dist/gateway/services/wallet-address.test.d.ts.map +1 -0
- package/dist/gateway/services/wallet-address.test.js +84 -0
- package/dist/gateway/services/wallet-address.test.js.map +1 -0
- package/dist/gateway/services/workspaces.d.ts +75 -0
- package/dist/gateway/services/workspaces.d.ts.map +1 -0
- package/dist/gateway/services/workspaces.js +228 -0
- package/dist/gateway/services/workspaces.js.map +1 -0
- package/dist/gateway/spend-durability.test.d.ts +2 -0
- package/dist/gateway/spend-durability.test.d.ts.map +1 -0
- package/dist/gateway/spend-durability.test.js +330 -0
- package/dist/gateway/spend-durability.test.js.map +1 -0
- package/dist/gateway/spend-feed.d.ts +11 -1
- package/dist/gateway/spend-feed.d.ts.map +1 -1
- package/dist/gateway/spend-feed.js +17 -4
- package/dist/gateway/spend-feed.js.map +1 -1
- package/dist/gateway/spend-feed.test.d.ts +2 -0
- package/dist/gateway/spend-feed.test.d.ts.map +1 -0
- package/dist/gateway/spend-feed.test.js +34 -0
- package/dist/gateway/spend-feed.test.js.map +1 -0
- package/dist/gateway/store-data.test.d.ts +2 -0
- package/dist/gateway/store-data.test.d.ts.map +1 -0
- package/dist/gateway/store-data.test.js +346 -0
- package/dist/gateway/store-data.test.js.map +1 -0
- package/dist/gateway/store-migrations.d.ts +6 -0
- package/dist/gateway/store-migrations.d.ts.map +1 -0
- package/dist/gateway/store-migrations.js +301 -0
- package/dist/gateway/store-migrations.js.map +1 -0
- package/dist/gateway/store.d.ts +595 -10
- package/dist/gateway/store.d.ts.map +1 -1
- package/dist/gateway/store.js +1242 -120
- package/dist/gateway/store.js.map +1 -1
- package/dist/gateway/store.test.d.ts +2 -0
- package/dist/gateway/store.test.d.ts.map +1 -0
- package/dist/gateway/store.test.js +185 -0
- package/dist/gateway/store.test.js.map +1 -0
- package/dist/proxy/buyer-chain-reader.d.ts +68 -0
- package/dist/proxy/buyer-chain-reader.d.ts.map +1 -0
- package/dist/proxy/buyer-chain-reader.js +152 -0
- package/dist/proxy/buyer-chain-reader.js.map +1 -0
- package/dist/proxy/buyer-chain-reader.test.d.ts +2 -0
- package/dist/proxy/buyer-chain-reader.test.d.ts.map +1 -0
- package/dist/proxy/buyer-chain-reader.test.js +102 -0
- package/dist/proxy/buyer-chain-reader.test.js.map +1 -0
- package/dist/proxy/buyer-proxy.d.ts +169 -3
- package/dist/proxy/buyer-proxy.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.js +882 -118
- package/dist/proxy/buyer-proxy.js.map +1 -1
- package/dist/proxy/buyer-proxy.test.js +108 -0
- package/dist/proxy/buyer-proxy.test.js.map +1 -1
- package/dist/proxy/chain-read-cache.d.ts +47 -0
- package/dist/proxy/chain-read-cache.d.ts.map +1 -0
- package/dist/proxy/chain-read-cache.js +110 -0
- package/dist/proxy/chain-read-cache.js.map +1 -0
- package/dist/proxy/chain-read-cache.test.d.ts +2 -0
- package/dist/proxy/chain-read-cache.test.d.ts.map +1 -0
- package/dist/proxy/chain-read-cache.test.js +75 -0
- package/dist/proxy/chain-read-cache.test.js.map +1 -0
- package/dist/proxy/chain-rpc-test-support.d.ts +31 -0
- package/dist/proxy/chain-rpc-test-support.d.ts.map +1 -0
- package/dist/proxy/chain-rpc-test-support.js +136 -0
- package/dist/proxy/chain-rpc-test-support.js.map +1 -0
- package/dist/proxy/chain-rpc.d.ts +121 -0
- package/dist/proxy/chain-rpc.d.ts.map +1 -0
- package/dist/proxy/chain-rpc.js +420 -0
- package/dist/proxy/chain-rpc.js.map +1 -0
- package/dist/proxy/chain-rpc.test.d.ts +2 -0
- package/dist/proxy/chain-rpc.test.d.ts.map +1 -0
- package/dist/proxy/chain-rpc.test.js +180 -0
- package/dist/proxy/chain-rpc.test.js.map +1 -0
- package/dist/proxy/credential-headers.d.ts +17 -0
- package/dist/proxy/credential-headers.d.ts.map +1 -0
- package/dist/proxy/credential-headers.js +29 -0
- package/dist/proxy/credential-headers.js.map +1 -0
- package/dist/proxy/deposit-watch-hub.d.ts +47 -0
- package/dist/proxy/deposit-watch-hub.d.ts.map +1 -0
- package/dist/proxy/deposit-watch-hub.js +111 -0
- package/dist/proxy/deposit-watch-hub.js.map +1 -0
- package/dist/proxy/deposit-watch-hub.test.d.ts +2 -0
- package/dist/proxy/deposit-watch-hub.test.d.ts.map +1 -0
- package/dist/proxy/deposit-watch-hub.test.js +133 -0
- package/dist/proxy/deposit-watch-hub.test.js.map +1 -0
- package/dist/proxy/deposit-watcher.d.ts +63 -4
- package/dist/proxy/deposit-watcher.d.ts.map +1 -1
- package/dist/proxy/deposit-watcher.js +120 -19
- package/dist/proxy/deposit-watcher.js.map +1 -1
- package/dist/proxy/deposit-watcher.test.js +81 -5
- package/dist/proxy/deposit-watcher.test.js.map +1 -1
- package/dist/proxy/gateway-policy.test.d.ts +2 -0
- package/dist/proxy/gateway-policy.test.d.ts.map +1 -0
- package/dist/proxy/gateway-policy.test.js +576 -0
- package/dist/proxy/gateway-policy.test.js.map +1 -0
- package/dist/proxy/network-models.d.ts +2 -0
- package/dist/proxy/network-models.d.ts.map +1 -1
- package/dist/proxy/network-models.js +3 -1
- package/dist/proxy/network-models.js.map +1 -1
- package/dist/proxy/route-policy.d.ts +97 -0
- package/dist/proxy/route-policy.d.ts.map +1 -0
- package/dist/proxy/route-policy.js +230 -0
- package/dist/proxy/route-policy.js.map +1 -0
- package/dist/proxy/route-policy.test.d.ts +2 -0
- package/dist/proxy/route-policy.test.d.ts.map +1 -0
- package/dist/proxy/route-policy.test.js +120 -0
- package/dist/proxy/route-policy.test.js.map +1 -0
- package/dist/proxy/spend-attribution.d.ts +41 -10
- package/dist/proxy/spend-attribution.d.ts.map +1 -1
- package/dist/proxy/spend-attribution.js +133 -37
- package/dist/proxy/spend-attribution.js.map +1 -1
- package/dist/proxy/tee-control.d.ts +3 -1
- package/dist/proxy/tee-control.d.ts.map +1 -1
- package/dist/proxy/tee-control.js +5 -3
- package/dist/proxy/tee-control.js.map +1 -1
- package/dist/proxy/telemetry.d.ts +2 -1
- package/dist/proxy/telemetry.d.ts.map +1 -1
- package/dist/proxy/telemetry.js +10 -5
- package/dist/proxy/telemetry.js.map +1 -1
- package/dist/routing-policy/policy.d.ts +149 -0
- package/dist/routing-policy/policy.d.ts.map +1 -0
- package/dist/routing-policy/policy.js +450 -0
- package/dist/routing-policy/policy.js.map +1 -0
- package/dist/routing-policy/policy.test.d.ts +2 -0
- package/dist/routing-policy/policy.test.d.ts.map +1 -0
- package/dist/routing-policy/policy.test.js +134 -0
- package/dist/routing-policy/policy.test.js.map +1 -0
- package/dist/system-proxy/proxy-server.js +2 -2
- package/dist/system-proxy/proxy-server.js.map +1 -1
- package/dist/system-proxy/proxy-server.test.js +40 -0
- package/dist/system-proxy/proxy-server.test.js.map +1 -1
- package/package.json +16 -7
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import test, { after, afterEach, before, beforeEach, describe } from 'node:test';
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { AuthDb } from '../../../gateway/auth/db.js';
|
|
8
|
+
import { startFakeBuyer } from '../../../gateway/console-api/handlers/network-test-helpers.js';
|
|
9
|
+
import { addActiveMember } from '../../../gateway/console-api/test-support.js';
|
|
10
|
+
import { GatewayStore } from '../../../gateway/store.js';
|
|
11
|
+
import { decodePolicyHeader, GATEWAY_CONTROL_HEADER, GATEWAY_CONTROL_SECRET_FILE, ROUTING_POLICY_HEADER } from '../../../routing-policy/policy.js';
|
|
12
|
+
import { followRequests } from './activity.js';
|
|
13
|
+
import { registerGatewayCommands } from './index.js';
|
|
14
|
+
import { gatewayCliRuntime } from './shared.js';
|
|
15
|
+
// Never ask a buyer that may be running on this machine; tests that need one inject it.
|
|
16
|
+
gatewayCliRuntime.buyerAddresses = async () => null;
|
|
17
|
+
const PEER_A = 'aa'.repeat(20);
|
|
18
|
+
const PEER_B = 'bb'.repeat(20);
|
|
19
|
+
let dataDir;
|
|
20
|
+
let configPath;
|
|
21
|
+
let buyer;
|
|
22
|
+
let restarts = 0;
|
|
23
|
+
async function run(...args) {
|
|
24
|
+
const program = new Command();
|
|
25
|
+
program.exitOverride().option('--data-dir <path>').option('--config <path>');
|
|
26
|
+
registerGatewayCommands(program);
|
|
27
|
+
const lines = [];
|
|
28
|
+
const original = console.log;
|
|
29
|
+
console.log = (...parts) => { lines.push(parts.map(String).join(' ')); };
|
|
30
|
+
try {
|
|
31
|
+
await program.parseAsync(['node', 'antseed', '--data-dir', dataDir, '--config', configPath, 'gateway', ...args]);
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
console.log = original;
|
|
35
|
+
}
|
|
36
|
+
return lines.join('\n');
|
|
37
|
+
}
|
|
38
|
+
async function runJson(...args) {
|
|
39
|
+
return JSON.parse(await run(...args, '--json'));
|
|
40
|
+
}
|
|
41
|
+
function withStore(fn) {
|
|
42
|
+
const store = new GatewayStore(dataDir);
|
|
43
|
+
try {
|
|
44
|
+
return fn(store);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
store.close();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function activeMember(label, orgRole = 'member') {
|
|
51
|
+
return withStore((store) => addActiveMember(store, label, { orgRole, email: `${label.toLowerCase()}@example.test` }));
|
|
52
|
+
}
|
|
53
|
+
function auditActions(action) {
|
|
54
|
+
return withStore((store) => store.listAudit({ ...(action ? { action } : {}), limit: 500 }).entries.map((entry) => entry.action));
|
|
55
|
+
}
|
|
56
|
+
before(async () => {
|
|
57
|
+
buyer = await startFakeBuyer({
|
|
58
|
+
'GET /_antseed/peers': () => ({
|
|
59
|
+
body: {
|
|
60
|
+
ok: true,
|
|
61
|
+
peers: [
|
|
62
|
+
{ peerId: PEER_A, displayName: 'Seller A', providers: ['p'], capabilities: ['verifier.antseed-verifier'], trust: { score: 72 }, providerPricing: { p: { defaults: { inputUsdPerMillion: 1, outputUsdPerMillion: 2 }, services: { 'open-model-a': {} } } } },
|
|
63
|
+
{ peerId: PEER_B, displayName: 'Seller B', providers: ['p'], providerPricing: { p: { defaults: { inputUsdPerMillion: 3, outputUsdPerMillion: 4 }, services: { 'open-model-b': {} } } } },
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
}),
|
|
67
|
+
'GET /_antseed/route-preview': (request) => ({
|
|
68
|
+
body: {
|
|
69
|
+
model: new URL(request.url, 'http://x').searchParams.get('model'),
|
|
70
|
+
candidates: [
|
|
71
|
+
{ peerId: PEER_A, displayName: null, rank: 1, eligible: true, reasons: ['cheapest'], inputUsdPerMillion: 1, outputUsdPerMillion: 2, trustScore: 72 },
|
|
72
|
+
{ peerId: PEER_B, displayName: null, rank: null, eligible: false, reasons: ['below min trust'], inputUsdPerMillion: 3, outputUsdPerMillion: 4, trustScore: 10 },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
}),
|
|
76
|
+
'GET /_antseed/balances': () => ({ body: { available: '0', reserved: '0', walletUsdc: '0' } }),
|
|
77
|
+
'POST /_antseed/restart': () => {
|
|
78
|
+
restarts += 1;
|
|
79
|
+
return { status: 202, body: { ok: true } };
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
after(async () => {
|
|
84
|
+
await buyer.close();
|
|
85
|
+
});
|
|
86
|
+
beforeEach(() => {
|
|
87
|
+
dataDir = mkdtempSync(join(tmpdir(), 'antseed-gateway-console-cli-'));
|
|
88
|
+
configPath = join(dataDir, 'config.json');
|
|
89
|
+
writeFileSync(configPath, `${JSON.stringify({ buyer: { proxyPort: buyer.port } }, null, 2)}\n`);
|
|
90
|
+
});
|
|
91
|
+
afterEach(() => {
|
|
92
|
+
rmSync(dataDir, { recursive: true, force: true });
|
|
93
|
+
});
|
|
94
|
+
describe('gateway workspace (console parity)', () => {
|
|
95
|
+
test('show, update, policy, members and delete', async () => {
|
|
96
|
+
const created = await runJson('workspace', 'create', '--name', 'Lab', '--identity', 'default');
|
|
97
|
+
const bob = activeMember('Bob');
|
|
98
|
+
const updated = await runJson('workspace', 'update', 'Lab', '--name', 'Lab 2', '--weekly-limit', '40');
|
|
99
|
+
assert.equal(updated.name, 'Lab 2');
|
|
100
|
+
assert.equal(updated.limitsUsd['weekly'], '40.000000');
|
|
101
|
+
await assert.rejects(run('workspace', 'update', 'Lab 2'), /Nothing to change/);
|
|
102
|
+
await run('workspace', 'policy', 'set', 'Lab 2', '--layer', 'org', '--min-trust', '30');
|
|
103
|
+
await run('workspace', 'policy', 'set', 'Lab 2', '--allow-model', 'open-model-a', '--sort', 'price');
|
|
104
|
+
const policy = await runJson('workspace', 'policy', 'show', 'Lab 2');
|
|
105
|
+
assert.deepEqual(policy.orgRoutingPolicy, { minTrustScore: 30 });
|
|
106
|
+
assert.deepEqual(policy.routingPolicy, { allowedModels: ['open-model-a'], sort: 'price' });
|
|
107
|
+
assert.equal(policy.effective['minTrustScore'], 30);
|
|
108
|
+
// Asking for less trust than the org policy requires is narrowed.
|
|
109
|
+
await assert.rejects(run('workspace', 'policy', 'set', 'Lab 2', '--min-trust', '10'), /--accept-narrowed/);
|
|
110
|
+
await run('workspace', 'policy', 'set', 'Lab 2', '--min-trust', '10', '--merge', '--accept-narrowed');
|
|
111
|
+
await run('workspace', 'policy', 'clear', 'Lab 2', '--layer', 'org');
|
|
112
|
+
withStore((store) => {
|
|
113
|
+
const record = store.getWorkspace(created.id);
|
|
114
|
+
assert.equal(record.orgRoutingPolicy, null);
|
|
115
|
+
assert.deepEqual(record.routingPolicy, { allowedModels: ['open-model-a'], sort: 'price', minTrustScore: 10 });
|
|
116
|
+
});
|
|
117
|
+
await run('workspace', 'member', 'add', 'Lab 2', 'bob@example.test');
|
|
118
|
+
await run('workspace', 'member', 'role', 'Lab 2', bob.id, 'admin');
|
|
119
|
+
assert.deepEqual(await runJson('workspace', 'member', 'list', 'Lab 2'), [{ memberId: bob.id, label: 'Bob', email: 'bob@example.test', status: 'active', role: 'admin' }]);
|
|
120
|
+
assert.match(await run('workspace', 'show', 'Lab 2'), /Bob <bob@example.test>\s+admin/);
|
|
121
|
+
await run('key', 'create', '--label', 'bob-key', '--workspace', 'Lab 2', '--owner', bob.id);
|
|
122
|
+
await assert.rejects(run('workspace', 'delete', 'Lab 2', '--buyer-port', String(buyer.port)), /Revoke this workspace's keys first/);
|
|
123
|
+
assert.match(await run('workspace', 'member', 'remove', 'Lab 2', bob.id), /revoked 1 key/);
|
|
124
|
+
await run('workspace', 'delete', 'Lab 2');
|
|
125
|
+
withStore((store) => assert.equal(store.getWorkspace(created.id), null));
|
|
126
|
+
await assert.rejects(run('workspace', 'delete', 'Default'), /Default workspace cannot be deleted/);
|
|
127
|
+
assert.ok(auditActions('workspace').includes('workspace.delete'));
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
describe('gateway member (console parity)', () => {
|
|
131
|
+
test('show, update, policy, credentials and invites', async () => {
|
|
132
|
+
const carol = activeMember('Carol', 'admin');
|
|
133
|
+
activeMember('Owner', 'owner');
|
|
134
|
+
const shown = await runJson('member', 'show', 'carol@example.test');
|
|
135
|
+
assert.equal(shown.id, carol.id);
|
|
136
|
+
const updated = await runJson('member', 'update', carol.id, '--role', 'member', '--max-keys', '2', '--monthly-limit', '20');
|
|
137
|
+
assert.equal(updated.orgRole, 'member');
|
|
138
|
+
assert.equal(updated.maxKeys, 2);
|
|
139
|
+
assert.equal(updated.limitsUsd['monthly'], '20.000000');
|
|
140
|
+
await assert.rejects(run('member', 'update', carol.id, '--max-keys', 'lots'), /--max-keys/);
|
|
141
|
+
await run('member', 'policy', 'set', carol.id, '--require-tee', '--max-input-price', '2.5');
|
|
142
|
+
withStore((store) => assert.deepEqual(store.getMember(carol.id).routingPolicy, { requireTee: true, maxInputUsdPerMillion: 2.5 }));
|
|
143
|
+
assert.match(await run('member', 'policy', 'show', carol.id), /Require TEE: yes/);
|
|
144
|
+
await run('member', 'policy', 'clear', carol.id);
|
|
145
|
+
withStore((store) => assert.equal(store.getMember(carol.id).routingPolicy, null));
|
|
146
|
+
const credentialId = withStore((store) => {
|
|
147
|
+
const db = new AuthDb(store.database, () => Date.now());
|
|
148
|
+
db.addCredential(carol.id, { kind: 'wallet', label: 'Main wallet', address: `0x${'cd'.repeat(20)}` });
|
|
149
|
+
const second = db.addCredential(carol.id, { kind: 'wallet', label: 'Backup', address: `0x${'ef'.repeat(20)}` });
|
|
150
|
+
db.createSession({ kind: 'member', memberId: carol.id }, { userAgent: null, ip: '127.0.0.1' });
|
|
151
|
+
return second.id;
|
|
152
|
+
});
|
|
153
|
+
const listed = await runJson('member', 'credentials', 'list', carol.id);
|
|
154
|
+
assert.deepEqual(listed.map((entry) => entry.label).sort(), ['Backup', 'Main wallet']);
|
|
155
|
+
await run('member', 'credentials', 'remove', carol.id, credentialId);
|
|
156
|
+
withStore((store) => {
|
|
157
|
+
const sessions = store.database.prepare('SELECT COUNT(*) AS count FROM auth_sessions WHERE member_id = ?').get(carol.id);
|
|
158
|
+
assert.equal(sessions.count, 0);
|
|
159
|
+
});
|
|
160
|
+
const remaining = listed.find((entry) => entry.id !== credentialId).id;
|
|
161
|
+
await assert.rejects(run('member', 'credentials', 'remove', carol.id, remaining), /--allow-last/);
|
|
162
|
+
await run('member', 'credentials', 'remove', carol.id, remaining, '--allow-last');
|
|
163
|
+
assert.deepEqual(await runJson('member', 'credentials', 'list', carol.id), []);
|
|
164
|
+
const invite = await runJson('member', 'invite', '--label', 'Dana');
|
|
165
|
+
assert.deepEqual((await runJson('member', 'invites')).map((entry) => entry.id), [invite.id]);
|
|
166
|
+
await run('member', 'cancel-invite', invite.id);
|
|
167
|
+
assert.deepEqual(await runJson('member', 'invites'), []);
|
|
168
|
+
assert.deepEqual(auditActions('member').filter((action) => action !== 'member.update'), ['member.credential_remove', 'member.credential_remove']);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('gateway key (console parity)', () => {
|
|
172
|
+
test('update both layers, rotate, and set policies with narrowing and empty-allow checks', async () => {
|
|
173
|
+
const key = await runJson('key', 'create', '--label', 'svc', '--daily-limit', '10');
|
|
174
|
+
const updated = await runJson('key', 'update', key.id, '--label', 'svc-2', '--owner-daily-limit', '4', '--expires-in-days', '3');
|
|
175
|
+
assert.equal(updated.label, 'svc-2');
|
|
176
|
+
assert.equal(updated.ownerLimitsUsd['daily'], '4.000000');
|
|
177
|
+
assert.equal(updated.effectiveLimitsUsd['daily'], '4.000000');
|
|
178
|
+
assert.ok(updated.expiresAt);
|
|
179
|
+
await assert.rejects(run('key', 'update', key.id, '--owner-daily-limit', '50'), /--accept-narrowed/);
|
|
180
|
+
await run('key', 'update', key.id, '--no-expiry', '--owner-daily-limit', 'none');
|
|
181
|
+
withStore((store) => {
|
|
182
|
+
const record = store.getKey(key.id);
|
|
183
|
+
assert.equal(record.expiresAt, null);
|
|
184
|
+
assert.equal(record.ownerLimits.daily, null);
|
|
185
|
+
});
|
|
186
|
+
const rotated = await runJson('key', 'rotate', key.id);
|
|
187
|
+
assert.notEqual(rotated.apiKey, key.apiKey);
|
|
188
|
+
withStore((store) => {
|
|
189
|
+
assert.equal(store.findKeyBySecret(key.apiKey), null);
|
|
190
|
+
assert.equal(store.findKeyBySecret(rotated.apiKey)?.id, key.id);
|
|
191
|
+
});
|
|
192
|
+
await run('peer-list', 'create', '--name', 'Trusted', '--peer', PEER_A);
|
|
193
|
+
await run('key', 'policy', 'set', key.id, '--allow-list', 'Trusted', '--block-peer', PEER_B);
|
|
194
|
+
await assert.rejects(run('key', 'policy', 'set', key.id, '--layer', 'owner', '--allow-peer', PEER_B), /--confirm-empty/);
|
|
195
|
+
await assert.rejects(run('key', 'policy', 'set', key.id, '--layer', 'owner', '--allow-peer', PEER_B, '--confirm-empty'), /--accept-narrowed/);
|
|
196
|
+
await run('key', 'policy', 'set', key.id, '--layer', 'owner', '--allow-peer', PEER_A, '--sort', 'latency');
|
|
197
|
+
const policy = await runJson('key', 'policy', 'show', key.id);
|
|
198
|
+
assert.equal(policy.routingPolicy['allowedPeerLists'].length, 1);
|
|
199
|
+
assert.deepEqual(policy.ownerRoutingPolicy, { allowedPeerIds: [PEER_A], sort: 'latency' });
|
|
200
|
+
assert.deepEqual(policy.effective['allowedPeerIds'], [PEER_A]);
|
|
201
|
+
const policyFile = join(dataDir, 'policy.json');
|
|
202
|
+
writeFileSync(policyFile, JSON.stringify({ allowedModels: ['open-model-a'], minTrustScore: 20 }));
|
|
203
|
+
await run('key', 'policy', 'set', key.id, '--file', policyFile);
|
|
204
|
+
withStore((store) => assert.deepEqual(store.getKey(key.id).routingPolicy, { allowedModels: ['open-model-a'], minTrustScore: 20 }));
|
|
205
|
+
writeFileSync(policyFile, JSON.stringify({ minTrustScore: 'high' }));
|
|
206
|
+
await assert.rejects(run('key', 'policy', 'set', key.id, '--file', policyFile), /not a valid routing policy/);
|
|
207
|
+
await run('key', 'policy', 'clear', key.id, '--layer', 'owner');
|
|
208
|
+
withStore((store) => assert.equal(store.getKey(key.id).ownerRoutingPolicy, null));
|
|
209
|
+
assert.match(await run('key', 'show', key.id), /Owner routing policy:.*\n.*no restrictions/);
|
|
210
|
+
assert.deepEqual(auditActions('key.rotate'), ['key.rotate']);
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
describe('gateway routing', () => {
|
|
214
|
+
test('default policy show/set/clear and a route preview through the buyer', async () => {
|
|
215
|
+
await run('routing', 'set', '--min-trust', '50', '--allow-model', 'open-model-a');
|
|
216
|
+
assert.deepEqual(await runJson('routing', 'show'), { allowedModels: ['open-model-a'], minTrustScore: 50 });
|
|
217
|
+
await assert.rejects(run('routing', 'set', '--allow-peer', PEER_A, '--file', '/nonexistent/policy.json'), /Could not read/);
|
|
218
|
+
const preview = await runJson('routing', 'preview', '--model', 'open-model-a');
|
|
219
|
+
assert.equal(preview.modelAllowed, true);
|
|
220
|
+
assert.equal(preview.candidates[0].displayName, 'Seller A');
|
|
221
|
+
const sent = buyer.requests.filter((request) => request.url.startsWith('/_antseed/route-preview')).at(-1);
|
|
222
|
+
const secret = readFileSync(join(dataDir, GATEWAY_CONTROL_SECRET_FILE), 'utf8').trim();
|
|
223
|
+
assert.equal(sent.headers[GATEWAY_CONTROL_HEADER], secret);
|
|
224
|
+
assert.deepEqual(decodePolicyHeader(String(sent.headers[ROUTING_POLICY_HEADER])), { allowedModels: ['open-model-a'], minTrustScore: 50 });
|
|
225
|
+
const table = await run('routing', 'preview', '--model', 'open-model-a', '--all');
|
|
226
|
+
assert.match(table, /below min trust/);
|
|
227
|
+
assert.match(await run('routing', 'preview', '--model', 'closed-model'), /not allowed/);
|
|
228
|
+
const key = await runJson('key', 'create', '--label', 'k');
|
|
229
|
+
const resolved = await runJson('routing', 'show', '--key', key.id);
|
|
230
|
+
assert.deepEqual(resolved.sources.map((source) => source.level), ['buyer', 'gateway', 'workspace-org', 'workspace', 'key', 'key-owner']);
|
|
231
|
+
await run('routing', 'clear');
|
|
232
|
+
assert.deepEqual(await runJson('routing', 'show'), {});
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
describe('gateway peer-list and preset', () => {
|
|
236
|
+
test('peer list CRUD with add/remove and the empty-allow guard', async () => {
|
|
237
|
+
const list = await runJson('peer-list', 'create', '--name', 'Fast', '--peer', `0x${PEER_A}`, '--description', 'low latency');
|
|
238
|
+
assert.deepEqual(list.peerIds, [PEER_A]);
|
|
239
|
+
await run('peer-list', 'add', 'Fast', PEER_B);
|
|
240
|
+
assert.deepEqual((await runJson('peer-list', 'show', 'fast')).peerIds, [PEER_A, PEER_B]);
|
|
241
|
+
await run('routing', 'set', '--allow-list', 'Fast');
|
|
242
|
+
await run('peer-list', 'remove', 'Fast', PEER_A);
|
|
243
|
+
await assert.rejects(run('peer-list', 'remove', 'Fast', PEER_B), /--confirm-empty/);
|
|
244
|
+
await assert.rejects(run('peer-list', 'delete', 'Fast'), /gateway default/);
|
|
245
|
+
await run('peer-list', 'update', 'Fast', '--name', 'Faster', '--peers', `${PEER_A},${PEER_B}`);
|
|
246
|
+
assert.deepEqual((await runJson('peer-list', 'list')).map((entry) => [entry.name, entry.peerIds.length]), [['Faster', 2]]);
|
|
247
|
+
await run('peer-list', 'delete', 'Faster', '--confirm-empty');
|
|
248
|
+
assert.deepEqual(await runJson('peer-list', 'list'), []);
|
|
249
|
+
});
|
|
250
|
+
test('preset CRUD', async () => {
|
|
251
|
+
await run('workspace', 'create', '--name', 'Team', '--identity', 'default');
|
|
252
|
+
const promptFile = join(dataDir, 'prompt.txt');
|
|
253
|
+
writeFileSync(promptFile, 'Answer briefly.\n');
|
|
254
|
+
// A workspace preset may come first; an org-wide one with its slug then wins, and a new one may not shadow it.
|
|
255
|
+
await run('preset', 'create', '--slug', 'brief', '--name', 'Team brief', '--model', 'open-model-b', '--workspace', 'Team');
|
|
256
|
+
const preset = await runJson('preset', 'create', '--slug', 'brief', '--name', 'Brief', '--model', 'open-model-a', '--param', 'temperature=0.1', '--param', 'stop=END', '--system-prompt-file', promptFile, '--require-tee');
|
|
257
|
+
assert.deepEqual(preset.params, { temperature: 0.1, stop: 'END' });
|
|
258
|
+
assert.equal(preset.systemPrompt, 'Answer briefly.');
|
|
259
|
+
assert.deepEqual(preset.routingPolicy, { requireTee: true });
|
|
260
|
+
assert.equal(preset.workspaceId, null);
|
|
261
|
+
await assert.rejects(run('preset', 'create', '--slug', 'brief', '--name', 'x', '--model', 'm'), /already exists/);
|
|
262
|
+
await assert.rejects(run('preset', 'create', '--slug', 'brief', '--name', 'x', '--model', 'm', '--workspace', 'Team'), /already/);
|
|
263
|
+
await assert.rejects(run('preset', 'show', 'brief'), /Several presets/);
|
|
264
|
+
assert.equal((await runJson('preset', 'show', 'brief', '--workspace', 'org')).id, preset.id);
|
|
265
|
+
const updated = await runJson('preset', 'update', preset.id, '--model', 'open-model-c', '--clear-policy', '--param', 'temperature=0.3', '--merge');
|
|
266
|
+
assert.equal(updated.model, 'open-model-c');
|
|
267
|
+
assert.equal(updated.routingPolicy, null);
|
|
268
|
+
assert.deepEqual(updated.params, { temperature: 0.3, stop: 'END' });
|
|
269
|
+
assert.equal((await runJson('preset', 'list', '--workspace', 'Team')).length, 2);
|
|
270
|
+
await run('preset', 'delete', preset.id);
|
|
271
|
+
assert.deepEqual((await runJson('preset', 'list')).map((entry) => entry.name), ['Team brief']);
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
describe('gateway usage, logs, export and audit', () => {
|
|
275
|
+
function seed() {
|
|
276
|
+
return withStore((store) => {
|
|
277
|
+
const { key } = store.createKey({ label: 'usage-key', limits: { daily: null, monthly: null, total: null }, expiresAt: null });
|
|
278
|
+
const now = Date.now();
|
|
279
|
+
for (let index = 0; index < 4; index += 1) {
|
|
280
|
+
const tag = `gw_test_${index}`;
|
|
281
|
+
store.startRequest({ tag, keyId: key.id, buyerIdentity: 'default', method: 'POST', path: '/v1/chat/completions', model: index < 3 ? 'open-model-a' : 'open-model-b', startedAt: now - (10 - index) * 1000, endUser: null });
|
|
282
|
+
store.finishRequest(tag, { status: index === 1 ? 502 : 200, buyerRequestId: null, ...(index === 1 ? { error: { code: 'seller_failed', message: 'upstream' } } : {}) });
|
|
283
|
+
}
|
|
284
|
+
store.recordRequestContent('gw_test_0', { requestBody: '{"q":1}', responseBody: '{"a":1}' });
|
|
285
|
+
return key.id;
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
test('usage groups, log pages and filters, request detail, CSV export, audit filters', async () => {
|
|
289
|
+
const keyId = seed();
|
|
290
|
+
const usage = await runJson('usage', '--group-by', 'model', '--key', keyId);
|
|
291
|
+
assert.equal(usage.totals.requests, 4);
|
|
292
|
+
assert.equal(usage.totals.failedRequests, 1);
|
|
293
|
+
assert.deepEqual(usage.groups.map((group) => [group.group, group.requests]).sort(), [['open-model-a', 3], ['open-model-b', 1]]);
|
|
294
|
+
await assert.rejects(run('usage', '--group-by', 'colour'), /groupBy must be one of/);
|
|
295
|
+
const page = await runJson('logs', '--limit', '2');
|
|
296
|
+
assert.deepEqual(page.requests.map((row) => row.tag), ['gw_test_3', 'gw_test_2']);
|
|
297
|
+
const next = await runJson('logs', '--limit', '2', '--before', page.nextBefore);
|
|
298
|
+
assert.deepEqual(next.requests.map((row) => row.tag), ['gw_test_1', 'gw_test_0']);
|
|
299
|
+
const failed = await runJson('logs', 'list', '--status', 'error');
|
|
300
|
+
assert.deepEqual(failed.requests.map((row) => row.tag), ['gw_test_1']);
|
|
301
|
+
assert.match(await run('logs', '--search', 'seller_failed'), /gw_test_1/);
|
|
302
|
+
const detail = await runJson('logs', 'show', 'gw_test_0');
|
|
303
|
+
assert.equal(detail.requestBody, '{"q":1}');
|
|
304
|
+
await assert.rejects(run('logs', 'show', 'gw_missing'), /Request not found/);
|
|
305
|
+
const output = join(dataDir, 'usage.csv');
|
|
306
|
+
await run('export', '--csv', '--model', 'open-model-a', '--output', output);
|
|
307
|
+
const lines = readFileSync(output, 'utf8').trim().split('\r\n');
|
|
308
|
+
assert.equal(lines.length, 4);
|
|
309
|
+
assert.match(lines[0], /^tag,startedAt,finishedAt,keyId/);
|
|
310
|
+
await assert.rejects(run('export', '--csv', '--output', join(dataDir, 'missing', 'usage.csv')), /ENOENT/);
|
|
311
|
+
await run('routing', 'set', '--min-trust', '5');
|
|
312
|
+
const audit = await runJson('audit', '--action', 'routing');
|
|
313
|
+
assert.deepEqual(audit.entries.map((entry) => [entry.action, entry.actor.kind]), [['routing.default.update', 'cli']]);
|
|
314
|
+
await assert.rejects(run('audit', '--limit', '1000'), /limit must be between/);
|
|
315
|
+
});
|
|
316
|
+
test('following the log prints finished requests once, oldest first', async () => {
|
|
317
|
+
const keyId = seed();
|
|
318
|
+
const store = new GatewayStore(dataDir);
|
|
319
|
+
try {
|
|
320
|
+
const seen = [];
|
|
321
|
+
const controller = new AbortController();
|
|
322
|
+
const since = Date.now() - 60_000;
|
|
323
|
+
const following = followRequests(store, { keyIds: null }, { intervalMs: 10, signal: controller.signal, since, onEntry: (entry) => seen.push(entry.tag) });
|
|
324
|
+
await new Promise((resolve) => setTimeout(resolve, 40));
|
|
325
|
+
store.startRequest({ tag: 'gw_live', keyId, buyerIdentity: 'default', method: 'POST', path: '/v1/x', model: 'm', startedAt: Date.now(), endUser: null });
|
|
326
|
+
await new Promise((resolve) => setTimeout(resolve, 40));
|
|
327
|
+
assert.ok(!seen.includes('gw_live'), 'in-flight requests wait until they finish');
|
|
328
|
+
store.finishRequest('gw_live', { status: 200, buyerRequestId: null });
|
|
329
|
+
await new Promise((resolve) => setTimeout(resolve, 40));
|
|
330
|
+
controller.abort();
|
|
331
|
+
await following;
|
|
332
|
+
assert.deepEqual(seen, ['gw_test_0', 'gw_test_1', 'gw_test_2', 'gw_test_3', 'gw_live']);
|
|
333
|
+
}
|
|
334
|
+
finally {
|
|
335
|
+
store.close();
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
describe('gateway settings and peers', () => {
|
|
340
|
+
test('show, set-observability and set-buyer (restarting the buyer)', async () => {
|
|
341
|
+
const shown = await runJson('settings', 'show');
|
|
342
|
+
assert.equal(shown.buyer.proxyPort, buyer.port);
|
|
343
|
+
assert.equal(shown.observability.otlpEndpoint, null);
|
|
344
|
+
await run('settings', 'set-observability', '--otlp-endpoint', 'https://otel.example.test/v1/traces', '--otlp-header', 'authorization=Bearer abc', '--retention-days', '14');
|
|
345
|
+
const masked = await runJson('settings', 'show');
|
|
346
|
+
assert.deepEqual(masked.observability.otlpHeaders, { authorization: '••••' });
|
|
347
|
+
assert.equal(masked.observability.retentionDays, 14);
|
|
348
|
+
const revealed = await runJson('settings', 'show', '--reveal');
|
|
349
|
+
assert.deepEqual(revealed.observability.otlpHeaders, { authorization: 'Bearer abc' });
|
|
350
|
+
// Saved header values never follow the export to another origin.
|
|
351
|
+
await assert.rejects(run('settings', 'set-observability', '--otlp-endpoint', 'https://elsewhere.example.test/v1/traces'), /give its headers again/);
|
|
352
|
+
await run('settings', 'set-observability', '--log-content', 'on');
|
|
353
|
+
assert.deepEqual(auditActions('settings.observability'), ['settings.observability.update', 'settings.observability.update']);
|
|
354
|
+
const before = restarts;
|
|
355
|
+
const result = await runJson('settings', 'set-buyer', '--max-input-price', '3', '--min-reputation', '25');
|
|
356
|
+
assert.equal(result.restartRequired, false);
|
|
357
|
+
assert.equal(result.buyer.minPeerReputation, 25);
|
|
358
|
+
assert.equal(result.buyer.maxPricing.inputUsdPerMillion, 3);
|
|
359
|
+
assert.equal(restarts, before + 1);
|
|
360
|
+
const config = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
361
|
+
assert.equal(config.buyer['proxyPort'], buyer.port);
|
|
362
|
+
await assert.rejects(run('settings', 'set-buyer', '--min-reputation', '150'), /--min-reputation/);
|
|
363
|
+
});
|
|
364
|
+
test('peers lists the buyer\'s sellers, filtered by model', async () => {
|
|
365
|
+
const peers = await runJson('peers');
|
|
366
|
+
assert.deepEqual(peers.map((peer) => peer.peerId), [PEER_A, PEER_B]);
|
|
367
|
+
const filtered = await runJson('peers', '--model', 'open-model-b');
|
|
368
|
+
assert.deepEqual(filtered.map((peer) => peer.peerId), [PEER_B]);
|
|
369
|
+
assert.match(await run('peers'), /Seller A/);
|
|
370
|
+
await assert.rejects(run('peers', '--buyer-port', '1'), /buyer is not reachable/);
|
|
371
|
+
});
|
|
372
|
+
});
|
|
373
|
+
//# sourceMappingURL=gateway-console-commands.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-console-commands.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/gateway/gateway-console-commands.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
|
+
import { type GatewayRuntime } from '../../../gateway/runtime.js';
|
|
3
|
+
/**
|
|
4
|
+
* Console URL; shared by `gateway start` and `tunnel start`. The owner setup
|
|
5
|
+
* link is never printed here, since service output ends up in the journal
|
|
6
|
+
* where anyone with log access could claim the console with it; only
|
|
7
|
+
* `antseed gateway console-link` prints one, on demand.
|
|
8
|
+
*/
|
|
9
|
+
export declare function printConsoleInfo(runtime: GatewayRuntime, consoleUrl: string, log?: (line: string) => void): void;
|
|
2
10
|
export declare function registerGatewayCommands(program: Command): void;
|
|
3
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAkBtF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkB,GAAG,IAAI,CAM7H;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6F9D"}
|
|
@@ -1,43 +1,122 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
+
import { loadConfig } from '../../../config/loader.js';
|
|
3
|
+
import { gatewayConsole, normalizePublicUrl } from '../../../gateway/console.js';
|
|
4
|
+
import { detectExposure, detectHostFacts, unencryptedWalletWarning } from '../../../gateway/exposure.js';
|
|
2
5
|
import { startGatewayRuntime } from '../../../gateway/runtime.js';
|
|
3
6
|
import { setupShutdownHandler } from '../../shutdown.js';
|
|
7
|
+
import { walletPassphraseForStart } from '../../wallet-passphrase.js';
|
|
4
8
|
import { getGlobalOptions } from '../types.js';
|
|
5
9
|
import { parsePositiveInteger } from '../parse-positive-integer.js';
|
|
10
|
+
import { registerGatewayActivityCommands } from './activity.js';
|
|
11
|
+
import { registerGatewayAdminTokenCommands } from './admin-token.js';
|
|
12
|
+
import { registerGatewayConsoleLinkCommand } from './console-link.js';
|
|
6
13
|
import { registerGatewayKeyCommands } from './key.js';
|
|
7
|
-
import {
|
|
14
|
+
import { registerGatewayMemberCommands } from './member.js';
|
|
15
|
+
import { registerGatewayMigrateCommands } from './migrate.js';
|
|
16
|
+
import { registerGatewayPeerListCommands } from './peer-list.js';
|
|
17
|
+
import { registerGatewayPresetCommands } from './preset.js';
|
|
18
|
+
import { registerGatewayRoutingCommands } from './routing.js';
|
|
19
|
+
import { registerGatewayPeersCommand, registerGatewaySettingsCommands } from './settings.js';
|
|
20
|
+
import { DEFAULT_GATEWAY_PORT, startGatewayBuyer, topupConfig } from './shared.js';
|
|
21
|
+
import { registerGatewayWorkspaceCommands } from './workspace.js';
|
|
22
|
+
/**
|
|
23
|
+
* Console URL; shared by `gateway start` and `tunnel start`. The owner setup
|
|
24
|
+
* link is never printed here, since service output ends up in the journal
|
|
25
|
+
* where anyone with log access could claim the console with it; only
|
|
26
|
+
* `antseed gateway console-link` prints one, on demand.
|
|
27
|
+
*/
|
|
28
|
+
export function printConsoleInfo(runtime, consoleUrl, log = console.log) {
|
|
29
|
+
if (!runtime.console)
|
|
30
|
+
return;
|
|
31
|
+
log(`${chalk.bold('Console:')} ${consoleUrl}`);
|
|
32
|
+
if (!runtime.store.isSetupComplete()) {
|
|
33
|
+
log(chalk.dim('The console has no owner yet. Get a one-time setup link with `antseed gateway console-link`.'));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
8
36
|
export function registerGatewayCommands(program) {
|
|
9
37
|
const gateway = program
|
|
10
38
|
.command('gateway')
|
|
11
|
-
.description('Serve the buyer API to multiple users with per-key spend limits and usage');
|
|
39
|
+
.description('Serve the buyer API to multiple users with per-key spend limits and usage, and a management console');
|
|
12
40
|
gateway.command('start')
|
|
13
|
-
.description('Run the API-key gateway locally (use `antseed tunnel start` to publish it)')
|
|
41
|
+
.description('Run the API-key gateway and its console locally (use `antseed tunnel start` to publish it)')
|
|
14
42
|
.option('--port <number>', 'gateway listen port', parsePositiveInteger, DEFAULT_GATEWAY_PORT)
|
|
15
43
|
.option('--host <host>', 'listen address; use 0.0.0.0 to serve your LAN', '127.0.0.1')
|
|
16
|
-
.option('--buyer-port <number>', 'port of the
|
|
44
|
+
.option('--buyer-port <number>', 'port of the buyer (default: buyer.proxyPort from config)', parsePositiveInteger)
|
|
45
|
+
.option('--no-buyer', 'do not start a buyer; use one you run yourself on the buyer port')
|
|
46
|
+
.option('--public-url <url>', 'origin the console is reached at, e.g. https://llm.example.com (env: ANTSEED_GATEWAY_PUBLIC_URL); needed for passkeys and single sign-on off this machine')
|
|
47
|
+
.option('--no-console', 'serve only the API, without the /console management console')
|
|
17
48
|
.option('--x402-facilitator <url>', 'accept x402 top-ups of key wallets, settled by this facilitator: a URL, "cdp" or "payai" (env: ANTSEED_X402_FACILITATOR_URL)')
|
|
18
49
|
.option('--topup-min-usd <usd>', 'smallest top-up accepted (default: 2)')
|
|
19
50
|
.option('--topup-max-usd <usd>', 'largest top-up accepted (default: 500)')
|
|
20
51
|
.action(async (options) => {
|
|
21
52
|
const topup = topupConfig(options);
|
|
22
53
|
const globalOptions = getGlobalOptions(gateway);
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
54
|
+
const publicUrl = normalizePublicUrl(options.publicUrl ?? process.env['ANTSEED_GATEWAY_PUBLIC_URL']);
|
|
55
|
+
const log = (message) => { process.stderr.write(`[gateway] ${message}\n`); };
|
|
56
|
+
// Read (or asked on the terminal for encrypted keys) up front, so an unreadable
|
|
57
|
+
// ANTSEED_PASSPHRASE_FILE stops the start before anything runs; the buyer it starts inherits it.
|
|
58
|
+
const passphraseSet = await walletPassphraseForStart(globalOptions.dataDir) !== null;
|
|
59
|
+
const buyerPort = options.buyerPort ?? (await loadConfig(globalOptions.config)).buyer.proxyPort;
|
|
60
|
+
const buyer = options.buyer ? await startGatewayBuyer(buyerPort, globalOptions, log) : null;
|
|
61
|
+
let runtime;
|
|
62
|
+
try {
|
|
63
|
+
runtime = await startGatewayRuntime({
|
|
64
|
+
dataDir: globalOptions.dataDir,
|
|
65
|
+
configPath: globalOptions.config,
|
|
66
|
+
listenPort: options.port,
|
|
67
|
+
listenHost: options.host,
|
|
68
|
+
buyerPort,
|
|
69
|
+
...(topup ? { topup } : {}),
|
|
70
|
+
...(options.console
|
|
71
|
+
? {
|
|
72
|
+
createConsole: gatewayConsole({
|
|
73
|
+
dataDir: globalOptions.dataDir,
|
|
74
|
+
configPath: globalOptions.config,
|
|
75
|
+
publicUrl,
|
|
76
|
+
log,
|
|
77
|
+
// Only when every request reaches the gateway through Cloudflare, which sets CF-Connecting-IP.
|
|
78
|
+
trustCloudflareHeaders: process.env['ANTSEED_TRUST_CLOUDFLARE_HEADERS'] === '1',
|
|
79
|
+
}),
|
|
80
|
+
}
|
|
81
|
+
: {}),
|
|
82
|
+
onLog: log,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
await buyer?.stop();
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
32
89
|
console.log(chalk.green(`API-key gateway listening on http://${options.host}:${runtime.port}/v1`));
|
|
33
|
-
console.log(chalk.dim(`${runtime.store.countActiveKeys()} active key(s). Manage them with \`antseed gateway key …\`.`));
|
|
90
|
+
console.log(chalk.dim(`${runtime.store.countActiveKeys()} active key(s). Manage them in the console or with \`antseed gateway key …\`.`));
|
|
91
|
+
printConsoleInfo(runtime, `${publicUrl ?? `http://localhost:${runtime.port}`}/console`);
|
|
34
92
|
if (topup)
|
|
35
93
|
console.log(chalk.dim(`x402 top-ups: POST /v1/key/topup, settled by ${topup.facilitatorUrl}`));
|
|
94
|
+
const exposure = detectExposure({ publicUrl, listenHost: options.host, host: detectHostFacts() });
|
|
95
|
+
if (exposure.mode === 'local') {
|
|
96
|
+
console.log(chalk.dim('Only this computer can reach this gateway. To serve a team, move it to a server: antseed gateway export --out antseed-gateway.bundle'));
|
|
97
|
+
}
|
|
98
|
+
else if (exposure.mode === 'lan') {
|
|
99
|
+
console.log(chalk.dim('No public URL: only your network can reach this gateway, over plain HTTP. To serve a team, move it to a server: antseed gateway export --out antseed-gateway.bundle'));
|
|
100
|
+
}
|
|
101
|
+
const walletWarning = await unencryptedWalletWarning(globalOptions.dataDir, passphraseSet);
|
|
102
|
+
if (walletWarning)
|
|
103
|
+
console.log(chalk.yellow(walletWarning));
|
|
36
104
|
setupShutdownHandler(async () => {
|
|
37
105
|
await runtime.stop();
|
|
38
106
|
console.log(chalk.dim('API-key gateway stopped.'));
|
|
39
107
|
});
|
|
40
108
|
});
|
|
41
109
|
registerGatewayKeyCommands(gateway);
|
|
110
|
+
registerGatewayConsoleLinkCommand(gateway);
|
|
111
|
+
registerGatewayMemberCommands(gateway);
|
|
112
|
+
registerGatewayWorkspaceCommands(gateway);
|
|
113
|
+
registerGatewayAdminTokenCommands(gateway);
|
|
114
|
+
registerGatewayRoutingCommands(gateway);
|
|
115
|
+
registerGatewayPeerListCommands(gateway);
|
|
116
|
+
registerGatewayPresetCommands(gateway);
|
|
117
|
+
registerGatewayActivityCommands(gateway);
|
|
118
|
+
registerGatewaySettingsCommands(gateway);
|
|
119
|
+
registerGatewayPeersCommand(gateway);
|
|
120
|
+
registerGatewayMigrateCommands(gateway);
|
|
42
121
|
}
|
|
43
122
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/gateway/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/gateway/index.ts"],"names":[],"mappings":"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"}
|