37a36dd36d
feat(core): Define AppMode enum and add to AppState
2025-12-26 19:21:49 +01:00
6601654b3a
conductor(plan): Mark phase 'The Agentic Orchestrator' as complete
2025-12-26 19:21:32 +01:00
8d1d7ba184
conductor(checkpoint): Checkpoint end of Phase 2
2025-12-26 19:21:18 +01:00
e3eb8c1b02
conductor(plan): Mark task 'Sub-Agent Support' as complete
2025-12-26 19:19:11 +01:00
b6ad2f09a5
feat(core): Add basic Sub-Agent support
2025-12-26 19:19:02 +01:00
0db472aaa5
conductor(plan): Mark task 'Tool Registry' as complete
2025-12-26 19:18:46 +01:00
1d7c584b55
feat(core): Implement ToolRegistry
2025-12-26 19:18:30 +01:00
4f0b91adda
conductor(plan): Mark task 'Reasoning Loop' as complete
2025-12-26 19:18:11 +01:00
5c82a0e632
feat(core): Implement basic reasoning loop in AgentManager
2025-12-26 19:17:56 +01:00
7a8a99b604
conductor(plan): Mark task 'Create AgentManager struct' as complete
2025-12-26 19:17:37 +01:00
1e7c7cd65d
feat(core): Create AgentManager struct
2025-12-26 19:17:27 +01:00
6acb1dc091
conductor(plan): Mark phase 'Phase 1: Asynchronous Foundation' as complete
2025-12-26 19:17:09 +01:00
aed3879844
conductor(checkpoint): Checkpoint end of Phase 1
2025-12-26 19:16:57 +01:00
a8fc9bbc54
conductor(plan): Mark task 'Introduce AppState' as complete
2025-12-26 19:12:23 +01:00
2bccb11e53
feat(core): Introduce AppState and integrate with Engine Loop
2025-12-26 19:12:02 +01:00
352bbb76f2
conductor(plan): Mark task 'Switch LLM interaction' as complete
2025-12-26 19:11:16 +01:00
c54962b0e0
feat(core): Switch LLM interaction to Streaming-only
2025-12-26 19:11:05 +01:00
68e3993234
conductor(plan): Mark task 'Refactor main.rs' as complete
2025-12-26 19:09:39 +01:00
9648ddd69d
refactor(core): Initialize Engine Loop and Message Channel in main
2025-12-26 19:09:16 +01:00
7c66dfd36b
conductor(plan): Mark task 'Create Message enum' as complete
2025-12-26 19:08:30 +01:00
b0e65e4041
feat(core): Introduce Message enum for async communication
2025-12-26 19:08:16 +01:00
abbda81659
chore(conductor): Archive completed stabilization track
2025-12-26 18:46:29 +01:00
62237bcd3b
conductor(plan): Mark phase 'Documentation Audit & Standardization' as complete
2025-12-26 18:40:34 +01:00
6486dd9b43
conductor(checkpoint): Checkpoint end of Phase 2 - Documentation Audit & Standardization
2025-12-26 18:40:18 +01:00
914f30c8e0
conductor(plan): Mark task 'Add doc-comments to all public functions in crates/core/agent/' as complete
2025-12-26 18:35:57 +01:00
b555256d21
docs(agent): Add doc-comments to all public items in agent-core
2025-12-26 18:35:46 +01:00
f1f1f88181
conductor(plan): Mark task 'Create/Update README.md for all crates in crates/tools/' as complete
2025-12-26 18:32:24 +01:00
a764fd6b75
docs(tools): Add README.md for all tool crates
2025-12-26 18:31:58 +01:00
2273817f5f
conductor(plan): Mark task 'Create/Update README.md for all crates in crates/platform/' as complete
2025-12-26 18:31:09 +01:00
997007439e
docs(platform): Add README.md for all platform crates
2025-12-26 18:30:56 +01:00
41bf788a51
conductor(plan): Mark task 'Create/Update README.md for all crates in crates/llm/' as complete
2025-12-26 18:30:15 +01:00
f7aac0785b
docs(llm): Add README.md for all LLM crates
2025-12-26 18:30:05 +01:00
611547afa5
conductor(plan): Mark task 'Create/Update README.md for all crates in crates/app/' as complete
2025-12-26 18:29:31 +01:00
f39c7a75f2
docs(app): Add README.md for CLI and UI crates
2025-12-26 18:29:22 +01:00
2e8efdaa12
conductor(plan): Mark phase 'Core Agent & Platform Testing' as complete
2025-12-26 18:28:57 +01:00
495f63f0d8
conductor(checkpoint): Checkpoint end of Phase 1 - Core Agent & Platform Testing
2025-12-26 18:28:44 +01:00
efc72c5ceb
conductor(plan): Mark task 'Write unit tests for crates/platform/config/src/lib.rs' as complete
2025-12-26 18:21:41 +01:00
b4a4a38fec
test(config): Add tests for model management and permission integration
2025-12-26 18:21:30 +01:00
ffe899a3c0
conductor(plan): Mark task 'Write unit tests for crates/platform/permissions/src/lib.rs' as complete
2025-12-26 18:20:46 +01:00
94c89cea05
test(permissions): Add tests for mode defaults and tool name roundtrip
2025-12-26 18:20:36 +01:00
b02a41c8e0
conductor(plan): Mark task 'Write unit tests for crates/core/agent/src/lib.rs' as complete
2025-12-26 18:20:09 +01:00
f5a5724823
test(agent): Add unit tests for agent-core and fix clippy warnings
2025-12-26 18:19:58 +01:00
fbb6681cd2
conductor(setup): Add conductor setup files
2025-12-26 18:10:55 +01:00
5b0774958a
feat(auth): add multi-provider authentication with secure credential storage
...
Authentication System:
- Add credentials crate with keyring (OS keychain) and file fallback storage
- Add auth-manager crate for unified auth across providers
- Implement API key login flow for Anthropic, OpenAI, and Ollama Cloud
- Add CLI commands: login, logout, auth (status)
- Store credentials securely in macOS Keychain / GNOME Keyring / Windows Credential Manager
API Key Helpers:
- Support for password manager integration (1Password, Bitwarden, pass, AWS Secrets, Vault)
- Command-based helpers with TTL caching
- Priority chain: env vars → helpers → cache → stored credentials
Background Token Refresh:
- Automatic OAuth token refresh before expiration
- Configurable check interval and refresh threshold
MCP OAuth Support:
- Add OAuth config to MCP server definitions
- Support for SSE/HTTP transport with OAuth
- Token storage with mcp: prefix
Bug Fixes:
- Fix keyring crate requiring explicit backend features (was using mock store)
- Fix provider index not updated on credential store
- Add User-Agent headers to avoid Cloudflare blocks
🤖 Generated with [Claude Code](https://claude.ai/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-03 00:27:37 +01:00
4a07b97eab
feat(ui): add autocomplete, command help, and streaming improvements
...
TUI Enhancements:
- Add autocomplete dropdown with fuzzy filtering for slash commands
- Fix autocomplete: Tab confirms selection, Enter submits message
- Add command help overlay with scroll support (j/k, arrows, Page Up/Down)
- Brighten Tokyo Night theme colors for better readability
- Add todo panel component for task display
- Add rich command output formatting (tables, trees, lists)
Streaming Fixes:
- Refactor to non-blocking background streaming with channel events
- Add StreamStart/StreamEnd/StreamError events
- Fix LlmChunk to append instead of creating new messages
- Display user message immediately before LLM call
New Components:
- completions.rs: Command completion engine with fuzzy matching
- autocomplete.rs: Inline autocomplete dropdown
- command_help.rs: Modal help overlay with scrolling
- todo_panel.rs: Todo list display panel
- output.rs: Rich formatted output (tables, trees, code blocks)
- commands.rs: Built-in command implementations
Planning Mode Groundwork:
- Add EnterPlanMode/ExitPlanMode tools scaffolding
- Add Skill tool for plugin skill invocation
- Extend permissions with planning mode support
- Add compact.rs stub for context compaction
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 19:03:33 +01:00
10c8e2baae
feat(v2): complete multi-LLM providers, TUI redesign, and advanced agent features
...
Multi-LLM Provider Support:
- Add llm-core crate with LlmProvider trait abstraction
- Implement Anthropic Claude API client with streaming
- Implement OpenAI API client with streaming
- Add token counting with SimpleTokenCounter and ClaudeTokenCounter
- Add retry logic with exponential backoff and jitter
Borderless TUI Redesign:
- Rewrite theme system with terminal capability detection (Full/Unicode256/Basic)
- Add provider tabs component with keybind switching [1]/[2]/[3]
- Implement vim-modal input (Normal/Insert/Visual/Command modes)
- Redesign chat panel with timestamps and streaming indicators
- Add multi-provider status bar with cost tracking
- Add Nerd Font icons with graceful ASCII fallbacks
- Add syntax highlighting (syntect) and markdown rendering (pulldown-cmark)
Advanced Agent Features:
- Add system prompt builder with configurable components
- Enhance subagent orchestration with parallel execution
- Add git integration module for safe command detection
- Add streaming tool results via channels
- Expand tool set: AskUserQuestion, TodoWrite, LS, MultiEdit, BashOutput, KillShell
- Add WebSearch with provider abstraction
Plugin System Enhancement:
- Add full agent definition parsing from YAML frontmatter
- Add skill system with progressive disclosure
- Wire plugin hooks into HookManager
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 17:24:14 +01:00
09c8c9d83e
feat(ui): add TUI with streaming agent integration and theming
...
Add a new terminal UI crate (crates/app/ui) built with ratatui providing an
interactive chat interface with real-time LLM streaming and tool visualization.
Features:
- Chat panel with horizontal padding for improved readability
- Input box with cursor navigation and command history
- Status bar with session statistics and uniform background styling
- 7 theme presets: Tokyo Night (default), Dracula, Catppuccin, Nord,
Synthwave, Rose Pine, and Midnight Ocean
- Theme switching via /theme <name> and /themes commands
- Streaming LLM responses that accumulate into single messages
- Real-time tool call visualization with success/error states
- Session tracking (messages, tokens, tool calls, duration)
- REPL commands: /help, /status, /cost, /checkpoint, /rewind, /clear, /exit
Integration:
- CLI automatically launches TUI mode when running interactively (no prompt)
- Falls back to legacy text REPL with --no-tui flag
- Uses existing agent loop with streaming support
- Supports all existing tools (read, write, edit, glob, grep, bash)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-01 22:57:25 +01:00
5caf502009
feat(M12): complete milestone with plugins, checkpointing, and rewind
...
Implements the remaining M12 features from AGENTS.md:
**Plugin System (crates/platform/plugins)**
- Plugin manifest schema with plugin.json support
- Plugin loader for commands, agents, skills, hooks, and MCP servers
- Discovers plugins from ~/.config/owlen/plugins and .owlen/plugins
- Includes comprehensive tests (4 passing)
**Session Checkpointing (crates/core/agent)**
- Checkpoint struct capturing session state and file diffs
- CheckpointManager with snapshot, diff, save, load, and rewind capabilities
- File diff tracking with before/after content
- Checkpoint persistence to .owlen/checkpoints/
- Includes comprehensive tests (6 passing)
**REPL Commands (crates/app/cli)**
- /checkpoint - Save current session with file diffs
- /checkpoints - List all saved checkpoints
- /rewind <id> - Restore session and files from checkpoint
- Updated /help documentation
M12 milestone now fully complete:
✅ /permissions, /status, /cost (previously implemented)
✅ Checkpointing and /rewind
✅ Plugin loader with manifest schema
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-01 21:59:08 +01:00
04a7085007
feat(repl): implement M12 REPL commands and session tracking
...
Add comprehensive REPL commands for session management and introspection:
**Session Tracking** (`crates/core/agent/src/session.rs`):
- SessionStats: Track messages, tool calls, tokens, timing
- SessionHistory: Store conversation history and tool call records
- Auto-formatting for durations (seconds, minutes, hours)
**REPL Commands** (in interactive mode):
- `/help` - List all available commands
- `/status` - Show session stats (messages, tools, uptime)
- `/permissions` - Display permission mode and tool access
- `/cost` - Show token usage and timing (free with Ollama!)
- `/history` - View conversation history
- `/clear` - Reset session state
- `/exit` - Exit interactive mode gracefully
**Stats Tracking**:
- Automatic message counting
- Token estimation (chars / 4)
- Duration tracking per message
- Tool call counting (foundation for future)
- Session uptime from start
**Permission Display**:
- Shows current mode (Plan/AcceptEdits/Code)
- Lists tools by category (read-only, write, system)
- Indicates which tools are allowed/ask/deny
**UX Improvements**:
- Welcome message shows model and mode
- Clean command output with emoji indicators
- Helpful error messages for unknown commands
- Session stats persist across messages
**Example Session**:
```
🤖 Owlen Interactive Mode
Model: qwen3:8b
Mode: Plan
> /help
📖 Available Commands: [list]
> Find all Cargo.toml files
🔧 Tool call: glob...
✅ Tool result: 14 files
> /status
📊 Session Status:
Messages: 1
Tools: 1 calls
Uptime: 15s
> /cost
💰 Token Usage: ~234 tokens
> /exit
👋 Goodbye!
```
Implements core M12 requirements for REPL commands and session management.
Future: Checkpointing/rewind functionality can build on this foundation.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-01 21:05:29 +01:00
6022aeb2b0
feat(cli): add interactive REPL mode with agent loop
...
Add proper interactive mode when no prompt is provided:
**Interactive REPL Features**:
- Starts when running `cargo run` with no arguments
- Shows welcome message with model name
- Prompts with `> ` for user input
- Each input runs through the full agent loop with tools
- Continues until Ctrl+C or EOF
- Displays tool calls and results in real-time
**Changes**:
- Detect empty prompt and enter interactive loop
- Use stdin.lines() for reading user input
- Call agent_core::run_agent_loop for each message
- Handle errors gracefully and continue
- Clean up unused imports
**Usage**:
```bash
# Interactive mode
cargo run
# Single prompt mode
cargo run -- --print "Find all Cargo.toml files"
# Tool subcommands
cargo run -- glob "**/*.rs"
```
Example session:
```
🤖 Owlen Interactive Mode
Model: qwen3:8b
> Find all markdown files
🔧 Tool call: glob with args: {"pattern":"**/*.md"}
✅ Tool result: ./README.md ./CLAUDE.md ./AGENTS.md
...
> exit
```
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-01 21:00:56 +01:00