Cortex: FastAPI backend serving Inara via Claude/Gemini CLI backends. Includes SSE streaming chat, session persistence, Google Chat webhook handler, and Docker support. Inara: Identity files (persona, soul, protocols, memory, context tiers) mounted read-only into the container at runtime. Features in initial cut: - /chat endpoint with SSE keepalive + LLM fallback - Session store with rolling history window - Markdown rendering, copy-to-clipboard, links open in new tab - Stacked right-column input controls (height selector, enter toggle, note mode with public/private) — semi-hidden until textarea grows - /note endpoint for injecting public context into session history - Docker Compose config (local dev runs natively; Docker for server) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
882 B
YAML
31 lines
882 B
YAML
services:
|
|
cortex:
|
|
build:
|
|
context: ./cortex
|
|
dockerfile: Dockerfile
|
|
container_name: cortex
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8000:8000"
|
|
volumes:
|
|
# Inara identity files (read-only in container)
|
|
- ./inara:/app/../inara:ro
|
|
# Session persistence (read-write)
|
|
- cortex_sessions:/app/data/sessions
|
|
# Claude CLI — needs both the config file and the directory
|
|
- ${HOME}/.claude.json:/root/.claude.json:ro
|
|
- ${HOME}/.claude:/root/.claude:ro
|
|
# Gemini CLI credentials
|
|
- ${HOME}/.gemini:/root/.gemini:ro
|
|
# Gemini CLI config (extensions, etc.)
|
|
- ${HOME}/.config/gemini:/root/.config/gemini:ro
|
|
env_file:
|
|
- ./cortex/.env
|
|
environment:
|
|
# Override paths for container layout
|
|
INARA_DIR: /app/../inara
|
|
SESSIONS_DIR: /app/data/sessions
|
|
|
|
volumes:
|
|
cortex_sessions:
|