@herdctl/discord 0.0.1

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 (137) hide show
  1. package/dist/__tests__/auto-mode-handler.test.d.ts +2 -0
  2. package/dist/__tests__/auto-mode-handler.test.d.ts.map +1 -0
  3. package/dist/__tests__/auto-mode-handler.test.js +362 -0
  4. package/dist/__tests__/auto-mode-handler.test.js.map +1 -0
  5. package/dist/__tests__/discord-connector.test.d.ts +2 -0
  6. package/dist/__tests__/discord-connector.test.d.ts.map +1 -0
  7. package/dist/__tests__/discord-connector.test.js +958 -0
  8. package/dist/__tests__/discord-connector.test.js.map +1 -0
  9. package/dist/__tests__/error-handler.test.d.ts +2 -0
  10. package/dist/__tests__/error-handler.test.d.ts.map +1 -0
  11. package/dist/__tests__/error-handler.test.js +509 -0
  12. package/dist/__tests__/error-handler.test.js.map +1 -0
  13. package/dist/__tests__/errors.test.d.ts +2 -0
  14. package/dist/__tests__/errors.test.d.ts.map +1 -0
  15. package/dist/__tests__/errors.test.js +152 -0
  16. package/dist/__tests__/errors.test.js.map +1 -0
  17. package/dist/__tests__/logger.test.d.ts +2 -0
  18. package/dist/__tests__/logger.test.d.ts.map +1 -0
  19. package/dist/__tests__/logger.test.js +282 -0
  20. package/dist/__tests__/logger.test.js.map +1 -0
  21. package/dist/__tests__/mention-handler.test.d.ts +2 -0
  22. package/dist/__tests__/mention-handler.test.d.ts.map +1 -0
  23. package/dist/__tests__/mention-handler.test.js +547 -0
  24. package/dist/__tests__/mention-handler.test.js.map +1 -0
  25. package/dist/auto-mode-handler.d.ts +145 -0
  26. package/dist/auto-mode-handler.d.ts.map +1 -0
  27. package/dist/auto-mode-handler.js +211 -0
  28. package/dist/auto-mode-handler.js.map +1 -0
  29. package/dist/commands/__tests__/command-manager.test.d.ts +2 -0
  30. package/dist/commands/__tests__/command-manager.test.d.ts.map +1 -0
  31. package/dist/commands/__tests__/command-manager.test.js +307 -0
  32. package/dist/commands/__tests__/command-manager.test.js.map +1 -0
  33. package/dist/commands/__tests__/help.test.d.ts +2 -0
  34. package/dist/commands/__tests__/help.test.d.ts.map +1 -0
  35. package/dist/commands/__tests__/help.test.js +105 -0
  36. package/dist/commands/__tests__/help.test.js.map +1 -0
  37. package/dist/commands/__tests__/reset.test.d.ts +2 -0
  38. package/dist/commands/__tests__/reset.test.d.ts.map +1 -0
  39. package/dist/commands/__tests__/reset.test.js +140 -0
  40. package/dist/commands/__tests__/reset.test.js.map +1 -0
  41. package/dist/commands/__tests__/status.test.d.ts +2 -0
  42. package/dist/commands/__tests__/status.test.d.ts.map +1 -0
  43. package/dist/commands/__tests__/status.test.js +205 -0
  44. package/dist/commands/__tests__/status.test.js.map +1 -0
  45. package/dist/commands/command-manager.d.ts +66 -0
  46. package/dist/commands/command-manager.d.ts.map +1 -0
  47. package/dist/commands/command-manager.js +191 -0
  48. package/dist/commands/command-manager.js.map +1 -0
  49. package/dist/commands/help.d.ts +8 -0
  50. package/dist/commands/help.d.ts.map +1 -0
  51. package/dist/commands/help.js +27 -0
  52. package/dist/commands/help.js.map +1 -0
  53. package/dist/commands/index.d.ts +12 -0
  54. package/dist/commands/index.d.ts.map +1 -0
  55. package/dist/commands/index.js +13 -0
  56. package/dist/commands/index.js.map +1 -0
  57. package/dist/commands/reset.d.ts +9 -0
  58. package/dist/commands/reset.d.ts.map +1 -0
  59. package/dist/commands/reset.js +28 -0
  60. package/dist/commands/reset.js.map +1 -0
  61. package/dist/commands/status.d.ts +9 -0
  62. package/dist/commands/status.d.ts.map +1 -0
  63. package/dist/commands/status.js +102 -0
  64. package/dist/commands/status.js.map +1 -0
  65. package/dist/commands/types.d.ts +87 -0
  66. package/dist/commands/types.d.ts.map +1 -0
  67. package/dist/commands/types.js +8 -0
  68. package/dist/commands/types.js.map +1 -0
  69. package/dist/discord-connector.d.ts +154 -0
  70. package/dist/discord-connector.d.ts.map +1 -0
  71. package/dist/discord-connector.js +638 -0
  72. package/dist/discord-connector.js.map +1 -0
  73. package/dist/error-handler.d.ts +237 -0
  74. package/dist/error-handler.d.ts.map +1 -0
  75. package/dist/error-handler.js +433 -0
  76. package/dist/error-handler.js.map +1 -0
  77. package/dist/errors.d.ts +61 -0
  78. package/dist/errors.d.ts.map +1 -0
  79. package/dist/errors.js +77 -0
  80. package/dist/errors.js.map +1 -0
  81. package/dist/index.d.ts +34 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +36 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/logger.d.ts +119 -0
  86. package/dist/logger.d.ts.map +1 -0
  87. package/dist/logger.js +198 -0
  88. package/dist/logger.js.map +1 -0
  89. package/dist/mention-handler.d.ts +176 -0
  90. package/dist/mention-handler.d.ts.map +1 -0
  91. package/dist/mention-handler.js +236 -0
  92. package/dist/mention-handler.js.map +1 -0
  93. package/dist/session-manager/__tests__/errors.test.d.ts +2 -0
  94. package/dist/session-manager/__tests__/errors.test.d.ts.map +1 -0
  95. package/dist/session-manager/__tests__/errors.test.js +124 -0
  96. package/dist/session-manager/__tests__/errors.test.js.map +1 -0
  97. package/dist/session-manager/__tests__/session-manager.test.d.ts +2 -0
  98. package/dist/session-manager/__tests__/session-manager.test.d.ts.map +1 -0
  99. package/dist/session-manager/__tests__/session-manager.test.js +517 -0
  100. package/dist/session-manager/__tests__/session-manager.test.js.map +1 -0
  101. package/dist/session-manager/__tests__/types.test.d.ts +2 -0
  102. package/dist/session-manager/__tests__/types.test.d.ts.map +1 -0
  103. package/dist/session-manager/__tests__/types.test.js +169 -0
  104. package/dist/session-manager/__tests__/types.test.js.map +1 -0
  105. package/dist/session-manager/errors.d.ts +58 -0
  106. package/dist/session-manager/errors.d.ts.map +1 -0
  107. package/dist/session-manager/errors.js +70 -0
  108. package/dist/session-manager/errors.js.map +1 -0
  109. package/dist/session-manager/index.d.ts +11 -0
  110. package/dist/session-manager/index.d.ts.map +1 -0
  111. package/dist/session-manager/index.js +12 -0
  112. package/dist/session-manager/index.js.map +1 -0
  113. package/dist/session-manager/session-manager.d.ts +107 -0
  114. package/dist/session-manager/session-manager.d.ts.map +1 -0
  115. package/dist/session-manager/session-manager.js +347 -0
  116. package/dist/session-manager/session-manager.js.map +1 -0
  117. package/dist/session-manager/types.d.ts +167 -0
  118. package/dist/session-manager/types.d.ts.map +1 -0
  119. package/dist/session-manager/types.js +57 -0
  120. package/dist/session-manager/types.js.map +1 -0
  121. package/dist/types.d.ts +323 -0
  122. package/dist/types.d.ts.map +1 -0
  123. package/dist/types.js +8 -0
  124. package/dist/types.js.map +1 -0
  125. package/dist/utils/__tests__/formatting.test.d.ts +2 -0
  126. package/dist/utils/__tests__/formatting.test.d.ts.map +1 -0
  127. package/dist/utils/__tests__/formatting.test.js +571 -0
  128. package/dist/utils/__tests__/formatting.test.js.map +1 -0
  129. package/dist/utils/formatting.d.ts +211 -0
  130. package/dist/utils/formatting.d.ts.map +1 -0
  131. package/dist/utils/formatting.js +305 -0
  132. package/dist/utils/formatting.js.map +1 -0
  133. package/dist/utils/index.d.ts +5 -0
  134. package/dist/utils/index.d.ts.map +1 -0
  135. package/dist/utils/index.js +9 -0
  136. package/dist/utils/index.js.map +1 -0
  137. package/package.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-manager.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/command-manager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=help.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/help.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,105 @@
