@futdevpro/nts-dynamo 1.15.68 → 1.15.70

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 (928) hide show
  1. package/.c8rc.json +26 -26
  2. package/.copilot/patterns.json +7 -7
  3. package/.cursor/rules/__assistant_guide.mdc +30 -30
  4. package/.cursor/rules/__main.mdc +64 -64
  5. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  6. package/.cursor/rules/_ag_backend.mdc +16 -16
  7. package/.cursor/rules/_ag_debug.mdc +7 -7
  8. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
  9. package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
  10. package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
  11. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  12. package/.cursor/rules/_ag_frontend.mdc +39 -39
  13. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  14. package/.cursor/rules/_ag_naming.mdc +115 -115
  15. package/.cursor/rules/_ag_running_commands.mdc +4 -4
  16. package/.cursor/rules/_ag_server-controller.mdc +5 -5
  17. package/.cursor/rules/_ag_should-be.mdc +6 -6
  18. package/.cursor/rules/_ag_swearing.mdc +47 -47
  19. package/.cursor/rules/ai_development_guide.md +60 -60
  20. package/.cursor/rules/ai_directives.md +114 -114
  21. package/.cursor/rules/cursor-rules.md +160 -160
  22. package/.cursor/rules/default-command.mdc +464 -464
  23. package/.cursor/rules/error_code_pattern.md +39 -39
  24. package/.cursor/rules/saved rule mcp server use.md +15 -15
  25. package/.dynamo/logs/cicd-pipeline/output.log +2805 -0
  26. package/.dynamo/logs/cicd-pipeline/status.json +94 -0
  27. package/.dynamo/pipeline.cicd.config.json +180 -180
  28. package/.dynamo/version-bump.config.json +5 -5
  29. package/.github/workflows/main.yml +438 -438
  30. package/.husky/pre-commit +3 -3
  31. package/.vscode/settings.json +10 -10
  32. package/HOWTO.md +15 -15
  33. package/LICENSE +21 -21
  34. package/README.md +678 -678
  35. package/__documentations/2026-04-28-logs-module.md +49 -49
  36. package/__documentations/2026-05-17-oai-compatible-providers.md +229 -229
  37. package/__documentations/2026-05-17-static-client-serving-howto.md +144 -144
  38. package/__documentations/2026-06-01-fr041-cors-middleware.md +96 -96
  39. package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +81 -81
  40. package/__documentations/2026-06-15-fr193-memory-guard.md +73 -73
  41. package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
  42. package/_specifications/BACKLOG.md +92 -92
  43. package/_specifications/TODO.md +15 -15
  44. package/_specifications/agent.md +138 -138
  45. package/build/_collections/archive.util.d.ts +12 -12
  46. package/build/_collections/archive.util.js +18 -18
  47. package/build/_collections/atlas-default-db-options.const.d.ts +2 -2
  48. package/build/_collections/atlas-default-db-options.const.js +9 -9
  49. package/build/_collections/default-fallback-cache-max-age.const.d.ts +2 -2
  50. package/build/_collections/default-fallback-cache-max-age.const.js +5 -5
  51. package/build/_collections/default-not-found-page.const.d.ts +5 -5
  52. package/build/_collections/default-not-found-page.const.js +24 -24
  53. package/build/_collections/default-socket-path.const.d.ts +2 -2
  54. package/build/_collections/default-socket-path.const.js +5 -5
  55. package/build/_collections/get-environment-settings.util.d.ts +2 -2
  56. package/build/_collections/get-environment-settings.util.js +43 -43
  57. package/build/_collections/global-settings.const.d.ts +6 -6
  58. package/build/_collections/global-settings.const.js +69 -69
  59. package/build/_collections/mongo-reconnect-guard.util.d.ts +73 -73
  60. package/build/_collections/mongo-reconnect-guard.util.js +110 -110
  61. package/build/_collections/star.controller.d.ts +7 -7
  62. package/build/_collections/star.controller.js +97 -97
  63. package/build/_enums/data-model-type.enum.d.ts +13 -13
  64. package/build/_enums/data-model-type.enum.js +17 -17
  65. package/build/_enums/data-service-function.enum.d.ts +18 -18
  66. package/build/_enums/data-service-function.enum.js +24 -24
  67. package/build/_enums/predefined-data-types.enum.d.ts +15 -15
  68. package/build/_enums/predefined-data-types.enum.js +19 -19
  69. package/build/_enums/route-security.enum.d.ts +11 -11
  70. package/build/_enums/route-security.enum.js +15 -15
  71. package/build/_models/control-models/api-call-params.control-model.d.ts +79 -79
  72. package/build/_models/control-models/api-call-params.control-model.js +101 -101
  73. package/build/_models/control-models/app-ext-system-controls.control-model.d.ts +6 -6
  74. package/build/_models/control-models/app-ext-system-controls.control-model.js +10 -10
  75. package/build/_models/control-models/app-params.control-model.d.ts +51 -51
  76. package/build/_models/control-models/app-params.control-model.js +119 -119
  77. package/build/_models/control-models/app-system-controls.control-model.d.ts +7 -7
  78. package/build/_models/control-models/app-system-controls.control-model.js +11 -11
  79. package/build/_models/control-models/endpoint-params.control-model.d.ts +114 -114
  80. package/build/_models/control-models/endpoint-params.control-model.js +442 -442
  81. package/build/_models/control-models/http-settings.control-model.d.ts +17 -17
  82. package/build/_models/control-models/http-settings.control-model.js +34 -34
  83. package/build/_models/control-models/system-control.control-model.d.ts +5 -5
  84. package/build/_models/control-models/system-control.control-model.js +11 -11
  85. package/build/_models/interfaces/certification-settings.interface.d.ts +5 -5
  86. package/build/_models/interfaces/certification-settings.interface.js +2 -2
  87. package/build/_models/interfaces/compare-data-options.interface.d.ts +26 -26
  88. package/build/_models/interfaces/compare-data-options.interface.js +2 -2
  89. package/build/_models/interfaces/compare-data-result.interface.d.ts +12 -12
  90. package/build/_models/interfaces/compare-data-result.interface.js +2 -2
  91. package/build/_models/interfaces/cors-settings.interface.d.ts +51 -51
  92. package/build/_models/interfaces/cors-settings.interface.js +2 -2
  93. package/build/_models/interfaces/environment-settings.interface.d.ts +34 -34
  94. package/build/_models/interfaces/environment-settings.interface.js +2 -2
  95. package/build/_models/interfaces/global-log-settings.interface.d.ts +145 -145
  96. package/build/_models/interfaces/global-log-settings.interface.js +2 -2
  97. package/build/_models/interfaces/global-service-settings.interface.d.ts +30 -30
  98. package/build/_models/interfaces/global-service-settings.interface.js +2 -2
  99. package/build/_models/interfaces/global-settings.interface.d.ts +161 -161
  100. package/build/_models/interfaces/global-settings.interface.js +2 -2
  101. package/build/_models/interfaces/routing-module-settings.interface.d.ts +19 -19
  102. package/build/_models/interfaces/routing-module-settings.interface.js +2 -2
  103. package/build/_models/interfaces/static-client-settings.interface.d.ts +28 -28
  104. package/build/_models/interfaces/static-client-settings.interface.js +2 -2
  105. package/build/_models/types/db-update.type.d.ts +129 -129
  106. package/build/_models/types/db-update.type.js +2 -2
  107. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.d.ts +31 -31
  108. package/build/_modules/admin-auth/_models/admin-api-key-config.interface.js +2 -2
  109. package/build/_modules/admin-auth/admin-api-key.auth-service.d.ts +89 -89
  110. package/build/_modules/admin-auth/admin-api-key.auth-service.js +194 -194
  111. package/build/_modules/admin-auth/index.d.ts +2 -2
  112. package/build/_modules/admin-auth/index.js +5 -5
  113. package/build/_modules/ai/_models/ai-input-interfaces.d.ts +53 -53
  114. package/build/_modules/ai/_models/ai-input-interfaces.js +5 -5
  115. package/build/_modules/ai/_models/ai-test-generation-result.interface.d.ts +16 -16
  116. package/build/_modules/ai/_models/ai-test-generation-result.interface.js +2 -2
  117. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.d.ts +13 -13
  118. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.js +2 -2
  119. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.d.ts +49 -49
  120. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.js +2 -2
  121. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.d.ts +35 -35
  122. package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.js +117 -117
  123. package/build/_modules/ai/_modules/anthropic/index.d.ts +2 -2
  124. package/build/_modules/ai/_modules/anthropic/index.js +7 -7
  125. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.d.ts +84 -84
  126. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.js +467 -467
  127. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts +109 -109
  128. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +418 -418
  129. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.d.ts +28 -28
  130. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.js +73 -73
  131. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.d.ts +6 -6
  132. package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.js +10 -10
  133. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.d.ts +51 -51
  134. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.js +132 -132
  135. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.d.ts +47 -47
  136. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.js +136 -136
  137. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.d.ts +17 -17
  138. package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.js +76 -76
  139. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +49 -49
  140. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +2 -2
  141. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.d.ts +8 -8
  142. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.js +2 -2
  143. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.d.ts +11 -11
  144. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.js +2 -2
  145. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.d.ts +12 -12
  146. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.js +2 -2
  147. package/build/_modules/ai/_modules/document-ai/index.d.ts +12 -12
  148. package/build/_modules/ai/_modules/document-ai/index.js +27 -27
  149. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.d.ts +34 -34
  150. package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.js +128 -128
  151. package/build/_modules/ai/_modules/fdp-ai/index.d.ts +2 -2
  152. package/build/_modules/ai/_modules/fdp-ai/index.js +7 -7
  153. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.d.ts +2 -2
  154. package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.js +8 -8
  155. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.d.ts +2 -2
  156. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.js +74 -74
  157. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.d.ts +2 -2
  158. package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.js +67 -67
  159. package/build/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.js +42 -42
  160. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.d.ts +5 -5
  161. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.js +2 -2
  162. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.js +6 -6
  163. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.d.ts +51 -51
  164. package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.js +2 -2
  165. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.d.ts +21 -21
  166. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.js +187 -187
  167. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.d.ts +26 -26
  168. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.js +278 -278
  169. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.d.ts +22 -22
  170. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.js +322 -322
  171. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.d.ts +119 -119
  172. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.js +480 -480
  173. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.d.ts +25 -25
  174. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.js +103 -103
  175. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts +169 -169
  176. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.js +479 -479
  177. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +201 -201
  178. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +579 -579
  179. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.d.ts +39 -39
  180. package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.js +110 -110
  181. package/build/_modules/ai/_modules/open-ai/index.d.ts +14 -14
  182. package/build/_modules/ai/_modules/open-ai/index.js +55 -55
  183. package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts +80 -80
  184. package/build/_modules/ai/_services/ai-embedding-mock.service.js +166 -166
  185. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +51 -51
  186. package/build/_modules/ai/_services/ai-embedding-provider.registry.js +78 -78
  187. package/build/_modules/ai/_services/ai-embedding.service-base.d.ts +41 -41
  188. package/build/_modules/ai/_services/ai-embedding.service-base.js +11 -11
  189. package/build/_modules/ai/_services/ai-llm-chat.service-base.d.ts +39 -39
  190. package/build/_modules/ai/_services/ai-llm-chat.service-base.js +11 -11
  191. package/build/_modules/ai/_services/ai-llm.service-base.d.ts +132 -132
  192. package/build/_modules/ai/_services/ai-llm.service-base.js +313 -313
  193. package/build/_modules/ai/_services/ai-provider.service-base.d.ts +46 -46
  194. package/build/_modules/ai/_services/ai-provider.service-base.js +43 -43
  195. package/build/_modules/ai/_services/ai-user-key.service-base.d.ts +44 -44
  196. package/build/_modules/ai/_services/ai-user-key.service-base.js +14 -14
  197. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +110 -110
  198. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +297 -297
  199. package/build/_modules/ai/index.d.ts +13 -13
  200. package/build/_modules/ai/index.js +22 -22
  201. package/build/_modules/assistant/_collections/ass-global-settings.const.d.ts +2 -2
  202. package/build/_modules/assistant/_collections/ass-global-settings.const.js +14 -14
  203. package/build/_modules/assistant/_collections/ass.util.d.ts +15 -15
  204. package/build/_modules/assistant/_collections/ass.util.js +42 -42
  205. package/build/_modules/assistant/_models/ass-global-settings.interface.d.ts +13 -13
  206. package/build/_modules/assistant/_models/ass-global-settings.interface.js +2 -2
  207. package/build/_modules/assistant/_services/ass-io.control-service.d.ts +19 -19
  208. package/build/_modules/assistant/_services/ass-io.control-service.js +57 -57
  209. package/build/_modules/assistant/_services/ass-main.control-service.d.ts +32 -32
  210. package/build/_modules/assistant/_services/ass-main.control-service.js +65 -65
  211. package/build/_modules/assistant/index.d.ts +6 -6
  212. package/build/_modules/assistant/index.js +18 -18
  213. package/build/_modules/bot/_collections/bot-default-commands.const.d.ts +2 -2
  214. package/build/_modules/bot/_collections/bot-default-commands.const.js +13 -13
  215. package/build/_modules/bot/_collections/bot-global-settings.const.d.ts +2 -2
  216. package/build/_modules/bot/_collections/bot-global-settings.const.js +31 -31
  217. package/build/_modules/bot/_models/bot-channel-wrapper.interface.d.ts +25 -25
  218. package/build/_modules/bot/_models/bot-channel-wrapper.interface.js +38 -38
  219. package/build/_modules/bot/_models/bot-command.interface.d.ts +7 -7
  220. package/build/_modules/bot/_models/bot-command.interface.js +2 -2
  221. package/build/_modules/bot/_models/bot-global-settings.interface.d.ts +85 -85
  222. package/build/_modules/bot/_models/bot-global-settings.interface.js +2 -2
  223. package/build/_modules/bot/_models/bot-last-mention-date.interface.d.ts +6 -6
  224. package/build/_modules/bot/_models/bot-last-mention-date.interface.js +2 -2
  225. package/build/_modules/bot/_models/bot-last-message-date.interface.d.ts +5 -5
  226. package/build/_modules/bot/_models/bot-last-message-date.interface.js +2 -2
  227. package/build/_modules/bot/_models/bot-message-wrapper.interface.d.ts +37 -37
  228. package/build/_modules/bot/_models/bot-message-wrapper.interface.js +54 -54
  229. package/build/_modules/bot/_models/bot-user-wrapper.interface.d.ts +23 -23
  230. package/build/_modules/bot/_models/bot-user-wrapper.interface.js +28 -28
  231. package/build/_modules/bot/_modules/discord-bot/_models/dib-platform.types.js +10 -10
  232. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.d.ts +69 -69
  233. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.js +497 -497
  234. package/build/_modules/bot/_modules/discord-bot/index.d.ts +1 -1
  235. package/build/_modules/bot/_modules/discord-bot/index.js +12 -12
  236. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.d.ts +16 -16
  237. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.js +42 -42
  238. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.d.ts +9 -9
  239. package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.js +2 -2
  240. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.d.ts +59 -59
  241. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.js +349 -349
  242. package/build/_modules/bot/_modules/dynamo-bot/index.d.ts +3 -3
  243. package/build/_modules/bot/_modules/dynamo-bot/index.js +15 -15
  244. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.d.ts +6 -6
  245. package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.js +2 -2
  246. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.d.ts +56 -56
  247. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.js +137 -137
  248. package/build/_modules/bot/_modules/slack-bot/index.d.ts +2 -2
  249. package/build/_modules/bot/_modules/slack-bot/index.js +12 -12
  250. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.d.ts +6 -6
  251. package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.js +2 -2
  252. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.d.ts +56 -56
  253. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.js +137 -137
  254. package/build/_modules/bot/_modules/teams-bot/index.d.ts +2 -2
  255. package/build/_modules/bot/_modules/teams-bot/index.js +12 -12
  256. package/build/_modules/bot/_services/bot-commands.control-service.d.ts +12 -12
  257. package/build/_modules/bot/_services/bot-commands.control-service.js +117 -117
  258. package/build/_modules/bot/_services/bot-io.control-service.d.ts +23 -23
  259. package/build/_modules/bot/_services/bot-io.control-service.js +226 -226
  260. package/build/_modules/bot/_services/bot-main.control-service.d.ts +35 -35
  261. package/build/_modules/bot/_services/bot-main.control-service.js +195 -195
  262. package/build/_modules/bot/_services/bot-messaging-provider.service-base.d.ts +71 -71
  263. package/build/_modules/bot/_services/bot-messaging-provider.service-base.js +15 -15
  264. package/build/_modules/bot/_services/bot-routines.control-service.d.ts +13 -13
  265. package/build/_modules/bot/_services/bot-routines.control-service.js +59 -59
  266. package/build/_modules/bot/index.d.ts +17 -17
  267. package/build/_modules/bot/index.js +36 -36
  268. package/build/_modules/custom-data/custom-data.controller.d.ts +5 -5
  269. package/build/_modules/custom-data/custom-data.controller.js +56 -56
  270. package/build/_modules/custom-data/custom-data.data-service.d.ts +5 -5
  271. package/build/_modules/custom-data/custom-data.data-service.js +11 -11
  272. package/build/_modules/custom-data/get-custom-data-routing-module.util.d.ts +3 -3
  273. package/build/_modules/custom-data/get-custom-data-routing-module.util.js +16 -16
  274. package/build/_modules/custom-data/index.d.ts +4 -4
  275. package/build/_modules/custom-data/index.js +9 -9
  276. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +58 -58
  277. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +168 -168
  278. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +31 -31
  279. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +7 -7
  280. package/build/_modules/data-readers/index.d.ts +2 -2
  281. package/build/_modules/data-readers/index.js +10 -10
  282. package/build/_modules/defaults/_collections/default-endpoints.util.d.ts +248 -248
  283. package/build/_modules/defaults/_collections/default-endpoints.util.js +386 -386
  284. package/build/_modules/defaults/_models/default-user.data-model.d.ts +19 -19
  285. package/build/_modules/defaults/_models/default-user.data-model.js +72 -72
  286. package/build/_modules/defaults/_services/default-auth.service.d.ts +50 -50
  287. package/build/_modules/defaults/_services/default-auth.service.js +158 -158
  288. package/build/_modules/defaults/_services/default-socket-events.service.d.ts +23 -23
  289. package/build/_modules/defaults/_services/default-socket-events.service.js +60 -60
  290. package/build/_modules/defaults/_services/default-user.data-service.d.ts +24 -24
  291. package/build/_modules/defaults/_services/default-user.data-service.js +87 -87
  292. package/build/_modules/defaults/index.d.ts +5 -5
  293. package/build/_modules/defaults/index.js +17 -17
  294. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.d.ts +2 -2
  295. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.js +16 -16
  296. package/build/_modules/discord-assistant/_collections/dias.util.d.ts +31 -31
  297. package/build/_modules/discord-assistant/_collections/dias.util.js +85 -85
  298. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.d.ts +17 -17
  299. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.js +2 -2
  300. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.d.ts +8 -8
  301. package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.js +46 -46
  302. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.d.ts +17 -17
  303. package/build/_modules/discord-assistant/_services/dias-chunk.data-service.js +123 -123
  304. package/build/_modules/discord-assistant/_services/dias-io.control-service.d.ts +10 -10
  305. package/build/_modules/discord-assistant/_services/dias-io.control-service.js +49 -49
  306. package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts +3 -3
  307. package/build/_modules/discord-assistant/_services/dias-main.control-service.js +7 -7
  308. package/build/_modules/discord-assistant/_services/dias.service-base.d.ts +18 -18
  309. package/build/_modules/discord-assistant/_services/dias.service-base.js +46 -46
  310. package/build/_modules/discord-assistant/index.d.ts +11 -11
  311. package/build/_modules/discord-assistant/index.js +24 -24
  312. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.d.ts +3 -3
  313. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.js +7 -7
  314. package/build/_modules/discord-assistant-voiced/index.d.ts +2 -2
  315. package/build/_modules/discord-assistant-voiced/index.js +28 -28
  316. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.d.ts +2 -2
  317. package/build/_modules/discord-bot/_collections/dibo-default-commands.const.js +12 -12
  318. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.d.ts +2 -2
  319. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.js +43 -43
  320. package/build/_modules/discord-bot/_collections/dibo-operations.util.d.ts +22 -22
  321. package/build/_modules/discord-bot/_collections/dibo-operations.util.js +275 -275
  322. package/build/_modules/discord-bot/_models/dibo-command.interface.d.ts +7 -7
  323. package/build/_modules/discord-bot/_models/dibo-command.interface.js +2 -2
  324. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.d.ts +87 -87
  325. package/build/_modules/discord-bot/_models/dibo-global-settings.interface.js +2 -2
  326. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.d.ts +6 -6
  327. package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.js +2 -2
  328. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.d.ts +5 -5
  329. package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.js +2 -2
  330. package/build/_modules/discord-bot/_services/dibo-commands.control-service.d.ts +11 -11
  331. package/build/_modules/discord-bot/_services/dibo-commands.control-service.js +109 -109
  332. package/build/_modules/discord-bot/_services/dibo-io.control-service.d.ts +21 -21
  333. package/build/_modules/discord-bot/_services/dibo-io.control-service.js +218 -218
  334. package/build/_modules/discord-bot/_services/dibo-main.control-service.d.ts +89 -89
  335. package/build/_modules/discord-bot/_services/dibo-main.control-service.js +363 -363
  336. package/build/_modules/discord-bot/_services/dibo-routines.control-service.d.ts +13 -13
  337. package/build/_modules/discord-bot/_services/dibo-routines.control-service.js +73 -73
  338. package/build/_modules/discord-bot/index.d.ts +11 -11
  339. package/build/_modules/discord-bot/index.js +30 -30
  340. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.d.ts +34 -34
  341. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.js +38 -38
  342. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +35 -35
  343. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +53 -53
  344. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.d.ts +16 -16
  345. package/build/_modules/local-vector-search/_models/lvs-search-result.interface.js +2 -2
  346. package/build/_modules/local-vector-search/_services/lvs-bm25.util.d.ts +88 -88
  347. package/build/_modules/local-vector-search/_services/lvs-bm25.util.js +189 -189
  348. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.d.ts +26 -26
  349. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.js +197 -197
  350. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.d.ts +145 -145
  351. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.js +294 -294
  352. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +69 -69
  353. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +122 -122
  354. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +42 -42
  355. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +71 -71
  356. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts +70 -70
  357. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts.map +1 -1
  358. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js +187 -181
  359. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js.map +1 -1
  360. package/build/_modules/local-vector-search/index.d.ts +8 -8
  361. package/build/_modules/local-vector-search/index.js +15 -15
  362. package/build/_modules/logs/_models/file-log-entry.interface.d.ts +13 -13
  363. package/build/_modules/logs/_models/file-log-entry.interface.js +2 -2
  364. package/build/_modules/logs/_models/file-log-read-result.interface.d.ts +35 -35
  365. package/build/_modules/logs/_models/file-log-read-result.interface.js +2 -2
  366. package/build/_modules/logs/file-log.service.d.ts +132 -132
  367. package/build/_modules/logs/file-log.service.js +444 -444
  368. package/build/_modules/logs/file-logs.controller.d.ts +40 -40
  369. package/build/_modules/logs/file-logs.controller.js +138 -138
  370. package/build/_modules/logs/get-file-logs-routing-module.util.d.ts +31 -31
  371. package/build/_modules/logs/get-file-logs-routing-module.util.js +37 -37
  372. package/build/_modules/logs/get-logs-routing-module.util.d.ts +18 -18
  373. package/build/_modules/logs/get-logs-routing-module.util.js +31 -31
  374. package/build/_modules/logs/index.d.ts +8 -8
  375. package/build/_modules/logs/index.js +15 -15
  376. package/build/_modules/logs/log-buffer.service.d.ts +37 -37
  377. package/build/_modules/logs/log-buffer.service.js +96 -96
  378. package/build/_modules/logs/logs.controller.d.ts +26 -26
  379. package/build/_modules/logs/logs.controller.js +89 -89
  380. package/build/_modules/logs/logs.service.d.ts +39 -39
  381. package/build/_modules/logs/logs.service.js +96 -96
  382. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +108 -108
  383. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +13 -13
  384. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +70 -70
  385. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +98 -98
  386. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +56 -56
  387. package/build/_modules/mcp/_services/dynts-mcp.adapter.js +138 -138
  388. package/build/_modules/mcp/index.d.ts +3 -3
  389. package/build/_modules/mcp/index.js +12 -12
  390. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.d.ts +7 -7
  391. package/build/_modules/messaging/_collections/get-messaging-routing-module.util.js +20 -20
  392. package/build/_modules/messaging/_collections/msg-global-settings.const.d.ts +5 -5
  393. package/build/_modules/messaging/_collections/msg-global-settings.const.js +22 -22
  394. package/build/_modules/messaging/_collections/msg.util.d.ts +24 -24
  395. package/build/_modules/messaging/_collections/msg.util.js +62 -62
  396. package/build/_modules/messaging/_models/msg-global-settings.interface.d.ts +28 -28
  397. package/build/_modules/messaging/_models/msg-global-settings.interface.js +2 -2
  398. package/build/_modules/messaging/_services/msg-conversation.data-service.d.ts +28 -28
  399. package/build/_modules/messaging/_services/msg-conversation.data-service.js +109 -109
  400. package/build/_modules/messaging/_services/msg-events.service.d.ts +61 -61
  401. package/build/_modules/messaging/_services/msg-events.service.js +203 -203
  402. package/build/_modules/messaging/_services/msg-integration.control-service.js +180 -180
  403. package/build/_modules/messaging/_services/msg-main.control-service.d.ts +62 -62
  404. package/build/_modules/messaging/_services/msg-main.control-service.js +428 -428
  405. package/build/_modules/messaging/_services/msg-message.data-service.d.ts +28 -28
  406. package/build/_modules/messaging/_services/msg-message.data-service.js +103 -103
  407. package/build/_modules/messaging/_services/msg.controller.d.ts +12 -12
  408. package/build/_modules/messaging/_services/msg.controller.js +256 -256
  409. package/build/_modules/messaging/index.d.ts +10 -10
  410. package/build/_modules/messaging/index.js +27 -27
  411. package/build/_modules/mock/app-extended-server.mock.d.ts +41 -41
  412. package/build/_modules/mock/app-extended-server.mock.js +169 -169
  413. package/build/_modules/mock/app-integration-test.mock.d.ts +19 -19
  414. package/build/_modules/mock/app-integration-test.mock.js +45 -45
  415. package/build/_modules/mock/app-params.mock.d.ts +2 -2
  416. package/build/_modules/mock/app-params.mock.js +9 -9
  417. package/build/_modules/mock/app-server.mock.d.ts +41 -41
  418. package/build/_modules/mock/app-server.mock.js +148 -148
  419. package/build/_modules/mock/auth-service.mock.d.ts +10 -10
  420. package/build/_modules/mock/auth-service.mock.js +19 -19
  421. package/build/_modules/mock/controller.mock.d.ts +5 -5
  422. package/build/_modules/mock/controller.mock.js +14 -14
  423. package/build/_modules/mock/data-model.mock.d.ts +26 -26
  424. package/build/_modules/mock/data-model.mock.js +72 -72
  425. package/build/_modules/mock/email-service-collection.mock.d.ts +7 -7
  426. package/build/_modules/mock/email-service-collection.mock.js +12 -12
  427. package/build/_modules/mock/email-service.mock.d.ts +4 -4
  428. package/build/_modules/mock/email-service.mock.js +20 -20
  429. package/build/_modules/mock/endpoint.mock.d.ts +8 -8
  430. package/build/_modules/mock/endpoint.mock.js +79 -79
  431. package/build/_modules/mock/socket-client.mock.d.ts +9 -9
  432. package/build/_modules/mock/socket-client.mock.js +38 -38
  433. package/build/_modules/mock/socket-server.mock.d.ts +15 -15
  434. package/build/_modules/mock/socket-server.mock.js +32 -32
  435. package/build/_modules/oauth2/_routes/oauth2.controller.d.ts +16 -16
  436. package/build/_modules/oauth2/_routes/oauth2.controller.js +96 -96
  437. package/build/_modules/oauth2/_services/oauth2.auth-service.d.ts +30 -30
  438. package/build/_modules/oauth2/_services/oauth2.auth-service.js +215 -215
  439. package/build/_modules/oauth2/_services/oauth2.control-service.d.ts +132 -132
  440. package/build/_modules/oauth2/_services/oauth2.control-service.js +576 -576
  441. package/build/_modules/oauth2/index.d.ts +3 -3
  442. package/build/_modules/oauth2/index.js +14 -14
  443. package/build/_modules/rate-limit/_models/rate-limit-config.interface.d.ts +61 -61
  444. package/build/_modules/rate-limit/_models/rate-limit-config.interface.js +2 -2
  445. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.d.ts +15 -15
  446. package/build/_modules/rate-limit/_models/rate-limit-policy.interface.js +2 -2
  447. package/build/_modules/rate-limit/index.d.ts +3 -3
  448. package/build/_modules/rate-limit/index.js +5 -5
  449. package/build/_modules/rate-limit/rate-limit.middleware.d.ts +132 -132
  450. package/build/_modules/rate-limit/rate-limit.middleware.js +289 -289
  451. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +18 -18
  452. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +22 -22
  453. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +43 -43
  454. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +67 -67
  455. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +88 -88
  456. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +11 -11
  457. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +83 -83
  458. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +219 -219
  459. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +53 -53
  460. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +75 -75
  461. package/build/_modules/scoped-config/index.d.ts +5 -5
  462. package/build/_modules/scoped-config/index.js +14 -14
  463. package/build/_modules/server/errors/errors.control-service.d.ts +21 -21
  464. package/build/_modules/server/errors/errors.control-service.js +10 -10
  465. package/build/_modules/server/errors/errors.controller.d.ts +100 -100
  466. package/build/_modules/server/errors/errors.controller.js +355 -355
  467. package/build/_modules/server/errors/errors.data-service.d.ts +64 -64
  468. package/build/_modules/server/errors/errors.data-service.js +628 -628
  469. package/build/_modules/server/index.d.ts +7 -7
  470. package/build/_modules/server/index.js +26 -26
  471. package/build/_modules/server/server-status/server-status-snapshot.control-service.d.ts +4 -4
  472. package/build/_modules/server/server-status/server-status-snapshot.control-service.js +7 -7
  473. package/build/_modules/server/server-status/server-status-snapshot.data-service.d.ts +6 -6
  474. package/build/_modules/server/server-status/server-status-snapshot.data-service.js +22 -22
  475. package/build/_modules/server/server-status/server-status.control-service.d.ts +74 -74
  476. package/build/_modules/server/server-status/server-status.control-service.js +234 -234
  477. package/build/_modules/server/server-status/server-status.controller.d.ts +84 -84
  478. package/build/_modules/server/server-status/server-status.controller.js +172 -172
  479. package/build/_modules/socket/_enums/socket-security.enum.d.ts +10 -10
  480. package/build/_modules/socket/_enums/socket-security.enum.js +14 -14
  481. package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts +8 -8
  482. package/build/_modules/socket/_models/socket-client-service-params.control-model.js +16 -16
  483. package/build/_modules/socket/_models/socket-presence.control-model.d.ts +25 -25
  484. package/build/_modules/socket/_models/socket-presence.control-model.js +139 -139
  485. package/build/_modules/socket/_models/socket-server-service-params.control-model.d.ts +12 -12
  486. package/build/_modules/socket/_models/socket-server-service-params.control-model.js +20 -20
  487. package/build/_modules/socket/_services/socket-client.service.d.ts +37 -37
  488. package/build/_modules/socket/_services/socket-client.service.js +196 -196
  489. package/build/_modules/socket/_services/socket-server.service.d.ts +94 -94
  490. package/build/_modules/socket/_services/socket-server.service.js +689 -689
  491. package/build/_modules/socket/app-extended.server.d.ts +145 -145
  492. package/build/_modules/socket/app-extended.server.js +506 -506
  493. package/build/_modules/socket/index.d.ts +8 -8
  494. package/build/_modules/socket/index.js +35 -35
  495. package/build/_modules/test/get-test-routing-module.util.d.ts +3 -3
  496. package/build/_modules/test/get-test-routing-module.util.js +16 -16
  497. package/build/_modules/test/index.d.ts +3 -3
  498. package/build/_modules/test/index.js +11 -11
  499. package/build/_modules/test/test.controller.d.ts +5 -5
  500. package/build/_modules/test/test.controller.js +103 -103
  501. package/build/_modules/usage/get-usage-routing-module.util.d.ts +3 -3
  502. package/build/_modules/usage/get-usage-routing-module.util.js +16 -16
  503. package/build/_modules/usage/index.d.ts +4 -4
  504. package/build/_modules/usage/index.js +13 -13
  505. package/build/_modules/usage/usage.controller.d.ts +6 -6
  506. package/build/_modules/usage/usage.controller.js +95 -95
  507. package/build/_modules/usage/usage.data-service.d.ts +17 -17
  508. package/build/_modules/usage/usage.data-service.js +135 -135
  509. package/build/_services/base/api.service-base.d.ts +9 -9
  510. package/build/_services/base/api.service-base.js +46 -46
  511. package/build/_services/base/archive-data.service.d.ts +25 -25
  512. package/build/_services/base/archive-data.service.js +140 -140
  513. package/build/_services/base/data.service.d.ts +381 -381
  514. package/build/_services/base/data.service.js +2068 -2068
  515. package/build/_services/base/db.service.d.ts +393 -393
  516. package/build/_services/base/db.service.js +1256 -1256
  517. package/build/_services/base/singleton.service-base.d.ts +8 -8
  518. package/build/_services/base/singleton.service-base.js +21 -21
  519. package/build/_services/base/singleton.service.d.ts +11 -11
  520. package/build/_services/base/singleton.service.js +31 -31
  521. package/build/_services/core/api.service.d.ts +45 -45
  522. package/build/_services/core/api.service.js +436 -436
  523. package/build/_services/core/auth.service.d.ts +129 -129
  524. package/build/_services/core/auth.service.js +59 -59
  525. package/build/_services/core/email.service.d.ts +77 -77
  526. package/build/_services/core/email.service.js +489 -489
  527. package/build/_services/core/global.service.d.ts +76 -76
  528. package/build/_services/core/global.service.js +370 -370
  529. package/build/_services/core/memory-guard.service.d.ts +110 -110
  530. package/build/_services/core/memory-guard.service.js +197 -197
  531. package/build/_services/core/service-collection.service.d.ts +4 -4
  532. package/build/_services/core/service-collection.service.js +7 -7
  533. package/build/_services/route/controller.service.d.ts +124 -124
  534. package/build/_services/route/controller.service.js +95 -95
  535. package/build/_services/route/routing-module.service.d.ts +80 -80
  536. package/build/_services/route/routing-module.service.js +250 -250
  537. package/build/_services/server/app.server.d.ts +352 -352
  538. package/build/_services/server/app.server.js +1323 -1323
  539. package/build/_services/shared.static-service.d.ts +36 -36
  540. package/build/_services/shared.static-service.js +72 -72
  541. package/build/index.d.ts +43 -43
  542. package/build/index.js +80 -80
  543. package/eslint.config.js +3 -3
  544. package/nodemon.json +24 -24
  545. package/package.json +417 -416
  546. package/pnpm-workspace.yaml +5 -5
  547. package/scripts/run-coverage-tests.js +28 -28
  548. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  549. package/spec/support/helpers/ts-node-helper.js +93 -93
  550. package/spec/support/jasmine.coverage.json +24 -24
  551. package/spec/support/jasmine.json +24 -24
  552. package/src/_collections/archive.util.spec.ts +57 -57
  553. package/src/_collections/archive.util.ts +18 -18
  554. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  555. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  556. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  557. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  558. package/src/_collections/default-not-found-page.const.ts +22 -22
  559. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  560. package/src/_collections/default-socket-path.const.ts +2 -2
  561. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  562. package/src/_collections/get-environment-settings.util.ts +48 -48
  563. package/src/_collections/global-settings.const.ts +89 -89
  564. package/src/_collections/mongo-reconnect-guard.util.spec.ts +52 -52
  565. package/src/_collections/mongo-reconnect-guard.util.ts +172 -172
  566. package/src/_collections/sample.env +21 -21
  567. package/src/_collections/star.controller.spec.ts +224 -224
  568. package/src/_collections/star.controller.ts +129 -129
  569. package/src/_enums/data-model-type.enum.ts +14 -14
  570. package/src/_enums/data-service-function.enum.ts +24 -24
  571. package/src/_enums/predefined-data-types.enum.ts +16 -16
  572. package/src/_enums/route-security.enum.ts +12 -12
  573. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  574. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  575. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  576. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  577. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  578. package/src/_models/control-models/app-params.control-model.ts +136 -136
  579. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  580. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  581. package/src/_models/control-models/endpoint-params.control-model.spec.ts +627 -627
  582. package/src/_models/control-models/endpoint-params.control-model.ts +627 -627
  583. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  584. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  585. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  586. package/src/_models/control-models/system-control.control-model.ts +12 -12
  587. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  588. package/src/_models/interfaces/compare-data-options.interface.ts +27 -27
  589. package/src/_models/interfaces/compare-data-result.interface.ts +12 -12
  590. package/src/_models/interfaces/cors-settings.interface.spec.ts +52 -52
  591. package/src/_models/interfaces/cors-settings.interface.ts +56 -56
  592. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  593. package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
  594. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  595. package/src/_models/interfaces/global-settings.interface.ts +185 -185
  596. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  597. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  598. package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
  599. package/src/_models/types/db-update.type.ts +100 -100
  600. package/src/_modules/admin-auth/_models/admin-api-key-config.interface.ts +33 -33
  601. package/src/_modules/admin-auth/admin-api-key.auth-service.spec.ts +200 -200
  602. package/src/_modules/admin-auth/admin-api-key.auth-service.ts +220 -220
  603. package/src/_modules/admin-auth/index.ts +2 -2
  604. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  605. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  606. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +14 -14
  607. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +56 -56
  608. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  609. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  610. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  611. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  612. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
  613. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +552 -552
  614. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  615. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  616. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  617. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  618. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  619. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  620. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
  621. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  622. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  623. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  624. package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
  625. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  626. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  627. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  628. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  629. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  630. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  631. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  632. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  633. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  634. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  635. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts +572 -572
  636. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  637. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts +435 -435
  638. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  639. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  640. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  641. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +132 -132
  642. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  643. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  644. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  645. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
  646. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1033 -1033
  647. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  648. package/src/_modules/ai/_modules/open-ai/index.ts +74 -74
  649. package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -115
  650. package/src/_modules/ai/_services/ai-embedding-mock.service.ts +233 -233
  651. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
  652. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -114
  653. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  654. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  655. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  656. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  657. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  658. package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -519
  659. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  660. package/src/_modules/ai/_services/ai-provider.service-base.ts +67 -67
  661. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  662. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
  663. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +399 -399
  664. package/src/_modules/ai/index.ts +23 -23
  665. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  666. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  667. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  668. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  669. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  670. package/src/_modules/assistant/_services/ass-io.control-service.ts +74 -74
  671. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  672. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  673. package/src/_modules/assistant/index.ts +19 -19
  674. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  675. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  676. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  677. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  678. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  679. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  680. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  681. package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +90 -90
  682. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  683. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  684. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  685. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts +641 -641
  686. package/src/_modules/bot/_modules/discord-bot/index.ts +12 -12
  687. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  688. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  689. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  690. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  691. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  692. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  693. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  694. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  695. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  696. package/src/_modules/bot/_modules/slack-bot/index.ts +12 -12
  697. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  698. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  699. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  700. package/src/_modules/bot/_modules/teams-bot/index.ts +11 -11
  701. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  702. package/src/_modules/bot/_services/bot-commands.control-service.ts +158 -158
  703. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  704. package/src/_modules/bot/_services/bot-io.control-service.ts +329 -329
  705. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  706. package/src/_modules/bot/_services/bot-main.control-service.ts +489 -489
  707. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  708. package/src/_modules/bot/_services/bot-messaging-provider.service-base.ts +158 -158
  709. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  710. package/src/_modules/bot/_services/bot-routines.control-service.ts +78 -78
  711. package/src/_modules/bot/index.ts +37 -37
  712. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  713. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  714. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  715. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  716. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  717. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  718. package/src/_modules/custom-data/index.ts +9 -9
  719. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +176 -176
  720. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
  721. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
  722. package/src/_modules/data-readers/index.ts +11 -11
  723. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  724. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  725. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  726. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  727. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  728. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  729. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  730. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  731. package/src/_modules/defaults/index.ts +17 -17
  732. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  733. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  734. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  735. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  736. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  737. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  738. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  739. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  740. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  741. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  742. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  743. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  744. package/src/_modules/discord-assistant/index.ts +38 -38
  745. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  746. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  747. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  748. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  749. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  750. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  751. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  752. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  753. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  754. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  755. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  756. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  757. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  758. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  759. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  760. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  761. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  762. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  763. package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +97 -97
  764. package/src/_modules/discord-bot/index.ts +36 -36
  765. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  766. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +60 -60
  767. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  768. package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +159 -159
  769. package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +206 -206
  770. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  771. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  772. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  773. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  774. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -198
  775. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +150 -150
  776. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
  777. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +108 -108
  778. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +409 -393
  779. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +224 -220
  780. package/src/_modules/local-vector-search/index.ts +16 -16
  781. package/src/_modules/logs/_models/file-log-entry.interface.ts +13 -13
  782. package/src/_modules/logs/_models/file-log-read-result.interface.ts +37 -37
  783. package/src/_modules/logs/file-log.service.spec.ts +341 -341
  784. package/src/_modules/logs/file-log.service.ts +466 -466
  785. package/src/_modules/logs/file-logs.controller.spec.ts +245 -245
  786. package/src/_modules/logs/file-logs.controller.ts +165 -165
  787. package/src/_modules/logs/get-file-logs-routing-module.util.ts +51 -51
  788. package/src/_modules/logs/get-logs-routing-module.util.ts +36 -36
  789. package/src/_modules/logs/index.ts +11 -11
  790. package/src/_modules/logs/log-buffer.service.ts +101 -101
  791. package/src/_modules/logs/logs.controller.ts +109 -109
  792. package/src/_modules/logs/logs.service.ts +100 -100
  793. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
  794. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +151 -151
  795. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +125 -125
  796. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
  797. package/src/_modules/mcp/index.ts +13 -13
  798. package/src/_modules/messaging/README.md +354 -354
  799. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  800. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  801. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  802. package/src/_modules/messaging/_collections/msg.util.ts +83 -83
  803. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  804. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  805. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  806. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  807. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  808. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  809. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  810. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  811. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  812. package/src/_modules/messaging/_services/msg.controller.ts +370 -370
  813. package/src/_modules/messaging/index.ts +30 -30
  814. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  815. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  816. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  817. package/src/_modules/mock/app-params.mock.ts +9 -9
  818. package/src/_modules/mock/app-server.mock.ts +188 -188
  819. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  820. package/src/_modules/mock/auth-service.mock.ts +28 -28
  821. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  822. package/src/_modules/mock/controller.mock.ts +16 -16
  823. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  824. package/src/_modules/mock/data-model.mock.ts +82 -82
  825. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  826. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  827. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  828. package/src/_modules/mock/email-service.mock.ts +20 -20
  829. package/src/_modules/mock/email-template.mock.html +14 -14
  830. package/src/_modules/mock/endpoint.mock.ts +91 -91
  831. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  832. package/src/_modules/mock/socket-client.mock.ts +45 -45
  833. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  834. package/src/_modules/mock/socket-server.mock.ts +46 -46
  835. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  836. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  837. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  838. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  839. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  840. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  841. package/src/_modules/oauth2/index.ts +17 -17
  842. package/src/_modules/rate-limit/_models/rate-limit-config.interface.ts +69 -69
  843. package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +16 -16
  844. package/src/_modules/rate-limit/index.ts +3 -3
  845. package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +264 -264
  846. package/src/_modules/rate-limit/rate-limit.middleware.ts +343 -343
  847. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
  848. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +82 -82
  849. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
  850. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +312 -312
  851. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +311 -311
  852. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +123 -123
  853. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +108 -108
  854. package/src/_modules/scoped-config/index.ts +17 -17
  855. package/src/_modules/server/errors/errors.control-service.spec.ts +246 -246
  856. package/src/_modules/server/errors/errors.control-service.ts +100 -100
  857. package/src/_modules/server/errors/errors.controller.spec.ts +249 -249
  858. package/src/_modules/server/errors/errors.controller.ts +489 -489
  859. package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
  860. package/src/_modules/server/errors/errors.data-service.ts +816 -816
  861. package/src/_modules/server/index.ts +30 -30
  862. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  863. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  864. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  865. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  866. package/src/_modules/server/server-status/server-status.control-service.spec.ts +584 -584
  867. package/src/_modules/server/server-status/server-status.control-service.ts +396 -396
  868. package/src/_modules/server/server-status/server-status.controller.spec.ts +248 -248
  869. package/src/_modules/server/server-status/server-status.controller.ts +253 -253
  870. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  871. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  872. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  873. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -164
  874. package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
  875. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
  876. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
  877. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  878. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  879. package/src/_modules/socket/_services/socket-server.service.spec.ts +11 -11
  880. package/src/_modules/socket/_services/socket-server.service.ts +1068 -1068
  881. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  882. package/src/_modules/socket/app-extended.server.ts +630 -630
  883. package/src/_modules/socket/index.ts +42 -42
  884. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  885. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  886. package/src/_modules/test/index.ts +11 -11
  887. package/src/_modules/test/test.controller.spec.ts +72 -72
  888. package/src/_modules/test/test.controller.ts +115 -115
  889. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  890. package/src/_modules/usage/index.ts +15 -15
  891. package/src/_modules/usage/usage.controller.spec.ts +81 -81
  892. package/src/_modules/usage/usage.controller.ts +126 -126
  893. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  894. package/src/_modules/usage/usage.data-service.ts +185 -185
  895. package/src/_services/base/api.service-base.spec.ts +125 -125
  896. package/src/_services/base/api.service-base.ts +74 -74
  897. package/src/_services/base/archive-data.service.spec.ts +196 -196
  898. package/src/_services/base/archive-data.service.ts +216 -216
  899. package/src/_services/base/data.service.spec.ts +674 -674
  900. package/src/_services/base/data.service.ts +2719 -2719
  901. package/src/_services/base/db.service.spec.ts +73 -73
  902. package/src/_services/base/db.service.ts +1575 -1575
  903. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  904. package/src/_services/base/singleton.service-base.ts +24 -24
  905. package/src/_services/base/singleton.service.spec.ts +114 -114
  906. package/src/_services/base/singleton.service.ts +38 -38
  907. package/src/_services/core/api.service.spec.ts +140 -140
  908. package/src/_services/core/api.service.ts +607 -607
  909. package/src/_services/core/auth.service.spec.ts +159 -159
  910. package/src/_services/core/auth.service.ts +174 -174
  911. package/src/_services/core/email.service.spec.ts +85 -85
  912. package/src/_services/core/email.service.ts +742 -742
  913. package/src/_services/core/global.service.spec.ts +292 -292
  914. package/src/_services/core/global.service.ts +475 -475
  915. package/src/_services/core/memory-guard.service.spec.ts +165 -165
  916. package/src/_services/core/memory-guard.service.ts +281 -281
  917. package/src/_services/core/service-collection.service.spec.ts +46 -46
  918. package/src/_services/core/service-collection.service.ts +6 -6
  919. package/src/_services/route/controller.service.spec.ts +53 -53
  920. package/src/_services/route/controller.service.ts +148 -148
  921. package/src/_services/route/routing-module.service.spec.ts +98 -98
  922. package/src/_services/route/routing-module.service.ts +330 -330
  923. package/src/_services/server/app.server.ts +1747 -1747
  924. package/src/_services/shared.static-service.spec.ts +99 -99
  925. package/src/_services/shared.static-service.ts +78 -78
  926. package/src/index.ts +96 -96
  927. package/tsconfig.app.json +12 -12
  928. package/tsconfig.json +42 -42
