Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions apps/dev/src/services/__tests__/ecosystem.test.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

37 changes: 36 additions & 1 deletion deploy/compose/docker-compose.prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ x-roomote-inference-env: &roomote-inference-env
CUSTOM_PROVIDER_API_KEY: ${CUSTOM_PROVIDER_API_KEY:-}
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
AI_GATEWAY_API_KEY: ${AI_GATEWAY_API_KEY:-}
REQUESTY_API_KEY: ${REQUESTY_API_KEY:-}
AZURE_API_KEY: ${AZURE_API_KEY:-}
AZURE_RESOURCE_NAME: ${AZURE_RESOURCE_NAME:-}
AZURE_COGNITIVE_SERVICES_API_KEY: ${AZURE_COGNITIVE_SERVICES_API_KEY:-}
AZURE_COGNITIVE_SERVICES_RESOURCE_NAME: ${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
Expand All @@ -92,6 +97,36 @@ x-roomote-inference-env: &roomote-inference-env
OPENCODE_GO_API_KEY: ${OPENCODE_GO_API_KEY:-}
BASETEN_API_KEY: ${BASETEN_API_KEY:-}
TOGETHER_API_KEY: ${TOGETHER_API_KEY:-}
XAI_API_KEY: ${XAI_API_KEY:-}
OPENAI_COMPATIBLE_BASE_URL: ${OPENAI_COMPATIBLE_BASE_URL:-}
OPENAI_COMPATIBLE_API_KEY: ${OPENAI_COMPATIBLE_API_KEY:-}
LITELLM_BASE_URL: ${LITELLM_BASE_URL:-}
LITELLM_API_KEY: ${LITELLM_API_KEY:-}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-}
VLLM_BASE_URL: ${VLLM_BASE_URL:-}
VLLM_API_KEY: ${VLLM_API_KEY:-}

x-roomote-worker-launcher-env: &roomote-worker-launcher-env
<<: *roomote-base-env
R_MODEL: ${R_MODEL:-}
R_SMALL_MODEL: ${R_SMALL_MODEL:-}
R_VISION_MODEL: ${R_VISION_MODEL:-}
R_CODE_REVIEW_MODEL: ${R_CODE_REVIEW_MODEL:-}
R_EXPLORE_MODEL: ${R_EXPLORE_MODEL:-}
R_PLANNING_MODEL: ${R_PLANNING_MODEL:-}
R_MODEL_REASONING_EFFORT: ${R_MODEL_REASONING_EFFORT:-}
R_SMALL_MODEL_REASONING_EFFORT: ${R_SMALL_MODEL_REASONING_EFFORT:-}
R_VISION_MODEL_REASONING_EFFORT: ${R_VISION_MODEL_REASONING_EFFORT:-}
R_CODE_REVIEW_MODEL_REASONING_EFFORT: ${R_CODE_REVIEW_MODEL_REASONING_EFFORT:-}
R_EXPLORE_MODEL_REASONING_EFFORT: ${R_EXPLORE_MODEL_REASONING_EFFORT:-}
R_PLANNING_MODEL_REASONING_EFFORT: ${R_PLANNING_MODEL_REASONING_EFFORT:-}
R_MODEL_ENV_KEYS: ${R_MODEL_ENV_KEYS:-}
CUSTOM_PROVIDER_API_KEY: ${CUSTOM_PROVIDER_API_KEY:-}
AZURE_RESOURCE_NAME: ${AZURE_RESOURCE_NAME:-}
AZURE_COGNITIVE_SERVICES_RESOURCE_NAME: ${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME:-}
AWS_REGION: ${AWS_REGION:-}
ZAI_REGION: ${ZAI_REGION:-}
ZAI_CODING_PLAN_REGION: ${ZAI_CODING_PLAN_REGION:-}

x-roomote-web-env: &roomote-web-env
<<: *roomote-inference-env
Expand Down Expand Up @@ -212,7 +247,7 @@ x-roomote-api-env: &roomote-api-env
R_MICROSOFT_TENANT_ID: ${R_MICROSOFT_TENANT_ID:-}

