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
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
.git
.env
.env.*
!.env.example
__pycache__/
*.py[cod]
*$py.class
.pytest_cache/
.mypy_cache/
.ruff_cache/
.venv/
venv/
*.log
*.sif
dist/
build/
.DS_Store
Thumbs.db
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Docker Compose reaches a vLLM server running on the host through
# host.docker.internal. Host-side curl can use http://127.0.0.1:8001/v1.
VLLM_API_BASE=http://host.docker.internal:8001/v1
VLLM_API_KEY=EMPTY
VLLM_MODEL=vllm_local

# ─── Model family ────────────────────────────────────────────────────────────
# Selects which prompt/output contract the agent uses:
# nemotron — nvidia/Nemotron-3-Nano-Omni (## Action / ## Code markdown)
# holotron — Hcompany/Holotron-3-Nano (JSON tool_call via H Company agent loop)
# The vLLM container should be serving the matching model.
MODEL_FAMILY=nemotron

# ─── Agent settings ─────────────────────────────────────────────────────────
ENABLE_THINKING=true
TRUNCATE_HISTORY_THINKING=false
MAX_STEPS=150
MAX_IMAGE_HISTORY=3
MODEL_MAX_TOKENS=20480
REASONING_BUDGET=16384
REASONING_GRACE_TOKENS=1024
MODEL_ATTEMPT_TIMEOUT=120
MODEL_MAX_RETRIES=3
MODEL_RETRY_SLEEP=5
COMPUTER_WAIT_SECONDS=3

# ─── Server ─────────────────────────────────────────────────────────────────
DEMO_PORT=8000
DOCKER_SOCKET=/var/run/docker.sock
DESKTOP_CONTAINER_SERVICE=desktop
DOCKER_RESTART_TIMEOUT=10

# ─── Desktop environment ───────────────────────────────────────────────────
# Desktop API port inside the Compose network
DESKTOP_API_PORT=5000

# KasmVNC port inside the Compose network
DESKTOP_VNC_PORT=6901

# Desktop password (used for VNC access and agent's sudo operations)
DESKTOP_PASSWORD=password

# Screen resolution (must match model training: 1920x1080)
SCREEN_RESOLUTION=1920x1080
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Environment
.env
*.sif

# Python
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
dist/
build/
.venv/
venv/

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Logs
*.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# FastAPI server for the agent loop + web UI + VNC proxy
FROM python:3.11-slim@sha256:6d85378d88a19cd4d76079817532d62232be95757cb45945a99fec8e8084b9c2

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY server/ server/
COPY web/ web/

EXPOSE 8000

CMD ["uvicorn", "server.main:app", "--host", "0.0.0.0", "--port", "8000"]
Loading