@@ -1,550 +1,550 @@
1
-
2
- import { DyNTS_OAI_VectorDataService } from './oai-vector-data.service';
3
- import { DyFM_Metadata, DyFM_DataModel_Params, DyFM_DataProperty_Params, DyFM_BasicProperty_Type, DyFM_Error, DyFM_Object, DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
4
- import { DyFM_OAI_Settings, DyFM_OAI_Model } from '@futdevpro/fsm-dynamo/ai/open-ai';
5
- import { DyNTS_OAI_Embedding_ControlService } from '../oai-embedding.control-service';
6
- import { DyNTS_DataService } from '../../../../../../_services/base/data.service';
7
- import { DyNTS_GlobalService } from '../../../../../../_services/core/global.service';
8
- import { CreateEmbeddingResponse } from 'openai/resources';
9
- import { DyNTS_global_settings } from '../../../../../../_collections/global-settings.const';
10
-
11
- class TestMetadata extends DyFM_Metadata {
12
- name: string;
13
- content: string;
14
- contentVectorized?: number[];
15
- }
16
-
17
- const testDataParams = new DyFM_DataModel_Params<TestMetadata>({
18
- dataName: 'test_data',
19
- properties: {
20
- name: {
21
- key: 'name',
22
- type: DyFM_BasicProperty_Type.string,
23
- required: true,
24
- },
25
- content: {
26
- key: 'content',
27
- type: DyFM_BasicProperty_Type.string,
28
- },
29
- contentVectorized: {
30
- key: 'contentVectorized',
31
- type: 'number[]', // Must be number[] for vectorized property
32
- vectorizedFrom: ['content'],
33
- embeddingModel: DyFM_OAI_Model.textEmbedding_3Small,
34
- vectorizeUseIndex: 'content_vector_index',
35
- },
36
- },
37
- });
38
-
39
- describe('| DyNTS_OAI_VectorDataService', () => {
40
- let service: DyNTS_OAI_VectorDataService<TestMetadata>;
41
- let mockEmbedding_CS: jasmine.SpyObj<DyNTS_OAI_Embedding_ControlService>;
42
- let mockDBService: jasmine.SpyObj<any>;
43
- let testData: TestMetadata;
44
-
45
- const mockOpenAISettings: DyFM_OAI_Settings = {
46
- config: {
47
- apiKey: 'test-api-key',
48
- organization: 'test-org',
49
- },
50
- defaultSettings: {
51
- useModel: DyFM_OAI_Model.textEmbedding_3Small,
52
- },
53
- };
54
-
55
- beforeEach(() => {
56
- DyNTS_global_settings.env_settings = {
57
- environment: DyFM_EnvironmentFlag.local,
58
- mongoUri: 'mongodb://localhost:27017/test',
59
- } as typeof DyNTS_global_settings.env_settings;
60
-
61
- testData = Object.assign(new TestMetadata(), {
62
- _id: 'test-id-123',
63
- content: 'Test content',
64
- });
65
-
66
- mockDBService = jasmine.createSpyObj('DyNTS_DBService', [
67
- 'getAll', 'getDataById', 'aggregate', 'createData', 'updateOne', 'find', 'findOne',
68
- 'getDataListByIds', 'getDataByDependencyId', 'getDataListByDependencyId',
69
- 'getDataListByDependencyIds', 'modifyData', 'markDeletedById', 'trueDeleteDataById',
70
- 'trueDeleteAllData', 'restoreDeletedById',
71
- ]);
72
-
73
- mockEmbedding_CS = jasmine.createSpyObj('DyNTS_OAI_Embedding_ControlService', ['createEmbedding']);
74
-
75
- spyOn(DyNTS_GlobalService, 'getDBService').and.returnValue(mockDBService as never);
76
- spyOn(DyNTS_GlobalService, 'getDBServiceByKey').and.returnValue(mockDBService as never);
77
-
78
- spyOn(DyNTS_DataService.prototype, 'constructor' as never).and.callThrough();
79
- spyOn(DyNTS_DataService.prototype, 'getDataById').and.returnValue(Promise.resolve(testData));
80
- spyOn(DyNTS_DataService.prototype, 'saveData').and.returnValue(Promise.resolve(testData));
81
- spyOn(DyNTS_DataService.prototype as unknown as { ensureData: (d?: unknown) => TestMetadata }, 'ensureData').and.returnValue(testData);
82
-
83
- service = new DyNTS_OAI_VectorDataService<TestMetadata>(
84
- testData,
85
- testDataParams,
86
- mockOpenAISettings,
87
- 'test-issuer'
88
- );
89
-
90
- (service as { dataDBService: typeof mockDBService }).dataDBService = mockDBService;
91
- (service as unknown as { embedding_CS: typeof mockEmbedding_CS }).embedding_CS = mockEmbedding_CS;
92
- });
93
-
94
- describe('| constructor', () => {
95
- it('| should initialize with data, params, and settings', () => {
96
- expect(service.data).toBe(testData);
97
- expect(service.dataParams).toBe(testDataParams);
98
- expect((service as any).openAISettings).toEqual(mockOpenAISettings);
99
- expect(service.issuer).toBe('test-issuer');
100
- });
101
-
102
- it('| should identify vectorized properties', () => {
103
- expect((service as any).vectorizedProperties).toBeDefined();
104
- expect((service as any).vectorizedProperties.length).toBeGreaterThan(0);
105
- });
106
-
107
- it('| should identify vectorize properties', () => {
108
- expect((service as any).vectorizeProperties).toBeDefined();
109
- expect((service as any).vectorizeProperties.length).toBeGreaterThan(0);
110
- });
111
-
112
- it('| should throw error if apiKey not provided', () => {
113
- const invalidSettings: DyFM_OAI_Settings = {
114
- config: {
115
- apiKey: '',
116
- },
117
- defaultSettings: {
118
- useModel: DyFM_OAI_Model.textEmbedding_3Small,
119
- },
120
- };
121
-
122
- expect(() => {
123
- new DyNTS_OAI_VectorDataService<TestMetadata>(
124
- testData,
125
- testDataParams,
126
- invalidSettings,
127
- 'test-issuer'
128
- );
129
- }).toThrow();
130
- });
131
-
132
- it('| should throw error if vectorizedProperties missing', () => {
133
- const paramsWithoutVectorized = new DyFM_DataModel_Params<TestMetadata>({
134
- dataName: 'test_data',
135
- properties: {
136
- name: {
137
- key: 'name',
138
- type: DyFM_BasicProperty_Type.string,
139
- },
140
- content: {
141
- key: 'content',
142
- type: DyFM_BasicProperty_Type.string,
143
- },
144
- },
145
- });
146
-
147
- expect(() => {
148
- new DyNTS_OAI_VectorDataService<TestMetadata>(
149
- testData,
150
- paramsWithoutVectorized,
151
- mockOpenAISettings,
152
- 'test-issuer'
153
- );
154
- }).toThrow();
155
- });
156
- });
157
-
158
- describe('| vectorize', () => {
159
- it('| should create embedding for input', async () => {
160
- const mockResponse: CreateEmbeddingResponse = {
161
- data: [
162
- {
163
- embedding: [0.1, 0.2, 0.3],
164
- index: 0,
165
- object: 'embedding',
166
- },
167
- ],
168
- model: 'text-embedding-3-small',
169
- object: 'list',
170
- usage: {
171
- prompt_tokens: 5,
172
- total_tokens: 5,
173
- },
174
- };
175
-
176
- mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
177
-
178
- const result = await service.vectorize('Test input');
179
-
180
- expect(result).toEqual([0.1, 0.2, 0.3]);
181
- expect(mockEmbedding_CS.createEmbedding).toHaveBeenCalledWith({
182
- text: 'Test input',
183
- model: DyFM_OAI_Model.textEmbedding_3Small,
184
- fullResponse: true,
185
- issuer: 'test-issuer',
186
- });
187
- expect((service as any).tokenSpent).toBe(5);
188
- });
189
-
190
- it('| should throw error if input is empty', async () => {
191
- try {
192
- await service.vectorize('');
193
- fail('Should have thrown an error');
194
- } catch (error) {
195
- expect(error).toBeInstanceOf(DyFM_Error);
196
- expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-V1');
197
- }
198
- });
199
-
200
- it('| should handle embedding errors', async () => {
201
- const error = new Error('Embedding failed');
202
- mockEmbedding_CS.createEmbedding.and.returnValue(Promise.reject(error));
203
-
204
- try {
205
- await service.vectorize('Test input');
206
- fail('Should have thrown an error');
207
- } catch (err) {
208
- expect(err).toBeInstanceOf(DyFM_Error);
209
- expect((err as DyFM_Error)._errorCode).toContain('DyNTS-VDB-V0');
210
- }
211
- });
212
- });
213
-
214
- describe('| vectorizeDataProperties', () => {
215
- it('| should vectorize properties when data is new', async () => {
216
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
217
- name: 'New Name',
218
- content: 'New content',
219
- });
220
-
221
- (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(null));
222
- spyOn(service, 'vectorize').and.returnValue(Promise.resolve([0.1, 0.2, 0.3]));
223
-
224
- const result = await service.vectorizeDataProperties(newData);
225
-
226
- expect(service.vectorize).toHaveBeenCalled();
227
- expect(result.contentVectorized).toEqual([0.1, 0.2, 0.3]);
228
- });
229
-
230
- it('| should not vectorize if data unchanged', async () => {
231
- const existingData: TestMetadata = Object.assign(new TestMetadata(), {
232
- _id: 'test-id-123',
233
- content: 'Test content',
234
- contentVectorized: [0.1, 0.2, 0.3],
235
- });
236
-
237
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
238
- _id: 'test-id-123',
239
- content: 'Test content',
240
- });
241
-
242
- (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(existingData));
243
- spyOn(service, 'vectorize').and.returnValue(Promise.resolve([0.4, 0.5, 0.6]));
244
-
245
- const result = await service.vectorizeDataProperties(newData);
246
-
247
- expect(service.vectorize).not.toHaveBeenCalled();
248
- expect(result.contentVectorized).toEqual([0.1, 0.2, 0.3]);
249
- });
250
-
251
- it('| should vectorize if forceVectorize is true', async () => {
252
- const existingData: TestMetadata = Object.assign(new TestMetadata(), {
253
- _id: 'test-id-123',
254
- content: 'Test content',
255
- contentVectorized: [0.1, 0.2, 0.3],
256
- });
257
-
258
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
259
- _id: 'test-id-123',
260
- content: 'Test content',
261
- });
262
-
263
- (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(existingData));
264
- spyOn(service, 'vectorize').and.returnValue(Promise.resolve([0.4, 0.5, 0.6]));
265
-
266
- const result = await service.vectorizeDataProperties(newData, true);
267
-
268
- expect(service.vectorize).toHaveBeenCalled();
269
- expect(result.contentVectorized).toEqual([0.4, 0.5, 0.6]);
270
- });
271
-
272
- it('| should throw error if embedding model not set', async () => {
273
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
274
- name: 'New Name',
275
- content: 'New content',
276
- });
277
-
278
- const paramsWithoutModel = new DyFM_DataModel_Params<TestMetadata>({
279
- dataName: 'test_data',
280
- properties: {
281
- name: {
282
- key: 'name',
283
- type: DyFM_BasicProperty_Type.string,
284
- },
285
- content: {
286
- key: 'content',
287
- type: DyFM_BasicProperty_Type.string,
288
- },
289
- contentVectorized: {
290
- key: 'contentVectorized',
291
- type: DyFM_BasicProperty_Type.array,
292
- vectorizedFrom: ['content'],
293
- // embeddingModel not set
294
- },
295
- },
296
- });
297
-
298
- const serviceWithoutModel = new DyNTS_OAI_VectorDataService<TestMetadata>(
299
- testData,
300
- paramsWithoutModel,
301
- mockOpenAISettings,
302
- 'test-issuer'
303
- );
304
-
305
- (serviceWithoutModel as any).vectorizedProperties[0].embeddingModel = undefined;
306
- (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(null));
307
-
308
- try {
309
- await serviceWithoutModel.vectorizeDataProperties(newData);
310
- fail('Should have thrown an error');
311
- } catch (error) {
312
- expect(error).toBeInstanceOf(DyFM_Error);
313
- expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-VDB1');
314
- }
315
- });
316
- });
317
-
318
- describe('| vectorSearch', () => {
319
- it('| should perform vector search', async () => {
320
- const mockResponse: CreateEmbeddingResponse = {
321
- data: [
322
- {
323
- embedding: [0.1, 0.2, 0.3],
324
- index: 0,
325
- object: 'embedding',
326
- },
327
- ],
328
- model: 'text-embedding-3-small',
329
- object: 'list',
330
- usage: {
331
- prompt_tokens: 5,
332
- total_tokens: 5,
333
- },
334
- };
335
-
336
- mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
337
- mockDBService.aggregate.and.returnValue(Promise.resolve([testData]));
338
-
339
- const result = await service.vectorSearch({
340
- input: 'Test search',
341
- searchInKey: 'contentVectorized',
342
- });
343
-
344
- expect(mockEmbedding_CS.createEmbedding).toHaveBeenCalled();
345
- expect(mockDBService.aggregate).toHaveBeenCalled();
346
- expect(result).toEqual([testData]);
347
- });
348
-
349
- it('| should use default limit and numberOfCandidates', async () => {
350
- const mockResponse: CreateEmbeddingResponse = {
351
- data: [
352
- {
353
- embedding: [0.1, 0.2, 0.3],
354
- index: 0,
355
- object: 'embedding',
356
- },
357
- ],
358
- model: 'text-embedding-3-small',
359
- object: 'list',
360
- usage: {
361
- prompt_tokens: 5,
362
- total_tokens: 5,
363
- },
364
- };
365
-
366
- mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
367
- mockDBService.aggregate.and.returnValue(Promise.resolve([]));
368
-
369
- await service.vectorSearch({
370
- input: 'Test search',
371
- searchInKey: 'contentVectorized',
372
- });
373
-
374
- const aggregateCall = mockDBService.aggregate.calls.mostRecent().args[0][0];
375
- expect(aggregateCall.$vectorSearch.limit).toBe(3);
376
- expect(aggregateCall.$vectorSearch.numCandidates).toBe(100);
377
- });
378
-
379
- it('| should throw error if input is empty', async () => {
380
- try {
381
- await service.vectorSearch({
382
- input: '',
383
- searchInKey: 'contentVectorized',
384
- });
385
- fail('Should have thrown an error');
386
- } catch (error) {
387
- expect(error).toBeInstanceOf(DyFM_Error);
388
- expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-VS1');
389
- }
390
- });
391
-
392
- it('| should throw error if property not found', async () => {
393
- try {
394
- await service.vectorSearch({
395
- input: 'Test search',
396
- searchInKey: 'non-existent',
397
- });
398
- fail('Should have thrown an error');
399
- } catch (error) {
400
- expect(error).toBeInstanceOf(DyFM_Error);
401
- expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-VS2');
402
- }
403
- });
404
-
405
- it('| should throw error if property has no vectorizeUseIndex', async () => {
406
- const paramsWithoutIndex = new DyFM_DataModel_Params<TestMetadata>({
407
- dataName: 'test_data',
408
- properties: {
409
- name: {
410
- key: 'name',
411
- type: DyFM_BasicProperty_Type.string,
412
- },
413
- content: {
414
- key: 'content',
415
- type: DyFM_BasicProperty_Type.string,
416
- },
417
- contentVectorized: {
418
- key: 'contentVectorized',
419
- type: DyFM_BasicProperty_Type.array,
420
- vectorizedFrom: ['content'],
421
- embeddingModel: DyFM_OAI_Model.textEmbedding_3Small,
422
- // vectorizeUseIndex not set
423
- },
424
- },
425
- });
426
-
427
- const serviceWithoutIndex = new DyNTS_OAI_VectorDataService<TestMetadata>(
428
- testData,
429
- paramsWithoutIndex,
430
- mockOpenAISettings,
431
- 'test-issuer'
432
- );
433
-
434
- (serviceWithoutIndex as any).dataDBService = mockDBService;
435
- (serviceWithoutIndex as any).embedding_CS = mockEmbedding_CS;
436
-
437
- try {
438
- await serviceWithoutIndex.vectorSearch({
439
- input: 'Test search',
440
- searchInKey: 'contentVectorized',
441
- });
442
- fail('Should have thrown an error');
443
- } catch (error) {
444
- expect(error).toBeInstanceOf(DyFM_Error);
445
- }
446
- });
447
- });
448
-
449
- describe('| saveData', () => {
450
- it('| should vectorize properties before saving', async () => {
451
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
452
- name: 'New Name',
453
- content: 'New content',
454
- });
455
-
456
- (DyNTS_DataService.prototype as unknown as { ensureData: jasmine.Spy }).ensureData.and.returnValue(newData);
457
- spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
458
- (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.resolve(newData));
459
-
460
- const result = await service.saveData(newData);
461
-
462
- expect(service.vectorizeDataProperties).toHaveBeenCalledWith(newData, undefined);
463
- expect(result).toBeDefined();
464
- });
465
-
466
- it('| should remove vectorized properties if swallowVectorizedProperties is true', async () => {
467
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
468
- name: 'New Name',
469
- content: 'New content',
470
- contentVectorized: [0.1, 0.2, 0.3],
471
- });
472
-
473
- (service as any).swallowVectorizedProperties = true;
474
- spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
475
- (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.resolve(newData));
476
- spyOn(DyFM_Object, 'cleanObject');
477
-
478
- const result = await service.saveData(newData);
479
-
480
- expect(result.contentVectorized).toBeUndefined();
481
- expect(DyFM_Object.cleanObject).toHaveBeenCalled();
482
- });
483
-
484
- it('| should keep vectorized properties if swallowVectorizedProperties is false', async () => {
485
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
486
- name: 'New Name',
487
- content: 'New content',
488
- contentVectorized: [0.1, 0.2, 0.3],
489
- });
490
-
491
- (service as any).swallowVectorizedProperties = false;
492
- spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
493
- (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.resolve(newData));
494
-
495
- const result = await service.saveData(newData);
496
-
497
- expect(result.contentVectorized).toBeDefined();
498
- });
499
-
500
- it('| should handle save errors', async () => {
501
- const newData: TestMetadata = Object.assign(new TestMetadata(), {
502
- name: 'New Name',
503
- content: 'New content',
504
- });
505
-
506
- const error = new Error('Save failed');
507
- spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
508
- (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.reject(error));
509
-
510
- try {
511
- await service.saveData(newData);
512
- fail('Should have thrown an error');
513
- } catch (err) {
514
- expect(err).toBeInstanceOf(DyFM_Error);
515
- expect((err as DyFM_Error)._errorCode).toContain('DyNTS-VDB-SD0');
516
- }
517
- });
518
- });
519
-
520
- describe('| properties', () => {
521
- it('| should have tokenSpent property', () => {
522
- expect((service as any).tokenSpent).toBe(0);
523
- });
524
-
525
- it('| should track token usage', async () => {
526
- const mockResponse: CreateEmbeddingResponse = {
527
- data: [
528
- {
529
- embedding: [0.1, 0.2, 0.3],
530
- index: 0,
531
- object: 'embedding',
532
- },
533
- ],
534
- model: 'text-embedding-3-small',
535
- object: 'list',
536
- usage: {
537
- prompt_tokens: 10,
538
- total_tokens: 10,
539
- },
540
- };
541
-
542
- mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
543
-
544
- await service.vectorize('Test input');
545
-
546
- expect((service as any).tokenSpent).toBe(10);
547
- });
548
- });
549
- });
550
-
1
+
2
+ import { DyNTS_OAI_VectorDataService } from './oai-vector-data.service';
3
+ import { DyFM_Metadata, DyFM_DataModel_Params, DyFM_DataProperty_Params, DyFM_BasicProperty_Type, DyFM_Error, DyFM_Object, DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
4
+ import { DyFM_OAI_Settings, DyFM_OAI_Model } from '@futdevpro/fsm-dynamo/ai/open-ai';
5
+ import { DyNTS_OAI_Embedding_ControlService } from '../oai-embedding.control-service';
6
+ import { DyNTS_DataService } from '../../../../../../_services/base/data.service';
7
+ import { DyNTS_GlobalService } from '../../../../../../_services/core/global.service';
8
+ import { CreateEmbeddingResponse } from 'openai/resources';
9
+ import { DyNTS_global_settings } from '../../../../../../_collections/global-settings.const';
10
+
11
+ class TestMetadata extends DyFM_Metadata {
12
+ name: string;
13
+ content: string;
14
+ contentVectorized?: number[];
15
+ }
16
+
17
+ const testDataParams = new DyFM_DataModel_Params<TestMetadata>({
18
+ dataName: 'test_data',
19
+ properties: {
20
+ name: {
21
+ key: 'name',
22
+ type: DyFM_BasicProperty_Type.string,
23
+ required: true,
24
+ },
25
+ content: {
26
+ key: 'content',
27
+ type: DyFM_BasicProperty_Type.string,
28
+ },
29
+ contentVectorized: {
30
+ key: 'contentVectorized',
31
+ type: 'number[]', // Must be number[] for vectorized property
32
+ vectorizedFrom: ['content'],
33
+ embeddingModel: DyFM_OAI_Model.textEmbedding_3Small,
34
+ vectorizeUseIndex: 'content_vector_index',
35
+ },
36
+ },
37
+ });
38
+
39
+ describe('| DyNTS_OAI_VectorDataService', () => {
40
+ let service: DyNTS_OAI_VectorDataService<TestMetadata>;
41
+ let mockEmbedding_CS: jasmine.SpyObj<DyNTS_OAI_Embedding_ControlService>;
42
+ let mockDBService: jasmine.SpyObj<any>;
43
+ let testData: TestMetadata;
44
+
45
+ const mockOpenAISettings: DyFM_OAI_Settings = {
46
+ config: {
47
+ apiKey: 'test-api-key',
48
+ organization: 'test-org',
49
+ },
50
+ defaultSettings: {
51
+ useModel: DyFM_OAI_Model.textEmbedding_3Small,
52
+ },
53
+ };
54
+
55
+ beforeEach(() => {
56
+ DyNTS_global_settings.env_settings = {
57
+ environment: DyFM_EnvironmentFlag.local,
58
+ mongoUri: 'mongodb://localhost:27017/test',
59
+ } as typeof DyNTS_global_settings.env_settings;
60
+
61
+ testData = Object.assign(new TestMetadata(), {
62
+ _id: 'test-id-123',
63
+ content: 'Test content',
64
+ });
65
+
66
+ mockDBService = jasmine.createSpyObj('DyNTS_DBService', [
67
+ 'getAll', 'getDataById', 'aggregate', 'createData', 'updateOne', 'find', 'findOne',
68
+ 'getDataListByIds', 'getDataByDependencyId', 'getDataListByDependencyId',
69
+ 'getDataListByDependencyIds', 'modifyData', 'markDeletedById', 'trueDeleteDataById',
70
+ 'trueDeleteAllData', 'restoreDeletedById',
71
+ ]);
72
+
73
+ mockEmbedding_CS = jasmine.createSpyObj('DyNTS_OAI_Embedding_ControlService', ['createEmbedding']);
74
+
75
+ spyOn(DyNTS_GlobalService, 'getDBService').and.returnValue(mockDBService as never);
76
+ spyOn(DyNTS_GlobalService, 'getDBServiceByKey').and.returnValue(mockDBService as never);
77
+
78
+ spyOn(DyNTS_DataService.prototype, 'constructor' as never).and.callThrough();
79
+ spyOn(DyNTS_DataService.prototype, 'getDataById').and.returnValue(Promise.resolve(testData));
80
+ spyOn(DyNTS_DataService.prototype, 'saveData').and.returnValue(Promise.resolve(testData));
81
+ spyOn(DyNTS_DataService.prototype as unknown as { ensureData: (d?: unknown) => TestMetadata }, 'ensureData').and.returnValue(testData);
82
+
83
+ service = new DyNTS_OAI_VectorDataService<TestMetadata>(
84
+ testData,
85
+ testDataParams,
86
+ mockOpenAISettings,
87
+ 'test-issuer'
88
+ );
89
+
90
+ (service as { dataDBService: typeof mockDBService }).dataDBService = mockDBService;
91
+ (service as unknown as { embedding_CS: typeof mockEmbedding_CS }).embedding_CS = mockEmbedding_CS;
92
+ });
93
+
94
+ describe('| constructor', () => {
95
+ it('| should initialize with data, params, and settings', () => {
96
+ expect(service.data).toBe(testData);
97
+ expect(service.dataParams).toBe(testDataParams);
98
+ expect((service as any).openAISettings).toEqual(mockOpenAISettings);
99
+ expect(service.issuer).toBe('test-issuer');
100
+ });
101
+
102
+ it('| should identify vectorized properties', () => {
103
+ expect((service as any).vectorizedProperties).toBeDefined();
104
+ expect((service as any).vectorizedProperties.length).toBeGreaterThan(0);
105
+ });
106
+
107
+ it('| should identify vectorize properties', () => {
108
+ expect((service as any).vectorizeProperties).toBeDefined();
109
+ expect((service as any).vectorizeProperties.length).toBeGreaterThan(0);
110
+ });
111
+
112
+ it('| should throw error if apiKey not provided', () => {
113
+ const invalidSettings: DyFM_OAI_Settings = {
114
+ config: {
115
+ apiKey: '',
116
+ },
117
+ defaultSettings: {
118
+ useModel: DyFM_OAI_Model.textEmbedding_3Small,
119
+ },
120
+ };
121
+
122
+ expect(() => {
123
+ new DyNTS_OAI_VectorDataService<TestMetadata>(
124
+ testData,
125
+ testDataParams,
126
+ invalidSettings,
127
+ 'test-issuer'
128
+ );
129
+ }).toThrow();
130
+ });
131
+
132
+ it('| should throw error if vectorizedProperties missing', () => {
133
+ const paramsWithoutVectorized = new DyFM_DataModel_Params<TestMetadata>({
134
+ dataName: 'test_data',
135
+ properties: {
136
+ name: {
137
+ key: 'name',
138
+ type: DyFM_BasicProperty_Type.string,
139
+ },
140
+ content: {
141
+ key: 'content',
142
+ type: DyFM_BasicProperty_Type.string,
143
+ },
144
+ },
145
+ });
146
+
147
+ expect(() => {
148
+ new DyNTS_OAI_VectorDataService<TestMetadata>(
149
+ testData,
150
+ paramsWithoutVectorized,
151
+ mockOpenAISettings,
152
+ 'test-issuer'
153
+ );
154
+ }).toThrow();
155
+ });
156
+ });
157
+
158
+ describe('| vectorize', () => {
159
+ it('| should create embedding for input', async () => {
160
+ const mockResponse: CreateEmbeddingResponse = {
161
+ data: [
162
+ {
163
+ embedding: [0.1, 0.2, 0.3],
164
+ index: 0,
165
+ object: 'embedding',
166
+ },
167
+ ],
168
+ model: 'text-embedding-3-small',
169
+ object: 'list',
170
+ usage: {
171
+ prompt_tokens: 5,
172
+ total_tokens: 5,
173
+ },
174
+ };
175
+
176
+ mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
177
+
178
+ const result = await service.vectorize('Test input');
179
+
180
+ expect(result).toEqual([0.1, 0.2, 0.3]);
181
+ expect(mockEmbedding_CS.createEmbedding).toHaveBeenCalledWith({
182
+ text: 'Test input',
183
+ model: DyFM_OAI_Model.textEmbedding_3Small,
184
+ fullResponse: true,
185
+ issuer: 'test-issuer',
186
+ });
187
+ expect((service as any).tokenSpent).toBe(5);
188
+ });
189
+
190
+ it('| should throw error if input is empty', async () => {
191
+ try {
192
+ await service.vectorize('');
193
+ fail('Should have thrown an error');
194
+ } catch (error) {
195
+ expect(error).toBeInstanceOf(DyFM_Error);
196
+ expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-V1');
197
+ }
198
+ });
199
+
200
+ it('| should handle embedding errors', async () => {
201
+ const error = new Error('Embedding failed');
202
+ mockEmbedding_CS.createEmbedding.and.returnValue(Promise.reject(error));
203
+
204
+ try {
205
+ await service.vectorize('Test input');
206
+ fail('Should have thrown an error');
207
+ } catch (err) {
208
+ expect(err).toBeInstanceOf(DyFM_Error);
209
+ expect((err as DyFM_Error)._errorCode).toContain('DyNTS-VDB-V0');
210
+ }
211
+ });
212
+ });
213
+
214
+ describe('| vectorizeDataProperties', () => {
215
+ it('| should vectorize properties when data is new', async () => {
216
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
217
+ name: 'New Name',
218
+ content: 'New content',
219
+ });
220
+
221
+ (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(null));
222
+ spyOn(service, 'vectorize').and.returnValue(Promise.resolve([0.1, 0.2, 0.3]));
223
+
224
+ const result = await service.vectorizeDataProperties(newData);
225
+
226
+ expect(service.vectorize).toHaveBeenCalled();
227
+ expect(result.contentVectorized).toEqual([0.1, 0.2, 0.3]);
228
+ });
229
+
230
+ it('| should not vectorize if data unchanged', async () => {
231
+ const existingData: TestMetadata = Object.assign(new TestMetadata(), {
232
+ _id: 'test-id-123',
233
+ content: 'Test content',
234
+ contentVectorized: [0.1, 0.2, 0.3],
235
+ });
236
+
237
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
238
+ _id: 'test-id-123',
239
+ content: 'Test content',
240
+ });
241
+
242
+ (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(existingData));
243
+ spyOn(service, 'vectorize').and.returnValue(Promise.resolve([0.4, 0.5, 0.6]));
244
+
245
+ const result = await service.vectorizeDataProperties(newData);
246
+
247
+ expect(service.vectorize).not.toHaveBeenCalled();
248
+ expect(result.contentVectorized).toEqual([0.1, 0.2, 0.3]);
249
+ });
250
+
251
+ it('| should vectorize if forceVectorize is true', async () => {
252
+ const existingData: TestMetadata = Object.assign(new TestMetadata(), {
253
+ _id: 'test-id-123',
254
+ content: 'Test content',
255
+ contentVectorized: [0.1, 0.2, 0.3],
256
+ });
257
+
258
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
259
+ _id: 'test-id-123',
260
+ content: 'Test content',
261
+ });
262
+
263
+ (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(existingData));
264
+ spyOn(service, 'vectorize').and.returnValue(Promise.resolve([0.4, 0.5, 0.6]));
265
+
266
+ const result = await service.vectorizeDataProperties(newData, true);
267
+
268
+ expect(service.vectorize).toHaveBeenCalled();
269
+ expect(result.contentVectorized).toEqual([0.4, 0.5, 0.6]);
270
+ });
271
+
272
+ it('| should throw error if embedding model not set', async () => {
273
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
274
+ name: 'New Name',
275
+ content: 'New content',
276
+ });
277
+
278
+ const paramsWithoutModel = new DyFM_DataModel_Params<TestMetadata>({
279
+ dataName: 'test_data',
280
+ properties: {
281
+ name: {
282
+ key: 'name',
283
+ type: DyFM_BasicProperty_Type.string,
284
+ },
285
+ content: {
286
+ key: 'content',
287
+ type: DyFM_BasicProperty_Type.string,
288
+ },
289
+ contentVectorized: {
290
+ key: 'contentVectorized',
291
+ type: DyFM_BasicProperty_Type.array,
292
+ vectorizedFrom: ['content'],
293
+ // embeddingModel not set
294
+ },
295
+ },
296
+ });
297
+
298
+ const serviceWithoutModel = new DyNTS_OAI_VectorDataService<TestMetadata>(
299
+ testData,
300
+ paramsWithoutModel,
301
+ mockOpenAISettings,
302
+ 'test-issuer'
303
+ );
304
+
305
+ (serviceWithoutModel as any).vectorizedProperties[0].embeddingModel = undefined;
306
+ (DyNTS_DataService.prototype.getDataById as jasmine.Spy).and.returnValue(Promise.resolve(null));
307
+
308
+ try {
309
+ await serviceWithoutModel.vectorizeDataProperties(newData);
310
+ fail('Should have thrown an error');
311
+ } catch (error) {
312
+ expect(error).toBeInstanceOf(DyFM_Error);
313
+ expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-VDB1');
314
+ }
315
+ });
316
+ });
317
+
318
+ describe('| vectorSearch', () => {
319
+ it('| should perform vector search', async () => {
320
+ const mockResponse: CreateEmbeddingResponse = {
321
+ data: [
322
+ {
323
+ embedding: [0.1, 0.2, 0.3],
324
+ index: 0,
325
+ object: 'embedding',
326
+ },
327
+ ],
328
+ model: 'text-embedding-3-small',
329
+ object: 'list',
330
+ usage: {
331
+ prompt_tokens: 5,
332
+ total_tokens: 5,
333
+ },
334
+ };
335
+
336
+ mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
337
+ mockDBService.aggregate.and.returnValue(Promise.resolve([testData]));
338
+
339
+ const result = await service.vectorSearch({
340
+ input: 'Test search',
341
+ searchInKey: 'contentVectorized',
342
+ });
343
+
344
+ expect(mockEmbedding_CS.createEmbedding).toHaveBeenCalled();
345
+ expect(mockDBService.aggregate).toHaveBeenCalled();
346
+ expect(result).toEqual([testData]);
347
+ });
348
+
349
+ it('| should use default limit and numberOfCandidates', async () => {
350
+ const mockResponse: CreateEmbeddingResponse = {
351
+ data: [
352
+ {
353
+ embedding: [0.1, 0.2, 0.3],
354
+ index: 0,
355
+ object: 'embedding',
356
+ },
357
+ ],
358
+ model: 'text-embedding-3-small',
359
+ object: 'list',
360
+ usage: {
361
+ prompt_tokens: 5,
362
+ total_tokens: 5,
363
+ },
364
+ };
365
+
366
+ mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
367
+ mockDBService.aggregate.and.returnValue(Promise.resolve([]));
368
+
369
+ await service.vectorSearch({
370
+ input: 'Test search',
371
+ searchInKey: 'contentVectorized',
372
+ });
373
+
374
+ const aggregateCall = mockDBService.aggregate.calls.mostRecent().args[0][0];
375
+ expect(aggregateCall.$vectorSearch.limit).toBe(3);
376
+ expect(aggregateCall.$vectorSearch.numCandidates).toBe(100);
377
+ });
378
+
379
+ it('| should throw error if input is empty', async () => {
380
+ try {
381
+ await service.vectorSearch({
382
+ input: '',
383
+ searchInKey: 'contentVectorized',
384
+ });
385
+ fail('Should have thrown an error');
386
+ } catch (error) {
387
+ expect(error).toBeInstanceOf(DyFM_Error);
388
+ expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-VS1');
389
+ }
390
+ });
391
+
392
+ it('| should throw error if property not found', async () => {
393
+ try {
394
+ await service.vectorSearch({
395
+ input: 'Test search',
396
+ searchInKey: 'non-existent',
397
+ });
398
+ fail('Should have thrown an error');
399
+ } catch (error) {
400
+ expect(error).toBeInstanceOf(DyFM_Error);
401
+ expect((error as DyFM_Error)._errorCode).toContain('DyNTS-VDB-VS2');
402
+ }
403
+ });
404
+
405
+ it('| should throw error if property has no vectorizeUseIndex', async () => {
406
+ const paramsWithoutIndex = new DyFM_DataModel_Params<TestMetadata>({
407
+ dataName: 'test_data',
408
+ properties: {
409
+ name: {
410
+ key: 'name',
411
+ type: DyFM_BasicProperty_Type.string,
412
+ },
413
+ content: {
414
+ key: 'content',
415
+ type: DyFM_BasicProperty_Type.string,
416
+ },
417
+ contentVectorized: {
418
+ key: 'contentVectorized',
419
+ type: DyFM_BasicProperty_Type.array,
420
+ vectorizedFrom: ['content'],
421
+ embeddingModel: DyFM_OAI_Model.textEmbedding_3Small,
422
+ // vectorizeUseIndex not set
423
+ },
424
+ },
425
+ });
426
+
427
+ const serviceWithoutIndex = new DyNTS_OAI_VectorDataService<TestMetadata>(
428
+ testData,
429
+ paramsWithoutIndex,
430
+ mockOpenAISettings,
431
+ 'test-issuer'
432
+ );
433
+
434
+ (serviceWithoutIndex as any).dataDBService = mockDBService;
435
+ (serviceWithoutIndex as any).embedding_CS = mockEmbedding_CS;
436
+
437
+ try {
438
+ await serviceWithoutIndex.vectorSearch({
439
+ input: 'Test search',
440
+ searchInKey: 'contentVectorized',
441
+ });
442
+ fail('Should have thrown an error');
443
+ } catch (error) {
444
+ expect(error).toBeInstanceOf(DyFM_Error);
445
+ }
446
+ });
447
+ });
448
+
449
+ describe('| saveData', () => {
450
+ it('| should vectorize properties before saving', async () => {
451
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
452
+ name: 'New Name',
453
+ content: 'New content',
454
+ });
455
+
456
+ (DyNTS_DataService.prototype as unknown as { ensureData: jasmine.Spy }).ensureData.and.returnValue(newData);
457
+ spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
458
+ (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.resolve(newData));
459
+
460
+ const result = await service.saveData(newData);
461
+
462
+ expect(service.vectorizeDataProperties).toHaveBeenCalledWith(newData, undefined);
463
+ expect(result).toBeDefined();
464
+ });
465
+
466
+ it('| should remove vectorized properties if swallowVectorizedProperties is true', async () => {
467
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
468
+ name: 'New Name',
469
+ content: 'New content',
470
+ contentVectorized: [0.1, 0.2, 0.3],
471
+ });
472
+
473
+ (service as any).swallowVectorizedProperties = true;
474
+ spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
475
+ (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.resolve(newData));
476
+ spyOn(DyFM_Object, 'cleanObject');
477
+
478
+ const result = await service.saveData(newData);
479
+
480
+ expect(result.contentVectorized).toBeUndefined();
481
+ expect(DyFM_Object.cleanObject).toHaveBeenCalled();
482
+ });
483
+
484
+ it('| should keep vectorized properties if swallowVectorizedProperties is false', async () => {
485
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
486
+ name: 'New Name',
487
+ content: 'New content',
488
+ contentVectorized: [0.1, 0.2, 0.3],
489
+ });
490
+
491
+ (service as any).swallowVectorizedProperties = false;
492
+ spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
493
+ (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.resolve(newData));
494
+
495
+ const result = await service.saveData(newData);
496
+
497
+ expect(result.contentVectorized).toBeDefined();
498
+ });
499
+
500
+ it('| should handle save errors', async () => {
501
+ const newData: TestMetadata = Object.assign(new TestMetadata(), {
502
+ name: 'New Name',
503
+ content: 'New content',
504
+ });
505
+
506
+ const error = new Error('Save failed');
507
+ spyOn(service, 'vectorizeDataProperties').and.returnValue(Promise.resolve(newData));
508
+ (DyNTS_DataService.prototype.saveData as jasmine.Spy).and.returnValue(Promise.reject(error));
509
+
510
+ try {
511
+ await service.saveData(newData);
512
+ fail('Should have thrown an error');
513
+ } catch (err) {
514
+ expect(err).toBeInstanceOf(DyFM_Error);
515
+ expect((err as DyFM_Error)._errorCode).toContain('DyNTS-VDB-SD0');
516
+ }
517
+ });
518
+ });
519
+
520
+ describe('| properties', () => {
521
+ it('| should have tokenSpent property', () => {
522
+ expect((service as any).tokenSpent).toBe(0);
523
+ });
524
+
525
+ it('| should track token usage', async () => {
526
+ const mockResponse: CreateEmbeddingResponse = {
527
+ data: [
528
+ {
529
+ embedding: [0.1, 0.2, 0.3],
530
+ index: 0,
531
+ object: 'embedding',
532
+ },
533
+ ],
534
+ model: 'text-embedding-3-small',
535
+ object: 'list',
536
+ usage: {
537
+ prompt_tokens: 10,
538
+ total_tokens: 10,
539
+ },
540
+ };
541
+
542
+ mockEmbedding_CS.createEmbedding.and.returnValue(Promise.resolve(mockResponse));
543
+
544
+ await service.vectorize('Test input');
545
+
546
+ expect((service as any).tokenSpent).toBe(10);
547
+ });
548
+ });
549
+ });
550
+