diff --git a/packages/cli/src/aws/agents.ts b/packages/cli/src/aws/agents.ts index 31b371e6..81d69a4f 100644 --- a/packages/cli/src/aws/agents.ts +++ b/packages/cli/src/aws/agents.ts @@ -1,16 +1,9 @@ // aws/agents.ts — AWS Lightsail agent configs (thin wrapper over shared) import { runServer, uploadFile } from "./aws"; -import { createAgents, resolveAgent as _resolveAgent } from "../shared/agent-setup"; -import type { AgentConfig } from "../shared/agents"; +import { createCloudAgents } from "../shared/agent-setup"; -const runner = { +export const { agents, resolveAgent } = createCloudAgents({ runServer, uploadFile, -}; - -export const agents = createAgents(runner); - -export function resolveAgent(name: string): AgentConfig { - return _resolveAgent(agents, name); -} +}); diff --git a/packages/cli/src/daytona/agents.ts b/packages/cli/src/daytona/agents.ts index 8a915ed9..c9c8e49e 100644 --- a/packages/cli/src/daytona/agents.ts +++ b/packages/cli/src/daytona/agents.ts @@ -1,16 +1,9 @@ // daytona/agents.ts — Daytona agent configs (thin wrapper over shared) import { runServer, uploadFile } from "./daytona"; -import { createAgents, resolveAgent as _resolveAgent } from "../shared/agent-setup"; -import type { AgentConfig } from "../shared/agents"; +import { createCloudAgents } from "../shared/agent-setup"; -const runner = { +export const { agents, resolveAgent } = createCloudAgents({ runServer, uploadFile, -}; - -export const agents = createAgents(runner); - -export function resolveAgent(name: string): AgentConfig { - return _resolveAgent(agents, name); -} +}); diff --git a/packages/cli/src/digitalocean/agents.ts b/packages/cli/src/digitalocean/agents.ts index d573a637..c1c5b164 100644 --- a/packages/cli/src/digitalocean/agents.ts +++ b/packages/cli/src/digitalocean/agents.ts @@ -1,16 +1,9 @@ // digitalocean/agents.ts — DigitalOcean agent configs (thin wrapper over shared) import { runServer, uploadFile } from "./digitalocean"; -import { createAgents, resolveAgent as _resolveAgent } from "../shared/agent-setup"; -import type { AgentConfig } from "../shared/agents"; +import { createCloudAgents } from "../shared/agent-setup"; -const runner = { +export const { agents, resolveAgent } = createCloudAgents({ runServer, uploadFile, -}; - -export const agents = createAgents(runner); - -export function resolveAgent(name: string): AgentConfig { - return _resolveAgent(agents, name); -} +}); diff --git a/packages/cli/src/gcp/agents.ts b/packages/cli/src/gcp/agents.ts index 8955464c..22f565c2 100644 --- a/packages/cli/src/gcp/agents.ts +++ b/packages/cli/src/gcp/agents.ts @@ -1,16 +1,9 @@ // gcp/agents.ts — GCP Compute Engine agent configs (thin wrapper over shared) import { runServer, uploadFile } from "./gcp"; -import { createAgents, resolveAgent as _resolveAgent } from "../shared/agent-setup"; -import type { AgentConfig } from "../shared/agents"; +import { createCloudAgents } from "../shared/agent-setup"; -const runner = { +export const { agents, resolveAgent } = createCloudAgents({ runServer, uploadFile, -}; - -export const agents = createAgents(runner); - -export function resolveAgent(name: string): AgentConfig { - return _resolveAgent(agents, name); -} +}); diff --git a/packages/cli/src/hetzner/agents.ts b/packages/cli/src/hetzner/agents.ts index 97654609..f7714dc0 100644 --- a/packages/cli/src/hetzner/agents.ts +++ b/packages/cli/src/hetzner/agents.ts @@ -1,16 +1,9 @@ // hetzner/agents.ts — Hetzner Cloud agent configs (thin wrapper over shared) import { runServer, uploadFile } from "./hetzner"; -import { createAgents, resolveAgent as _resolveAgent } from "../shared/agent-setup"; -import type { AgentConfig } from "../shared/agents"; +import { createCloudAgents } from "../shared/agent-setup"; -const runner = { +export const { agents, resolveAgent } = createCloudAgents({ runServer, uploadFile, -}; - -export const agents = createAgents(runner); - -export function resolveAgent(name: string): AgentConfig { - return _resolveAgent(agents, name); -} +}); diff --git a/packages/cli/src/local/agents.ts b/packages/cli/src/local/agents.ts index 77ee1a8b..0bc7a108 100644 --- a/packages/cli/src/local/agents.ts +++ b/packages/cli/src/local/agents.ts @@ -1,16 +1,9 @@ // local/agents.ts — Local machine agent configs (thin wrapper over shared) import { runLocal, uploadFile } from "./local"; -import { createAgents, resolveAgent as _resolveAgent } from "../shared/agent-setup"; -import type { AgentConfig } from "../shared/agents"; +import { createCloudAgents } from "../shared/agent-setup"; -const runner = { +export const { agents, resolveAgent } = createCloudAgents({ runServer: runLocal, uploadFile: async (l: string, r: string) => uploadFile(l, r), -}; - -export const agents = createAgents(runner); - -export function resolveAgent(name: string): AgentConfig { - return _resolveAgent(agents, name); -} +}); diff --git a/packages/cli/src/shared/agent-setup.ts b/packages/cli/src/shared/agent-setup.ts index 847d13c6..efff90f0 100644 --- a/packages/cli/src/shared/agent-setup.ts +++ b/packages/cli/src/shared/agent-setup.ts @@ -557,3 +557,18 @@ export function resolveAgent(agents: Record, name: string): } return agent; } + +/** + * Factory that creates agents + resolveAgent for a given CloudRunner. + * Replaces the identical 16-line boilerplate in each cloud's agents.ts. + */ +export function createCloudAgents(runner: CloudRunner): { + agents: Record; + resolveAgent: (name: string) => AgentConfig; +} { + const agentMap = createAgents(runner); + return { + agents: agentMap, + resolveAgent: (name: string) => resolveAgent(agentMap, name), + }; +} diff --git a/packages/cli/src/sprite/agents.ts b/packages/cli/src/sprite/agents.ts index d61f5943..2ed9e59d 100644 --- a/packages/cli/src/sprite/agents.ts +++ b/packages/cli/src/sprite/agents.ts @@ -1,16 +1,9 @@ // sprite/agents.ts — Sprite agent configs (thin wrapper over shared) import { runSprite, uploadFileSprite } from "./sprite"; -import { createAgents, resolveAgent as _resolveAgent } from "../shared/agent-setup"; -import type { AgentConfig } from "../shared/agents"; +import { createCloudAgents } from "../shared/agent-setup"; -const runner = { +export const { agents, resolveAgent } = createCloudAgents({ runServer: runSprite, uploadFile: uploadFileSprite, -}; - -export const agents = createAgents(runner); - -export function resolveAgent(name: string): AgentConfig { - return _resolveAgent(agents, name); -} +});