@futdevpro/nts-dynamo 1.15.157 → 1.15.160
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/LICENSE +17 -17
- package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.d.ts +71 -0
- package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.d.ts.map +1 -0
- package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.js +3 -0
- package/build/_modules/privacy-lifecycle/_models/privacy-export-artifact.interface.js.map +1 -0
- package/build/_modules/privacy-lifecycle/index.d.ts +3 -0
- package/build/_modules/privacy-lifecycle/index.d.ts.map +1 -1
- package/build/_modules/privacy-lifecycle/index.js +5 -1
- package/build/_modules/privacy-lifecycle/index.js.map +1 -1
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.d.ts +48 -0
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.d.ts.map +1 -0
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.js +332 -0
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.control-service.js.map +1 -0
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.d.ts +25 -0
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.d.ts.map +1 -0
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.js +126 -0
- package/build/_modules/privacy-lifecycle/privacy-export-artifact.mongo-store.js.map +1 -0
- package/package.json +11 -4
- package/.c8rc.json +0 -26
- package/.copilot/patterns.json +0 -8
- package/.cursor/rules/__assistant_guide.mdc +0 -30
- package/.cursor/rules/__main.mdc +0 -64
- package/.cursor/rules/_ag_backend-structure.mdc +0 -86
- package/.cursor/rules/_ag_backend.mdc +0 -16
- package/.cursor/rules/_ag_debug.mdc +0 -8
- package/.cursor/rules/_ag_documentation_writing_rules.mdc +0 -372
- package/.cursor/rules/_ag_file-refactoring.mdc +0 -113
- package/.cursor/rules/_ag_fixes_rules.mdc +0 -6
- package/.cursor/rules/_ag_frontend-structure.mdc +0 -87
- package/.cursor/rules/_ag_frontend.mdc +0 -40
- package/.cursor/rules/_ag_import-rules.mdc +0 -45
- package/.cursor/rules/_ag_naming.mdc +0 -116
- package/.cursor/rules/_ag_running_commands.mdc +0 -5
- package/.cursor/rules/_ag_server-controller.mdc +0 -6
- package/.cursor/rules/_ag_should-be.mdc +0 -7
- package/.cursor/rules/_ag_swearing.mdc +0 -47
- package/.cursor/rules/ai_development_guide.md +0 -61
- package/.cursor/rules/ai_directives.md +0 -114
- package/.cursor/rules/cursor-rules.md +0 -160
- package/.cursor/rules/default-command.mdc +0 -465
- package/.cursor/rules/error_code_pattern.md +0 -40
- package/.cursor/rules/saved rule mcp server use.md +0 -16
- package/.dynamo/pipeline.cicd.config.json +0 -190
- package/.dynamo/version-bump.config.json +0 -5
- package/.github/workflows/main.yml +0 -438
- package/.husky/pre-commit +0 -3
- package/.vscode/settings.json +0 -11
- package/BuildPackage.bat +0 -1
- package/HOWTO.md +0 -15
- package/__documentations/2026-04-28-logs-module.md +0 -49
- package/__documentations/2026-05-17-oai-compatible-providers.md +0 -229
- package/__documentations/2026-05-17-static-client-serving-howto.md +0 -144
- package/__documentations/2026-06-01-fr041-cors-middleware.md +0 -96
- package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +0 -81
- package/__documentations/2026-06-15-fr193-memory-guard.md +0 -73
- package/__documentations/2026-08-08-fr292-app-version-header.md +0 -38
- package/__documentations/2026-08-14-field-encryption-mongoose-document-spread.md +0 -124
- package/__documentations/2026-08-18-artifact-compiler.md +0 -46
- package/__documentations/2026-08-18-mongo-transaction-control-service.md +0 -82
- package/__documentations/2026-08-18-standalone-account-security-and-privacy-bedrock.md +0 -132
- package/__documentations/2026-08-21-distributed-rate-limit-bfr-ctm-010.md +0 -59
- package/__documentations/2026-08-22-bfr-ctm-018-content-free-endpoint-errors.md +0 -54
- package/__documentations/2026-08-22-bfr-ctm-020-content-free-request-telemetry.md +0 -65
- package/__documentations/2026-08-22-content-free-process-error-boundary.md +0 -111
- package/__documentations/2026-08-22-npm-token-state-classifier.md +0 -92
- package/__documentations/nts-integration-tests-2026-03-17.md +0 -26
- package/__documentations/plans/BEDROCK-HYPERPLAN.md +0 -95
- package/_specifications/BACKLOG.md +0 -92
- package/_specifications/TODO.md +0 -15
- package/_specifications/agent.md +0 -138
- package/eslint.config.js +0 -3
- package/nodemon.json +0 -24
- package/pnpm-workspace.yaml +0 -6
- package/scripts/_seed-out/aim-seed.fixtures.ts +0 -161
- package/scripts/_seed-out/image-raw.json +0 -1
- package/scripts/_seed-out/llm-expand-raw.json +0 -60
- package/scripts/_seed-out/sample-image.png +0 -0
- package/scripts/_seed-out/seed-raw.json +0 -153
- package/scripts/ai-fixture-seed.js +0 -126
- package/scripts/run-coverage-tests.js +0 -28
- package/spec/support/helpers/spec-reporter-loader.js +0 -359
- package/spec/support/helpers/ts-node-helper.js +0 -93
- package/spec/support/jasmine.coverage.json +0 -24
- package/spec/support/jasmine.json +0 -24
- package/src/_assets/dynamo-nts-logo-128.png +0 -0
- package/src/_assets/dynamo-nts-logo-256.png +0 -0
- package/src/_assets/dynamo-nts-logo-512.png +0 -0
- package/src/_assets/dynamo-nts-logo-64.png +0 -0
- package/src/_collections/app-version-header.util.spec.ts +0 -108
- package/src/_collections/app-version-header.util.ts +0 -74
- package/src/_collections/archive-service-registry.const.ts +0 -21
- package/src/_collections/archive.util.spec.ts +0 -57
- package/src/_collections/archive.util.ts +0 -18
- package/src/_collections/atlas-default-db-options.const.ts +0 -10
- package/src/_collections/client-safe-error.util.spec.ts +0 -151
- package/src/_collections/client-safe-error.util.ts +0 -107
- package/src/_collections/default-fallback-cache-max-age.const.spec.ts +0 -11
- package/src/_collections/default-fallback-cache-max-age.const.ts +0 -2
- package/src/_collections/default-not-found-page.const.spec.ts +0 -19
- package/src/_collections/default-not-found-page.const.ts +0 -22
- package/src/_collections/default-socket-path.const.spec.ts +0 -12
- package/src/_collections/default-socket-path.const.ts +0 -2
- package/src/_collections/field-encryption.util.spec.ts +0 -195
- package/src/_collections/field-encryption.util.ts +0 -222
- package/src/_collections/get-environment-settings.util.spec.ts +0 -210
- package/src/_collections/get-environment-settings.util.ts +0 -49
- package/src/_collections/global-settings.const.ts +0 -126
- package/src/_collections/load-shed.util.spec.ts +0 -62
- package/src/_collections/load-shed.util.ts +0 -51
- package/src/_collections/mongo-reconnect-guard.util.spec.ts +0 -52
- package/src/_collections/mongo-reconnect-guard.util.ts +0 -172
- package/src/_collections/npm-token-check.util.spec.ts +0 -218
- package/src/_collections/npm-token-check.util.ts +0 -327
- package/src/_collections/sample.env +0 -21
- package/src/_collections/security-headers.util.spec.ts +0 -98
- package/src/_collections/security-headers.util.ts +0 -96
- package/src/_collections/signed-url.util.spec.ts +0 -198
- package/src/_collections/signed-url.util.ts +0 -170
- package/src/_collections/star.controller.spec.ts +0 -224
- package/src/_collections/star.controller.ts +0 -130
- package/src/_collections/static-cache-control.util.spec.ts +0 -47
- package/src/_collections/static-cache-control.util.ts +0 -25
- package/src/_enums/data-model-type.enum.ts +0 -14
- package/src/_enums/data-service-function.enum.ts +0 -24
- package/src/_enums/predefined-data-types.enum.ts +0 -17
- package/src/_enums/route-security.enum.ts +0 -12
- package/src/_models/control-models/api-call-params.control-model.spec.ts +0 -152
- package/src/_models/control-models/api-call-params.control-model.ts +0 -142
- package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +0 -52
- package/src/_models/control-models/app-ext-system-controls.control-model.ts +0 -9
- package/src/_models/control-models/app-params.control-model.spec.ts +0 -229
- package/src/_models/control-models/app-params.control-model.ts +0 -137
- package/src/_models/control-models/app-system-controls.control-model.spec.ts +0 -31
- package/src/_models/control-models/app-system-controls.control-model.ts +0 -9
- package/src/_models/control-models/endpoint-params.control-model.spec.ts +0 -754
- package/src/_models/control-models/endpoint-params.control-model.ts +0 -575
- package/src/_models/control-models/http-settings.control-model.spec.ts +0 -77
- package/src/_models/control-models/http-settings.control-model.ts +0 -37
- package/src/_models/control-models/system-control.control-model.spec.ts +0 -27
- package/src/_models/control-models/system-control.control-model.ts +0 -12
- package/src/_models/data-models/schema-migration.data-model.ts +0 -50
- package/src/_models/interfaces/app-version-header-settings.interface.ts +0 -17
- package/src/_models/interfaces/certification-settings.interface.ts +0 -7
- package/src/_models/interfaces/compare-data-options.interface.ts +0 -27
- package/src/_models/interfaces/compare-data-result.interface.ts +0 -12
- package/src/_models/interfaces/cors-settings.interface.spec.ts +0 -52
- package/src/_models/interfaces/cors-settings.interface.ts +0 -56
- package/src/_models/interfaces/db-query-options.interface.ts +0 -33
- package/src/_models/interfaces/environment-settings.interface.ts +0 -59
- package/src/_models/interfaces/global-log-settings.interface.ts +0 -171
- package/src/_models/interfaces/global-service-settings.interface.ts +0 -47
- package/src/_models/interfaces/global-settings.interface.ts +0 -294
- package/src/_models/interfaces/migration-entry.interface.ts +0 -19
- package/src/_models/interfaces/mongo-transaction-settings.interface.ts +0 -9
- package/src/_models/interfaces/request-telemetry-settings.interface.ts +0 -9
- package/src/_models/interfaces/request-telemetry-snapshot.interface.ts +0 -30
- package/src/_models/interfaces/routing-module-settings.interface.ts +0 -21
- package/src/_models/interfaces/security-headers-settings.interface.ts +0 -50
- package/src/_models/interfaces/signed-url-verify-result.interface.ts +0 -13
- package/src/_models/interfaces/static-client-settings.interface.spec.ts +0 -29
- package/src/_models/interfaces/static-client-settings.interface.ts +0 -36
- package/src/_models/types/db-update.type.ts +0 -100
- package/src/_modules/account-security/_enums/account-challenge-purpose.type-enum.ts +0 -5
- package/src/_modules/account-security/_enums/account-refresh-token-state.type-enum.ts +0 -6
- package/src/_modules/account-security/_enums/account-session-state.type-enum.ts +0 -6
- package/src/_modules/account-security/_models/account-challenge-adapter.interface.ts +0 -17
- package/src/_modules/account-security/_models/account-challenge-issued.interface.ts +0 -6
- package/src/_modules/account-security/_models/account-challenge-record.interface.ts +0 -13
- package/src/_modules/account-security/_models/account-challenge-result.interface.ts +0 -8
- package/src/_modules/account-security/_models/account-challenge-settings.interface.ts +0 -9
- package/src/_modules/account-security/_models/account-password-policy.interface.ts +0 -11
- package/src/_modules/account-security/_models/account-password-verification.interface.ts +0 -5
- package/src/_modules/account-security/_models/account-refresh-token-record.interface.ts +0 -13
- package/src/_modules/account-security/_models/account-session-adapter.interface.ts +0 -19
- package/src/_modules/account-security/_models/account-session-claims.interface.ts +0 -7
- package/src/_modules/account-security/_models/account-session-context.interface.ts +0 -6
- package/src/_modules/account-security/_models/account-session-create.interface.ts +0 -8
- package/src/_modules/account-security/_models/account-session-record.interface.ts +0 -21
- package/src/_modules/account-security/_models/account-session-rotate.interface.ts +0 -11
- package/src/_modules/account-security/_models/account-session-settings.interface.ts +0 -11
- package/src/_modules/account-security/_models/account-session-token-pair.interface.ts +0 -8
- package/src/_modules/account-security/_models/account-session-view.interface.ts +0 -13
- package/src/_modules/account-security/account-challenge.control-service.spec.ts +0 -195
- package/src/_modules/account-security/account-challenge.control-service.ts +0 -164
- package/src/_modules/account-security/account-password.control-service.spec.ts +0 -96
- package/src/_modules/account-security/account-password.control-service.ts +0 -288
- package/src/_modules/account-security/account-session.control-service.spec.ts +0 -294
- package/src/_modules/account-security/account-session.control-service.ts +0 -376
- package/src/_modules/account-security/index.ts +0 -31
- package/src/_modules/admin-auth/_models/admin-api-key-config.interface.ts +0 -33
- package/src/_modules/admin-auth/admin-api-key.auth-service.spec.ts +0 -200
- package/src/_modules/admin-auth/admin-api-key.auth-service.ts +0 -220
- package/src/_modules/admin-auth/index.ts +0 -2
- package/src/_modules/ai/_collections/ai-model-config-validator.util.spec.ts +0 -150
- package/src/_modules/ai/_collections/ai-model-config-validator.util.ts +0 -131
- package/src/_modules/ai/_collections/ai-provider-error.util.ts +0 -144
- package/src/_modules/ai/_models/ai-input-interfaces.ts +0 -117
- package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +0 -16
- package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +0 -14
- package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +0 -56
- package/src/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.ts +0 -16
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.ts +0 -72
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.ts +0 -71
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.ts +0 -57
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.ts +0 -60
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.ts +0 -56
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.ts +0 -117
- package/src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts +0 -28
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.ts +0 -14
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.ts +0 -11
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.ts +0 -30
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.ts +0 -19
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.ts +0 -20
- package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.ts +0 -115
- package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts +0 -233
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.ts +0 -134
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.ts +0 -127
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.ts +0 -105
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.ts +0 -50
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.ts +0 -65
- package/src/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.ts +0 -92
- package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.ts +0 -112
- package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.ts +0 -155
- package/src/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.ts +0 -649
- package/src/_modules/ai/_modules/ai-mock/index.ts +0 -47
- package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +0 -138
- package/src/_modules/ai/_modules/anthropic/index.ts +0 -5
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +0 -242
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +0 -639
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +0 -295
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +0 -552
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +0 -209
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +0 -85
- package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +0 -8
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +0 -146
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +0 -163
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +0 -100
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +0 -68
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +0 -18
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +0 -19
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +0 -25
- package/src/_modules/ai/_modules/document-ai/index.ts +0 -30
- package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +0 -189
- package/src/_modules/ai/_modules/fdp-ai/index.ts +0 -5
- package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +0 -9
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +0 -83
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +0 -76
- package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +0 -45
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +0 -8
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +0 -7
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +0 -57
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +0 -293
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts +0 -572
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +0 -342
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts +0 -435
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +0 -550
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +0 -631
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +0 -332
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +0 -132
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +0 -462
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +0 -635
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +0 -489
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +0 -173
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +0 -1085
- package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +0 -157
- package/src/_modules/ai/_modules/open-ai/index.ts +0 -74
- package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +0 -110
- package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +0 -114
- package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +0 -98
- package/src/_modules/ai/_services/ai-embedding.service-base.ts +0 -48
- package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +0 -229
- package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +0 -68
- package/src/_modules/ai/_services/ai-llm.service-base.reconciler.spec.ts +0 -133
- package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +0 -250
- package/src/_modules/ai/_services/ai-llm.service-base.ts +0 -599
- package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +0 -158
- package/src/_modules/ai/_services/ai-provider.service-base.ts +0 -67
- package/src/_modules/ai/_services/ai-user-key.service-base.ts +0 -59
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +0 -197
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +0 -399
- package/src/_modules/ai/index.ts +0 -33
- package/src/_modules/artifact-compiler/_enums/artifact-compile-outcome.type-enum.ts +0 -5
- package/src/_modules/artifact-compiler/_enums/artifact-compile-stage.type-enum.ts +0 -8
- package/src/_modules/artifact-compiler/_enums/artifact-retry-class.type-enum.ts +0 -6
- package/src/_modules/artifact-compiler/_models/artifact-compile.interface.ts +0 -35
- package/src/_modules/artifact-compiler/artifact-compiler.control-service.spec.ts +0 -151
- package/src/_modules/artifact-compiler/artifact-compiler.control-service.ts +0 -356
- package/src/_modules/artifact-compiler/index.ts +0 -9
- package/src/_modules/assistant/_collections/ass-global-settings.const.ts +0 -13
- package/src/_modules/assistant/_collections/ass.util.spec.ts +0 -176
- package/src/_modules/assistant/_collections/ass.util.ts +0 -50
- package/src/_modules/assistant/_models/ass-global-settings.interface.ts +0 -15
- package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +0 -140
- package/src/_modules/assistant/_services/ass-io.control-service.ts +0 -74
- package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +0 -192
- package/src/_modules/assistant/_services/ass-main.control-service.ts +0 -107
- package/src/_modules/assistant/index.ts +0 -19
- package/src/_modules/bot/_collections/bot-default-commands.const.ts +0 -12
- package/src/_modules/bot/_collections/bot-global-settings.const.ts +0 -39
- package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +0 -62
- package/src/_modules/bot/_models/bot-command.interface.ts +0 -8
- package/src/_modules/bot/_models/bot-global-settings.interface.ts +0 -96
- package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +0 -6
- package/src/_modules/bot/_models/bot-last-message-date.interface.ts +0 -5
- package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +0 -90
- package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +0 -41
- package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +0 -10
- package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +0 -431
- package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts +0 -641
- package/src/_modules/bot/_modules/discord-bot/index.ts +0 -12
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +0 -160
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +0 -55
- package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +0 -15
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +0 -374
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +0 -447
- package/src/_modules/bot/_modules/dynamo-bot/index.ts +0 -15
- package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +0 -9
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +0 -344
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +0 -197
- package/src/_modules/bot/_modules/slack-bot/index.ts +0 -12
- package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +0 -9
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +0 -345
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +0 -197
- package/src/_modules/bot/_modules/teams-bot/index.ts +0 -11
- package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +0 -116
- package/src/_modules/bot/_services/bot-commands.control-service.ts +0 -158
- package/src/_modules/bot/_services/bot-io.control-service.spec.ts +0 -285
- package/src/_modules/bot/_services/bot-io.control-service.ts +0 -329
- package/src/_modules/bot/_services/bot-main.control-service.spec.ts +0 -208
- package/src/_modules/bot/_services/bot-main.control-service.ts +0 -489
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +0 -349
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.ts +0 -158
- package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +0 -111
- package/src/_modules/bot/_services/bot-routines.control-service.ts +0 -78
- package/src/_modules/bot/index.ts +0 -37
- package/src/_modules/custom-data/custom-data.controller.spec.ts +0 -49
- package/src/_modules/custom-data/custom-data.controller.ts +0 -67
- package/src/_modules/custom-data/custom-data.data-service.spec.ts +0 -54
- package/src/_modules/custom-data/custom-data.data-service.ts +0 -22
- package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +0 -28
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +0 -24
- package/src/_modules/custom-data/index.ts +0 -9
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +0 -176
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +0 -203
- package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +0 -33
- package/src/_modules/data-readers/index.ts +0 -11
- package/src/_modules/defaults/_collections/default-endpoints.util.ts +0 -487
- package/src/_modules/defaults/_models/default-user.data-model.ts +0 -72
- package/src/_modules/defaults/_services/default-auth.service.spec.ts +0 -269
- package/src/_modules/defaults/_services/default-auth.service.ts +0 -177
- package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +0 -42
- package/src/_modules/defaults/_services/default-socket-events.service.ts +0 -61
- package/src/_modules/defaults/_services/default-user.data-service.spec.ts +0 -187
- package/src/_modules/defaults/_services/default-user.data-service.ts +0 -98
- package/src/_modules/defaults/index.ts +0 -17
- package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +0 -19
- package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +0 -366
- package/src/_modules/discord-assistant/_collections/dias.util.ts +0 -133
- package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +0 -20
- package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +0 -53
- package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +0 -177
- package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +0 -108
- package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +0 -69
- package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +0 -22
- package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +0 -27
- package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +0 -195
- package/src/_modules/discord-assistant/_services/dias.service-base.ts +0 -77
- package/src/_modules/discord-assistant/index.ts +0 -38
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +0 -34
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +0 -11
- package/src/_modules/discord-assistant-voiced/index.ts +0 -36
- package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +0 -17
- package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +0 -56
- package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +0 -214
- package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +0 -387
- package/src/_modules/discord-bot/_models/dibo-command.interface.ts +0 -12
- package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +0 -98
- package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +0 -8
- package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +0 -6
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +0 -154
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +0 -153
- package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +0 -264
- package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +0 -306
- package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +0 -408
- package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +0 -488
- package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +0 -105
- package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +0 -97
- package/src/_modules/discord-bot/index.ts +0 -36
- package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +0 -35
- package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +0 -60
- package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +0 -17
- package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +0 -159
- package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +0 -206
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +0 -418
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +0 -276
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +0 -480
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +0 -416
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +0 -214
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +0 -186
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +0 -167
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +0 -130
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +0 -509
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +0 -323
- package/src/_modules/local-vector-search/index.ts +0 -17
- package/src/_modules/logs/_models/file-log-entry.interface.ts +0 -13
- package/src/_modules/logs/_models/file-log-read-result.interface.ts +0 -37
- package/src/_modules/logs/file-log.service.spec.ts +0 -341
- package/src/_modules/logs/file-log.service.ts +0 -466
- package/src/_modules/logs/file-logs.controller.spec.ts +0 -245
- package/src/_modules/logs/file-logs.controller.ts +0 -165
- package/src/_modules/logs/get-file-logs-routing-module.util.ts +0 -51
- package/src/_modules/logs/get-logs-routing-module.util.ts +0 -36
- package/src/_modules/logs/index.ts +0 -11
- package/src/_modules/logs/log-buffer.service.ts +0 -101
- package/src/_modules/logs/logs.controller.ts +0 -109
- package/src/_modules/logs/logs.service.ts +0 -100
- package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +0 -111
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +0 -151
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +0 -125
- package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +0 -168
- package/src/_modules/mcp/index.ts +0 -13
- package/src/_modules/messaging/README.md +0 -354
- package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +0 -26
- package/src/_modules/messaging/_collections/msg-global-settings.const.ts +0 -22
- package/src/_modules/messaging/_collections/msg.util.spec.ts +0 -226
- package/src/_modules/messaging/_collections/msg.util.ts +0 -83
- package/src/_modules/messaging/_models/msg-global-settings.interface.ts +0 -37
- package/src/_modules/messaging/_services/msg-conversation.data-service.ts +0 -146
- package/src/_modules/messaging/_services/msg-events.service.spec.ts +0 -219
- package/src/_modules/messaging/_services/msg-events.service.ts +0 -267
- package/src/_modules/messaging/_services/msg-integration.control-service.ts +0 -180
- package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +0 -147
- package/src/_modules/messaging/_services/msg-main.control-service.ts +0 -572
- package/src/_modules/messaging/_services/msg-message.data-service.ts +0 -129
- package/src/_modules/messaging/_services/msg.controller.spec.ts +0 -201
- package/src/_modules/messaging/_services/msg.controller.ts +0 -370
- package/src/_modules/messaging/index.ts +0 -30
- package/src/_modules/mock/app-extended-server.mock.ts +0 -201
- package/src/_modules/mock/app-integration-test.mock.ts +0 -51
- package/src/_modules/mock/app-params.mock.spec.ts +0 -21
- package/src/_modules/mock/app-params.mock.ts +0 -9
- package/src/_modules/mock/app-server.mock.ts +0 -188
- package/src/_modules/mock/auth-service.mock.spec.ts +0 -47
- package/src/_modules/mock/auth-service.mock.ts +0 -28
- package/src/_modules/mock/controller.mock.spec.ts +0 -26
- package/src/_modules/mock/controller.mock.ts +0 -16
- package/src/_modules/mock/data-model.mock.spec.ts +0 -111
- package/src/_modules/mock/data-model.mock.ts +0 -82
- package/src/_modules/mock/email-service-collection.mock.spec.ts +0 -24
- package/src/_modules/mock/email-service-collection.mock.ts +0 -15
- package/src/_modules/mock/email-service.mock.spec.ts +0 -17
- package/src/_modules/mock/email-service.mock.ts +0 -20
- package/src/_modules/mock/email-template.mock.html +0 -15
- package/src/_modules/mock/endpoint.mock.ts +0 -91
- package/src/_modules/mock/socket-client.mock.spec.ts +0 -40
- package/src/_modules/mock/socket-client.mock.ts +0 -45
- package/src/_modules/mock/socket-server.mock.spec.ts +0 -44
- package/src/_modules/mock/socket-server.mock.ts +0 -46
- package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +0 -107
- package/src/_modules/oauth2/_routes/oauth2.controller.ts +0 -99
- package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +0 -254
- package/src/_modules/oauth2/_services/oauth2.auth-service.ts +0 -232
- package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +0 -585
- package/src/_modules/oauth2/_services/oauth2.control-service.ts +0 -654
- package/src/_modules/oauth2/index.ts +0 -17
- package/src/_modules/privacy-lifecycle/_enums/privacy-consent-decision.type-enum.ts +0 -5
- package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-action.type-enum.ts +0 -10
- package/src/_modules/privacy-lifecycle/_enums/privacy-contributor-outcome.type-enum.ts +0 -7
- package/src/_modules/privacy-lifecycle/_enums/privacy-request-state.type-enum.ts +0 -15
- package/src/_modules/privacy-lifecycle/_enums/privacy-request.type-enum.ts +0 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-input.interface.ts +0 -12
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-persistence-result.interface.ts +0 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-record.interface.ts +0 -15
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-result.interface.ts +0 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-consent-view.interface.ts +0 -13
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor-context.interface.ts +0 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor-outcome.interface.ts +0 -14
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor-plan.interface.ts +0 -8
- package/src/_modules/privacy-lifecycle/_models/privacy-contributor.interface.ts +0 -17
- package/src/_modules/privacy-lifecycle/_models/privacy-ledger-adapter.interface.ts +0 -21
- package/src/_modules/privacy-lifecycle/_models/privacy-ledger-result.interface.ts +0 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-ledger-settings.interface.ts +0 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-input.interface.ts +0 -10
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-persistence-result.interface.ts +0 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-result.interface.ts +0 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance-view.interface.ts +0 -11
- package/src/_modules/privacy-lifecycle/_models/privacy-legal-acceptance.interface.ts +0 -13
- package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-adapter.interface.ts +0 -19
- package/src/_modules/privacy-lifecycle/_models/privacy-lifecycle-settings.interface.ts +0 -9
- package/src/_modules/privacy-lifecycle/_models/privacy-request-create-result.interface.ts +0 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-request-open.interface.ts +0 -10
- package/src/_modules/privacy-lifecycle/_models/privacy-request-persistence-create-result.interface.ts +0 -7
- package/src/_modules/privacy-lifecycle/_models/privacy-request-record.interface.ts +0 -21
- package/src/_modules/privacy-lifecycle/_models/privacy-request-result.interface.ts +0 -8
- package/src/_modules/privacy-lifecycle/_models/privacy-request-view.interface.ts +0 -20
- package/src/_modules/privacy-lifecycle/index.ts +0 -40
- package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.spec.ts +0 -206
- package/src/_modules/privacy-lifecycle/privacy-ledger.control-service.ts +0 -253
- package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.spec.ts +0 -353
- package/src/_modules/privacy-lifecycle/privacy-lifecycle.control-service.ts +0 -586
- package/src/_modules/rate-limit/_enums/rate-limit-store-kind.type-enum.ts +0 -5
- package/src/_modules/rate-limit/_models/rate-limit-config.interface.ts +0 -82
- package/src/_modules/rate-limit/_models/rate-limit-consume-request.interface.ts +0 -9
- package/src/_modules/rate-limit/_models/rate-limit-consume-result.interface.ts +0 -6
- package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +0 -16
- package/src/_modules/rate-limit/_models/rate-limit-store.interface.ts +0 -9
- package/src/_modules/rate-limit/index.ts +0 -8
- package/src/_modules/rate-limit/rate-limit-in-memory.store.ts +0 -91
- package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +0 -488
- package/src/_modules/rate-limit/rate-limit.middleware.ts +0 -504
- package/src/_modules/scheduler/_models/scheduler-job.interface.ts +0 -35
- package/src/_modules/scheduler/get-scheduler-routing-module.util.ts +0 -33
- package/src/_modules/scheduler/index.ts +0 -8
- package/src/_modules/scheduler/scheduler.controller.spec.ts +0 -42
- package/src/_modules/scheduler/scheduler.controller.ts +0 -69
- package/src/_modules/scheduler/scheduler.service.spec.ts +0 -141
- package/src/_modules/scheduler/scheduler.service.ts +0 -176
- package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +0 -22
- package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +0 -82
- package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +0 -107
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +0 -312
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +0 -311
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +0 -123
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +0 -108
- package/src/_modules/scoped-config/index.ts +0 -17
- package/src/_modules/server/errors/errors.control-service.spec.ts +0 -246
- package/src/_modules/server/errors/errors.control-service.ts +0 -100
- package/src/_modules/server/errors/errors.controller.spec.ts +0 -340
- package/src/_modules/server/errors/errors.controller.ts +0 -559
- package/src/_modules/server/errors/errors.data-service.spec.ts +0 -480
- package/src/_modules/server/errors/errors.data-service.ts +0 -867
- package/src/_modules/server/index.ts +0 -40
- package/src/_modules/server/safe-diagnostic/safe-diagnostic-cause.type-enum.ts +0 -8
- package/src/_modules/server/safe-diagnostic/safe-diagnostic-stage.type-enum.ts +0 -20
- package/src/_modules/server/safe-diagnostic/safe-diagnostic.control-service.spec.ts +0 -124
- package/src/_modules/server/safe-diagnostic/safe-diagnostic.control-service.ts +0 -99
- package/src/_modules/server/safe-diagnostic/safe-diagnostic.interface.ts +0 -20
- package/src/_modules/server/server-status/db-readiness-probe-code.type-enum.ts +0 -13
- package/src/_modules/server/server-status/db-readiness-probe-stage.type-enum.ts +0 -7
- package/src/_modules/server/server-status/db-readiness-probe.control-service.spec.ts +0 -235
- package/src/_modules/server/server-status/db-readiness-probe.control-service.ts +0 -158
- package/src/_modules/server/server-status/db-readiness-probe.interface.ts +0 -20
- package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +0 -70
- package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +0 -17
- package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +0 -77
- package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +0 -37
- package/src/_modules/server/server-status/server-status.control-service.spec.ts +0 -672
- package/src/_modules/server/server-status/server-status.control-service.ts +0 -491
- package/src/_modules/server/server-status/server-status.controller.spec.ts +0 -276
- package/src/_modules/server/server-status/server-status.controller.ts +0 -336
- package/src/_modules/socket/_enums/socket-security.enum.ts +0 -11
- package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +0 -32
- package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +0 -22
- package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +0 -165
- package/src/_modules/socket/_models/socket-presence.control-model.ts +0 -211
- package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +0 -69
- package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +0 -33
- package/src/_modules/socket/_services/socket-client.service.spec.ts +0 -15
- package/src/_modules/socket/_services/socket-client.service.ts +0 -260
- package/src/_modules/socket/_services/socket-server.service.spec.ts +0 -272
- package/src/_modules/socket/_services/socket-server.service.ts +0 -1037
- package/src/_modules/socket/app-extended.integration.spec.ts +0 -85
- package/src/_modules/socket/app-extended.server.ts +0 -648
- package/src/_modules/socket/index.ts +0 -42
- package/src/_modules/test/get-test-routing-module.util.spec.ts +0 -28
- package/src/_modules/test/get-test-routing-module.util.ts +0 -23
- package/src/_modules/test/index.ts +0 -12
- package/src/_modules/test/test.controller.spec.ts +0 -72
- package/src/_modules/test/test.controller.ts +0 -115
- package/src/_modules/test-email-sink/_collections/test-email-pattern.const.ts +0 -10
- package/src/_modules/test-email-sink/_models/data-models/dynts-sent-test-mail.data-model.ts +0 -41
- package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.ts +0 -112
- package/src/_modules/test-email-sink/_services/dynts-test-email-sink.service.ts +0 -141
- package/src/_modules/test-email-sink/get-sent-mail-routing-module.util.ts +0 -29
- package/src/_modules/test-email-sink/index.ts +0 -11
- package/src/_modules/test-email-sink/test-email-sink.controller.ts +0 -83
- package/src/_modules/usage/get-usage-routing-module.util.ts +0 -23
- package/src/_modules/usage/index.ts +0 -15
- package/src/_modules/usage/usage.controller.spec.ts +0 -106
- package/src/_modules/usage/usage.controller.ts +0 -140
- package/src/_modules/usage/usage.data-service.spec.ts +0 -332
- package/src/_modules/usage/usage.data-service.ts +0 -185
- package/src/_services/base/api.service-base.spec.ts +0 -125
- package/src/_services/base/api.service-base.ts +0 -75
- package/src/_services/base/archive-data.service.spec.ts +0 -209
- package/src/_services/base/archive-data.service.ts +0 -228
- package/src/_services/base/data.service.spec.ts +0 -784
- package/src/_services/base/data.service.ts +0 -2792
- package/src/_services/base/db.service.encryption.spec.ts +0 -76
- package/src/_services/base/db.service.spec.ts +0 -160
- package/src/_services/base/db.service.ts +0 -1698
- package/src/_services/base/singleton.service-base.spec.ts +0 -28
- package/src/_services/base/singleton.service-base.ts +0 -24
- package/src/_services/base/singleton.service.spec.ts +0 -114
- package/src/_services/base/singleton.service.ts +0 -38
- package/src/_services/core/api.service.spec.ts +0 -187
- package/src/_services/core/api.service.ts +0 -627
- package/src/_services/core/auth.service.spec.ts +0 -159
- package/src/_services/core/auth.service.ts +0 -174
- package/src/_services/core/collection-growth-monitor.service.spec.ts +0 -119
- package/src/_services/core/collection-growth-monitor.service.ts +0 -234
- package/src/_services/core/db-stats.service.ts +0 -104
- package/src/_services/core/diagnostics.service.spec.ts +0 -44
- package/src/_services/core/diagnostics.service.ts +0 -158
- package/src/_services/core/email.service.spec.ts +0 -85
- package/src/_services/core/email.service.ts +0 -757
- package/src/_services/core/event-loop-diag.service.spec.ts +0 -22
- package/src/_services/core/event-loop-diag.service.ts +0 -144
- package/src/_services/core/global.service.spec.ts +0 -292
- package/src/_services/core/global.service.ts +0 -488
- package/src/_services/core/memory-guard.service.spec.ts +0 -245
- package/src/_services/core/memory-guard.service.ts +0 -481
- package/src/_services/core/migration-runner.service.spec.ts +0 -91
- package/src/_services/core/migration-runner.service.ts +0 -106
- package/src/_services/core/mongo-transaction.control-service.spec.ts +0 -165
- package/src/_services/core/mongo-transaction.control-service.ts +0 -148
- package/src/_services/core/request-hunter.service.spec.ts +0 -124
- package/src/_services/core/request-hunter.service.ts +0 -157
- package/src/_services/core/request-telemetry.control-service.spec.ts +0 -217
- package/src/_services/core/request-telemetry.control-service.ts +0 -381
- package/src/_services/core/service-collection.service.spec.ts +0 -46
- package/src/_services/core/service-collection.service.ts +0 -6
- package/src/_services/route/controller.service.spec.ts +0 -53
- package/src/_services/route/controller.service.ts +0 -148
- package/src/_services/route/routing-module.service.spec.ts +0 -98
- package/src/_services/route/routing-module.service.ts +0 -339
- package/src/_services/server/app-safe-diagnostic.spec.ts +0 -124
- package/src/_services/server/app.server-retention.spec.ts +0 -106
- package/src/_services/server/app.server.ts +0 -1979
- package/src/_services/shared.static-service.spec.ts +0 -133
- package/src/_services/shared.static-service.ts +0 -107
- package/src/index.ts +0 -120
- package/tsconfig.app.json +0 -12
- package/tsconfig.json +0 -42
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# 2026-04-28 — NTS Logs Module
|
|
2
|
-
|
|
3
|
-
## Összefoglaló
|
|
4
|
-
|
|
5
|
-
Beépített `/logs` endpoint modul az NTS framework-be. Bármelyik NTS-alapú szerver bekapcsolhatja.
|
|
6
|
-
Verzió: v01.15.14+
|
|
7
|
-
|
|
8
|
-
## Használat
|
|
9
|
-
|
|
10
|
-
```typescript
|
|
11
|
-
import { DyNTS_Logs_Service, DyNTS_getLogsRoutingModule } from '@futdevpro/nts-dynamo/logs';
|
|
12
|
-
|
|
13
|
-
// 1. App startup-nál: log buffer install
|
|
14
|
-
DyNTS_Logs_Service.getInstance().install();
|
|
15
|
-
|
|
16
|
-
// 2. Log settings-ben: enable
|
|
17
|
-
DyNTS_global_settings.log_settings.logs_endpoint = { enabled: true, maxEntries: 2000 };
|
|
18
|
-
|
|
19
|
-
// 3. Routing module-ok közé: endpoint regisztráció
|
|
20
|
-
getRoutingModules() {
|
|
21
|
-
return [
|
|
22
|
-
...
|
|
23
|
-
DyNTS_getLogsRoutingModule(), // auth nélkül
|
|
24
|
-
DyNTS_getLogsRoutingModule({ authPreProcess: myAuth }), // auth-tal
|
|
25
|
-
];
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Endpoint-ok
|
|
30
|
-
|
|
31
|
-
- `GET /logs/get?tail=200` — utolsó N sor a bufferből (max 2000)
|
|
32
|
-
- `DELETE /logs/clear` — buffer ürítés
|
|
33
|
-
|
|
34
|
-
## Architektura
|
|
35
|
-
|
|
36
|
-
- `DyNTS_Logs_Service` — singleton, in-memory ring buffer (console.log/error/warn intercept)
|
|
37
|
-
- `DyNTS_Logs_Controller` — GET /get + DELETE /clear endpoint-ok
|
|
38
|
-
- `DyNTS_getLogsRoutingModule(config?)` — factory, opcionális authPreProcess
|
|
39
|
-
- Ha `logs_endpoint.enabled === false` → 503 response
|
|
40
|
-
- Ha `install()` nem volt meghívva → 503 response
|
|
41
|
-
|
|
42
|
-
## Fájlok
|
|
43
|
-
|
|
44
|
-
- `src/_modules/logs/logs.service.ts`
|
|
45
|
-
- `src/_modules/logs/logs.controller.ts`
|
|
46
|
-
- `src/_modules/logs/get-logs-routing-module.util.ts`
|
|
47
|
-
- `src/_modules/logs/index.ts`
|
|
48
|
-
- `src/_models/interfaces/global-log-settings.interface.ts` — `logs_endpoint` setting
|
|
49
|
-
- `src/_collections/global-settings.const.ts` — default values
|
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
# 2026-05-17 — Using OpenAI-compatible providers with Dynamo-NTS
|
|
2
|
-
|
|
3
|
-
**Spec:** `__agent/feature-requests/FR-005-oai-compat-docs.md` (workspace root)
|
|
4
|
-
**Scope:** docs-only, LOW priority. Semmilyen TS-változás. NEM kell npm publish.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Mire jó
|
|
9
|
-
|
|
10
|
-
A Dynamo-NTS OAI service-ek — `DyNTS_OAI_LLM_ServiceBase`, `DyNTS_OAI_LLMChat_ServiceBase`, `DyNTS_OAI_Embedding_ControlService` — az `openai` npm SDK-t használják, és **out-of-the-box bármely OpenAI-API-kompatibilis endpoint-tal működnek** a `baseURL` override-on keresztül. Ez **MÁR MŰKÖDIK** (zéró kód-változás kell), csak eddig nem volt dokumentálva.
|
|
11
|
-
|
|
12
|
-
A `baseURL` mező a `@futdevpro/fsm-dynamo/ai/open-ai` package `DyFM_OAI_ClientOptions` interface-en él. Bővebben a fsm-dynamo-szintű részletekért: [`@futdevpro/fsm-dynamo/__documentations/2026-05-17-oai-compatible-providers-howto.md`](../../dynamo-fsm/__documentations/2026-05-17-oai-compatible-providers-howto.md).
|
|
13
|
-
|
|
14
|
-
Tipikus use-case-ek:
|
|
15
|
-
- **Lokál fejlesztés** OpenAI-credits nélkül (LM Studio, Ollama)
|
|
16
|
-
- **Self-hosted production** infrastruktúra (vLLM, LocalAI klaszter)
|
|
17
|
-
- **Cost control** — nyílt-súlyú modellek drága cloud API helyett
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## A pattern
|
|
22
|
-
|
|
23
|
-
```typescript
|
|
24
|
-
import { DyFM_OAI_Settings, DyFM_OAI_CallSettings } from '@futdevpro/fsm-dynamo/ai/open-ai';
|
|
25
|
-
import { DyNTS_OAI_LLMChat_ServiceBase } from '@futdevpro/nts-dynamo/ai/open-ai';
|
|
26
|
-
|
|
27
|
-
const settings: DyFM_OAI_Settings = new DyFM_OAI_Settings({
|
|
28
|
-
config: {
|
|
29
|
-
baseURL: 'http://<provider-host>:<port>/v1',
|
|
30
|
-
apiKey: '<placeholder-or-real>',
|
|
31
|
-
},
|
|
32
|
-
defaultSettings: new DyFM_OAI_CallSettings({
|
|
33
|
-
useModel: '<provider-specific-model-id>',
|
|
34
|
-
}),
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
class MyChat extends DyNTS_OAI_LLMChat_ServiceBase {}
|
|
38
|
-
const chat: MyChat = new MyChat(settings);
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Csak `config.baseURL` + `config.apiKey` + `defaultSettings.useModel` kell. A többi (organization, project) lokál providereknél figyelmen kívül marad.
|
|
42
|
-
|
|
43
|
-
A `DyNTS_OAI_Embedding_ControlService` és más OAI alapú service-ek ugyanezt a `DyFM_OAI_Settings`-t fogadják — egy konfig, minden service.
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Provider-specifikus minták
|
|
48
|
-
|
|
49
|
-
### LM Studio (port 1234)
|
|
50
|
-
|
|
51
|
-
Desktop GUI (Mac/Windows/Linux), beépített OAI-compat szerverrel. Lépések:
|
|
52
|
-
1. Töltsd be a modellt a UI-ben (pl. embedding-hez `nomic-embed-text-v1.5`, chat-hez `llama-3.2-3b-instruct`)
|
|
53
|
-
2. **Local Server** tab → **Start Server**
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
const lmStudio: DyFM_OAI_Settings = new DyFM_OAI_Settings({
|
|
57
|
-
config: {
|
|
58
|
-
baseURL: 'http://localhost:1234/v1',
|
|
59
|
-
apiKey: 'lm-studio', // bármilyen non-empty placeholder
|
|
60
|
-
},
|
|
61
|
-
defaultSettings: new DyFM_OAI_CallSettings({
|
|
62
|
-
useModel: 'nomic-embed-text-v1.5', // ahogy a Local Server tab megjeleníti
|
|
63
|
-
}),
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
// Embedding-hez
|
|
67
|
-
class Knowledge_DataService extends DyNTS_OAI_VectorDataService<Knowledge> {
|
|
68
|
-
constructor() { super(/* args */); }
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Ollama (port 11434, OAI-compat layer ≥ v0.1.14)
|
|
73
|
-
|
|
74
|
-
CLI-driven, multi-modell runner.
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
ollama pull llama3.2:3b
|
|
78
|
-
ollama pull nomic-embed-text
|
|
79
|
-
ollama serve
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
const ollama: DyFM_OAI_Settings = new DyFM_OAI_Settings({
|
|
84
|
-
config: {
|
|
85
|
-
baseURL: 'http://localhost:11434/v1',
|
|
86
|
-
apiKey: 'ollama', // szintén placeholder
|
|
87
|
-
},
|
|
88
|
-
defaultSettings: new DyFM_OAI_CallSettings({
|
|
89
|
-
useModel: 'nomic-embed-text', // `ollama list` mutatja
|
|
90
|
-
}),
|
|
91
|
-
});
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### vLLM (port 8000, production GPU)
|
|
95
|
-
|
|
96
|
-
Python-alapú batched + PagedAttention inference. OAI-compat REST endpoint beépítve.
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
pip install vllm
|
|
100
|
-
python -m vllm.entrypoints.openai.api_server \
|
|
101
|
-
--model meta-llama/Meta-Llama-3-8B-Instruct \
|
|
102
|
-
--port 8000 \
|
|
103
|
-
--api-key local-secret-token
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
```typescript
|
|
107
|
-
const vllm: DyFM_OAI_Settings = new DyFM_OAI_Settings({
|
|
108
|
-
config: {
|
|
109
|
-
baseURL: 'http://gpu-server:8000/v1',
|
|
110
|
-
apiKey: process.env.VLLM_API_KEY ?? 'local-secret-token',
|
|
111
|
-
},
|
|
112
|
-
defaultSettings: new DyFM_OAI_CallSettings({
|
|
113
|
-
useModel: 'meta-llama/Meta-Llama-3-8B-Instruct', // a `--model` érték
|
|
114
|
-
}),
|
|
115
|
-
});
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### LocalAI (port 8080, REST multi-model)
|
|
119
|
-
|
|
120
|
-
Go-alapú, multi-backend (llama.cpp + whisper.cpp + stable-diffusion).
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
docker run -p 8080:8080 \
|
|
124
|
-
-v $PWD/models:/build/models \
|
|
125
|
-
localai/localai:latest
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
```typescript
|
|
129
|
-
const localai: DyFM_OAI_Settings = new DyFM_OAI_Settings({
|
|
130
|
-
config: {
|
|
131
|
-
baseURL: 'http://localai:8080/v1',
|
|
132
|
-
apiKey: 'sk-local', // placeholder
|
|
133
|
-
},
|
|
134
|
-
defaultSettings: new DyFM_OAI_CallSettings({
|
|
135
|
-
useModel: 'gpt-4', // LocalAI alias — `models.yaml`-ban mapped
|
|
136
|
-
}),
|
|
137
|
-
});
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Dev → cloud quick recipe
|
|
143
|
-
|
|
144
|
-
```typescript
|
|
145
|
-
const isDev: boolean = process.env.NODE_ENV === 'development';
|
|
146
|
-
|
|
147
|
-
export const aiSettings: DyFM_OAI_Settings = new DyFM_OAI_Settings({
|
|
148
|
-
config: isDev
|
|
149
|
-
? {
|
|
150
|
-
baseURL: 'http://localhost:11434/v1', // Ollama lokálban
|
|
151
|
-
apiKey: 'dev',
|
|
152
|
-
}
|
|
153
|
-
: {
|
|
154
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
155
|
-
organization: process.env.OPENAI_ORG_ID,
|
|
156
|
-
},
|
|
157
|
-
defaultSettings: new DyFM_OAI_CallSettings({
|
|
158
|
-
useModel: isDev ? 'llama3.2:3b' : 'gpt-4o',
|
|
159
|
-
}),
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
// Az összes Dynamo-NTS OAI service ugyanazt a settings-t fogyasztja:
|
|
163
|
-
class ProdChat extends DyNTS_OAI_LLMChat_ServiceBase {}
|
|
164
|
-
const chat: ProdChat = new ProdChat(aiSettings);
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Caveats — service-szintű
|
|
170
|
-
|
|
171
|
-
### Tool/function calling
|
|
172
|
-
A `DyNTS_OAI_LLMChat_ServiceBase` tool-calling support csak akkor működik a lokál provider-eknél, ha:
|
|
173
|
-
- **Ollama**: tool-aware modell (Llama-3.1+, Mistral újabb verziók)
|
|
174
|
-
- **vLLM**: v0.6+ + megfelelő chat-template
|
|
175
|
-
- **LM Studio**: model-függő, gyakran részleges
|
|
176
|
-
- **LocalAI**: function-call backend kell konfigolni
|
|
177
|
-
|
|
178
|
-
Production OpenAI-mintával írt service-ek **lokál providerre váltáskor** előbb tesztelni kell, hogy a tool-callok valóban triggerelnek-e.
|
|
179
|
-
|
|
180
|
-
### Streaming chat
|
|
181
|
-
A `DyNTS_OAI_LLMChat_ServiceBase` streaming (SSE) működik mindenhol, **de**:
|
|
182
|
-
- Ollama < v0.1.20 streaming-stabilitás kérdéses
|
|
183
|
-
- LocalAI streaming-rate alacsonyabb mint az emit-rate
|
|
184
|
-
- vLLM/LM Studio: rendszeresen frissül, érdemes a provider-changelogot követni
|
|
185
|
-
|
|
186
|
-
### Embedding-modellek
|
|
187
|
-
A `DyNTS_OAI_Embedding_ControlService` `useModel`-je a provider-specifikus dedikált embedding modell **pontos ID**-ja:
|
|
188
|
-
|
|
189
|
-
| Provider | Embedding model ID |
|
|
190
|
-
|---|---|
|
|
191
|
-
| OpenAI (cloud) | `text-embedding-3-small` / `text-embedding-3-large` |
|
|
192
|
-
| LM Studio | `nomic-embed-text-v1.5` / `BAAI/bge-large-en-v1.5` |
|
|
193
|
-
| Ollama | `nomic-embed-text` / `mxbai-embed-large` |
|
|
194
|
-
| vLLM | csak ha az indítási `--model` embedding-képes (pl. `intfloat/e5-mistral-7b-instruct`) |
|
|
195
|
-
| LocalAI | `text-embedding-ada-002` alias (vagy egyéb a `models.yaml`-ban) |
|
|
196
|
-
|
|
197
|
-
### Context window / max-tokens
|
|
198
|
-
A `DyFM_OAI_CallSettings.maxTokens` provider-szintű limit alá kell esnie, különben 400/422 jön vissza:
|
|
199
|
-
|
|
200
|
-
| Provider | Default context-window | Override |
|
|
201
|
-
|---|---|---|
|
|
202
|
-
| OpenAI gpt-4o | 128K | API tier |
|
|
203
|
-
| LM Studio | a betöltött modell native context | UI slider |
|
|
204
|
-
| Ollama | **2048 (legacy default!)** | `OLLAMA_NUM_CTX` env / Modelfile `PARAMETER num_ctx` |
|
|
205
|
-
| vLLM | a modell native context | `--max-model-len` flag |
|
|
206
|
-
| LocalAI | `models.yaml` `context_size` | per-model konfig |
|
|
207
|
-
|
|
208
|
-
### Error-handling
|
|
209
|
-
- OpenAI cloud: standard 4xx/5xx + structured error body
|
|
210
|
-
- Lokál providerek: 404 a modell-name-re (rossz ID), timeout első call-on (modell load), OOM vLLM-en
|
|
211
|
-
- Ollama-specifikus: ha a modell még nem `pull`-olt, csendben várakozik a pull-ig — látszólag hang
|
|
212
|
-
|
|
213
|
-
---
|
|
214
|
-
|
|
215
|
-
## Reference
|
|
216
|
-
|
|
217
|
-
| Fájl | Mit ad |
|
|
218
|
-
|---|---|
|
|
219
|
-
| `fsm-dynamo/.../oai-client-options.interface.ts` | `DyFM_OAI_ClientOptions.baseURL` — a kapcsoló mező |
|
|
220
|
-
| `fsm-dynamo/.../oai-settings.control-model.ts` | `DyFM_OAI_Settings` — settings wrapper |
|
|
221
|
-
| `dynamo-nts/.../oai-llm.service-base.ts` | `DyNTS_OAI_LLM_ServiceBase` — base LLM client (`openai` SDK instantiation) |
|
|
222
|
-
| `dynamo-nts/.../oai-llm-chat.service-base.ts` | `DyNTS_OAI_LLMChat_ServiceBase` — chat service |
|
|
223
|
-
| `dynamo-nts/.../oai-embedding.control-service.ts` | `DyNTS_OAI_Embedding_ControlService` — embedding service |
|
|
224
|
-
|
|
225
|
-
További (fsm-szintű) részletek, ugyanezzel a 4 provider-mintázattal: [`dynamo-fsm/__documentations/2026-05-17-oai-compatible-providers-howto.md`](../../dynamo-fsm/__documentations/2026-05-17-oai-compatible-providers-howto.md).
|
|
226
|
-
|
|
227
|
-
## Backward compatibility
|
|
228
|
-
|
|
229
|
-
Docs-only. `baseURL` mindig is létezett az OpenAI SDK-ban, a Dynamo-NTS csak átadja a config-ot (`oai-llm.service-base.ts:91-98`). Ez a doc csak tisztázza a használati mintázatot — semmilyen TS-változás nincs.
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
# Static client serving — how-to
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-05-17
|
|
4
|
-
**Backlog:** [BL-20260417-001](../_specifications/BACKLOG.md) — DyNTS-kliens kiszolgálás képesség
|
|
5
|
-
**Status:** ✅ done (audit + docs)
|
|
6
|
-
|
|
7
|
-
## TL;DR
|
|
8
|
-
|
|
9
|
-
A `DyNTS_App_Server` MÁR most ki tudja szolgálni a klienst (SPA-kat, statikus
|
|
10
|
-
oldalakat) az API route-ok mellett ugyanazon a hoszton. Az implementáció
|
|
11
|
-
2026-03-30 óta (commit `8ffe535`) része a frameworknek; a BL-20260417-001
|
|
12
|
-
backlog entry post-dated a fejlesztést. Ez a how-to a meglévő capability-t
|
|
13
|
-
dokumentálja.
|
|
14
|
-
|
|
15
|
-
## Konfigurációs felület
|
|
16
|
-
|
|
17
|
-
A static client serving akkor aktiválódik, ha a `DyNTS_App_Server`
|
|
18
|
-
subclass-od `getStaticClientSettings()`-et override-olja és egy
|
|
19
|
-
[`DyNTS_StaticClient_Settings`](../src/_models/interfaces/static-client-settings.interface.ts)
|
|
20
|
-
objektumot ad vissza:
|
|
21
|
-
|
|
22
|
-
```ts
|
|
23
|
-
import { DyNTS_StaticClient_Settings } from '@futdevpro/nts-dynamo';
|
|
24
|
-
|
|
25
|
-
export interface DyNTS_StaticClient_Settings {
|
|
26
|
-
root: string; // a static fájlok mappája (abszolút v. cwd-relatív)
|
|
27
|
-
fallbackPath?: string; // SPA fallback (pl. 'index.html')
|
|
28
|
-
assetCacheMaxAge?: number; // asset Cache-Control max-age (sec)
|
|
29
|
-
assetCacheImmutable?: boolean; // 'immutable' direktíva (Angular hashed fájlokra)
|
|
30
|
-
fallbackCacheMaxAge?: number; // fallback file Cache-Control max-age (sec)
|
|
31
|
-
}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Példa subclass (Angular SPA)
|
|
35
|
-
|
|
36
|
-
```ts
|
|
37
|
-
import path from 'path';
|
|
38
|
-
import { DyNTS_App_Server, DyNTS_StaticClient_Settings } from '@futdevpro/nts-dynamo';
|
|
39
|
-
|
|
40
|
-
export class MyApp_Server extends DyNTS_App_Server {
|
|
41
|
-
// ... egyéb override-ok (getAppParams, getPortSettings, getApiBasePath, stb.) ...
|
|
42
|
-
|
|
43
|
-
override getStaticClientSettings(): DyNTS_StaticClient_Settings | undefined {
|
|
44
|
-
return {
|
|
45
|
-
// Az Angular `dist/<app-name>` mappa abszolút path-ja
|
|
46
|
-
root: path.resolve(__dirname, '../../client/dist/my-app'),
|
|
47
|
-
|
|
48
|
-
// SPA — minden ismeretlen route a kliens-routerre megy
|
|
49
|
-
fallbackPath: 'index.html',
|
|
50
|
-
|
|
51
|
-
// Hashed assetek (Angular alapból ad nekik hash-et) — 1 év, immutable
|
|
52
|
-
assetCacheMaxAge: 31_536_000,
|
|
53
|
-
assetCacheImmutable: true,
|
|
54
|
-
|
|
55
|
-
// index.html-t SOHA ne cache-elje a böngésző (deploy után friss kell)
|
|
56
|
-
fallbackCacheMaxAge: 0,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Mit csinál a framework a háttérben
|
|
63
|
-
|
|
64
|
-
A `DyNTS_App_Server.mountStaticClient()` ([app.server.ts ~1421-1484](../src/_services/server/app.server.ts))
|
|
65
|
-
ezt automatikusan beállítja az API route-ok regisztrációja UTÁN:
|
|
66
|
-
|
|
67
|
-
1. **`Express.static(root)` middleware** mount a `/` alatt. Ha `assetCacheMaxAge`
|
|
68
|
-
meg van adva, `setHeaders` callback-en keresztül beállítja a `Cache-Control:
|
|
69
|
-
max-age=<N>[, immutable]` header-t.
|
|
70
|
-
2. **SPA fallback** (ha `fallbackPath` adott): minden ismeretlen GET kérésre
|
|
71
|
-
`res.sendFile(fallbackPath)` + `Cache-Control: max-age=<fallbackCacheMaxAge>`.
|
|
72
|
-
3. **Default 404** (ha `fallbackPath` hiányzik): a beépített
|
|
73
|
-
[`DyNTS_defaultNotFoundPageHtml`](../src/_collections/default-not-found-page.const.ts)
|
|
74
|
-
kerül kiszolgálásra `status: 404` + `Content-Type: text/html`.
|
|
75
|
-
4. **HTTP + HTTPS** mindkettő: a flow azonos a `this.openExpress` és
|
|
76
|
-
`this.secureExpress` instance-ekhez (ha mindkettő be van állítva).
|
|
77
|
-
|
|
78
|
-
## Config matrix — mikor melyik mezőt használd
|
|
79
|
-
|
|
80
|
-
| Use case | `root` | `fallbackPath` | `assetCacheMaxAge` | `assetCacheImmutable` | `fallbackCacheMaxAge` |
|
|
81
|
-
|---|---|---|---|---|---|
|
|
82
|
-
| **SPA** (Angular, React) hashed assetekkel | ✅ kötelező | `'index.html'` | `31_536_000` (1 év) | `true` | `0` (mindig friss) |
|
|
83
|
-
| **SPA** dev mode (rebuild gyakori) | ✅ | `'index.html'` | `0` | `false` | `0` |
|
|
84
|
-
| **Statikus oldal** (nincs SPA-router) | ✅ | hagyd ki | `3600` (1 óra) vagy ahogy jó | `false` | n/a |
|
|
85
|
-
| **Csak API** (nincs frontend) | NE override-old a `getStaticClientSettings()`-et — akkor `undefined`-ot ad vissza és a `mountStaticClient` early-return-öl | | | | |
|
|
86
|
-
|
|
87
|
-
## Asset + fallback cache stratégia (SPA)
|
|
88
|
-
|
|
89
|
-
A két mező együttes használata az **alapja az Angular/React deploy-friendly caching**-nek:
|
|
90
|
-
|
|
91
|
-
- **Hashed assetek** (`main.<hash>.js`, `styles.<hash>.css`, stb.) ÉLETBEN nem
|
|
92
|
-
változnak — biztonságosan `immutable` + 1 év max-age. A böngésző sose kérdezi
|
|
93
|
-
meg újra a szerverről, amíg a HTML egy új hash-elt nevet nem hivatkozik be.
|
|
94
|
-
- **`index.html`** a "katalógus" ami a hashed assetekre mutat. Deploy után
|
|
95
|
-
AZONNAL friss kell legyen, különben a kliens régi assetekre hivatkozó régi
|
|
96
|
-
index.html-t kap → 404-ek a már nem létező hashed nevekre.
|
|
97
|
-
→ `fallbackCacheMaxAge: 0` (no-cache).
|
|
98
|
-
|
|
99
|
-
Az `assetCacheMaxAge` undefined-ja default (Express.static alapértelmezett) cache
|
|
100
|
-
viselkedést hagy meg — production deploy-okra mindig explicit állítsd be.
|
|
101
|
-
|
|
102
|
-
## Integration test minta
|
|
103
|
-
|
|
104
|
-
A meglévő integration test fixture ([`DyNTS_AppIntegrationTest_Mock`](../src/_modules/mock/app-integration-test.mock.ts)) +
|
|
105
|
-
spec ([app-extended.integration.spec.ts](../src/_modules/socket/app-extended.integration.spec.ts))
|
|
106
|
-
mutatja a teljes flow-t:
|
|
107
|
-
|
|
108
|
-
- A spec `beforeAll`-ban létrehoz egy temp dir-t, kitölti pár static fájllal,
|
|
109
|
-
beállítja a mock `integrationStaticRoot` static property-jét, majd elindítja
|
|
110
|
-
az appot.
|
|
111
|
-
- A spec asszertálja:
|
|
112
|
-
- `started === true` (az app HTTP listenert kapott)
|
|
113
|
-
- GET nemlétező path → `404` + a default not-found HTML kiszolgálva
|
|
114
|
-
- GET `/index.html` → `200` + a temp dir-ben található static content
|
|
115
|
-
- GET `/api/test-0/test-base`, `/api/test-0/test-simple` → API kiszolgálva (az API
|
|
116
|
-
route-ok ELŐBB regisztráltak, mint a static fallback)
|
|
117
|
-
- `afterAll`-ban leállítja az appot és kitakarítja a temp dir-t.
|
|
118
|
-
|
|
119
|
-
## Edge case-ek + gotchák
|
|
120
|
-
|
|
121
|
-
- **Mounting sorrend:** a `mountStaticClient` az `_routingModules` regisztráció
|
|
122
|
-
UTÁN fut, így az API route-ok prioritást élveznek. Tehát a `/api/...` mindig
|
|
123
|
-
az API-hoz megy, akkor is, ha a static root-ban véletlenül lenne `api/`
|
|
124
|
-
almappa.
|
|
125
|
-
- **`fallbackPath` relatív** a `root`-hoz képest (`sendFile(fallbackPath, { root })`).
|
|
126
|
-
- **Default 404 HTML:** szándékosan minimalista (`DyNTS_defaultNotFoundPageHtml`),
|
|
127
|
-
hogy ne ütközzön a kliens stílusával. Ha custom 404-et akarsz, add meg a
|
|
128
|
-
`fallbackPath`-t (az SPA-router majd kezelje belül a "page not found"-ot).
|
|
129
|
-
- **CSP / security header-ek:** a `mountStaticClient` NEM állít be CSP-t —
|
|
130
|
-
ha kell, használj `helmet` middleware-t az API route-ok elé.
|
|
131
|
-
|
|
132
|
-
## Releváns kód- és test-fájlok
|
|
133
|
-
|
|
134
|
-
- [`src/_services/server/app.server.ts`](../src/_services/server/app.server.ts) — `mountStaticClient()` private + `getStaticClientSettings?()` opt-in override
|
|
135
|
-
- [`src/_models/interfaces/static-client-settings.interface.ts`](../src/_models/interfaces/static-client-settings.interface.ts) — config interface
|
|
136
|
-
- [`src/_collections/default-fallback-cache-max-age.const.ts`](../src/_collections/default-fallback-cache-max-age.const.ts) — default `0` (no-cache)
|
|
137
|
-
- [`src/_collections/default-not-found-page.const.ts`](../src/_collections/default-not-found-page.const.ts) — default 404 HTML
|
|
138
|
-
- [`src/_modules/mock/app-integration-test.mock.ts`](../src/_modules/mock/app-integration-test.mock.ts) — integration test fixture mintaként
|
|
139
|
-
- [`__documentations/nts-integration-tests-2026-03-17.md`](./nts-integration-tests-2026-03-17.md) — első integration test bevezetése a unified host behavior-ra
|
|
140
|
-
|
|
141
|
-
## Kapcsolódó backlog entry-k
|
|
142
|
-
|
|
143
|
-
- **BL-20260420-001..004** (dynamo-nts) — `DyNTS_FileLog_Service` + admin endpoints. Mind ✅ done.
|
|
144
|
-
- BL-20260417-001 (ez) — a kliens kiszolgálási képesség. ✅ done — implementáció már része a frameworknek; ez a doc a hivatkozás.
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
# FR-041 — CORS middleware infrastructure (2026-06-01)
|
|
2
|
-
|
|
3
|
-
**Commit**: `3d16d69` — v01.15.35 → v01.15.36
|
|
4
|
-
**Parent**: `__agent/feature-requests/FR-041-subdomain-per-service-architecture.md`
|
|
5
|
-
**Pattern**: `fdp-documentations/guidelines/development/cors-and-subdomain-architecture.md`
|
|
6
|
-
|
|
7
|
-
## What
|
|
8
|
-
|
|
9
|
-
Adds CORS middleware infrastructure to `DyNTS_AppServer`. After this commit, any subclass that wants to be reachable cross-origin overrides `getCorsSettings()` and returns a `DyNTS_Cors_Settings` object.
|
|
10
|
-
|
|
11
|
-
## Why
|
|
12
|
-
|
|
13
|
-
Pre-FR-041: every cross-service call was same-origin via gateway nginx proxy (e.g. `<app>.futdevpro.hu/auth-api/*` → `fdp-auth-service:39005/api/*`). No CORS needed because same-origin.
|
|
14
|
-
|
|
15
|
-
Post-FR-041: each sister service exposed at its own subdomain (`auth.futdevpro.hu`, `social.futdevpro.hu`, etc.). Cross-origin requires CORS allowlist.
|
|
16
|
-
|
|
17
|
-
Audit pre-FR-041: ZERO existing CORS implementation in the entire FDP stack (`grep -rn "cors\|Access-Control" dynamo-nts/src` returned 0 hits). Greenfield work.
|
|
18
|
-
|
|
19
|
-
## Design
|
|
20
|
-
|
|
21
|
-
### `DyNTS_Cors_Settings` interface
|
|
22
|
-
|
|
23
|
-
`src/_models/interfaces/cors-settings.interface.ts`:
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
export interface DyNTS_Cors_Settings {
|
|
27
|
-
allowedOrigins: string[] | ((origin: string) => boolean) | '*';
|
|
28
|
-
allowCredentials?: boolean; // default true
|
|
29
|
-
allowedMethods?: string[]; // default GET/POST/PUT/DELETE/PATCH/OPTIONS
|
|
30
|
-
allowedHeaders?: string[]; // default Authorization/Content-Type/X-Admin-Key/X-Requested-With
|
|
31
|
-
exposedHeaders?: string[]; // default Content-Length/Content-Type
|
|
32
|
-
maxAgeSeconds?: number; // default 86400 (24h preflight cache)
|
|
33
|
-
}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### `mountCors(express)` protected method
|
|
37
|
-
|
|
38
|
-
`src/_services/server/app.server.ts` (~line 1422):
|
|
39
|
-
|
|
40
|
-
- Reads `this.getCorsSettings?.()` ONCE at mount time. Undefined → returns immediately (no CORS headers, back-compat).
|
|
41
|
-
- Express middleware: for each request, checks Origin against allowlist. Match → echoes the origin (NOT wildcard, because credentials require an exact origin echo) + sets Methods/Headers/Expose/MaxAge/Vary.
|
|
42
|
-
- OPTIONS preflight short-circuits with 204.
|
|
43
|
-
|
|
44
|
-
### `getCorsSettings?()` optional override
|
|
45
|
-
|
|
46
|
-
Added to the class as `getCorsSettings?(): DyNTS_Cors_Settings | undefined;`. Subclasses opt in by implementing it.
|
|
47
|
-
|
|
48
|
-
## Mount-points
|
|
49
|
-
|
|
50
|
-
`initOpenExpress()` + `initSecureExpress()` both call `mountCors(this.<express>)` after BodyParser, BEFORE route mounting. CORS preflight always intercepts before any route handler can interfere.
|
|
51
|
-
|
|
52
|
-
Timing verified: `asyncConstruct` line 410 `getAppParams()` (sets env via `FDPNTS_setEnvBase`) → line 1018 `initOpenExpress()` (calls `mountCors`). Env is always set by the time `getCorsSettings()` runs.
|
|
53
|
-
|
|
54
|
-
## Why hand-rolled (no `cors` npm dep)
|
|
55
|
-
|
|
56
|
-
- ~30 lines, zero new dependency
|
|
57
|
-
- Full control over Vary/credentials/preflight semantics
|
|
58
|
-
- Aligns with FDP "no unnecessary deps" philosophy
|
|
59
|
-
|
|
60
|
-
## Spec coverage
|
|
61
|
-
|
|
62
|
-
`src/_models/interfaces/cors-settings.interface.spec.ts` — 5 specs covering all `allowedOrigins` shapes (array, predicate, wildcard) + credential defaults + custom headers.
|
|
63
|
-
|
|
64
|
-
`npx jasmine` post-change: **1250/0** (146 pending pre-existing, all 5 new specs green).
|
|
65
|
-
|
|
66
|
-
## Consumer pattern
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
import { DyNTS_Cors_Settings } from '@futdevpro/nts-dynamo';
|
|
70
|
-
import { FDPNTS_buildCorsSettings } from '@futdevpro/nts-fdp-templates';
|
|
71
|
-
|
|
72
|
-
export class App extends DyNTS_App {
|
|
73
|
-
override getCorsSettings(): DyNTS_Cors_Settings | undefined {
|
|
74
|
-
return FDPNTS_buildCorsSettings(); // env-aware allowlist from FDP-templates
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
First consumer: `LIVE-projects/fdp-auth-service` commit `1319368`.
|
|
80
|
-
|
|
81
|
-
## What's NOT in this commit
|
|
82
|
-
|
|
83
|
-
- Per-env allowlist source (lives in `fdp-templates v01.15.38`, commit `0f793c4`)
|
|
84
|
-
- Helper for FDPNTS apps to bind that allowlist (lives in `fdp-templates-nts v01.15.45`, commit `6e748ee`)
|
|
85
|
-
|
|
86
|
-
## Wave-3 cleanup candidates
|
|
87
|
-
|
|
88
|
-
- Once every app overrides `getCorsSettings()`, consider making it abstract (no more optional `?`).
|
|
89
|
-
- OPTIONS-without-origin-match returns 204 + no CORS headers (functional: browser denies). Could be improved to 403 for clearer security audit.
|
|
90
|
-
|
|
91
|
-
## Cross-references
|
|
92
|
-
|
|
93
|
-
- `fdp-documentations/guidelines/development/cors-and-subdomain-architecture.md`
|
|
94
|
-
- `NPM-packages/fdp-templates/src/_constants/environment/fdp-cors-origins.const.ts` — allowlist
|
|
95
|
-
- `NPM-packages/fdp-templates-nts/src/_collections/cors-settings.util.ts` — consumer helper
|
|
96
|
-
- `LIVE-projects/fdp-auth-service/src/app.server.ts` — first consumer
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# FR-047 P2+P3 — Function-calling agent-loop + OpenAI-wire translator (2026-06-01)
|
|
2
|
-
|
|
3
|
-
**Commits**: `de6f79e` — v01.15.36 → v01.15.37 (agent-loop + OpenAI translator)
|
|
4
|
-
`514153f` — → v01.15.40 (critical reasoning-model fix; see below)
|
|
5
|
-
**Parent**: `__agent/feature-requests/FR-047-phase-2-agent-loop-service-base.md` + `FR-047-phase-3-openai-fdpai-local.md`
|
|
6
|
-
**Pattern**: `fdp-documentations/guidelines/development/ai-function-calling.md`
|
|
7
|
-
**Depends on**: `@futdevpro/fsm-dynamo` ≥ 1.15.17 (tool vocabulary + registry; bumped to 1.15.18 here)
|
|
8
|
-
|
|
9
|
-
## What
|
|
10
|
-
|
|
11
|
-
Implements the provider-agnostic function-calling agent-loop in `DyNTS_AI_LLM_ServiceBase` and the
|
|
12
|
-
first concrete provider translator in `DyNTS_OAI_LLM_ServiceBase`. After this, OpenAI tool calling
|
|
13
|
-
works end-to-end through the strategic agnostic layer.
|
|
14
|
-
|
|
15
|
-
## Why
|
|
16
|
-
|
|
17
|
-
FR-047 P1 (fsm) shipped the vocabulary; the execution layer had the explicit TODO comment in
|
|
18
|
-
`getMessageCreateInput` ("'llm-tool-use' categoria a tools bevezetésekor — jövőbeli FR"). This is that FR.
|
|
19
|
-
The proven loop logic is ported from the legacy `FDPNTS_GPT_ControlService.getAnswerWithTools`.
|
|
20
|
-
|
|
21
|
-
## Design
|
|
22
|
-
|
|
23
|
-
### Agent-loop in `DyNTS_AI_LLM_ServiceBase` (written ONCE, concrete)
|
|
24
|
-
- `requestWithTools({ conversation, tools, toolHandlers, settings?, issuer, maxIterations? })` — public entry.
|
|
25
|
-
Tools are a **request parameter** (not on settings). Resolves model → capability pre-check → `runToolLoop`.
|
|
26
|
-
- `runToolLoop` — the loop: `callModelWithTools` → if `toolCalls`, push assistant-tool-call message,
|
|
27
|
-
run each handler (`runToolCall`), push `role:'tool'` result messages, repeat; exit on no-tool-call
|
|
28
|
-
final answer or `maxIterations` (default 8 → `DyFM_Error` `DyNTS-AILSB-TL0`).
|
|
29
|
-
- `runToolCall` — **never throws**; missing/throwing handler → `ERROR …` string with `isError:true` (no `[object Object]`).
|
|
30
|
-
- `assertToolsSupported(modelId)` — uses `DyFM_AI_ModelRegistry_Util.modelSupportsTools(getModelRegistry(), id)`;
|
|
31
|
-
rejects BEFORE any API call if unsupported (critical for Local).
|
|
32
|
-
- `callModelWithTools` + `getModelRegistry` — **non-abstract safe defaults** (throw / `[]`); providers override.
|
|
33
|
-
Chosen over `abstract` so NO existing concrete subclass breaks (incremental rollout).
|
|
34
|
-
|
|
35
|
-
### OpenAI translator in `DyNTS_OAI_LLM_ServiceBase`
|
|
36
|
-
- `getModelRegistry()` → `DyFM_OAI_Models`.
|
|
37
|
-
- `callModelWithTools` — builds the native request (system + `toOpenAIMessage`-mapped conversation incl.
|
|
38
|
-
tool-call/tool-result messages + `toOpenAITool`), calls the SDK, normalizes the response (`toolCalls`
|
|
39
|
-
from `message.tool_calls`, args JSON-parsed), emits `'llm-tool-use'` cost-event.
|
|
40
|
-
- `toOpenAIMessage` — maps `role:'tool'` → `{role:'tool',tool_call_id,content}`, assistant-with-toolCalls →
|
|
41
|
-
`{role:'assistant',content|null,tool_calls:[…]}`.
|
|
42
|
-
|
|
43
|
-
### Refinement vs the FR plan
|
|
44
|
-
The registry lookup util takes the **registry array as a param** (`(models, id)`), not `(provider, id)` —
|
|
45
|
-
so the fsm core never imports a provider submodule. The provider service supplies its own registry.
|
|
46
|
-
|
|
47
|
-
## CRITICAL fix (`514153f`, v01.15.40) — found in code review
|
|
48
|
-
|
|
49
|
-
The registry's tool-capable models (gpt-5.5, gpt-5.4-mini, o3-pro) are **reasoning models** that reject
|
|
50
|
-
`temperature`/`top_p`/`frequency_penalty`/`presence_penalty` with HTTP 400. `callModelWithTools` sent them
|
|
51
|
-
unconditionally (default temperature=0) → **every tool call 400'd on the flagship models**. Fix:
|
|
52
|
-
- `isReasoningModel(modelId)` = `/^gpt-5/ || /^o[0-9]/`; reasoning → omit the 4 sampling params.
|
|
53
|
-
- Omit `tools`/`tool_choice` when the tool array is empty (empty `[]` → 400).
|
|
54
|
-
- Clear error when no model is configured.
|
|
55
|
-
This is the local OpenAI-specific application of the FR-048 per-model-settings principle.
|
|
56
|
-
See `[[reference_oai_reasoning_models_reject_sampling_params]]`.
|
|
57
|
-
|
|
58
|
-
## Spec coverage
|
|
59
|
-
|
|
60
|
-
`oai-llm.service-base.tools.spec.ts` (mocked OpenAI client, no network) — 6 specs:
|
|
61
|
-
loop converges / never-throw on handler error / capability-reject for embedding model /
|
|
62
|
-
reasoning omits sampling params / non-reasoning sends them / empty-tools omitted.
|
|
63
|
-
`npx jasmine`: **1256/0** (146 pending pre-existing).
|
|
64
|
-
|
|
65
|
-
## What's NOT in this commit
|
|
66
|
-
|
|
67
|
-
- Anthropic / Google / FdpAI / Local LLM bases + translators (FR-047 P4/P5).
|
|
68
|
-
- The NON-tool path (`getMessageCreateInput`/`resolveMessage`) still forwards sampling params → reasoning
|
|
69
|
-
completions would 400 (pre-existing; FR-048 / separate fix).
|
|
70
|
-
- Adventor migration (FR-047 P6).
|
|
71
|
-
- FR-048 general per-model settings reconciler.
|
|
72
|
-
|
|
73
|
-
## Consumer pattern
|
|
74
|
-
|
|
75
|
-
See `fdp-documentations/guidelines/development/ai-function-calling.md` ("How to USE it").
|
|
76
|
-
|
|
77
|
-
## Cross-references
|
|
78
|
-
|
|
79
|
-
- `fdp-documentations/guidelines/development/ai-function-calling.md` (pattern + provider-translator how-to)
|
|
80
|
-
- `NPM-packages/dynamo-fsm/__documentations/2026-06-01-fr047-p1-function-calling-vocabulary.md` (vocabulary)
|
|
81
|
-
- legacy `NPM-packages/fdp-templates-nts/src/_modules/gpt/_services/gpt-handler.control-service.ts` (logic source)
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# FR-193 — `DyNTS_MemoryGuard` (bedrock OOM korai-figyelmeztetés)
|
|
2
|
-
|
|
3
|
-
**Csomag:** `@futdevpro/nts-dynamo` · **Dátum:** 2026-06-15
|
|
4
|
-
|
|
5
|
-
## Probléma
|
|
6
|
-
|
|
7
|
-
A Node heap-OOM (`--max-old-space-size` túllépés — pl. egy óriási `JSON.parse`, mint az
|
|
8
|
-
Overseernél a CCAP több-tíz-MB-os `cdpReport`-ja) a process-t **azonnal megöli**. A
|
|
9
|
-
`process.on('uncaughtException')` NEM kapja el — a crash pillanatában már **nincs mód a
|
|
10
|
-
hibát rögzíteni**. Eredmény: a szerver „csak eltűnik", nyom nélkül, és a kézi diagnózis
|
|
11
|
-
nehéz. Az EGYETLEN megbízható idő a rögzítésre a crash **ELŐTT** van.
|
|
12
|
-
|
|
13
|
-
## Megoldás — `DyNTS_MemoryGuard`
|
|
14
|
-
|
|
15
|
-
Bedrock, self-installing heap-watchdog **minden nts-szerverhez**. Periodikusan figyeli a
|
|
16
|
-
heap-kihasználtságot, és a `--max-old-space-size` plafonhoz közeledve **tartós rekordot**
|
|
17
|
-
hagy — mielőtt a fatal OOM bekövetkezne.
|
|
18
|
-
|
|
19
|
-
- **Megfigyel:** `v8.getHeapStatistics().heap_size_limit` (a valódi plafon) vs
|
|
20
|
-
`process.memoryUsage().heapUsed`, default 10s-enként.
|
|
21
|
-
- **Rögzít:** küszöb-átlépéskor `DyFM_Log` + `DyNTS_GlobalService.globalErrorHandler`
|
|
22
|
-
(az Errors-rendszer + Discord, ha bekötve). `warning` → `DyFM_ErrorLevel.warning`,
|
|
23
|
-
`critical` → `.critical`. Plusz egy in-memory ring-buffer (`getHistory()`) +
|
|
24
|
-
`getStatus()` (állapot + csúcsok) egy esetleges status-endpointhoz.
|
|
25
|
-
- **Hiszterézis:** eseményt CSAK állapot-váltáskor jelez (normal→warning→critical), és a
|
|
26
|
-
`recoveryMargin`-nyit a warning alá esve jelez `recovered`-et → nincs küszöb-körüli spam.
|
|
27
|
-
- **NEM csinál:** nem állítja le/újraindítja a process-t (az a konténer `restart:` policy
|
|
28
|
-
dolga), és nem próbálja elkapni a fatal OOM-ot (nem lehet). Tisztán megfigyelés +
|
|
29
|
-
rögzítés + opcionális `onCritical` hook (amivel a fogyasztó terhet dobhat).
|
|
30
|
-
- **Biztonság:** minden út `try/catch`-elt — egy figyelő-réteg SOHA nem dönthet be egy
|
|
31
|
-
szervert. A timer `unref()`-elt (nem tartja életben a process-t).
|
|
32
|
-
|
|
33
|
-
## Használat
|
|
34
|
-
|
|
35
|
-
**Automatikus (default-on):** a base `App` startup feltelepíti, ha
|
|
36
|
-
`DyNTS_global_settings.memoryGuard.enabled === true` (alapértelmezés szerint igen). Tehát
|
|
37
|
-
**minden nts-szerver megkapja** az nts-dynamo bump után — kód nélkül.
|
|
38
|
-
|
|
39
|
-
**Explicit / testreszabott:**
|
|
40
|
-
```ts
|
|
41
|
-
import { DyNTS_MemoryGuard } from '@futdevpro/nts-dynamo';
|
|
42
|
-
|
|
43
|
-
DyNTS_MemoryGuard.getInstance().install({
|
|
44
|
-
heapWarningThreshold: 80,
|
|
45
|
-
heapCriticalThreshold: 92,
|
|
46
|
-
onCritical: (e) => { /* pl. terhelés-dobás / külső riasztás */ },
|
|
47
|
-
});
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Konfiguráció** (`DyNTS_global_settings.memoryGuard`, defaultok):
|
|
51
|
-
| mező | default | jelentés |
|
|
52
|
-
|------|---------|----------|
|
|
53
|
-
| `enabled` | `true` | a base App feltelepíti |
|
|
54
|
-
| `pollIntervalMs` | `10000` | poll-gyakoriság |
|
|
55
|
-
| `heapWarningThreshold` | `85` | warning a heap-plafon %-ában |
|
|
56
|
-
| `heapCriticalThreshold` | `95` | critical % |
|
|
57
|
-
| `recoveryMargin` | `10` | a warning alatti margó a `recovered`-hez |
|
|
58
|
-
| `maxHistoryCount` | `100` | megőrzött események |
|
|
59
|
-
|
|
60
|
-
## Az OOM-self-healing nagyobb képe
|
|
61
|
-
|
|
62
|
-
Ez a **„rögzítés" rétege** (record). A **„restart" rétege** a konténer-szintű
|
|
63
|
-
`restart: on-failure:N` + `mem_limit` (compose, fdp-devops) — együtt adják a teljes
|
|
64
|
-
self-healinget: a guard nyomot hagy a near-OOM-ról, a restart-policy auto-helyreállít a
|
|
65
|
-
crash után. A **forrás-prevenció** (a túl nagy payload parse-olásának elkerülése) külön
|
|
66
|
-
réteg (runner-oldali report-cap / body-limit).
|
|
67
|
-
|
|
68
|
-
## Fájlok
|
|
69
|
-
- `src/_services/core/memory-guard.service.ts` + `.spec.ts` (11 spec)
|
|
70
|
-
- `src/_models/interfaces/global-settings.interface.ts` (`memoryGuard` mező)
|
|
71
|
-
- `src/_collections/global-settings.const.ts` (defaultok, enabled:true)
|
|
72
|
-
- `src/_services/server/app.server.ts` (guarded auto-install a startup-ban)
|
|
73
|
-
- `src/index.ts` (fő-export)
|