@futdevpro/nts-dynamo 1.14.24 → 1.14.26

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.
Files changed (132) hide show
  1. package/build/_modules/ai/_services/ai-provider.service-base.d.ts +1 -1
  2. package/build/_modules/ai/_services/ai-provider.service-base.d.ts.map +1 -1
  3. package/build/_modules/ai/_services/oai-to-ai-adapter.service.d.ts +39 -0
  4. package/build/_modules/ai/_services/oai-to-ai-adapter.service.d.ts.map +1 -0
  5. package/build/_modules/ai/_services/oai-to-ai-adapter.service.js +218 -0
  6. package/build/_modules/ai/_services/oai-to-ai-adapter.service.js.map +1 -0
  7. package/build/_modules/assistant/_services/ass-io.control-service.d.ts +4 -3
  8. package/build/_modules/assistant/_services/ass-io.control-service.d.ts.map +1 -1
  9. package/build/_modules/assistant/_services/ass-io.control-service.js +6 -6
  10. package/build/_modules/assistant/_services/ass-io.control-service.js.map +1 -1
  11. package/build/_modules/assistant/_services/ass-main.control-service.d.ts +2 -2
  12. package/build/_modules/assistant/_services/ass-main.control-service.d.ts.map +1 -1
  13. package/build/_modules/assistant/_services/ass.service-base.d.ts +6 -4
  14. package/build/_modules/assistant/_services/ass.service-base.d.ts.map +1 -1
  15. package/build/_modules/assistant/_services/ass.service-base.js +6 -4
  16. package/build/_modules/assistant/_services/ass.service-base.js.map +1 -1
  17. package/build/_modules/bot/_collections/bot-operations.util.d.ts +13 -13
  18. package/build/_modules/bot/_collections/bot-operations.util.d.ts.map +1 -1
  19. package/build/_modules/bot/_collections/bot-operations.util.js.map +1 -1
  20. package/build/_modules/bot/_enums/bot-message-provider.enum.d.ts +8 -0
  21. package/build/_modules/bot/_enums/bot-message-provider.enum.d.ts.map +1 -0
  22. package/build/_modules/bot/_enums/bot-message-provider.enum.js +12 -0
  23. package/build/_modules/bot/_enums/bot-message-provider.enum.js.map +1 -0
  24. package/build/_modules/bot/_models/bot-global-settings.interface.d.ts +7 -0
  25. package/build/_modules/bot/_models/bot-global-settings.interface.d.ts.map +1 -1
  26. package/build/_modules/bot/_models/bot-message-provider.interface.d.ts +68 -0
  27. package/build/_modules/bot/_models/bot-message-provider.interface.d.ts.map +1 -0
  28. package/build/_modules/bot/_models/bot-message-provider.interface.js +3 -0
  29. package/build/_modules/bot/_models/bot-message-provider.interface.js.map +1 -0
  30. package/build/_modules/bot/_models/bot-message-wrapper.interface.d.ts +21 -0
  31. package/build/_modules/bot/_models/bot-message-wrapper.interface.d.ts.map +1 -0
  32. package/build/_modules/bot/_models/bot-message-wrapper.interface.js +3 -0
  33. package/build/_modules/bot/_models/bot-message-wrapper.interface.js.map +1 -0
  34. package/build/_modules/bot/_modules/discord-bot/_collections/dib-operations.util.d.ts +2 -2
  35. package/build/_modules/bot/_modules/discord-bot/_collections/dib-operations.util.d.ts.map +1 -1
  36. package/build/_modules/bot/_modules/discord-bot/_collections/dib.util.d.ts +2 -2
  37. package/build/_modules/bot/_modules/discord-bot/_collections/dib.util.d.ts.map +1 -1
  38. package/build/_modules/bot/_modules/discord-bot/_collections/dib.util.js.map +1 -1
  39. package/build/_modules/bot/_modules/discord-bot/_services/dib-message-provider.service.d.ts +56 -0
  40. package/build/_modules/bot/_modules/discord-bot/_services/dib-message-provider.service.d.ts.map +1 -0
  41. package/build/_modules/bot/_modules/discord-bot/_services/dib-message-provider.service.js +379 -0
  42. package/build/_modules/bot/_modules/discord-bot/_services/dib-message-provider.service.js.map +1 -0
  43. package/build/_modules/bot/_modules/discord-bot/index.d.ts +1 -1
  44. package/build/_modules/bot/_modules/discord-bot/index.d.ts.map +1 -1
  45. package/build/_modules/bot/_modules/discord-bot/index.js +1 -1
  46. package/build/_modules/bot/_modules/discord-bot/index.js.map +1 -1
  47. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.d.ts +3 -3
  48. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.d.ts.map +1 -1
  49. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.js.map +1 -1
  50. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb.util.d.ts +2 -2
  51. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb.util.d.ts.map +1 -1
  52. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb.util.js.map +1 -1
  53. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-message-provider.service.d.ts +55 -0
  54. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-message-provider.service.d.ts.map +1 -0
  55. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-message-provider.service.js +313 -0
  56. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-message-provider.service.js.map +1 -0
  57. package/build/_modules/bot/_modules/dynamo-bot/index.d.ts +1 -1
  58. package/build/_modules/bot/_modules/dynamo-bot/index.d.ts.map +1 -1
  59. package/build/_modules/bot/_modules/dynamo-bot/index.js +1 -1
  60. package/build/_modules/bot/_modules/dynamo-bot/index.js.map +1 -1
  61. package/build/_modules/bot/_modules/slack-bot/_collections/slb-operations.util.d.ts +2 -2
  62. package/build/_modules/bot/_modules/slack-bot/_collections/slb-operations.util.d.ts.map +1 -1
  63. package/build/_modules/bot/_modules/slack-bot/_services/slb-message-provider.service.d.ts +41 -0
  64. package/build/_modules/bot/_modules/slack-bot/_services/slb-message-provider.service.d.ts.map +1 -0
  65. package/build/_modules/bot/_modules/slack-bot/_services/slb-message-provider.service.js +119 -0
  66. package/build/_modules/bot/_modules/slack-bot/_services/slb-message-provider.service.js.map +1 -0
  67. package/build/_modules/bot/_modules/slack-bot/index.d.ts +1 -1
  68. package/build/_modules/bot/_modules/slack-bot/index.d.ts.map +1 -1
  69. package/build/_modules/bot/_modules/slack-bot/index.js +1 -1
  70. package/build/_modules/bot/_modules/slack-bot/index.js.map +1 -1
  71. package/build/_modules/bot/_modules/teams-bot/_collections/teb-operations.util.d.ts +2 -2
  72. package/build/_modules/bot/_modules/teams-bot/_collections/teb-operations.util.d.ts.map +1 -1
  73. package/build/_modules/bot/_modules/teams-bot/_services/teb-message-provider.service.d.ts +41 -0
  74. package/build/_modules/bot/_modules/teams-bot/_services/teb-message-provider.service.d.ts.map +1 -0
  75. package/build/_modules/bot/_modules/teams-bot/_services/teb-message-provider.service.js +119 -0
  76. package/build/_modules/bot/_modules/teams-bot/_services/teb-message-provider.service.js.map +1 -0
  77. package/build/_modules/bot/_modules/teams-bot/index.d.ts +1 -1
  78. package/build/_modules/bot/_modules/teams-bot/index.d.ts.map +1 -1
  79. package/build/_modules/bot/_modules/teams-bot/index.js +1 -1
  80. package/build/_modules/bot/_modules/teams-bot/index.js.map +1 -1
  81. package/build/_modules/bot/_services/bot-commands.control-service.d.ts +4 -3
  82. package/build/_modules/bot/_services/bot-commands.control-service.d.ts.map +1 -1
  83. package/build/_modules/bot/_services/bot-commands.control-service.js +3 -2
  84. package/build/_modules/bot/_services/bot-commands.control-service.js.map +1 -1
  85. package/build/_modules/bot/_services/bot-io.control-service.d.ts +7 -6
  86. package/build/_modules/bot/_services/bot-io.control-service.d.ts.map +1 -1
  87. package/build/_modules/bot/_services/bot-io.control-service.js +38 -17
  88. package/build/_modules/bot/_services/bot-io.control-service.js.map +1 -1
  89. package/build/_modules/bot/_services/bot-main.control-service.d.ts +15 -2
  90. package/build/_modules/bot/_services/bot-main.control-service.d.ts.map +1 -1
  91. package/build/_modules/bot/_services/bot-main.control-service.js +105 -1
  92. package/build/_modules/bot/_services/bot-main.control-service.js.map +1 -1
  93. package/build/_modules/bot/_services/bot-provider-factory.service.d.ts +3 -2
  94. package/build/_modules/bot/_services/bot-provider-factory.service.d.ts.map +1 -1
  95. package/build/_modules/bot/_services/bot-provider-factory.service.js +34 -18
  96. package/build/_modules/bot/_services/bot-provider-factory.service.js.map +1 -1
  97. package/build/_modules/bot/_services/bot-routines.control-service.d.ts +2 -2
  98. package/build/_modules/bot/_services/bot-routines.control-service.d.ts.map +1 -1
  99. package/build/_modules/bot/index.d.ts +3 -2
  100. package/build/_modules/bot/index.d.ts.map +1 -1
  101. package/build/_modules/bot/index.js +3 -2
  102. package/build/_modules/bot/index.js.map +1 -1
  103. package/package.json +1 -1
  104. package/src/_modules/ai/_services/ai-provider.service-base.ts +1 -1
  105. package/src/_modules/assistant/_services/ass-io.control-service.ts +14 -9
  106. package/src/_modules/assistant/_services/ass-main.control-service.ts +3 -3
  107. package/src/_modules/assistant/_services/ass.service-base.ts +13 -5
  108. package/src/_modules/bot/_collections/bot-operations.util.ts +14 -14
  109. package/src/_modules/bot/_enums/{bot-provider.enum.ts → bot-message-provider.enum.ts} +1 -1
  110. package/src/_modules/bot/_models/bot-global-settings.interface.ts +9 -0
  111. package/src/_modules/bot/_models/{bot-provider.interface.ts → bot-message-provider.interface.ts} +10 -7
  112. package/src/_modules/bot/_models/bot-message-wrapper.interface.ts +31 -0
  113. package/src/_modules/bot/_modules/discord-bot/_collections/dib-operations.util.ts +2 -2
  114. package/src/_modules/bot/_modules/discord-bot/_collections/dib.util.ts +2 -2
  115. package/src/_modules/bot/_modules/discord-bot/_services/{dib-provider.service.ts → dib-message-provider.service.ts} +20 -7
  116. package/src/_modules/bot/_modules/discord-bot/index.ts +1 -1
  117. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +3 -3
  118. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb.util.ts +2 -2
  119. package/src/_modules/bot/_modules/dynamo-bot/_services/{dyb-provider.service.ts → dyb-message-provider.service.ts} +12 -8
  120. package/src/_modules/bot/_modules/dynamo-bot/index.ts +1 -1
  121. package/src/_modules/bot/_modules/slack-bot/_collections/slb-operations.util.ts +2 -2
  122. package/src/_modules/bot/_modules/slack-bot/_services/{slb-provider.service.ts → slb-message-provider.service.ts} +11 -7
  123. package/src/_modules/bot/_modules/slack-bot/index.ts +1 -1
  124. package/src/_modules/bot/_modules/teams-bot/_collections/teb-operations.util.ts +2 -2
  125. package/src/_modules/bot/_modules/teams-bot/_services/{teb-provider.service.ts → teb-message-provider.service.ts} +11 -7
  126. package/src/_modules/bot/_modules/teams-bot/index.ts +1 -1
  127. package/src/_modules/bot/_services/bot-commands.control-service.ts +8 -6
  128. package/src/_modules/bot/_services/bot-io.control-service.ts +49 -23
  129. package/src/_modules/bot/_services/bot-main.control-service.ts +130 -5
  130. package/src/_modules/bot/_services/bot-provider-factory.service.ts +42 -20
  131. package/src/_modules/bot/_services/bot-routines.control-service.ts +3 -3
  132. package/src/_modules/bot/index.ts +3 -2
