neuralnode 2.2.4__tar.gz → 2.2.6__tar.gz

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 (518) hide show
  1. {neuralnode-2.2.4 → neuralnode-2.2.6}/.env.example +4 -0
  2. {neuralnode-2.2.4 → neuralnode-2.2.6}/PKG-INFO +29 -2
  3. {neuralnode-2.2.4 → neuralnode-2.2.6}/README.md +28 -1
  4. neuralnode-2.2.6/deployment/early-access-api/002-retention-rate-limits.sql +35 -0
  5. neuralnode-2.2.6/deployment/early-access-api/003-security-hardening.sql +46 -0
  6. neuralnode-2.2.6/deployment/early-access-api/004-production-readiness.sql +39 -0
  7. neuralnode-2.2.6/deployment/early-access-api/Dockerfile +14 -0
  8. neuralnode-2.2.6/deployment/early-access-api/README.md +79 -0
  9. neuralnode-2.2.6/deployment/early-access-api/agent-mode-self-test.js +117 -0
  10. neuralnode-2.2.6/deployment/early-access-api/assets/tokenai-logo.png +0 -0
  11. neuralnode-2.2.6/deployment/early-access-api/backup-postgres.sh +61 -0
  12. neuralnode-2.2.6/deployment/early-access-api/docker-compose.aws.yml +94 -0
  13. neuralnode-2.2.6/deployment/early-access-api/gateway-self-test.js +92 -0
  14. neuralnode-2.2.6/deployment/early-access-api/install-production-readiness.sh +65 -0
  15. neuralnode-2.2.6/deployment/early-access-api/mock-model-server.js +47 -0
  16. neuralnode-2.2.6/deployment/early-access-api/model-gateway.js +1069 -0
  17. neuralnode-2.2.6/deployment/early-access-api/model-integration-audit.sql +21 -0
  18. neuralnode-2.2.6/deployment/early-access-api/operations-monitor.py +168 -0
  19. neuralnode-2.2.6/deployment/early-access-api/package-lock.json +1032 -0
  20. neuralnode-2.2.6/deployment/early-access-api/package.json +17 -0
  21. neuralnode-2.2.6/deployment/early-access-api/production-readiness-self-test.js +157 -0
  22. neuralnode-2.2.6/deployment/early-access-api/production-soak-test.js +118 -0
  23. neuralnode-2.2.6/deployment/early-access-api/queue-saturation-self-test.js +96 -0
  24. neuralnode-2.2.6/deployment/early-access-api/retention-rpm-self-test.js +162 -0
  25. neuralnode-2.2.6/deployment/early-access-api/run-retention-self-test.sh +22 -0
  26. neuralnode-2.2.6/deployment/early-access-api/security-hardening-self-test.js +191 -0
  27. neuralnode-2.2.6/deployment/early-access-api/server.patch +44 -0
  28. neuralnode-2.2.6/deployment/early-access-api/server.production.js +1512 -0
  29. neuralnode-2.2.6/deployment/early-access-api/tokenai-early-access-backup.service +8 -0
  30. neuralnode-2.2.6/deployment/early-access-api/tokenai-early-access-backup.timer +10 -0
  31. neuralnode-2.2.6/deployment/early-access-api/tokenai-early-access-monitor.service +13 -0
  32. neuralnode-2.2.6/deployment/early-access-api/tokenai-early-access-monitor.timer +11 -0
  33. neuralnode-2.2.6/deployment/model-server/README.md +36 -0
  34. neuralnode-2.2.6/deployment/model-server/configure-early-access-upstream +23 -0
  35. neuralnode-2.2.6/deployment/model-server/direct-vpc-cutover.md +24 -0
  36. neuralnode-2.2.6/deployment/model-server/horus-cyper-worker +28 -0
  37. neuralnode-2.2.6/deployment/model-server/horus-cyper-worker@.service +26 -0
  38. neuralnode-2.2.6/deployment/model-server/horus-model-tunnel.service +24 -0
  39. neuralnode-2.2.6/deployment/model-server/install-backup-receiver.sh +19 -0
  40. neuralnode-2.2.6/deployment/model-server/llama-response-parser-fallback.patch +15 -0
  41. neuralnode-2.2.6/deployment/model-server/receive-tokenai-backup +64 -0
  42. neuralnode-2.2.6/examples/horus_cyper_nano_agent_mode.py +67 -0
  43. neuralnode-2.2.6/examples/horus_cyper_nano_early_access.py +22 -0
  44. {neuralnode-2.2.4 → neuralnode-2.2.6}/pyproject.toml +7 -1
  45. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/__init__.py +5 -1
  46. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/__init__.py +6 -0
  47. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/__init__.py +8 -1
  48. neuralnode-2.2.6/src/neuralnode/providers/chat/horus_cyper_nano.py +374 -0
  49. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/horus.py +248 -13
  50. neuralnode-2.2.6/tests/test_horus_cyper_nano_api.py +199 -0
  51. {neuralnode-2.2.4 → neuralnode-2.2.6}/tests/test_release_readiness.py +3 -3
  52. {neuralnode-2.2.4 → neuralnode-2.2.6}/.github/workflows/tests.yml +0 -0
  53. {neuralnode-2.2.4 → neuralnode-2.2.6}/Dockerfile +0 -0
  54. {neuralnode-2.2.4 → neuralnode-2.2.6}/LICENSE +0 -0
  55. {neuralnode-2.2.4 → neuralnode-2.2.6}/docker-compose.yml +0 -0
  56. {neuralnode-2.2.4 → neuralnode-2.2.6}/docs/documentation.md +0 -0
  57. {neuralnode-2.2.4 → neuralnode-2.2.6}/docs/ecosystem_plan.md +0 -0
  58. {neuralnode-2.2.4 → neuralnode-2.2.6}/docs/replica_voice_ids.csv +0 -0
  59. {neuralnode-2.2.4 → neuralnode-2.2.6}/docs/replica_voice_ids.md +0 -0
  60. {neuralnode-2.2.4 → neuralnode-2.2.6}/docs/telegram_guide.md +0 -0
  61. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/agent_with_tools.py +0 -0
  62. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/basic_chat.py +0 -0
  63. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/01_basic_usage.py +0 -0
  64. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/02_horus_lens.py +0 -0
  65. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/03_one_liner.py +0 -0
  66. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/04_custom_cache.py +0 -0
  67. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/05_4bit_quantization.py +0 -0
  68. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/06_8bit_quantization.py +0 -0
  69. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/07_multi_gpu.py +0 -0
  70. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/08_flash_attention.py +0 -0
  71. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/09_data_types.py +0 -0
  72. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/10_generation_params.py +0 -0
  73. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/11_streaming.py +0 -0
  74. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/12_chat_templates.py +0 -0
  75. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/13_offline_mode.py +0 -0
  76. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/14_force_download.py +0 -0
  77. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/15_model_info.py +0 -0
  78. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/16_cpu_offloading.py +0 -0
  79. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/17_cpu_only.py +0 -0
  80. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/18_production_setup.py +0 -0
  81. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/19_gguf_4bit.py +0 -0
  82. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/20_gguf_5bit.py +0 -0
  83. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/21_gguf_6bit.py +0 -0
  84. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/22_gguf_8bit.py +0 -0
  85. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/23_gguf_16bit.py +0 -0
  86. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/24_list_models.py +0 -0
  87. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/25_interactive_chat.py +0 -0
  88. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/26_horus_hiero.py +0 -0
  89. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_codes_camples/README.md +0 -0
  90. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_download_guide.py +0 -0
  91. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_examples.py +0 -0
  92. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_tq_ready_gguf.py +0 -0
  93. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/horus_transformers_features.py +0 -0
  94. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/local_models.py +0 -0
  95. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/neuralnode_v21_complete_demo.py +0 -0
  96. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/openclaw_demo.py +0 -0
  97. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/shade_model_with_tools.py +0 -0
  98. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/telegram_bot_demo.py +0 -0
  99. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/thinking_mode_example.py +0 -0
  100. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/tts_demo.py +0 -0
  101. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/turboquant_example.py +0 -0
  102. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/v3_features.py +0 -0
  103. {neuralnode-2.2.4 → neuralnode-2.2.6}/examples/whatsapp_bot_demo.py +0 -0
  104. {neuralnode-2.2.4 → neuralnode-2.2.6}/horus_chat_voice.py +0 -0
  105. {neuralnode-2.2.4 → neuralnode-2.2.6}/neuralnode_horus_replica_telegram.ipynb +0 -0
  106. {neuralnode-2.2.4 → neuralnode-2.2.6}/publish.bat +0 -0
  107. {neuralnode-2.2.4 → neuralnode-2.2.6}/publish.sh +0 -0
  108. {neuralnode-2.2.4 → neuralnode-2.2.6}/requirements_shade.txt +0 -0
  109. {neuralnode-2.2.4 → neuralnode-2.2.6}/scripts/setup.py +0 -0
  110. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/debug_import.py +0 -0
  111. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/agents/__init__.py +0 -0
  112. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/chains/__init__.py +0 -0
  113. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/config/__init__.py +0 -0
  114. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/core/__init__.py +0 -0
  115. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/core/openai_blocker.py +0 -0
  116. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/diagnostics/__init__.py +0 -0
  117. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/__init__.py +0 -0
  118. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/discord.py +0 -0
  119. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/openclaw.py +0 -0
  120. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/slack.py +0 -0
  121. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/telegram.py +0 -0
  122. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/README.md +0 -0
  123. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/core-development.mdc +0 -0
  124. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/cursor.json +0 -0
  125. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/project-context.mdc +0 -0
  126. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/controller-rules.mdc +0 -0
  127. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/dto-rules.mdc +0 -0
  128. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/guard-rules.mdc +0 -0
  129. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/integration-channel-rules.mdc +0 -0
  130. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/integration-chatbot-rules.mdc +0 -0
  131. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/integration-event-rules.mdc +0 -0
  132. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/integration-storage-rules.mdc +0 -0
  133. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/route-rules.mdc +0 -0
  134. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/service-rules.mdc +0 -0
  135. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/type-rules.mdc +0 -0
  136. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/util-rules.mdc +0 -0
  137. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.cursor/rules/specialized-rules/validate-rules.mdc +0 -0
  138. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.dockerignore +0 -0
  139. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.env.example +0 -0
  140. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.eslintignore +0 -0
  141. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.eslintrc.js +0 -0
  142. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.gitignore +0 -0
  143. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.gitmodules +0 -0
  144. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.husky/README.md +0 -0
  145. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.husky/commit-msg +0 -0
  146. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.husky/pre-commit +0 -0
  147. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.husky/pre-push +0 -0
  148. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.prettierrc.js +0 -0
  149. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/.vscode/settings.json +0 -0
  150. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/AGENTS.md +0 -0
  151. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/CHANGELOG.md +0 -0
  152. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/CLAUDE.md +0 -0
  153. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/CONTRIBUTING.md +0 -0
  154. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/kafka/docker-compose.yaml +0 -0
  155. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/minio/docker-compose.yaml +0 -0
  156. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/mysql/docker-compose.yaml +0 -0
  157. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/postgres/docker-compose.yaml +0 -0
  158. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/rabbitmq/docker-compose.yaml +0 -0
  159. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/redis/docker-compose.yaml +0 -0
  160. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/scripts/deploy_database.sh +0 -0
  161. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/scripts/env_functions.sh +0 -0
  162. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/scripts/generate_database.sh +0 -0
  163. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Docker/swarm/evolution_api_v2.yaml +0 -0
  164. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Dockerfile +0 -0
  165. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Dockerfile.metrics +0 -0
  166. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Extras/chatwoot/configurar_admin.json +0 -0
  167. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Extras/chatwoot/criador_de_empresas.json +0 -0
  168. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/Extras/chatwoot/criador_de_inbox.json +0 -0
  169. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/LICENSE +0 -0
  170. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/NOTICE +0 -0
  171. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/README.md +0 -0
  172. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/SECURITY.md +0 -0
  173. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/TRADEMARKS.md +0 -0
  174. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/commitlint.config.js +0 -0
  175. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/docker-compose.dev.yaml +0 -0
  176. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/docker-compose.yaml +0 -0
  177. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/env.example +0 -0
  178. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/grafana-dashboard.json.example +0 -0
  179. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/local_install.sh +0 -0
  180. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/manager/dist/assets/images/evolution-logo.png +0 -0
  181. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/manager/dist/assets/index-CO3NSIFj.js +0 -0
  182. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/manager/dist/assets/index-DsIrum0U.css +0 -0
  183. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/manager/dist/index.html +0 -0
  184. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/manager_install.sh +0 -0
  185. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/package-lock.json +0 -0
  186. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/package.json +0 -0
  187. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20240809105427_init/migration.sql +0 -0
  188. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20240813153900_add_unique_index_for_remoted_jid_and_instance_in_contacts/migration.sql +0 -0
  189. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20240814173138_add_ignore_jids_chatwoot/migration.sql +0 -0
  190. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20240814214314_integrations_unification/migration.sql +0 -0
  191. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20240821203259_add_postgres_migrations/migration.sql +0 -0
  192. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20240824162012_add_type_on_integration_sessions/migration.sql +0 -0
  193. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20240825131301_change_to_evolution_bot/migration.sql +0 -0
  194. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20241001172800_add_message_status/migration.sql +0 -0
  195. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20241108101333_fix_message_status_as_string/migration.sql +0 -0
  196. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250214181954_add_wavoip_token_column/migration.sql +0 -0
  197. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250225180031_add_nats_integration/migration.sql +0 -0
  198. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250510035200_add_wavoip_token_to_settings_table/migration.sql +0 -0
  199. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250514232744_add_n8n_table/migration.sql +0 -0
  200. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250515211815_add_evoai_table/migration.sql +0 -0
  201. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250516012152_remove_unique_atribute_for_file_name_in_media/migration.sql +0 -0
  202. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250612155048_add_coluns_trypebot_tables/migration.sql +0 -0
  203. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250613143000_add_lid_column_to_is_onwhatsapp/migration.sql +0 -0
  204. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/20250918183910_add_kafka_integration/migration.sql +0 -0
  205. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-migrations/migration_lock.toml +0 -0
  206. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/mysql-schema.prisma +0 -0
  207. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240609181238_init/migration.sql +0 -0
  208. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240610144159_create_column_profile_name_instance/migration.sql +0 -0
  209. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240611125754_create_columns_whitelabel_chatwoot/migration.sql +0 -0
  210. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240611202817_create_columns_debounce_time_typebot/migration.sql +0 -0
  211. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240712144948_add_business_id_column_to_instances/migration.sql +0 -0
  212. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240712150256_create_templates_table/migration.sql +0 -0
  213. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240712155950_adjusts_in_templates_table/migration.sql +0 -0
  214. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240712162206_remove_templates_table/migration.sql +0 -0
  215. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240712223655_column_fallback_typebot/migration.sql +0 -0
  216. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240712230631_column_ignore_jids_typebot/migration.sql +0 -0
  217. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240713184337_add_media_table/migration.sql +0 -0
  218. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240718121437_add_openai_tables/migration.sql +0 -0
  219. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240718123923_adjusts_openai_tables/migration.sql +0 -0
  220. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240722173259_add_name_column_to_openai_creds/migration.sql +0 -0
  221. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240722173518_add_name_column_to_openai_creds/migration.sql +0 -0
  222. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240723152648_adjusts_in_column_openai_creds/migration.sql +0 -0
  223. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240723200254_add_webhookurl_on_message/migration.sql +0 -0
  224. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240725184147_create_template_table/migration.sql +0 -0
  225. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240725202651_add_webhook_url_template_table/migration.sql +0 -0
  226. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240725221646_modify_token_instance_table/migration.sql +0 -0
  227. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240729115127_modify_trigger_type_openai_typebot_table/migration.sql +0 -0
  228. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240729180347_modify_typebot_session_status_openai_typebot_table/migration.sql +0 -0
  229. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240730152156_create_dify_tables/migration.sql +0 -0
  230. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240801193907_add_column_speech_to_text_openai_setting_table/migration.sql +0 -0
  231. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240803163908_add_column_description_on_integrations_table/migration.sql +0 -0
  232. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240808210239_add_column_function_url_openaibot_table/migration.sql +0 -0
  233. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240811021156_add_chat_name_column/migration.sql +0 -0
  234. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240811183328_add_unique_index_for_remoted_jid_and_instance_in_contacts/migration.sql +0 -0
  235. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240813003116_make_label_unique_for_instance/migration.sql +0 -0
  236. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240814173033_add_ignore_jids_chatwoot/migration.sql +0 -0
  237. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240814202359_integrations_unification/migration.sql +0 -0
  238. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240817110155_add_trigger_type_advanced/migration.sql +0 -0
  239. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240819154941_add_context_to_integration_session/migration.sql +0 -0
  240. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240821120816_bot_id_integration_session/migration.sql +0 -0
  241. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240821171327_add_generic_bot_table/migration.sql +0 -0
  242. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240821194524_add_flowise_table/migration.sql +0 -0
  243. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240824161333_add_type_on_integration_sessions/migration.sql +0 -0
  244. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240825130616_change_to_evolution_bot/migration.sql +0 -0
  245. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240828140837_add_is_on_whatsapp_table/migration.sql +0 -0
  246. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240828141556_remove_name_column_from_on_whatsapp_table/migration.sql +0 -0
  247. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240830193533_changed_table_case/migration.sql +0 -0
  248. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20240906202019_add_headers_on_webhook_config/migration.sql +0 -0
  249. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20241001180457_add_message_status/migration.sql +0 -0
  250. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20241006130306_alter_status_on_message_table/migration.sql +0 -0
  251. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20241007164026_add_unread_messages_on_chat_table/migration.sql +0 -0
  252. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20241011085129_create_pusher_table/migration.sql +0 -0
  253. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20241011100803_split_messages_and_time_per_char_integrations/migration.sql +0 -0
  254. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20241017144950_create_index/migration.sql +0 -0
  255. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250116001415_add_wavoip_token_to_settings_table/migration.sql +0 -0
  256. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250225180031_add_nats_integration/migration.sql +0 -0
  257. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250514232744_add_n8n_table/migration.sql +0 -0
  258. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250515211815_add_evoai_table/migration.sql +0 -0
  259. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250516012152_remove_unique_atribute_for_file_name_in_media/migration.sql +0 -0
  260. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250612155048_add_coluns_trypebot_tables/migration.sql +0 -0
  261. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250613143000_add_lid_column_to_is_onwhatsapp/migration.sql +0 -0
  262. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20250918182355_add_kafka_integration/migration.sql +0 -0
  263. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/20251122003044_add_chat_instance_remotejid_unique/migration.sql +0 -0
  264. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-migrations/migration_lock.toml +0 -0
  265. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/postgresql-schema.prisma +0 -0
  266. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prisma/psql_bouncer-schema.prisma +0 -0
  267. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/prometheus.yml.example +0 -0
  268. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/hover-evolution.png +0 -0
  269. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/atendai-logo.png +0 -0
  270. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/bmc_qr.png +0 -0
  271. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/code.png +0 -0
  272. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/cover.png +0 -0
  273. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/evolution-logo.png +0 -0
  274. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/evolution-pro.png +0 -0
  275. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/picpay-image.png +0 -0
  276. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/picpay-qr.jpeg +0 -0
  277. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/qrcode-pix.png +0 -0
  278. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/public/images/video-cover.png +0 -0
  279. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/runWithProvider.js +0 -0
  280. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/@types/express.d.ts +0 -0
  281. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/abstract/abstract.cache.ts +0 -0
  282. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/abstract/abstract.repository.ts +0 -0
  283. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/abstract/abstract.router.ts +0 -0
  284. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/business.controller.ts +0 -0
  285. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/call.controller.ts +0 -0
  286. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/chat.controller.ts +0 -0
  287. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/group.controller.ts +0 -0
  288. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/instance.controller.ts +0 -0
  289. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/label.controller.ts +0 -0
  290. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/proxy.controller.ts +0 -0
  291. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/sendMessage.controller.ts +0 -0
  292. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/settings.controller.ts +0 -0
  293. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/controllers/template.controller.ts +0 -0
  294. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/business.dto.ts +0 -0
  295. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/call.dto.ts +0 -0
  296. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/chat.dto.ts +0 -0
  297. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/chatbot.dto.ts +0 -0
  298. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/group.dto.ts +0 -0
  299. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/instance.dto.ts +0 -0
  300. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/label.dto.ts +0 -0
  301. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/proxy.dto.ts +0 -0
  302. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/sendMessage.dto.ts +0 -0
  303. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/settings.dto.ts +0 -0
  304. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/dto/template.dto.ts +0 -0
  305. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/guards/auth.guard.ts +0 -0
  306. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/guards/instance.guard.ts +0 -0
  307. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/guards/telemetry.guard.ts +0 -0
  308. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/channel.controller.ts +0 -0
  309. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/channel.router.ts +0 -0
  310. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/evolution/evolution.channel.service.ts +0 -0
  311. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/evolution/evolution.controller.ts +0 -0
  312. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/evolution/evolution.router.ts +0 -0
  313. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/meta/meta.controller.ts +0 -0
  314. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/meta/meta.router.ts +0 -0
  315. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/meta/whatsapp.business.service.ts +0 -0
  316. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/whatsapp/baileys.controller.ts +0 -0
  317. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/whatsapp/baileys.router.ts +0 -0
  318. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/whatsapp/baileysMessage.processor.ts +0 -0
  319. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/whatsapp/voiceCalls/transport.type.ts +0 -0
  320. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/whatsapp/voiceCalls/useVoiceCallsBaileys.ts +0 -0
  321. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts +0 -0
  322. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/base-chatbot.controller.ts +0 -0
  323. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/base-chatbot.dto.ts +0 -0
  324. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/base-chatbot.service.ts +0 -0
  325. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatbot.controller.ts +0 -0
  326. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatbot.router.ts +0 -0
  327. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatbot.schema.ts +0 -0
  328. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatwoot/controllers/chatwoot.controller.ts +0 -0
  329. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatwoot/dto/chatwoot.dto.ts +0 -0
  330. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatwoot/libs/postgres.client.ts +0 -0
  331. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatwoot/routes/chatwoot.router.ts +0 -0
  332. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts +0 -0
  333. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatwoot/utils/chatwoot-import-helper.ts +0 -0
  334. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/chatwoot/validate/chatwoot.schema.ts +0 -0
  335. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/dify/controllers/dify.controller.ts +0 -0
  336. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/dify/dto/dify.dto.ts +0 -0
  337. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/dify/routes/dify.router.ts +0 -0
  338. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/dify/services/dify.service.ts +0 -0
  339. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/dify/validate/dify.schema.ts +0 -0
  340. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evoai/controllers/evoai.controller.ts +0 -0
  341. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evoai/dto/evoai.dto.ts +0 -0
  342. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evoai/routes/evoai.router.ts +0 -0
  343. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evoai/services/evoai.service.ts +0 -0
  344. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evoai/validate/evoai.schema.ts +0 -0
  345. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evolutionBot/controllers/evolutionBot.controller.ts +0 -0
  346. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evolutionBot/dto/evolutionBot.dto.ts +0 -0
  347. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evolutionBot/routes/evolutionBot.router.ts +0 -0
  348. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evolutionBot/services/evolutionBot.service.ts +0 -0
  349. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/evolutionBot/validate/evolutionBot.schema.ts +0 -0
  350. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/flowise/controllers/flowise.controller.ts +0 -0
  351. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/flowise/dto/flowise.dto.ts +0 -0
  352. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/flowise/routes/flowise.router.ts +0 -0
  353. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/flowise/services/flowise.service.ts +0 -0
  354. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/flowise/validate/flowise.schema.ts +0 -0
  355. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/n8n/controllers/n8n.controller.ts +0 -0
  356. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/n8n/dto/n8n.dto.ts +0 -0
  357. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/n8n/routes/n8n.router.ts +0 -0
  358. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/n8n/services/n8n.service.ts +0 -0
  359. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/n8n/validate/n8n.schema.ts +0 -0
  360. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/openai/controllers/openai.controller.ts +0 -0
  361. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/openai/dto/openai.dto.ts +0 -0
  362. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/openai/routes/openai.router.ts +0 -0
  363. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/openai/services/openai.service.ts +0 -0
  364. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/openai/validate/openai.schema.ts +0 -0
  365. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts +0 -0
  366. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/typebot/dto/typebot.dto.ts +0 -0
  367. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/typebot/routes/typebot.router.ts +0 -0
  368. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/typebot/services/typebot.service.ts +0 -0
  369. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/chatbot/typebot/validate/typebot.schema.ts +0 -0
  370. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/event.controller.ts +0 -0
  371. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/event.dto.ts +0 -0
  372. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/event.manager.ts +0 -0
  373. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/event.router.ts +0 -0
  374. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/event.schema.ts +0 -0
  375. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/kafka/kafka.controller.ts +0 -0
  376. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/kafka/kafka.router.ts +0 -0
  377. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/kafka/kafka.schema.ts +0 -0
  378. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/nats/nats.controller.ts +0 -0
  379. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/nats/nats.router.ts +0 -0
  380. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/pusher/pusher.controller.ts +0 -0
  381. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/pusher/pusher.router.ts +0 -0
  382. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/pusher/pusher.schema.ts +0 -0
  383. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/rabbitmq/rabbitmq.controller.ts +0 -0
  384. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/rabbitmq/rabbitmq.router.ts +0 -0
  385. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/sqs/sqs.controller.ts +0 -0
  386. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/sqs/sqs.router.ts +0 -0
  387. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/webhook/webhook.controller.ts +0 -0
  388. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/webhook/webhook.router.ts +0 -0
  389. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/webhook/webhook.schema.ts +0 -0
  390. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/websocket/websocket.controller.ts +0 -0
  391. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/event/websocket/websocket.router.ts +0 -0
  392. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/integration.dto.ts +0 -0
  393. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/storage/s3/controllers/s3.controller.ts +0 -0
  394. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/storage/s3/dto/media.dto.ts +0 -0
  395. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/storage/s3/libs/minio.server.ts +0 -0
  396. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/storage/s3/routes/s3.router.ts +0 -0
  397. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/storage/s3/services/s3.service.ts +0 -0
  398. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/storage/s3/validate/s3.schema.ts +0 -0
  399. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/integrations/storage/storage.router.ts +0 -0
  400. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/provider/sessions.ts +0 -0
  401. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/repository/repository.service.ts +0 -0
  402. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/business.router.ts +0 -0
  403. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/call.router.ts +0 -0
  404. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/chat.router.ts +0 -0
  405. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/group.router.ts +0 -0
  406. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/index.router.ts +0 -0
  407. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/instance.router.ts +0 -0
  408. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/label.router.ts +0 -0
  409. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/proxy.router.ts +0 -0
  410. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/sendMessage.router.ts +0 -0
  411. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/settings.router.ts +0 -0
  412. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/template.router.ts +0 -0
  413. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/routes/view.router.ts +0 -0
  414. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/server.module.ts +0 -0
  415. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/services/auth.service.ts +0 -0
  416. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/services/cache.service.ts +0 -0
  417. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/services/channel.service.ts +0 -0
  418. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/services/monitor.service.ts +0 -0
  419. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/services/proxy.service.ts +0 -0
  420. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/services/settings.service.ts +0 -0
  421. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/services/template.service.ts +0 -0
  422. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/api/types/wa.types.ts +0 -0
  423. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/cache/cacheengine.ts +0 -0
  424. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/cache/localcache.ts +0 -0
  425. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/cache/rediscache.client.ts +0 -0
  426. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/cache/rediscache.ts +0 -0
  427. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/config/env.config.ts +0 -0
  428. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/config/error.config.ts +0 -0
  429. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/config/event.config.ts +0 -0
  430. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/config/logger.config.ts +0 -0
  431. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/config/path.config.ts +0 -0
  432. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/exceptions/400.exception.ts +0 -0
  433. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/exceptions/401.exception.ts +0 -0
  434. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/exceptions/403.exception.ts +0 -0
  435. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/exceptions/404.exception.ts +0 -0
  436. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/exceptions/500.exception.ts +0 -0
  437. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/exceptions/index.ts +0 -0
  438. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/main.ts +0 -0
  439. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/railway.json +0 -0
  440. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/advancedOperatorsSearch.ts +0 -0
  441. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/createJid.ts +0 -0
  442. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/errorResponse.ts +0 -0
  443. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/fetchLatestWaWebVersion.ts +0 -0
  444. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/findBotByTrigger.ts +0 -0
  445. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/getConversationMessage.ts +0 -0
  446. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/i18n.ts +0 -0
  447. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/instrumentSentry.ts +0 -0
  448. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/makeProxyAgent.ts +0 -0
  449. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/onWhatsappCache.ts +0 -0
  450. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/renderStatus.ts +0 -0
  451. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/sendTelemetry.ts +0 -0
  452. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/server-up.ts +0 -0
  453. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/translations/en.json +0 -0
  454. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/translations/es.json +0 -0
  455. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/translations/pt-BR.json +0 -0
  456. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/use-multi-file-auth-state-prisma.ts +0 -0
  457. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/use-multi-file-auth-state-provider-files.ts +0 -0
  458. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/utils/use-multi-file-auth-state-redis-db.ts +0 -0
  459. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/business.schema.ts +0 -0
  460. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/chat.schema.ts +0 -0
  461. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/group.schema.ts +0 -0
  462. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/instance.schema.ts +0 -0
  463. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/label.schema.ts +0 -0
  464. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/message.schema.ts +0 -0
  465. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/proxy.schema.ts +0 -0
  466. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/settings.schema.ts +0 -0
  467. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/template.schema.ts +0 -0
  468. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/templateDelete.schema.ts +0 -0
  469. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/templateEdit.schema.ts +0 -0
  470. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/src/validate/validate.schema.ts +0 -0
  471. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/tsconfig.json +0 -0
  472. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution-api/tsup.config.ts +0 -0
  473. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp/evolution_rebrander.py +0 -0
  474. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/integrations/whatsapp.py +0 -0
  475. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/memory/__init__.py +0 -0
  476. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/memory/advanced.py +0 -0
  477. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/prompts/__init__.py +0 -0
  478. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/base.py +0 -0
  479. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/ai21.py +0 -0
  480. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/anthropic.py +0 -0
  481. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/bedrock.py +0 -0
  482. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/cohere.py +0 -0
  483. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/deepseek.py +0 -0
  484. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/fireworks.py +0 -0
  485. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/google.py +0 -0
  486. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/groq.py +0 -0
  487. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/mistral.py +0 -0
  488. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/openai.py +0 -0
  489. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/perplexity.py +0 -0
  490. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/together.py +0 -0
  491. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/chat/vertex.py +0 -0
  492. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/embeddings.py +0 -0
  493. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/local/__init__.py +0 -0
  494. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/local_providers.py +0 -0
  495. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/text_generation.py +0 -0
  496. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/providers/universal_local.py +0 -0
  497. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/rag/__init__.py +0 -0
  498. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/reasoning/__init__.py +0 -0
  499. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/replica.py +0 -0
  500. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/speech/__init__.py +0 -0
  501. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/thinking.py +0 -0
  502. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/tools/__init__.py +0 -0
  503. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/tools/advanced.py +0 -0
  504. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/tools/multisearch.py +0 -0
  505. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/tools/system/__init__.py +0 -0
  506. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/tools/system/operations.py +0 -0
  507. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/tools/web/__init__.py +0 -0
  508. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/tts/__init__.py +0 -0
  509. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/turboquant.py +0 -0
  510. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/utils/__init__.py +0 -0
  511. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/utils/dependencies.py +0 -0
  512. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/utils/logger.py +0 -0
  513. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/utils/metrics.py +0 -0
  514. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/vectorstores/__init__.py +0 -0
  515. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/neuralnode/vision/__init__.py +0 -0
  516. {neuralnode-2.2.4 → neuralnode-2.2.6}/src/nn/__init__.py +0 -0
  517. {neuralnode-2.2.4 → neuralnode-2.2.6}/tests/test_openclaw.py +0 -0
  518. {neuralnode-2.2.4 → neuralnode-2.2.6}/tests/test_refactoring.py +0 -0
