@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,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@clack/prompts`-backed implementation of `CloudSetupObserver`.
|
|
3
|
+
*
|
|
4
|
+
* Used by the CLI first-time-setup flow. Wraps a lazily-loaded clack module
|
|
5
|
+
* (so packaged desktop builds that never run interactive setup don't
|
|
6
|
+
* pay the dep cost) and renders every observer event as a spinner update,
|
|
7
|
+
* `log.info` / `log.warn`, or `confirm` / `select` prompt.
|
|
8
|
+
*
|
|
9
|
+
* @module cloud/clack-observer
|
|
10
|
+
*/
|
|
11
|
+
import { logger } from "@elizaos/core";
|
|
12
|
+
import type {
|
|
13
|
+
CloudSetupObserver,
|
|
14
|
+
ConfirmPrompt,
|
|
15
|
+
ProvisionSuccessInfo,
|
|
16
|
+
SelectChoicePrompt,
|
|
17
|
+
} from "./setup-observer.js";
|
|
18
|
+
|
|
19
|
+
/** Lazy-loaded @clack/prompts module type. */
|
|
20
|
+
type ClackModule = typeof import("@clack/prompts");
|
|
21
|
+
|
|
22
|
+
interface ClackSpinner {
|
|
23
|
+
start(message?: string): void;
|
|
24
|
+
stop(message?: string): void;
|
|
25
|
+
message(message?: string): void;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Observer that drives a clack CLI session. One instance per setup run
|
|
30
|
+
* — internal spinner state is reused across the auth + provisioning phases
|
|
31
|
+
* so we don't stack overlapping spinners.
|
|
32
|
+
*/
|
|
33
|
+
export class ClackObserver implements CloudSetupObserver {
|
|
34
|
+
private spinner: ClackSpinner | null = null;
|
|
35
|
+
|
|
36
|
+
constructor(private readonly clack: ClackModule) {}
|
|
37
|
+
|
|
38
|
+
// ── Spinner helpers ──────────────────────────────────────────────────
|
|
39
|
+
private ensureSpinner(): ClackSpinner {
|
|
40
|
+
if (!this.spinner) {
|
|
41
|
+
this.spinner = this.clack.spinner();
|
|
42
|
+
}
|
|
43
|
+
return this.spinner;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
private stopSpinner(message: string): void {
|
|
47
|
+
if (this.spinner) {
|
|
48
|
+
this.spinner.stop(message);
|
|
49
|
+
this.spinner = null;
|
|
50
|
+
} else {
|
|
51
|
+
// No active spinner — render the line as a log.info so the
|
|
52
|
+
// message isn't lost.
|
|
53
|
+
this.clack.log.info(message);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// ── Availability ─────────────────────────────────────────────────────
|
|
58
|
+
onAvailabilityChecked(result: { ok: boolean; reason?: string }): void {
|
|
59
|
+
if (!result.ok && result.reason) {
|
|
60
|
+
this.clack.log.warn(result.reason);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// ── Auth ─────────────────────────────────────────────────────────────
|
|
65
|
+
onAuthStart(loginUrl: string): void {
|
|
66
|
+
const spinner = this.ensureSpinner();
|
|
67
|
+
spinner.start("Connecting to Eliza Cloud...");
|
|
68
|
+
// The auth flow's first callback fires when we have the login URL.
|
|
69
|
+
spinner.stop("Opening your browser to log in...");
|
|
70
|
+
this.spinner = null;
|
|
71
|
+
this.clack.log.info(`If the browser didn't open, visit:\n ${loginUrl}`);
|
|
72
|
+
const polling = this.ensureSpinner();
|
|
73
|
+
polling.start("Waiting for login in browser...");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
onAuthBrowserOpenFailed(loginUrl: string, error: Error): void {
|
|
77
|
+
// Previously swallowed at debug-level. Now visible: the user may have
|
|
78
|
+
// missed the URL printed by onAuthStart, so re-emit it here with the
|
|
79
|
+
// explicit "couldn't open browser" framing.
|
|
80
|
+
this.clack.log.warn(
|
|
81
|
+
`Could not open browser automatically (${error.message}). Visit this URL to continue:\n ${loginUrl}`,
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
onAuthPollStatus(status: string): void {
|
|
86
|
+
if (status === "pending") {
|
|
87
|
+
this.ensureSpinner().message("Waiting for login in browser...");
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
onAuthSuccess(): void {
|
|
92
|
+
this.stopSpinner("✓ Logged in to Eliza Cloud!");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
onAuthFailure(message: string): void {
|
|
96
|
+
this.stopSpinner(message);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// ── Provisioning ─────────────────────────────────────────────────────
|
|
100
|
+
onProvisionStart(_agentName: string): void {
|
|
101
|
+
const spinner = this.ensureSpinner();
|
|
102
|
+
spinner.start("Creating your cloud agent...");
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
onProvisionStatus(status: string): void {
|
|
106
|
+
const spinner = this.ensureSpinner();
|
|
107
|
+
switch (status) {
|
|
108
|
+
case "created":
|
|
109
|
+
spinner.message("Agent created! Provisioning cloud environment...");
|
|
110
|
+
break;
|
|
111
|
+
case "queued":
|
|
112
|
+
spinner.message("Queued — waiting for available slot...");
|
|
113
|
+
break;
|
|
114
|
+
case "provisioning":
|
|
115
|
+
spinner.message("Provisioning cloud environment...");
|
|
116
|
+
break;
|
|
117
|
+
default:
|
|
118
|
+
spinner.message(`Status: ${status}...`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
onProvisionTimeout(_agentId: string, lastStatus: string): void {
|
|
123
|
+
this.stopSpinner(
|
|
124
|
+
`Provisioning timed out (last status: ${lastStatus}). The agent may still be starting up.`,
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
onProvisionFailure(reason: string): void {
|
|
129
|
+
this.stopSpinner(reason);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
onProvisionSuccess(result: ProvisionSuccessInfo): void {
|
|
133
|
+
this.stopSpinner(`☁️ Cloud agent "${result.agentId}" is running!`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// ── Generic ──────────────────────────────────────────────────────────
|
|
137
|
+
onNotice(message: string): void {
|
|
138
|
+
this.clack.log.warn(message);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
onFatalError(error: Error, context: string): void {
|
|
142
|
+
logger.error(`[cloud-setup] ${context}: ${error.message}`);
|
|
143
|
+
this.clack.log.error(`${context}: ${error.message}`);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// ── Prompts ──────────────────────────────────────────────────────────
|
|
147
|
+
async confirm(prompt: ConfirmPrompt): Promise<boolean | null> {
|
|
148
|
+
const args: {
|
|
149
|
+
message: string;
|
|
150
|
+
initialValue?: boolean;
|
|
151
|
+
active?: string;
|
|
152
|
+
inactive?: string;
|
|
153
|
+
} = { message: prompt.message };
|
|
154
|
+
|
|
155
|
+
if (prompt.defaultValue !== undefined) args.initialValue = prompt.defaultValue;
|
|
156
|
+
if (prompt.activeLabel !== undefined) args.active = prompt.activeLabel;
|
|
157
|
+
if (prompt.inactiveLabel !== undefined) args.inactive = prompt.inactiveLabel;
|
|
158
|
+
|
|
159
|
+
const result = await this.clack.confirm(args);
|
|
160
|
+
if (this.clack.isCancel(result)) return null;
|
|
161
|
+
return result;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
async selectChoice<T extends string>(
|
|
165
|
+
prompt: SelectChoicePrompt<T>,
|
|
166
|
+
): Promise<T | null> {
|
|
167
|
+
// Clack's `Option<Value>` is a conditional type that for `Value extends
|
|
168
|
+
// Primitive` makes `label` optional. TS can't narrow the conditional
|
|
169
|
+
// for an unresolved generic `T extends string`, so we describe the
|
|
170
|
+
// option shape via Parameters of clack's `select` and let inference
|
|
171
|
+
// pick it up. No `as unknown as` escape — the parameter type IS the
|
|
172
|
+
// right type, we just have to address it positionally.
|
|
173
|
+
type SelectOpts = Parameters<typeof this.clack.select<T>>[0];
|
|
174
|
+
const options = prompt.options.map((option) => {
|
|
175
|
+
const out = {
|
|
176
|
+
label: option.label,
|
|
177
|
+
value: option.value,
|
|
178
|
+
...(option.hint !== undefined ? { hint: option.hint } : {}),
|
|
179
|
+
};
|
|
180
|
+
return out;
|
|
181
|
+
}) as SelectOpts["options"];
|
|
182
|
+
const result = await this.clack.select<T>({
|
|
183
|
+
message: prompt.message,
|
|
184
|
+
options,
|
|
185
|
+
});
|
|
186
|
+
if (this.clack.isCancel(result)) return null;
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud API key + base URL resolution.
|
|
3
|
+
*
|
|
4
|
+
* Resolves the Eliza Cloud API key and base URL from (in priority order):
|
|
5
|
+
* 1. Explicit `config.cloud.apiKey` / `config.cloud.baseUrl`
|
|
6
|
+
* 2. Runtime settings + character secrets (`ELIZAOS_CLOUD_API_KEY`)
|
|
7
|
+
* 3. Process env (`ELIZAOS_CLOUD_API_KEY`, `ELIZAOS_CLOUD_BASE_URL`)
|
|
8
|
+
*
|
|
9
|
+
* Previously these helpers lived in `packages/agent/src/api/wallet-rpc.ts`
|
|
10
|
+
* because the wallet uses Cloud RPC proxies. They are NOT wallet-specific —
|
|
11
|
+
* cloud auth is consumed by cloud-status, cloud-billing, cloud-compat,
|
|
12
|
+
* health, x-relay, and travel-provider-relay routes. Hosting them under
|
|
13
|
+
* `cloud/` matches their actual ownership.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import type { ElizaConfig } from "../lib/config-like";
|
|
17
|
+
|
|
18
|
+
export const DEFAULT_CLOUD_API_BASE_URL = "https://elizacloud.ai/api/v1";
|
|
19
|
+
|
|
20
|
+
export type CloudApiKeyRuntimeLike = {
|
|
21
|
+
getSetting?: (key: string) => unknown;
|
|
22
|
+
character?: {
|
|
23
|
+
secrets?: Record<string, unknown>;
|
|
24
|
+
} | null;
|
|
25
|
+
} | null;
|
|
26
|
+
|
|
27
|
+
export function normalizeCloudSecret(
|
|
28
|
+
value: string | null | undefined,
|
|
29
|
+
): string | null {
|
|
30
|
+
if (typeof value !== "string") return null;
|
|
31
|
+
const trimmed = value.trim();
|
|
32
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function resolveRuntimeCloudApiKey(
|
|
36
|
+
runtime?: CloudApiKeyRuntimeLike,
|
|
37
|
+
): string | null {
|
|
38
|
+
const fromSetting = runtime?.getSetting?.("ELIZAOS_CLOUD_API_KEY");
|
|
39
|
+
if (typeof fromSetting === "string") {
|
|
40
|
+
return normalizeCloudSecret(fromSetting);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const fromSecrets = runtime?.character?.secrets?.ELIZAOS_CLOUD_API_KEY;
|
|
44
|
+
return typeof fromSecrets === "string"
|
|
45
|
+
? normalizeCloudSecret(fromSecrets)
|
|
46
|
+
: null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function resolveCloudApiBaseUrl(
|
|
50
|
+
rawBaseUrl?: string | null,
|
|
51
|
+
): string | null {
|
|
52
|
+
const candidate =
|
|
53
|
+
normalizeCloudSecret(rawBaseUrl ?? process.env.ELIZAOS_CLOUD_BASE_URL) ??
|
|
54
|
+
DEFAULT_CLOUD_API_BASE_URL;
|
|
55
|
+
try {
|
|
56
|
+
const parsed = new URL(candidate);
|
|
57
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
parsed.hash = "";
|
|
61
|
+
parsed.search = "";
|
|
62
|
+
const normalizedBase = parsed.toString().replace(/\/+$/, "");
|
|
63
|
+
return normalizedBase.endsWith("/api/v1")
|
|
64
|
+
? normalizedBase
|
|
65
|
+
: `${normalizedBase}/api/v1`;
|
|
66
|
+
} catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export function resolveCloudApiKey(
|
|
72
|
+
config?: Pick<ElizaConfig, "cloud"> | null,
|
|
73
|
+
runtime?: CloudApiKeyRuntimeLike,
|
|
74
|
+
): string | null {
|
|
75
|
+
return normalizeCloudSecret(
|
|
76
|
+
config?.cloud?.apiKey ??
|
|
77
|
+
resolveRuntimeCloudApiKey(runtime) ??
|
|
78
|
+
process.env.ELIZAOS_CLOUD_API_KEY,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Top-level orchestrator for cloud integration.
|
|
3
|
+
* Manages client, proxy, backup scheduler, and connection monitor lifecycle.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { logger } from "@elizaos/core";
|
|
7
|
+
import type { CloudConfig } from "../lib/config-like.js";
|
|
8
|
+
import { BackupScheduler } from "./backup.js";
|
|
9
|
+
import { normalizeCloudSiteUrl } from "./base-url.js";
|
|
10
|
+
import { ElizaCloudClient } from "./bridge-client.js";
|
|
11
|
+
import { CloudRuntimeProxy } from "./cloud-proxy.js";
|
|
12
|
+
import { ConnectionMonitor } from "./reconnect.js";
|
|
13
|
+
import { validateCloudBaseUrl } from "./validate-url.js";
|
|
14
|
+
|
|
15
|
+
export type CloudConnectionStatus =
|
|
16
|
+
| "disconnected"
|
|
17
|
+
| "connecting"
|
|
18
|
+
| "connected"
|
|
19
|
+
| "reconnecting"
|
|
20
|
+
| "error";
|
|
21
|
+
|
|
22
|
+
export interface CloudManagerCallbacks {
|
|
23
|
+
onStatusChange?: (status: CloudConnectionStatus) => void;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export class CloudManager {
|
|
27
|
+
private client: ElizaCloudClient | null = null;
|
|
28
|
+
private proxy: CloudRuntimeProxy | null = null;
|
|
29
|
+
private backupScheduler: BackupScheduler | null = null;
|
|
30
|
+
private connectionMonitor: ConnectionMonitor | null = null;
|
|
31
|
+
private status: CloudConnectionStatus = "disconnected";
|
|
32
|
+
private activeAgentId: string | null = null;
|
|
33
|
+
|
|
34
|
+
constructor(
|
|
35
|
+
private cloudConfig: CloudConfig,
|
|
36
|
+
private callbacks: CloudManagerCallbacks = {},
|
|
37
|
+
) {}
|
|
38
|
+
|
|
39
|
+
async init(): Promise<void> {
|
|
40
|
+
const rawUrl = normalizeCloudSiteUrl(this.cloudConfig.baseUrl);
|
|
41
|
+
const apiKey = this.cloudConfig.apiKey;
|
|
42
|
+
if (!apiKey)
|
|
43
|
+
throw new Error(
|
|
44
|
+
"Cloud API key is not configured. Run cloud login first.",
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const urlError = await validateCloudBaseUrl(rawUrl);
|
|
48
|
+
if (urlError) {
|
|
49
|
+
throw new Error(urlError);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// rawUrl is already normalized above — don't re-normalize, which would
|
|
53
|
+
// re-read ELIZAOS_CLOUD_BASE_URL and could produce a different URL than
|
|
54
|
+
// the one we just validated.
|
|
55
|
+
this.client = new ElizaCloudClient(rawUrl, apiKey);
|
|
56
|
+
logger.info(`[cloud-manager] Client initialised (baseUrl=${rawUrl})`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async connect(agentId: string): Promise<CloudRuntimeProxy> {
|
|
60
|
+
if (!this.client) await this.init();
|
|
61
|
+
if (!this.client) throw new Error("Cloud client failed to initialise");
|
|
62
|
+
|
|
63
|
+
this.setStatus("connecting");
|
|
64
|
+
this.activeAgentId = agentId;
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
await this.client.provision(agentId);
|
|
68
|
+
const agent = await this.client.getAgent(agentId);
|
|
69
|
+
|
|
70
|
+
this.proxy = new CloudRuntimeProxy(this.client, agentId, agent.agentName);
|
|
71
|
+
|
|
72
|
+
this.backupScheduler = new BackupScheduler(
|
|
73
|
+
this.client,
|
|
74
|
+
agentId,
|
|
75
|
+
this.cloudConfig.backup?.autoBackupIntervalMs ?? 60_000,
|
|
76
|
+
);
|
|
77
|
+
this.backupScheduler.start();
|
|
78
|
+
|
|
79
|
+
this.connectionMonitor = new ConnectionMonitor(
|
|
80
|
+
this.client,
|
|
81
|
+
agentId,
|
|
82
|
+
{
|
|
83
|
+
onDisconnect: () => this.setStatus("reconnecting"),
|
|
84
|
+
onReconnect: () => this.setStatus("connected"),
|
|
85
|
+
onStatusChange: (s) => {
|
|
86
|
+
if (s === "connected") this.setStatus("connected");
|
|
87
|
+
else if (s === "reconnecting") this.setStatus("reconnecting");
|
|
88
|
+
else this.setStatus("error");
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
this.cloudConfig.bridge?.heartbeatIntervalMs ?? 30_000,
|
|
92
|
+
);
|
|
93
|
+
this.connectionMonitor.start();
|
|
94
|
+
|
|
95
|
+
this.setStatus("connected");
|
|
96
|
+
logger.info(
|
|
97
|
+
`[cloud-manager] Connected to cloud agent (agentId=${agentId}, agentName=${agent.agentName})`,
|
|
98
|
+
);
|
|
99
|
+
return this.proxy;
|
|
100
|
+
} catch (err) {
|
|
101
|
+
this.setStatus("error");
|
|
102
|
+
if (this.backupScheduler) {
|
|
103
|
+
this.backupScheduler.stop();
|
|
104
|
+
this.backupScheduler = null;
|
|
105
|
+
}
|
|
106
|
+
if (this.connectionMonitor) {
|
|
107
|
+
this.connectionMonitor.stop();
|
|
108
|
+
this.connectionMonitor = null;
|
|
109
|
+
}
|
|
110
|
+
this.proxy = null;
|
|
111
|
+
this.activeAgentId = null;
|
|
112
|
+
this.setStatus("disconnected");
|
|
113
|
+
throw err;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async disconnect(): Promise<void> {
|
|
118
|
+
if (this.backupScheduler) {
|
|
119
|
+
await this.backupScheduler.finalSnapshot();
|
|
120
|
+
this.backupScheduler.stop();
|
|
121
|
+
this.backupScheduler = null;
|
|
122
|
+
}
|
|
123
|
+
if (this.connectionMonitor) {
|
|
124
|
+
this.connectionMonitor.stop();
|
|
125
|
+
this.connectionMonitor = null;
|
|
126
|
+
}
|
|
127
|
+
this.proxy = null;
|
|
128
|
+
this.activeAgentId = null;
|
|
129
|
+
this.setStatus("disconnected");
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async replaceApiKey(apiKey: string): Promise<void> {
|
|
133
|
+
await this.disconnect();
|
|
134
|
+
this.cloudConfig = {
|
|
135
|
+
...this.cloudConfig,
|
|
136
|
+
apiKey,
|
|
137
|
+
};
|
|
138
|
+
this.client = null;
|
|
139
|
+
await this.init();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
getProxy(): CloudRuntimeProxy | null {
|
|
143
|
+
return this.proxy;
|
|
144
|
+
}
|
|
145
|
+
getClient(): ElizaCloudClient | null {
|
|
146
|
+
return this.client;
|
|
147
|
+
}
|
|
148
|
+
getActiveAgentId(): string | null {
|
|
149
|
+
return this.activeAgentId;
|
|
150
|
+
}
|
|
151
|
+
getStatus(): CloudConnectionStatus {
|
|
152
|
+
return this.status;
|
|
153
|
+
}
|
|
154
|
+
isEnabled(): boolean {
|
|
155
|
+
return Boolean(this.cloudConfig.enabled && this.cloudConfig.apiKey);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
private setStatus(status: CloudConnectionStatus): void {
|
|
159
|
+
if (this.status === status) return;
|
|
160
|
+
this.status = status;
|
|
161
|
+
this.callbacks.onStatusChange?.(status);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drop-in replacement for a local AgentRuntime when running in cloud mode.
|
|
3
|
+
* Routes chat/status calls through the ElizaCloudClient to the remote sandbox.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { ChatChannelType, ElizaCloudClient } from "./bridge-client.js";
|
|
7
|
+
|
|
8
|
+
export class CloudRuntimeProxy {
|
|
9
|
+
constructor(
|
|
10
|
+
private client: ElizaCloudClient,
|
|
11
|
+
private agentId: string,
|
|
12
|
+
private _agentName: string,
|
|
13
|
+
) {}
|
|
14
|
+
|
|
15
|
+
get agentName(): string {
|
|
16
|
+
return this._agentName;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async handleChatMessage(
|
|
20
|
+
text: string,
|
|
21
|
+
roomId = "web-chat",
|
|
22
|
+
channelType: ChatChannelType = "DM",
|
|
23
|
+
): Promise<string> {
|
|
24
|
+
return this.client.sendMessage(this.agentId, text, roomId, channelType);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async *handleChatMessageStream(
|
|
28
|
+
text: string,
|
|
29
|
+
roomId = "web-chat",
|
|
30
|
+
channelType: ChatChannelType = "DM",
|
|
31
|
+
): AsyncGenerator<string> {
|
|
32
|
+
for await (const event of this.client.sendMessageStream(
|
|
33
|
+
this.agentId,
|
|
34
|
+
text,
|
|
35
|
+
roomId,
|
|
36
|
+
channelType,
|
|
37
|
+
)) {
|
|
38
|
+
if (event.type === "chunk" && typeof event.data.text === "string") {
|
|
39
|
+
yield event.data.text;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async getStatus(): Promise<{ state: string; agentName: string }> {
|
|
45
|
+
const agent = await this.client.getAgent(this.agentId);
|
|
46
|
+
return { state: agent.status, agentName: agent.agentName };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async isAlive(): Promise<boolean> {
|
|
50
|
+
return this.client.heartbeat(this.agentId).catch(() => false);
|
|
51
|
+
}
|
|
52
|
+
}
|