Commit Graph

32 Commits

Author SHA1 Message Date
67381b02db feat(mcp): add MCP client abstraction and feature flag
Introduce the foundation for the Multi-Client Provider (MCP) architecture.

This phase includes:
- A new `McpClient` trait to abstract tool execution.
- A `LocalMcpClient` that executes tools in-process for backward compatibility ("legacy mode").
- A placeholder `RemoteMcpClient` for future development.
- An `McpMode` enum in the configuration (`mcp.mode`) to toggle between `legacy` and `enabled` modes, defaulting to `legacy`.
- Refactoring of `SessionController` to use the `McpClient` abstraction, decoupling it from the tool registry.

This lays the groundwork for routing tool calls to a remote MCP server in subsequent phases.
2025-10-06 20:03:01 +02:00
235f84fa19 Integrate core functionality for tools, MCP, and enhanced session management
Adds consent management for tool execution, input validation, sandboxed process execution, and MCP server integration. Updates session management to support tool use, conversation persistence, and streaming responses.

Major additions:
- Database migrations for conversations and secure storage
- Encryption and credential management infrastructure
- Extensible tool system with code execution and web search
- Consent management and validation systems
- Sandboxed process execution
- MCP server integration

Infrastructure changes:
- Module registration and workspace dependencies
- ToolCall type and tool-related Message methods
- Privacy, security, and tool configuration structures
- Database-backed conversation persistence
- Tool call tracking in conversations

