mirror of
https://github.com/katanemo/plano.git
synced 2026-06-17 15:25:17 +02:00
Break the 507-line monolithic validate_and_render_schema() into focused modules with pure validation functions, proper error handling, and clean I/O separation: - config_providers.py: provider constants, ConfigValidationError, unified URL parsing (replaces 3 different inline implementations) - config_validator.py: 11 pure validation functions (no I/O, no print/exit) - config_generator.py: thin 146-line I/O orchestrator, reads files once (was twice), uses logging instead of print() Also cleans up module responsibilities: - Move stream_access_logs from utils.py to docker_cli.py (Docker operation) - Deduplicate llm_providers->model_providers migration - Fix "Model alias 2 -" debug artifact in error message - Update docker-compose.dev.yaml volume mounts for new files - Rewrite tests: 53 tests calling pure functions directly (no mock_open chains), up from 10 brittle mock-dependent tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26 lines
1.2 KiB
YAML
26 lines
1.2 KiB
YAML
services:
|
|
plano:
|
|
image: katanemo/plano:latest
|
|
ports:
|
|
- "10000:10000"
|
|
- "10001:10001"
|
|
- "11000:11000"
|
|
- "12000:12000"
|
|
- "19901:9901"
|
|
volumes:
|
|
- ${ARCH_CONFIG_FILE:-../demos/samples_python/weather_forecast/arch_config.yaml}:/app/arch_config.yaml
|
|
- /etc/ssl/cert.pem:/etc/ssl/cert.pem
|
|
- ./envoy.template.yaml:/app/envoy.template.yaml
|
|
- ./arch_config_schema.yaml:/app/arch_config_schema.yaml
|
|
- ../cli/planoai/config_generator.py:/app/planoai/config_generator.py
|
|
- ../cli/planoai/config_validator.py:/app/planoai/config_validator.py
|
|
- ../cli/planoai/config_providers.py:/app/planoai/config_providers.py
|
|
- ../crates/target/wasm32-wasip1/release/llm_gateway.wasm:/etc/envoy/proxy-wasm-plugins/llm_gateway.wasm
|
|
- ../crates/target/wasm32-wasip1/release/prompt_gateway.wasm:/etc/envoy/proxy-wasm-plugins/prompt_gateway.wasm
|
|
- ~/archgw_logs:/var/log/
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
environment:
|
|
- OPENAI_API_KEY=${OPENAI_API_KEY:?error}
|
|
- MISTRAL_API_KEY=${MISTRAL_API_KEY:?error}
|
|
- OTEL_TRACING_GRPC_ENDPOINT=http://host.docker.internal:4317
|