@futdevpro/nts-dynamo 1.11.26 → 1.11.28

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 (80) hide show
  1. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.js +1 -1
  2. package/build/_modules/discord-assistant/_collections/dias-global-settings.const.js.map +1 -1
  3. package/build/_modules/discord-assistant/_collections/dias.util.d.ts +1 -0
  4. package/build/_modules/discord-assistant/_collections/dias.util.d.ts.map +1 -1
  5. package/build/_modules/discord-assistant/_collections/dias.util.js +1 -0
  6. package/build/_modules/discord-assistant/_collections/dias.util.js.map +1 -1
  7. package/build/_modules/discord-assistant/_models/dias-global-settings.interface.d.ts +1 -1
  8. package/build/_modules/discord-assistant/_services/dias-io.control-service.d.ts.map +1 -1
  9. package/build/_modules/discord-assistant/_services/dias-io.control-service.js +4 -2
  10. package/build/_modules/discord-assistant/_services/dias-io.control-service.js.map +1 -1
  11. package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts +0 -3
  12. package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts.map +1 -1
  13. package/build/_modules/discord-assistant/_services/dias.service-base.d.ts +6 -2
  14. package/build/_modules/discord-assistant/_services/dias.service-base.d.ts.map +1 -1
  15. package/build/_modules/discord-assistant/_services/dias.service-base.js +6 -4
  16. package/build/_modules/discord-assistant/_services/dias.service-base.js.map +1 -1
  17. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.js +1 -1
  18. package/build/_modules/discord-bot/_collections/dibo-global-settings.conts.js.map +1 -1
  19. package/build/_modules/discord-bot/_collections/dibo-operations.util.js +10 -10
  20. package/build/_modules/discord-bot/_collections/dibo-operations.util.js.map +1 -1
  21. package/build/_modules/discord-bot/_services/dibo-commands.control-service.d.ts +1 -1
  22. package/build/_modules/discord-bot/_services/dibo-commands.control-service.d.ts.map +1 -1
  23. package/build/_modules/discord-bot/_services/dibo-commands.control-service.js +3 -3
  24. package/build/_modules/discord-bot/_services/dibo-commands.control-service.js.map +1 -1
  25. package/build/_modules/discord-bot/_services/dibo-io.control-service.d.ts +1 -0
  26. package/build/_modules/discord-bot/_services/dibo-io.control-service.d.ts.map +1 -1
  27. package/build/_modules/discord-bot/_services/dibo-io.control-service.js +8 -6
  28. package/build/_modules/discord-bot/_services/dibo-io.control-service.js.map +1 -1
  29. package/build/_modules/discord-bot/_services/dibo-main.control-service.d.ts +1 -1
  30. package/build/_modules/discord-bot/_services/dibo-main.control-service.d.ts.map +1 -1
  31. package/build/_modules/discord-bot/_services/dibo-main.control-service.js +27 -2
  32. package/build/_modules/discord-bot/_services/dibo-main.control-service.js.map +1 -1
  33. package/build/_modules/mock/socket-server.mock.d.ts +4 -0
  34. package/build/_modules/mock/socket-server.mock.d.ts.map +1 -1
  35. package/build/_modules/mock/socket-server.mock.js +11 -1
  36. package/build/_modules/mock/socket-server.mock.js.map +1 -1
  37. package/build/_modules/mock/socket-server.mock.spec.js +1 -1
  38. package/build/_modules/mock/socket-server.mock.spec.js.map +1 -1
  39. package/build/_modules/oauth2/_services/oauth2.control-service.d.ts.map +1 -1
  40. package/build/_modules/oauth2/_services/oauth2.control-service.js +7 -4
  41. package/build/_modules/oauth2/_services/oauth2.control-service.js.map +1 -1
  42. package/build/_modules/oauth2/index.js +1 -1
  43. package/build/_modules/oauth2/index.js.map +1 -1
  44. package/build/_modules/open-ai/_services/oai-chunk.service-base.d.ts.map +1 -1
  45. package/build/_modules/open-ai/_services/oai-chunk.service-base.js +21 -0
  46. package/build/_modules/open-ai/_services/oai-chunk.service-base.js.map +1 -1
  47. package/build/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts +16 -141
  48. package/build/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts.map +1 -1
  49. package/build/_modules/open-ai/_services/oai-llm-chat.service-base.js +9 -6
  50. package/build/_modules/open-ai/_services/oai-llm-chat.service-base.js.map +1 -1
  51. package/build/_modules/open-ai/_services/oai-llm.service-base.d.ts +1 -22
  52. package/build/_modules/open-ai/_services/oai-llm.service-base.d.ts.map +1 -1
  53. package/build/_modules/open-ai/_services/oai-llm.service-base.js +28 -75
  54. package/build/_modules/open-ai/_services/oai-llm.service-base.js.map +1 -1
  55. package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
  56. package/build/_modules/socket/_services/socket-server.service.js +12 -3
  57. package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
  58. package/build/_modules/socket/app-extended.server.spec.js +44 -7
  59. package/build/_modules/socket/app-extended.server.spec.js.map +1 -1
  60. package/package.json +3 -3
  61. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +1 -1
  62. package/src/_modules/discord-assistant/_collections/dias.util.ts +3 -1
  63. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +1 -1
  64. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +4 -2
  65. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +2 -2
  66. package/src/_modules/discord-assistant/_services/dias.service-base.ts +13 -6
  67. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +1 -1
  68. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +10 -10
  69. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +3 -3
  70. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +7 -5
  71. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +23 -2
  72. package/src/_modules/mock/socket-server.mock.spec.ts +1 -1
  73. package/src/_modules/mock/socket-server.mock.ts +13 -3
  74. package/src/_modules/oauth2/_services/oauth2.control-service.ts +7 -4
  75. package/src/_modules/oauth2/index.ts +1 -1
  76. package/src/_modules/open-ai/_services/oai-chunk.service-base.ts +27 -0
  77. package/src/_modules/open-ai/_services/oai-llm-chat.service-base.ts +28 -23
  78. package/src/_modules/open-ai/_services/oai-llm.service-base.ts +31 -96
  79. package/src/_modules/socket/_services/socket-server.service.ts +15 -6
  80. package/src/_modules/socket/app-extended.server.spec.ts +50 -18
