feat: Connect chat interface to conversation layer router

Integrates the chat UI with the conversation layer router.

Key changes:

- Added new environment variables (`CONVERSATION_LAYER_ROUTER_URL` for the API and `VITE_CONVERSATION_LAYER_ROUTER_URL` for the UI) to specify the router's URL. These have been configured in `docker-compose.yml`, `api/.env.example`, and `ui/runtime-env.sh`.

- Modified `ui/src/stores/useChat.js`:
    - Introduced a `sendMessage` action that constructs a message object (as per the specified format with `id`, `from`, `to`, `ts`, `type`, `text`, `meta`) and sends it to the conversation router.
    - Implemented optimistic local display of your message.
    - Handles the `Conversation` object returned by the router, iterating through its `messages` array and adding them to the chat display.
    - Determines message ownership ('user' for UI messages, 'bot' for Nucleo messages) for appropriate rendering.
    - Includes basic error handling for API requests, logging errors and showing system messages in the chat.

- Updated `ui/src/components/chat/CanvasChat.vue`:
    - Modified the message sending mechanism to use the new `chat.sendMessage()` action.
    - Adjusted message rendering to correctly differentiate between messages from 'user' and 'bot' based on the `owner` field from the chat store.

This allows the UI to send messages to the conversation router and display the resulting conversation, focusing on rendering messages from both the UI ('planilla-UI') and the bot ('Nucleo').
This commit is contained in:
google-labs-jules[bot]
2025-06-12 01:23:09 +00:00
parent 33fc3abdaa
commit 2dc118dc19
5 changed files with 92 additions and 7 deletions

View File

@@ -21,6 +21,7 @@ services:
restart: unless-stopped
environment:
DATABASE_URL: "postgresql://planilla:secret@db:5432/planilla_db?schema=public"
CONVERSATION_LAYER_ROUTER_URL: 'http://your-router-url:port'
depends_on:
- db
ports:
@@ -34,6 +35,7 @@ services:
environment:
VITE_API_EVENTS_URL: https://planilla.interno.com/events
VITE_API_DB_URL: https://planilla.interno.com
VITE_CONVERSATION_LAYER_ROUTER_URL: 'http://your-router-url:port'
ports:
- "3008:80"
networks: [planilla, principal]