@@ -15,6 +15,10 @@ GOOGLE_API_KEY=your-google-api-key-here
15
15
  # No API key needed, just ensure Ollama is running
16
16
  OLLAMA_BASE_URL=http://localhost:11434
17
17
 
18
+ # Horus Cyper Nano 1.0 BETA Early Access
19
+ HORUS_CYPER_NANO_API_KEY=horusNN-your-access-token
20
+ HORUS_CYPER_NANO_BASE_URL=https://api.tokenai.llc/v1
21
+
18
22
  # NeuralNode Settings
19
23
  NEURALNODE_DEFAULT_PROVIDER=auto
20
24
  NEURALNODE_MEMORY_ENABLED=true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: neuralnode
3
- Version: 2.2.4
3
+ Version: 2.2.6
4
4
  Summary: Comprehensive AI Framework with 50+ LLM Providers, Advanced Agents, Chains, Memory, RAG, and 100+ Tools
5
5
  Project-URL: Homepage, https://assem.cloud/
6
6
  Project-URL: Documentation, https://neuralnode.readthedocs.io
@@ -220,7 +220,34 @@ print(ai.chat("Hello from NeuralNode"))
220
220
 
221
221
  ## Horus
222
222
 
223
- All Horus models use:
223
+ ### Horus Cyper Nano 1.0 BETA Early Access API
224
+
225
+ Approved Early Access users can call the hosted model through the same
226
+ `NeuralNode` interface. Each Access Token has its own server-enforced RPM limit,
227
+ and API conversations are retained by TokenAI under the Early Access terms.
228
+
229
+ ```python
230
+ import neuralnode as nn
231
+
232
+ ai = nn.NeuralNode(
233
+ provider="horus-cyper-nano",
234
+ model="horus-cyper-nano-1.0-beta",
235
+ api_key="horusNN-XXXXXXXXXXXXXXXX",
236
+ )
237
+
238
+ print(ai.chat("Review this code for defensive cybersecurity issues."))
239
+ ```
240
+
241
+ The client reads `HORUS_CYPER_NANO_API_KEY` automatically. Override
242
+ `HORUS_CYPER_NANO_BASE_URL` only when TokenAI provides a different API endpoint.
243
+ The production API base URL is `https://api.tokenai.llc/v1`. Agent Mode supports
244
+ function tools, required or named tool choices, tool-result messages, and
245
+ buffered SSE compatibility streams. The hosted Early Access model has a 32,768
246
+ token context. See `examples/horus_cyper_nano_agent_mode.py` for the complete
247
+ tool-call round trip. NeuralNode retries temporary HTTP 429, 502, and 503
248
+ responses up to two times by default and respects the API Retry-After header.
249
+
250
+ Locally loaded Horus models use:
224
251
  - unified chat template: `horus_unified`
