depurada la conexion
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -25,8 +25,7 @@ coverage/
|
||||
.DS_Store
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
|
||||
.idea/
|
||||
*.suo
|
||||
*.ntvs*
|
||||
|
||||
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"task.allowAutomaticTasks": "on",
|
||||
"task.autoDetect": "on",
|
||||
"task.quickOpen.showAll": true
|
||||
}
|
||||
60
.vscode/tasks.json
vendored
Normal file
60
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "planilla-api",
|
||||
"type": "shell",
|
||||
"command": "make api",
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"panel": "dedicated",
|
||||
"reveal": "always"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "planilla-mcp",
|
||||
"type": "shell",
|
||||
"command": "make mcp",
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"panel": "dedicated",
|
||||
"reveal": "always"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "planilla-ui",
|
||||
"type": "shell",
|
||||
"command": "make UI",
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"panel": "dedicated",
|
||||
"reveal": "always"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "planilla-agent",
|
||||
"type": "shell",
|
||||
"command": "make agent",
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"panel": "dedicated",
|
||||
"reveal": "always"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "planilla-dev",
|
||||
"dependsOn": [
|
||||
"planilla-api",
|
||||
"planilla-mcp",
|
||||
"planilla-ui",
|
||||
"planilla-agent"
|
||||
],
|
||||
"dependsOrder": "parallel",
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"reveal": "always"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
16
Makefile
16
Makefile
@@ -57,3 +57,19 @@ api:
|
||||
# If no name is provided, it defaults to "new_migration".
|
||||
prisma-migrate-dev:
|
||||
cd api && npx prisma migrate deploy
|
||||
|
||||
|
||||
|
||||
# --- Git helper para cambiar de rama por nombre directo ---
|
||||
|
||||
.PHONY: git-branch
|
||||
|
||||
git-branch:
|
||||
@if not "$(BRANCH)"=="" ( \
|
||||
git fetch github && \
|
||||
git checkout $(BRANCH) \
|
||||
) else ( \
|
||||
echo USO: make git-branch BRANCH=nombre/rama && exit /b 1 \
|
||||
)
|
||||
|
||||
|
||||
|
||||
103
estructura.txt
103
estructura.txt
@@ -1,6 +1,5 @@
|
||||
C:\no guardar\nucleo V3\planilla\agent
|
||||
C:\no guardar\nucleo V3\planilla\api
|
||||
C:\no guardar\nucleo V3\planilla\core
|
||||
C:\no guardar\nucleo V3\planilla\dev
|
||||
C:\no guardar\nucleo V3\planilla\mcp
|
||||
C:\no guardar\nucleo V3\planilla\ui
|
||||
@@ -10,30 +9,28 @@ C:\no guardar\nucleo V3\planilla\docker-compose.yml
|
||||
C:\no guardar\nucleo V3\planilla\estructura.txt
|
||||
C:\no guardar\nucleo V3\planilla\Makefile
|
||||
C:\no guardar\nucleo V3\planilla\README.md
|
||||
C:\no guardar\nucleo V3\planilla\agent\example webhooksEvents
|
||||
C:\no guardar\nucleo V3\planilla\agent\processMessage
|
||||
C:\no guardar\nucleo V3\planilla\agent\respuestas
|
||||
C:\no guardar\nucleo V3\planilla\agent\utils
|
||||
C:\no guardar\nucleo V3\planilla\agent\config.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\src
|
||||
C:\no guardar\nucleo V3\planilla\agent\.dockerignore
|
||||
C:\no guardar\nucleo V3\planilla\agent\.env
|
||||
C:\no guardar\nucleo V3\planilla\agent\Dockerfile
|
||||
C:\no guardar\nucleo V3\planilla\agent\gemini.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\handlers.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\index.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\logger.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\package-lock.json
|
||||
C:\no guardar\nucleo V3\planilla\agent\package.json
|
||||
C:\no guardar\nucleo V3\planilla\agent\routes.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\whatsapp.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\example webhooksEvents\exampleOnAnyMessage.txt
|
||||
C:\no guardar\nucleo V3\planilla\agent\processMessage\processVideoMessage.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\respuestas\respuestaBrave.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\respuestas\respuestaMCP.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\respuestas\respuestaNormal.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\utils\decryptMediaContent.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\utils\processMessage.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\utils\saveMedia.js
|
||||
C:\no guardar\nucleo V3\planilla\agent\tsconfig.json
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\cognition
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\llm
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\index.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\systemPrompt copy.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\systemPrompt.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\types.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\cognition\executeTools.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\cognition\generatePlan.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\cognition\index.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\cognition\normalResponse.ts
|
||||
C:\no guardar\nucleo V3\planilla\agent\src\llm\gemini.ts
|
||||
C:\no guardar\nucleo V3\planilla\api\dev
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma
|
||||
C:\no guardar\nucleo V3\planilla\api\routes
|
||||
C:\no guardar\nucleo V3\planilla\api\sse
|
||||
C:\no guardar\nucleo V3\planilla\api\.env
|
||||
C:\no guardar\nucleo V3\planilla\api\.env.example
|
||||
C:\no guardar\nucleo V3\planilla\api\Dockerfile
|
||||
@@ -58,6 +55,7 @@ C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\index.d.ts
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\index.js
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\package.json
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\query_engine-windows.dll.node
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\query_engine-windows.dll.node.tmp26660
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\schema.prisma
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\wasm.d.ts
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\wasm.js
|
||||
@@ -70,31 +68,62 @@ C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\runtime\library.js
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\runtime\react-native.js
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client\runtime\wasm.js
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\migrations\20250515020056_init
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\migrations\20250530222717_init
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\migrations\20250609211800_notify_others_sse
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\migrations\migration_lock.toml
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\migrations\20250515020056_init\migration.sql
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\migrations\20250530222717_init\migration.sql
|
||||
C:\no guardar\nucleo V3\planilla\api\prisma\migrations\20250609211800_notify_others_sse\migration.sql
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\asistencias
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\empleados
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\planillas
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\tareas
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\clientesRandom.js
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\asistencias\asistencias.js
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\empleados\empleados.js
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\planillas\planillas.js
|
||||
C:\no guardar\nucleo V3\planilla\api\routes\tareas\tareas.js
|
||||
C:\no guardar\nucleo V3\planilla\api\sse\index.js
|
||||
C:\no guardar\nucleo V3\planilla\dev\scripts
|
||||
C:\no guardar\nucleo V3\planilla\dev\scripts\estructura.ps1
|
||||
C:\no guardar\nucleo V3\planilla\mcp\lib
|
||||
C:\no guardar\nucleo V3\planilla\mcp\modules
|
||||
C:\no guardar\nucleo V3\planilla\mcp\createServer.js
|
||||
C:\no guardar\nucleo V3\planilla\mcp\Dockerfile
|
||||
C:\no guardar\nucleo V3\planilla\mcp\index.js
|
||||
C:\no guardar\nucleo V3\planilla\mcp\package-lock.json
|
||||
C:\no guardar\nucleo V3\planilla\mcp\package.json
|
||||
C:\no guardar\nucleo V3\planilla\mcp\README.md
|
||||
C:\no guardar\nucleo V3\planilla\mcp\lib\api.js
|
||||
C:\no guardar\nucleo V3\planilla\mcp\modules\asistencias.js
|
||||
C:\no guardar\nucleo V3\planilla\mcp\modules\empleados.js
|
||||
C:\no guardar\nucleo V3\planilla\mcp\modules\planillas.js
|
||||
C:\no guardar\nucleo V3\planilla\mcp\modules\tareas.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\public
|
||||
C:\no guardar\nucleo V3\planilla\ui\src
|
||||
C:\no guardar\nucleo V3\planilla\ui\.env
|
||||
C:\no guardar\nucleo V3\planilla\ui\Dockerfile
|
||||
C:\no guardar\nucleo V3\planilla\ui\index.html
|
||||
C:\no guardar\nucleo V3\planilla\ui\nginx.conf
|
||||
C:\no guardar\nucleo V3\planilla\ui\package-lock.json
|
||||
C:\no guardar\nucleo V3\planilla\ui\package.json
|
||||
C:\no guardar\nucleo V3\planilla\ui\postcss.config.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\README.md
|
||||
C:\no guardar\nucleo V3\planilla\ui\README.ms
|
||||
C:\no guardar\nucleo V3\planilla\ui\runtime-env.sh
|
||||
C:\no guardar\nucleo V3\planilla\ui\tailwind.config.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\vite.config.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\public\vite.svg
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\assets
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\constants
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\layouts
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\router
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\tests
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\utils
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\apiClient.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\App.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\main.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\style.css
|
||||
@@ -103,40 +132,67 @@ C:\no guardar\nucleo V3\planilla\ui\src\components\asistencias
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\chat
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\empleados
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\planillas
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\realtime
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\tareas
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\HelloWorld.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\asistencias\cardAsistencia.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\asistencias\tablaAsistencias.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\chat\CanvasChat.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\chat\FloatingChat.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\empleados\cardEmpleado.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\empleados\tablaEmpleados.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\planillas\cardPlanilla.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\planillas\tablaPlanillas.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\realtime\RealtimeEventCard.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\tareas\cardTarea.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\tareas\tablaTareas.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\navBar.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\sideDrawer.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\NavBar.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\NucleoDataCard.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\NucleoTable.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\README.md
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\SideDrawer.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\SnackbarContainer.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\components\ui\TopBar.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\constants\moduleInfo.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\router\index.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\__tests__
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\useAsistencias.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\useChat.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\useEmpleados.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\usePlanillas.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\useRealtime.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\useSnackbar.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\useTareas.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\useUi.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\stores\__tests__\useUi.spec.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\utils\formatters.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\asistencias
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\empleados
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\planillas
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\tareas
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\ChatView.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\__tests__
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\HomeView.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\NotFound.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\RealtimeFeedView.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\SettingsView.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\asistencias\__tests__
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\asistencias\AsistenciaForm.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\asistencias\AsistenciasIndex.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\asistencias\__tests__\AsistenciasIndex.spec.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\empleados\__tests__
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\empleados\EmpleadoForm.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\empleados\EmpleadosIndex.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\empleados\__tests__\EmpleadosIndex.spec.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\planillas\__tests__
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\planillas\PlanillaForm.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\planillas\PlanillasIndex.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\planillas\__tests__\PlanillasIndex.spec.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\tareas\__tests__
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\tareas\TareaForm.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\tareas\TareasIndex.vue
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\tareas\__tests__\TareasIndex.spec.js
|
||||
C:\no guardar\nucleo V3\planilla\ui\src\views\__tests__\SettingsView.spec.js
|
||||
C:\no guardar\nucleo V3\planilla\worker\cron
|
||||
C:\no guardar\nucleo V3\planilla\worker\prisma
|
||||
C:\no guardar\nucleo V3\planilla\worker\.env
|
||||
@@ -144,6 +200,7 @@ C:\no guardar\nucleo V3\planilla\worker\cron-worker.js
|
||||
C:\no guardar\nucleo V3\planilla\worker\Dockerfile
|
||||
C:\no guardar\nucleo V3\planilla\worker\package-lock.json
|
||||
C:\no guardar\nucleo V3\planilla\worker\package.json
|
||||
C:\no guardar\nucleo V3\planilla\worker\sync-empleados.js
|
||||
C:\no guardar\nucleo V3\planilla\worker\cron\15min
|
||||
C:\no guardar\nucleo V3\planilla\worker\cron\15min\hello.sh
|
||||
C:\no guardar\nucleo V3\planilla\worker\prisma\schema.prisma
|
||||
|
||||
@@ -43,7 +43,7 @@ function handleKey (e) {
|
||||
|
||||
onMounted(() => {
|
||||
if (!chat.items.length) {
|
||||
chat.add({ type: 'text', owner: 'bot', text: '¡Hola! Probá /empleados, /tareas, etc.' })
|
||||
chat.add({ type: 'chat', owner: 'bot', text: '¡Hola! Probá /empleados, /tareas, etc.' })
|
||||
}
|
||||
scrollBottom()
|
||||
})
|
||||
@@ -58,7 +58,7 @@ watch(() => chat.items.length, scrollBottom)
|
||||
<div ref="list" class="flex-1 min-h-0 overflow-auto p-6 space-y-4 custom-scroll">
|
||||
<template v-for="(m,i) in chat.items" :key="i">
|
||||
<!-- mensaje de texto -->
|
||||
<div :class="m.owner==='user' ? 'flex justify-end' : 'flex justify-start'" v-if="m.type==='text'">
|
||||
<div :class="m.owner==='user' ? 'flex justify-end' : 'flex justify-start'" v-if="m.type==='chat'">
|
||||
<div
|
||||
class="max-w-lg rounded-lg px-4 py-2 shadow break-words"
|
||||
:class="m.owner === 'user' ? '' : ''"
|
||||
|
||||
@@ -9,6 +9,7 @@ import './style.css' // Tailwind o tus estilos globales
|
||||
|
||||
console.log(`VITE_API_EVENTS_URL: ${import.meta.env.VITE_API_EVENTS_URL || window?.RUNTIME_CONFIG?.VITE_API_EVENTS_URL || 'no definida'}`);
|
||||
console.log(`VITE_API_DB_URL: ${import.meta.env.VITE_API_DB_URL || window?.RUNTIME_CONFIG?.VITE_API_DB_URL || 'no definida'}`);
|
||||
console.log(`VITE_CONVERSATION_LAYER_ROUTER_URL: ${import.meta.env.VITE_CONVERSATION_LAYER_ROUTER_URL || window?.RUNTIME_CONFIG?.VITE_CONVERSATION_LAYER_ROUTER_URL || 'no definida'}`);
|
||||
|
||||
const apiBaseURL =
|
||||
import.meta.env.VITE_API_DB_URL || window?.RUNTIME_CONFIG?.VITE_API_DB_URL || 'no definida';
|
||||
|
||||
@@ -15,6 +15,8 @@ export const useChat = defineStore('chat', {
|
||||
|
||||
actions: {
|
||||
add (item) {
|
||||
console.log('agregado');
|
||||
|
||||
this.items.push(item)
|
||||
},
|
||||
|
||||
@@ -38,86 +40,91 @@ export const useChat = defineStore('chat', {
|
||||
}
|
||||
},
|
||||
|
||||
async sendMessage (text) {
|
||||
const routerUrl = window.RUNTIME_CONFIG?.VITE_CONVERSATION_LAYER_ROUTER_URL || 'http://localhost:8080/fallback-router'; // Fallback or error
|
||||
if (!window.RUNTIME_CONFIG?.VITE_CONVERSATION_LAYER_ROUTER_URL) {
|
||||
console.error('VITE_CONVERSATION_LAYER_ROUTER_URL is not defined in window.RUNTIME_CONFIG. Using fallback or please check your configuration.');
|
||||
}
|
||||
async sendMessage(text) {
|
||||
const routerUrl =
|
||||
import.meta.env.VITE_CONVERSATION_LAYER_ROUTER_URL ||
|
||||
window?.RUNTIME_CONFIG?.VITE_CONVERSATION_LAYER_ROUTER_URL ||
|
||||
'http://localhost:8080/fallback-router';
|
||||
|
||||
const msgId = `planilla-UI-${Date.now()}`;
|
||||
const ts = Math.floor(Date.now() / 1000);
|
||||
|
||||
const messagePayload = {
|
||||
id: `planilla-UI-${Date.now()}`, // Simple unique ID for now
|
||||
chatId: 'planilla-UI',
|
||||
id: msgId,
|
||||
from: 'planilla-UI',
|
||||
to: 'Nucleo',
|
||||
ts: Math.floor(Date.now() / 1000), // Timestamp in seconds
|
||||
ts,
|
||||
type: 'chat',
|
||||
text: text, // User's message text
|
||||
mediaUrl: null, // Assuming no media for now
|
||||
mentions: null, // Assuming no mentions for now
|
||||
text,
|
||||
mediaUrl: null,
|
||||
mentions: null,
|
||||
meta: {
|
||||
ack: 1, // Or 0 if acknowledgement is handled by the router
|
||||
ack: 1,
|
||||
hasReaction: false,
|
||||
isQuoted: false,
|
||||
},
|
||||
};
|
||||
|
||||
// Optimistically add message to chat
|
||||
this.add({
|
||||
id: messagePayload.id, // Use the same ID
|
||||
// Agregar solo para mostrar en UI mientras llega la respuesta
|
||||
this.items.push({
|
||||
id: msgId,
|
||||
type: 'chat',
|
||||
owner: 'user', // Or a more specific identifier if available
|
||||
text: text,
|
||||
ts: messagePayload.ts
|
||||
owner: 'user',
|
||||
text,
|
||||
ts,
|
||||
});
|
||||
|
||||
try {
|
||||
const response = await axios.post(routerUrl, messagePayload);
|
||||
console.log('Message sent, raw response:', response.data); // Log raw response
|
||||
|
||||
const response = await axios.post(routerUrl, { data: messagePayload });
|
||||
const conversation = response.data;
|
||||
|
||||
if (conversation && Array.isArray(conversation.messages)) {
|
||||
conversation.messages.forEach(msg => {
|
||||
let owner = 'bot'; // Default to bot
|
||||
if (msg.from === 'planilla-UI') {
|
||||
owner = 'user';
|
||||
// NOTE: This might add a duplicate if the optimistic message's ID
|
||||
// is different from the ID assigned by the router for the echoed message.
|
||||
// The current instructions are to render all messages from the router.
|
||||
// Refinement for deduplication can be done later if needed.
|
||||
} else if (msg.from === 'Nucleo') {
|
||||
owner = 'bot';
|
||||
}
|
||||
// else, it could be from another participant
|
||||
const newItems = [];
|
||||
|
||||
this.add({
|
||||
conversation.messages.forEach(msg => {
|
||||
// Evitar re-agregar el mensaje optimista
|
||||
newItems.push({
|
||||
id: msg.id,
|
||||
type: msg.type || 'chat', // Default to 'chat' if type is not present
|
||||
owner: owner,
|
||||
type: msg.type || 'chat',
|
||||
owner: msg.from === 'planilla-UI' ? 'user' : 'bot',
|
||||
text: msg.text,
|
||||
ts: msg.ts,
|
||||
// mediaUrl: msg.mediaUrl, // Uncomment if mediaUrl is expected
|
||||
});
|
||||
});
|
||||
|
||||
// Agregamos de nuevo el mensaje del usuario al principio, ya que fue omitido
|
||||
// newItems.unshift({
|
||||
// id: msgId,
|
||||
// type: 'chat',
|
||||
// owner: 'user',
|
||||
// text,
|
||||
// ts,
|
||||
// });
|
||||
|
||||
this.items = newItems;
|
||||
} else {
|
||||
console.error('Invalid conversation response format:', conversation);
|
||||
this.add({
|
||||
this.items.push({
|
||||
id: `error-${Date.now()}`,
|
||||
type: 'error',
|
||||
owner: 'system',
|
||||
text: 'Error processing server response. Invalid format.',
|
||||
ts: Math.floor(Date.now() / 1000)
|
||||
text: 'Error: respuesta inválida del servidor.',
|
||||
ts: Math.floor(Date.now() / 1000),
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error sending message:', error);
|
||||
this.add({
|
||||
this.items.push({
|
||||
id: `error-send-${Date.now()}`,
|
||||
type: 'error',
|
||||
owner: 'system',
|
||||
text: `Error sending message: ${error.message}`,
|
||||
ts: Math.floor(Date.now() / 1000)
|
||||
text: `Error al enviar: ${error.message}`,
|
||||
ts: Math.floor(Date.now() / 1000),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user