Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/ashoksainiengineer_ai-pandit-app.json
T
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
32 KiB
JSON

{"repo": "ashoksainiengineer/ai-pandit-app", "files": {".env.local.example": {"70dfeee230ed8423295430ae81fad2d8df270cf7": {"t": 1785746464.4749565, "n": 1103, "h": "824dbfc41f0c6980", "c": "# REQUIRED: Infrastructure\nNEON_DATABASE_URL=postgresql://neondb_owner:password@ep-example.ap-southeast-1.aws.neon.tech/neondb?sslmode=require\nREDIS_URL=rediss://default:password@host.upstash.io:6379\nENCRYPTION_SECRET=your-64-char-hex-secret\n\n# REQUIRED: Authentication\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_Y2xlcmsuYWlwYW5kaXQuYXBwJA\nCLERK_SECRET_KEY=sk_live_xxxxxxxxx\nCLERK_WEBHOOK_SECRET=whsec_xxxxxxxxx\n\n# REQUIRED: AI Configuration\nAI_API_KEY=sk-your-deepseek-api-key\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-reasoner\n\n# OPTIONAL: AI Performance Tuning\nAI_PARALLEL_CONCURRENCY=5\nAI_STAGE2_MAX_TOKENS=32768\nAI_STAGE4_MAX_TOKENS=32768\nAI_STAGE6_MAX_TOKENS=32768\n\n# Upstash REST (for direct API access)\nUPSTASH_REDIS_REST_URL=https://host.upstash.io\nUPSTASH_REDIS_REST_TOKEN=your-upstash-rest-token\n\n# REQUIRED: Service URLs\nNEXT_PUBLIC_BACKEND_URL=https://api-service-7tjuxigfoq-as.a.run.app\nNEXT_PUBLIC_APP_URL=https://www.aipandit.app\nFRONTEND_URL=https://www.aipandit.app\nEPHEMERIS_SERVICE_URL=https://ephemeris-service-7tjuxigfoq-as.a.run.app\n\n# Environment\nNODE_ENV=production\n"}, "8df55af02c2247aeb93e046c3927d4cc6c817241": {"t": 1785764598.2275937, "n": 1103, "h": "824dbfc41f0c6980", "c": "# REQUIRED: Infrastructure\nNEON_DATABASE_URL=postgresql://neondb_owner:password@ep-example.ap-southeast-1.aws.neon.tech/neondb?sslmode=require\nREDIS_URL=rediss://default:password@host.upstash.io:6379\nENCRYPTION_SECRET=your-64-char-hex-secret\n\n# REQUIRED: Authentication\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_Y2xlcmsuYWlwYW5kaXQuYXBwJA\nCLERK_SECRET_KEY=sk_live_xxxxxxxxx\nCLERK_WEBHOOK_SECRET=whsec_xxxxxxxxx\n\n# REQUIRED: AI Configuration\nAI_API_KEY=sk-your-deepseek-api-key\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-reasoner\n\n# OPTIONAL: AI Performance Tuning\nAI_PARALLEL_CONCURRENCY=5\nAI_STAGE2_MAX_TOKENS=32768\nAI_STAGE4_MAX_TOKENS=32768\nAI_STAGE6_MAX_TOKENS=32768\n\n# Upstash REST (for direct API access)\nUPSTASH_REDIS_REST_URL=https://host.upstash.io\nUPSTASH_REDIS_REST_TOKEN=your-upstash-rest-token\n\n# REQUIRED: Service URLs\nNEXT_PUBLIC_BACKEND_URL=https://api-service-7tjuxigfoq-as.a.run.app\nNEXT_PUBLIC_APP_URL=https://www.aipandit.app\nFRONTEND_URL=https://www.aipandit.app\nEPHEMERIS_SERVICE_URL=https://ephemeris-service-7tjuxigfoq-as.a.run.app\n\n# Environment\nNODE_ENV=production\n"}, "b8a9bd284dd205852d29a08d20479b64f72e749b": {"t": 1785764599.6380732, "n": 815, "h": "d78fb5a159f307ea", "c": "# REQUIRED: Infrastructure\nNEON_DATABASE_URL=postgresql://user:password@host/dbname?sslmode=require\nREDIS_URL=rediss://default:password@host:port\nENCRYPTION_SECRET=your-64-char-hex-secret\n\n# REQUIRED: Authentication\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxx\nCLERK_SECRET_KEY=sk_live_xxxx\nCLERK_WEBHOOK_SECRET=whsec_xxxx\n\n# REQUIRED: AI Configuration\nAI_API_KEY=your-api-key\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-reasoner\n\n# OPTIONAL: AI Performance Tuning\nAI_PARALLEL_CONCURRENCY=5\nAI_STAGE2_MAX_TOKENS=32768\nAI_STAGE4_MAX_TOKENS=32768\nAI_STAGE6_MAX_TOKENS=32768\n\n# REQUIRED: Service URLs\nNEXT_PUBLIC_BACKEND_URL=https://api-service.xxxx.a.run.app\nNEXT_PUBLIC_APP_URL=https://www.yourdomain.com\nEPHEMERIS_SERVICE_URL=https://ephemeris-service.xxxx.a.run.app\n\n# Environment\nNODE_ENV=production\n"}, "dc619ae26544877c70842122a0ab7e8d8c22ab71": {"t": 1785764601.0052714, "n": 3371, "h": "dd00c865e3f226ea", "c": "# Local Development Environment Variables\n# Copy this file to .env.local and fill in your values\n\n# =============================================================================\n# CLERK AUTHENTICATION (Required)\n# Get from: https://dashboard.clerk.com\n# =============================================================================\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_YOUR_KEY_HERE\nCLERK_SECRET_KEY=sk_test_YOUR_KEY_HERE\n\n# =============================================================================\n# BACKEND CONFIGURATION\n# =============================================================================\n# URL where backend is running (for local dev, use localhost)\nNEXT_PUBLIC_BACKEND_URL=http://localhost:7860\n\n# =============================================================================\n# DATABASE (Neon Postgres)\n# Get from: https://neon.tech\n# =============================================================================\nNEON_DATABASE_URL=postgresql://user:password@localhost:5432/ai-pandit\n\n# =============================================================================\n# ENCRYPTION (Required - must be 32+ characters)\n# Generate with: openssl rand -base64 32\n# =============================================================================\nENCRYPTION_SECRET=your-encryption-secret-min-32-characters-long\n\n# =============================================================================\n# AI CONFIGURATION (OpenRouter)\n# Get from: https://openrouter.ai/keys\n# =============================================================================\nOPENROUTER_API_KEY=sk-or-v1-your-key-here\n\n# =============================================================================\n# OPTIONAL: Other Settings\n# =============================================================================\n# AI_MODEL=deepseek/deepseek-r1-0528\n# AI_TIMEOUT_MS=180000\n# MAX_CONCURRENT_SESSIONS=3\n# MAX_ACTIVE_JOBS_PER_USER=2\n# MAX_ACTIVE_JOBS_FREE=2\n# MAX_ACTIVE_JOBS_PRO=5\n# MAX_ACTIVE_JOBS_ENTERPRISE=12\n# LOAD_SHED_QUEUE_DEPTH=80\n# JOB_EXECUTION_MODE=external_worker\n# WORKER_POLL_INTERVAL_MS=2000\n# WORKER_DRAIN_TIMEOUT_MS=30000\n# WORKER_RECOVERY_ALERT_THRESHOLD=1\n# JOB_SYNC_POLL_INTERVAL_MS=2000\n# REDIS_URL=redis://localhost:6379\n# OTEL_ENABLED=false\n# OTEL_SERVICE_NAME=ai-pandit-api\n# OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.com/v1/traces\n# OTEL_TRACE_SAMPLE_RATIO=1\n# TRACE_HEADER_NAME=x-trace-id\n# SLO_WINDOW_MS=300000\n# SLO_MIN_SAMPLE_SIZE=20\n# SLO_ERROR_RATE_ALERT_PERCENT=5\n# SLO_P95_LATENCY_ALERT_MS=5000\n# REDIS_URL=redis://localhost:6379\n# REDIS_TLS=false\n# REDIS_QUEUE_NAME=ai-pandit:btr:jobs\n\n# =============================================================================\n# OPTIONAL: Deployed Stack Verification\n# =============================================================================\n# Use these when you want smoke/health verification against deployed Cloud Run.\n# NEXT_PUBLIC_BACKEND_URL should point at the deployed API service.\n# WORKER_HEALTH_URL should point at the deployed worker service.\n# CLERK_BEARER_TOKEN should be a non-interactive test user's bearer token.\n# WORKER_HEALTH_URL=https://worker-service-xxx.a.run.app\n# CLERK_BEARER_TOKEN=eyJhbGciOi...\n# SMOKE_BACKEND_URL=https://api-service-xxx.a.run.app\n# SMOKE_API_BASE_URL=https://api-service-xxx.a.run.app\n# SMOKE_PAYLOAD_PATH=apps/api/src/scripts/fixtures/smoke-job-payload.json\n"}, "87e110562ae187f03a9b8df89c9324ccb3c421e6": {"t": 1785764602.3097856, "n": 3368, "h": "90946163d6e0a140", "c": "# Local Development Environment Variables\n# Copy this file to .env.local and fill in your values\n\n# =============================================================================\n# CLERK AUTHENTICATION (Required)\n# Get from: https://dashboard.clerk.com\n# =============================================================================\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_YOUR_KEY_HERE\nCLERK_SECRET_KEY=sk_test_YOUR_KEY_HERE\n\n# =============================================================================\n# BACKEND CONFIGURATION\n# =============================================================================\n# URL where backend is running (for local dev, use localhost)\nNEXT_PUBLIC_BACKEND_URL=http://localhost:7860\n\n# =============================================================================\n# DATABASE (Neon Postgres)\n# Get from: https://neon.tech\n# =============================================================================\nNEON_DATABASE_URL=postgresql://user:password@localhost:5432/ai-pandit\n\n# =============================================================================\n# ENCRYPTION (Required - must be 32+ characters)\n# Generate with: openssl rand -base64 32\n# =============================================================================\nENCRYPTION_SECRET=your-encryption-secret-min-32-characters-long\n\n# =============================================================================\n# AI CONFIGURATION (OpenRouter)\n# Get from: https://openrouter.ai/keys\n# =============================================================================\nOPENROUTER_API_KEY=sk-or-v1-your-key-here\n\n# =============================================================================\n# OPTIONAL: Other Settings\n# =============================================================================\n# AI_MODEL=deepseek/deepseek-r1-0528\n# AI_TIMEOUT_MS=180000\n# MAX_CONCURRENT_SESSIONS=3\n# MAX_ACTIVE_JOBS_PER_USER=2\n# MAX_ACTIVE_JOBS_FREE=2\n# MAX_ACTIVE_JOBS_PRO=5\n# MAX_ACTIVE_JOBS_ENTERPRISE=12\n# LOAD_SHED_QUEUE_DEPTH=80\n# JOB_EXECUTION_MODE=external_worker\n# QUEUE_ARCHITECTURE=db_polling\n# WORKER_POLL_INTERVAL_MS=2000\n# WORKER_DRAIN_TIMEOUT_MS=30000\n# WORKER_RECOVERY_ALERT_THRESHOLD=1\n# JOB_SYNC_POLL_INTERVAL_MS=2000\n# OTEL_ENABLED=false\n# OTEL_SERVICE_NAME=ai-pandit-api\n# OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.com/v1/traces\n# OTEL_TRACE_SAMPLE_RATIO=1\n# TRACE_HEADER_NAME=x-trace-id\n# SLO_WINDOW_MS=300000\n# SLO_MIN_SAMPLE_SIZE=20\n# SLO_ERROR_RATE_ALERT_PERCENT=5\n# SLO_P95_LATENCY_ALERT_MS=5000\n# REDIS_URL=redis://localhost:6379\n# REDIS_TLS=false\n# REDIS_QUEUE_NAME=ai-pandit:btr:jobs\n\n# =============================================================================\n# OPTIONAL: Deployed Stack Verification\n# =============================================================================\n# Use these when you want smoke/health verification against deployed Cloud Run.\n# NEXT_PUBLIC_BACKEND_URL should point at the deployed API service.\n# WORKER_HEALTH_URL should point at the deployed worker service.\n# CLERK_BEARER_TOKEN should be a non-interactive test user's bearer token.\n# WORKER_HEALTH_URL=https://worker-service-xxx.a.run.app\n# CLERK_BEARER_TOKEN=eyJhbGciOi...\n# SMOKE_BACKEND_URL=https://api-service-xxx.a.run.app\n# SMOKE_API_BASE_URL=https://api-service-xxx.a.run.app\n# SMOKE_PAYLOAD_PATH=apps/api/src/scripts/fixtures/smoke-job-payload.json\n"}, "b0287119fa684d6756dbde09b01df3091b1e88fd": {"t": 1785764603.8204145, "n": 2604, "h": "86c88bb7d536e787", "c": "# Local Development Environment Variables\n# Copy this file to .env.local and fill in your values\n\n# =============================================================================\n# CLERK AUTHENTICATION (Required)\n# Get from: https://dashboard.clerk.com\n# =============================================================================\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_YOUR_KEY_HERE\nCLERK_SECRET_KEY=sk_test_YOUR_KEY_HERE\n\n# =============================================================================\n# BACKEND CONFIGURATION\n# =============================================================================\n# URL where backend is running (for local dev, use localhost)\nNEXT_PUBLIC_BACKEND_URL=http://localhost:7860\n\n# =============================================================================\n# DATABASE (Neon Postgres)\n# Get from: https://neon.tech\n# =============================================================================\nNEON_DATABASE_URL=postgresql://user:password@localhost:5432/ai-pandit\n\n# =============================================================================\n# ENCRYPTION (Required - must be 32+ characters)\n# Generate with: openssl rand -base64 32\n# =============================================================================\nENCRYPTION_SECRET=your-encryption-secret-min-32-characters-long\n\n# =============================================================================\n# AI CONFIGURATION (OpenRouter)\n# Get from: https://openrouter.ai/keys\n# =============================================================================\nOPENROUTER_API_KEY=sk-or-v1-your-key-here\n\n# =============================================================================\n# OPTIONAL: Other Settings\n# =============================================================================\n# AI_MODEL=deepseek/deepseek-r1-0528\n# AI_TIMEOUT_MS=180000\n# MAX_CONCURRENT_SESSIONS=3\n# MAX_ACTIVE_JOBS_PER_USER=2\n# MAX_ACTIVE_JOBS_FREE=2\n# MAX_ACTIVE_JOBS_PRO=5\n# MAX_ACTIVE_JOBS_ENTERPRISE=12\n# LOAD_SHED_QUEUE_DEPTH=80\n# JOB_EXECUTION_MODE=external_worker\n# QUEUE_ARCHITECTURE=db_polling\n# WORKER_POLL_INTERVAL_MS=2000\n# WORKER_DRAIN_TIMEOUT_MS=30000\n# WORKER_RECOVERY_ALERT_THRESHOLD=1\n# JOB_SYNC_POLL_INTERVAL_MS=2000\n# OTEL_ENABLED=false\n# OTEL_SERVICE_NAME=ai-pandit-api\n# OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.com/v1/traces\n# OTEL_TRACE_SAMPLE_RATIO=1\n# TRACE_HEADER_NAME=x-trace-id\n# SLO_WINDOW_MS=300000\n# SLO_MIN_SAMPLE_SIZE=20\n# SLO_ERROR_RATE_ALERT_PERCENT=5\n# SLO_P95_LATENCY_ALERT_MS=5000\n# REDIS_URL=redis://localhost:6379\n# REDIS_TLS=false\n# REDIS_QUEUE_NAME=ai-pandit:btr:jobs\n"}, "6a060713c27b94fa88714757d1e3567b45e8643d": {"t": 1785764605.4485855, "n": 1875, "h": "2296a30aa9ffaa14", "c": "# Local Development Environment Variables\n# Copy this file to .env.local and fill in your values\n\n# =============================================================================\n# CLERK AUTHENTICATION (Required)\n# Get from: https://dashboard.clerk.com\n# =============================================================================\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_YOUR_KEY_HERE\nCLERK_SECRET_KEY=sk_test_YOUR_KEY_HERE\n\n# =============================================================================\n# BACKEND CONFIGURATION\n# =============================================================================\n# URL where backend is running (for local dev, use localhost)\nNEXT_PUBLIC_BACKEND_URL=http://localhost:7860\n\n# =============================================================================\n# DATABASE (Turso)\n# Get from: https://turso.tech\n# =============================================================================\nTURSO_DATABASE_URL=libsql://your-db.turso.io\nTURSO_AUTH_TOKEN=your-turso-token\n\n# =============================================================================\n# ENCRYPTION (Required - must be 32+ characters)\n# Generate with: openssl rand -base64 32\n# =============================================================================\nENCRYPTION_SECRET=your-encryption-secret-min-32-characters-long\n\n# =============================================================================\n# AI CONFIGURATION (OpenRouter)\n# Get from: https://openrouter.ai/keys\n# =============================================================================\nOPENROUTER_API_KEY=sk-or-v1-your-key-here\n\n# =============================================================================\n# OPTIONAL: Other Settings\n# =============================================================================\n# AI_MODEL=deepseek/deepseek-r1-0528\n# AI_TIMEOUT_MS=180000\n# MAX_CONCURRENT_SESSIONS=3\n"}}, "apps/api/.env.example": {"70dfeee230ed8423295430ae81fad2d8df270cf7": {"t": 1785746731.1197221, "n": 1581, "h": "a944feb023b77d23", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://www.aipandit.app\n# Additional allowed CORS origins (comma-separated)\n# Include all your frontend URLs: production domains and localhost for development\nALLOWED_ORIGINS=https://www.aipandit.app,https://aipandit.app,http://localhost:3000,http://localhost:5173\n\n# Database (Neon Postgres)\nNEON_DATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nDATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nPOSTGRES_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\n\n# Redis (Upstash)\nREDIS_URL=rediss://default:token@host.upstash.io:6379\nREDIS_TLS=true\n\n# AI Configuration - DeepSeek v4 Flash\nAI_API_KEY=your-deepseek-api-key\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-v4-flash\nAI_MODEL_REASONER=deepseek-reasoner\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Ephemeris\nEPHEMERIS_PROVIDER=skyfield\nEPHEMERIS_ALLOW_ALGORITHMIC_FALLBACK=false\nEPHEMERIS_SERVICE_URL=http://localhost:8000\nEPHEMERIS_SERVICE_TIMEOUT_MS=15000\nEPHEMERIS_BATCH_SIZE=250\nEPHEMERIS_HOUSE_SYSTEM=whole_sign\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}, "8df55af02c2247aeb93e046c3927d4cc6c817241": {"t": 1785764598.312343, "n": 1581, "h": "a944feb023b77d23", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://www.aipandit.app\n# Additional allowed CORS origins (comma-separated)\n# Include all your frontend URLs: production domains and localhost for development\nALLOWED_ORIGINS=https://www.aipandit.app,https://aipandit.app,http://localhost:3000,http://localhost:5173\n\n# Database (Neon Postgres)\nNEON_DATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nDATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nPOSTGRES_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\n\n# Redis (Upstash)\nREDIS_URL=rediss://default:token@host.upstash.io:6379\nREDIS_TLS=true\n\n# AI Configuration - DeepSeek v4 Flash\nAI_API_KEY=your-deepseek-api-key\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-v4-flash\nAI_MODEL_REASONER=deepseek-reasoner\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Ephemeris\nEPHEMERIS_PROVIDER=skyfield\nEPHEMERIS_ALLOW_ALGORITHMIC_FALLBACK=false\nEPHEMERIS_SERVICE_URL=http://localhost:8000\nEPHEMERIS_SERVICE_TIMEOUT_MS=15000\nEPHEMERIS_BATCH_SIZE=250\nEPHEMERIS_HOUSE_SYSTEM=whole_sign\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}, "7533f524e158ab3b4e870607ea22689a4070558a": {"t": 1785764599.7148862, "n": 1632, "h": "6d22099d68fd1817", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://your-app-domain.com\n# Additional allowed CORS origins (comma-separated)\n# Include all your frontend URLs: production domains and localhost for development\nALLOWED_ORIGINS=https://your-production-domain.com,https://www.your-production-domain.com,http://localhost:3000,http://localhost:3001,http://localhost:5173\n\n# Database (Neon Postgres)\nNEON_DATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nDATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nPOSTGRES_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\n\n# Redis (Upstash)\nREDIS_URL=rediss://default:token@host.upstash.io:6379\nREDIS_TLS=true\n\n# AI Configuration - DeepSeek v4 Flash\nAI_API_KEY=your-deepseek-api-key\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-v4-flash\nAI_MODEL_REASONER=deepseek-reasoner\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Ephemeris\nEPHEMERIS_PROVIDER=skyfield\nEPHEMERIS_ALLOW_ALGORITHMIC_FALLBACK=false\nEPHEMERIS_SERVICE_URL=http://localhost:8000\nEPHEMERIS_SERVICE_TIMEOUT_MS=15000\nEPHEMERIS_BATCH_SIZE=250\nEPHEMERIS_HOUSE_SYSTEM=placidus\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}, "63940859ae799369f1e283b7820792b70cd366cd": {"t": 1785764601.0742953, "n": 1628, "h": "821596972b61c368", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://your-app-domain.com\n# Additional allowed CORS origins (comma-separated)\n# Include all your frontend URLs: production domains and localhost for development\nALLOWED_ORIGINS=https://your-production-domain.com,https://www.your-production-domain.com,http://localhost:3000,http://localhost:3001,http://localhost:5173\n\n# Database (Neon Postgres)\nNEON_DATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nDATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nPOSTGRES_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\n\n# Redis (Upstash)\nREDIS_URL=rediss://default:token@host.upstash.io:6379\nREDIS_TLS=true\n\n# AI Configuration - DeepSeek v4 Flash\nAI_API_KEY=your-deepseek-api-key\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-chat\nAI_MODEL_REASONER=deepseek-reasoner\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Ephemeris\nEPHEMERIS_PROVIDER=skyfield\nEPHEMERIS_ALLOW_ALGORITHMIC_FALLBACK=false\nEPHEMERIS_SERVICE_URL=http://localhost:8000\nEPHEMERIS_SERVICE_TIMEOUT_MS=15000\nEPHEMERIS_BATCH_SIZE=250\nEPHEMERIS_HOUSE_SYSTEM=placidus\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}, "d5434d5f74770c86fa7829231fc40452efa3d801": {"t": 1785764602.3232782, "n": 1609, "h": "df3906ab84133bd6", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://your-app-domain.com\n# Additional allowed CORS origins (comma-separated)\n# Include all your frontend URLs: production domains and localhost for development\nALLOWED_ORIGINS=https://your-production-domain.com,https://www.your-production-domain.com,http://localhost:3000,http://localhost:3001,http://localhost:5173\n\n# Database (Neon Postgres)\nNEON_DATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nDATABASE_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\nPOSTGRES_URL=postgresql://user:password@host.region.aws.neon.tech/dbname?sslmode=require\n\n# Redis (Upstash)\nREDIS_URL=rediss://default:token@host.upstash.io:6379\nREDIS_TLS=true\n\n# AI Configuration\nAI_API_KEY=your-api-key\nAI_BASE_URL=https://api.groq.com/openai/v1\nAI_MODEL=deepseek-reasoner\nAI_MODEL_REASONER=deepseek-reasoner\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Ephemeris\nEPHEMERIS_PROVIDER=skyfield\nEPHEMERIS_ALLOW_ALGORITHMIC_FALLBACK=false\nEPHEMERIS_SERVICE_URL=http://localhost:8000\nEPHEMERIS_SERVICE_TIMEOUT_MS=15000\nEPHEMERIS_BATCH_SIZE=250\nEPHEMERIS_HOUSE_SYSTEM=placidus\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}, "8b48bd7c3a4d9d170f0483d1c48a429e9b8ab681": {"t": 1785764603.8921113, "n": 1345, "h": "3b64756ed10e45c0", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://your-app-domain.com\n# Additional allowed CORS origins (comma-separated)\n# Include all your frontend URLs: production domains and localhost for development\nALLOWED_ORIGINS=https://your-production-domain.com,https://www.your-production-domain.com,http://localhost:3000,http://localhost:3001,http://localhost:5173\n\n# Database (Turso)\nTURSO_DATABASE_URL=libsql://your-db-name.turso.io\nTURSO_AUTH_TOKEN=your-turso-token\n\n# AI Configuration (OpenRouter/Fireworks)\nAI_API_KEY=your-api-key\nAI_MODEL=accounts/fireworks/models/deepseek-v3\nAI_MODEL_REASONER=accounts/fireworks/models/deepseek-r1\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Ephemeris\nEPHEMERIS_PROVIDER=skyfield\nEPHEMERIS_ALLOW_ALGORITHMIC_FALLBACK=false\nEPHEMERIS_SERVICE_URL=http://localhost:8000\nEPHEMERIS_SERVICE_TIMEOUT_MS=15000\nEPHEMERIS_BATCH_SIZE=250\nEPHEMERIS_HOUSE_SYSTEM=placidus\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}, "3cf47615506efb7dfd78ba78ce36393d19d3932a": {"t": 1785764605.452272, "n": 1182, "h": "ee43eefa63e9b6af", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://your-app-domain.com\n# Additional allowed CORS origins (comma-separated)\n# Include all your frontend URLs: production domains, Vercel deployments, localhost for development\nALLOWED_ORIGINS=https://your-production-domain.com,https://www.your-production-domain.com,https://your-vercel-frontend.vercel.app,http://localhost:3000,http://localhost:3001,http://localhost:5173\n\n# Database (Turso)\nTURSO_DATABASE_URL=libsql://your-db-name.turso.io\nTURSO_AUTH_TOKEN=your-turso-token\n\n# AI Configuration (OpenRouter/Fireworks)\nAI_API_KEY=your-api-key\nAI_MODEL=accounts/fireworks/models/deepseek-v3\nAI_MODEL_REASONER=accounts/fireworks/models/deepseek-r1\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}, "3ffa981f45b84df9322c914edbc5baffcc71b4be": {"t": 1785764607.1000407, "n": 878, "h": "4aaf66c7e42732a6", "c": "# AI-Pandit API Environment Template\n# =================================\n\n# Server\nNODE_ENV=production\nPORT=3001\nBACKEND_URL=https://your-api-domain.com\nFRONTEND_URL=https://your-app-domain.com\nALLOWED_ORIGINS=https://your-app-domain.com\n\n# Database (Turso)\nTURSO_DATABASE_URL=libsql://your-db-name.turso.io\nTURSO_AUTH_TOKEN=your-turso-token\n\n# AI Configuration (OpenRouter/Fireworks)\nAI_API_KEY=your-api-key\nAI_MODEL=accounts/fireworks/models/deepseek-v3\nAI_MODEL_REASONER=accounts/fireworks/models/deepseek-r1\nAI_TIMEOUT_MS=120000\nREQUEST_TIMEOUT_MS=300000\n\n# Performance/Queue\nMAX_CONCURRENT_SESSIONS=3\nHEAP_THRESHOLD_GB=4\nRSS_THRESHOLD_GB=6\n\n# Security\nCLERK_SECRET_KEY=sk_live_...\nCLERK_WEBHOOK_SECRET=whsec_...\nENCRYPTION_SECRET=at-least-32-character-random-string\nINTERNAL_API_KEY=your-internal-key\n\n# Rate Limiting\nRATE_LIMIT_WINDOW_MS=60000\nRATE_LIMIT_MAX_REQUESTS=100\n"}}, ".env.example": {"70dfeee230ed8423295430ae81fad2d8df270cf7": {"t": 1786068079.6619012, "n": 3924, "h": "4b83777e16f5e998", "c": "# ==========================================\n# AI-PANDIT BTR ENGINE - ENVIRONMENT VARIABLES\n# ==========================================\n\n# ==========================================\n# CLERK AUTHENTICATION\n# ==========================================\n# Get these from https://dashboard.clerk.com\nNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_Y2xlcmsuYWlwYW5kaXQuYXBwJA\nCLERK_SECRET_KEY=sk_live_xxxxxxxxx\n\n# Clerk Redirect URLs\nNEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in\nNEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up\nNEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard\nNEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard\n\n# ==========================================\n# NEON POSTGRES DATABASE\n# ==========================================\n# Get these from https://neon.tech\nNEON_DATABASE_URL=postgresql://user:password@ep-example.region.aws.neon.tech/dbname?sslmode=require\n\n# ==========================================\n# APPLICATION SETTINGS\n# ==========================================\nNODE_ENV=production\nPORT=8080\n\n# ==========================================\n# FRONTEND-BACKEND CONNECTION\n# ==========================================\n# Your deployed frontend URL\nFRONTEND_URL=https://www.aipandit.app\nNEXT_PUBLIC_APP_URL=https://www.aipandit.app\n# Your deployed API URL\nNEXT_PUBLIC_BACKEND_URL=https://api-service-7tjuxigfoq-as.a.run.app\n# Additional allowed CORS origins (comma-separated)\nALLOWED_ORIGINS=https://www.aipandit.app,https://aipandit.app,http://localhost:3000,http://localhost:5173\n\n# ==========================================\n# AI CONFIGURATION\n# ==========================================\n# Using DeepSeek API for AI-powered BTR analysis\n# Get API key from https://platform.deepseek.com\nAI_API_KEY=sk-your_deepseek_api_key_here\nAI_BASE_URL=https://api.deepseek.com\nAI_MODEL=deepseek-reasoner\n# ==========================================\n# ENCRYPTION (Required for data security)\n# ==========================================\n# Use a strong random hex string (64+ characters recommended)\n# Must be the same for frontend and backend\nENCRYPTION_SECRET=your_64_char_hex_encryption_secret\n\n# ==========================================\n# RESOURCE MANAGEMENT\n# ==========================================\nNODE_OPTIONS=--max-old-space-size=256\nMAX_CONCURRENT_SESSIONS=3\nMAX_ACTIVE_JOBS_PER_USER=2\nMAX_ACTIVE_JOBS_FREE=2\nMAX_ACTIVE_JOBS_PRO=5\nMAX_ACTIVE_JOBS_ENTERPRISE=12\nLOAD_SHED_QUEUE_DEPTH=80\n\n# Job queue execution — Redis BullMQ (REQUIRED: REDIS_URL below)\nJOB_EXECUTION_MODE=inline\nWORKER_POLL_INTERVAL_MS=60000\nWORKER_DRAIN_TIMEOUT_MS=30000\nWORKER_RECOVERY_ALERT_THRESHOLD=1\nJOB_SYNC_POLL_INTERVAL_MS=2000\n\n# Observability / tracing / SLO\nOTEL_ENABLED=false\nOTEL_SERVICE_NAME=ai-pandit-api\n# OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.com/v1/traces\nOTEL_TRACE_SAMPLE_RATIO=1\nTRACE_HEADER_NAME=x-trace-id\nSLO_WINDOW_MS=300000\nSLO_MIN_SAMPLE_SIZE=20\nSLO_ERROR_RATE_ALERT_PERCENT=5\nSLO_P95_LATENCY_ALERT_MS=5000\n\n# Redis queue settings (REQUIRED — job queue runs on Redis BullMQ)\nREDIS_URL=rediss://default:password@host.upstash.io:6379\nREDIS_TLS=true\nREDIS_QUEUE_NAME=ai-pandit:btr:jobs\n\n# ==========================================\n# WARMUP CONFIGURATION (Prevent Cold Starts)\n# ==========================================\n# Enable periodic warmup pings (default: true)\nENABLE_WARMUP=true\n\n# Warmup interval in minutes (default: 2)\nWARMUP_INTERVAL_MINUTES=2\n\n# Timeout for warmup requests in ms (default: 5000)\nWARMUP_TIMEOUT_MS=5000\n\n# ==========================================\n# EPHEMERIS PROVIDER\n# ==========================================\n# skyfield = primary high-precision path\n# algorithmic = built-in degraded mode\nEPHEMERIS_PROVIDER=skyfield\n\n# Allow degraded mode when the configured high-precision provider is unavailable\nEPHEMERIS_ALLOW_ALGORITHMIC_FALLBACK=false\n\nEPHEMERIS_SERVICE_URL=http://localhost:8000\nEPHEMERIS_SERVICE_TIMEOUT_MS=15000\nEPHEMERIS_BATCH_SIZE=250\nEPHEMERIS_HOUSE_SYSTEM=whole_sign\n"}}}}