@futdevpro/nts-dynamo 1.15.56 → 1.15.58

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 (450) 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 +2844 -0
  17. package/.dynamo/logs/cicd-pipeline/status.json +94 -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/document-ai/_collections/dai-code-chunking.util.d.ts +110 -0
  27. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts.map +1 -0
  28. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +419 -0
  29. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js.map +1 -0
  30. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +50 -0
  31. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts.map +1 -0
  32. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +3 -0
  33. package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js.map +1 -0
  34. package/build/_modules/ai/_modules/document-ai/index.d.ts +2 -0
  35. package/build/_modules/ai/_modules/document-ai/index.d.ts.map +1 -1
  36. package/build/_modules/ai/_modules/document-ai/index.js +2 -0
  37. package/build/_modules/ai/_modules/document-ai/index.js.map +1 -1
  38. package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts +81 -0
  39. package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts.map +1 -0
  40. package/build/_modules/ai/_services/ai-embedding-mock.service.js +167 -0
  41. package/build/_modules/ai/_services/ai-embedding-mock.service.js.map +1 -0
  42. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +52 -0
  43. package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts.map +1 -0
  44. package/build/_modules/ai/_services/ai-embedding-provider.registry.js +79 -0
  45. package/build/_modules/ai/_services/ai-embedding-provider.registry.js.map +1 -0
  46. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +111 -0
  47. package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts.map +1 -0
  48. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +298 -0
  49. package/build/_modules/ai/_services/lmstudio-embedding.control-service.js.map +1 -0
  50. package/build/_modules/ai/index.d.ts +3 -0
  51. package/build/_modules/ai/index.d.ts.map +1 -1
  52. package/build/_modules/ai/index.js +4 -0
  53. package/build/_modules/ai/index.js.map +1 -1
  54. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +59 -0
  55. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts.map +1 -0
  56. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +169 -0
  57. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js.map +1 -0
  58. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +32 -0
  59. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts.map +1 -0
  60. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +8 -0
  61. package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js.map +1 -0
  62. package/build/_modules/data-readers/index.d.ts +3 -0
  63. package/build/_modules/data-readers/index.d.ts.map +1 -0
  64. package/build/_modules/data-readers/index.js +11 -0
  65. package/build/_modules/data-readers/index.js.map +1 -0
  66. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +36 -0
  67. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts.map +1 -0
  68. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +54 -0
  69. package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js.map +1 -0
  70. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +70 -0
  71. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts.map +1 -0
  72. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +123 -0
  73. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js.map +1 -0
  74. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +43 -0
  75. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts.map +1 -0
  76. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +72 -0
  77. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js.map +1 -0
  78. package/build/_modules/local-vector-search/index.d.ts +3 -0
  79. package/build/_modules/local-vector-search/index.d.ts.map +1 -1
  80. package/build/_modules/local-vector-search/index.js +4 -0
  81. package/build/_modules/local-vector-search/index.js.map +1 -1
  82. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +109 -0
  83. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts.map +1 -0
  84. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +14 -0
  85. package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js.map +1 -0
  86. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +71 -0
  87. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts.map +1 -0
  88. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +99 -0
  89. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js.map +1 -0
  90. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +57 -0
  91. package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts.map +1 -0
  92. package/build/_modules/mcp/_services/dynts-mcp.adapter.js +134 -0
  93. package/build/_modules/mcp/_services/dynts-mcp.adapter.js.map +1 -0
  94. package/build/_modules/mcp/index.d.ts +4 -0
  95. package/build/_modules/mcp/index.d.ts.map +1 -0
  96. package/build/_modules/mcp/index.js +13 -0
  97. package/build/_modules/mcp/index.js.map +1 -0
  98. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +19 -0
  99. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts.map +1 -0
  100. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +23 -0
  101. package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js.map +1 -0
  102. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +44 -0
  103. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts.map +1 -0
  104. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +68 -0
  105. package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js.map +1 -0
  106. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +89 -0
  107. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts.map +1 -0
  108. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +3 -0
  109. package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js.map +1 -0
  110. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +84 -0
  111. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts.map +1 -0
  112. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +220 -0
  113. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js.map +1 -0
  114. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +54 -0
  115. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts.map +1 -0
  116. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +76 -0
  117. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js.map +1 -0
  118. package/build/_modules/scoped-config/index.d.ts +6 -0
  119. package/build/_modules/scoped-config/index.d.ts.map +1 -0
  120. package/build/_modules/scoped-config/index.js +15 -0
  121. package/build/_modules/scoped-config/index.js.map +1 -0
  122. package/eslint.config.js +3 -3
  123. package/nodemon.json +24 -24
  124. package/package.json +58 -2
  125. package/pnpm-workspace.yaml +5 -4
  126. package/scripts/run-coverage-tests.js +28 -28
  127. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  128. package/spec/support/helpers/ts-node-helper.js +93 -93
  129. package/spec/support/jasmine.coverage.json +24 -24
  130. package/spec/support/jasmine.json +24 -24
  131. package/src/_collections/archive.util.spec.ts +57 -57
  132. package/src/_collections/archive.util.ts +18 -18
  133. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  134. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  135. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  136. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  137. package/src/_collections/default-not-found-page.const.ts +22 -22
  138. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  139. package/src/_collections/default-socket-path.const.ts +2 -2
  140. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  141. package/src/_collections/get-environment-settings.util.ts +48 -48
  142. package/src/_collections/global-settings.const.ts +82 -82
  143. package/src/_collections/sample.env +21 -21
  144. package/src/_collections/star.controller.spec.ts +224 -224
  145. package/src/_collections/star.controller.ts +129 -129
  146. package/src/_enums/data-model-type.enum.ts +14 -14
  147. package/src/_enums/data-service-function.enum.ts +24 -24
  148. package/src/_enums/predefined-data-types.enum.ts +16 -16
  149. package/src/_enums/route-security.enum.ts +12 -12
  150. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  151. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  152. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  153. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  154. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  155. package/src/_models/control-models/app-params.control-model.ts +136 -136
  156. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  157. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  158. package/src/_models/control-models/endpoint-params.control-model.spec.ts +627 -627
  159. package/src/_models/control-models/endpoint-params.control-model.ts +627 -627
  160. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  161. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  162. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  163. package/src/_models/control-models/system-control.control-model.ts +12 -12
  164. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  165. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  166. package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
  167. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  168. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  169. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  170. package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
  171. package/src/_models/types/db-update.type.ts +100 -100
  172. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  173. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  174. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  175. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  176. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  177. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  178. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -0
  179. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +520 -0
  180. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  181. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  182. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  183. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  184. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  185. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  186. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -0
  187. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  188. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  189. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  190. package/src/_modules/ai/_modules/document-ai/index.ts +30 -28
  191. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  192. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  193. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  194. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  195. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  196. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  197. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  198. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  199. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  200. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  201. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  202. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  203. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  204. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  205. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  206. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  207. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  208. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
  209. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1033 -1033
  210. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  211. package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -0
  212. package/src/_modules/ai/_services/ai-embedding-mock.service.ts +219 -0
  213. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -0
  214. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +110 -0
  215. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  216. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  217. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  218. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  219. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  220. package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -519
  221. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  222. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  223. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -0
  224. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +378 -0
  225. package/src/_modules/ai/index.ts +18 -13
  226. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  227. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  228. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  229. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  230. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  231. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  232. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  233. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  234. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  235. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  236. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  237. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  238. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  239. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  240. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  241. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  242. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  243. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  244. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  245. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  246. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  247. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  248. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  249. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  250. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  251. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  252. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  253. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  254. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  255. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  256. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  257. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  258. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  259. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  260. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  261. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  262. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  263. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  264. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  265. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  266. package/src/_modules/custom-data/index.ts +9 -9
  267. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +161 -0
  268. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +192 -0
  269. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -0
  270. package/src/_modules/data-readers/index.ts +11 -0
  271. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  272. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  273. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  274. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  275. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  276. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  277. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  278. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  279. package/src/_modules/defaults/index.ts +17 -17
  280. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  281. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  282. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  283. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  284. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  285. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  286. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  287. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  288. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  289. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  290. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  291. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  292. package/src/_modules/discord-assistant/index.ts +38 -38
  293. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  294. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  295. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  296. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  297. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  298. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  299. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  300. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  301. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  302. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  303. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  304. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  305. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  306. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  307. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  308. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  309. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  310. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  311. package/src/_modules/discord-bot/index.ts +36 -36
  312. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  313. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +59 -0
  314. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  315. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  316. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  317. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  318. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  319. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -0
  320. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +146 -0
  321. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -0
  322. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +106 -0
  323. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +393 -393
  324. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +220 -220
  325. package/src/_modules/local-vector-search/index.ts +17 -12
  326. package/src/_modules/logs/index.ts +11 -11
  327. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -0
  328. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +142 -0
  329. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +120 -0
  330. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +157 -0
  331. package/src/_modules/mcp/index.ts +13 -0
  332. package/src/_modules/messaging/README.md +354 -354
  333. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  334. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  335. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  336. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  337. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  338. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  339. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  340. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  341. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  342. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  343. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  344. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  345. package/src/_modules/messaging/index.ts +30 -30
  346. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  347. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  348. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  349. package/src/_modules/mock/app-params.mock.ts +9 -9
  350. package/src/_modules/mock/app-server.mock.ts +188 -188
  351. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  352. package/src/_modules/mock/auth-service.mock.ts +28 -28
  353. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  354. package/src/_modules/mock/controller.mock.ts +16 -16
  355. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  356. package/src/_modules/mock/data-model.mock.ts +82 -82
  357. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  358. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  359. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  360. package/src/_modules/mock/email-service.mock.ts +20 -20
  361. package/src/_modules/mock/email-template.mock.html +14 -14
  362. package/src/_modules/mock/endpoint.mock.ts +91 -91
  363. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  364. package/src/_modules/mock/socket-client.mock.ts +45 -45
  365. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  366. package/src/_modules/mock/socket-server.mock.ts +46 -46
  367. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  368. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  369. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  370. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  371. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  372. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  373. package/src/_modules/oauth2/index.ts +17 -17
  374. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -0
  375. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +81 -0
  376. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +109 -0
  377. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +306 -0
  378. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +295 -0
  379. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +118 -0
  380. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +105 -0
  381. package/src/_modules/scoped-config/index.ts +17 -0
  382. package/src/_modules/server/errors/errors.control-service.spec.ts +238 -238
  383. package/src/_modules/server/errors/errors.control-service.ts +85 -85
  384. package/src/_modules/server/errors/errors.controller.spec.ts +241 -241
  385. package/src/_modules/server/errors/errors.controller.ts +431 -431
  386. package/src/_modules/server/errors/errors.data-service.spec.ts +361 -361
  387. package/src/_modules/server/index.ts +30 -30
  388. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  389. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  390. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  391. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  392. package/src/_modules/server/server-status/server-status.control-service.spec.ts +576 -576
  393. package/src/_modules/server/server-status/server-status.control-service.ts +396 -396
  394. package/src/_modules/server/server-status/server-status.controller.spec.ts +240 -240
  395. package/src/_modules/server/server-status/server-status.controller.ts +253 -253
  396. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  397. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  398. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  399. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -164
  400. package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
  401. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
  402. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
  403. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  404. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  405. package/src/_modules/socket/_services/socket-server.service.spec.ts +11 -11
  406. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  407. package/src/_modules/socket/app-extended.server.ts +630 -630
  408. package/src/_modules/socket/index.ts +42 -42
  409. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  410. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  411. package/src/_modules/test/index.ts +11 -11
  412. package/src/_modules/test/test.controller.spec.ts +72 -72
  413. package/src/_modules/test/test.controller.ts +115 -115
  414. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  415. package/src/_modules/usage/index.ts +15 -15
  416. package/src/_modules/usage/usage.controller.spec.ts +81 -81
  417. package/src/_modules/usage/usage.controller.ts +126 -126
  418. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  419. package/src/_modules/usage/usage.data-service.ts +185 -185
  420. package/src/_services/base/api.service-base.spec.ts +125 -125
  421. package/src/_services/base/api.service-base.ts +74 -74
  422. package/src/_services/base/archive-data.service.spec.ts +196 -196
  423. package/src/_services/base/archive-data.service.ts +216 -216
  424. package/src/_services/base/data.service.spec.ts +674 -674
  425. package/src/_services/base/data.service.ts +2719 -2719
  426. package/src/_services/base/db.service.spec.ts +73 -73
  427. package/src/_services/base/db.service.ts +1575 -1575
  428. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  429. package/src/_services/base/singleton.service-base.ts +24 -24
  430. package/src/_services/base/singleton.service.spec.ts +114 -114
  431. package/src/_services/base/singleton.service.ts +38 -38
  432. package/src/_services/core/api.service.spec.ts +140 -140
  433. package/src/_services/core/auth.service.spec.ts +159 -159
  434. package/src/_services/core/auth.service.ts +174 -174
  435. package/src/_services/core/email.service.spec.ts +85 -85
  436. package/src/_services/core/email.service.ts +742 -742
  437. package/src/_services/core/global.service.spec.ts +275 -275
  438. package/src/_services/core/global.service.ts +461 -461
  439. package/src/_services/core/service-collection.service.spec.ts +46 -46
  440. package/src/_services/core/service-collection.service.ts +6 -6
  441. package/src/_services/route/controller.service.spec.ts +53 -53
  442. package/src/_services/route/controller.service.ts +148 -148
  443. package/src/_services/route/routing-module.service.spec.ts +98 -98
  444. package/src/_services/route/routing-module.service.ts +330 -330
  445. package/src/_services/server/app.server.ts +1726 -1726
  446. package/src/_services/shared.static-service.spec.ts +99 -99
  447. package/src/_services/shared.static-service.ts +78 -78
  448. package/src/index.ts +96 -96
  449. package/tsconfig.app.json +12 -12
  450. package/tsconfig.json +42 -42
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_AI_Embedding_MockService = exports.DyNTS_AI_MOCK_EMBEDDING_DIMS = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const crypto = tslib_1.__importStar(require("crypto"));
6
+ const ai_1 = require("@futdevpro/fsm-dynamo/ai");
7
+ const ai_embedding_service_base_1 = require("./ai-embedding.service-base");
8
+ /** A mock-embedding default dimenziója (kicsi, hogy a teszt-pool gyors legyen, de elég a koszinuszhoz). */
9
+ exports.DyNTS_AI_MOCK_EMBEDDING_DIMS = 64;
10
+ /**
11
+ * `DyNTS_AI_Embedding_MockService` (BFR-AM-008) — determinisztikus, hash-alapú, fix-dimenziós,
12
+ * l2-normalizált pszeudo-vektor a szövegből. Provider- és hálózat-mentes → a tesztek + a tsc-/offline-
13
+ * smoke valódi API-kulcs nélkül futnak. Azonos `(model, text)` → azonos vektor (idempotens), így a
14
+ * koszinusz-keresés determinisztikusan tesztelhető. A FAM `FAM_Mock_EmbeddingProvider` workaround-ját
15
+ * emeli bedrock-szintre, mint újrahasználható test-double.
16
+ *
17
+ * **Cost-event (BFR-AM-007):** minden call után `emitCostEvent`-tel jelez (fake token-fogyasztás,
18
+ * 4 char ≈ 1 token), provider `'mock'`, callType `embedding-single` / `embedding-batch`. Így a
19
+ * cost-aggregáló pipeline mock-providerrel is end-to-end tesztelhető.
20
+ */
21
+ class DyNTS_AI_Embedding_MockService extends ai_embedding_service_base_1.DyNTS_AI_Embedding_ServiceBase {
22
+ /** A mock a `LocalAI` provider-enum alá tartozik (nincs külső hívás). */
23
+ aiProvider = ai_1.DyFM_AI_Provider.LocalAI;
24
+ /** A cost-event provider-string (a `DyNTS_AI_CostEvent.provider` szabad-string mezőjéhez). */
25
+ costProvider = 'mock';
26
+ /** Mock capability-k: csak embedding (determinisztikus). */
27
+ capabilities = {
28
+ chat: false,
29
+ embeddings: true,
30
+ imageGeneration: false,
31
+ vision: false,
32
+ audioGeneration: false,
33
+ audioAnalysis: false,
34
+ functionCalling: false,
35
+ streaming: false,
36
+ batchOperations: true,
37
+ supportedModelTypes: [],
38
+ };
39
+ /** A generált vektor dimenziója. */
40
+ dims;
41
+ /** @param set opcionális dims + onCostEvent. */
42
+ constructor(set) {
43
+ super();
44
+ this.dims = set?.dims && set.dims > 0 ? set.dims : exports.DyNTS_AI_MOCK_EMBEDDING_DIMS;
45
+ if (set?.onCostEvent) {
46
+ this.onCostEvent = set.onCostEvent;
47
+ }
48
+ }
49
+ /** A mock-nak nincs külső config-ja; a `setup` a dimenzió override-jára szolgál (config.dimensions). */
50
+ setup(config) {
51
+ const dims = Reflect.get(config ?? {}, 'dimensions');
52
+ if (typeof dims === 'number' && dims > 0) {
53
+ this.dims = dims;
54
+ }
55
+ }
56
+ /**
57
+ * Egy determinisztikus embedding. A `model`-t beleszövi a seed-be, hogy modell-váltás más vektort
58
+ * adjon (re-embed teszteléshez). `fullResponse=true` → OpenAI-alakú válasz-objektum.
59
+ */
60
+ async createEmbedding(set) {
61
+ const start = Date.now();
62
+ const vector = this.deterministicVector(`${set.model}::${set.text ?? ''}`);
63
+ const durationMs = Date.now() - start;
64
+ this.emitMockCostEvent('embedding-single', set.model, [set.text ?? ''], durationMs, set.issuer);
65
+ if (set.fullResponse) {
66
+ return this.toResponse([vector], set.model, [set.text ?? '']);
67
+ }
68
+ return vector;
69
+ }
70
+ /**
71
+ * Determinisztikus batch-embedding: minden szöveghez a `(model, text)` seed-ből generál egy fix-
72
+ * dimenziós, l2-normalizált vektort. A `texts` sorrendje == a visszaadott `number[][]` sorrendje.
73
+ */
74
+ async createEmbeddings(set) {
75
+ const texts = set.texts ?? [];
76
+ const start = Date.now();
77
+ const vectors = texts.map((text) => this.deterministicVector(`${set.model}::${text}`));
78
+ const durationMs = Date.now() - start;
79
+ this.emitMockCostEvent('embedding-batch', set.model, texts, durationMs, set.issuer);
80
+ if (set.fullResponse) {
81
+ return this.toResponse(vectors, set.model, texts);
82
+ }
83
+ return vectors;
84
+ }
85
+ /** Embedding model-info: provider `LocalAI`, model a megadott azonosító. */
86
+ getEmbeddingInfo(model) {
87
+ return {
88
+ provider: ai_1.DyFM_AI_Provider.LocalAI,
89
+ model: model,
90
+ };
91
+ }
92
+ /** A mock mindig elérhető (nincs külső függőség). */
93
+ async testConnection(_issuer) {
94
+ return true;
95
+ }
96
+ // =========================================================================
97
+ // belső: determinisztikus vektor + cost-event + response-alak
98
+ // =========================================================================
99
+ /**
100
+ * Egy determinisztikus, l2-normalizált vektor a seed-ből. A SHA-256 hash bájtjait körkörösen
101
+ * használja a `dims` kitöltésére, [-1, 1) tartományra képzi, majd l2-normalizál (egységhossz a
102
+ * koszinuszhoz). Egy második hash-bájttal kever, hogy a hosszabb dimenziókon ne ismétlődjön a minta.
103
+ */
104
+ deterministicVector(seed) {
105
+ const hash = crypto.createHash('sha256').update(seed).digest();
106
+ const vector = [];
107
+ for (let i = 0; i < this.dims; i++) {
108
+ const byte = hash[i % hash.length];
109
+ const mix = hash[(i * 7 + 3) % hash.length];
110
+ const combined = (byte ^ mix) & 0xff;
111
+ vector.push((combined / 255) * 2 - 1);
112
+ }
113
+ return this.l2Normalize(vector);
114
+ }
115
+ /** L2-normalizálás (egységhossz). Nulla-vektor → változatlan (elkerüli a 0-osztást). */
116
+ l2Normalize(vector) {
117
+ let sumSq = 0;
118
+ for (const value of vector) {
119
+ sumSq += value * value;
120
+ }
121
+ const norm = Math.sqrt(sumSq);
122
+ if (!norm) {
123
+ return vector;
124
+ }
125
+ return vector.map((value) => value / norm);
126
+ }
127
+ /** OpenAI-alakú válasz-objektum a vektorokból (a `fullResponse=true` ághoz). */
128
+ toResponse(vectors, model, texts) {
129
+ const tokens = this.estimateTokens(texts);
130
+ return {
131
+ object: 'list',
132
+ model: model,
133
+ data: vectors.map((embedding, index) => ({ object: 'embedding', embedding: embedding, index: index })),
134
+ usage: {
135
+ prompt_tokens: tokens,
136
+ total_tokens: tokens,
137
+ },
138
+ };
139
+ }
140
+ /** Cost-event emit (BFR-AM-007) fake tokennel (4 char ≈ 1 token), provider `'mock'`. */
141
+ emitMockCostEvent(callType, model, texts, durationMs, issuer) {
142
+ const tokens = this.estimateTokens(texts);
143
+ this.emitCostEvent({
144
+ callType: callType,
145
+ provider: this.costProvider,
146
+ model: model,
147
+ tokensUsed: {
148
+ input: tokens,
149
+ total: tokens,
150
+ },
151
+ durationMs: durationMs,
152
+ issuer: issuer,
153
+ timestamp: new Date(),
154
+ estimatedCostUsd: 0,
155
+ });
156
+ }
157
+ /** Becsült (fake) token-szám: 4 char ≈ 1 token. */
158
+ estimateTokens(texts) {
159
+ let chars = 0;
160
+ for (const text of texts) {
161
+ chars += (text ?? '').length;
162
+ }
163
+ return Math.max(1, Math.ceil(chars / 4));
164
+ }
165
+ }
166
+ exports.DyNTS_AI_Embedding_MockService = DyNTS_AI_Embedding_MockService;
167
+ //# sourceMappingURL=ai-embedding-mock.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-embedding-mock.service.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-embedding-mock.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { DyFM_OAI_Settings } from '@futdevpro/fsm-dynamo/ai/open-ai';
2
+ import { DyNTS_AI_Embedding_ServiceBase } from './ai-embedding.service-base';
3
+ import { DyNTS_LMStudio_Embedding_Settings } from './lmstudio-embedding.control-service';
4
+ import { DyNTS_AI_Embedding_MockSettings } from './ai-embedding-mock.service';
5
+ import { DyNTS_AI_CostEventCallback } from '../_models/interfaces/dynts-ai-cost-event-callback.interface';
6
+ /**
7
+ * Az embedding-provider kulcsa (BFR-AM-002). String-union, NEM enum (a cost-event provider-stringekkel
8
+ * konzisztens): `'openai'` (SDK reuse), `'lmstudio'` (lokális OpenAI-kompatibilis HTTP), `'mock'`
9
+ * (determinisztikus test-double). Az env-feloldás kis-/nagybetűt és a `lm-studio` alias-t is elfogad.
10
+ */
11
+ export type DyNTS_AI_EmbeddingProviderKey = 'openai' | 'lmstudio' | 'mock';
12
+ /**
13
+ * A provider-feloldás opciói. A `provider` explicit kulcsot ad; ha hiányzik, az env-ből oldjuk fel
14
+ * (`AI_EMBEDDING_PROVIDER`, default `openai`). A többi mező a megfelelő provider config-ját adja át.
15
+ */
16
+ export interface DyNTS_AI_EmbeddingResolveOptions {
17
+ /** Explicit provider-kulcs; ha hiányzik → env-feloldás. */
18
+ provider?: DyNTS_AI_EmbeddingProviderKey | string;
19
+ /** Per-call cost-event sink (FR-002 / BFR-AM-007) — mind a 3 providernek átadva. */
20
+ onCostEvent?: DyNTS_AI_CostEventCallback;
21
+ /** OpenAI-specifikus config (apiKey/org/project/defaultSettings) — `openai` providerhez. */
22
+ openAiSettings?: DyFM_OAI_Settings;
23
+ /** LM Studio config (baseUrl/apiKey) — `lmstudio` providerhez; baseUrl hiány → env (`LMSTUDIO_BASE_URL`). */
24
+ lmStudioSettings?: Partial<DyNTS_LMStudio_Embedding_Settings>;
25
+ /** Mock config (dims) — `mock` providerhez. */
26
+ mockSettings?: DyNTS_AI_Embedding_MockSettings;
27
+ }
28
+ /**
29
+ * `DyNTS_AI_EmbeddingProvider_Registry` (BFR-AM-002) — provider-dispatch resolver. A provider-kulcs
30
+ * (`openai` | `lmstudio` | `mock`) alapján a megfelelő `DyNTS_AI_Embedding_ServiceBase` példányt adja
31
+ * vissza, így a hívók egységes embedding-felületet látnak a konkrét provider-impl mögött (a FAM
32
+ * `FAM_Embedding_ControlService.buildProvider` dispatch-ét emeli bedrock-szintre, generikusan).
33
+ *
34
+ * Static util (nincs állapota): minden hívás friss példányt épít (env/secret a hívás-időpontban
35
+ * érvényes — memory: `dynts_dataservice_eager_resolve`-konzisztens, nincs élő singleton-állapot).
36
+ */
37
+ export declare class DyNTS_AI_EmbeddingProvider_Registry {
38
+ /**
39
+ * A megadott (vagy env-ből feloldott) provider-kulcs alapján egy embedding-service példányt épít.
40
+ * - `openai` → `DyNTS_OAI_Embedding_ControlService` (SDK reuse, cost-event sink-kel),
41
+ * - `lmstudio` → `DyNTS_LMStudio_Embedding_ControlService` (HTTP; baseUrl a config vagy env),
42
+ * - `mock` → `DyNTS_AI_Embedding_MockService` (determinisztikus),
43
+ * - ismeretlen → `Error` (provider nincs konfigurálva — nem néma).
44
+ */
45
+ static resolve(options?: DyNTS_AI_EmbeddingResolveOptions): DyNTS_AI_Embedding_ServiceBase;
46
+ /**
47
+ * A provider-kulcs normalizálása: kis-/nagybetű-független, a `lm-studio` / `local-ai` alias-t
48
+ * `lmstudio`-ra képzi. Hiány → env (`AI_EMBEDDING_PROVIDER`) → default `openai`. Ismeretlen → `Error`.
49
+ */
50
+ static normalizeKey(provider?: string): DyNTS_AI_EmbeddingProviderKey;
51
+ }
52
+ //# sourceMappingURL=ai-embedding-provider.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-embedding-provider.registry.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-embedding-provider.registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAA2C,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAClI,OAAO,EAAkC,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,0BAA0B,EAAE,MAAM,8DAA8D,CAAC;AAE1G;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,gCAAgC;IAC/C,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,6BAA6B,GAAG,MAAM,CAAC;IAClD,oFAAoF;IACpF,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,4FAA4F;IAC5F,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,6GAA6G;IAC7G,gBAAgB,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC9D,+CAA+C;IAC/C,YAAY,CAAC,EAAE,+BAA+B,CAAC;CAChD;AAED;;;;;;;;GAQG;AACH,qBAAa,mCAAmC;IAE9C;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,gCAAgC,GAAG,8BAA8B;IAgC1F;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,6BAA6B;CAuBtE"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_AI_EmbeddingProvider_Registry = void 0;
4
+ const oai_embedding_control_service_1 = require("../_modules/open-ai/_services/oai-embedding.control-service");
5
+ const lmstudio_embedding_control_service_1 = require("./lmstudio-embedding.control-service");
6
+ const ai_embedding_mock_service_1 = require("./ai-embedding-mock.service");
7
+ /**
8
+ * `DyNTS_AI_EmbeddingProvider_Registry` (BFR-AM-002) — provider-dispatch resolver. A provider-kulcs
9
+ * (`openai` | `lmstudio` | `mock`) alapján a megfelelő `DyNTS_AI_Embedding_ServiceBase` példányt adja
10
+ * vissza, így a hívók egységes embedding-felületet látnak a konkrét provider-impl mögött (a FAM
11
+ * `FAM_Embedding_ControlService.buildProvider` dispatch-ét emeli bedrock-szintre, generikusan).
12
+ *
13
+ * Static util (nincs állapota): minden hívás friss példányt épít (env/secret a hívás-időpontban
14
+ * érvényes — memory: `dynts_dataservice_eager_resolve`-konzisztens, nincs élő singleton-állapot).
15
+ */
16
+ class DyNTS_AI_EmbeddingProvider_Registry {
17
+ /**
18
+ * A megadott (vagy env-ből feloldott) provider-kulcs alapján egy embedding-service példányt épít.
19
+ * - `openai` → `DyNTS_OAI_Embedding_ControlService` (SDK reuse, cost-event sink-kel),
20
+ * - `lmstudio` → `DyNTS_LMStudio_Embedding_ControlService` (HTTP; baseUrl a config vagy env),
21
+ * - `mock` → `DyNTS_AI_Embedding_MockService` (determinisztikus),
22
+ * - ismeretlen → `Error` (provider nincs konfigurálva — nem néma).
23
+ */
24
+ static resolve(options) {
25
+ const key = DyNTS_AI_EmbeddingProvider_Registry.normalizeKey(options?.provider);
26
+ const onCostEvent = options?.onCostEvent;
27
+ switch (key) {
28
+ case 'openai':
29
+ return new oai_embedding_control_service_1.DyNTS_OAI_Embedding_ControlService({
30
+ ...(options?.openAiSettings ?? {}),
31
+ onCostEvent: onCostEvent,
32
+ });
33
+ case 'lmstudio': {
34
+ const baseUrl = options?.lmStudioSettings?.baseUrl ?? process.env.LMSTUDIO_BASE_URL;
35
+ if (!baseUrl) {
36
+ throw new Error('DyNTS_AI_EmbeddingProvider_Registry: the lmstudio provider was selected but no baseUrl '
37
+ + 'was provided (set lmStudioSettings.baseUrl or the LMSTUDIO_BASE_URL env var).');
38
+ }
39
+ return new lmstudio_embedding_control_service_1.DyNTS_LMStudio_Embedding_ControlService({
40
+ baseUrl: baseUrl,
41
+ apiKey: options?.lmStudioSettings?.apiKey ?? process.env.LMSTUDIO_API_KEY,
42
+ onCostEvent: onCostEvent,
43
+ });
44
+ }
45
+ case 'mock':
46
+ return new ai_embedding_mock_service_1.DyNTS_AI_Embedding_MockService({
47
+ ...(options?.mockSettings ?? {}),
48
+ onCostEvent: onCostEvent,
49
+ });
50
+ }
51
+ }
52
+ /**
53
+ * A provider-kulcs normalizálása: kis-/nagybetű-független, a `lm-studio` / `local-ai` alias-t
54
+ * `lmstudio`-ra képzi. Hiány → env (`AI_EMBEDDING_PROVIDER`) → default `openai`. Ismeretlen → `Error`.
55
+ */
56
+ static normalizeKey(provider) {
57
+ const raw = (provider ?? process.env.AI_EMBEDDING_PROVIDER ?? 'openai').trim().toLowerCase();
58
+ switch (raw) {
59
+ case 'openai':
60
+ case 'open-ai':
61
+ case 'oai':
62
+ return 'openai';
63
+ case 'lmstudio':
64
+ case 'lm-studio':
65
+ case 'local-ai':
66
+ case 'localai':
67
+ return 'lmstudio';
68
+ case 'mock':
69
+ case 'fake':
70
+ case 'test':
71
+ return 'mock';
72
+ default:
73
+ throw new Error(`DyNTS_AI_EmbeddingProvider_Registry: unknown embedding provider '${raw}'. `
74
+ + `Available: 'openai' | 'lmstudio' | 'mock'.`);
75
+ }
76
+ }
77
+ }
78
+ exports.DyNTS_AI_EmbeddingProvider_Registry = DyNTS_AI_EmbeddingProvider_Registry;
79
+ //# sourceMappingURL=ai-embedding-provider.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-embedding-provider.registry.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-embedding-provider.registry.ts"],"names":[],"mappings":";;;AAGA,+GAAiH;AACjH,6FAAkI;AAClI,2EAA8G;AA2B9G;;;;;;;;GAQG;AACH,MAAa,mCAAmC;IAE9C;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,OAA0C;QACvD,MAAM,GAAG,GAAkC,mCAAmC,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/G,MAAM,WAAW,GAA2C,OAAO,EAAE,WAAW,CAAC;QAEjF,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,QAAQ;gBACX,OAAO,IAAI,kEAAkC,CAAC;oBAC5C,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,EAAE,CAAC;oBAClC,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;YACL,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,OAAO,GAAuB,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBACxG,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CACb,yFAAyF;0BACvF,+EAA+E,CAClF,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,4EAAuC,CAAC;oBACjD,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;oBACzE,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;YACL,CAAC;YACD,KAAK,MAAM;gBACT,OAAO,IAAI,0DAA8B,CAAC;oBACxC,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;oBAChC,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,QAAiB;QACnC,MAAM,GAAG,GAAW,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrG,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,QAAQ,CAAC;YAClB,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW,CAAC;YACjB,KAAK,UAAU,CAAC;YAChB,KAAK,SAAS;gBACZ,OAAO,UAAU,CAAC;YACpB,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB;gBACE,MAAM,IAAI,KAAK,CACb,oEAAoE,GAAG,KAAK;sBAC1E,4CAA4C,CAC/C,CAAC;QACN,CAAC;IACH,CAAC;CACF;AApED,kFAoEC"}
@@ -0,0 +1,111 @@
1
+ import { CreateEmbeddingResponse } from 'openai/resources';
2
+ import { DyFM_AI_Provider, DyFM_AI_ProviderCapabilities, DyFM_AI_Config } from '@futdevpro/fsm-dynamo/ai';
3
+ import { DyFM_DAI_EmbeddingInfo } from '@futdevpro/fsm-dynamo/ai/document-ai';
4
+ import { DyNTS_AI_Embedding_ServiceBase } from './ai-embedding.service-base';
5
+ import { DyNTS_AI_CostEventCallback } from '../_models/interfaces/dynts-ai-cost-event-callback.interface';
6
+ /**
7
+ * Az LM Studio embedding control-service config-set-je. A `baseUrl` az OpenAI-kompatibilis
8
+ * lokális endpoint (pl. `http://localhost:1234/v1`), az `apiKey` opcionális (LM Studio default-
9
+ * ban nem kér Bearer-t). Az `onCostEvent` a per-call cost-event sink (FR-002, BFR-AM-007).
10
+ */
11
+ export interface DyNTS_LMStudio_Embedding_Settings {
12
+ /** OpenAI-kompatibilis lokális embedding-endpoint base URL-je (pl. `http://localhost:1234/v1`). */
13
+ baseUrl: string;
14
+ /** Opcionális Bearer token (LM Studio default-ban nem kér). */
15
+ apiKey?: string;
16
+ /** Per-call cost-event callback (FR-002 / BFR-AM-007). Non-breaking: ha undefined, nincs emit. */
17
+ onCostEvent?: DyNTS_AI_CostEventCallback;
18
+ }
19
+ /**
20
+ * `DyNTS_LMStudio_Embedding_ControlService` (BFR-AM-002) — OpenAI-kompatibilis **lokális** embedding
21
+ * adapter `fetch`-en (Node 20 global `fetch`, így a Dynamo NEM hoz be provider-specifikus SDK-t a
22
+ * lokális path-hoz). A FAM `FAM_LMStudio_EmbeddingProvider` workaround-ját emeli bedrock-szintre.
23
+ *
24
+ * A `baseUrl` + `modelId` config-ot a constructor-on kapja (mint a `DyNTS_OAI_Embedding_ControlService`
25
+ * a `DyFM_OAI_Settings`-et). A `${baseUrl}/embeddings` POST-ra a `{ model, input }` body-t küldi, a
26
+ * `data[].embedding` sorrendje == a `texts` sorrendje.
27
+ *
28
+ * **Cost-event (BFR-AM-007):** minden sikeres call után `emitCostEvent`-tel jelez (callType
29
+ * `embedding-single` / `embedding-batch`, provider `'lm-studio'`). Lokális futás → nincs USD-költség,
30
+ * a token-fogyasztás a `usage`-ből (ha az endpoint adja), különben becsült (4 char ≈ 1 token).
31
+ */
32
+ export declare class DyNTS_LMStudio_Embedding_ControlService extends DyNTS_AI_Embedding_ServiceBase {
33
+ /** A provider-azonosító a `LocalAI` enum-érték (LM Studio = lokális OpenAI-kompatibilis endpoint). */
34
+ readonly aiProvider: DyFM_AI_Provider;
35
+ /** A cost-event provider-string (a `DyNTS_AI_CostEvent.provider` szabad-string mezőjéhez). */
36
+ protected readonly costProvider: string;
37
+ /** LM Studio (OpenAI-kompatibilis lokális) capability-k: csak embedding-et igénylünk innen. */
38
+ readonly capabilities: DyFM_AI_ProviderCapabilities;
39
+ /** Az OpenAI-kompatibilis endpoint base URL-je (trailing slash-mentes). */
40
+ protected baseUrl: string;
41
+ /** Opcionális Bearer token. */
42
+ protected apiKey?: string;
43
+ /**
44
+ * @param set baseUrl + opc. apiKey + opc. onCostEvent. A `baseUrl` kötelező — ha üres, a
45
+ * `DyNTS-LMS-ECS-CFG` hibát dobjuk (lokális endpoint nincs konfigurálva).
46
+ */
47
+ constructor(set: DyNTS_LMStudio_Embedding_Settings);
48
+ /**
49
+ * Az LM Studio client-et nem SDK-val, hanem `fetch`-csel hívjuk; a `setup` a `baseUrl` (és
50
+ * opcionálisan az `apiKey`) átkonfigurálását teszi lehetővé (a base-szerződés egységessége miatt).
51
+ */
52
+ setup(config: DyFM_AI_Config): void;
53
+ /**
54
+ * Egy-szöveg embedding (a `createEmbeddings` egyelemű alakja). `fullResponse=true` esetén a
55
+ * teljes (OpenAI-alakú) válasz-objektumot adja vissza, különben a tiszta `number[]`-t.
56
+ */
57
+ createEmbedding(set: {
58
+ text: string;
59
+ model: string;
60
+ fullResponse?: boolean;
61
+ issuer: string;
62
+ }): Promise<number[] | CreateEmbeddingResponse>;
63
+ /**
64
+ * Batch-embedding az OpenAI-kompatibilis `/embeddings` végpontra. A `texts` sorrendje == a
65
+ * visszaadott `number[][]` sorrendje. `fullResponse=true` esetén a teljes válasz-objektum.
66
+ */
67
+ createEmbeddings(set: {
68
+ texts: string[];
69
+ model: string;
70
+ fullResponse?: boolean;
71
+ issuer: string;
72
+ }): Promise<number[][] | CreateEmbeddingResponse>;
73
+ /**
74
+ * Embedding model-info (a `DyFM_DAI_EmbeddingInfo` szerződés szerint). A provider `LocalAI`, a
75
+ * model a megadott azonosító (a lokális endpoint natív dimenzióját nem ismerjük előre).
76
+ */
77
+ getEmbeddingInfo(model: string): DyFM_DAI_EmbeddingInfo;
78
+ /**
79
+ * Provider-elérhetőség: egy minimál embedding-próba (rövid token). Ha a hívás dob (endpoint down /
80
+ * model hiányzik), `false`. Soha nem propagál hibát (try/catch → false).
81
+ */
82
+ testConnection(issuer: string): Promise<boolean>;
83
+ /**
84
+ * Az OpenAI-kompatibilis `/embeddings` POST-hívás `fetch`-csel. A `input` lehet egyetlen string
85
+ * vagy string-tömb (mindkettőt az OpenAI-spec megengedi). A választ `CreateEmbeddingResponse`-alakra
86
+ * normalizáljuk (a `data[].embedding`-eket kivonatoljuk). HTTP-/parse-hiba deskriptív üzenettel dobódik.
87
+ */
88
+ protected callEmbeddingsEndpoint(model: string, input: string | string[], issuer: string): Promise<CreateEmbeddingResponse>;
89
+ /**
90
+ * A nyers (OpenAI-kompatibilis) választ `CreateEmbeddingResponse`-alakra normalizálja: a `data[]`-ból
91
+ * a `embedding` tömböket emeli ki (csak véges number-eket), a darabszámot ellenőrzi (1:1 a `texts`-szel),
92
+ * és átveszi a `usage`-t ha van (a cost-event token-számához). Hibás/hiányzó mező → deskriptív hiba.
93
+ */
94
+ protected normalizeResponse(json: unknown, expectedCount: number, url: string, modelId: string): CreateEmbeddingResponse;
95
+ /**
96
+ * Cost-event emit (BFR-AM-007). A token a `usage`-ből (ha az endpoint adta), különben becsült
97
+ * (4 char ≈ 1 token, defenzív lokális heurisztika). A provider mindig `'lm-studio'` string.
98
+ */
99
+ protected emitLmStudioCostEvent(callType: 'embedding-single' | 'embedding-batch', model: string, texts: string[], response: CreateEmbeddingResponse, durationMs: number, issuer: string): void;
100
+ /** Becsült token-szám lokális endpoint-hoz (ha nincs `usage`): 4 char ≈ 1 token. */
101
+ protected estimateTokens(texts: string[]): number;
102
+ /** A `testConnection` próba-modellje (env-override-olható, default a FAM-mintára). */
103
+ protected defaultProbeModel(): string;
104
+ /** Trailing `/`-ek levágása (kettős slash elkerülése a `/embeddings` join-nál). */
105
+ protected trimTrailingSlashes(value: string): string;
106
+ /** Rövid, biztonságos válasz-snapshot a hiba-üzenethez (max 300 char). */
107
+ protected snapshot(value: string): string;
108
+ /** Egy number mező típusbiztos kiolvasása egy ismeretlen objektumból (hiány → 0). */
109
+ protected readNumber(obj: unknown, key: string): number;
110
+ }
111
+ //# sourceMappingURL=lmstudio-embedding.control-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lmstudio-embedding.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/lmstudio-embedding.control-service.ts"],"names":[],"mappings":"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"}