@futdevpro/nts-dynamo 1.15.15 → 1.15.16
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/_ag_backend-structure.mdc +85 -85
- package/.cursor/rules/_ag_backend.mdc +16 -16
- 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_should-be.mdc +6 -6
- package/.cursor/rules/ai_development_guide.md +60 -60
- 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/version-bump.config.json +5 -0
- package/.github/workflows/main.yml +426 -393
- package/.husky/pre-commit +1 -0
- package/.vscode/settings.json +10 -10
- package/HOWTO.md +15 -15
- package/LICENSE +21 -21
- package/__documentations/2026-04-28-logs-module.md +49 -0
- package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
- package/_specifications/BACKLOG.md +50 -50
- package/_specifications/TODO.md +15 -15
- package/_specifications/agent.md +138 -138
- package/eslint.config.js +3 -3
- package/nodemon.json +24 -24
- package/package.json +343 -362
- package/pipeline.cicd.config.json +152 -0
- 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/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 +578 -578
- package/src/_models/control-models/endpoint-params.control-model.ts +526 -526
- 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/environment-settings.interface.ts +59 -59
- package/src/_models/interfaces/global-log-settings.interface.ts +108 -108
- package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
- 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/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/_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-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-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 +28 -28
- 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-document.data-service.spec.ts +342 -342
- 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 +240 -240
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +98 -98
- 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 +615 -615
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +437 -437
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +833 -833
- package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
- 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 +332 -332
- package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +79 -79
- package/src/_modules/ai/_services/ai-provider.service-base.ts +29 -29
- package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
- package/src/_modules/ai/index.ts +13 -13
- 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-main.control-service.spec.ts +192 -192
- package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
- 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-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/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/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/_services/bot-commands.control-service.spec.ts +116 -116
- package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
- package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
- package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
- 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/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/index.ts +36 -36
- package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +19 -19
- package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
- 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 +345 -345
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +330 -330
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +393 -393
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +220 -220
- package/src/_modules/local-vector-search/index.ts +11 -11
- 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/_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/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/server/errors/errors.control-service.spec.ts +230 -230
- package/src/_modules/server/errors/errors.control-service.ts +69 -69
- package/src/_modules/server/errors/errors.controller.spec.ts +165 -165
- package/src/_modules/server/errors/errors.controller.ts +270 -270
- package/src/_modules/server/errors/errors.data-service.spec.ts +355 -355
- 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 +516 -516
- package/src/_modules/server/server-status/server-status.control-service.ts +336 -336
- package/src/_modules/server/server-status/server-status.controller.spec.ts +156 -156
- package/src/_modules/server/server-status/server-status.controller.ts +131 -131
- 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/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 +493 -493
- package/src/_services/base/data.service.ts +2525 -2525
- 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/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 +275 -275
- package/src/_services/core/global.service.ts +461 -461
- 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/shared.static-service.spec.ts +99 -99
- package/src/_services/shared.static-service.ts +78 -78
- package/src/index.ts +94 -94
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +42 -42
- package/build/_modules/logs/get-logs-routing-module.util.d.ts +0 -19
- package/build/_modules/logs/get-logs-routing-module.util.d.ts.map +0 -1
- package/build/_modules/logs/get-logs-routing-module.util.js +0 -32
- package/build/_modules/logs/get-logs-routing-module.util.js.map +0 -1
- package/build/_modules/logs/index.d.ts +0 -4
- package/build/_modules/logs/index.d.ts.map +0 -1
- package/build/_modules/logs/index.js +0 -10
- package/build/_modules/logs/index.js.map +0 -1
- package/build/_modules/logs/log-buffer.service.d.ts +0 -38
- package/build/_modules/logs/log-buffer.service.d.ts.map +0 -1
- package/build/_modules/logs/log-buffer.service.js +0 -97
- package/build/_modules/logs/log-buffer.service.js.map +0 -1
- package/build/_modules/logs/logs.controller.d.ts +0 -27
- package/build/_modules/logs/logs.controller.d.ts.map +0 -1
- package/build/_modules/logs/logs.controller.js +0 -90
- package/build/_modules/logs/logs.controller.js.map +0 -1
- package/build/_modules/logs/logs.service.d.ts +0 -40
- package/build/_modules/logs/logs.service.d.ts.map +0 -1
- package/build/_modules/logs/logs.service.js +0 -97
- package/build/_modules/logs/logs.service.js.map +0 -1
- package/src/_modules/logs/get-logs-routing-module.util.ts +0 -36
- package/src/_modules/logs/index.ts +0 -3
- package/src/_modules/logs/log-buffer.service.ts +0 -101
- package/src/_modules/logs/logs.controller.ts +0 -109
- package/src/_modules/logs/logs.service.ts +0 -100
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
import { DyFM_AI_Message } from '@futdevpro/fsm-dynamo/ai';
|
|
2
|
-
import { DyFM_Msg_Provider_Type } from '@futdevpro/fsm-dynamo/messaging';
|
|
3
|
-
|
|
4
|
-
import { DyNTS_Bot_Main_ControlService } from '../../bot/_services/bot-main.control-service';
|
|
5
|
-
import { DyNTS_Bot_MessageWrapper } from '../../bot/_models/bot-message-wrapper.interface';
|
|
6
|
-
import { DyNTS_AI_LLMChat_ServiceBase } from '../../ai/_services/ai-llm-chat.service-base';
|
|
7
|
-
import { DyNTS_Ass_global_settings } from '../_collections/ass-global-settings.const';
|
|
8
|
-
import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
|
|
9
|
-
import { DyNTS_Ass_Util } from '../_collections/ass.util';
|
|
10
|
-
import { DyNTS_Ass_IO_ControlService } from './ass-io.control-service';
|
|
11
|
-
import { DyNTS_Bot_ChannelWrapper } from '../../bot/_models/bot-channel-wrapper.interface';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Assistant Service Base
|
|
15
|
-
* Integrates commsProvider (bot) and aiProvider (LLMChat) to create AI-powered assistant
|
|
16
|
-
* USES EXISTING AI ABSTRACTIONS - no duplication
|
|
17
|
-
*/
|
|
18
|
-
export abstract class DyNTS_Ass_Main_ControlService<
|
|
19
|
-
T_MessagingPlatformProvider_Type extends DyFM_Msg_Provider_Type | string = DyFM_Msg_Provider_Type,
|
|
20
|
-
> extends DyNTS_Bot_Main_ControlService<T_MessagingPlatformProvider_Type> {
|
|
21
|
-
|
|
22
|
-
// AI Provider - uses EXISTING abstraction
|
|
23
|
-
aiProvider: DyNTS_AI_LLMChat_ServiceBase;
|
|
24
|
-
protected abstract getAIProvider(): DyNTS_AI_LLMChat_ServiceBase;
|
|
25
|
-
|
|
26
|
-
// Override botIO to use assistant IO
|
|
27
|
-
/* protected abstract override getBotIOControlService(): DyNTS_Ass_IO_ControlService; */
|
|
28
|
-
|
|
29
|
-
declare botIO_CS: DyNTS_Ass_IO_ControlService;
|
|
30
|
-
protected abstract override getBotIOControlService(): DyNTS_Ass_IO_ControlService;
|
|
31
|
-
|
|
32
|
-
// Assistant-specific settings
|
|
33
|
-
defaultSystemPrompt: string = DyNTS_Ass_global_settings.defaultSystemPrompt;
|
|
34
|
-
|
|
35
|
-
protected constructor() {
|
|
36
|
-
super();
|
|
37
|
-
|
|
38
|
-
// Initialize AI provider
|
|
39
|
-
this.aiProvider = this.getAIProvider();
|
|
40
|
-
|
|
41
|
-
// Apply system prompt
|
|
42
|
-
if (this.aiProvider.defaultSettings) {
|
|
43
|
-
this.aiProvider.defaultSettings.systemPrompt = this.defaultSystemPrompt;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Set global settings
|
|
47
|
-
DyNTS_global_settings.assistant_settings ??= DyNTS_Ass_global_settings;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Gather messages from comms platform (any platform)
|
|
52
|
-
* Same as dias.service-base but platform-agnostic
|
|
53
|
-
* Now uses wrapper's provider to ensure messages from correct platform
|
|
54
|
-
*/
|
|
55
|
-
async gatherMessagesForMessage<T>(
|
|
56
|
-
message: DyNTS_Bot_MessageWrapper<T>,
|
|
57
|
-
limit: number = 100
|
|
58
|
-
): Promise<DyNTS_Bot_MessageWrapper<T>[]> {
|
|
59
|
-
// Use wrapper's provider to fetch messages from the correct platform
|
|
60
|
-
const messages: DyNTS_Bot_MessageWrapper<T>[] = await message.provider.fetchMessagesForMessage(message, limit);
|
|
61
|
-
|
|
62
|
-
// Filter out messages with skip flags
|
|
63
|
-
return messages.filter(
|
|
64
|
-
msg => !DyNTS_Ass_global_settings.skipConversationMessagesFlags.some(
|
|
65
|
-
flag => msg.content.includes(flag)
|
|
66
|
-
)
|
|
67
|
-
).sort((a, b) => a.timestamp - b.timestamp);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
async gatherMessagesInChannel(
|
|
71
|
-
channel: DyNTS_Bot_ChannelWrapper,
|
|
72
|
-
issuer: string,
|
|
73
|
-
): Promise<DyNTS_Bot_MessageWrapper<any>[]> {
|
|
74
|
-
return channel.provider.fetchMessages(channel, 100);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Convert gathered messages to AI conversation using EXISTING DyFM_AI_Message
|
|
79
|
-
*/
|
|
80
|
-
async gatherMessagesAsAIConversation<T>(
|
|
81
|
-
message: DyNTS_Bot_MessageWrapper<T>,
|
|
82
|
-
issuer: string,
|
|
83
|
-
): Promise<DyFM_AI_Message[]> {
|
|
84
|
-
const messages: DyNTS_Bot_MessageWrapper<T>[] = await this.gatherMessagesForMessage<T>(message);
|
|
85
|
-
|
|
86
|
-
return DyNTS_Ass_Util.convertBotMessagesToAIConversation({
|
|
87
|
-
messages: messages,
|
|
88
|
-
botClientId: message.provider.botId,
|
|
89
|
-
botDisplayName: message.provider.botDisplayName,
|
|
90
|
-
issuer: issuer,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
async gatherMessagesAsAIConversationInChannel<T>(
|
|
95
|
-
channel: DyNTS_Bot_ChannelWrapper,
|
|
96
|
-
issuer: string,
|
|
97
|
-
): Promise<DyFM_AI_Message[]> {
|
|
98
|
-
const messages: DyNTS_Bot_MessageWrapper<T>[] = await this.gatherMessagesInChannel(channel, issuer);
|
|
99
|
-
|
|
100
|
-
return DyNTS_Ass_Util.convertBotMessagesToAIConversation({
|
|
101
|
-
messages: messages,
|
|
102
|
-
botClientId: channel.provider.botId,
|
|
103
|
-
botDisplayName: channel.provider.botDisplayName,
|
|
104
|
-
issuer: issuer,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
1
|
+
import { DyFM_AI_Message } from '@futdevpro/fsm-dynamo/ai';
|
|
2
|
+
import { DyFM_Msg_Provider_Type } from '@futdevpro/fsm-dynamo/messaging';
|
|
3
|
+
|
|
4
|
+
import { DyNTS_Bot_Main_ControlService } from '../../bot/_services/bot-main.control-service';
|
|
5
|
+
import { DyNTS_Bot_MessageWrapper } from '../../bot/_models/bot-message-wrapper.interface';
|
|
6
|
+
import { DyNTS_AI_LLMChat_ServiceBase } from '../../ai/_services/ai-llm-chat.service-base';
|
|
7
|
+
import { DyNTS_Ass_global_settings } from '../_collections/ass-global-settings.const';
|
|
8
|
+
import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
|
|
9
|
+
import { DyNTS_Ass_Util } from '../_collections/ass.util';
|
|
10
|
+
import { DyNTS_Ass_IO_ControlService } from './ass-io.control-service';
|
|
11
|
+
import { DyNTS_Bot_ChannelWrapper } from '../../bot/_models/bot-channel-wrapper.interface';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Assistant Service Base
|
|
15
|
+
* Integrates commsProvider (bot) and aiProvider (LLMChat) to create AI-powered assistant
|
|
16
|
+
* USES EXISTING AI ABSTRACTIONS - no duplication
|
|
17
|
+
*/
|
|
18
|
+
export abstract class DyNTS_Ass_Main_ControlService<
|
|
19
|
+
T_MessagingPlatformProvider_Type extends DyFM_Msg_Provider_Type | string = DyFM_Msg_Provider_Type,
|
|
20
|
+
> extends DyNTS_Bot_Main_ControlService<T_MessagingPlatformProvider_Type> {
|
|
21
|
+
|
|
22
|
+
// AI Provider - uses EXISTING abstraction
|
|
23
|
+
aiProvider: DyNTS_AI_LLMChat_ServiceBase;
|
|
24
|
+
protected abstract getAIProvider(): DyNTS_AI_LLMChat_ServiceBase;
|
|
25
|
+
|
|
26
|
+
// Override botIO to use assistant IO
|
|
27
|
+
/* protected abstract override getBotIOControlService(): DyNTS_Ass_IO_ControlService; */
|
|
28
|
+
|
|
29
|
+
declare botIO_CS: DyNTS_Ass_IO_ControlService;
|
|
30
|
+
protected abstract override getBotIOControlService(): DyNTS_Ass_IO_ControlService;
|
|
31
|
+
|
|
32
|
+
// Assistant-specific settings
|
|
33
|
+
defaultSystemPrompt: string = DyNTS_Ass_global_settings.defaultSystemPrompt;
|
|
34
|
+
|
|
35
|
+
protected constructor() {
|
|
36
|
+
super();
|
|
37
|
+
|
|
38
|
+
// Initialize AI provider
|
|
39
|
+
this.aiProvider = this.getAIProvider();
|
|
40
|
+
|
|
41
|
+
// Apply system prompt
|
|
42
|
+
if (this.aiProvider.defaultSettings) {
|
|
43
|
+
this.aiProvider.defaultSettings.systemPrompt = this.defaultSystemPrompt;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Set global settings
|
|
47
|
+
DyNTS_global_settings.assistant_settings ??= DyNTS_Ass_global_settings;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Gather messages from comms platform (any platform)
|
|
52
|
+
* Same as dias.service-base but platform-agnostic
|
|
53
|
+
* Now uses wrapper's provider to ensure messages from correct platform
|
|
54
|
+
*/
|
|
55
|
+
async gatherMessagesForMessage<T>(
|
|
56
|
+
message: DyNTS_Bot_MessageWrapper<T>,
|
|
57
|
+
limit: number = 100
|
|
58
|
+
): Promise<DyNTS_Bot_MessageWrapper<T>[]> {
|
|
59
|
+
// Use wrapper's provider to fetch messages from the correct platform
|
|
60
|
+
const messages: DyNTS_Bot_MessageWrapper<T>[] = await message.provider.fetchMessagesForMessage(message, limit);
|
|
61
|
+
|
|
62
|
+
// Filter out messages with skip flags
|
|
63
|
+
return messages.filter(
|
|
64
|
+
msg => !DyNTS_Ass_global_settings.skipConversationMessagesFlags.some(
|
|
65
|
+
flag => msg.content.includes(flag)
|
|
66
|
+
)
|
|
67
|
+
).sort((a, b) => a.timestamp - b.timestamp);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
async gatherMessagesInChannel(
|
|
71
|
+
channel: DyNTS_Bot_ChannelWrapper,
|
|
72
|
+
issuer: string,
|
|
73
|
+
): Promise<DyNTS_Bot_MessageWrapper<any>[]> {
|
|
74
|
+
return channel.provider.fetchMessages(channel, 100);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Convert gathered messages to AI conversation using EXISTING DyFM_AI_Message
|
|
79
|
+
*/
|
|
80
|
+
async gatherMessagesAsAIConversation<T>(
|
|
81
|
+
message: DyNTS_Bot_MessageWrapper<T>,
|
|
82
|
+
issuer: string,
|
|
83
|
+
): Promise<DyFM_AI_Message[]> {
|
|
84
|
+
const messages: DyNTS_Bot_MessageWrapper<T>[] = await this.gatherMessagesForMessage<T>(message);
|
|
85
|
+
|
|
86
|
+
return DyNTS_Ass_Util.convertBotMessagesToAIConversation({
|
|
87
|
+
messages: messages,
|
|
88
|
+
botClientId: message.provider.botId,
|
|
89
|
+
botDisplayName: message.provider.botDisplayName,
|
|
90
|
+
issuer: issuer,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
async gatherMessagesAsAIConversationInChannel<T>(
|
|
95
|
+
channel: DyNTS_Bot_ChannelWrapper,
|
|
96
|
+
issuer: string,
|
|
97
|
+
): Promise<DyFM_AI_Message[]> {
|
|
98
|
+
const messages: DyNTS_Bot_MessageWrapper<T>[] = await this.gatherMessagesInChannel(channel, issuer);
|
|
99
|
+
|
|
100
|
+
return DyNTS_Ass_Util.convertBotMessagesToAIConversation({
|
|
101
|
+
messages: messages,
|
|
102
|
+
botClientId: channel.provider.botId,
|
|
103
|
+
botDisplayName: channel.provider.botDisplayName,
|
|
104
|
+
issuer: issuer,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { DyNTS_Bot_Command } from '../_models/bot-command.interface';
|
|
2
|
-
|
|
3
|
-
export const DyNTS_Bot_defaultCommands: DyNTS_Bot_Command[] = [
|
|
4
|
-
{
|
|
5
|
-
command: '!ping',
|
|
6
|
-
description: 'Ping the bot',
|
|
7
|
-
commandHandler: async (message) => {
|
|
8
|
-
// This will be handled by the provider's replyToMessage method
|
|
9
|
-
// The actual implementation will be in the provider
|
|
10
|
-
},
|
|
11
|
-
},
|
|
12
|
-
]
|
|
1
|
+
import { DyNTS_Bot_Command } from '../_models/bot-command.interface';
|
|
2
|
+
|
|
3
|
+
export const DyNTS_Bot_defaultCommands: DyNTS_Bot_Command[] = [
|
|
4
|
+
{
|
|
5
|
+
command: '!ping',
|
|
6
|
+
description: 'Ping the bot',
|
|
7
|
+
commandHandler: async (message) => {
|
|
8
|
+
// This will be handled by the provider's replyToMessage method
|
|
9
|
+
// The actual implementation will be in the provider
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
]
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { DyNTS_Bot_Global_Settings } from '../_models/bot-global-settings.interface';
|
|
2
|
-
import { minute, week } from '@futdevpro/fsm-dynamo';
|
|
3
|
-
import { DyNTS_Bot_defaultCommands } from './bot-default-commands.const';
|
|
4
|
-
|
|
5
|
-
export const DyNTS_Bot_global_settings: DyNTS_Bot_Global_Settings = {
|
|
6
|
-
debugLevel: 3,
|
|
7
|
-
|
|
8
|
-
allowedUsers: 'all',
|
|
9
|
-
|
|
10
|
-
messageSettings: {
|
|
11
|
-
messageFetchTimeLimit: 3 * week,
|
|
12
|
-
messageFetchCountLimit: 1000,
|
|
13
|
-
messageSendDelay: minute / 3,
|
|
14
|
-
|
|
15
|
-
skipFlags: [
|
|
16
|
-
'[BOT-SKIP]',
|
|
17
|
-
'[SYSTEM|REFUSE|BOT]',
|
|
18
|
-
],
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
channelSettings: {
|
|
22
|
-
reportChannelName: 'bot-reports',
|
|
23
|
-
|
|
24
|
-
defaultChannels: [
|
|
25
|
-
'bot-help',
|
|
26
|
-
],
|
|
27
|
-
|
|
28
|
-
allowedChannels: [],
|
|
29
|
-
dmIsAllowed: false,
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
commandSettings: {
|
|
33
|
-
commandOperator: '',
|
|
34
|
-
|
|
35
|
-
commands: DyNTS_Bot_defaultCommands,
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
allowBotsInteractEachOther: false,
|
|
39
|
-
};
|
|
1
|
+
import { DyNTS_Bot_Global_Settings } from '../_models/bot-global-settings.interface';
|
|
2
|
+
import { minute, week } from '@futdevpro/fsm-dynamo';
|
|
3
|
+
import { DyNTS_Bot_defaultCommands } from './bot-default-commands.const';
|
|
4
|
+
|
|
5
|
+
export const DyNTS_Bot_global_settings: DyNTS_Bot_Global_Settings = {
|
|
6
|
+
debugLevel: 3,
|
|
7
|
+
|
|
8
|
+
allowedUsers: 'all',
|
|
9
|
+
|
|
10
|
+
messageSettings: {
|
|
11
|
+
messageFetchTimeLimit: 3 * week,
|
|
12
|
+
messageFetchCountLimit: 1000,
|
|
13
|
+
messageSendDelay: minute / 3,
|
|
14
|
+
|
|
15
|
+
skipFlags: [
|
|
16
|
+
'[BOT-SKIP]',
|
|
17
|
+
'[SYSTEM|REFUSE|BOT]',
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
channelSettings: {
|
|
22
|
+
reportChannelName: 'bot-reports',
|
|
23
|
+
|
|
24
|
+
defaultChannels: [
|
|
25
|
+
'bot-help',
|
|
26
|
+
],
|
|
27
|
+
|
|
28
|
+
allowedChannels: [],
|
|
29
|
+
dmIsAllowed: false,
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
commandSettings: {
|
|
33
|
+
commandOperator: '',
|
|
34
|
+
|
|
35
|
+
commands: DyNTS_Bot_defaultCommands,
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
allowBotsInteractEachOther: false,
|
|
39
|
+
};
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import { DyNTS_Bot_MessagingProvider_ServiceBase } from '../_services/bot-messaging-provider.service-base';
|
|
2
|
-
import { DyNTS_Bot_MessageWrapper } from './bot-message-wrapper.interface';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Wraps a bot channel with provider context
|
|
8
|
-
* This ensures channels include the provider information needed for platform-specific operations
|
|
9
|
-
*/
|
|
10
|
-
export class DyNTS_Bot_ChannelWrapper_Base<
|
|
11
|
-
T_MessagingPlatformChannel extends any = any,
|
|
12
|
-
T_MessagingPlatformMessage extends any = any,
|
|
13
|
-
> {
|
|
14
|
-
id: string;
|
|
15
|
-
name: string;
|
|
16
|
-
isTextBased: boolean;
|
|
17
|
-
isVoiceBased: boolean;
|
|
18
|
-
isDM: boolean;
|
|
19
|
-
|
|
20
|
-
rawPlatformChannel: T_MessagingPlatformChannel;
|
|
21
|
-
|
|
22
|
-
/** Reference to the provider instance for platform-specific operations */
|
|
23
|
-
provider: DyNTS_Bot_MessagingProvider_ServiceBase<
|
|
24
|
-
T_MessagingPlatformChannel,
|
|
25
|
-
T_MessagingPlatformMessage, //DyNTS_Bot_MessageWrapper<any>,
|
|
26
|
-
any, //DyNTS_Bot_UserWrapper<any>,
|
|
27
|
-
any
|
|
28
|
-
>;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export class DyNTS_Bot_ChannelWrapper<
|
|
32
|
-
T_MessagingPlatformChannel extends any = any,
|
|
33
|
-
T_MessagingPlatformMessage extends any = any,
|
|
34
|
-
> extends DyNTS_Bot_ChannelWrapper_Base<T_MessagingPlatformChannel, T_MessagingPlatformMessage> {
|
|
35
|
-
|
|
36
|
-
constructor(
|
|
37
|
-
set: DyNTS_Bot_ChannelWrapper_Base<T_MessagingPlatformChannel, T_MessagingPlatformMessage>
|
|
38
|
-
) {
|
|
39
|
-
super();
|
|
40
|
-
|
|
41
|
-
Object.assign(this, set);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
async sendMessage(content: string, issuer: string): Promise<DyNTS_Bot_MessageWrapper<T_MessagingPlatformMessage>> {
|
|
45
|
-
return await this.provider.sendMessageToChannel(this, content, issuer);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
async sendTyping(): Promise<void> {
|
|
49
|
-
await this.provider.sendTyping(this);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async fetchMessages(limit: number): Promise<DyNTS_Bot_MessageWrapper<T_MessagingPlatformMessage>[]> {
|
|
53
|
-
return await this.provider.fetchMessages(this, limit);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/* async fetchAllMessagesWi */
|
|
57
|
-
|
|
58
|
-
async clear(): Promise<void> {
|
|
59
|
-
await this.provider.clearChannel(this);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
1
|
+
import { DyNTS_Bot_MessagingProvider_ServiceBase } from '../_services/bot-messaging-provider.service-base';
|
|
2
|
+
import { DyNTS_Bot_MessageWrapper } from './bot-message-wrapper.interface';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a bot channel with provider context
|
|
8
|
+
* This ensures channels include the provider information needed for platform-specific operations
|
|
9
|
+
*/
|
|
10
|
+
export class DyNTS_Bot_ChannelWrapper_Base<
|
|
11
|
+
T_MessagingPlatformChannel extends any = any,
|
|
12
|
+
T_MessagingPlatformMessage extends any = any,
|
|
13
|
+
> {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
isTextBased: boolean;
|
|
17
|
+
isVoiceBased: boolean;
|
|
18
|
+
isDM: boolean;
|
|
19
|
+
|
|
20
|
+
rawPlatformChannel: T_MessagingPlatformChannel;
|
|
21
|
+
|
|
22
|
+
/** Reference to the provider instance for platform-specific operations */
|
|
23
|
+
provider: DyNTS_Bot_MessagingProvider_ServiceBase<
|
|
24
|
+
T_MessagingPlatformChannel,
|
|
25
|
+
T_MessagingPlatformMessage, //DyNTS_Bot_MessageWrapper<any>,
|
|
26
|
+
any, //DyNTS_Bot_UserWrapper<any>,
|
|
27
|
+
any
|
|
28
|
+
>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class DyNTS_Bot_ChannelWrapper<
|
|
32
|
+
T_MessagingPlatformChannel extends any = any,
|
|
33
|
+
T_MessagingPlatformMessage extends any = any,
|
|
34
|
+
> extends DyNTS_Bot_ChannelWrapper_Base<T_MessagingPlatformChannel, T_MessagingPlatformMessage> {
|
|
35
|
+
|
|
36
|
+
constructor(
|
|
37
|
+
set: DyNTS_Bot_ChannelWrapper_Base<T_MessagingPlatformChannel, T_MessagingPlatformMessage>
|
|
38
|
+
) {
|
|
39
|
+
super();
|
|
40
|
+
|
|
41
|
+
Object.assign(this, set);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async sendMessage(content: string, issuer: string): Promise<DyNTS_Bot_MessageWrapper<T_MessagingPlatformMessage>> {
|
|
45
|
+
return await this.provider.sendMessageToChannel(this, content, issuer);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async sendTyping(): Promise<void> {
|
|
49
|
+
await this.provider.sendTyping(this);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async fetchMessages(limit: number): Promise<DyNTS_Bot_MessageWrapper<T_MessagingPlatformMessage>[]> {
|
|
53
|
+
return await this.provider.fetchMessages(this, limit);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* async fetchAllMessagesWi */
|
|
57
|
+
|
|
58
|
+
async clear(): Promise<void> {
|
|
59
|
+
await this.provider.clearChannel(this);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DyNTS_Bot_MessageWrapper } from './bot-message-wrapper.interface';
|
|
2
|
-
|
|
3
|
-
export interface DyNTS_Bot_Command<T_MessagingPlatformMessage extends DyNTS_Bot_MessageWrapper<any> = DyNTS_Bot_MessageWrapper<any>> {
|
|
4
|
-
command: string;
|
|
5
|
-
description: string;
|
|
6
|
-
commandHandler: (message: T_MessagingPlatformMessage) => Promise<void>;
|
|
7
|
-
permissionNeeded?: (message: T_MessagingPlatformMessage) => Promise<boolean>;
|
|
8
|
-
}
|
|
1
|
+
import { DyNTS_Bot_MessageWrapper } from './bot-message-wrapper.interface';
|
|
2
|
+
|
|
3
|
+
export interface DyNTS_Bot_Command<T_MessagingPlatformMessage extends DyNTS_Bot_MessageWrapper<any> = DyNTS_Bot_MessageWrapper<any>> {
|
|
4
|
+
command: string;
|
|
5
|
+
description: string;
|
|
6
|
+
commandHandler: (message: T_MessagingPlatformMessage) => Promise<void>;
|
|
7
|
+
permissionNeeded?: (message: T_MessagingPlatformMessage) => Promise<boolean>;
|
|
8
|
+
}
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
import { DyNTS_Bot_Command } from './bot-command.interface';
|
|
2
|
-
import { DyNTS_Bot_MessagingProvider_Config } from '../_services/bot-messaging-provider.service-base';
|
|
3
|
-
|
|
4
|
-
export interface DyNTS_Bot_Global_Settings {
|
|
5
|
-
/**
|
|
6
|
-
* this setting will set the debug level for the bot
|
|
7
|
-
*
|
|
8
|
-
* 0 - no logs
|
|
9
|
-
* 1 - errors sending to report channel
|
|
10
|
-
* 2 - errors sending as response, will log events in console
|
|
11
|
-
* 3 - errors sending as response, creating reports to report channel, debug events are in console (default)
|
|
12
|
-
* 4 - errors and debug events are sending as response
|
|
13
|
-
* 5 - all events are sending as response (that are set to send)
|
|
14
|
-
* 6 - all debug logs are enabled
|
|
15
|
-
*
|
|
16
|
-
* _
|
|
17
|
-
*/
|
|
18
|
-
debugLevel: number;
|
|
19
|
-
|
|
20
|
-
allowedUsers: 'all' | string[];
|
|
21
|
-
|
|
22
|
-
messageSettings: {
|
|
23
|
-
/**
|
|
24
|
-
* this setting will set the time limit for message fetching
|
|
25
|
-
* so we will stop fetching messages sent later than this time
|
|
26
|
-
*/
|
|
27
|
-
messageFetchTimeLimit: number;
|
|
28
|
-
/**
|
|
29
|
-
* this setting will set the count limit for message fetching
|
|
30
|
-
* so we will stop fetching messages after this count
|
|
31
|
-
*/
|
|
32
|
-
messageFetchCountLimit: number;
|
|
33
|
-
/**
|
|
34
|
-
* this setting will set the delay for message sending,
|
|
35
|
-
* so we won't flood the channel too fast
|
|
36
|
-
*/
|
|
37
|
-
messageSendDelay: number;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* this setting will be used to skip answering to messages
|
|
41
|
-
* if the message contains any of these flags, the bot will not answer
|
|
42
|
-
*
|
|
43
|
-
* @default [ '[BOT-SKIP]' ]
|
|
44
|
-
*/
|
|
45
|
-
skipFlags: string[];
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* this setting will set the channel settings for the bot
|
|
50
|
-
*/
|
|
51
|
-
channelSettings: {
|
|
52
|
-
/**
|
|
53
|
-
* this setting will set the name of the channel where the bot will send the reports
|
|
54
|
-
*
|
|
55
|
-
* @default 'bot-report'
|
|
56
|
-
*/
|
|
57
|
-
reportChannelName: string;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* this setting will set the channels where the bot will answer automatically
|
|
61
|
-
* whenever a message is sent in one of these channels, that is not from the bot
|
|
62
|
-
*
|
|
63
|
-
* it will be populated automatically from the default channels
|
|
64
|
-
*/
|
|
65
|
-
allowedChannels: string[];
|
|
66
|
-
/**
|
|
67
|
-
* this setting will set if the bot can answer in Direct Messages Channels
|
|
68
|
-
*
|
|
69
|
-
* @default false
|
|
70
|
-
*/
|
|
71
|
-
dmIsAllowed: boolean;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* this setting will set the default channels where the bot will answer automatically
|
|
75
|
-
* whenever a message is sent in one of these channels, that is not from the bot
|
|
76
|
-
*
|
|
77
|
-
* @default [ 'bot-report' ]
|
|
78
|
-
*/
|
|
79
|
-
defaultChannels: string[];
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
commandSettings: {
|
|
83
|
-
commandOperator: string;
|
|
84
|
-
commands: DyNTS_Bot_Command[];
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
allowBotsInteractEachOther: boolean;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface DyNTS_Bot_MultiMessageProvider_Settings {
|
|
91
|
-
/** Array of provider configurations (use for multiple providers) */
|
|
92
|
-
providers: DyNTS_Bot_MessagingProvider_Config[];
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/** Union type supporting both single and multi-provider configurations */
|
|
96
|
-
export type DyNTS_Bot_Settings = DyNTS_Bot_MessagingProvider_Config | (DyNTS_Bot_Global_Settings & DyNTS_Bot_MultiMessageProvider_Settings);
|
|
1
|
+
import { DyNTS_Bot_Command } from './bot-command.interface';
|
|
2
|
+
import { DyNTS_Bot_MessagingProvider_Config } from '../_services/bot-messaging-provider.service-base';
|
|
3
|
+
|
|
4
|
+
export interface DyNTS_Bot_Global_Settings {
|
|
5
|
+
/**
|
|
6
|
+
* this setting will set the debug level for the bot
|
|
7
|
+
*
|
|
8
|
+
* 0 - no logs
|
|
9
|
+
* 1 - errors sending to report channel
|
|
10
|
+
* 2 - errors sending as response, will log events in console
|
|
11
|
+
* 3 - errors sending as response, creating reports to report channel, debug events are in console (default)
|
|
12
|
+
* 4 - errors and debug events are sending as response
|
|
13
|
+
* 5 - all events are sending as response (that are set to send)
|
|
14
|
+
* 6 - all debug logs are enabled
|
|
15
|
+
*
|
|
16
|
+
* _
|
|
17
|
+
*/
|
|
18
|
+
debugLevel: number;
|
|
19
|
+
|
|
20
|
+
allowedUsers: 'all' | string[];
|
|
21
|
+
|
|
22
|
+
messageSettings: {
|
|
23
|
+
/**
|
|
24
|
+
* this setting will set the time limit for message fetching
|
|
25
|
+
* so we will stop fetching messages sent later than this time
|
|
26
|
+
*/
|
|
27
|
+
messageFetchTimeLimit: number;
|
|
28
|
+
/**
|
|
29
|
+
* this setting will set the count limit for message fetching
|
|
30
|
+
* so we will stop fetching messages after this count
|
|
31
|
+
*/
|
|
32
|
+
messageFetchCountLimit: number;
|
|
33
|
+
/**
|
|
34
|
+
* this setting will set the delay for message sending,
|
|
35
|
+
* so we won't flood the channel too fast
|
|
36
|
+
*/
|
|
37
|
+
messageSendDelay: number;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* this setting will be used to skip answering to messages
|
|
41
|
+
* if the message contains any of these flags, the bot will not answer
|
|
42
|
+
*
|
|
43
|
+
* @default [ '[BOT-SKIP]' ]
|
|
44
|
+
*/
|
|
45
|
+
skipFlags: string[];
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* this setting will set the channel settings for the bot
|
|
50
|
+
*/
|
|
51
|
+
channelSettings: {
|
|
52
|
+
/**
|
|
53
|
+
* this setting will set the name of the channel where the bot will send the reports
|
|
54
|
+
*
|
|
55
|
+
* @default 'bot-report'
|
|
56
|
+
*/
|
|
57
|
+
reportChannelName: string;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* this setting will set the channels where the bot will answer automatically
|
|
61
|
+
* whenever a message is sent in one of these channels, that is not from the bot
|
|
62
|
+
*
|
|
63
|
+
* it will be populated automatically from the default channels
|
|
64
|
+
*/
|
|
65
|
+
allowedChannels: string[];
|
|
66
|
+
/**
|
|
67
|
+
* this setting will set if the bot can answer in Direct Messages Channels
|
|
68
|
+
*
|
|
69
|
+
* @default false
|
|
70
|
+
*/
|
|
71
|
+
dmIsAllowed: boolean;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* this setting will set the default channels where the bot will answer automatically
|
|
75
|
+
* whenever a message is sent in one of these channels, that is not from the bot
|
|
76
|
+
*
|
|
77
|
+
* @default [ 'bot-report' ]
|
|
78
|
+
*/
|
|
79
|
+
defaultChannels: string[];
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
commandSettings: {
|
|
83
|
+
commandOperator: string;
|
|
84
|
+
commands: DyNTS_Bot_Command[];
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
allowBotsInteractEachOther: boolean;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface DyNTS_Bot_MultiMessageProvider_Settings {
|
|
91
|
+
/** Array of provider configurations (use for multiple providers) */
|
|
92
|
+
providers: DyNTS_Bot_MessagingProvider_Config[];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** Union type supporting both single and multi-provider configurations */
|
|
96
|
+
export type DyNTS_Bot_Settings = DyNTS_Bot_MessagingProvider_Config | (DyNTS_Bot_Global_Settings & DyNTS_Bot_MultiMessageProvider_Settings);
|