@futdevpro/nts-dynamo 1.15.71 → 1.15.73

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 (370) 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/.vscode/settings.json +10 -10
  17. package/HOWTO.md +15 -15
  18. package/LICENSE +21 -21
  19. package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
  20. package/__documentations/plans/BEDROCK-HYPERPLAN.md +95 -0
  21. package/_specifications/BACKLOG.md +92 -92
  22. package/_specifications/TODO.md +15 -15
  23. package/_specifications/agent.md +138 -138
  24. package/build/_collections/global-settings.const.d.ts.map +1 -1
  25. package/build/_collections/global-settings.const.js +7 -0
  26. package/build/_collections/global-settings.const.js.map +1 -1
  27. package/build/_models/interfaces/global-settings.interface.d.ts +24 -0
  28. package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
  29. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts +15 -0
  30. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts.map +1 -1
  31. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js +34 -6
  32. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js.map +1 -1
  33. package/build/_services/core/memory-guard.service.d.ts +51 -0
  34. package/build/_services/core/memory-guard.service.d.ts.map +1 -1
  35. package/build/_services/core/memory-guard.service.js +169 -6
  36. package/build/_services/core/memory-guard.service.js.map +1 -1
  37. package/eslint.config.js +3 -3
  38. package/nodemon.json +24 -24
  39. package/package.json +1 -1
  40. package/pnpm-workspace.yaml +5 -5
  41. package/scripts/run-coverage-tests.js +28 -28
  42. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  43. package/spec/support/helpers/ts-node-helper.js +93 -93
  44. package/spec/support/jasmine.coverage.json +24 -24
  45. package/spec/support/jasmine.json +24 -24
  46. package/src/_collections/archive.util.spec.ts +57 -57
  47. package/src/_collections/archive.util.ts +18 -18
  48. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  49. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  50. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  51. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  52. package/src/_collections/default-not-found-page.const.ts +22 -22
  53. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  54. package/src/_collections/default-socket-path.const.ts +2 -2
  55. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  56. package/src/_collections/get-environment-settings.util.ts +48 -48
  57. package/src/_collections/global-settings.const.ts +96 -89
  58. package/src/_collections/sample.env +21 -21
  59. package/src/_collections/star.controller.spec.ts +224 -224
  60. package/src/_collections/star.controller.ts +129 -129
  61. package/src/_enums/data-model-type.enum.ts +14 -14
  62. package/src/_enums/data-service-function.enum.ts +24 -24
  63. package/src/_enums/predefined-data-types.enum.ts +16 -16
  64. package/src/_enums/route-security.enum.ts +12 -12
  65. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  66. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  67. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  68. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  69. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  70. package/src/_models/control-models/app-params.control-model.ts +136 -136
  71. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  72. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  73. package/src/_models/control-models/endpoint-params.control-model.spec.ts +627 -627
  74. package/src/_models/control-models/endpoint-params.control-model.ts +627 -627
  75. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  76. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  77. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  78. package/src/_models/control-models/system-control.control-model.ts +12 -12
  79. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  80. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  81. package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
  82. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  83. package/src/_models/interfaces/global-settings.interface.ts +24 -0
  84. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  85. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  86. package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
  87. package/src/_models/types/db-update.type.ts +100 -100
  88. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  89. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  90. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  91. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  92. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  93. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  94. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
  95. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +518 -518
  96. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  97. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  98. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  99. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  100. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  101. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  102. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
  103. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  104. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  105. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  106. package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
  107. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  108. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  109. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  110. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  111. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  112. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  113. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  114. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  115. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  116. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  117. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  118. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  119. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  120. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  121. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  122. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  123. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  124. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
  125. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1033 -1033
  126. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  127. package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -115
  128. package/src/_modules/ai/_services/ai-embedding-mock.service.ts +212 -212
  129. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
  130. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +110 -110
  131. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  132. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  133. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  134. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  135. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  136. package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -519
  137. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  138. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  139. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
  140. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +371 -371
  141. package/src/_modules/ai/index.ts +23 -23
  142. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  143. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  144. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  145. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  146. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  147. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  148. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  149. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  150. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  151. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  152. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  153. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  154. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  155. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  156. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  157. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  158. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  159. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  160. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  161. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  162. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  163. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  164. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  165. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  166. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  167. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  168. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  169. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  170. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  171. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  172. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  173. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  174. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  175. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  176. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  177. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  178. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  179. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  180. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  181. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  182. package/src/_modules/custom-data/index.ts +9 -9
  183. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +161 -161
  184. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
  185. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
  186. package/src/_modules/data-readers/index.ts +11 -11
  187. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  188. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  189. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  190. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  191. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  192. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  193. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  194. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  195. package/src/_modules/defaults/index.ts +17 -17
  196. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  197. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  198. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  199. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  200. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  201. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  202. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  203. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  204. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  205. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  206. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  207. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  208. package/src/_modules/discord-assistant/index.ts +38 -38
  209. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  210. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  211. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  212. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  213. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  214. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  215. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  216. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  217. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  218. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  219. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  220. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  221. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  222. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  223. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  224. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  225. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  226. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  227. package/src/_modules/discord-bot/index.ts +36 -36
  228. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  229. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +59 -59
  230. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  231. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  232. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  233. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  234. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  235. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -198
  236. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +146 -146
  237. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
  238. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +106 -106
  239. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +507 -455
  240. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +272 -239
  241. package/src/_modules/local-vector-search/index.ts +16 -16
  242. package/src/_modules/logs/index.ts +11 -11
  243. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
  244. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +142 -142
  245. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +120 -120
  246. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
  247. package/src/_modules/mcp/index.ts +13 -13
  248. package/src/_modules/messaging/README.md +354 -354
  249. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  250. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  251. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  252. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  253. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  254. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  255. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  256. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  257. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  258. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  259. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  260. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  261. package/src/_modules/messaging/index.ts +30 -30
  262. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  263. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  264. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  265. package/src/_modules/mock/app-params.mock.ts +9 -9
  266. package/src/_modules/mock/app-server.mock.ts +188 -188
  267. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  268. package/src/_modules/mock/auth-service.mock.ts +28 -28
  269. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  270. package/src/_modules/mock/controller.mock.ts +16 -16
  271. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  272. package/src/_modules/mock/data-model.mock.ts +82 -82
  273. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  274. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  275. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  276. package/src/_modules/mock/email-service.mock.ts +20 -20
  277. package/src/_modules/mock/email-template.mock.html +14 -14
  278. package/src/_modules/mock/endpoint.mock.ts +91 -91
  279. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  280. package/src/_modules/mock/socket-client.mock.ts +45 -45
  281. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  282. package/src/_modules/mock/socket-server.mock.ts +46 -46
  283. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  284. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  285. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  286. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  287. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  288. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  289. package/src/_modules/oauth2/index.ts +17 -17
  290. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
  291. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +81 -81
  292. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
  293. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +306 -306
  294. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +295 -295
  295. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +118 -118
  296. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +105 -105
  297. package/src/_modules/scoped-config/index.ts +17 -17
  298. package/src/_modules/server/errors/errors.control-service.spec.ts +238 -238
  299. package/src/_modules/server/errors/errors.control-service.ts +100 -100
  300. package/src/_modules/server/errors/errors.controller.spec.ts +241 -241
  301. package/src/_modules/server/errors/errors.controller.ts +489 -489
  302. package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
  303. package/src/_modules/server/index.ts +30 -30
  304. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  305. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  306. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  307. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  308. package/src/_modules/server/server-status/server-status.control-service.spec.ts +576 -576
  309. package/src/_modules/server/server-status/server-status.control-service.ts +396 -396
  310. package/src/_modules/server/server-status/server-status.controller.spec.ts +240 -240
  311. package/src/_modules/server/server-status/server-status.controller.ts +253 -253
  312. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  313. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  314. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  315. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -164
  316. package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
  317. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
  318. package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
  319. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  320. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  321. package/src/_modules/socket/_services/socket-server.service.spec.ts +11 -11
  322. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  323. package/src/_modules/socket/app-extended.server.ts +630 -630
  324. package/src/_modules/socket/index.ts +42 -42
  325. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  326. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  327. package/src/_modules/test/index.ts +11 -11
  328. package/src/_modules/test/test.controller.spec.ts +72 -72
  329. package/src/_modules/test/test.controller.ts +115 -115
  330. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  331. package/src/_modules/usage/index.ts +15 -15
  332. package/src/_modules/usage/usage.controller.spec.ts +81 -81
  333. package/src/_modules/usage/usage.controller.ts +126 -126
  334. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  335. package/src/_modules/usage/usage.data-service.ts +185 -185
  336. package/src/_services/base/api.service-base.spec.ts +125 -125
  337. package/src/_services/base/api.service-base.ts +74 -74
  338. package/src/_services/base/archive-data.service.spec.ts +196 -196
  339. package/src/_services/base/archive-data.service.ts +216 -216
  340. package/src/_services/base/data.service.spec.ts +674 -674
  341. package/src/_services/base/data.service.ts +2719 -2719
  342. package/src/_services/base/db.service.spec.ts +73 -73
  343. package/src/_services/base/db.service.ts +1575 -1575
  344. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  345. package/src/_services/base/singleton.service-base.ts +24 -24
  346. package/src/_services/base/singleton.service.spec.ts +114 -114
  347. package/src/_services/base/singleton.service.ts +38 -38
  348. package/src/_services/core/api.service.spec.ts +140 -140
  349. package/src/_services/core/auth.service.spec.ts +159 -159
  350. package/src/_services/core/auth.service.ts +174 -174
  351. package/src/_services/core/email.service.spec.ts +85 -85
  352. package/src/_services/core/email.service.ts +742 -742
  353. package/src/_services/core/global.service.spec.ts +292 -292
  354. package/src/_services/core/global.service.ts +475 -475
  355. package/src/_services/core/memory-guard.service.spec.ts +62 -0
  356. package/src/_services/core/memory-guard.service.ts +195 -6
  357. package/src/_services/core/service-collection.service.spec.ts +46 -46
  358. package/src/_services/core/service-collection.service.ts +6 -6
  359. package/src/_services/route/controller.service.spec.ts +53 -53
  360. package/src/_services/route/controller.service.ts +148 -148
  361. package/src/_services/route/routing-module.service.spec.ts +98 -98
  362. package/src/_services/route/routing-module.service.ts +330 -330
  363. package/src/_services/server/app.server.ts +1747 -1747
  364. package/src/_services/shared.static-service.spec.ts +99 -99
  365. package/src/_services/shared.static-service.ts +78 -78
  366. package/src/index.ts +96 -96
  367. package/tsconfig.app.json +12 -12
  368. package/tsconfig.json +42 -42
  369. package/.dynamo/logs/cicd-pipeline/output.log +0 -2782
  370. package/.dynamo/logs/cicd-pipeline/status.json +0 -94
