-
Notifications
You must be signed in to change notification settings - Fork 0
Project Structure
Markel Cuesta edited this page Dec 21, 2025
·
4 revisions
/
├── src/ # CLI Application
│ ├── providers/
│ │ ├── base.ts # Provider interface and types
│ │ ├── ollama.ts # Ollama implementation
│ │ └── openrouter.ts # OpenRouter implementation
│ ├── storage/
│ │ ├── MessageHistory.ts # Abstract storage interface
│ │ ├── InMemoryMessageHistory.ts # In-memory implementation
│ │ └── RedisMessageHistory.ts # Redis implementation
│ ├── output/
│ │ ├── OutputView.ts # Abstract output interface
│ │ ├── StdoutView.ts # Terminal output implementation
│ │ ├── RedisPublisherView.ts # Redis pub/sub output
│ │ ├── CompositeView.ts # Composite pattern for dual output
│ │ └── types.ts # Message types for pub/sub
│ ├── config/
│ │ └── manager.ts # Configuration management
│ ├── cli/
│ │ ├── repl.ts # REPL implementation
│ │ └── parser.ts # CLI argument parsing
│ └── index.ts # Application entry point
├── web/ # Next.js Web Application
│ ├── src/
│ │ ├── app/
│ │ │ ├── api/stream/ # SSE endpoint
│ │ │ ├── layout.tsx # Root layout
│ │ │ ├── page.tsx # Main page
│ │ │ └── globals.css # Global styles
│ │ ├── components/
│ │ │ └── ChatDisplay.tsx # Chat UI component
│ │ ├── lib/
│ │ │ ├── MessageSubscriber.ts # Abstract subscriber
│ │ │ ├── RedisMessageSubscriber.ts # Redis implementation
│ │ │ └── createSubscriber.ts # Factory function
│ │ └── types/
│ │ └── messages.ts # Shared message types
│ ├── Dockerfile # Web app Docker build
│ ├── docker-compose.yml # Standalone web + Redis
│ └── README.md # Web app documentation
├── dist/ # Compiled JavaScript (after build)
├── docker-compose.yml # Combined Redis + Web setup
├── .env.example # Environment variable examples
├── config.example.json # Example configuration
├── CLAUDE.md # Project guidance for Claude Code
├── package.json
├── tsconfig.json
└── README.md