diff --git a/Dockerfile b/Dockerfile index bcfb23cf..6f6236f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -120,6 +120,9 @@ RUN npm ci && \ # Copy application source code COPY . . +# Install Claude Code CLI (required by @anthropic-ai/claude-agent-sdk) +RUN npm install -g @anthropic-ai/claude-code + # Build TypeScript (mcp-server first, then main project) RUN cd mcp-server && npm run build && cd .. && npm run build diff --git a/src/ai/claude-executor.ts b/src/ai/claude-executor.ts index ceab2d67..40439abd 100644 --- a/src/ai/claude-executor.ts +++ b/src/ai/claude-executor.ts @@ -220,7 +220,10 @@ export async function runClaudePrompt( const mcpServers = buildMcpServers(sourceDir, agentName); // Build env vars to pass to SDK subprocesses + // Spread process.env first so PATH and other system vars are inherited, + // then override with Shannon-specific vars const sdkEnv: Record = { + ...Object.fromEntries(Object.entries(process.env).filter((entry): entry is [string, string] => entry[1] != null)), CLAUDE_CODE_MAX_OUTPUT_TOKENS: process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS || '64000', }; if (process.env.ANTHROPIC_API_KEY) {