From 5d87177851ab28bc08bc19d0cddf7f936d4ffba3 Mon Sep 17 00:00:00 2001 From: Boris Starkov Date: Wed, 29 Oct 2025 11:48:04 +0000 Subject: [PATCH 1/3] remove --env support --- README.md | 140 +++++------------------------ src/__tests__/cli.e2e.test.ts | 8 +- src/__tests__/residency.test.ts | 2 +- src/agents/commands/add.ts | 12 +-- src/agents/commands/delete-impl.ts | 32 ++----- src/agents/commands/delete.ts | 10 +-- src/agents/commands/init.ts | 2 - src/agents/commands/pull-impl.ts | 32 ++----- src/agents/commands/pull.ts | 4 +- src/agents/commands/push-impl.ts | 20 +---- src/agents/commands/push.ts | 19 +--- src/agents/commands/status-impl.ts | 1 - src/agents/commands/test-impl.ts | 3 +- src/agents/commands/utils.ts | 4 +- src/agents/commands/widget-impl.ts | 1 - src/agents/ui/AddAgentView.tsx | 9 +- src/agents/ui/AgentsHelpView.tsx | 1 - src/agents/ui/ListAgentsView.tsx | 17 +--- src/agents/ui/PullView.tsx | 22 ++--- src/agents/ui/PushView.tsx | 9 +- src/auth/commands/login.ts | 7 +- src/auth/commands/logout.ts | 7 +- src/auth/ui/AuthHelpView.tsx | 9 -- src/auth/ui/LoginView.tsx | 13 ++- src/auth/ui/LogoutView.tsx | 23 +++-- src/auth/ui/WhoamiView.tsx | 2 +- src/shared/elevenlabs-api.ts | 2 +- src/shared/tools.ts | 1 - src/tests/commands/add.ts | 8 +- src/tests/commands/delete.ts | 10 +-- src/tests/commands/impl.ts | 100 ++++++--------------- src/tests/commands/pull.ts | 2 - src/tests/commands/push.ts | 5 +- src/tests/ui/AddTestView.tsx | 12 +-- src/tests/ui/TestsHelpView.tsx | 4 - src/tools/commands/add.ts | 5 +- src/tools/commands/delete.ts | 10 +-- src/tools/commands/impl.ts | 93 +++++-------------- src/tools/commands/pull.ts | 4 +- src/tools/commands/push.ts | 7 +- src/tools/ui/PullToolsView.tsx | 12 +-- src/tools/ui/PushToolsView.tsx | 9 +- src/tools/ui/ToolsHelpView.tsx | 4 - 43 files changed, 172 insertions(+), 525 deletions(-) diff --git a/README.md b/README.md index 62ce6fc..d1ffda6 100644 --- a/README.md +++ b/README.md @@ -84,54 +84,23 @@ The ElevenLabs CLI supports managing agents, tools, and tests across multiple is #### Login to Multiple Environments ```bash -# Login to production -elevenlabs auth login --env prod - -# Login to staging -elevenlabs auth login --env staging - -# Login to development -elevenlabs auth login --env dev +# Login with your API key +elevenlabs auth login ``` -Each environment stores its API key securely and independently. - -#### Check All Environments +#### Check Authentication Status ```bash elevenlabs auth whoami -# Shows all configured environments and their authentication status +# Shows your authentication status ``` -#### Logout from Specific Environment +#### Logout ```bash -elevenlabs auth logout --env dev -``` - -#### Environment Field in Configurations - -Agent, tool, and test definitions include an `env` field: - -```json -{ - "agents": [ - { - "config": "agent_configs/support_bot.json", - "id": "agent_123", - "env": "prod" - }, - { - "config": "agent_configs/support_bot_dev.json", - "id": "agent_456", - "env": "dev" - } - ] -} +elevenlabs auth logout ``` -When `env` is not specified, it defaults to `prod`. - ## Quick Start ```bash @@ -141,7 +110,7 @@ elevenlabs agents init # Or override existing configuration elevenlabs agents init --override -# 2. Login with API key (defaults to 'prod' environment) +# 2. Login with API key elevenlabs auth login # 3. Create agent with template @@ -204,37 +173,37 @@ elevenlabs auth logout elevenlabs auth whoami # Create agent -elevenlabs agents add "Agent Name" [--template customer-service] [--env prod] +elevenlabs agents add "Agent Name" [--template customer-service] # Create webhook tool -elevenlabs tools add-webhook "Tool Name" [--config-path path] [--env prod] +elevenlabs tools add-webhook "Tool Name" [--config-path path] # Create client tool -elevenlabs tools add-client "Tool Name" [--config-path path] [--env prod] +elevenlabs tools add-client "Tool Name" [--config-path path] -# Push changes (operates on all environments by default) -elevenlabs agents push [--agent "Agent Name"] [--env prod] [--dry-run] +# Push changes +elevenlabs agents push [--agent "Agent Name"] [--dry-run] -# Sync tools (operates on all environments by default) -elevenlabs tools push [--tool "Tool Name"] [--env prod] [--dry-run] +# Sync tools +elevenlabs tools push [--tool "Tool Name"] [--dry-run] -# Sync tests (operates on all environments by default) -elevenlabs tests push [--env prod] [--dry-run] +# Sync tests +elevenlabs tests push [--dry-run] # Check status elevenlabs agents status [--agent "Agent Name"] -# Pull agents from ElevenLabs (pulls from all environments by default) -elevenlabs agents pull [--search "term"] [--env prod] [--dry-run] +# Pull agents from ElevenLabs +elevenlabs agents pull [--search "term"] [--dry-run] -# Pull tools from ElevenLabs (pulls from all environments by default) -elevenlabs tools pull [--search "term"] [--tool "tool-name"] [--env prod] [--dry-run] [--output-dir tool_configs] +# Pull tools from ElevenLabs +elevenlabs tools pull [--search "term"] [--tool "tool-name"] [--dry-run] [--output-dir tool_configs] -# Import tests from ElevenLabs (pulls from all environments by default) -elevenlabs tests pull [--output-dir test_configs] [--env prod] [--dry-run] +# Import tests from ElevenLabs +elevenlabs tests pull [--output-dir test_configs] [--dry-run] # Create and run test -elevenlabs tests add "Test Name" [--template basic-llm] [--env prod] +elevenlabs tests add "Test Name" [--template basic-llm] # Run tests elevenlabs agents test "Agent Name" @@ -254,18 +223,12 @@ elevenlabs tools delete # Delete all tools elevenlabs tools delete --all -# Delete all tools in specific environment -elevenlabs tools delete --all --env prod - # Delete test locally and from ElevenLabs elevenlabs tests delete # Delete all tests elevenlabs tests delete --all -# Delete all tests in specific environment -elevenlabs tests delete --all --env dev - # Add componenents from [ui.elevenlabs.io](https://ui.elevenlabs.io) elevenlabs components add "Component Name" ``` @@ -371,62 +334,7 @@ elevenlabs agents list elevenlabs agents delete agent_123456789 ``` -> **Tip**: When `--env` is not specified, most commands operate across all configured environments. - -## Multi-Environment Workflows - -**Setup Multiple Environments:** - -```bash -# Initialise project -elevenlabs agents init - -# Login to all environments -elevenlabs auth login --env dev -elevenlabs auth login --env staging -elevenlabs auth login --env prod - -# Verify all environments -elevenlabs auth whoami -``` - -**Develop and Promote Agents:** - -```bash -# Create agent in dev environment -elevenlabs agents add "My Agent" --template assistant --env dev - -# Edit and test in dev -# Edit agent_configs/my_agent.json -elevenlabs agents push --env dev - -# Pull to promote to staging -elevenlabs agents pull --env dev -# Update env field in agents.json from "dev" to "staging" -elevenlabs agents push --env staging - -# Promote to production -# Update env field to "prod" -elevenlabs agents push --env prod -``` - -**Environment-Specific Operations:** - -```bash -# Push only dev agents -elevenlabs agents push --env dev - -# Pull only prod agents -elevenlabs agents pull --env prod - -# Delete all dev tools -elevenlabs tools delete --all --env dev - -# Pull tests from staging -elevenlabs tests pull --env staging -``` - -**Cross-Environment Management:** +## Workflow Examples ```bash # List all agents across all environments diff --git a/src/__tests__/cli.e2e.test.ts b/src/__tests__/cli.e2e.test.ts index 41a4001..65ff58f 100644 --- a/src/__tests__/cli.e2e.test.ts +++ b/src/__tests__/cli.e2e.test.ts @@ -348,10 +348,8 @@ describe("CLI End-to-End Tests", () => { expect(result.stderr).toContain("tools.json not found"); }); - it("should handle specific tool name option", async () => { - // Note: tools push doesn't support --tool option, only --env - // This test verifies the command works with --env filter - const result = await runCli(["tools", "push", "--env", "test"]); + it("should handle tools push command", async () => { + const result = await runCli(["tools", "push"]); // Should succeed (no tools to push is valid) expect(result.exitCode).toBe(0); @@ -2517,7 +2515,7 @@ describe("CLI End-to-End Tests", () => { }); }); - describeIfApiKey("[integration write] multi-environment workflow", () => { + describe.skip("[integration write] multi-environment workflow", () => { let multiEnvTempDir: string; const hasTestApiKey = !!process.env.ELEVENLABS_TEST_API_KEY; diff --git a/src/__tests__/residency.test.ts b/src/__tests__/residency.test.ts index 63ad01f..e97ba15 100644 --- a/src/__tests__/residency.test.ts +++ b/src/__tests__/residency.test.ts @@ -147,7 +147,7 @@ describe("Residency-specific API Client", () => { mockedOs.homedir.mockReturnValue(tempDir); await expect(getElevenLabsClient()).rejects.toThrow( - "No API key found for environment 'prod'. Use 'elevenlabs auth login --env prod' to authenticate or set ELEVENLABS_API_KEY environment variable." + "No API key found for environment 'prod'. Use 'elevenlabs auth login' to authenticate or set ELEVENLABS_API_KEY environment variable." ); }); }); diff --git a/src/agents/commands/add.ts b/src/agents/commands/add.ts index bb39e95..8486c7e 100644 --- a/src/agents/commands/add.ts +++ b/src/agents/commands/add.ts @@ -14,20 +14,17 @@ interface AgentsConfig { agents: Array<{ config: string; id?: string; - env?: string; }>; } interface AgentDefinition { config: string; id?: string; - env?: string; } interface AddOptions { configPath?: string; template?: string; - env: string; } export function createAddCommand(): Command { @@ -36,7 +33,6 @@ export function createAddCommand(): Command { .argument('[name]', 'Name of the agent to create') .option('--config-path ', 'Custom config path (optional)') .option('--template