@futdevpro/fsm-dynamo 1.16.38 → 1.16.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (707) hide show
  1. package/.c8rc.json +26 -26
  2. package/.cursor/rules/__assistant_guide.mdc +30 -30
  3. package/.cursor/rules/__main.mdc +64 -64
  4. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  5. package/.cursor/rules/_ag_backend.mdc +16 -16
  6. package/.cursor/rules/_ag_debug.mdc +7 -7
  7. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
  8. package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
  9. package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
  10. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  11. package/.cursor/rules/_ag_frontend.mdc +39 -39
  12. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  13. package/.cursor/rules/_ag_naming.mdc +115 -115
  14. package/.cursor/rules/_ag_running_commands.mdc +4 -4
  15. package/.cursor/rules/_ag_server-controller.mdc +5 -5
  16. package/.cursor/rules/_ag_should-be.mdc +6 -6
  17. package/.cursor/rules/_ag_swearing.mdc +47 -47
  18. package/.cursor/rules/ai_development_guide.md +60 -60
  19. package/.cursor/rules/ai_directives.md +114 -114
  20. package/.cursor/rules/cursor-rules.md +160 -160
  21. package/.cursor/rules/default-command.mdc +464 -464
  22. package/.cursor/rules/error_code_pattern.md +39 -39
  23. package/.cursor/rules/saved rule mcp server use.md +15 -15
  24. package/.dynamo/pipeline.cicd.config.json +157 -157
  25. package/.dynamo/version-bump.config.json +5 -5
  26. package/.github/workflows/main.yml +439 -439
  27. package/.husky/pre-commit +2 -2
  28. package/.vscode/settings.json +11 -11
  29. package/LICENSE +21 -21
  30. package/README.md +701 -693
  31. package/__documentations/2026-05-17-oai-compatible-providers-howto.md +282 -282
  32. package/__documentations/2026-06-01-fr047-fc-foundation.md +48 -48
  33. package/__documentations/2026-06-01-fr047-fr048-code-review.md +153 -153
  34. package/__documentations/2026-06-01-fr047-p1-function-calling-vocabulary.md +75 -75
  35. package/__documentations/2026-06-05-secret-mask-url-cred-any-scheme.md +37 -37
  36. package/__documentations/2026-06-06-ngx-models-merge-completion.md +100 -100
  37. package/__documentations/2026-06-22-dyfm-error-extends-error.md +109 -109
  38. package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +75 -75
  39. package/__documentations/plans/01-naming-convention-DyNM-to-DyFM.md +103 -103
  40. package/__documentations/plans/02-consumer-rollout.md +84 -84
  41. package/_specifications/BACKLOG.md +43 -43
  42. package/build/_modules/crypto/_models/artifact-signature.interface.d.ts +37 -0
  43. package/build/_modules/crypto/_models/artifact-signature.interface.d.ts.map +1 -0
  44. package/build/_modules/crypto/_models/artifact-signature.interface.js +3 -0
  45. package/build/_modules/crypto/_models/artifact-signature.interface.js.map +1 -0
  46. package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts +24 -0
  47. package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts.map +1 -0
  48. package/build/_modules/crypto/_services/artifact-signature.control-service.js +281 -0
  49. package/build/_modules/crypto/_services/artifact-signature.control-service.js.map +1 -0
  50. package/build/_modules/crypto/index.d.ts +2 -0
  51. package/build/_modules/crypto/index.d.ts.map +1 -1
  52. package/build/_modules/crypto/index.js +2 -0
  53. package/build/_modules/crypto/index.js.map +1 -1
  54. package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts +4 -6
  55. package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts.map +1 -1
  56. package/build/_modules/socket/_models/sck-socket-event.control-model.js +9 -7
  57. package/build/_modules/socket/_models/sck-socket-event.control-model.js.map +1 -1
  58. package/eslint.config.js +4 -4
  59. package/nodemon.json +22 -22
  60. package/package.json +306 -306
  61. package/pnpm-workspace.yaml +2 -2
  62. package/scripts/_capture-out/ai-error-capture.json +398 -398
  63. package/scripts/ai-error-capture.js +171 -171
  64. package/scripts/ai-model-registry-check.js +132 -132
  65. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  66. package/scripts/crypto/README.md +113 -113
  67. package/scripts/crypto/demo-crypto-stability.js +120 -120
  68. package/scripts/crypto/stress-test-crypto.js +379 -379
  69. package/scripts/run-coverage-tests.js +24 -24
  70. package/scripts/verify-build-completeness.js +62 -62
  71. package/spec/support/helpers/ts-node-helper.js +9 -9
  72. package/spec/support/jasmine.coverage.json +23 -23
  73. package/spec/support/jasmine.json +24 -24
  74. package/src/_collections/constants/data-sizes.const.ts +40 -40
  75. package/src/_collections/constants/error-defaults.const.ts +20 -20
  76. package/src/_collections/constants/global-settings.const.spec.ts +32 -32
  77. package/src/_collections/constants/global-settings.const.ts +29 -29
  78. package/src/_collections/constants/numbers.const.ts +40 -40
  79. package/src/_collections/constants/times.const.ts +45 -45
  80. package/src/_collections/utils/array.util.spec.ts +306 -306
  81. package/src/_collections/utils/array.util.ts +813 -813
  82. package/src/_collections/utils/async.util.spec.ts +398 -398
  83. package/src/_collections/utils/async.util.ts +208 -208
  84. package/src/_collections/utils/data.util.spec.ts +345 -345
  85. package/src/_collections/utils/data.util.ts +226 -226
  86. package/src/_collections/utils/extract-error-message.util.spec.ts +204 -204
  87. package/src/_collections/utils/extract-error-message.util.ts +223 -223
  88. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  89. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  90. package/src/_collections/utils/log.util.spec.ts +975 -975
  91. package/src/_collections/utils/log.util.ts +667 -667
  92. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  93. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  94. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  95. package/src/_collections/utils/math/math.util.ts +141 -141
  96. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  97. package/src/_collections/utils/math/random.util.ts +139 -139
  98. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  99. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  100. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  101. package/src/_collections/utils/math/vector2.util.ts +653 -653
  102. package/src/_collections/utils/object.util.spec.ts +646 -646
  103. package/src/_collections/utils/object.util.ts +739 -739
  104. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  105. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  106. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  107. package/src/_collections/utils/regex/regex.util.ts +6 -6
  108. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  109. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  110. package/src/_collections/utils/require-env.util.spec.ts +231 -231
  111. package/src/_collections/utils/require-env.util.ts +138 -138
  112. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  113. package/src/_collections/utils/round-list.util.ts +162 -162
  114. package/src/_collections/utils/secret-mask.util.spec.ts +66 -66
  115. package/src/_collections/utils/secret-mask.util.ts +262 -262
  116. package/src/_collections/utils/stack.util.spec.ts +372 -372
  117. package/src/_collections/utils/stack.util.ts +164 -164
  118. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  119. package/src/_collections/utils/string-case.util.ts +362 -362
  120. package/src/_collections/utils/string.util.spec.ts +975 -975
  121. package/src/_collections/utils/string.util.ts +449 -449
  122. package/src/_collections/utils/time.util.spec.ts +50 -50
  123. package/src/_collections/utils/time.util.ts +481 -481
  124. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  125. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  126. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  127. package/src/_collections/utils/utilities.util.ts +68 -68
  128. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  129. package/src/_collections/utils/uuid.util.ts +50 -50
  130. package/src/_enums/basic-property-type.enum.ts +20 -20
  131. package/src/_enums/data-model-type.enum.ts +29 -29
  132. package/src/_enums/environment-flag.enum.ts +28 -28
  133. package/src/_enums/error-level.enum.ts +43 -43
  134. package/src/_enums/error-status.enum.ts +30 -30
  135. package/src/_enums/http/http-call-type.enum.ts +43 -43
  136. package/src/_enums/http/http-event-type.enum.ts +40 -40
  137. package/src/_enums/http/http-response-type.enum.ts +18 -18
  138. package/src/_enums/log-style.enum.ts +44 -44
  139. package/src/_enums/server-connection-status.enum.ts +6 -6
  140. package/src/_enums/time/day-of-week.enum.ts +55 -55
  141. package/src/_enums/time/month.enum.ts +25 -25
  142. package/src/_enums/time/relative-date.enum.ts +24 -24
  143. package/src/_models/control-models/data-model-params.control-model.spec.ts +156 -156
  144. package/src/_models/control-models/data-model-params.control-model.ts +362 -362
  145. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  146. package/src/_models/control-models/data-property-params.control-model.ts +210 -210
  147. package/src/_models/control-models/error.control-model.spec.ts +975 -975
  148. package/src/_models/control-models/error.control-model.ts +1280 -1280
  149. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  150. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  151. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  152. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  153. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  154. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  155. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  156. package/src/_models/control-models/poll.control-model.ts +151 -151
  157. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  158. package/src/_models/control-models/range-value.control-model.ts +289 -289
  159. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  160. package/src/_models/control-models/server-status.control-model.ts +94 -94
  161. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  162. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  163. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  164. package/src/_models/data-models/errors.data-model.ts +200 -200
  165. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  166. package/src/_models/data-models/metadata.data-model.ts +153 -153
  167. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  168. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  169. package/src/_models/interfaces/environment/global-settings.interface.ts +69 -69
  170. package/src/_models/interfaces/error-defaults.interface.ts +18 -18
  171. package/src/_models/interfaces/paged.interface.ts +12 -12
  172. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  173. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  174. package/src/_models/interfaces/search-query.interface.ts +23 -23
  175. package/src/_models/interfaces/search-result.interface.ts +5 -5
  176. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  177. package/src/_models/interfaces/vector2.interface.ts +20 -20
  178. package/src/_models/types/db-filter.type.ts +110 -110
  179. package/src/_models/types/db-sort.type.ts +4 -4
  180. package/src/_models/types/ds-filter.type.ts +68 -68
  181. package/src/_models/types/ds-sort.type.ts +21 -21
  182. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  183. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  184. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  185. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  186. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  187. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  188. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  189. package/src/_modules/ai/_models/ai-config.interface.ts +14 -14
  190. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  191. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  192. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  193. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  194. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  195. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  196. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  197. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  198. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  199. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  200. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  201. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  202. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  203. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  204. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  205. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +135 -135
  206. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  207. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  208. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  209. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  210. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  211. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  212. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  213. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  214. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  215. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  216. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  217. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +40 -40
  218. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  219. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  220. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  221. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  222. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  223. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  224. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +161 -161
  225. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  226. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  227. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  228. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  229. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  230. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  231. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  232. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  233. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +59 -59
  234. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  235. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  236. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  237. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  238. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  239. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  240. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  241. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  242. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +404 -404
  243. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  244. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  245. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  246. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  247. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  248. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  249. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  250. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  251. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  252. package/src/_modules/ai/index.ts +27 -27
  253. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  254. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  255. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  256. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  257. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  258. package/src/_modules/ci-tools/index.ts +8 -8
  259. package/src/_modules/crypto/_collections/crypto-v1.util.ts +225 -225
  260. package/src/_modules/crypto/_collections/crypto-v2.util.ts +331 -331
  261. package/src/_modules/crypto/_collections/crypto-v4.util.ts +702 -702
  262. package/src/_modules/crypto/_collections/crypto.util.db-envelope.spec.ts +51 -51
  263. package/src/_modules/crypto/_collections/crypto.util.edge.spec.ts +605 -605
  264. package/src/_modules/crypto/_collections/crypto.util.extra.spec.ts +642 -642
  265. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  266. package/src/_modules/crypto/_collections/crypto.util.ts +748 -748
  267. package/src/_modules/crypto/_models/artifact-signature.interface.ts +39 -0
  268. package/src/_modules/crypto/_services/artifact-signature.control-service.spec.ts +223 -0
  269. package/src/_modules/crypto/_services/artifact-signature.control-service.ts +395 -0
  270. package/src/_modules/crypto/index.ts +16 -14
  271. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  272. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  273. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  274. package/src/_modules/custom-data/index.ts +10 -10
  275. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  276. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  277. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +473 -473
  278. package/src/_modules/data-handler/_models/data-handler.control-model.ts +486 -486
  279. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  280. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  281. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  282. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  283. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  284. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  285. package/src/_modules/data-handler/index.ts +6 -6
  286. package/src/_modules/game/_collections/audio-mixer.util.spec.ts +198 -198
  287. package/src/_modules/game/_collections/audio-mixer.util.ts +143 -143
  288. package/src/_modules/game/_collections/audio-scale.util.spec.ts +140 -140
  289. package/src/_modules/game/_collections/audio-scale.util.ts +129 -129
  290. package/src/_modules/game/_enums/audio-channel.enum.ts +22 -22
  291. package/src/_modules/game/_models/audio-mixer-config.interface.ts +53 -53
  292. package/src/_modules/game/_models/audio-mixer-settings.interface.ts +38 -38
  293. package/src/_modules/game/_models/audio-mixer-state.interface.ts +36 -36
  294. package/src/_modules/game/_models/audio-mixer.control-model.spec.ts +376 -376
  295. package/src/_modules/game/_models/audio-mixer.control-model.ts +419 -419
  296. package/src/_modules/game/_models/audio-scale.interface.ts +21 -21
  297. package/src/_modules/game/_models/seeded-random-state.interface.ts +21 -21
  298. package/src/_modules/game/_models/seeded-random.control-model.spec.ts +290 -290
  299. package/src/_modules/game/_models/seeded-random.control-model.ts +311 -311
  300. package/src/_modules/game/index.ts +15 -15
  301. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  302. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  303. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  304. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  305. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  306. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  307. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  308. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  309. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  310. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  311. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  312. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  313. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  314. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  315. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  316. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  317. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  318. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  319. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  320. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  321. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  322. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  323. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  324. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  325. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  326. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  327. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  328. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  329. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  330. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  331. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  332. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  333. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  334. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  335. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  336. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  337. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  338. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  339. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  340. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  341. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  342. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  343. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  344. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  345. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  346. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  347. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  348. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  349. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  350. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  351. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  352. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  353. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  354. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  355. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  356. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  357. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  358. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  359. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  360. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  361. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  362. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  363. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  364. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  365. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  366. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  367. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  368. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  369. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  370. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  371. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  372. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  373. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  374. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  375. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  376. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  377. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  378. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  379. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  380. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  381. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  382. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  383. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  384. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  385. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  386. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  387. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  388. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  389. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  390. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  391. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  392. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  393. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  394. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  395. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  396. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  397. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  398. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  399. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  400. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  401. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  402. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  403. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  404. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  405. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  406. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  407. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  408. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  409. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  410. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  411. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  412. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  413. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  414. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  415. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  416. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  417. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  418. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  419. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  420. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  421. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  422. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  423. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  424. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  425. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  426. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  427. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  428. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  429. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  430. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  431. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  432. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  433. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  434. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  435. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  436. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  437. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  438. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  439. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  440. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  441. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  442. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  443. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  444. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  445. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  446. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  447. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  448. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  449. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  450. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  451. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  452. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  453. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  454. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  455. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  456. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  457. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  458. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  459. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  460. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  461. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  462. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  463. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  464. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  465. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  466. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  467. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  468. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  469. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  470. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  471. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  472. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  473. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  474. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  475. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  476. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  477. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  478. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  479. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  480. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  481. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  482. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  483. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  484. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  485. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  486. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  487. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  488. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  489. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  490. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  491. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  492. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  493. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  494. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  495. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  496. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  497. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  498. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  499. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  500. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  501. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  502. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  503. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  504. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  505. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  506. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  507. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  508. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  509. package/src/_modules/location/_collections/loc.util.ts +74 -74
  510. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  511. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  512. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  513. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  514. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  515. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  516. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  517. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  518. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  519. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  520. package/src/_modules/location/index.ts +22 -22
  521. package/src/_modules/messaging/README.md +279 -279
  522. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  523. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  524. package/src/_modules/messaging/_enums/msg-conversation-type.enum.ts +20 -20
  525. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  526. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  527. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  528. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  529. package/src/_modules/messaging/_enums/msg-status.enum.ts +26 -26
  530. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  531. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  532. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  533. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  534. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  535. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  536. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  537. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  538. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  539. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  540. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  541. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  542. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  543. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  544. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  545. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  546. package/src/_modules/messaging/index.ts +28 -28
  547. package/src/_modules/ngx-models/_collections/angular-placeholders.ts +34 -34
  548. package/src/_modules/ngx-models/_collections/button-new-style-settings-presets.const.ts +181 -181
  549. package/src/_modules/ngx-models/_collections/dynamo-global.settings.spec.ts +74 -74
  550. package/src/_modules/ngx-models/_collections/dynamo-global.settings.ts +103 -103
  551. package/src/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.ts +16 -16
  552. package/src/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.ts +14 -14
  553. package/src/_modules/ngx-models/_enums/button-new/button-new-size.enum.ts +16 -16
  554. package/src/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.ts +18 -18
  555. package/src/_modules/ngx-models/_enums/button-type.enum.ts +36 -36
  556. package/src/_modules/ngx-models/_enums/checkbox-label-position.enum.ts +8 -8
  557. package/src/_modules/ngx-models/_enums/container-type.enum.ts +11 -11
  558. package/src/_modules/ngx-models/_enums/errors/error-level.enum.ts +13 -13
  559. package/src/_modules/ngx-models/_enums/errors/error-notification-color.enum.ts +13 -13
  560. package/src/_modules/ngx-models/_enums/errors/error-ui-mode.enum.ts +13 -13
  561. package/src/_modules/ngx-models/_enums/field-appearance.enum.ts +14 -14
  562. package/src/_modules/ngx-models/_enums/field-type.enum.ts +52 -52
  563. package/src/_modules/ngx-models/_enums/file-type.enum.ts +12 -12
  564. package/src/_modules/ngx-models/_enums/flex/flex-layout-align.enum.ts +21 -21
  565. package/src/_modules/ngx-models/_enums/flex/flex-layout.enum.ts +5 -5
  566. package/src/_modules/ngx-models/_enums/form-access.enum.ts +9 -9
  567. package/src/_modules/ngx-models/_enums/form-reset-data.enum.ts +12 -12
  568. package/src/_modules/ngx-models/_enums/form-store-on.enum.ts +9 -9
  569. package/src/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.ts +20 -20
  570. package/src/_modules/ngx-models/_enums/frames/header-item-type.enum.ts +15 -15
  571. package/src/_modules/ngx-models/_enums/frames/header-position.enum.ts +10 -10
  572. package/src/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.ts +13 -13
  573. package/src/_modules/ngx-models/_enums/html/input-types.enum.ts +27 -27
  574. package/src/_modules/ngx-models/_enums/material-color.enum.ts +16 -16
  575. package/src/_modules/ngx-models/_enums/material-tooltip-position.enum.ts +16 -16
  576. package/src/_modules/ngx-models/_enums/preconfigured-field-type.enum.ts +8 -8
  577. package/src/_modules/ngx-models/_enums/storage-type.enum.ts +15 -15
  578. package/src/_modules/ngx-models/_enums/validator-type.enum.ts +9 -9
  579. package/src/_modules/ngx-models/_enums/voice/audio-mime-type.enum.ts +14 -14
  580. package/src/_modules/ngx-models/_enums/voice/voice-provider-type.enum.ts +26 -26
  581. package/src/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.ts +20 -20
  582. package/src/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.ts +37 -37
  583. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.spec.ts +70 -70
  584. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.ts +332 -332
  585. package/src/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.ts +28 -28
  586. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.spec.ts +90 -90
  587. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.ts +134 -134
  588. package/src/_modules/ngx-models/_models/control-models/data-handler.control-model.ts +529 -529
  589. package/src/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.ts +52 -52
  590. package/src/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.ts +34 -34
  591. package/src/_modules/ngx-models/_models/control-models/errors/errors-pojo.spec.ts +86 -86
  592. package/src/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.ts +52 -52
  593. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.spec.ts +109 -109
  594. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.ts +133 -133
  595. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.spec.ts +109 -109
  596. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.ts +160 -160
  597. package/src/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.ts +25 -25
  598. package/src/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.ts +26 -26
  599. package/src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts +42 -42
  600. package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts +35 -35
  601. package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.ts +35 -35
  602. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.ts +85 -85
  603. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +42 -42
  604. package/src/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.ts +40 -40
  605. package/src/_modules/ngx-models/_models/control-models/forms-new/forms-new.spec.ts +179 -179
  606. package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +20 -20
  607. package/src/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.ts +27 -27
  608. package/src/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.ts +24 -24
  609. package/src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts +35 -35
  610. package/src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts +35 -35
  611. package/src/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.ts +46 -46
  612. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts +37 -37
  613. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts +45 -45
  614. package/src/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.ts +30 -30
  615. package/src/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.ts +22 -22
  616. package/src/_modules/ngx-models/_models/control-models/frames/frames-pojo.spec.ts +108 -108
  617. package/src/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.ts +52 -52
  618. package/src/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.ts +40 -40
  619. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.ts +55 -55
  620. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.ts +30 -30
  621. package/src/_modules/ngx-models/_models/control-models/select.control-model.spec.ts +45 -45
  622. package/src/_modules/ngx-models/_models/control-models/select.control-model.ts +28 -28
  623. package/src/_modules/ngx-models/_models/control-models/voice/voice-pojo.spec.ts +111 -111
  624. package/src/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.ts +74 -74
  625. package/src/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.ts +42 -42
  626. package/src/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.ts +37 -37
  627. package/src/_modules/ngx-models/_models/interfaces/button-new-settings.interface.ts +74 -74
  628. package/src/_modules/ngx-models/_models/interfaces/confirm-settings.interface.ts +20 -20
  629. package/src/_modules/ngx-models/_models/interfaces/global-settings.interface.ts +67 -67
  630. package/src/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.ts +40 -40
  631. package/src/_modules/ngx-models/_models/interfaces/storage.service.spec.ts +18 -18
  632. package/src/_modules/ngx-models/_models/interfaces/storage.service.ts +40 -40
  633. package/src/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.ts +19 -19
  634. package/src/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.ts +14 -14
  635. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.ts +14 -14
  636. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.ts +15 -15
  637. package/src/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.ts +18 -18
  638. package/src/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.ts +21 -21
  639. package/src/_modules/ngx-models/_utils/shared.service.spec.ts +7 -7
  640. package/src/_modules/ngx-models/_utils/shared.service.ts +541 -541
  641. package/src/_modules/ngx-models/index.ts +110 -110
  642. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  643. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  644. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  645. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  646. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  647. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  648. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  649. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  650. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  651. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  652. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  653. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  654. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  655. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  656. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  657. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  658. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  659. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  660. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  661. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  662. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  663. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  664. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  665. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  666. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  667. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  668. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  669. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  670. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  671. package/src/_modules/pipe/index.ts +30 -30
  672. package/src/_modules/security/_collections/stored-secret.util.spec.ts +81 -81
  673. package/src/_modules/security/_collections/stored-secret.util.ts +96 -96
  674. package/src/_modules/security/_models/stored-secret.control-model.ts +55 -55
  675. package/src/_modules/security/index.ts +9 -9
  676. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  677. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  678. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  679. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +89 -66
  680. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +185 -172
  681. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  682. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  683. package/src/_modules/socket/index.ts +14 -14
  684. package/src/_modules/state-machine/_models/state-machine-config.interface.ts +19 -19
  685. package/src/_modules/state-machine/_models/state-machine-event.interface.ts +25 -25
  686. package/src/_modules/state-machine/_models/state-machine.control-model.spec.ts +314 -314
  687. package/src/_modules/state-machine/_models/state-machine.control-model.ts +298 -298
  688. package/src/_modules/state-machine/_models/state-transition-result.interface.ts +53 -53
  689. package/src/_modules/state-machine/_models/state-transition.interface.ts +30 -30
  690. package/src/_modules/state-machine/index.ts +6 -6
  691. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  692. package/src/_modules/test/index.ts +5 -5
  693. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  694. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  695. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  696. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  697. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  698. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  699. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  700. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  701. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  702. package/src/_modules/usage/index.ts +11 -11
  703. package/src/index.ts +104 -104
  704. package/tsconfig.app.json +12 -12
  705. package/tsconfig.json +31 -31
  706. package/tsconfig.test.json +16 -16
  707. package/tslint.json +153 -153
