@futdevpro/nts-dynamo 1.15.68 → 1.15.70
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/logs/cicd-pipeline/output.log +2805 -0
- package/.dynamo/logs/cicd-pipeline/status.json +94 -0
- package/.dynamo/pipeline.cicd.config.json +180 -180
- 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 +678 -678
- 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/nts-integration-tests-2026-03-17.md +26 -26
- package/_specifications/BACKLOG.md +92 -92
- package/_specifications/TODO.md +15 -15
- package/_specifications/agent.md +138 -138
- package/build/_collections/archive.util.d.ts +12 -12
- package/build/_collections/archive.util.js +18 -18
- package/build/_collections/atlas-default-db-options.const.d.ts +2 -2
- package/build/_collections/atlas-default-db-options.const.js +9 -9
- package/build/_collections/default-fallback-cache-max-age.const.d.ts +2 -2
- package/build/_collections/default-fallback-cache-max-age.const.js +5 -5
- package/build/_collections/default-not-found-page.const.d.ts +5 -5
- package/build/_collections/default-not-found-page.const.js +24 -24
- package/build/_collections/default-socket-path.const.d.ts +2 -2
- package/build/_collections/default-socket-path.const.js +5 -5
- package/build/_collections/get-environment-settings.util.d.ts +2 -2
- package/build/_collections/get-environment-settings.util.js +43 -43
- package/build/_collections/global-settings.const.d.ts +6 -6
- package/build/_collections/global-settings.const.js +69 -69
- package/build/_collections/mongo-reconnect-guard.util.d.ts +73 -73
- package/build/_collections/mongo-reconnect-guard.util.js +110 -110
- package/build/_collections/star.controller.d.ts +7 -7
- package/build/_collections/star.controller.js +97 -97
- package/build/_enums/data-model-type.enum.d.ts +13 -13
- package/build/_enums/data-model-type.enum.js +17 -17
- package/build/_enums/data-service-function.enum.d.ts +18 -18
- package/build/_enums/data-service-function.enum.js +24 -24
- package/build/_enums/predefined-data-types.enum.d.ts +15 -15
- package/build/_enums/predefined-data-types.enum.js +19 -19
- package/build/_enums/route-security.enum.d.ts +11 -11
- package/build/_enums/route-security.enum.js +15 -15
- package/build/_models/control-models/api-call-params.control-model.d.ts +79 -79
- package/build/_models/control-models/api-call-params.control-model.js +101 -101
- package/build/_models/control-models/app-ext-system-controls.control-model.d.ts +6 -6
- package/build/_models/control-models/app-ext-system-controls.control-model.js +10 -10
- package/build/_models/control-models/app-params.control-model.d.ts +51 -51
- package/build/_models/control-models/app-params.control-model.js +119 -119
- package/build/_models/control-models/app-system-controls.control-model.d.ts +7 -7
- package/build/_models/control-models/app-system-controls.control-model.js +11 -11
- package/build/_models/control-models/endpoint-params.control-model.d.ts +114 -114
- package/build/_models/control-models/endpoint-params.control-model.js +442 -442
- package/build/_models/control-models/http-settings.control-model.d.ts +17 -17
- package/build/_models/control-models/http-settings.control-model.js +34 -34
- package/build/_models/control-models/system-control.control-model.d.ts +5 -5
- package/build/_models/control-models/system-control.control-model.js +11 -11
- package/build/_models/interfaces/certification-settings.interface.d.ts +5 -5
- package/build/_models/interfaces/certification-settings.interface.js +2 -2
- package/build/_models/interfaces/compare-data-options.interface.d.ts +26 -26
- package/build/_models/interfaces/compare-data-options.interface.js +2 -2
- package/build/_models/interfaces/compare-data-result.interface.d.ts +12 -12
- package/build/_models/interfaces/compare-data-result.interface.js +2 -2
- package/build/_models/interfaces/cors-settings.interface.d.ts +51 -51
- package/build/_models/interfaces/cors-settings.interface.js +2 -2
- package/build/_models/interfaces/environment-settings.interface.d.ts +34 -34
- package/build/_models/interfaces/environment-settings.interface.js +2 -2
- package/build/_models/interfaces/global-log-settings.interface.d.ts +145 -145
- package/build/_models/interfaces/global-log-settings.interface.js +2 -2
- package/build/_models/interfaces/global-service-settings.interface.d.ts +30 -30
- package/build/_models/interfaces/global-service-settings.interface.js +2 -2
- package/build/_models/interfaces/global-settings.interface.d.ts +161 -161
- package/build/_models/interfaces/global-settings.interface.js +2 -2
- package/build/_models/interfaces/routing-module-settings.interface.d.ts +19 -19
- package/build/_models/interfaces/routing-module-settings.interface.js +2 -2
- package/build/_models/interfaces/static-client-settings.interface.d.ts +28 -28
- package/build/_models/interfaces/static-client-settings.interface.js +2 -2
- package/build/_models/types/db-update.type.d.ts +129 -129
- package/build/_models/types/db-update.type.js +2 -2
- package/build/_modules/admin-auth/_models/admin-api-key-config.interface.d.ts +31 -31
- package/build/_modules/admin-auth/_models/admin-api-key-config.interface.js +2 -2
- package/build/_modules/admin-auth/admin-api-key.auth-service.d.ts +89 -89
- package/build/_modules/admin-auth/admin-api-key.auth-service.js +194 -194
- package/build/_modules/admin-auth/index.d.ts +2 -2
- package/build/_modules/admin-auth/index.js +5 -5
- package/build/_modules/ai/_models/ai-input-interfaces.d.ts +53 -53
- package/build/_modules/ai/_models/ai-input-interfaces.js +5 -5
- package/build/_modules/ai/_models/ai-test-generation-result.interface.d.ts +16 -16
- package/build/_modules/ai/_models/ai-test-generation-result.interface.js +2 -2
- package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.d.ts +13 -13
- package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.js +2 -2
- package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.d.ts +49 -49
- package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.js +2 -2
- package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.d.ts +35 -35
- package/build/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.js +117 -117
- package/build/_modules/ai/_modules/anthropic/index.d.ts +2 -2
- package/build/_modules/ai/_modules/anthropic/index.js +7 -7
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.d.ts +84 -84
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.js +467 -467
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts +109 -109
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +418 -418
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.d.ts +28 -28
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.js +73 -73
- package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.d.ts +6 -6
- package/build/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.js +10 -10
- package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.d.ts +51 -51
- package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.js +132 -132
- package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.d.ts +47 -47
- package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.js +136 -136
- package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.d.ts +17 -17
- package/build/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.js +76 -76
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +49 -49
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +2 -2
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.d.ts +8 -8
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.js +2 -2
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.d.ts +11 -11
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.js +2 -2
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.d.ts +12 -12
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.js +2 -2
- package/build/_modules/ai/_modules/document-ai/index.d.ts +12 -12
- package/build/_modules/ai/_modules/document-ai/index.js +27 -27
- package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.d.ts +34 -34
- package/build/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.js +128 -128
- package/build/_modules/ai/_modules/fdp-ai/index.d.ts +2 -2
- package/build/_modules/ai/_modules/fdp-ai/index.js +7 -7
- package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.d.ts +2 -2
- package/build/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.js +8 -8
- package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.d.ts +2 -2
- package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.js +74 -74
- package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.d.ts +2 -2
- package/build/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.js +67 -67
- package/build/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.js +42 -42
- package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.d.ts +5 -5
- package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.js +2 -2
- package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.js +6 -6
- package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.d.ts +51 -51
- package/build/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.js +2 -2
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.d.ts +21 -21
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.js +187 -187
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.d.ts +26 -26
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.js +278 -278
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.d.ts +22 -22
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.js +322 -322
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.d.ts +119 -119
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.js +480 -480
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.d.ts +25 -25
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.js +103 -103
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts +169 -169
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.js +479 -479
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +201 -201
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +579 -579
- package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.d.ts +39 -39
- package/build/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.js +110 -110
- package/build/_modules/ai/_modules/open-ai/index.d.ts +14 -14
- package/build/_modules/ai/_modules/open-ai/index.js +55 -55
- package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts +80 -80
- package/build/_modules/ai/_services/ai-embedding-mock.service.js +166 -166
- package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +51 -51
- package/build/_modules/ai/_services/ai-embedding-provider.registry.js +78 -78
- package/build/_modules/ai/_services/ai-embedding.service-base.d.ts +41 -41
- package/build/_modules/ai/_services/ai-embedding.service-base.js +11 -11
- package/build/_modules/ai/_services/ai-llm-chat.service-base.d.ts +39 -39
- package/build/_modules/ai/_services/ai-llm-chat.service-base.js +11 -11
- package/build/_modules/ai/_services/ai-llm.service-base.d.ts +132 -132
- package/build/_modules/ai/_services/ai-llm.service-base.js +313 -313
- package/build/_modules/ai/_services/ai-provider.service-base.d.ts +46 -46
- package/build/_modules/ai/_services/ai-provider.service-base.js +43 -43
- package/build/_modules/ai/_services/ai-user-key.service-base.d.ts +44 -44
- package/build/_modules/ai/_services/ai-user-key.service-base.js +14 -14
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +110 -110
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +297 -297
- package/build/_modules/ai/index.d.ts +13 -13
- package/build/_modules/ai/index.js +22 -22
- package/build/_modules/assistant/_collections/ass-global-settings.const.d.ts +2 -2
- package/build/_modules/assistant/_collections/ass-global-settings.const.js +14 -14
- package/build/_modules/assistant/_collections/ass.util.d.ts +15 -15
- package/build/_modules/assistant/_collections/ass.util.js +42 -42
- package/build/_modules/assistant/_models/ass-global-settings.interface.d.ts +13 -13
- package/build/_modules/assistant/_models/ass-global-settings.interface.js +2 -2
- package/build/_modules/assistant/_services/ass-io.control-service.d.ts +19 -19
- package/build/_modules/assistant/_services/ass-io.control-service.js +57 -57
- package/build/_modules/assistant/_services/ass-main.control-service.d.ts +32 -32
- package/build/_modules/assistant/_services/ass-main.control-service.js +65 -65
- package/build/_modules/assistant/index.d.ts +6 -6
- package/build/_modules/assistant/index.js +18 -18
- package/build/_modules/bot/_collections/bot-default-commands.const.d.ts +2 -2
- package/build/_modules/bot/_collections/bot-default-commands.const.js +13 -13
- package/build/_modules/bot/_collections/bot-global-settings.const.d.ts +2 -2
- package/build/_modules/bot/_collections/bot-global-settings.const.js +31 -31
- package/build/_modules/bot/_models/bot-channel-wrapper.interface.d.ts +25 -25
- package/build/_modules/bot/_models/bot-channel-wrapper.interface.js +38 -38
- package/build/_modules/bot/_models/bot-command.interface.d.ts +7 -7
- package/build/_modules/bot/_models/bot-command.interface.js +2 -2
- package/build/_modules/bot/_models/bot-global-settings.interface.d.ts +85 -85
- package/build/_modules/bot/_models/bot-global-settings.interface.js +2 -2
- package/build/_modules/bot/_models/bot-last-mention-date.interface.d.ts +6 -6
- package/build/_modules/bot/_models/bot-last-mention-date.interface.js +2 -2
- package/build/_modules/bot/_models/bot-last-message-date.interface.d.ts +5 -5
- package/build/_modules/bot/_models/bot-last-message-date.interface.js +2 -2
- package/build/_modules/bot/_models/bot-message-wrapper.interface.d.ts +37 -37
- package/build/_modules/bot/_models/bot-message-wrapper.interface.js +54 -54
- package/build/_modules/bot/_models/bot-user-wrapper.interface.d.ts +23 -23
- package/build/_modules/bot/_models/bot-user-wrapper.interface.js +28 -28
- package/build/_modules/bot/_modules/discord-bot/_models/dib-platform.types.js +10 -10
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.d.ts +69 -69
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.js +497 -497
- package/build/_modules/bot/_modules/discord-bot/index.d.ts +1 -1
- package/build/_modules/bot/_modules/discord-bot/index.js +12 -12
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.d.ts +16 -16
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.js +42 -42
- package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.d.ts +9 -9
- package/build/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.js +2 -2
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.d.ts +59 -59
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.js +349 -349
- package/build/_modules/bot/_modules/dynamo-bot/index.d.ts +3 -3
- package/build/_modules/bot/_modules/dynamo-bot/index.js +15 -15
- package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.d.ts +6 -6
- package/build/_modules/bot/_modules/slack-bot/_models/slb-platform.types.js +2 -2
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.d.ts +56 -56
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.js +137 -137
- package/build/_modules/bot/_modules/slack-bot/index.d.ts +2 -2
- package/build/_modules/bot/_modules/slack-bot/index.js +12 -12
- package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.d.ts +6 -6
- package/build/_modules/bot/_modules/teams-bot/_models/teb-platform.types.js +2 -2
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.d.ts +56 -56
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.js +137 -137
- package/build/_modules/bot/_modules/teams-bot/index.d.ts +2 -2
- package/build/_modules/bot/_modules/teams-bot/index.js +12 -12
- package/build/_modules/bot/_services/bot-commands.control-service.d.ts +12 -12
- package/build/_modules/bot/_services/bot-commands.control-service.js +117 -117
- package/build/_modules/bot/_services/bot-io.control-service.d.ts +23 -23
- package/build/_modules/bot/_services/bot-io.control-service.js +226 -226
- package/build/_modules/bot/_services/bot-main.control-service.d.ts +35 -35
- package/build/_modules/bot/_services/bot-main.control-service.js +195 -195
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.d.ts +71 -71
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.js +15 -15
- package/build/_modules/bot/_services/bot-routines.control-service.d.ts +13 -13
- package/build/_modules/bot/_services/bot-routines.control-service.js +59 -59
- package/build/_modules/bot/index.d.ts +17 -17
- package/build/_modules/bot/index.js +36 -36
- package/build/_modules/custom-data/custom-data.controller.d.ts +5 -5
- package/build/_modules/custom-data/custom-data.controller.js +56 -56
- package/build/_modules/custom-data/custom-data.data-service.d.ts +5 -5
- package/build/_modules/custom-data/custom-data.data-service.js +11 -11
- package/build/_modules/custom-data/get-custom-data-routing-module.util.d.ts +3 -3
- package/build/_modules/custom-data/get-custom-data-routing-module.util.js +16 -16
- package/build/_modules/custom-data/index.d.ts +4 -4
- package/build/_modules/custom-data/index.js +9 -9
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +58 -58
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +168 -168
- package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +31 -31
- package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +7 -7
- package/build/_modules/data-readers/index.d.ts +2 -2
- package/build/_modules/data-readers/index.js +10 -10
- package/build/_modules/defaults/_collections/default-endpoints.util.d.ts +248 -248
- package/build/_modules/defaults/_collections/default-endpoints.util.js +386 -386
- package/build/_modules/defaults/_models/default-user.data-model.d.ts +19 -19
- package/build/_modules/defaults/_models/default-user.data-model.js +72 -72
- package/build/_modules/defaults/_services/default-auth.service.d.ts +50 -50
- package/build/_modules/defaults/_services/default-auth.service.js +158 -158
- package/build/_modules/defaults/_services/default-socket-events.service.d.ts +23 -23
- package/build/_modules/defaults/_services/default-socket-events.service.js +60 -60
- package/build/_modules/defaults/_services/default-user.data-service.d.ts +24 -24
- package/build/_modules/defaults/_services/default-user.data-service.js +87 -87
- package/build/_modules/defaults/index.d.ts +5 -5
- package/build/_modules/defaults/index.js +17 -17
- package/build/_modules/discord-assistant/_collections/dias-global-settings.const.d.ts +2 -2
- package/build/_modules/discord-assistant/_collections/dias-global-settings.const.js +16 -16
- package/build/_modules/discord-assistant/_collections/dias.util.d.ts +31 -31
- package/build/_modules/discord-assistant/_collections/dias.util.js +85 -85
- package/build/_modules/discord-assistant/_models/dias-global-settings.interface.d.ts +17 -17
- package/build/_modules/discord-assistant/_models/dias-global-settings.interface.js +2 -2
- package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.d.ts +8 -8
- package/build/_modules/discord-assistant/_models/dias-knowledge.data-model.js +46 -46
- package/build/_modules/discord-assistant/_services/dias-chunk.data-service.d.ts +17 -17
- package/build/_modules/discord-assistant/_services/dias-chunk.data-service.js +123 -123
- package/build/_modules/discord-assistant/_services/dias-io.control-service.d.ts +10 -10
- package/build/_modules/discord-assistant/_services/dias-io.control-service.js +49 -49
- package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts +3 -3
- package/build/_modules/discord-assistant/_services/dias-main.control-service.js +7 -7
- package/build/_modules/discord-assistant/_services/dias.service-base.d.ts +18 -18
- package/build/_modules/discord-assistant/_services/dias.service-base.js +46 -46
- package/build/_modules/discord-assistant/index.d.ts +11 -11
- package/build/_modules/discord-assistant/index.js +24 -24
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.d.ts +3 -3
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.js +7 -7
- package/build/_modules/discord-assistant-voiced/index.d.ts +2 -2
- package/build/_modules/discord-assistant-voiced/index.js +28 -28
- package/build/_modules/discord-bot/_collections/dibo-default-commands.const.d.ts +2 -2
- package/build/_modules/discord-bot/_collections/dibo-default-commands.const.js +12 -12
- package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.d.ts +2 -2
- package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.js +43 -43
- package/build/_modules/discord-bot/_collections/dibo-operations.util.d.ts +22 -22
- package/build/_modules/discord-bot/_collections/dibo-operations.util.js +275 -275
- package/build/_modules/discord-bot/_models/dibo-command.interface.d.ts +7 -7
- package/build/_modules/discord-bot/_models/dibo-command.interface.js +2 -2
- package/build/_modules/discord-bot/_models/dibo-global-settings.interface.d.ts +87 -87
- package/build/_modules/discord-bot/_models/dibo-global-settings.interface.js +2 -2
- package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.d.ts +6 -6
- package/build/_modules/discord-bot/_models/dibo-last-mention-date.inteface.js +2 -2
- package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.d.ts +5 -5
- package/build/_modules/discord-bot/_models/dibo-last-message-date.interface.js +2 -2
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.d.ts +11 -11
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.js +109 -109
- package/build/_modules/discord-bot/_services/dibo-io.control-service.d.ts +21 -21
- package/build/_modules/discord-bot/_services/dibo-io.control-service.js +218 -218
- package/build/_modules/discord-bot/_services/dibo-main.control-service.d.ts +89 -89
- package/build/_modules/discord-bot/_services/dibo-main.control-service.js +363 -363
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.d.ts +13 -13
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.js +73 -73
- package/build/_modules/discord-bot/index.d.ts +11 -11
- package/build/_modules/discord-bot/index.js +30 -30
- package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.d.ts +34 -34
- package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.js +38 -38
- package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +35 -35
- package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +53 -53
- package/build/_modules/local-vector-search/_models/lvs-search-result.interface.d.ts +16 -16
- package/build/_modules/local-vector-search/_models/lvs-search-result.interface.js +2 -2
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.d.ts +88 -88
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.js +189 -189
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.d.ts +26 -26
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.js +197 -197
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.d.ts +145 -145
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.js +294 -294
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +69 -69
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +122 -122
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +42 -42
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +71 -71
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts +70 -70
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.d.ts.map +1 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js +187 -181
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.js.map +1 -1
- package/build/_modules/local-vector-search/index.d.ts +8 -8
- package/build/_modules/local-vector-search/index.js +15 -15
- package/build/_modules/logs/_models/file-log-entry.interface.d.ts +13 -13
- package/build/_modules/logs/_models/file-log-entry.interface.js +2 -2
- package/build/_modules/logs/_models/file-log-read-result.interface.d.ts +35 -35
- package/build/_modules/logs/_models/file-log-read-result.interface.js +2 -2
- package/build/_modules/logs/file-log.service.d.ts +132 -132
- package/build/_modules/logs/file-log.service.js +444 -444
- package/build/_modules/logs/file-logs.controller.d.ts +40 -40
- package/build/_modules/logs/file-logs.controller.js +138 -138
- package/build/_modules/logs/get-file-logs-routing-module.util.d.ts +31 -31
- package/build/_modules/logs/get-file-logs-routing-module.util.js +37 -37
- package/build/_modules/logs/get-logs-routing-module.util.d.ts +18 -18
- package/build/_modules/logs/get-logs-routing-module.util.js +31 -31
- package/build/_modules/logs/index.d.ts +8 -8
- package/build/_modules/logs/index.js +15 -15
- package/build/_modules/logs/log-buffer.service.d.ts +37 -37
- package/build/_modules/logs/log-buffer.service.js +96 -96
- package/build/_modules/logs/logs.controller.d.ts +26 -26
- package/build/_modules/logs/logs.controller.js +89 -89
- package/build/_modules/logs/logs.service.d.ts +39 -39
- package/build/_modules/logs/logs.service.js +96 -96
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +108 -108
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +13 -13
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +70 -70
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +98 -98
- package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +56 -56
- package/build/_modules/mcp/_services/dynts-mcp.adapter.js +138 -138
- package/build/_modules/mcp/index.d.ts +3 -3
- package/build/_modules/mcp/index.js +12 -12
- package/build/_modules/messaging/_collections/get-messaging-routing-module.util.d.ts +7 -7
- package/build/_modules/messaging/_collections/get-messaging-routing-module.util.js +20 -20
- package/build/_modules/messaging/_collections/msg-global-settings.const.d.ts +5 -5
- package/build/_modules/messaging/_collections/msg-global-settings.const.js +22 -22
- package/build/_modules/messaging/_collections/msg.util.d.ts +24 -24
- package/build/_modules/messaging/_collections/msg.util.js +62 -62
- package/build/_modules/messaging/_models/msg-global-settings.interface.d.ts +28 -28
- package/build/_modules/messaging/_models/msg-global-settings.interface.js +2 -2
- package/build/_modules/messaging/_services/msg-conversation.data-service.d.ts +28 -28
- package/build/_modules/messaging/_services/msg-conversation.data-service.js +109 -109
- package/build/_modules/messaging/_services/msg-events.service.d.ts +61 -61
- package/build/_modules/messaging/_services/msg-events.service.js +203 -203
- package/build/_modules/messaging/_services/msg-integration.control-service.js +180 -180
- package/build/_modules/messaging/_services/msg-main.control-service.d.ts +62 -62
- package/build/_modules/messaging/_services/msg-main.control-service.js +428 -428
- package/build/_modules/messaging/_services/msg-message.data-service.d.ts +28 -28
- package/build/_modules/messaging/_services/msg-message.data-service.js +103 -103
- package/build/_modules/messaging/_services/msg.controller.d.ts +12 -12
- package/build/_modules/messaging/_services/msg.controller.js +256 -256
- package/build/_modules/messaging/index.d.ts +10 -10
- package/build/_modules/messaging/index.js +27 -27
- package/build/_modules/mock/app-extended-server.mock.d.ts +41 -41
- package/build/_modules/mock/app-extended-server.mock.js +169 -169
- package/build/_modules/mock/app-integration-test.mock.d.ts +19 -19
- package/build/_modules/mock/app-integration-test.mock.js +45 -45
- package/build/_modules/mock/app-params.mock.d.ts +2 -2
- package/build/_modules/mock/app-params.mock.js +9 -9
- package/build/_modules/mock/app-server.mock.d.ts +41 -41
- package/build/_modules/mock/app-server.mock.js +148 -148
- package/build/_modules/mock/auth-service.mock.d.ts +10 -10
- package/build/_modules/mock/auth-service.mock.js +19 -19
- package/build/_modules/mock/controller.mock.d.ts +5 -5
- package/build/_modules/mock/controller.mock.js +14 -14
- package/build/_modules/mock/data-model.mock.d.ts +26 -26
- package/build/_modules/mock/data-model.mock.js +72 -72
- package/build/_modules/mock/email-service-collection.mock.d.ts +7 -7
- package/build/_modules/mock/email-service-collection.mock.js +12 -12
- package/build/_modules/mock/email-service.mock.d.ts +4 -4
- package/build/_modules/mock/email-service.mock.js +20 -20
- package/build/_modules/mock/endpoint.mock.d.ts +8 -8
- package/build/_modules/mock/endpoint.mock.js +79 -79
- package/build/_modules/mock/socket-client.mock.d.ts +9 -9
- package/build/_modules/mock/socket-client.mock.js +38 -38
- package/build/_modules/mock/socket-server.mock.d.ts +15 -15
- package/build/_modules/mock/socket-server.mock.js +32 -32
- package/build/_modules/oauth2/_routes/oauth2.controller.d.ts +16 -16
- package/build/_modules/oauth2/_routes/oauth2.controller.js +96 -96
- package/build/_modules/oauth2/_services/oauth2.auth-service.d.ts +30 -30
- package/build/_modules/oauth2/_services/oauth2.auth-service.js +215 -215
- package/build/_modules/oauth2/_services/oauth2.control-service.d.ts +132 -132
- package/build/_modules/oauth2/_services/oauth2.control-service.js +576 -576
- package/build/_modules/oauth2/index.d.ts +3 -3
- package/build/_modules/oauth2/index.js +14 -14
- package/build/_modules/rate-limit/_models/rate-limit-config.interface.d.ts +61 -61
- package/build/_modules/rate-limit/_models/rate-limit-config.interface.js +2 -2
- package/build/_modules/rate-limit/_models/rate-limit-policy.interface.d.ts +15 -15
- package/build/_modules/rate-limit/_models/rate-limit-policy.interface.js +2 -2
- package/build/_modules/rate-limit/index.d.ts +3 -3
- package/build/_modules/rate-limit/index.js +5 -5
- package/build/_modules/rate-limit/rate-limit.middleware.d.ts +132 -132
- package/build/_modules/rate-limit/rate-limit.middleware.js +289 -289
- package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +18 -18
- package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +22 -22
- package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +43 -43
- package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +67 -67
- package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +88 -88
- package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +11 -11
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +83 -83
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +219 -219
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +53 -53
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +75 -75
- package/build/_modules/scoped-config/index.d.ts +5 -5
- package/build/_modules/scoped-config/index.js +14 -14
- package/build/_modules/server/errors/errors.control-service.d.ts +21 -21
- package/build/_modules/server/errors/errors.control-service.js +10 -10
- package/build/_modules/server/errors/errors.controller.d.ts +100 -100
- package/build/_modules/server/errors/errors.controller.js +355 -355
- package/build/_modules/server/errors/errors.data-service.d.ts +64 -64
- package/build/_modules/server/errors/errors.data-service.js +628 -628
- package/build/_modules/server/index.d.ts +7 -7
- package/build/_modules/server/index.js +26 -26
- package/build/_modules/server/server-status/server-status-snapshot.control-service.d.ts +4 -4
- package/build/_modules/server/server-status/server-status-snapshot.control-service.js +7 -7
- package/build/_modules/server/server-status/server-status-snapshot.data-service.d.ts +6 -6
- package/build/_modules/server/server-status/server-status-snapshot.data-service.js +22 -22
- package/build/_modules/server/server-status/server-status.control-service.d.ts +74 -74
- package/build/_modules/server/server-status/server-status.control-service.js +234 -234
- package/build/_modules/server/server-status/server-status.controller.d.ts +84 -84
- package/build/_modules/server/server-status/server-status.controller.js +172 -172
- package/build/_modules/socket/_enums/socket-security.enum.d.ts +10 -10
- package/build/_modules/socket/_enums/socket-security.enum.js +14 -14
- package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts +8 -8
- package/build/_modules/socket/_models/socket-client-service-params.control-model.js +16 -16
- package/build/_modules/socket/_models/socket-presence.control-model.d.ts +25 -25
- package/build/_modules/socket/_models/socket-presence.control-model.js +139 -139
- package/build/_modules/socket/_models/socket-server-service-params.control-model.d.ts +12 -12
- package/build/_modules/socket/_models/socket-server-service-params.control-model.js +20 -20
- package/build/_modules/socket/_services/socket-client.service.d.ts +37 -37
- package/build/_modules/socket/_services/socket-client.service.js +196 -196
- package/build/_modules/socket/_services/socket-server.service.d.ts +94 -94
- package/build/_modules/socket/_services/socket-server.service.js +689 -689
- package/build/_modules/socket/app-extended.server.d.ts +145 -145
- package/build/_modules/socket/app-extended.server.js +506 -506
- package/build/_modules/socket/index.d.ts +8 -8
- package/build/_modules/socket/index.js +35 -35
- package/build/_modules/test/get-test-routing-module.util.d.ts +3 -3
- package/build/_modules/test/get-test-routing-module.util.js +16 -16
- package/build/_modules/test/index.d.ts +3 -3
- package/build/_modules/test/index.js +11 -11
- package/build/_modules/test/test.controller.d.ts +5 -5
- package/build/_modules/test/test.controller.js +103 -103
- package/build/_modules/usage/get-usage-routing-module.util.d.ts +3 -3
- package/build/_modules/usage/get-usage-routing-module.util.js +16 -16
- package/build/_modules/usage/index.d.ts +4 -4
- package/build/_modules/usage/index.js +13 -13
- package/build/_modules/usage/usage.controller.d.ts +6 -6
- package/build/_modules/usage/usage.controller.js +95 -95
- package/build/_modules/usage/usage.data-service.d.ts +17 -17
- package/build/_modules/usage/usage.data-service.js +135 -135
- package/build/_services/base/api.service-base.d.ts +9 -9
- package/build/_services/base/api.service-base.js +46 -46
- package/build/_services/base/archive-data.service.d.ts +25 -25
- package/build/_services/base/archive-data.service.js +140 -140
- package/build/_services/base/data.service.d.ts +381 -381
- package/build/_services/base/data.service.js +2068 -2068
- package/build/_services/base/db.service.d.ts +393 -393
- package/build/_services/base/db.service.js +1256 -1256
- package/build/_services/base/singleton.service-base.d.ts +8 -8
- package/build/_services/base/singleton.service-base.js +21 -21
- package/build/_services/base/singleton.service.d.ts +11 -11
- package/build/_services/base/singleton.service.js +31 -31
- package/build/_services/core/api.service.d.ts +45 -45
- package/build/_services/core/api.service.js +436 -436
- package/build/_services/core/auth.service.d.ts +129 -129
- package/build/_services/core/auth.service.js +59 -59
- package/build/_services/core/email.service.d.ts +77 -77
- package/build/_services/core/email.service.js +489 -489
- package/build/_services/core/global.service.d.ts +76 -76
- package/build/_services/core/global.service.js +370 -370
- package/build/_services/core/memory-guard.service.d.ts +110 -110
- package/build/_services/core/memory-guard.service.js +197 -197
- package/build/_services/core/service-collection.service.d.ts +4 -4
- package/build/_services/core/service-collection.service.js +7 -7
- package/build/_services/route/controller.service.d.ts +124 -124
- package/build/_services/route/controller.service.js +95 -95
- package/build/_services/route/routing-module.service.d.ts +80 -80
- package/build/_services/route/routing-module.service.js +250 -250
- package/build/_services/server/app.server.d.ts +352 -352
- package/build/_services/server/app.server.js +1323 -1323
- package/build/_services/shared.static-service.d.ts +36 -36
- package/build/_services/shared.static-service.js +72 -72
- package/build/index.d.ts +43 -43
- package/build/index.js +80 -80
- package/eslint.config.js +3 -3
- package/nodemon.json +24 -24
- package/package.json +417 -416
- package/pnpm-workspace.yaml +5 -5
- 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/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/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/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 +89 -89
- package/src/_collections/mongo-reconnect-guard.util.spec.ts +52 -52
- package/src/_collections/mongo-reconnect-guard.util.ts +172 -172
- package/src/_collections/sample.env +21 -21
- package/src/_collections/star.controller.spec.ts +224 -224
- package/src/_collections/star.controller.ts +129 -129
- 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 +627 -627
- package/src/_models/control-models/endpoint-params.control-model.ts +627 -627
- 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/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/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 +185 -185
- package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
- package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
- package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
- package/src/_models/types/db-update.type.ts +100 -100
- 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/_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/_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 +1033 -1033
- 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-mock.service.spec.ts +115 -115
- package/src/_modules/ai/_services/ai-embedding-mock.service.ts +233 -233
- 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.spec.ts +250 -250
- package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -519
- 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 +23 -23
- 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 +198 -198
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +150 -150
- 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 +108 -108
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +409 -393
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +224 -220
- 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/rate-limit/_models/rate-limit-config.interface.ts +69 -69
- package/src/_modules/rate-limit/_models/rate-limit-policy.interface.ts +16 -16
- package/src/_modules/rate-limit/index.ts +3 -3
- package/src/_modules/rate-limit/rate-limit.middleware.spec.ts +264 -264
- package/src/_modules/rate-limit/rate-limit.middleware.ts +343 -343
- 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 +249 -249
- package/src/_modules/server/errors/errors.controller.ts +489 -489
- package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
- package/src/_modules/server/errors/errors.data-service.ts +816 -816
- package/src/_modules/server/index.ts +30 -30
- 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 +584 -584
- package/src/_modules/server/server-status/server-status.control-service.ts +396 -396
- package/src/_modules/server/server-status/server-status.controller.spec.ts +248 -248
- package/src/_modules/server/server-status/server-status.controller.ts +253 -253
- 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 +164 -164
- package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
- package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
- package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
- 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 +11 -11
- package/src/_modules/socket/_services/socket-server.service.ts +1068 -1068
- package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
- package/src/_modules/socket/app-extended.server.ts +630 -630
- 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/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 +81 -81
- package/src/_modules/usage/usage.controller.ts +126 -126
- 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 +196 -196
- package/src/_services/base/archive-data.service.ts +216 -216
- package/src/_services/base/data.service.spec.ts +674 -674
- package/src/_services/base/data.service.ts +2719 -2719
- package/src/_services/base/db.service.spec.ts +73 -73
- package/src/_services/base/db.service.ts +1575 -1575
- 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 +140 -140
- package/src/_services/core/api.service.ts +607 -607
- package/src/_services/core/auth.service.spec.ts +159 -159
- package/src/_services/core/auth.service.ts +174 -174
- package/src/_services/core/email.service.spec.ts +85 -85
- package/src/_services/core/email.service.ts +742 -742
- package/src/_services/core/global.service.spec.ts +292 -292
- package/src/_services/core/global.service.ts +475 -475
- package/src/_services/core/memory-guard.service.spec.ts +165 -165
- package/src/_services/core/memory-guard.service.ts +281 -281
- 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.ts +1747 -1747
- package/src/_services/shared.static-service.spec.ts +99 -99
- package/src/_services/shared.static-service.ts +78 -78
- package/src/index.ts +96 -96
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +42 -42
|
@@ -1,580 +1,580 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DyNTS_OAI_LLM_ServiceBase = void 0;
|
|
4
|
-
const openai_1 = require("openai");
|
|
5
|
-
const open_ai_1 = require("@futdevpro/fsm-dynamo/ai/open-ai");
|
|
6
|
-
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
7
|
-
const ai_1 = require("@futdevpro/fsm-dynamo/ai");
|
|
8
|
-
const global_settings_const_1 = require("../../../../../_collections/global-settings.const");
|
|
9
|
-
const oai_global_settings_const_1 = require("../_collections/oai-global-settings.const");
|
|
10
|
-
const oai_llm_predefined_requests_conts_1 = require("../_collections/oai-llm-predefined-requests.conts");
|
|
11
|
-
const ai_llm_service_base_1 = require("../../../_services/ai-llm.service-base");
|
|
12
|
-
/**
|
|
13
|
-
* {
|
|
14
|
-
* organization: 'org-XY',
|
|
15
|
-
* apiKey: 'sk-XY',
|
|
16
|
-
* project: 'proj_XY',
|
|
17
|
-
* }
|
|
18
|
-
*/
|
|
19
|
-
// Di Dictionary DiModel DiEz DiAz
|
|
20
|
-
class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_ServiceBase {
|
|
21
|
-
/* readonly defaultErrorUserMsg: string =
|
|
22
|
-
`We encountered an unhandled Control Service Error, ` +
|
|
23
|
-
`\nplease contact the responsible development team.`; */
|
|
24
|
-
openai;
|
|
25
|
-
defaultSettings;
|
|
26
|
-
// Provider properties from DyNTS_AI_Provider_ServiceBase
|
|
27
|
-
aiProvider = ai_1.DyFM_AI_Provider.OpenAI;
|
|
28
|
-
capabilities = {
|
|
29
|
-
chat: true,
|
|
30
|
-
embeddings: true,
|
|
31
|
-
imageGeneration: true,
|
|
32
|
-
vision: true,
|
|
33
|
-
audioGeneration: true,
|
|
34
|
-
audioAnalysis: true,
|
|
35
|
-
functionCalling: true,
|
|
36
|
-
streaming: true,
|
|
37
|
-
batchOperations: true,
|
|
38
|
-
maxContextLength: 128000,
|
|
39
|
-
supportedModelTypes: ['gpt-4o', 'gpt-4o-mini', 'text-embedding-3-large', 'text-embedding-3-small']
|
|
40
|
-
};
|
|
41
|
-
/* get _debugLog(): boolean {
|
|
42
|
-
return this.defaultSettings.debugLog;
|
|
43
|
-
} */
|
|
44
|
-
/* get defaultSystemPrompt(): string {
|
|
45
|
-
return this.defaultSettings.systemPrompt;
|
|
46
|
-
} */
|
|
47
|
-
get defaultModel() {
|
|
48
|
-
return this.defaultSettings.useModel;
|
|
49
|
-
}
|
|
50
|
-
predefinedRequests = oai_llm_predefined_requests_conts_1.DyNTS_OAI_LLMDefaultPredefined_Requests;
|
|
51
|
-
constructor(set) {
|
|
52
|
-
super();
|
|
53
|
-
global_settings_const_1.DyNTS_global_settings.openAi_settings ??= oai_global_settings_const_1.DyNTS_OAI_global_settings;
|
|
54
|
-
this.openai = new openai_1.OpenAI(set?.config ??
|
|
55
|
-
{
|
|
56
|
-
organization: global_settings_const_1.DyNTS_global_settings.env_settings.openAi.organization,
|
|
57
|
-
apiKey: global_settings_const_1.DyNTS_global_settings.env_settings.openAi.apiKey,
|
|
58
|
-
project: global_settings_const_1.DyNTS_global_settings.env_settings.openAi.project,
|
|
59
|
-
});
|
|
60
|
-
this.defaultSettings = set?.defaultSettings ??
|
|
61
|
-
oai_global_settings_const_1.DyNTS_OAI_global_settings.defaultSettings ??
|
|
62
|
-
new open_ai_1.DyFM_OAI_CallSettings();
|
|
63
|
-
// FR-002 — opcionális per-call cost-event callback átadás a base-osztálynak
|
|
64
|
-
if (set?.onCostEvent) {
|
|
65
|
-
this.onCostEvent = set.onCostEvent;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Inicializálja az OpenAI client-et a megadott config-gal
|
|
70
|
-
*
|
|
71
|
-
* Reinitializes the OpenAI client with the provided config
|
|
72
|
-
*/
|
|
73
|
-
setup(config) {
|
|
74
|
-
this.openai = new openai_1.OpenAI(config);
|
|
75
|
-
}
|
|
76
|
-
/* readonly defaultLogReplacer: string = '...long-context...'; */
|
|
77
|
-
//#region Ask Questions
|
|
78
|
-
/**
|
|
79
|
-
* Asks the AI to answer a yes/no question
|
|
80
|
-
*
|
|
81
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.yesNo.request} to ask the question,
|
|
82
|
-
* and the {@link DyNTS_OAI_LLM_Predefined_Requests.yesNo.upperCaseYes} to check the answer
|
|
83
|
-
*/
|
|
84
|
-
async requestYesNo(set) {
|
|
85
|
-
set.message += this.predefinedRequests.yesNo.request;
|
|
86
|
-
const answer = await this.requestSimpleMessage(set);
|
|
87
|
-
return this.convertAnswerToBoolean(answer);
|
|
88
|
-
}
|
|
89
|
-
/** the exact same as {@link requestYesNo} */
|
|
90
|
-
//yesNoQuestion = this.askYesNoQuestion;
|
|
91
|
-
/**
|
|
92
|
-
* Asks the AI to answer a percentage question
|
|
93
|
-
*
|
|
94
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.percentageOnly} to ask the question
|
|
95
|
-
*/
|
|
96
|
-
async requestPercentage(set) {
|
|
97
|
-
set.message += this.predefinedRequests.percentageOnly;
|
|
98
|
-
const answer = await this.requestSimpleMessage(set);
|
|
99
|
-
return this.convertAnswerToNumber(answer, set.message);
|
|
100
|
-
}
|
|
101
|
-
/** the exact same as {@link requestPercentage} */
|
|
102
|
-
//percentageQuestion = this.askPercentageQuestion;
|
|
103
|
-
/**
|
|
104
|
-
* Asks the AI to select one of the options from the list
|
|
105
|
-
*
|
|
106
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.selectRequest} to ask the question
|
|
107
|
-
*/
|
|
108
|
-
/* async askSelectQuestion(
|
|
109
|
-
set: DyFM_AI_GenericSelect_Input<string>
|
|
110
|
-
): Promise<string> {
|
|
111
|
-
// replace the {{DyNTS_selectOptions}} with the list of options
|
|
112
|
-
const selectQuestionAddition = this.predefinedRequests.selectRequest.replace(
|
|
113
|
-
'{{DyNTS_selectOptions}}',
|
|
114
|
-
this.getTextListAsText(set.selectFrom)
|
|
115
|
-
);
|
|
116
|
-
set.message += selectQuestionAddition;
|
|
117
|
-
|
|
118
|
-
let answer = await this.requestSimpleMessage(set);
|
|
119
|
-
|
|
120
|
-
answer = answer.toLocaleUpperCase();
|
|
121
|
-
|
|
122
|
-
for (const item of set.selectFrom) {
|
|
123
|
-
if (answer.includes(item.toLocaleUpperCase())) return item;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return null;
|
|
127
|
-
} */
|
|
128
|
-
/** the exact same as {@link askSelectQuestion} */
|
|
129
|
-
//selectQuestion = this.askSelectQuestion;
|
|
130
|
-
/**
|
|
131
|
-
* Asks the AI to select one of the options from the list
|
|
132
|
-
* Similar to {@link askSelectQuestion},
|
|
133
|
-
* but with a more generic approach that can be used for objects
|
|
134
|
-
*
|
|
135
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.selectRequest} to ask the question
|
|
136
|
-
*/
|
|
137
|
-
async requestSelect(set) {
|
|
138
|
-
const options = this.stringifySelectOptions(set.selectFrom);
|
|
139
|
-
const selectQuestionAddition = this.predefinedRequests.selectRequest.replace('{{DyNTS_selectOptions}}', this.getTextListAsText(options));
|
|
140
|
-
set.message += selectQuestionAddition;
|
|
141
|
-
const answer = await this.requestSimpleMessage(set);
|
|
142
|
-
return this.convertAnswerToSelectOption(answer, set.message, set.selectFrom);
|
|
143
|
-
}
|
|
144
|
-
/** the exact same as {@link requestSelect} */
|
|
145
|
-
//selectRequest = this.requestSelect;
|
|
146
|
-
/**
|
|
147
|
-
* Asks the AI to select one or more of the options from the list
|
|
148
|
-
*
|
|
149
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.multiselect} to ask the question
|
|
150
|
-
*/
|
|
151
|
-
async requestMultiselect(set) {
|
|
152
|
-
const options = this.stringifySelectOptions(set.options);
|
|
153
|
-
const selectQuestionAddition = this.predefinedRequests.multiselect.replace('{{DyNTS_selectOptions}}', this.getTextListAsText(options));
|
|
154
|
-
set.message += selectQuestionAddition;
|
|
155
|
-
let answer = await this.requestSimpleMessage(set);
|
|
156
|
-
answer = answer.toLocaleUpperCase();
|
|
157
|
-
return this.convertAnswerToSelectOptions(answer, set.message, set.options);
|
|
158
|
-
/* const result: T[] = [];
|
|
159
|
-
|
|
160
|
-
for (const item of options) {
|
|
161
|
-
if (answer.includes(item.toLocaleUpperCase())) {
|
|
162
|
-
const parsedItem: T | { unparsableResult: string } = DyFM_Object.safeParseJSON<T>(item);
|
|
163
|
-
if ((parsedItem as { unparsableResult: string }).unparsableResult) {
|
|
164
|
-
result.push(item as any);
|
|
165
|
-
} else {
|
|
166
|
-
result.push(parsedItem as T);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (!result.length && !answer.trim().length) {
|
|
173
|
-
return { unparsableResult: answer };
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
return result; */
|
|
177
|
-
}
|
|
178
|
-
/** the exact same as {@link askMultipleSelectQuestionWithOptions} */
|
|
179
|
-
//multipleSelectQuestion = this.askMultipleSelectQuestionWithOptions;
|
|
180
|
-
/**
|
|
181
|
-
* Asks the AI to select one or more of the options from the list
|
|
182
|
-
* Similar to {@link askMultipleSelectQuestionWithOptions},
|
|
183
|
-
* but with a more generic approach that can be used for objects
|
|
184
|
-
*
|
|
185
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.multiselect} to ask the question
|
|
186
|
-
*/
|
|
187
|
-
/* async requestMultiselect<T>(
|
|
188
|
-
set: DyFM_AI_GenericMultiSelect_Input<T, DyFM_OAI_CallSettings>
|
|
189
|
-
): Promise<T[]> {
|
|
190
|
-
const selectQuestionAddition = this.predefinedRequests.multiselect.replace(
|
|
191
|
-
'{{DyNTS_selectOptions}}',
|
|
192
|
-
this.getTextListAsText(set.options.map(item => `"${JSON.stringify(item)}"`))
|
|
193
|
-
);
|
|
194
|
-
set.message += selectQuestionAddition;
|
|
195
|
-
|
|
196
|
-
const answer = await this.requestSimpleMessage(set);
|
|
197
|
-
|
|
198
|
-
return DyFM_Object.safeParseList<T[]>(answer);
|
|
199
|
-
} */
|
|
200
|
-
/** the exact same as {@link requestMultipleSelect} */
|
|
201
|
-
//multipleSelectRequest = this.requestMultipleSelect;
|
|
202
|
-
/**
|
|
203
|
-
* Asks the AI to answer a question that must result a JSON object
|
|
204
|
-
*
|
|
205
|
-
* If the answer is not a valid JSON object, it will return { unparsableResult: answer }
|
|
206
|
-
*
|
|
207
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.jsonRequest} to ask the question
|
|
208
|
-
*
|
|
209
|
-
* (uses {@link DyFM_safeParseJSON})
|
|
210
|
-
*/
|
|
211
|
-
async requestJSON(set) {
|
|
212
|
-
set.message += this.predefinedRequests.jsonRequest;
|
|
213
|
-
const answer = await this.requestSimpleMessage(set);
|
|
214
|
-
return this.convertAnswerToJSON(answer, set.message);
|
|
215
|
-
}
|
|
216
|
-
/** the exact same as {@link askJSONQuestion} */
|
|
217
|
-
//jsonQuestion = this.askJSONQuestion;
|
|
218
|
-
/**
|
|
219
|
-
* Asks the AI to answer a question that must result a JSON object with specific key descriptions
|
|
220
|
-
*
|
|
221
|
-
* If the answer is not a valid JSON object, it will return { unparsableResult: answer }
|
|
222
|
-
*
|
|
223
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.jsonRequestWithKeysDescription} to ask the question
|
|
224
|
-
*
|
|
225
|
-
* (uses {@link DyFM_safeParseJSON})
|
|
226
|
-
*/
|
|
227
|
-
async requestJSONQuestionWithKeysDescription(set) {
|
|
228
|
-
const jsonRequestWithKeysDescription = this.predefinedRequests.jsonRequestWithKeysDescription.replace('{{DyNTS_jsonKeysDescription}}', set.keysDescription);
|
|
229
|
-
set.message += jsonRequestWithKeysDescription;
|
|
230
|
-
const answer = await this.requestSimpleMessage(set);
|
|
231
|
-
return this.convertAnswerToJSON(answer, set.message);
|
|
232
|
-
}
|
|
233
|
-
/** the exact same as {@link requestJSONQuestionWithKeysDescription} */
|
|
234
|
-
//jsonQuestionWithKeysDescription = this.askJSONQuestionWithKeysDescription;
|
|
235
|
-
/**
|
|
236
|
-
* Asks the AI to answer a question that must result a JSON object with specific keys
|
|
237
|
-
*
|
|
238
|
-
* If the answer is not a valid JSON object, it will return { unparsableResult: answer }
|
|
239
|
-
*
|
|
240
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.jsonRequestWithExactKeys} to ask the question
|
|
241
|
-
*
|
|
242
|
-
* (uses {@link DyFM_safeParseJSON})
|
|
243
|
-
*/
|
|
244
|
-
async requestJSONWithExactKeys(set) {
|
|
245
|
-
const jsonRequestWithExactKeys = this.predefinedRequests.jsonRequestWithExactKeys.replace('{{DyNTS_jsonKeys}}', this.getTextListAsText(set.keys));
|
|
246
|
-
set.message += jsonRequestWithExactKeys;
|
|
247
|
-
const answer = await this.requestSimpleMessage(set);
|
|
248
|
-
return this.convertAnswerToJSON(answer, set.message);
|
|
249
|
-
}
|
|
250
|
-
/** the exact same as {@link askJSONQuestionWithExactKeys} */
|
|
251
|
-
//jsonQuestionWithExactKeys = this.askJSONQuestionWithExactKeys;
|
|
252
|
-
/**
|
|
253
|
-
* Asks the AI to answer a question that must result a list of strings
|
|
254
|
-
*
|
|
255
|
-
* If the answer is not a valid JSON list, it will return the answer as a single item in an array
|
|
256
|
-
*
|
|
257
|
-
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.listRequest} to ask the question
|
|
258
|
-
*
|
|
259
|
-
* (uses {@link DyFM_Object.safeParseList})
|
|
260
|
-
*/
|
|
261
|
-
/* async requestList(
|
|
262
|
-
set: DyFM_AI_Base_Input<DyFM_OAI_CallSettings>
|
|
263
|
-
): Promise<string[]> {
|
|
264
|
-
set.message += this.predefinedRequests.listRequest;
|
|
265
|
-
|
|
266
|
-
const answer = await this.requestSimpleMessage(set);
|
|
267
|
-
|
|
268
|
-
return this.convertAnswerToList<string>(answer, set.message);
|
|
269
|
-
} */
|
|
270
|
-
/** the exact same as {@link askListQuestion} */
|
|
271
|
-
//listQuestion = this.askListQuestion;
|
|
272
|
-
/** the exact same as {@link askListQuestion} */
|
|
273
|
-
//listRequest = this.askListQuestion;
|
|
274
|
-
async requestList(set) {
|
|
275
|
-
set.message += this.predefinedRequests.listRequest;
|
|
276
|
-
const answer = await this.requestSimpleMessage(set);
|
|
277
|
-
return this.convertAnswerToList(answer, set.message);
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Asks the AI to answer a question
|
|
281
|
-
*
|
|
282
|
-
* Uses the {@link resolveSimpleUserMessage}
|
|
283
|
-
*/
|
|
284
|
-
async requestSimpleMessage(set) {
|
|
285
|
-
this.logQuestion(set);
|
|
286
|
-
set.conversation ??= [];
|
|
287
|
-
set.conversation.push({ role: ai_1.DyFM_AI_MessageRole.user, content: set.message });
|
|
288
|
-
const answer = await this.resolveMessage({
|
|
289
|
-
...set,
|
|
290
|
-
conversation: set.conversation,
|
|
291
|
-
getFullResponse: false,
|
|
292
|
-
});
|
|
293
|
-
this.logAnswer(answer);
|
|
294
|
-
return answer;
|
|
295
|
-
}
|
|
296
|
-
/** the exact same as {@link requestSimpleMessage} */
|
|
297
|
-
//answer = this.askQuestion;
|
|
298
|
-
/** the exact same as {@link requestSimpleMessage} */
|
|
299
|
-
//getQuestionAnswer = this.askQuestion;
|
|
300
|
-
/** the exact same as {@link requestSimpleMessage} */
|
|
301
|
-
//simpleQuestion = this.askQuestion;
|
|
302
|
-
/** the exact same as {@link requestSimpleMessage} */
|
|
303
|
-
//askSimpleQuestion = this.askQuestion;
|
|
304
|
-
/**
|
|
305
|
-
* Resolves a simple user message and returns the answer as string
|
|
306
|
-
*
|
|
307
|
-
* Uses the {@link resolveMessage}
|
|
308
|
-
*/
|
|
309
|
-
/* async resolveSimpleUserMessage(
|
|
310
|
-
set: DyFM_AI_Base_Input<DyFM_OAI_CallSettings>
|
|
311
|
-
): Promise<string> {
|
|
312
|
-
return this.resolveMessage({
|
|
313
|
-
conversation: [{ role: DyFM_AI_MessageRole.user, content: set.message }],
|
|
314
|
-
issuer: set.issuer ?? 'unknown',
|
|
315
|
-
settings: set.settings ?? this.defaultSettings,
|
|
316
|
-
getFullResponse: false,
|
|
317
|
-
}) as Promise<string>;
|
|
318
|
-
} */
|
|
319
|
-
/** the exact same as {@link resolveSimpleUserMessage} */
|
|
320
|
-
//simpleUserMessage = this.resolveSimpleUserMessage;
|
|
321
|
-
//#endregion
|
|
322
|
-
/**
|
|
323
|
-
* Resolves a conversation
|
|
324
|
-
*
|
|
325
|
-
* Uses the {@link getMessageCreateInput}
|
|
326
|
-
*/
|
|
327
|
-
async resolveMessage(set
|
|
328
|
-
/* {
|
|
329
|
-
conversation: [{ role: DyFM_AI_MessageRole.user, content: set.message }],
|
|
330
|
-
issuer: set.issuer ?? 'unknown',
|
|
331
|
-
settings: set.settings ?? this.defaultSettings,
|
|
332
|
-
getFullResponse: false,
|
|
333
|
-
} */
|
|
334
|
-
/* {
|
|
335
|
-
conversation: DyFM_AI_Message[],
|
|
336
|
-
issuer: string,
|
|
337
|
-
settings?: DyFM_OAI_CallSettings,
|
|
338
|
-
getFullResponse?: boolean
|
|
339
|
-
} */
|
|
340
|
-
) {
|
|
341
|
-
try {
|
|
342
|
-
// FR-002 — callType meghatározás a unshift ELŐTT (a system-message hozzáadás
|
|
343
|
-
// után már 2+ message lenne, ami a "chat" kategóriát mindig kiváltja).
|
|
344
|
-
// 1 user-message → 'llm-completion'; több → 'llm-chat'. A 'llm-tool-use'
|
|
345
|
-
// categoria a tools paraméterek bevezetésekor kerül használatba (jövőbeli FR).
|
|
346
|
-
const userMessageCount = set.conversation.length;
|
|
347
|
-
set.conversation.unshift(this.getDefaultSystemMessage(set.settings));
|
|
348
|
-
// FR-002 — per-call cost-event timing: a tényleges API-call latency mérve
|
|
349
|
-
const input = this.getMessageCreateInput(set);
|
|
350
|
-
const start = Date.now();
|
|
351
|
-
const result = await this.openai.chat.completions.create(input);
|
|
352
|
-
const durationMs = Date.now() - start;
|
|
353
|
-
// FR-002 — cost-event emit (safe, no-op ha nincs onCostEvent callback)
|
|
354
|
-
this.emitCostEvent({
|
|
355
|
-
callType: userMessageCount === 1 ? 'llm-completion' : 'llm-chat',
|
|
356
|
-
provider: this.aiProvider,
|
|
357
|
-
model: String(input.model ?? this.defaultModel),
|
|
358
|
-
tokensUsed: {
|
|
359
|
-
input: result.usage?.prompt_tokens ?? 0,
|
|
360
|
-
output: result.usage?.completion_tokens ?? 0,
|
|
361
|
-
total: result.usage?.total_tokens ?? 0,
|
|
362
|
-
},
|
|
363
|
-
durationMs: durationMs,
|
|
364
|
-
issuer: set.issuer,
|
|
365
|
-
timestamp: new Date(),
|
|
366
|
-
});
|
|
367
|
-
if (set.getFullResponse) {
|
|
368
|
-
return result;
|
|
369
|
-
}
|
|
370
|
-
return result.choices[0].message.content;
|
|
371
|
-
}
|
|
372
|
-
catch (error) {
|
|
373
|
-
throw new fsm_dynamo_1.DyFM_Error({
|
|
374
|
-
...this.getDefaultErrorSettings('resolveConversation', error, set.issuer),
|
|
375
|
-
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OLSB-RM0`,
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Creates a message create input
|
|
381
|
-
*
|
|
382
|
-
* Uses the {@link getDefaultSystemMessage}
|
|
383
|
-
*/
|
|
384
|
-
getMessageCreateInput(set) {
|
|
385
|
-
try {
|
|
386
|
-
const settings = set.settings ?? this.defaultSettings;
|
|
387
|
-
const result = {
|
|
388
|
-
model: settings?.useModel ?? this.defaultModel,
|
|
389
|
-
messages: set.conversation,
|
|
390
|
-
};
|
|
391
|
-
result.temperature = (0, fsm_dynamo_1.DyFM_notNull)(settings?.temperature) ?
|
|
392
|
-
settings.temperature :
|
|
393
|
-
this.defaultSettings.temperature;
|
|
394
|
-
/* result.max_completion_tokens = DyFM_notNull(settings?.maxTokens) ?
|
|
395
|
-
settings.maxTokens :
|
|
396
|
-
this.defaultSettings.maxTokens; */
|
|
397
|
-
result.max_completion_tokens = (0, fsm_dynamo_1.DyFM_notNull)(settings?.maxTokens) ?
|
|
398
|
-
settings.maxTokens :
|
|
399
|
-
this.defaultSettings.maxTokens;
|
|
400
|
-
result.top_p = (0, fsm_dynamo_1.DyFM_notNull)(settings?.topP) ?
|
|
401
|
-
settings.topP :
|
|
402
|
-
this.defaultSettings.topP;
|
|
403
|
-
result.frequency_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.frequencyPenalty) ?
|
|
404
|
-
settings.frequencyPenalty :
|
|
405
|
-
this.defaultSettings.frequencyPenalty;
|
|
406
|
-
result.presence_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.presencePenalty) ?
|
|
407
|
-
settings.presencePenalty :
|
|
408
|
-
this.defaultSettings.presencePenalty;
|
|
409
|
-
return result;
|
|
410
|
-
}
|
|
411
|
-
catch (error) {
|
|
412
|
-
throw new fsm_dynamo_1.DyFM_Error({
|
|
413
|
-
...this.getDefaultErrorSettings('getMessageCreateSettings', error, set.issuer),
|
|
414
|
-
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OLSB-RC0`,
|
|
415
|
-
});
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* Teszteli a kapcsolatot az OpenAI API-val
|
|
420
|
-
*
|
|
421
|
-
* Tests the connection to OpenAI API
|
|
422
|
-
*/
|
|
423
|
-
async testConnection(issuer) {
|
|
424
|
-
try {
|
|
425
|
-
await this.openai.models.list();
|
|
426
|
-
return true;
|
|
427
|
-
}
|
|
428
|
-
catch (error) {
|
|
429
|
-
fsm_dynamo_1.DyFM_Log.error('DyNTS_OAI_LLM_ServiceBase', 'testConnection', 'Connection test failed', {
|
|
430
|
-
error,
|
|
431
|
-
issuer
|
|
432
|
-
});
|
|
433
|
-
return false;
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
//#region Function calling (tool use) — FR-047
|
|
437
|
-
/** OpenAI tool-kepes modell-registry (a base capability-precheck-jehez). */
|
|
438
|
-
getModelRegistry() {
|
|
439
|
-
return open_ai_1.DyFM_OAI_Models;
|
|
440
|
-
}
|
|
441
|
-
/**
|
|
442
|
-
* Egy OpenAI-kor a tool-loop-ban: felepiti a natív request-et (system + a teljes beszelgetes
|
|
443
|
-
* tool-uzenetekkel + tools), meghivja az API-t, es normalizalt DyFM_AI_LLM_Response-t ad vissza
|
|
444
|
-
* (toolCalls feltoltve, ha a model tool-t akar hivni). FR-002 cost-event: 'llm-tool-use'.
|
|
445
|
-
*/
|
|
446
|
-
async callModelWithTools(set) {
|
|
447
|
-
try {
|
|
448
|
-
const settings = set.settings ?? this.defaultSettings;
|
|
449
|
-
const messages = [
|
|
450
|
-
this.toOpenAIMessage(this.getDefaultSystemMessage(settings)),
|
|
451
|
-
...set.conversation.map((message) => this.toOpenAIMessage(message)),
|
|
452
|
-
];
|
|
453
|
-
const useModel = settings?.useModel ?? this.defaultModel;
|
|
454
|
-
const input = {
|
|
455
|
-
model: useModel,
|
|
456
|
-
messages: messages,
|
|
457
|
-
max_completion_tokens: (0, fsm_dynamo_1.DyFM_notNull)(settings?.maxTokens) ? settings.maxTokens : this.defaultSettings.maxTokens,
|
|
458
|
-
};
|
|
459
|
-
// Reasoning modellek (GPT-5.x / o-series) elutasitjak a sampling-parametereket
|
|
460
|
-
// (temperature != 1, top_p, frequency/presence_penalty) -> 400. Ezeket NEM kuldjuk
|
|
461
|
-
// reasoning modellnel. (Ez a FR-048 per-model settings elv lokalis, OpenAI-specifikus
|
|
462
|
-
// alkalmazasa — amig a general reconciler el nem keszul.)
|
|
463
|
-
if (!this.isReasoningModel(String(useModel))) {
|
|
464
|
-
input.temperature = (0, fsm_dynamo_1.DyFM_notNull)(settings?.temperature) ? settings.temperature : this.defaultSettings.temperature;
|
|
465
|
-
input.top_p = (0, fsm_dynamo_1.DyFM_notNull)(settings?.topP) ? settings.topP : this.defaultSettings.topP;
|
|
466
|
-
input.frequency_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.frequencyPenalty) ? settings.frequencyPenalty : this.defaultSettings.frequencyPenalty;
|
|
467
|
-
input.presence_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.presencePenalty) ? settings.presencePenalty : this.defaultSettings.presencePenalty;
|
|
468
|
-
}
|
|
469
|
-
// Ures tools-tomb -> 400 ("tools must have minimum length 1"). Csak akkor kuldjuk, ha van tool.
|
|
470
|
-
if (set.tools.length) {
|
|
471
|
-
input.tools = set.tools.map((tool) => this.toOpenAITool(tool));
|
|
472
|
-
input.tool_choice = 'auto';
|
|
473
|
-
}
|
|
474
|
-
const start = Date.now();
|
|
475
|
-
const result = await this.openai.chat.completions.create(input);
|
|
476
|
-
const durationMs = Date.now() - start;
|
|
477
|
-
const message = result.choices[0].message;
|
|
478
|
-
const toolCalls = (message.tool_calls ?? [])
|
|
479
|
-
.filter((toolCall) => toolCall.type === 'function')
|
|
480
|
-
.map((toolCall) => ({
|
|
481
|
-
id: toolCall.id,
|
|
482
|
-
name: toolCall.function.name,
|
|
483
|
-
arguments: this.parseToolArguments(toolCall.function.arguments),
|
|
484
|
-
}));
|
|
485
|
-
this.emitCostEvent({
|
|
486
|
-
callType: 'llm-tool-use',
|
|
487
|
-
provider: this.aiProvider,
|
|
488
|
-
model: String(input.model ?? this.defaultModel),
|
|
489
|
-
tokensUsed: {
|
|
490
|
-
input: result.usage?.prompt_tokens ?? 0,
|
|
491
|
-
output: result.usage?.completion_tokens ?? 0,
|
|
492
|
-
total: result.usage?.total_tokens ?? 0,
|
|
493
|
-
},
|
|
494
|
-
durationMs: durationMs,
|
|
495
|
-
issuer: set.issuer,
|
|
496
|
-
timestamp: new Date(),
|
|
497
|
-
});
|
|
498
|
-
return {
|
|
499
|
-
content: message.content ?? '',
|
|
500
|
-
toolCalls: toolCalls.length ? toolCalls : undefined,
|
|
501
|
-
usage: result.usage ? {
|
|
502
|
-
promptTokens: result.usage.prompt_tokens,
|
|
503
|
-
completionTokens: result.usage.completion_tokens,
|
|
504
|
-
totalTokens: result.usage.total_tokens,
|
|
505
|
-
} : undefined,
|
|
506
|
-
model: result.model,
|
|
507
|
-
finishReason: result.choices[0].finish_reason,
|
|
508
|
-
stopReason: result.choices[0].finish_reason,
|
|
509
|
-
rawResponse: result,
|
|
510
|
-
};
|
|
511
|
-
}
|
|
512
|
-
catch (error) {
|
|
513
|
-
throw new fsm_dynamo_1.DyFM_Error({
|
|
514
|
-
...this.getDefaultErrorSettings('callModelWithTools', error, set.issuer),
|
|
515
|
-
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OLSB-TC0`,
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
/** Agnosztikus tool-definicio → OpenAI ChatCompletionTool. */
|
|
520
|
-
toOpenAITool(tool) {
|
|
521
|
-
return {
|
|
522
|
-
type: 'function',
|
|
523
|
-
function: {
|
|
524
|
-
name: tool.name,
|
|
525
|
-
description: tool.description,
|
|
526
|
-
parameters: tool.parameters,
|
|
527
|
-
},
|
|
528
|
-
};
|
|
529
|
-
}
|
|
530
|
-
/**
|
|
531
|
-
* Agnosztikus DyFM_AI_Message → OpenAI ChatCompletionMessageParam.
|
|
532
|
-
* Kezeli a tool-result (role:'tool') es a tool-hivo assistant (tool_calls) uzeneteket is.
|
|
533
|
-
*/
|
|
534
|
-
toOpenAIMessage(message) {
|
|
535
|
-
if (message.role === ai_1.DyFM_AI_MessageRole.tool) {
|
|
536
|
-
return {
|
|
537
|
-
role: 'tool',
|
|
538
|
-
tool_call_id: message.toolCallId ?? '',
|
|
539
|
-
content: message.content,
|
|
540
|
-
};
|
|
541
|
-
}
|
|
542
|
-
if (message.role === ai_1.DyFM_AI_MessageRole.assistant && message.toolCalls?.length) {
|
|
543
|
-
return {
|
|
544
|
-
role: 'assistant',
|
|
545
|
-
content: message.content || null,
|
|
546
|
-
tool_calls: message.toolCalls.map((toolCall) => ({
|
|
547
|
-
id: toolCall.id,
|
|
548
|
-
type: 'function',
|
|
549
|
-
function: {
|
|
550
|
-
name: toolCall.name,
|
|
551
|
-
arguments: JSON.stringify(toolCall.arguments),
|
|
552
|
-
},
|
|
553
|
-
})),
|
|
554
|
-
};
|
|
555
|
-
}
|
|
556
|
-
return {
|
|
557
|
-
role: message.role,
|
|
558
|
-
content: message.content,
|
|
559
|
-
};
|
|
560
|
-
}
|
|
561
|
-
/** Tool-argumentumok parse-olasa (OpenAI JSON-string → object); hibas JSON eseten ures object. */
|
|
562
|
-
parseToolArguments(raw) {
|
|
563
|
-
try {
|
|
564
|
-
return JSON.parse(raw || '{}');
|
|
565
|
-
}
|
|
566
|
-
catch {
|
|
567
|
-
return {};
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
/**
|
|
571
|
-
* Reasoning modell-e (GPT-5.x sor vagy o-series, pl. o1/o3/o4)? Ezek elutasitjak a
|
|
572
|
-
* sampling-parametereket (temperature != 1, top_p, frequency/presence_penalty). A `gpt-4o`
|
|
573
|
-
* NEM reasoning (a 'gpt-5' prefix nem illeszti, 'o'-prefix sem).
|
|
574
|
-
*/
|
|
575
|
-
isReasoningModel(modelId) {
|
|
576
|
-
return /^gpt-5/.test(modelId) || /^o[0-9]/.test(modelId);
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
exports.DyNTS_OAI_LLM_ServiceBase = DyNTS_OAI_LLM_ServiceBase;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_OAI_LLM_ServiceBase = void 0;
|
|
4
|
+
const openai_1 = require("openai");
|
|
5
|
+
const open_ai_1 = require("@futdevpro/fsm-dynamo/ai/open-ai");
|
|
6
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
7
|
+
const ai_1 = require("@futdevpro/fsm-dynamo/ai");
|
|
8
|
+
const global_settings_const_1 = require("../../../../../_collections/global-settings.const");
|
|
9
|
+
const oai_global_settings_const_1 = require("../_collections/oai-global-settings.const");
|
|
10
|
+
const oai_llm_predefined_requests_conts_1 = require("../_collections/oai-llm-predefined-requests.conts");
|
|
11
|
+
const ai_llm_service_base_1 = require("../../../_services/ai-llm.service-base");
|
|
12
|
+
/**
|
|
13
|
+
* {
|
|
14
|
+
* organization: 'org-XY',
|
|
15
|
+
* apiKey: 'sk-XY',
|
|
16
|
+
* project: 'proj_XY',
|
|
17
|
+
* }
|
|
18
|
+
*/
|
|
19
|
+
// Di Dictionary DiModel DiEz DiAz
|
|
20
|
+
class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_ServiceBase {
|
|
21
|
+
/* readonly defaultErrorUserMsg: string =
|
|
22
|
+
`We encountered an unhandled Control Service Error, ` +
|
|
23
|
+
`\nplease contact the responsible development team.`; */
|
|
24
|
+
openai;
|
|
25
|
+
defaultSettings;
|
|
26
|
+
// Provider properties from DyNTS_AI_Provider_ServiceBase
|
|
27
|
+
aiProvider = ai_1.DyFM_AI_Provider.OpenAI;
|
|
28
|
+
capabilities = {
|
|
29
|
+
chat: true,
|
|
30
|
+
embeddings: true,
|
|
31
|
+
imageGeneration: true,
|
|
32
|
+
vision: true,
|
|
33
|
+
audioGeneration: true,
|
|
34
|
+
audioAnalysis: true,
|
|
35
|
+
functionCalling: true,
|
|
36
|
+
streaming: true,
|
|
37
|
+
batchOperations: true,
|
|
38
|
+
maxContextLength: 128000,
|
|
39
|
+
supportedModelTypes: ['gpt-4o', 'gpt-4o-mini', 'text-embedding-3-large', 'text-embedding-3-small']
|
|
40
|
+
};
|
|
41
|
+
/* get _debugLog(): boolean {
|
|
42
|
+
return this.defaultSettings.debugLog;
|
|
43
|
+
} */
|
|
44
|
+
/* get defaultSystemPrompt(): string {
|
|
45
|
+
return this.defaultSettings.systemPrompt;
|
|
46
|
+
} */
|
|
47
|
+
get defaultModel() {
|
|
48
|
+
return this.defaultSettings.useModel;
|
|
49
|
+
}
|
|
50
|
+
predefinedRequests = oai_llm_predefined_requests_conts_1.DyNTS_OAI_LLMDefaultPredefined_Requests;
|
|
51
|
+
constructor(set) {
|
|
52
|
+
super();
|
|
53
|
+
global_settings_const_1.DyNTS_global_settings.openAi_settings ??= oai_global_settings_const_1.DyNTS_OAI_global_settings;
|
|
54
|
+
this.openai = new openai_1.OpenAI(set?.config ??
|
|
55
|
+
{
|
|
56
|
+
organization: global_settings_const_1.DyNTS_global_settings.env_settings.openAi.organization,
|
|
57
|
+
apiKey: global_settings_const_1.DyNTS_global_settings.env_settings.openAi.apiKey,
|
|
58
|
+
project: global_settings_const_1.DyNTS_global_settings.env_settings.openAi.project,
|
|
59
|
+
});
|
|
60
|
+
this.defaultSettings = set?.defaultSettings ??
|
|
61
|
+
oai_global_settings_const_1.DyNTS_OAI_global_settings.defaultSettings ??
|
|
62
|
+
new open_ai_1.DyFM_OAI_CallSettings();
|
|
63
|
+
// FR-002 — opcionális per-call cost-event callback átadás a base-osztálynak
|
|
64
|
+
if (set?.onCostEvent) {
|
|
65
|
+
this.onCostEvent = set.onCostEvent;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Inicializálja az OpenAI client-et a megadott config-gal
|
|
70
|
+
*
|
|
71
|
+
* Reinitializes the OpenAI client with the provided config
|
|
72
|
+
*/
|
|
73
|
+
setup(config) {
|
|
74
|
+
this.openai = new openai_1.OpenAI(config);
|
|
75
|
+
}
|
|
76
|
+
/* readonly defaultLogReplacer: string = '...long-context...'; */
|
|
77
|
+
//#region Ask Questions
|
|
78
|
+
/**
|
|
79
|
+
* Asks the AI to answer a yes/no question
|
|
80
|
+
*
|
|
81
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.yesNo.request} to ask the question,
|
|
82
|
+
* and the {@link DyNTS_OAI_LLM_Predefined_Requests.yesNo.upperCaseYes} to check the answer
|
|
83
|
+
*/
|
|
84
|
+
async requestYesNo(set) {
|
|
85
|
+
set.message += this.predefinedRequests.yesNo.request;
|
|
86
|
+
const answer = await this.requestSimpleMessage(set);
|
|
87
|
+
return this.convertAnswerToBoolean(answer);
|
|
88
|
+
}
|
|
89
|
+
/** the exact same as {@link requestYesNo} */
|
|
90
|
+
//yesNoQuestion = this.askYesNoQuestion;
|
|
91
|
+
/**
|
|
92
|
+
* Asks the AI to answer a percentage question
|
|
93
|
+
*
|
|
94
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.percentageOnly} to ask the question
|
|
95
|
+
*/
|
|
96
|
+
async requestPercentage(set) {
|
|
97
|
+
set.message += this.predefinedRequests.percentageOnly;
|
|
98
|
+
const answer = await this.requestSimpleMessage(set);
|
|
99
|
+
return this.convertAnswerToNumber(answer, set.message);
|
|
100
|
+
}
|
|
101
|
+
/** the exact same as {@link requestPercentage} */
|
|
102
|
+
//percentageQuestion = this.askPercentageQuestion;
|
|
103
|
+
/**
|
|
104
|
+
* Asks the AI to select one of the options from the list
|
|
105
|
+
*
|
|
106
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.selectRequest} to ask the question
|
|
107
|
+
*/
|
|
108
|
+
/* async askSelectQuestion(
|
|
109
|
+
set: DyFM_AI_GenericSelect_Input<string>
|
|
110
|
+
): Promise<string> {
|
|
111
|
+
// replace the {{DyNTS_selectOptions}} with the list of options
|
|
112
|
+
const selectQuestionAddition = this.predefinedRequests.selectRequest.replace(
|
|
113
|
+
'{{DyNTS_selectOptions}}',
|
|
114
|
+
this.getTextListAsText(set.selectFrom)
|
|
115
|
+
);
|
|
116
|
+
set.message += selectQuestionAddition;
|
|
117
|
+
|
|
118
|
+
let answer = await this.requestSimpleMessage(set);
|
|
119
|
+
|
|
120
|
+
answer = answer.toLocaleUpperCase();
|
|
121
|
+
|
|
122
|
+
for (const item of set.selectFrom) {
|
|
123
|
+
if (answer.includes(item.toLocaleUpperCase())) return item;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return null;
|
|
127
|
+
} */
|
|
128
|
+
/** the exact same as {@link askSelectQuestion} */
|
|
129
|
+
//selectQuestion = this.askSelectQuestion;
|
|
130
|
+
/**
|
|
131
|
+
* Asks the AI to select one of the options from the list
|
|
132
|
+
* Similar to {@link askSelectQuestion},
|
|
133
|
+
* but with a more generic approach that can be used for objects
|
|
134
|
+
*
|
|
135
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.selectRequest} to ask the question
|
|
136
|
+
*/
|
|
137
|
+
async requestSelect(set) {
|
|
138
|
+
const options = this.stringifySelectOptions(set.selectFrom);
|
|
139
|
+
const selectQuestionAddition = this.predefinedRequests.selectRequest.replace('{{DyNTS_selectOptions}}', this.getTextListAsText(options));
|
|
140
|
+
set.message += selectQuestionAddition;
|
|
141
|
+
const answer = await this.requestSimpleMessage(set);
|
|
142
|
+
return this.convertAnswerToSelectOption(answer, set.message, set.selectFrom);
|
|
143
|
+
}
|
|
144
|
+
/** the exact same as {@link requestSelect} */
|
|
145
|
+
//selectRequest = this.requestSelect;
|
|
146
|
+
/**
|
|
147
|
+
* Asks the AI to select one or more of the options from the list
|
|
148
|
+
*
|
|
149
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.multiselect} to ask the question
|
|
150
|
+
*/
|
|
151
|
+
async requestMultiselect(set) {
|
|
152
|
+
const options = this.stringifySelectOptions(set.options);
|
|
153
|
+
const selectQuestionAddition = this.predefinedRequests.multiselect.replace('{{DyNTS_selectOptions}}', this.getTextListAsText(options));
|
|
154
|
+
set.message += selectQuestionAddition;
|
|
155
|
+
let answer = await this.requestSimpleMessage(set);
|
|
156
|
+
answer = answer.toLocaleUpperCase();
|
|
157
|
+
return this.convertAnswerToSelectOptions(answer, set.message, set.options);
|
|
158
|
+
/* const result: T[] = [];
|
|
159
|
+
|
|
160
|
+
for (const item of options) {
|
|
161
|
+
if (answer.includes(item.toLocaleUpperCase())) {
|
|
162
|
+
const parsedItem: T | { unparsableResult: string } = DyFM_Object.safeParseJSON<T>(item);
|
|
163
|
+
if ((parsedItem as { unparsableResult: string }).unparsableResult) {
|
|
164
|
+
result.push(item as any);
|
|
165
|
+
} else {
|
|
166
|
+
result.push(parsedItem as T);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
if (!result.length && !answer.trim().length) {
|
|
173
|
+
return { unparsableResult: answer };
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return result; */
|
|
177
|
+
}
|
|
178
|
+
/** the exact same as {@link askMultipleSelectQuestionWithOptions} */
|
|
179
|
+
//multipleSelectQuestion = this.askMultipleSelectQuestionWithOptions;
|
|
180
|
+
/**
|
|
181
|
+
* Asks the AI to select one or more of the options from the list
|
|
182
|
+
* Similar to {@link askMultipleSelectQuestionWithOptions},
|
|
183
|
+
* but with a more generic approach that can be used for objects
|
|
184
|
+
*
|
|
185
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.multiselect} to ask the question
|
|
186
|
+
*/
|
|
187
|
+
/* async requestMultiselect<T>(
|
|
188
|
+
set: DyFM_AI_GenericMultiSelect_Input<T, DyFM_OAI_CallSettings>
|
|
189
|
+
): Promise<T[]> {
|
|
190
|
+
const selectQuestionAddition = this.predefinedRequests.multiselect.replace(
|
|
191
|
+
'{{DyNTS_selectOptions}}',
|
|
192
|
+
this.getTextListAsText(set.options.map(item => `"${JSON.stringify(item)}"`))
|
|
193
|
+
);
|
|
194
|
+
set.message += selectQuestionAddition;
|
|
195
|
+
|
|
196
|
+
const answer = await this.requestSimpleMessage(set);
|
|
197
|
+
|
|
198
|
+
return DyFM_Object.safeParseList<T[]>(answer);
|
|
199
|
+
} */
|
|
200
|
+
/** the exact same as {@link requestMultipleSelect} */
|
|
201
|
+
//multipleSelectRequest = this.requestMultipleSelect;
|
|
202
|
+
/**
|
|
203
|
+
* Asks the AI to answer a question that must result a JSON object
|
|
204
|
+
*
|
|
205
|
+
* If the answer is not a valid JSON object, it will return { unparsableResult: answer }
|
|
206
|
+
*
|
|
207
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.jsonRequest} to ask the question
|
|
208
|
+
*
|
|
209
|
+
* (uses {@link DyFM_safeParseJSON})
|
|
210
|
+
*/
|
|
211
|
+
async requestJSON(set) {
|
|
212
|
+
set.message += this.predefinedRequests.jsonRequest;
|
|
213
|
+
const answer = await this.requestSimpleMessage(set);
|
|
214
|
+
return this.convertAnswerToJSON(answer, set.message);
|
|
215
|
+
}
|
|
216
|
+
/** the exact same as {@link askJSONQuestion} */
|
|
217
|
+
//jsonQuestion = this.askJSONQuestion;
|
|
218
|
+
/**
|
|
219
|
+
* Asks the AI to answer a question that must result a JSON object with specific key descriptions
|
|
220
|
+
*
|
|
221
|
+
* If the answer is not a valid JSON object, it will return { unparsableResult: answer }
|
|
222
|
+
*
|
|
223
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.jsonRequestWithKeysDescription} to ask the question
|
|
224
|
+
*
|
|
225
|
+
* (uses {@link DyFM_safeParseJSON})
|
|
226
|
+
*/
|
|
227
|
+
async requestJSONQuestionWithKeysDescription(set) {
|
|
228
|
+
const jsonRequestWithKeysDescription = this.predefinedRequests.jsonRequestWithKeysDescription.replace('{{DyNTS_jsonKeysDescription}}', set.keysDescription);
|
|
229
|
+
set.message += jsonRequestWithKeysDescription;
|
|
230
|
+
const answer = await this.requestSimpleMessage(set);
|
|
231
|
+
return this.convertAnswerToJSON(answer, set.message);
|
|
232
|
+
}
|
|
233
|
+
/** the exact same as {@link requestJSONQuestionWithKeysDescription} */
|
|
234
|
+
//jsonQuestionWithKeysDescription = this.askJSONQuestionWithKeysDescription;
|
|
235
|
+
/**
|
|
236
|
+
* Asks the AI to answer a question that must result a JSON object with specific keys
|
|
237
|
+
*
|
|
238
|
+
* If the answer is not a valid JSON object, it will return { unparsableResult: answer }
|
|
239
|
+
*
|
|
240
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.jsonRequestWithExactKeys} to ask the question
|
|
241
|
+
*
|
|
242
|
+
* (uses {@link DyFM_safeParseJSON})
|
|
243
|
+
*/
|
|
244
|
+
async requestJSONWithExactKeys(set) {
|
|
245
|
+
const jsonRequestWithExactKeys = this.predefinedRequests.jsonRequestWithExactKeys.replace('{{DyNTS_jsonKeys}}', this.getTextListAsText(set.keys));
|
|
246
|
+
set.message += jsonRequestWithExactKeys;
|
|
247
|
+
const answer = await this.requestSimpleMessage(set);
|
|
248
|
+
return this.convertAnswerToJSON(answer, set.message);
|
|
249
|
+
}
|
|
250
|
+
/** the exact same as {@link askJSONQuestionWithExactKeys} */
|
|
251
|
+
//jsonQuestionWithExactKeys = this.askJSONQuestionWithExactKeys;
|
|
252
|
+
/**
|
|
253
|
+
* Asks the AI to answer a question that must result a list of strings
|
|
254
|
+
*
|
|
255
|
+
* If the answer is not a valid JSON list, it will return the answer as a single item in an array
|
|
256
|
+
*
|
|
257
|
+
* Uses the {@link DyNTS_OAI_LLM_Predefined_Requests.listRequest} to ask the question
|
|
258
|
+
*
|
|
259
|
+
* (uses {@link DyFM_Object.safeParseList})
|
|
260
|
+
*/
|
|
261
|
+
/* async requestList(
|
|
262
|
+
set: DyFM_AI_Base_Input<DyFM_OAI_CallSettings>
|
|
263
|
+
): Promise<string[]> {
|
|
264
|
+
set.message += this.predefinedRequests.listRequest;
|
|
265
|
+
|
|
266
|
+
const answer = await this.requestSimpleMessage(set);
|
|
267
|
+
|
|
268
|
+
return this.convertAnswerToList<string>(answer, set.message);
|
|
269
|
+
} */
|
|
270
|
+
/** the exact same as {@link askListQuestion} */
|
|
271
|
+
//listQuestion = this.askListQuestion;
|
|
272
|
+
/** the exact same as {@link askListQuestion} */
|
|
273
|
+
//listRequest = this.askListQuestion;
|
|
274
|
+
async requestList(set) {
|
|
275
|
+
set.message += this.predefinedRequests.listRequest;
|
|
276
|
+
const answer = await this.requestSimpleMessage(set);
|
|
277
|
+
return this.convertAnswerToList(answer, set.message);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Asks the AI to answer a question
|
|
281
|
+
*
|
|
282
|
+
* Uses the {@link resolveSimpleUserMessage}
|
|
283
|
+
*/
|
|
284
|
+
async requestSimpleMessage(set) {
|
|
285
|
+
this.logQuestion(set);
|
|
286
|
+
set.conversation ??= [];
|
|
287
|
+
set.conversation.push({ role: ai_1.DyFM_AI_MessageRole.user, content: set.message });
|
|
288
|
+
const answer = await this.resolveMessage({
|
|
289
|
+
...set,
|
|
290
|
+
conversation: set.conversation,
|
|
291
|
+
getFullResponse: false,
|
|
292
|
+
});
|
|
293
|
+
this.logAnswer(answer);
|
|
294
|
+
return answer;
|
|
295
|
+
}
|
|
296
|
+
/** the exact same as {@link requestSimpleMessage} */
|
|
297
|
+
//answer = this.askQuestion;
|
|
298
|
+
/** the exact same as {@link requestSimpleMessage} */
|
|
299
|
+
//getQuestionAnswer = this.askQuestion;
|
|
300
|
+
/** the exact same as {@link requestSimpleMessage} */
|
|
301
|
+
//simpleQuestion = this.askQuestion;
|
|
302
|
+
/** the exact same as {@link requestSimpleMessage} */
|
|
303
|
+
//askSimpleQuestion = this.askQuestion;
|
|
304
|
+
/**
|
|
305
|
+
* Resolves a simple user message and returns the answer as string
|
|
306
|
+
*
|
|
307
|
+
* Uses the {@link resolveMessage}
|
|
308
|
+
*/
|
|
309
|
+
/* async resolveSimpleUserMessage(
|
|
310
|
+
set: DyFM_AI_Base_Input<DyFM_OAI_CallSettings>
|
|
311
|
+
): Promise<string> {
|
|
312
|
+
return this.resolveMessage({
|
|
313
|
+
conversation: [{ role: DyFM_AI_MessageRole.user, content: set.message }],
|
|
314
|
+
issuer: set.issuer ?? 'unknown',
|
|
315
|
+
settings: set.settings ?? this.defaultSettings,
|
|
316
|
+
getFullResponse: false,
|
|
317
|
+
}) as Promise<string>;
|
|
318
|
+
} */
|
|
319
|
+
/** the exact same as {@link resolveSimpleUserMessage} */
|
|
320
|
+
//simpleUserMessage = this.resolveSimpleUserMessage;
|
|
321
|
+
//#endregion
|
|
322
|
+
/**
|
|
323
|
+
* Resolves a conversation
|
|
324
|
+
*
|
|
325
|
+
* Uses the {@link getMessageCreateInput}
|
|
326
|
+
*/
|
|
327
|
+
async resolveMessage(set
|
|
328
|
+
/* {
|
|
329
|
+
conversation: [{ role: DyFM_AI_MessageRole.user, content: set.message }],
|
|
330
|
+
issuer: set.issuer ?? 'unknown',
|
|
331
|
+
settings: set.settings ?? this.defaultSettings,
|
|
332
|
+
getFullResponse: false,
|
|
333
|
+
} */
|
|
334
|
+
/* {
|
|
335
|
+
conversation: DyFM_AI_Message[],
|
|
336
|
+
issuer: string,
|
|
337
|
+
settings?: DyFM_OAI_CallSettings,
|
|
338
|
+
getFullResponse?: boolean
|
|
339
|
+
} */
|
|
340
|
+
) {
|
|
341
|
+
try {
|
|
342
|
+
// FR-002 — callType meghatározás a unshift ELŐTT (a system-message hozzáadás
|
|
343
|
+
// után már 2+ message lenne, ami a "chat" kategóriát mindig kiváltja).
|
|
344
|
+
// 1 user-message → 'llm-completion'; több → 'llm-chat'. A 'llm-tool-use'
|
|
345
|
+
// categoria a tools paraméterek bevezetésekor kerül használatba (jövőbeli FR).
|
|
346
|
+
const userMessageCount = set.conversation.length;
|
|
347
|
+
set.conversation.unshift(this.getDefaultSystemMessage(set.settings));
|
|
348
|
+
// FR-002 — per-call cost-event timing: a tényleges API-call latency mérve
|
|
349
|
+
const input = this.getMessageCreateInput(set);
|
|
350
|
+
const start = Date.now();
|
|
351
|
+
const result = await this.openai.chat.completions.create(input);
|
|
352
|
+
const durationMs = Date.now() - start;
|
|
353
|
+
// FR-002 — cost-event emit (safe, no-op ha nincs onCostEvent callback)
|
|
354
|
+
this.emitCostEvent({
|
|
355
|
+
callType: userMessageCount === 1 ? 'llm-completion' : 'llm-chat',
|
|
356
|
+
provider: this.aiProvider,
|
|
357
|
+
model: String(input.model ?? this.defaultModel),
|
|
358
|
+
tokensUsed: {
|
|
359
|
+
input: result.usage?.prompt_tokens ?? 0,
|
|
360
|
+
output: result.usage?.completion_tokens ?? 0,
|
|
361
|
+
total: result.usage?.total_tokens ?? 0,
|
|
362
|
+
},
|
|
363
|
+
durationMs: durationMs,
|
|
364
|
+
issuer: set.issuer,
|
|
365
|
+
timestamp: new Date(),
|
|
366
|
+
});
|
|
367
|
+
if (set.getFullResponse) {
|
|
368
|
+
return result;
|
|
369
|
+
}
|
|
370
|
+
return result.choices[0].message.content;
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
374
|
+
...this.getDefaultErrorSettings('resolveConversation', error, set.issuer),
|
|
375
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OLSB-RM0`,
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Creates a message create input
|
|
381
|
+
*
|
|
382
|
+
* Uses the {@link getDefaultSystemMessage}
|
|
383
|
+
*/
|
|
384
|
+
getMessageCreateInput(set) {
|
|
385
|
+
try {
|
|
386
|
+
const settings = set.settings ?? this.defaultSettings;
|
|
387
|
+
const result = {
|
|
388
|
+
model: settings?.useModel ?? this.defaultModel,
|
|
389
|
+
messages: set.conversation,
|
|
390
|
+
};
|
|
391
|
+
result.temperature = (0, fsm_dynamo_1.DyFM_notNull)(settings?.temperature) ?
|
|
392
|
+
settings.temperature :
|
|
393
|
+
this.defaultSettings.temperature;
|
|
394
|
+
/* result.max_completion_tokens = DyFM_notNull(settings?.maxTokens) ?
|
|
395
|
+
settings.maxTokens :
|
|
396
|
+
this.defaultSettings.maxTokens; */
|
|
397
|
+
result.max_completion_tokens = (0, fsm_dynamo_1.DyFM_notNull)(settings?.maxTokens) ?
|
|
398
|
+
settings.maxTokens :
|
|
399
|
+
this.defaultSettings.maxTokens;
|
|
400
|
+
result.top_p = (0, fsm_dynamo_1.DyFM_notNull)(settings?.topP) ?
|
|
401
|
+
settings.topP :
|
|
402
|
+
this.defaultSettings.topP;
|
|
403
|
+
result.frequency_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.frequencyPenalty) ?
|
|
404
|
+
settings.frequencyPenalty :
|
|
405
|
+
this.defaultSettings.frequencyPenalty;
|
|
406
|
+
result.presence_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.presencePenalty) ?
|
|
407
|
+
settings.presencePenalty :
|
|
408
|
+
this.defaultSettings.presencePenalty;
|
|
409
|
+
return result;
|
|
410
|
+
}
|
|
411
|
+
catch (error) {
|
|
412
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
413
|
+
...this.getDefaultErrorSettings('getMessageCreateSettings', error, set.issuer),
|
|
414
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OLSB-RC0`,
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Teszteli a kapcsolatot az OpenAI API-val
|
|
420
|
+
*
|
|
421
|
+
* Tests the connection to OpenAI API
|
|
422
|
+
*/
|
|
423
|
+
async testConnection(issuer) {
|
|
424
|
+
try {
|
|
425
|
+
await this.openai.models.list();
|
|
426
|
+
return true;
|
|
427
|
+
}
|
|
428
|
+
catch (error) {
|
|
429
|
+
fsm_dynamo_1.DyFM_Log.error('DyNTS_OAI_LLM_ServiceBase', 'testConnection', 'Connection test failed', {
|
|
430
|
+
error,
|
|
431
|
+
issuer
|
|
432
|
+
});
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
//#region Function calling (tool use) — FR-047
|
|
437
|
+
/** OpenAI tool-kepes modell-registry (a base capability-precheck-jehez). */
|
|
438
|
+
getModelRegistry() {
|
|
439
|
+
return open_ai_1.DyFM_OAI_Models;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Egy OpenAI-kor a tool-loop-ban: felepiti a natív request-et (system + a teljes beszelgetes
|
|
443
|
+
* tool-uzenetekkel + tools), meghivja az API-t, es normalizalt DyFM_AI_LLM_Response-t ad vissza
|
|
444
|
+
* (toolCalls feltoltve, ha a model tool-t akar hivni). FR-002 cost-event: 'llm-tool-use'.
|
|
445
|
+
*/
|
|
446
|
+
async callModelWithTools(set) {
|
|
447
|
+
try {
|
|
448
|
+
const settings = set.settings ?? this.defaultSettings;
|
|
449
|
+
const messages = [
|
|
450
|
+
this.toOpenAIMessage(this.getDefaultSystemMessage(settings)),
|
|
451
|
+
...set.conversation.map((message) => this.toOpenAIMessage(message)),
|
|
452
|
+
];
|
|
453
|
+
const useModel = settings?.useModel ?? this.defaultModel;
|
|
454
|
+
const input = {
|
|
455
|
+
model: useModel,
|
|
456
|
+
messages: messages,
|
|
457
|
+
max_completion_tokens: (0, fsm_dynamo_1.DyFM_notNull)(settings?.maxTokens) ? settings.maxTokens : this.defaultSettings.maxTokens,
|
|
458
|
+
};
|
|
459
|
+
// Reasoning modellek (GPT-5.x / o-series) elutasitjak a sampling-parametereket
|
|
460
|
+
// (temperature != 1, top_p, frequency/presence_penalty) -> 400. Ezeket NEM kuldjuk
|
|
461
|
+
// reasoning modellnel. (Ez a FR-048 per-model settings elv lokalis, OpenAI-specifikus
|
|
462
|
+
// alkalmazasa — amig a general reconciler el nem keszul.)
|
|
463
|
+
if (!this.isReasoningModel(String(useModel))) {
|
|
464
|
+
input.temperature = (0, fsm_dynamo_1.DyFM_notNull)(settings?.temperature) ? settings.temperature : this.defaultSettings.temperature;
|
|
465
|
+
input.top_p = (0, fsm_dynamo_1.DyFM_notNull)(settings?.topP) ? settings.topP : this.defaultSettings.topP;
|
|
466
|
+
input.frequency_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.frequencyPenalty) ? settings.frequencyPenalty : this.defaultSettings.frequencyPenalty;
|
|
467
|
+
input.presence_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.presencePenalty) ? settings.presencePenalty : this.defaultSettings.presencePenalty;
|
|
468
|
+
}
|
|
469
|
+
// Ures tools-tomb -> 400 ("tools must have minimum length 1"). Csak akkor kuldjuk, ha van tool.
|
|
470
|
+
if (set.tools.length) {
|
|
471
|
+
input.tools = set.tools.map((tool) => this.toOpenAITool(tool));
|
|
472
|
+
input.tool_choice = 'auto';
|
|
473
|
+
}
|
|
474
|
+
const start = Date.now();
|
|
475
|
+
const result = await this.openai.chat.completions.create(input);
|
|
476
|
+
const durationMs = Date.now() - start;
|
|
477
|
+
const message = result.choices[0].message;
|
|
478
|
+
const toolCalls = (message.tool_calls ?? [])
|
|
479
|
+
.filter((toolCall) => toolCall.type === 'function')
|
|
480
|
+
.map((toolCall) => ({
|
|
481
|
+
id: toolCall.id,
|
|
482
|
+
name: toolCall.function.name,
|
|
483
|
+
arguments: this.parseToolArguments(toolCall.function.arguments),
|
|
484
|
+
}));
|
|
485
|
+
this.emitCostEvent({
|
|
486
|
+
callType: 'llm-tool-use',
|
|
487
|
+
provider: this.aiProvider,
|
|
488
|
+
model: String(input.model ?? this.defaultModel),
|
|
489
|
+
tokensUsed: {
|
|
490
|
+
input: result.usage?.prompt_tokens ?? 0,
|
|
491
|
+
output: result.usage?.completion_tokens ?? 0,
|
|
492
|
+
total: result.usage?.total_tokens ?? 0,
|
|
493
|
+
},
|
|
494
|
+
durationMs: durationMs,
|
|
495
|
+
issuer: set.issuer,
|
|
496
|
+
timestamp: new Date(),
|
|
497
|
+
});
|
|
498
|
+
return {
|
|
499
|
+
content: message.content ?? '',
|
|
500
|
+
toolCalls: toolCalls.length ? toolCalls : undefined,
|
|
501
|
+
usage: result.usage ? {
|
|
502
|
+
promptTokens: result.usage.prompt_tokens,
|
|
503
|
+
completionTokens: result.usage.completion_tokens,
|
|
504
|
+
totalTokens: result.usage.total_tokens,
|
|
505
|
+
} : undefined,
|
|
506
|
+
model: result.model,
|
|
507
|
+
finishReason: result.choices[0].finish_reason,
|
|
508
|
+
stopReason: result.choices[0].finish_reason,
|
|
509
|
+
rawResponse: result,
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
catch (error) {
|
|
513
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
514
|
+
...this.getDefaultErrorSettings('callModelWithTools', error, set.issuer),
|
|
515
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OLSB-TC0`,
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
/** Agnosztikus tool-definicio → OpenAI ChatCompletionTool. */
|
|
520
|
+
toOpenAITool(tool) {
|
|
521
|
+
return {
|
|
522
|
+
type: 'function',
|
|
523
|
+
function: {
|
|
524
|
+
name: tool.name,
|
|
525
|
+
description: tool.description,
|
|
526
|
+
parameters: tool.parameters,
|
|
527
|
+
},
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Agnosztikus DyFM_AI_Message → OpenAI ChatCompletionMessageParam.
|
|
532
|
+
* Kezeli a tool-result (role:'tool') es a tool-hivo assistant (tool_calls) uzeneteket is.
|
|
533
|
+
*/
|
|
534
|
+
toOpenAIMessage(message) {
|
|
535
|
+
if (message.role === ai_1.DyFM_AI_MessageRole.tool) {
|
|
536
|
+
return {
|
|
537
|
+
role: 'tool',
|
|
538
|
+
tool_call_id: message.toolCallId ?? '',
|
|
539
|
+
content: message.content,
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
if (message.role === ai_1.DyFM_AI_MessageRole.assistant && message.toolCalls?.length) {
|
|
543
|
+
return {
|
|
544
|
+
role: 'assistant',
|
|
545
|
+
content: message.content || null,
|
|
546
|
+
tool_calls: message.toolCalls.map((toolCall) => ({
|
|
547
|
+
id: toolCall.id,
|
|
548
|
+
type: 'function',
|
|
549
|
+
function: {
|
|
550
|
+
name: toolCall.name,
|
|
551
|
+
arguments: JSON.stringify(toolCall.arguments),
|
|
552
|
+
},
|
|
553
|
+
})),
|
|
554
|
+
};
|
|
555
|
+
}
|
|
556
|
+
return {
|
|
557
|
+
role: message.role,
|
|
558
|
+
content: message.content,
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
/** Tool-argumentumok parse-olasa (OpenAI JSON-string → object); hibas JSON eseten ures object. */
|
|
562
|
+
parseToolArguments(raw) {
|
|
563
|
+
try {
|
|
564
|
+
return JSON.parse(raw || '{}');
|
|
565
|
+
}
|
|
566
|
+
catch {
|
|
567
|
+
return {};
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Reasoning modell-e (GPT-5.x sor vagy o-series, pl. o1/o3/o4)? Ezek elutasitjak a
|
|
572
|
+
* sampling-parametereket (temperature != 1, top_p, frequency/presence_penalty). A `gpt-4o`
|
|
573
|
+
* NEM reasoning (a 'gpt-5' prefix nem illeszti, 'o'-prefix sem).
|
|
574
|
+
*/
|
|
575
|
+
isReasoningModel(modelId) {
|
|
576
|
+
return /^gpt-5/.test(modelId) || /^o[0-9]/.test(modelId);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
exports.DyNTS_OAI_LLM_ServiceBase = DyNTS_OAI_LLM_ServiceBase;
|
|
580
580
|
//# sourceMappingURL=oai-llm.service-base.js.map
|