@@ -1,138 +1,138 @@
1
-
2
-
3
-
4
-
5
- ## Agent
6
-
7
- 0. A conversation listát megvágjuk, hogy beleférjen a chat-LLM hívásba (maxTokens)
8
-
9
- 1. Egy elő LLM kérdésben beköthetjük a Routine-okat (a routinok afféle felülírók, megelőzik az utolsó üzenetet, de közben meg kell oldjuk valahogy, hogy az üzenet is feldolgozásra kerüljön, és a routine is érvényesüljön ha kell (van, hogy csak hozzá kell adjunk valamit a parancshoz))
10
- - mik alapján keresünk routine-okat:
11
- - session doing/goal/intent alapú micro routine-ok (vektor keresés; mindig amikor...)
12
- - egyéb micro routine-ok (vektor keresés; mindig amikor...)
13
- - idő alapú triggering
14
- - ???
15
-
16
- 2. Egy nagy LLM kérdésben megkérdezzük, hogy az utolsó user message teljesítéséhez...
17
- - milyen operation-ök kellenek
18
- - itt felsoroljuk az elérhető operation-öket
19
- - Ez lehet több is.
20
- - A: NONE | (operation-with-intent or get-operation-group-with-intent) list
21
- - kell-e a kódbázisban keresni
22
- - itt felsoroljuk az elérhető projekt-eket
23
- - ha igen, mire kell vektorkeressünk
24
- - A: NONE | vektor search keywords
25
- - kell-e a dokumentumok között keresni keresni
26
- - itt felsoroljuk az elérhető dokumentumokat/dokumentum tárakat (attól függően, hogy ne legyen túl sok opció)
27
- - ha igen, mire kell vektorkeressünk
28
- - A: NONE | vektor search keywords
29
- - kell-e a DB context-ben keresni
30
- - ha igen, mire kell vektorkeressünk
31
- - A: NONE | vektor search keywords
32
- - kell-e valamilyen specifikus context adat
33
- - itt felsoroljuk az elérhető specifikus context adatokat
34
- - ezek olyan speciális adatok amik fixek, és direkt method-okkal adjuk meg őket,
35
- - pontos dátum-idő
36
- - user neve/nickneve/amin szólítsa a bot
37
- - user data
38
- - user settings
39
- - ... TODO: add more special context data keys
40
- - A: NONE | special context data key
41
- Mindegyik input lehet NONE, ami azt jelzi, hogy nincs rá szükség
42
-
43
- 3. Ha kell, bármilyen info, akkor először azokat gyűjtjük össze
44
- - a talált info-kat beletesszük a beszélgetésbe mint assistant message-ek
45
- (ezek valójában nem kerülnek elküldésre, a következő üzenet érkezésekkor nem fognak rendelkezésre állni, de elmentjük a db-be az egész conversation listát)
46
-
47
- 4. Ha kell, akkor lekérjük a kért operation-group-okat és abból újabb LLM kérdéssel összeszedjük a szükséges operation-öket
48
- - az operation-group-okat különféle módon szerezhetjük be
49
- - Group-olt operation-ök listázása
50
- - MCP Server-ről kérés
51
- - ... TODO: is there any more operation-group sources?
52
-
53
- 4. Ha kell, akkor végrehajtjuk a kért operation-öket
54
- - a végrehajtás eredményéről röviden beszámolunk/értesítjük a user-t, hogy mit sikerült és nem sikerült csinálni
55
- (nem csak a jelenlegi conversation listába tesszük be, hanem tényleg el is küldjük a user-nek egy message-et)
56
-
57
- 5. Egy újabb LLM kérdéssel kiszedjük az új context-et aminek be kell kerülnie a DB context-be
58
- - ha kell akkor a mentendő context-et kell visszaadja, ha nem akkor a NONE
59
-
60
- 6. Megválaszoljuk a user üzenetét
61
-
62
- 7. A végeredményt elmentjük a DB-be
63
- - minden llm kérdés-választ,
64
- - és a result-okkal feltáplált conversation listát
65
- - a vektor keresések eredményeit
66
- - (not yet): ha nem messaging platformon vagyunk (discord/slack/teams), akkor chat session-ökbe mentjük az adatokat
67
- - ebben az esetben külön kell válogatni azokat a message-eket amiket elküldtünk a user-nek (conversation) attól amik az operation-ök végrehajtása során keletkeznek (logs)
68
-
69
-
70
- ## Operation-ök
71
- - az operation-ök lista kérésekor hangsúlyozzuk az LLM-nek, hogy mindig próbáljuk a leg apróbb lépésekből összeállítani a listát
72
- - minden operation úgy működik mint egy MCP Server kérés, adott egy input schema
73
- - az input-ot a conversation alapján állítjuk össze, úgy hogy az operation intent kerül bele a conversation-be mielőtt egy LLM hívással megpróbáljuk összeállítani az inputot
74
- - az input-ok összeállításakor felhívjuk az LLM figyelmét, hogy a mentendő módosítandó adatokat csak akkor manipulálja, ha azt a user kérte, egyébként használjuk a user szava járását
75
- - az operation-ok mindig string-et kell visszaadjanak ami szintén a conversation-be kerül bele (ha obj-et kapunk vissza, akkor azt egyszerűen string-gé alakítjuk)
76
- - egyes operation-ök több lépéses operation-routine-okként hajtandóak végre (az LLM csak egy operation-t választ ki, de ha az egy operation-routine, akkor azokat hajtjuk végre sorban)
77
-
78
- ## Routine-ok
79
-
80
- ### Időalapú és Triggered routine-ok
81
- - olyan routine-ok amiket egy adott időpontban/idő után/időközönként hajtunk végre
82
- - ezek lehetnek olyan routine-ok is amiket nem egy felhasználói üzenet indít, hanem egy időpont, és ez után automatikusan üzenetet küld egy beállított default csatornára
83
- - lehetnek webhook trigger alapúak is
84
- - ezek lehetnek továbbá complex rutine-ok amik feladat folyamatokat indukálnak
85
- pl.:
86
- - minden reggel nézd át az email-eket és az üzeneteket és amire tudsz válaszolj, amire pedig nem, azt beszéljük át
87
- - minden reggel gyűjtsd össze az aktuális top prio feladatokat és segíts megtervezni a napomat
88
- - ha új task kerül a rendszerbe, tervezd meg a megvalósítást (de mindenképpen egyeztess róla a PO-val)
89
- - az új task resolution plan-eket mindig validáltatssuk le a PO-val
90
- - mindig amikor új PR kerül fel az xy repo-ba akkor review-zz
91
-
92
-
93
-
94
- ### Micro routine-ok
95
- - olyan routine-ok amiket módosítanak a user input-on,
96
- pl: mindig amikor kódokat generálunk, akkor figyeljünk oda, a hosszú sorok mindig törve legyenek (ilyenkor ezt mindig hozzáfűzzük a user message-hez)
97
- - a micro routine-okat a DB-be mentjük, a kulcs adatokat vektorizálva
98
- Adatok:
99
- - goal: mindig amikor...
100
-
101
- ### Egyéb
102
- - meg kell keresnünk azt a pontot és értelmezést, hogy hogyan tudunk segíteni a user-nek a gondolatai megfogalmazásában
103
- (talán a "2. Egy nagy LLM kérdés"-be bele vehetnénk, hogy ha a user bizonytalannak tűnik, vagy nem összeszedettnek akkor javaslunk egy összeszedettebb inputot, amit ha elfogad, akkor úgy kezeljük mintha a user küldte volna)
104
-
105
-
106
-
107
-
108
-
109
-
110
- PROMPT
111
- Az NTS-be szeretnénk implementálni egy Operation Handler Agent-öt, ami ugye az NTS package-be fog bekerülni egy saját modulba, és ezt a modult fogjuk használni a projektek implementálásakor úgy, hogy az IO-Control-ba handleMessage-be kötjük be.
112
-
113
- Úgy kéne beépíteni ezt az Agent-öt, ahogy most is be van építve. Szóval ez az Agent modul, ez magában lesz. Megcsinál mindent, amit leírtunk ebbe a dokumentumban, specifikációba. Azt már a projekt implementálásnál kell majd megadni, hogy a socket.io-ból behívjuk az agent-öt.
114
-
115
-
116
-
117
- ezt a CCAP-ba az agent-2 module-ba fejlesztjük le mint POC/prototípus (not like agent module)
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
- // TODO: we need to create a solution to create a maxed LLM call with 50-50% of the logs and the conversation
128
- // the logs will go to the userPrompt, after the conversation, but we will need to cut them equally beside the system and control prompt (last user prompt)
129
- // for the part that is before (both in log and conversation) we will need to be merged to a summary that is added as first (oldest element)
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
1
+
2
+
3
+
4
+
5
+ ## Agent
6
+
7
+ 0. A conversation listát megvágjuk, hogy beleférjen a chat-LLM hívásba (maxTokens)
8
+
9
+ 1. Egy elő LLM kérdésben beköthetjük a Routine-okat (a routinok afféle felülírók, megelőzik az utolsó üzenetet, de közben meg kell oldjuk valahogy, hogy az üzenet is feldolgozásra kerüljön, és a routine is érvényesüljön ha kell (van, hogy csak hozzá kell adjunk valamit a parancshoz))
10
+ - mik alapján keresünk routine-okat:
11
+ - session doing/goal/intent alapú micro routine-ok (vektor keresés; mindig amikor...)
12
+ - egyéb micro routine-ok (vektor keresés; mindig amikor...)
13
+ - idő alapú triggering
14
+ - ???
15
+
16
+ 2. Egy nagy LLM kérdésben megkérdezzük, hogy az utolsó user message teljesítéséhez...
17
+ - milyen operation-ök kellenek
18
+ - itt felsoroljuk az elérhető operation-öket
19
+ - Ez lehet több is.
20
+ - A: NONE | (operation-with-intent or get-operation-group-with-intent) list
21
+ - kell-e a kódbázisban keresni
22
+ - itt felsoroljuk az elérhető projekt-eket
23
+ - ha igen, mire kell vektorkeressünk
24
+ - A: NONE | vektor search keywords
25
+ - kell-e a dokumentumok között keresni keresni
26
+ - itt felsoroljuk az elérhető dokumentumokat/dokumentum tárakat (attól függően, hogy ne legyen túl sok opció)
27
+ - ha igen, mire kell vektorkeressünk
28
+ - A: NONE | vektor search keywords
29
+ - kell-e a DB context-ben keresni
30
+ - ha igen, mire kell vektorkeressünk
31
+ - A: NONE | vektor search keywords
32
+ - kell-e valamilyen specifikus context adat
33
+ - itt felsoroljuk az elérhető specifikus context adatokat
34
+ - ezek olyan speciális adatok amik fixek, és direkt method-okkal adjuk meg őket,
35
+ - pontos dátum-idő
36
+ - user neve/nickneve/amin szólítsa a bot
37
+ - user data
38
+ - user settings
39
+ - ... TODO: add more special context data keys
40
+ - A: NONE | special context data key
41
+ Mindegyik input lehet NONE, ami azt jelzi, hogy nincs rá szükség
42
+
43
+ 3. Ha kell, bármilyen info, akkor először azokat gyűjtjük össze
44
+ - a talált info-kat beletesszük a beszélgetésbe mint assistant message-ek
45
+ (ezek valójában nem kerülnek elküldésre, a következő üzenet érkezésekkor nem fognak rendelkezésre állni, de elmentjük a db-be az egész conversation listát)
46
+
47
+ 4. Ha kell, akkor lekérjük a kért operation-group-okat és abból újabb LLM kérdéssel összeszedjük a szükséges operation-öket
48
+ - az operation-group-okat különféle módon szerezhetjük be
49
+ - Group-olt operation-ök listázása
50
+ - MCP Server-ről kérés
51
+ - ... TODO: is there any more operation-group sources?
52
+
53
+ 4. Ha kell, akkor végrehajtjuk a kért operation-öket
54
+ - a végrehajtás eredményéről röviden beszámolunk/értesítjük a user-t, hogy mit sikerült és nem sikerült csinálni
55
+ (nem csak a jelenlegi conversation listába tesszük be, hanem tényleg el is küldjük a user-nek egy message-et)
56
+
57
+ 5. Egy újabb LLM kérdéssel kiszedjük az új context-et aminek be kell kerülnie a DB context-be
58
+ - ha kell akkor a mentendő context-et kell visszaadja, ha nem akkor a NONE
59
+
60
+ 6. Megválaszoljuk a user üzenetét
61
+
62
+ 7. A végeredményt elmentjük a DB-be
63
+ - minden llm kérdés-választ,
64
+ - és a result-okkal feltáplált conversation listát
65
+ - a vektor keresések eredményeit
66
+ - (not yet): ha nem messaging platformon vagyunk (discord/slack/teams), akkor chat session-ökbe mentjük az adatokat
67
+ - ebben az esetben külön kell válogatni azokat a message-eket amiket elküldtünk a user-nek (conversation) attól amik az operation-ök végrehajtása során keletkeznek (logs)
68
+
69
+
70
+ ## Operation-ök
71
+ - az operation-ök lista kérésekor hangsúlyozzuk az LLM-nek, hogy mindig próbáljuk a leg apróbb lépésekből összeállítani a listát
72
+ - minden operation úgy működik mint egy MCP Server kérés, adott egy input schema
73
+ - az input-ot a conversation alapján állítjuk össze, úgy hogy az operation intent kerül bele a conversation-be mielőtt egy LLM hívással megpróbáljuk összeállítani az inputot
74
+ - az input-ok összeállításakor felhívjuk az LLM figyelmét, hogy a mentendő módosítandó adatokat csak akkor manipulálja, ha azt a user kérte, egyébként használjuk a user szava járását
75
+ - az operation-ok mindig string-et kell visszaadjanak ami szintén a conversation-be kerül bele (ha obj-et kapunk vissza, akkor azt egyszerűen string-gé alakítjuk)
76
+ - egyes operation-ök több lépéses operation-routine-okként hajtandóak végre (az LLM csak egy operation-t választ ki, de ha az egy operation-routine, akkor azokat hajtjuk végre sorban)
77
+
78
+ ## Routine-ok
79
+
80
+ ### Időalapú és Triggered routine-ok
81
+ - olyan routine-ok amiket egy adott időpontban/idő után/időközönként hajtunk végre
82
+ - ezek lehetnek olyan routine-ok is amiket nem egy felhasználói üzenet indít, hanem egy időpont, és ez után automatikusan üzenetet küld egy beállított default csatornára
83
+ - lehetnek webhook trigger alapúak is
84
+ - ezek lehetnek továbbá complex rutine-ok amik feladat folyamatokat indukálnak
85
+ pl.:
86
+ - minden reggel nézd át az email-eket és az üzeneteket és amire tudsz válaszolj, amire pedig nem, azt beszéljük át
87
+ - minden reggel gyűjtsd össze az aktuális top prio feladatokat és segíts megtervezni a napomat
88
+ - ha új task kerül a rendszerbe, tervezd meg a megvalósítást (de mindenképpen egyeztess róla a PO-val)
89
+ - az új task resolution plan-eket mindig validáltatssuk le a PO-val
90
+ - mindig amikor új PR kerül fel az xy repo-ba akkor review-zz
91
+
92
+
93
+
94
+ ### Micro routine-ok
95
+ - olyan routine-ok amiket módosítanak a user input-on,
96
+ pl: mindig amikor kódokat generálunk, akkor figyeljünk oda, a hosszú sorok mindig törve legyenek (ilyenkor ezt mindig hozzáfűzzük a user message-hez)
97
+ - a micro routine-okat a DB-be mentjük, a kulcs adatokat vektorizálva
98
+ Adatok:
99
+ - goal: mindig amikor...
100
+
101
+ ### Egyéb
102
+ - meg kell keresnünk azt a pontot és értelmezést, hogy hogyan tudunk segíteni a user-nek a gondolatai megfogalmazásában
103
+ (talán a "2. Egy nagy LLM kérdés"-be bele vehetnénk, hogy ha a user bizonytalannak tűnik, vagy nem összeszedettnek akkor javaslunk egy összeszedettebb inputot, amit ha elfogad, akkor úgy kezeljük mintha a user küldte volna)
104
+
105
+
106
+
107
+
108
+
109
+
110
+ PROMPT
111
+ Az NTS-be szeretnénk implementálni egy Operation Handler Agent-öt, ami ugye az NTS package-be fog bekerülni egy saját modulba, és ezt a modult fogjuk használni a projektek implementálásakor úgy, hogy az IO-Control-ba handleMessage-be kötjük be.
112
+
113
+ Úgy kéne beépíteni ezt az Agent-öt, ahogy most is be van építve. Szóval ez az Agent modul, ez magában lesz. Megcsinál mindent, amit leírtunk ebbe a dokumentumban, specifikációba. Azt már a projekt implementálásnál kell majd megadni, hogy a socket.io-ból behívjuk az agent-öt.
114
+
115
+
116
+
117
+ ezt a CCAP-ba az agent-2 module-ba fejlesztjük le mint POC/prototípus (not like agent module)
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ // TODO: we need to create a solution to create a maxed LLM call with 50-50% of the logs and the conversation
128
+ // the logs will go to the userPrompt, after the conversation, but we will need to cut them equally beside the system and control prompt (last user prompt)
129
+ // for the part that is before (both in log and conversation) we will need to be merged to a summary that is added as first (oldest element)
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
@@ -1 +1 @@
1
- {"version":3,"file":"global-settings.const.d.ts","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBA4EnC,CAAC"}
1
+ {"version":3,"file":"global-settings.const.d.ts","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBAmFnC,CAAC"}
@@ -65,6 +65,13 @@ exports.DyNTS_global_settings = {
65
65
  heapCriticalThreshold: 95,
66
66
  recoveryMargin: 10,
67
67
  maxHistoryCount: 100,
68
+ // GC-thrash precursor (a %-küszöb által gyakran KÉSŐN/sosem fogott OOM) + crash-entry + opcionális graceful-exit.
69
+ gcWarningFraction: 0.40,
70
+ gcCriticalFraction: 0.60,
71
+ installCrashHandlers: true,
72
+ exitOnSustainedCritical: false,
73
+ sustainedCriticalPolls: 3,
74
+ exitCode: 137,
68
75
  },
