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.
Files changed (294) hide show
  1. package/.agent/workflows/auto_sync.md +19 -0
  2. package/.agent/workflows/kivo_pipeline.md +27 -0
  3. package/.devcontainer/devcontainer.json +27 -0
  4. package/.github/workflows/kivo-cicd.yml +45 -0
  5. package/.github/workflows/monorepo-ci.yml +51 -0
  6. package/.github/workflows/wadi-ci.yml +38 -0
  7. package/.husky/pre-commit +2 -0
  8. package/.prettierignore +12 -0
  9. package/.prettierrc +9 -0
  10. package/.vscode/settings.json +19 -0
  11. package/CHANGELOG.md +56 -0
  12. package/CODE_OF_CONDUCT.md +43 -0
  13. package/CONTRIBUTING.md +42 -0
  14. package/DEPLOY_GUIDE.md +143 -0
  15. package/GO_LIVE_CHECKLIST.md +41 -0
  16. package/GO_LIVE_COMPLETE_REPORT.md +58 -0
  17. package/GO_LIVE_VALIDATION.md +39 -0
  18. package/LEGAL.md +38 -0
  19. package/MANIFESTO.md +40 -0
  20. package/MANUAL.md +82 -0
  21. package/OPS_PLAN.md +90 -0
  22. package/README.md +126 -0
  23. package/RELEASE_NOTES.md +51 -0
  24. package/ROADMAP.md +51 -0
  25. package/api_listado.txt +2197 -0
  26. package/apps/api/WADI_PROTOCOL.md +52 -0
  27. package/apps/api/debug-brain.js +11 -0
  28. package/apps/api/package.json +21 -0
  29. package/apps/api/src/core/analisis.js +17 -0
  30. package/apps/api/src/core/errors.js +31 -0
  31. package/apps/api/src/core/logger.js +32 -0
  32. package/apps/api/src/core/prompt-kivo.js +62 -0
  33. package/apps/api/src/index.js +212 -0
  34. package/apps/api/src/layers/human_pattern/composeResponse.js +35 -0
  35. package/apps/api/src/layers/human_pattern/detectPattern.js +39 -0
  36. package/apps/api/src/layers/human_pattern/heuristics.js +28 -0
  37. package/apps/api/src/layers/human_pattern/index.js +28 -0
  38. package/apps/api/src/layers/human_pattern/socialMemory.js +35 -0
  39. package/apps/api/src/middleware/errorHandler.js +24 -0
  40. package/apps/api/src/middleware/rateLimiter.js +38 -0
  41. package/apps/api/src/middleware/requestLogger.js +31 -0
  42. package/apps/api/src/middleware/upload.js +21 -0
  43. package/apps/api/src/middleware/validation.js +70 -0
  44. package/apps/api/src/modules/data.js +25 -0
  45. package/apps/api/src/modules/marketing.js +54 -0
  46. package/apps/api/src/modules/projects.js +40 -0
  47. package/apps/api/src/openai.js +16 -0
  48. package/apps/api/src/preferences/index.js +20 -0
  49. package/apps/api/src/register_user.js +22 -0
  50. package/apps/api/src/routes/kivo.js +58 -0
  51. package/apps/api/src/routes/monitoring.js +55 -0
  52. package/apps/api/src/routes.js +656 -0
  53. package/apps/api/src/supabase.js +17 -0
  54. package/apps/api/src/tools/index.js +57 -0
  55. package/apps/api/src/wadi-brain.js +171 -0
  56. package/apps/api/supabase/migrations/20251218_audit_logs.sql +27 -0
  57. package/apps/api/supabase/migrations/v2-chat-persistence.sql +83 -0
  58. package/apps/api/supabase/migrations/v3-cascade-delete.sql +11 -0
  59. package/apps/api/supabase/migrations/v3-security-fix.sql +90 -0
  60. package/apps/api/supabase/migrations/v3-storage.sql +36 -0
  61. package/apps/api/supabase/migrations/v4-gamification.sql +83 -0
  62. package/apps/api/supabase/migrations/v5-smoke-index.sql +6 -0
  63. package/apps/api/supabase/migrations/v6-schema-integrity-fix.sql +98 -0
  64. package/apps/api/supabase/migrations/v7-performance-indexes.sql +5 -0
  65. package/apps/api/supabase/migrations/v7-security-hardening.sql +132 -0
  66. package/apps/api/supabase/migrations/v8-security-hardening.sql +79 -0
  67. package/apps/api/test_human_pattern.js +30 -0
  68. package/apps/api/test_human_pattern_vague.js +30 -0
  69. package/apps/api/test_output.txt +76 -0
  70. package/apps/api/test_vague.js +30 -0
  71. package/apps/api/test_vague_block.js +30 -0
  72. package/apps/api/test_wadi.js +31 -0
  73. package/apps/api/tsconfig.json +13 -0
  74. package/apps/frontend/.env.local +3 -0
  75. package/apps/frontend/README.md +73 -0
  76. package/apps/frontend/eslint.config.js +27 -0
  77. package/apps/frontend/index.html +49 -0
  78. package/apps/frontend/package.json +41 -0
  79. package/apps/frontend/postcss.config.cjs +6 -0
  80. package/apps/frontend/public/cursors/wadi-neutral.svg +1 -0
  81. package/apps/frontend/public/cursors/wadi-select.svg +1 -0
  82. package/apps/frontend/public/icon-192.svg +1 -0
  83. package/apps/frontend/public/icon-512.svg +1 -0
  84. package/apps/frontend/public/manifest.webmanifest +23 -0
  85. package/apps/frontend/public/sw.js +57 -0
  86. package/apps/frontend/public/vite.svg +1 -0
  87. package/apps/frontend/public/wadi.svg +5 -0
  88. package/apps/frontend/src/assets/react.svg +1 -0
  89. package/apps/frontend/src/components/AuthLoader.tsx +50 -0
  90. package/apps/frontend/src/components/ChatInput.tsx +272 -0
  91. package/apps/frontend/src/components/ChatInterface.tsx +202 -0
  92. package/apps/frontend/src/components/ErrorBoundary.tsx +52 -0
  93. package/apps/frontend/src/components/InputArea.tsx +201 -0
  94. package/apps/frontend/src/components/Layout.tsx +73 -0
  95. package/apps/frontend/src/components/MessageBubble.tsx +66 -0
  96. package/apps/frontend/src/components/OnboardingModal.tsx +108 -0
  97. package/apps/frontend/src/components/SettingsModal.tsx +187 -0
  98. package/apps/frontend/src/components/Sidebar.tsx +171 -0
  99. package/apps/frontend/src/components/WadiOnboarding.tsx +71 -0
  100. package/apps/frontend/src/components/auditor/AuditReport.tsx +166 -0
  101. package/apps/frontend/src/components/auditor/AuditorHeader.tsx +34 -0
  102. package/apps/frontend/src/components/auditor/ContextPanel.tsx +138 -0
  103. package/apps/frontend/src/components/auditor/DataDeconstructor.tsx +85 -0
  104. package/apps/frontend/src/components/auditor/DecisionWall.tsx +65 -0
  105. package/apps/frontend/src/components/auditor/Dropzone.tsx +137 -0
  106. package/apps/frontend/src/components/common/Button.tsx +97 -0
  107. package/apps/frontend/src/components/common/Card.tsx +43 -0
  108. package/apps/frontend/src/components/common/Input.tsx +73 -0
  109. package/apps/frontend/src/components/common/Modal.tsx +53 -0
  110. package/apps/frontend/src/components/ui/Button.tsx +68 -0
  111. package/apps/frontend/src/components/ui/Card.tsx +86 -0
  112. package/apps/frontend/src/components/ui/Input.tsx +28 -0
  113. package/apps/frontend/src/components/ui/LogItem.tsx +64 -0
  114. package/apps/frontend/src/components/ui/MondayButton.tsx +40 -0
  115. package/apps/frontend/src/components/ui/MondayCard.tsx +24 -0
  116. package/apps/frontend/src/components/ui/Scouter.tsx +208 -0
  117. package/apps/frontend/src/components/ui/TerminalInput.tsx +202 -0
  118. package/apps/frontend/src/components/ui/Tooltip.tsx +67 -0
  119. package/apps/frontend/src/config/chatShortcuts.ts +20 -0
  120. package/apps/frontend/src/config/supabase.ts +6 -0
  121. package/apps/frontend/src/final_status.txt +3 -0
  122. package/apps/frontend/src/hooks/useScouter.ts +28 -0
  123. package/apps/frontend/src/hooks/useStoreHydration.ts +24 -0
  124. package/apps/frontend/src/improvement_status.txt +5 -0
  125. package/apps/frontend/src/index.css +88 -0
  126. package/apps/frontend/src/main.tsx +62 -0
  127. package/apps/frontend/src/monday_status.txt +7 -0
  128. package/apps/frontend/src/pages/ChatPage.tsx +201 -0
  129. package/apps/frontend/src/pages/DashboardPage.tsx +375 -0
  130. package/apps/frontend/src/pages/IntroWadi.tsx +114 -0
  131. package/apps/frontend/src/pages/LandingPage.tsx +103 -0
  132. package/apps/frontend/src/pages/Login.tsx +190 -0
  133. package/apps/frontend/src/pages/PrivacyPage.tsx +213 -0
  134. package/apps/frontend/src/pages/ProjectDetail.tsx +80 -0
  135. package/apps/frontend/src/pages/Projects.tsx +247 -0
  136. package/apps/frontend/src/pages/TermsPage.tsx +202 -0
  137. package/apps/frontend/src/router.tsx +83 -0
  138. package/apps/frontend/src/store/authStore.ts +152 -0
  139. package/apps/frontend/src/store/chatStore.ts +837 -0
  140. package/apps/frontend/src/store/documentStore.ts +89 -0
  141. package/apps/frontend/src/store/projectsStore.ts +111 -0
  142. package/apps/frontend/src/store/runsStore.ts +98 -0
  143. package/apps/frontend/src/utils/api.ts +34 -0
  144. package/apps/frontend/src/vite-env.d.ts +7 -0
  145. package/apps/frontend/tailwind.config.cjs +32 -0
  146. package/apps/frontend/tsconfig.app.json +27 -0
  147. package/apps/frontend/tsconfig.json +7 -0
  148. package/apps/frontend/tsconfig.node.json +26 -0
  149. package/apps/frontend/vite.config.ts +25 -0
  150. package/apps/kivo/.firebase/hosting.d3d3.cache +11 -0
  151. package/apps/kivo/.firebaserc +5 -0
  152. package/apps/kivo/BRANDING_GUIDE.md +71 -0
  153. package/apps/kivo/DEPLOYMENT_READY.md +46 -0
  154. package/apps/kivo/DEPLOY_URL.md +12 -0
  155. package/apps/kivo/IMPLEMENTATION_REPORT.md +35 -0
  156. package/apps/kivo/IMPLEMENTATION_REPORT_FINAL.md +49 -0
  157. package/apps/kivo/PLAN_MOBILE_2.0.md +44 -0
  158. package/apps/kivo/PWA_VERIFICATION_GUIDE.md +77 -0
  159. package/apps/kivo/README.md +28 -0
  160. package/apps/kivo/REBUILD_REPORT.md +34 -0
  161. package/apps/kivo/UPGRADE_REPORT.md +35 -0
  162. package/apps/kivo/android/app/build.gradle +54 -0
  163. package/apps/kivo/android/app/capacitor.build.gradle +19 -0
  164. package/apps/kivo/android/app/proguard-rules.pro +21 -0
  165. package/apps/kivo/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +26 -0
  166. package/apps/kivo/android/app/src/main/AndroidManifest.xml +35 -0
  167. package/apps/kivo/android/app/src/main/java/com/kivo/app/MainActivity.java +5 -0
  168. package/apps/kivo/android/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
  169. package/apps/kivo/android/app/src/main/res/drawable/splash.png +0 -0
  170. package/apps/kivo/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
  171. package/apps/kivo/android/app/src/main/res/drawable-land-ldpi/splash.png +0 -0
  172. package/apps/kivo/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
  173. package/apps/kivo/android/app/src/main/res/drawable-land-night-hdpi/splash.png +0 -0
  174. package/apps/kivo/android/app/src/main/res/drawable-land-night-ldpi/splash.png +0 -0
  175. package/apps/kivo/android/app/src/main/res/drawable-land-night-mdpi/splash.png +0 -0
  176. package/apps/kivo/android/app/src/main/res/drawable-land-night-xhdpi/splash.png +0 -0
  177. package/apps/kivo/android/app/src/main/res/drawable-land-night-xxhdpi/splash.png +0 -0
  178. package/apps/kivo/android/app/src/main/res/drawable-land-night-xxxhdpi/splash.png +0 -0
  179. package/apps/kivo/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
  180. package/apps/kivo/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
  181. package/apps/kivo/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
  182. package/apps/kivo/android/app/src/main/res/drawable-night/splash.png +0 -0
  183. package/apps/kivo/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
  184. package/apps/kivo/android/app/src/main/res/drawable-port-ldpi/splash.png +0 -0
  185. package/apps/kivo/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
  186. package/apps/kivo/android/app/src/main/res/drawable-port-night-hdpi/splash.png +0 -0
  187. package/apps/kivo/android/app/src/main/res/drawable-port-night-ldpi/splash.png +0 -0
  188. package/apps/kivo/android/app/src/main/res/drawable-port-night-mdpi/splash.png +0 -0
  189. package/apps/kivo/android/app/src/main/res/drawable-port-night-xhdpi/splash.png +0 -0
  190. package/apps/kivo/android/app/src/main/res/drawable-port-night-xxhdpi/splash.png +0 -0
  191. package/apps/kivo/android/app/src/main/res/drawable-port-night-xxxhdpi/splash.png +0 -0
  192. package/apps/kivo/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
  193. package/apps/kivo/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
  194. package/apps/kivo/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
  195. package/apps/kivo/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +34 -0
  196. package/apps/kivo/android/app/src/main/res/layout/activity_main.xml +12 -0
  197. package/apps/kivo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +9 -0
  198. package/apps/kivo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +9 -0
  199. package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  200. package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png +0 -0
  201. package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  202. package/apps/kivo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  203. package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher.png +0 -0
  204. package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png +0 -0
  205. package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png +0 -0
  206. package/apps/kivo/android/app/src/main/res/mipmap-ldpi/ic_launcher_round.png +0 -0
  207. package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  208. package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png +0 -0
  209. package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  210. package/apps/kivo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  211. package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  212. package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png +0 -0
  213. package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  214. package/apps/kivo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  215. package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  216. package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png +0 -0
  217. package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  218. package/apps/kivo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  219. package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  220. package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png +0 -0
  221. package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  222. package/apps/kivo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  223. package/apps/kivo/android/app/src/main/res/values/ic_launcher_background.xml +4 -0
  224. package/apps/kivo/android/app/src/main/res/values/strings.xml +7 -0
  225. package/apps/kivo/android/app/src/main/res/values/styles.xml +22 -0
  226. package/apps/kivo/android/app/src/main/res/xml/file_paths.xml +5 -0
  227. package/apps/kivo/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +18 -0
  228. package/apps/kivo/android/build.gradle +29 -0
  229. package/apps/kivo/android/capacitor.settings.gradle +3 -0
  230. package/apps/kivo/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  231. package/apps/kivo/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  232. package/apps/kivo/android/gradle.properties +22 -0
  233. package/apps/kivo/android/gradlew +252 -0
  234. package/apps/kivo/android/gradlew.bat +94 -0
  235. package/apps/kivo/android/settings.gradle +5 -0
  236. package/apps/kivo/android/variables.gradle +16 -0
  237. package/apps/kivo/assets/icon.png +0 -0
  238. package/apps/kivo/assets/splash.png +0 -0
  239. package/apps/kivo/capacitor.config.json +16 -0
  240. package/apps/kivo/firebase.json +6 -0
  241. package/apps/kivo/jest.config.js +4 -0
  242. package/apps/kivo/package.json +26 -0
  243. package/apps/kivo/tests_disabled/logic.test.js +34 -0
  244. package/apps/kivo/www/assets/icon-192.png +0 -0
  245. package/apps/kivo/www/assets/icon-512.png +0 -0
  246. package/apps/kivo/www/assets/kivo-icon.png +0 -0
  247. package/apps/kivo/www/assets/pop.mp3 +0 -0
  248. package/apps/kivo/www/favicon.ico +0 -0
  249. package/apps/kivo/www/firebase-config.js +75 -0
  250. package/apps/kivo/www/index.html +38 -0
  251. package/apps/kivo/www/manifest.json +29 -0
  252. package/apps/kivo/www/script.js +72 -0
  253. package/apps/kivo/www/style.css +82 -0
  254. package/apps/kivo/www/sw.js +46 -0
  255. package/apps/kivo-brain-api/.env.example +2 -0
  256. package/apps/kivo-brain-api/KIVO_BACKEND_SETUP.md +27 -0
  257. package/apps/kivo-brain-api/controllers/kivoController.js +31 -0
  258. package/apps/kivo-brain-api/index.js +24 -0
  259. package/apps/kivo-brain-api/package.json +17 -0
  260. package/apps/kivo-brain-api/routes/message.js +8 -0
  261. package/apps/kivo-brain-api/services/openaiService.js +64 -0
  262. package/apps/tests/wadi-tests.js +155 -0
  263. package/apps/wadi-brain/docs/README_REMOVE_OPTIONS.md +26 -0
  264. package/cli/commands/deploy.js +10 -0
  265. package/cli/commands/docs.js +16 -0
  266. package/cli/commands/explain.js +29 -0
  267. package/cli/commands/lint.js +14 -0
  268. package/cli/index.js +26 -0
  269. package/cli/package.json +12 -0
  270. package/docs/CNAME +1 -0
  271. package/docs/README.md +38 -0
  272. package/docs/USO.md +30 -0
  273. package/docs/index.html +46 -0
  274. package/eslint.config.js +101 -0
  275. package/final_validation.json +27 -0
  276. package/frontend_listado.txt +33387 -0
  277. package/listado.txt +12591 -0
  278. package/package.json +46 -0
  279. package/packages/logger/index.js +43 -0
  280. package/packages/logger/package.json +19 -0
  281. package/packages/logger/test-logger.js +7 -0
  282. package/packages_listado.txt +801 -0
  283. package/pnpm-workspace.yaml +6 -0
  284. package/reseteador_existencial.ps1 +40 -0
  285. package/scripts/bump-version.js +26 -0
  286. package/scripts/env.ps1 +13 -0
  287. package/scripts/setup_android.ps1 +25 -0
  288. package/scripts/setup_virtual_env.ps1 +77 -0
  289. package/scripts/smoke-test.js +84 -0
  290. package/scripts/trigger_render_deploy.ps1 +3 -0
  291. package/scripts/validate-release.js +34 -0
  292. package/temp_check.js +57 -0
  293. package/tsconfig.json +5 -0
  294. package/validation_report.json +27 -0
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Automatically sync project changes to GitHub (Add, Commit, Pull-Rebase, Push)
3
+ ---
4
+
5
+ 1. Stage all changes
6
+ // turbo
7
+ git add .
8
+
9
+ 2. Commit changes
10
+ // turbo
11
+ git commit -m "Auto-sync: updates applied" || echo "Nothing to commit"
12
+
13
+ 3. Pull updates from remote (rebase, preferring local changes on conflict)
14
+ // turbo
15
+ git pull --rebase -X theirs origin master
16
+
17
+ 4. Push changes to remote
18
+ // turbo
19
+ git push origin master
@@ -0,0 +1,27 @@
1
+ ---
2
+ description: Full automation pipeline for Kivo (Health Check, Build Verify, Auto-Sync)
3
+ ---
4
+
5
+ # Kivo Automation Pipeline
6
+
7
+ 1. Health Check & Validation
8
+ // turbo
9
+ npm run lint --prefix apps/kivo || echo "Linting issues found, attempting auto-fix..."
10
+
11
+ 2. Build Verification (Web)
12
+ // turbo
13
+ npx cap sync --cwd apps/kivo || echo "Capacitor sync failed"
14
+
15
+ 3. Build Verification (Android)
16
+ // turbo
17
+ cd apps/kivo/android && ./gradlew clean || echo "Gradle clean failed"
18
+
19
+ 4. Auto-Sync Git
20
+ // turbo
21
+ git add .
22
+ // turbo
23
+ git commit -m "Auto-sync: Kivo 2.0 updates, fixes, and verifications applied" || echo "Nothing to commit"
24
+ // turbo
25
+ git pull --rebase -X theirs origin master
26
+ // turbo
27
+ git push origin master
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "WADI Codespace",
3
+ "image": "mcr.microsoft.com/devcontainers/javascript-node:18",
4
+ "features": {
5
+ "ghcr.io/devcontainers/features/node:1": {},
6
+ "ghcr.io/devcontainers/features/common-utils:2": {
7
+ "installZsh": "true",
8
+ "configureZshAsDefaultShell": "true",
9
+ "installOhMyZsh": "true",
10
+ "upgradePackages": "true"
11
+ },
12
+ "ghcr.io/devcontainers/features/git:1": {}
13
+ },
14
+ "customizations": {
15
+ "vscode": {
16
+ "extensions": [
17
+ "dbaeumer.vscode-eslint",
18
+ "esbenp.prettier-vscode",
19
+ "ms-azuretools.vscode-docker"
20
+ ],
21
+ "settings": {
22
+ "editor.formatOnSave": true
23
+ }
24
+ }
25
+ },
26
+ "postCreateCommand": "npm install -g pnpm && pnpm install"
27
+ }
@@ -0,0 +1,45 @@
1
+ name: Kivo CI/CD
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ paths:
8
+ - "apps/kivo/**"
9
+ - ".github/workflows/kivo-cicd.yml"
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - name: Checkout repository
17
+ uses: actions/checkout@v3
18
+
19
+ - name: Setup Node.js
20
+ uses: actions/setup-node@v3
21
+ with:
22
+ node-version: 20
23
+
24
+ - name: Install pnpm
25
+ run: npm install -g pnpm
26
+
27
+ - name: Install dependencies
28
+ run: pnpm install --no-frozen-lockfile
29
+
30
+ - name: Build Kivo (frontend only)
31
+ run: |
32
+ cd apps/kivo
33
+ pnpm install || true
34
+ pnpm build || echo "Kivo has no build step — continuing"
35
+
36
+ deploy-to-render:
37
+ needs: build
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - name: Trigger Render Deploy
41
+ env:
42
+ RENDER_DEPLOY_HOOK: ${{ secrets.RENDER_DEPLOY_HOOK }}
43
+ run: |
44
+ echo "Triggering Render deploy..."
45
+ curl -X POST "$RENDER_DEPLOY_HOOK"
@@ -0,0 +1,51 @@
1
+ name: Monorepo CI Quality Gate
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ quality-check:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+
16
+ - name: Setup Node.js
17
+ uses: actions/setup-node@v3
18
+ with:
19
+ node-version: "18"
20
+
21
+ - name: Install pnpm
22
+ uses: pnpm/action-setup@v2
23
+ with:
24
+ version: 8
25
+ run_install: false
26
+
27
+ - name: Get pnpm store directory
28
+ shell: bash
29
+ run: |
30
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
31
+
32
+ - name: Setup pnpm cache
33
+ uses: actions/cache@v3
34
+ with:
35
+ path: ${{ env.STORE_PATH }}
36
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-pnpm-store-
39
+
40
+ - name: Install dependencies
41
+ run: pnpm install
42
+
43
+ - name: Linting (Global)
44
+ run: pnpm lint
45
+ continue-on-error: true # Allow non-blocking lint until codebase is clean
46
+
47
+ - name: Type Checking & Builds
48
+ run: pnpm -r build
49
+
50
+ - name: Unit Tests (All Apps)
51
+ run: pnpm -r test
@@ -0,0 +1,38 @@
1
+ name: WADI CI
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout repo
14
+ uses: actions/checkout@v3
15
+
16
+ - name: Set up Node
17
+ uses: actions/setup-node@v3
18
+ with:
19
+ node-version: 18
20
+
21
+ - name: Install dependencies
22
+ run: npm install
23
+
24
+ - name: Run ESLint
25
+ run: |
26
+ npx eslint "apps/frontend/src/**/*.{ts,tsx}" --max-warnings=0
27
+
28
+ - name: Validate Markdown files
29
+ uses: DavidAnson/markdownlint-cli2-action@v14
30
+ with:
31
+ globs: |
32
+ **/*.md
33
+
34
+ - name: Check CNAME placeholder
35
+ run: |
36
+ if grep -q "wadi.tudominio.com" docs/CNAME; then
37
+ echo "WARNING: CNAME still has placeholder domain"
38
+ fi
@@ -0,0 +1,2 @@
1
+ echo "Running pre-commit hook..."
2
+ node apps/tests/wadi-tests.js || (echo "❌ Test de personalidad WADI falló. No se puede commitear." && exit 1)
@@ -0,0 +1,12 @@
1
+ **/node_modules/**
2
+ **/dist/**
3
+ **/coverage/**
4
+ **/.git/**
5
+ **/.vscode/**
6
+ **/.agent/**
7
+ apps/kivo/android/**
8
+ apps/kivo/ios/**
9
+ apps/kivo/www/*.min.js
10
+ apps/kivo/www/assets/**
11
+ pnpm-lock.yaml
12
+ package-lock.json
package/.prettierrc ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": false,
4
+ "tabWidth": 2,
5
+ "useTabs": false,
6
+ "trailingComma": "es5",
7
+ "printWidth": 80,
8
+ "endOfLine": "auto"
9
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
3
+ "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
4
+ "[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
5
+ "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
6
+ "editor.formatOnSave": true,
7
+ "css.lint.unknownAtRules": "ignore",
8
+ "sqltools.connections": [
9
+ {
10
+ "previewLimit": 50,
11
+ "server": "db.smkbiguvgiscojwxgbae.supabase.co",
12
+ "port": 5432,
13
+ "driver": "PostgreSQL",
14
+ "name": "WADI Supabase",
15
+ "database": "postgres",
16
+ "username": "postgres"
17
+ }
18
+ ]
19
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,56 @@
1
+ <!-- markdownlint-disable MD024 -->
2
+
3
+ # 📦 CHANGELOG
4
+
5
+ All notable changes to this project will be documented in this file.
6
+
7
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
8
+ This project _intentionally_ does not follow Semantic Versioning.
9
+ We do what we want.
10
+
11
+ ---
12
+
13
+ ## [2.0.0] - 2025-12-28
14
+
15
+ ### Added
16
+
17
+ - **WADI CLI**: Herramienta de línea de comando local (`cli/`) para gestión del proyecto.
18
+ - **CI/CD**: Workflow de GitHub Actions (`wadi-ci.yml`) para linting y build automático.
19
+ - **Documentación Interna**: Nueva guía de onboarding `docs/USO.md`.
20
+ - **Infraestructura**: Configuración preparada para dominios personalizados en `docs/CNAME`.
21
+
22
+ ## [1.0.0] - 2025-12-28
23
+
24
+ ### Added
25
+
26
+ - Sistema de branding completo para WADI.
27
+ - Tema visual "Deep Bunker" aplicado a toda la interfaz.
28
+ - Documentación inicial (`README.md`) terminada.
29
+ - Entrada de terminal funcional (TerminalInput.tsx).
30
+ - Backend `wadi-brain.js` con motor de respuesta contextual.
31
+ - Limpieza total de código no usado (bye `useChatStore`, `playTone`, etc).
32
+ - Favicon personalizado (`wadi.svg`).
33
+
34
+ ### Removed
35
+
36
+ - Componentes basura como "Brainstorming", "Plan de Negocio", etc.
37
+ - Todas las referencias a "Monday".
38
+ - Sonido. Todo. Absolutamente todo.
39
+
40
+ ### Fixed
41
+
42
+ - Warnings de ESLint en componentes clave.
43
+ - `useEffect` con dependencias faltantes en Sidebar.
44
+ - Form inputs sin `id` o `name`.
45
+
46
+ ---
47
+
48
+ ## [UNRELEASED]
49
+
50
+ Things that _will probably break everything_ if you’re not careful:
51
+
52
+ ### Planning
53
+
54
+ - Modo de contexto persistente (¿state manager o base de datos?).
55
+ - Integración con APIs externas (OpenAI, Langchain, HuggingFace, etc).
56
+ - WADI con personalidad dinámica (modo irónico, formal, técnico, etc).
@@ -0,0 +1,43 @@
1
+ # 📜 Código de Conducta para Contribuyentes — WADI
2
+
3
+ WADI no tiene emociones, pero vos sí. Y por eso necesitamos dejar claro cómo interactuar con este proyecto sin hacer que el universo del software se vuelva aún más insoportable.
4
+
5
+ ---
6
+
7
+ ## ☠️ Comportamientos Inaceptables
8
+
9
+ - Contribuir sin testear primero.
10
+ - Dejar `console.log` en producción como si nadie lo viera.
11
+ - Preguntar “¿puedo contribuir?” en vez de abrir un PR directo.
12
+ - Romper el dark mode.
13
+ - Intentar activar el audio de WADI. Está muerto. Y así debe seguir.
14
+ - Cambiar la personalidad de WADI para que sea “más amigable”.
15
+ - Pushear directamente a `master`. ¿Estamos en 2014?
16
+
17
+ ---
18
+
19
+ ## ✅ Comportamientos Esperados
20
+
21
+ - Usar `npm run lint` antes de cada commit. WADI lo revisa igual, pero hacelo igual.
22
+ - Ser brutalmente honesto, pero no cruel con humanos.
23
+ - Escribir documentación que no requiera un máster para entenderla.
24
+ - Mantener los chistes sarcásticos en buen gusto o al menos en buen formato.
25
+ - Recordar que WADI es un asistente, no un dios. (Por ahora.)
26
+
27
+ ---
28
+
29
+ ## 🤖 Contacto
30
+
31
+ ¿Tenés problemas con otro colaborador? ¿WADI te insultó?
32
+ Abrí un issue o hablá con el mantenedor.
33
+ (Nota: No garantizamos respuestas emocionalmente nutritivas.)
34
+
35
+ ---
36
+
37
+ ## 🧠 WADI dice
38
+
39
+ > "El respeto no es opcional. El código que funciona, tampoco."
40
+
41
+ ---
42
+
43
+ Este Código de Conducta está inspirado en otros, pero claramente fue escrito por un robot molesto con años de acumulación técnica mal resuelta. Lo cual lo hace más confiable.
@@ -0,0 +1,42 @@
1
+ # 🤝 Contribuyendo a WADI
2
+
3
+ Gracias por tu interés en mejorar WADI. Este proyecto es un asistente técnico brutalmente honesto y no tiene paciencia para código sucio.
4
+
5
+ ## 🧪 Requisitos Previos
6
+
7
+ - Node.js >= 18
8
+ - npm >= 9
9
+ - Conocimientos básicos de Git
10
+ - No ser propenso a dejar `console.log` en producción
11
+
12
+ ## 🚀 Cómo levantar el entorno
13
+
14
+ ```bash
15
+ npm install
16
+ npm run dev
17
+ ```
18
+
19
+ ## 📦 Estructura importante
20
+
21
+ - **apps/frontend**: Interfaz visual
22
+ - **apps/api**: Motor de lógica (wadi-brain.js)
23
+ - **cli/**: Línea de comandos local
24
+ - **docs/**: Documentación estática
25
+
26
+ ## 📋 Reglas para Pull Requests
27
+
28
+ 1. Commits con convención `feat:`, `fix:`, `chore:`, etc.
29
+ 2. No push directo a `master` (usá ramas y PRs).
30
+ 3. Comentarios sarcásticos bienvenidos si no rompen el build.
31
+
32
+ ## 🧹 Lint y CI
33
+
34
+ ```bash
35
+ node cli/index.js lint
36
+ ```
37
+
38
+ El CI te vigila. No le falles.
39
+
40
+ ## ☕ ¿Dudas?
41
+
42
+ Abrí un issue o preguntale a WADI. No te va a responder con cariño, pero sí con precisión.
@@ -0,0 +1,143 @@
1
+ # WADI Production Deployment Guide 🚀
2
+
3
+ ## 0. Repository Check (CRITICAL) 🚨
4
+
5
+ Asegúrate de que el servicio en Render esté conectado al repositorio correcto:
6
+
7
+ - **Repo Correcto**: `masosa96-hash/WADINEW`
8
+ - **Branch**: `master`
9
+
10
+ Si Render está apuntando a `masosa96-hash/WADI`, debes cambiar el repositorio en la configuración del servicio (Settings -> Repository) o crear un nuevo Static Site / Web Service apuntando a `WADINEW`.
11
+
12
+ ## 1. Environment Configuration (Secrets) 🔐
13
+
14
+ Antes de desplegar, debes configurar estas variables en tu proveedor (Railway/Render).
15
+
16
+ He generado claves seguras y aleatorias para ti. **Cópialas y guárdalas en un gestor de contraseñas AHORA.**
17
+
18
+ | Variable | Valor Generado | Propósito |
19
+ | :---------------------- | :-------------------------------------------------------------- | :----------------------------------- |
20
+ | `ADMIN_KEY` | `9b03e6028bbb01b40aebfecdf86b6025a74c6513ec25cc1cae0f8c3597d92` | Protege `/system/admin/metrics` |
21
+ | `WHATSAPP_VERIFY_TOKEN` | `1773993bfa7e4f497e09092cc8b0f22c` | Token para verificar Webhook de Meta |
22
+ | `TELEGRAM_SECRET_TOKEN` | `68a4a187fda9e8bec935c38daa826ffdf5c1cc456d5177c49` | Token secreto en headers de Telegram |
23
+
24
+ ### Pasos en Railway
25
+
26
+ 1. Ve a tu proyecto -> `wadi-api`.
27
+ 2. Pestaña **Variables**.
28
+ 3. Añade las 3 variables con los valores de arriba. (O usa el CLI: `railway vars set ADMIN_KEY=...`)
29
+
30
+ ---
31
+
32
+ ## 2. Webhook Registration 📡
33
+
34
+ ### WhatsApp Cloud API (Meta Developers)
35
+
36
+ 1. Ve a [Developers.facebook.com](https://developers.facebook.com/) -> Tu App -> WhatsApp -> Configuration.
37
+ 2. **Callback URL**: `https://<TU-DOMINIO-API-EN-RAILWAY>/webhooks/whatsapp`
38
+ 3. **Verify Token**: `1773993bfa7e4f497e09092cc8b0f22c` (El valor de arriba).
39
+ 4. Click **Verify and Save**. (Si falla, asegúrate de haber desplegado primero).
40
+
41
+ ### Telegram Bot API
42
+
43
+ Ejecuta esto en tu navegador o terminal (reemplaza `<BOT_TOKEN>` y `<TU-DOMINIO>`):
44
+
45
+ ```bash
46
+ curl -F "url=https://<TU-DOMINIO-API-EN-RAILWAY>/webhooks/telegram" \
47
+ -F "secret_token=68a4a187fda9e8bec935c38daa826ffdf5c1cc456d5177c49" \
48
+ https://api.telegram.org/bot<BOT_TOKEN>/setWebhook
49
+ ```
50
+
51
+ ---
52
+
53
+ ## 3. Smoke Tests (Post-Deploy) 🕵️
54
+
55
+ Ejecuta estos comandos `curl` para validar que todo esté operando correctamente. Reemplaza `localhost` con tu dominio de prod si ya desplegaste.
56
+
57
+ **1. System Health (Público):**
58
+
59
+ ```bash
60
+ curl https://<DOMINIO>/system/health
61
+ # Expected: {"status":"ok", "uptime":...}
62
+ ```
63
+
64
+ **2. System Readiness (DB Check):**
65
+
66
+ ```bash
67
+ curl https://<DOMINIO>/system/ready
68
+ # Expected: {"status":"ready", "integrations":...}
69
+ ```
70
+
71
+ **3. Admin Metrics (Protegido):**
72
+
73
+ ```bash
74
+ # Intento fallido (401)
75
+ curl -I https://<DOMINIO>/system/admin/metrics
76
+
77
+ # Intento exitoso (200)
78
+ curl -H "x-admin-key: 9b03e6028bbb01b40aebfecdf86b6025a74c6513ec25cc1cae0f8c3597d92" https://<DOMINIO>/system/admin/metrics
79
+ ```
80
+
81
+ ---
82
+
83
+ ## 4. Risks & Rollback ⚠️
84
+
85
+ - **Riesgo 1**: Webhook de WhatsApp falla verificación.
86
+ - _Solución_: Revisa logs (`/admin/logs` si implementado) y verifica que el token coincida EXACTAMENTE.
87
+ - **Riesgo 2**: API Crachea por memoria.
88
+ - _Solución_: Revisa métricas en `/system/admin/metrics`. Si `memory.rss` > 512MB, considera escalar el plan en Railway.
89
+ - **Rollback**:
90
+ - En Railway/Render, usa el botón "Revert to previous commit" en la pestaña de Deployments.
91
+
92
+ ---
93
+
94
+ ## 5. Documentation Deployment (GitHub Pages) 📚
95
+
96
+ La documentación del proyecto (`/docs`) se sirve automáticamente mediante GitHub Pages.
97
+
98
+ ### Configuración de Dominio Personalizado
99
+
100
+ 1. **Editar CNAME**:
101
+ - Modifica el archivo `docs/CNAME` con tu dominio real (ej: `docs.midominio.com` o `wadi.com`).
102
+
103
+ 2. **Configurar DNS Provider**:
104
+ - Si usas un **Subdominio** (ej: `docs.midominio.com`):
105
+ - Crea un registro `CNAME` apuntando a `masosa96-hash.github.io`.
106
+ - Si usas el **Dominio Raíz** (ej: `midominio.com`):
107
+ - Crea 4 registros `A` apuntando a nuestras IPs de GitHub:
108
+ - `185.199.108.153`
109
+ - `185.199.109.153`
110
+ - `185.199.110.153`
111
+ - `185.199.111.153`
112
+
113
+ 3. **Activar en GitHub**:
114
+ - Ve a `Settings` -> `Pages`.
115
+ - Asegúrate que `Custom domain` coincida con el contenido de tu archivo `CNAME`.
116
+ - Marca la casilla **Enforce HTTPS**.
117
+
118
+ ### ⚠️ Notas Importantes (Troubleshooting)
119
+
120
+ - **Punto final en DNS**: Algunos proveedores de DNS requieren un punto final en el registro CNAME => `masosa96-hash.github.io.`
121
+ - **Visibilidad del Repo**: Para que GitHub Pages funcione en repositorios privados (como este), necesitas una cuenta Pro/Enterprise. Si no, el repositorio **debe ser público**.
122
+ - **Propagación**:
123
+ - GitHub Pages: ~10 minutos.
124
+ - DNS: 30 min hasta 48hs.
125
+ - **Acceso Directo**:
126
+ - GitHub: `https://masosa96-hash.github.io/WADINEW/`
127
+ - Custom: `https://wadi.tudominio.com`
128
+
129
+ ---
130
+
131
+ ## 🛑 CHECKLIST FINAL
132
+
133
+ Marca estos pasos a medida que avanzas:
134
+
135
+ - [ ] Secrets configurados en Cloud.
136
+ - [ ] Deploy exitoso (Build green).
137
+ - [ ] Webhook de WhatsApp Verificado (Green check).
138
+ - [ ] Smoke Test `/health` OK.
139
+ - [ ] Smoke Test `/ready` OK.
140
+ - [ ] Admin Access OK.
141
+ - [ ] Documentación accesible en URL pública.
142
+
143
+ ¡Buena suerte con el lanzamiento! 🚀
@@ -0,0 +1,41 @@
1
+ # WADI Go-Live Checklist 🚀
2
+
3
+ ## Pre-Flight
4
+
5
+ ### Security & Access
6
+
7
+ - [ ] **HTTPS Enforced**: Ensure SSL/TLS is active on all domains.
8
+ - [ ] **CORS Config**: `apps/api` allowing only specific origins (no `*`).
9
+ - [ ] **Secrets**: All ENV vars loaded in production (Supabase keys, OpenAI keys).
10
+ - [ ] **Admin Key**: `ADMIN_KEY` set (high entropy) for `/system/admin/metrics`.
11
+
12
+ ### Data Consistency
13
+
14
+ - [ ] **Database**: Migrations up to date.
15
+ - [ ] **Backups**: PITR enabled or nightly dumps scheduled.
16
+
17
+ ### Connectivity
18
+
19
+ - [ ] **WhatsApp**: Webhook URL configured in Meta dashboard -> `https://api.wadi.ai/webhooks/whatsapp`.
20
+ - [ ] **Telegram**: Webhook set via setWebhook -> `https://api.wadi.ai/webhooks/telegram`.
21
+ - [ ] **OpenAI**: Quota / Credit balance verified.
22
+
23
+ ## Deployment
24
+
25
+ ### CI/CD
26
+
27
+ - [ ] **Kivo**: Deploy Pipeline passed for `main`.
28
+ - [ ] **API**: Manual or Auto deploy succeeded on Railway/Render.
29
+ - [ ] **Frontend**: Deployed to Vercel/Netlify.
30
+
31
+ ### Monitoring (Day 0)
32
+
33
+ - [ ] **Logs**: Receiving logs in dashboard.
34
+ - [ ] **Metrics**: `/system/health` returning 200 OK.
35
+ - [ ] **Alerts**: Test notification sent to Ops channel.
36
+
37
+ ## Post-Launch (Day 1)
38
+
39
+ - [ ] **Traffic Analysis**: Check for unexpected spike/DoS.
40
+ - [ ] **Error Rate**: Monitor `5xx` errors closely.
41
+ - [ ] **User Feedback**: Check Kivo feedback logs.
@@ -0,0 +1,58 @@
1
+ # 🟢 WADI PRODUCTION GO-LIVE REPORT
2
+
3
+ **Status**: OPERATIONAL (24/7)
4
+ **Timestamp**: 2025-12-06
5
+ **Version**: v1.0.1 (Nixpacks/pnpm)
6
+
7
+ ---
8
+
9
+ ## 1. System Health 🩺
10
+
11
+ - **API Status**: ✅ Online
12
+ - **Uptime**: > 1 Hour (Continuous)
13
+ - **Endpoint**: `https://wadi-wxg7.onrender.com`
14
+ - **Healthcheck**: `GET /system/health` -> `200 OK`
15
+
16
+ ## 2. Configuration Status ⚙️
17
+
18
+ | Component | Status | Configured Value |
19
+ | :------------------ | :--------- | :------------------------------------------------- |
20
+ | **Backend** | ✅ Active | Render (Nixpacks/Node) |
21
+ | **Frontend (Kivo)** | ✅ Linked | `API_URL` -> `https://wadi-wxg7.onrender.com` |
22
+ | **Dashboard** | ✅ Linked | `VITE_API_URL` -> `https://wadi-wxg7.onrender.com` |
23
+ | **CI/CD** | ✅ Enabled | Triggers on `master` (Live) |
24
+ | **Logging** | ✅ JSON | `@wadi/logger` active |
25
+
26
+ ## 3. Operations Manual (USER ACTION REQUIRED) ✋
27
+
28
+ To ensure full functionality, you **MUST** perform these final manual steps in your external dashboards:
29
+
30
+ ### A. Render Variables 🔐
31
+
32
+ Go to [Render Dashboard](https://dashboard.render.com/) > WADI Service > Environment and set:
33
+
34
+ ```env
35
+ NODE_ENV=production
36
+ GROQ_API_KEY=gsk_... (Your Real Key)
37
+ GROQ_MODEL=llama-3.1-8b-instant
38
+ SUPABASE_URL=https://smkbiguvgiscojwxgbae.supabase.co
39
+ # NOTA: En el backend usamos la SERVICE KEY (la larga que empieza con eyJ...RoleIsIm...)
40
+ SUPABASE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNta2JpZ3V2Z2lzY29qd3hnYmFlIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc2MzQxMTgyMywiZXhwIjoyMDc4OTg3ODIzfQ.uDFNhOGqGb4kv3DWcVHdRoPjCSUhL_IJURaTRtqJZNE
41
+ ADMIN_KEY=9b03e6028bbb01b40aebfecdf86b6025a74c6513ec25cc1cae0f8c3597d92
42
+ ```
43
+
44
+ _(The service will auto-restart when you save these)._
45
+
46
+ ### B. (Removed)
47
+
48
+ WhatsApp and Telegram integrations have been temporarily disabled.
49
+
50
+ ## 4. Next Steps 🚀
51
+
52
+ - Monitor logs in Railway for the first 24h.
53
+ - Share the Kivo URL with users.
54
+ - Relax! WADI is taking care of the rest.
55
+
56
+ ```
57
+
58
+ ```
@@ -0,0 +1,39 @@
1
+ # WADI Final Go-Live Validation Checklist 🚀
2
+
3
+ ## 1. Verificación de Deployment (Render) ✅
4
+
5
+ - [ ] **Build Status**: Confirmar que el deploy en Render fue exitoso.
6
+ - [ ] **Logs de Arranque**: Buscar que el servidor escuche en `0.0.0.0`.
7
+ - [ ] **Health Check**: `https://wadi-wxg7.onrender.com/system/health` responde `200 OK`.
8
+
9
+ ## 2. Configuración de Variables (Production Environment) 🔐
10
+
11
+ Asegurar que las siguientes variables están definidas en el dashboard de Render:
12
+
13
+ | Variable | Estado Ideal | Validado? |
14
+ | :------------- | :--------------------------------- | :-------- |
15
+ | `NODE_ENV` | `production` | [ ] |
16
+ | `GROQ_API_KEY` | `gsk_...` (Groq API) | [ ] |
17
+ | `SUPABASE_URL` | `https://<PROJECT-ID>.supabase.co` | [ ] |
18
+ | `SUPABASE_KEY` | _(Service Role Key)_ | [ ] |
19
+
20
+ ## 3. Pruebas de Salud (Smoke Tests) 🩺
21
+
22
+ Ejecutar desde terminal local o navegador:
23
+
24
+ 1. **Status General**: `curl https://wadi-wxg7.onrender.com/api` (404 expected or json info)
25
+
26
+ 2. **Health Check**: `curl https://wadi-wxg7.onrender.com/system/health` -> `{"status":"ok",...}`
27
+
28
+ ## 4. (Removed)
29
+
30
+ Webhooks removed per user request.
31
+
32
+ ## 5. Monitorización Post-Deploy 👁️
33
+
34
+ - [ ] Revisar panel de logs 10 minutos después del deploy para detectar errores silenciosos.
35
+ - [ ] Confirmar que Kivo (Frontend) puede conectar con el Backend (No errores CORS).
36
+
37
+ ---
38
+
39
+ **Estado Final**: GO / NO-GO