{"_id":"@elizaos/plugin-elizacloud-root","_rev":"4-af678970a30e7cda0ed4d2904e165c93","name":"@elizaos/plugin-elizacloud-root","dist-tags":{"next":"2.0.0-alpha.1","latest":"2.0.0-alpha.1"},"versions":{"2.0.0-alpha.1":{"name":"@elizaos/plugin-elizacloud-root","version":"2.0.0-alpha.1","keywords":[],"author":{"name":"elizaOS"},"license":"MIT","_id":"@elizaos/plugin-elizacloud-root@2.0.0-alpha.1","maintainers":[{"name":"shawticus","email":"shawmakesmagic@gmail.com"},{"name":"shakkernerd","email":"shakkerdroid@gmail.com"},{"name":"wtfsayo","email":"hi@sayo.wtf"},{"name":"odilitime","email":"janesmith@airmail.cc"},{"name":"cjft","email":"cjft@trimboli.io"}],"homepage":"https://github.com/elizaos-plugins/plugin-elizacloud#readme","bugs":{"url":"https://github.com/elizaos-plugins/plugin-elizacloud/issues"},"dist":{"shasum":"155a6030b101c4a39189cd058bec7e61d452d442","tarball":"https://registry.npmjs.org/@elizaos/plugin-elizacloud-root/-/plugin-elizacloud-root-2.0.0-alpha.1.tgz","fileCount":112,"integrity":"sha512-pfAPzoenSS1/Tnjm5yD2E3SCz1+Itgk4N1bN9Gbo5lt/V37yC2sWXUA3TsbJK7Ws0MdsIe5Zq5nJ75U8hqNNsQ==","signatures":[{"sig":"MEUCIEIfHGTqQwQY5++rWGBl8hZiEBBi4TUJAGLphBlmfVEaAiEAgm/aROVQks4oK9wNgmL1uMmFWh0jDF//iuADrGJBO0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1115542},"main":"typescript/dist/index.js","type":"module","types":"typescript/dist/index.d.ts","exports":{".":{"types":"./typescript/dist/index.d.ts","import":"./typescript/dist/index.js","default":"./typescript/dist/index.js"},"./rust":{"import":"./rust/pkg/node/elizaos_plugin_plugin_elizacloud.js"},"./package.json":"./package.json"},"gitHead":"05d4ca11d769db8c7f54a722ee24b2ce2b951543","scripts":{"dev":"cd typescript && bun --hot build.ts","lint":"bunx @biomejs/biome check --write ./typescript","test":"bun run test:ts && bun run test:rust && bun run test:python","build":"bun run build:ts && bun run build:rust && bun run build:python","clean":"rm -rf typescript/dist python/dist rust/target .turbo node_modules","test:ts":"cd typescript && vitest run || echo 'TypeScript tests skipped - no tests found'","build:ts":"cd typescript && bun run build.ts","lint:rust":"test -d rust && cd rust && cargo clippy --all-targets --fix --allow-dirty --allow-staged -- -D warnings && cargo fmt || echo 'Rust lint skipped'","test:rust":"test -d rust && cd rust && cargo test || echo 'Rust tests skipped'","typecheck":"tsc --noEmit -p typescript/tsconfig.json","build:rust":"test -d rust && cd rust && cargo build --release || echo 'Rust build skipped - no rust directory'","lint:check":"bunx @biomejs/biome check ./typescript","lint:python":"test -d python && cd python && ruff check --fix . && ruff format . || echo 'Python lint skipped'","test:python":"test -d python && cd python && pytest -p no:anchorpy --asyncio-mode=auto || echo 'Python tests skipped'","build:python":"test -d python && cd python && (python3 -m build 2>/dev/null || pyproject-build) || echo 'Python build skipped - no python directory'","lint:python:fix":"test -d python && cd python && ruff check --fix . && ruff format . || echo 'Python lint fix skipped'"},"_npmUser":{"name":"shawticus","email":"shawmakesmagic@gmail.com"},"repository":{"url":"git+https://github.com/elizaos-plugins/plugin-elizacloud.git","type":"git"},"_npmVersion":"lerna/9.0.3/node@v22.20.0+arm64 (darwin)","agentConfig":{"pluginType":"elizaos:plugin:1.0.0","pluginParameters":{"LARGE_MODEL":{"type":"string","default":"gpt-5","required":false,"sensitive":false,"description":"Fallback identifier for the large language model if ELIZAOS_CLOUD_LARGE_MODEL is not set."},"SMALL_MODEL":{"type":"string","default":"gpt-5-mini","required":false,"sensitive":false,"description":"Fallback identifier for the small language model if ELIZAOS_CLOUD_SMALL_MODEL is not set."},"ELIZAOS_CLOUD_API_KEY":{"type":"string","required":true,"sensitive":true,"description":"API key used to authenticate requests to ElizaOS Cloud API (format: eliza_xxxxx). Get it from https://www.elizacloud.ai/dashboard/api-keys"},"ELIZAOS_CLOUD_BASE_URL":{"type":"string","default":"https://www.elizacloud.ai/api/v1","required":false,"sensitive":false,"description":"Base URL for all ElizaOS Cloud API requests."},"ELIZAOS_CLOUD_TTS_MODEL":{"type":"string","default":"gpt-5-mini-tts","required":false,"sensitive":false,"description":"Identifier of the model used for text-to-speech generation."},"ELIZAOS_CLOUD_TTS_VOICE":{"type":"string","default":"nova","required":false,"sensitive":false,"description":"Voice profile to use for text-to-speech output."},"ELIZAOS_CLOUD_LARGE_MODEL":{"type":"string","required":false,"sensitive":false,"description":"Large/powerful model for complex tasks (overrides LARGE_MODEL). Available: gpt-5-mini, gpt-5, claude-3-5-sonnet, gemini-2.0-flash"},"ELIZAOS_CLOUD_SMALL_MODEL":{"type":"string","required":false,"sensitive":false,"description":"Small/fast model for quick tasks (overrides SMALL_MODEL). Available: gpt-5-mini, gpt-5, claude-3-5-sonnet, gemini-2.0-flash"},"ELIZAOS_CLOUD_EMBEDDING_URL":{"type":"string","required":false,"sensitive":false,"description":"Custom base URL for the ElizaOS Cloud embeddings endpoint."},"ELIZAOS_CLOUD_EMBEDDING_MODEL":{"type":"string","default":"text-embedding-3-small","required":false,"sensitive":false,"description":"Identifier of the model to use for generating text embeddings."},"ELIZAOS_CLOUD_BROWSER_BASE_URL":{"type":"string","required":false,"sensitive":false,"description":"Browser-only proxy endpoint base URL for ElizaOS Cloud requests (no secrets in the client)."},"ELIZAOS_CLOUD_TTS_INSTRUCTIONS":{"type":"string","required":false,"sensitive":false,"description":"Optional instructions to control the style or behavior of the text-to-speech request."},"ELIZAOS_CLOUD_EMBEDDING_API_KEY":{"type":"string","required":false,"sensitive":true,"description":"Custom API key for the ElizaOS Cloud embeddings endpoint."},"ELIZAOS_CLOUD_EMBEDDING_DIMENSIONS":{"type":"number","default":1536,"required":false,"sensitive":false,"description":"Number of dimensions for the returned embedding vectors."},"ELIZAOS_CLOUD_BROWSER_EMBEDDING_URL":{"type":"string","required":false,"sensitive":false,"description":"Browser-only proxy endpoint base URL for ElizaOS Cloud embeddings."},"ELIZAOS_CLOUD_EXPERIMENTAL_TELEMETRY":{"type":"boolean","default":false,"required":false,"sensitive":false,"description":"Enable experimental telemetry features for enhanced debugging and usage analytics."},"ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL":{"type":"string","default":"gpt-5-mini","required":false,"sensitive":false,"description":"Identifier of the model used for describing images."},"ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MAX_TOKENS":{"type":"number","default":8192,"required":false,"sensitive":false,"description":"Maximum number of tokens allowed in the image-description model response."}}},"description":"ElizaOS Cloud plugin - Multi-model AI generation with text, image, and audio support.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.5","typescript":"^5.9.3","@types/node":"^25.0.3","@biomejs/biome":"^2.3.11"},"peerDependencies":{"@elizaos/core":"2.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/plugin-elizacloud-root_2.0.0-alpha.1_1769033604653_0.7173256996721014","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-21T22:13:24.584Z","modified":"2026-06-16T05:14:21.778Z","2.0.0-alpha.1":"2026-01-21T22:13:24.862Z"},"bugs":{"url":"https://github.com/elizaos-plugins/plugin-elizacloud/issues"},"author":{"name":"elizaOS"},"license":"MIT","homepage":"https://github.com/elizaos-plugins/plugin-elizacloud#readme","keywords":[],"repository":{"url":"git+https://github.com/elizaos-plugins/plugin-elizacloud.git","type":"git"},"description":"ElizaOS Cloud plugin - Multi-model AI generation with text, image, and audio support.","maintainers":[{"email":"shawmakesmagic@gmail.com","name":"shawticus"},{"email":"janesmith@airmail.cc","name":"odilitime"}],"readme":"# @elizaos/plugin-elizacloud\n\nElizaOS Cloud plugin - Multi-model AI generation with text, image, and audio support.\n\nAvailable in **TypeScript**, **Python**, and **Rust** with uniform APIs.\n\n## Installation\n\n### TypeScript / JavaScript\n\n```bash\nnpm install @elizaos/plugin-elizacloud\n# or\nbun add @elizaos/plugin-elizacloud\n```\n\n### Python\n\n```bash\npip install elizaos-plugin-elizacloud\n```\n\n### Rust\n\n```toml\n[dependencies]\nelizaos-plugin-elizacloud = \"1.7.4\"\n```\n\n## API Comparison\n\nAll three implementations provide the same model handlers with uniform naming conventions:\n\n| Model Type             | TypeScript                 | Python                        | Rust                          |\n| ---------------------- | -------------------------- | ----------------------------- | ----------------------------- |\n| TEXT_SMALL             | `handleTextSmall`          | `handle_text_small`           | `handle_text_small`           |\n| TEXT_LARGE             | `handleTextLarge`          | `handle_text_large`           | `handle_text_large`           |\n| OBJECT_SMALL           | `handleObjectSmall`        | `handle_object_small`         | `handle_object_small`         |\n| OBJECT_LARGE           | `handleObjectLarge`        | `handle_object_large`         | `handle_object_large`         |\n| TEXT_EMBEDDING         | `handleTextEmbedding`      | `handle_text_embedding`       | `handle_text_embedding`       |\n| TEXT_EMBEDDING (batch) | `handleBatchTextEmbedding` | `handle_batch_text_embedding` | `handle_batch_text_embedding` |\n| IMAGE                  | `handleImageGeneration`    | `handle_image_generation`     | `handle_image_generation`     |\n| IMAGE_DESCRIPTION      | `handleImageDescription`   | `handle_image_description`    | `handle_image_description`    |\n| TEXT_TO_SPEECH         | `handleTextToSpeech`       | `handle_text_to_speech`       | `handle_text_to_speech`       |\n| TRANSCRIPTION          | `handleTranscription`      | `handle_transcription`        | `handle_transcription`        |\n| TEXT_TOKENIZER_ENCODE  | `handleTokenizerEncode`    | `handle_tokenizer_encode`     | `handle_tokenizer_encode`     |\n| TEXT_TOKENIZER_DECODE  | `handleTokenizerDecode`    | `handle_tokenizer_decode`     | `handle_tokenizer_decode`     |\n\n## Type Definitions\n\nAll implementations share the same type structures:\n\n| Type                     | Description                                  |\n| ------------------------ | -------------------------------------------- |\n| `ElizaCloudConfig`       | Client configuration (API key, models, etc.) |\n| `TextGenerationParams`   | Parameters for text generation               |\n| `ObjectGenerationParams` | Parameters for structured JSON generation    |\n| `TextEmbeddingParams`    | Parameters for embeddings (single or batch)  |\n| `ImageGenerationParams`  | Parameters for image generation              |\n| `ImageDescriptionParams` | Parameters for image description             |\n| `ImageDescriptionResult` | Result from image description                |\n| `TextToSpeechParams`     | Parameters for TTS                           |\n| `TranscriptionParams`    | Parameters for audio transcription           |\n| `TokenizeTextParams`     | Parameters for tokenization                  |\n| `DetokenizeTextParams`   | Parameters for detokenization                |\n\n## Configuration\n\nGet your API key from [https://www.elizacloud.ai/dashboard/api-keys](https://www.elizacloud.ai/dashboard/api-keys)\n\n| Setting                                             | Description                          | Default                            |\n| --------------------------------------------------- | ------------------------------------ | ---------------------------------- |\n| `api_key` / `ELIZAOS_CLOUD_API_KEY`                 | Your API key (format: `eliza_xxxxx`) | Required                           |\n| `base_url` / `ELIZAOS_CLOUD_BASE_URL`               | Base URL for API requests            | `https://www.elizacloud.ai/api/v1` |\n| `small_model` / `ELIZAOS_CLOUD_SMALL_MODEL`         | Small/fast model                     | `gpt-5-mini`                      |\n| `large_model` / `ELIZAOS_CLOUD_LARGE_MODEL`         | Large/powerful model                 | `gpt-5`                           |\n| `embedding_model` / `ELIZAOS_CLOUD_EMBEDDING_MODEL` | Embedding model                      | `text-embedding-3-small`           |\n| `embedding_dimensions`                              | Embedding vector size                | `1536`                             |\n\n## Usage Examples\n\n### TypeScript\n\n```typescript\nimport { elizaOSCloudPlugin } from \"@elizaos/plugin-elizacloud\";\n\n// Register the plugin with your agent\nconst agent = new Agent({\n  plugins: [elizaOSCloudPlugin],\n});\n\n// Use models via runtime\nconst text = await runtime.useModel(ModelType.TEXT_LARGE, {\n  prompt: \"What is the meaning of life?\",\n});\n\n// Structured object generation\nconst obj = await runtime.useModel(ModelType.OBJECT_LARGE, {\n  prompt: \"Generate a user profile with name and age\",\n});\n\nconst embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n  text: \"Hello, world!\",\n});\n\n// Tokenization\nconst tokens = await runtime.useModel(ModelType.TEXT_TOKENIZER_ENCODE, {\n  prompt: \"Hello tokenizer!\",\n  modelType: ModelType.TEXT_SMALL,\n});\n```\n\n### Python\n\n```python\nimport asyncio\nfrom elizaos_plugin_elizacloud import (\n    ElizaCloudClient,\n    ElizaCloudConfig,\n    TextGenerationParams,\n    ObjectGenerationParams,\n    handle_object_large,\n    handle_tokenizer_encode,\n    TokenizeTextParams,\n)\n\nasync def main():\n    config = ElizaCloudConfig(api_key=\"eliza_xxxxx\")\n\n    async with ElizaCloudClient(config) as client:\n        # Text generation\n        text = await client.generate_text(\n            TextGenerationParams(prompt=\"Hello!\"),\n            model_size=\"large\",\n        )\n        print(text)\n\n    # Structured object generation\n    obj = await handle_object_large(\n        config,\n        ObjectGenerationParams(prompt=\"Generate a user profile\"),\n    )\n    print(obj)\n\n    # Tokenization\n    tokens = await handle_tokenizer_encode(\n        config,\n        TokenizeTextParams(prompt=\"Hello tokenizer!\"),\n    )\n    print(f\"Tokens: {tokens}\")\n\nasyncio.run(main())\n```\n\n### Rust\n\n```rust\nuse elizaos_plugin_elizacloud::{\n    ElizaCloudClient, ElizaCloudConfig, TextGenerationParams,\n    ObjectGenerationParams, TokenizeTextParams,\n    handle_object_large, handle_tokenizer_encode,\n};\n\n#[tokio::main]\nasync fn main() -> anyhow::Result<()> {\n    let config = ElizaCloudConfig::new(\"eliza_xxxxx\");\n    let client = ElizaCloudClient::new(config.clone())?;\n\n    // Text generation\n    let text = client.generate_text_large(TextGenerationParams {\n        prompt: \"What is the meaning of life?\".to_string(),\n        ..Default::default()\n    }).await?;\n    println!(\"{}\", text);\n\n    // Structured object generation\n    let obj = handle_object_large(config.clone(), ObjectGenerationParams {\n        prompt: \"Generate a user profile\".to_string(),\n        ..Default::default()\n    }).await?;\n    println!(\"{}\", obj);\n\n    // Tokenization\n    let tokens = handle_tokenizer_encode(config, TokenizeTextParams {\n        prompt: \"Hello tokenizer!\".to_string(),\n        ..Default::default()\n    }).await?;\n    println!(\"Tokens: {:?}\", tokens);\n\n    Ok(())\n}\n```\n\n## Features\n\n| Feature                 | Description                                         |\n| ----------------------- | --------------------------------------------------- |\n| **Text Generation**     | Small (fast) and large (powerful) model support     |\n| **Object Generation**   | Structured JSON output from natural language        |\n| **Text Embeddings**     | Single and batch embedding with rate limit handling |\n| **Image Generation**    | DALL-E style image generation                       |\n| **Image Description**   | Vision model for describing images                  |\n| **Text-to-Speech**      | Multiple voice options                              |\n| **Audio Transcription** | Whisper-based audio transcription                   |\n| **Tokenization**        | Token counting, encoding, and decoding              |\n\n## Development\n\n### Building\n\n```bash\n# TypeScript\nbun run build\n\n# Python\ncd python && pip install -e \".[dev]\"\n\n# Rust\ncd rust && cargo build --release\n```\n\n### Testing\n\n```bash\n# TypeScript\nnpx vitest typescript/\n\n# Python\ncd python && pytest tests/\n\n# Rust\ncd rust && cargo test\n```\n\n### Linting\n\n```bash\n# TypeScript\nbun run format\n\n# Python\ncd python && ruff check . && ruff format .\n\n# Rust\ncd rust && cargo clippy && cargo fmt\n```\n\n## Publishing\n\nThis package is published to:\n\n- **npm**: `@elizaos/plugin-elizacloud`\n- **PyPI**: `elizaos-plugin-elizacloud`\n- **crates.io**: `elizaos-plugin-elizacloud`\n\nPublishing happens automatically via GitHub Actions when the version in `package.json` changes.\n\n### Required Secrets\n\nAdd these secrets to your GitHub repository:\n\n- `NPM_TOKEN` - npm access token\n- `PYPI_TOKEN` - PyPI API token\n- `CRATES_IO_TOKEN` - crates.io API token\n\n## License\n\nMIT\n","readmeFilename":"README.md"}