{ "functions": { "source": ".", "runtime": "nodejs20", "ignore": [ "node_modules", "src", "logs", "uploads", "*.test.ts", "*.test.js", "jest.config.js", "tsconfig.json", ".eslintrc.js", "Dockerfile", "cloud-run.yaml" ], "predeploy": [ "npm run build" ], "codebase": "backend", "environmentVariables": { "FB_PROJECT_ID": "cim-summarizer-testing", "NODE_ENV": "testing", "GCLOUD_PROJECT_ID": "cim-summarizer-testing", "GCS_BUCKET_NAME": "cim-processor-testing-uploads", "DOCUMENT_AI_OUTPUT_BUCKET_NAME": "cim-processor-testing-processed", "DOCUMENT_AI_LOCATION": "us", "VECTOR_PROVIDER": "supabase", "SUPABASE_URL": "https://ghurdhqdcrxeugyuxxqa.supabase.co", "SUPABASE_ANON_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImdodXJkaHFkY3J4ZXVneXV4eHFhIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTUyNzcxNTYsImV4cCI6MjA3MDg1MzE1Nn0.M_HroS9kUnQ4WfpyIXfziP4N2PBkI2hqOzmTZXXHNag", "SUPABASE_SERVICE_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImdodXJkaHFkY3J4ZXVneXV4eHFhIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc1NTI3NzE1NiwiZXhwIjoyMDcwODUzMTU2fQ.Ze7KGPXLa6CGDN0gsYfgBEP2N4Y-8YGUB_H6xyxggu8", "ANTHROPIC_API_KEY": "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", "PROCESSING_STRATEGY": "agentic_rag", "ENABLE_RAG_PROCESSING": "true", "ENABLE_PROCESSING_COMPARISON": "false", "LLM_PROVIDER": "anthropic", "LLM_MODEL": "claude-3-7-sonnet-20250219", "LLM_FAST_MODEL": "claude-3-5-haiku-20241022", "LLM_FALLBACK_MODEL": "gpt-4.5-preview-2025-02-27", "LLM_FINANCIAL_MODEL": "claude-3-7-sonnet-20250219", "LLM_CREATIVE_MODEL": "gpt-4.5-preview-2025-02-27", "LLM_REASONING_MODEL": "claude-3-7-sonnet-20250219", "LLM_MAX_INPUT_TOKENS": "200000", "LLM_CHUNK_SIZE": "15000", "LLM_TIMEOUT_MS": "180000", "LLM_ENABLE_COST_OPTIMIZATION": "true", "LLM_MAX_COST_PER_DOCUMENT": "3.00", "LLM_USE_FAST_MODEL_FOR_SIMPLE_TASKS": "true", "LLM_ENABLE_HYBRID_APPROACH": "true", "LLM_USE_CLAUDE_FOR_FINANCIAL": "true", "LLM_USE_GPT_FOR_CREATIVE": "true", "AGENTIC_RAG_QUALITY_THRESHOLD": "0.8", "AGENTIC_RAG_COMPLETENESS_THRESHOLD": "0.9", "AGENTIC_RAG_CONSISTENCY_CHECK": "true", "AGENTIC_RAG_DETAILED_LOGGING": "true", "AGENTIC_RAG_PERFORMANCE_TRACKING": "true", "AGENTIC_RAG_ERROR_REPORTING": "true", "AGENT_DOCUMENT_UNDERSTANDING_ENABLED": "true", "AGENT_FINANCIAL_ANALYSIS_ENABLED": "true", "AGENT_MARKET_ANALYSIS_ENABLED": "true", "AGENT_INVESTMENT_THESIS_ENABLED": "true", "AGENT_SYNTHESIS_ENABLED": "true", "AGENT_VALIDATION_ENABLED": "true", "COST_MONITORING_ENABLED": "true", "USER_DAILY_COST_LIMIT": "50.00", "USER_MONTHLY_COST_LIMIT": "500.00", "DOCUMENT_COST_LIMIT": "10.00", "SYSTEM_DAILY_COST_LIMIT": "1000.00", "CACHE_ENABLED": "true", "CACHE_TTL_HOURS": "168", "CACHE_SIMILARITY_THRESHOLD": "0.85", "CACHE_MAX_SIZE": "10000", "MICROSERVICE_ENABLED": "true", "MICROSERVICE_MAX_CONCURRENT_JOBS": "5", "MICROSERVICE_HEALTH_CHECK_INTERVAL": "30000", "MICROSERVICE_QUEUE_PROCESSING_INTERVAL": "5000", "REDIS_URL": "redis://localhost:6379", "REDIS_HOST": "localhost", "REDIS_PORT": "6379", "MAX_FILE_SIZE": "52428800", "ALLOWED_FILE_TYPES": "application/pdf", "FRONTEND_URL": "https://cim-summarizer-testing.web.app", "EMAIL_HOST": "smtp.gmail.com", "EMAIL_PORT": "587", "EMAIL_SECURE": "false", "EMAIL_FROM": "noreply@cim-summarizer-testing.com", "WEEKLY_EMAIL_RECIPIENT": "jpressnell@bluepointcapital.com", "VITE_ADMIN_EMAILS": "jpressnell@bluepointcapital.com" } }, "hosting": { "public": "frontend-dist", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] } }