69
76
  };
70
77
  //# sourceMappingURL=global-settings.const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-settings.const.js","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":";;;AAEA,uEAAoE;AAEpE,yFAAsF;AACtF,mFAAgF;AAEhF;;;GAGG;AACU,QAAA,qBAAqB,GAA0B;IAC1D,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,yCAAmB,CAAC,IAAI;IAC9C,qBAAqB,EAAE,2CAAoB,CAAC,IAAI;IAEhD,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,IAAA,6DAA6B,GAAE;IAE7C,oCAAoC,EAAE,IAAI;IAC1C,oBAAoB,EAAE,IAAI;IAE1B,YAAY,EAAE;QACZ,gBAAgB,EAAE,KAAK;QAEvB,KAAK,EAAE,KAAK;QAEZ,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;QACtB,oBAAoB,EAAE,KAAK;QAE3B,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,mBAAmB,EAAE,KAAK;QAE1B,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI;QAEhB,cAAc,EAAE,KAAK;QAErB,YAAY,EAAE,KAAK;QAEnB,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,IAAI;SACjB;KACF;IAED,kBAAkB,EAAE,IAAI;IAExB,iFAAiF;IACjF,oFAAoF;IACpF,kEAAkE;IAClE,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;IAED,YAAY,EAAE,IAAI;IAElB,eAAe,EAAE,IAAI;IAErB,aAAa,EAAE,IAAI;IAEnB,kBAAkB,EAAE,IAAI;IAExB,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB;IAED,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,WAAW,EAAE;QACX,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,KAAK;QACrB,oBAAoB,EAAE,EAAE;QACxB,qBAAqB,EAAE,EAAE;QACzB,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,GAAG;KACrB;CACF,CAAC"}