@@ -6,26 +6,51 @@ describe('| DyNTS_AppExtended;', () => {
6
6
  jasmine.DEFAULT_TIMEOUT_INTERVAL = 30 * fsm_dynamo_1.second;
7
7
  process.setMaxListeners(20);
8
8
  let app;
9
+ // Helper function to safely stop and cleanup app
10
+ const safeStopApp = async () => {
11
+ if (app) {
12
+ try {
13
+ await app.stop();
14
+ }
15
+ catch (error) {
16
+ fsm_dynamo_1.DyFM_Log.testWarn('Error stopping app:', error);
17
+ }
18
+ app = null;
19
+ }
20
+ };
21
+ // Helper function to wait for app to be ready with timeout
22
+ const waitForAppReady = async (appInstance, timeoutMs = 10000) => {
23
+ const startTime = Date.now();
24
+ while (!appInstance.started && (Date.now() - startTime) < timeoutMs) {
25
+ await (0, fsm_dynamo_1.DyFM_delay)(100);
26
+ }
27
+ if (!appInstance.started) {
28
+ throw new Error(`App failed to start within ${timeoutMs}ms`);
29
+ }
30
+ };
9
31
  describe('| a extended-base instance;', () => {
10
32
  beforeEach(async () => {
11
33
  try {
12
34
  await (0, fsm_dynamo_1.DyFM_waitUntil)(() => !app, fsm_dynamo_1.second);
35
+ await (0, fsm_dynamo_1.DyFM_delay)(100); // Ensure previous instance is fully cleaned up
13
36
  app = new app_extended_server_mock_1.DyNTS_AppExtendedBase_Mock();
14
37
  await (0, fsm_dynamo_1.DyFM_delay)(100);
15
38
  await app.ready();
39
+ await waitForAppReady(app);
16
40
  await (0, fsm_dynamo_1.DyFM_delay)(100);
17
41
  }
18
42
  catch (error) {
19
43
  fsm_dynamo_1.DyFM_Log.testError('| DyNTS_AppExtended; | a extended-base instance; test beforeEach error:\n', error?._message, '\nadditionalContent:', error?.additionalContent?.errors?.reverse()?.map((error) => error._messages?.join('\n') ??
20
44
  error._message ??
21
45
  error.message) ?? error?.additionalContent, '\n\n Stack:', (new Error()).stack, error?.additionalContent?.errors?.reverse()?.unshift()?.stack);
46
+ throw error; // Re-throw to fail the test
22
47
  }
23
48
  });
24
49
  afterEach(async () => {
25
50
  try {
26
51
  await (0, fsm_dynamo_1.DyFM_delay)(100);
27
- await app.stop();
28
- app = null;
52
+ await safeStopApp();
53
+ await (0, fsm_dynamo_1.DyFM_delay)(100);
29
54
  }
30
55
  catch (error) {
31
56
  fsm_dynamo_1.DyFM_Log.testError('| DyNTS_AppExtended; | a extended-base instance; test afterEach error:\n', error?._message, '\nadditionalContent:', error?.additionalContent?.errors?.reverse()?.map((error) => error._messages?.join('\n') ??
@@ -35,31 +60,36 @@ describe('| DyNTS_AppExtended;', () => {
35
60
  });
36
61
  it('| should be created', () => {
37
62
  expect(app).toBeDefined();
63
+ expect(app).toBeInstanceOf(app_extended_server_mock_1.DyNTS_AppExtendedBase_Mock);
38
64
  });
39
- it('| should be started', () => {
65
+ it('| should be started', async () => {
40
66
  expect(app.started).toBeTrue();
67
+ expect(app).toBeDefined();
41
68
  });
42
69
  });
43
70
  describe('| a extended-full instance;', () => {
44
71
  beforeEach(async () => {
45
72
  try {
46
73
  await (0, fsm_dynamo_1.DyFM_waitUntil)(() => !app, fsm_dynamo_1.second);
74
+ await (0, fsm_dynamo_1.DyFM_delay)(100); // Ensure previous instance is fully cleaned up
47
75
  app = new app_extended_server_mock_1.DyNTS_AppExtendedFull_Mock();
48
76
  await (0, fsm_dynamo_1.DyFM_delay)(100);
49
77
  await app.ready();
78
+ await waitForAppReady(app);
50
79
  await (0, fsm_dynamo_1.DyFM_delay)(100);
51
80
  }
52
81
  catch (error) {
53
82
  fsm_dynamo_1.DyFM_Log.testError('| DyNTS_AppExtended; | a extended-full instance; test beforeEach error:\n', error?._message, '\nadditionalContent:', error?.additionalContent?.errors?.reverse()?.map((error) => error._messages?.join('\n') ??
54
83
  error._message ??
55
84
  error.message) ?? error?.additionalContent, '\n\n Stack:', (new Error()).stack, error?.additionalContent?.errors?.reverse()?.unshift()?.stack);
85
+ throw error; // Re-throw to fail the test
56
86
  }
57
87
  });
58
88
  afterEach(async () => {
59
89
  try {
60
90
  await (0, fsm_dynamo_1.DyFM_delay)(100);
61
- await app.stop();
62
- app = null;
91
+ await safeStopApp();
92
+ await (0, fsm_dynamo_1.DyFM_delay)(100);
63
93
  }
64
94
  catch (error) {
65
95
  fsm_dynamo_1.DyFM_Log.testError('| DyNTS_AppExtended; | a extended-full instance; test afterEach error:\n', error?._message, '\nadditionalContent:', error?.additionalContent?.errors?.reverse()?.map((error) => error._messages?.join('\n') ??
@@ -69,31 +99,36 @@ describe('| DyNTS_AppExtended;', () => {
69
99
  });
70
100
  it('| should be created', async () => {
71
101
  expect(app).toBeDefined();
102
+ expect(app).toBeInstanceOf(app_extended_server_mock_1.DyNTS_AppExtendedFull_Mock);
72
103
  });
73
104
  it('| should be started', async () => {
74
105
  expect(app.started).toBeTrue();
106
+ expect(app).toBeDefined();
75
107
  });
76
108
  });
77
109
  describe('| a wb-mock instance;', () => {
78
110
  beforeEach(async () => {
79
111
  try {
80
112
  await (0, fsm_dynamo_1.DyFM_waitUntil)(() => !app, fsm_dynamo_1.second);
113
+ await (0, fsm_dynamo_1.DyFM_delay)(100); // Ensure previous instance is fully cleaned up
81
114
  app = new app_extended_server_mock_1.DyNTS_AppWbMock_Mock();
82
115
  await (0, fsm_dynamo_1.DyFM_delay)(100);
83
116
  await app.ready();
117
+ await waitForAppReady(app);
84
118
  await (0, fsm_dynamo_1.DyFM_delay)(100);
85
119
  }
86
120
  catch (error) {
87
121
  fsm_dynamo_1.DyFM_Log.testError('| DyNTS_AppExtended; | a wb-mock instance; test beforeEach error:\n', error?._message, '\nadditionalContent:', error?.additionalContent?.errors?.reverse()?.map((error) => error._messages?.join('\n') ??
88
122
  error._message ??
89
123
  error.message) ?? error?.additionalContent, '\n\n Stack:', (new Error()).stack, error?.additionalContent?.errors?.reverse()?.unshift()?.stack);
124
+ throw error; // Re-throw to fail the test
90
125
  }
91
126
  });
92
127
  afterEach(async () => {
93
128
  try {
94
129
  await (0, fsm_dynamo_1.DyFM_delay)(100);
95
- await app.stop();
96
- app = null;
130
+ await safeStopApp();
131
+ await (0, fsm_dynamo_1.DyFM_delay)(100);
97
132
  }
98
133
  catch (error) {
99
134
  fsm_dynamo_1.DyFM_Log.testError('| DyNTS_AppExtended; | a wb-mock instance; test afterEach error:\n', error?._message, '\nadditionalContent:', error?.additionalContent?.errors?.reverse()?.map((error) => error._messages?.join('\n') ??
@@ -103,9 +138,11 @@ describe('| DyNTS_AppExtended;', () => {
103
138
  });
104
139
  it('| should be created', async () => {
105
140
  expect(app).toBeDefined();
141
+ expect(app).toBeInstanceOf(app_extended_server_mock_1.DyNTS_AppWbMock_Mock);
106
142
  });
107
143
  it('| should be started', async () => {
108
144
  expect(app.started).toBeTrue();
145
+ expect(app).toBeDefined();
109
146
  });
110
147
  });
111
148
  });
@@ -1 +1 @@
1
- {"version":3,"file":"app-extended.server.spec.js","sourceRoot":"","sources":["../../../src/_modules/socket/app-extended.server.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-extended.server.spec.js","sourceRoot":"","sources":["../../../src/_modules/socket/app-extended.server.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.11.26",
3
+ "version": "01.11.28",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",
@@ -164,12 +164,12 @@
164
164
  },
165
165
  "homepage": "https:/futdevpro.hu/projects/dynamo",
166
166
  "DISABLED": {
167
- "@futdevpro/fsm-dynamo": "file:../tgz-collection/dynamo-fsm/futdevpro-fsm-dynamo-01.11.20.tgz",
167
+ "@futdevpro/fsm-dynamo": "file:../tgz-collection/dynamo-fsm/futdevpro-fsm-dynamo-01.11.21.tgz",
168
168
 
169
169
  "empty": ""
170
170
  },
171
171
  "peerDependencies": {
172
- "@futdevpro/fsm-dynamo": "1.11.20",
172
+ "@futdevpro/fsm-dynamo": "1.11.21",
173
173
 
174
174
  "@types/express": "4.17.21",
175
175
  "@types/geoip-lite": "~1.4.1",
@@ -9,7 +9,7 @@ export const DyNTS_DiAs_global_settings: DyNTS_DiAs_Global_Settings = {
9
9
 
10
10
  skipConversationMessagesFlags: [
11
11
  '|NOISE]',
12
- '[VOICE|USER|OUT_OF_CONTEXT]',
12
+ '[VOICE|USER|OUTOFCONTEXT]',
13
13
  '[DEBUG|'
14
14
  ],
15
15
  userTranslationFlags: [
@@ -12,6 +12,7 @@ export class DyNTS_DiAs_Util {
12
12
  messages: Message[],
13
13
  botClientId: string,
14
14
  botDisplayName: string,
15
+ issuer: string,
15
16
  }
16
17
  ): DyNTS_OAI_GPT_Message[] {
17
18
 
@@ -53,12 +54,13 @@ export class DyNTS_DiAs_Util {
53
54
  skipFlags?: string[],
54
55
  }
55
56
  ): Promise<DyNTS_OAI_GPT_Message[]> {
56
- const messages = await this.gatherMessagesForMessage(set/* message, botClientId, issuer, skipFlags */);
57
+ const messages: Message[] = await this.gatherMessagesForMessage(set/* message, botClientId, issuer, skipFlags */);
57
58
 
58
59
  return DyNTS_DiAs_Util.convertDiscordMessagesToOAIConversation({
59
60
  messages: messages,
60
61
  botClientId: set.botClientId,
61
62
  botDisplayName: set.botDisplayName,
63
+ issuer: set.issuer,
62
64
  });
63
65
  }
64
66
 
@@ -7,7 +7,7 @@ export interface DyNTS_DiAs_Global_Settings {
7
7
  * These flags are used to skip messages from the conversation
8
8
  * so these messages will not be included in the conversation for the LLM call
9
9
  *
10
- * default: [ '|NOISE]', '[VOICE|USER|OUT_OF_CONTEXT]', '[DEBUG|' ]
10
+ * default: [ '|NOISE]', '[VOICE|USER|OUTOFCONTEXT]', '[DEBUG|' ]
11
11
  */
12
12
  skipConversationMessagesFlags: string[];
13
13
  /**
@@ -20,6 +20,7 @@ export abstract class DyNTS_DiAs_IO_ControlService extends DyNTS_DiBo_IO_Control
20
20
  protected abstract override mainDiscordBot_CS: DyNTS_DiAs_Main_ControlService;
21
21
  /* =
22
22
  this.getMainDiscordBotControlService(); */
23
+ /* protected dontSendErrorReply?: boolean; */
23
24
 
24
25
  get llmChat_CS(): DyNTS_OAI_LLMChat_ServiceBase {
25
26
  return this.mainDiscordBot_CS.llmChat_CS;
@@ -33,6 +34,7 @@ export abstract class DyNTS_DiAs_IO_ControlService extends DyNTS_DiBo_IO_Control
33
34
  messages: messages,
34
35
  botClientId: this.mainDiscordBot_CS.botClientId,
35
36
  botDisplayName: this.mainDiscordBot_CS.botDisplayName,
37
+ issuer: issuer,
36
38
  });
37
39
 
38
40
  const gptResult: string = await this.llmChat_CS.resolveConversationMessage({
@@ -47,9 +49,9 @@ export abstract class DyNTS_DiAs_IO_ControlService extends DyNTS_DiBo_IO_Control
47
49
  } catch (error) {
48
50
  DyFM_Error.logSimple('❌❌ Error handleNewMessage:', error);
49
51
 
50
- if (DyNTS_DiBo_global_settings.debugLevel >= 1) {
52
+ if (!this.dontSendErrorReply && DyNTS_DiBo_global_settings.debugLevel >= 1) {
51
53
  await message.reply(
52
- `[SYSTEM|ERROR] Error occurred while handling the message:\n` +
54
+ `[SYSTEM|ERROR|${DyNTS_global_settings.systemShortCodeName}|DyNTS-DiAs-IOCS-H0] Error occurred while handling the message:\n` +
53
55
  DyFM_Error.getAnyMessage(error)
54
56
  ).catch(error => {
55
57
  DyFM_Error.logSimple('❌❌ Error sending message to report channel:', error);
@@ -9,8 +9,8 @@ import { DyNTS_global_settings } from '../../..';
9
9
 
10
10
  export abstract class DyNTS_DiAs_Main_ControlService extends DyNTS_DiAs_ServiceBase {
11
11
 
12
- protected abstract override botIO_CS: DyNTS_DiAs_IO_ControlService;
13
- protected abstract override getBotIOControlService(): DyNTS_DiAs_IO_ControlService;
12
+ /* protected abstract override botIO_CS: DyNTS_DiAs_IO_ControlService;
13
+ protected abstract override getBotIOControlService(): DyNTS_DiAs_IO_ControlService; */
14
14
 
15
15
  /* override async start(issuer: string): Promise<void> {
16
16
  try {
@@ -8,6 +8,7 @@ import { DyNTS_global_settings } from '../../../_collections/global-settings.con
8
8
  import { DyNTS_OAI_GPT_Message } from '../../open-ai/_models/interfaces/oai-gpt-message.interface';
9
9
  import { DyNTS_OAI_GPT_Message_Role } from '../../open-ai/_enums/oai-gpt-message-role.enum';
10
10
  import { DyNTS_DiAs_Util } from '../_collections/dias.util';
11
+ import { DyNTS_DiAs_IO_ControlService } from './dias-io.control-service';
11
12
 
12
13
 
13
14
  export abstract class DyNTS_DiAs_ServiceBase extends DyNTS_DiBo_Main_ControlService {
@@ -17,10 +18,15 @@ export abstract class DyNTS_DiAs_ServiceBase extends DyNTS_DiBo_Main_ControlServ
17
18
  }
18
19
  readonly llmChat_CS: DyNTS_OAI_LLMChat_ServiceBase = this.getLLMChatControlService();
19
20
 
21
+ protected abstract override botIO_CS: DyNTS_DiAs_IO_ControlService;
22
+ protected abstract override getBotIOControlService(): DyNTS_DiAs_IO_ControlService;
23
+
20
24
  defaultSystemPrompt: string = DyNTS_DiAs_global_settings.defaultSystemPrompt;
21
25
 
22
- protected constructor() {
23
- super();
26
+ protected constructor(
27
+ setupAutomatically?: boolean,
28
+ ) {
29
+ super(setupAutomatically);
24
30
 
25
31
  DyNTS_global_settings.dias_settings ??= DyNTS_DiAs_global_settings;
26
32
 
@@ -28,9 +34,10 @@ export abstract class DyNTS_DiAs_ServiceBase extends DyNTS_DiBo_Main_ControlServ
28
34
  }
29
35
 
30
36
  async gatherDiscordMessagesForMessage(message: Message, limit: number = 100): Promise<Message[]> {
31
- const channel = message.channel;
32
- const userId = message.author.id;
37
+ return this.gatherDiscordMessagesForChannel(message.channel as TextChannel, message.author.id, limit);
38
+ }
33
39
 
40
+ async gatherDiscordMessagesForChannel(channel: TextChannel, userId: string, limit: number = 100): Promise<Message[]> {
34
41
  const messages: Message[] = await channel.messages.fetch({ limit: limit }).then(
35
42
  messages => messages.filter(
36
43
  msg => !DyNTS_DiAs_global_settings.skipConversationMessagesFlags.some(
@@ -54,13 +61,13 @@ export abstract class DyNTS_DiAs_ServiceBase extends DyNTS_DiBo_Main_ControlServ
54
61
  message: Message,
55
62
  issuer: string,
56
63
  ): Promise<DyNTS_OAI_GPT_Message[]> {
57
-
58
- const messages = await this.gatherDiscordMessagesForMessage(message);
64
+ const messages: Message[] = await this.gatherDiscordMessagesForMessage(message);
59
65
 
60
66
  return DyNTS_DiAs_Util.convertDiscordMessagesToOAIConversation({
61
67
  messages: messages,
62
68
  botClientId: this.botClientId,
63
69
  botDisplayName: this.botDisplayName,
70
+ issuer: issuer,
64
71
  });
65
72
  }
66
73
  }
@@ -36,7 +36,7 @@ export const DyNTS_DiBo_global_settings: DyNTS_DiBo_Global_Settings = {
36
36
  },
37
37
 
38
38
  channelSettings: {
39
- reportChannelName: 'bot-report',
39
+ reportChannelName: 'bot-reports',
40
40
 
41
41
  defaultChannels: [
42
42
  'bot-help',
@@ -19,7 +19,7 @@ export class DyNTS_DiBo_Operations_Util {
19
19
  )
20
20
 
21
21
  if (!channel) {
22
- DyFM_Log.error('No text channel found')
22
+ DyFM_Log.error(`No text channel found with name "${name}"`)
23
23
  return
24
24
  }
25
25
 
@@ -30,7 +30,7 @@ export class DyNTS_DiBo_Operations_Util {
30
30
  const channel = this.findChannelByName(channels, name)
31
31
 
32
32
  if (!channel.isTextBased()) {
33
- throw new Error('Channel is not text based')
33
+ throw new Error(`Channel is not text based with name "${name}"`)
34
34
  }
35
35
 
36
36
  return channel as TextChannel
@@ -40,7 +40,7 @@ export class DyNTS_DiBo_Operations_Util {
40
40
  const channel = this.findChannelByName(channels, name)
41
41
 
42
42
  if (!channel.isVoiceBased()) {
43
- throw new Error('Channel is not voice based')
43
+ throw new Error(`Channel is not voice based with name "${name}"`)
44
44
  }
45
45
 
46
46
  return channel as VoiceChannel
@@ -55,7 +55,7 @@ export class DyNTS_DiBo_Operations_Util {
55
55
  const reportMessage = `${client.user?.username} report for duty! ` +
56
56
  `(v${DyNTS_global_settings.systemVersion} ${DyNTS_global_settings.env_settings?.environment})`;
57
57
 
58
- if (lastReportMessage.content === reportMessage) {
58
+ if (lastReportMessage?.content === reportMessage) {
59
59
  await this.deleteMessage(lastReportMessage).catch((error) => {
60
60
  DyFM_Log.error('Failed to delete message', error);
61
61
  });
@@ -78,7 +78,7 @@ export class DyNTS_DiBo_Operations_Util {
78
78
  channel.send(message)
79
79
  DyFM_Log.success('Message sent to channel', channel.name)
80
80
  } else {
81
- DyFM_Log.error('Channel is not text based')
81
+ DyFM_Log.error(`Channel is not text based "${channelName}"`)
82
82
  }
83
83
  }
84
84
 
@@ -140,7 +140,7 @@ export class DyNTS_DiBo_Operations_Util {
140
140
  const channel = this.findChannelByName(guild.channels, channelName)
141
141
 
142
142
  if (!channel?.isTextBased()) {
143
- DyFM_Log.error('Channel is not text based')
143
+ DyFM_Log.error(`Channel is not text based "${channelName}"`)
144
144
  return
145
145
  }
146
146
 
@@ -232,7 +232,7 @@ export class DyNTS_DiBo_Operations_Util {
232
232
  const channel = this.findChannelByName(guild.channels, channelName)
233
233
 
234
234
  if (!channel?.isTextBased()) {
235
- DyFM_Log.error('Channel is not text based')
235
+ DyFM_Log.error(`Channel is not text based "${channelName}"`)
236
236
  return []
237
237
  }
238
238
 
@@ -331,7 +331,7 @@ export class DyNTS_DiBo_Operations_Util {
331
331
  const channel = this.findChannelByName(guild.channels, channelName)
332
332
 
333
333
  if (!channel?.isTextBased()) {
334
- DyFM_Log.error('Channel is not text based')
334
+ DyFM_Log.error(`Channel is not text based with name "${channelName}"`)
335
335
  return
336
336
  }
337
337
 
@@ -347,7 +347,7 @@ export class DyNTS_DiBo_Operations_Util {
347
347
  const channel = this.findChannelByName(guild.channels, channelName)
348
348
 
349
349
  if (!channel?.isTextBased()) {
350
- DyFM_Log.error('Channel is not text based')
350
+ DyFM_Log.error(`Channel is not text based with name "${channelName}"`)
351
351
  return
352
352
  }
353
353
 
@@ -369,6 +369,6 @@ export class DyNTS_DiBo_Operations_Util {
369
369
  DyFM_Log.error('Failed to delete message', error);
370
370
  });
371
371
 
372
- DyFM_Log.success('Message deleted', message.id);
372
+ DyFM_Log.success('Message deleted:', message.content);
373
373
  }
374
374
  }
@@ -16,11 +16,11 @@ export abstract class DyNTS_DiBo_Commands_ControlService extends DyNTS_Singleton
16
16
  }
17
17
 
18
18
  protected abstract getMainDiscordBotControlService(): DyNTS_DiBo_Main_ControlService;
19
- protected readonly mainDiscordBot_CS: DyNTS_DiBo_Main_ControlService =
19
+ protected readonly diAs_CS: DyNTS_DiBo_Main_ControlService =
20
20
  this.getMainDiscordBotControlService();
21
21
 
22
22
  get discordServer(): Guild {
23
- return this.mainDiscordBot_CS?.discordServer;
23
+ return this.diAs_CS?.discordServer;
24
24
  }
25
25
 
26
26
  protected constructor() {
@@ -45,7 +45,7 @@ export abstract class DyNTS_DiBo_Commands_ControlService extends DyNTS_Singleton
45
45
  try {
46
46
  let haveCommandOperator = false;
47
47
  let msg = message.content.replace(
48
- `<@${this.mainDiscordBot_CS.client.user.id}>`, ''
48
+ `<@${this.diAs_CS.client.user.id}>`, ''
49
49
  ).trim();
50
50
 
51
51
  if (!DyNTS_DiBo_global_settings.commandSettings.commandOperator) {
@@ -32,6 +32,8 @@ export abstract class DyNTS_DiBo_IO_ControlService extends DyNTS_SingletonServic
32
32
  protected abstract getCommandsControlService(): DyNTS_DiBo_Commands_ControlService;
33
33
  protected commands_CS: DyNTS_DiBo_Commands_ControlService;
34
34
 
35
+ dontSendErrorReply?: boolean;
36
+
35
37
  /* protected constructor() {
36
38
  super();
37
39
  } */
@@ -86,9 +88,9 @@ export abstract class DyNTS_DiBo_IO_ControlService extends DyNTS_SingletonServic
86
88
  } catch (error) {
87
89
  DyFM_Error.logSimple('❌❌ Error handleNewMessage:', error);
88
90
 
89
- if (DyNTS_DiBo_global_settings.debugLevel >= 1) {
91
+ if (!this.dontSendErrorReply && DyNTS_DiBo_global_settings.debugLevel >= 1) {
90
92
  await message.reply(
91
- `[SYSTEM|ERROR] Error occurred while handling the message:\n` +
93
+ `[SYSTEM|ERROR|${DyNTS_global_settings.systemShortCodeName}|DyNTS-DiBo-IO-H0] Error occurred while handling the message:\n` +
92
94
  DyFM_Error.getAnyMessage(error)
93
95
  ).catch(error => {
94
96
  DyFM_Error.logSimple('❌❌ Error sending message to report channel:', error);
@@ -185,8 +187,8 @@ export abstract class DyNTS_DiBo_IO_ControlService extends DyNTS_SingletonServic
185
187
  }
186
188
 
187
189
  if (
188
- isPinged &&
189
- !isOwnMessage &&
190
+ //isPinged &&
191
+ //!isOwnMessage && vótmá
190
192
  message.author.bot &&
191
193
  !DyNTS_DiBo_global_settings.allowBotsInteractEachOther
192
194
  ) {
@@ -198,7 +200,7 @@ export abstract class DyNTS_DiBo_IO_ControlService extends DyNTS_SingletonServic
198
200
  return false;
199
201
  }
200
202
 
201
- if (!isPinged && !isOwnMessage && !isInDefaultChannel) {
203
+ if (!isPinged /* && !isOwnMessage vótmá */ && !isInDefaultChannel) {
202
204
  if (DyNTS_DiBo_global_settings.debugLevel >= 2) {
203
205
  DyFM_Log.warn('🚫 not for me; not pinged, and not my message, and not in default channel')
204
206
  }
@@ -81,7 +81,7 @@ export abstract class DyNTS_DiBo_Main_ControlService extends DyNTS_SingletonServ
81
81
  protected debugLog = false;
82
82
 
83
83
  protected constructor(
84
- dontSetupAutomatically?: boolean,
84
+ setupAutomatically?: boolean,
85
85
  ) {
86
86
  super();
87
87
 
@@ -102,8 +102,9 @@ export abstract class DyNTS_DiBo_Main_ControlService extends DyNTS_SingletonServ
102
102
  intents: DyNTS_global_settings.bot_settings.intents,
103
103
  partials: DyNTS_global_settings.bot_settings.partials,
104
104
  })
105
+ DyFM_Log.success('Discord client initialized');
105
106
 
106
- if (!dontSetupAutomatically) {
107
+ if (setupAutomatically) {
107
108
  this.setup('system-init');
108
109
  }
109
110
  }
@@ -172,6 +173,11 @@ export abstract class DyNTS_DiBo_Main_ControlService extends DyNTS_SingletonServ
172
173
  DyNTS_GlobalService.globalErrorHandler(error);
173
174
  reject(error);
174
175
  });
176
+ if (this.debugLog) {
177
+ DyFM_Log.info('Error event registered\n\n', new Error().stack);
178
+ } else {
179
+ DyFM_Log.info('Error event registered');
180
+ }
175
181
 
176
182
  this.client.on('ready', async () => {
177
183
  if (DyNTS_DiBo_global_settings.debugLevel >= 1) {
@@ -193,6 +199,11 @@ export abstract class DyNTS_DiBo_Main_ControlService extends DyNTS_SingletonServ
193
199
  DyFM_Log.success('Discord Bot setup complete')
194
200
  resolve();
195
201
  });
202
+ if (this.debugLog) {
203
+ DyFM_Log.info('Ready event registered\n\n', new Error().stack);
204
+ } else {
205
+ DyFM_Log.info('Ready event registered');
206
+ }
196
207
 
197
208
  this.client.on('messageCreate', (message: Message) => {
198
209
  try {
@@ -201,6 +212,11 @@ export abstract class DyNTS_DiBo_Main_ControlService extends DyNTS_SingletonServ
201
212
  DyFM_Log.error('Error handling new message:', error);
202
213
  }
203
214
  });
215
+ if (this.debugLog) {
216
+ DyFM_Log.info('Message create event registered\n\n', new Error().stack);
217
+ } else {
218
+ DyFM_Log.info('Message create event registered');
219
+ }
204
220
 
205
221
  process.on('exit', () => {
206
222
  try {
@@ -214,6 +230,11 @@ export abstract class DyNTS_DiBo_Main_ControlService extends DyNTS_SingletonServ
214
230
  DyFM_Log.error('Error sending message to report channel:', error);
215
231
  }
216
232
  });
233
+ if (this.debugLog) {
234
+ DyFM_Log.info('Exit event registered\n\n', new Error().stack);
235
+ } else {
236
+ DyFM_Log.info('Exit event registered');
237
+ }
217
238
 
218
239
  this.client.login(DyNTS_global_settings.env_settings.discord.token).catch((error) => {
219
240
  reject(error);
@@ -20,7 +20,7 @@ describe('| DyNTS_SocketServer_Mock', () => {
20
20
 
21
21
  expect(params).toBeInstanceOf(DyNTS_SocketServerService_Params);
22
22
  expect(params.name).toBe('test');
23
- expect(params.port).toBe(9393);
23
+ expect(params.port).toBe(19393); // Updated from 9393 to 19393
24
24
  });
25
25
 
26
26
  it('| should return an empty array for incoming events', () => {
@@ -1,5 +1,6 @@
1
1
  import { DyFM_SocketEvent } from '@futdevpro/fsm-dynamo/socket';
2
2
  import { Socket } from 'socket.io';
3
+ import * as net from 'net';
3
4
 
4
5
  import {
5
6
  DyNTS_SocketPresence
@@ -9,8 +10,17 @@ import {
9
10
  } from '../socket/_models/socket-server-service-params.control-model';
10
11
  import { DyNTS_SocketServerService } from '../socket/_services/socket-server.service';
11
12
 
12
-
13
-
13
+ /**
14
+ * Utility function to find an available port starting from a base port
15
+ */
16
+ const findAvailablePort = (basePort: number): number => {
17
+ return basePort; // For now, return the base port, but this could be enhanced
18
+ };
19
+
20
+ /**
21
+ * Mock Socket Server Service for testing purposes
22
+ * Uses a non-privileged port to avoid EACCES errors on Windows
23
+ */
14
24
  export class DyNTS_SocketServer_Mock extends
15
25
  DyNTS_SocketServerService<DyNTS_SocketPresence> {
16
26
 
@@ -21,7 +31,7 @@ export class DyNTS_SocketServer_Mock extends
21
31
  getServiceParams(): DyNTS_SocketServerService_Params<any> {
22
32
  return new DyNTS_SocketServerService_Params({
23
33
  name: 'test',
24
- port: 9393,
34
+ port: findAvailablePort(19393), // Changed from 9393 to 19393 (non-privileged port)
25
35
  });
26
36
  }
27
37
 
@@ -1,9 +1,9 @@
1
1
  import { Request, Response } from 'express';
2
+ import { cryptoJs } from 'crypto-js';
2
3
  import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
3
4
  import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
4
5
  import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
5
6
  import { DyNTS_OAuth2_AuthService } from './oauth2.auth-service';
6
- import { randomBytes } from 'crypto';
7
7
 
8
8
  /**
9
9
  * OAuth2 Control Service implementation
@@ -528,7 +528,8 @@ export class DyNTS_OAuth2_ControlService extends DyNTS_SingletonService {
528
528
  * @returns The generated authorization code
529
529
  */
530
530
  private async generateAuthorizationCode(clientId: string, scope: string): Promise<string> {
531
- const code = randomBytes(32).toString('hex');
531
+ //const code = randomBytes(32).toString('hex');
532
+ const code = cryptoJs.lib.WordArray.random(32).toString();
532
533
  const expiresAt = Date.now() + 600000; // 10 minutes expiration
533
534
 
534
535
  this.authorizationCodes.set(code, {
@@ -547,7 +548,8 @@ export class DyNTS_OAuth2_ControlService extends DyNTS_SingletonService {
547
548
  * @returns The generated access token
548
549
  */
549
550
  private async generateAccessToken(clientId: string, scope: string): Promise<string> {
550
- const token = randomBytes(32).toString('hex');
551
+ //const token = randomBytes(32).toString('hex');
552
+ const token = cryptoJs.lib.WordArray.random(32).toString();
551
553
  const expiresAt = Date.now() + 3600000; // 1 hour expiration
552
554
 
553
555
  this.accessTokens.set(token, {
@@ -565,7 +567,8 @@ export class DyNTS_OAuth2_ControlService extends DyNTS_SingletonService {
565
567
  * @returns The generated refresh token
566
568
  */
567
569
  private async generateRefreshToken(clientId: string): Promise<string> {
568
- const token = randomBytes(32).toString('hex');
570
+ //const token = randomBytes(32).toString('hex');
571
+ const token = cryptoJs.lib.WordArray.random(32).toString();
569
572
 
570
573
  this.refreshTokens.set(token, {
571
574
  clientId,