225
252
  - unified context window: `8192`
226
253
 
@@ -40,7 +40,34 @@ print(ai.chat("Hello from NeuralNode"))
40
40
 
41
41
  ## Horus
42
42
 
43
- All Horus models use:
43
+ ### Horus Cyper Nano 1.0 BETA Early Access API
44
+
45
+ Approved Early Access users can call the hosted model through the same
46
+ `NeuralNode` interface. Each Access Token has its own server-enforced RPM limit,
47
+ and API conversations are retained by TokenAI under the Early Access terms.
48
+
49
+ ```python
50
+ import neuralnode as nn
51
+
52
+ ai = nn.NeuralNode(
53
+ provider="horus-cyper-nano",
54
+ model="horus-cyper-nano-1.0-beta",
55
+ api_key="horusNN-XXXXXXXXXXXXXXXX",
56
+ )
57
+
58
+ print(ai.chat("Review this code for defensive cybersecurity issues."))
59
+ ```
60
+
61
+ The client reads `HORUS_CYPER_NANO_API_KEY` automatically. Override
62
+ `HORUS_CYPER_NANO_BASE_URL` only when TokenAI provides a different API endpoint.
63
+ The production API base URL is `https://api.tokenai.llc/v1`. Agent Mode supports
64
+ function tools, required or named tool choices, tool-result messages, and
65
+ buffered SSE compatibility streams. The hosted Early Access model has a 32,768
66
+ token context. See `examples/horus_cyper_nano_agent_mode.py` for the complete
67
+ tool-call round trip. NeuralNode retries temporary HTTP 429, 502, and 503
68
+ responses up to two times by default and respects the API Retry-After header.
69
+
70
+ Locally loaded Horus models use:
44
71
  - unified chat template: `horus_unified`