1
+ {"version":3,"file":"global-settings.const.js","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":";;;AAEA,uEAAoE;AAEpE,yFAAsF;AACtF,mFAAgF;AAEhF;;;GAGG;AACU,QAAA,qBAAqB,GAA0B;IAC1D,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,yCAAmB,CAAC,IAAI;IAC9C,qBAAqB,EAAE,2CAAoB,CAAC,IAAI;IAEhD,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,IAAA,6DAA6B,GAAE;IAE7C,oCAAoC,EAAE,IAAI;IAC1C,oBAAoB,EAAE,IAAI;IAE1B,YAAY,EAAE;QACZ,gBAAgB,EAAE,KAAK;QAEvB,KAAK,EAAE,KAAK;QAEZ,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;QACtB,oBAAoB,EAAE,KAAK;QAE3B,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,mBAAmB,EAAE,KAAK;QAE1B,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI;QAEhB,cAAc,EAAE,KAAK;QAErB,YAAY,EAAE,KAAK;QAEnB,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,IAAI;SACjB;KACF;IAED,kBAAkB,EAAE,IAAI;IAExB,iFAAiF;IACjF,oFAAoF;IACpF,kEAAkE;IAClE,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;IAED,YAAY,EAAE,IAAI;IAElB,eAAe,EAAE,IAAI;IAErB,aAAa,EAAE,IAAI;IAEnB,kBAAkB,EAAE,IAAI;IAExB,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB;IAED,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,WAAW,EAAE;QACX,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,KAAK;QACrB,oBAAoB,EAAE,EAAE;QACxB,qBAAqB,EAAE,EAAE;QACzB,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,kHAAkH;QAClH,iBAAiB,EAAE,IAAI;QACvB,kBAAkB,EAAE,IAAI;QACxB,oBAAoB,EAAE,IAAI;QAC1B,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,CAAC;QACzB,QAAQ,EAAE,GAAG;KACd;CACF,CAAC"}
@@ -157,6 +157,30 @@ export interface DyNTS_Global_Settings {
157
157
  recoveryMargin?: number;
158
158
  /** Megőrzött események max száma (ring-buffer). Default: 100. */
159
159
  maxHistoryCount?: number;
160
+ /**
161
+ * GC-hányad (GC-ben töltött idő / poll-ablak) küszöb a `warning`-hoz, a %-küszöb MELLETT. 0..1. Default: 0.40.
162
+ * A „Ineffective mark-compacts near heap limit" OOM gyakran a heap-% kritikus küszöb ALATT üt be (a GC thrash-el,
163
+ * `mutator utilization` lezuhan) — ezt a jelet a puszta % későn/sosem fogja. Ez a GC-jel a valódi OOM-precursor.
164
+ */
165
+ gcWarningFraction?: number;
166
+ /** GC-hányad küszöb a `critical`-hoz (load-shed + graceful-exit zóna). 0..1. Default: 0.60. */
167
+ gcCriticalFraction?: number;
168
+ /**
169
+ * Process-szintű crash-handler (`uncaughtException`) telepítése — a crash ELŐTT TELJES-RÉSZLETŰ error-entry
170
+ * (message + stack + kód + issuer + memória-snapshot) az error-sinkbe, majd tiszta exit. Default: true.
171
+ * (Az `unhandledRejection`-t a base App már rögzíti; ez az eddig néma `uncaughtException`-t fedi le.)
172
+ */
173
+ installCrashHandlers?: boolean;
174
+ /**
175
+ * Tartós `critical` (a megadott poll-számon át, GC-vel sem csökkenő) esetén TISZTA kilépés → a wrapper/
176
+ * restart-policy PREDIKTÍVEN újraindít, a kriptikus fatal OOM (exit 134) helyett. Default: false
177
+ * (konténer-restart-policy-ra bízva; standalone/`serve`-wrapper-es app opt-in-olja).
178
+ */
179
+ exitOnSustainedCritical?: boolean;
180
+ /** Hány EGYMÁST KÖVETŐ `critical` poll után lépjen ki (`exitOnSustainedCritical`-hez). Default: 3. */
181
+ sustainedCriticalPolls?: number;
182
+ /** A graceful-exit kódja (a wrapper ezt látja restart-jelnek). Default: 137. */
183
+ exitCode?: number;
160
184
  };
