#!/usr/bin/env bun import * as core from "@actions/core"; import { preparePrompt } from "./prepare-prompt"; import { runClaude } from "./run-claude"; import { setupClaudeCodeSettings } from "./setup-claude-code-settings"; import { validateEnvironmentVariables } from "./validate-env"; async function run() { try { validateEnvironmentVariables(); await setupClaudeCodeSettings(process.env.INPUT_SETTINGS); const promptConfig = await preparePrompt({ prompt: process.env.INPUT_PROMPT || "", promptFile: process.env.INPUT_PROMPT_FILE || "", }); await runClaude(promptConfig.path, { allowedTools: process.env.INPUT_ALLOWED_TOOLS, disallowedTools: process.env.INPUT_DISALLOWED_TOOLS, maxTurns: process.env.INPUT_MAX_TURNS, mcpConfig: process.env.INPUT_MCP_CONFIG, systemPrompt: process.env.INPUT_SYSTEM_PROMPT, appendSystemPrompt: process.env.INPUT_APPEND_SYSTEM_PROMPT, claudeEnv: process.env.INPUT_CLAUDE_ENV, fallbackModel: process.env.INPUT_FALLBACK_MODEL, model: process.env.ANTHROPIC_MODEL, }); } catch (error) { core.setFailed(`Action failed with error: ${error}`); core.setOutput("conclusion", "failure"); process.exit(1); } } if (import.meta.main) { run(); }