Commit Graph

43 Commits

Author SHA1 Message Date
William Valentin 0490d2fe39 feat(tui): add markdown rendering and scroll support to MessageList 2026-02-05 10:56:23 -08:00
William Valentin 7391b50d6d feat(tui): enhance StatusBar with token usage and streaming indicator 2026-02-05 10:56:19 -08:00
William Valentin 83a750f484 feat(tui): update fullscreen config for model router 2026-02-05 10:56:16 -08:00
William Valentin d1d6054deb feat(tui): pass modelRouter to both TUI modes 2026-02-05 10:56:11 -08:00
William Valentin f115407af3 feat(tui): add streaming and model switching to minimal mode 2026-02-05 10:53:41 -08:00
William Valentin 435146344e feat(tui): add unified command parser with model switching 2026-02-05 10:52:49 -08:00
William Valentin da2bb57488 feat(tui): add markdown rendering utility 2026-02-05 10:52:00 -08:00
William Valentin 0950296cf0 chore: add markdown rendering dependencies 2026-02-05 10:50:55 -08:00
William Valentin 9a48c39b07 feat(models): add streaming and tier switching to ModelRouter 2026-02-05 10:48:41 -08:00
William Valentin 896a0da10e feat(models): add streaming support to AnthropicClient 2026-02-05 10:47:42 -08:00
William Valentin 1f0cf28d1f feat(models): add streaming types for chat responses 2026-02-05 10:46:53 -08:00
William Valentin 228e7d86bd docs: add TUI redesign implementation plan with 14 tasks 2026-02-05 10:44:49 -08:00
William Valentin 42d1175b02 docs: add TUI redesign plan
- Streaming responses (chunk-based)
- Rich markdown rendering with syntax highlighting
- Model switching via /model command
- Scrollable message history
- Enhanced status bar with token usage
- Inline error handling with auto-retry
- Feature parity between minimal and fullscreen modes
2026-02-05 10:41:20 -08:00
William Valentin fb7575f850 refactor: integrate SessionManager into daemon and agent
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 00:43:09 -08:00
William Valentin f671ea5ab5 feat: add fullscreen TUI mode with Ink React components 2026-02-05 00:41:17 -08:00
William Valentin 53a8bd97eb feat: add Ink-based fullscreen TUI components 2026-02-05 00:39:53 -08:00
William Valentin c0deeb5cf0 feat: add TUI entry point with minimal readline mode 2026-02-05 00:37:40 -08:00
William Valentin f792f8407a feat: add minimal TUI with readline interface 2026-02-05 00:36:16 -08:00
William Valentin 2f1c302d85 feat: add SessionManager for multi-frontend session handling 2026-02-05 00:34:25 -08:00
William Valentin 55c2e6bf74 chore: add dependencies for TUI (ink, react)
Adds:
- ink ^6.0.0 (React for CLI)
- ink-text-input ^6.0.0 (text input component)
- react ^19.0.0
- @types/react ^19.0.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 00:33:04 -08:00
William Valentin 934be021ab docs: add Phase 3 TUI implementation plan
Covers:
- SessionManager for multi-frontend support
- Minimal readline TUI
- Fullscreen Ink-based TUI
- Mode switching and session transfer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 00:31:28 -08:00
William Valentin 81e9597777 chore: add Ollama local model to default config
Adds llama3.2:1b as local fallback provider for when primary
Anthropic API is unavailable.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 00:12:49 -08:00
William Valentin 6e6c263e14 feat: integrate model router, session persistence, and hook engine
- NativeAgent now loads/saves messages to SessionStore
- Daemon creates ModelRouter with fallback chain support
- Telegram bot handles confirmation callbacks from HookEngine
- Session data stored in ~/.local/share/flynn/sessions.db

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 00:05:42 -08:00
William Valentin 26bd6ce65d feat: add model router with fallback chain support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 00:29:52 -08:00
William Valentin 298f87615d feat: add Telegram confirmation UI components
Implements Phase 2 Task 7 - Telegram Confirmation UI:
- formatConfirmationMessage(): formats tool and args into readable message
- createConfirmationKeyboard(): creates approve/deny inline keyboard
- parseConfirmationCallback(): parses callback data from button clicks
- Full test coverage with vitest

All tests passing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 00:29:32 -08:00
William Valentin 782163cda6 feat: add hook engine for sensitive operation confirmation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 00:28:18 -08:00
William Valentin 08cdf136ca chore: configure pnpm to build better-sqlite3 2026-02-03 00:27:16 -08:00
William Valentin 10c848ca2a feat: add SQLite session persistence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 00:27:12 -08:00
William Valentin bb16732562 feat: add Ollama client for local LLM support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 00:27:09 -08:00
William Valentin 633cfcf713 feat: add OpenAI client for fallback support
Implements ModelClient interface with OpenAI SDK to support GPT models
as fallback when local inference is unavailable. Includes tests with
mocked OpenAI API responses.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:10:46 -08:00
William Valentin 7338b390ef chore: add dependencies for phase 2 (sqlite, ollama, openai) 2026-02-02 21:09:31 -08:00
William Valentin 920872423e docs: add Phase 2 implementation plan
8 tasks covering:
- New dependencies (sqlite, ollama, openai)
- OpenAI client for fallback
- Ollama client for local LLM
- Model router with fallback chain
- SQLite session persistence
- Hook engine for sensitive operations
- Telegram confirmation UI
- Full integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:08:26 -08:00
William Valentin dd66bd1372 docs: add environment variable example
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:04:42 -08:00
William Valentin b6b85f07d0 feat: wire daemon, agent, and telegram bot together
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:02:50 -08:00
William Valentin d0fe4c5b35 feat: add Telegram bot frontend with message handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:59:17 -08:00
William Valentin 69309e58bc feat: add native agent with conversation history 2026-02-02 20:56:46 -08:00
William Valentin 70c3960527 feat: add daemon skeleton with lifecycle management
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:56:45 -08:00
William Valentin 4adf172c25 feat: add config schema and loader with env var expansion 2026-02-02 20:54:19 -08:00
William Valentin 75e64b534d feat: add Anthropic client wrapper
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:54:17 -08:00
William Valentin 93f86fe749 chore: initialize project scaffolding 2026-02-02 20:51:26 -08:00
William Valentin 04fa56d3f1 docs: add Phase 1 implementation plan
8 tasks covering:
- Project scaffolding
- Config schema and loading
- Daemon lifecycle management
- Anthropic client wrapper
- Native agent with conversation history
- Telegram bot frontend
- Integration wiring
- Documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:49:55 -08:00
William Valentin ee19c11cc3 Finalize design decisions
- Separate sessions per frontend with explicit transfer
- Automatic backend routing based on task type
- Text responses by default (voice is future)
- Immediate notification delivery

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:45:14 -08:00
William Valentin 8717153e48 Add Flynn design document
Initial design for a self-hosted personal AI agent with:
- Telegram + TUI frontends
- Multi-model routing with fallback chain
- Claude Code/OpenCode CLI integration
- Hook-based security for sensitive operations
- Tailscale-only network exposure

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:37:53 -08:00