| 103 | } |
| 104 | |
| 105 | func (e *ClaudeEngine) GetInstallationSteps(workflowData *WorkflowData) []GitHubActionStep { |
| 106 | claudeLog.Printf("Generating installation steps for Claude engine: workflow=%s", workflowData.Name) |
| 107 | |
| 108 | // Skip installation if custom command is specified |
| 109 | if workflowData.EngineConfig != nil && workflowData.EngineConfig.Command != "" { |
| 110 | claudeLog.Printf("Skipping installation steps: custom command specified (%s)", workflowData.EngineConfig.Command) |
| 111 | return []GitHubActionStep{} |
| 112 | } |
| 113 | |
| 114 | // Use version from engine config if provided, otherwise default to pinned version |
| 115 | version := string(constants.DefaultClaudeCodeVersion) |
| 116 | if workflowData.EngineConfig != nil && workflowData.EngineConfig.Version != "" { |
| 117 | version = workflowData.EngineConfig.Version |
| 118 | } |
| 119 | |
| 120 | // Claude Code requires post-install scripts (native binaries) so --ignore-scripts must |
| 121 | // NOT be passed. This is intentionally different from other engine installs. |
| 122 | npmSteps := GenerateNpmInstallSteps( |
| 123 | "@anthropic-ai/claude-code", |
| 124 | version, |
| 125 | "Install Claude Code CLI", |
| 126 | "claude", |
| 127 | true, // Include Node.js setup |
| 128 | true, // Claude Code requires post-install scripts for native binaries |
| 129 | false, // Agentic engine installs should not apply npm release-age cooldown |
| 130 | ) |
| 131 | return BuildNpmEngineInstallStepsWithAWF(npmSteps, workflowData) |
| 132 | } |
| 133 | |
| 134 | // GetDeclaredOutputFiles returns the output files that Claude may produce |
| 135 | func (e *ClaudeEngine) GetDeclaredOutputFiles() []string { |