@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.
- package/.c8rc.json +26 -26
- package/.cursor/rules/__assistant_guide.mdc +30 -30
- package/.cursor/rules/__main.mdc +64 -64
- package/.cursor/rules/_ag_backend-structure.mdc +85 -85
- package/.cursor/rules/_ag_backend.mdc +16 -16
- package/.cursor/rules/_ag_debug.mdc +7 -7
- package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
- package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
- package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
- package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
- package/.cursor/rules/_ag_frontend.mdc +39 -39
- package/.cursor/rules/_ag_import-rules.mdc +44 -44
- package/.cursor/rules/_ag_naming.mdc +115 -115
- package/.cursor/rules/_ag_running_commands.mdc +4 -4
- package/.cursor/rules/_ag_server-controller.mdc +5 -5
- package/.cursor/rules/_ag_should-be.mdc +6 -6
- package/.cursor/rules/_ag_swearing.mdc +47 -47
- package/.cursor/rules/ai_development_guide.md +60 -60
- package/.cursor/rules/ai_directives.md +114 -114
- package/.cursor/rules/cursor-rules.md +160 -160
- package/.cursor/rules/default-command.mdc +464 -464
- package/.cursor/rules/error_code_pattern.md +39 -39
- package/.cursor/rules/saved rule mcp server use.md +15 -15
- package/.dynamo/pipeline.cicd.config.json +157 -157
- package/.dynamo/version-bump.config.json +5 -5
- package/.github/workflows/main.yml +439 -439
- package/.husky/pre-commit +2 -2
- package/.vscode/settings.json +11 -11
- package/LICENSE +21 -21
- package/README.md +701 -693
- package/__documentations/2026-05-17-oai-compatible-providers-howto.md +282 -282
- package/__documentations/2026-06-01-fr047-fc-foundation.md +48 -48
- package/__documentations/2026-06-01-fr047-fr048-code-review.md +153 -153
- package/__documentations/2026-06-01-fr047-p1-function-calling-vocabulary.md +75 -75
- package/__documentations/2026-06-05-secret-mask-url-cred-any-scheme.md +37 -37
- package/__documentations/2026-06-06-ngx-models-merge-completion.md +100 -100
- package/__documentations/2026-06-22-dyfm-error-extends-error.md +109 -109
- package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +75 -75
- package/__documentations/plans/01-naming-convention-DyNM-to-DyFM.md +103 -103
- package/__documentations/plans/02-consumer-rollout.md +84 -84
- package/_specifications/BACKLOG.md +43 -43
- package/build/_modules/crypto/_models/artifact-signature.interface.d.ts +37 -0
- package/build/_modules/crypto/_models/artifact-signature.interface.d.ts.map +1 -0
- package/build/_modules/crypto/_models/artifact-signature.interface.js +3 -0
- package/build/_modules/crypto/_models/artifact-signature.interface.js.map +1 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts +24 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts.map +1 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.js +281 -0
- package/build/_modules/crypto/_services/artifact-signature.control-service.js.map +1 -0
- package/build/_modules/crypto/index.d.ts +2 -0
- package/build/_modules/crypto/index.d.ts.map +1 -1
- package/build/_modules/crypto/index.js +2 -0
- package/build/_modules/crypto/index.js.map +1 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts +4 -6
- package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.js +9 -7
- package/build/_modules/socket/_models/sck-socket-event.control-model.js.map +1 -1
- package/eslint.config.js +4 -4
- package/nodemon.json +22 -22
- package/package.json +306 -306
- package/pnpm-workspace.yaml +2 -2
- package/scripts/_capture-out/ai-error-capture.json +398 -398
- package/scripts/ai-error-capture.js +171 -171
- package/scripts/ai-model-registry-check.js +132 -132
- package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
- package/scripts/crypto/README.md +113 -113
- package/scripts/crypto/demo-crypto-stability.js +120 -120
- package/scripts/crypto/stress-test-crypto.js +379 -379
- package/scripts/run-coverage-tests.js +24 -24
- package/scripts/verify-build-completeness.js +62 -62
- package/spec/support/helpers/ts-node-helper.js +9 -9
- package/spec/support/jasmine.coverage.json +23 -23
- package/spec/support/jasmine.json +24 -24
- package/src/_collections/constants/data-sizes.const.ts +40 -40
- package/src/_collections/constants/error-defaults.const.ts +20 -20
- package/src/_collections/constants/global-settings.const.spec.ts +32 -32
- package/src/_collections/constants/global-settings.const.ts +29 -29
- package/src/_collections/constants/numbers.const.ts +40 -40
- package/src/_collections/constants/times.const.ts +45 -45
- package/src/_collections/utils/array.util.spec.ts +306 -306
- package/src/_collections/utils/array.util.ts +813 -813
- package/src/_collections/utils/async.util.spec.ts +398 -398
- package/src/_collections/utils/async.util.ts +208 -208
- package/src/_collections/utils/data.util.spec.ts +345 -345
- package/src/_collections/utils/data.util.ts +226 -226
- package/src/_collections/utils/extract-error-message.util.spec.ts +204 -204
- package/src/_collections/utils/extract-error-message.util.ts +223 -223
- package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
- package/src/_collections/utils/json-error-helper.util.ts +301 -301
- package/src/_collections/utils/log.util.spec.ts +975 -975
- package/src/_collections/utils/log.util.ts +667 -667
- package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
- package/src/_collections/utils/math/box-bounds.util.ts +183 -183
- package/src/_collections/utils/math/math.util.spec.ts +94 -94
- package/src/_collections/utils/math/math.util.ts +141 -141
- package/src/_collections/utils/math/random.util.spec.ts +82 -82
- package/src/_collections/utils/math/random.util.ts +139 -139
- package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
- package/src/_collections/utils/math/trigonometry.util.ts +102 -102
- package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
- package/src/_collections/utils/math/vector2.util.ts +653 -653
- package/src/_collections/utils/object.util.spec.ts +646 -646
- package/src/_collections/utils/object.util.ts +739 -739
- package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
- package/src/_collections/utils/regex/password-regex.util.ts +65 -65
- package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
- package/src/_collections/utils/regex/regex.util.ts +6 -6
- package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
- package/src/_collections/utils/regex/username-regex.util.ts +35 -35
- package/src/_collections/utils/require-env.util.spec.ts +231 -231
- package/src/_collections/utils/require-env.util.ts +138 -138
- package/src/_collections/utils/round-list.util.spec.ts +79 -79
- package/src/_collections/utils/round-list.util.ts +162 -162
- package/src/_collections/utils/secret-mask.util.spec.ts +66 -66
- package/src/_collections/utils/secret-mask.util.ts +262 -262
- package/src/_collections/utils/stack.util.spec.ts +372 -372
- package/src/_collections/utils/stack.util.ts +164 -164
- package/src/_collections/utils/string-case.util.spec.ts +441 -441
- package/src/_collections/utils/string-case.util.ts +362 -362
- package/src/_collections/utils/string.util.spec.ts +975 -975
- package/src/_collections/utils/string.util.ts +449 -449
- package/src/_collections/utils/time.util.spec.ts +50 -50
- package/src/_collections/utils/time.util.ts +481 -481
- package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
- package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
- package/src/_collections/utils/utilities.util.spec.ts +201 -201
- package/src/_collections/utils/utilities.util.ts +68 -68
- package/src/_collections/utils/uuid.util.spec.ts +30 -30
- package/src/_collections/utils/uuid.util.ts +50 -50
- package/src/_enums/basic-property-type.enum.ts +20 -20
- package/src/_enums/data-model-type.enum.ts +29 -29
- package/src/_enums/environment-flag.enum.ts +28 -28
- package/src/_enums/error-level.enum.ts +43 -43
- package/src/_enums/error-status.enum.ts +30 -30
- package/src/_enums/http/http-call-type.enum.ts +43 -43
- package/src/_enums/http/http-event-type.enum.ts +40 -40
- package/src/_enums/http/http-response-type.enum.ts +18 -18
- package/src/_enums/log-style.enum.ts +44 -44
- package/src/_enums/server-connection-status.enum.ts +6 -6
- package/src/_enums/time/day-of-week.enum.ts +55 -55
- package/src/_enums/time/month.enum.ts +25 -25
- package/src/_enums/time/relative-date.enum.ts +24 -24
- package/src/_models/control-models/data-model-params.control-model.spec.ts +156 -156
- package/src/_models/control-models/data-model-params.control-model.ts +362 -362
- package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
- package/src/_models/control-models/data-property-params.control-model.ts +210 -210
- package/src/_models/control-models/error.control-model.spec.ts +975 -975
- package/src/_models/control-models/error.control-model.ts +1280 -1280
- package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
- package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
- package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
- package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
- package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
- package/src/_models/control-models/http/http-response.model-base.ts +57 -57
- package/src/_models/control-models/poll.control-model.spec.ts +63 -63
- package/src/_models/control-models/poll.control-model.ts +151 -151
- package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
- package/src/_models/control-models/range-value.control-model.ts +289 -289
- package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
- package/src/_models/control-models/server-status.control-model.ts +94 -94
- package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
- package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
- package/src/_models/data-models/errors.data-model.spec.ts +71 -71
- package/src/_models/data-models/errors.data-model.ts +200 -200
- package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
- package/src/_models/data-models/metadata.data-model.ts +153 -153
- package/src/_models/interfaces/box-bounds.interface.ts +7 -7
- package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
- package/src/_models/interfaces/environment/global-settings.interface.ts +69 -69
- package/src/_models/interfaces/error-defaults.interface.ts +18 -18
- package/src/_models/interfaces/paged.interface.ts +12 -12
- package/src/_models/interfaces/random-weight.interface.ts +7 -7
- package/src/_models/interfaces/route-settings.interface.ts +15 -15
- package/src/_models/interfaces/search-query.interface.ts +23 -23
- package/src/_models/interfaces/search-result.interface.ts +5 -5
- package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
- package/src/_models/interfaces/vector2.interface.ts +20 -20
- package/src/_models/types/db-filter.type.ts +110 -110
- package/src/_models/types/db-sort.type.ts +4 -4
- package/src/_models/types/ds-filter.type.ts +68 -68
- package/src/_models/types/ds-sort.type.ts +21 -21
- package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
- package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
- package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
- package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
- package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
- package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
- package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
- package/src/_modules/ai/_models/ai-config.interface.ts +14 -14
- package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
- package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
- package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
- package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
- package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
- package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
- package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
- package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
- package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
- package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
- package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
- package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
- package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
- package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
- package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
- package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +135 -135
- package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
- package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
- package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
- package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
- package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
- package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
- package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
- package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
- package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +40 -40
- package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
- package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +161 -161
- package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
- package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
- package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
- package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
- package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
- package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +59 -59
- package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
- package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
- package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
- package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
- package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
- package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +404 -404
- package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
- package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
- package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
- package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
- package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
- package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
- package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
- package/src/_modules/ai/index.ts +27 -27
- package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
- package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
- package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
- package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
- package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
- package/src/_modules/ci-tools/index.ts +8 -8
- package/src/_modules/crypto/_collections/crypto-v1.util.ts +225 -225
- package/src/_modules/crypto/_collections/crypto-v2.util.ts +331 -331
- package/src/_modules/crypto/_collections/crypto-v4.util.ts +702 -702
- package/src/_modules/crypto/_collections/crypto.util.db-envelope.spec.ts +51 -51
- package/src/_modules/crypto/_collections/crypto.util.edge.spec.ts +605 -605
- package/src/_modules/crypto/_collections/crypto.util.extra.spec.ts +642 -642
- package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
- package/src/_modules/crypto/_collections/crypto.util.ts +748 -748
- package/src/_modules/crypto/_models/artifact-signature.interface.ts +39 -0
- package/src/_modules/crypto/_services/artifact-signature.control-service.spec.ts +223 -0
- package/src/_modules/crypto/_services/artifact-signature.control-service.ts +395 -0
- package/src/_modules/crypto/index.ts +16 -14
- package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
- package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
- package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
- package/src/_modules/custom-data/index.ts +10 -10
- package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
- package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
- package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +473 -473
- package/src/_modules/data-handler/_models/data-handler.control-model.ts +486 -486
- package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
- package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
- package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
- package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
- package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
- package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
- package/src/_modules/data-handler/index.ts +6 -6
- package/src/_modules/game/_collections/audio-mixer.util.spec.ts +198 -198
- package/src/_modules/game/_collections/audio-mixer.util.ts +143 -143
- package/src/_modules/game/_collections/audio-scale.util.spec.ts +140 -140
- package/src/_modules/game/_collections/audio-scale.util.ts +129 -129
- package/src/_modules/game/_enums/audio-channel.enum.ts +22 -22
- package/src/_modules/game/_models/audio-mixer-config.interface.ts +53 -53
- package/src/_modules/game/_models/audio-mixer-settings.interface.ts +38 -38
- package/src/_modules/game/_models/audio-mixer-state.interface.ts +36 -36
- package/src/_modules/game/_models/audio-mixer.control-model.spec.ts +376 -376
- package/src/_modules/game/_models/audio-mixer.control-model.ts +419 -419
- package/src/_modules/game/_models/audio-scale.interface.ts +21 -21
- package/src/_modules/game/_models/seeded-random-state.interface.ts +21 -21
- package/src/_modules/game/_models/seeded-random.control-model.spec.ts +290 -290
- package/src/_modules/game/_models/seeded-random.control-model.ts +311 -311
- package/src/_modules/game/index.ts +15 -15
- package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
- package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
- package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
- package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
- package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
- package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
- package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
- package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
- package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
- package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
- package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
- package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
- package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
- package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
- package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
- package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
- package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
- package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
- package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
- package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
- package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
- package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
- package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
- package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
- package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
- package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
- package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
- package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
- package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
- package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
- package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
- package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
- package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
- package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
- package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
- package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
- package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
- package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
- package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
- package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
- package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
- package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
- package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
- package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
- package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
- package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
- package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
- package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
- package/src/_modules/location/_collections/loc.util.ts +74 -74
- package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
- package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
- package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
- package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
- package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
- package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
- package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
- package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
- package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
- package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
- package/src/_modules/location/index.ts +22 -22
- package/src/_modules/messaging/README.md +279 -279
- package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
- package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
- package/src/_modules/messaging/_enums/msg-conversation-type.enum.ts +20 -20
- package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
- package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
- package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
- package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
- package/src/_modules/messaging/_enums/msg-status.enum.ts +26 -26
- package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
- package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
- package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
- package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
- package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
- package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
- package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
- package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
- package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
- package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
- package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
- package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
- package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
- package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
- package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
- package/src/_modules/messaging/_modules/agent/index.ts +8 -8
- package/src/_modules/messaging/index.ts +28 -28
- package/src/_modules/ngx-models/_collections/angular-placeholders.ts +34 -34
- package/src/_modules/ngx-models/_collections/button-new-style-settings-presets.const.ts +181 -181
- package/src/_modules/ngx-models/_collections/dynamo-global.settings.spec.ts +74 -74
- package/src/_modules/ngx-models/_collections/dynamo-global.settings.ts +103 -103
- package/src/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.ts +14 -14
- package/src/_modules/ngx-models/_enums/button-new/button-new-size.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.ts +18 -18
- package/src/_modules/ngx-models/_enums/button-type.enum.ts +36 -36
- package/src/_modules/ngx-models/_enums/checkbox-label-position.enum.ts +8 -8
- package/src/_modules/ngx-models/_enums/container-type.enum.ts +11 -11
- package/src/_modules/ngx-models/_enums/errors/error-level.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/errors/error-notification-color.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/errors/error-ui-mode.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/field-appearance.enum.ts +14 -14
- package/src/_modules/ngx-models/_enums/field-type.enum.ts +52 -52
- package/src/_modules/ngx-models/_enums/file-type.enum.ts +12 -12
- package/src/_modules/ngx-models/_enums/flex/flex-layout-align.enum.ts +21 -21
- package/src/_modules/ngx-models/_enums/flex/flex-layout.enum.ts +5 -5
- package/src/_modules/ngx-models/_enums/form-access.enum.ts +9 -9
- package/src/_modules/ngx-models/_enums/form-reset-data.enum.ts +12 -12
- package/src/_modules/ngx-models/_enums/form-store-on.enum.ts +9 -9
- package/src/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.ts +20 -20
- package/src/_modules/ngx-models/_enums/frames/header-item-type.enum.ts +15 -15
- package/src/_modules/ngx-models/_enums/frames/header-position.enum.ts +10 -10
- package/src/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.ts +13 -13
- package/src/_modules/ngx-models/_enums/html/input-types.enum.ts +27 -27
- package/src/_modules/ngx-models/_enums/material-color.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/material-tooltip-position.enum.ts +16 -16
- package/src/_modules/ngx-models/_enums/preconfigured-field-type.enum.ts +8 -8
- package/src/_modules/ngx-models/_enums/storage-type.enum.ts +15 -15
- package/src/_modules/ngx-models/_enums/validator-type.enum.ts +9 -9
- package/src/_modules/ngx-models/_enums/voice/audio-mime-type.enum.ts +14 -14
- package/src/_modules/ngx-models/_enums/voice/voice-provider-type.enum.ts +26 -26
- package/src/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.ts +20 -20
- package/src/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.ts +37 -37
- package/src/_modules/ngx-models/_models/control-models/button-params.control-model.spec.ts +70 -70
- package/src/_modules/ngx-models/_models/control-models/button-params.control-model.ts +332 -332
- package/src/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.ts +28 -28
- package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.spec.ts +90 -90
- package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.ts +134 -134
- package/src/_modules/ngx-models/_models/control-models/data-handler.control-model.ts +529 -529
- package/src/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.ts +52 -52
- package/src/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.ts +34 -34
- package/src/_modules/ngx-models/_models/control-models/errors/errors-pojo.spec.ts +86 -86
- package/src/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.ts +52 -52
- package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.spec.ts +109 -109
- package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.ts +133 -133
- package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.spec.ts +109 -109
- package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.ts +160 -160
- package/src/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.ts +25 -25
- package/src/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.ts +26 -26
- package/src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts +42 -42
- package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.ts +85 -85
- package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +42 -42
- package/src/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.ts +40 -40
- package/src/_modules/ngx-models/_models/control-models/forms-new/forms-new.spec.ts +179 -179
- package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +20 -20
- package/src/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.ts +27 -27
- package/src/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.ts +24 -24
- package/src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts +35 -35
- package/src/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.ts +46 -46
- package/src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts +37 -37
- package/src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts +45 -45
- package/src/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.ts +30 -30
- package/src/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.ts +22 -22
- package/src/_modules/ngx-models/_models/control-models/frames/frames-pojo.spec.ts +108 -108
- package/src/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.ts +52 -52
- package/src/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.ts +40 -40
- package/src/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.ts +55 -55
- package/src/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.ts +30 -30
- package/src/_modules/ngx-models/_models/control-models/select.control-model.spec.ts +45 -45
- package/src/_modules/ngx-models/_models/control-models/select.control-model.ts +28 -28
- package/src/_modules/ngx-models/_models/control-models/voice/voice-pojo.spec.ts +111 -111
- package/src/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.ts +74 -74
- package/src/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.ts +42 -42
- package/src/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.ts +37 -37
- package/src/_modules/ngx-models/_models/interfaces/button-new-settings.interface.ts +74 -74
- package/src/_modules/ngx-models/_models/interfaces/confirm-settings.interface.ts +20 -20
- package/src/_modules/ngx-models/_models/interfaces/global-settings.interface.ts +67 -67
- package/src/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.ts +40 -40
- package/src/_modules/ngx-models/_models/interfaces/storage.service.spec.ts +18 -18
- package/src/_modules/ngx-models/_models/interfaces/storage.service.ts +40 -40
- package/src/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.ts +19 -19
- package/src/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.ts +14 -14
- package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.ts +14 -14
- package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.ts +15 -15
- package/src/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.ts +18 -18
- package/src/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.ts +21 -21
- package/src/_modules/ngx-models/_utils/shared.service.spec.ts +7 -7
- package/src/_modules/ngx-models/_utils/shared.service.ts +541 -541
- package/src/_modules/ngx-models/index.ts +110 -110
- package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
- package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
- package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
- package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
- package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
- package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
- package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
- package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
- package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
- package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
- package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
- package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
- package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
- package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
- package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
- package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
- package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
- package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
- package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
- package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
- package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
- package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
- package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
- package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
- package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
- package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
- package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
- package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
- package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
- package/src/_modules/pipe/index.ts +30 -30
- package/src/_modules/security/_collections/stored-secret.util.spec.ts +81 -81
- package/src/_modules/security/_collections/stored-secret.util.ts +96 -96
- package/src/_modules/security/_models/stored-secret.control-model.ts +55 -55
- package/src/_modules/security/index.ts +9 -9
- package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
- package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
- package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
- package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +89 -66
- package/src/_modules/socket/_models/sck-socket-event.control-model.ts +185 -172
- package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
- package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
- package/src/_modules/socket/index.ts +14 -14
- package/src/_modules/state-machine/_models/state-machine-config.interface.ts +19 -19
- package/src/_modules/state-machine/_models/state-machine-event.interface.ts +25 -25
- package/src/_modules/state-machine/_models/state-machine.control-model.spec.ts +314 -314
- package/src/_modules/state-machine/_models/state-machine.control-model.ts +298 -298
- package/src/_modules/state-machine/_models/state-transition-result.interface.ts +53 -53
- package/src/_modules/state-machine/_models/state-transition.interface.ts +30 -30
- package/src/_modules/state-machine/index.ts +6 -6
- package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
- package/src/_modules/test/index.ts +5 -5
- package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
- package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
- package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
- package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
- package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
- package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
- package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
- package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
- package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
- package/src/_modules/usage/index.ts +11 -11
- package/src/index.ts +104 -104
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +31 -31
- package/tsconfig.test.json +16 -16
- 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).
|