1
+ import { describe, it, expect, vi } from "vitest";
2
+ import { helpCommand } from "../help.js";
3
+ // =============================================================================
4
+ // Test Fixtures
5
+ // =============================================================================
6
+ function createMockInteraction() {
7
+ return {
8
+ reply: vi.fn().mockResolvedValue(undefined),
9
+ channelId: "channel-123",
10
+ user: {
11
+ id: "user-123",
12
+ username: "TestUser",
13
+ },
14
+ commandName: "help",
15
+ };
16
+ }
17
+ function createMockClient() {
18
+ return {
19
+ user: {
20
+ id: "bot-123",
21
+ username: "TestBot",
22
+ },
23
+ };
24
+ }
25
+ function createMockSessionManager() {
26
+ return {
27
+ agentName: "test-agent",
28
+ getOrCreateSession: vi.fn(),
29
+ touchSession: vi.fn(),
30
+ getSession: vi.fn(),
31
+ clearSession: vi.fn(),
32
+ cleanupExpiredSessions: vi.fn(),
33
+ };
34
+ }
35
+ function createMockConnectorState() {
36
+ return {
37
+ status: "connected",
38
+ connectedAt: new Date().toISOString(),
39
+ disconnectedAt: null,
40
+ reconnectAttempts: 0,
41
+ lastError: null,
42
+ botUser: {
43
+ id: "bot-123",
44
+ username: "TestBot",
45
+ discriminator: "0001",
46
+ },
47
+ rateLimits: {
48
+ totalCount: 0,
49
+ lastRateLimitAt: null,
50
+ isRateLimited: false,
51
+ currentResetTime: 0,
52
+ },
53
+ messageStats: {
54
+ received: 0,
55
+ sent: 0,
56
+ ignored: 0,
57
+ },
58
+ };
59
+ }
60
+ function createMockContext(overrides = {}) {
61
+ return {
62
+ interaction: createMockInteraction(),
63
+ client: createMockClient(),
64
+ agentName: "test-agent",
65
+ sessionManager: createMockSessionManager(),
66
+ connectorState: createMockConnectorState(),
67
+ ...overrides,
68
+ };
69
+ }
70
+ // =============================================================================
71
+ // Tests
72
+ // =============================================================================
73
+ describe("helpCommand", () => {
74
+ it("has correct name and description", () => {
75
+ expect(helpCommand.name).toBe("help");
76
+ expect(helpCommand.description).toBe("Show available commands");
77
+ });
78
+ it("replies with ephemeral help message", async () => {
79
+ const context = createMockContext();
80
+ const interaction = context.interaction;
81
+ await helpCommand.execute(context);
82
+ expect(interaction.reply).toHaveBeenCalledTimes(1);
83
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
84
+ ephemeral: true,
85
+ }));
86
+ });
87
+ it("includes agent name in response", async () => {
88
+ const context = createMockContext({ agentName: "my-custom-agent" });
89
+ const interaction = context.interaction;
90
+ await helpCommand.execute(context);
91
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
92
+ content: expect.stringContaining("my-custom-agent"),
93
+ }));
94
+ });
95
+ it("includes command descriptions in response", async () => {
96
+ const context = createMockContext();
97
+ const interaction = context.interaction;
98
+ await helpCommand.execute(context);
99
+ const call = interaction.reply.mock.calls[0][0];
100
+ expect(call.content).toContain("/help");
101
+ expect(call.content).toContain("/status");
102
+ expect(call.content).toContain("/reset");
103
+ });
104
+ });
105
+ //# sourceMappingURL=help.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/help.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reset.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/reset.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,140 @@
1
+ import { describe, it, expect, vi } from "vitest";
2
+ import { resetCommand } from "../reset.js";
3
+ // =============================================================================
4
+ // Test Fixtures
5
+ // =============================================================================
6
+ function createMockInteraction(channelId = "channel-123") {
7
+ return {
8
+ reply: vi.fn().mockResolvedValue(undefined),
9
+ channelId,
10
+ user: {
11
+ id: "user-123",
12
+ username: "TestUser",
13
+ },
14
+ commandName: "reset",
15
+ };
16
+ }
17
+ function createMockClient() {
18
+ return {
19
+ user: {
20
+ id: "bot-123",
21
+ username: "TestBot",
22
+ },
23
+ };
24
+ }
25
+ function createMockSessionManager() {
26
+ return {
27
+ agentName: "test-agent",
28
+ getOrCreateSession: vi.fn(),
29
+ touchSession: vi.fn(),
30
+ getSession: vi.fn(),
31
+ clearSession: vi.fn(),
32
+ cleanupExpiredSessions: vi.fn(),
33
+ };
34
+ }
35
+ function createMockConnectorState() {
36
+ return {
37
+ status: "connected",
38
+ connectedAt: new Date().toISOString(),
39
+ disconnectedAt: null,
40
+ reconnectAttempts: 0,
41
+ lastError: null,
42
+ botUser: {
43
+ id: "bot-123",
44
+ username: "TestBot",
45
+ discriminator: "0001",
46
+ },
47
+ rateLimits: {
48
+ totalCount: 0,
49
+ lastRateLimitAt: null,
50
+ isRateLimited: false,
51
+ currentResetTime: 0,
52
+ },
53
+ messageStats: {
54
+ received: 0,
55
+ sent: 0,
56
+ ignored: 0,
57
+ },
58
+ };
59
+ }
60
+ function createMockContext(overrides = {}) {
61
+ return {
62
+ interaction: createMockInteraction(),
63
+ client: createMockClient(),
64
+ agentName: "test-agent",
65
+ sessionManager: createMockSessionManager(),
66
+ connectorState: createMockConnectorState(),
67
+ ...overrides,
68
+ };
69
+ }
70
+ // =============================================================================
71
+ // Tests
72
+ // =============================================================================
73
+ describe("resetCommand", () => {
74
+ it("has correct name and description", () => {
75
+ expect(resetCommand.name).toBe("reset");
76
+ expect(resetCommand.description).toBe("Clear conversation context (start fresh session)");
77
+ });
78
+ describe("when session exists", () => {
79
+ it("clears the session", async () => {
80
+ const sessionManager = createMockSessionManager();
81
+ sessionManager.clearSession.mockResolvedValue(true);
82
+ const context = createMockContext({ sessionManager });
83
+ await resetCommand.execute(context);
84
+ expect(sessionManager.clearSession).toHaveBeenCalledWith("channel-123");
85
+ });
86
+ it("replies with confirmation message ephemerally", async () => {
87
+ const sessionManager = createMockSessionManager();
88
+ sessionManager.clearSession.mockResolvedValue(true);
89
+ const context = createMockContext({
90
+ sessionManager,
91
+ agentName: "my-agent",
92
+ });
93
+ const interaction = context.interaction;
94
+ await resetCommand.execute(context);
95
+ expect(interaction.reply).toHaveBeenCalledWith({
96
+ content: expect.stringContaining("my-agent"),
97
+ ephemeral: true,
98
+ });
99
+ expect(interaction.reply).toHaveBeenCalledWith({
100
+ content: expect.stringContaining("cleared"),
101
+ ephemeral: true,
102
+ });
103
+ });
104
+ });
105
+ describe("when no session exists", () => {
106
+ it("replies with no session message", async () => {
107
+ const sessionManager = createMockSessionManager();
108
+ sessionManager.clearSession.mockResolvedValue(false);
109
+ const context = createMockContext({
110
+ sessionManager,
111
+ agentName: "my-agent",
112
+ });
113
+ const interaction = context.interaction;
114
+ await resetCommand.execute(context);
115
+ expect(interaction.reply).toHaveBeenCalledWith({
116
+ content: expect.stringContaining("No active session"),
117
+ ephemeral: true,
118
+ });
119
+ });
120
+ it("still responds ephemerally", async () => {
121
+ const sessionManager = createMockSessionManager();
122
+ sessionManager.clearSession.mockResolvedValue(false);
123
+ const context = createMockContext({ sessionManager });
124
+ const interaction = context.interaction;
125
+ await resetCommand.execute(context);
126
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
127
+ ephemeral: true,
128
+ }));
129
+ });
130
+ });
131
+ it("uses the correct channel ID from interaction", async () => {
132
+ const sessionManager = createMockSessionManager();
133
+ sessionManager.clearSession.mockResolvedValue(true);
134
+ const interaction = createMockInteraction("specific-channel-456");
135
+ const context = createMockContext({ sessionManager, interaction });
136
+ await resetCommand.execute(context);
137
+ expect(sessionManager.clearSession).toHaveBeenCalledWith("specific-channel-456");
138
+ });
139
+ });
140
+ //# sourceMappingURL=reset.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/reset.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=status.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/status.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,205 @@
1
+ import { describe, it, expect, vi } from "vitest";
2
+ import { statusCommand } from "../status.js";
3
+ // =============================================================================
4
+ // Test Fixtures
5
+ // =============================================================================
6
+ function createMockInteraction(channelId = "channel-123") {
7
+ return {
8
+ reply: vi.fn().mockResolvedValue(undefined),
9
+ channelId,
10
+ user: {
11
+ id: "user-123",
12
+ username: "TestUser",
13
+ },
14
+ commandName: "status",
15
+ };
16
+ }
17
+ function createMockClient() {
18
+ return {
19
+ user: {
20
+ id: "bot-123",
21
+ username: "TestBot",
22
+ },
23
+ };
24
+ }
25
+ function createMockSessionManager() {
26
+ return {
27
+ agentName: "test-agent",
28
+ getOrCreateSession: vi.fn(),
29
+ touchSession: vi.fn(),
30
+ getSession: vi.fn(),
31
+ clearSession: vi.fn(),
32
+ cleanupExpiredSessions: vi.fn(),
33
+ };
34
+ }
35
+ function createMockConnectorState(overrides = {}) {
36
+ return {
37
+ status: "connected",
38
+ connectedAt: new Date().toISOString(),
39
+ disconnectedAt: null,
40
+ reconnectAttempts: 0,
41
+ lastError: null,
42
+ botUser: {
43
+ id: "bot-123",
44
+ username: "TestBot",
45
+ discriminator: "0001",
46
+ },
47
+ rateLimits: {
48
+ totalCount: 0,
49
+ lastRateLimitAt: null,
50
+ isRateLimited: false,
51
+ currentResetTime: 0,
52
+ },
53
+ messageStats: {
54
+ received: 0,
55
+ sent: 0,
56
+ ignored: 0,
57
+ },
58
+ ...overrides,
59
+ };
60
+ }
61
+ function createMockContext(overrides = {}) {
62
+ return {
63
+ interaction: createMockInteraction(),
64
+ client: createMockClient(),
65
+ agentName: "test-agent",
66
+ sessionManager: createMockSessionManager(),
67
+ connectorState: createMockConnectorState(),
68
+ ...overrides,
69
+ };
70
+ }
71
+ function createMockSession(sessionId = "test-session-123") {
72
+ return {
73
+ sessionId,
74
+ lastMessageAt: new Date().toISOString(),
75
+ };
76
+ }
77
+ // =============================================================================
78
+ // Tests
79
+ // =============================================================================
80
+ describe("statusCommand", () => {
81
+ it("has correct name and description", () => {
82
+ expect(statusCommand.name).toBe("status");
83
+ expect(statusCommand.description).toBe("Show agent status and session info");
84
+ });
85
+ it("replies ephemerally", async () => {
86
+ const context = createMockContext();
87
+ const interaction = context.interaction;
88
+ await statusCommand.execute(context);
89
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
90
+ ephemeral: true,
91
+ }));
92
+ });
93
+ it("includes agent name in response", async () => {
94
+ const context = createMockContext({ agentName: "my-custom-agent" });
95
+ const interaction = context.interaction;
96
+ await statusCommand.execute(context);
97
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
98
+ content: expect.stringContaining("my-custom-agent"),
99
+ }));
100
+ });
101
+ it("includes connection status in response", async () => {
102
+ const context = createMockContext({
103
+ connectorState: createMockConnectorState({ status: "connected" }),
104
+ });
105
+ const interaction = context.interaction;
106
+ await statusCommand.execute(context);
107
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
108
+ content: expect.stringContaining("connected"),
109
+ }));
110
+ });
111
+ it("includes bot username in response", async () => {
112
+ const context = createMockContext({
113
+ connectorState: createMockConnectorState({
114
+ botUser: {
115
+ id: "bot-123",
116
+ username: "MyBot",
117
+ discriminator: "0001",
118
+ },
119
+ }),
120
+ });
121
+ const interaction = context.interaction;
122
+ await statusCommand.execute(context);
123
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
124
+ content: expect.stringContaining("MyBot"),
125
+ }));
126
+ });
127
+ describe("when session exists", () => {
128
+ it("includes session info in response", async () => {
129
+ const sessionManager = createMockSessionManager();
130
+ const session = createMockSession("discord-test-agent-abc123");
131
+ sessionManager.getSession.mockResolvedValue(session);
132
+ const context = createMockContext({ sessionManager });
133
+ const interaction = context.interaction;
134
+ await statusCommand.execute(context);
135
+ const call = interaction.reply.mock.calls[0][0];
136
+ expect(call.content).toContain("Session ID");
137
+ expect(call.content).toContain("Last Activity");
138
+ });
139
+ it("queries session for correct channel", async () => {
140
+ const sessionManager = createMockSessionManager();
141
+ sessionManager.getSession.mockResolvedValue(null);
142
+ const interaction = createMockInteraction("specific-channel-789");
143
+ const context = createMockContext({ sessionManager, interaction });
144
+ await statusCommand.execute(context);
145
+ expect(sessionManager.getSession).toHaveBeenCalledWith("specific-channel-789");
146
+ });
147
+ });
148
+ describe("when no session exists", () => {
149
+ it("shows no active session message", async () => {
150
+ const sessionManager = createMockSessionManager();
151
+ sessionManager.getSession.mockResolvedValue(null);
152
+ const context = createMockContext({ sessionManager });
153
+ const interaction = context.interaction;
154
+ await statusCommand.execute(context);
155
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
156
+ content: expect.stringContaining("No active session"),
157
+ }));
158
+ });
159
+ });
160
+ describe("connection states", () => {
161
+ it("shows reconnect attempts when > 0", async () => {
162
+ const context = createMockContext({
163
+ connectorState: createMockConnectorState({ reconnectAttempts: 3 }),
164
+ });
165
+ const interaction = context.interaction;
166
+ await statusCommand.execute(context);
167
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
168
+ content: expect.stringContaining("Reconnect Attempts"),
169
+ }));
170
+ });
171
+ it("does not show reconnect attempts when 0", async () => {
172
+ const context = createMockContext({
173
+ connectorState: createMockConnectorState({ reconnectAttempts: 0 }),
174
+ });
175
+ const interaction = context.interaction;
176
+ await statusCommand.execute(context);
177
+ const call = interaction.reply.mock.calls[0][0];
178
+ expect(call.content).not.toContain("Reconnect Attempts");
179
+ });
180
+ it("shows last error when present", async () => {
181
+ const context = createMockContext({
182
+ connectorState: createMockConnectorState({
183
+ lastError: "Connection timeout",
184
+ }),
185
+ });
186
+ const interaction = context.interaction;
187
+ await statusCommand.execute(context);
188
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
189
+ content: expect.stringContaining("Connection timeout"),
190
+ }));
191
+ });
192
+ it("shows uptime when connected", async () => {
193
+ const connectedAt = new Date(Date.now() - 3600000).toISOString(); // 1 hour ago
194
+ const context = createMockContext({
195
+ connectorState: createMockConnectorState({ connectedAt }),
196
+ });
197
+ const interaction = context.interaction;
198
+ await statusCommand.execute(context);
199
+ expect(interaction.reply).toHaveBeenCalledWith(expect.objectContaining({
200
+ content: expect.stringContaining("Uptime"),
201
+ }));
202
+ });
203
+ });
204
+ });
205
+ //# sourceMappingURL=status.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/status.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Command Manager - Handles slash command registration and execution
3
+ *
4
+ * Registers commands per-bot (as application commands) and handles
5
+ * command interactions by routing them to the appropriate handler.
6
+ */
7
+ import { type ChatInputCommandInteraction } from "discord.js";
8
+ import type { SlashCommand, CommandManagerOptions, ICommandManager } from "./types.js";
9
+ /**
10
+ * CommandManager handles slash command registration and execution.
11
+ *
12
+ * Commands are registered per-bot using Discord's REST API. Each agent's
13
+ * bot has its own set of commands.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const commandManager = new CommandManager({
18
+ * agentName: 'my-agent',
19
+ * client: discordClient,
20
+ * botToken: process.env.BOT_TOKEN,
21
+ * sessionManager,
22
+ * getConnectorState: () => connector.getState(),
23
+ * });
24
+ *
25
+ * // Register commands after client is ready
26
+ * await commandManager.registerCommands();
27
+ *
28
+ * // Handle interactions in your interaction handler
29
+ * client.on('interactionCreate', async (interaction) => {
30
+ * if (interaction.isChatInputCommand()) {
31
+ * await commandManager.handleInteraction(interaction);
32
+ * }
33
+ * });
34
+ * ```
35
+ */
36
+ export declare class CommandManager implements ICommandManager {
37
+ private readonly agentName;
38
+ private readonly client;
39
+ private readonly botToken;
40
+ private readonly sessionManager;
41
+ private readonly getConnectorState;
42
+ private readonly logger;
43
+ private readonly commands;
44
+ private readonly errorHandler;
45
+ constructor(options: CommandManagerOptions);
46
+ /**
47
+ * Register all commands with Discord
48
+ *
49
+ * Uses the Discord REST API to register application commands.
50
+ * Commands are registered globally for the bot application.
51
+ * Includes retry logic for transient failures.
52
+ */
53
+ registerCommands(): Promise<void>;
54
+ /**
55
+ * Handle an incoming command interaction
56
+ *
57
+ * Routes the interaction to the appropriate command handler.
58
+ * Provides user-friendly error messages on failure.
59
+ */
60
+ handleInteraction(interaction: ChatInputCommandInteraction): Promise<void>;
61
+ /**
62
+ * Get all registered commands
63
+ */
64
+ getCommands(): ReadonlyMap<string, SlashCommand>;
65
+ }
66
+ //# sourceMappingURL=command-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-manager.d.ts","sourceRoot":"","sources":["../../src/commands/command-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,KAAK,2BAA2B,EAEjC,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EAErB,eAAe,EAEhB,MAAM,YAAY,CAAC;AA8CpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEhC,OAAO,EAAE,qBAAqB;IAqB1C;;;;;;OAMG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDvC;;;;;OAKG;IACG,iBAAiB,CACrB,WAAW,EAAE,2BAA2B,GACvC,OAAO,CAAC,IAAI,CAAC;IAmDhB;;OAEG;IACH,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;CAGjD"}