426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
@elizaos/cloud-routing
Routing resolver for elizaOS plugins. Decides whether a call to an external AI service should use a locally configured API key, be proxied through Eliza Cloud, or be disabled when neither is available.
What it does
elizaOS plugins need to call external services (LLMs, embeddings, TTS, etc.). Users may have their own API keys, or they may rely on Eliza Cloud as a managed proxy. This package centralises the logic that picks the right route so that every plugin doesn't have to reimplement it.
The three possible outcomes are:
local-key— use the user's own API key directly against the upstream service.cloud-proxy— proxy the request through Eliza Cloud usingELIZAOS_CLOUD_API_KEY.disabled— neither route is available; the caller should surface a clear error.
In auto mode (the default), a local key takes precedence over cloud proxy.
Installation
bun add @elizaos/cloud-routing
Usage
import {
resolveCloudRoute,
toRuntimeSettings,
type RouteSpec,
} from "@elizaos/cloud-routing";
const SPEC: RouteSpec = {
service: "my-service", // identifies this service in the cloud proxy path
localKeySetting: "MY_API_KEY", // env/setting name holding the user's own key
upstreamBaseUrl: "https://api.example.com/v1",
localKeyAuth: { kind: "bearer" }, // or { kind: "header", headerName: "x-api-key" }
};
// runtime is an elizaOS AgentRuntime (or anything with getSetting)
const route = resolveCloudRoute(toRuntimeSettings(runtime), SPEC);
if (route.source === "disabled") {
throw new Error(`Service unavailable: ${route.reason}`);
}
// route.baseUrl and route.headers are ready to use
const response = await fetch(`${route.baseUrl}/completions`, {
headers: route.headers,
});
Per-feature routing policies
Users can pin individual feature categories to local, cloud, or auto via env vars:
| Feature | Env var |
|---|---|
| LLM calls | ELIZAOS_CLOUD_ROUTING_LLM |
| Blockchain RPC | ELIZAOS_CLOUD_ROUTING_RPC |
| Tool/function execution | ELIZAOS_CLOUD_ROUTING_TOOL_USE |
| Embeddings | ELIZAOS_CLOUD_ROUTING_EMBEDDINGS |
| Image/audio/video | ELIZAOS_CLOUD_ROUTING_MEDIA |
| Text-to-speech | ELIZAOS_CLOUD_ROUTING_TTS |
| Speech-to-text | ELIZAOS_CLOUD_ROUTING_STT |
Use resolveFeatureCloudRoute to respect these settings in a plugin:
import { resolveFeatureCloudRoute, toRuntimeSettings } from "@elizaos/cloud-routing";
const route = resolveFeatureCloudRoute(toRuntimeSettings(runtime), "llm", SPEC);
Environment variables
| Var | Required | Description |
|---|---|---|
ELIZAOS_CLOUD_API_KEY |
for cloud proxy | Eliza Cloud API key |
ELIZAOS_CLOUD_ENABLED |
for cloud proxy | Must be "true" or "1" |
ELIZAOS_CLOUD_BASE_URL |
no | Override cloud base URL (default: https://www.elizacloud.ai/api/v1) |
Building
bun run --cwd packages/cloud/routing build
bun run --cwd packages/cloud/routing typecheck
bun run --cwd packages/cloud/routing lint