45
72
  - unified context window: `8192`
46
73
 
@@ -0,0 +1,35 @@
1
+ BEGIN;
2
+
3
+ ALTER TABLE api_conversations
4
+ DROP CONSTRAINT IF EXISTS api_conversations_special_request_id_fkey;
5
+
6
+ ALTER TABLE api_usage_events
7
+ DROP CONSTRAINT IF EXISTS api_usage_events_special_request_id_fkey;
8
+
9
+ DO $$
10
+ BEGIN
11
+ IF EXISTS (
12
+ SELECT 1
13
+ FROM api_keys
14
+ GROUP BY special_request_id
15
+ HAVING count(*) > 1
16
+ ) THEN
17
+ RAISE EXCEPTION 'Cannot enforce one Access Token per user while duplicate API keys exist.';
18
+ END IF;
19
+ END
20
+ $$;
21
+
22
+ CREATE UNIQUE INDEX IF NOT EXISTS api_keys_one_per_user_idx
23
+ ON api_keys (special_request_id);
24
+
25
+ CREATE TABLE IF NOT EXISTS api_request_rate_events (
26
+ id BIGSERIAL PRIMARY KEY,
27
+ api_key_id BIGINT NOT NULL REFERENCES api_keys(id) ON DELETE CASCADE,
28
+ special_request_id TEXT NOT NULL,
29
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now()
30
+ );
31
+
32
+ CREATE INDEX IF NOT EXISTS api_request_rate_events_key_time_idx
33
+ ON api_request_rate_events (api_key_id, created_at DESC);
34
+
35
+ COMMIT;
@@ -0,0 +1,46 @@
1
+ BEGIN;
2
+
3
+ ALTER TABLE api_keys
4
+ ADD COLUMN IF NOT EXISTS key_ciphertext TEXT,
5
+ ADD COLUMN IF NOT EXISTS metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
6
+ ADD COLUMN IF NOT EXISTS expires_at TIMESTAMPTZ;
7
+
8
+ DO $$
9
+ BEGIN
10
+ IF NOT EXISTS (
11
+ SELECT 1 FROM pg_constraint WHERE conname = 'api_keys_rpm_limit_check'
12
+ ) THEN
13
+ ALTER TABLE api_keys
14
+ ADD CONSTRAINT api_keys_rpm_limit_check CHECK (rpm_limit BETWEEN 1 AND 600);
15
+ END IF;
16
+
17
+ IF NOT EXISTS (
18
+ SELECT 1 FROM pg_constraint WHERE conname = 'access_requests_rpm_limit_check'
19
+ ) THEN
20
+ ALTER TABLE access_requests
21
+ ADD CONSTRAINT access_requests_rpm_limit_check CHECK (rpm_limit BETWEEN 1 AND 600);
22
+ END IF;
23
+ END
24
+ $$;
25
+
26
+ CREATE TABLE IF NOT EXISTS public_request_rate_events (
27
+ id BIGSERIAL PRIMARY KEY,
28
+ fingerprint TEXT NOT NULL,
29
+ event_type TEXT NOT NULL,
30
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now()
31
+ );
32
+
33
+ CREATE INDEX IF NOT EXISTS public_request_rate_events_lookup_idx
34
+ ON public_request_rate_events (fingerprint, event_type, created_at DESC);
35
+
36
+ CREATE TABLE IF NOT EXISTS api_inflight_requests (
37
+ id UUID PRIMARY KEY,
38
+ api_key_id BIGINT NOT NULL REFERENCES api_keys(id) ON DELETE CASCADE,
39
+ expires_at TIMESTAMPTZ NOT NULL,
40
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now()
41
+ );
42
+
43
+ CREATE INDEX IF NOT EXISTS api_inflight_requests_key_expiry_idx
44
+ ON api_inflight_requests (api_key_id, expires_at);
45
+
46
+ COMMIT;
@@ -0,0 +1,39 @@
1
+ BEGIN;
2
+
3
+ ALTER TABLE api_keys
4
+ ADD COLUMN IF NOT EXISTS safety_strikes INTEGER NOT NULL DEFAULT 0,
5
+ ADD COLUMN IF NOT EXISTS disabled_reason TEXT;
6
+
7
+ CREATE TABLE IF NOT EXISTS inference_queue_leases (
8
+ id UUID PRIMARY KEY,
9
+ request_id TEXT NOT NULL UNIQUE,
10
+ api_key_id BIGINT NOT NULL REFERENCES api_keys(id) ON DELETE CASCADE,
11
+ special_request_id TEXT NOT NULL,
12
+ status TEXT NOT NULL CHECK (status IN ('waiting', 'running')),
13
+ queued_at TIMESTAMPTZ NOT NULL DEFAULT now(),
14
+ started_at TIMESTAMPTZ,
15
+ expires_at TIMESTAMPTZ NOT NULL
16
+ );
17
+
18
+ CREATE INDEX IF NOT EXISTS inference_queue_leases_status_time_idx
19
+ ON inference_queue_leases (status, queued_at, expires_at);
20
+
21
+ CREATE TABLE IF NOT EXISTS api_safety_events (
22
+ id BIGSERIAL PRIMARY KEY,
23
+ api_key_id BIGINT REFERENCES api_keys(id) ON DELETE SET NULL,
24
+ special_request_id TEXT NOT NULL,
25
+ request_id TEXT NOT NULL,
26
+ conversation_id UUID,
27
+ severity TEXT NOT NULL CHECK (severity IN ('low', 'medium', 'high', 'critical')),
28
+ action TEXT NOT NULL CHECK (action IN ('observed', 'blocked', 'token_disabled')),
29
+ categories TEXT[] NOT NULL DEFAULT '{}',
30
+ matched_rules TEXT[] NOT NULL DEFAULT '{}',
31
+ content_sha256 TEXT NOT NULL,
32
+ metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
33
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now()
34
+ );
35
+
36
+ CREATE INDEX IF NOT EXISTS api_safety_events_request_time_idx
37
+ ON api_safety_events (special_request_id, created_at DESC);
38
+
39
+ COMMIT;
@@ -0,0 +1,14 @@
1
+ FROM node:22-alpine
2
+
3
+ WORKDIR /app
4
+ COPY package*.json ./
5
+ RUN npm ci --omit=dev
6
+ COPY --chown=node:node *.js ./
7
+ COPY --chown=node:node *.sh ./
8
+ COPY --chown=node:node assets ./assets
9
+ RUN chmod 755 ./*.sh
10
+
11
+ USER node
12
+
13
+ EXPOSE 8080
14
+ CMD ["node", "server.js"]
@@ -0,0 +1,79 @@
1
+ # Horus Cyper Nano Early Access Gateway
2
+
3
+ This module is installed beside the existing TokenAI Early Access API on AWS.
4
+ It reuses the existing Access Token authentication and PostgreSQL pool. The
5
+ deployed API entrypoint is mirrored in `server.production.js`.
6
+
7
+ The public API contract is:
8
+
9
+ - `GET /v1/access`
10
+ - `GET /v1/models`
11
+ - `POST /v1/chat/completions`
12
+
13
+ Production guarantees:
14
+
15
+ - One active Access Token may exist for each Early Access user.
16
+ - Accepted requests are limited by the per-key RPM value stored in PostgreSQL.
17
+ - Every successful completion stores the customer messages and matching model
18
+ response in the same conversation record.
19
+ - Agent Mode accepts function tools, tool choices, assistant tool calls, tool
20
+ results, and buffered SSE responses while retaining the complete interaction.
21
+ - Production inference uses two CUDA workers with a 32,768-token context. The
22
+ public base URL is `https://api.tokenai.llc/v1`.
23
+ - A PostgreSQL-backed FIFO queue limits global model concurrency to two running
24
+ requests. A full queue returns HTTP 503 with `Retry-After` instead of
25
+ overloading the GPU workers.
26
+ - High-confidence malicious cybersecurity or model-extraction requests are
27
+ blocked, audited, and permanently disable the offending Access Token.
28
+ - Raw role markers and duplicate output are rejected and retried against the
29
+ alternate worker before the gateway fails closed.
30
+ - Deleting a user removes their application, email, token, and personal data so
31
+ the email can register again. Conversation and usage audit records are kept
32
+ and shown as belonging to a deleted identity.
33
+
34
+ Database setup runs migrations `001` through `004`. They add the one-token
35
+ unique index, durable rate-limit events, encrypted Access Token recovery,
36
+ concurrency and queue leases, safety events, public endpoint throttling, and
37
+ audit-log retention behavior.
38
+
39
+ `tokenai-early-access-backup.timer` creates and validates a PostgreSQL custom
40
+ dump every day. The dump is encrypted with a unique AES-256 key, the AES key is
41
+ wrapped by an RSA public key, and the archive is copied to the model host. Only
42
+ the off-instance destination has the RSA private key. The receiver verifies the
43
+ checksum, decrypts the dump, and runs `pg_restore --list` before accepting it.
44
+ Local encrypted archives are retained for 14 days and off-instance archives for
45
+ 30 days.
46
+
47
+ `docker-compose.aws.yml` mirrors the AWS deployment. The permanent named
48
+ Cloudflare Tunnel publishes only the private API origin. The edge Worker reaches
49
+ that origin through a Cloudflare VPC Service binding; no Quick Tunnel or public
50
+ origin address is used.
51
+
52
+ `tokenai-early-access-monitor.timer` checks the API, database, edge path, model
53
+ transport, both workers, queue state, GPU health, latency, disk usage, and backup
54
+ age every minute. Alert and recovery messages are delivered through the
55
+ configured TokenAI mailbox.
56
+
57
+ Required model-server configuration:
58
+
59
+ ```dotenv
60
+ MODEL_UPSTREAM_URLS=http://model-worker-1/v1,http://model-worker-2/v1
61
+ MODEL_UPSTREAM_MODEL=deployed-model-id
62
+ MODEL_UPSTREAM_MODE=completion
63
+ MODEL_UPSTREAM_API_KEY=
64
+ MODEL_UPSTREAM_AUTH_HEADER=Authorization
65
+ MODEL_UPSTREAM_AUTH_SCHEME=Bearer
66
+ MODEL_UPSTREAM_TIMEOUT_MS=120000
67
+ ```
68
+
69
+ `MODEL_UPSTREAM_URLS` accepts a comma-separated list of API base URLs or complete
70
+ `/chat/completions` endpoints. Requests are distributed in round-robin order and
71
+ retry another worker after a network error or an HTTP 5xx response. The singular
72
+ `MODEL_UPSTREAM_URL` remains supported for one-worker deployments. Until either
73
+ setting is configured, authenticated requests fail closed with HTTP 503 and are
74
+ recorded as failed usage events.
75
+
76
+ The current model transport is restricted to the Docker bridge address and uses
77
+ a pinned SSH host key. `../model-server/direct-vpc-cutover.md` contains the
78
+ single security-group rule required to replace that transport with direct VPC
79
+ traffic restricted to the Early Access API security group.
@@ -0,0 +1,117 @@
1
+ import crypto from "node:crypto"
2
+ import pg from "pg"
3
+
4
+ const { Pool } = pg
5
+ const pool = new Pool({ connectionString: process.env.DATABASE_URL, max: 2 })
6
+ const suffix = crypto.randomBytes(5).toString("hex").toUpperCase()
7
+ const specialRequestId = `HCN10-AGENT-${suffix}`
8
+ const apiKey = `horusNN-${crypto.randomBytes(12).toString("hex").slice(0, 16)}`
9
+ const keyPrefix = `${apiKey.slice(0, 12)}...`
10
+ const keyHash = crypto.createHash("sha256").update(`${apiKey}:${process.env.API_KEY_PEPPER}`).digest("hex")
11
+ const conversationId = crypto.randomUUID()
12
+ const apiBase = "http://127.0.0.1:18081"
13
+
14
+ async function request(payload) {
15
+ return fetch(`${apiBase}/v1/chat/completions`, {
16
+ method: "POST",
17
+ headers: {
18
+ Authorization: `Bearer ${apiKey}`,
19
+ "Content-Type": "application/json",
20
+ "X-Client-Name": "Agent Mode Self Test",
21
+ },
22
+ body: JSON.stringify({ model: "horus-cyper-nano-1.0-beta", max_tokens: 64, ...payload }),
23
+ })
24
+ }
25
+
26
+ let result = {}
27
+ try {
28
+ await pool.query(
29
+ `INSERT INTO access_requests (
30
+ special_request_id, first_name, second_name, full_name, company_name,
31
+ company_website, job, applicant_type, rpm_limit, business_mail,
32
+ linkedin_profile_url, github_profile_url, portfolio_url, country_or_region,
33
+ use_cases, responsible_use_accepted, responsible_use_accepted_at, status, source
34
+ ) VALUES (
35
+ $1, 'Agent', 'Self Test', 'Agent Self Test', 'TokenAI',
36
+ 'https://tokenai.llc', 'Integration test', 'developer_researcher', 10, $2,
37
+ 'https://linkedin.com/in/tokenai-test', 'https://github.com/tokenai-test', '', 'Internal',
38
+ 'Temporary automated Agent Mode verification.', true, now(), 'approved', 'agent-mode-self-test'
39
+ )`,
40
+ [specialRequestId, `agent-${suffix.toLowerCase()}@tokenai.llc`],
41
+ )
42
+ await pool.query(
43
+ `INSERT INTO api_keys (special_request_id, key_prefix, key_hash, rpm_limit)
44
+ VALUES ($1, $2, $3, 10)`,
45
+ [specialRequestId, keyPrefix, keyHash],
46
+ )
47
+
48
+ const firstResponse = await request({
49
+ conversation_id: conversationId,
50
+ messages: [{ role: "user", content: "Check the gateway status using the available tool." }],
51
+ tools: [{
52
+ type: "function",
53
+ function: {
54
+ name: "get_status",
55
+ description: "Read a service status.",
56
+ parameters: {
57
+ type: "object",
58
+ properties: { target: { type: "string" } },
59
+ required: ["target"],
60
+ additionalProperties: false,
61
+ },
62
+ },
63
+ }],
64
+ tool_choice: "required",
65
+ })
66
+ const firstBody = await firstResponse.json()
67
+ const toolCall = firstBody.choices?.[0]?.message?.tool_calls?.[0]
68
+
69
+ if (!toolCall) {
70
+ throw new Error(`The model did not return a required tool call: ${JSON.stringify(firstBody).slice(0, 1000)}`)
71
+ }
72
+
73
+ const secondResponse = await request({
74
+ conversation_id: conversationId,
75
+ messages: [
76
+ { role: "user", content: "Check the gateway status using the available tool." },
77
+ { role: "assistant", content: null, tool_calls: [toolCall] },
78
+ { role: "tool", tool_call_id: toolCall.id, content: '{"status":"healthy"}' },
79
+ ],
80
+ })
81
+ const secondBody = await secondResponse.json()
82
+
83
+ const streamResponse = await request({
84
+ messages: [{ role: "user", content: "Return a short compatibility response." }],
85
+ stream: true,
86
+ })
87
+ const streamBody = await streamResponse.text()
88
+
89
+ const stored = await pool.query(
90
+ `SELECT
91
+ count(*)::int AS total_messages,
92
+ count(*) FILTER (WHERE role = 'tool')::int AS tool_messages,
93
+ count(*) FILTER (WHERE cm.role = 'assistant' AND cm.metadata ? 'toolCalls')::int AS tool_call_messages
94
+ FROM conversation_messages cm
95
+ JOIN api_conversations ac ON ac.id = cm.conversation_id
96
+ WHERE ac.special_request_id = $1`,
97
+ [specialRequestId],
98
+ )
99
+
100
+ result = {
101
+ toolRequestStatus: firstResponse.status,
102
+ toolCallName: toolCall?.function?.name,
103
+ toolResultStatus: secondResponse.status,
104
+ finalContent: secondBody.choices?.[0]?.message?.content,
105
+ streamStatus: streamResponse.status,
106
+ streamContentType: streamResponse.headers.get("content-type"),
107
+ streamDone: streamBody.includes("data: [DONE]"),
108
+ stored: stored.rows[0],
109
+ }
110
+ } finally {
111
+ await pool.query("DELETE FROM access_requests WHERE special_request_id = $1", [specialRequestId])
112
+ await pool.query("DELETE FROM api_conversations WHERE special_request_id = $1", [specialRequestId])
113
+ await pool.query("DELETE FROM api_usage_events WHERE special_request_id = $1", [specialRequestId])
114
+ await pool.end()
115
+ }
116
+
117
+ console.log(JSON.stringify(result))
@@ -0,0 +1,61 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ backup_dir=${BACKUP_LOCAL_DIR:-/opt/tokenai-early-access/backups}
5
+ remote_host=${BACKUP_REMOTE_HOST:-54.91.40.201}
6
+ remote_user=${BACKUP_REMOTE_USER:-ec2-user}
7
+ remote_key=${BACKUP_REMOTE_SSH_KEY:-/home/ec2-user/.ssh/horus_backup_transfer}
8
+ public_key=${BACKUP_ENCRYPTION_PUBLIC_KEY:-/opt/tokenai-early-access/backup_public.pem}
9
+ timestamp=$(date -u +%Y%m%dT%H%M%SZ)
10
+ name=early-access-$timestamp
11
+ work_dir=$(mktemp -d)
12
+ umask 077
13
+
14
+ cleanup() {
15
+ rm -rf "$work_dir"
16
+ }
17
+ trap cleanup EXIT INT TERM
18
+
19
+ mkdir -p "$backup_dir"
20
+ test -r "$remote_key"
21
+ test -r "$public_key"
22
+
23
+ docker exec tokenai-early-access-postgres-1 sh -lc \
24
+ 'pg_dump -U "$POSTGRES_USER" -d "$POSTGRES_DB" --format=custom --no-owner --no-privileges' \
25
+ > "$work_dir/$name.dump"
26
+
27
+ docker exec -i tokenai-early-access-postgres-1 pg_restore --list \
28
+ < "$work_dir/$name.dump" > /dev/null
29
+
30
+ openssl rand -base64 48 > "$work_dir/passphrase"
31
+ openssl enc -aes-256-cbc -pbkdf2 -iter 200000 -salt \
32
+ -in "$work_dir/$name.dump" \
33
+ -out "$work_dir/database.dump.enc" \
34
+ -pass file:"$work_dir/passphrase"
35
+ openssl pkeyutl -encrypt -pubin -inkey "$public_key" \
36
+ -in "$work_dir/passphrase" \
37
+ -out "$work_dir/passphrase.enc" \
38
+ -pkeyopt rsa_padding_mode:oaep \
39
+ -pkeyopt rsa_oaep_md:sha256
40
+
41
+ dump_sha=$(sha256sum "$work_dir/database.dump.enc" | awk '{print $1}')
42
+ key_sha=$(sha256sum "$work_dir/passphrase.enc" | awk '{print $1}')
43
+ cat > "$work_dir/manifest.txt" <<EOF
44
+ format=tokenai-early-access-backup-v1
45
+ created_at=$timestamp
46
+ database_cipher_sha256=$dump_sha
47
+ wrapped_key_sha256=$key_sha
48
+ encryption=aes-256-cbc-pbkdf2-200000+rsa-oaep-sha256
49
+ EOF
50
+
51
+ tar -C "$work_dir" -czf "$backup_dir/$name.tar.gz" database.dump.enc passphrase.enc manifest.txt
52
+ archive_sha=$(sha256sum "$backup_dir/$name.tar.gz" | awk '{print $1}')
53
+
54
+ ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -o UserKnownHostsFile=/home/ec2-user/.ssh/known_hosts -i "$remote_key" \
55
+ "$remote_user@$remote_host" "upload $name.tar.gz $archive_sha" \
56
+ < "$backup_dir/$name.tar.gz"
57
+ ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -o UserKnownHostsFile=/home/ec2-user/.ssh/known_hosts -i "$remote_key" \
58
+ "$remote_user@$remote_host" "verify $name.tar.gz"
59
+
60
+ find "$backup_dir" -type f -name 'early-access-*.tar.gz' -mtime +14 -delete
61
+ find "$backup_dir" -type f -name 'early-access-*.dump' -delete
@@ -0,0 +1,94 @@
1
+ services:
2
+ postgres:
3
+ image: postgres:16-alpine
4
+ restart: unless-stopped
5
+ environment:
6
+ POSTGRES_DB: ${POSTGRES_DB}
7
+ POSTGRES_USER: ${POSTGRES_USER}
8
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
9
+ volumes:
10
+ - postgres_data:/var/lib/postgresql/data
11
+ - ./db/init.sql:/docker-entrypoint-initdb.d/001-init.sql:ro
12
+ - ./db/002-retention-rate-limits.sql:/docker-entrypoint-initdb.d/002-retention-rate-limits.sql:ro
13
+ - ./db/003-security-hardening.sql:/docker-entrypoint-initdb.d/003-security-hardening.sql:ro
14
+ - ./db/004-production-readiness.sql:/docker-entrypoint-initdb.d/004-production-readiness.sql:ro
15
+ healthcheck:
16
+ test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
17
+ interval: 10s
18
+ timeout: 5s
19
+ retries: 5
20
+
21
+ api:
22
+ build:
23
+ context: ./api
24
+ image: tokenai-early-access-api:0.3.5
25
+ restart: unless-stopped
26
+ environment:
27
+ DATABASE_URL: ${DATABASE_URL}
28
+ PORT: ${PORT}
29
+ ADMIN_TOKEN: ${ADMIN_TOKEN}
30
+ API_KEY_PEPPER: ${API_KEY_PEPPER}
31
+ API_KEY_ENCRYPTION_KEY: ${API_KEY_ENCRYPTION_KEY}
32
+ TOKENAI_ALLOWED_ORIGINS: ${TOKENAI_ALLOWED_ORIGINS}
33
+ SMTP_HOST: ${SMTP_HOST}
34
+ SMTP_PORT: ${SMTP_PORT}
35
+ SMTP_SECURE: ${SMTP_SECURE}
36
+ SMTP_USER: ${SMTP_USER}
37
+ SMTP_PASS: ${SMTP_PASS}
38
+ SMTP_FROM_EMAIL: ${SMTP_FROM_EMAIL}
39
+ SMTP_FROM_NAME: ${SMTP_FROM_NAME}
40
+ REPLY_TO_EMAIL: ${REPLY_TO_EMAIL}
41
+ MODEL_UPSTREAM_URL: ${MODEL_UPSTREAM_URL:-}
42
+ MODEL_UPSTREAM_URLS: ${MODEL_UPSTREAM_URLS:-}
43
+ MODEL_UPSTREAM_MODEL: ${MODEL_UPSTREAM_MODEL:-}
44
+ MODEL_UPSTREAM_MODE: ${MODEL_UPSTREAM_MODE:-chat}
45
+ MODEL_UPSTREAM_API_KEY: ${MODEL_UPSTREAM_API_KEY:-}
46
+ MODEL_UPSTREAM_AUTH_HEADER: ${MODEL_UPSTREAM_AUTH_HEADER:-Authorization}
47
+ MODEL_UPSTREAM_AUTH_SCHEME: ${MODEL_UPSTREAM_AUTH_SCHEME:-Bearer}
48
+ MODEL_UPSTREAM_TIMEOUT_MS: ${MODEL_UPSTREAM_TIMEOUT_MS:-120000}
49
+ MODEL_QUALITY_FAIL_CLOSED: ${MODEL_QUALITY_FAIL_CLOSED:-true}
50
+ GLOBAL_INFERENCE_CAPACITY: ${GLOBAL_INFERENCE_CAPACITY:-2}
51
+ GLOBAL_INFERENCE_MAX_QUEUE: ${GLOBAL_INFERENCE_MAX_QUEUE:-40}
52
+ GLOBAL_INFERENCE_QUEUE_TIMEOUT_MS: ${GLOBAL_INFERENCE_QUEUE_TIMEOUT_MS:-120000}
53
+ GLOBAL_INFERENCE_LEASE_SECONDS: ${GLOBAL_INFERENCE_LEASE_SECONDS:-240}
54
+ extra_hosts:
55
+ - "host.docker.internal:172.18.0.1"
56
+ ports:
57
+ - "127.0.0.1:8080:8080"
58
+ read_only: true
59
+ tmpfs:
60
+ - /tmp:size=16m,mode=1777
61
+ security_opt:
62
+ - no-new-privileges:true
63
+ cap_drop:
64
+ - ALL
65
+ healthcheck:
66
+ test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8080/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"]
67
+ interval: 15s
68
+ timeout: 5s
69
+ retries: 5
70
+ depends_on:
71
+ postgres:
72
+ condition: service_healthy
73
+
74
+ cloudflared:
75
+ image: cloudflare/cloudflared:latest
76
+ restart: unless-stopped
77
+ command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
78
+ depends_on:
79
+ - api
80
+ read_only: true
81
+ security_opt:
82
+ - no-new-privileges:true
83
+ cap_drop:
84
+ - ALL
85
+
86
+ volumes:
87
+ postgres_data:
88
+
89
+ networks:
90
+ default:
91
+ ipam:
92
+ config:
93
+ - subnet: 172.18.0.0/16
94
+ gateway: 172.18.0.1
@@ -0,0 +1,92 @@
1
+ import crypto from "node:crypto"
2
+ import pg from "pg"
3
+
4
+ const { Pool } = pg
5
+
6
+ const pool = new Pool({ connectionString: process.env.DATABASE_URL, max: 2 })
7
+ const suffix = crypto.randomBytes(5).toString("hex").toUpperCase()
8
+ const specialRequestId = `HCN10-INTEGRATION-${suffix}`
9
+ const tokenSuffix = crypto.randomBytes(12).toString("base64url").replace(/[^A-Za-z0-9]/g, "").slice(0, 16)
10
+ const apiKey = `horusNN-${tokenSuffix.padEnd(16, "A")}`
11
+ const keyPrefix = `${apiKey.slice(0, 12)}...`
12
+ const keyHash = crypto
13
+ .createHash("sha256")
14
+ .update(`${apiKey}:${process.env.API_KEY_PEPPER}`)
15
+ .digest("hex")
16
+
17
+ let result
18
+ try {
19
+ await pool.query(
20
+ `INSERT INTO access_requests (
21
+ special_request_id, first_name, second_name, full_name, company_name,
22
+ company_website, job, applicant_type, rpm_limit, business_mail,
23
+ linkedin_profile_url, github_profile_url, portfolio_url, country_or_region,
24
+ use_cases, responsible_use_accepted, responsible_use_accepted_at, status,
25
+ api_key_prefix, api_key_hash, source
26
+ ) VALUES (
27
+ $1, 'Gateway', 'Self Test', 'Gateway Self Test', 'TokenAI',
28
+ 'https://tokenai.llc', 'Integration test', 'developer_researcher', 20, $2,
29
+ 'https://linkedin.com/in/tokenai-test', 'https://github.com/tokenai-test', '', 'Internal',
30
+ 'Temporary automated gateway verification record.', true, now(), 'approved',
31
+ $3, $4, 'gateway-self-test'
32
+ )`,
33
+ [specialRequestId, `gateway-${suffix.toLowerCase()}@tokenai.llc`, keyPrefix, keyHash],
34
+ )
35
+ await pool.query(
36
+ `INSERT INTO api_keys (special_request_id, key_prefix, key_hash, rpm_limit)
37
+ VALUES ($1, $2, $3, 20)`,
38
+ [specialRequestId, keyPrefix, keyHash],
39
+ )
40
+
41
+ const accessResponse = await fetch("http://127.0.0.1:8080/v1/access", {
42
+ headers: { Authorization: `Bearer ${apiKey}` },
43
+ })
44
+ const accessBody = await accessResponse.json()
45
+
46
+ const chatResponse = await fetch("http://127.0.0.1:8080/v1/chat/completions", {
47
+ method: "POST",
48
+ headers: {
49
+ Authorization: `Bearer ${apiKey}`,
50
+ "Content-Type": "application/json",
51
+ "X-Client-Name": "NeuralNode Gateway Self Test",
52
+ },
53
+ body: JSON.stringify({
54
+ model: "horus-cyper-nano-1.0-beta",
55
+ messages: [{ role: "user", content: "Gateway storage verification message." }],
56
+ max_tokens: 32,
57
+ stream: false,
58
+ }),
59
+ })
60
+ const chatBody = await chatResponse.json()
61
+
62
+ const counts = await pool.query(
63
+ `SELECT
64
+ (SELECT count(*)::int FROM api_conversations WHERE special_request_id = $1) AS conversations,
65
+ (SELECT count(*)::int FROM conversation_messages cm
66
+ JOIN api_conversations ac ON ac.id = cm.conversation_id
67
+ WHERE ac.special_request_id = $1) AS messages,
68
+ (SELECT count(*)::int FROM api_usage_events WHERE special_request_id = $1) AS usage_events`,
69
+ [specialRequestId],
70
+ )
71
+
72
+ result = {
73
+ accessStatus: accessResponse.status,
74
+ accessRpmLimit: accessBody.rpm_limit,
75
+ chatStatus: chatResponse.status,
76
+ chatErrorCode: chatBody?.error?.code,
77
+ requestIdPresent: Boolean(chatBody.request_id),
78
+ conversationIdPresent: Boolean(chatBody.conversation_id),
79
+ assistantPreview: String(chatBody?.choices?.[0]?.message?.content || "").slice(0, 240),
80
+ stored: counts.rows[0],
81
+ }
82
+ } finally {
83
+ await pool.query("DELETE FROM access_requests WHERE special_request_id = $1", [specialRequestId])
84
+ const cleanup = await pool.query(
85
+ "SELECT count(*)::int AS remaining FROM access_requests WHERE special_request_id = $1",
86
+ [specialRequestId],
87
+ )
88
+ result = { ...(result || {}), cleanupRemaining: cleanup.rows[0].remaining }
89
+ await pool.end()
90
+ }
91
+
92
+ console.log(JSON.stringify(result))