@elizaos/plugin-elizacloud 2.0.0-beta.1 → 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/README.md +20 -44
- package/auto-enable.ts +10 -5
- package/dist/browser/index.browser.js +2 -2
- package/dist/browser/index.browser.js.map +4 -4
- package/dist/cjs/index.node.cjs +2874 -5915
- package/dist/cjs/index.node.js.map +47 -116
- 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.js +4 -51
- package/dist/cloud/auth.js.map +4 -4
- package/dist/cloud/base-url.d.ts +6 -2
- package/dist/cloud/base-url.d.ts.map +1 -1
- package/dist/cloud/base-url.js +3 -51
- package/dist/cloud/base-url.js.map +3 -3
- package/dist/cloud/bridge-client.d.ts +3 -3
- package/dist/cloud/bridge-client.d.ts.map +1 -1
- package/dist/cloud/bridge-client.js +3 -51
- package/dist/cloud/bridge-client.js.map +3 -3
- 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-manager.js +45 -92
- package/dist/cloud/cloud-manager.js.map +6 -6
- package/dist/cloud/cloud-wallet.js +2 -4835
- package/dist/cloud/cloud-wallet.js.map +3 -82
- 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 +6 -0
- package/dist/cloud/index.d.ts.map +1 -1
- package/dist/cloud/index.js +1782 -1
- package/dist/cloud/index.js.map +18 -3
- 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/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.map +1 -1
- package/dist/cloud/validate-url.js +2 -1
- package/dist/cloud/validate-url.js.map +3 -3
- 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-setup.d.ts +36 -0
- package/dist/cloud-setup.d.ts.map +1 -0
- package/dist/{onboarding.js → cloud-setup.js} +139 -139
- 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 +11 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5416 -8405
- package/dist/index.js.map +48 -116
- package/dist/index.node.d.ts +8 -1
- package/dist/index.node.d.ts.map +1 -1
- package/dist/init.js +17 -4
- package/dist/init.js.map +4 -4
- package/dist/lib/cloud-connection.d.ts +0 -1
- package/dist/lib/cloud-connection.d.ts.map +1 -1
- package/dist/lib/cloud-connection.js +14 -91
- package/dist/lib/cloud-connection.js.map +7 -7
- package/dist/lib/cloud-secrets.d.ts +5 -18
- package/dist/lib/cloud-secrets.d.ts.map +1 -1
- package/dist/lib/cloud-secrets.js +8 -36
- package/dist/lib/cloud-secrets.js.map +3 -3
- package/dist/lib/config-like.d.ts +1 -1
- package/dist/lib/config-like.d.ts.map +1 -1
- package/dist/lib/config-like.js +3 -3
- package/dist/lib/config-like.js.map +3 -3
- package/dist/lib/credential-type-map.d.ts +1 -1
- package/dist/lib/credential-type-map.js.map +1 -1
- package/dist/lib/http.d.ts +0 -11
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js.map +2 -2
- package/dist/lib/server-cloud-tts.d.ts +12 -25
- package/dist/lib/server-cloud-tts.d.ts.map +1 -1
- package/dist/lib/server-cloud-tts.js +31 -329
- package/dist/lib/server-cloud-tts.js.map +4 -7
- package/dist/lib/tts-debug.d.ts +5 -3
- package/dist/lib/tts-debug.d.ts.map +1 -1
- package/dist/lib/tts-debug.js +1 -34
- package/dist/lib/tts-debug.js.map +3 -4
- package/dist/models/embeddings.d.ts.map +1 -1
- package/dist/models/embeddings.js +79 -69
- package/dist/models/embeddings.js.map +6 -6
- package/dist/models/image.d.ts.map +1 -1
- package/dist/models/image.js +42 -15
- package/dist/models/image.js.map +6 -6
- package/dist/models/index.js +676 -166
- package/dist/models/index.js.map +11 -12
- package/dist/models/research.d.ts.map +1 -1
- package/dist/models/research.js +24 -7
- package/dist/models/research.js.map +6 -6
- package/dist/models/speech.d.ts +61 -3
- package/dist/models/speech.d.ts.map +1 -1
- package/dist/models/speech.js +173 -17
- package/dist/models/speech.js.map +5 -5
- package/dist/models/text.d.ts +106 -1
- package/dist/models/text.d.ts.map +1 -1
- package/dist/models/text.js +452 -82
- package/dist/models/text.js.map +7 -8
- package/dist/models/tokenization.d.ts.map +1 -1
- package/dist/models/tokenization.js.map +2 -2
- package/dist/models/transcription.d.ts.map +1 -1
- package/dist/models/transcription.js +20 -6
- package/dist/models/transcription.js.map +5 -5
- package/dist/node/index.node.js +2828 -5838
- package/dist/node/index.node.js.map +47 -116
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +376 -5050
- package/dist/plugin.js.map +16 -92
- package/dist/providers/openai.js +11 -2
- package/dist/providers/openai.js.map +3 -3
- package/dist/register-routes.js +376 -5050
- package/dist/register-routes.js.map +16 -92
- package/dist/routes/cloud-billing-routes.d.ts.map +1 -1
- package/dist/routes/cloud-billing-routes.js +17 -60
- package/dist/routes/cloud-billing-routes.js.map +8 -7
- 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.map +1 -1
- package/dist/routes/cloud-compat-routes.js +17 -60
- package/dist/routes/cloud-compat-routes.js.map +8 -7
- package/dist/routes/cloud-features-routes.js +2 -2
- package/dist/routes/cloud-features-routes.js.map +4 -4
- package/dist/routes/cloud-relay-routes.d.ts +2 -1
- package/dist/routes/cloud-relay-routes.d.ts.map +1 -1
- package/dist/routes/cloud-relay-routes.js +84 -2
- package/dist/routes/cloud-relay-routes.js.map +5 -4
- package/dist/routes/cloud-routes-autonomous.d.ts +3 -4
- package/dist/routes/cloud-routes-autonomous.d.ts.map +1 -1
- package/dist/routes/cloud-routes-autonomous.js +11 -4893
- package/dist/routes/cloud-routes-autonomous.js.map +8 -87
- package/dist/routes/cloud-routes.d.ts +2 -2
- package/dist/routes/cloud-routes.d.ts.map +1 -1
- package/dist/routes/cloud-routes.js +343 -5058
- package/dist/routes/cloud-routes.js.map +13 -90
- package/dist/routes/cloud-status-routes-autonomous.d.ts +1 -2
- package/dist/routes/cloud-status-routes-autonomous.d.ts.map +1 -1
- package/dist/routes/cloud-status-routes-autonomous.js +4 -51
- package/dist/routes/cloud-status-routes-autonomous.js.map +5 -5
- package/dist/routes/cloud-status-routes.js +14 -90
- package/dist/routes/cloud-status-routes.js.map +7 -7
- 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 +1 -1
- package/dist/services/cloud-auth.d.ts.map +1 -1
- package/dist/services/cloud-auth.js +7 -2
- package/dist/services/cloud-auth.js.map +4 -4
- package/dist/services/cloud-backup.js.map +2 -2
- package/dist/services/cloud-bootstrap.d.ts.map +1 -1
- package/dist/services/cloud-bootstrap.js.map +2 -2
- package/dist/services/cloud-bridge.js.map +3 -3
- 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 +52 -1
- package/dist/services/cloud-container.js.map +4 -4
- package/dist/services/cloud-credential-provider.js.map +2 -2
- package/dist/services/cloud-model-registry.js.map +2 -2
- package/dist/types/cloud.d.ts +1 -0
- package/dist/types/cloud.d.ts.map +1 -1
- package/dist/types/cloud.js.map +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/cloud-sdk/client.d.ts.map +1 -1
- package/dist/utils/cloud-sdk/client.js +136 -4
- package/dist/utils/cloud-sdk/client.js.map +5 -5
- package/dist/utils/cloud-sdk/http.js.map +1 -1
- package/dist/utils/cloud-sdk/public-routes.d.ts +186 -0
- package/dist/utils/cloud-sdk/public-routes.d.ts.map +1 -1
- package/dist/utils/cloud-sdk/public-routes.js +99 -1
- package/dist/utils/cloud-sdk/public-routes.js.map +3 -3
- package/dist/utils/cloud-sdk/types.d.ts +0 -2
- package/dist/utils/cloud-sdk/types.d.ts.map +1 -1
- package/dist/utils/cloud-sdk/types.js.map +1 -1
- package/dist/utils/config.d.ts +10 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +12 -2
- package/dist/utils/config.js.map +3 -3
- package/dist/utils/events.d.ts +23 -2
- package/dist/utils/events.d.ts.map +1 -1
- package/dist/utils/events.js +5 -3
- package/dist/utils/events.js.map +3 -3
- package/dist/utils/sdk-client.d.ts.map +1 -1
- package/dist/utils/sdk-client.js +17 -4
- package/dist/utils/sdk-client.js.map +4 -4
- 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 +51 -22
- package/src/cloud/auth-service-types.ts +24 -0
- package/src/cloud/base-url.ts +6 -62
- package/src/cloud/clack-observer.ts +189 -0
- package/src/cloud/duffel-client.ts +847 -0
- package/src/cloud/index.ts +10 -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/setup-observer.ts +125 -0
- package/src/cloud/validate-url.ts +7 -1
- package/src/cloud/x402-payment-handler.ts +215 -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 +29 -0
- package/src/index.node.ts +31 -1
- package/src/index.ts +76 -4
- package/src/lib/cloud-connection.ts +2 -4
- package/src/lib/cloud-secrets.ts +10 -54
- package/src/lib/config-like.ts +1 -1
- package/src/lib/credential-type-map.ts +2 -2
- package/src/lib/http.ts +0 -17
- package/src/lib/server-cloud-tts.ts +33 -341
- package/src/lib/tts-debug.ts +5 -34
- package/src/models/embeddings.ts +140 -76
- package/src/models/image.ts +29 -14
- package/src/models/research.ts +11 -1
- package/src/models/speech.ts +269 -23
- package/src/models/text.ts +704 -110
- package/src/models/tokenization.ts +2 -2
- package/src/models/transcription.ts +7 -3
- package/src/plugin.ts +38 -0
- package/src/routes/cloud-billing-routes.ts +4 -14
- package/src/routes/cloud-coding-container-routes.ts +198 -0
- package/src/routes/cloud-compat-routes.ts +4 -14
- package/src/routes/cloud-features-routes.ts +1 -1
- package/src/routes/cloud-relay-routes.ts +47 -1
- package/src/routes/cloud-routes-autonomous.ts +7 -10
- package/src/routes/cloud-routes.ts +68 -7
- package/src/routes/cloud-status-routes-autonomous.ts +6 -2
- 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 +9 -2
- package/src/services/cloud-bootstrap.ts +1 -3
- package/src/services/cloud-bridge.ts +1 -1
- package/src/services/cloud-container.ts +93 -0
- package/src/services/cloud-credential-provider.ts +1 -1
- package/src/services/cloud-model-registry.ts +1 -1
- package/src/types/cloud.ts +22 -0
- package/src/types/index.ts +19 -0
- package/src/utils/cloud-sdk/client.ts +42 -3
- package/src/utils/cloud-sdk/public-routes.ts +168 -0
- package/src/utils/cloud-sdk/types.ts +0 -2
- package/src/utils/config.ts +20 -1
- package/src/utils/events.ts +30 -2
- package/src/utils/sdk-client.ts +5 -1
- package/src/utils/waifu-metering.ts +302 -0
- package/dist/onboarding.d.ts +0 -35
- package/dist/onboarding.d.ts.map +0 -1
- package/dist/onboarding.js.map +0 -14
- package/src/onboarding.ts +0 -396
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IAgentRuntime, Plugin } from "@elizaos/core";
|
|
1
|
+
import type { IAgentRuntime, Plugin, ProcessEnvLike } from "@elizaos/core";
|
|
2
2
|
import { logger, ModelType } from "@elizaos/core";
|
|
3
3
|
// Cloud providers
|
|
4
4
|
import { cloudStatusProvider } from "./cloud-providers/cloud-status";
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
handleTextMega,
|
|
20
20
|
handleTextNano,
|
|
21
21
|
handleTextSmall,
|
|
22
|
+
handleTextToSpeech,
|
|
22
23
|
} from "./models";
|
|
23
24
|
// Cloud services
|
|
24
25
|
import { CloudAuthService } from "./services/cloud-auth";
|
|
@@ -30,6 +31,7 @@ import { CloudCredentialProvider } from "./services/cloud-credential-provider";
|
|
|
30
31
|
import { CloudManagedGatewayRelayService } from "./services/cloud-managed-gateway-relay";
|
|
31
32
|
import { CloudModelRegistryService } from "./services/cloud-model-registry";
|
|
32
33
|
import { createCloudApiClient } from "./utils/sdk-client";
|
|
34
|
+
import { createWaifuMeteringHandler } from "./utils/waifu-metering";
|
|
33
35
|
|
|
34
36
|
const TEXT_NANO_MODEL_TYPE = (ModelType.TEXT_NANO ?? "TEXT_NANO") as string;
|
|
35
37
|
const TEXT_MEDIUM_MODEL_TYPE = (ModelType.TEXT_MEDIUM ?? "TEXT_MEDIUM") as string;
|
|
@@ -37,8 +39,6 @@ const TEXT_MEGA_MODEL_TYPE = (ModelType.TEXT_MEGA ?? "TEXT_MEGA") as string;
|
|
|
37
39
|
const RESPONSE_HANDLER_MODEL_TYPE = (ModelType.RESPONSE_HANDLER ?? "RESPONSE_HANDLER") as string;
|
|
38
40
|
const ACTION_PLANNER_MODEL_TYPE = (ModelType.ACTION_PLANNER ?? "ACTION_PLANNER") as string;
|
|
39
41
|
|
|
40
|
-
type ProcessEnvLike = Record<string, string | undefined>;
|
|
41
|
-
|
|
42
42
|
function getProcessEnv(): ProcessEnvLike {
|
|
43
43
|
if (typeof process === "undefined") {
|
|
44
44
|
return {};
|
|
@@ -56,6 +56,31 @@ export const elizaOSCloudPlugin: Plugin = {
|
|
|
56
56
|
envKeys: ["ELIZAOS_CLOUD_API_KEY", "ELIZAOS_CLOUD_ENABLED"],
|
|
57
57
|
},
|
|
58
58
|
|
|
59
|
+
// Plugin-wide registration priority. Applied to every model handler in
|
|
60
|
+
// the `models` map below. Higher numbers win the native runtime priority
|
|
61
|
+
// sort.
|
|
62
|
+
//
|
|
63
|
+
// Why 50: in `manual` routing mode (`routing-preferences.ts`) with no
|
|
64
|
+
// `preferredProvider` set for a slot, the runtime falls through to the
|
|
65
|
+
// native priority order. Putting cloud above the default-0 of other
|
|
66
|
+
// direct provider plugins (anthropic, openai, groq, elevenlabs) means
|
|
67
|
+
// Eliza Cloud wins the "user has paired Cloud but hasn't picked anything
|
|
68
|
+
// specific" case — which is the desired text-generation default.
|
|
69
|
+
//
|
|
70
|
+
// **TTS routing precedence is governed by the router-handler**
|
|
71
|
+
// (`plugin-local-inference/src/services/router-handler.ts`) at
|
|
72
|
+
// MAX_SAFE_INTEGER priority, which reads the per-slot `RoutingPolicy`
|
|
73
|
+
// (default `prefer-local`) and dispatches to local first when available.
|
|
74
|
+
// This plugin's priority does NOT control whether local TTS wins; the
|
|
75
|
+
// router does. See `plugin-local-inference/native/AGENTS.md` §1 for the
|
|
76
|
+
// canonical voice/ASR routing contract.
|
|
77
|
+
//
|
|
78
|
+
// Cloud TTS still works as a fallback when local is unavailable: the
|
|
79
|
+
// handler throws `CloudTtsUnavailableError` when cloud isn't connected
|
|
80
|
+
// and the router's per-pick retry loop falls through to the next
|
|
81
|
+
// eligible provider (local kokoro / omnivoice, plugin-elevenlabs, ...).
|
|
82
|
+
priority: 50,
|
|
83
|
+
|
|
59
84
|
config: {
|
|
60
85
|
ELIZAOS_CLOUD_API_KEY: env.ELIZAOS_CLOUD_API_KEY ?? null,
|
|
61
86
|
ELIZAOS_CLOUD_BASE_URL: env.ELIZAOS_CLOUD_BASE_URL ?? null,
|
|
@@ -106,6 +131,14 @@ export const elizaOSCloudPlugin: Plugin = {
|
|
|
106
131
|
initializeOpenAI(config, runtime);
|
|
107
132
|
},
|
|
108
133
|
|
|
134
|
+
// ─── Runtime Event Handlers ──────────────────────────────────────────
|
|
135
|
+
// Forwards per-inference token + USD spend to waifu's burn meter when the
|
|
136
|
+
// container is provisioned as a hosted waifu agent (inactive otherwise). See
|
|
137
|
+
// utils/waifu-metering.ts for the honest-meter rationale.
|
|
138
|
+
events: {
|
|
139
|
+
MODEL_USED: [createWaifuMeteringHandler()],
|
|
140
|
+
},
|
|
141
|
+
|
|
109
142
|
// ─── Cloud Services ──────────────────────────────────────────────────
|
|
110
143
|
// Services are registered in dependency order:
|
|
111
144
|
// 1. CloudAuthService — must start first (other services depend on it)
|
|
@@ -149,6 +182,7 @@ export const elizaOSCloudPlugin: Plugin = {
|
|
|
149
182
|
[ModelType.RESEARCH]: handleResearch,
|
|
150
183
|
[ModelType.IMAGE]: handleImageGeneration,
|
|
151
184
|
[ModelType.IMAGE_DESCRIPTION]: handleImageDescription,
|
|
185
|
+
[ModelType.TEXT_TO_SPEECH]: handleTextToSpeech,
|
|
152
186
|
},
|
|
153
187
|
|
|
154
188
|
tests: [
|
|
@@ -299,6 +333,18 @@ export const elizaOSCloudPlugin: Plugin = {
|
|
|
299
333
|
],
|
|
300
334
|
},
|
|
301
335
|
],
|
|
336
|
+
|
|
337
|
+
async dispose(runtime) {
|
|
338
|
+
// Stop in reverse dependency order (auth last since others depend on it).
|
|
339
|
+
await runtime.getService(CloudCredentialProvider.serviceType)?.stop();
|
|
340
|
+
await runtime.getService(CloudBackupService.serviceType)?.stop();
|
|
341
|
+
await runtime.getService(CloudBridgeService.serviceType)?.stop();
|
|
342
|
+
await runtime.getService(CloudContainerService.serviceType)?.stop();
|
|
343
|
+
await runtime.getService(CloudModelRegistryService.serviceType)?.stop();
|
|
344
|
+
await runtime.getService(CloudManagedGatewayRelayService.serviceType)?.stop();
|
|
345
|
+
await runtime.getService(CloudBootstrapServiceImpl.serviceType)?.stop();
|
|
346
|
+
await runtime.getService(CloudAuthService.serviceType)?.stop();
|
|
347
|
+
},
|
|
302
348
|
};
|
|
303
349
|
|
|
304
350
|
export default elizaOSCloudPlugin;
|
|
@@ -313,7 +359,17 @@ export {
|
|
|
313
359
|
} from "./routes/cloud-routes-autonomous";
|
|
314
360
|
export type { CloudConfigLike } from "./routes/cloud-routes-autonomous";
|
|
315
361
|
export { handleCloudStatusRoutes } from "./routes/cloud-status-routes";
|
|
316
|
-
export {
|
|
362
|
+
export { runCloudSetup, type CloudSetupResult } from "./cloud-setup";
|
|
363
|
+
export { ClackObserver } from "./cloud/clack-observer";
|
|
364
|
+
export { NullCloudSetupObserver } from "./cloud/null-observer";
|
|
365
|
+
export type {
|
|
366
|
+
AvailabilityResult,
|
|
367
|
+
CloudSetupObserver,
|
|
368
|
+
ConfirmPrompt,
|
|
369
|
+
ProvisionSuccessInfo,
|
|
370
|
+
SelectChoiceOption,
|
|
371
|
+
SelectChoicePrompt,
|
|
372
|
+
} from "./cloud/setup-observer";
|
|
317
373
|
export { CloudManager, type CloudManagerCallbacks } from "./cloud/cloud-manager";
|
|
318
374
|
export {
|
|
319
375
|
type CloudWalletDescriptor,
|
|
@@ -337,10 +393,26 @@ export {
|
|
|
337
393
|
resolveCloudTtsBaseUrl,
|
|
338
394
|
resolveElevenLabsApiKeyForCloudMode,
|
|
339
395
|
} from "./lib/server-cloud-tts";
|
|
396
|
+
export {
|
|
397
|
+
fetchCloudVoiceCatalog,
|
|
398
|
+
resetCloudVoiceCatalogCacheForTesting,
|
|
399
|
+
setCloudVoiceClientFactoryForTesting,
|
|
400
|
+
type CloudVoiceCatalogEntry,
|
|
401
|
+
type CloudVoiceClient,
|
|
402
|
+
} from "./cloud-voice-catalog";
|
|
403
|
+
export {
|
|
404
|
+
CloudTtsUnavailableError,
|
|
405
|
+
type CloudTextToSpeechParams,
|
|
406
|
+
} from "./models/speech";
|
|
340
407
|
export {
|
|
341
408
|
normalizeCloudSiteUrl,
|
|
342
409
|
resolveCloudApiBaseUrl,
|
|
343
410
|
} from "./cloud/base-url";
|
|
411
|
+
export {
|
|
412
|
+
isCloudAuthApiKeyService,
|
|
413
|
+
normalizeCloudApiKey,
|
|
414
|
+
type CloudAuthApiKeyService,
|
|
415
|
+
} from "./cloud/auth-service-types";
|
|
344
416
|
export { validateCloudBaseUrl } from "./cloud/validate-url";
|
|
345
417
|
export * from "./plugin";
|
|
346
418
|
export * from "./register-routes";
|
|
@@ -9,7 +9,7 @@ import { validateCloudBaseUrl } from "../cloud/validate-url.js";
|
|
|
9
9
|
import type { AgentRuntime } from "@elizaos/core";
|
|
10
10
|
import { logger } from "@elizaos/core";
|
|
11
11
|
import {
|
|
12
|
-
|
|
12
|
+
applyCanonicalSetupConfig,
|
|
13
13
|
type ElizaConfig,
|
|
14
14
|
normalizeEnvValue,
|
|
15
15
|
} from "./config-like";
|
|
@@ -608,7 +608,7 @@ export async function disconnectCloudConnection(args: {
|
|
|
608
608
|
const nextCloud = { ...(config.cloud ?? {}) };
|
|
609
609
|
delete nextCloud.apiKey;
|
|
610
610
|
config.cloud = nextCloud;
|
|
611
|
-
|
|
611
|
+
applyCanonicalSetupConfig(config as ElizaConfig, {
|
|
612
612
|
deploymentTarget: { runtime: "local" },
|
|
613
613
|
linkedAccounts: {
|
|
614
614
|
elizacloud: {
|
|
@@ -646,8 +646,6 @@ export async function disconnectCloudConnection(args: {
|
|
|
646
646
|
}
|
|
647
647
|
}
|
|
648
648
|
|
|
649
|
-
export const disconnectUnifiedCloudConnection = disconnectCloudConnection;
|
|
650
|
-
|
|
651
649
|
/** Matches `reason` from GET /api/cloud/status when connected via API key without CLOUD_AUTH. */
|
|
652
650
|
const CLOUD_STATUS_API_KEY_ONLY_REASONS: ReadonlySet<string> = new Set([
|
|
653
651
|
"api_key_present_not_authenticated",
|
package/src/lib/cloud-secrets.ts
CHANGED
|
@@ -1,58 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Sealed in-process secret store for cloud credentials.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* This module has NO external dependencies so it can be imported by
|
|
9
|
-
* any module without pulling in host-layer packages.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
const _cloudSecrets: Record<string, string | undefined> = Object.create(null);
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(_cloudSecrets, Symbol.toStringTag, {
|
|
15
|
-
value: "CloudSecrets",
|
|
16
|
-
enumerable: false,
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Read a cloud secret without exposing it in process.env.
|
|
21
|
-
* Falls back to process.env for backwards compatibility with code that
|
|
22
|
-
* sets the key before this module loads (e.g. docker entrypoints).
|
|
4
|
+
* The implementation moved to `@elizaos/shared/elizacloud/cloud-secrets` so
|
|
5
|
+
* app-core and other host-layer packages can read sealed cloud secrets without
|
|
6
|
+
* reverse-importing this plugin. This module remains for backwards
|
|
7
|
+
* compatibility with plugin-internal callers.
|
|
23
8
|
*/
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/** Scrub cloud secrets from process.env and capture into the sealed store. */
|
|
31
|
-
export function scrubCloudSecretsFromEnv(): void {
|
|
32
|
-
for (const key of [
|
|
33
|
-
"ELIZAOS_CLOUD_API_KEY",
|
|
34
|
-
"ELIZAOS_CLOUD_ENABLED",
|
|
35
|
-
] as const) {
|
|
36
|
-
if (process.env[key] !== undefined) {
|
|
37
|
-
_cloudSecrets[key] = process.env[key];
|
|
38
|
-
delete process.env[key];
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** Clear any sealed cloud secrets after an explicit disconnect. */
|
|
44
|
-
export function clearCloudSecrets(): void {
|
|
45
|
-
for (const key of [
|
|
46
|
-
"ELIZAOS_CLOUD_API_KEY",
|
|
47
|
-
"ELIZAOS_CLOUD_ENABLED",
|
|
48
|
-
] as const) {
|
|
49
|
-
delete _cloudSecrets[key];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/** Reset the sealed secret store. Test-only. */
|
|
54
|
-
export function _resetCloudSecretsForTesting(): void {
|
|
55
|
-
for (const key of Object.keys(_cloudSecrets)) {
|
|
56
|
-
delete _cloudSecrets[key];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
9
|
+
export {
|
|
10
|
+
clearCloudSecrets,
|
|
11
|
+
getCloudSecret,
|
|
12
|
+
scrubCloudSecretsFromEnv,
|
|
13
|
+
_resetCloudSecretsForTesting,
|
|
14
|
+
} from "@elizaos/shared";
|
package/src/lib/config-like.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* entries when the cloud gains support for additional connectors; do not
|
|
11
11
|
* scatter cred-type → connector logic elsewhere.
|
|
12
12
|
*
|
|
13
|
-
* Cloud-side endpoint convention (see cloud
|
|
13
|
+
* Cloud-side endpoint convention (see packages/cloud-api/v1/eliza/<connector>/):
|
|
14
14
|
* POST /api/v1/eliza/<connector>/connect/initiate → { authUrl }
|
|
15
15
|
* GET /api/v1/eliza/<connector>/status → { connected, ... }
|
|
16
16
|
*
|
|
@@ -53,7 +53,7 @@ export const credTypeToConnector: ReadonlyMap<string, CredentialTypeMapping> = n
|
|
|
53
53
|
// ─── Google ──────────────────────────────────────────────────────────
|
|
54
54
|
// Cloud endpoint: /api/v1/eliza/google/{connect/initiate,status,disconnect}
|
|
55
55
|
// The cloud's capability tokens are documented in
|
|
56
|
-
// cloud
|
|
56
|
+
// packages/cloud-api/v1/eliza/google/connect/initiate/route.ts.
|
|
57
57
|
[
|
|
58
58
|
"gmailOAuth2",
|
|
59
59
|
{
|
package/src/lib/http.ts
CHANGED
|
@@ -7,23 +7,6 @@ export interface ReadJsonBodyOptions {
|
|
|
7
7
|
requireObject?: boolean;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export interface RouteRequestMeta {
|
|
11
|
-
req: http.IncomingMessage;
|
|
12
|
-
res: http.ServerResponse;
|
|
13
|
-
method: string;
|
|
14
|
-
pathname: string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface RouteHelpers {
|
|
18
|
-
json: (res: http.ServerResponse, data: unknown, status?: number) => void;
|
|
19
|
-
error: (res: http.ServerResponse, message: string, status?: number) => void;
|
|
20
|
-
readJsonBody: <T extends object>(
|
|
21
|
-
req: http.IncomingMessage,
|
|
22
|
-
res: http.ServerResponse,
|
|
23
|
-
options?: ReadJsonBodyOptions,
|
|
24
|
-
) => Promise<T | null>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
10
|
function scrubStackFields(value: unknown): unknown {
|
|
28
11
|
if (value instanceof Error) {
|
|
29
12
|
return { error: value.message || "Internal error" };
|