@futdevpro/nts-dynamo 1.15.38 → 1.15.40

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 (338) 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/_ag_backend-structure.mdc +85 -85
  5. package/.cursor/rules/_ag_backend.mdc +16 -16
  6. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  7. package/.cursor/rules/_ag_frontend.mdc +39 -39
  8. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  9. package/.cursor/rules/_ag_naming.mdc +115 -115
  10. package/.cursor/rules/_ag_should-be.mdc +6 -6
  11. package/.cursor/rules/ai_development_guide.md +60 -60
  12. package/.cursor/rules/cursor-rules.md +160 -160
  13. package/.cursor/rules/default-command.mdc +464 -464
  14. package/.cursor/rules/error_code_pattern.md +39 -39
  15. package/.cursor/rules/saved rule mcp server use.md +15 -15
  16. package/.dynamo/logs/cicd-pipeline/output.log +2567 -0
  17. package/.dynamo/logs/cicd-pipeline/status.json +319 -0
  18. package/.github/workflows/main.yml +432 -432
  19. package/.vscode/settings.json +10 -10
  20. package/HOWTO.md +15 -15
  21. package/LICENSE +21 -21
  22. package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
  23. package/_specifications/BACKLOG.md +92 -92
  24. package/_specifications/TODO.md +15 -15
  25. package/_specifications/agent.md +138 -138
  26. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +6 -0
  27. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts.map +1 -1
  28. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +25 -7
  29. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js.map +1 -1
  30. package/build/_modules/ai/_services/ai-llm.service-base.d.ts.map +1 -1
  31. package/build/_modules/ai/_services/ai-llm.service-base.js +7 -0
  32. package/build/_modules/ai/_services/ai-llm.service-base.js.map +1 -1
  33. package/build/_modules/server/errors/errors.control-service.d.ts +1 -0
  34. package/build/_modules/server/errors/errors.control-service.d.ts.map +1 -1
  35. package/build/_modules/server/errors/errors.control-service.js.map +1 -1
  36. package/build/_modules/server/errors/errors.controller.d.ts.map +1 -1
  37. package/build/_modules/server/errors/errors.controller.js +19 -1
  38. package/build/_modules/server/errors/errors.controller.js.map +1 -1
  39. package/build/_modules/server/errors/errors.data-service.d.ts +7 -0
  40. package/build/_modules/server/errors/errors.data-service.d.ts.map +1 -1
  41. package/build/_modules/server/errors/errors.data-service.js +31 -0
  42. package/build/_modules/server/errors/errors.data-service.js.map +1 -1
  43. package/eslint.config.js +3 -3
  44. package/nodemon.json +24 -24
  45. package/package.json +2 -2
  46. package/pnpm-workspace.yaml +8 -7
  47. package/scripts/run-coverage-tests.js +28 -28
  48. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  49. package/spec/support/helpers/ts-node-helper.js +93 -93
  50. package/spec/support/jasmine.coverage.json +24 -24
  51. package/spec/support/jasmine.json +24 -24
  52. package/src/_collections/archive.util.spec.ts +57 -57
  53. package/src/_collections/archive.util.ts +18 -18
  54. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  55. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  56. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  57. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  58. package/src/_collections/default-not-found-page.const.ts +22 -22
  59. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  60. package/src/_collections/default-socket-path.const.ts +2 -2
  61. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  62. package/src/_collections/get-environment-settings.util.ts +48 -48
  63. package/src/_collections/sample.env +21 -21
  64. package/src/_collections/star.controller.spec.ts +224 -224
  65. package/src/_collections/star.controller.ts +129 -129
  66. package/src/_enums/data-model-type.enum.ts +14 -14
  67. package/src/_enums/data-service-function.enum.ts +24 -24
  68. package/src/_enums/predefined-data-types.enum.ts +16 -16
  69. package/src/_enums/route-security.enum.ts +12 -12
  70. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  71. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  72. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  73. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  74. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  75. package/src/_models/control-models/app-params.control-model.ts +136 -136
  76. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  77. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  78. package/src/_models/control-models/endpoint-params.control-model.spec.ts +578 -578
  79. package/src/_models/control-models/endpoint-params.control-model.ts +526 -526
  80. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  81. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  82. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  83. package/src/_models/control-models/system-control.control-model.ts +12 -12
  84. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  85. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  86. package/src/_models/interfaces/global-log-settings.interface.ts +144 -144
  87. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  88. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  89. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  90. package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
  91. package/src/_models/types/db-update.type.ts +100 -100
  92. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  93. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  94. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  95. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  96. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  97. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  98. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  99. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  100. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  101. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  102. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  103. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  104. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  105. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  106. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  107. package/src/_modules/ai/_modules/document-ai/index.ts +28 -28
  108. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  109. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  110. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  111. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  112. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  113. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  114. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  115. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  116. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  117. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  118. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  119. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  120. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  121. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  122. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  123. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  124. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  125. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -106
  126. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1033 -1011
  127. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  128. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  129. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  130. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  131. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  132. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  133. package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -510
  134. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  135. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  136. package/src/_modules/ai/index.ts +13 -13
  137. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  138. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  139. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  140. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  141. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  142. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  143. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  144. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  145. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  146. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  147. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  148. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  149. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  150. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  151. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  152. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  153. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  154. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  155. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  156. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  157. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  158. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  159. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  160. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  161. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  162. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  163. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  164. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  165. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  166. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  167. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  168. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  169. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  170. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  171. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  172. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  173. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  174. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  175. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  176. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  177. package/src/_modules/custom-data/index.ts +9 -9
  178. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  179. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  180. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  181. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  182. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  183. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  184. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  185. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  186. package/src/_modules/defaults/index.ts +17 -17
  187. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  188. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  189. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  190. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  191. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  192. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  193. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  194. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  195. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  196. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  197. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  198. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  199. package/src/_modules/discord-assistant/index.ts +38 -38
  200. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  201. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  202. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  203. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  204. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  205. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  206. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  207. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  208. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  209. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  210. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  211. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  212. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  213. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  214. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  215. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  216. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  217. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  218. package/src/_modules/discord-bot/index.ts +36 -36
  219. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  220. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  221. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  222. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  223. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  224. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  225. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +393 -393
  226. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +220 -220
  227. package/src/_modules/local-vector-search/index.ts +11 -11
  228. package/src/_modules/messaging/README.md +354 -354
  229. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  230. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  231. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  232. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  233. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  234. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  235. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  236. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  237. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  238. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  239. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  240. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  241. package/src/_modules/messaging/index.ts +30 -30
  242. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  243. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  244. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  245. package/src/_modules/mock/app-params.mock.ts +9 -9
  246. package/src/_modules/mock/app-server.mock.ts +188 -188
  247. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  248. package/src/_modules/mock/auth-service.mock.ts +28 -28
  249. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  250. package/src/_modules/mock/controller.mock.ts +16 -16
  251. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  252. package/src/_modules/mock/data-model.mock.ts +82 -82
  253. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  254. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  255. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  256. package/src/_modules/mock/email-service.mock.ts +20 -20
  257. package/src/_modules/mock/email-template.mock.html +14 -14
  258. package/src/_modules/mock/endpoint.mock.ts +91 -91
  259. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  260. package/src/_modules/mock/socket-client.mock.ts +45 -45
  261. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  262. package/src/_modules/mock/socket-server.mock.ts +46 -46
  263. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  264. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  265. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  266. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  267. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  268. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  269. package/src/_modules/oauth2/index.ts +17 -17
  270. package/src/_modules/server/errors/errors.control-service.spec.ts +238 -234
  271. package/src/_modules/server/errors/errors.control-service.ts +85 -77
  272. package/src/_modules/server/errors/errors.controller.spec.ts +241 -238
  273. package/src/_modules/server/errors/errors.controller.ts +431 -402
  274. package/src/_modules/server/errors/errors.data-service.spec.ts +355 -355
  275. package/src/_modules/server/errors/errors.data-service.ts +48 -6
  276. package/src/_modules/server/index.ts +30 -30
  277. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  278. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  279. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  280. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  281. package/src/_modules/server/server-status/server-status.control-service.spec.ts +524 -520
  282. package/src/_modules/server/server-status/server-status.control-service.ts +336 -336
  283. package/src/_modules/server/server-status/server-status.controller.spec.ts +162 -159
  284. package/src/_modules/server/server-status/server-status.controller.ts +131 -131
  285. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  286. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  287. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  288. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -164
  289. package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
  290. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
  291. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
  292. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  293. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  294. package/src/_modules/socket/_services/socket-server.service.spec.ts +11 -11
  295. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  296. package/src/_modules/socket/app-extended.server.ts +630 -630
  297. package/src/_modules/socket/index.ts +42 -42
  298. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  299. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  300. package/src/_modules/test/index.ts +11 -11
  301. package/src/_modules/test/test.controller.spec.ts +72 -72
  302. package/src/_modules/test/test.controller.ts +115 -115
  303. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  304. package/src/_modules/usage/index.ts +15 -15
  305. package/src/_modules/usage/usage.controller.spec.ts +81 -81
  306. package/src/_modules/usage/usage.controller.ts +126 -126
  307. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  308. package/src/_modules/usage/usage.data-service.ts +185 -185
  309. package/src/_services/base/api.service-base.spec.ts +125 -125
  310. package/src/_services/base/api.service-base.ts +74 -74
  311. package/src/_services/base/archive-data.service.spec.ts +196 -196
  312. package/src/_services/base/archive-data.service.ts +216 -216
  313. package/src/_services/base/data.service.spec.ts +674 -674
  314. package/src/_services/base/data.service.ts +2719 -2719
  315. package/src/_services/base/db.service.spec.ts +73 -73
  316. package/src/_services/base/db.service.ts +1575 -1575
  317. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  318. package/src/_services/base/singleton.service-base.ts +24 -24
  319. package/src/_services/base/singleton.service.spec.ts +114 -114
  320. package/src/_services/base/singleton.service.ts +38 -38
  321. package/src/_services/core/api.service.spec.ts +140 -140
  322. package/src/_services/core/auth.service.spec.ts +159 -159
  323. package/src/_services/core/auth.service.ts +174 -174
  324. package/src/_services/core/email.service.spec.ts +85 -85
  325. package/src/_services/core/email.service.ts +742 -742
  326. package/src/_services/core/global.service.spec.ts +275 -275
  327. package/src/_services/core/global.service.ts +461 -461
  328. package/src/_services/core/service-collection.service.spec.ts +46 -46
  329. package/src/_services/core/service-collection.service.ts +6 -6
  330. package/src/_services/route/controller.service.spec.ts +53 -53
  331. package/src/_services/route/controller.service.ts +148 -148
  332. package/src/_services/route/routing-module.service.spec.ts +98 -98
  333. package/src/_services/route/routing-module.service.ts +330 -330
  334. package/src/_services/shared.static-service.spec.ts +99 -99
  335. package/src/_services/shared.static-service.ts +78 -78
  336. package/src/index.ts +95 -95
  337. package/tsconfig.app.json +12 -12
  338. package/tsconfig.json +42 -42
