{"repo": "axiom750/axiomshell", "files": {"src/main/java/org/orbytex/axiomshell/ai/config/ProviderConfiguration.java": {"14e918bf704cce9fdd9c3642c72f1fcd8a49c0a2": {"t": 1785745666.8433185, "n": 13489, "h": "c8342d4a4ea6f237", "c": "package org.orbytex.axiomshell.ai.config;\n\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport org.orbytex.axiomshell.config.KeyStore;\n\nimport java.io.IOException;\nimport java.nio.file.Files;\nimport java.nio.file.Path;\nimport java.nio.file.Paths;\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Set;\n\n/**\n * Configuration for AI providers.\n * \n * Loads provider settings from:\n * 1. config/ai-providers.json (if exists)\n * 2. Environment variables (override file config)\n * 3. System properties (override environment variables)\n * \n * Configuration file format:\n *
\n * {\n * \"defaultProvider\": \"openai\",\n * \"providers\": {\n * \"openai\": {\n * \"apiKey\": \"${OPENAI_API_KEY}\",\n * \"baseUrl\": \"https://api.openai.com/v1\",\n * \"model\": \"gpt-4\",\n * \"timeout\": 60000\n * },\n * \"anthropic\": {\n * \"apiKey\": \"${ANTHROPIC_API_KEY}\",\n * \"baseUrl\": \"https://api.anthropic.com/v1\",\n * \"model\": \"claude-3-5-sonnet-20241022\",\n * \"timeout\": 60000\n * }\n * }\n * }\n * \n * \n * Environment variables:\n * - OPENAI_API_KEY\n * - ANTHROPIC_API_KEY\n * - GEMINI_API_KEY\n * - GROQ_API_KEY\n * - AXIOMSHELL_AI_PROVIDER (default provider)\n * \n * System properties:\n * - axiomshell.ai.provider (default provider)\n * - axiomshell.openai.apiKey\n * - axiomshell.anthropic.apiKey\n * - etc.\n */\npublic class ProviderConfiguration {\n\n private static final String CONFIG_DIR = \"config\";\n private static final String CONFIG_FILE = \"ai-providers.json\";\n \n private final String defaultProvider;\n private final Map