@futdevpro/nts-dynamo 1.15.151 → 1.15.153
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/.copilot/patterns.json +7 -7
- 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 +190 -190
- package/.dynamo/version-bump.config.json +5 -5
- package/.github/workflows/main.yml +438 -438
- package/.husky/pre-commit +3 -3
- package/.vscode/settings.json +10 -10
- package/HOWTO.md +15 -15
- package/LICENSE +21 -21
- package/README.md +780 -754
- package/__documentations/2026-04-28-logs-module.md +49 -49
- package/__documentations/2026-05-17-oai-compatible-providers.md +229 -229
- package/__documentations/2026-05-17-static-client-serving-howto.md +144 -144
- package/__documentations/2026-06-01-fr041-cors-middleware.md +96 -96
- package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +81 -81
- package/__documentations/2026-06-15-fr193-memory-guard.md +73 -73
- package/__documentations/2026-08-08-fr292-app-version-header.md +38 -38
- package/__documentations/2026-08-14-field-encryption-mongoose-document-spread.md +124 -124
- package/__documentations/2026-08-18-artifact-compiler.md +46 -46
- package/__documentations/2026-08-18-mongo-transaction-control-service.md +82 -82
- package/__documentations/2026-08-18-standalone-account-security-and-privacy-bedrock.md +132 -132
- package/__documentations/2026-08-21-distributed-rate-limit-bfr-ctm-010.md +59 -59
- package/__documentations/2026-08-22-npm-token-state-classifier.md +92 -92
- package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
- package/__documentations/plans/BEDROCK-HYPERPLAN.md +95 -95
- package/_specifications/BACKLOG.md +92 -92
- package/_specifications/TODO.md +15 -15
- package/_specifications/agent.md +138 -138
- package/build/_modules/server/index.d.ts +4 -0
- package/build/_modules/server/index.d.ts.map +1 -1
- package/build/_modules/server/index.js +4 -0
- package/build/_modules/server/index.js.map +1 -1
- package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.d.ts +14 -0
- package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.d.ts.map +1 -0
- package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.js +18 -0
- package/build/_modules/server/server-status/db-readiness-probe-code.type-enum.js.map +1 -0
- package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.d.ts +8 -0
- package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.d.ts.map +1 -0
- package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.js +12 -0
- package/build/_modules/server/server-status/db-readiness-probe-stage.type-enum.js.map +1 -0
- package/build/_modules/server/server-status/db-readiness-probe.control-service.d.ts +14 -0
- package/build/_modules/server/server-status/db-readiness-probe.control-service.d.ts.map +1 -0
- package/build/_modules/server/server-status/db-readiness-probe.control-service.js +126 -0
- package/build/_modules/server/server-status/db-readiness-probe.control-service.js.map +1 -0
- package/build/_modules/server/server-status/db-readiness-probe.interface.d.ts +18 -0
- package/build/_modules/server/server-status/db-readiness-probe.interface.d.ts.map +1 -0
- package/build/_modules/server/server-status/db-readiness-probe.interface.js +3 -0
- package/build/_modules/server/server-status/db-readiness-probe.interface.js.map +1 -0
- package/eslint.config.js +3 -3
- package/nodemon.json +24 -24
- package/package.json +1 -1
- package/pnpm-workspace.yaml +6 -6
- package/scripts/_seed-out/aim-seed.fixtures.ts +161 -161
- package/scripts/_seed-out/llm-expand-raw.json +59 -59
- package/scripts/_seed-out/seed-raw.json +152 -152
- package/scripts/ai-fixture-seed.js +126 -126
- package/scripts/run-coverage-tests.js +28 -28
- package/spec/support/helpers/spec-reporter-loader.js +359 -359
- package/spec/support/helpers/ts-node-helper.js +93 -93
- package/spec/support/jasmine.coverage.json +24 -24
- package/spec/support/jasmine.json +24 -24
- package/src/_collections/app-version-header.util.spec.ts +108 -108
- package/src/_collections/app-version-header.util.ts +74 -74
- package/src/_collections/archive-service-registry.const.ts +21 -21
- package/src/_collections/archive.util.spec.ts +57 -57
- package/src/_collections/archive.util.ts +18 -18
- package/src/_collections/atlas-default-db-options.const.ts +9 -9
- package/src/_collections/client-safe-error.util.spec.ts +151 -151
- package/src/_collections/client-safe-error.util.ts +107 -107
- package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
- package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
- package/src/_collections/default-not-found-page.const.spec.ts +19 -19
- package/src/_collections/default-not-found-page.const.ts +22 -22
- package/src/_collections/default-socket-path.const.spec.ts +12 -12
- package/src/_collections/default-socket-path.const.ts +2 -2
- package/src/_collections/field-encryption.util.spec.ts +195 -195
- package/src/_collections/field-encryption.util.ts +222 -222
- package/src/_collections/get-environment-settings.util.spec.ts +210 -210
- package/src/_collections/get-environment-settings.util.ts +48 -48
- package/src/_collections/global-settings.const.ts +126 -126
- package/src/_collections/load-shed.util.spec.ts +62 -62
- package/src/_collections/load-shed.util.ts +51 -51
- package/src/_collections/mongo-reconnect-guard.util.spec.ts +52 -52
- package/src/_collections/mongo-reconnect-guard.util.ts +172 -172
- package/src/_collections/npm-token-check.util.spec.ts +218 -218
- package/src/_collections/npm-token-check.util.ts +327 -327
- package/src/_collections/sample.env +21 -21
- package/src/_collections/security-headers.util.spec.ts +98 -98
- package/src/_collections/security-headers.util.ts +96 -96
- package/src/_collections/signed-url.util.spec.ts +198 -198
- package/src/_collections/signed-url.util.ts +170 -170
- package/src/_collections/star.controller.spec.ts +224 -224
- package/src/_collections/star.controller.ts +129 -129
- package/src/_collections/static-cache-control.util.spec.ts +47 -47
- package/src/_collections/static-cache-control.util.ts +25 -25
- package/src/_enums/data-model-type.enum.ts +14 -14
- package/src/_enums/data-service-function.enum.ts +24 -24
- package/src/_enums/predefined-data-types.enum.ts +16 -16
- package/src/_enums/route-security.enum.ts +12 -12
- package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
- package/src/_models/control-models/api-call-params.control-model.ts +142 -142
- package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
- package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
- package/src/_models/control-models/app-params.control-model.ts +136 -136
- package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
- package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/endpoint-params.control-model.spec.ts +669 -669
- package/src/_models/control-models/endpoint-params.control-model.ts +664 -664
- package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
- package/src/_models/control-models/http-settings.control-model.ts +37 -37
- package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
- package/src/_models/control-models/system-control.control-model.ts +12 -12
- package/src/_models/data-models/schema-migration.data-model.ts +50 -50
- package/src/_models/interfaces/app-version-header-settings.interface.ts +17 -17
- package/src/_models/interfaces/certification-settings.interface.ts +7 -7
- package/src/_models/interfaces/compare-data-options.interface.ts +27 -27
- package/src/_models/interfaces/compare-data-result.interface.ts +12 -12
- package/src/_models/interfaces/cors-settings.interface.spec.ts +52 -52
- package/src/_models/interfaces/cors-settings.interface.ts +56 -56
- package/src/_models/interfaces/db-query-options.interface.ts +33 -33
- package/src/_models/interfaces/environment-settings.interface.ts +59 -59
- package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
- package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
- package/src/_models/interfaces/global-settings.interface.ts +294 -294
- package/src/_models/interfaces/migration-entry.interface.ts +19 -19
- package/src/_models/interfaces/mongo-transaction-settings.interface.ts +9 -9
- package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
- package/src/_models/interfaces/security-headers-settings.interface.ts +50 -50
- package/src/_models/interfaces/signed-url-verify-result.interface.ts +13 -13
- package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
- package/src/_models/interfaces/static-client-settings.interface.ts +36 -36
- package/src/_models/types/db-update.type.ts +100 -100
- package/src/_modules/account-security/_enums/account-challenge-purpose.type-enum.ts +5 -5
- package/src/_modules/account-security/_enums/account-refresh-token-state.type-enum.ts +6 -6
- package/src/_modules/account-security/_enums/account-session-state.type-enum.ts +6 -6
- package/src/_modules/account-security/_models/account-challenge-adapter.interface.ts +17 -17
- package/src/_modules/account-security/_models/account-challenge-issued.interface.ts +6 -6
- package/src/_modules/account-security/_models/account-challenge-record.interface.ts +13 -13
- package/src/_modules/account-security/_models/account-challenge-result.interface.ts +8 -8
- package/src/_modules/account-security/_models/account-challenge-settings.interface.ts +9 -9
- package/src/_modules/account-security/_models/account-password-policy.interface.ts +11 -11
- package/src/_modules/account-security/_models/account-password-verification.interface.ts +5 -5
- package/src/_modules/account-security/_models/account-refresh-token-record.interface.ts +13 -13
- package/src/_modules/account-security/_models/account-session-adapter.interface.ts +19 -19
- package/src/_modules/account-security/_models/account-session-claims.interface.ts +7 -7
- package/src/_modules/account-security/_models/account-session-context.interface.ts +6 -6
- package/src/_modules/account-security/_models/account-session-create.interface.ts +8 -8
- package/src/_modules/account-security/_models/account-session-record.interface.ts +21 -21
- package/src/_modules/account-security/_models/account-session-rotate.interface.ts +11 -11
- package/src/_modules/account-security/_models/account-session-settings.interface.ts +11 -11
- package/src/_modules/account-security/_models/account-session-token-pair.interface.ts +8 -8
- package/src/_modules/account-security/_models/account-session-view.interface.ts +13 -13
- package/src/_modules/account-security/account-challenge.control-service.spec.ts +195 -195
- package/src/_modules/account-security/account-challenge.control-service.ts +164 -164
- package/src/_modules/account-security/account-password.control-service.spec.ts +96 -96
- package/src/_modules/account-security/account-password.control-service.ts +288 -288
- package/src/_modules/account-security/account-session.control-service.spec.ts +294 -294
- package/src/_modules/account-security/account-session.control-service.ts +376 -376
- package/src/_modules/account-security/index.ts +31 -31
- package/src/_modules/admin-auth/_models/admin-api-key-config.interface.ts +33 -33
- package/src/_modules/admin-auth/admin-api-key.auth-service.spec.ts +200 -200
- package/src/_modules/admin-auth/admin-api-key.auth-service.ts +220 -220
- package/src/_modules/admin-auth/index.ts +2 -2
- package/src/_modules/ai/_collections/ai-model-config-validator.util.spec.ts +150 -150
- package/src/_modules/ai/_collections/ai-model-config-validator.util.ts +131 -131
- package/src/_modules/ai/_collections/ai-provider-error.util.ts +144 -144
- package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
- package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
- package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +14 -14
- package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +56 -56
- package/src/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.ts +16 -16
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.ts +72 -72
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.ts +71 -71
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.ts +57 -57
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.ts +60 -60
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.ts +56 -56
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.ts +117 -117
- package/src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts +28 -28
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.ts +14 -14
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.ts +11 -11
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.ts +30 -30
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.ts +19 -19
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.ts +20 -20
- package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.ts +115 -115
- package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts +233 -233
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.ts +134 -134
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.ts +127 -127
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.ts +105 -105
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.ts +50 -50
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.ts +65 -65
- package/src/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.ts +92 -92
- package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.ts +112 -112
- package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.ts +155 -155
- package/src/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.ts +649 -649
- package/src/_modules/ai/_modules/ai-mock/index.ts +47 -47
- package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
- package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +552 -552
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
- package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
- package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
- package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
- package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
- package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
- package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts +572 -572
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts +435 -435
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +132 -132
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1085 -1085
- package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
- package/src/_modules/ai/_modules/open-ai/index.ts +74 -74
- package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
- package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -114
- package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
- package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
- package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
- package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
- package/src/_modules/ai/_services/ai-llm.service-base.reconciler.spec.ts +133 -133
- package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
- package/src/_modules/ai/_services/ai-llm.service-base.ts +599 -599
- package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
- package/src/_modules/ai/_services/ai-provider.service-base.ts +67 -67
- package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +399 -399
- package/src/_modules/ai/index.ts +33 -33
- package/src/_modules/artifact-compiler/_enums/artifact-compile-outcome.type-enum.ts +5 -5
- package/src/_modules/artifact-compiler/_enums/artifact-compile-stage.type-enum.ts +8 -8
- package/src/_modules/artifact-compiler/_enums/artifact-retry-class.type-enum.ts +6 -6
- package/src/_modules/artifact-compiler/_models/artifact-compile.interface.ts +35 -35
- package/src/_modules/artifact-compiler/artifact-compiler.control-service.spec.ts +151 -151
- package/src/_modules/artifact-compiler/artifact-compiler.control-service.ts +356 -356
- package/src/_modules/artifact-compiler/index.ts +9 -9
- package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
- package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
- package/src/_modules/assistant/_collections/ass.util.ts +50 -50
- package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
- package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
- package/src/_modules/assistant/_services/ass-io.control-service.ts +74 -74
- package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
- package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
- package/src/_modules/assistant/index.ts +19 -19
- package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
- package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
- package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
- package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
- package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
- package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
- package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
- package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +90 -90
- package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
- package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
- package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts +641 -641
- package/src/_modules/bot/_modules/discord-bot/index.ts +12 -12
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
- package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
- package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
- package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
- package/src/_modules/bot/_modules/slack-bot/index.ts +12 -12
- package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
- package/src/_modules/bot/_modules/teams-bot/index.ts +11 -11
- package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
- package/src/_modules/bot/_services/bot-commands.control-service.ts +158 -158
- package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
- package/src/_modules/bot/_services/bot-io.control-service.ts +329 -329
- package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
- package/src/_modules/bot/_services/bot-main.control-service.ts +489 -489
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.ts +158 -158
- package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
- package/src/_modules/bot/_services/bot-routines.control-service.ts +78 -78
- package/src/_modules/bot/index.ts +37 -37
- package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
- package/src/_modules/custom-data/custom-data.controller.ts +67 -67
- package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
- package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
- package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
- package/src/_modules/custom-data/index.ts +9 -9
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +176 -176
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
- package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
- package/src/_modules/data-readers/index.ts +11 -11
- package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
- package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
- package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
- package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
- package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
- package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
- package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
- package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
- package/src/_modules/defaults/index.ts +17 -17
- package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
- package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
- package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
- package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
- package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
- package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
- package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
- package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
- package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
- package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
- package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
- package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
- package/src/_modules/discord-assistant/index.ts +38 -38
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
- package/src/_modules/discord-assistant-voiced/index.ts +36 -36
- package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
- package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
- package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
- package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
- package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
- package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
- package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
- package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
- package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
- package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
- package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
- package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
- package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
- package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +97 -97
- package/src/_modules/discord-bot/index.ts +36 -36
- package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
- package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +60 -60
- package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
- package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +159 -159
- package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +206 -206
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +214 -214
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +186 -186
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +130 -130
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +509 -509
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +323 -323
- package/src/_modules/local-vector-search/index.ts +16 -16
- package/src/_modules/logs/_models/file-log-entry.interface.ts +13 -13
- package/src/_modules/logs/_models/file-log-read-result.interface.ts +37 -37
- package/src/_modules/logs/file-log.service.spec.ts +341 -341
- package/src/_modules/logs/file-log.service.ts +466 -466
- package/src/_modules/logs/file-logs.controller.spec.ts +245 -245
- package/src/_modules/logs/file-logs.controller.ts +165 -165
- package/src/_modules/logs/get-file-logs-routing-module.util.ts +51 -51
- package/src/_modules/logs/get-logs-routing-module.util.ts +36 -36
- package/src/_modules/logs/index.ts +11 -11
- package/src/_modules/logs/log-buffer.service.ts +101 -101
- package/src/_modules/logs/logs.controller.ts +109 -109
- package/src/_modules/logs/logs.service.ts +100 -100
- package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +151 -151
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +125 -125
- package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
- package/src/_modules/mcp/index.ts +13 -13
- package/src/_modules/messaging/README.md +354 -354
- package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
- package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
- package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
- package/src/_modules/messaging/_collections/msg.util.ts +83 -83
- package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
- package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
- package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
- package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
- package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
- package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
- package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
- package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
- package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
- package/src/_modules/messaging/_services/msg.controller.ts +370 -370
- package/src/_modules/messaging/index.ts +30 -30
- package/src/_modules/mock/app-extended-server.mock.ts +201 -201
- package/src/_modules/mock/app-integration-test.mock.ts +51 -51
- package/src/_modules/mock/app-params.mock.spec.ts +21 -21
- package/src/_modules/mock/app-params.mock.ts +9 -9
- package/src/_modules/mock/app-server.mock.ts +188 -188
- package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
- package/src/_modules/mock/auth-service.mock.ts +28 -28
- package/src/_modules/mock/controller.mock.spec.ts +26 -26
- package/src/_modules/mock/controller.mock.ts +16 -16
- package/src/_modules/mock/data-model.mock.spec.ts +111 -111
- package/src/_modules/mock/data-model.mock.ts +82 -82
- package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
- package/src/_modules/mock/email-service-collection.mock.ts +15 -15
- package/src/_modules/mock/email-service.mock.spec.ts +17 -17
- package/src/_modules/mock/email-service.mock.ts +20 -20
- package/src/_modules/mock/email-template.mock.html +14 -14
- package/src/_modules/mock/endpoint.mock.ts +91 -91
- package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
- package/src/_modules/mock/socket-client.mock.ts +45 -45
- package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
- package/src/_modules/mock/socket-server.mock.ts +46 -46
- package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
- package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
- package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
- package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
- package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
- package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
- package/src/_modules/oauth2/index.ts +17 -17
- package/src/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.ts +5 -5
- package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.ts +10 -10
- package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.ts +7 -7
- package/src/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.ts +15 -15
- package/src/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.ts +9 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.ts +12 -12
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.ts +7 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.ts +15 -15
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.ts +7 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.ts +13 -13
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.ts +9 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.ts +14 -14
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.ts +8 -8
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor.interface.ts +17 -17
- package/src/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.ts +21 -21
- package/src/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.ts +9 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.ts +7 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.ts +10 -10
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.ts +7 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.ts +7 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.ts +11 -11
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.ts +13 -13
- package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.ts +19 -19
- package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.ts +9 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.ts +7 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-request-open.interface.ts +10 -10
- package/src/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.ts +7 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-request-record.interface.ts +21 -21
- package/src/_modules/privacy-lifecycle/_models/privacy-request-result.interface.ts +8 -8
- package/src/_modules/privacy-lifecycle/_models/privacy-request-view.interface.ts +20 -20
- package/src/_modules/privacy-lifecycle/index.ts +40 -40
- package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.spec.ts +206 -206
- package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.ts +253 -253
- package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.spec.ts +353 -353
- package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.ts +586 -586
- package/src/_modules/rate-limit/_enums/rate-limit-store-kind.type-enum.ts +5 -5
- package/src/_modules/rate-limit/_models/rate-limit-config.interface.ts +82 -82
- package/src/_modules/rate-limit/_models/rate-limit-consume-request.interface.ts +9 -9
- package/src/_modules/rate-limit/_models/rate-limit-consume-result.interface.ts +6 -6
- package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +16 -16
- package/src/_modules/rate-limit/_models/rate-limit-store.interface.ts +9 -9
- package/src/_modules/rate-limit/index.ts +8 -8
- package/src/_modules/rate-limit/rate-limit-in-memory.store.ts +91 -91
- package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +488 -488
- package/src/_modules/rate-limit/rate-limit.middleware.ts +504 -504
- package/src/_modules/scheduler/_models/scheduler-job.interface.ts +35 -35
- package/src/_modules/scheduler/get-scheduler-routing-module.util.ts +33 -33
- package/src/_modules/scheduler/index.ts +8 -8
- package/src/_modules/scheduler/scheduler.controller.spec.ts +42 -42
- package/src/_modules/scheduler/scheduler.controller.ts +69 -69
- package/src/_modules/scheduler/scheduler.service.spec.ts +141 -141
- package/src/_modules/scheduler/scheduler.service.ts +176 -176
- package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
- package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +82 -82
- package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +312 -312
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +311 -311
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +123 -123
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +108 -108
- package/src/_modules/scoped-config/index.ts +17 -17
- package/src/_modules/server/errors/errors.control-service.spec.ts +246 -246
- package/src/_modules/server/errors/errors.control-service.ts +100 -100
- package/src/_modules/server/errors/errors.controller.spec.ts +340 -340
- package/src/_modules/server/errors/errors.controller.ts +559 -559
- package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
- package/src/_modules/server/errors/errors.data-service.ts +867 -867
- package/src/_modules/server/index.ts +34 -30
- package/src/_modules/server/server-status/db-readiness-probe-code.type-enum.ts +13 -0
- package/src/_modules/server/server-status/db-readiness-probe-stage.type-enum.ts +7 -0
- package/src/_modules/server/server-status/db-readiness-probe.control-service.spec.ts +235 -0
- package/src/_modules/server/server-status/db-readiness-probe.control-service.ts +158 -0
- package/src/_modules/server/server-status/db-readiness-probe.interface.ts +20 -0
- package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
- package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
- package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
- package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
- package/src/_modules/server/server-status/server-status.control-service.spec.ts +672 -672
- package/src/_modules/server/server-status/server-status.control-service.ts +490 -490
- package/src/_modules/server/server-status/server-status.controller.spec.ts +276 -276
- package/src/_modules/server/server-status/server-status.controller.ts +336 -336
- package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
- package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
- package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
- package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +165 -165
- package/src/_modules/socket/_models/socket-presence.control-model.ts +211 -211
- package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +69 -69
- package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +33 -33
- package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
- package/src/_modules/socket/_services/socket-client.service.ts +260 -260
- package/src/_modules/socket/_services/socket-server.service.spec.ts +272 -272
- package/src/_modules/socket/_services/socket-server.service.ts +1037 -1037
- package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
- package/src/_modules/socket/app-extended.server.ts +648 -648
- package/src/_modules/socket/index.ts +42 -42
- package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
- package/src/_modules/test/get-test-routing-module.util.ts +23 -23
- package/src/_modules/test/index.ts +11 -11
- package/src/_modules/test/test.controller.spec.ts +72 -72
- package/src/_modules/test/test.controller.ts +115 -115
- package/src/_modules/test-email-sink/_collections/test-email-pattern.const.ts +10 -10
- package/src/_modules/test-email-sink/_models/data-models/dynts-sent-test-mail.data-model.ts +41 -41
- package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.ts +112 -112
- package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.ts +141 -141
- package/src/_modules/test-email-sink/get-sent-mail-routing-module.util.ts +29 -29
- package/src/_modules/test-email-sink/index.ts +11 -11
- package/src/_modules/test-email-sink/test-email-sink.controller.ts +83 -83
- package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
- package/src/_modules/usage/index.ts +15 -15
- package/src/_modules/usage/usage.controller.spec.ts +106 -106
- package/src/_modules/usage/usage.controller.ts +140 -140
- package/src/_modules/usage/usage.data-service.spec.ts +332 -332
- package/src/_modules/usage/usage.data-service.ts +185 -185
- package/src/_services/base/api.service-base.spec.ts +125 -125
- package/src/_services/base/api.service-base.ts +74 -74
- package/src/_services/base/archive-data.service.spec.ts +209 -209
- package/src/_services/base/archive-data.service.ts +228 -228
- package/src/_services/base/data.service.spec.ts +784 -784
- package/src/_services/base/data.service.ts +2792 -2792
- package/src/_services/base/db.service.encryption.spec.ts +76 -76
- package/src/_services/base/db.service.spec.ts +160 -160
- package/src/_services/base/db.service.ts +1698 -1698
- package/src/_services/base/singleton.service-base.spec.ts +28 -28
- package/src/_services/base/singleton.service-base.ts +24 -24
- package/src/_services/base/singleton.service.spec.ts +114 -114
- package/src/_services/base/singleton.service.ts +38 -38
- package/src/_services/core/api.service.spec.ts +187 -187
- package/src/_services/core/api.service.ts +627 -627
- package/src/_services/core/auth.service.spec.ts +159 -159
- package/src/_services/core/auth.service.ts +174 -174
- package/src/_services/core/collection-growth-monitor.service.spec.ts +119 -119
- package/src/_services/core/collection-growth-monitor.service.ts +234 -234
- package/src/_services/core/db-stats.service.ts +104 -104
- package/src/_services/core/diagnostics.service.spec.ts +44 -44
- package/src/_services/core/diagnostics.service.ts +158 -158
- package/src/_services/core/email.service.spec.ts +85 -85
- package/src/_services/core/email.service.ts +757 -757
- package/src/_services/core/event-loop-diag.service.spec.ts +22 -22
- package/src/_services/core/event-loop-diag.service.ts +144 -144
- package/src/_services/core/global.service.spec.ts +292 -292
- package/src/_services/core/global.service.ts +487 -487
- package/src/_services/core/memory-guard.service.spec.ts +245 -245
- package/src/_services/core/memory-guard.service.ts +481 -481
- package/src/_services/core/migration-runner.service.spec.ts +91 -91
- package/src/_services/core/migration-runner.service.ts +106 -106
- package/src/_services/core/mongo-transaction.control-service.spec.ts +165 -165
- package/src/_services/core/mongo-transaction.control-service.ts +148 -148
- package/src/_services/core/request-hunter.service.spec.ts +124 -124
- package/src/_services/core/request-hunter.service.ts +157 -157
- package/src/_services/core/service-collection.service.spec.ts +46 -46
- package/src/_services/core/service-collection.service.ts +6 -6
- package/src/_services/route/controller.service.spec.ts +53 -53
- package/src/_services/route/controller.service.ts +148 -148
- package/src/_services/route/routing-module.service.spec.ts +98 -98
- package/src/_services/route/routing-module.service.ts +330 -330
- package/src/_services/server/app.server-retention.spec.ts +106 -106
- package/src/_services/server/app.server.ts +2012 -2012
- package/src/_services/shared.static-service.spec.ts +99 -99
- package/src/_services/shared.static-service.ts +78 -78
- package/src/index.ts +117 -117
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +42 -42
- package/.dynamo/logs/cicd-pipeline/output.log +0 -2883
- package/.dynamo/logs/cicd-pipeline/status.json +0 -74
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
import * as crypto from 'crypto';
|
|
2
|
-
|
|
3
|
-
import { DyNTS_AIMock_Request } from '../_models/interfaces/aim-request.interface';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* A fixture-match kulcs DETERMINISZTIKUS képzése. Cél: azonos „jelentésű" request → azonos kulcs,
|
|
7
|
-
* függetlenül a config-kulcsok sorrendjétől és az input whitespace-variánsaitól (különben false
|
|
8
|
-
* reject-on-unknown, l. HYPERPLAN D3 + MP-3 SP-3.1). NEM végez generálást — tiszta, hálózat-mentes.
|
|
9
|
-
*/
|
|
10
|
-
export class DyNTS_AIMock_FixtureMatch_Util {
|
|
11
|
-
/**
|
|
12
|
-
* A teljes match-kulcs: `provider|model|modality|<config-hash>|<input-hash>`.
|
|
13
|
-
* @param request - a mock-hívás bemenete
|
|
14
|
-
*/
|
|
15
|
-
static buildMatchKey(request: DyNTS_AIMock_Request): string {
|
|
16
|
-
const configHash: string = this.hash(this.canonicalizeConfig(request.config ?? {}));
|
|
17
|
-
const inputHash: string = this.buildInputHash(request.input);
|
|
18
|
-
|
|
19
|
-
return `${request.provider}|${request.model}|${request.modality}|${configHash}|${inputHash}`;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Csak az input-hash (a `DyNTS_AIMock_Fixture.inputHash`-hez): a kanonizált input SHA-256-ja.
|
|
24
|
-
* @param input - a modalitás-függő bemenet
|
|
25
|
-
*/
|
|
26
|
-
static buildInputHash(input: unknown): string {
|
|
27
|
-
return this.hash(this.canonicalizeInput(input));
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Kulcs-rendezett, stabil szöveg egy config-objektumból (a config-kulcsok sorrend-függetlenségéhez).
|
|
32
|
-
* Megjegyzés: a nested-objektum mély-kanonizációja jövőbeli finomítás (a shallow key-sort a config-flat
|
|
33
|
-
* paramétereket — temperature/dimensions/size — fedi).
|
|
34
|
-
* @param config - a kanonizálandó config
|
|
35
|
-
*/
|
|
36
|
-
private static canonicalizeConfig(config: Record<string, unknown>): string {
|
|
37
|
-
const sortedKeys: string[] = Object.keys(config).sort();
|
|
38
|
-
const parts: string[] = sortedKeys.map((key: string) => `${key}:${JSON.stringify(config[key])}`);
|
|
39
|
-
|
|
40
|
-
return parts.join('|');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Input-kanonizáció: string → trim + belső whitespace-összevonás; egyéb (pl. embedding-szöveg-tömb) →
|
|
45
|
-
* stabil JSON (a sorrend jelentős, pl. batch-embedding).
|
|
46
|
-
* @param input - a bemenet
|
|
47
|
-
*/
|
|
48
|
-
private static canonicalizeInput(input: unknown): string {
|
|
49
|
-
if (typeof input === 'string') {
|
|
50
|
-
return input.trim().replace(/\s+/g, ' ');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return JSON.stringify(input);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/** SHA-256 hex az adott szövegből. */
|
|
57
|
-
private static hash(value: string): string {
|
|
58
|
-
return crypto.createHash('sha256').update(value).digest('hex');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
1
|
+
import * as crypto from 'crypto';
|
|
2
|
+
|
|
3
|
+
import { DyNTS_AIMock_Request } from '../_models/interfaces/aim-request.interface';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A fixture-match kulcs DETERMINISZTIKUS képzése. Cél: azonos „jelentésű" request → azonos kulcs,
|
|
7
|
+
* függetlenül a config-kulcsok sorrendjétől és az input whitespace-variánsaitól (különben false
|
|
8
|
+
* reject-on-unknown, l. HYPERPLAN D3 + MP-3 SP-3.1). NEM végez generálást — tiszta, hálózat-mentes.
|
|
9
|
+
*/
|
|
10
|
+
export class DyNTS_AIMock_FixtureMatch_Util {
|
|
11
|
+
/**
|
|
12
|
+
* A teljes match-kulcs: `provider|model|modality|<config-hash>|<input-hash>`.
|
|
13
|
+
* @param request - a mock-hívás bemenete
|
|
14
|
+
*/
|
|
15
|
+
static buildMatchKey(request: DyNTS_AIMock_Request): string {
|
|
16
|
+
const configHash: string = this.hash(this.canonicalizeConfig(request.config ?? {}));
|
|
17
|
+
const inputHash: string = this.buildInputHash(request.input);
|
|
18
|
+
|
|
19
|
+
return `${request.provider}|${request.model}|${request.modality}|${configHash}|${inputHash}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Csak az input-hash (a `DyNTS_AIMock_Fixture.inputHash`-hez): a kanonizált input SHA-256-ja.
|
|
24
|
+
* @param input - a modalitás-függő bemenet
|
|
25
|
+
*/
|
|
26
|
+
static buildInputHash(input: unknown): string {
|
|
27
|
+
return this.hash(this.canonicalizeInput(input));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Kulcs-rendezett, stabil szöveg egy config-objektumból (a config-kulcsok sorrend-függetlenségéhez).
|
|
32
|
+
* Megjegyzés: a nested-objektum mély-kanonizációja jövőbeli finomítás (a shallow key-sort a config-flat
|
|
33
|
+
* paramétereket — temperature/dimensions/size — fedi).
|
|
34
|
+
* @param config - a kanonizálandó config
|
|
35
|
+
*/
|
|
36
|
+
private static canonicalizeConfig(config: Record<string, unknown>): string {
|
|
37
|
+
const sortedKeys: string[] = Object.keys(config).sort();
|
|
38
|
+
const parts: string[] = sortedKeys.map((key: string) => `${key}:${JSON.stringify(config[key])}`);
|
|
39
|
+
|
|
40
|
+
return parts.join('|');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Input-kanonizáció: string → trim + belső whitespace-összevonás; egyéb (pl. embedding-szöveg-tömb) →
|
|
45
|
+
* stabil JSON (a sorrend jelentős, pl. batch-embedding).
|
|
46
|
+
* @param input - a bemenet
|
|
47
|
+
*/
|
|
48
|
+
private static canonicalizeInput(input: unknown): string {
|
|
49
|
+
if (typeof input === 'string') {
|
|
50
|
+
return input.trim().replace(/\s+/g, ' ');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return JSON.stringify(input);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** SHA-256 hex az adott szövegből. */
|
|
57
|
+
private static hash(value: string): string {
|
|
58
|
+
return crypto.createHash('sha256').update(value).digest('hex');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { DyNTS_AIMock_Modality } from '../_enums/aim-modality.enum';
|
|
2
|
-
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
3
|
-
import { DyNTS_AIMock_FixtureSerializer_Util } from './aim-fixture-serializer.util';
|
|
4
|
-
|
|
5
|
-
describe('| DyNTS_AIMock_FixtureSerializer_Util', () => {
|
|
6
|
-
|
|
7
|
-
function fixture(model: string, inputHash: string): DyNTS_AIMock_Fixture {
|
|
8
|
-
return {
|
|
9
|
-
provider: 'open-ai',
|
|
10
|
-
model: model,
|
|
11
|
-
modality: DyNTS_AIMock_Modality.text,
|
|
12
|
-
input: 'ping',
|
|
13
|
-
inputHash: inputHash,
|
|
14
|
-
output: 'pong',
|
|
15
|
-
capturedAt: '2026-07-21T00:00:00.000Z',
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
it('| determinisztikus: a fixture-ok SORRENDJETOL fuggetlenul azonos kimenet', () => {
|
|
20
|
-
const a: DyNTS_AIMock_Fixture[] = [ fixture('m-b', 'h2'), fixture('m-a', 'h1') ];
|
|
21
|
-
const b: DyNTS_AIMock_Fixture[] = [ fixture('m-a', 'h1'), fixture('m-b', 'h2') ];
|
|
22
|
-
|
|
23
|
-
const first: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({ constName: 'X', fixtures: a });
|
|
24
|
-
const second: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({ constName: 'X', fixtures: b });
|
|
25
|
-
|
|
26
|
-
expect(first).toBe(second);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('| az objektum-kulcsok abc-sorrendben jonnek ki (stabil diff)', () => {
|
|
30
|
-
const output: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({
|
|
31
|
-
constName: 'X',
|
|
32
|
-
fixtures: [ fixture('m-a', 'h1') ],
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
expect(output.indexOf('"capturedAt"')).toBeLessThan(output.indexOf('"input"'));
|
|
36
|
-
expect(output.indexOf('"input"')).toBeLessThan(output.indexOf('"model"'));
|
|
37
|
-
expect(output.indexOf('"model"')).toBeLessThan(output.indexOf('"provider"'));
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it('| valid TS-konstans vazat ad (import + export const + tipus)', () => {
|
|
41
|
-
const output: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({
|
|
42
|
-
constName: 'DyNTS_AIMock_TestFixtures',
|
|
43
|
-
fixtures: [ fixture('m-a', 'h1') ],
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
expect(output).toContain(`from '@futdevpro/nts-dynamo/ai/ai-mock'`);
|
|
47
|
-
expect(output).toContain('export const DyNTS_AIMock_TestFixtures: DyNTS_AIMock_Fixture[] = [');
|
|
48
|
-
expect(output.trim().endsWith('];')).toBe(true);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('| ures keszlet → ures tomb-literal', () => {
|
|
52
|
-
const output: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({ constName: 'X', fixtures: [] });
|
|
53
|
-
|
|
54
|
-
expect(output).toContain('export const X: DyNTS_AIMock_Fixture[] = [');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
1
|
+
import { DyNTS_AIMock_Modality } from '../_enums/aim-modality.enum';
|
|
2
|
+
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
3
|
+
import { DyNTS_AIMock_FixtureSerializer_Util } from './aim-fixture-serializer.util';
|
|
4
|
+
|
|
5
|
+
describe('| DyNTS_AIMock_FixtureSerializer_Util', () => {
|
|
6
|
+
|
|
7
|
+
function fixture(model: string, inputHash: string): DyNTS_AIMock_Fixture {
|
|
8
|
+
return {
|
|
9
|
+
provider: 'open-ai',
|
|
10
|
+
model: model,
|
|
11
|
+
modality: DyNTS_AIMock_Modality.text,
|
|
12
|
+
input: 'ping',
|
|
13
|
+
inputHash: inputHash,
|
|
14
|
+
output: 'pong',
|
|
15
|
+
capturedAt: '2026-07-21T00:00:00.000Z',
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
it('| determinisztikus: a fixture-ok SORRENDJETOL fuggetlenul azonos kimenet', () => {
|
|
20
|
+
const a: DyNTS_AIMock_Fixture[] = [ fixture('m-b', 'h2'), fixture('m-a', 'h1') ];
|
|
21
|
+
const b: DyNTS_AIMock_Fixture[] = [ fixture('m-a', 'h1'), fixture('m-b', 'h2') ];
|
|
22
|
+
|
|
23
|
+
const first: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({ constName: 'X', fixtures: a });
|
|
24
|
+
const second: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({ constName: 'X', fixtures: b });
|
|
25
|
+
|
|
26
|
+
expect(first).toBe(second);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('| az objektum-kulcsok abc-sorrendben jonnek ki (stabil diff)', () => {
|
|
30
|
+
const output: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({
|
|
31
|
+
constName: 'X',
|
|
32
|
+
fixtures: [ fixture('m-a', 'h1') ],
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
expect(output.indexOf('"capturedAt"')).toBeLessThan(output.indexOf('"input"'));
|
|
36
|
+
expect(output.indexOf('"input"')).toBeLessThan(output.indexOf('"model"'));
|
|
37
|
+
expect(output.indexOf('"model"')).toBeLessThan(output.indexOf('"provider"'));
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('| valid TS-konstans vazat ad (import + export const + tipus)', () => {
|
|
41
|
+
const output: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({
|
|
42
|
+
constName: 'DyNTS_AIMock_TestFixtures',
|
|
43
|
+
fixtures: [ fixture('m-a', 'h1') ],
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
expect(output).toContain(`from '@futdevpro/nts-dynamo/ai/ai-mock'`);
|
|
47
|
+
expect(output).toContain('export const DyNTS_AIMock_TestFixtures: DyNTS_AIMock_Fixture[] = [');
|
|
48
|
+
expect(output.trim().endsWith('];')).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('| ures keszlet → ures tomb-literal', () => {
|
|
52
|
+
const output: string = DyNTS_AIMock_FixtureSerializer_Util.toConstantFile({ constName: 'X', fixtures: [] });
|
|
53
|
+
|
|
54
|
+
expect(output).toContain('export const X: DyNTS_AIMock_Fixture[] = [');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Beegetett fixture-ok **determinisztikus** TS-konstans fajlla alakitasa (D6: git-tracked, NEM env-fuggo).
|
|
5
|
-
*
|
|
6
|
-
* A determinizmus itt nem kozmetika: a fixture-fajlok verziokezeltek, ezert ugyanaz a fixture-keszlet
|
|
7
|
-
* MINDIG ugyanazt a fajl-tartalmat kell adja — kulonben minden ujra-generalas zajos diff-et okoz, es a
|
|
8
|
-
* code-review hasznalhatatlanna valik. Ezert: a fixture-ok **match-kulcs szerint rendezve**, az objektum-
|
|
9
|
-
* kulcsok pedig **rekurzivan abc-sorrendben** kerulnek ki.
|
|
10
|
-
*/
|
|
11
|
-
export class DyNTS_AIMock_FixtureSerializer_Util {
|
|
12
|
-
|
|
13
|
-
/** Behuzas egy szintje. */
|
|
14
|
-
private static readonly indentUnit: string = ' ';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Fixture-tomb → teljes TS-konstans fajl tartalma (import + export const + JSDoc-fejlec).
|
|
18
|
-
* @param set - a konstans neve + a fixture-ok + opcionalis fejlec-megjegyzes
|
|
19
|
-
*/
|
|
20
|
-
static toConstantFile(
|
|
21
|
-
set: {
|
|
22
|
-
constName: string,
|
|
23
|
-
fixtures: DyNTS_AIMock_Fixture[],
|
|
24
|
-
headerNote?: string,
|
|
25
|
-
/**
|
|
26
|
-
* A generalt fajl import-utvonala a `DyNTS_AIMock_Fixture` tipushoz.
|
|
27
|
-
*
|
|
28
|
-
* Default a publikus package-utvonal (KULSO consumer fixture-fajljaihoz). **A csomagon BELULRE**
|
|
29
|
-
* kerulo fixture-oknel relativ utat kell adni (pl. `'../_models/interfaces/aim-fixture.interface'`),
|
|
30
|
-
* kulonben a fajl onmagara hivatkozna a package-nevvel, ami build-kor nem oldodik fel.
|
|
31
|
-
*/
|
|
32
|
-
importPath?: string,
|
|
33
|
-
}
|
|
34
|
-
): string {
|
|
35
|
-
const sorted: DyNTS_AIMock_Fixture[] = this.sortFixtures(set.fixtures);
|
|
36
|
-
const body: string = sorted
|
|
37
|
-
.map((fixture: DyNTS_AIMock_Fixture) => this.stringify(fixture, this.indentUnit))
|
|
38
|
-
.join(',\n');
|
|
39
|
-
|
|
40
|
-
const note: string = set.headerNote ?? 'Auto-generalt fixture-keszlet — kezzel NE szerkeszd.';
|
|
41
|
-
|
|
42
|
-
const importPath: string = set.importPath ?? '@futdevpro/nts-dynamo/ai/ai-mock';
|
|
43
|
-
|
|
44
|
-
return [
|
|
45
|
-
`import { DyNTS_AIMock_Fixture } from '${importPath}';`,
|
|
46
|
-
'',
|
|
47
|
-
'/**',
|
|
48
|
-
` * ${note}`,
|
|
49
|
-
' *',
|
|
50
|
-
' * Determinisztikus sorrend (match-kulcs szerint) + rendezett objektum-kulcsok, hogy az ujra-generalas',
|
|
51
|
-
' * ne okozzon zajos diff-et. Forras: `DyNTS_AIMock_FixtureSerializer_Util`.',
|
|
52
|
-
' */',
|
|
53
|
-
`export const ${set.constName}: DyNTS_AIMock_Fixture[] = [`,
|
|
54
|
-
body,
|
|
55
|
-
'];',
|
|
56
|
-
'',
|
|
57
|
-
].join('\n');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/** Fixture-ok stabil rendezese (provider|model|modality|inputHash). */
|
|
61
|
-
private static sortFixtures(fixtures: DyNTS_AIMock_Fixture[]): DyNTS_AIMock_Fixture[] {
|
|
62
|
-
return [ ...fixtures ].sort((a: DyNTS_AIMock_Fixture, b: DyNTS_AIMock_Fixture) => {
|
|
63
|
-
return this.sortKeyOf(a).localeCompare(this.sortKeyOf(b));
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/** A rendezesi kulcs egy fixture-hoz. */
|
|
68
|
-
private static sortKeyOf(fixture: DyNTS_AIMock_Fixture): string {
|
|
69
|
-
return `${fixture.provider}|${fixture.model}|${fixture.modality}|${fixture.inputHash}`;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Rekurziv, kulcs-rendezett stringify (a `JSON.stringify` a beszurasi sorrendet tartana meg — az nem stabil).
|
|
74
|
-
* @param value - a szerializalando ertek
|
|
75
|
-
* @param indent - az aktualis behuzas
|
|
76
|
-
*/
|
|
77
|
-
private static stringify(value: unknown, indent: string): string {
|
|
78
|
-
if (value === null || value === undefined) {
|
|
79
|
-
return `${indent}null`;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (Array.isArray(value)) {
|
|
83
|
-
if (!value.length) {
|
|
84
|
-
return `${indent}[]`;
|
|
85
|
-
}
|
|
86
|
-
const items: string = value
|
|
87
|
-
.map((item: unknown) => this.stringify(item, indent + this.indentUnit))
|
|
88
|
-
.join(',\n');
|
|
89
|
-
|
|
90
|
-
return `${indent}[\n${items}\n${indent}]`;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (typeof value === 'object') {
|
|
94
|
-
// `Object.entries` a generikus `object`-en is mukodik → nincs szukseg `as`-castra.
|
|
95
|
-
const source: Map<string, unknown> = new Map(Object.entries(value));
|
|
96
|
-
const keys: string[] = [ ...source.keys() ]
|
|
97
|
-
.filter((key: string) => source.get(key) !== undefined)
|
|
98
|
-
.sort();
|
|
99
|
-
|
|
100
|
-
if (!keys.length) {
|
|
101
|
-
return `${indent}{}`;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
const entries: string = keys
|
|
105
|
-
.map((key: string) => {
|
|
106
|
-
const rendered: string = this.stringify(source.get(key), indent + this.indentUnit).trimStart();
|
|
107
|
-
|
|
108
|
-
return `${indent}${this.indentUnit}${JSON.stringify(key)}: ${rendered}`;
|
|
109
|
-
})
|
|
110
|
-
.join(',\n');
|
|
111
|
-
|
|
112
|
-
return `${indent}{\n${entries}\n${indent}}`;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return `${indent}${JSON.stringify(value)}`;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
1
|
+
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Beegetett fixture-ok **determinisztikus** TS-konstans fajlla alakitasa (D6: git-tracked, NEM env-fuggo).
|
|
5
|
+
*
|
|
6
|
+
* A determinizmus itt nem kozmetika: a fixture-fajlok verziokezeltek, ezert ugyanaz a fixture-keszlet
|
|
7
|
+
* MINDIG ugyanazt a fajl-tartalmat kell adja — kulonben minden ujra-generalas zajos diff-et okoz, es a
|
|
8
|
+
* code-review hasznalhatatlanna valik. Ezert: a fixture-ok **match-kulcs szerint rendezve**, az objektum-
|
|
9
|
+
* kulcsok pedig **rekurzivan abc-sorrendben** kerulnek ki.
|
|
10
|
+
*/
|
|
11
|
+
export class DyNTS_AIMock_FixtureSerializer_Util {
|
|
12
|
+
|
|
13
|
+
/** Behuzas egy szintje. */
|
|
14
|
+
private static readonly indentUnit: string = ' ';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Fixture-tomb → teljes TS-konstans fajl tartalma (import + export const + JSDoc-fejlec).
|
|
18
|
+
* @param set - a konstans neve + a fixture-ok + opcionalis fejlec-megjegyzes
|
|
19
|
+
*/
|
|
20
|
+
static toConstantFile(
|
|
21
|
+
set: {
|
|
22
|
+
constName: string,
|
|
23
|
+
fixtures: DyNTS_AIMock_Fixture[],
|
|
24
|
+
headerNote?: string,
|
|
25
|
+
/**
|
|
26
|
+
* A generalt fajl import-utvonala a `DyNTS_AIMock_Fixture` tipushoz.
|
|
27
|
+
*
|
|
28
|
+
* Default a publikus package-utvonal (KULSO consumer fixture-fajljaihoz). **A csomagon BELULRE**
|
|
29
|
+
* kerulo fixture-oknel relativ utat kell adni (pl. `'../_models/interfaces/aim-fixture.interface'`),
|
|
30
|
+
* kulonben a fajl onmagara hivatkozna a package-nevvel, ami build-kor nem oldodik fel.
|
|
31
|
+
*/
|
|
32
|
+
importPath?: string,
|
|
33
|
+
}
|
|
34
|
+
): string {
|
|
35
|
+
const sorted: DyNTS_AIMock_Fixture[] = this.sortFixtures(set.fixtures);
|
|
36
|
+
const body: string = sorted
|
|
37
|
+
.map((fixture: DyNTS_AIMock_Fixture) => this.stringify(fixture, this.indentUnit))
|
|
38
|
+
.join(',\n');
|
|
39
|
+
|
|
40
|
+
const note: string = set.headerNote ?? 'Auto-generalt fixture-keszlet — kezzel NE szerkeszd.';
|
|
41
|
+
|
|
42
|
+
const importPath: string = set.importPath ?? '@futdevpro/nts-dynamo/ai/ai-mock';
|
|
43
|
+
|
|
44
|
+
return [
|
|
45
|
+
`import { DyNTS_AIMock_Fixture } from '${importPath}';`,
|
|
46
|
+
'',
|
|
47
|
+
'/**',
|
|
48
|
+
` * ${note}`,
|
|
49
|
+
' *',
|
|
50
|
+
' * Determinisztikus sorrend (match-kulcs szerint) + rendezett objektum-kulcsok, hogy az ujra-generalas',
|
|
51
|
+
' * ne okozzon zajos diff-et. Forras: `DyNTS_AIMock_FixtureSerializer_Util`.',
|
|
52
|
+
' */',
|
|
53
|
+
`export const ${set.constName}: DyNTS_AIMock_Fixture[] = [`,
|
|
54
|
+
body,
|
|
55
|
+
'];',
|
|
56
|
+
'',
|
|
57
|
+
].join('\n');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Fixture-ok stabil rendezese (provider|model|modality|inputHash). */
|
|
61
|
+
private static sortFixtures(fixtures: DyNTS_AIMock_Fixture[]): DyNTS_AIMock_Fixture[] {
|
|
62
|
+
return [ ...fixtures ].sort((a: DyNTS_AIMock_Fixture, b: DyNTS_AIMock_Fixture) => {
|
|
63
|
+
return this.sortKeyOf(a).localeCompare(this.sortKeyOf(b));
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** A rendezesi kulcs egy fixture-hoz. */
|
|
68
|
+
private static sortKeyOf(fixture: DyNTS_AIMock_Fixture): string {
|
|
69
|
+
return `${fixture.provider}|${fixture.model}|${fixture.modality}|${fixture.inputHash}`;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Rekurziv, kulcs-rendezett stringify (a `JSON.stringify` a beszurasi sorrendet tartana meg — az nem stabil).
|
|
74
|
+
* @param value - a szerializalando ertek
|
|
75
|
+
* @param indent - az aktualis behuzas
|
|
76
|
+
*/
|
|
77
|
+
private static stringify(value: unknown, indent: string): string {
|
|
78
|
+
if (value === null || value === undefined) {
|
|
79
|
+
return `${indent}null`;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (Array.isArray(value)) {
|
|
83
|
+
if (!value.length) {
|
|
84
|
+
return `${indent}[]`;
|
|
85
|
+
}
|
|
86
|
+
const items: string = value
|
|
87
|
+
.map((item: unknown) => this.stringify(item, indent + this.indentUnit))
|
|
88
|
+
.join(',\n');
|
|
89
|
+
|
|
90
|
+
return `${indent}[\n${items}\n${indent}]`;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (typeof value === 'object') {
|
|
94
|
+
// `Object.entries` a generikus `object`-en is mukodik → nincs szukseg `as`-castra.
|
|
95
|
+
const source: Map<string, unknown> = new Map(Object.entries(value));
|
|
96
|
+
const keys: string[] = [ ...source.keys() ]
|
|
97
|
+
.filter((key: string) => source.get(key) !== undefined)
|
|
98
|
+
.sort();
|
|
99
|
+
|
|
100
|
+
if (!keys.length) {
|
|
101
|
+
return `${indent}{}`;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const entries: string = keys
|
|
105
|
+
.map((key: string) => {
|
|
106
|
+
const rendered: string = this.stringify(source.get(key), indent + this.indentUnit).trimStart();
|
|
107
|
+
|
|
108
|
+
return `${indent}${this.indentUnit}${JSON.stringify(key)}: ${rendered}`;
|
|
109
|
+
})
|
|
110
|
+
.join(',\n');
|
|
111
|
+
|
|
112
|
+
return `${indent}{\n${entries}\n${indent}}`;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return `${indent}${JSON.stringify(value)}`;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Az AI-mock által kezelt modalitások.
|
|
3
|
-
*
|
|
4
|
-
* **NEM `enum`, hanem const-objektum + azonos nevű string-literal union** (declaration merging).
|
|
5
|
-
* Ok — a beégetett fixture-fájloknak EGYSZERRE kell két dolgot teljesíteniük:
|
|
6
|
-
* 1. **JSON-érvényesnek** maradniuk (`"modality": "text"`), mert erre épül a `dc ai-mock-list` beolvasója
|
|
7
|
-
* és az end-to-end pipeline-bizonyíték (capture → szerializálás → visszaolvasás → replay);
|
|
8
|
-
* 2. **típushelyesnek** lenniük a csomagon BELÜL is (`DyNTS_AIMock_Fixture[]`).
|
|
9
|
-
*
|
|
10
|
-
* Egy TS `enum` ezt kizárja: a `"text"` string nem értékadható enum-típusnak (`TS2322`), ezért a
|
|
11
|
-
* szerializált fixture nem fordult. A const-objektum + union mindkettőt megadja, és a hívó oldalon a
|
|
12
|
-
* megszokott `DyNTS_AIMock_Modality.text` írásmód VÁLTOZATLANUL működik.
|
|
13
|
-
*
|
|
14
|
-
* (A fájlnév `.enum.ts` marad: fogalmilag továbbra is felsorolás, csak a TS-megvalósítás más.)
|
|
15
|
-
*/
|
|
16
|
-
export const DyNTS_AIMock_Modality = {
|
|
17
|
-
/** Szöveg-completion (chat / LLM). */
|
|
18
|
-
text: 'text',
|
|
19
|
-
/** Embedding-vektor kimenet. */
|
|
20
|
-
embedding: 'embedding',
|
|
21
|
-
/** Kép-generálás (base64 kimenet). */
|
|
22
|
-
image: 'image',
|
|
23
|
-
/** Hang: transcription (audio→szöveg) vagy TTS (szöveg→base64-audio). */
|
|
24
|
-
audio: 'audio',
|
|
25
|
-
} as const;
|
|
26
|
-
|
|
27
|
-
/** A modalitás-értékek uniója — string-literálok, ezért JSON-ból is közvetlenül értékadható. */
|
|
28
|
-
export type DyNTS_AIMock_Modality = typeof DyNTS_AIMock_Modality[keyof typeof DyNTS_AIMock_Modality];
|
|
1
|
+
/**
|
|
2
|
+
* Az AI-mock által kezelt modalitások.
|
|
3
|
+
*
|
|
4
|
+
* **NEM `enum`, hanem const-objektum + azonos nevű string-literal union** (declaration merging).
|
|
5
|
+
* Ok — a beégetett fixture-fájloknak EGYSZERRE kell két dolgot teljesíteniük:
|
|
6
|
+
* 1. **JSON-érvényesnek** maradniuk (`"modality": "text"`), mert erre épül a `dc ai-mock-list` beolvasója
|
|
7
|
+
* és az end-to-end pipeline-bizonyíték (capture → szerializálás → visszaolvasás → replay);
|
|
8
|
+
* 2. **típushelyesnek** lenniük a csomagon BELÜL is (`DyNTS_AIMock_Fixture[]`).
|
|
9
|
+
*
|
|
10
|
+
* Egy TS `enum` ezt kizárja: a `"text"` string nem értékadható enum-típusnak (`TS2322`), ezért a
|
|
11
|
+
* szerializált fixture nem fordult. A const-objektum + union mindkettőt megadja, és a hívó oldalon a
|
|
12
|
+
* megszokott `DyNTS_AIMock_Modality.text` írásmód VÁLTOZATLANUL működik.
|
|
13
|
+
*
|
|
14
|
+
* (A fájlnév `.enum.ts` marad: fogalmilag továbbra is felsorolás, csak a TS-megvalósítás más.)
|
|
15
|
+
*/
|
|
16
|
+
export const DyNTS_AIMock_Modality = {
|
|
17
|
+
/** Szöveg-completion (chat / LLM). */
|
|
18
|
+
text: 'text',
|
|
19
|
+
/** Embedding-vektor kimenet. */
|
|
20
|
+
embedding: 'embedding',
|
|
21
|
+
/** Kép-generálás (base64 kimenet). */
|
|
22
|
+
image: 'image',
|
|
23
|
+
/** Hang: transcription (audio→szöveg) vagy TTS (szöveg→base64-audio). */
|
|
24
|
+
audio: 'audio',
|
|
25
|
+
} as const;
|
|
26
|
+
|
|
27
|
+
/** A modalitás-értékek uniója — string-literálok, ezért JSON-ból is közvetlenül értékadható. */
|
|
28
|
+
export type DyNTS_AIMock_Modality = typeof DyNTS_AIMock_Modality[keyof typeof DyNTS_AIMock_Modality];
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Egy mock modalitás-hívás bemenete — a modalitást a hívott metódus adja (`chatCompletion` → text stb.),
|
|
3
|
-
* ezért itt NINCS `modality` mező (v.ö. `DyNTS_AIMock_Request`, ami a teljes match-kulcs bemenete).
|
|
4
|
-
*/
|
|
5
|
-
export interface DyNTS_AIMock_CallInput {
|
|
6
|
-
/** Provider-azonosító (pl. 'open-ai'). */
|
|
7
|
-
provider: string;
|
|
8
|
-
/** Pontos API modell-azonosító (pl. 'gpt-4o-mini'). */
|
|
9
|
-
model: string;
|
|
10
|
-
/** Provider-specifikus config-paraméterek. */
|
|
11
|
-
config?: Record<string, unknown>;
|
|
12
|
-
/** Modalitás-függő bemenet. */
|
|
13
|
-
input: unknown;
|
|
14
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Egy mock modalitás-hívás bemenete — a modalitást a hívott metódus adja (`chatCompletion` → text stb.),
|
|
3
|
+
* ezért itt NINCS `modality` mező (v.ö. `DyNTS_AIMock_Request`, ami a teljes match-kulcs bemenete).
|
|
4
|
+
*/
|
|
5
|
+
export interface DyNTS_AIMock_CallInput {
|
|
6
|
+
/** Provider-azonosító (pl. 'open-ai'). */
|
|
7
|
+
provider: string;
|
|
8
|
+
/** Pontos API modell-azonosító (pl. 'gpt-4o-mini'). */
|
|
9
|
+
model: string;
|
|
10
|
+
/** Provider-specifikus config-paraméterek. */
|
|
11
|
+
config?: Record<string, unknown>;
|
|
12
|
+
/** Modalitás-függő bemenet. */
|
|
13
|
+
input: unknown;
|
|
14
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { DyNTS_AI_ProviderError } from '../../../../_models/interfaces/dynts-ai-provider-error.interface';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Provider-faithful hiba egy fixture-höz — a mock UGYANEZT reprodukálja, mintha a valódi provider dobná
|
|
5
|
-
* (pl. reasoning-modell + `temperature` → OpenAI HTTP 400 `unsupported_parameter`).
|
|
6
|
-
*
|
|
7
|
-
* **Alias** a modul-szintű `DyNTS_AI_ProviderError`-ra (SSoT): a Layer A validátor
|
|
8
|
-
* (`DyNTS_AI_ModelConfig_Validator`) és a Layer B fixture-ök UGYANAZT a hiba-alakot használják — nincs
|
|
9
|
-
* párhuzamos shape. A név megmarad, hogy az ai-mock oldali olvashatóság ne romoljon.
|
|
10
|
-
*/
|
|
11
|
-
export type DyNTS_AIMock_Error = DyNTS_AI_ProviderError;
|
|
1
|
+
import { DyNTS_AI_ProviderError } from '../../../../_models/interfaces/dynts-ai-provider-error.interface';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Provider-faithful hiba egy fixture-höz — a mock UGYANEZT reprodukálja, mintha a valódi provider dobná
|
|
5
|
+
* (pl. reasoning-modell + `temperature` → OpenAI HTTP 400 `unsupported_parameter`).
|
|
6
|
+
*
|
|
7
|
+
* **Alias** a modul-szintű `DyNTS_AI_ProviderError`-ra (SSoT): a Layer A validátor
|
|
8
|
+
* (`DyNTS_AI_ModelConfig_Validator`) és a Layer B fixture-ök UGYANAZT a hiba-alakot használják — nincs
|
|
9
|
+
* párhuzamos shape. A név megmarad, hogy az ai-mock oldali olvashatóság ne romoljon.
|
|
10
|
+
*/
|
|
11
|
+
export type DyNTS_AIMock_Error = DyNTS_AI_ProviderError;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { DyNTS_AIMock_Modality } from '../../_enums/aim-modality.enum';
|
|
2
|
-
import { DyNTS_AIMock_Error } from './aim-error.interface';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Egy beégetett fixture-rekord (git-tracked konstans, D6). Az `output` XOR `error` közül PONTOSAN egy van:
|
|
6
|
-
* sikeres válasz VAGY provider-faithful hiba. Az `inputHash` a normalizált match-kulcs input-szegmense
|
|
7
|
-
* (l. `DyNTS_AIMock_FixtureMatch_Util.buildInputHash`). A `capturedAt` / `sourceModel` audit-nyomvonal (D4).
|
|
8
|
-
*/
|
|
9
|
-
export interface DyNTS_AIMock_Fixture {
|
|
10
|
-
/** Provider-azonosító. */
|
|
11
|
-
provider: string;
|
|
12
|
-
/** Pontos API modell-azonosító. */
|
|
13
|
-
model: string;
|
|
14
|
-
/** A fixture modalitása. */
|
|
15
|
-
modality: DyNTS_AIMock_Modality;
|
|
16
|
-
/** A rögzített config-paraméterek (a match-kulcs része). */
|
|
17
|
-
config?: Record<string, unknown>;
|
|
18
|
-
/** A normalizált input-hash (deterministic input→fixture feloldáshoz). */
|
|
19
|
-
inputHash: string;
|
|
20
|
-
/** A nyers bemenet (ember-olvasható referencia; a match az `inputHash`-en megy). */
|
|
21
|
-
input: unknown;
|
|
22
|
-
/** Sikeres kimenet (modalitás-függő). Az `error`-ral kölcsönösen kizáró. */
|
|
23
|
-
output?: unknown;
|
|
24
|
-
/** Provider-faithful hiba. Az `output`-tal kölcsönösen kizáró. */
|
|
25
|
-
error?: DyNTS_AIMock_Error;
|
|
26
|
-
/** A beégetés időbélyege (ISO). */
|
|
27
|
-
capturedAt: string;
|
|
28
|
-
/** A tényleges generáló modell (ha eltér a kért aliastól). */
|
|
29
|
-
sourceModel?: string;
|
|
30
|
-
}
|
|
1
|
+
import { DyNTS_AIMock_Modality } from '../../_enums/aim-modality.enum';
|
|
2
|
+
import { DyNTS_AIMock_Error } from './aim-error.interface';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Egy beégetett fixture-rekord (git-tracked konstans, D6). Az `output` XOR `error` közül PONTOSAN egy van:
|
|
6
|
+
* sikeres válasz VAGY provider-faithful hiba. Az `inputHash` a normalizált match-kulcs input-szegmense
|
|
7
|
+
* (l. `DyNTS_AIMock_FixtureMatch_Util.buildInputHash`). A `capturedAt` / `sourceModel` audit-nyomvonal (D4).
|
|
8
|
+
*/
|
|
9
|
+
export interface DyNTS_AIMock_Fixture {
|
|
10
|
+
/** Provider-azonosító. */
|
|
11
|
+
provider: string;
|
|
12
|
+
/** Pontos API modell-azonosító. */
|
|
13
|
+
model: string;
|
|
14
|
+
/** A fixture modalitása. */
|
|
15
|
+
modality: DyNTS_AIMock_Modality;
|
|
16
|
+
/** A rögzített config-paraméterek (a match-kulcs része). */
|
|
17
|
+
config?: Record<string, unknown>;
|
|
18
|
+
/** A normalizált input-hash (deterministic input→fixture feloldáshoz). */
|
|
19
|
+
inputHash: string;
|
|
20
|
+
/** A nyers bemenet (ember-olvasható referencia; a match az `inputHash`-en megy). */
|
|
21
|
+
input: unknown;
|
|
22
|
+
/** Sikeres kimenet (modalitás-függő). Az `error`-ral kölcsönösen kizáró. */
|
|
23
|
+
output?: unknown;
|
|
24
|
+
/** Provider-faithful hiba. Az `output`-tal kölcsönösen kizáró. */
|
|
25
|
+
error?: DyNTS_AIMock_Error;
|
|
26
|
+
/** A beégetés időbélyege (ISO). */
|
|
27
|
+
capturedAt: string;
|
|
28
|
+
/** A tényleges generáló modell (ha eltér a kért aliastól). */
|
|
29
|
+
sourceModel?: string;
|
|
30
|
+
}
|