@@ -1,106 +1,173 @@
1
- import { DyNTS_OAI_LLM_ServiceBase } from './oai-llm.service-base';
2
- import { DyFM_OAI_Model, DyFM_OAI_CallSettings } from '@futdevpro/fsm-dynamo/ai/open-ai';
3
- import { DyFM_AI_MessageRole, DyFM_AI_Tool, DyFM_AI_ToolHandlers } from '@futdevpro/fsm-dynamo/ai';
4
-
5
- /**
6
- * FR-047 — provider-agnosztikus function-calling agent-loop az OpenAI-wire fordítón keresztül.
7
- * Mockolt OpenAI klienssel teszteljük a teljes utat (translator + loop), halozat nelkul.
8
- */
9
- describe('| DyNTS_OAI_LLM_ServiceBase | requestWithTools (function calling)', (): void => {
10
-
11
- function buildService(): DyNTS_OAI_LLM_ServiceBase {
12
- return new DyNTS_OAI_LLM_ServiceBase({ config: { apiKey: 'test-key' } });
13
- }
14
-
15
- const tools: DyFM_AI_Tool[] = [
16
- { name: 'get_x', description: 'returns x', parameters: { type: 'object', properties: {} } },
17
- ];
18
-
19
- const toolSettings = new DyFM_OAI_CallSettings({ useModel: DyFM_OAI_Model.gpt55 });
20
-
21
- it('| should run the tool handler and return the final answer (loop converges)', async (): Promise<void> => {
22
- const service = buildService();
23
-
24
- (spyOn(service.openai.chat.completions, 'create') as jasmine.Spy).and.returnValues(
25
- Promise.resolve({
26
- choices: [{ message: { role: 'assistant', content: '', tool_calls: [
27
- { id: 'call_1', type: 'function', function: { name: 'get_x', arguments: '{"a":1}' } },
28
- ] }, finish_reason: 'tool_calls' }],
29
- usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
30
- model: 'gpt-5.5',
31
- } as any),
32
- Promise.resolve({
33
- choices: [{ message: { role: 'assistant', content: 'final answer', tool_calls: [] }, finish_reason: 'stop' }],
34
- usage: { prompt_tokens: 2, completion_tokens: 2, total_tokens: 4 },
35
- model: 'gpt-5.5',
36
- } as any),
37
- );
38
-
39
- let receivedArgs: Record<string, unknown> = {};
40
- const toolHandlers: DyFM_AI_ToolHandlers = {
41
- get_x: (args: Record<string, unknown>): string => {
42
- receivedArgs = args;
43
- return 'x=42';
44
- },
45
- };
46
-
47
- const response = await service.requestWithTools({
48
- conversation: [{ role: DyFM_AI_MessageRole.user, content: 'use the tool' }],
49
- tools: tools,
50
- toolHandlers: toolHandlers,
51
- settings: toolSettings,
52
- issuer: 'spec',
53
- });
54
-
55
- expect(receivedArgs).toEqual({ a: 1 });
56
- expect(response.content).toBe('final answer');
57
- expect((service.openai.chat.completions.create as jasmine.Spy).calls.count()).toBe(2);
58
- });
59
-
60
- it('| should NOT throw when the tool handler throws (error fed back to the model)', async (): Promise<void> => {
61
- const service = buildService();
62
-
63
- (spyOn(service.openai.chat.completions, 'create') as jasmine.Spy).and.returnValues(
64
- Promise.resolve({
65
- choices: [{ message: { role: 'assistant', content: '', tool_calls: [
66
- { id: 'call_1', type: 'function', function: { name: 'get_x', arguments: '{}' } },
67
- ] }, finish_reason: 'tool_calls' }],
68
- usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
69
- model: 'gpt-5.5',
70
- } as any),
71
- Promise.resolve({
72
- choices: [{ message: { role: 'assistant', content: 'recovered', tool_calls: [] }, finish_reason: 'stop' }],
73
- usage: { prompt_tokens: 2, completion_tokens: 2, total_tokens: 4 },
74
- model: 'gpt-5.5',
75
- } as any),
76
- );
77
-
78
- const toolHandlers: DyFM_AI_ToolHandlers = {
79
- get_x: (): string => { throw new Error('boom'); },
80
- };
81
-
82
- const response = await service.requestWithTools({
83
- conversation: [{ role: DyFM_AI_MessageRole.user, content: 'use the tool' }],
84
- tools: tools,
85
- toolHandlers: toolHandlers,
86
- settings: toolSettings,
87
- issuer: 'spec',
88
- });
89
-
90
- // a loop nem dobott; a model "recovered" valaszt adott a hiba-string utan
91
- expect(response.content).toBe('recovered');
92
- });
93
-
94
- it('| should reject tool use for a model that does not support function calling', async (): Promise<void> => {
95
- const service = buildService();
96
- const embeddingSettings = new DyFM_OAI_CallSettings({ useModel: DyFM_OAI_Model.textEmbedding_3Small });
97
-
98
- await expectAsync(service.requestWithTools({
99
- conversation: [{ role: DyFM_AI_MessageRole.user, content: 'x' }],
100
- tools: tools,
101
- toolHandlers: {},
102
- settings: embeddingSettings,
103
- issuer: 'spec',
104
- })).toBeRejected();
105
- });
106
- });
1
+ import { DyNTS_OAI_LLM_ServiceBase } from './oai-llm.service-base';
2
+ import { DyFM_OAI_Model, DyFM_OAI_CallSettings } from '@futdevpro/fsm-dynamo/ai/open-ai';
3
+ import { DyFM_AI_MessageRole, DyFM_AI_Tool, DyFM_AI_ToolHandlers } from '@futdevpro/fsm-dynamo/ai';
4
+
5
+ /**
6
+ * FR-047 — provider-agnosztikus function-calling agent-loop az OpenAI-wire fordítón keresztül.
7
+ * Mockolt OpenAI klienssel teszteljük a teljes utat (translator + loop), halozat nelkul.
8
+ */
9
+ describe('| DyNTS_OAI_LLM_ServiceBase | requestWithTools (function calling)', (): void => {
10
+
11
+ function buildService(): DyNTS_OAI_LLM_ServiceBase {
12
+ return new DyNTS_OAI_LLM_ServiceBase({ config: { apiKey: 'test-key' } });
13
+ }
14
+
15
+ const tools: DyFM_AI_Tool[] = [
16
+ { name: 'get_x', description: 'returns x', parameters: { type: 'object', properties: {} } },
17
+ ];
18
+
19
+ const toolSettings = new DyFM_OAI_CallSettings({ useModel: DyFM_OAI_Model.gpt55 });
20
+
21
+ it('| should run the tool handler and return the final answer (loop converges)', async (): Promise<void> => {
22
+ const service = buildService();
23
+
24
+ (spyOn(service.openai.chat.completions, 'create') as jasmine.Spy).and.returnValues(
25
+ Promise.resolve({
26
+ choices: [{ message: { role: 'assistant', content: '', tool_calls: [
27
+ { id: 'call_1', type: 'function', function: { name: 'get_x', arguments: '{"a":1}' } },
28
+ ] }, finish_reason: 'tool_calls' }],
29
+ usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
30
+ model: 'gpt-5.5',
31
+ } as any),
32
+ Promise.resolve({
33
+ choices: [{ message: { role: 'assistant', content: 'final answer', tool_calls: [] }, finish_reason: 'stop' }],
34
+ usage: { prompt_tokens: 2, completion_tokens: 2, total_tokens: 4 },
35
+ model: 'gpt-5.5',
36
+ } as any),
37
+ );
38
+
39
+ let receivedArgs: Record<string, unknown> = {};
40
+ const toolHandlers: DyFM_AI_ToolHandlers = {
41
+ get_x: (args: Record<string, unknown>): string => {
42
+ receivedArgs = args;
43
+ return 'x=42';
44
+ },
45
+ };
46
+
47
+ const response = await service.requestWithTools({
48
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'use the tool' }],
49
+ tools: tools,
50
+ toolHandlers: toolHandlers,
51
+ settings: toolSettings,
52
+ issuer: 'spec',
53
+ });
54
+
55
+ expect(receivedArgs).toEqual({ a: 1 });
56
+ expect(response.content).toBe('final answer');
57
+ expect((service.openai.chat.completions.create as jasmine.Spy).calls.count()).toBe(2);
58
+ });
59
+
60
+ it('| should NOT throw when the tool handler throws (error fed back to the model)', async (): Promise<void> => {
61
+ const service = buildService();
62
+
63
+ (spyOn(service.openai.chat.completions, 'create') as jasmine.Spy).and.returnValues(
64
+ Promise.resolve({
65
+ choices: [{ message: { role: 'assistant', content: '', tool_calls: [
66
+ { id: 'call_1', type: 'function', function: { name: 'get_x', arguments: '{}' } },
67
+ ] }, finish_reason: 'tool_calls' }],
68
+ usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
69
+ model: 'gpt-5.5',
70
+ } as any),
71
+ Promise.resolve({
72
+ choices: [{ message: { role: 'assistant', content: 'recovered', tool_calls: [] }, finish_reason: 'stop' }],
73
+ usage: { prompt_tokens: 2, completion_tokens: 2, total_tokens: 4 },
74
+ model: 'gpt-5.5',
75
+ } as any),
76
+ );
77
+
78
+ const toolHandlers: DyFM_AI_ToolHandlers = {
79
+ get_x: (): string => { throw new Error('boom'); },
80
+ };
81
+
82
+ const response = await service.requestWithTools({
83
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'use the tool' }],
84
+ tools: tools,
85
+ toolHandlers: toolHandlers,
86
+ settings: toolSettings,
87
+ issuer: 'spec',
88
+ });
89
+
90
+ // a loop nem dobott; a model "recovered" valaszt adott a hiba-string utan
91
+ expect(response.content).toBe('recovered');
92
+ });
93
+
94
+ it('| should reject tool use for a model that does not support function calling', async (): Promise<void> => {
95
+ const service = buildService();
96
+ const embeddingSettings = new DyFM_OAI_CallSettings({ useModel: DyFM_OAI_Model.textEmbedding_3Small });
97
+
98
+ await expectAsync(service.requestWithTools({
99
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'x' }],
100
+ tools: tools,
101
+ toolHandlers: {},
102
+ settings: embeddingSettings,
103
+ issuer: 'spec',
104
+ })).toBeRejected();
105
+ });
106
+
107
+ describe('| request shaping', (): void => {
108
+
109
+ function finalResponse(): unknown {
110
+ return {
111
+ choices: [{ message: { role: 'assistant', content: 'ok', tool_calls: [] }, finish_reason: 'stop' }],
112
+ usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
113
+ model: 'gpt-5.5',
114
+ };
115
+ }
116
+
117
+ it('| should NOT send sampling params for a reasoning model (gpt-5.5)', async (): Promise<void> => {
118
+ const service = buildService();
119
+ const createSpy = spyOn(service.openai.chat.completions, 'create') as jasmine.Spy;
120
+ createSpy.and.returnValue(Promise.resolve(finalResponse() as any));
121
+
122
+ await service.requestWithTools({
123
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'hi' }],
124
+ tools: tools,
125
+ toolHandlers: {},
126
+ settings: toolSettings,
127
+ issuer: 'spec',
128
+ });
129
+
130
+ const input: any = createSpy.calls.argsFor(0)[0];
131
+ expect(input.temperature).toBeUndefined();
132
+ expect(input.top_p).toBeUndefined();
133
+ expect(input.frequency_penalty).toBeUndefined();
134
+ expect(input.presence_penalty).toBeUndefined();
135
+ });
136
+
137
+ it('| should send sampling params for a non-reasoning model (gpt-4o)', async (): Promise<void> => {
138
+ const service = buildService();
139
+ const createSpy = spyOn(service.openai.chat.completions, 'create') as jasmine.Spy;
140
+ createSpy.and.returnValue(Promise.resolve(finalResponse() as any));
141
+
142
+ await service.requestWithTools({
143
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'hi' }],
144
+ tools: tools,
145
+ toolHandlers: {},
146
+ settings: new DyFM_OAI_CallSettings({ useModel: DyFM_OAI_Model.gpt4o }),
147
+ issuer: 'spec',
148
+ });
149
+
150
+ const input: any = createSpy.calls.argsFor(0)[0];
151
+ expect(input.temperature).toBeDefined();
152
+ expect(input.top_p).toBeDefined();
153
+ });
154
+
155
+ it('| should omit tools/tool_choice when the tools array is empty (no empty-array 400)', async (): Promise<void> => {
156
+ const service = buildService();
157
+ const createSpy = spyOn(service.openai.chat.completions, 'create') as jasmine.Spy;
158
+ createSpy.and.returnValue(Promise.resolve(finalResponse() as any));
159
+
160
+ await service.requestWithTools({
161
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'hi' }],
162
+ tools: [],
163
+ toolHandlers: {},
164
+ settings: toolSettings,
165
+ issuer: 'spec',
166
+ });
167
+
168
+ const input: any = createSpy.calls.argsFor(0)[0];
169
+ expect(input.tools).toBeUndefined();
170
+ expect(input.tool_choice).toBeUndefined();
171
+ });
172
+ });
173
+ });