Provider and UI updates:
- Ollama provider updates for tool support and new Role types
- TUI chat and code app updates for async initialization
- CLI updates for new SessionController API
- Configuration documentation updates
- CHANGELOG updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 18:36:42 +02:00
9c777c8429 Add extensible tool system with code execution and web search
Introduces a tool registry architecture with sandboxed code execution, web search capabilities, and consent-based permission management. Enables safe, pluggable LLM tool integration with schema validation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 18:32:07 +02:00
0b17a0f4c8 Add encryption and credential management infrastructure
Implements AES-256-GCM encrypted storage and keyring-based credential management for securely handling API keys and sensitive data. Supports secure local storage and OS-native keychain integration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 18:31:51 +02:00
2eabe55fe6 Add database migrations for conversations and secure storage
Introduces SQL schema for persistent conversation storage and encrypted secure items, supporting the new storage architecture for managing chat history and sensitive credentials.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 18:31:26 +02:00
4d7ad2c330 Refactor codebase for consistency and readability
- Standardize array and vector formatting for clarity.
- Adjust spacing and indentation in examples and TUI code.
- Ensure proper newline usage across files (e.g., LICENSE, TOML files, etc.).
- Simplify `.to_string()` and `.ok()` calls for brevity.
2025-10-05 02:31:53 +02:00
5b202fed4f Add comprehensive documentation and examples for Owlen architecture and usage
- Include detailed architecture overview in `docs/architecture.md`.
- Add `docs/configuration.md`, detailing configuration file structure and settings.
- Provide a step-by-step provider implementation guide in `docs/provider-implementation.md`.
- Add frequently asked questions (FAQ) document in `docs/faq.md`.
- Create `docs/migration-guide.md` for future breaking changes and version upgrades.
- Introduce new examples in `examples/` showcasing basic chat, custom providers, and theming.
- Add a changelog (`CHANGELOG.md`) for tracking significant changes.
- Provide contribution guidelines (`CONTRIBUTING.md`) and a Code of Conduct (`CODE_OF_CONDUCT.md`).
2025-10-05 02:23:32 +02:00
96e2482782 Add built-in theme support with various pre-defined themes
Some checks failed
ci/someci/tag/woodpecker/5 Pipeline is pending
ci/someci/tag/woodpecker/6 Pipeline is pending
ci/someci/tag/woodpecker/7 Pipeline is pending
ci/someci/tag/woodpecker/1 Pipeline failed
ci/someci/tag/woodpecker/2 Pipeline failed
ci/someci/tag/woodpecker/3 Pipeline failed
ci/someci/tag/woodpecker/4 Pipeline failed
- Introduce multiple built-in themes (`default_dark`, `default_light`, `gruvbox`, `dracula`, `solarized`, `midnight-ocean`, `rose-pine`, `monokai`, `material-dark`, `material-light`).
- Implement theming system with customizable color schemes for all UI components in the TUI.
- Include documentation for themes in `themes/README.md`.
- Add fallback mechanisms for default themes in case of parsing errors.
- Support custom themes with overrides via configuration.
2025-10-03 07:44:11 +02:00
08ba04e99f Add command suggestions and enhancements to Command mode
- Introduce `command_suggestions` feature for autocompletion in Command mode.
- Implement `render_command_suggestions` to display filtered suggestions in a popup.
- Enable navigation through suggestions using Up/Down keys and Tab for completion.
- Add dynamic filtering of suggestions based on input buffer.
- Improve input handling, ensuring suggestion state resets appropriately when exiting Command mode.
2025-10-02 02:48:36 +02:00
c725bb1ce6 Add tabbed help UI with enhanced navigation
- Refactor `render_help` to display tabbed UI for help topics.
- Introduce `help_tab_index` to manage selected tab state.
- Allow navigation between help tabs using Tab, h/l, and number keys (1-5).
- Enhance visual design of help sections using styled tabs and categorized content.
- Update input handling to reset tab state upon exit from help mode.
2025-10-02 02:07:23 +02:00
6b8774f0aa Add session persistence and browser functionality
Some checks failed
Release / Build aarch64-unknown-linux-gnu (push) Has been cancelled
Release / Build aarch64-unknown-linux-musl (push) Has been cancelled
Release / Build armv7-unknown-linux-gnueabihf (push) Has been cancelled
Release / Build armv7-unknown-linux-musleabihf (push) Has been cancelled
Release / Build x86_64-unknown-linux-gnu (push) Has been cancelled
Release / Build x86_64-unknown-linux-musl (push) Has been cancelled
Release / Build aarch64-apple-darwin (push) Has been cancelled
Release / Build x86_64-apple-darwin (push) Has been cancelled
Release / Build aarch64-pc-windows-msvc (push) Has been cancelled
Release / Build x86_64-pc-windows-msvc (push) Has been cancelled
Release / Create Release (push) Has been cancelled
- Implement `StorageManager` for saving, loading, and managing sessions.
- Introduce platform-specific session directories for persistence.
- Add session browser UI for listing, loading, and deleting saved sessions.
- Enable AI-generated descriptions for session summaries.
- Update configurations to support storage settings and description generation.
- Extend README and tests to document and validate new functionality.
2025-10-02 01:33:49 +02:00
053f389b1e Refactor: simplify word navigation logic, improve line wrapping, and enhance parameter initialization across core and TUI modules. 2025-09-30 02:54:07 +02:00
8ee4c5f384 Refactor codebase: improve formatting consistency, simplify message rendering, and optimize cursor and visual selection handling logic across panels. 2025-09-30 02:51:00 +02:00
9d4633865f Add MIT license and refactor Cargo workspace configuration 2025-09-30 02:45:11 +02:00
54bcabd53d Remove App implementation: delete TUI application logic, event handling, and related structures. 2025-09-30 02:40:20 +02:00
a5727c0a1d Enhance TUI: add paste event handling, integrate bracketed paste mode, and implement paste support in editing mode.
Fixes #20
2025-09-30 02:27:09 +02:00
63ca71c6ae Enhance TUI: implement visual and command modes, add selection highlighting, multi-panel focus management, and extend cursor/scrolling functionality. Update help instructions accordingly. 2025-09-30 02:22:21 +02:00
2731a3a878 Add j/k shortcuts for scrolling and update help instructions in TUI
fixes #18
2025-09-30 01:10:29 +02:00
8409bf646a Enhance TUI thinking panel: add dynamic height calculation, implement real-time updates from assistant messages, and refine thinking content rendering logic. 2025-09-30 01:07:00 +02:00
004fc0ba5e Refactor TUI line wrapping: implement manual wrapping for consistency, preserve cursor styles, and handle wide characters. 2025-09-29 23:05:08 +02:00
6ca30f4176 Refactor formatting: simplify message formatting logic by replacing multiline normalization and wrapping with concise trim and line collection. 2025-09-29 22:54:02 +02:00
e193b839f2 Refactor TUI message rendering: simplify role label logic, improve line wrapping, and optimize loading indicator handling. 2025-09-29 22:51:01 +02:00
b8d1866b7d Refactor TUI message rendering: improve role label handling, add emoji labels, enhance line wrapping, and optimize loading indicator logic. 2025-09-29 22:48:51 +02:00
c17af3fee5 Refactor TUI scrolling logic: replace manual scroll calculations with AutoScroll abstraction, enhance line wrapping, and improve viewport handling. 2025-09-29 22:12:45 +02:00
5f78761bef Enhance loading feedback: add loading animation for Assistant replies, improve TUI message updates, and refine response handling logic. Update README to reflect roadmap progress. 2025-09-28 17:15:18 +02:00
fcdbd2bf98 Enhance TUI scrolling: add viewport dimension tracking, autoscroll logic, and message line calculation. Refactor related components for dynamic rendering. 2025-09-28 16:45:49 +02:00
9de24f7de6 Update input mode controls: adjust shortcuts, revise display titles, and remove Shift+Enter instructions. 2025-09-28 02:30:48 +02:00
44884d8627 Add feature flags for CLI binaries; configure required features for each binary 2025-09-28 01:51:32 +02:00
ccf9349f99 Add word wrapping and cursor mapping utilities to core library; integrate advanced text input support in TUI. Update dependencies accordingly. 2025-09-28 01:47:50 +02:00
6ddc66d864 Refactor TUI message formatting: add role label toggle, improve indentation, and adjust role label styling logic. Optimize provider handling. 2025-09-27 07:11:57 +02:00
306104c5b4 Enhance TUI and core functionality: add header rendering, improve message formatting, and refine provider/model handling logic. Update dependencies. 2025-09-27 07:06:57 +02:00
5bc0e02cd3 Add App core struct with event-handling and initialization logic for TUI. 2025-09-27 05:41:46 +02:00