1 line
47 KiB
JSON
1 line
47 KiB
JSON
{"repo": "amd-hackathon-ispm/bandsofagent-ferry", "files": {"backend/.env.example": {"19c9c74975c47a6b08277a69fac3d0ce00c6af7a": {"t": 1785746755.1475804, "n": 4953, "h": "8e7fc5fa7ac86b6a", "c": "PORT=8080\r\nENV=development\r\nFRONTEND_URL=http://localhost:3000\r\n\r\nDB_HOST=localhost\r\nDB_PORT=5432\r\nDB_NAME=ferry\r\nDB_USER=ferry\r\nDB_PASSWORD=\r\nDB_SSL_MODE=disable\r\nDB_MAX_OPEN_CONNS=25\r\nDB_MAX_IDLE_CONNS=5\r\nDB_CONN_MAX_LIFETIME=5m\r\n\r\nREDIS_HOST=localhost\r\nREDIS_PORT=6379\r\nREDIS_PASSWORD=\r\nREDIS_DB=0\r\nREDIS_MAX_RETRIES=3\r\nREDIS_POOL_SIZE=10\r\n\r\nMINIO_ENDPOINT=localhost:9000\r\nMINIO_ACCESS_KEY=ferry\r\nMINIO_SECRET_KEY=\r\nMINIO_USE_SSL=false\r\nMINIO_BUCKET_SOURCE=ferry-source-files\r\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\r\nMINIO_BUCKET_REPORTS=ferry-reports\r\n\r\nJWT_SECRET=\r\nJWT_ACCESS_EXPIRY=15m\r\nJWT_REFRESH_EXPIRY=168h\r\n\r\nGITHUB_CLIENT_ID=\r\nGITHUB_CLIENT_SECRET=\r\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\r\n\r\n# GitHub App identity — used to mint short-lived, per-repo installation tokens\r\n# so PRs push with the user's installed App (no PATs). APP_ID is the numeric id\r\n# from the App settings; APP_SLUG is the name in github.com/apps/<slug>.\r\n# Configure the App with Contents + Pull requests = Read/write, and set its\r\n# \"Setup URL\" to <backend>/auth/github/setup.\r\nGITHUB_APP_ID=\r\nGITHUB_APP_SLUG=\r\n# Private key — pick ONE:\r\n# (A) easiest: drop the downloaded .pem next to this file and point to it.\r\n# In Docker, mount it and use the in-container path (see docker-compose).\r\nGITHUB_APP_PRIVATE_KEY_PATH=\r\n# (B) inline: the .pem as a single line with literal \\n between lines.\r\nGITHUB_APP_PRIVATE_KEY=\r\n\r\n# Optional fallback only: a classic PAT with `repo` scope, used if no GitHub App\r\n# installation token and no user login token can write. Leave empty in prod.\r\nGITHUB_PAT=\r\nGITHUB_GUEST_PAT=\r\nGUEST_REPOS=ferrymigrator/repo-one,ferrymigrator/repo-two,ferrymigrator/repo-three\r\n\r\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\r\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\r\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\r\nCORS_ALLOW_CREDENTIALS=true\r\n\r\nLOG_LEVEL=info\r\nLOG_FORMAT=json\r\n\r\nBAND_PROVIDER=stub\r\nBAND_BASE_URL=https://app.band.ai/api/v1\r\nBAND_API_KEY=\r\nBAND_AGENT_NAMESPACE=dxs16823\r\n\r\nBAND_ROUTER_ID=\r\nBAND_ROUTER_KEY=\r\nBAND_COMMANDER_ID=\r\nBAND_COMMANDER_KEY=\r\nBAND_TEST_GENERATOR_ID=\r\nBAND_TEST_GENERATOR_KEY=\r\nBAND_GITHUB_CONNECTOR_ID=\r\nBAND_GITHUB_CONNECTOR_KEY=\r\nBAND_SOURCE_ANALYZER_ID=\r\nBAND_SOURCE_ANALYZER_KEY=\r\nBAND_BUSINESS_LOGIC_ID=\r\nBAND_BUSINESS_LOGIC_KEY=\r\nBAND_CODE_GENERATOR_ID=\r\nBAND_CODE_GENERATOR_KEY=\r\nBAND_DB_MIGRATION_ID=\r\nBAND_DB_MIGRATION_KEY=\r\nBAND_REVIEWER_ID=\r\nBAND_REVIEWER_KEY=\r\n\r\n# Provider keys may be a COMMA-SEPARATED pool (e.g. \"k1,k2,k3\"). The number of\r\n# concurrent runs = the smallest pool size across providers; each running migration\r\n# is pinned to one key (its own rate budget). Extra runs queue (see scheduler).\r\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\r\nAIMLAPI_KEY=\r\n\r\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\r\nFEATHERLESS_KEY=\r\n\r\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\r\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\r\n# pro_plus). Agents also back off + retry on 429.\r\nLLM_MAX_CONCURRENCY=2\r\nMODEL_MAX_TOKENS=16384\r\n\r\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_ROUTER_SOURCE=aimlapi\r\n\r\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_COMMANDER_SOURCE=aimlapi\r\n\r\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\r\n\r\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\r\n\r\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\r\n\r\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\r\n\r\nAGENT_CODE_GENERATOR_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_GO_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_GO_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_RUST_MODEL=Fortytwo-Network/Strand-Rust-Coder-14B-v1\r\nAGENT_CODE_GENERATOR_RUST_SOURCE=featherless\r\n\r\nAGENT_DB_MIGRATION_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_DB_MIGRATION_SOURCE=featherless\r\n\r\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_REVIEWER_SOURCE=featherless\r\n\r\nENABLE_DB_MIGRATION=true\r\nENABLE_GITHUB_INTEGRATION=true\r\nENABLE_REAL_BAND=false\r\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\r\nENABLE_CODE_EXECUTION=false\r\nENABLE_GUEST_MODE=false\r\nGUEST_SESSION_TTL=24h\r\nGUEST_RATE_WINDOW=1h\r\nGUEST_CREATION_LIMIT_PER_IP=10\r\nGUEST_RUN_CREATION_LIMIT_PER_IP=5\r\nGUEST_ACTIVE_RUN_LIMIT=1\r\nGUEST_GLOBAL_RUN_LIMIT=6\r\n# Runner microservice URL (the only service with Docker access). Empty = run\r\n# Docker locally in-process. In compose this is set to http://runner:9090.\r\nRUNNER_URL=\r\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\r\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\r\nSANDBOX_RUNTIME=\r\n"}, "6e9ebae2d6c2d4424fecfbde435a9367e92952df": {"t": 1785767506.6999857, "n": 4953, "h": "8e7fc5fa7ac86b6a", "c": "PORT=8080\r\nENV=development\r\nFRONTEND_URL=http://localhost:3000\r\n\r\nDB_HOST=localhost\r\nDB_PORT=5432\r\nDB_NAME=ferry\r\nDB_USER=ferry\r\nDB_PASSWORD=\r\nDB_SSL_MODE=disable\r\nDB_MAX_OPEN_CONNS=25\r\nDB_MAX_IDLE_CONNS=5\r\nDB_CONN_MAX_LIFETIME=5m\r\n\r\nREDIS_HOST=localhost\r\nREDIS_PORT=6379\r\nREDIS_PASSWORD=\r\nREDIS_DB=0\r\nREDIS_MAX_RETRIES=3\r\nREDIS_POOL_SIZE=10\r\n\r\nMINIO_ENDPOINT=localhost:9000\r\nMINIO_ACCESS_KEY=ferry\r\nMINIO_SECRET_KEY=\r\nMINIO_USE_SSL=false\r\nMINIO_BUCKET_SOURCE=ferry-source-files\r\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\r\nMINIO_BUCKET_REPORTS=ferry-reports\r\n\r\nJWT_SECRET=\r\nJWT_ACCESS_EXPIRY=15m\r\nJWT_REFRESH_EXPIRY=168h\r\n\r\nGITHUB_CLIENT_ID=\r\nGITHUB_CLIENT_SECRET=\r\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\r\n\r\n# GitHub App identity — used to mint short-lived, per-repo installation tokens\r\n# so PRs push with the user's installed App (no PATs). APP_ID is the numeric id\r\n# from the App settings; APP_SLUG is the name in github.com/apps/<slug>.\r\n# Configure the App with Contents + Pull requests = Read/write, and set its\r\n# \"Setup URL\" to <backend>/auth/github/setup.\r\nGITHUB_APP_ID=\r\nGITHUB_APP_SLUG=\r\n# Private key — pick ONE:\r\n# (A) easiest: drop the downloaded .pem next to this file and point to it.\r\n# In Docker, mount it and use the in-container path (see docker-compose).\r\nGITHUB_APP_PRIVATE_KEY_PATH=\r\n# (B) inline: the .pem as a single line with literal \\n between lines.\r\nGITHUB_APP_PRIVATE_KEY=\r\n\r\n# Optional fallback only: a classic PAT with `repo` scope, used if no GitHub App\r\n# installation token and no user login token can write. Leave empty in prod.\r\nGITHUB_PAT=\r\nGITHUB_GUEST_PAT=\r\nGUEST_REPOS=ferrymigrator/repo-one,ferrymigrator/repo-two,ferrymigrator/repo-three\r\n\r\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\r\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\r\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\r\nCORS_ALLOW_CREDENTIALS=true\r\n\r\nLOG_LEVEL=info\r\nLOG_FORMAT=json\r\n\r\nBAND_PROVIDER=stub\r\nBAND_BASE_URL=https://app.band.ai/api/v1\r\nBAND_API_KEY=\r\nBAND_AGENT_NAMESPACE=dxs16823\r\n\r\nBAND_ROUTER_ID=\r\nBAND_ROUTER_KEY=\r\nBAND_COMMANDER_ID=\r\nBAND_COMMANDER_KEY=\r\nBAND_TEST_GENERATOR_ID=\r\nBAND_TEST_GENERATOR_KEY=\r\nBAND_GITHUB_CONNECTOR_ID=\r\nBAND_GITHUB_CONNECTOR_KEY=\r\nBAND_SOURCE_ANALYZER_ID=\r\nBAND_SOURCE_ANALYZER_KEY=\r\nBAND_BUSINESS_LOGIC_ID=\r\nBAND_BUSINESS_LOGIC_KEY=\r\nBAND_CODE_GENERATOR_ID=\r\nBAND_CODE_GENERATOR_KEY=\r\nBAND_DB_MIGRATION_ID=\r\nBAND_DB_MIGRATION_KEY=\r\nBAND_REVIEWER_ID=\r\nBAND_REVIEWER_KEY=\r\n\r\n# Provider keys may be a COMMA-SEPARATED pool (e.g. \"k1,k2,k3\"). The number of\r\n# concurrent runs = the smallest pool size across providers; each running migration\r\n# is pinned to one key (its own rate budget). Extra runs queue (see scheduler).\r\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\r\nAIMLAPI_KEY=\r\n\r\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\r\nFEATHERLESS_KEY=\r\n\r\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\r\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\r\n# pro_plus). Agents also back off + retry on 429.\r\nLLM_MAX_CONCURRENCY=2\r\nMODEL_MAX_TOKENS=16384\r\n\r\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_ROUTER_SOURCE=aimlapi\r\n\r\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_COMMANDER_SOURCE=aimlapi\r\n\r\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\r\n\r\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\r\n\r\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\r\n\r\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\r\n\r\nAGENT_CODE_GENERATOR_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_GO_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_GO_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_RUST_MODEL=Fortytwo-Network/Strand-Rust-Coder-14B-v1\r\nAGENT_CODE_GENERATOR_RUST_SOURCE=featherless\r\n\r\nAGENT_DB_MIGRATION_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_DB_MIGRATION_SOURCE=featherless\r\n\r\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_REVIEWER_SOURCE=featherless\r\n\r\nENABLE_DB_MIGRATION=true\r\nENABLE_GITHUB_INTEGRATION=true\r\nENABLE_REAL_BAND=false\r\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\r\nENABLE_CODE_EXECUTION=false\r\nENABLE_GUEST_MODE=false\r\nGUEST_SESSION_TTL=24h\r\nGUEST_RATE_WINDOW=1h\r\nGUEST_CREATION_LIMIT_PER_IP=10\r\nGUEST_RUN_CREATION_LIMIT_PER_IP=5\r\nGUEST_ACTIVE_RUN_LIMIT=1\r\nGUEST_GLOBAL_RUN_LIMIT=6\r\n# Runner microservice URL (the only service with Docker access). Empty = run\r\n# Docker locally in-process. In compose this is set to http://runner:9090.\r\nRUNNER_URL=\r\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\r\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\r\nSANDBOX_RUNTIME=\r\n"}, "9ac718eb5ba60ae4fa81b5929c751c828fe9ed34": {"t": 1785767508.312307, "n": 4661, "h": "2c90b45e5b38c8d1", "c": "PORT=8080\r\nENV=development\r\nFRONTEND_URL=http://localhost:3000\r\n\r\nDB_HOST=localhost\r\nDB_PORT=5432\r\nDB_NAME=ferry\r\nDB_USER=ferry\r\nDB_PASSWORD=\r\nDB_SSL_MODE=disable\r\nDB_MAX_OPEN_CONNS=25\r\nDB_MAX_IDLE_CONNS=5\r\nDB_CONN_MAX_LIFETIME=5m\r\n\r\nREDIS_HOST=localhost\r\nREDIS_PORT=6379\r\nREDIS_PASSWORD=\r\nREDIS_DB=0\r\nREDIS_MAX_RETRIES=3\r\nREDIS_POOL_SIZE=10\r\n\r\nMINIO_ENDPOINT=localhost:9000\r\nMINIO_ACCESS_KEY=ferry\r\nMINIO_SECRET_KEY=\r\nMINIO_USE_SSL=false\r\nMINIO_BUCKET_SOURCE=ferry-source-files\r\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\r\nMINIO_BUCKET_REPORTS=ferry-reports\r\n\r\nJWT_SECRET=\r\nJWT_ACCESS_EXPIRY=15m\r\nJWT_REFRESH_EXPIRY=168h\r\n\r\nGITHUB_CLIENT_ID=\r\nGITHUB_CLIENT_SECRET=\r\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\r\n\r\n# GitHub App identity — used to mint short-lived, per-repo installation tokens\r\n# so PRs push with the user's installed App (no PATs). APP_ID is the numeric id\r\n# from the App settings; APP_SLUG is the name in github.com/apps/<slug>.\r\n# Configure the App with Contents + Pull requests = Read/write, and set its\r\n# \"Setup URL\" to <backend>/auth/github/setup.\r\nGITHUB_APP_ID=\r\nGITHUB_APP_SLUG=\r\n# Private key — pick ONE:\r\n# (A) easiest: drop the downloaded .pem next to this file and point to it.\r\n# In Docker, mount it and use the in-container path (see docker-compose).\r\nGITHUB_APP_PRIVATE_KEY_PATH=\r\n# (B) inline: the .pem as a single line with literal \\n between lines.\r\nGITHUB_APP_PRIVATE_KEY=\r\n\r\n# Optional fallback only: a classic PAT with `repo` scope, used if no GitHub App\r\n# installation token and no user login token can write. Leave empty in prod.\r\nGITHUB_PAT=\r\n\r\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\r\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\r\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\r\nCORS_ALLOW_CREDENTIALS=true\r\n\r\nLOG_LEVEL=info\r\nLOG_FORMAT=json\r\n\r\nBAND_PROVIDER=stub\r\nBAND_BASE_URL=https://app.band.ai/api/v1\r\nBAND_API_KEY=\r\nBAND_AGENT_NAMESPACE=dxs16823\r\n\r\nBAND_ROUTER_ID=\r\nBAND_ROUTER_KEY=\r\nBAND_COMMANDER_ID=\r\nBAND_COMMANDER_KEY=\r\nBAND_TEST_GENERATOR_ID=\r\nBAND_TEST_GENERATOR_KEY=\r\nBAND_GITHUB_CONNECTOR_ID=\r\nBAND_GITHUB_CONNECTOR_KEY=\r\nBAND_SOURCE_ANALYZER_ID=\r\nBAND_SOURCE_ANALYZER_KEY=\r\nBAND_BUSINESS_LOGIC_ID=\r\nBAND_BUSINESS_LOGIC_KEY=\r\nBAND_CODE_GENERATOR_ID=\r\nBAND_CODE_GENERATOR_KEY=\r\nBAND_DB_MIGRATION_ID=\r\nBAND_DB_MIGRATION_KEY=\r\nBAND_REVIEWER_ID=\r\nBAND_REVIEWER_KEY=\r\n\r\n# Provider keys may be a COMMA-SEPARATED pool (e.g. \"k1,k2,k3\"). The number of\r\n# concurrent runs = the smallest pool size across providers; each running migration\r\n# is pinned to one key (its own rate budget). Extra runs queue (see scheduler).\r\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\r\nAIMLAPI_KEY=\r\n\r\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\r\nFEATHERLESS_KEY=\r\n\r\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\r\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\r\n# pro_plus). Agents also back off + retry on 429.\r\nLLM_MAX_CONCURRENCY=2\r\nMODEL_MAX_TOKENS=16384\r\n\r\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_ROUTER_SOURCE=aimlapi\r\n\r\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_COMMANDER_SOURCE=aimlapi\r\n\r\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\r\n\r\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\r\n\r\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\r\n\r\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\r\n\r\nAGENT_CODE_GENERATOR_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_GO_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_GO_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_RUST_MODEL=Fortytwo-Network/Strand-Rust-Coder-14B-v1\r\nAGENT_CODE_GENERATOR_RUST_SOURCE=featherless\r\n\r\nAGENT_DB_MIGRATION_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_DB_MIGRATION_SOURCE=featherless\r\n\r\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_REVIEWER_SOURCE=featherless\r\n\r\nENABLE_DB_MIGRATION=true\r\nENABLE_GITHUB_INTEGRATION=true\r\nENABLE_REAL_BAND=false\r\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\r\nENABLE_CODE_EXECUTION=false\r\n# Runner microservice URL (the only service with Docker access). Empty = run\r\n# Docker locally in-process. In compose this is set to http://runner:9090.\r\nRUNNER_URL=\r\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\r\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\r\nSANDBOX_RUNTIME=\r\n"}, "e0bd3487bd877c1a55253416086fd124342779ae": {"t": 1785767509.6105545, "n": 4637, "h": "4fea532972a66796", "c": "PORT=8080\r\nENV=development\r\nFRONTEND_URL=http://localhost:3000\r\n\r\nDB_HOST=localhost\r\nDB_PORT=5432\r\nDB_NAME=ferry\r\nDB_USER=ferry\r\nDB_PASSWORD=\r\nDB_SSL_MODE=disable\r\nDB_MAX_OPEN_CONNS=25\r\nDB_MAX_IDLE_CONNS=5\r\nDB_CONN_MAX_LIFETIME=5m\r\n\r\nREDIS_HOST=localhost\r\nREDIS_PORT=6379\r\nREDIS_PASSWORD=\r\nREDIS_DB=0\r\nREDIS_MAX_RETRIES=3\r\nREDIS_POOL_SIZE=10\r\n\r\nMINIO_ENDPOINT=localhost:9000\r\nMINIO_ACCESS_KEY=ferry\r\nMINIO_SECRET_KEY=\r\nMINIO_USE_SSL=false\r\nMINIO_BUCKET_SOURCE=ferry-source-files\r\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\r\nMINIO_BUCKET_REPORTS=ferry-reports\r\n\r\nJWT_SECRET=\r\nJWT_ACCESS_EXPIRY=15m\r\nJWT_REFRESH_EXPIRY=168h\r\n\r\nGITHUB_CLIENT_ID=\r\nGITHUB_CLIENT_SECRET=\r\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\r\n\r\n# GitHub App identity — used to mint short-lived, per-repo installation tokens\r\n# so PRs push with the user's installed App (no PATs). APP_ID is the numeric id\r\n# from the App settings; APP_SLUG is the name in github.com/apps/<slug>.\r\n# Configure the App with Contents + Pull requests = Read/write, and set its\r\n# \"Setup URL\" to <backend>/auth/github/setup.\r\nGITHUB_APP_ID=\r\nGITHUB_APP_SLUG=\r\n# Private key — pick ONE:\r\n# (A) easiest: drop the downloaded .pem next to this file and point to it.\r\n# In Docker, mount it and use the in-container path (see docker-compose).\r\nGITHUB_APP_PRIVATE_KEY_PATH=\r\n# (B) inline: the .pem as a single line with literal \\n between lines.\r\nGITHUB_APP_PRIVATE_KEY=\r\n\r\n# Optional fallback only: a classic PAT with `repo` scope, used if no GitHub App\r\n# installation token and no user login token can write. Leave empty in prod.\r\nGITHUB_PAT=\r\n\r\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\r\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\r\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\r\nCORS_ALLOW_CREDENTIALS=true\r\n\r\nLOG_LEVEL=info\r\nLOG_FORMAT=json\r\n\r\nBAND_PROVIDER=stub\r\nBAND_BASE_URL=https://app.band.ai/api/v1\r\nBAND_API_KEY=\r\nBAND_AGENT_NAMESPACE=dxs16823\r\n\r\nBAND_ROUTER_ID=\r\nBAND_ROUTER_KEY=\r\nBAND_COMMANDER_ID=\r\nBAND_COMMANDER_KEY=\r\nBAND_TEST_GENERATOR_ID=\r\nBAND_TEST_GENERATOR_KEY=\r\nBAND_GITHUB_CONNECTOR_ID=\r\nBAND_GITHUB_CONNECTOR_KEY=\r\nBAND_SOURCE_ANALYZER_ID=\r\nBAND_SOURCE_ANALYZER_KEY=\r\nBAND_BUSINESS_LOGIC_ID=\r\nBAND_BUSINESS_LOGIC_KEY=\r\nBAND_CODE_GENERATOR_ID=\r\nBAND_CODE_GENERATOR_KEY=\r\nBAND_DB_MIGRATION_ID=\r\nBAND_DB_MIGRATION_KEY=\r\nBAND_REVIEWER_ID=\r\nBAND_REVIEWER_KEY=\r\n\r\n# Provider keys may be a COMMA-SEPARATED pool (e.g. \"k1,k2,k3\"). The number of\r\n# concurrent runs = the smallest pool size across providers; each running migration\r\n# is pinned to one key (its own rate budget). Extra runs queue (see scheduler).\r\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\r\nAIMLAPI_KEY=\r\n\r\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\r\nFEATHERLESS_KEY=\r\n\r\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\r\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\r\n# pro_plus). Agents also back off + retry on 429.\r\nLLM_MAX_CONCURRENCY=2\r\n\r\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_ROUTER_SOURCE=aimlapi\r\n\r\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_COMMANDER_SOURCE=aimlapi\r\n\r\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\r\n\r\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\r\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\r\n\r\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\r\n\r\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\r\n\r\nAGENT_CODE_GENERATOR_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_GO_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_CODE_GENERATOR_GO_SOURCE=featherless\r\nAGENT_CODE_GENERATOR_RUST_MODEL=Fortytwo-Network/Strand-Rust-Coder-14B-v1\r\nAGENT_CODE_GENERATOR_RUST_SOURCE=featherless\r\n\r\nAGENT_DB_MIGRATION_MODEL=Qwen/Qwen3-Coder-Next\r\nAGENT_DB_MIGRATION_SOURCE=featherless\r\n\r\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\r\nAGENT_REVIEWER_SOURCE=featherless\r\n\r\nENABLE_DB_MIGRATION=true\r\nENABLE_GITHUB_INTEGRATION=true\r\nENABLE_REAL_BAND=false\r\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\r\nENABLE_CODE_EXECUTION=false\r\n# Runner microservice URL (the only service with Docker access). Empty = run\r\n# Docker locally in-process. In compose this is set to http://runner:9090.\r\nRUNNER_URL=\r\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\r\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\r\nSANDBOX_RUNTIME=\r\n"}, "2f69b56d3cc57d4f06670e2b16b3fd6a6acd5466": {"t": 1785767511.059283, "n": 4494, "h": "9a634f29b4077834", "c": "PORT=8080\nENV=development\nFRONTEND_URL=http://localhost:3000\n\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\n\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\n\nJWT_SECRET=\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\n\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\n\n# GitHub App identity — used to mint short-lived, per-repo installation tokens\n# so PRs push with the user's installed App (no PATs). APP_ID is the numeric id\n# from the App settings; APP_SLUG is the name in github.com/apps/<slug>.\n# Configure the App with Contents + Pull requests = Read/write, and set its\n# \"Setup URL\" to <backend>/auth/github/setup.\nGITHUB_APP_ID=\nGITHUB_APP_SLUG=\n# Private key — pick ONE:\n# (A) easiest: drop the downloaded .pem next to this file and point to it.\n# In Docker, mount it and use the in-container path (see docker-compose).\nGITHUB_APP_PRIVATE_KEY_PATH=\n# (B) inline: the .pem as a single line with literal \\n between lines.\nGITHUB_APP_PRIVATE_KEY=\n\n# Optional fallback only: a classic PAT with `repo` scope, used if no GitHub App\n# installation token and no user login token can write. Leave empty in prod.\nGITHUB_PAT=\n\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\n\nLOG_LEVEL=info\nLOG_FORMAT=json\n\nBAND_PROVIDER=stub\nBAND_BASE_URL=https://app.band.ai/api/v1\nBAND_API_KEY=\nBAND_AGENT_NAMESPACE=dxs16823\n\nBAND_ROUTER_ID=\nBAND_ROUTER_KEY=\nBAND_COMMANDER_ID=\nBAND_COMMANDER_KEY=\nBAND_TEST_GENERATOR_ID=\nBAND_TEST_GENERATOR_KEY=\nBAND_GITHUB_CONNECTOR_ID=\nBAND_GITHUB_CONNECTOR_KEY=\nBAND_SOURCE_ANALYZER_ID=\nBAND_SOURCE_ANALYZER_KEY=\nBAND_BUSINESS_LOGIC_ID=\nBAND_BUSINESS_LOGIC_KEY=\nBAND_CODE_GENERATOR_ID=\nBAND_CODE_GENERATOR_KEY=\nBAND_DB_MIGRATION_ID=\nBAND_DB_MIGRATION_KEY=\nBAND_REVIEWER_ID=\nBAND_REVIEWER_KEY=\n\n# Provider keys may be a COMMA-SEPARATED pool (e.g. \"k1,k2,k3\"). The number of\n# concurrent runs = the smallest pool size across providers; each running migration\n# is pinned to one key (its own rate budget). Extra runs queue (see scheduler).\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\nAIMLAPI_KEY=\n\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\nFEATHERLESS_KEY=\n\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\n# pro_plus). Agents also back off + retry on 429.\nLLM_MAX_CONCURRENCY=2\n\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_ROUTER_SOURCE=aimlapi\n\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_COMMANDER_SOURCE=aimlapi\n\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\n\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\n\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\n\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\n\nAGENT_CODE_GENERATOR_MODEL=Qwen/Qwen3-Coder-Next\nAGENT_CODE_GENERATOR_SOURCE=featherless\nAGENT_CODE_GENERATOR_GO_MODEL=Qwen/Qwen3-Coder-Next\nAGENT_CODE_GENERATOR_GO_SOURCE=featherless\nAGENT_CODE_GENERATOR_RUST_MODEL=Fortytwo-Network/Strand-Rust-Coder-14B-v1\nAGENT_CODE_GENERATOR_RUST_SOURCE=featherless\n\nAGENT_DB_MIGRATION_MODEL=Qwen/Qwen3-Coder-Next\nAGENT_DB_MIGRATION_SOURCE=featherless\n\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_REVIEWER_SOURCE=featherless\n\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\nENABLE_CODE_EXECUTION=false\n# Runner microservice URL (the only service with Docker access). Empty = run\n# Docker locally in-process. In compose this is set to http://runner:9090.\nRUNNER_URL=\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\nSANDBOX_RUNTIME=\n"}, "010734a22d27aa1aed606750eee58c0007b4c3cc": {"t": 1785767512.6493292, "n": 4251, "h": "89117f469c1589a5", "c": "PORT=8080\nENV=development\nFRONTEND_URL=http://localhost:3000\n\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\n\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\n\nJWT_SECRET=\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\n\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\n\n# GitHub App identity — used to mint short-lived, per-repo installation tokens\n# so PRs push with the user's installed App (no PATs). APP_ID is the numeric id\n# from the App settings; APP_SLUG is the name in github.com/apps/<slug>.\n# Configure the App with Contents + Pull requests = Read/write, and set its\n# \"Setup URL\" to <backend>/auth/github/setup.\nGITHUB_APP_ID=\nGITHUB_APP_SLUG=\n# Private key — pick ONE:\n# (A) easiest: drop the downloaded .pem next to this file and point to it.\n# In Docker, mount it and use the in-container path (see docker-compose).\nGITHUB_APP_PRIVATE_KEY_PATH=\n# (B) inline: the .pem as a single line with literal \\n between lines.\nGITHUB_APP_PRIVATE_KEY=\n\n# Optional fallback only: a classic PAT with `repo` scope, used if no GitHub App\n# installation token and no user login token can write. Leave empty in prod.\nGITHUB_PAT=\n\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\n\nLOG_LEVEL=info\nLOG_FORMAT=json\n\nBAND_PROVIDER=stub\nBAND_BASE_URL=https://app.band.ai/api/v1\nBAND_API_KEY=\nBAND_AGENT_NAMESPACE=dxs16823\n\nBAND_ROUTER_ID=\nBAND_ROUTER_KEY=\nBAND_COMMANDER_ID=\nBAND_COMMANDER_KEY=\nBAND_TEST_GENERATOR_ID=\nBAND_TEST_GENERATOR_KEY=\nBAND_GITHUB_CONNECTOR_ID=\nBAND_GITHUB_CONNECTOR_KEY=\nBAND_SOURCE_ANALYZER_ID=\nBAND_SOURCE_ANALYZER_KEY=\nBAND_BUSINESS_LOGIC_ID=\nBAND_BUSINESS_LOGIC_KEY=\nBAND_CODE_GENERATOR_ID=\nBAND_CODE_GENERATOR_KEY=\nBAND_DB_MIGRATION_ID=\nBAND_DB_MIGRATION_KEY=\nBAND_REVIEWER_ID=\nBAND_REVIEWER_KEY=\n\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\nAIMLAPI_KEY=\n\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\nFEATHERLESS_KEY=\n\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\n# pro_plus). Agents also back off + retry on 429.\nLLM_MAX_CONCURRENCY=2\n\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_ROUTER_SOURCE=aimlapi\n\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_COMMANDER_SOURCE=aimlapi\n\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\n\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\n\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\n\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\n\nAGENT_CODE_GENERATOR_MODEL=Qwen/Qwen3-Coder-Next\nAGENT_CODE_GENERATOR_SOURCE=featherless\nAGENT_CODE_GENERATOR_GO_MODEL=Qwen/Qwen3-Coder-Next\nAGENT_CODE_GENERATOR_GO_SOURCE=featherless\nAGENT_CODE_GENERATOR_RUST_MODEL=Fortytwo-Network/Strand-Rust-Coder-14B-v1\nAGENT_CODE_GENERATOR_RUST_SOURCE=featherless\n\nAGENT_DB_MIGRATION_MODEL=Qwen/Qwen3-Coder-Next\nAGENT_DB_MIGRATION_SOURCE=featherless\n\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_REVIEWER_SOURCE=featherless\n\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\nENABLE_CODE_EXECUTION=false\n# Runner microservice URL (the only service with Docker access). Empty = run\n# Docker locally in-process. In compose this is set to http://runner:9090.\nRUNNER_URL=\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\nSANDBOX_RUNTIME=\n"}, "496726f0d8ba54c189d00a4f1e30400d970a7776": {"t": 1785767514.2259684, "n": 4107, "h": "337e96ce5de6b9c8", "c": "PORT=8080\nENV=development\nFRONTEND_URL=http://localhost:3000\n\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\n\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\n\nJWT_SECRET=\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\n\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\n\n# GitHub App identity — used to mint short-lived, per-repo installation tokens\n# so PRs push with the user's installed App (no PATs). APP_ID is the numeric id\n# from the App settings; APP_SLUG is the name in github.com/apps/<slug>.\n# Configure the App with Contents + Pull requests = Read/write, and set its\n# \"Setup URL\" to <backend>/auth/github/setup.\nGITHUB_APP_ID=\nGITHUB_APP_SLUG=\n# Private key — pick ONE:\n# (A) easiest: drop the downloaded .pem next to this file and point to it.\n# In Docker, mount it and use the in-container path (see docker-compose).\nGITHUB_APP_PRIVATE_KEY_PATH=\n# (B) inline: the .pem as a single line with literal \\n between lines.\nGITHUB_APP_PRIVATE_KEY=\n\n# Optional fallback only: a classic PAT with `repo` scope, used if no GitHub App\n# installation token and no user login token can write. Leave empty in prod.\nGITHUB_PAT=\n\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\n\nLOG_LEVEL=info\nLOG_FORMAT=json\n\nBAND_PROVIDER=stub\nBAND_BASE_URL=https://app.band.ai/api/v1\nBAND_API_KEY=\nBAND_AGENT_NAMESPACE=dxs16823\n\nBAND_ROUTER_ID=\nBAND_ROUTER_KEY=\nBAND_COMMANDER_ID=\nBAND_COMMANDER_KEY=\nBAND_TEST_GENERATOR_ID=\nBAND_TEST_GENERATOR_KEY=\nBAND_GITHUB_CONNECTOR_ID=\nBAND_GITHUB_CONNECTOR_KEY=\nBAND_SOURCE_ANALYZER_ID=\nBAND_SOURCE_ANALYZER_KEY=\nBAND_BUSINESS_LOGIC_ID=\nBAND_BUSINESS_LOGIC_KEY=\nBAND_CODE_GENERATOR_ID=\nBAND_CODE_GENERATOR_KEY=\nBAND_DB_MIGRATION_ID=\nBAND_DB_MIGRATION_KEY=\nBAND_REVIEWER_ID=\nBAND_REVIEWER_KEY=\n\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\nAIMLAPI_KEY=\n\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\nFEATHERLESS_KEY=\n\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\n# pro_plus). Agents also back off + retry on 429.\nLLM_MAX_CONCURRENCY=2\n\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_ROUTER_SOURCE=aimlapi\n\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_COMMANDER_SOURCE=aimlapi\n\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\n\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\n\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\n\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\n\nAGENT_CODE_GENERATOR_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_CODE_GENERATOR_SOURCE=featherless\n\nAGENT_DB_MIGRATION_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_DB_MIGRATION_SOURCE=featherless\n\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_REVIEWER_SOURCE=featherless\n\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\nENABLE_CODE_EXECUTION=false\n# Runner microservice URL (the only service with Docker access). Empty = run\n# Docker locally in-process. In compose this is set to http://runner:9090.\nRUNNER_URL=\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\nSANDBOX_RUNTIME=\n"}, "88921a1845b987a6ec017bf20edfe5591681ba5d": {"t": 1785767515.6796424, "n": 3255, "h": "f83b8134f11da5e8", "c": "PORT=8080\nENV=development\nFRONTEND_URL=http://localhost:3000\n\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\n\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\n\nJWT_SECRET=\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\n\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\nGITHUB_PAT=\n\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\n\nLOG_LEVEL=info\nLOG_FORMAT=json\n\nBAND_PROVIDER=stub\nBAND_BASE_URL=https://app.band.ai/api/v1\nBAND_API_KEY=\nBAND_AGENT_NAMESPACE=dxs16823\n\nBAND_ROUTER_ID=\nBAND_ROUTER_KEY=\nBAND_COMMANDER_ID=\nBAND_COMMANDER_KEY=\nBAND_TEST_GENERATOR_ID=\nBAND_TEST_GENERATOR_KEY=\nBAND_GITHUB_CONNECTOR_ID=\nBAND_GITHUB_CONNECTOR_KEY=\nBAND_SOURCE_ANALYZER_ID=\nBAND_SOURCE_ANALYZER_KEY=\nBAND_BUSINESS_LOGIC_ID=\nBAND_BUSINESS_LOGIC_KEY=\nBAND_CODE_GENERATOR_ID=\nBAND_CODE_GENERATOR_KEY=\nBAND_DB_MIGRATION_ID=\nBAND_DB_MIGRATION_KEY=\nBAND_REVIEWER_ID=\nBAND_REVIEWER_KEY=\n\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\nAIMLAPI_KEY=\n\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\nFEATHERLESS_KEY=\n\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\n# pro_plus). Agents also back off + retry on 429.\nLLM_MAX_CONCURRENCY=2\n\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_ROUTER_SOURCE=aimlapi\n\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_COMMANDER_SOURCE=aimlapi\n\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\n\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\n\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\n\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\n\nAGENT_CODE_GENERATOR_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_CODE_GENERATOR_SOURCE=featherless\n\nAGENT_DB_MIGRATION_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_DB_MIGRATION_SOURCE=featherless\n\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_REVIEWER_SOURCE=featherless\n\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false\n# Reviewer/Test agents compile + run generated code in the sandbox runner.\nENABLE_CODE_EXECUTION=false\n# Runner microservice URL (the only service with Docker access). Empty = run\n# Docker locally in-process. In compose this is set to http://runner:9090.\nRUNNER_URL=\n# Sandbox container runtime, set on the RUNNER service: \"\" = runc (dev),\n# \"runsc\" = gVisor, \"kata-runtime\"/\"kata\" = Kata microVMs (prod).\nSANDBOX_RUNTIME=\n"}, "28cee0de356195810b00acb4c9631a0354a2d062": {"t": 1785767517.0138354, "n": 2832, "h": "9bb0309bb546d18f", "c": "PORT=8080\nENV=development\nFRONTEND_URL=http://localhost:3000\n\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\n\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\n\nJWT_SECRET=\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\n\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\nGITHUB_PAT=\n\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\n\nLOG_LEVEL=info\nLOG_FORMAT=json\n\nBAND_PROVIDER=stub\nBAND_BASE_URL=https://app.band.ai/api/v1\nBAND_API_KEY=\nBAND_AGENT_NAMESPACE=dxs16823\n\nBAND_ROUTER_ID=\nBAND_ROUTER_KEY=\nBAND_COMMANDER_ID=\nBAND_COMMANDER_KEY=\nBAND_TEST_GENERATOR_ID=\nBAND_TEST_GENERATOR_KEY=\nBAND_GITHUB_CONNECTOR_ID=\nBAND_GITHUB_CONNECTOR_KEY=\nBAND_SOURCE_ANALYZER_ID=\nBAND_SOURCE_ANALYZER_KEY=\nBAND_BUSINESS_LOGIC_ID=\nBAND_BUSINESS_LOGIC_KEY=\nBAND_CODE_GENERATOR_ID=\nBAND_CODE_GENERATOR_KEY=\nBAND_DB_MIGRATION_ID=\nBAND_DB_MIGRATION_KEY=\nBAND_REVIEWER_ID=\nBAND_REVIEWER_KEY=\n\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\nAIMLAPI_KEY=\n\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\nFEATHERLESS_KEY=\n\n# Max simultaneous LLM requests across ALL agents. Keep at/below the tightest\n# provider concurrency cap (e.g. Featherless reasoning models = 2 concurrent on\n# pro_plus). Agents also back off + retry on 429.\nLLM_MAX_CONCURRENCY=2\n\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_ROUTER_SOURCE=aimlapi\n\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_COMMANDER_SOURCE=aimlapi\n\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\n\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\n\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\n\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\n\nAGENT_CODE_GENERATOR_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_CODE_GENERATOR_SOURCE=featherless\n\nAGENT_DB_MIGRATION_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_DB_MIGRATION_SOURCE=featherless\n\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_REVIEWER_SOURCE=featherless\n\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false\n"}, "136677500cbb6b5bd0b57dfc516972e2a8216cf7": {"t": 1785767518.5255997, "n": 3547, "h": "9127e2b5f332ebbc", "c": "# =============================================================================\n# Ferry Backend — Environment Variables\n# Copy this file to .env and fill in the required values.\n# Never commit .env to version control.\n# =============================================================================\n\n# Server\nPORT=8080\nENV=development\nFRONTEND_URL=http://localhost:3000\n\n# Database\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\n# Redis\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\n\n# MinIO / S3-compatible storage\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\n\n# JWT\nJWT_SECRET=\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\n\n# GitHub OAuth app (create one at github.com/settings/developers)\nGITHUB_CLIENT_ID=\nGITHUB_CLIENT_SECRET=\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\nGITHUB_PAT=\n\n# CORS\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\n\n# Logging\nLOG_LEVEL=info\nLOG_FORMAT=json\n\n# Band / agent orchestrator\nBAND_PROVIDER=stub\nBAND_BASE_URL=\nBAND_API_KEY=\n\n# =============================================================================\n# API Sources\n# Two OpenAI-compatible gateways. Set the key for whichever you use.\n# =============================================================================\n\n\nAIMLAPI_BASE_URL=https://api.aimlapi.com/v1\nAIMLAPI_KEY=\n\nFEATHERLESS_BASE_URL=https://api.featherless.ai/v1\nFEATHERLESS_KEY=\n\n# =============================================================================\n# Per-agent model configuration\n#\n# _MODEL = model id passed to /v1/chat/completions\n# _SOURCE = which gateway: \"aimlapi\" or \"featherless\"\n#\n# Non-volatile agents (routing, coordination, file ops) → cheap DeepSeek\n# Pivotal agents (analysis, generation, review) → reasoning model\n# =============================================================================\n\n# --- Non-volatile (cheap) ---\nAGENT_ROUTER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_ROUTER_SOURCE=aimlapi\n\nAGENT_COMMANDER_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_COMMANDER_SOURCE=aimlapi\n\nAGENT_TEST_GENERATOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_TEST_GENERATOR_SOURCE=aimlapi\n\nAGENT_GITHUB_CONNECTOR_MODEL=deepseek/deepseek-chat-v3.1\nAGENT_GITHUB_CONNECTOR_SOURCE=aimlapi\n\n# --- Pivotal (reasoning) ---\nAGENT_SOURCE_ANALYZER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_SOURCE_ANALYZER_SOURCE=featherless\n\nAGENT_BUSINESS_LOGIC_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_BUSINESS_LOGIC_SOURCE=featherless\n\nAGENT_CODE_GENERATOR_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_CODE_GENERATOR_SOURCE=featherless\n\nAGENT_DB_MIGRATION_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_DB_MIGRATION_SOURCE=featherless\n\nAGENT_REVIEWER_MODEL=Jackrong/Qwen3.5-27B-Claude-4.6-Opus-Reasoning-Distilled\nAGENT_REVIEWER_SOURCE=featherless\n\n# =============================================================================\n# Feature flags\n# =============================================================================\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false\n"}, "569699e2153f18a217e6b22a7564198a12a7a097": {"t": 1785767519.7167115, "n": 1713, "h": "a5775f4bb8f6b969", "c": "# Server Configuration\nPORT=8080\nENV=development\n\n# Database Configuration\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=ferry_dev_password\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\n# Redis Configuration\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=ferry_dev_password\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\nJWT_SECRET=change_this_to_a_secure_random_string_in_production\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\nBAND_PROVIDER=stub\nBAND_BASE_URL=https://api.band.dev/v1\nBAND_API_KEY=your_band_api_key_here\nMODEL_PROVIDER=featherless\nMODEL_API_KEY=your_model_api_key_here\nMODEL_NAME=meta-llama/Meta-Llama-3.1-70B-Instruct\nMODEL_TEMPERATURE=0.7\nMODEL_MAX_TOKENS=4096\nMODEL_ENDPOINT=\nGITHUB_PAT=your_github_personal_access_token_here\nGITHUB_CLIENT_ID=your_github_oauth_app_client_id\nGITHUB_CLIENT_SECRET=your_github_oauth_app_client_secret\nGITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback\nFRONTEND_URL=http://localhost:3000\nLOG_LEVEL=info\nLOG_FORMAT=json\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\nRATE_LIMIT_REQUESTS_PER_SECOND=10\nRATE_LIMIT_BURST=20\nMAX_FILE_SIZE_MB=100\nMAX_FILES_PER_UPLOAD=50\nMAX_CONCURRENT_MIGRATIONS=5\nMIGRATION_TIMEOUT_MINUTES=30\nAUDIT_LOG_RETENTION_DAYS=365\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false"}, "446bf21386af77658d5bb67af2ff80eec2fafdfe": {"t": 1785767520.9728675, "n": 1509, "h": "399c3a68739de83f", "c": "# Server Configuration\nPORT=8080\nENV=development\n\n# Database Configuration\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=ferry\nDB_USER=ferry\nDB_PASSWORD=ferry_dev_password\nDB_SSL_MODE=disable\nDB_MAX_OPEN_CONNS=25\nDB_MAX_IDLE_CONNS=5\nDB_CONN_MAX_LIFETIME=5m\n\n# Redis Configuration\nREDIS_HOST=localhost\nREDIS_PORT=6379\nREDIS_PASSWORD=\nREDIS_DB=0\nREDIS_MAX_RETRIES=3\nREDIS_POOL_SIZE=10\nMINIO_ENDPOINT=localhost:9000\nMINIO_ACCESS_KEY=ferry\nMINIO_SECRET_KEY=ferry_dev_password\nMINIO_USE_SSL=false\nMINIO_BUCKET_SOURCE=ferry-source-files\nMINIO_BUCKET_ARTIFACTS=ferry-artifacts\nMINIO_BUCKET_REPORTS=ferry-reports\nJWT_SECRET=change_this_to_a_secure_random_string_in_production\nJWT_ACCESS_EXPIRY=15m\nJWT_REFRESH_EXPIRY=168h\nBAND_PROVIDER=stub\nBAND_BASE_URL=https://api.band.dev/v1\nBAND_API_KEY=your_band_api_key_here\nMODEL_PROVIDER=featherless\nMODEL_API_KEY=your_model_api_key_here\nMODEL_NAME=meta-llama/Meta-Llama-3.1-70B-Instruct\nMODEL_TEMPERATURE=0.7\nMODEL_MAX_TOKENS=4096\nMODEL_ENDPOINT=\nGITHUB_PAT=your_github_personal_access_token_here\nLOG_LEVEL=info\nLOG_FORMAT=json\nCORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080\nCORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,OPTIONS\nCORS_ALLOWED_HEADERS=Content-Type,Authorization\nCORS_ALLOW_CREDENTIALS=true\nRATE_LIMIT_REQUESTS_PER_SECOND=10\nRATE_LIMIT_BURST=20\nMAX_FILE_SIZE_MB=100\nMAX_FILES_PER_UPLOAD=50\nMAX_CONCURRENT_MIGRATIONS=5\nMIGRATION_TIMEOUT_MINUTES=30\nAUDIT_LOG_RETENTION_DAYS=365\nENABLE_DB_MIGRATION=true\nENABLE_GITHUB_INTEGRATION=true\nENABLE_REAL_BAND=false"}}}} |