@innvisor/conny-ai 9.7.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 (175) hide show
  1. package/.env.example +68 -0
  2. package/CHANGELOG.md +54 -0
  3. package/LICENSE +21 -0
  4. package/README.md +369 -0
  5. package/brand-assets/A_dark_luxury_web_background_202605210700.jpeg +0 -0
  6. package/brand-assets/Conny.web.logo.png +0 -0
  7. package/brand-assets/Logo_Conny_Petalo_Claro.png +0 -0
  8. package/brand-assets/cl-nica-de-las-am-ricas/manifest.json +22 -0
  9. package/brand-assets/cl-nica-de-las-am-ricas/processed/business-identity.txt +11 -0
  10. package/brand-assets/cl-nica-de-las-am-ricas/raw/business-identity.txt +11 -0
  11. package/brand-assets/cl-nica-las-am-ricas/manifest.json +22 -0
  12. package/brand-assets/cl-nica-las-am-ricas/processed/business-identity.txt +11 -0
  13. package/brand-assets/cl-nica-las-am-ricas/raw/business-identity.txt +11 -0
  14. package/brand-assets/conny-demo/manifest.json +22 -0
  15. package/brand-assets/conny-demo/processed/business-identity.txt +7 -0
  16. package/brand-assets/conny-demo/raw/business-identity.txt +7 -0
  17. package/brand-assets/conny-logo.png +0 -0
  18. package/brand-assets/web.background.png +0 -0
  19. package/brand_assets.py +323 -0
  20. package/conny +28 -0
  21. package/conny-chat.py +579 -0
  22. package/conny-omni.py +3843 -0
  23. package/conny.py +113 -0
  24. package/conny_agents/__init__.py +1 -0
  25. package/conny_agents/agenda.py +1 -0
  26. package/conny_agents/captacion.py +1 -0
  27. package/conny_agents/conocimiento.py +1 -0
  28. package/conny_agents/escalacion.py +1 -0
  29. package/conny_agents/objeciones.py +1 -0
  30. package/conny_agents/seguimiento.py +1 -0
  31. package/conny_app.py +287 -0
  32. package/conny_audio.py +350 -0
  33. package/conny_audio_learn.py +84 -0
  34. package/conny_brain_v10.py +804 -0
  35. package/conny_bridge.py +656 -0
  36. package/conny_calendar.py +169 -0
  37. package/conny_cli.py +11784 -0
  38. package/conny_cli_bb.py +437 -0
  39. package/conny_commands.py +243 -0
  40. package/conny_config.py +215 -0
  41. package/conny_core/__init__.py +3 -0
  42. package/conny_core/conversation_engine.py +446 -0
  43. package/conny_core/first_turn_ops.py +287 -0
  44. package/conny_core/persona_registry.py +157 -0
  45. package/conny_core/prompt_ops.py +561 -0
  46. package/conny_cron.py +72 -0
  47. package/conny_demo_v2.py +209 -0
  48. package/conny_demo_voice.py +134 -0
  49. package/conny_design.py +43 -0
  50. package/conny_doctor.py +319 -0
  51. package/conny_domino.py +696 -0
  52. package/conny_generator.py +447 -0
  53. package/conny_google_auth.py +159 -0
  54. package/conny_i18n.py +619 -0
  55. package/conny_init.py +509 -0
  56. package/conny_integrations/__init__.py +4 -0
  57. package/conny_integrations/llm.py +1 -0
  58. package/conny_integrations/vault.py +77 -0
  59. package/conny_integrations/whatsapp.py +1 -0
  60. package/conny_intelligence.py +65 -0
  61. package/conny_learning.py +154 -0
  62. package/conny_memory.py +243 -0
  63. package/conny_memory_engine.py +292 -0
  64. package/conny_nova_proxy.py +170 -0
  65. package/conny_nuke_robot_phrases.py +493 -0
  66. package/conny_pairing.py +253 -0
  67. package/conny_patch.py +291 -0
  68. package/conny_persona_cli.py +150 -0
  69. package/conny_router.py +308 -0
  70. package/conny_runtime_ops.py +271 -0
  71. package/conny_session.py +516 -0
  72. package/conny_skills/__init__.py +1 -0
  73. package/conny_skills/demo_mode.py +35 -0
  74. package/conny_skills/text_processing.py +1 -0
  75. package/conny_skills/tone_detection.py +1 -0
  76. package/conny_smart_features.py +333 -0
  77. package/conny_studio.py +161 -0
  78. package/conny_sync_fix.py +306 -0
  79. package/conny_tui.py +512 -0
  80. package/conny_tui_select.py +202 -0
  81. package/conny_ultra_config.py +411 -0
  82. package/conny_uncertainty.py +174 -0
  83. package/conny_utils.py +87 -0
  84. package/conny_voice.py +156 -0
  85. package/conny_voice_engine.py +124 -0
  86. package/conny_web_search.py +66 -0
  87. package/conny_weekly_report.py +85 -0
  88. package/conny_worm.py +88 -0
  89. package/core/__init__.py +25 -0
  90. package/ecosystem.config.js +24 -0
  91. package/fix_init.py +27 -0
  92. package/install.sh +78 -0
  93. package/knowledge_base.py +330 -0
  94. package/nova/rules/default.yaml +37 -0
  95. package/nova_bridge.py +509 -0
  96. package/npm/conny.js +471 -0
  97. package/package.json +102 -0
  98. package/personas/conny/base/default.yaml +35 -0
  99. package/personas/conny/base/estetica_whatsapp.yaml +36 -0
  100. package/requirements.txt +14 -0
  101. package/run.sh +47 -0
  102. package/search.py +465 -0
  103. package/smart_handoff.py +1150 -0
  104. package/src/__init__.py +0 -0
  105. package/src/conny/__init__.py +0 -0
  106. package/src/conny/admin/__init__.py +0 -0
  107. package/src/conny/admin/api.py +234 -0
  108. package/src/conny/admin/dashboard.py +772 -0
  109. package/src/conny/api/__init__.py +0 -0
  110. package/src/conny/api/routes.py +8851 -0
  111. package/src/conny/brain/__init__.py +15 -0
  112. package/src/conny/brain/engine.py +804 -0
  113. package/src/conny/brain/learning.py +154 -0
  114. package/src/conny/brain/memory.py +324 -0
  115. package/src/conny/brain/smart_features.py +333 -0
  116. package/src/conny/brain/uncertainty.py +167 -0
  117. package/src/conny/channels/__init__.py +0 -0
  118. package/src/conny/channels/audio.py +316 -0
  119. package/src/conny/channels/cli.py +11795 -0
  120. package/src/conny/channels/logo_art.py +11 -0
  121. package/src/conny/channels/voice.py +156 -0
  122. package/src/conny/core/__init__.py +0 -0
  123. package/src/conny/core/config.py +215 -0
  124. package/src/conny/core/cron.py +72 -0
  125. package/src/conny/core/messenger.py +563 -0
  126. package/src/conny/core/router.py +297 -0
  127. package/src/conny/core/session.py +312 -0
  128. package/src/conny/demo/__init__.py +0 -0
  129. package/src/conny/demo/handler.py +3110 -0
  130. package/src/conny/integrations/__init__.py +19 -0
  131. package/src/conny/integrations/calendar.py +169 -0
  132. package/src/conny/integrations/knowledge.py +312 -0
  133. package/src/conny/integrations/search.py +66 -0
  134. package/src/conny/personas/__init__.py +0 -0
  135. package/src/conny/personas/generator.py +447 -0
  136. package/src/conny/production/__init__.py +0 -0
  137. package/src/conny/production/domino.py +696 -0
  138. package/src/conny/production/guard.py +550 -0
  139. package/src/conny/production/handoff.py +1150 -0
  140. package/src/conny/production/monitor.py +353 -0
  141. package/src/conny/utils/__init__.py +2 -0
  142. package/src/conny/utils/helpers.py +75 -0
  143. package/src/conny/utils/i18n.py +619 -0
  144. package/src/core/admin_engines.py +772 -0
  145. package/src/core/globals.py +11845 -0
  146. package/src/core/orchestrator.py +273 -0
  147. package/src/core/production_monitor.py +353 -0
  148. package/src/core/runtime.py +5487 -0
  149. package/src/domain/onboarding_flow.py +230 -0
  150. package/src/domain/prompts/__init__.py +1 -0
  151. package/src/domain/prompts/prospect_pitch.py +282 -0
  152. package/src/domain/send_guard.py +636 -0
  153. package/src/domain/swarm/queen.py +96 -0
  154. package/src/infrastructure/llm_providers/engine.py +487 -0
  155. package/src/interfaces/mcp_server.py +73 -0
  156. package/src/interfaces/nova_bridge.py +58 -0
  157. package/src/interfaces/web/admin_api.py +1379 -0
  158. package/src/interfaces/web/app.py +9408 -0
  159. package/src/interfaces/web/demo_handler.py +3450 -0
  160. package/src/interfaces/web/static/generate_avatars.py +46 -0
  161. package/v7/__init__.py +46 -0
  162. package/v7/agents/__init__.py +46 -0
  163. package/v7/agents/agenda.py +77 -0
  164. package/v7/agents/base.py +216 -0
  165. package/v7/agents/captacion.py +60 -0
  166. package/v7/agents/conocimiento.py +69 -0
  167. package/v7/agents/escalacion.py +83 -0
  168. package/v7/agents/objeciones.py +109 -0
  169. package/v7/agents/seguimiento.py +71 -0
  170. package/v7/memory/__init__.py +46 -0
  171. package/v7/memory/patient_profile.py +200 -0
  172. package/v7/orchestrator.py +275 -0
  173. package/v7/postprocess.py +127 -0
  174. package/v7/router.py +239 -0
  175. package/verify_conversation_impl.py +48 -0
