Initial commit — Cortex API + Inara identity
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>
This commit is contained in:
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
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:
|
||||
Reference in New Issue
Block a user