# ADR 0001: Rewrite Around Python DeepAgents ## Status Accepted ## Context Previous app mixed SvelteKit, Cloudflare Durable Objects, E2B sandboxes, Vercel AI SDK, OpenRouter, and a browser game UI. New direction is ground-up Python using LangChain DeepAgents and their sandbox backend interface. ## Decision Use Python FastAPI for HTTP, LangChain DeepAgents for contestant-side autonomous building, LangGraph for judging workflows, OpenRouter for model access, and Daytona as default DeepAgents sandbox provider. Keep sandbox provider behind `DEEPAGENT_SANDBOX_PROVIDER` so local smoke tests can use `LocalShellBackend` explicitly. ## Consequences - Legacy TS/Svelte/Worker/E2B modules are removed. - Main contestant-side seam is `arena.agent.create_session()`. - Judging should live behind a separate LangGraph seam. - Route handlers do not know provider details. - Local backend is allowed only for smoke tests because it is not isolated.