@elizaos/plugin-elizacloud 2.0.0-alpha.8 → 2.0.11-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +196 -0
- package/auto-enable.ts +22 -0
- package/dist/browser/index.browser.js +2 -21
- package/dist/browser/index.browser.js.map +5 -38
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.node.cjs +9112 -2265
- package/dist/cjs/index.node.js.map +68 -30
- package/dist/cloud/auth-service-types.d.ts +8 -0
- package/dist/cloud/auth-service-types.d.ts.map +1 -0
- package/dist/cloud/auth-service-types.js +36 -0
- package/dist/cloud/auth-service-types.js.map +10 -0
- package/dist/cloud/auth.d.ts +19 -0
- package/dist/cloud/auth.d.ts.map +1 -0
- package/dist/cloud/auth.js +283 -0
- package/dist/cloud/auth.js.map +12 -0
- package/dist/cloud/backup.d.ts +18 -0
- package/dist/cloud/backup.d.ts.map +1 -0
- package/dist/cloud/backup.js +63 -0
- package/dist/cloud/backup.js.map +10 -0
- package/dist/cloud/base-url.d.ts +7 -0
- package/dist/cloud/base-url.d.ts.map +1 -0
- package/dist/cloud/base-url.js +29 -0
- package/dist/cloud/base-url.js.map +10 -0
- package/dist/cloud/bridge-client.d.ts +126 -0
- package/dist/cloud/bridge-client.d.ts.map +1 -0
- package/dist/cloud/bridge-client.js +384 -0
- package/dist/cloud/bridge-client.js.map +11 -0
- package/dist/cloud/clack-observer.d.ts +35 -0
- package/dist/cloud/clack-observer.d.ts.map +1 -0
- package/dist/cloud/clack-observer.js +143 -0
- package/dist/cloud/clack-observer.js.map +10 -0
- package/dist/cloud/cloud-api-key.d.ts +26 -0
- package/dist/cloud/cloud-api-key.d.ts.map +1 -0
- package/dist/cloud/cloud-api-key.js +60 -0
- package/dist/cloud/cloud-api-key.js.map +10 -0
- package/dist/cloud/cloud-manager.d.ts +33 -0
- package/dist/cloud/cloud-manager.d.ts.map +1 -0
- package/dist/cloud/cloud-manager.js +806 -0
- package/dist/cloud/cloud-manager.js.map +16 -0
- package/dist/cloud/cloud-proxy.d.ts +20 -0
- package/dist/cloud/cloud-proxy.d.ts.map +1 -0
- package/dist/cloud/cloud-proxy.js +54 -0
- package/dist/cloud/cloud-proxy.js.map +10 -0
- package/dist/cloud/cloud-wallet.d.ts +94 -0
- package/dist/cloud/cloud-wallet.d.ts.map +1 -0
- package/dist/cloud/cloud-wallet.js +362 -0
- package/dist/cloud/cloud-wallet.js.map +13 -0
- package/dist/cloud/duffel-client.d.ts +181 -0
- package/dist/cloud/duffel-client.d.ts.map +1 -0
- package/dist/cloud/duffel-client.js +506 -0
- package/dist/cloud/duffel-client.js.map +11 -0
- package/dist/cloud/index.d.ts +15 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +1811 -0
- package/dist/cloud/index.js.map +24 -0
- package/dist/cloud/lifeops-schedule-sync-client.d.ts +43 -0
- package/dist/cloud/lifeops-schedule-sync-client.d.ts.map +1 -0
- package/dist/cloud/lifeops-schedule-sync-client.js +180 -0
- package/dist/cloud/lifeops-schedule-sync-client.js.map +11 -0
- package/dist/cloud/lifeops-schedule-sync-contracts.d.ts +89 -0
- package/dist/cloud/lifeops-schedule-sync-contracts.d.ts.map +1 -0
- package/dist/cloud/lifeops-schedule-sync-contracts.js +39 -0
- package/dist/cloud/lifeops-schedule-sync-contracts.js.map +10 -0
- package/dist/cloud/managed-payment-clients.d.ts +166 -0
- package/dist/cloud/managed-payment-clients.d.ts.map +1 -0
- package/dist/cloud/managed-payment-clients.js +238 -0
- package/dist/cloud/managed-payment-clients.js.map +11 -0
- package/dist/cloud/null-observer.d.ts +35 -0
- package/dist/cloud/null-observer.d.ts.map +1 -0
- package/dist/cloud/null-observer.js +45 -0
- package/dist/cloud/null-observer.js.map +10 -0
- package/dist/cloud/reconnect.d.ts +26 -0
- package/dist/cloud/reconnect.d.ts.map +1 -0
- package/dist/cloud/reconnect.js +104 -0
- package/dist/cloud/reconnect.js.map +10 -0
- package/dist/cloud/setup-observer.d.ts +98 -0
- package/dist/cloud/setup-observer.d.ts.map +1 -0
- package/dist/cloud/setup-observer.js +2 -0
- package/dist/cloud/setup-observer.js.map +9 -0
- package/dist/cloud/validate-url.d.ts +2 -0
- package/dist/cloud/validate-url.d.ts.map +1 -0
- package/dist/cloud/validate-url.js +175 -0
- package/dist/cloud/validate-url.js.map +10 -0
- package/dist/cloud/x402-payment-handler.d.ts +85 -0
- package/dist/cloud/x402-payment-handler.d.ts.map +1 -0
- package/dist/cloud/x402-payment-handler.js +119 -0
- package/dist/cloud/x402-payment-handler.js.map +10 -0
- package/dist/cloud-providers/cloud-status.d.ts.map +1 -1
- package/dist/cloud-providers/cloud-status.js +78 -0
- package/dist/cloud-providers/cloud-status.js.map +10 -0
- package/dist/cloud-providers/container-health.d.ts.map +1 -1
- package/dist/cloud-providers/container-health.js +74 -0
- package/dist/cloud-providers/container-health.js.map +10 -0
- package/dist/cloud-providers/credit-balance.d.ts.map +1 -1
- package/dist/cloud-providers/credit-balance.js +85 -0
- package/dist/cloud-providers/credit-balance.js.map +10 -0
- package/dist/cloud-providers/index.d.ts.map +1 -1
- package/dist/cloud-providers/index.js +24 -0
- package/dist/cloud-providers/index.js.map +9 -0
- package/dist/cloud-providers/model-registry.d.ts.map +1 -1
- package/dist/cloud-providers/model-registry.js +71 -0
- package/dist/cloud-providers/model-registry.js.map +10 -0
- package/dist/cloud-setup.d.ts +36 -0
- package/dist/cloud-setup.d.ts.map +1 -0
- package/dist/cloud-setup.js +883 -0
- package/dist/cloud-setup.js.map +14 -0
- package/dist/cloud-voice-catalog.d.ts +65 -0
- package/dist/cloud-voice-catalog.d.ts.map +1 -0
- package/dist/cloud-voice-catalog.js +278 -0
- package/dist/cloud-voice-catalog.js.map +12 -0
- package/dist/index.browser.d.ts +15 -3
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9862 -0
- package/dist/index.js.map +77 -0
- package/dist/index.node.d.ts +21 -2
- package/dist/index.node.d.ts.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +182 -0
- package/dist/init.js.map +12 -0
- package/dist/lib/cloud-connection.d.ts +77 -0
- package/dist/lib/cloud-connection.d.ts.map +1 -0
- package/dist/lib/cloud-connection.js +654 -0
- package/dist/lib/cloud-connection.js.map +14 -0
- package/dist/lib/cloud-secrets.d.ts +10 -0
- package/dist/lib/cloud-secrets.d.ts.map +1 -0
- package/dist/lib/cloud-secrets.js +36 -0
- package/dist/lib/cloud-secrets.js.map +10 -0
- package/dist/lib/config-env.d.ts +5 -0
- package/dist/lib/config-env.d.ts.map +1 -0
- package/dist/lib/config-env.js +191 -0
- package/dist/lib/config-env.js.map +11 -0
- package/dist/lib/config-like.d.ts +40 -0
- package/dist/lib/config-like.d.ts.map +1 -0
- package/dist/lib/config-like.js +103 -0
- package/dist/lib/config-like.js.map +10 -0
- package/dist/lib/credential-type-map.d.ts +53 -0
- package/dist/lib/credential-type-map.d.ts.map +1 -0
- package/dist/lib/credential-type-map.js +88 -0
- package/dist/lib/credential-type-map.js.map +10 -0
- package/dist/lib/feature-flags.d.ts +2 -0
- package/dist/lib/feature-flags.d.ts.map +1 -0
- package/dist/lib/feature-flags.js +40 -0
- package/dist/lib/feature-flags.js.map +10 -0
- package/dist/lib/http.d.ts +11 -0
- package/dist/lib/http.d.ts.map +1 -0
- package/dist/lib/http.js +107 -0
- package/dist/lib/http.js.map +10 -0
- package/dist/lib/server-cloud-tts.d.ts +21 -0
- package/dist/lib/server-cloud-tts.d.ts.map +1 -0
- package/dist/lib/server-cloud-tts.js +251 -0
- package/dist/lib/server-cloud-tts.js.map +10 -0
- package/dist/lib/state-paths.d.ts +4 -0
- package/dist/lib/state-paths.d.ts.map +1 -0
- package/dist/lib/state-paths.js +52 -0
- package/dist/lib/state-paths.js.map +10 -0
- package/dist/lib/tts-debug.d.ts +6 -0
- package/dist/lib/tts-debug.d.ts.map +1 -0
- package/dist/lib/tts-debug.js +24 -0
- package/dist/lib/tts-debug.js.map +9 -0
- package/dist/models/embeddings.d.ts.map +1 -1
- package/dist/models/embeddings.js +329 -0
- package/dist/models/embeddings.js.map +13 -0
- package/dist/models/image.d.ts.map +1 -1
- package/dist/models/image.js +401 -0
- package/dist/models/image.js.map +14 -0
- package/dist/models/index.d.ts +1 -2
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +1896 -0
- package/dist/models/index.js.map +19 -0
- package/dist/models/research.d.ts.map +1 -1
- package/dist/models/research.js +341 -0
- package/dist/models/research.js.map +13 -0
- package/dist/models/speech.d.ts +61 -3
- package/dist/models/speech.d.ts.map +1 -1
- package/dist/models/speech.js +429 -0
- package/dist/models/speech.js.map +13 -0
- package/dist/models/text.d.ts +111 -3
- package/dist/models/text.d.ts.map +1 -1
- package/dist/models/text.js +1173 -0
- package/dist/models/text.js.map +14 -0
- package/dist/models/tokenization.d.ts.map +1 -1
- package/dist/models/tokenization.js +65 -0
- package/dist/models/tokenization.js.map +10 -0
- package/dist/models/transcription.d.ts.map +1 -1
- package/dist/models/transcription.js +297 -0
- package/dist/models/transcription.js.map +13 -0
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.node.js +9189 -2295
- package/dist/node/index.node.js.map +68 -30
- package/dist/plugin.d.ts +20 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +2937 -0
- package/dist/plugin.js.map +28 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +136 -0
- package/dist/providers/openai.js.map +11 -0
- package/dist/register-routes.d.ts +2 -0
- package/dist/register-routes.d.ts.map +1 -0
- package/dist/register-routes.js +2938 -0
- package/dist/register-routes.js.map +29 -0
- package/dist/routes/cloud-billing-routes.d.ts +9 -0
- package/dist/routes/cloud-billing-routes.d.ts.map +1 -0
- package/dist/routes/cloud-billing-routes.js +764 -0
- package/dist/routes/cloud-billing-routes.js.map +15 -0
- package/dist/routes/cloud-coding-container-routes.d.ts +8 -0
- package/dist/routes/cloud-coding-container-routes.d.ts.map +1 -0
- package/dist/routes/cloud-coding-container-routes.js +214 -0
- package/dist/routes/cloud-coding-container-routes.js.map +11 -0
- package/dist/routes/cloud-compat-routes.d.ts +10 -0
- package/dist/routes/cloud-compat-routes.d.ts.map +1 -0
- package/dist/routes/cloud-compat-routes.js +495 -0
- package/dist/routes/cloud-compat-routes.js.map +15 -0
- package/dist/routes/cloud-features-routes.d.ts +9 -0
- package/dist/routes/cloud-features-routes.d.ts.map +1 -0
- package/dist/routes/cloud-features-routes.js +124 -0
- package/dist/routes/cloud-features-routes.js.map +11 -0
- package/dist/routes/cloud-provisioning.d.ts +14 -0
- package/dist/routes/cloud-provisioning.d.ts.map +1 -0
- package/dist/routes/cloud-provisioning.js +37 -0
- package/dist/routes/cloud-provisioning.js.map +10 -0
- package/dist/routes/cloud-relay-routes.d.ts +23 -0
- package/dist/routes/cloud-relay-routes.d.ts.map +1 -0
- package/dist/routes/cloud-relay-routes.js +142 -0
- package/dist/routes/cloud-relay-routes.js.map +11 -0
- package/dist/routes/cloud-routes-autonomous.d.ts +82 -0
- package/dist/routes/cloud-routes-autonomous.d.ts.map +1 -0
- package/dist/routes/cloud-routes-autonomous.js +1252 -0
- package/dist/routes/cloud-routes-autonomous.js.map +18 -0
- package/dist/routes/cloud-routes.d.ts +35 -0
- package/dist/routes/cloud-routes.d.ts.map +1 -0
- package/dist/routes/cloud-routes.js +2173 -0
- package/dist/routes/cloud-routes.js.map +23 -0
- package/dist/routes/cloud-status-routes-autonomous.d.ts +14 -0
- package/dist/routes/cloud-status-routes-autonomous.d.ts.map +1 -0
- package/dist/routes/cloud-status-routes-autonomous.js +349 -0
- package/dist/routes/cloud-status-routes-autonomous.js.map +13 -0
- package/dist/routes/cloud-status-routes.d.ts +4 -0
- package/dist/routes/cloud-status-routes.d.ts.map +1 -0
- package/dist/routes/cloud-status-routes.js +695 -0
- package/dist/routes/cloud-status-routes.js.map +15 -0
- package/dist/routes/home-remote-runner-access-url.d.ts +16 -0
- package/dist/routes/home-remote-runner-access-url.d.ts.map +1 -0
- package/dist/routes/home-remote-runner-access-url.js +91 -0
- package/dist/routes/home-remote-runner-access-url.js.map +10 -0
- package/dist/routes/travel-provider-relay-routes.d.ts +9 -0
- package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
- package/dist/routes/travel-provider-relay-routes.js +358 -0
- package/dist/routes/travel-provider-relay-routes.js.map +14 -0
- package/dist/services/cloud-auth.d.ts +140 -5
- package/dist/services/cloud-auth.d.ts.map +1 -1
- package/dist/services/cloud-auth.js +368 -0
- package/dist/services/cloud-auth.js.map +12 -0
- package/dist/services/cloud-backup.d.ts.map +1 -1
- package/dist/services/cloud-backup.js +176 -0
- package/dist/services/cloud-backup.js.map +11 -0
- package/dist/services/cloud-bootstrap.d.ts +38 -0
- package/dist/services/cloud-bootstrap.d.ts.map +1 -0
- package/dist/services/cloud-bootstrap.js +84 -0
- package/dist/services/cloud-bootstrap.js.map +10 -0
- package/dist/services/cloud-bridge.d.ts +1 -1
- package/dist/services/cloud-bridge.d.ts.map +1 -1
- package/dist/services/cloud-bridge.js +308 -0
- package/dist/services/cloud-bridge.js.map +11 -0
- package/dist/services/cloud-container.d.ts +5 -1
- package/dist/services/cloud-container.d.ts.map +1 -1
- package/dist/services/cloud-container.js +292 -0
- package/dist/services/cloud-container.js.map +11 -0
- package/dist/services/cloud-credential-provider.d.ts +55 -0
- package/dist/services/cloud-credential-provider.d.ts.map +1 -0
- package/dist/services/cloud-credential-provider.js +190 -0
- package/dist/services/cloud-credential-provider.js.map +11 -0
- package/dist/services/cloud-managed-gateway-relay.d.ts +38 -0
- package/dist/services/cloud-managed-gateway-relay.d.ts.map +1 -0
- package/dist/services/cloud-managed-gateway-relay.js +479 -0
- package/dist/services/cloud-managed-gateway-relay.js.map +10 -0
- package/dist/services/cloud-model-registry.d.ts.map +1 -1
- package/dist/services/cloud-model-registry.js +175 -0
- package/dist/services/cloud-model-registry.js.map +10 -0
- package/dist/services/index.d.ts +3 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +29 -0
- package/dist/services/index.js.map +9 -0
- package/dist/types/cloud.d.ts +42 -19
- package/dist/types/cloud.d.ts.map +1 -1
- package/dist/types/cloud.js +52 -0
- package/dist/types/cloud.js.map +10 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +9 -0
- package/dist/utils/cloud-api.d.ts +2 -27
- package/dist/utils/cloud-api.d.ts.map +1 -1
- package/dist/utils/cloud-api.js +33 -0
- package/dist/utils/cloud-api.js.map +10 -0
- package/dist/utils/cloud-sdk/client.d.ts +133 -0
- package/dist/utils/cloud-sdk/client.d.ts.map +1 -0
- package/dist/utils/cloud-sdk/client.js +3693 -0
- package/dist/utils/cloud-sdk/client.js.map +13 -0
- package/dist/utils/cloud-sdk/http.d.ts +37 -0
- package/dist/utils/cloud-sdk/http.d.ts.map +1 -0
- package/dist/utils/cloud-sdk/http.js +237 -0
- package/dist/utils/cloud-sdk/http.js.map +11 -0
- package/dist/utils/cloud-sdk/index.d.ts +6 -0
- package/dist/utils/cloud-sdk/index.d.ts.map +1 -0
- package/dist/utils/cloud-sdk/index.js +29 -0
- package/dist/utils/cloud-sdk/index.js.map +9 -0
- package/dist/utils/cloud-sdk/public-routes.d.ts +5563 -0
- package/dist/utils/cloud-sdk/public-routes.d.ts.map +1 -0
- package/dist/utils/cloud-sdk/public-routes.js +3048 -0
- package/dist/utils/cloud-sdk/public-routes.js.map +10 -0
- package/dist/utils/cloud-sdk/types.cloud-api.d.ts +101 -0
- package/dist/utils/cloud-sdk/types.cloud-api.d.ts.map +1 -0
- package/dist/utils/cloud-sdk/types.cloud-api.js +2 -0
- package/dist/utils/cloud-sdk/types.cloud-api.js.map +9 -0
- package/dist/utils/cloud-sdk/types.d.ts +653 -0
- package/dist/utils/cloud-sdk/types.d.ts.map +1 -0
- package/dist/utils/cloud-sdk/types.js +29 -0
- package/dist/utils/cloud-sdk/types.js.map +10 -0
- package/dist/utils/config.d.ts +16 -3
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +147 -0
- package/dist/utils/config.js.map +10 -0
- package/dist/utils/events.d.ts +23 -2
- package/dist/utils/events.d.ts.map +1 -1
- package/dist/utils/events.js +45 -0
- package/dist/utils/events.js.map +10 -0
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +103 -0
- package/dist/utils/helpers.js.map +10 -0
- package/dist/utils/responses-output.d.ts +13 -0
- package/dist/utils/responses-output.d.ts.map +1 -0
- package/dist/utils/responses-output.js +102 -0
- package/dist/utils/responses-output.js.map +10 -0
- package/dist/utils/sdk-client.d.ts +5 -0
- package/dist/utils/sdk-client.d.ts.map +1 -0
- package/dist/utils/sdk-client.js +157 -0
- package/dist/utils/sdk-client.js.map +11 -0
- package/dist/utils/waifu-metering.d.ts +108 -0
- package/dist/utils/waifu-metering.d.ts.map +1 -0
- package/dist/utils/waifu-metering.js +166 -0
- package/dist/utils/waifu-metering.js.map +10 -0
- package/package.json +139 -21
- package/src/cloud/auth-service-types.ts +24 -0
- package/src/cloud/auth.ts +175 -0
- package/src/cloud/backup.ts +46 -0
- package/src/cloud/base-url.ts +6 -0
- package/src/cloud/bridge-client.ts +602 -0
- package/src/cloud/clack-observer.ts +189 -0
- package/src/cloud/cloud-api-key.ts +80 -0
- package/src/cloud/cloud-manager.ts +163 -0
- package/src/cloud/cloud-proxy.ts +52 -0
- package/src/cloud/cloud-wallet.ts +341 -0
- package/src/cloud/duffel-client.ts +847 -0
- package/src/cloud/index.ts +38 -0
- package/src/cloud/lifeops-schedule-sync-client.ts +245 -0
- package/src/cloud/lifeops-schedule-sync-contracts.ts +124 -0
- package/src/cloud/managed-payment-clients.ts +374 -0
- package/src/cloud/null-observer.ts +45 -0
- package/src/cloud/reconnect.ts +111 -0
- package/src/cloud/setup-observer.ts +125 -0
- package/src/cloud/validate-url.ts +187 -0
- package/src/cloud/x402-payment-handler.ts +215 -0
- package/src/cloud-providers/cloud-status.ts +75 -0
- package/src/cloud-providers/container-health.ts +68 -0
- package/src/cloud-providers/credit-balance.ts +70 -0
- package/src/cloud-providers/index.ts +3 -0
- package/src/cloud-providers/model-registry.ts +74 -0
- package/src/cloud-setup.ts +531 -0
- package/src/cloud-voice-catalog.test.ts +254 -0
- package/src/cloud-voice-catalog.ts +246 -0
- package/src/index.browser.ts +39 -0
- package/src/index.node.ts +69 -0
- package/src/index.ts +419 -0
- package/src/init.ts +39 -0
- package/src/lib/cloud-connection.ts +661 -0
- package/src/lib/cloud-secrets.ts +14 -0
- package/src/lib/config-env.ts +168 -0
- package/src/lib/config-like.ts +149 -0
- package/src/lib/credential-type-map.ts +130 -0
- package/src/lib/feature-flags.ts +26 -0
- package/src/lib/http.ts +122 -0
- package/src/lib/server-cloud-tts.ts +301 -0
- package/src/lib/state-paths.ts +28 -0
- package/src/lib/tts-debug.ts +5 -0
- package/src/models/embeddings.ts +298 -0
- package/src/models/image.ts +234 -0
- package/src/models/index.ts +16 -0
- package/src/models/research.ts +275 -0
- package/src/models/speech.ts +324 -0
- package/src/models/text.ts +1493 -0
- package/src/models/tokenization.ts +67 -0
- package/src/models/transcription.ts +101 -0
- package/src/plugin.ts +281 -0
- package/src/providers/openai.ts +16 -0
- package/src/register-routes.ts +6 -0
- package/src/routes/cloud-billing-routes.ts +744 -0
- package/src/routes/cloud-coding-container-routes.ts +198 -0
- package/src/routes/cloud-compat-routes.ts +304 -0
- package/src/routes/cloud-features-routes.ts +57 -0
- package/src/routes/cloud-provisioning.ts +37 -0
- package/src/routes/cloud-relay-routes.ts +135 -0
- package/src/routes/cloud-routes-autonomous.ts +993 -0
- package/src/routes/cloud-routes.ts +637 -0
- package/src/routes/cloud-status-routes-autonomous.ts +238 -0
- package/src/routes/cloud-status-routes.ts +73 -0
- package/src/routes/home-remote-runner-access-url.ts +83 -0
- package/src/routes/travel-provider-relay-routes.ts +193 -0
- package/src/services/cloud-auth.ts +574 -0
- package/src/services/cloud-backup.ts +208 -0
- package/src/services/cloud-bootstrap.ts +106 -0
- package/src/services/cloud-bridge.ts +386 -0
- package/src/services/cloud-container.ts +390 -0
- package/src/services/cloud-credential-provider.ts +210 -0
- package/src/services/cloud-managed-gateway-relay.ts +663 -0
- package/src/services/cloud-model-registry.ts +202 -0
- package/src/services/index.ts +17 -0
- package/{types → src/types}/cloud.ts +74 -29
- package/{types → src/types}/index.ts +25 -0
- package/src/utils/cloud-api.ts +10 -0
- package/src/utils/cloud-sdk/client.ts +774 -0
- package/src/utils/cloud-sdk/http.ts +291 -0
- package/src/utils/cloud-sdk/index.ts +23 -0
- package/src/utils/cloud-sdk/public-routes.ts +5238 -0
- package/src/utils/cloud-sdk/types.cloud-api.ts +120 -0
- package/src/utils/cloud-sdk/types.ts +760 -0
- package/src/utils/config.ts +193 -0
- package/src/utils/events.ts +65 -0
- package/src/utils/helpers.ts +107 -0
- package/src/utils/responses-output.ts +115 -0
- package/src/utils/sdk-client.ts +41 -0
- package/src/utils/waifu-metering.ts +302 -0
- package/dist/actions/check-credits.d.ts +0 -6
- package/dist/actions/check-credits.d.ts.map +0 -1
- package/dist/actions/freeze-agent.d.ts +0 -9
- package/dist/actions/freeze-agent.d.ts.map +0 -1
- package/dist/actions/index.d.ts +0 -5
- package/dist/actions/index.d.ts.map +0 -1
- package/dist/actions/provision-agent.d.ts +0 -8
- package/dist/actions/provision-agent.d.ts.map +0 -1
- package/dist/actions/resume-agent.d.ts +0 -9
- package/dist/actions/resume-agent.d.ts.map +0 -1
- package/dist/build.d.ts +0 -3
- package/dist/build.d.ts.map +0 -1
- package/dist/generated/specs/specs.d.ts +0 -55
- package/dist/generated/specs/specs.d.ts.map +0 -1
- package/dist/models/object.d.ts +0 -4
- package/dist/models/object.d.ts.map +0 -1
- package/dist/utils/forwarded-settings.d.ts +0 -8
- package/dist/utils/forwarded-settings.d.ts.map +0 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __returnValue = (v) => v;
|
|
4
|
+
function __exportSetter(name, newValue) {
|
|
5
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
+
}
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
set: __exportSetter.bind(all, name)
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
18
|
+
|
|
19
|
+
// src/cloud/x402-payment-handler.ts
|
|
20
|
+
import { logger } from "@elizaos/core";
|
|
21
|
+
function readString(value) {
|
|
22
|
+
if (typeof value !== "string")
|
|
23
|
+
return null;
|
|
24
|
+
const trimmed = value.trim();
|
|
25
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
26
|
+
}
|
|
27
|
+
function readAmount(value) {
|
|
28
|
+
if (typeof value === "string") {
|
|
29
|
+
const trimmed = value.trim();
|
|
30
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
31
|
+
}
|
|
32
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
33
|
+
return String(value);
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
function normalizeRequirement(raw) {
|
|
38
|
+
if (!raw || typeof raw !== "object")
|
|
39
|
+
return null;
|
|
40
|
+
const amount = readAmount(raw.amount);
|
|
41
|
+
const asset = readString(raw.asset);
|
|
42
|
+
const network = readString(raw.network);
|
|
43
|
+
const payTo = readString(raw.payTo);
|
|
44
|
+
if (!amount || !asset || !network || !payTo)
|
|
45
|
+
return null;
|
|
46
|
+
const scheme = readString(raw.scheme) ?? "exact";
|
|
47
|
+
return {
|
|
48
|
+
amount,
|
|
49
|
+
asset,
|
|
50
|
+
network,
|
|
51
|
+
payTo,
|
|
52
|
+
scheme,
|
|
53
|
+
expiresAt: readString(raw.expiresAt),
|
|
54
|
+
description: readString(raw.description)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function parseRequirementsArray(raw) {
|
|
58
|
+
if (!Array.isArray(raw))
|
|
59
|
+
return [];
|
|
60
|
+
const out = [];
|
|
61
|
+
for (const entry of raw) {
|
|
62
|
+
const normalized = normalizeRequirement(entry);
|
|
63
|
+
if (normalized)
|
|
64
|
+
out.push(normalized);
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
async function parseX402Response(response) {
|
|
69
|
+
const headerValue = response.headers.get("www-authenticate");
|
|
70
|
+
if (headerValue?.toLowerCase().startsWith("x402")) {
|
|
71
|
+
const jsonPart = headerValue.slice(4).trim();
|
|
72
|
+
if (jsonPart.length > 0) {
|
|
73
|
+
const parsed = JSON.parse(jsonPart);
|
|
74
|
+
const requirements2 = Array.isArray(parsed) ? parseRequirementsArray(parsed) : parseRequirementsArray(parsed.paymentRequirements ?? parsed.accepts);
|
|
75
|
+
if (requirements2.length > 0)
|
|
76
|
+
return requirements2;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const cloned = response.clone();
|
|
80
|
+
const text = await cloned.text();
|
|
81
|
+
if (text.length === 0)
|
|
82
|
+
return null;
|
|
83
|
+
const body = JSON.parse(text);
|
|
84
|
+
const requirements = parseRequirementsArray(body.paymentRequirements ?? body.accepts);
|
|
85
|
+
return requirements.length > 0 ? requirements : null;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
class PaymentRequiredError extends Error {
|
|
89
|
+
code = "PAYMENT_REQUIRED";
|
|
90
|
+
requirements;
|
|
91
|
+
constructor(requirements, message) {
|
|
92
|
+
const text = message ?? `Eliza Cloud returned HTTP 402 — your credit balance can't cover this call. ${requirements.length} payment option(s) available.`;
|
|
93
|
+
super(text);
|
|
94
|
+
this.name = "PaymentRequiredError";
|
|
95
|
+
this.requirements = requirements;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function requestPayment(runtime, requirements) {
|
|
99
|
+
if (requirements.length === 0) {
|
|
100
|
+
throw new Error("[x402] requestPayment called with no requirements — adapter bug");
|
|
101
|
+
}
|
|
102
|
+
const preferred = requirements[0];
|
|
103
|
+
logger.warn({
|
|
104
|
+
boundary: "elizacloud",
|
|
105
|
+
integration: "x402",
|
|
106
|
+
asset: preferred.asset,
|
|
107
|
+
network: preferred.network,
|
|
108
|
+
amount: preferred.amount,
|
|
109
|
+
runtimeId: runtime.agentId
|
|
110
|
+
}, `[x402] payment-required: ${preferred.amount} ${preferred.asset} on ${preferred.network} → ${preferred.payTo}${preferred.description ? ` (${preferred.description})` : ""}`);
|
|
111
|
+
return { status: "surfaced", requirement: preferred, txId: null };
|
|
112
|
+
}
|
|
113
|
+
export {
|
|
114
|
+
requestPayment,
|
|
115
|
+
parseX402Response,
|
|
116
|
+
PaymentRequiredError
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
//# debugId=E9FC6AAB3C2B9DD164756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cloud/x402-payment-handler.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * x402 (HTTP 402 Payment Required) handler for Eliza Cloud relays.\n *\n * Spec reference: https://www.x402.org\n *\n * When the user's Cloud credit balance can't cover a metered call, the\n * Cloud relay returns HTTP 402 with a `payment-requirements` envelope —\n * either as a `WWW-Authenticate: x402 <json>` header or as a JSON body\n * with a top-level `paymentRequirements` array. Each requirement\n * describes one acceptable payment option (asset, network, recipient,\n * amount).\n *\n * This module is intentionally thin:\n * - `parseX402Response` extracts requirements from a Response.\n * - `PaymentRequiredError` carries them up to the action layer.\n * - `requestPayment` is the agent-side bridge: today it surfaces the\n * requirement back to the owner via the runtime logger so the UI /\n * planner can route the user to the existing wallet top-up flow.\n * Auto-pay intentionally lives outside this bridge — the actual money\n * movement is Cloud-side and gated by the wallet UI (commandment 4).\n *\n * No silent failures: a malformed 402 throws so the action layer can\n * surface a clear \"payment-required\" message rather than treating the\n * upstream as a generic HTTP error.\n */\n\nimport { type IAgentRuntime, logger } from \"@elizaos/core\";\n\n/**\n * One acceptable payment option as advertised by the server.\n *\n * Fields mirror the x402 spec's `paymentRequirements` entry. We type\n * everything as required so silent partial parses are impossible — the\n * parser either yields a complete requirement or rejects it.\n */\nexport interface X402PaymentRequirement {\n /** Decimal amount in the asset's smallest unit (e.g. \"1500000\" for\n * 1.50 USDC). String, not number, to preserve precision. */\n readonly amount: string;\n /** Asset symbol or ERC-20 contract address (e.g. \"USDC\"). */\n readonly asset: string;\n /** Network identifier (e.g. \"base\", \"ethereum\", \"solana\"). */\n readonly network: string;\n /** Recipient address that should receive the payment. */\n readonly payTo: string;\n /** Payment scheme — currently x402 supports \"exact\" only. */\n readonly scheme: string;\n /** ISO-8601 deadline after which the requirement is no longer valid. */\n readonly expiresAt: string | null;\n /** Human-readable description of the resource being purchased. */\n readonly description: string | null;\n}\n\n/**\n * Wire shape we accept from JSON bodies. Loose at the boundary, strict\n * after parsing.\n */\ninterface RawRequirement {\n readonly amount?: unknown;\n readonly asset?: unknown;\n readonly network?: unknown;\n readonly payTo?: unknown;\n readonly scheme?: unknown;\n readonly expiresAt?: unknown;\n readonly description?: unknown;\n}\n\ninterface RawX402Body {\n readonly paymentRequirements?: ReadonlyArray<RawRequirement>;\n readonly accepts?: ReadonlyArray<RawRequirement>;\n}\n\nfunction readString(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction readAmount(value: unknown): string | null {\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return String(value);\n }\n return null;\n}\n\nfunction normalizeRequirement(\n raw: RawRequirement | null | undefined,\n): X402PaymentRequirement | null {\n if (!raw || typeof raw !== \"object\") return null;\n const amount = readAmount(raw.amount);\n const asset = readString(raw.asset);\n const network = readString(raw.network);\n const payTo = readString(raw.payTo);\n if (!amount || !asset || !network || !payTo) return null;\n const scheme = readString(raw.scheme) ?? \"exact\";\n return {\n amount,\n asset,\n network,\n payTo,\n scheme,\n expiresAt: readString(raw.expiresAt),\n description: readString(raw.description),\n };\n}\n\nfunction parseRequirementsArray(\n raw: ReadonlyArray<RawRequirement> | undefined,\n): X402PaymentRequirement[] {\n if (!Array.isArray(raw)) return [];\n const out: X402PaymentRequirement[] = [];\n for (const entry of raw) {\n const normalized = normalizeRequirement(entry);\n if (normalized) out.push(normalized);\n }\n return out;\n}\n\n/**\n * Pull payment requirements out of an x402 response. Tries the header\n * form first (lowest-overhead per spec), then falls back to the JSON\n * body. Returns `null` when the response carries no parseable\n * requirements — callers should treat that as a generic 402 and\n * surface the upstream status text.\n */\nexport async function parseX402Response(\n response: Response,\n): Promise<X402PaymentRequirement[] | null> {\n const headerValue = response.headers.get(\"www-authenticate\");\n if (headerValue?.toLowerCase().startsWith(\"x402\")) {\n const jsonPart = headerValue.slice(4).trim();\n if (jsonPart.length > 0) {\n const parsed = JSON.parse(jsonPart) as RawX402Body | RawRequirement[];\n const requirements = Array.isArray(parsed)\n ? parseRequirementsArray(parsed)\n : parseRequirementsArray(parsed.paymentRequirements ?? parsed.accepts);\n if (requirements.length > 0) return requirements;\n }\n }\n // Fall back to body parse. Clone so the caller can still read it.\n const cloned = response.clone();\n const text = await cloned.text();\n if (text.length === 0) return null;\n const body = JSON.parse(text) as RawX402Body;\n const requirements = parseRequirementsArray(\n body.paymentRequirements ?? body.accepts,\n );\n return requirements.length > 0 ? requirements : null;\n}\n\n/**\n * Thrown by adapters when an upstream metered call returns 402 with\n * actionable payment requirements. Action handlers convert this into an\n * approval-queue entry so the user sees both the cost and the\n * top-up prompt together.\n */\nexport class PaymentRequiredError extends Error {\n readonly code = \"PAYMENT_REQUIRED\" as const;\n readonly requirements: ReadonlyArray<X402PaymentRequirement>;\n\n constructor(\n requirements: ReadonlyArray<X402PaymentRequirement>,\n message?: string,\n ) {\n const text =\n message ??\n `Eliza Cloud returned HTTP 402 — your credit balance can't cover this call. ${requirements.length} payment option(s) available.`;\n super(text);\n this.name = \"PaymentRequiredError\";\n this.requirements = requirements;\n }\n}\n\nexport interface PaymentReceipt {\n readonly status: \"surfaced\" | \"paid\";\n readonly requirement: X402PaymentRequirement;\n /** Transaction id when status === \"paid\", null when only surfaced. */\n readonly txId: string | null;\n}\n\n/**\n * Bridge from a raw payment requirement to user action. For now this\n * does not auto-pay: the actual money movement happens in the existing\n * wallet UI (Cloud-side). We log the requirement so the agent's\n * messaging surface and the desktop dev console both pick it up, then\n * return a \"surfaced\" receipt for the action layer to forward into the\n * approval queue.\n */\nexport async function requestPayment(\n runtime: IAgentRuntime,\n requirements: ReadonlyArray<X402PaymentRequirement>,\n): Promise<PaymentReceipt> {\n if (requirements.length === 0) {\n throw new Error(\n \"[x402] requestPayment called with no requirements — adapter bug\",\n );\n }\n const preferred = requirements[0];\n logger.warn(\n {\n boundary: \"elizacloud\",\n integration: \"x402\",\n asset: preferred.asset,\n network: preferred.network,\n amount: preferred.amount,\n runtimeId: runtime.agentId,\n },\n `[x402] payment-required: ${preferred.amount} ${preferred.asset} on ${preferred.network} → ${preferred.payTo}${preferred.description ? ` (${preferred.description})` : \"\"}`,\n );\n return { status: \"surfaced\", requirement: preferred, txId: null };\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AA0BA;AA8CA,SAAS,UAAU,CAAC,OAA+B;AAAA,EACjD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,MAAM,UAAU,MAAM,KAAK;AAAA,EAC3B,OAAO,QAAQ,SAAS,IAAI,UAAU;AAAA;AAGxC,SAAS,UAAU,CAAC,OAA+B;AAAA,EACjD,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,MAAM,UAAU,MAAM,KAAK;AAAA,IAC3B,OAAO,QAAQ,SAAS,IAAI,UAAU;AAAA,EACxC;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,GAAG;AAAA,IACvD,OAAO,OAAO,KAAK;AAAA,EACrB;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,oBAAoB,CAC3B,KAC+B;AAAA,EAC/B,IAAI,CAAC,OAAO,OAAO,QAAQ;AAAA,IAAU,OAAO;AAAA,EAC5C,MAAM,SAAS,WAAW,IAAI,MAAM;AAAA,EACpC,MAAM,QAAQ,WAAW,IAAI,KAAK;AAAA,EAClC,MAAM,UAAU,WAAW,IAAI,OAAO;AAAA,EACtC,MAAM,QAAQ,WAAW,IAAI,KAAK;AAAA,EAClC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;AAAA,IAAO,OAAO;AAAA,EACpD,MAAM,SAAS,WAAW,IAAI,MAAM,KAAK;AAAA,EACzC,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,WAAW,IAAI,SAAS;AAAA,IACnC,aAAa,WAAW,IAAI,WAAW;AAAA,EACzC;AAAA;AAGF,SAAS,sBAAsB,CAC7B,KAC0B;AAAA,EAC1B,IAAI,CAAC,MAAM,QAAQ,GAAG;AAAA,IAAG,OAAO,CAAC;AAAA,EACjC,MAAM,MAAgC,CAAC;AAAA,EACvC,WAAW,SAAS,KAAK;AAAA,IACvB,MAAM,aAAa,qBAAqB,KAAK;AAAA,IAC7C,IAAI;AAAA,MAAY,IAAI,KAAK,UAAU;AAAA,EACrC;AAAA,EACA,OAAO;AAAA;AAUT,eAAsB,iBAAiB,CACrC,UAC0C;AAAA,EAC1C,MAAM,cAAc,SAAS,QAAQ,IAAI,kBAAkB;AAAA,EAC3D,IAAI,aAAa,YAAY,EAAE,WAAW,MAAM,GAAG;AAAA,IACjD,MAAM,WAAW,YAAY,MAAM,CAAC,EAAE,KAAK;AAAA,IAC3C,IAAI,SAAS,SAAS,GAAG;AAAA,MACvB,MAAM,SAAS,KAAK,MAAM,QAAQ;AAAA,MAClC,MAAM,gBAAe,MAAM,QAAQ,MAAM,IACrC,uBAAuB,MAAM,IAC7B,uBAAuB,OAAO,uBAAuB,OAAO,OAAO;AAAA,MACvE,IAAI,cAAa,SAAS;AAAA,QAAG,OAAO;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,SAAS,MAAM;AAAA,EAC9B,MAAM,OAAO,MAAM,OAAO,KAAK;AAAA,EAC/B,IAAI,KAAK,WAAW;AAAA,IAAG,OAAO;AAAA,EAC9B,MAAM,OAAO,KAAK,MAAM,IAAI;AAAA,EAC5B,MAAM,eAAe,uBACnB,KAAK,uBAAuB,KAAK,OACnC;AAAA,EACA,OAAO,aAAa,SAAS,IAAI,eAAe;AAAA;AAAA;AAS3C,MAAM,6BAA6B,MAAM;AAAA,EACrC,OAAO;AAAA,EACP;AAAA,EAET,WAAW,CACT,cACA,SACA;AAAA,IACA,MAAM,OACJ,WACA,8EAA6E,aAAa;AAAA,IAC5F,MAAM,IAAI;AAAA,IACV,KAAK,OAAO;AAAA,IACZ,KAAK,eAAe;AAAA;AAExB;AAiBA,eAAsB,cAAc,CAClC,SACA,cACyB;AAAA,EACzB,IAAI,aAAa,WAAW,GAAG;AAAA,IAC7B,MAAM,IAAI,MACR,iEACF;AAAA,EACF;AAAA,EACA,MAAM,YAAY,aAAa;AAAA,EAC/B,OAAO,KACL;AAAA,IACE,UAAU;AAAA,IACV,aAAa;AAAA,IACb,OAAO,UAAU;AAAA,IACjB,SAAS,UAAU;AAAA,IACnB,QAAQ,UAAU;AAAA,IAClB,WAAW,QAAQ;AAAA,EACrB,GACA,4BAA4B,UAAU,UAAU,UAAU,YAAY,UAAU,aAAY,UAAU,QAAQ,UAAU,cAAc,KAAK,UAAU,iBAAiB,IACxK;AAAA,EACA,OAAO,EAAE,QAAQ,YAAY,aAAa,WAAW,MAAM,KAAK;AAAA;",
|
|
8
|
+
"debugId": "E9FC6AAB3C2B9DD164756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-status.d.ts","sourceRoot":"","sources":["../../cloud-providers/cloud-status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-status.d.ts","sourceRoot":"","sources":["../../src/cloud-providers/cloud-status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAO5F,eAAO,MAAM,mBAAmB,EAAE,QA+DjC,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __returnValue = (v) => v;
|
|
4
|
+
function __exportSetter(name, newValue) {
|
|
5
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
+
}
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
set: __exportSetter.bind(all, name)
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
18
|
+
|
|
19
|
+
// src/cloud-providers/cloud-status.ts
|
|
20
|
+
var MAX_CONTAINER_SUMMARIES = 10;
|
|
21
|
+
var cloudStatusProvider = {
|
|
22
|
+
name: "elizacloud_status",
|
|
23
|
+
description: "ElizaCloud container and connection status",
|
|
24
|
+
descriptionCompressed: "ElizaCloud container/connection status.",
|
|
25
|
+
dynamic: true,
|
|
26
|
+
position: 90,
|
|
27
|
+
contexts: ["settings", "finance"],
|
|
28
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
29
|
+
cacheStable: false,
|
|
30
|
+
cacheScope: "turn",
|
|
31
|
+
async get(runtime, _message, _state) {
|
|
32
|
+
try {
|
|
33
|
+
const auth = runtime.getService("CLOUD_AUTH");
|
|
34
|
+
if (!auth?.isAuthenticated()) {
|
|
35
|
+
return {
|
|
36
|
+
text: "ElizaCloud: Not authenticated",
|
|
37
|
+
values: { cloudAuthenticated: false }
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const containerSvc = runtime.getService("CLOUD_CONTAINER");
|
|
41
|
+
const bridgeSvc = runtime.getService("CLOUD_BRIDGE");
|
|
42
|
+
const containers = containerSvc?.getTrackedContainers() ?? [];
|
|
43
|
+
const connected = bridgeSvc?.getConnectedContainerIds() ?? [];
|
|
44
|
+
const running = containers.filter((c) => c.status === "running").length;
|
|
45
|
+
const deploying = containers.filter((c) => c.status === "pending" || c.status === "building" || c.status === "deploying").length;
|
|
46
|
+
const summaries = containers.slice(0, MAX_CONTAINER_SUMMARIES).map((c) => ({
|
|
47
|
+
id: c.id,
|
|
48
|
+
name: c.name,
|
|
49
|
+
status: c.status,
|
|
50
|
+
url: c.load_balancer_url,
|
|
51
|
+
billing: c.billing_status,
|
|
52
|
+
bridged: connected.includes(c.id)
|
|
53
|
+
}));
|
|
54
|
+
const lines = [
|
|
55
|
+
`ElizaCloud: ${containers.length} container(s), ${running} running, ${connected.length} bridged`,
|
|
56
|
+
...summaries.map((c) => ` - ${c.name} [${c.status}]${c.url ? ` @ ${c.url}` : ""}${c.bridged ? " (bridged)" : ""}`)
|
|
57
|
+
];
|
|
58
|
+
return {
|
|
59
|
+
text: lines.join(`
|
|
60
|
+
`),
|
|
61
|
+
values: {
|
|
62
|
+
cloudAuthenticated: true,
|
|
63
|
+
totalContainers: containers.length,
|
|
64
|
+
runningContainers: running,
|
|
65
|
+
deployingContainers: deploying
|
|
66
|
+
},
|
|
67
|
+
data: { containers: summaries, truncated: containers.length > summaries.length }
|
|
68
|
+
};
|
|
69
|
+
} catch {
|
|
70
|
+
return { text: "", values: {}, data: {} };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
export {
|
|
75
|
+
cloudStatusProvider
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
//# debugId=54C6BB91BF17536764756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cloud-providers/cloud-status.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * cloudStatusProvider — Container and connection status in agent state.\n */\n\nimport type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport type { CloudAuthService } from \"../services/cloud-auth\";\nimport type { CloudBridgeService } from \"../services/cloud-bridge\";\nimport type { CloudContainerService } from \"../services/cloud-container\";\n\nconst MAX_CONTAINER_SUMMARIES = 10;\n\nexport const cloudStatusProvider: Provider = {\n name: \"elizacloud_status\",\n description: \"ElizaCloud container and connection status\",\n descriptionCompressed: \"ElizaCloud container/connection status.\",\n dynamic: true,\n position: 90,\n contexts: [\"settings\", \"finance\"],\n contextGate: { anyOf: [\"settings\", \"finance\"] },\n cacheStable: false,\n cacheScope: \"turn\",\n async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {\n try {\n const auth = runtime.getService(\"CLOUD_AUTH\") as CloudAuthService | undefined;\n if (!auth?.isAuthenticated()) {\n return {\n text: \"ElizaCloud: Not authenticated\",\n values: { cloudAuthenticated: false },\n };\n }\n\n const containerSvc = runtime.getService(\"CLOUD_CONTAINER\") as\n | CloudContainerService\n | undefined;\n const bridgeSvc = runtime.getService(\"CLOUD_BRIDGE\") as CloudBridgeService | undefined;\n const containers = containerSvc?.getTrackedContainers() ?? [];\n const connected = bridgeSvc?.getConnectedContainerIds() ?? [];\n\n const running = containers.filter((c) => c.status === \"running\").length;\n const deploying = containers.filter(\n (c) => c.status === \"pending\" || c.status === \"building\" || c.status === \"deploying\"\n ).length;\n\n const summaries = containers.slice(0, MAX_CONTAINER_SUMMARIES).map((c) => ({\n id: c.id,\n name: c.name,\n status: c.status,\n url: c.load_balancer_url,\n billing: c.billing_status,\n bridged: connected.includes(c.id),\n }));\n\n const lines = [\n `ElizaCloud: ${containers.length} container(s), ${running} running, ${connected.length} bridged`,\n ...summaries.map(\n (c) =>\n ` - ${c.name} [${c.status}]${c.url ? ` @ ${c.url}` : \"\"}${c.bridged ? \" (bridged)\" : \"\"}`\n ),\n ];\n\n return {\n text: lines.join(\"\\n\"),\n values: {\n cloudAuthenticated: true,\n totalContainers: containers.length,\n runningContainers: running,\n deployingContainers: deploying,\n },\n data: { containers: summaries, truncated: containers.length > summaries.length },\n };\n } catch {\n return { text: \"\", values: {}, data: {} };\n }\n },\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AASA,IAAM,0BAA0B;AAEzB,IAAM,sBAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU,CAAC,YAAY,SAAS;AAAA,EAChC,aAAa,EAAE,OAAO,CAAC,YAAY,SAAS,EAAE;AAAA,EAC9C,aAAa;AAAA,EACb,YAAY;AAAA,OACN,IAAG,CAAC,SAAwB,UAAkB,QAAwC;AAAA,IAC1F,IAAI;AAAA,MACF,MAAM,OAAO,QAAQ,WAAW,YAAY;AAAA,MAC5C,IAAI,CAAC,MAAM,gBAAgB,GAAG;AAAA,QAC5B,OAAO;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,EAAE,oBAAoB,MAAM;AAAA,QACtC;AAAA,MACF;AAAA,MAEA,MAAM,eAAe,QAAQ,WAAW,iBAAiB;AAAA,MAGzD,MAAM,YAAY,QAAQ,WAAW,cAAc;AAAA,MACnD,MAAM,aAAa,cAAc,qBAAqB,KAAK,CAAC;AAAA,MAC5D,MAAM,YAAY,WAAW,yBAAyB,KAAK,CAAC;AAAA,MAE5D,MAAM,UAAU,WAAW,OAAO,CAAC,MAAM,EAAE,WAAW,SAAS,EAAE;AAAA,MACjE,MAAM,YAAY,WAAW,OAC3B,CAAC,MAAM,EAAE,WAAW,aAAa,EAAE,WAAW,cAAc,EAAE,WAAW,WAC3E,EAAE;AAAA,MAEF,MAAM,YAAY,WAAW,MAAM,GAAG,uBAAuB,EAAE,IAAI,CAAC,OAAO;AAAA,QACzE,IAAI,EAAE;AAAA,QACN,MAAM,EAAE;AAAA,QACR,QAAQ,EAAE;AAAA,QACV,KAAK,EAAE;AAAA,QACP,SAAS,EAAE;AAAA,QACX,SAAS,UAAU,SAAS,EAAE,EAAE;AAAA,MAClC,EAAE;AAAA,MAEF,MAAM,QAAQ;AAAA,QACZ,eAAe,WAAW,wBAAwB,oBAAoB,UAAU;AAAA,QAChF,GAAG,UAAU,IACX,CAAC,MACC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,MAAM,EAAE,QAAQ,KAAK,EAAE,UAAU,eAAe,IAC1F;AAAA,MACF;AAAA,MAEA,OAAO;AAAA,QACL,MAAM,MAAM,KAAK;AAAA,CAAI;AAAA,QACrB,QAAQ;AAAA,UACN,oBAAoB;AAAA,UACpB,iBAAiB,WAAW;AAAA,UAC5B,mBAAmB;AAAA,UACnB,qBAAqB;AAAA,QACvB;AAAA,QACA,MAAM,EAAE,YAAY,WAAW,WAAW,WAAW,SAAS,UAAU,OAAO;AAAA,MACjF;AAAA,MACA,MAAM;AAAA,MACN,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE;AAAA;AAAA;AAG9C;",
|
|
8
|
+
"debugId": "54C6BB91BF17536764756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-health.d.ts","sourceRoot":"","sources":["../../cloud-providers/container-health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"container-health.d.ts","sourceRoot":"","sources":["../../src/cloud-providers/container-health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAM5F,eAAO,MAAM,uBAAuB,EAAE,QAyDrC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __returnValue = (v) => v;
|
|
4
|
+
function __exportSetter(name, newValue) {
|
|
5
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
+
}
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
set: __exportSetter.bind(all, name)
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
18
|
+
|
|
19
|
+
// src/cloud-providers/container-health.ts
|
|
20
|
+
var MAX_HEALTH_REPORTS = 10;
|
|
21
|
+
var containerHealthProvider = {
|
|
22
|
+
name: "elizacloud_health",
|
|
23
|
+
description: "ElizaCloud container health",
|
|
24
|
+
descriptionCompressed: "ElizaCloud container health.",
|
|
25
|
+
dynamic: true,
|
|
26
|
+
position: 92,
|
|
27
|
+
private: true,
|
|
28
|
+
contexts: ["settings", "finance"],
|
|
29
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
30
|
+
cacheStable: false,
|
|
31
|
+
cacheScope: "turn",
|
|
32
|
+
async get(runtime, _message, _state) {
|
|
33
|
+
try {
|
|
34
|
+
const auth = runtime.getService("CLOUD_AUTH");
|
|
35
|
+
if (!auth?.isAuthenticated())
|
|
36
|
+
return { text: "" };
|
|
37
|
+
const svc = runtime.getService("CLOUD_CONTAINER");
|
|
38
|
+
const running = svc?.getTrackedContainers().filter((c) => c.status === "running") ?? [];
|
|
39
|
+
if (running.length === 0)
|
|
40
|
+
return {
|
|
41
|
+
text: "No running containers.",
|
|
42
|
+
values: { healthyContainers: 0 }
|
|
43
|
+
};
|
|
44
|
+
const reports = running.slice(0, MAX_HEALTH_REPORTS).map((c) => ({
|
|
45
|
+
id: c.id,
|
|
46
|
+
name: c.name,
|
|
47
|
+
healthy: c.status === "running" && c.billing_status === "active" && !c.error_message,
|
|
48
|
+
status: c.status,
|
|
49
|
+
billing: c.billing_status
|
|
50
|
+
}));
|
|
51
|
+
const healthy = reports.filter((r) => r.healthy).length;
|
|
52
|
+
const text = [
|
|
53
|
+
`Health: ${healthy}/${reports.length} healthy`,
|
|
54
|
+
...reports.map((r) => ` - ${r.name}: ${r.healthy ? "OK" : "UNHEALTHY"} (status=${r.status}, billing=${r.billing})`)
|
|
55
|
+
].join(`
|
|
56
|
+
`);
|
|
57
|
+
return {
|
|
58
|
+
text,
|
|
59
|
+
values: {
|
|
60
|
+
healthyContainers: healthy,
|
|
61
|
+
unhealthyContainers: reports.length - healthy
|
|
62
|
+
},
|
|
63
|
+
data: { reports, truncated: running.length > reports.length }
|
|
64
|
+
};
|
|
65
|
+
} catch {
|
|
66
|
+
return { text: "", values: {}, data: {} };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
export {
|
|
71
|
+
containerHealthProvider
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//# debugId=5B32294E9C8366D164756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cloud-providers/container-health.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * containerHealthProvider — Container health in agent state (private, on-demand).\n */\n\nimport type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport type { CloudAuthService } from \"../services/cloud-auth\";\nimport type { CloudContainerService } from \"../services/cloud-container\";\n\nconst MAX_HEALTH_REPORTS = 10;\n\nexport const containerHealthProvider: Provider = {\n name: \"elizacloud_health\",\n description: \"ElizaCloud container health\",\n descriptionCompressed: \"ElizaCloud container health.\",\n dynamic: true,\n position: 92,\n private: true,\n contexts: [\"settings\", \"finance\"],\n contextGate: { anyOf: [\"settings\", \"finance\"] },\n cacheStable: false,\n cacheScope: \"turn\",\n async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {\n try {\n const auth = runtime.getService(\"CLOUD_AUTH\") as CloudAuthService | undefined;\n if (!auth?.isAuthenticated()) return { text: \"\" };\n\n const svc = runtime.getService(\"CLOUD_CONTAINER\") as CloudContainerService | undefined;\n const running = svc?.getTrackedContainers().filter((c) => c.status === \"running\") ?? [];\n if (running.length === 0)\n return {\n text: \"No running containers.\",\n values: { healthyContainers: 0 },\n };\n\n // NOTE: True health would require hitting each container's health_check_path\n // endpoint over the network. We approximate here using locally-cached state:\n // a container is considered healthy when it is running, billing is active,\n // and there is no recorded error message.\n const reports = running.slice(0, MAX_HEALTH_REPORTS).map((c) => ({\n id: c.id,\n name: c.name,\n healthy: c.status === \"running\" && c.billing_status === \"active\" && !c.error_message,\n status: c.status,\n billing: c.billing_status,\n }));\n\n const healthy = reports.filter((r) => r.healthy).length;\n const text = [\n `Health: ${healthy}/${reports.length} healthy`,\n ...reports.map(\n (r) =>\n ` - ${r.name}: ${r.healthy ? \"OK\" : \"UNHEALTHY\"} (status=${r.status}, billing=${r.billing})`\n ),\n ].join(\"\\n\");\n\n return {\n text,\n values: {\n healthyContainers: healthy,\n unhealthyContainers: reports.length - healthy,\n },\n data: { reports, truncated: running.length > reports.length },\n };\n } catch {\n return { text: \"\", values: {}, data: {} };\n }\n },\n};\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAQA,IAAM,qBAAqB;AAEpB,IAAM,0BAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU,CAAC,YAAY,SAAS;AAAA,EAChC,aAAa,EAAE,OAAO,CAAC,YAAY,SAAS,EAAE;AAAA,EAC9C,aAAa;AAAA,EACb,YAAY;AAAA,OACN,IAAG,CAAC,SAAwB,UAAkB,QAAwC;AAAA,IAC1F,IAAI;AAAA,MACF,MAAM,OAAO,QAAQ,WAAW,YAAY;AAAA,MAC5C,IAAI,CAAC,MAAM,gBAAgB;AAAA,QAAG,OAAO,EAAE,MAAM,GAAG;AAAA,MAEhD,MAAM,MAAM,QAAQ,WAAW,iBAAiB;AAAA,MAChD,MAAM,UAAU,KAAK,qBAAqB,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,SAAS,KAAK,CAAC;AAAA,MACtF,IAAI,QAAQ,WAAW;AAAA,QACrB,OAAO;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,EAAE,mBAAmB,EAAE;AAAA,QACjC;AAAA,MAMF,MAAM,UAAU,QAAQ,MAAM,GAAG,kBAAkB,EAAE,IAAI,CAAC,OAAO;AAAA,QAC/D,IAAI,EAAE;AAAA,QACN,MAAM,EAAE;AAAA,QACR,SAAS,EAAE,WAAW,aAAa,EAAE,mBAAmB,YAAY,CAAC,EAAE;AAAA,QACvE,QAAQ,EAAE;AAAA,QACV,SAAS,EAAE;AAAA,MACb,EAAE;AAAA,MAEF,MAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,MACjD,MAAM,OAAO;AAAA,QACX,WAAW,WAAW,QAAQ;AAAA,QAC9B,GAAG,QAAQ,IACT,CAAC,MACC,OAAO,EAAE,SAAS,EAAE,UAAU,OAAO,uBAAuB,EAAE,mBAAmB,EAAE,UACvF;AAAA,MACF,EAAE,KAAK;AAAA,CAAI;AAAA,MAEX,OAAO;AAAA,QACL;AAAA,QACA,QAAQ;AAAA,UACN,mBAAmB;AAAA,UACnB,qBAAqB,QAAQ,SAAS;AAAA,QACxC;AAAA,QACA,MAAM,EAAE,SAAS,WAAW,QAAQ,SAAS,QAAQ,OAAO;AAAA,MAC9D;AAAA,MACA,MAAM;AAAA,MACN,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE;AAAA;AAAA;AAG9C;",
|
|
8
|
+
"debugId": "5B32294E9C8366D164756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credit-balance.d.ts","sourceRoot":"","sources":["../../cloud-providers/credit-balance.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"credit-balance.d.ts","sourceRoot":"","sources":["../../src/cloud-providers/credit-balance.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAU5F,eAAO,MAAM,qBAAqB,EAAE,QAwCnC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __returnValue = (v) => v;
|
|
4
|
+
function __exportSetter(name, newValue) {
|
|
5
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
+
}
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
set: __exportSetter.bind(all, name)
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
18
|
+
|
|
19
|
+
// src/cloud-providers/credit-balance.ts
|
|
20
|
+
import { logger } from "@elizaos/core";
|
|
21
|
+
var TOP_UP_URL = "https://www.elizacloud.ai/dashboard/settings?tab=billing";
|
|
22
|
+
var creditCaches = new WeakMap;
|
|
23
|
+
var TTL = 60000;
|
|
24
|
+
var MAX_CREDIT_TEXT_CHARS = 240;
|
|
25
|
+
var creditBalanceProvider = {
|
|
26
|
+
name: "elizacloud_credits",
|
|
27
|
+
description: "ElizaCloud credit balance",
|
|
28
|
+
descriptionCompressed: "ElizaCloud credit balance.",
|
|
29
|
+
dynamic: true,
|
|
30
|
+
contexts: ["settings", "finance"],
|
|
31
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
32
|
+
cacheStable: false,
|
|
33
|
+
cacheScope: "turn",
|
|
34
|
+
position: 91,
|
|
35
|
+
async get(runtime, _message, _state) {
|
|
36
|
+
const auth = runtime.getService("CLOUD_AUTH");
|
|
37
|
+
if (!auth?.isAuthenticated())
|
|
38
|
+
return { text: "" };
|
|
39
|
+
const cached = creditCaches.get(runtime);
|
|
40
|
+
if (cached && Date.now() - cached.at < TTL) {
|
|
41
|
+
const result2 = format(cached.value);
|
|
42
|
+
return { ...result2, text: (result2.text ?? "").slice(0, MAX_CREDIT_TEXT_CHARS) };
|
|
43
|
+
}
|
|
44
|
+
let balance;
|
|
45
|
+
try {
|
|
46
|
+
const { data } = await auth.getClient().get("/credits/balance");
|
|
47
|
+
balance = data.balance;
|
|
48
|
+
} catch (err) {
|
|
49
|
+
logger.warn(`[CloudCredits] Failed to fetch balance: ${err instanceof Error ? err.message : err}`);
|
|
50
|
+
if (cached) {
|
|
51
|
+
const result2 = format(cached.value);
|
|
52
|
+
return { ...result2, text: (result2.text ?? "").slice(0, MAX_CREDIT_TEXT_CHARS) };
|
|
53
|
+
}
|
|
54
|
+
return { text: "", values: { cloudCreditsUnavailable: true }, data: {} };
|
|
55
|
+
}
|
|
56
|
+
creditCaches.set(runtime, { value: balance, at: Date.now() });
|
|
57
|
+
if (balance < 1)
|
|
58
|
+
logger.warn(`[CloudCredits] Low balance: $${balance.toFixed(2)}`);
|
|
59
|
+
const result = format(balance);
|
|
60
|
+
return { ...result, text: (result.text ?? "").slice(0, MAX_CREDIT_TEXT_CHARS) };
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
function format(balance) {
|
|
64
|
+
const low = balance < 2;
|
|
65
|
+
const critical = balance < 0.5;
|
|
66
|
+
let text = `ElizaCloud credits: $${balance.toFixed(2)}`;
|
|
67
|
+
if (critical)
|
|
68
|
+
text += ` (CRITICAL — top up at ${TOP_UP_URL})`;
|
|
69
|
+
else if (low)
|
|
70
|
+
text += ` (LOW — top up at ${TOP_UP_URL})`;
|
|
71
|
+
return {
|
|
72
|
+
text,
|
|
73
|
+
values: {
|
|
74
|
+
cloudCredits: balance,
|
|
75
|
+
cloudCreditsLow: low,
|
|
76
|
+
cloudCreditsCritical: critical,
|
|
77
|
+
cloudTopUpUrl: TOP_UP_URL
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
creditBalanceProvider
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//# debugId=21363347BE3F1B6264756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cloud-providers/credit-balance.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/** Credit balance in agent state (60s cache). */\n\nimport type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport type { CloudAuthService } from \"../services/cloud-auth\";\nimport type { CreditBalanceResponse } from \"../types/cloud\";\n\nconst TOP_UP_URL = \"https://www.elizacloud.ai/dashboard/settings?tab=billing\";\nconst creditCaches = new WeakMap<IAgentRuntime, { value: number; at: number }>();\nconst TTL = 60_000;\nconst MAX_CREDIT_TEXT_CHARS = 240;\n\nexport const creditBalanceProvider: Provider = {\n name: \"elizacloud_credits\",\n description: \"ElizaCloud credit balance\",\n descriptionCompressed: \"ElizaCloud credit balance.\",\n dynamic: true,\n contexts: [\"settings\", \"finance\"],\n contextGate: { anyOf: [\"settings\", \"finance\"] },\n cacheStable: false,\n cacheScope: \"turn\",\n position: 91,\n async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {\n const auth = runtime.getService(\"CLOUD_AUTH\") as CloudAuthService | undefined;\n if (!auth?.isAuthenticated()) return { text: \"\" };\n\n const cached = creditCaches.get(runtime);\n if (cached && Date.now() - cached.at < TTL) {\n const result = format(cached.value);\n return { ...result, text: (result.text ?? \"\").slice(0, MAX_CREDIT_TEXT_CHARS) };\n }\n\n let balance: number;\n try {\n const { data } = await auth.getClient().get<CreditBalanceResponse>(\"/credits/balance\");\n balance = data.balance;\n } catch (err) {\n logger.warn(\n `[CloudCredits] Failed to fetch balance: ${err instanceof Error ? err.message : err}`\n );\n if (cached) {\n const result = format(cached.value);\n return { ...result, text: (result.text ?? \"\").slice(0, MAX_CREDIT_TEXT_CHARS) };\n }\n return { text: \"\", values: { cloudCreditsUnavailable: true }, data: {} };\n }\n creditCaches.set(runtime, { value: balance, at: Date.now() });\n\n if (balance < 1.0) logger.warn(`[CloudCredits] Low balance: $${balance.toFixed(2)}`);\n const result = format(balance);\n return { ...result, text: (result.text ?? \"\").slice(0, MAX_CREDIT_TEXT_CHARS) };\n },\n};\n\nfunction format(balance: number): ProviderResult {\n const low = balance < 2.0;\n const critical = balance < 0.5;\n let text = `ElizaCloud credits: $${balance.toFixed(2)}`;\n if (critical) text += ` (CRITICAL — top up at ${TOP_UP_URL})`;\n else if (low) text += ` (LOW — top up at ${TOP_UP_URL})`;\n return {\n text,\n values: {\n cloudCredits: balance,\n cloudCreditsLow: low,\n cloudCreditsCritical: critical,\n cloudTopUpUrl: TOP_UP_URL,\n },\n };\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAGA;AAIA,IAAM,aAAa;AACnB,IAAM,eAAe,IAAI;AACzB,IAAM,MAAM;AACZ,IAAM,wBAAwB;AAEvB,IAAM,wBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,UAAU,CAAC,YAAY,SAAS;AAAA,EAChC,aAAa,EAAE,OAAO,CAAC,YAAY,SAAS,EAAE;AAAA,EAC9C,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AAAA,OACJ,IAAG,CAAC,SAAwB,UAAkB,QAAwC;AAAA,IAC1F,MAAM,OAAO,QAAQ,WAAW,YAAY;AAAA,IAC5C,IAAI,CAAC,MAAM,gBAAgB;AAAA,MAAG,OAAO,EAAE,MAAM,GAAG;AAAA,IAEhD,MAAM,SAAS,aAAa,IAAI,OAAO;AAAA,IACvC,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK;AAAA,MAC1C,MAAM,UAAS,OAAO,OAAO,KAAK;AAAA,MAClC,OAAO,KAAK,SAAQ,OAAO,QAAO,QAAQ,IAAI,MAAM,GAAG,qBAAqB,EAAE;AAAA,IAChF;AAAA,IAEA,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,QAAQ,SAAS,MAAM,KAAK,UAAU,EAAE,IAA2B,kBAAkB;AAAA,MACrF,UAAU,KAAK;AAAA,MACf,OAAO,KAAK;AAAA,MACZ,OAAO,KACL,2CAA2C,eAAe,QAAQ,IAAI,UAAU,KAClF;AAAA,MACA,IAAI,QAAQ;AAAA,QACV,MAAM,UAAS,OAAO,OAAO,KAAK;AAAA,QAClC,OAAO,KAAK,SAAQ,OAAO,QAAO,QAAQ,IAAI,MAAM,GAAG,qBAAqB,EAAE;AAAA,MAChF;AAAA,MACA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,yBAAyB,KAAK,GAAG,MAAM,CAAC,EAAE;AAAA;AAAA,IAEzE,aAAa,IAAI,SAAS,EAAE,OAAO,SAAS,IAAI,KAAK,IAAI,EAAE,CAAC;AAAA,IAE5D,IAAI,UAAU;AAAA,MAAK,OAAO,KAAK,gCAAgC,QAAQ,QAAQ,CAAC,GAAG;AAAA,IACnF,MAAM,SAAS,OAAO,OAAO;AAAA,IAC7B,OAAO,KAAK,QAAQ,OAAO,OAAO,QAAQ,IAAI,MAAM,GAAG,qBAAqB,EAAE;AAAA;AAElF;AAEA,SAAS,MAAM,CAAC,SAAiC;AAAA,EAC/C,MAAM,MAAM,UAAU;AAAA,EACtB,MAAM,WAAW,UAAU;AAAA,EAC3B,IAAI,OAAO,wBAAwB,QAAQ,QAAQ,CAAC;AAAA,EACpD,IAAI;AAAA,IAAU,QAAQ,0BAAyB;AAAA,EAC1C,SAAI;AAAA,IAAK,QAAQ,qBAAoB;AAAA,EAC1C,OAAO;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,MACN,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,sBAAsB;AAAA,MACtB,eAAe;AAAA,IACjB;AAAA,EACF;AAAA;",
|
|
8
|
+
"debugId": "21363347BE3F1B6264756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../cloud-providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloud-providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __returnValue = (v) => v;
|
|
4
|
+
function __exportSetter(name, newValue) {
|
|
5
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
+
}
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
set: __exportSetter.bind(all, name)
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
18
|
+
export {
|
|
19
|
+
creditBalanceProvider,
|
|
20
|
+
containerHealthProvider,
|
|
21
|
+
cloudStatusProvider
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# debugId=87F4AE6750F9F3E064756E2164756E21
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../cloud-providers/model-registry.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../src/cloud-providers/model-registry.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAc5F,eAAO,MAAM,qBAAqB,EAAE,QAyCnC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __returnValue = (v) => v;
|
|
4
|
+
function __exportSetter(name, newValue) {
|
|
5
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
+
}
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
set: __exportSetter.bind(all, name)
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
18
|
+
|
|
19
|
+
// src/cloud-providers/model-registry.ts
|
|
20
|
+
var TTL = 300000;
|
|
21
|
+
var MAX_MODEL_PROVIDERS = 12;
|
|
22
|
+
var MAX_MODELS_PER_PROVIDER = 50;
|
|
23
|
+
var runtimeCaches = new WeakMap;
|
|
24
|
+
var modelRegistryProvider = {
|
|
25
|
+
name: "elizacloud_models",
|
|
26
|
+
description: "Available AI models from ElizaCloud grouped by provider",
|
|
27
|
+
descriptionCompressed: "Available AI models from ElizaCloud by provider.",
|
|
28
|
+
dynamic: true,
|
|
29
|
+
contexts: ["settings", "finance"],
|
|
30
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
31
|
+
cacheStable: false,
|
|
32
|
+
cacheScope: "turn",
|
|
33
|
+
position: 92,
|
|
34
|
+
async get(runtime, _message, _state) {
|
|
35
|
+
try {
|
|
36
|
+
const registry = runtime.getService("CLOUD_MODEL_REGISTRY");
|
|
37
|
+
if (!registry)
|
|
38
|
+
return { text: "" };
|
|
39
|
+
const cached = runtimeCaches.get(runtime);
|
|
40
|
+
if (cached && Date.now() - cached.at < TTL) {
|
|
41
|
+
const cachedValue = Object.fromEntries(Object.entries(cached.value).slice(0, MAX_MODEL_PROVIDERS));
|
|
42
|
+
return formatModels(cachedValue);
|
|
43
|
+
}
|
|
44
|
+
const byProvider = await registry.getModelsByProvider();
|
|
45
|
+
if (Object.keys(byProvider).length === 0) {
|
|
46
|
+
return { text: "" };
|
|
47
|
+
}
|
|
48
|
+
runtimeCaches.set(runtime, { value: byProvider, at: Date.now() });
|
|
49
|
+
const capped = Object.fromEntries(Object.entries(byProvider).slice(0, MAX_MODEL_PROVIDERS));
|
|
50
|
+
return formatModels(capped);
|
|
51
|
+
} catch {
|
|
52
|
+
return { text: "", values: {}, data: {} };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
function formatModels(byProvider) {
|
|
57
|
+
const providers = Object.keys(byProvider).sort().slice(0, MAX_MODEL_PROVIDERS);
|
|
58
|
+
const total = providers.reduce((n, provider) => n + byProvider[provider].slice(0, MAX_MODELS_PER_PROVIDER).length, 0);
|
|
59
|
+
return {
|
|
60
|
+
text: `ElizaCloud: ${total} models (${providers.join(", ")})`,
|
|
61
|
+
values: {
|
|
62
|
+
cloudModelProviders: providers.join(","),
|
|
63
|
+
cloudModelCount: total
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export {
|
|
68
|
+
modelRegistryProvider
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
//# debugId=F64BD3B00C0B561764756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cloud-providers/model-registry.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/** Exposes available cloud models in agent state. */\n\nimport type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport type { CloudModelRegistryService, ModelsByProvider } from \"../services/cloud-model-registry\";\n\nconst TTL = 300_000; // 5 minutes\nconst MAX_MODEL_PROVIDERS = 12;\nconst MAX_MODELS_PER_PROVIDER = 50;\n\n/**\n * Per-runtime cache using a WeakMap keyed by the runtime object.\n * This avoids sharing stale model data between different agent instances\n * running in the same process.\n */\nconst runtimeCaches = new WeakMap<IAgentRuntime, { value: ModelsByProvider; at: number }>();\n\nexport const modelRegistryProvider: Provider = {\n name: \"elizacloud_models\",\n description: \"Available AI models from ElizaCloud grouped by provider\",\n descriptionCompressed: \"Available AI models from ElizaCloud by provider.\",\n dynamic: true,\n contexts: [\"settings\", \"finance\"],\n contextGate: { anyOf: [\"settings\", \"finance\"] },\n cacheStable: false,\n cacheScope: \"turn\",\n position: 92,\n async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {\n try {\n const registry = runtime.getService(\"CLOUD_MODEL_REGISTRY\") as\n | CloudModelRegistryService\n | undefined;\n\n if (!registry) return { text: \"\" };\n\n const cached = runtimeCaches.get(runtime);\n if (cached && Date.now() - cached.at < TTL) {\n const cachedValue = Object.fromEntries(\n Object.entries(cached.value).slice(0, MAX_MODEL_PROVIDERS)\n ) as ModelsByProvider;\n return formatModels(cachedValue);\n }\n\n const byProvider = await registry.getModelsByProvider();\n\n if (Object.keys(byProvider).length === 0) {\n return { text: \"\" };\n }\n\n runtimeCaches.set(runtime, { value: byProvider, at: Date.now() });\n const capped = Object.fromEntries(\n Object.entries(byProvider).slice(0, MAX_MODEL_PROVIDERS)\n ) as ModelsByProvider;\n return formatModels(capped);\n } catch {\n return { text: \"\", values: {}, data: {} };\n }\n },\n};\n\nfunction formatModels(byProvider: ModelsByProvider): ProviderResult {\n const providers = Object.keys(byProvider).sort().slice(0, MAX_MODEL_PROVIDERS);\n const total = providers.reduce(\n (n, provider) => n + byProvider[provider].slice(0, MAX_MODELS_PER_PROVIDER).length,\n 0\n );\n\n return {\n text: `ElizaCloud: ${total} models (${providers.join(\", \")})`,\n values: {\n cloudModelProviders: providers.join(\",\"),\n cloudModelCount: total,\n },\n };\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAKA,IAAM,MAAM;AACZ,IAAM,sBAAsB;AAC5B,IAAM,0BAA0B;AAOhC,IAAM,gBAAgB,IAAI;AAEnB,IAAM,wBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,UAAU,CAAC,YAAY,SAAS;AAAA,EAChC,aAAa,EAAE,OAAO,CAAC,YAAY,SAAS,EAAE;AAAA,EAC9C,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AAAA,OACJ,IAAG,CAAC,SAAwB,UAAkB,QAAwC;AAAA,IAC1F,IAAI;AAAA,MACF,MAAM,WAAW,QAAQ,WAAW,sBAAsB;AAAA,MAI1D,IAAI,CAAC;AAAA,QAAU,OAAO,EAAE,MAAM,GAAG;AAAA,MAEjC,MAAM,SAAS,cAAc,IAAI,OAAO;AAAA,MACxC,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK;AAAA,QAC1C,MAAM,cAAc,OAAO,YACzB,OAAO,QAAQ,OAAO,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAC3D;AAAA,QACA,OAAO,aAAa,WAAW;AAAA,MACjC;AAAA,MAEA,MAAM,aAAa,MAAM,SAAS,oBAAoB;AAAA,MAEtD,IAAI,OAAO,KAAK,UAAU,EAAE,WAAW,GAAG;AAAA,QACxC,OAAO,EAAE,MAAM,GAAG;AAAA,MACpB;AAAA,MAEA,cAAc,IAAI,SAAS,EAAE,OAAO,YAAY,IAAI,KAAK,IAAI,EAAE,CAAC;AAAA,MAChE,MAAM,SAAS,OAAO,YACpB,OAAO,QAAQ,UAAU,EAAE,MAAM,GAAG,mBAAmB,CACzD;AAAA,MACA,OAAO,aAAa,MAAM;AAAA,MAC1B,MAAM;AAAA,MACN,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE;AAAA;AAAA;AAG9C;AAEA,SAAS,YAAY,CAAC,YAA8C;AAAA,EAClE,MAAM,YAAY,OAAO,KAAK,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,mBAAmB;AAAA,EAC7E,MAAM,QAAQ,UAAU,OACtB,CAAC,GAAG,aAAa,IAAI,WAAW,UAAU,MAAM,GAAG,uBAAuB,EAAE,QAC5E,CACF;AAAA,EAEA,OAAO;AAAA,IACL,MAAM,eAAe,iBAAiB,UAAU,KAAK,IAAI;AAAA,IACzD,QAAQ;AAAA,MACN,qBAAqB,UAAU,KAAK,GAAG;AAAA,MACvC,iBAAiB;AAAA,IACnB;AAAA,EACF;AAAA;",
|
|
8
|
+
"debugId": "F64BD3B00C0B561764756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud setup flow for Eliza Cloud integration.
|
|
3
|
+
*
|
|
4
|
+
* Handles availability check → browser-based auth → agent provisioning
|
|
5
|
+
* during `runFirstTimeSetup()`. Transport-agnostic: every user-visible
|
|
6
|
+
* event and every interactive prompt is funneled through a
|
|
7
|
+
* `CloudSetupObserver`. CLI callers wrap their clack instance in
|
|
8
|
+
* `ClackObserver`; web/desktop callers provide an event-bridge observer.
|
|
9
|
+
*
|
|
10
|
+
* @module cloud-setup
|
|
11
|
+
*/
|
|
12
|
+
import type { StylePreset } from "@elizaos/core";
|
|
13
|
+
import type { CloudSetupObserver } from "./cloud/setup-observer.js";
|
|
14
|
+
/** Result of a successful cloud setup flow. */
|
|
15
|
+
export interface CloudSetupResult {
|
|
16
|
+
apiKey: string;
|
|
17
|
+
agentId: string | undefined;
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
bridgeUrl?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Quick pre-flight check: is Eliza Cloud accepting new agents?
|
|
23
|
+
* Returns null if available, or an error message string if not.
|
|
24
|
+
*/
|
|
25
|
+
export declare function checkCloudAvailability(baseUrl: string): Promise<string | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Run the full cloud setup flow:
|
|
28
|
+
* 1. Check availability
|
|
29
|
+
* 2. Authenticate via browser
|
|
30
|
+
* 3. Create + provision agent
|
|
31
|
+
*
|
|
32
|
+
* Returns the result or null if the user cancels / an error occurs.
|
|
33
|
+
* On failure, the caller should fall back to local mode.
|
|
34
|
+
*/
|
|
35
|
+
export declare function runCloudSetup(observer: CloudSetupObserver, agentName: string, preset?: StylePreset, baseUrl?: string): Promise<CloudSetupResult | null>;
|
|
36
|
+
//# sourceMappingURL=cloud-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-setup.d.ts","sourceRoot":"","sources":["../src/cloud-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8BxB;AAyPD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkElC"}
|