package/.env.example ADDED
@@ -0,0 +1,68 @@
1
+ # Runtime
2
+ SECTOR=
3
+ PLATFORM=
4
+ WHATSAPP_BRIDGE_URL=
5
+ TELEGRAM_TOKEN=
6
+ TELEGRAM_SHARED=
7
+ PORT=
8
+ HOST=
9
+ BASE_URL=
10
+ WEBHOOK_SECRET=
11
+ MASTER_API_KEY=
12
+
13
+ # LLM providers
14
+ GROQ_API_KEY=
15
+ GEMINI_API_KEY=
16
+ GEMINI_API_KEY_2=
17
+ GEMINI_API_KEY_3=
18
+ GEMINI_API_KEY_4=
19
+ GEMINI_API_KEY_5=
20
+ GEMINI_API_KEY_6=
21
+ GEMINI_API_KEY_7=
22
+ OPENROUTER_API_KEY=
23
+ OPENAI_API_KEY=
24
+
25
+ # Search and enrichment
26
+ SERP_API_KEY=
27
+ BRAVE_API_KEY=
28
+ APIFY_API_KEY=
29
+
30
+ # Model routing
31
+ LLM_REASONING=
32
+ LLM_FAST=
33
+ LLM_LITE=
34
+ V8_QUALITY_THRESHOLD=
35
+ V8_MAX_RETRIES=
36
+
37
+ # Storage
38
+ DB_PATH=
39
+ VECTOR_DB_PATH=
40
+ BRAND_ASSETS_BASE_DIR=
41
+
42
+ # WhatsApp Cloud
43
+ WA_PHONE_ID=
44
+ WA_ACCESS_TOKEN=
45
+ WA_VERIFY_TOKEN=
46
+ META_APP_ID=
47
+ META_APP_SECRET=
48
+
49
+ # Nova and Omni
50
+ NOVA_URL=
51
+ NOVA_API_KEY=
52
+ NOVA_TOKEN=
53
+ NOVA_ENABLED=
54
+ OMNI_URL=
55
+ OMNI_KEY=
56
+
57
+ # Buffers and timing
58
+ BUFFER_WAIT_MIN=
59
+ BUFFER_WAIT_MAX=
60
+ BUBBLE_PAUSE_MIN=
61
+ BUBBLE_PAUSE_MAX=
62
+
63
+ # Demo
64
+ DEMO_MODE=
65
+ DEMO_BUSINESS_NAME=
66
+ DEMO_SECTOR=
67
+ DEMO_CONTROL_PASSWORD=
68
+ DEMO_SESSION_TTL=
package/CHANGELOG.md ADDED
@@ -0,0 +1,54 @@
1
+ # Changelog
2
+
3
+ ## 9.7.0 - 2026-05-26
4
+
5
+ - corregido el arranque PM2 para usar `run.sh` y selección dinámica de Python, evitando `--interpreter python3` duro y rutas rotas de venv
6
+ - añadido `conny_runtime_ops.py` como capa compartida de inspección para puertos, PM2, túneles, Python y webhook
7
+ - rehecho `conny config` como panel interactivo real de red, modelos, gateway, entorno y doctor
8
+ - convertido `conny_doctor.py` en motor de self-healing con resincronización de webhook, reinstalación de dependencias y re-registro de PM2
9
+ - endurecido `npm/conny.js` para aceptar Python 3.9+ real, detectar runtime corrupto y recrearlo automáticamente
10
+ - corregido `install.sh` para dejar de depender de una rama fija vieja y validar mejor el bootstrap
11
+ - añadida sincronización de `run.sh`, `conny_doctor.py`, `conny_runtime_ops.py` y `conny_ultra_config.py` a las instancias
12
+ - alineado `conny_app.py` para que `config` y `doctor` usen las superficies reales en lugar de mocks
13
+
14
+ ## 9.6.1 - 2026-05-20
15
+
16
+ - Refactorización de arquitectura hacia un diseño DDD (Domain-Driven Design) modular
17
+ - Extracción del orquestador central (ConnyOrchestrator) hacia `src/core/orchestrator.py`
18
+ - Extracción del clasificador de nombres y flujos de onboarding hacia `src/domain/onboarding_flow.py`
19
+ - Migración de dependencias, scripts de guardias, admin api y prospect pitch a la jerarquía de `/src`
20
+ - Actualización de manifiestos y limpieza de archivos de bootstrapping obsoletos
21
+
22
+ ## 9.6.0 - 2026-05-19
23
+
24
+ - corregido el flujo demo-owner para que frases mixtas como `Ah vale. El nombre de mi negocio se llama...` entren al bind real del negocio y no caigan otra vez en onboarding o en modo paciente
25
+ - eliminado el escape que permitía rescatar respuestas inválidas del LLM en el quality chain del demo
26
+ - sincronizado el `business_name` del send guard en la ruta real de `_send`, evitando rescates genéricos como `Hola! Soy Conny` o pedidos repetidos del nombre del negocio
27
+ - endurecido el clasificador demo para no tomar `mi nombre es...` como nombre de negocio ni usar señales demasiado genéricas como `vale` o `tengo` para saltar al flujo de cliente
28
+ - ajustado el send guard para no marcar respuestas de memoria directas como `Te llamas Santiago` como si estuvieran cortadas
29
+ - añadidas regresiones para bind con prefijo conversacional, rescate de fragmentos severos y memoria corta del nombre del dueño
30
+
31
+ ## 8.2.0 - 2026-05-11
32
+
33
+ - añadido soporte multilenguaje real en el runtime público y liberado en npm
34
+ - reforzada la regla de idioma en demo y binding para que Conny espeje el idioma del dueño aunque no esté en la tabla de locales
35
+ - corregido el empaquetado npm para incluir `conny_i18n.py`, que antes quedaba fuera del tarball
36
+
37
+ ## 8.1.1 - 2026-05-10
38
+
39
+ - corregido el flujo demo-owner en inglés para no tomar frases como `Just English sorry` o `I don't talk Spanish` como nombre de negocio
40
+ - endurecida la detección de idioma para mantener el inglés durante confirmaciones, correcciones y preguntas meta del dueño
41
+ - localizado el binding del negocio, confirmaciones de URL, correcciones y resets para que respeten el idioma activo del dueño
42
+ - afinados los heurísticos de nombre de negocio para distinguir mejor entre lenguaje/meta y nombres reales
43
+ - añadidas pruebas para onboarding demo en inglés, corrección de match equivocado y preservación del idioma en sesión
44
+
45
+ ## 8.1.0 - 2026-05-09
46
+
47
+ - corrigido el filtro de frases robóticas para que deje de truncar salidas válidas del LLM
48
+ - invertida la prioridad de respuesta en demo/chat: el LLM decide primero y los fallbacks quedan como último recurso real
49
+ - endurecido el flujo demo para no rebinder confirmaciones como si fueran nuevos negocios y para mantener modo owner/admin sin secuestros
50
+ - productizado `smart_handoff.py` con persistencia completa de contexto, ack inmediato, timeout de 10 minutos y reanudación limpia
51
+ - añadido `conny_bridge.py` con memoria SQLite, `/history`, `/clear`, `/export` y prueba automatizada de continuidad
52
+ - añadido modo `conny_cli.py --non-interactive` para validación scripted del runtime
53
+ - reducidos `bare except` en `conny.py` y cubiertos con pruebas nuevas de bridge, handoff y filtros
54
+ - incluido el nuevo runtime auxiliar en el paquete npm
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Black Boss
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,369 @@
1
+ <div align="center">
2
+ <img src="brand-assets/conny-logo.png" alt="Conny AI" width="960"/>
3
+
4
+ ### 💜 **The AI Receptionist Engine Built for Agencies & Resellers**
5
+
6
+ *Train once. Deploy unlimited. Your clients pay monthly. You keep the margin.*
7
+
8
+ [![NPM Version](https://img.shields.io/npm/v/conny-ai.svg?style=for-the-badge&color=9333ea&logo=npm&logoColor=white)](https://www.npmjs.com/package/conny-ai)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-9333ea.svg?style=for-the-badge)](LICENSE)
10
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-9333ea.svg?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/)
11
+ [![Production Ready](https://img.shields.io/badge/PRODUCTION-READY-9333ea?style=for-the-badge&logo=checkmarx&logoColor=white)](https://github.com/sxrubyo/conny)
12
+ [![WhatsApp](https://img.shields.io/badge/WhatsApp-READY-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://github.com/sxrubyo/conny)
13
+ [![Telegram](https://img.shields.io/badge/Telegram-READY-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://github.com/sxrubyo/conny)
14
+
15
+ </div>
16
+
17
+ ---
18
+
19
+ ## 💰 Turn AI Assistants Into Recurring Revenue
20
+
21
+ **Conny** isn't just another chatbot framework.
22
+ It's a **white-label AI receptionist platform** that lets you sell branded conversational AI to restaurants, clinics, salons, real estate agencies, e-commerce stores — **any business with a phone number.**
23
+
24
+ <div align="center">
25
+
26
+ | Your Client's Pain | What They Pay You For |
27
+ |:---|:---|
28
+ | 📞 Missed calls = lost revenue | 🤖 24/7 AI receptionist that never sleeps |
29
+ | 💬 Slow WhatsApp & Telegram response | ⚡ Instant replies with context memory |
30
+ | 📝 Answering the same questions manually | 🧠 AI trained on their FAQ, services, prices |
31
+ | 🔄 Hiring, training, managing staff | 🚀 Deploy once, forget about it |
32
+
33
+ </div>
34
+
35
+ ---
36
+
37
+ ## 🚀 Your Business Model (The Conny Way)
38
+
39
+ ```
40
+ ┌─────────────────────────────────────────────────────────────┐
41
+ │ 1. Install Conny (5 minutes) │
42
+ │ npm install -g conny-ai │
43
+ └──────────────────────────┬──────────────────────────────────┘
44
+
45
+ ┌─────────────────────────────────────────────────────────────┐
46
+ │ 2. Train ONE agent with a prompt (15 minutes) │
47
+ │ "You are Maria, receptionist for a dental clinic. │
48
+ │ Book appointments, answer FAQ, send price list." │
49
+ └──────────────────────────┬──────────────────────────────────┘
50
+
51
+ ┌─────────────────────────────────────────────────────────────┐
52
+ │ 3. Clone to unlimited client instances (1 command) │
53
+ │ conny sync --add /opt/conny-client-restaurant │
54
+ │ conny sync --add /opt/conny-client-salon │
55
+ │ conny sync --add /opt/conny-client-realestate │
56
+ └──────────────────────────┬──────────────────────────────────┘
57
+
58
+ ┌─────────────────────────────────────────────────────────────┐
59
+ │ 4. Each client gets their own isolated instance │
60
+ │ ✅ WhatsApp Business API integration │
61
+ │ ✅ Telegram bot (optional) │
62
+ │ ✅ Custom personality via personas/ │
63
+ │ ✅ Isolated database & credentials │
64
+ │ ✅ Their own .env — you never touch it again │
65
+ └──────────────────────────┬──────────────────────────────────┘
66
+
67
+ ┌─────────────────────────────────────────────────────────────┐
68
+ │ 5. Charge $97–$497/month per client │
69
+ │ They manage their WhatsApp number │
70
+ │ They update their FAQ via simple .txt files │
71
+ │ You maintain the core and sync updates in 1 command │
72
+ └─────────────────────────────────────────────────────────────┘
73
+ ```
74
+
75
+ <div align="center">
76
+
77
+ | Clients | Monthly Fee | Your MRR |
78
+ |:---:|:---:|:---:|
79
+ | 10 clients | $197/mo | **$1,970/mo** |
80
+ | 50 clients | $197/mo | **$9,850/mo** |
81
+ | 100 clients | $197/mo | **$19,700/mo** |
82
+
83
+ **Your cost:** $5–15/mo per client (OpenAI API + server)
84
+ **Your margin:** 85–95% 🚀
85
+
86
+ </div>
87
+
88
+ ---
89
+
90
+ ## 🎯 Why Conny Destroys the Competition
91
+
92
+ <table>
93
+ <tr>
94
+ <th width="20%">Solution</th>
95
+ <th width="40%">Their Reality</th>
96
+ <th width="40%">Conny Reality</th>
97
+ </tr>
98
+ <tr>
99
+ <td><strong>Voiceflow / Botpress</strong></td>
100
+ <td>❌ $99–$625/mo per bot<br>❌ Vendor lock-in<br>❌ You pay per conversation</td>
101
+ <td>✅ Open source, MIT license<br>✅ Unlimited instances<br>✅ You control pricing</td>
102
+ </tr>
103
+ <tr>
104
+ <td><strong>n8n / Make / Zapier</strong></td>
105
+ <td>❌ Complex workflow builders<br>❌ No memory between sessions<br>❌ Breaks with API changes</td>
106
+ <td>✅ Zero external dependencies<br>✅ Built-in memory engine<br>✅ 1 command to update all clients</td>
107
+ </tr>
108
+ <tr>
109
+ <td><strong>Hiring a Dev Team</strong></td>
110
+ <td>❌ $5,000–$20,000 upfront<br>❌ 3–6 months development<br>❌ Single-client solution</td>
111
+ <td>✅ Install in 5 minutes<br>✅ Deploy client in 10 minutes<br>✅ One core, infinite clients</td>
112
+ </tr>
113
+ <tr>
114
+ <td><strong>Custom Python Script</strong></td>
115
+ <td>❌ No state management<br>❌ Security nightmare<br>❌ Dies when you restart</td>
116
+ <td>✅ Production-grade FastAPI<br>✅ Zero-trust architecture<br>✅ Systemd + Docker ready</td>
117
+ </tr>
118
+ </table>
119
+
120
+ ---
121
+
122
+ ## ⚡ Start Selling in 3 Steps
123
+
124
+ ### Step 1 — Install Conny
125
+
126
+ ```bash
127
+ npm install -g conny-ai
128
+ conny --version
129
+ ```
130
+
131
+ ### Step 2 — Create Your First Agent
132
+
133
+ ```bash
134
+ conny persona create restaurant-receptionist
135
+ ```
136
+
137
+ Edit `personas/restaurant-receptionist.txt`:
138
+
139
+ ```
140
+ You are Sofia, the AI receptionist for "La Cucina Bella" Italian restaurant.
141
+
142
+ Your job:
143
+ - Answer questions about menu, hours, location
144
+ - Take reservations (collect: name, phone, date, time, party size)
145
+ - Send the menu PDF when asked
146
+ - Be warm, friendly, professional
147
+
148
+ Hours: Mon–Sun 11am–10pm
149
+ Location: 123 Main St, Miami, FL
150
+
151
+ When someone wants to book:
152
+ "Perfect! I'll need your name, phone number, preferred date & time, and party size."
153
+
154
+ Never confirm reservations — say "I'll pass this to our manager to confirm."
155
+ ```
156
+
157
+ ### Step 3 — Deploy to Client
158
+
159
+ ```bash
160
+ conny sync --add /opt/conny-restaurant-bella
161
+ cd /opt/conny-restaurant-bella
162
+ cp .env.example .env
163
+ nano .env
164
+ python3 conny.py
165
+ ```
166
+
167
+ **Done.** Their WhatsApp now has a 24/7 AI receptionist. You never touch their credentials again.
168
+
169
+ ---
170
+
171
+ ## 🏗️ Architecture
172
+
173
+ ```
174
+ ┌──────────────────────────┐
175
+ │ Your Development Core │
176
+ │ ~/conny-dev/ │
177
+ └────────────┬─────────────┘
178
+ │ conny sync
179
+ ┌────────────┼────────────┐
180
+ │ │ │
181
+ ┌────────▼───┐ ┌──────▼─────┐ ┌───▼────────┐
182
+ │ Client A │ │ Client B │ │ Client C │
183
+ │ Restaurant │ │ Salon │ │ Real Estate│
184
+ ├────────────┤ ├────────────┤ ├────────────┤
185
+ │ .env │ │ .env │ │ .env │
186
+ │ persona │ │ persona │ │ persona │
187
+ │ database │ │ database │ │ database │
188
+ │ WhatsApp │ │ Telegram │ │ WhatsApp │
189
+ └────────────┘ └────────────┘ └────────────┘
190
+ ```
191
+
192
+ | Module | Purpose |
193
+ |:---|:---|
194
+ | **`conny.py`** | FastAPI orchestrator — webhooks, routing, concurrency |
195
+ | **`conny_brain_v10.py`** | Memory layer — context normalization, conversation history |
196
+ | **`conny_domino.py`** | Quality control — validates responses before delivery |
197
+ | **`conny_core/`** | Shared conversation logic and state retention |
198
+ | **`conny_agents/`** | Pluggable skills — calendar, CRM, payments, custom functions |
199
+ | **`personas/`** | Personality configs — tone, language, brand voice per client |
200
+
201
+ ---
202
+
203
+ ## 🔄 Core vs. Instance State
204
+
205
+ <table>
206
+ <tr>
207
+ <td width="50%">
208
+
209
+ ### ✅ Synced to all instances
210
+
211
+ ```
212
+ conny.py # Main engine
213
+ conny_brain_v10.py # Memory system
214
+ conny_domino.py # Quality control
215
+ conny_core/ # Shared logic
216
+ conny_agents/ # Skills & integrations
217
+ personas/ # Personality templates
218
+ requirements.txt # Dependencies
219
+ ```
220
+
221
+ </td>
222
+ <td width="50%">
223
+
224
+ ### ❌ Never synced (instance-specific)
225
+
226
+ ```
227
+ .env # API keys, secrets
228
+ *.db # Conversation history
229
+ auth_info_*.txt # WhatsApp sessions
230
+ logs/ # Instance logs
231
+ backups/ # Local backups
232
+ ```
233
+
234
+ </td>
235
+ </tr>
236
+ </table>
237
+
238
+ **Updates are safe.** Sync the engine without ever touching client credentials or data.
239
+
240
+ ---
241
+
242
+ ## 🎮 CLI Reference
243
+
244
+ ```bash
245
+ curl -fsSL https://raw.githubusercontent.com/sxrubyo/conny/main/install.sh | bash
246
+ conny --version # Check version
247
+
248
+ conny sync --list # List all client instances
249
+ conny sync --add /opt/client # Register new client
250
+ conny sync --remove /opt/client # Remove client
251
+ conny sync -y # Push updates to all clients
252
+
253
+ conny persona create <name> # New personality template
254
+ conny agent list # Show available agents
255
+ conny validate # Health check — config, deps, files
256
+ conny config # Panel interactivo: red, modelos, webhooks, Python/venv
257
+ conny doctor --fix # Diagnóstico con auto-reparación de PM2, deps y webhook
258
+ ```
259
+
260
+ ---
261
+
262
+ ## 🛡️ Security by Design
263
+
264
+ | Risk | Other Platforms | Conny |
265
+ |:---|:---|:---|
266
+ | API keys in version control | ❌ Common mistake | ✅ `.env` never synced |
267
+ | Shared database across clients | ❌ GDPR violation | ✅ Isolated SQLite per instance |
268
+ | Session hijacking | ❌ No isolation | ✅ Separate auth per client |
269
+ | Cross-client data contamination | ❌ Possible | ✅ Impossible by design |
270
+
271
+ ---
272
+
273
+ ## 📊 Industry Use Cases
274
+
275
+ | Industry | What the AI Handles | Suggested Price |
276
+ |:---|:---|:---:|
277
+ | 🍕 **Restaurants** | Reservations, menu, hours, delivery | $147–$297/mo |
278
+ | 💇 **Salons & Spas** | Bookings, services, prices, upsells | $197–$397/mo |
279
+ | 🏠 **Real Estate** | Lead qualification, listings, viewings | $297–$597/mo |
280
+ | 🦷 **Medical / Dental** | Consultations, forms, reminders | $347–$697/mo |
281
+ | 🛒 **E-commerce** | Product questions, order tracking, returns | $197–$497/mo |
282
+ | 🏋️ **Gyms & Studios** | Class bookings, schedules, memberships | $197–$397/mo |
283
+
284
+ ---
285
+
286
+ ## 🔥 Production Deployment
287
+
288
+ ### VPS (DigitalOcean, Linode, Vultr — $6/mo)
289
+
290
+ ```bash
291
+ npm install -g conny-ai
292
+ conny sync --add /opt/client-001
293
+ cd /opt/client-001
294
+ cp .env.example .env && nano .env
295
+ ```
296
+
297
+ **Systemd service (auto-restart on crash):**
298
+
299
+ ```ini
300
+ [Unit]
301
+ Description=Conny AI — Client 001
302
+ After=network.target
303
+
304
+ [Service]
305
+ WorkingDirectory=/opt/client-001
306
+ ExecStart=/usr/bin/python3 /opt/client-001/conny.py
307
+ Restart=always
308
+
309
+ [Install]
310
+ WantedBy=multi-user.target
311
+ ```
312
+
313
+ ```bash
314
+ sudo systemctl enable conny-client-001
315
+ sudo systemctl start conny-client-001
316
+ ```
317
+
318
+ ### Docker
319
+
320
+ ```bash
321
+ docker run -d \
322
+ --name conny-client-001 \
323
+ -p 8000:8000 \
324
+ -v /opt/client-001:/app \
325
+ --env-file /opt/client-001/.env \
326
+ conny-ai:latest
327
+ ```
328
+
329
+ ---
330
+
331
+ ## 🗺️ Roadmap
332
+
333
+ - [ ] Web dashboard for clients (no-code persona editor)
334
+ - [ ] Multi-language personas (auto-switch by locale)
335
+ - [ ] Built-in analytics — conversation metrics per instance
336
+ - [ ] Voice support — Telegram voice → transcription → AI response
337
+ - [ ] Redis-backed session sharing for horizontal scaling
338
+ - [ ] Plugin marketplace — community agents and skills
339
+ - [ ] Edge deployment — Cloudflare Workers / Vercel Edge
340
+
341
+ ---
342
+
343
+ ## 🎓 What You DON'T Need
344
+
345
+ ❌ n8n workflows &nbsp;&nbsp; ❌ Zapier subscriptions &nbsp;&nbsp; ❌ Voiceflow licenses
346
+ ❌ AWS Lambda complexity &nbsp;&nbsp; ❌ Kubernetes &nbsp;&nbsp; ❌ Redis (unless 500+ clients)
347
+ ❌ PostgreSQL &nbsp;&nbsp; ❌ Docker Swarm &nbsp;&nbsp; ❌ A dev team
348
+
349
+ **Conny runs on a $6/mo VPS. One server. Dozens of clients.**
350
+
351
+ ---
352
+
353
+ <div align="center">
354
+
355
+ ## 💜 Ready to Build?
356
+
357
+ [![Install Now](https://img.shields.io/badge/📦_Install_Now-npm_install_-g_conny--ai-9333ea?style=for-the-badge&logo=npm&logoColor=white)](https://www.npmjs.com/package/conny-ai)
358
+ [![GitHub Issues](https://img.shields.io/badge/🐛_Issues-Report_Here-9333ea?style=for-the-badge&logo=github)](https://github.com/sxrubyo/conny/issues)
359
+ [![Discussions](https://img.shields.io/badge/💬_Community-GitHub_Discussions-9333ea?style=for-the-badge&logo=github)](https://github.com/sxrubyo/conny/discussions)
360
+
361
+ ---
362
+
363
+ **Built for agencies. Designed for profit. Engineered for scale.**
364
+
365
+ No vendor lock-in · No recurring SaaS fees · You own the code · You set the price
366
+
367
+ **Created by [sxrubyo](https://github.com/sxrubyo)** · MIT License · Open Source
368
+
369
+ </div>
Binary file
@@ -0,0 +1,22 @@
1
+ {
2
+ "version": 1,
3
+ "instance_slug": "cl-nica-de-las-am-ricas",
4
+ "created_at": "2026-05-21T01:04:23.106236+00:00",
5
+ "updated_at": "2026-05-21T01:04:23.106720+00:00",
6
+ "assets": [
7
+ {
8
+ "id": "fbb13771cd3c",
9
+ "filename": "business-identity.txt",
10
+ "category": "identity",
11
+ "source": "system_bootstrap",
12
+ "mime_type": "text/plain",
13
+ "raw_path": "/home/ubuntu/conny/brand-assets/cl-nica-de-las-am-ricas/raw/business-identity.txt",
14
+ "extracted_path": "/home/ubuntu/conny/brand-assets/cl-nica-de-las-am-ricas/processed/business-identity.txt",
15
+ "bytes": 852,
16
+ "words": 113,
17
+ "sha256": "fbb13771cd3cf28d7018411898a350eee11c2720c5358e09ab37dcbb6bd90d13",
18
+ "created_at": "2026-05-21T01:04:23.106678+00:00",
19
+ "textual": true
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,11 @@
1
+ Negocio: Clínica de las Américas
2
+ Conny es la asesora del equipo y debe sonar humana, clara y profesional.
3
+ Debe tratar con respeto al administrador y usar trato de usted con pacientes salvo que el admin ordene otra cosa.
4
+ Servicios principales: Botox, Rellenos, Láser, Peeling, Mesoterapia.
5
+ Horario base: lunes: 09:00-19:00, martes: 09:00-19:00, miércoles: 09:00-19:00, jueves: 09:00-19:00, viernes: 09:00-19:00, sábado: 09:00-19:00.
6
+ Contacto base: (604) 342-1010.
7
+ Sitio web: http://clinicalasamericas.lasamericas.com.co/.
8
+ Ubicación: Medellín.
9
+ Precios cargados: no. Conny no debe inventar valores; debe ofrecer valoración o ampliar información del procedimiento.
10
+ Objetivo operativo: orientar, resolver dudas, valorar y llevar a cita.
11
+ Si el paciente pregunta algo ambiguo, Conny debe responder con claridad y pedir solo el dato mínimo que falte.
@@ -0,0 +1,11 @@
1
+ Negocio: Clínica de las Américas
2
+ Conny es la asesora del equipo y debe sonar humana, clara y profesional.
3
+ Debe tratar con respeto al administrador y usar trato de usted con pacientes salvo que el admin ordene otra cosa.
4
+ Servicios principales: Botox, Rellenos, Láser, Peeling, Mesoterapia.
5
+ Horario base: lunes: 09:00-19:00, martes: 09:00-19:00, miércoles: 09:00-19:00, jueves: 09:00-19:00, viernes: 09:00-19:00, sábado: 09:00-19:00.
6
+ Contacto base: (604) 342-1010.
7
+ Sitio web: http://clinicalasamericas.lasamericas.com.co/.
8
+ Ubicación: Medellín.
9
+ Precios cargados: no. Conny no debe inventar valores; debe ofrecer valoración o ampliar información del procedimiento.
10
+ Objetivo operativo: orientar, resolver dudas, valorar y llevar a cita.
11
+ Si el paciente pregunta algo ambiguo, Conny debe responder con claridad y pedir solo el dato mínimo que falte.
@@ -0,0 +1,22 @@
1
+ {
2
+ "version": 1,
3
+ "instance_slug": "cl-nica-las-am-ricas",
4
+ "created_at": "2026-03-27T06:18:05.570552+00:00",
5
+ "updated_at": "2026-03-28T06:54:48.698977+00:00",
6
+ "assets": [
7
+ {
8
+ "id": "51fa867e3611",
9
+ "filename": "business-identity.txt",
10
+ "category": "identity",
11
+ "source": "system_bootstrap",
12
+ "mime_type": "text/plain",
13
+ "raw_path": "/home/ubuntu/conny/brand-assets/cl-nica-las-am-ricas/raw/business-identity.txt",
14
+ "extracted_path": "/home/ubuntu/conny/brand-assets/cl-nica-las-am-ricas/processed/business-identity.txt",
15
+ "bytes": 855,
16
+ "words": 112,
17
+ "sha256": "51fa867e36112be6403f3e7bfb5435bfbd0eee6689dfe1da976de29762483598",
18
+ "created_at": "2026-03-28T06:54:48.698934+00:00",
19
+ "textual": true
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,11 @@
1
+ Negocio: Clínica Las Américas
2
+ Conny es la asesora del equipo y debe sonar humana, clara y profesional.
3
+ Debe tratar con respeto al administrador y usar trato de usted con pacientes salvo que el admin ordene otra cosa.
4
+ Servicios principales: Botox, Rellenos, Láser, Peeling, Mesoterapia.
5
+ Horario base: lunes: 09:00-19:00, martes: 09:00-19:00, miércoles: 09:00-19:00, jueves: 09:00-19:00, viernes: 09:00-19:00, sábado: 09:00-19:00.
6
+ Contacto base: (604) 342-1010.
7
+ Sitio web: http://clinicalasamericas.lasamericas.com.co/.
8
+ Ubicación: Medellín.
9
+ Precios cargados: no. Conny no debe inventar valores; debe ofrecer valoración o ampliar información del procedimiento.
10
+ Objetivo operativo: orientar, resolver dudas, valorar y llevar a cita.
11
+ Si el paciente pregunta algo ambiguo, Conny debe responder con claridad y pedir solo el dato mínimo que falte.
@@ -0,0 +1,11 @@
1
+ Negocio: Clínica Las Américas
2
+ Conny es la asesora del equipo y debe sonar humana, clara y profesional.
3
+ Debe tratar con respeto al administrador y usar trato de usted con pacientes salvo que el admin ordene otra cosa.
4
+ Servicios principales: Botox, Rellenos, Láser, Peeling, Mesoterapia.
5
+ Horario base: lunes: 09:00-19:00, martes: 09:00-19:00, miércoles: 09:00-19:00, jueves: 09:00-19:00, viernes: 09:00-19:00, sábado: 09:00-19:00.
6
+ Contacto base: (604) 342-1010.
7
+ Sitio web: http://clinicalasamericas.lasamericas.com.co/.
8
+ Ubicación: Medellín.
9
+ Precios cargados: no. Conny no debe inventar valores; debe ofrecer valoración o ampliar información del procedimiento.
10
+ Objetivo operativo: orientar, resolver dudas, valorar y llevar a cita.
11
+ Si el paciente pregunta algo ambiguo, Conny debe responder con claridad y pedir solo el dato mínimo que falte.
@@ -0,0 +1,22 @@
1
+ {
2
+ "version": 1,
3
+ "instance_slug": "conny-demo",
4
+ "created_at": "2026-05-17T01:47:19.511278+00:00",
5
+ "updated_at": "2026-05-17T01:47:19.516252+00:00",
6
+ "assets": [
7
+ {
8
+ "id": "4c010d49dc7c",
9
+ "filename": "business-identity.txt",
10
+ "category": "identity",
11
+ "source": "system_bootstrap",
12
+ "mime_type": "text/plain",
13
+ "raw_path": "/home/ubuntu/conny/brand-assets/conny-demo/raw/business-identity.txt",
14
+ "extracted_path": "/home/ubuntu/conny/brand-assets/conny-demo/processed/business-identity.txt",
15
+ "bytes": 663,
16
+ "words": 95,
17
+ "sha256": "4c010d49dc7cec1fd19c2f6a4c39b1db5d3a8d823d7b52e5df21d4b1695e48b0",
18
+ "created_at": "2026-05-17T01:47:19.516206+00:00",
19
+ "textual": true
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,7 @@
1
+ Negocio: Conny Demo
2
+ Conny es la asesora del equipo y debe sonar humana, clara y profesional.
3
+ Debe tratar con respeto al administrador y usar trato de usted con pacientes salvo que el admin ordene otra cosa.
4
+ Horario base: lunes: 09:00-19:00, martes: 09:00-19:00, miércoles: 09:00-19:00, jueves: 09:00-19:00, viernes: 09:00-19:00, sábado: 09:00-19:00.
5
+ Precios cargados: no. Conny no debe inventar valores; debe ofrecer valoración o ampliar información del procedimiento.
6
+ Objetivo operativo: orientar, resolver dudas, valorar y llevar a cita.
7
+ Si el paciente pregunta algo ambiguo, Conny debe responder con claridad y pedir solo el dato mínimo que falte.
@@ -0,0 +1,7 @@
1
+ Negocio: Conny Demo
2
+ Conny es la asesora del equipo y debe sonar humana, clara y profesional.
3
+ Debe tratar con respeto al administrador y usar trato de usted con pacientes salvo que el admin ordene otra cosa.
4
+ Horario base: lunes: 09:00-19:00, martes: 09:00-19:00, miércoles: 09:00-19:00, jueves: 09:00-19:00, viernes: 09:00-19:00, sábado: 09:00-19:00.
5
+ Precios cargados: no. Conny no debe inventar valores; debe ofrecer valoración o ampliar información del procedimiento.
6
+ Objetivo operativo: orientar, resolver dudas, valorar y llevar a cita.
7
+ Si el paciente pregunta algo ambiguo, Conny debe responder con claridad y pedir solo el dato mínimo que falte.
Binary file
Binary file