161
185
  }
162
186
  //# sourceMappingURL=global-settings.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IAEpC,YAAY,EAAE,0BAA0B,CAAC;IAEzC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,qBAAqB,EAAE,oBAAoB,CAAC;IAE5C;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,oCAAoC,EAAE,OAAO,CAAC;IAE9C;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IAGH;;OAEG;IACH,YAAY,EAAE,wBAAwB,CAAC;IAEvC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,YAAY,EAAE,GAAG,CAAC;IAElB;;;;;;OAMG;IACH,eAAe,EAAE,GAAG,CAAC;IAErB;;;;;;;OAOG;IACH,aAAa,EAAE,GAAG,CAAC;IAEnB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,GAAG,CAAC;IAEzB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE;QACd;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,GAAG,CAAC;IAEzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE;QACZ,qFAAqF;QACrF,OAAO,EAAE,OAAO,CAAC;QACjB,+CAA+C;QAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,wDAAwD;QACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,yDAAyD;QACzD,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,wFAAwF;QACxF,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,iEAAiE;QACjE,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH"}
1
+ {"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IAEpC,YAAY,EAAE,0BAA0B,CAAC;IAEzC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,qBAAqB,EAAE,oBAAoB,CAAC;IAE5C;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,oCAAoC,EAAE,OAAO,CAAC;IAE9C;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IAGH;;OAEG;IACH,YAAY,EAAE,wBAAwB,CAAC;IAEvC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,YAAY,EAAE,GAAG,CAAC;IAElB;;;;;;OAMG;IACH,eAAe,EAAE,GAAG,CAAC;IAErB;;;;;;;OAOG;IACH,aAAa,EAAE,GAAG,CAAC;IAEnB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,GAAG,CAAC;IAEzB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE;QACd;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,GAAG,CAAC;IAEzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE;QACZ,qFAAqF;QACrF,OAAO,EAAE,OAAO,CAAC;QACjB,+CAA+C;QAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,wDAAwD;QACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,yDAAyD;QACzD,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,wFAAwF;QACxF,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,iEAAiE;QACjE,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,+FAA+F;QAC/F,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B;;;;WAIG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B;;;;WAIG;QACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,sGAAsG;QACtG,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,gFAAgF;QAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH"}
@@ -16,6 +16,16 @@ export declare class LVS_VectorPool_ControlService {
16
16
  * Key: vektor ID, Value: L2 normalizált vektor értékek
17
17
  */
18
18
  private normalizedVectorPool;
19
+ /**
20
+ * `normalizedOnly` mód: ha `true`, a pool NEM tárolja a nyers vektorokat (`vectorPool`) — CSAK a
21
+ * normalizált másolatot. A kizárólag-cosine fogyasztóknak (pl. RAG-keresés) ez ~50% memória-megtakarítás
22
+ * (a két párhuzamos pool helyett egy). Ekkor az `l2Distance`-keresés és a `getAll()` nyers-érték-olvasása
23
+ * N/A (a `size()` + a `cosineSimilarity`-keresés továbbra is helyes). Default `false` (visszafelé kompatibilis).
24
+ */
25
+ private readonly normalizedOnly;
26
+ constructor(set?: {
27
+ normalizedOnly?: boolean;
28
+ });
19
29
  /**
20
30
  * Hozzáad egy vektort a pool-hoz
21
31
  * Opcionálisan L2 normalizált másolatot is tárol
@@ -29,6 +39,11 @@ export declare class LVS_VectorPool_ControlService {
29
39
  * Frissít egy vektort a pool-ban
30
40
  */
31
41
  updateVector(id: string, vector: number[]): void;
42
+ /**
43
+ * A pool elemszáma. Mindkét módban helyes (a `normalizedVectorPool` a forrás), így `normalizedOnly`
44
+ * módban is — szemben a `getAll().size`-szal, ami ott üres (a nyers pool nincs tárolva).
45
+ */
46
+ size(): number;
32
47
  /**
33
48
  * Törli az összes vektort a pool-ból
34
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"lvs-vector-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAsD;IAExE;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAsD;IAElF;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAwB7C;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAQhD;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;;OAGG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAsBzD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAiBnD;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EAAE,EACf,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,eAAe,EACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,gBAAgB,EAAE;CAmEtB"}
1
+ {"version":3,"file":"lvs-vector-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAsD;IAExE;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAsD;IAElF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,GAAG,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAI9C;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IA0B7C;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAShD;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;;OAGG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAsBzD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAiBnD;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EAAE,EACf,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,eAAe,EACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,gBAAgB,EAAE;CA6EtB"}
@@ -18,6 +18,16 @@ class LVS_VectorPool_ControlService {
18
18
  * Key: vektor ID, Value: L2 normalizált vektor értékek
19
19
  */
20
20
  normalizedVectorPool = new Map();
21
+ /**
22
+ * `normalizedOnly` mód: ha `true`, a pool NEM tárolja a nyers vektorokat (`vectorPool`) — CSAK a
23
+ * normalizált másolatot. A kizárólag-cosine fogyasztóknak (pl. RAG-keresés) ez ~50% memória-megtakarítás
24
+ * (a két párhuzamos pool helyett egy). Ekkor az `l2Distance`-keresés és a `getAll()` nyers-érték-olvasása
25
+ * N/A (a `size()` + a `cosineSimilarity`-keresés továbbra is helyes). Default `false` (visszafelé kompatibilis).
26
+ */
27
+ normalizedOnly;
28
+ constructor(set) {
29
+ this.normalizedOnly = set?.normalizedOnly ?? false;
30
+ }
21
31
  /**
22
32
  * Hozzáad egy vektort a pool-hoz
23
33
  * Opcionálisan L2 normalizált másolatot is tárol
@@ -35,8 +45,10 @@ class LVS_VectorPool_ControlService {
35
45
  throw new Error(`Vector must contain only finite numbers at index ${i}`);
36
46
  }
37
47
  }
38
- // Tároljuk az eredeti vektort
39
- this.vectorPool.set(id, vector);
48
+ // Tároljuk az eredeti vektort — KIVÉVE normalizedOnly módban (akkor a nyers pool kihagyva, ~50% memória).
49
+ if (!this.normalizedOnly) {
50
+ this.vectorPool.set(id, vector);
51
+ }
40
52
  // L2 normalizált másolatot is tárolunk a cosine similarity számításokhoz
41
53
  const normalized = LVS_VectorPool_ControlService.l2Normalize(vector);
42
54
  this.normalizedVectorPool.set(id, normalized);
@@ -52,11 +64,19 @@ class LVS_VectorPool_ControlService {
52
64
  * Frissít egy vektort a pool-ban
53
65
  */
54
66
  updateVector(id, vector) {
55
- if (!this.vectorPool.has(id)) {
67
+ // A `normalizedVectorPool` a forrás (mindkét módban populált; `normalizedOnly`-ban a `vectorPool` üres).
68
+ if (!this.normalizedVectorPool.has(id)) {
56
69
  throw new Error(`Vector with ID "${id}" does not exist`);
57
70
  }
58
71
  this.addVector(id, vector);
59
72
  }
73
+ /**
74
+ * A pool elemszáma. Mindkét módban helyes (a `normalizedVectorPool` a forrás), így `normalizedOnly`
75
+ * módban is — szemben a `getAll().size`-szal, ami ott üres (a nyers pool nincs tárolva).
76
+ */
77
+ size() {
78
+ return this.normalizedVectorPool.size;
79
+ }
60
80
  /**
61
81
  * Törli az összes vektort a pool-ból
62
82
  */
@@ -147,11 +167,19 @@ class LVS_VectorPool_ControlService {
147
167
  if (k <= 0) {
148
168
  throw new Error('k must be a positive number');
149
169
  }
150
- if (this.vectorPool.size === 0) {
170
+ // `normalizedOnly` módban nincs nyers pool → l2Distance nem számolható (csak cosine).
171
+ if (this.normalizedOnly && mode === lvs_search_mode_enum_1.LVS_Search_Mode.l2Distance) {
172
+ throw new Error('l2Distance search is not available in normalizedOnly mode (raw vectors are not stored)');
173
+ }
174
+ // Üres pool → üres eredmény. A `normalizedVectorPool` a forrás (mindkét módban populált; a nyers
175
+ // `vectorPool` `normalizedOnly`-ban üres, ezért NEM azon ellenőrzünk).
176
+ if (this.normalizedVectorPool.size === 0) {
151
177
  return [];
152
178
  }
153
- // Validáljuk, hogy minden vektor ugyanolyan dimenziójú-e
154
- const firstVector = Array.from(this.vectorPool.values())[0];
179
+ // Validáljuk, hogy minden vektor ugyanolyan dimenziójú-e. A referencia-pool mód-függő: l2 a nyers,
180
+ // cosine a normalizált (azonos dimenzió, de `normalizedOnly`-ban a nyers pool üres).
181
+ const referencePool = mode === lvs_search_mode_enum_1.LVS_Search_Mode.l2Distance ? this.vectorPool : this.normalizedVectorPool;
182
+ const firstVector = Array.from(referencePool.values())[0];
155
183
  if (firstVector && firstVector.length !== query.length) {
156
184
  throw new Error(`Query vector dimension (${query.length}) does not match pool vector ` +
157
185
  `dimension (${firstVector.length})`);
@@ -1 +1 @@
1
- {"version":3,"file":"lvs-vector-pool.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":";;;AAAA,yEAAiE;AAGjE;;;;GAIG;AACH,MAAa,6BAA6B;IACxC;;;OAGG;IACK,UAAU,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAExE;;;OAGG;IACK,oBAAoB,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAElF;;;OAGG;IACH,SAAS,CAAC,EAAU,EAAE,MAAgB;QACpC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,0CAA0C;QAC1C,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEhC,yEAAyE;QACzE,MAAM,UAAU,GAAa,6BAA6B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,EAAU;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,EAAU,EAAE,MAAgB;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,GAAG,CAAmB,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,WAAW,CAAC,MAAgB;QACzC,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CACjC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CACtE,CAAC;QAEF,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,yDAAyD;YACzD,OAAO,IAAI,KAAK,CAAS,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAW,EAAE,CAAW;QAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6CAA6C,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAa,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAa,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAElD,wBAAwB;QACxB,IAAI,UAAU,GAAW,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,wDAAwD;QACxD,qEAAqE;QACrE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAW,EAAE,CAAW;QACxC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6CAA6C,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,IAAI,cAAc,GAAW,CAAC,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,cAAc,IAAI,IAAI,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,KAAe,EACf,CAAS,EACT,IAAqB,EACrB,YAA0B;QAE1B,+FAA+F;QAC/F,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,yDAAyD;QACzD,MAAM,WAAW,GAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,CAAC,MAAM,+BAA+B;gBACtE,cAAc,WAAW,CAAC,MAAM,GAAG,CACpC,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,IAAI,IAAI,KAAK,sCAAe,CAAC,gBAAgB,EAAE,CAAC;YAC9C,4FAA4F;YAC5F,iFAAiF;YACjF,uEAAuE;YACvE,iGAAiG;YACjG,gDAAgD;YAChD,mGAAmG;YACnG,8FAA8F;YAC9F,0FAA0F;YAC1F,MAAM,eAAe,GAAa,6BAA6B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACnF,KAAK,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzE,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,IAAI,UAAU,GAAW,CAAC,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,UAAU,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,sEAAsE;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,IAAI,KAAK,sCAAe,CAAC,UAAU,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrD,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,4DAA4D;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,gCAAgC;QAChC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;CACF;AArOD,sEAqOC"}
1
+ {"version":3,"file":"lvs-vector-pool.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,10 @@ export interface DyNTS_MemoryGuard_Event {
39
39
  rssMb: number;
40
40
  /** External (C++ / Buffer) memória MB-ban. */
41
41
  externalMb: number;
42
+ /** A közelmúlt GC-hányada (GC-ben töltött idő / poll-ablak; 0..1) — a mark-compact-thrash / OOM-precursor jelzője. */
43
+ gcFraction: number;
44
+ /** Mi váltotta ki az esemény-szintet: a heap-% küszöb, a GC-thrash, vagy mindkettő. */
45
+ trigger: 'heap' | 'gc' | 'heap+gc' | 'recovery';
42
46
  /** Esemény időbélyege (ISO). */
43
47
  at: string;
44
48
  }
@@ -54,6 +58,18 @@ export interface DyNTS_MemoryGuard_Config {
54
58
  recoveryMargin?: number;
55
59
  /** Megőrzött események max száma (ring-buffer). Default: 100. */
56
60
  maxHistoryCount?: number;
61
+ /** GC-hányad-küszöb a `warning`-hoz (0..1). Default: 0.40. */
62
+ gcWarningFraction?: number;
63
+ /** GC-hányad-küszöb a `critical`-hoz (0..1). Default: 0.60. */
64
+ gcCriticalFraction?: number;
65
+ /** `uncaughtException` crash-handler telepítése (teljes-részletű error-entry + tiszta exit). Default: true. */
66
+ installCrashHandlers?: boolean;
67
+ /** Tartós critical → tiszta exit (a wrapper újraindít). Default: false. */
68
+ exitOnSustainedCritical?: boolean;
69
+ /** Hány egymást követő critical poll után lép ki. Default: 3. */
70
+ sustainedCriticalPolls?: number;
71
+ /** A graceful-exit kódja. Default: 137. */
72
+ exitCode?: number;
57
73
  /** Hook, amit a `critical` küszöb átlépésekor hívunk (pl. terhelés-dobás). */
58
74
  onCritical?: (event: DyNTS_MemoryGuard_Event) => void;
59
75
  }
@@ -68,10 +84,19 @@ export declare class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
68
84
  private critPct;
69
85
  private recoveryMargin;
70
86
  private maxHistoryCount;
87
+ private gcWarnFraction;
88
+ private gcCritFraction;
89
+ private exitOnSustainedCritical;
90
+ private sustainedCriticalPolls;
91
+ private exitCode;
71
92
  private onCritical?;
72
93
  private readonly history;
73
94
  private peakHeapPct;
74
95
  private peakRssMb;
96
+ private gcObserver;
97
+ private gcEvents;
98
+ private criticalStreak;
99
+ private crashHandler;
75
100
  protected constructor();
76
101
  /**
77
102
  * Elindítja a heap-watchdogot. Idempotens (többszöri hívás no-op). A `config`
@@ -89,6 +114,32 @@ export declare class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
89
114
  private poll;
90
115
  /** Esemény ring-bufferbe + log + (warning/critical esetén) tartós error-sink. */
91
116
  private recordEvent;
117
+ /**
118
+ * A pillanatnyi heap-nyomás (heap-% + GC-hányad → szint) — a FOGYASZTÓK (pl. egy API-controller) ezzel
119
+ * gate-elhetik a nehéz műveleteket (load-shed). Olvasás-only, mellékhatás nélkül; nem igényli az install-t.
120
+ */
121
+ pressure(): {
122
+ level: 'ok' | 'warning' | 'critical';
123
+ heapUsedMb: number;
124
+ heapLimitMb: number;
125
+ heapPct: number;
126
+ rssMb: number;
127
+ gcFraction: number;
128
+ };
129
+ /** `true`, ha a NEHÉZ műveleteket le kell shed-elni (critical nyomás) — a fogyasztó load-shed gate-jének. */
130
+ shouldShedLoad(): boolean;
131
+ /** A GC-hányad az utolsó `pollIntervalMs` ablakban (GC-ms / ablak-ms; clamp [0..1]). Nincs GC-observer → 0. */
132
+ private recentGcFraction;
133
+ /** A 'gc' perf-entry-k figyelője — a GC-ben töltött időt gyűjti a gördülő ablakhoz. Best-effort (nem kritikus). */
134
+ private installGcObserver;
135
+ /**
136
+ * Process-szintű `uncaughtException` crash-handler: a (különben néma) crash ELŐTT TELJES-RÉSZLETŰ error-entry
137
+ * (message + stack + memória-snapshot) az error-sinkbe, majd tiszta exit (a wrapper/restart-policy újraindít).
138
+ * Az `unhandledRejection`-t a base App már rögzíti; ez az eddig-fedetlen `uncaughtException`-t fedi le.
139
+ */
140
+ private installCrashHandlers;
141
+ /** Tartós-critical graceful-exit: végső error-entry + tiszta exit (a wrapper újraindít a kriptikus 134 helyett). */
142
+ private gracefulExit;
92
143
  /** A megőrzött események (legrégebbi → legújabb). Csak olvasásra. */
93
144
  getHistory(): DyNTS_MemoryGuard_Event[];
94
145
  /** Pillanatnyi állapot + csúcsok diagnosztikához (pl. egy status-endpoint). */
@@ -1 +1 @@
1
- {"version":3,"file":"memory-guard.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/memory-guard.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC5C,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,gGAAgG;IAChG,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wFAAwF;AACxF,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACvD;AAED,KAAK,uBAAuB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAIjE,qBAAa,iBAAkB,SAAQ,0BAA0B;IAE/D,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAIvC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,KAAK,CAAqC;IAGlD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,UAAU,CAAC,CAA2C;IAE9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAa;IAE9B,SAAS;IAIT;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,IAAI;IAgChD,yFAAyF;IACzF,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,IAAI;IA6CZ,iFAAiF;IACjF,OAAO,CAAC,WAAW;IA6CnB,qEAAqE;IACrE,UAAU,IAAI,uBAAuB,EAAE;IAIvC,+EAA+E;IAC/E,SAAS,IAAI;QACX,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,uBAAuB,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB;IAUD,kCAAkC;IAClC,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,mBAAmB,IAAI,IAAI;CAY5B"}
1
+ {"version":3,"file":"memory-guard.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/memory-guard.service.ts"],"names":[],"mappings":"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"}