@elizaos/plugin-elizacloud 2.0.0-alpha.7 → 2.0.0-beta.1
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 +220 -0
- package/auto-enable.ts +17 -0
- package/dist/browser/index.browser.js +2 -21
- package/dist/browser/index.browser.js.map +5 -37
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.node.cjs +12173 -2271
- package/dist/cjs/index.node.js.map +135 -27
- package/dist/cloud/auth.d.ts +19 -0
- package/dist/cloud/auth.d.ts.map +1 -0
- package/dist/cloud/auth.js +330 -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 +3 -0
- package/dist/cloud/base-url.d.ts.map +1 -0
- package/dist/cloud/base-url.js +77 -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 +432 -0
- package/dist/cloud/bridge-client.js.map +11 -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 +853 -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 +5195 -0
- package/dist/cloud/cloud-wallet.js.map +92 -0
- package/dist/cloud/index.d.ts +9 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +30 -0
- package/dist/cloud/index.js.map +9 -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/validate-url.d.ts +2 -0
- package/dist/cloud/validate-url.d.ts.map +1 -0
- package/dist/cloud/validate-url.js +174 -0
- package/dist/cloud/validate-url.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/index.browser.d.ts +4 -2
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12851 -0
- package/dist/index.js.map +145 -0
- package/dist/index.node.d.ts +15 -2
- package/dist/index.node.d.ts.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +169 -0
- package/dist/init.js.map +12 -0
- package/dist/lib/cloud-connection.d.ts +78 -0
- package/dist/lib/cloud-connection.d.ts.map +1 -0
- package/dist/lib/cloud-connection.js +731 -0
- package/dist/lib/cloud-connection.js.map +14 -0
- package/dist/lib/cloud-secrets.d.ts +23 -0
- package/dist/lib/cloud-secrets.d.ts.map +1 -0
- package/dist/lib/cloud-secrets.js +64 -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 +22 -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 +34 -0
- package/dist/lib/server-cloud-tts.d.ts.map +1 -0
- package/dist/lib/server-cloud-tts.js +549 -0
- package/dist/lib/server-cloud-tts.js.map +13 -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 +4 -0
- package/dist/lib/tts-debug.d.ts.map +1 -0
- package/dist/lib/tts-debug.js +57 -0
- package/dist/lib/tts-debug.js.map +10 -0
- package/dist/models/embeddings.d.ts.map +1 -1
- package/dist/models/embeddings.js +319 -0
- package/dist/models/embeddings.js.map +13 -0
- package/dist/models/image.d.ts.map +1 -1
- package/dist/models/image.js +374 -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 +1386 -0
- package/dist/models/index.js.map +20 -0
- package/dist/models/research.d.ts.map +1 -1
- package/dist/models/research.js +324 -0
- package/dist/models/research.js.map +13 -0
- package/dist/models/speech.d.ts.map +1 -1
- package/dist/models/speech.js +273 -0
- package/dist/models/speech.js.map +13 -0
- package/dist/models/text.d.ts +5 -2
- package/dist/models/text.d.ts.map +1 -1
- package/dist/models/text.js +803 -0
- package/dist/models/text.js.map +15 -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 +283 -0
- package/dist/models/transcription.js.map +13 -0
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.node.js +12171 -2266
- package/dist/node/index.node.js.map +135 -27
- package/dist/onboarding.d.ts +35 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +883 -0
- package/dist/onboarding.js.map +14 -0
- package/dist/plugin.d.ts +20 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +7611 -0
- package/dist/plugin.js.map +104 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +127 -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 +7612 -0
- package/dist/register-routes.js.map +105 -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 +807 -0
- package/dist/routes/cloud-billing-routes.js.map +14 -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 +538 -0
- package/dist/routes/cloud-compat-routes.js.map +14 -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 +22 -0
- package/dist/routes/cloud-relay-routes.d.ts.map +1 -0
- package/dist/routes/cloud-relay-routes.js +60 -0
- package/dist/routes/cloud-relay-routes.js.map +10 -0
- package/dist/routes/cloud-routes-autonomous.d.ts +83 -0
- package/dist/routes/cloud-routes-autonomous.d.ts.map +1 -0
- package/dist/routes/cloud-routes-autonomous.js +6134 -0
- package/dist/routes/cloud-routes-autonomous.js.map +97 -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 +6888 -0
- package/dist/routes/cloud-routes.js.map +100 -0
- package/dist/routes/cloud-status-routes-autonomous.d.ts +15 -0
- package/dist/routes/cloud-status-routes-autonomous.d.ts.map +1 -0
- package/dist/routes/cloud-status-routes-autonomous.js +396 -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 +771 -0
- package/dist/routes/cloud-status-routes.js.map +15 -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 +363 -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.map +1 -1
- package/dist/services/cloud-container.js +241 -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 +41 -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 +3561 -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 +5377 -0
- package/dist/utils/cloud-sdk/public-routes.d.ts.map +1 -0
- package/dist/utils/cloud-sdk/public-routes.js +2950 -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 +655 -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 +7 -3
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +137 -0
- package/dist/utils/config.js.map +10 -0
- package/dist/utils/events.d.ts.map +1 -1
- package/dist/utils/events.js +43 -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 +144 -0
- package/dist/utils/sdk-client.js.map +11 -0
- package/package.json +108 -19
- package/src/cloud/auth.ts +175 -0
- package/src/cloud/backup.ts +46 -0
- package/src/cloud/base-url.ts +62 -0
- package/src/cloud/bridge-client.ts +602 -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/index.ts +28 -0
- package/src/cloud/reconnect.ts +111 -0
- package/src/cloud/validate-url.ts +181 -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/index.browser.ts +10 -0
- package/src/index.node.ts +39 -0
- package/src/index.ts +347 -0
- package/src/init.ts +39 -0
- package/src/lib/cloud-connection.ts +663 -0
- package/src/lib/cloud-secrets.ts +58 -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 +139 -0
- package/src/lib/server-cloud-tts.ts +609 -0
- package/src/lib/state-paths.ts +28 -0
- package/src/lib/tts-debug.ts +34 -0
- package/src/models/embeddings.ts +234 -0
- package/src/models/image.ts +219 -0
- package/src/models/index.ts +16 -0
- package/src/models/research.ts +265 -0
- package/src/models/speech.ts +78 -0
- package/src/models/text.ts +899 -0
- package/src/models/tokenization.ts +67 -0
- package/src/models/transcription.ts +97 -0
- package/src/onboarding.ts +396 -0
- package/src/plugin.ts +243 -0
- package/src/providers/openai.ts +16 -0
- package/src/register-routes.ts +6 -0
- package/src/routes/cloud-billing-routes.ts +754 -0
- package/src/routes/cloud-compat-routes.ts +314 -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 +89 -0
- package/src/routes/cloud-routes-autonomous.ts +996 -0
- package/src/routes/cloud-routes.ts +576 -0
- package/src/routes/cloud-status-routes-autonomous.ts +234 -0
- package/src/routes/cloud-status-routes.ts +73 -0
- package/src/services/cloud-auth.ts +567 -0
- package/src/services/cloud-backup.ts +208 -0
- package/src/services/cloud-bootstrap.ts +108 -0
- package/src/services/cloud-bridge.ts +386 -0
- package/src/services/cloud-container.ts +297 -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 +52 -29
- package/{types → src/types}/index.ts +6 -0
- package/src/utils/cloud-api.ts +10 -0
- package/src/utils/cloud-sdk/client.ts +735 -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 +5070 -0
- package/src/utils/cloud-sdk/types.cloud-api.ts +120 -0
- package/src/utils/cloud-sdk/types.ts +762 -0
- package/src/utils/config.ts +174 -0
- package/src/utils/events.ts +37 -0
- package/src/utils/helpers.ts +107 -0
- package/src/utils/responses-output.ts +115 -0
- package/src/utils/sdk-client.ts +37 -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,181 @@
|
|
|
1
|
+
import dns from "node:dns";
|
|
2
|
+
import net from "node:net";
|
|
3
|
+
import { promisify } from "node:util";
|
|
4
|
+
|
|
5
|
+
const dnsLookupAll = promisify(dns.lookup);
|
|
6
|
+
|
|
7
|
+
const BLOCKED_IPV4_CIDRS: Array<{ base: number; mask: number }> = [
|
|
8
|
+
cidrV4("0.0.0.0", 8),
|
|
9
|
+
cidrV4("10.0.0.0", 8),
|
|
10
|
+
cidrV4("172.16.0.0", 12),
|
|
11
|
+
cidrV4("192.168.0.0", 16),
|
|
12
|
+
cidrV4("100.64.0.0", 10),
|
|
13
|
+
cidrV4("127.0.0.0", 8),
|
|
14
|
+
cidrV4("169.254.0.0", 16),
|
|
15
|
+
cidrV4("192.0.0.0", 24),
|
|
16
|
+
cidrV4("198.18.0.0", 15),
|
|
17
|
+
cidrV4("192.0.2.0", 24),
|
|
18
|
+
cidrV4("198.51.100.0", 24),
|
|
19
|
+
cidrV4("203.0.113.0", 24),
|
|
20
|
+
cidrV4("224.0.0.0", 4),
|
|
21
|
+
cidrV4("240.0.0.0", 4),
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
function normalizeHostLike(value: string): string {
|
|
25
|
+
return value
|
|
26
|
+
.trim()
|
|
27
|
+
.toLowerCase()
|
|
28
|
+
.replace(/^\[|\]$/g, "");
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function decodeIpv6MappedHex(mapped: string): string | null {
|
|
32
|
+
const parts = mapped.split(":");
|
|
33
|
+
if (parts.length < 1 || parts.length > 2) return null;
|
|
34
|
+
|
|
35
|
+
const parsed = parts.map((part) => {
|
|
36
|
+
if (!/^[0-9a-f]{1,4}$/i.test(part)) return Number.NaN;
|
|
37
|
+
return Number.parseInt(part, 16);
|
|
38
|
+
});
|
|
39
|
+
if (parsed.some((value) => !Number.isFinite(value))) return null;
|
|
40
|
+
|
|
41
|
+
const [hi, lo] = parsed.length === 1 ? [0, parsed[0]] : parsed;
|
|
42
|
+
const octets = [hi >> 8, hi & 0xff, lo >> 8, lo & 0xff];
|
|
43
|
+
return octets.join(".");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function canonicalizeIpv6(ip: string): string | null {
|
|
47
|
+
try {
|
|
48
|
+
return new URL(`http://[${ip}]/`).hostname.replace(/^\[|\]$/g, "");
|
|
49
|
+
} catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function normalizeIpForPolicy(ip: string): string {
|
|
55
|
+
const base = normalizeHostLike(ip).split("%")[0];
|
|
56
|
+
if (!base) return base;
|
|
57
|
+
|
|
58
|
+
let normalized = base;
|
|
59
|
+
if (net.isIP(normalized) === 6) {
|
|
60
|
+
normalized = canonicalizeIpv6(normalized) ?? normalized;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
let mapped: string | null = null;
|
|
64
|
+
if (normalized.startsWith("::ffff:")) {
|
|
65
|
+
mapped = normalized.slice("::ffff:".length);
|
|
66
|
+
} else if (normalized.startsWith("0:0:0:0:0:ffff:")) {
|
|
67
|
+
mapped = normalized.slice("0:0:0:0:0:ffff:".length);
|
|
68
|
+
}
|
|
69
|
+
if (!mapped) return normalized;
|
|
70
|
+
|
|
71
|
+
if (net.isIP(mapped) === 4) return mapped;
|
|
72
|
+
return decodeIpv6MappedHex(mapped) ?? normalized;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function cidrV4(base: string, prefix: number): { base: number; mask: number } {
|
|
76
|
+
const parsed = parseIpv4ToInt(base);
|
|
77
|
+
if (parsed === null) {
|
|
78
|
+
throw new Error(`Invalid CIDR base IPv4 address: ${base}`);
|
|
79
|
+
}
|
|
80
|
+
const shift = 32 - prefix;
|
|
81
|
+
const mask = shift === 32 ? 0 : (0xffffffff << shift) >>> 0;
|
|
82
|
+
return { base: parsed & mask, mask };
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function parseIpv4ToInt(ip: string): number | null {
|
|
86
|
+
const parts = ip.split(".");
|
|
87
|
+
if (parts.length !== 4) return null;
|
|
88
|
+
|
|
89
|
+
let value = 0;
|
|
90
|
+
for (const part of parts) {
|
|
91
|
+
if (!/^\d{1,3}$/.test(part)) return null;
|
|
92
|
+
const octet = Number.parseInt(part, 10);
|
|
93
|
+
if (!Number.isInteger(octet) || octet < 0 || octet > 255) return null;
|
|
94
|
+
value = (value << 8) | octet;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return value >>> 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function isBlockedIpv4(ip: string): boolean {
|
|
101
|
+
const asInt = parseIpv4ToInt(ip);
|
|
102
|
+
if (asInt === null) return true;
|
|
103
|
+
return BLOCKED_IPV4_CIDRS.some((cidr) => (asInt & cidr.mask) === cidr.base);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function isBlockedIpv6(ip: string): boolean {
|
|
107
|
+
const normalized = ip.toLowerCase();
|
|
108
|
+
return (
|
|
109
|
+
normalized === "::" ||
|
|
110
|
+
normalized === "::1" ||
|
|
111
|
+
/^fe[89ab][0-9a-f]:/.test(normalized) ||
|
|
112
|
+
/^f[cd][0-9a-f]{2}:/i.test(normalized) ||
|
|
113
|
+
normalized.startsWith("ff")
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function isBlockedIp(ip: string): boolean {
|
|
118
|
+
const normalized = normalizeIpForPolicy(ip);
|
|
119
|
+
const family = net.isIP(normalized);
|
|
120
|
+
if (family === 4) return isBlockedIpv4(normalized);
|
|
121
|
+
if (family === 6) return isBlockedIpv6(normalized);
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export async function validateCloudBaseUrl(
|
|
126
|
+
rawUrl: string,
|
|
127
|
+
): Promise<string | null> {
|
|
128
|
+
let parsed: URL;
|
|
129
|
+
try {
|
|
130
|
+
parsed = new URL(rawUrl);
|
|
131
|
+
} catch {
|
|
132
|
+
return `Invalid cloud base URL: "${rawUrl}"`;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (parsed.protocol !== "https:") {
|
|
136
|
+
return `Cloud base URL must use HTTPS, got "${parsed.protocol}" in "${rawUrl}"`;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const hostname = normalizeHostLike(parsed.hostname);
|
|
140
|
+
if (!hostname) {
|
|
141
|
+
return `Invalid cloud base URL: "${rawUrl}"`;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (
|
|
145
|
+
hostname === "localhost" ||
|
|
146
|
+
hostname.endsWith(".localhost") ||
|
|
147
|
+
hostname.endsWith(".local")
|
|
148
|
+
) {
|
|
149
|
+
return `Cloud base URL "${rawUrl}" points to a blocked local hostname.`;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Dev-mode bypass: skip IP-range blocking but keep URL format checks above.
|
|
153
|
+
if (process.env.NODE_ENV === "development" || process.env.ELIZA_DEV) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (isBlockedIp(hostname)) {
|
|
158
|
+
return `Cloud base URL "${rawUrl}" points to a blocked address.`;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
try {
|
|
162
|
+
const results = await dnsLookupAll(hostname, { all: true });
|
|
163
|
+
const addresses = Array.isArray(results) ? results : [results];
|
|
164
|
+
for (const entry of addresses) {
|
|
165
|
+
const ip =
|
|
166
|
+
typeof entry === "string"
|
|
167
|
+
? entry
|
|
168
|
+
: (entry as { address: string }).address;
|
|
169
|
+
if (isBlockedIp(ip)) {
|
|
170
|
+
return (
|
|
171
|
+
`Cloud base URL "${rawUrl}" resolves to ${ip}, ` +
|
|
172
|
+
"which is a blocked internal/metadata address."
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
} catch {
|
|
177
|
+
return `Cloud base URL "${rawUrl}" could not be resolved via DNS.`;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cloudStatusProvider — Container and connection status in agent state.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from "@elizaos/core";
|
|
6
|
+
import type { CloudAuthService } from "../services/cloud-auth";
|
|
7
|
+
import type { CloudBridgeService } from "../services/cloud-bridge";
|
|
8
|
+
import type { CloudContainerService } from "../services/cloud-container";
|
|
9
|
+
|
|
10
|
+
const MAX_CONTAINER_SUMMARIES = 10;
|
|
11
|
+
|
|
12
|
+
export const cloudStatusProvider: Provider = {
|
|
13
|
+
name: "elizacloud_status",
|
|
14
|
+
description: "ElizaCloud container and connection status",
|
|
15
|
+
descriptionCompressed: "ElizaCloud container/connection status.",
|
|
16
|
+
dynamic: true,
|
|
17
|
+
position: 90,
|
|
18
|
+
contexts: ["settings", "finance"],
|
|
19
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
20
|
+
cacheStable: false,
|
|
21
|
+
cacheScope: "turn",
|
|
22
|
+
async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {
|
|
23
|
+
try {
|
|
24
|
+
const auth = runtime.getService("CLOUD_AUTH") as CloudAuthService | undefined;
|
|
25
|
+
if (!auth?.isAuthenticated()) {
|
|
26
|
+
return {
|
|
27
|
+
text: "ElizaCloud: Not authenticated",
|
|
28
|
+
values: { cloudAuthenticated: false },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const containerSvc = runtime.getService("CLOUD_CONTAINER") as
|
|
33
|
+
| CloudContainerService
|
|
34
|
+
| undefined;
|
|
35
|
+
const bridgeSvc = runtime.getService("CLOUD_BRIDGE") as CloudBridgeService | undefined;
|
|
36
|
+
const containers = containerSvc?.getTrackedContainers() ?? [];
|
|
37
|
+
const connected = bridgeSvc?.getConnectedContainerIds() ?? [];
|
|
38
|
+
|
|
39
|
+
const running = containers.filter((c) => c.status === "running").length;
|
|
40
|
+
const deploying = containers.filter(
|
|
41
|
+
(c) => c.status === "pending" || c.status === "building" || c.status === "deploying"
|
|
42
|
+
).length;
|
|
43
|
+
|
|
44
|
+
const summaries = containers.slice(0, MAX_CONTAINER_SUMMARIES).map((c) => ({
|
|
45
|
+
id: c.id,
|
|
46
|
+
name: c.name,
|
|
47
|
+
status: c.status,
|
|
48
|
+
url: c.load_balancer_url,
|
|
49
|
+
billing: c.billing_status,
|
|
50
|
+
bridged: connected.includes(c.id),
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
const lines = [
|
|
54
|
+
`ElizaCloud: ${containers.length} container(s), ${running} running, ${connected.length} bridged`,
|
|
55
|
+
...summaries.map(
|
|
56
|
+
(c) =>
|
|
57
|
+
` - ${c.name} [${c.status}]${c.url ? ` @ ${c.url}` : ""}${c.bridged ? " (bridged)" : ""}`
|
|
58
|
+
),
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
text: lines.join("\n"),
|
|
63
|
+
values: {
|
|
64
|
+
cloudAuthenticated: true,
|
|
65
|
+
totalContainers: containers.length,
|
|
66
|
+
runningContainers: running,
|
|
67
|
+
deployingContainers: deploying,
|
|
68
|
+
},
|
|
69
|
+
data: { containers: summaries, truncated: containers.length > summaries.length },
|
|
70
|
+
};
|
|
71
|
+
} catch {
|
|
72
|
+
return { text: "", values: {}, data: {} };
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* containerHealthProvider — Container health in agent state (private, on-demand).
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from "@elizaos/core";
|
|
6
|
+
import type { CloudAuthService } from "../services/cloud-auth";
|
|
7
|
+
import type { CloudContainerService } from "../services/cloud-container";
|
|
8
|
+
|
|
9
|
+
const MAX_HEALTH_REPORTS = 10;
|
|
10
|
+
|
|
11
|
+
export const containerHealthProvider: Provider = {
|
|
12
|
+
name: "elizacloud_health",
|
|
13
|
+
description: "ElizaCloud container health",
|
|
14
|
+
descriptionCompressed: "ElizaCloud container health.",
|
|
15
|
+
dynamic: true,
|
|
16
|
+
position: 92,
|
|
17
|
+
private: true,
|
|
18
|
+
contexts: ["settings", "finance"],
|
|
19
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
20
|
+
cacheStable: false,
|
|
21
|
+
cacheScope: "turn",
|
|
22
|
+
async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {
|
|
23
|
+
try {
|
|
24
|
+
const auth = runtime.getService("CLOUD_AUTH") as CloudAuthService | undefined;
|
|
25
|
+
if (!auth?.isAuthenticated()) return { text: "" };
|
|
26
|
+
|
|
27
|
+
const svc = runtime.getService("CLOUD_CONTAINER") as CloudContainerService | undefined;
|
|
28
|
+
const running = svc?.getTrackedContainers().filter((c) => c.status === "running") ?? [];
|
|
29
|
+
if (running.length === 0)
|
|
30
|
+
return {
|
|
31
|
+
text: "No running containers.",
|
|
32
|
+
values: { healthyContainers: 0 },
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// NOTE: True health would require hitting each container's health_check_path
|
|
36
|
+
// endpoint over the network. We approximate here using locally-cached state:
|
|
37
|
+
// a container is considered healthy when it is running, billing is active,
|
|
38
|
+
// and there is no recorded error message.
|
|
39
|
+
const reports = running.slice(0, MAX_HEALTH_REPORTS).map((c) => ({
|
|
40
|
+
id: c.id,
|
|
41
|
+
name: c.name,
|
|
42
|
+
healthy: c.status === "running" && c.billing_status === "active" && !c.error_message,
|
|
43
|
+
status: c.status,
|
|
44
|
+
billing: c.billing_status,
|
|
45
|
+
}));
|
|
46
|
+
|
|
47
|
+
const healthy = reports.filter((r) => r.healthy).length;
|
|
48
|
+
const text = [
|
|
49
|
+
`Health: ${healthy}/${reports.length} healthy`,
|
|
50
|
+
...reports.map(
|
|
51
|
+
(r) =>
|
|
52
|
+
` - ${r.name}: ${r.healthy ? "OK" : "UNHEALTHY"} (status=${r.status}, billing=${r.billing})`
|
|
53
|
+
),
|
|
54
|
+
].join("\n");
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
text,
|
|
58
|
+
values: {
|
|
59
|
+
healthyContainers: healthy,
|
|
60
|
+
unhealthyContainers: reports.length - healthy,
|
|
61
|
+
},
|
|
62
|
+
data: { reports, truncated: running.length > reports.length },
|
|
63
|
+
};
|
|
64
|
+
} catch {
|
|
65
|
+
return { text: "", values: {}, data: {} };
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** Credit balance in agent state (60s cache). */
|
|
2
|
+
|
|
3
|
+
import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from "@elizaos/core";
|
|
4
|
+
import { logger } from "@elizaos/core";
|
|
5
|
+
import type { CloudAuthService } from "../services/cloud-auth";
|
|
6
|
+
import type { CreditBalanceResponse } from "../types/cloud";
|
|
7
|
+
|
|
8
|
+
const TOP_UP_URL = "https://www.elizacloud.ai/dashboard/settings?tab=billing";
|
|
9
|
+
const creditCaches = new WeakMap<IAgentRuntime, { value: number; at: number }>();
|
|
10
|
+
const TTL = 60_000;
|
|
11
|
+
const MAX_CREDIT_TEXT_CHARS = 240;
|
|
12
|
+
|
|
13
|
+
export const creditBalanceProvider: Provider = {
|
|
14
|
+
name: "elizacloud_credits",
|
|
15
|
+
description: "ElizaCloud credit balance",
|
|
16
|
+
descriptionCompressed: "ElizaCloud credit balance.",
|
|
17
|
+
dynamic: true,
|
|
18
|
+
contexts: ["settings", "finance"],
|
|
19
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
20
|
+
cacheStable: false,
|
|
21
|
+
cacheScope: "turn",
|
|
22
|
+
position: 91,
|
|
23
|
+
async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {
|
|
24
|
+
const auth = runtime.getService("CLOUD_AUTH") as CloudAuthService | undefined;
|
|
25
|
+
if (!auth?.isAuthenticated()) return { text: "" };
|
|
26
|
+
|
|
27
|
+
const cached = creditCaches.get(runtime);
|
|
28
|
+
if (cached && Date.now() - cached.at < TTL) {
|
|
29
|
+
const result = format(cached.value);
|
|
30
|
+
return { ...result, text: (result.text ?? "").slice(0, MAX_CREDIT_TEXT_CHARS) };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let balance: number;
|
|
34
|
+
try {
|
|
35
|
+
const { data } = await auth.getClient().get<CreditBalanceResponse>("/credits/balance");
|
|
36
|
+
balance = data.balance;
|
|
37
|
+
} catch (err) {
|
|
38
|
+
logger.warn(
|
|
39
|
+
`[CloudCredits] Failed to fetch balance: ${err instanceof Error ? err.message : err}`
|
|
40
|
+
);
|
|
41
|
+
if (cached) {
|
|
42
|
+
const result = format(cached.value);
|
|
43
|
+
return { ...result, text: (result.text ?? "").slice(0, MAX_CREDIT_TEXT_CHARS) };
|
|
44
|
+
}
|
|
45
|
+
return { text: "", values: { cloudCreditsUnavailable: true }, data: {} };
|
|
46
|
+
}
|
|
47
|
+
creditCaches.set(runtime, { value: balance, at: Date.now() });
|
|
48
|
+
|
|
49
|
+
if (balance < 1.0) logger.warn(`[CloudCredits] Low balance: $${balance.toFixed(2)}`);
|
|
50
|
+
const result = format(balance);
|
|
51
|
+
return { ...result, text: (result.text ?? "").slice(0, MAX_CREDIT_TEXT_CHARS) };
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
function format(balance: number): ProviderResult {
|
|
56
|
+
const low = balance < 2.0;
|
|
57
|
+
const critical = balance < 0.5;
|
|
58
|
+
let text = `ElizaCloud credits: $${balance.toFixed(2)}`;
|
|
59
|
+
if (critical) text += ` (CRITICAL — top up at ${TOP_UP_URL})`;
|
|
60
|
+
else if (low) text += ` (LOW — top up at ${TOP_UP_URL})`;
|
|
61
|
+
return {
|
|
62
|
+
text,
|
|
63
|
+
values: {
|
|
64
|
+
cloudCredits: balance,
|
|
65
|
+
cloudCreditsLow: low,
|
|
66
|
+
cloudCreditsCritical: critical,
|
|
67
|
+
cloudTopUpUrl: TOP_UP_URL,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/** Exposes available cloud models in agent state. */
|
|
2
|
+
|
|
3
|
+
import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from "@elizaos/core";
|
|
4
|
+
import type { CloudModelRegistryService, ModelsByProvider } from "../services/cloud-model-registry";
|
|
5
|
+
|
|
6
|
+
const TTL = 300_000; // 5 minutes
|
|
7
|
+
const MAX_MODEL_PROVIDERS = 12;
|
|
8
|
+
const MAX_MODELS_PER_PROVIDER = 50;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Per-runtime cache using a WeakMap keyed by the runtime object.
|
|
12
|
+
* This avoids sharing stale model data between different agent instances
|
|
13
|
+
* running in the same process.
|
|
14
|
+
*/
|
|
15
|
+
const runtimeCaches = new WeakMap<IAgentRuntime, { value: ModelsByProvider; at: number }>();
|
|
16
|
+
|
|
17
|
+
export const modelRegistryProvider: Provider = {
|
|
18
|
+
name: "elizacloud_models",
|
|
19
|
+
description: "Available AI models from ElizaCloud grouped by provider",
|
|
20
|
+
descriptionCompressed: "Available AI models from ElizaCloud by provider.",
|
|
21
|
+
dynamic: true,
|
|
22
|
+
contexts: ["settings", "finance"],
|
|
23
|
+
contextGate: { anyOf: ["settings", "finance"] },
|
|
24
|
+
cacheStable: false,
|
|
25
|
+
cacheScope: "turn",
|
|
26
|
+
position: 92,
|
|
27
|
+
async get(runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> {
|
|
28
|
+
try {
|
|
29
|
+
const registry = runtime.getService("CLOUD_MODEL_REGISTRY") as
|
|
30
|
+
| CloudModelRegistryService
|
|
31
|
+
| undefined;
|
|
32
|
+
|
|
33
|
+
if (!registry) return { text: "" };
|
|
34
|
+
|
|
35
|
+
const cached = runtimeCaches.get(runtime);
|
|
36
|
+
if (cached && Date.now() - cached.at < TTL) {
|
|
37
|
+
const cachedValue = Object.fromEntries(
|
|
38
|
+
Object.entries(cached.value).slice(0, MAX_MODEL_PROVIDERS)
|
|
39
|
+
) as ModelsByProvider;
|
|
40
|
+
return formatModels(cachedValue);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const byProvider = await registry.getModelsByProvider();
|
|
44
|
+
|
|
45
|
+
if (Object.keys(byProvider).length === 0) {
|
|
46
|
+
return { text: "" };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
runtimeCaches.set(runtime, { value: byProvider, at: Date.now() });
|
|
50
|
+
const capped = Object.fromEntries(
|
|
51
|
+
Object.entries(byProvider).slice(0, MAX_MODEL_PROVIDERS)
|
|
52
|
+
) as ModelsByProvider;
|
|
53
|
+
return formatModels(capped);
|
|
54
|
+
} catch {
|
|
55
|
+
return { text: "", values: {}, data: {} };
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
function formatModels(byProvider: ModelsByProvider): ProviderResult {
|
|
61
|
+
const providers = Object.keys(byProvider).sort().slice(0, MAX_MODEL_PROVIDERS);
|
|
62
|
+
const total = providers.reduce(
|
|
63
|
+
(n, provider) => n + byProvider[provider].slice(0, MAX_MODELS_PER_PROVIDER).length,
|
|
64
|
+
0
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
return {
|
|
68
|
+
text: `ElizaCloud: ${total} models (${providers.join(", ")})`,
|
|
69
|
+
values: {
|
|
70
|
+
cloudModelProviders: providers.join(","),
|
|
71
|
+
cloudModelCount: total,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Plugin } from "@elizaos/core";
|
|
2
|
+
|
|
3
|
+
export const elizaOSCloudPlugin: Plugin = {
|
|
4
|
+
name: "elizaOSCloud",
|
|
5
|
+
description:
|
|
6
|
+
"ElizaOS Cloud browser facade. Node-only routes and services are exported from the node entry.",
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export * from "./types";
|
|
10
|
+
export default elizaOSCloudPlugin;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import pluginDefault from "./index.js";
|
|
2
|
+
|
|
3
|
+
export * from "./index.js";
|
|
4
|
+
export default pluginDefault;
|
|
5
|
+
|
|
6
|
+
// Node-only route handlers (depend on node:os and other node built-ins).
|
|
7
|
+
export { handleCloudBillingRoute } from "./routes/cloud-billing-routes";
|
|
8
|
+
export { handleCloudCompatRoute } from "./routes/cloud-compat-routes";
|
|
9
|
+
export { handleCloudRelayRoute } from "./routes/cloud-relay-routes";
|
|
10
|
+
export {
|
|
11
|
+
type CloudRouteState,
|
|
12
|
+
handleCloudRoute,
|
|
13
|
+
} from "./routes/cloud-routes-autonomous";
|
|
14
|
+
export type { CloudConfigLike } from "./routes/cloud-routes-autonomous";
|
|
15
|
+
export { handleCloudStatusRoutes } from "./routes/cloud-status-routes";
|
|
16
|
+
export { runCloudOnboarding, type CloudOnboardingResult } from "./onboarding";
|
|
17
|
+
export { CloudManager, type CloudManagerCallbacks } from "./cloud/cloud-manager";
|
|
18
|
+
export {
|
|
19
|
+
getOrCreateClientAddressKey,
|
|
20
|
+
persistCloudWalletCache,
|
|
21
|
+
provisionCloudWalletsBestEffort,
|
|
22
|
+
} from "./cloud/cloud-wallet";
|
|
23
|
+
export {
|
|
24
|
+
normalizeCloudSecret,
|
|
25
|
+
resolveCloudApiKey,
|
|
26
|
+
} from "./cloud/cloud-api-key";
|
|
27
|
+
export {
|
|
28
|
+
clearCloudSecrets,
|
|
29
|
+
getCloudSecret,
|
|
30
|
+
scrubCloudSecretsFromEnv,
|
|
31
|
+
} from "./lib/cloud-secrets";
|
|
32
|
+
export {
|
|
33
|
+
__resetCloudBaseUrlCache,
|
|
34
|
+
ensureCloudTtsApiKeyAlias,
|
|
35
|
+
handleCloudTtsPreviewRoute,
|
|
36
|
+
mirrorCompatHeaders,
|
|
37
|
+
resolveCloudTtsBaseUrl,
|
|
38
|
+
resolveElevenLabsApiKeyForCloudMode,
|
|
39
|
+
} from "./lib/server-cloud-tts";
|