flowchart TB subgraph Inputs["Inputs"] HC["Helm Chart Directory"] PROMPTS["System & User Prompts"] CONFIG["Configuration
• API Keys
• Models
• Run Count"] end subgraph subGraph1["API Selection"] DECISION{"API Key Available?"} ANTHROPIC["Anthropic API
Claude Models"] OPENAI["OpenAI API
GPT Models"] OPENROUTER["OpenRouter API
Fallback"] end subgraph subGraph2["Analysis Engine"] LOAD["Load Helm Files"] ANALYZE["Security Analysis"] PARSE["Parse AI Response"] end subgraph Results["Results"] CSV["CSV Report
• MITRE ATT&CK Data
• Risk Priorities"] MD["Markdown Report
• Full Responses
• Token Usage"] end HC --> ANALYZER["Helm Security Analyzer"] PROMPTS --> ANALYZER CONFIG --> ANALYZER ANALYZER --> LOAD LOAD --> ANALYZE ANALYZE --> DECISION DECISION -- Anthropic Key --> ANTHROPIC DECISION -- OpenAI Key --> OPENAI DECISION -- No Direct Key --> OPENROUTER ANTHROPIC --> PARSE OPENAI --> PARSE OPENROUTER --> PARSE PARSE --> CSV & MD HC:::input PROMPTS:::input CONFIG:::input DECISION:::decision ANTHROPIC:::api OPENAI:::api OPENROUTER:::api LOAD:::process ANALYZE:::process PARSE:::process CSV:::output MD:::output ANALYZER:::core classDef input fill:#e3f2fd,stroke:#1976d2,stroke-width:2px classDef core fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px classDef api fill:#fff3e0,stroke:#f57c00,stroke-width:2px classDef process fill:#e8f5e9,stroke:#388e3c,stroke-width:2px classDef output fill:#fce4ec,stroke:#c2185b,stroke-width:2px classDef decision fill:#fff8e1,stroke:#fbc02d,stroke-width:2px