@@ -1,48 +1,48 @@
1
- # FR-047 — function-calling foundation in dynamo-fsm (2026-06-01)
2
-
3
- **Parent**: `__agent/feature-requests/FR-047-provider-agnostic-function-calling.md` (+ Phase 1) and `FR-048-per-model-agnostic-settings.md`
4
- **Versions**: `01.15.17` (Phase 1 + registry), `01.15.18` (adultContent), `01.15.19` (export-bug fix)
5
- **Scope**: `src/_modules/ai` (agnostic core + provider model submodules), `package.json` (exports)
6
-
7
- ## What
8
-
9
- The SDK-free agnostic AI core gained the full function-calling vocabulary + a per-model capability registry, plus a reserved per-model settings extension point. No execution logic here — that lives in dynamo-nts (Phase 2+).
10
-
11
- ### 01.15.17 — Phase 1 vocabulary + registry foundation + FR-048 reservation
12
- - Tool models: `DyFM_AI_Tool`, `DyFM_AI_ToolCall`, `DyFM_AI_ToolResult`, `DyFM_AI_ToolHandler`/`DyFM_AI_ToolHandlers`.
13
- - `DyFM_AI_Message` + `DyFM_AI_LLM_Response` gained optional tool fields (`toolCalls`, `toolCallId`, `stopReason`); `DyFM_AI_MessageRole.tool` added.
14
- - `DyFM_AI_ModelType` extended: `Image`, `Audio`.
15
- - Per-model registry: `DyFM_AI_ModelInfo` + `DyFM_AI_ModelCapabilities` + the 5 provider const arrays (`DyFM_OAI_Models`, `DyFM_AAI_Models`, `DyFM_GAI_Models`, `DyFM_LAI_Models`, `DyFM_FdpAI_Models`) — verified 2026-06-01 against official provider docs.
16
- - `DyFM_AI_ModelRegistry_Util` (`findModelInfo`, `modelSupportsTools`) — takes the registry array as a param so the agnostic core imports NO provider submodule (keeps it SDK-free).
17
- - FR-048: `DyFM_AI_ModelSettingsSchema` reserved field on `DyFM_AI_ModelInfo` + thorough docs (per-model settings system; NOT implemented).
18
-
19
- ### 01.15.18 — adultContent capability
20
- - `DyFM_AI_ModelCapabilities.adultContent: boolean` — can the model generate adult / uncensored / NSFW content. For content-routing + age-gating (e.g. Adventor mature mode). All 21 registered models = `false` (mainstream cloud is content-filtered; local/FdpAI conservative / model-dependent).
21
-
22
- ### 01.15.19 — subpath export-bug fix
23
- - `package.json` `exports` + `typesVersions`: `./ai/google` and `./ai/local` pointed at non-existent `_modules/ai/_modules/google`/`local` folders; the real folders are `google-ai`/`local-ai`. Fixed the targets → `@futdevpro/fsm-dynamo/ai/google` and `./ai/local` now resolve. Unblocks dynamo-nts Phase 5 (Google).
24
-
25
- ## Why
26
-
27
- Function calling needed to live in the strategic provider-agnostic layer (not only the legacy OpenAI-specific `FDPNTS_GPT_ControlService`). dynamo-fsm owns the vendor-neutral vocabulary + the model registry; dynamo-nts owns the execution (agent-loop + per-provider translators). This commit set delivers the fsm half so nts can build against it.
28
-
29
- ## Design notes
30
-
31
- - All changes additive/non-breaking except the export-path fix (corrects a latent resolution bug) and the new required `adultContent` capability (all registry consts updated in the same release).
32
- - Capability honesty: `functionCalling` (and `adultContent`) are per-model; unknown/local models default conservative (`false`) — never assume capability.
33
- - Tool-handler runner semantics (never-throw, errors returned as strings to the model) are defined by the type + implemented in dynamo-nts.
34
-
35
- ## Tests
36
-
37
- `pnpm test` (build-base + jasmine): **1302 specs / 0 failures / 70 pending** across the releases. New: `ai-model-registry.util.spec.ts` (findModelInfo + modelSupportsTools, incl. unknown-id → false).
38
-
39
- ## What's NOT here
40
-
41
- - The agent-loop + provider translators (`requestWithTools`, `runToolLoop`, OpenAI/Anthropic/Gemini tool translators) — dynamo-nts (FR-047 Phase 2–5).
42
- - The per-model settings reconciler — FR-048 (reserved only).
43
-
44
- ## Cross-references
45
-
46
- - `__agent/feature-requests/FR-047-*.md`, `FR-048-per-model-agnostic-settings.md`
47
- - `fdp-documentations/guidelines/development/ai-per-model-settings.md`
48
- - dynamo-nts Phase 2+3 (agent-loop + OpenAI translator) — implemented in parallel.
1
+ # FR-047 — function-calling foundation in dynamo-fsm (2026-06-01)
2
+
3
+ **Parent**: `__agent/feature-requests/FR-047-provider-agnostic-function-calling.md` (+ Phase 1) and `FR-048-per-model-agnostic-settings.md`
4
+ **Versions**: `01.15.17` (Phase 1 + registry), `01.15.18` (adultContent), `01.15.19` (export-bug fix)
5
+ **Scope**: `src/_modules/ai` (agnostic core + provider model submodules), `package.json` (exports)
6
+
7
+ ## What
8
+
9
+ The SDK-free agnostic AI core gained the full function-calling vocabulary + a per-model capability registry, plus a reserved per-model settings extension point. No execution logic here — that lives in dynamo-nts (Phase 2+).
10
+
11
+ ### 01.15.17 — Phase 1 vocabulary + registry foundation + FR-048 reservation
12
+ - Tool models: `DyFM_AI_Tool`, `DyFM_AI_ToolCall`, `DyFM_AI_ToolResult`, `DyFM_AI_ToolHandler`/`DyFM_AI_ToolHandlers`.
13
+ - `DyFM_AI_Message` + `DyFM_AI_LLM_Response` gained optional tool fields (`toolCalls`, `toolCallId`, `stopReason`); `DyFM_AI_MessageRole.tool` added.
14
+ - `DyFM_AI_ModelType` extended: `Image`, `Audio`.
15
+ - Per-model registry: `DyFM_AI_ModelInfo` + `DyFM_AI_ModelCapabilities` + the 5 provider const arrays (`DyFM_OAI_Models`, `DyFM_AAI_Models`, `DyFM_GAI_Models`, `DyFM_LAI_Models`, `DyFM_FdpAI_Models`) — verified 2026-06-01 against official provider docs.
16
+ - `DyFM_AI_ModelRegistry_Util` (`findModelInfo`, `modelSupportsTools`) — takes the registry array as a param so the agnostic core imports NO provider submodule (keeps it SDK-free).
17
+ - FR-048: `DyFM_AI_ModelSettingsSchema` reserved field on `DyFM_AI_ModelInfo` + thorough docs (per-model settings system; NOT implemented).
18
+
19
+ ### 01.15.18 — adultContent capability
20
+ - `DyFM_AI_ModelCapabilities.adultContent: boolean` — can the model generate adult / uncensored / NSFW content. For content-routing + age-gating (e.g. Adventor mature mode). All 21 registered models = `false` (mainstream cloud is content-filtered; local/FdpAI conservative / model-dependent).
21
+
22
+ ### 01.15.19 — subpath export-bug fix
23
+ - `package.json` `exports` + `typesVersions`: `./ai/google` and `./ai/local` pointed at non-existent `_modules/ai/_modules/google`/`local` folders; the real folders are `google-ai`/`local-ai`. Fixed the targets → `@futdevpro/fsm-dynamo/ai/google` and `./ai/local` now resolve. Unblocks dynamo-nts Phase 5 (Google).
24
+
25
+ ## Why
26
+
27
+ Function calling needed to live in the strategic provider-agnostic layer (not only the legacy OpenAI-specific `FDPNTS_GPT_ControlService`). dynamo-fsm owns the vendor-neutral vocabulary + the model registry; dynamo-nts owns the execution (agent-loop + per-provider translators). This commit set delivers the fsm half so nts can build against it.
28
+
29
+ ## Design notes
30
+
31
+ - All changes additive/non-breaking except the export-path fix (corrects a latent resolution bug) and the new required `adultContent` capability (all registry consts updated in the same release).
32
+ - Capability honesty: `functionCalling` (and `adultContent`) are per-model; unknown/local models default conservative (`false`) — never assume capability.
33
+ - Tool-handler runner semantics (never-throw, errors returned as strings to the model) are defined by the type + implemented in dynamo-nts.
34
+
35
+ ## Tests
36
+
37
+ `pnpm test` (build-base + jasmine): **1302 specs / 0 failures / 70 pending** across the releases. New: `ai-model-registry.util.spec.ts` (findModelInfo + modelSupportsTools, incl. unknown-id → false).
38
+
39
+ ## What's NOT here
40
+
41
+ - The agent-loop + provider translators (`requestWithTools`, `runToolLoop`, OpenAI/Anthropic/Gemini tool translators) — dynamo-nts (FR-047 Phase 2–5).
42
+ - The per-model settings reconciler — FR-048 (reserved only).
43
+
44
+ ## Cross-references
45
+
46
+ - `__agent/feature-requests/FR-047-*.md`, `FR-048-per-model-agnostic-settings.md`
47
+ - `fdp-documentations/guidelines/development/ai-per-model-settings.md`
48
+ - dynamo-nts Phase 2+3 (agent-loop + OpenAI translator) — implemented in parallel.
@@ -1,153 +1,153 @@
1
- # 2026-06-01 — Code Review: FR-047 + FR-048 (provider-agnostic AI vocabulary)
2
-
3
- ## Summary
4
-
5
- Code review futott a `dynamo-fsm` master branchen az utolsó 3 commit-ra (FR-047 + FR-048) + 1 uncommitted root pipeline-config deletion-re. Az effort-szint **high**: 7 finder angle × ≤6 candidate → 1-vote verify (recall-biased) → top-10 finding.
6
-
7
- ### Scope
8
-
9
- - **Range**: `HEAD~3..HEAD` (master, no upstream divergence)
10
- - **Commits**:
11
- - `08e8859` feat(ai): FR-047 P1 provider-agnostic function-calling vocabulary + per-model registry; FR-048 settings-schema reservation
12
- - `de1da9b` feat(ai): add adultContent (uncensored/NSFW) per-model capability
13
- - `6a4ce9c` fix(ai): FR-047 P5 — correct ./ai/google + ./ai/local subpath export targets
14
- - **Uncommitted**: `pipeline.cicd.config.json` (root) -128 sor delete (dmc migracio takaritas)
15
- - **Source-diff stat**: 30 fajl, 940 inserciol / 12 deletes (build/ artifact kizarva)
16
-
17
- ### Tool
18
-
19
- A `/code-review` skill (high effort), local execution. Phase 1 — 7 párhuzamos finder agent (Explore type):
20
- - **3 correctness angle**: line-by-line scan, removed-behavior auditor, cross-file tracer
21
- - **3 cleanup angle**: reuse, simplification, efficiency
22
- - **1 altitude angle**: depth check
23
-
24
- Phase 2 — 1-vote verifier batch agent (recall-biased), 17 candidate → 16 survivor (1 REFUTED).
25
-
26
- ## Top-10 Finding (ranked most-severe first)
27
-
28
- A teljes JSON output `__documentations/2026-06-01-fr047-fr048-code-review-findings.json`-ben. Itt a Hunglish summary:
29
-
30
- ### 1. `gptImage_1` enum-entry registry-mentes (CONFIRMED)
31
-
32
- **Fajl**: `src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts:19`
33
-
34
- A `DyFM_OAI_Model.gptImage_1 = 'gpt-image-1'` enum-ben szerepel + komment szerint **"current"** (nem deprecated), de a `DyFM_OAI_Models` registry-ben NEM kap entry-t.
35
-
36
- **Failure scenario**: `modelSupportsTools(DyFM_OAI_Models, DyFM_OAI_Model.gptImage_1)` → false (a util `?? false`-szal default-ol). `findModelInfo` undefined. Az image generation tools-on-keresztul rutalas silent-skip.
37
-
38
- ### 2. `claude_3_5_sonnet_latest` enum + nincs registry (CONFIRMED)
39
-
40
- **Fajl**: `src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts:11`
41
-
42
- A `DyFM_AAI_Models` registry csak 3 GA entry-t tartalmaz; a deprecated `claude_3_5_sonnet_latest` az enum-ben van, registry-bol kimaradt.
43
-
44
- **Failure scenario**: Default `DyFM_AI_CallSettings` ami a `claude_3_5_sonnet_latest`-et hasznalja → `modelSupportsTools` false → tool-calling silent-disable egy meg-mindig-elo API modelen.
45
-
46
- ### 3. `gemini_1_5_pro_latest` enum + nincs registry (CONFIRMED)
47
-
48
- **Fajl**: `src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts:11`
49
-
50
- Ugyanaz a minta mint #2 — google oldalon.
51
-
52
- ### 4. `modelSupportsTools` silent-false unknown-ID-ra (CONFIRMED)
53
-
54
- **Fajl**: `src/_modules/ai/_collections/ai-model-registry.util.ts:27`
55
-
56
- `Array.find()` → `?? false` minta. Tipo, deprecated, vagy live-but-unregistered model esten → `false` warn/log nelkul.
57
-
58
- **Failure scenario**: Diagnozis nelkul lehetetlen kideriteni miert nem hivodik a tool-routing. Egy `{ strict: true }` mode vagy `DyFM_Log.warn` flegging hianyzik.
59
-
60
- ### 5. Legacy + active enum-tagok keveredtek (CONFIRMED)
61
-
62
- **Fajlok**: `aai/gai/oai-model.enum.ts`
63
-
64
- Csak komment kulonbozteti meg az active es retired model-ID-kat. Az enum public API-jaban mindketto egyformanak latszik. A #1-3 ennek tuneti megnyilvanulasa.
65
-
66
- **Tervezet fix**: `*-legacy.enum.ts` kulon fajl, vagy minden retired enum-tag mellé `@deprecated` JSDoc tag.
67
-
68
- ### 6. `DyFM_AI_Message.content` required, de tool-calls esetn ures (CONFIRMED)
69
-
70
- **Fajl**: `src/_modules/ai/_models/ai-message.interface.ts:6`
71
-
72
- `content: string` (non-optional). Mikor `role='assistant'` + `toolCalls` populalva → a content semantically ures OpenAI/Anthropic/Gemini API-knal.
73
-
74
- **Failure scenario**: Caller hard-coded `content: ''` workaround minden tool-call message-en; downstream "content empty" validator visszadobhatja a tool-request message-eket.
75
-
76
- ### 7. `settingsSchema` ghost contract (CONFIRMED)
77
-
78
- **Fajl**: `src/_modules/ai/_models/ai-model-info.interface.ts:37`
79
-
80
- `settingsSchema?: DyFM_AI_ModelSettingsSchema` reserved minden modelen, de a 21 registry entry kozul EGYIK SEM populalja.
81
-
82
- **Failure scenario**: Phase 2 (FR-048) reconciler reading `settingsSchema` undefined → "no constraints" semantikat olvas a "constraints not yet modeled" helyett → silent-accept `temperature` parameter Opus 4.7+ hivason → HTTP 400 hard-fail.
83
-
84
- ### 8. `finishReason` vs `stopReason` dual-field (PLAUSIBLE)
85
-
86
- **Fajl**: `src/_modules/ai/_models/ai-llm-response.interface.ts:16`
87
-
88
- Mindketto optional. Legacy `finishReason` + new `stopReason`. Doc-mentes melyik az authoritative.
89
-
90
- **Failure scenario**: Provider translator csak `stopReason`-t populalja → legacy consumer `finishReason === 'tool_use'`-t check-el → condition false → tool flow miss.
91
-
92
- ### 9. Tool-vocab interfaces 0-caller (PLAUSIBLE)
93
-
94
- **Fajl**: `src/_modules/ai/_models/ai-tool.interface.ts`
95
-
96
- Uj `DyFM_AI_Tool`, `DyFM_AI_ToolCall`, `DyFM_AI_ToolResult`, `DyFM_AI_ToolHandler` exportalt **dynamo-fsm-bol**, de **ZERO caller** sajat-projekten belul. Az abstrakcio nem validalt.
97
-
98
- **Failure scenario**: A shape lehet hogy nem fer ra a 5 provider mind-egyikere (OpenAI `type:'function'` wrapper, Anthropic `input_schema`, Gemini `functionDeclarations`). FR-048 mid-flight API redesign-kenyszer.
99
-
100
- ### 10. Root pipeline.cicd.config.json -128 sor (CONFIRMED, uncommitted)
101
-
102
- **Fajl**: `pipeline.cicd.config.json` (root, delete)
103
-
104
- A `.dynamo/pipeline.cicd.config.json` fully fedi, DE barmely external workflow / GitHub Actions / script ami hardcoded `./pipeline.cicd.config.json` ref-fel → 404.
105
-
106
- ## Levágott (cleanup-class — kovetkezo iteracio)
107
-
108
- A skill rule: "Correctness bugs always outrank cleanup and altitude findings when the output cap forces a cut." Ezert a top-10 keret felett kihagyott 6 valid finding:
109
-
110
- | # | Fajl | Issue |
111
- |---|---|---|
112
- | 11 | `src/_modules/ai/index.ts` | No meta-barrel a 5 provider model-registry-re; Phase 2 hardcodes 5 imports |
113
- | 12 | `ai-model-capabilities.interface.ts` + 5 const-fajl | Capability matrix copy-paste 21 model × 9 mező — N+1 edit kotelezo |
114
- | 13 | `ai-model-capabilities.interface.ts:31` | `adultContent` policy-flag feature-capabilities matrix-ban; jovobeli policy flags scatterolnek |
115
- | 14 | `package.json` exports | Naming inconsistency: `anthropic` (no hyphen) vs `open-ai/google-ai/local-ai/fdp-ai` |
116
- | 15 | `ai-model-registry.util.ts:17` | O(N) `Array.find` registry lookup vs O(1) Map |
117
- | 16 | Provider `index.ts` (×5) | Tree-shake loss: barrel pulls all 5 const-tables (~519 lines) for single-provider consumer |
118
-
119
- ## REFUTED (1 db)
120
-
121
- | # | Fajl | Reason |
122
- |---|---|---|
123
- | - | `oai-models.const.ts:235` gptImage_2 missing maxOutputTokens | Verified: `maxOutputTokens?` optional a `DyFM_AI_ModelInfo` interface-en, no type-level contract violation, no crash |
124
-
125
- ## Strukturalis tanulsag (kozos pattern a #1-5 mogott)
126
-
127
- A top-10 elso 5 finding mind UGYANARRA a strukturalis hiba-mintara mutat: **az enum-tagok es a registry-entries nincsenek szinkronban**. Tervezet javitas:
128
-
129
- **Opció A** (defensive): minden enum-entry-nek legyen registry-entry, deprecated-eket `*-legacy.enum.ts`-be kulonitsd el.
130
-
131
- **Opció B** (strict-mode): `modelSupportsTools(models, id, { strict: true })` — unknown ID-ra throw vagy `DyFM_Log.warn`.
132
-
133
- **Opció C** (build-time validation): TS guard-test ami compile-time verifikalja hogy minden enum-tag registry-entry-vel jar.
134
-
135
- Mind a 3 megoldhato — a #1-5 + #11 (meta-barrel) kombo eseten egy follow-up commit lefedi.
136
-
137
- ## Stat
138
-
139
- | | |
140
- |---|---|
141
- | **Specs** | 1302 spec / 0 failure (TypeScript + jasmine) |
142
- | **TS compile** | ✓ (0 error) |
143
- | **Diff scope** | 30 src fajl / 940 ins / 12 del (build/ kizarva) |
144
- | **Finder agents** | 7 (parallel) |
145
- | **Verifier agents** | 1 (batch over 17 candidates) |
146
- | **Output cap** | 10 finding (skill default) |
147
- | **Time** | ~15 min full pipeline |
148
-
149
- ## Reference
150
-
151
- - Skill: `code-review` (high effort)
152
- - Skill instrukciok: 3 correctness + 3 cleanup + 1 altitude angle × ≤6 candidates per angle; 1-vote verify per candidate; recall-biased PLAUSIBLE default; REFUTED only constructible from code
153
- - Workflow: lokal jasmine `npx jasmine --config=spec/support/jasmine.json` → 1302/0
1
+ # 2026-06-01 — Code Review: FR-047 + FR-048 (provider-agnostic AI vocabulary)
2
+
3
+ ## Summary
4
+
5
+ Code review futott a `dynamo-fsm` master branchen az utolsó 3 commit-ra (FR-047 + FR-048) + 1 uncommitted root pipeline-config deletion-re. Az effort-szint **high**: 7 finder angle × ≤6 candidate → 1-vote verify (recall-biased) → top-10 finding.
6
+
7
+ ### Scope
8
+
9
+ - **Range**: `HEAD~3..HEAD` (master, no upstream divergence)
10
+ - **Commits**:
11
+ - `08e8859` feat(ai): FR-047 P1 provider-agnostic function-calling vocabulary + per-model registry; FR-048 settings-schema reservation
12
+ - `de1da9b` feat(ai): add adultContent (uncensored/NSFW) per-model capability
13
+ - `6a4ce9c` fix(ai): FR-047 P5 — correct ./ai/google + ./ai/local subpath export targets
14
+ - **Uncommitted**: `pipeline.cicd.config.json` (root) -128 sor delete (dmc migracio takaritas)
15
+ - **Source-diff stat**: 30 fajl, 940 inserciol / 12 deletes (build/ artifact kizarva)
16
+
17
+ ### Tool
18
+
19
+ A `/code-review` skill (high effort), local execution. Phase 1 — 7 párhuzamos finder agent (Explore type):
20
+ - **3 correctness angle**: line-by-line scan, removed-behavior auditor, cross-file tracer
21
+ - **3 cleanup angle**: reuse, simplification, efficiency
22
+ - **1 altitude angle**: depth check
23
+
24
+ Phase 2 — 1-vote verifier batch agent (recall-biased), 17 candidate → 16 survivor (1 REFUTED).
25
+
26
+ ## Top-10 Finding (ranked most-severe first)
27
+
28
+ A teljes JSON output `__documentations/2026-06-01-fr047-fr048-code-review-findings.json`-ben. Itt a Hunglish summary:
29
+
30
+ ### 1. `gptImage_1` enum-entry registry-mentes (CONFIRMED)
31
+
32
+ **Fajl**: `src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts:19`
33
+
34
+ A `DyFM_OAI_Model.gptImage_1 = 'gpt-image-1'` enum-ben szerepel + komment szerint **"current"** (nem deprecated), de a `DyFM_OAI_Models` registry-ben NEM kap entry-t.
35
+
36
+ **Failure scenario**: `modelSupportsTools(DyFM_OAI_Models, DyFM_OAI_Model.gptImage_1)` → false (a util `?? false`-szal default-ol). `findModelInfo` undefined. Az image generation tools-on-keresztul rutalas silent-skip.
37
+
38
+ ### 2. `claude_3_5_sonnet_latest` enum + nincs registry (CONFIRMED)
39
+
40
+ **Fajl**: `src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts:11`
41
+
42
+ A `DyFM_AAI_Models` registry csak 3 GA entry-t tartalmaz; a deprecated `claude_3_5_sonnet_latest` az enum-ben van, registry-bol kimaradt.
43
+
44
+ **Failure scenario**: Default `DyFM_AI_CallSettings` ami a `claude_3_5_sonnet_latest`-et hasznalja → `modelSupportsTools` false → tool-calling silent-disable egy meg-mindig-elo API modelen.
45
+
46
+ ### 3. `gemini_1_5_pro_latest` enum + nincs registry (CONFIRMED)
47
+
48
+ **Fajl**: `src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts:11`
49
+
50
+ Ugyanaz a minta mint #2 — google oldalon.
51
+
52
+ ### 4. `modelSupportsTools` silent-false unknown-ID-ra (CONFIRMED)
53
+
54
+ **Fajl**: `src/_modules/ai/_collections/ai-model-registry.util.ts:27`
55
+
56
+ `Array.find()` → `?? false` minta. Tipo, deprecated, vagy live-but-unregistered model esten → `false` warn/log nelkul.
57
+
58
+ **Failure scenario**: Diagnozis nelkul lehetetlen kideriteni miert nem hivodik a tool-routing. Egy `{ strict: true }` mode vagy `DyFM_Log.warn` flegging hianyzik.
59
+
60
+ ### 5. Legacy + active enum-tagok keveredtek (CONFIRMED)
61
+
62
+ **Fajlok**: `aai/gai/oai-model.enum.ts`
63
+
64
+ Csak komment kulonbozteti meg az active es retired model-ID-kat. Az enum public API-jaban mindketto egyformanak latszik. A #1-3 ennek tuneti megnyilvanulasa.
65
+
66
+ **Tervezet fix**: `*-legacy.enum.ts` kulon fajl, vagy minden retired enum-tag mellé `@deprecated` JSDoc tag.
67
+
68
+ ### 6. `DyFM_AI_Message.content` required, de tool-calls esetn ures (CONFIRMED)
69
+
70
+ **Fajl**: `src/_modules/ai/_models/ai-message.interface.ts:6`
71
+
72
+ `content: string` (non-optional). Mikor `role='assistant'` + `toolCalls` populalva → a content semantically ures OpenAI/Anthropic/Gemini API-knal.
73
+
74
+ **Failure scenario**: Caller hard-coded `content: ''` workaround minden tool-call message-en; downstream "content empty" validator visszadobhatja a tool-request message-eket.
75
+
76
+ ### 7. `settingsSchema` ghost contract (CONFIRMED)
77
+
78
+ **Fajl**: `src/_modules/ai/_models/ai-model-info.interface.ts:37`
79
+
80
+ `settingsSchema?: DyFM_AI_ModelSettingsSchema` reserved minden modelen, de a 21 registry entry kozul EGYIK SEM populalja.
81
+
82
+ **Failure scenario**: Phase 2 (FR-048) reconciler reading `settingsSchema` undefined → "no constraints" semantikat olvas a "constraints not yet modeled" helyett → silent-accept `temperature` parameter Opus 4.7+ hivason → HTTP 400 hard-fail.
83
+
84
+ ### 8. `finishReason` vs `stopReason` dual-field (PLAUSIBLE)
85
+
86
+ **Fajl**: `src/_modules/ai/_models/ai-llm-response.interface.ts:16`
87
+
88
+ Mindketto optional. Legacy `finishReason` + new `stopReason`. Doc-mentes melyik az authoritative.
89
+
90
+ **Failure scenario**: Provider translator csak `stopReason`-t populalja → legacy consumer `finishReason === 'tool_use'`-t check-el → condition false → tool flow miss.
91
+
92
+ ### 9. Tool-vocab interfaces 0-caller (PLAUSIBLE)
93
+
94
+ **Fajl**: `src/_modules/ai/_models/ai-tool.interface.ts`
95
+
96
+ Uj `DyFM_AI_Tool`, `DyFM_AI_ToolCall`, `DyFM_AI_ToolResult`, `DyFM_AI_ToolHandler` exportalt **dynamo-fsm-bol**, de **ZERO caller** sajat-projekten belul. Az abstrakcio nem validalt.
97
+
98
+ **Failure scenario**: A shape lehet hogy nem fer ra a 5 provider mind-egyikere (OpenAI `type:'function'` wrapper, Anthropic `input_schema`, Gemini `functionDeclarations`). FR-048 mid-flight API redesign-kenyszer.
99
+
100
+ ### 10. Root pipeline.cicd.config.json -128 sor (CONFIRMED, uncommitted)
101
+
102
+ **Fajl**: `pipeline.cicd.config.json` (root, delete)
103
+
104
+ A `.dynamo/pipeline.cicd.config.json` fully fedi, DE barmely external workflow / GitHub Actions / script ami hardcoded `./pipeline.cicd.config.json` ref-fel → 404.
105
+
106
+ ## Levágott (cleanup-class — kovetkezo iteracio)
107
+
108
+ A skill rule: "Correctness bugs always outrank cleanup and altitude findings when the output cap forces a cut." Ezert a top-10 keret felett kihagyott 6 valid finding:
109
+
110
+ | # | Fajl | Issue |
111
+ |---|---|---|
112
+ | 11 | `src/_modules/ai/index.ts` | No meta-barrel a 5 provider model-registry-re; Phase 2 hardcodes 5 imports |
113
+ | 12 | `ai-model-capabilities.interface.ts` + 5 const-fajl | Capability matrix copy-paste 21 model × 9 mező — N+1 edit kotelezo |
114
+ | 13 | `ai-model-capabilities.interface.ts:31` | `adultContent` policy-flag feature-capabilities matrix-ban; jovobeli policy flags scatterolnek |
115
+ | 14 | `package.json` exports | Naming inconsistency: `anthropic` (no hyphen) vs `open-ai/google-ai/local-ai/fdp-ai` |
116
+ | 15 | `ai-model-registry.util.ts:17` | O(N) `Array.find` registry lookup vs O(1) Map |
117
+ | 16 | Provider `index.ts` (×5) | Tree-shake loss: barrel pulls all 5 const-tables (~519 lines) for single-provider consumer |
118
+
119
+ ## REFUTED (1 db)
120
+
121
+ | # | Fajl | Reason |
122
+ |---|---|---|
123
+ | - | `oai-models.const.ts:235` gptImage_2 missing maxOutputTokens | Verified: `maxOutputTokens?` optional a `DyFM_AI_ModelInfo` interface-en, no type-level contract violation, no crash |
124
+
125
+ ## Strukturalis tanulsag (kozos pattern a #1-5 mogott)
126
+
127
+ A top-10 elso 5 finding mind UGYANARRA a strukturalis hiba-mintara mutat: **az enum-tagok es a registry-entries nincsenek szinkronban**. Tervezet javitas:
128
+
129
+ **Opció A** (defensive): minden enum-entry-nek legyen registry-entry, deprecated-eket `*-legacy.enum.ts`-be kulonitsd el.
130
+
131
+ **Opció B** (strict-mode): `modelSupportsTools(models, id, { strict: true })` — unknown ID-ra throw vagy `DyFM_Log.warn`.
132
+
133
+ **Opció C** (build-time validation): TS guard-test ami compile-time verifikalja hogy minden enum-tag registry-entry-vel jar.
134
+
135
+ Mind a 3 megoldhato — a #1-5 + #11 (meta-barrel) kombo eseten egy follow-up commit lefedi.
136
+
137
+ ## Stat
138
+
139
+ | | |
140
+ |---|---|
141
+ | **Specs** | 1302 spec / 0 failure (TypeScript + jasmine) |
142
+ | **TS compile** | ✓ (0 error) |
143
+ | **Diff scope** | 30 src fajl / 940 ins / 12 del (build/ kizarva) |
144
+ | **Finder agents** | 7 (parallel) |
145
+ | **Verifier agents** | 1 (batch over 17 candidates) |
146
+ | **Output cap** | 10 finding (skill default) |
147
+ | **Time** | ~15 min full pipeline |
148
+
149
+ ## Reference
150
+
151
+ - Skill: `code-review` (high effort)
152
+ - Skill instrukciok: 3 correctness + 3 cleanup + 1 altitude angle × ≤6 candidates per angle; 1-vote verify per candidate; recall-biased PLAUSIBLE default; REFUTED only constructible from code
153
+ - Workflow: lokal jasmine `npx jasmine --config=spec/support/jasmine.json` → 1302/0
@@ -1,75 +1,75 @@
1
- # FR-047 P1 — Provider-agnostic function-calling vocabulary + per-model registry (2026-06-01)
2
-
3
- **Commit**: `08e8859` — v01.15.16 → v01.15.17 (published)
4
- **Parent**: `__agent/feature-requests/FR-047-phase-1-tool-abstraction.md` (master: `FR-047-provider-agnostic-function-calling.md`)
5
- **Pattern**: `fdp-documentations/guidelines/development/ai-function-calling.md`
6
- **Also in this commit**: FR-048 settings-schema reservation (`FR-048-per-model-agnostic-settings.md`)
7
-
8
- ## What
9
-
10
- Adds the SDK-free, vendor-neutral vocabulary for LLM function calling to `@futdevpro/fsm-dynamo/ai`,
11
- plus a per-model capability registry. After this, the execution layer (`nts-dynamo`, FR-047 P2+P3)
12
- can speak one tool shape across providers.
13
-
14
- ## Why
15
-
16
- Function calling existed ONLY in the legacy OpenAI-only `FDPNTS_GPT_ControlService.getAnswerWithTools`
17
- (nts-fdp-templates). The strategic provider-agnostic layer had ZERO tool support: `DyFM_AI_Message`
18
- was `{role,content}`, `DyFM_AI_LLM_Response` had no `toolCalls`, and the `functionCalling` provider-
19
- capability flag was dead. This commit is the foundation for moving tool use into the strategic layer.
20
-
21
- ## Design
22
-
23
- ### Tool models (`src/_modules/ai/_models/`)
24
- ```ts
25
- DyFM_AI_Tool // { name, description, parameters: object /* JSON Schema */ }
26
- DyFM_AI_ToolCall // { id, name, arguments: Record<string,unknown> } (normalized; OpenAI JSON-string parsed at boundary)
27
- DyFM_AI_ToolResult // { toolCallId, content: string, isError? }
28
- DyFM_AI_ToolHandler / DyFM_AI_ToolHandlers // lifted from legacy FDPNTS_GPT_ToolHandler(s)
29
- ```
30
-
31
- ### Additive extensions (non-breaking, optional fields)
32
- - `DyFM_AI_Message` + `toolCalls?` (assistant tool-call turn) + `toolCallId?` (tool-result message)
33
- - `DyFM_AI_LLM_Response` + `toolCalls?` + `stopReason?`
34
- - `DyFM_AI_MessageRole.tool`
35
- - `DyFM_AI_ModelType` + `Image`, `Audio`
36
-
37
- ### Per-model registry
38
- - `DyFM_AI_ModelInfo` (id / provider / modelType / capabilities / contextWindow / maxOutputTokens
39
- + lifecycle: status / successorId / sunsetDate + displayName / tier)
40
- - `DyFM_AI_ModelCapabilities` (functionCalling / vision / streaming / jsonMode / audioInput /
41
- audioOutput / imageGeneration / embeddings)
42
- - Per-provider const arrays: `DyFM_OAI_Models`, `DyFM_AAI_Models`, `DyFM_GAI_Models`, `DyFM_LAI_Models`,
43
- `DyFM_FdpAI_Models` (2026-06 verified data — see `[[reference_ai_provider_model_registry_research]]`)
44
- - `DyFM_AI_ModelRegistry_Util.findModelInfo(models, id)` / `modelSupportsTools(models, id)` — the
45
- registry array is **passed in**, so the agnostic `./ai` core imports NO provider submodule
46
- (keeps it SDK-free). Unknown id → `false` (honesty).
47
-
48
- ### FR-048 reservation (space left, NOT implemented)
49
- - `DyFM_AI_ModelSettingsSchema` + `DyFM_AI_SettingConstraint` (reserved placeholder)
50
- - `DyFM_AI_ModelInfo.settingsSchema?` + thorough doc on `DyFM_AI_CallSettings` — the per-model
51
- "which params does this model accept/reject" system. Sibling of capabilities. See `ai-per-model-settings.md`.
52
-
53
- ## Spec coverage
54
-
55
- `src/_modules/ai/_collections/ai-model-registry.util.spec.ts` — findModelInfo (known/unknown) +
56
- modelSupportsTools (tool-capable chat / embedding=false / unknown=false). `pnpm test`: **1302/0** (70 pending).
57
-
58
- ## Optional-SDK discipline
59
-
60
- The agnostic `./ai` index imports no provider submodule → `import '@futdevpro/fsm-dynamo/ai'` pulls
61
- zero AI SDKs. Provider model data lives under `./ai/<provider>` subpaths.
62
-
63
- ## What's NOT in this commit
64
-
65
- - The agent-loop / execution (nts-dynamo P2+P3 — `requestWithTools`).
66
- - `adultContent` capability (added later, `de1da9b`, v01.15.18).
67
- - `./ai/google` + `./ai/local` subpath export-bug fix (FR-047 P5, `6a4ce9c`).
68
- - FR-048 runtime reconciler (reserved only).
69
-
70
- ## Cross-references
71
-
72
- - `fdp-documentations/guidelines/development/ai-function-calling.md` (pattern)
73
- - `fdp-documentations/guidelines/development/ai-per-model-settings.md` (FR-048)
74
- - `NPM-packages/dynamo-nts/__documentations/2026-06-01-fr047-p2p3-function-calling.md` (the consumer)
75
- - legacy `NPM-packages/fdp-templates-nts/src/_modules/gpt/_services/gpt-handler.control-service.ts`
1
+ # FR-047 P1 — Provider-agnostic function-calling vocabulary + per-model registry (2026-06-01)
2
+
3
+ **Commit**: `08e8859` — v01.15.16 → v01.15.17 (published)
4
+ **Parent**: `__agent/feature-requests/FR-047-phase-1-tool-abstraction.md` (master: `FR-047-provider-agnostic-function-calling.md`)
5
+ **Pattern**: `fdp-documentations/guidelines/development/ai-function-calling.md`
6
+ **Also in this commit**: FR-048 settings-schema reservation (`FR-048-per-model-agnostic-settings.md`)
7
+
8
+ ## What
9
+
10
+ Adds the SDK-free, vendor-neutral vocabulary for LLM function calling to `@futdevpro/fsm-dynamo/ai`,
11
+ plus a per-model capability registry. After this, the execution layer (`nts-dynamo`, FR-047 P2+P3)
12
+ can speak one tool shape across providers.
13
+
14
+ ## Why
15
+
16
+ Function calling existed ONLY in the legacy OpenAI-only `FDPNTS_GPT_ControlService.getAnswerWithTools`
17
+ (nts-fdp-templates). The strategic provider-agnostic layer had ZERO tool support: `DyFM_AI_Message`
18
+ was `{role,content}`, `DyFM_AI_LLM_Response` had no `toolCalls`, and the `functionCalling` provider-
19
+ capability flag was dead. This commit is the foundation for moving tool use into the strategic layer.
20
+
21
+ ## Design
22
+
23
+ ### Tool models (`src/_modules/ai/_models/`)
24
+ ```ts
25
+ DyFM_AI_Tool // { name, description, parameters: object /* JSON Schema */ }
26
+ DyFM_AI_ToolCall // { id, name, arguments: Record<string,unknown> } (normalized; OpenAI JSON-string parsed at boundary)
27
+ DyFM_AI_ToolResult // { toolCallId, content: string, isError? }
28
+ DyFM_AI_ToolHandler / DyFM_AI_ToolHandlers // lifted from legacy FDPNTS_GPT_ToolHandler(s)
29
+ ```
30
+
31
+ ### Additive extensions (non-breaking, optional fields)
32
+ - `DyFM_AI_Message` + `toolCalls?` (assistant tool-call turn) + `toolCallId?` (tool-result message)
33
+ - `DyFM_AI_LLM_Response` + `toolCalls?` + `stopReason?`
34
+ - `DyFM_AI_MessageRole.tool`
35
+ - `DyFM_AI_ModelType` + `Image`, `Audio`
36
+
37
+ ### Per-model registry
38
+ - `DyFM_AI_ModelInfo` (id / provider / modelType / capabilities / contextWindow / maxOutputTokens
39
+ + lifecycle: status / successorId / sunsetDate + displayName / tier)
40
+ - `DyFM_AI_ModelCapabilities` (functionCalling / vision / streaming / jsonMode / audioInput /
41
+ audioOutput / imageGeneration / embeddings)
42
+ - Per-provider const arrays: `DyFM_OAI_Models`, `DyFM_AAI_Models`, `DyFM_GAI_Models`, `DyFM_LAI_Models`,
43
+ `DyFM_FdpAI_Models` (2026-06 verified data — see `[[reference_ai_provider_model_registry_research]]`)
44
+ - `DyFM_AI_ModelRegistry_Util.findModelInfo(models, id)` / `modelSupportsTools(models, id)` — the
45
+ registry array is **passed in**, so the agnostic `./ai` core imports NO provider submodule
46
+ (keeps it SDK-free). Unknown id → `false` (honesty).
47
+
48
+ ### FR-048 reservation (space left, NOT implemented)
49
+ - `DyFM_AI_ModelSettingsSchema` + `DyFM_AI_SettingConstraint` (reserved placeholder)
50
+ - `DyFM_AI_ModelInfo.settingsSchema?` + thorough doc on `DyFM_AI_CallSettings` — the per-model
51
+ "which params does this model accept/reject" system. Sibling of capabilities. See `ai-per-model-settings.md`.
52
+
53
+ ## Spec coverage
54
+
55
+ `src/_modules/ai/_collections/ai-model-registry.util.spec.ts` — findModelInfo (known/unknown) +
56
+ modelSupportsTools (tool-capable chat / embedding=false / unknown=false). `pnpm test`: **1302/0** (70 pending).
57
+
58
+ ## Optional-SDK discipline
59
+
60
+ The agnostic `./ai` index imports no provider submodule → `import '@futdevpro/fsm-dynamo/ai'` pulls
61
+ zero AI SDKs. Provider model data lives under `./ai/<provider>` subpaths.
62
+
63
+ ## What's NOT in this commit
64
+
65
+ - The agent-loop / execution (nts-dynamo P2+P3 — `requestWithTools`).
66
+ - `adultContent` capability (added later, `de1da9b`, v01.15.18).
67
+ - `./ai/google` + `./ai/local` subpath export-bug fix (FR-047 P5, `6a4ce9c`).
68
+ - FR-048 runtime reconciler (reserved only).
69
+
70
+ ## Cross-references
71
+
72
+ - `fdp-documentations/guidelines/development/ai-function-calling.md` (pattern)
73
+ - `fdp-documentations/guidelines/development/ai-per-model-settings.md` (FR-048)
74
+ - `NPM-packages/dynamo-nts/__documentations/2026-06-01-fr047-p2p3-function-calling.md` (the consumer)
75
+ - legacy `NPM-packages/fdp-templates-nts/src/_modules/gpt/_services/gpt-handler.control-service.ts`
@@ -1,37 +1,37 @@
1
- # 2026-06-05 — DyFM_SecretMask: url-cred pattern BARMELY scheme-re (+ elso spec)
2
-
3
- ## Problema
4
-
5
- A `DyFM_SECRET_PATTERNS` `url-cred` pattern-je CSAK `http(s)://user:pass@`-t fogott
6
- (`/\b(https?:\/\/)([^/\s:@]+):([^\s@]+)@/g`). A `mongodb://user:pass@host` / `postgres://` /
7
- `redis://` connection-string jelszo — a leggyakoribb DB-secret-leak vektor a CI-logokban, es
8
- az FDP-stack MongoDB-t hasznal — NEM maszkolodott (runtime-igazolt gap a `fdp pipeline` secret-
9
- maszkolas bekotesekor).
10
-
11
- ## Fix
12
-
13
- - A scheme kiszelesitve BARMELY URL-protokollra: `https?` → `[a-z][a-z0-9+.-]*` + `i` flag.
14
- - A user-resz `+` → `*` (ures user is): a `redis://:password@host` (username nelkuli, csak jelszo)
15
- valos redis/DB auth-format.
16
- - A `user:pass@` szerkezet KOTELEZO marad → nincs false-positive: sima URL (`https://h:8080/path`,
17
- port-tal, de `@` nelkul) NEM matchel; a `mongodb://db:27017/app` (nincs cred) NEM matchel.
18
- - A `$1` (scheme) + host megorzodik: `mongodb://[redacted-url-cred]@db:27017/app`.
19
-
20
- Uj regex: `/\b([a-z][a-z0-9+.-]*:\/\/)([^/\s:@]*):([^\s@]+)@/gi`
21
-
22
- ## Test (uj — eddig NEM volt spec a maskerhez)
23
-
24
- Uj `secret-mask.util.spec.ts` (16 assert):
25
- - url-cred: http/https/mongodb/postgres/redis + case-insensitive + ures-user;
26
- no-false-positive (port / cred-less URL);
27
- - token-regresszio: github-pat + env-style-secret;
28
- - non-secret: commit-SHA + verzio erintetlen;
29
- - `DyFM_maskSecretsDeep`: rekurziv string-maszkolas + strukturа-megorzes.
30
-
31
- `npx tsc` (exit 0) + `npx jasmine`: **1443 specs, 0 failures**, 72 pending.
32
-
33
- ## Consumer
34
-
35
- Az `fdp-cli` (`pipeline-notify` Discord + `pipeline-report` Overseer-POST) mar hasznalja a
36
- `DyFM_maskSecrets`/`DyFM_maskSecretsDeep`-et; a broadened url-cred a kovetkezo fsm-dynamo
37
- dep-bump utan lep eletbe a fleeten (nem fleet-bump-olunk kezzel).
1
+ # 2026-06-05 — DyFM_SecretMask: url-cred pattern BARMELY scheme-re (+ elso spec)
2
+
3
+ ## Problema
4
+
5
+ A `DyFM_SECRET_PATTERNS` `url-cred` pattern-je CSAK `http(s)://user:pass@`-t fogott
6
+ (`/\b(https?:\/\/)([^/\s:@]+):([^\s@]+)@/g`). A `mongodb://user:pass@host` / `postgres://` /
7
+ `redis://` connection-string jelszo — a leggyakoribb DB-secret-leak vektor a CI-logokban, es
8
+ az FDP-stack MongoDB-t hasznal — NEM maszkolodott (runtime-igazolt gap a `fdp pipeline` secret-
9
+ maszkolas bekotesekor).
10
+
11
+ ## Fix
12
+
13
+ - A scheme kiszelesitve BARMELY URL-protokollra: `https?` → `[a-z][a-z0-9+.-]*` + `i` flag.
14
+ - A user-resz `+` → `*` (ures user is): a `redis://:password@host` (username nelkuli, csak jelszo)
15
+ valos redis/DB auth-format.
16
+ - A `user:pass@` szerkezet KOTELEZO marad → nincs false-positive: sima URL (`https://h:8080/path`,
17
+ port-tal, de `@` nelkul) NEM matchel; a `mongodb://db:27017/app` (nincs cred) NEM matchel.
18
+ - A `$1` (scheme) + host megorzodik: `mongodb://[redacted-url-cred]@db:27017/app`.
19
+
20
+ Uj regex: `/\b([a-z][a-z0-9+.-]*:\/\/)([^/\s:@]*):([^\s@]+)@/gi`
21
+
22
+ ## Test (uj — eddig NEM volt spec a maskerhez)
23
+
24
+ Uj `secret-mask.util.spec.ts` (16 assert):
25
+ - url-cred: http/https/mongodb/postgres/redis + case-insensitive + ures-user;
26
+ no-false-positive (port / cred-less URL);
27
+ - token-regresszio: github-pat + env-style-secret;
28
+ - non-secret: commit-SHA + verzio erintetlen;
29
+ - `DyFM_maskSecretsDeep`: rekurziv string-maszkolas + strukturа-megorzes.
30
+
31
+ `npx tsc` (exit 0) + `npx jasmine`: **1443 specs, 0 failures**, 72 pending.
32
+
33
+ ## Consumer
34
+
35
+ Az `fdp-cli` (`pipeline-notify` Discord + `pipeline-report` Overseer-POST) mar hasznalja a
36
+ `DyFM_maskSecrets`/`DyFM_maskSecretsDeep`-et; a broadened url-cred a kovetkezo fsm-dynamo
37
+ dep-bump utan lep eletbe a fleeten (nem fleet-bump-olunk kezzel).