# Backend The backend owns the application API and CAD generation workflow: - `app/`: HTTP API, jobs, orchestration, and persistence adapters. - `agent/`: AI prompts, tools, and skills used by the generation agent. - `engine/`: CDSL compiler, sketch solver, and STEP generation runtime. - `cdsl_library/`: Official CDSL examples, metadata, and search index. - `tests/`: Engine, API, and end-to-end generation tests. Expected development entrypoint: `app.main:app`, served by Uvicorn. ## Reasoning Effort The backend uses the Chat Completions API. Configure a provider's reasoning budget with `CDSL__REASONING_EFFORT`; for the current OpenAI setup: ```dotenv CDSL_OPENAI_REASONING_EFFORT=medium ``` Use `low`, `medium`, or `high` according to the latency/cost versus quality tradeoff. The setting is sent as Chat Completions' `reasoning_effort` field to authoring, streaming, and visual-review requests. Leave it empty to use the provider/model default. The selected OpenAI-compatible endpoint must support the requested value. ## Autonomous CDSL Agent Configuration The autonomous agent writes one frozen free-form `requirements.md`, then observes, measures, renders and appends one CDSL feature at a time. Its author uses normal function calls; no provider strict JSON Schema capability or complete modelling DAG is required. Candidate fragments are rebuilt in a staging directory through `cdsl_only` before a checkpoint can be committed. Final publication requires a separately configured vision-capable review model and the Python OpenCascade/Pillow technical renderer. The agent may build and inspect intermediate checkpoints without image review; a final run fails closed if its independent review configuration is unavailable. ```dotenv # Must name one configured provider and one model listed in that provider's # CDSL__VISION_MODELS setting. It is intentionally not inferred # from the authoring model. CDSL_REVIEW_PROVIDER=deepseek CDSL_REVIEW_MODEL=deepseek-v4-flash-vision-exp CDSL_DEEPSEEK_VISION_MODELS=deepseek-v4-flash-vision-exp # Install Python rendering dependencies. The renderer reads the revision STEP # file and creates canonical images without a browser or GPU driver. pip install -r requirements.txt # Limits apply to the current checkpoint head, never to total task complexity. CDSL_AGENT_TOOL_CALLS_PER_CYCLE=12 CDSL_AGENT_CANDIDATE_ATTEMPTS_PER_HEAD=3 CDSL_AGENT_CONSECUTIVE_NO_PROGRESS_LIMIT=6 CDSL_AGENT_MAX_FEATURES_PER_FRAGMENT=6 CDSL_AGENT_CONTEXT_CHAR_LIMIT=24000 CDSL_AGENT_RENDER_CACHE=true ``` The author chooses each coherent 1-6 feature batch. Every rebuilt batch is rendered and independently reviewed before it can become a checkpoint; only an accepted reviewer verdict advances the working model. Every checkpoint is rebuilt from its fully materialized CDSL through the `cdsl_only` runtime. Checkpoint GLB files are preview-only; STEP, CDSL, and reports are available only after the task reaches `COMPLETED`. The backend assigns feature and sketch IDs, appends causal dependencies and expands only opaque current-snapshot selector tokens. It does not compile geometry templates or correct workplanes, profiles, sizes, directions or boolean semantics authored by the model. Failed candidates remain auditable but never become revisions.