@@ -1,5 +1,5 @@
1
1
  import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
2
- import { DyNTS_Bot_Provider } from '../_models/bot-provider.interface';
2
+ import { DyNTS_Bot_MessageProvider } from '../_models/bot-message-provider.interface';
3
3
  import { DyNTS_Bot_Message } from '../_models/bot-message.interface';
4
4
  import { DyNTS_Bot_Channel } from '../_models/bot-channel.interface';
5
5
  import { DyNTS_Bot_User } from '../_models/bot-user.interface';
@@ -11,11 +11,11 @@ export abstract class DyNTS_Bot_Operations_Util<
11
11
  T_PlatformChannel extends DyNTS_Bot_Channel<any> = DyNTS_Bot_Channel<any>,
12
12
  T_PlatformMessage extends DyNTS_Bot_Message<any> = DyNTS_Bot_Message<any>,
13
13
  T_PlatformUser extends DyNTS_Bot_User<any> = DyNTS_Bot_User<any>,
14
- T_PlatformProvider extends DyNTS_Bot_Provider<
14
+ T_PlatformProvider extends DyNTS_Bot_MessageProvider<
15
15
  T_PlatformChannel,
16
16
  T_PlatformMessage,
17
17
  T_PlatformUser
18
- > = DyNTS_Bot_Provider<
18
+ > = DyNTS_Bot_MessageProvider<
19
19
  T_PlatformChannel,
