This commit provides a complete and clean implementation of the JSON-driven flow engine to resolve persistent issues with missing files in previous commits.
This commit includes:
- All individual flow definition files in the `talia_bot/data/flows/` directory.
- The `talia_bot/data/services.json` file.
- The `talia_bot/modules/flow_engine.py` module with corrected logic for handling user responses and robust role assignment.
- All other necessary backend modules that were missing after the environment reset.
This comprehensive commit ensures that all required files are present and correctly implemented, providing a stable foundation for the new modular conversational architecture. All code has been reviewed and corrected based on feedback.
This commit delivers the complete and final implementation of the new conversational flow engine, addressing all feedback from previous code reviews.
- **Adds Critical Data Files:** Creates `talia_bot/data/flows.json` and `talia_bot/data/services.json`, resolving the critical blocking issue and making the bot fully functional.
- **Corrects Vikunja Flow:** The `admin_project_management` flow in `flows.json` now correctly includes a step to select a task after selecting a project. The resolution logic in `main.py` is updated to use the correct `task_id`.
- **Implements All Resolutions:** The `handle_flow_resolution` function in `main.py` is now complete, with functional logic for all resolution types, including robust date/time parsing for calendar events and branching logic for idea capture.
- **Fixes and Cleanup:** Corrects the OpenAI API call in the `transcription.py` module and removes all legacy `ConversationHandler` code from `vikunja.py` and `main.py`.
- **Configuration and Docs:** The project configuration (`config.py`, `.env.example`) and documentation (`README.md`) are fully updated to reflect the final state of the new architecture.
Replaces the hardcoded ConversationHandler system with a generic, data-driven flow engine. This new architecture reads conversation logic from `talia_bot/data/flows.json`, enabling flexible and maintainable conversational flows for all user roles.
- **Core Engine:** Introduces `flow_engine.py` to manage conversation state, step progression, and data collection. Adds a `conversations` table to the database for robust state persistence.
- **Unified Handler:** Refactors `main.py` to use a `universal_handler` that processes all user inputs (text, voice, callbacks, documents) through the new engine.
- **Async Integrations:** All external service modules (`vikunja.py`, `llm_engine.py`, `calendar.py`) are now fully asynchronous. New modules for `transcription.py` (Whisper) and `mailer.py` (SMTP) have been added.
- **Complete Flow Logic:** Implements the full business logic for all specified user flows, including project/task management with correct task selection, calendar event creation with date parsing, idea capture with branching logic (Task vs. Note), and the RAG-based client sales funnel.
- **Configuration:** Adds new environment variables like `VIKUNJA_INBOX_PROJECT_ID` for better configurability.
- **Documentation:** Completely rewrites `README.md` to accurately reflect the new architecture, project structure, and setup instructions.
- **Cleanup:** Removes all legacy `ConversationHandler` code and unused functions.
This commit implements the first phase of the new architectural vision for the Talia Bot.
Key changes include:
- Renamed the main application directory from `app` to `talia_bot` and updated all associated imports and configurations (`Dockerfile`, tests).
- Replaced the static, `.env`-based permission system with a dynamic, database-driven role management system.
- Introduced a `db.py` module to manage a SQLite database (`users.db`) for user persistence.
- Updated `identity.py` to fetch roles ('admin', 'crew', 'client') from the database.
- Rewrote the `README.md` and `.env.example` to align with the new project specification.
- Refactored the LLM module into the new `modules` structure.
This commit adds detailed inline comments and docstrings to all modules within the `app/modules/` directory to improve code clarity, readability, and maintainability.
It also updates the `README.md` file to include `create_tag.py` and `print.py` in the "Módulos Funcionales" section, ensuring the documentation is synchronized with the codebase.
This commit adds detailed inline comments to the `app/modules/create_tag.py` module to improve code clarity and maintainability.
It also updates the `README.md` file to include a new section documenting the functionality and usage of the `/create_tag` command.
Updated wording for clarity and consistency throughout the README. Adjusted sections on purpose, personality, roles, architecture, and deployment instructions.