Files
gongzhiyongandClaude Opus 4.8 98fb0d2bdb feat(sandbox): Daytona 云沙箱后端 — 代码执行移出 Pod(SANDBOX_BACKEND=daytona)
§8.1 提到的"专用 sandbox worker"路径:模型生成代码在 Daytona 隔离沙箱执行,不在
本 Pod 跑;只上传生成文件 + sandbox_runner.py,绝不传 env/secret。复用 _runner.py
保证 SandboxResult 一致。fail-soft:Daytona/传输出错回退 Pod 内 subprocess。
双门控(ENABLE_QUALITY_EVAL+HEICODE_SANDBOX_ISOLATED)不变,不削弱 fail-closed。

依赖:加 daytona==0.189.0;为满足其 otel floor 把 otel 1.24→1.42、instrumentation
0.45b0→0.63b1、pydantic 2.9.2→2.13.4(与 agent 对齐)。import + runtime-contract/
security-boundary/result-aggregator 测试在新依赖下验证全绿。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 21:14:07 +08:00

36 lines
1.7 KiB
Plaintext

fastapi==0.115.0
uvicorn[standard]==0.32.0
websockets==13.1
redis==5.2.0
openai==1.55.3
# pydantic 2.11+ required by the Daytona SDK (daytona-api-client); 2.13.4 matches the agent pin.
pydantic==2.13.4
python-dotenv==1.0.1
prometheus-client==0.20.0
httpx==0.28.1
# dev/CI only: in-memory Redis emulator for the gated REDIS_FAKE/ALLOW_MEMORY_STORE fallback
fakeredis==2.26.1
# sandbox test runner: pytest natively runs the test styles agents produce (pytest-style classes,
# fixtures, parametrize, marks) — the in-pod harness (sandbox_runner.py) prefers it, stdlib fallback.
pytest==8.3.3
# otel bumped 1.24→1.42 to satisfy the Daytona SDK's otel floor (instrumentation-aiohttp-client
# >=0.59b0); instrumentation pins move 0.45b0→0.63b1 in lockstep. Import + contract/security/
# aggregator tests verified green under this set.
opentelemetry-api==1.42.1
opentelemetry-sdk==1.42.1
opentelemetry-exporter-otlp==1.42.1
opentelemetry-instrumentation-redis==0.63b1
opentelemetry-instrumentation-requests==0.63b1
opentelemetry-instrumentation-logging==0.63b1
# benchmark metrics export targets (lazy-imported; only used when BENCHMARK_EXPORT_TARGET set)
azure-cosmos==4.7.0
azure-storage-blob==12.23.1
azure-identity==1.19.0
# model-key resolution from Key Vault via Pod workload identity (lazy-imported in
# agent_launcher._resolve_from_keyvault; only when AZURE_FEDERATED_TOKEN_FILE / SECRET_RESOLVER=azkv)
azure-keyvault-secrets==4.9.0
# Daytona cloud sandbox backend (orchestrator/sandbox_daytona.py): runs model-generated tests in a
# dedicated external sandbox (code never executes in this pod). Lazy-imported, only when
# SANDBOX_BACKEND=daytona. Drives the otel/pydantic bumps above.
daytona==0.189.0