20
20
  T_PlatformMessage,
21
21
  T_PlatformUser
@@ -24,7 +24,7 @@ export abstract class DyNTS_Bot_Operations_Util<
24
24
 
25
25
  static async findChannelByName<
26
26
  T_PlatformChannel extends DyNTS_Bot_Channel<any>,
27
- T_PlatformProvider extends DyNTS_Bot_Provider<T_PlatformChannel, any, any>
27
+ T_PlatformProvider extends DyNTS_Bot_MessageProvider<T_PlatformChannel, any, any>
28
28
  >(
29
29
  provider: T_PlatformProvider,
30
30
  name: string
@@ -39,7 +39,7 @@ export abstract class DyNTS_Bot_Operations_Util<
39
39
  return channel;
40
40
  }
41
41
 
42
- static async sendMessageToChannelByName<T_PlatformChannel extends DyNTS_Bot_Channel<any>, T_PlatformProvider extends DyNTS_Bot_Provider<T_PlatformChannel, any, any>>(
42
+ static async sendMessageToChannelByName<T_PlatformChannel extends DyNTS_Bot_Channel<any>, T_PlatformProvider extends DyNTS_Bot_MessageProvider<T_PlatformChannel, any, any>>(
43
43
  provider: T_PlatformProvider,
44
44
  channelName: string,
45
45
  message: string
@@ -54,21 +54,21 @@ export abstract class DyNTS_Bot_Operations_Util<
54
54
  }
55
55
  }
56
56
 
