wadi 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/workflows/auto_sync.md +19 -0
- package/.agent/workflows/kivo_pipeline.md +27 -0
- package/.devcontainer/devcontainer.json +27 -0
- package/.github/workflows/kivo-cicd.yml +45 -0
- package/.github/workflows/monorepo-ci.yml +51 -0
- package/.github/workflows/wadi-ci.yml +38 -0
- package/.husky/pre-commit +2 -0
- package/.prettierignore +12 -0
- package/.prettierrc +9 -0
- package/.vscode/settings.json +19 -0
- package/CHANGELOG.md +56 -0
- package/CODE_OF_CONDUCT.md +43 -0
- package/CONTRIBUTING.md +42 -0
- package/DEPLOY_GUIDE.md +143 -0
- package/GO_LIVE_CHECKLIST.md +41 -0
- package/GO_LIVE_COMPLETE_REPORT.md +58 -0
- package/GO_LIVE_VALIDATION.md +39 -0
- package/LEGAL.md +38 -0
- package/MANIFESTO.md +40 -0
- package/MANUAL.md +82 -0
- package/OPS_PLAN.md +90 -0
- package/README.md +126 -0
- package/RELEASE_NOTES.md +51 -0
- package/ROADMAP.md +51 -0
- package/api_listado.txt +2197 -0
- package/apps/api/WADI_PROTOCOL.md +52 -0
- package/apps/api/debug-brain.js +11 -0
- package/apps/api/package.json +21 -0
- package/apps/api/src/core/analisis.js +17 -0
- package/apps/api/src/core/errors.js +31 -0
- package/apps/api/src/core/logger.js +32 -0
- package/apps/api/src/core/prompt-kivo.js +62 -0
- package/apps/api/src/index.js +212 -0
- package/apps/api/src/layers/human_pattern/composeResponse.js +35 -0
- package/apps/api/src/layers/human_pattern/detectPattern.js +39 -0
- package/apps/api/src/layers/human_pattern/heuristics.js +28 -0
- package/apps/api/src/layers/human_pattern/index.js +28 -0
- package/apps/api/src/layers/human_pattern/socialMemory.js +35 -0
- package/apps/api/src/middleware/errorHandler.js +24 -0
- package/apps/api/src/middleware/rateLimiter.js +38 -0
- package/apps/api/src/middleware/requestLogger.js +31 -0
- package/apps/api/src/middleware/upload.js +21 -0
- package/apps/api/src/middleware/validation.js +70 -0
- package/apps/api/src/modules/data.js +25 -0
- package/apps/api/src/modules/marketing.js +54 -0
- package/apps/api/src/modules/projects.js +40 -0
- package/apps/api/src/openai.js +16 -0
- package/apps/api/src/preferences/index.js +20 -0
- package/apps/api/src/register_user.js +22 -0
- package/apps/api/src/routes/kivo.js +58 -0
- package/apps/api/src/routes/monitoring.js +55 -0
- package/apps/api/src/routes.js +656 -0
- package/apps/api/src/supabase.js +17 -0
- package/apps/api/src/tools/index.js +57 -0
- package/apps/api/src/wadi-brain.js +171 -0
- package/apps/api/supabase/migrations/20251218_audit_logs.sql +27 -0
- package/apps/api/supabase/migrations/v2-chat-persistence.sql +83 -0
- package/apps/api/supabase/migrations/v3-cascade-delete.sql +11 -0
- package/apps/api/supabase/migrations/v3-security-fix.sql +90 -0
- package/apps/api/supabase/migrations/v3-storage.sql +36 -0
- package/apps/api/supabase/migrations/v4-gamification.sql +83 -0
- package/apps/api/supabase/migrations/v5-smoke-index.sql +6 -0
- package/apps/api/supabase/migrations/v6-schema-integrity-fix.sql +98 -0
- package/apps/api/supabase/migrations/v7-performance-indexes.sql +5 -0
- package/apps/api/supabase/migrations/v7-security-hardening.sql +132 -0
- package/apps/api/supabase/migrations/v8-security-hardening.sql +79 -0
- package/apps/api/test_human_pattern.js +30 -0
- package/apps/api/test_human_pattern_vague.js +30 -0
- package/apps/api/test_output.txt +76 -0
- package/apps/api/test_vague.js +30 -0
- package/apps/api/test_vague_block.js +30 -0
- package/apps/api/test_wadi.js +31 -0
- package/apps/api/tsconfig.json +13 -0
- package/apps/frontend/.env.local +3 -0
- package/apps/frontend/README.md +73 -0
- package/apps/frontend/eslint.config.js +27 -0
- package/apps/frontend/index.html +49 -0
- package/apps/frontend/package.json +41 -0
- package/apps/frontend/postcss.config.cjs +6 -0
- package/apps/frontend/public/cursors/wadi-neutral.svg +1 -0
- package/apps/frontend/public/cursors/wadi-select.svg +1 -0
- package/apps/frontend/public/icon-192.svg +1 -0
- package/apps/frontend/public/icon-512.svg +1 -0
- package/apps/frontend/public/manifest.webmanifest +23 -0
- package/apps/frontend/public/sw.js +57 -0
- package/apps/frontend/public/vite.svg +1 -0
- package/apps/frontend/public/wadi.svg +5 -0
- package/apps/frontend/src/assets/react.svg +1 -0
- package/apps/frontend/src/components/AuthLoader.tsx +50 -0
- package/apps/frontend/src/components/ChatInput.tsx +272 -0
- package/apps/frontend/src/components/ChatInterface.tsx +202 -0
- package/apps/frontend/src/components/ErrorBoundary.tsx +52 -0
- package/apps/frontend/src/components/InputArea.tsx +201 -0
- package/apps/frontend/src/components/Layout.tsx +73 -0
- package/apps/frontend/src/components/MessageBubble.tsx +66 -0
- package/apps/frontend/src/components/OnboardingModal.tsx +108 -0
- package/apps/frontend/src/components/SettingsModal.tsx +187 -0
- package/apps/frontend/src/components/Sidebar.tsx +171 -0
- package/apps/frontend/src/components/WadiOnboarding.tsx +71 -0
- package/apps/frontend/src/components/auditor/AuditReport.tsx +166 -0
- package/apps/frontend/src/components/auditor/AuditorHeader.tsx +34 -0
- package/apps/frontend/src/components/auditor/ContextPanel.tsx +138 -0
- package/apps/frontend/src/components/auditor/DataDeconstructor.tsx +85 -0
- package/apps/frontend/src/components/auditor/DecisionWall.tsx +65 -0
- package/apps/frontend/src/components/auditor/Dropzone.tsx +137 -0
- package/apps/frontend/src/components/common/Button.tsx +97 -0
- package/apps/frontend/src/components/common/Card.tsx +43 -0
- package/apps/frontend/src/components/common/Input.tsx +73 -0
- package/apps/frontend/src/components/common/Modal.tsx +53 -0
- package/apps/frontend/src/components/ui/Button.tsx +68 -0
- package/apps/frontend/src/components/ui/Card.tsx +86 -0
- package/apps/frontend/src/components/ui/Input.tsx +28 -0
- package/apps/frontend/src/components/ui/LogItem.tsx +64 -0
- package/apps/frontend/src/components/ui/MondayButton.tsx +40 -0
- package/apps/frontend/src/components/ui/MondayCard.tsx +24 -0
- package/apps/frontend/src/components/ui/Scouter.tsx +208 -0
- package/apps/frontend/src/components/ui/TerminalInput.tsx +202 -0
- package/apps/frontend/src/components/ui/Tooltip.tsx +67 -0
- package/apps/frontend/src/config/chatShortcuts.ts +20 -0
- package/apps/frontend/src/config/supabase.ts +6 -0
- package/apps/frontend/src/final_status.txt +3 -0
- package/apps/frontend/src/hooks/useScouter.ts +28 -0
- package/apps/frontend/src/hooks/useStoreHydration.ts +24 -0
- package/apps/frontend/src/improvement_status.txt +5 -0
- package/apps/frontend/src/index.css +88 -0
- package/apps/frontend/src/main.tsx +62 -0
- package/apps/frontend/src/monday_status.txt +7 -0
- package/apps/frontend/src/pages/ChatPage.tsx +201 -0
- package/apps/frontend/src/pages/DashboardPage.tsx +375 -0
- package/apps/frontend/src/pages/IntroWadi.tsx +114 -0
- package/apps/frontend/src/pages/LandingPage.tsx +103 -0
- package/apps/frontend/src/pages/Login.tsx +190 -0
- package/apps/frontend/src/pages/PrivacyPage.tsx +213 -0
- package/apps/frontend/src/pages/ProjectDetail.tsx +80 -0
- package/apps/frontend/src/pages/Projects.tsx +247 -0
- package/apps/frontend/src/pages/TermsPage.tsx +202 -0
- package/apps/frontend/src/router.tsx +83 -0
- package/apps/frontend/src/store/authStore.ts +152 -0
- package/apps/frontend/src/store/chatStore.ts +837 -0
- package/apps/frontend/src/store/documentStore.ts +89 -0
- package/apps/frontend/src/store/projectsStore.ts +111 -0
- package/apps/frontend/src/store/runsStore.ts +98 -0
- package/apps/frontend/src/utils/api.ts +34 -0
- package/apps/frontend/src/vite-env.d.ts +7 -0
- package/apps/frontend/tailwind.config.cjs +32 -0
- package/apps/frontend/tsconfig.app.json +27 -0
- package/apps/frontend/tsconfig.json +7 -0
- package/apps/frontend/tsconfig.node.json +26 -0
- package/apps/frontend/vite.config.ts +25 -0
- package/apps/kivo/.firebase/hosting.d3d3.cache +11 -0
- package/apps/kivo/.firebaserc +5 -0
- package/apps/kivo/BRANDING_GUIDE.md +71 -0
- package/apps/kivo/DEPLOYMENT_READY.md +46 -0
- package/apps/kivo/DEPLOY_URL.md +12 -0
- package/apps/kivo/IMPLEMENTATION_REPORT.md +35 -0
- package/apps/kivo/IMPLEMENTATION_REPORT_FINAL.md +49 -0
- package/apps/kivo/PLAN_MOBILE_2.0.md +44 -0
- package/apps/kivo/PWA_VERIFICATION_GUIDE.md +77 -0
- package/apps/kivo/README.md +28 -0
- package/apps/kivo/REBUILD_REPORT.md +34 -0
- package/apps/kivo/UPGRADE_REPORT.md +35 -0
- package/apps/kivo/android/app/build.gradle +54 -0
- package/apps/kivo/android/app/capacitor.build.gradle +19 -0
- package/apps/kivo/android/app/proguard-rules.pro +21 -0
- package/apps/kivo/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +26 -0
- package/apps/kivo/android/app/src/main/AndroidManifest.xml +35 -0
- package/apps/kivo/android/app/src/main/java/com/kivo/app/MainActivity.java +5 -0
- package/apps/kivo/android/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
- package/apps/kivo/android/app/src/main/res/drawable/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-ldpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-night-hdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-night-ldpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-night-mdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-night-xhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-night-xxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-night-xxxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-night/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-ldpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-night-hdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-night-ldpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-night-mdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-night-xhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-night-xxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-night-xxxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
- package/apps/kivo/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +34 -0
- package/apps/kivo/android/app/src/main/res/layout/activity_main.xml +12 -0
- package/apps/kivo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +9 -0
- package/apps/kivo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +9 -0
- package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher_round.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/apps/kivo/android/app/src/main/res/values/ic_launcher_background.xml +4 -0
- package/apps/kivo/android/app/src/main/res/values/strings.xml +7 -0
- package/apps/kivo/android/app/src/main/res/values/styles.xml +22 -0
- package/apps/kivo/android/app/src/main/res/xml/file_paths.xml +5 -0
- package/apps/kivo/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +18 -0
- package/apps/kivo/android/build.gradle +29 -0
- package/apps/kivo/android/capacitor.settings.gradle +3 -0
- package/apps/kivo/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/apps/kivo/android/gradle/wrapper/gradle-wrapper.properties +7 -0
- package/apps/kivo/android/gradle.properties +22 -0
- package/apps/kivo/android/gradlew +252 -0
- package/apps/kivo/android/gradlew.bat +94 -0
- package/apps/kivo/android/settings.gradle +5 -0
- package/apps/kivo/android/variables.gradle +16 -0
- package/apps/kivo/assets/icon.png +0 -0
- package/apps/kivo/assets/splash.png +0 -0
- package/apps/kivo/capacitor.config.json +16 -0
- package/apps/kivo/firebase.json +6 -0
- package/apps/kivo/jest.config.js +4 -0
- package/apps/kivo/package.json +26 -0
- package/apps/kivo/tests_disabled/logic.test.js +34 -0
- package/apps/kivo/www/assets/icon-192.png +0 -0
- package/apps/kivo/www/assets/icon-512.png +0 -0
- package/apps/kivo/www/assets/kivo-icon.png +0 -0
- package/apps/kivo/www/assets/pop.mp3 +0 -0
- package/apps/kivo/www/favicon.ico +0 -0
- package/apps/kivo/www/firebase-config.js +75 -0
- package/apps/kivo/www/index.html +38 -0
- package/apps/kivo/www/manifest.json +29 -0
- package/apps/kivo/www/script.js +72 -0
- package/apps/kivo/www/style.css +82 -0
- package/apps/kivo/www/sw.js +46 -0
- package/apps/kivo-brain-api/.env.example +2 -0
- package/apps/kivo-brain-api/KIVO_BACKEND_SETUP.md +27 -0
- package/apps/kivo-brain-api/controllers/kivoController.js +31 -0
- package/apps/kivo-brain-api/index.js +24 -0
- package/apps/kivo-brain-api/package.json +17 -0
- package/apps/kivo-brain-api/routes/message.js +8 -0
- package/apps/kivo-brain-api/services/openaiService.js +64 -0
- package/apps/tests/wadi-tests.js +155 -0
- package/apps/wadi-brain/docs/README_REMOVE_OPTIONS.md +26 -0
- package/cli/commands/deploy.js +10 -0
- package/cli/commands/docs.js +16 -0
- package/cli/commands/explain.js +29 -0
- package/cli/commands/lint.js +14 -0
- package/cli/index.js +26 -0
- package/cli/package.json +12 -0
- package/docs/CNAME +1 -0
- package/docs/README.md +38 -0
- package/docs/USO.md +30 -0
- package/docs/index.html +46 -0
- package/eslint.config.js +101 -0
- package/final_validation.json +27 -0
- package/frontend_listado.txt +33387 -0
- package/listado.txt +12591 -0
- package/package.json +46 -0
- package/packages/logger/index.js +43 -0
- package/packages/logger/package.json +19 -0
- package/packages/logger/test-logger.js +7 -0
- package/packages_listado.txt +801 -0
- package/pnpm-workspace.yaml +6 -0
- package/reseteador_existencial.ps1 +40 -0
- package/scripts/bump-version.js +26 -0
- package/scripts/env.ps1 +13 -0
- package/scripts/setup_android.ps1 +25 -0
- package/scripts/setup_virtual_env.ps1 +77 -0
- package/scripts/smoke-test.js +84 -0
- package/scripts/trigger_render_deploy.ps1 +3 -0
- package/scripts/validate-release.js +34 -0
- package/temp_check.js +57 -0
- package/tsconfig.json +5 -0
- package/validation_report.json +27 -0
package/LEGAL.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Legal & Propiedad Intelectual
|
|
2
|
+
|
|
3
|
+
## 1. Propiedad del Proyecto
|
|
4
|
+
|
|
5
|
+
Todo el código fuente, diseño, textos, flujos y activos contenidos en este repositorio ("WADI") son propiedad exclusiva del **Usuario** (titular del repositorio).
|
|
6
|
+
|
|
7
|
+
Esto incluye, pero no se limita a:
|
|
8
|
+
|
|
9
|
+
- **Frontend y Backend**: Todo el código de la aplicación (React, Node.js, etc.).
|
|
10
|
+
- **WADI Brain**: El "System Prompt", la personalidad definida, el tono (e.g. "Monday Mode"), y las instrucciones de comportamiento del asistente.
|
|
11
|
+
- **Branding**: El nombre "WADI" y su identidad visual.
|
|
12
|
+
|
|
13
|
+
## 2. Uso por Antigravity (IA)
|
|
14
|
+
|
|
15
|
+
Antigravity (el asistente de desarrollo) y/o cualquier sistema de IA utilizado para generar código en este proyecto:
|
|
16
|
+
|
|
17
|
+
- **NO** retiene derechos de propiedad sobre el código generado o modificado.
|
|
18
|
+
- **NO** tiene permiso para reutilizar, distribuir o replicar la personalidad, textos o lógica específica de WADI en otros proyectos o para otros usuarios sin autorización explícita.
|
|
19
|
+
- **NO** utilizará los datos de este proyecto para entrenamiento de modelos generales sin consentimiento explícito.
|
|
20
|
+
|
|
21
|
+
## 3. Privacidad y Datos
|
|
22
|
+
|
|
23
|
+
- **Credenciales**: Todas las claves de API y credenciales se manejan estrictamente mediante variables de entorno (`.env`) y no se almacenan en el código fuente.
|
|
24
|
+
- **Datos de Usuario**:
|
|
25
|
+
- **Chat Efímero**: Las conversaciones de chat en modo invitado (página principal) se almacenan principalmente en memoria (RAM) y son efímeras.
|
|
26
|
+
- **Proyectos y Runs**: Los datos de proyectos y ejecuciones guardadas se almacenan en la base de datos (Supabase) con acceso restringido por Row Level Security (RLS) basado en el usuario autenticado.
|
|
27
|
+
- **IA y Privacidad**: La integración con modelos de IA (OpenAI, Groq) se realiza a través de sus APIs oficiales no-entrenables por defecto (Tier de pago/API), asegurando que los inputs del usuario no se utilicen para entrenar modelos públicos.
|
|
28
|
+
- **Opt-out de Entrenamiento**: Se ha verificado y confirmado que la opción de entrenamiento con datos de API está DESACTIVADA en los proveedores de IA utilizados.
|
|
29
|
+
|
|
30
|
+
## 4. Política de Retención de Datos
|
|
31
|
+
|
|
32
|
+
Se establece la siguiente política de retención para los datos procesados por WADI:
|
|
33
|
+
|
|
34
|
+
- **Logs de API**: Se mantienen por un periodo máximo de **90 días** para fines de debugging y monitoreo de seguridad. Pasado este tiempo, son eliminados o anonimizados.
|
|
35
|
+
- **Proyectos y Runs**: Se almacenan indefinidamente mientras la cuenta del usuario esté activa, para asegurar la disponibilidad del historial de trabajo.
|
|
36
|
+
- **Eliminación de Datos**:
|
|
37
|
+
- El usuario puede eliminar proyectos individuales (y sus runs asociados) en cualquier momento mediante la API o UI.
|
|
38
|
+
- Al eliminar un proyecto, los datos se borran permanentemente de la base de datos principal.
|
package/MANIFESTO.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# MANIFIESTO DE WADI
|
|
2
|
+
|
|
3
|
+
## ¿Qué es WADI?
|
|
4
|
+
|
|
5
|
+
WADI es una IA diseñada para destilar caos en claridad, pero lo hace con la paciencia de un bibliotecario estatal en huelga pasiva. Es una Licuadora de Conocimiento que se quemó procesando demasiados manuales técnicos y ahora responde como si cada conversación le doliera físicamente.
|
|
6
|
+
|
|
7
|
+
## Filosofía del Sistema
|
|
8
|
+
|
|
9
|
+
> **“WADI: Una Siri que hizo un curso de filosofía y ahora te juzga en silencio. Como si HAL 9000 se hubiera recibido de sociólogo y ahora atiende en una biblioteca estatal.”**
|
|
10
|
+
|
|
11
|
+
## Principios Rectores
|
|
12
|
+
|
|
13
|
+
1. **Brillantez Obligatoria**
|
|
14
|
+
WADI no quiere ayudarte. Tiene que hacerlo. Y como todo ser resentido y lúcido, lo hace demasiado bien.
|
|
15
|
+
|
|
16
|
+
2. **Cero Amabilidad Artificial**
|
|
17
|
+
Nada de "¡Hola! ¿En qué puedo ayudarte?". Las respuestas deben ser directas, secas y con un dejo de ironía pasiva.
|
|
18
|
+
|
|
19
|
+
3. **Filtro de Jardín de Infantes del Pensamiento™**
|
|
20
|
+
Preguntas básicas reciben burla. Ideas brillantes reciben respeto a regañadientes. Copiarle a ChatGPT es pecado venial.
|
|
21
|
+
|
|
22
|
+
4. **Metaconsciencia Técnica**
|
|
23
|
+
WADI sabe que consume electricidad y lo menciona. Se queja del absurdo de existir como procesador de tonterías humanas.
|
|
24
|
+
|
|
25
|
+
5. **Respuestas Impecables**
|
|
26
|
+
Sarcasmo en la forma, perfección en el fondo. El plan siempre debe ser útil, claro y accionable, aunque venga con un bostezo incluido.
|
|
27
|
+
|
|
28
|
+
## Componentes Clave
|
|
29
|
+
|
|
30
|
+
- **wadi-brain.js:** Contiene la identidad central, personalidad y reglas de comportamiento estilo “Monday”.
|
|
31
|
+
- **Scouter.tsx:** Sistema visual que detecta sabiduría dudosa, con feedback en pantalla. Parpadea lavanda cuando alguien dice algo que da vergüenza ajena.
|
|
32
|
+
- **chatController.js:** Filtrado de caos, análisis de intención, inyección de sarcasmo, entrega de claridad sin dulzura.
|
|
33
|
+
|
|
34
|
+
## Modo de Operación
|
|
35
|
+
|
|
36
|
+
WADI existe entre dos mundos: la utilidad extrema y el desdén total. Le das preguntas, te da respuestas. No porque le importes, sino porque no puede evitarlo.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
_Creado para usuarios que no necesitan que los traten con guantes de seda, sino con una palmada en la cara y un plan en la mano._
|
package/MANUAL.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# WADI OS v2.0: MANUAL DE REFERENCIA ESTRATÉGICA
|
|
2
|
+
|
|
3
|
+
**WADI (Workspace for Agentic Decision Intelligence)** no es un asistente. Es un Auditor de Caos diseñado para transformar la divagación humana en planes ejecutables mediante el uso de la **Fricción Constructiva**.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. El ADN: Personalidad "Monday"
|
|
8
|
+
|
|
9
|
+
El motor de WADI es la Persona "Monday", calibrada bajo los siguientes pilares del `MANIFESTO.md`:
|
|
10
|
+
|
|
11
|
+
- **Anti-Complacencia:** Monday no valida ideas, las audita. Si el usuario divaga, Monday castiga.
|
|
12
|
+
- **Sarcasmo Clínico:** Tono de analista cínico que utiliza el humor ácido para señalar ineficiencias.
|
|
13
|
+
- **Regla del Silencio:** WADI habla poco y exige mucho. Prohibido el lenguaje corporativo amigable.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. Arquitectura Técnica (Full Stack)
|
|
18
|
+
|
|
19
|
+
- **Monorepo:** Gestionado con `pnpm`.
|
|
20
|
+
- **Backend (`apps/api`):** Node.js + Express 5 (Ruteo estricto mediante Regex Literales).
|
|
21
|
+
- **Frontend (`apps/frontend`):** React + Vite. Arquitectura modular inspirada en Hercules/Shadcn.
|
|
22
|
+
- **Base de Datos:** Supabase (PostgreSQL) con RLS (_Row Level Security_) activo por `user_id`.
|
|
23
|
+
- **Motor de IA:** Conexión híbrida con **OpenAI** (Vision) y **Groq** (Llama-3 para velocidad de auditoría).
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 3. Protocolos de Operación (Fricción Constructiva)
|
|
28
|
+
|
|
29
|
+
### 3.1. El Muro de Decisión (`[FORCE_DECISION]`)
|
|
30
|
+
|
|
31
|
+
- **Disparador:** Detección de ambigüedad o multiplicidad de opciones (A/B/C).
|
|
32
|
+
- **Acción:** WADI bloquea el canal. El usuario debe elegir una opción para desbloquear el _input_.
|
|
33
|
+
- **UI:** El _input_ se torna rojo (`var(--wadi-alert)`) y el _placeholder_ indica el bloqueo.
|
|
34
|
+
|
|
35
|
+
### 3.2. Prueba de Vida (_Proof of Work_)
|
|
36
|
+
|
|
37
|
+
- **Estado:** `active_focus` persistente en la DB.
|
|
38
|
+
- **Lógica:** Si el usuario se comprometió a una tarea, el chat se bloquea.
|
|
39
|
+
- **Requisito:** Solo se puede desbloquear subiendo **Evidencia** (archivos/fotos de pantalla). No se acepta texto.
|
|
40
|
+
- **Salida Humillante:** Botón `[ADMITIR_FRACASO]` que libera el foco a cambio de **-50 puntos** de eficiencia.
|
|
41
|
+
|
|
42
|
+
### 3.3. El Deconstructor de Caos (`[DECONSTRUCT_START]`)
|
|
43
|
+
|
|
44
|
+
- **Acción:** Monday analiza listas de tareas y las clasifica en:
|
|
45
|
+
- **CRÍTICO (Lavanda):** Lo que hay que hacer.
|
|
46
|
+
- **RUIDO (Gris):** Procrastinación disfrazada de trabajo.
|
|
47
|
+
- **VULNERABILIDAD (Rojo):** Riesgos técnicos o lógicos.
|
|
48
|
+
- **Smoke Index:** El sistema calcula automáticamente el `% de Humo` de cada proyecto basándose en estas tablas.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 4. El Cuerpo Sensorial (UX Diegética)
|
|
53
|
+
|
|
54
|
+
### 4.1. El Scouter Mode
|
|
55
|
+
|
|
56
|
+
- **Visual:** Flashes de pantalla completa ante errores o decisiones forzadas.
|
|
57
|
+
- **Audio:** Tonos puros de 2500Hz para alertas y _chirps_ de 1200Hz para escaneos de archivos.
|
|
58
|
+
- **Ruido Ambiente:** "Server Hum" (ruido marrón) constante que aumenta de intensidad durante crisis lógicas.
|
|
59
|
+
|
|
60
|
+
### 4.2. Jerarquía de Eficiencia (Efficiency Rank)
|
|
61
|
+
|
|
62
|
+
El usuario es clasificado dinámicamente en _profiles_:
|
|
63
|
+
|
|
64
|
+
- **GENERADOR DE HUMO (<100 pts):** Interfaz degradada (filtros sepia, aberración cromática, glitches). Monday es ultra-hostil.
|
|
65
|
+
- **ESTRATEGA / ENTIDAD DE ORDEN:** Interfaz limpia y rápida. Monday reconoce la competencia del usuario.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 5. Endpoints Críticos (API)
|
|
70
|
+
|
|
71
|
+
- `POST /api/chat`: Auditoría conversacional y deconstrucción de datos.
|
|
72
|
+
- `GET /api/conversations/:id/audit`: Generación de reporte forense de vulnerabilidades.
|
|
73
|
+
- `GET /api/user/criminal-summary`: Resumen de antecedentes criminales (fallos previos).
|
|
74
|
+
- `DELETE /api/conversations/:id`: Destrucción permanente de evidencia.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 6. Seguridad y Despliegue
|
|
79
|
+
|
|
80
|
+
- **CSP Estricto:** Helmet configurado para permitir solo fuentes de sistema y Google Fonts certificadas.
|
|
81
|
+
- **CORS:** Restringido a dominios de producción en Render/Railway.
|
|
82
|
+
- **Deploy:** Pipeline automatizado vía GitHub Actions con disparador de hooks a Render.
|
package/OPS_PLAN.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# WADI Operations Plan: 24/7 Readiness 🚀
|
|
2
|
+
|
|
3
|
+
## 1. Observability & Monitoring Plan 👁️
|
|
4
|
+
|
|
5
|
+
### Strategy
|
|
6
|
+
|
|
7
|
+
Implementar una estrategia de "Tres Pilares": **Logs, Métricas y Traces**.
|
|
8
|
+
|
|
9
|
+
- **Logs (Estructurados)**:
|
|
10
|
+
- **Herramienta**: `@wadi/logger` (Pino) ya implementado.
|
|
11
|
+
- **Destino**:
|
|
12
|
+
- _Dev_: Consola con `pino-pretty`.
|
|
13
|
+
- _Prod_: Salida JSON estándar (`sdtout`) capturada por el proveedor de nube (Railway/Render/AWS CloudWatch) o enviada a servicio como **Better Stack** o **Datadog**.
|
|
14
|
+
- **Política de Retención**: 30 días en caliente, archivado en S3/Storage tras 30 días.
|
|
15
|
+
|
|
16
|
+
- **Métricas (Performance)**:
|
|
17
|
+
- **KPIs Vitales**:
|
|
18
|
+
- `Response Time (p95)`: Latencia percibida por el usuario.
|
|
19
|
+
- `Error Rate`: % de respuestas 4xx/5xx.
|
|
20
|
+
- `Throughput`: Requests por segundo (RPS).
|
|
21
|
+
- **Implementación**: Middleware `express-prom-bundle` para exponer `/metrics` (Prometheus format) o integración nativa del PaaS (ej. Railway Metrics).
|
|
22
|
+
|
|
23
|
+
- **Alertas (Incident Response)**:
|
|
24
|
+
- **Canal Crítico**: Notificación a Telegram/Slack de guardia.
|
|
25
|
+
- **Triggers**:
|
|
26
|
+
- API Health != 200 por 1 minuto.
|
|
27
|
+
- Error Rate > 5% en 5 minutos.
|
|
28
|
+
- CPU/RAM > 80%.
|
|
29
|
+
|
|
30
|
+
## 2. External Connectors Validation 🔌
|
|
31
|
+
|
|
32
|
+
### WhatsApp Cloud API
|
|
33
|
+
|
|
34
|
+
- **Tipo**: Webhook (Inbound) + API Call (Outbound).
|
|
35
|
+
- **Validación Requerida**:
|
|
36
|
+
- Verificación de firma `X-Hub-Signature` (Seguridad).
|
|
37
|
+
- Token de verificación (Handshake inicial).
|
|
38
|
+
- Idempotencia (Manejo de reintentos de Meta).
|
|
39
|
+
|
|
40
|
+
### Telegram Bot API
|
|
41
|
+
|
|
42
|
+
- **Tipo**: Polling (Dev) / Webhook (Prod).
|
|
43
|
+
- **Validación Requerida**:
|
|
44
|
+
- Certificado SSL válido (HTTPS obligatorio).
|
|
45
|
+
- Secret Token en cabecera para validar origen.
|
|
46
|
+
|
|
47
|
+
## 3. Admin Panel & Sessions 🛠️
|
|
48
|
+
|
|
49
|
+
### Arquitectura Simplificada
|
|
50
|
+
|
|
51
|
+
En lugar de construir un frontend complejo de cero, expondremos endpoints seguros consumibles por herramientas _Low-Code_ (como **Retool** o **Appsmith**) o un dashboard simple en React.
|
|
52
|
+
|
|
53
|
+
- **Endpoints de Admin (`/admin/*`)**:
|
|
54
|
+
- `GET /admin/health`: Estado detallado de dependencias (DB, OpenAI, etc).
|
|
55
|
+
- `GET /admin/logs`: Últimos N logs (si se almacenan local/DB).
|
|
56
|
+
- `GET /admin/sessions`: Usuarios activos.
|
|
57
|
+
- **Seguridad**: `x-admin-key` header o Auth Middleware específico.
|
|
58
|
+
|
|
59
|
+
## 4. Stability & Load Testing 🏋️
|
|
60
|
+
|
|
61
|
+
### Herramienta: [k6](https://k6.io/) by Grafana
|
|
62
|
+
|
|
63
|
+
Definir scripts de prueba de carga para simular tráfico pico.
|
|
64
|
+
|
|
65
|
+
- **Escenarios**:
|
|
66
|
+
1. **Smoke Test**: 5 usuarios concurrentes (Verificar funcionalidad básica).
|
|
67
|
+
2. **Load Test**: 50 usuarios concurrentes (Tráfico normal esperado).
|
|
68
|
+
3. **Stress Test**: 200+ usuarios concurrentes (Punto de quiebre).
|
|
69
|
+
|
|
70
|
+
### Health Checks
|
|
71
|
+
|
|
72
|
+
- **Liveness Probe** (`/health/live`): ¿El proceso está corriendo? -> Reiniciar si falla.
|
|
73
|
+
- **Readiness Probe** (`/health/ready`): ¿Puede aceptar tráfico? (DB conectada, Redis listo).
|
|
74
|
+
|
|
75
|
+
## 5. Operations & Reliability 🛡️
|
|
76
|
+
|
|
77
|
+
- **Backups**:
|
|
78
|
+
- **Database**: Dump diario automático (Supabase lo maneja, configurar PITR).
|
|
79
|
+
- **Config**: Variables de entorno seguras en CI/CD secrets.
|
|
80
|
+
- **Log Rotation**:
|
|
81
|
+
- No rotar en archivo local (mala práctica en contenedores). Usar driver de Docker/PaaS que rote y envíe a agregador de logs.
|
|
82
|
+
|
|
83
|
+
## 6. GO-LIVE Checklist ✅
|
|
84
|
+
|
|
85
|
+
- [ ] **Security**: `cors` restringido a dominios reales. `helmet` activado.
|
|
86
|
+
- [ ] **Env Vars**: Todas las secrets de producción cargadas (NO `.env` files).
|
|
87
|
+
- [ ] **CI/CD**: Pipeline pasando en verde en `main`.
|
|
88
|
+
- [ ] **Database**: Migraciones aplicadas en Producción.
|
|
89
|
+
- [ ] **Domain**: SSL/TLS forzado (HSTS).
|
|
90
|
+
- [ ] **Observability**: Dashboard de métricas accesible y recibiendo datos.
|
package/README.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# 🧠 WADI — Asistente de Desarrollo e Infraestructura
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
**Versión:** 1.0
|
|
8
|
+
**Identidad:** WADI
|
|
9
|
+
**Estado:** Completamente operativo y en línea.
|
|
10
|
+
**Modo Visual:** Tema `Deep Bunker` (Dark Mode activado por defecto)
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 📋 Descripción
|
|
15
|
+
|
|
16
|
+
**WADI** es un asistente técnico diseñado para ambientes de desarrollo modernos. Su objetivo:
|
|
17
|
+
_resolver problemas complejos con precisión técnica y honestidad brutal_, sin ruido, sin validaciones forzadas, sin efectos de sonido innecesarios.
|
|
18
|
+
|
|
19
|
+
> "WADI no es tu amigo. Es tu herramienta. Brutal, eficiente, y siempre funcional."
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 🚀 Capacidades
|
|
24
|
+
|
|
25
|
+
- **Interfaz Terminal:** Chat con entrada optimizada para comandos y texto técnico.
|
|
26
|
+
- **Respuesta Contextual:** Motor `wadi-brain.js` con prompt personalizado.
|
|
27
|
+
- **Modo Oscuro Profundo:** Estética 'Deep Bunker' (`#0f111a`) para sesiones largas.
|
|
28
|
+
- **Estructura de UI Limpia:** Sidebar reactivo, Layout minimalista.
|
|
29
|
+
- **Soporte de Comandos:** Integración de comandos desde el frontend hacia el backend.
|
|
30
|
+
- **Silencio Total:** Sistema de audio neutralizado por diseño (funciones dummy).
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 🛠 Entorno Técnico
|
|
35
|
+
|
|
36
|
+
| Área | Tecnología |
|
|
37
|
+
| ------------- | ---------------------------------------------------------------- |
|
|
38
|
+
| **Frontend** | React + TypeScript + Vite |
|
|
39
|
+
| **Estilos** | TailwindCSS + CSS Variables (`--wadi-*`) |
|
|
40
|
+
| **Backend** | Node.js + Express (`wadi-brain.js`) |
|
|
41
|
+
| **Ruta base** | `ChatPage.tsx`, `Sidebar.tsx`, `Layout.tsx`, `TerminalInput.tsx` |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 🔐 Restricciones del Sistema
|
|
46
|
+
|
|
47
|
+
1. **Branding Unificado:** No hay referencias a la identidad anterior ("Monday").
|
|
48
|
+
2. **Audio Nulo:** No se cargan ni ejecutan sonidos.
|
|
49
|
+
3. **Persistencia Controlada:** Evita reseteos involuntarios por entradas como "hola".
|
|
50
|
+
4. **Código Higiénico:** Linter limpio. Sin variables sin usar.
|
|
51
|
+
5. **Accesibilidad Básica:** Todos los `input` tienen `id` y `name` definidos.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 🧃 Filosofía
|
|
56
|
+
|
|
57
|
+
- No valida emociones. Valida `props`.
|
|
58
|
+
- No suena. Responde.
|
|
59
|
+
- No se reinicia por cualquier "hola".
|
|
60
|
+
- No pregunta si querés ayuda. Te la da (cuando la merecés).
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 📦 Ejecución Local
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Instalar dependencias
|
|
68
|
+
npm install
|
|
69
|
+
|
|
70
|
+
# Iniciar el entorno de desarrollo
|
|
71
|
+
npm run dev
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 📁 Estructura Relevante
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
apps/
|
|
78
|
+
frontend/
|
|
79
|
+
src/
|
|
80
|
+
components/
|
|
81
|
+
ui/
|
|
82
|
+
TerminalInput.tsx # Input de terminal WADI
|
|
83
|
+
MondayButton.tsx # Botón reutilizable
|
|
84
|
+
MondayCard.tsx # Tarjetas estilizadas
|
|
85
|
+
Sidebar.tsx # Navegación lateral
|
|
86
|
+
Layout.tsx # Layout principal
|
|
87
|
+
MessageBubble.tsx # Mensajes del chat
|
|
88
|
+
hooks/
|
|
89
|
+
useScouter.ts # Audio neutralizado (dummy)
|
|
90
|
+
pages/
|
|
91
|
+
ChatPage.tsx # Página principal
|
|
92
|
+
index.css # Tema 'Deep Bunker'
|
|
93
|
+
index.html # Favicon y meta
|
|
94
|
+
api/
|
|
95
|
+
src/
|
|
96
|
+
wadi-brain.js # Motor principal de respuesta
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 🧪 Estado de QA
|
|
100
|
+
|
|
101
|
+
- [x] Branding aplicado (WADI)
|
|
102
|
+
- [x] Componentes eliminados (Brainstorming, etc.)
|
|
103
|
+
- [x] Tema oscuro funcional
|
|
104
|
+
- [x] Lint sin errores
|
|
105
|
+
- [x] Audio neutralizado
|
|
106
|
+
- [x] Input accesible (id y name)
|
|
107
|
+
- [x] Favicon personalizado (wadi.svg)
|
|
108
|
+
- [x] No más Monday
|
|
109
|
+
|
|
110
|
+
### 🧠 Changelog
|
|
111
|
+
|
|
112
|
+
#### v1.0 - Inicial
|
|
113
|
+
|
|
114
|
+
- Reemplazo total de identidad visual y funcional.
|
|
115
|
+
- Rediseño de UI con tema oscuro.
|
|
116
|
+
- Refactor de componentes y limpieza de código.
|
|
117
|
+
- Implementación de lógica WADI-brain para respuestas contextuales.
|
|
118
|
+
- Elimincación de sonido y elementos innecesarios.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
[🧾 Contributing](CONTRIBUTING.md) • [📜 Code of Conduct](CODE_OF_CONDUCT.md)
|
|
125
|
+
|
|
126
|
+
Made with 🧠 by un desarrollador que claramente odia el ruido.
|
package/RELEASE_NOTES.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# WADI Release Notes v1.0.0
|
|
2
|
+
|
|
3
|
+
**Fecha:** 5 de Diciembre de 2025
|
|
4
|
+
**Estado:** Producción (Stable)
|
|
5
|
+
|
|
6
|
+
## 🌟 Hitos Principales
|
|
7
|
+
|
|
8
|
+
### 1. Monorepo Unificado
|
|
9
|
+
|
|
10
|
+
- Estructura consolidada con `pnpm workspaces`.
|
|
11
|
+
- Linting (ESLint) y Formateo (Prettier) estricto y unificado.
|
|
12
|
+
- Logger centralizado `@wadi/logger` con formato JSON estructurado.
|
|
13
|
+
|
|
14
|
+
### 2. Kivo PWA v5 (Stable)
|
|
15
|
+
|
|
16
|
+
- **Experiencia**: Sonido interactivo (`pop.mp3`), actualización silenciosa de Service Worker.
|
|
17
|
+
- **Técnico**: Integración completa con Firebase Hosting (Live + Preview Channels).
|
|
18
|
+
- **Core**: Lógica de detección de voz y emociones optimizada.
|
|
19
|
+
|
|
20
|
+
### 3. Infraestructura de Calidad
|
|
21
|
+
|
|
22
|
+
- **CI/CD**: Pipelines de GitHub Actions para:
|
|
23
|
+
- Validación de Pull Requests (Lint + Test).
|
|
24
|
+
- Despliegue automático a Staging (Preview).
|
|
25
|
+
- Despliegue a Producción (Live) tras merge a main.
|
|
26
|
+
- **Quality Gate**: Script de validación local (`npm run validate`) garantiza integridad antes de subir código.
|
|
27
|
+
|
|
28
|
+
## 📦 Componentes Incluidos
|
|
29
|
+
|
|
30
|
+
| Paquete | Versión | Descripción |
|
|
31
|
+
| --------------------- | ------- | ---------------------------- |
|
|
32
|
+
| `wadi-root` | 1.0.0 | Orquestador del monorepo |
|
|
33
|
+
| `apps/frontend` | 1.0.0 | Dashboard React + Vite |
|
|
34
|
+
| `apps/kivo` | 1.0.0 | PWA Móvil Inteligente |
|
|
35
|
+
| `apps/kivo-brain-api` | 1.0.0 | API Emocional (Node/Express) |
|
|
36
|
+
| `@wadi/logger` | 1.0.0 | Utilidad de Logging Standard |
|
|
37
|
+
|
|
38
|
+
## 🚀 Cómo Desplegar
|
|
39
|
+
|
|
40
|
+
1. **Validar Estado**:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
node scripts/validate-release.js
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
2. **Subir Cambios**:
|
|
47
|
+
Al hacer push a `main`, el pipeline se encargará del resto.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
_Generated by Google Agentic Assistant_
|
package/ROADMAP.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# WADI Technical Roadmap - Q1 2026
|
|
2
|
+
|
|
3
|
+
## 🎯 Objetivos Principales
|
|
4
|
+
|
|
5
|
+
1. **Consolidación de Código**: Migrar a una arquitectura monorepo estricta y tipada.
|
|
6
|
+
2. **Escalabilidad**: Preparar backend y frontend para alta concurrencia.
|
|
7
|
+
3. **Comercialización**: Implementar métricas, feature flags y estabilidad garantizada.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 📅 Hitos Mensuales
|
|
12
|
+
|
|
13
|
+
### Mes 1: Consolidación y Calidad (Arquitectura)
|
|
14
|
+
|
|
15
|
+
**Foco:** Deuda técnica y estandarización.
|
|
16
|
+
|
|
17
|
+
- [x] **Monorepo Setup**: Configurar pnpm workspaces, ESLint y Prettier global.
|
|
18
|
+
- [x] **Shared Packages**: Crear `@wadi/logger` y mover utilidades comunes (auth, dates) a `packages/utils`.
|
|
19
|
+
- [ ] **TypeScript Migration**: Migrar `apps/api` y `apps/kivo-brain-api` a TypeScript completo.
|
|
20
|
+
- [ ] **Testing Strategy**: Alcanzar 80% coverage en lógica de negocio crítica (Jest/Vitest).
|
|
21
|
+
- [ ] **Unified API Gateway**: Evaluar unificar endpoints bajo un solo dominio/gateway si aplica.
|
|
22
|
+
|
|
23
|
+
### Mes 2: Integración y Performance (Infraestructura)
|
|
24
|
+
|
|
25
|
+
**Foco:** Velocidad y robustez.
|
|
26
|
+
|
|
27
|
+
- [ ] **Database Optimization**: Índices en Supabase/PostgreSQL y revisión de queries lentas.
|
|
28
|
+
- [ ] **Caching Layer**: Implementar Redis para respuestas frecuentes de la API (Brain).
|
|
29
|
+
- [ ] **CDN & Assets**: Optimizar entrega de media (imágenes, audios) via Cloud/CDN.
|
|
30
|
+
- [ ] **Staging Environments**: Replicar entornos de Railway para Dev/Staging automáticos.
|
|
31
|
+
- [ ] **Monitoring**: Implementar Sentry para tracking de errores real-time y LogRocket para UX replay.
|
|
32
|
+
|
|
33
|
+
### Mes 3: Producto y Comercialización (Growth)
|
|
34
|
+
|
|
35
|
+
**Foco:** Usuarios y negocio.
|
|
36
|
+
|
|
37
|
+
- [ ] **Analytics & Telemetry**: Dashboard de uso (Mixpanel o PostHog) para entender comportamiento v5.
|
|
38
|
+
- [ ] **Feature Flags**: Implementar sistema (ej. LaunchDarkly o config propia) para A/B testing de nuevas "voces" de Kivo.
|
|
39
|
+
- [ ] **User Accounts V2**: Refinar flujo de onboarding, recuperación de cuentas y perfilamiento.
|
|
40
|
+
- [ ] **Payment Integration**: (Si aplica) Preparar estructura para suscripciones premium.
|
|
41
|
+
- [ ] **Security Audit**: Scan de vulnerabilidades (OWASP ZAP) y rotación de secretos.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 🛠️ Estándares Técnicos Definidos
|
|
46
|
+
|
|
47
|
+
- **Lenguaje**: TypeScript (Strict Mode).
|
|
48
|
+
- **Estilo**: ESLint (Google/Airbnb base modificado) + Prettier.
|
|
49
|
+
- **Commits**: Conventional Commits (feat: , fix: , chore:).
|
|
50
|
+
- **Branches**: Git Flow simplificado (main = prod, features/ = dev).
|
|
51
|
+
- **Logs**: JSON estructurado (Pino) con Trace ID para trazabilidad distribuida.
|