UNPKG

@every-env/cli

Version:

Multi-agent orchestrator for AI-powered development workflows

146 lines 4.48 kB
import { z } from 'zod'; // Project types supported by every-env export const ProjectTypeSchema = z.enum([ 'node', 'rails', 'python', 'go', 'ruby', 'basic', 'monorepo' ]); // Base agent configuration export const AgentBaseSchema = z.object({}); // Claude agent configuration export const ClaudeAgentSchema = AgentBaseSchema.extend({ cli: z.string().optional(), args: z.array(z.string()).optional() }); // Amp agent configuration export const AmpAgentSchema = AgentBaseSchema.extend({ cli: z.string().optional(), args: z.array(z.string()).optional() }); // Codex agent configuration export const CodexAgentSchema = AgentBaseSchema.extend({ cli: z.string().optional(), args: z.array(z.string()).optional() }); // Copy-clipboard agent configuration export const CopyClipboardAgentSchema = AgentBaseSchema; // All supported agents export const AgentsSchema = z.object({ claude: ClaudeAgentSchema.optional(), 'copy-clipboard': CopyClipboardAgentSchema.optional(), amp: AmpAgentSchema.optional(), codex: CodexAgentSchema.optional() }).catchall(z.record(z.unknown())); // Allow unknown agent keys for forward compatibility // Runtime configuration schema export const RuntimeConfigSchema = z.object({ projectType: ProjectTypeSchema, defaultAgent: z.string(), agents: AgentsSchema, createdAt: z.string(), updatedAt: z.string().optional(), version: z.number(), validationWarnings: z.array(z.string()).optional(), signals: z.array(z.string()).optional() }); // Legacy docs config types (for backward compatibility) export const FileMatchSchema = z.object({ files: z.array(z.string()), exclude: z.array(z.string()).optional() }); export const ContentMatchSchema = z.object({ regex: z.string(), captureGroup: z.number().optional(), exclude: z.array(z.string()).optional(), multiline: z.boolean().optional() }); export const MatchSchema = z.object({ files: z.array(z.string()).optional(), exclude: z.array(z.string()).optional(), content: ContentMatchSchema.optional() }); export const AgentSchema = z.object({ id: z.string(), promptFile: z.string(), output: z.string().optional(), outputPattern: z.string().optional(), promptMode: z.string().optional(), forEach: z.string().optional(), variables: z.record(z.string()).optional(), command: z.string().optional(), flags: z.array(z.string()).optional(), workingDir: z.string().optional() }); export const PatternSchema = z.object({ name: z.string(), description: z.string().optional(), match: MatchSchema.optional(), agents: z.array(AgentSchema), variables: z.record(z.string()).optional() }); export const DocsConfigSchema = z.object({ defaultCommand: z.string(), defaultFlags: z.array(z.string()).optional(), parallelism: z.object({ maxAgents: z.number() }).optional(), patterns: z.array(PatternSchema), variables: z.record(z.string()).optional() }); export const ConfigSchema = z.object({ $schema: z.string().optional(), version: z.string(), docs: DocsConfigSchema, patterns: z.array(PatternSchema).optional(), variables: z.record(z.string()).optional() }); // Available agents for selection export const AVAILABLE_AGENTS = { claude: { name: 'claude', displayName: 'Claude Code', defaultCli: 'claude', description: 'Anthropic Claude via Claude Code CLI' }, 'copy-clipboard': { name: 'copy-clipboard', displayName: 'Copy to Clipboard', description: 'Copy responses to clipboard (no external CLI required)' }, amp: { name: 'amp', displayName: 'Amp', defaultCli: 'amp', description: 'Sourcegraph Amp CLI' }, codex: { name: 'codex', displayName: 'OpenAI Codex', defaultCli: 'codex', description: 'OpenAI Codex CLI' } }; // Default runtime configuration export const DEFAULT_RUNTIME_CONFIG = { defaultAgent: 'claude', version: 1, agents: { claude: { cli: 'claude', args: ['--dangerously-skip-permissions'] }, 'copy-clipboard': {}, amp: { cli: 'amp', args: ['--dangerously-allow-all'] }, codex: { cli: 'codex', args: ['--dangerously-bypass-approvals-and-sandbox'] } } }; //# sourceMappingURL=config.js.map