57
- static async readMembersInChannel<T_PlatformUser extends DyNTS_Bot_User<any>, T_PlatformProvider extends DyNTS_Bot_Provider<any, any, T_PlatformUser>>(
57
+ static async readMembersInChannel<T_PlatformUser extends DyNTS_Bot_User<any>, T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, any, T_PlatformUser>>(
58
58
  provider: T_PlatformProvider,
59
59
  channelName: string
60
60
  ): Promise<T_PlatformUser[]> {
61
61
  return await provider.readMembersInChannel(channelName);
62
62
  }
63
63
 
64
- static async readMemberNamesInChannel<T_PlatformProvider extends DyNTS_Bot_Provider<any, any, any>>(
64
+ static async readMemberNamesInChannel<T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, any, any>>(
65
65
  provider: T_PlatformProvider,
66
66
  channelName: string
67
67
  ): Promise<string[]> {
68
68
  return await provider.readMemberNamesInChannel(channelName);
69
69
  }
70
70
 
71
- static async fetchAllMessagesWithPaging<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformProvider extends DyNTS_Bot_Provider<any, T_PlatformMessage, any>>(
71
+ static async fetchAllMessagesWithPaging<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, T_PlatformMessage, any>>(
72
72
  provider: T_PlatformProvider,
73
73
  channelId: string,
74
74
  maxFetch = 1000
@@ -76,7 +76,7 @@ export abstract class DyNTS_Bot_Operations_Util<
76
76
  return await provider.fetchAllMessagesWithPaging(channelId, maxFetch);
77
77
  }
78
78
 
79
- static async readLastMessageDatesByMembers<T_PlatformProvider extends DyNTS_Bot_Provider<any, any, any>>(
79
+ static async readLastMessageDatesByMembers<T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, any, any>>(
80
80
  provider: T_PlatformProvider,
81
81
  channelName: string,
82
82
  memberNames: string[]
@@ -84,7 +84,7 @@ export abstract class DyNTS_Bot_Operations_Util<
84
84
  return await provider.readLastMessageDatesByMembers(channelName, memberNames);
85
85
  }
86
86
 
87
- static async readLastMessageWithMemberNamePingInIt<T_PlatformUser extends DyNTS_Bot_User<any>, T_PlatformProvider extends DyNTS_Bot_Provider<any, any, T_PlatformUser>>(
87
+ static async readLastMessageWithMemberNamePingInIt<T_PlatformUser extends DyNTS_Bot_User<any>, T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, any, T_PlatformUser>>(
88
88
  provider: T_PlatformProvider,
89
89
  channelName: string,
90
90
  users: T_PlatformUser[]
@@ -94,7 +94,7 @@ export abstract class DyNTS_Bot_Operations_Util<
94
94
 
95
95
  static readMentionsInChannel = this.readLastMessageWithMemberNamePingInIt;
96
96
 
97
- static async readLastMessagesInChannel<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformChannel extends DyNTS_Bot_Channel<any>, T_PlatformProvider extends DyNTS_Bot_Provider<T_PlatformChannel, T_PlatformMessage, any>>(
97
+ static async readLastMessagesInChannel<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformChannel extends DyNTS_Bot_Channel<any>, T_PlatformProvider extends DyNTS_Bot_MessageProvider<T_PlatformChannel, T_PlatformMessage, any>>(
98
98
  provider: T_PlatformProvider,
99
99
  channelName: string,
100
100
  ): Promise<T_PlatformMessage[]> {
@@ -102,14 +102,14 @@ export abstract class DyNTS_Bot_Operations_Util<
102
102
  return await provider.fetchMessages(channel.id, 100);
103
103
  }
104
104
 
105
- static async getLastMessageInChannel<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformProvider extends DyNTS_Bot_Provider<any, T_PlatformMessage, any>>(
105
+ static async getLastMessageInChannel<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, T_PlatformMessage, any>>(
106
106
  provider: T_PlatformProvider,
107
107
  channelName: string
108
108
  ): Promise<T_PlatformMessage> {
109
109
  return await provider.getLastMessageInChannel(channelName);
110
110
  }
111
111
 
112
- static async deleteMessage<T_PlatformProvider extends DyNTS_Bot_Provider<any, any, any>>(
112
+ static async deleteMessage<T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, any, any>>(
113
113
  provider: T_PlatformProvider,
114
114
  messageId: string,
115
115
  channelId: string
@@ -121,7 +121,7 @@ export abstract class DyNTS_Bot_Operations_Util<
121
121
  DyFM_Log.success('Message deleted');
122
122
  }
123
123
 
124
- static async reportIn<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformProvider extends DyNTS_Bot_Provider<any, T_PlatformMessage, any>>(provider: T_PlatformProvider): Promise<void> {
124
+ static async reportIn<T_PlatformMessage extends DyNTS_Bot_Message<any>, T_PlatformProvider extends DyNTS_Bot_MessageProvider<any, T_PlatformMessage, any>>(provider: T_PlatformProvider): Promise<void> {
125
125
  try {
126
126
  const lastReportMessage = await this.getLastMessageInChannel(
127
127
  provider,
@@ -1,4 +1,4 @@
1
- export enum DyNTS_Bot_Provider_Type {
1
+ export enum DyNTS_Bot_MessageProvider_Type {
2
2
  discord = 'discord',
3
3
  slack = 'slack',
4
4
  teams = 'teams',
@@ -1,4 +1,5 @@
1
1
  import { DyNTS_Bot_Command } from './bot-command.interface';
2
+ import { DyNTS_Bot_MessageProvider_Config } from './bot-message-provider.interface';
2
3
 
3
4
  export interface DyNTS_Bot_Global_Settings {
4
5
  /**
@@ -85,3 +86,11 @@ export interface DyNTS_Bot_Global_Settings {
85
86
 
86
87
  allowBotsInteractEachOther: boolean;
87
88
  }
89
+
90
+ export interface DyNTS_Bot_MultiMessageProvider_Settings {
91
+ /** Array of provider configurations (use for multiple providers) */
92
+ providers: DyNTS_Bot_MessageProvider_Config[];
93
+ }
94
+
95
+ /** Union type supporting both single and multi-provider configurations */
96
+ export type DyNTS_Bot_Settings = DyNTS_Bot_MessageProvider_Config | (DyNTS_Bot_Global_Settings & DyNTS_Bot_MultiMessageProvider_Settings);
@@ -3,12 +3,14 @@ import { DyNTS_Bot_Channel } from './bot-channel.interface';
3
3
  import { DyNTS_Bot_User } from './bot-user.interface';
4
4
  import { DyNTS_Bot_LastMessageDate } from './bot-last-message-date.interface';
5
5
  import { DyNTS_Bot_LastMentionDate } from './bot-last-mention-date.interface';
6
- import { DyNTS_Bot_Provider_Type } from '../_enums/bot-provider.enum';
6
+ import { DyNTS_Bot_MessageProvider_Type } from '../_enums/bot-message-provider.enum';
7
7
  import { DyNTS_Bot_Global_Settings } from './bot-global-settings.interface';
8
8
 
9
- export interface DyNTS_Bot_Provider_Config extends DyNTS_Bot_Global_Settings {
10
- provider: DyNTS_Bot_Provider_Type;
11
- providerInstance?: DyNTS_Bot_Provider;
9
+ export interface DyNTS_Bot_MessageProvider_Config extends DyNTS_Bot_Global_Settings {
10
+ /** Unique identifier for this provider instance (required when using multiple providers) */
11
+ providerId?: string;
12
+ messageProvider: DyNTS_Bot_MessageProvider_Type;
13
+ messageProviderInstance?: DyNTS_Bot_MessageProvider;
12
14
  discord?: {
13
15
  token: string;
14
16
  guildId: string;
@@ -31,13 +33,13 @@ export interface DyNTS_Bot_Provider_Config extends DyNTS_Bot_Global_Settings {
31
33
  };
32
34
  }
33
35
 
34
- export interface DyNTS_Bot_Provider<
36
+ export interface DyNTS_Bot_MessageProvider<
35
37
  T_PlatformChannel extends DyNTS_Bot_Channel<any> = DyNTS_Bot_Channel<any>,
36
38
  T_PlatformMessage extends DyNTS_Bot_Message<any> = DyNTS_Bot_Message<any>,
37
39
  T_PlatformUser extends DyNTS_Bot_User<any> = DyNTS_Bot_User<any>
38
40
  > {
39
41
  // Initialization
40
- initialize(config: DyNTS_Bot_Provider_Config): Promise<void>;
42
+ initialize(config: DyNTS_Bot_MessageProvider_Config): Promise<void>;
41
43
  login(token: string): Promise<void>;
42
44
 
43
45
  // Channel operations
@@ -73,7 +75,7 @@ export interface DyNTS_Bot_Provider<
73
75
  getRolePingsByName?(roleNames: string[]): Promise<string>;
74
76
 
75
77
  // Event binding
76
- onMessage(handler: (message: T_PlatformMessage, issuer: string) => void): void;
78
+ onMessage(handler: (message: T_PlatformMessage, issuer: string, providerId?: string) => void): void;
77
79
  onReady(handler: () => void): void;
78
80
  onError(handler: (error: Error) => void): void;
79
81
 
@@ -81,5 +83,6 @@ export interface DyNTS_Bot_Provider<
81
83
  getBotId(): string;
82
84
  getBotDisplayName(): string;
83
85
  getProviderName(): string;
86
+ getProviderId(): string;
84
87
  isReady(): boolean;
85
88
  }
@@ -0,0 +1,31 @@
1
+ import { DyNTS_Bot_Message } from './bot-message.interface';
2
+ import { DyNTS_Bot_Channel } from './bot-channel.interface';
3
+ import { DyNTS_Bot_User } from './bot-user.interface';
4
+ import { DyNTS_Bot_MessageProvider } from './bot-message-provider.interface';
5
+ import { DyNTS_Bot_MessageProvider_Type } from '../_enums/bot-message-provider.enum';
6
+
7
+ /**
8
+ * Wraps a bot message with provider context
9
+ * This ensures messages include the provider information needed to send replies
10
+ * back through the correct platform
11
+ */
12
+ export interface DyNTS_Bot_MessageWrapper<
13
+ T_PlatformMessage extends DyNTS_Bot_Message<any> = DyNTS_Bot_Message<any>
14
+ > {
15
+ /** The wrapped message */
16
+ message: T_PlatformMessage;
17
+
18
+ /** Unique identifier for the provider instance */
19
+ providerId: string;
20
+
21
+ /** Type of the provider (discord, slack, teams, dynamo) */
22
+ providerType: DyNTS_Bot_MessageProvider_Type;
23
+
24
+ /** Reference to the provider instance for sending replies */
25
+ provider: DyNTS_Bot_MessageProvider<
26
+ DyNTS_Bot_Channel<any>,
27
+ T_PlatformMessage,
28
+ DyNTS_Bot_User<any>
29
+ >;
30
+ }
31
+
@@ -1,6 +1,6 @@
1
1
  import { DyNTS_Bot_Operations_Util } from '../../../_collections/bot-operations.util';
2
2
  import { DyNTS_DiB_Message, DyNTS_DiB_Channel, DyNTS_DiB_User } from '../_models/dib-platform.types';
3
- import { DyNTS_DiB_Provider } from '../_services/dib-provider.service';
3
+ import { DyNTS_DiB_MessageProvider } from '../_services/dib-message-provider.service';
4
4
 
5
5
  /**
6
6
  * Discord Bot Operations Utility
@@ -11,7 +11,7 @@ export class DyNTS_DiB_Operations_Util extends DyNTS_Bot_Operations_Util<
11
11
  DyNTS_DiB_Channel,
12
12
  DyNTS_DiB_Message,
13
13
  DyNTS_DiB_User,
14
- DyNTS_DiB_Provider
14
+ DyNTS_DiB_MessageProvider
15
15
  > {
16
16
  // Discord-specific operations can be added here
17
17
  // All base operations are inherited from the generic class
@@ -1,10 +1,10 @@
1
1
  import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
2
- import { DyNTS_DiB_Provider } from '../_services/dib-provider.service';
2
+ import { DyNTS_DiB_MessageProvider } from '../_services/dib-message-provider.service';
3
3
  import { DyNTS_global_settings } from '../../../../../_collections/global-settings.const';
4
4
 
5
5
  export class DyNTS_DiB_Util {
6
6
 
7
- static async reportIn(provider: DyNTS_DiB_Provider): Promise<void> {
7
+ static async reportIn(provider: DyNTS_DiB_MessageProvider): Promise<void> {
8
8
  try {
9
9
  const reportMessage = `${provider.getBotDisplayName()} report for duty! ` +
10
10
  `(v${DyNTS_global_settings.systemVersion} ${DyNTS_global_settings.env_settings?.environment})`;
@@ -1,13 +1,13 @@
1
1
  import { Client, GatewayIntentBits, Guild, Collection, GuildMember, Message, Partials, Role, TextChannel } from 'discord.js';
2
2
  import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
3
- import { DyNTS_Bot_Provider, DyNTS_Bot_Provider_Config } from '../../../_models/bot-provider.interface';
3
+ import { DyNTS_Bot_MessageProvider, DyNTS_Bot_MessageProvider_Config } from '../../../_models/bot-message-provider.interface';
4
4
  import { DyNTS_Bot_LastMessageDate } from '../../../_models/bot-last-message-date.interface';
5
5
  import { DyNTS_Bot_LastMentionDate } from '../../../_models/bot-last-mention-date.interface';
6
- import { DyNTS_Bot_Provider_Type } from '../../../_enums/bot-provider.enum';
6
+ import { DyNTS_Bot_MessageProvider_Type } from '../../../_enums/bot-message-provider.enum';
7
7
  import { DyNTS_DiB_Message, DyNTS_DiB_Channel, DyNTS_DiB_User } from '../_models/dib-platform.types';
8
8
  import { DyNTS_global_settings } from '../../../../../_collections/global-settings.const';
9
9
 
10
- export class DyNTS_DiB_Provider implements DyNTS_Bot_Provider<
10
+ export class DyNTS_DiB_MessageProvider implements DyNTS_Bot_MessageProvider<
11
11
  DyNTS_DiB_Channel,
12
12
  DyNTS_DiB_Message,
13
13
  DyNTS_DiB_User
@@ -17,7 +17,7 @@ export class DyNTS_DiB_Provider implements DyNTS_Bot_Provider<
17
17
  private channelCache: Map<string, TextChannel>;
18
18
  private roleCache: Map<string, Role>;
19
19
  private isInitialized: boolean = false;
20
- private config: DyNTS_Bot_Provider_Config;
20
+ private config: DyNTS_Bot_MessageProvider_Config;
21
21
 
22
22
  // Event handlers
23
23
  private messageHandlers: Array<(message: DyNTS_DiB_Message, issuer: string) => void> = [];
@@ -29,11 +29,20 @@ export class DyNTS_DiB_Provider implements DyNTS_Bot_Provider<
29
29
  this.roleCache = new Map();
30
30
  }
31
31
 
32
- async initialize(config: DyNTS_Bot_Provider_Config): Promise<void> {
32
+ // Public accessors for Discord-specific objects (for backward compatibility with CCAP)
33
+ get discordClient(): Client {
34
+ return this.client;
35
+ }
36
+
37
+ get discordGuild(): Guild {
38
+ return this.guild;
39
+ }
40
+
41
+ async initialize(config: DyNTS_Bot_MessageProvider_Config): Promise<void> {
33
42
  this.config = config;
34
43
 
35
- if (config.provider !== DyNTS_Bot_Provider_Type.discord) {
36
- throw new Error(`Invalid provider type: ${config.provider}. Expected 'discord'`);
44
+ if (config.messageProvider !== DyNTS_Bot_MessageProvider_Type.discord) {
45
+ throw new Error(`Invalid provider type: ${config.messageProvider}. Expected 'discord'`);
37
46
  }
38
47
 
39
48
  if (!config.discord) {
@@ -418,6 +427,10 @@ export class DyNTS_DiB_Provider implements DyNTS_Bot_Provider<
418
427
  return 'discord';
419
428
  }
420
429
 
430
+ getProviderId(): string {
431
+ return this.config?.providerId || this.getProviderName();
432
+ }
433
+
421
434
  isReady(): boolean {
422
435
  return this.isInitialized && this.client?.readyAt !== null;
423
436
  }
@@ -8,7 +8,7 @@
8
8
  export * from './_models/dib-platform.types';
9
9
 
10
10
  // SERVICES
11
- export * from './_services/dib-provider.service';
11
+ export * from './_services/dib-message-provider.service';
12
12
 
13
13
  // COLLECTIONS
14
14
  export * from './_collections/dib-operations.util';
@@ -1,5 +1,5 @@
1
1
  import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
2
- import { DyNTS_DyB_Provider } from '../_services/dyb-provider.service';
2
+ import { DyNTS_DyB_MessageProvider } from '../_services/dyb-message-provider.service';
3
3
  import { DyNTS_DyB_Message, DyNTS_DyB_Channel } from '../_models/dyb-platform.types';
4
4
 
5
5
  export class DyNTS_DyB_Operations_Util {
@@ -7,7 +7,7 @@ export class DyNTS_DyB_Operations_Util {
7
7
  /**
8
8
  * Get conversation statistics
9
9
  */
10
- static async getConversationStats(provider: DyNTS_DyB_Provider, conversationId: string): Promise<{
10
+ static async getConversationStats(provider: DyNTS_DyB_MessageProvider, conversationId: string): Promise<{
11
11
  messageCount: number;
12
12
  participantCount: number;
13
13
  lastActivity: Date | null;
@@ -35,7 +35,7 @@ export class DyNTS_DyB_Operations_Util {
35
35
  * Search messages in conversation
36
36
  */
37
37
  static async searchMessages(
38
- provider: DyNTS_DyB_Provider,
38
+ provider: DyNTS_DyB_MessageProvider,
39
39
  conversationId: string,
40
40
  searchTerm: string
41
41
  ): Promise<DyNTS_DyB_Message[]> {
@@ -1,10 +1,10 @@
1
1
  import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
2
- import { DyNTS_DyB_Provider } from '../_services/dyb-provider.service';
2
+ import { DyNTS_DyB_MessageProvider } from '../_services/dyb-message-provider.service';
3
3
  import { DyNTS_global_settings } from '../../../../../_collections/global-settings.const';
4
4
 
5
5
  export class DyNTS_DyB_Util {
6
6
 
7
- static async reportIn(provider: DyNTS_DyB_Provider): Promise<void> {
7
+ static async reportIn(provider: DyNTS_DyB_MessageProvider): Promise<void> {
8
8
  try {
9
9
  const reportMessage = `${provider.getBotDisplayName()} report for duty! ` +
10
10
  `(v${DyNTS_global_settings.systemVersion} ${DyNTS_global_settings.env_settings?.environment})`;
@@ -1,8 +1,8 @@
1
1
  import { DyFM_Error, DyFM_Log, week } from '@futdevpro/fsm-dynamo';
2
- import { DyNTS_Bot_Provider, DyNTS_Bot_Provider_Config } from '../../../_models/bot-provider.interface';
2
+ import { DyNTS_Bot_MessageProvider, DyNTS_Bot_MessageProvider_Config } from '../../../_models/bot-message-provider.interface';
3
3
  import { DyNTS_Bot_LastMessageDate } from '../../../_models/bot-last-message-date.interface';
4
4
  import { DyNTS_Bot_LastMentionDate } from '../../../_models/bot-last-mention-date.interface';
5
- import { DyNTS_Bot_Provider_Type } from '../../../_enums/bot-provider.enum';
5
+ import { DyNTS_Bot_MessageProvider_Type } from '../../../_enums/bot-message-provider.enum';
6
6
  import { DyNTS_DyB_Message, DyNTS_DyB_Channel, DyNTS_DyB_User } from '../_models/dyb-platform.types';
7
7
  import { DyNTS_global_settings } from '../../../../../_collections/global-settings.const';
8
8
  import { DyNTS_Msg_Main_ControlService } from '../../../../messaging/_services/msg-main.control-service';
@@ -11,13 +11,13 @@ import { DyNTS_Msg_Conversation_DataService } from '../../../../messaging/_servi
11
11
  import { DyNTS_Msg_Events_Service } from '../../../../messaging/_services/msg-events.service';
12
12
  import { DyFM_Msg_Conversation, DyFM_Msg_EventKey, DyFM_Msg_Message, DyFM_Msg_Participant } from '@futdevpro/fsm-dynamo/messaging';
13
13
 
14
- export class DyNTS_DyB_Provider implements DyNTS_Bot_Provider<
14
+ export class DyNTS_DyB_MessageProvider implements DyNTS_Bot_MessageProvider<
15
15
  DyNTS_DyB_Channel,
16
16
  DyNTS_DyB_Message,
17
17
  DyNTS_DyB_User
18
18
  > {
19
19
  private isInitialized: boolean = false;
20
- private config: DyNTS_Bot_Provider_Config;
20
+ private config: DyNTS_Bot_MessageProvider_Config;
21
21
  private conversationCache: Map<string, DyNTS_DyB_Channel>;
22
22
  private userCache: Map<string, DyNTS_DyB_User>;
23
23
 
@@ -37,11 +37,11 @@ export class DyNTS_DyB_Provider implements DyNTS_Bot_Provider<
37
37
  this.eventsService = DyNTS_Msg_Events_Service.getInstance();
38
38
  }
39
39
 
40
- async initialize(config: DyNTS_Bot_Provider_Config): Promise<void> {
40
+ async initialize(config: DyNTS_Bot_MessageProvider_Config): Promise<void> {
41
41
  this.config = config;
42
42
 
43
- if (config.provider !== DyNTS_Bot_Provider_Type.dynamo) {
44
- throw new Error(`Invalid provider type: ${config.provider}. Expected 'dynamo'`);
43
+ if (config.messageProvider !== DyNTS_Bot_MessageProvider_Type.dynamo) {
44
+ throw new Error(`Invalid provider type: ${config.messageProvider}. Expected 'dynamo'`);
45
45
  }
46
46
 
47
47
  this.isInitialized = true;
@@ -349,12 +349,16 @@ export class DyNTS_DyB_Provider implements DyNTS_Bot_Provider<
349
349
  return 'dynamo';
350
350
  }
351
351
 
352
+ getProviderId(): string {
353
+ return this.config.providerId || this.getProviderName();
354
+ }
355
+
352
356
  isReady(): boolean {
353
357
  return this.isInitialized;
354
358
  }
355
359
 
356
360
  // Helper method to get config
357
- getConfig(): DyNTS_Bot_Provider_Config {
361
+ getConfig(): DyNTS_Bot_MessageProvider_Config {
358
362
  return this.config;
359
363
  }
360
364
 
@@ -9,7 +9,7 @@
9
9
  export * from './_models/dyb-platform.types';
10
10
 
11
11
  // SERVICES
12
- export * from './_services/dyb-provider.service';
12
+ export * from './_services/dyb-message-provider.service';
13
13
 
14
14
  // COLLECTIONS
15
15
  export * from './_collections/dyb-operations.util';
@@ -1,6 +1,6 @@
1
1
  import { DyNTS_Bot_Operations_Util } from '../../../_collections/bot-operations.util';
2
2
  import { DyNTS_SlB_Message, DyNTS_SlB_Channel, DyNTS_SlB_User } from '../_models/slb-platform.types';
3
- import { DyNTS_SlB_Provider } from '../_services/slb-provider.service';
3
+ import { DyNTS_SlB_MessageProvider } from '../_services/slb-message-provider.service';
4
4
 
5
5
  /**
6
6
  * Slack Bot Operations Utility
@@ -11,7 +11,7 @@ export class DyNTS_SlB_Operations_Util extends DyNTS_Bot_Operations_Util<
11
11
  DyNTS_SlB_Channel,
12
12
  DyNTS_SlB_Message,
13
13
  DyNTS_SlB_User,
14
- DyNTS_SlB_Provider
14
+ DyNTS_SlB_MessageProvider
15
15
  > {
16
16
  // Slack-specific operations can be added here
17
17
  // All base operations are inherited from the generic class
@@ -1,27 +1,27 @@
1
- import { DyNTS_Bot_Provider, DyNTS_Bot_Provider_Config } from '../../../_models/bot-provider.interface';
1
+ import { DyNTS_Bot_MessageProvider, DyNTS_Bot_MessageProvider_Config } from '../../../_models/bot-message-provider.interface';
2
2
  import { DyNTS_Bot_LastMessageDate } from '../../../_models/bot-last-message-date.interface';
3
3
  import { DyNTS_Bot_LastMentionDate } from '../../../_models/bot-last-mention-date.interface';
4
- import { DyNTS_Bot_Provider_Type } from '../../../_enums/bot-provider.enum';
4
+ import { DyNTS_Bot_MessageProvider_Type } from '../../../_enums/bot-message-provider.enum';
5
5
  import { DyNTS_SlB_Message, DyNTS_SlB_Channel, DyNTS_SlB_User } from '../_models/slb-platform.types';
6
6
 
7
- export class DyNTS_SlB_Provider implements DyNTS_Bot_Provider<
7
+ export class DyNTS_SlB_MessageProvider implements DyNTS_Bot_MessageProvider<
8
8
  DyNTS_SlB_Channel,
9
9
  DyNTS_SlB_Message,
10
10
  DyNTS_SlB_User
11
11
  > {
12
12
  private isInitialized: boolean = false;
13
- private config: DyNTS_Bot_Provider_Config;
13
+ private config: DyNTS_Bot_MessageProvider_Config;
14
14
 
15
15
  // Event handlers
16
16
  private messageHandlers: Array<(message: DyNTS_SlB_Message, issuer: string) => void> = [];
17
17
  private readyHandlers: Array<() => void> = [];
18
18
  private errorHandlers: Array<(error: Error) => void> = [];
19
19
 
20
- async initialize(config: DyNTS_Bot_Provider_Config): Promise<void> {
20
+ async initialize(config: DyNTS_Bot_MessageProvider_Config): Promise<void> {
21
21
  this.config = config;
22
22
 
23
- if (config.provider !== DyNTS_Bot_Provider_Type.slack) {
24
- throw new Error(`Invalid provider type: ${config.provider}. Expected 'slack'`);
23
+ if (config.messageProvider !== DyNTS_Bot_MessageProvider_Type.slack) {
24
+ throw new Error(`Invalid provider type: ${config.messageProvider}. Expected 'slack'`);
25
25
  }
26
26
 
27
27
  if (!config.slack) {
@@ -146,6 +146,10 @@ export class DyNTS_SlB_Provider implements DyNTS_Bot_Provider<
146
146
  return 'slack';
147
147
  }
148
148
 
149
+ getProviderId(): string {
150
+ return this.config?.providerId || this.getProviderName();
151
+ }
152
+
149
153
  isReady(): boolean {
150
154
  return this.isInitialized;
151
155
  }
@@ -8,7 +8,7 @@
8
8
  export * from './_models/slb-platform.types';
9
9
 
10
10
  // SERVICES
11
- export * from './_services/slb-provider.service';
11
+ export * from './_services/slb-message-provider.service';
12
12
 
13
13
  // COLLECTIONS
14
14
  export * from './_collections/slb-operations.util';
@@ -1,6 +1,6 @@
1
1
  import { DyNTS_Bot_Operations_Util } from '../../../_collections/bot-operations.util';
2
2
  import { DyNTS_TeB_Message, DyNTS_TeB_Channel, DyNTS_TeB_User } from '../_models/teb-platform.types';
3
- import { DyNTS_TeB_Provider } from '../_services/teb-provider.service';
3
+ import { DyNTS_TeB_MessageProvider } from '../_services/teb-message-provider.service';
4
4
 
5
5
  /**
6
6
  * Teams Bot Operations Utility
@@ -11,7 +11,7 @@ export class DyNTS_TeB_Operations_Util extends DyNTS_Bot_Operations_Util<
11
11
  DyNTS_TeB_Channel,
12
12
  DyNTS_TeB_Message,
13
13
  DyNTS_TeB_User,
14
- DyNTS_TeB_Provider
14
+ DyNTS_TeB_MessageProvider
15
15
  > {
16
16
  // Teams-specific operations can be added here
17
17
  // All base operations are inherited from the generic class
@@ -1,27 +1,27 @@
1
- import { DyNTS_Bot_Provider, DyNTS_Bot_Provider_Config } from '../../../_models/bot-provider.interface';
1
+ import { DyNTS_Bot_MessageProvider, DyNTS_Bot_MessageProvider_Config } from '../../../_models/bot-message-provider.interface';
2
2
  import { DyNTS_Bot_LastMessageDate } from '../../../_models/bot-last-message-date.interface';
3
3
  import { DyNTS_Bot_LastMentionDate } from '../../../_models/bot-last-mention-date.interface';
4
- import { DyNTS_Bot_Provider_Type } from '../../../_enums/bot-provider.enum';
4
+ import { DyNTS_Bot_MessageProvider_Type } from '../../../_enums/bot-message-provider.enum';
5
5
  import { DyNTS_TeB_Message, DyNTS_TeB_Channel, DyNTS_TeB_User } from '../_models/teb-platform.types';
6
6
 
7
- export class DyNTS_TeB_Provider implements DyNTS_Bot_Provider<
7
+ export class DyNTS_TeB_MessageProvider implements DyNTS_Bot_MessageProvider<
8
8
  DyNTS_TeB_Channel,
9
9
  DyNTS_TeB_Message,
10
10
  DyNTS_TeB_User
11
11
  > {
12
12
  private isInitialized: boolean = false;
13
- private config: DyNTS_Bot_Provider_Config;
13
+ private config: DyNTS_Bot_MessageProvider_Config;
14
14
 
15
15
  // Event handlers
16
16
  private messageHandlers: Array<(message: DyNTS_TeB_Message, issuer: string) => void> = [];
17
17
  private readyHandlers: Array<() => void> = [];
18
18
  private errorHandlers: Array<(error: Error) => void> = [];
19
19
 
20
- async initialize(config: DyNTS_Bot_Provider_Config): Promise<void> {
20
+ async initialize(config: DyNTS_Bot_MessageProvider_Config): Promise<void> {
21
21
  this.config = config;
22
22
 
23
- if (config.provider !== DyNTS_Bot_Provider_Type.teams) {
24
- throw new Error(`Invalid provider type: ${config.provider}. Expected 'teams'`);
23
+ if (config.messageProvider !== DyNTS_Bot_MessageProvider_Type.teams) {
24
+ throw new Error(`Invalid provider type: ${config.messageProvider}. Expected 'teams'`);
25
25
  }
26
26
 
27
27
  if (!config.teams) {
@@ -146,6 +146,10 @@ export class DyNTS_TeB_Provider implements DyNTS_Bot_Provider<
146
146
  return 'teams';
147
147
  }
148
148
 
149
+ getProviderId(): string {
150
+ return this.config?.providerId || this.getProviderName();
151
+ }
152
+
149
153
  isReady(): boolean {
150
154
  return this.isInitialized;
151
155
  }
@@ -8,7 +8,7 @@
8
8
  export * from './_models/teb-platform.types';
9
9
 
10
10
  // SERVICES
11
- export * from './_services/teb-provider.service';
11
+ export * from './_services/teb-message-provider.service';
12
12
 
13
13
  // COLLECTIONS
14
14
  export * from './_collections/teb-operations.util';
@@ -7,17 +7,18 @@ import { DyNTS_Bot_Message } from '../_models/bot-message.interface';
7
7
  import { DyNTS_Bot_Global_Settings } from '../_models/bot-global-settings.interface';
8
8
  import { DyNTS_Bot_User } from '../_models/bot-user.interface';
9
9
  import { DyNTS_Bot_Channel } from '../_models/bot-channel.interface';
10
- import { DyNTS_Bot_Provider, DyNTS_Bot_Provider_Config } from '../_models/bot-provider.interface';
10
+ import { DyNTS_Bot_MessageProvider, DyNTS_Bot_MessageProvider_Config } from '../_models/bot-message-provider.interface';
11
+ import { DyNTS_Bot_MessageWrapper } from '../_models/bot-message-wrapper.interface';
11
12
 
12
13
  export abstract class DyNTS_Bot_Commands_ControlService<
13
14
  T_PlatformMessage extends DyNTS_Bot_Message<any> = DyNTS_Bot_Message<any>,
14
15
  T_PlatformChannel extends DyNTS_Bot_Channel<any> = DyNTS_Bot_Channel<any>,
15
16
  T_PlatformUser extends DyNTS_Bot_User<any> = DyNTS_Bot_User<any>,
16
- T_PlatformProvider extends DyNTS_Bot_Provider<
17
+ T_PlatformProvider extends DyNTS_Bot_MessageProvider<
17
18
  T_PlatformChannel,
18
19
  T_PlatformMessage,
19
20
  T_PlatformUser
20
- > = DyNTS_Bot_Provider<T_PlatformChannel, T_PlatformMessage, T_PlatformUser>
21
+ > = DyNTS_Bot_MessageProvider<T_PlatformChannel, T_PlatformMessage, T_PlatformUser>
21
22
  > extends DyNTS_SingletonService {
22
23
 
23
24
  static getInstance<T_PlatformMessage extends DyNTS_Bot_Message<any>>(): DyNTS_Bot_Commands_ControlService<T_PlatformMessage> {
@@ -50,9 +51,9 @@ export abstract class DyNTS_Bot_Commands_ControlService<
50
51
  }
51
52
  }
52
53
 
53
- async handleCommand(message: T_PlatformMessage, issuer: string): Promise<void> {
54
+ async handleCommand(message: T_PlatformMessage, wrapper: DyNTS_Bot_MessageWrapper<T_PlatformMessage>, issuer: string): Promise<void> {
54
55
  try {
55
- const botSettings = DyNTS_global_settings.bot_settings as DyNTS_Bot_Provider_Config;
56
+ const botSettings = DyNTS_global_settings.bot_settings as DyNTS_Bot_MessageProvider_Config;
56
57
  let haveCommandOperator = false;
57
58
  let msg = message.content.replace(
58
59
  `<@${this.mainBot_CS.botClientId}>`, ''
@@ -110,7 +111,8 @@ export abstract class DyNTS_Bot_Commands_ControlService<
110
111
 
111
112
  await commandExists.commandHandler(message);
112
113
  } catch (error) {
113
- this.provider.replyToMessage(
114
+ const provider = wrapper?.provider || this.provider;
115
+ provider.replyToMessage(
114
116
  message.id,
115
117
  message.channelId,
116
118
  `Error occurred while handling the command:\n` +