How pranithvelar/friday_mark2 works
Friday is a hybrid cloud/local personal assistant. A user enters through a terminal or messaging interface; the central router classifies the request and dispatches simple, tool-oriented, or multi-step work. Complex work is planned, optionally approved, then executed asynchronously through registered tools. Supporting branches provide LLM fallback, persistent-memory learning, live awareness, search, and calendar capabilities. Several of these capabilities are documented in the README but their implementations were not sampled, so those relationships are shown only where documented.
Main entry points: smart_router.py Smart router · complex_handler.py Complex planner · agent.py Friday agent · engine.py Execution engine
Components 21
User interfaces and routing
- Terminal chat
friday/interfaces/terminal/chat.py - Messaging adapters
friday/interfaces/messaging - Smart router
friday/router/smart_router.py - Intent classifier
friday/router/intent_classifier.py - Simple handler
friday/router/handlers/simple_handler.py - Medium handler
friday/router/handlers/medium_handler.py
Assistant and agents
- Friday agent
friday/agents/friday/agent.py - Self-critique
friday/reasoning/reflection.py
Planning and execution
- Complex planner
friday/router/handlers/complex_handler.py - Execution engine
friday/execution/engine.py - Execution state
friday/execution/state_manager.py - Tool registry
friday/tools/registry.py
Memory and awareness
- Background learning
friday/background/knowledge_extractor.py - Memory decay
friday/background/memory_decay.py - Live context
friday/awareness/live_context.py - Full-text search
friday/search/fts_search.py
Models and capabilities
- Slotted LLM provider
friday/llm/slotted_provider.py - Calendar and events
friday/tools/calendar - RAG agent
friday/agents/specialized/rag/agent.py - Redis cache
friday/cache/redis_client.py
Other components
- User
Connections 22
- User → Terminal chat: sends request
- User → Messaging adapters: sends message
- Terminal chat → Smart router: routes query
friday/interfaces/terminal/chat.py - Smart router → Intent classifier: classifies query
friday/router/smart_router.py - Smart router → Simple handler: dispatches simple
friday/router/smart_router.py - Smart router → Medium handler: dispatches medium
friday/router/smart_router.py - Smart router → Complex planner: dispatches complex
friday/router/smart_router.py - Simple handler → Friday agent: uses agent
- Medium handler → Tool registry: calls tools
- Friday agent → Slotted LLM provider: generates responses
friday/agents/friday/agent.py - Complex planner → Slotted LLM provider: generates plan
friday/router/handlers/complex_handler.py - Complex planner → Full-text search: searches context
friday/router/handlers/complex_handler.py - Complex planner → Execution engine: starts execution
friday/router/handlers/complex_handler.py - Execution engine → Execution state: updates state
friday/execution/engine.py - Execution engine → Tool registry: dispatches steps
friday/execution/engine.py - Smart router → Background learning: starts memory pipeline
friday/router/smart_router.py - Smart router → Live context: uses live context
- Background learning → Memory decay: maintains memory
- Friday agent → Self-critique: learns from corrections
- Live context → Execution state: reads execution status
- RAG agent → Redis cache: caches embeddings
- User → Calendar and events: requests calendar actions