x-roomote-controller-env: &roomote-controller-env
<<: *roomote-base-env
<<: *roomote-worker-launcher-env
SANDBOX_OPENROUTER_API_KEY: ${SANDBOX_OPENROUTER_API_KEY:-}
DATABASE_URL: ${DATABASE_URL:-postgres://postgres:roomote-postgres-password@postgres:5432/roomote}
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
Expand Down
8 changes: 8 additions & 0 deletions deploy/scripts/validate-compose-security.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ export ENCRYPTION_KEY=12345678901234567890123456789012
export ARTIFACT_SIGNING_KEY=12345678901234567890123456789012
export DASHBOARD_PASSWORD=test-dashboard-password
export ROOMOTE_APP_TMPFS_SIZE=768m
export R_MODEL=openrouter/openai/gpt-5.4
export R_MODEL_ENV_KEYS=CUSTOM_PROVIDER_API_KEY
export CUSTOM_PROVIDER_API_KEY=test-custom-provider-key
export AWS_REGION=us-east-1

docker compose --profile local-inference -f "$compose_file" config --format json >"$rendered_config"

Expand Down Expand Up @@ -79,6 +83,10 @@ jq -e '
"S3_SECRET_ACCESS_KEY", "R_GITHUB_APP_PRIVATE_KEY", "R_SLACK_CLIENT_SECRET",
"OPENAI_API_KEY"
][] | . as $key | $root.services.controller.environment[$key] == null] | all) and
(.services.controller.environment.R_MODEL == "openrouter/openai/gpt-5.4") and
(.services.controller.environment.R_MODEL_ENV_KEYS == "CUSTOM_PROVIDER_API_KEY") and
(.services.controller.environment.CUSTOM_PROVIDER_API_KEY == "test-custom-provider-key") and
(.services.controller.environment.AWS_REGION == "us-east-1") and
([[
"JOB_AUTH_PRIVATE_KEY", "PREVIEW_AUTH_PRIVATE_KEY", "ENCRYPTION_KEY",
"S3_SECRET_ACCESS_KEY", "OPENAI_API_KEY"
Expand Down
14 changes: 14 additions & 0 deletions ecosystem.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@ const useWorkerRelease = process.env.USE_WORKER_RELEASE === 'true';
const DEFAULT_OPENCODE_PROVIDER_ENV_KEYS = [
'OPENROUTER_API_KEY',
'AI_GATEWAY_API_KEY',
'REQUESTY_API_KEY',
'OPENAI_API_KEY',
'AZURE_API_KEY',
'AZURE_RESOURCE_NAME',
'AZURE_COGNITIVE_SERVICES_API_KEY',
'AZURE_COGNITIVE_SERVICES_RESOURCE_NAME',
'ANTHROPIC_API_KEY',
'MOONSHOT_API_KEY',
'KIMI_API_KEY',
Expand All @@ -14,12 +19,21 @@ const DEFAULT_OPENCODE_PROVIDER_ENV_KEYS = [
'ZAI_CODING_PLAN_API_KEY',
'ZAI_CODING_PLAN_REGION',
'OPENCODE_API_KEY',
'OPENCODE_GO_API_KEY',
'BASETEN_API_KEY',
'TOGETHER_API_KEY',
'GEMINI_API_KEY',
'GOOGLE_GENERATIVE_AI_API_KEY',
'AWS_BEARER_TOKEN_BEDROCK',
'AWS_REGION',
'XAI_API_KEY',
'OPENAI_COMPATIBLE_BASE_URL',
'OPENAI_COMPATIBLE_API_KEY',
'LITELLM_BASE_URL',
'LITELLM_API_KEY',
'OLLAMA_BASE_URL',
'VLLM_BASE_URL',
'VLLM_API_KEY',
];
const OPENCODE_RUNTIME_ENV_KEYS = [
'R_MODEL',
Expand Down
Loading