# KAPPA Hub > Asistente multi-proyecto para KAPPA. Semilla de RUMBO. > POC → validación diaria → lo que funciona migra a RUMBO. ## Stack | Capa | Tecnología | Versión | |------|-----------|---------| | Desktop shell | Tauri v2 | 2.11 | | Frontend | Vue 3 + TypeScript + Vite | 3.4 / 5.x | | Runtime JS | Bun | 1.3+ | | Estado | Pinia | 2.1 | | BD local | Turso (libSQL) | Embedded | | HTTP | fetch() directo a KAPPA (proxy Vite en dev) | | Auth | Bearer token (POST /api/users/login/) | | UI | shadcn-vue (New York) + Tailwind CSS v4 | 2.7 | | Tablas | AG Grid Community + tanstack/vue-table | 35.3 | | i18n | vue-i18n (es.json + en.json) — **PROHIBIDO hardcodear texto** | 11.4 | ## Reglas de código 1. **PROHIBIDO hardcodear texto visible al usuario.** Todo texto debe usar `t('clave')` de vue-i18n. Si no existe la clave, agregarla a `es.json` y `en.json`. 2. **KAPPA retorna tipos mixtos**: strings, números y booleanos para el mismo campo (ej: `status` puede ser `"active"`, `true`, o `3`). Siempre usar `String(valor)` o `safeStr()` antes de operar. 3. **No usar `.catch(() => {})`** sin loguear el error. Siempre `console.error()`. 4. **Los nombres de funciones y archivos van en español** cuando son semánticos del dominio (ej: `syncHUsToTurso` → OK, pero labels visibles van en i18n). ## Sincronización entre máquinas (Mac Mini ↔ MacBook Air) El proyecto vive en iCloud Drive: `com~apple~CloudDocs/AI/Teloprax/02_productos/kappa-hub/`. - **Código**: se sincroniza automáticamente vía iCloud. Solo `bun install` una vez por máquina. - **Datos de KAPPA**: viven en el servidor (kappa.lambdaanalytics.co). El Hub es solo un cliente. - **Token**: localStorage del navegador. Loguearse una vez por máquina. - **Datos locales futuros** (borradores, caché): se guardarán como archivos en `data/` dentro del proyecto, sincronizados vía iCloud. Ver `../rumbo/sincronizacion.md`. ## Calendarios externos (K-21) | Servicio | Auth | Capacidad | |----------|------|-----------| | Google Calendar | OAuth2 | Leer eventos, escribir eventos | | Microsoft Graph (Outlook/Teams) | OAuth2 | Leer eventos, escribir eventos | | iCal (.ics) | Archivo | Importar/exportar | ### Flujo post-reunión (K-22) ``` 1. RUMBO lee calendario (Google/Outlook) 2. Detecta: "Reunión con Cliente X, 8-9am" 3. Después de la reunión (+15/30 min): → 🔔 "Terminó tu reunión con Cliente X" → "¿Ya capturaste las notas?" → "¿Hay transcripción?" → "¿Se extrajeron las tareas?" 4. Si no → RUMBO guía a completar ``` **Analogía**: RUMBO como Apple Watch — te alerta cuando llevas mucho tiempo sentado (reuniones sin seguimiento = deuda de contexto). ### API de recordatorios (futuro) ```typescript interface Reminder { id: string trigger_at: string // ISO datetime title: string body: string action_url?: string // deep link a la vista correspondiente dismissed: boolean source: 'calendar' | 'scheduler' | 'hu_deadline' } ``` ## APIs KAPPA integradas | Endpoint | Método | Uso en el hub | |----------|--------|--------------| | `/users/login/` | POST | Auth | | `/initiatives-all/` | GET | Listar proyectos | | `/users/all/` | GET | Listar usuarios | | `/userstorys/create/` | POST | Crear HU desde transcripción | | `/logbooks_master/create/` | POST | Crear bitácora | | `/logbooks/create/` | POST | Entrada de bitácora | | `/plannings_master/create/` | POST | Crear planeación | | `/plannings/create/` | POST | Entrada de planeación | | `/business-rules/create/` | POST | Reglas de negocio | | `/functionalrequirements/create/` | POST | Requisitos funcionales/no funcionales | ## Estructura ``` kappa-hub/ ├── src/ │ ├── types/kappa.ts # Tipos TypeScript │ ├── services/kappa-api.ts # Cliente HTTP KAPPA │ ├── stores/ # Pinia │ │ ├── auth.ts │ │ ├── projects.ts │ │ └── workitems.ts │ ├── views/ │ │ ├── LoginView.vue │ │ └── DashboardView.vue │ ├── components/layout/ │ │ └── AppShell.vue │ ├── App.vue │ └── main.ts ├── package.json └── vite.config.ts ``` ## Cómo ejecutar ```bash cd "02_productos/kappa-hub" bun install # una vez por máquina bun dev # http://localhost:5173 ``` Abre http://localhost:5173. El proxy de Vite redirige `/api/*` a `https://kappa.lambdaanalytics.co`. ## Próximos pasos 1. ~~Agregar Dexie.js para cache offline~~ (K-15) 2. ~~Pipeline de transcripciones~~ (K-10) 3. ~~Dashboard multi-proyecto~~ (K-11) 4. ~~Priorizador diario~~ (K-12) 5. ~~Generador de reportes~~ (K-13) 6. **Integración calendario Google/Outlook** (K-21) 7. **Alertas post-reunión** (K-22)