@herdctl/discord 1.1.1 → 1.2.0

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 (134) hide show
  1. package/README.md +14 -1
  2. package/dist/__tests__/attachments.test.d.ts +8 -0
  3. package/dist/__tests__/attachments.test.d.ts.map +1 -0
  4. package/dist/__tests__/attachments.test.js +439 -0
  5. package/dist/__tests__/attachments.test.js.map +1 -0
  6. package/dist/__tests__/discord-connector.test.js +4 -1
  7. package/dist/__tests__/discord-connector.test.js.map +1 -1
  8. package/dist/__tests__/embeds.test.d.ts +2 -0
  9. package/dist/__tests__/embeds.test.d.ts.map +1 -0
  10. package/dist/__tests__/embeds.test.js +47 -0
  11. package/dist/__tests__/embeds.test.js.map +1 -0
  12. package/dist/__tests__/logger.test.js +4 -1
  13. package/dist/__tests__/logger.test.js.map +1 -1
  14. package/dist/__tests__/manager.test.js +1193 -28
  15. package/dist/__tests__/manager.test.js.map +1 -1
  16. package/dist/__tests__/message-normalizer.test.d.ts +2 -0
  17. package/dist/__tests__/message-normalizer.test.d.ts.map +1 -0
  18. package/dist/__tests__/message-normalizer.test.js +83 -0
  19. package/dist/__tests__/message-normalizer.test.js.map +1 -0
  20. package/dist/__tests__/runtime-parity.test.d.ts +2 -0
  21. package/dist/__tests__/runtime-parity.test.d.ts.map +1 -0
  22. package/dist/__tests__/runtime-parity.test.js +157 -0
  23. package/dist/__tests__/runtime-parity.test.js.map +1 -0
  24. package/dist/auto-mode-handler.d.ts.map +1 -1
  25. package/dist/auto-mode-handler.js +9 -0
  26. package/dist/auto-mode-handler.js.map +1 -1
  27. package/dist/commands/__tests__/command-manager.test.js +63 -3
  28. package/dist/commands/__tests__/command-manager.test.js.map +1 -1
  29. package/dist/commands/__tests__/extended-commands.test.d.ts +2 -0
  30. package/dist/commands/__tests__/extended-commands.test.d.ts.map +1 -0
  31. package/dist/commands/__tests__/extended-commands.test.js +159 -0
  32. package/dist/commands/__tests__/extended-commands.test.js.map +1 -0
  33. package/dist/commands/__tests__/help.test.js +5 -6
  34. package/dist/commands/__tests__/help.test.js.map +1 -1
  35. package/dist/commands/__tests__/reset.test.js +14 -6
  36. package/dist/commands/__tests__/reset.test.js.map +1 -1
  37. package/dist/commands/__tests__/status.test.js +27 -25
  38. package/dist/commands/__tests__/status.test.js.map +1 -1
  39. package/dist/commands/cancel.d.ts +3 -0
  40. package/dist/commands/cancel.d.ts.map +1 -0
  41. package/dist/commands/cancel.js +7 -0
  42. package/dist/commands/cancel.js.map +1 -0
  43. package/dist/commands/command-manager.d.ts +4 -1
  44. package/dist/commands/command-manager.d.ts.map +1 -1
  45. package/dist/commands/command-manager.js +65 -3
  46. package/dist/commands/command-manager.js.map +1 -1
  47. package/dist/commands/config.d.ts +3 -0
  48. package/dist/commands/config.d.ts.map +1 -0
  49. package/dist/commands/config.js +33 -0
  50. package/dist/commands/config.js.map +1 -0
  51. package/dist/commands/help.d.ts +1 -1
  52. package/dist/commands/help.d.ts.map +1 -1
  53. package/dist/commands/help.js +26 -12
  54. package/dist/commands/help.js.map +1 -1
  55. package/dist/commands/index.d.ts +12 -1
  56. package/dist/commands/index.d.ts.map +1 -1
  57. package/dist/commands/index.js +12 -1
  58. package/dist/commands/index.js.map +1 -1
  59. package/dist/commands/new.d.ts +3 -0
  60. package/dist/commands/new.d.ts.map +1 -0
  61. package/dist/commands/new.js +22 -0
  62. package/dist/commands/new.js.map +1 -0
  63. package/dist/commands/ping.d.ts +3 -0
  64. package/dist/commands/ping.d.ts.map +1 -0
  65. package/dist/commands/ping.js +22 -0
  66. package/dist/commands/ping.js.map +1 -0
  67. package/dist/commands/reset.d.ts +1 -1
  68. package/dist/commands/reset.d.ts.map +1 -1
  69. package/dist/commands/reset.js +13 -13
  70. package/dist/commands/reset.js.map +1 -1
  71. package/dist/commands/retry.d.ts +3 -0
  72. package/dist/commands/retry.d.ts.map +1 -0
  73. package/dist/commands/retry.js +25 -0
  74. package/dist/commands/retry.js.map +1 -0
  75. package/dist/commands/session.d.ts +3 -0
  76. package/dist/commands/session.d.ts.map +1 -0
  77. package/dist/commands/session.js +47 -0
  78. package/dist/commands/session.js.map +1 -0
  79. package/dist/commands/skill.d.ts +3 -0
  80. package/dist/commands/skill.d.ts.map +1 -0
  81. package/dist/commands/skill.js +44 -0
  82. package/dist/commands/skill.js.map +1 -0
  83. package/dist/commands/skills.d.ts +3 -0
  84. package/dist/commands/skills.d.ts.map +1 -0
  85. package/dist/commands/skills.js +30 -0
  86. package/dist/commands/skills.js.map +1 -0
  87. package/dist/commands/status.d.ts +1 -1
  88. package/dist/commands/status.d.ts.map +1 -1
  89. package/dist/commands/status.js +25 -18
  90. package/dist/commands/status.js.map +1 -1
  91. package/dist/commands/stop.d.ts +3 -0
  92. package/dist/commands/stop.d.ts.map +1 -0
  93. package/dist/commands/stop.js +25 -0
  94. package/dist/commands/stop.js.map +1 -0
  95. package/dist/commands/tools.d.ts +3 -0
  96. package/dist/commands/tools.d.ts.map +1 -0
  97. package/dist/commands/tools.js +30 -0
  98. package/dist/commands/tools.js.map +1 -0
  99. package/dist/commands/types.d.ts +71 -1
  100. package/dist/commands/types.d.ts.map +1 -1
  101. package/dist/commands/usage.d.ts +3 -0
  102. package/dist/commands/usage.d.ts.map +1 -0
  103. package/dist/commands/usage.js +58 -0
  104. package/dist/commands/usage.js.map +1 -0
  105. package/dist/discord-connector.d.ts +10 -1
  106. package/dist/discord-connector.d.ts.map +1 -1
  107. package/dist/discord-connector.js +153 -8
  108. package/dist/discord-connector.js.map +1 -1
  109. package/dist/embeds.d.ts +47 -0
  110. package/dist/embeds.d.ts.map +1 -0
  111. package/dist/embeds.js +121 -0
  112. package/dist/embeds.js.map +1 -0
  113. package/dist/index.d.ts +6 -2
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +3 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/manager.d.ts +53 -24
  118. package/dist/manager.d.ts.map +1 -1
  119. package/dist/manager.js +1031 -217
  120. package/dist/manager.js.map +1 -1
  121. package/dist/mention-handler.d.ts.map +1 -1
  122. package/dist/mention-handler.js +27 -0
  123. package/dist/mention-handler.js.map +1 -1
  124. package/dist/message-normalizer.d.ts +40 -0
  125. package/dist/message-normalizer.d.ts.map +1 -0
  126. package/dist/message-normalizer.js +99 -0
  127. package/dist/message-normalizer.js.map +1 -0
  128. package/dist/types.d.ts +80 -3
  129. package/dist/types.d.ts.map +1 -1
  130. package/dist/voice-transcriber.d.ts +31 -0
  131. package/dist/voice-transcriber.d.ts.map +1 -0
  132. package/dist/voice-transcriber.js +44 -0
  133. package/dist/voice-transcriber.js.map +1 -0
  134. package/package.json +3 -3
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=message-normalizer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-normalizer.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/message-normalizer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { normalizeDiscordMessage } from "../message-normalizer.js";
3
+ describe("normalizeDiscordMessage", () => {
4
+ it("extracts assistant final content and tool uses", () => {
5
+ const events = normalizeDiscordMessage({
6
+ type: "assistant",
7
+ message: {
8
+ id: "msg-1",
9
+ stop_reason: "end_turn",
10
+ content: [
11
+ { type: "text", text: "Done." },
12
+ { type: "tool_use", id: "tool-1", name: "Bash", input: { command: "ls -la" } },
13
+ ],
14
+ },
15
+ });
16
+ expect(events).toHaveLength(1);
17
+ expect(events[0]).toMatchObject({
18
+ kind: "assistant_final",
19
+ content: "Done.",
20
+ messageId: "msg-1",
21
+ });
22
+ if (events[0].kind === "assistant_final") {
23
+ expect(events[0].toolUses).toHaveLength(1);
24
+ expect(events[0].toolUses[0].name).toBe("Bash");
25
+ }
26
+ });
27
+ it("extracts stream_event text delta", () => {
28
+ const events = normalizeDiscordMessage({
29
+ type: "stream_event",
30
+ event: {
31
+ type: "content_block_delta",
32
+ delta: { type: "text_delta", text: "hello " },
33
+ },
34
+ });
35
+ expect(events).toEqual([{ kind: "assistant_delta", delta: "hello " }]);
36
+ });
37
+ it("extracts tool results from top-level tool_use_result", () => {
38
+ const events = normalizeDiscordMessage({
39
+ type: "user",
40
+ tool_use_result: "output text",
41
+ });
42
+ expect(events).toHaveLength(1);
43
+ expect(events[0].kind).toBe("tool_results");
44
+ if (events[0].kind === "tool_results") {
45
+ expect(events[0].results).toHaveLength(1);
46
+ expect(events[0].results[0]).toMatchObject({ output: "output text", isError: false });
47
+ }
48
+ });
49
+ it("normalizes tool_progress and auth_status", () => {
50
+ const toolProgress = normalizeDiscordMessage({
51
+ type: "tool_progress",
52
+ tool_name: "Bash",
53
+ });
54
+ expect(toolProgress).toEqual([{ kind: "tool_progress", content: "Tool Bash in progress" }]);
55
+ const auth = normalizeDiscordMessage({
56
+ type: "auth_status",
57
+ output: ["Refreshing token", "Retrying..."],
58
+ });
59
+ expect(auth).toEqual([
60
+ { kind: "auth_status", content: "Refreshing token\nRetrying...", isError: false },
61
+ ]);
62
+ });
63
+ it("produces equivalent result events for SDK and CLI-style result payloads", () => {
64
+ const sdkResult = normalizeDiscordMessage({
65
+ type: "result",
66
+ result: "All done",
67
+ is_error: false,
68
+ duration_ms: 1200,
69
+ num_turns: 2,
70
+ usage: { input_tokens: 100, output_tokens: 50 },
71
+ });
72
+ const cliSyntheticResult = normalizeDiscordMessage({
73
+ type: "result",
74
+ result: "All done",
75
+ is_error: false,
76
+ duration_ms: 1200,
77
+ num_turns: 2,
78
+ usage: { input_tokens: 100, output_tokens: 50 },
79
+ });
80
+ expect(sdkResult).toEqual(cliSyntheticResult);
81
+ });
82
+ });
83
+ //# sourceMappingURL=message-normalizer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-normalizer.test.js","sourceRoot":"","sources":["../../src/__tests__/message-normalizer.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime-parity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-parity.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/runtime-parity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { normalizeDiscordMessage } from "../message-normalizer.js";
3
+ function renderTimeline(messages) {
4
+ const lines = [];
5
+ for (const message of messages) {
6
+ for (const event of normalizeDiscordMessage(message)) {
7
+ switch (event.kind) {
8
+ case "assistant_delta":
9
+ lines.push(`delta:${event.delta}`);
10
+ break;
11
+ case "assistant_final":
12
+ if (event.content) {
13
+ lines.push(`answer:${event.content}`);
14
+ }
15
+ if (event.toolUses.length > 0) {
16
+ lines.push(`tools:${event.toolUses.map((t) => t.name).join(",")}`);
17
+ }
18
+ break;
19
+ case "tool_results":
20
+ for (const result of event.results) {
21
+ lines.push(`tool_result:${result.isError ? "error" : "ok"}:${result.output.slice(0, 40)}`);
22
+ }
23
+ break;
24
+ case "system_status":
25
+ lines.push(`system:${event.status}`);
26
+ break;
27
+ case "tool_progress":
28
+ lines.push(`progress:${event.content}`);
29
+ break;
30
+ case "auth_status":
31
+ lines.push(`auth:${event.isError ? "error" : "ok"}:${event.content}`);
32
+ break;
33
+ case "result":
34
+ lines.push(`result:${event.isError ? "error" : "ok"}:${event.resultText ?? ""}`);
35
+ break;
36
+ case "error":
37
+ lines.push(`error:${event.message}`);
38
+ break;
39
+ }
40
+ }
41
+ }
42
+ return lines;
43
+ }
44
+ const fixtures = [
45
+ {
46
+ name: "tool-heavy flow",
47
+ sdk: [
48
+ {
49
+ type: "assistant",
50
+ message: {
51
+ id: "a1",
52
+ stop_reason: null,
53
+ content: [{ type: "tool_use", id: "t1", name: "Bash", input: { command: "ls -la" } }],
54
+ },
55
+ },
56
+ {
57
+ type: "user",
58
+ message: {
59
+ content: [{ type: "tool_result", tool_use_id: "t1", content: "file-a\nfile-b" }],
60
+ },
61
+ },
62
+ {
63
+ type: "assistant",
64
+ message: {
65
+ id: "a1",
66
+ stop_reason: "end_turn",
67
+ content: [{ type: "text", text: "Done with listing." }],
68
+ },
69
+ },
70
+ { type: "result", result: "Done with listing.", is_error: false },
71
+ ],
72
+ cli: [
73
+ {
74
+ type: "assistant",
75
+ message: {
76
+ id: "a1",
77
+ stop_reason: null,
78
+ content: [{ type: "tool_use", id: "t1", name: "Bash", input: { command: "ls -la" } }],
79
+ },
80
+ },
81
+ { type: "user", tool_use_result: "file-a\nfile-b" },
82
+ {
83
+ type: "assistant",
84
+ message: {
85
+ id: "a1",
86
+ stop_reason: "end_turn",
87
+ content: [{ type: "text", text: "Done with listing." }],
88
+ },
89
+ },
90
+ { type: "result", result: "Done with listing.", is_error: false },
91
+ ],
92
+ },
93
+ {
94
+ name: "streaming answer flow",
95
+ sdk: [
96
+ {
97
+ type: "stream_event",
98
+ event: { type: "content_block_delta", delta: { type: "text_delta", text: "Hello " } },
99
+ },
100
+ {
101
+ type: "stream_event",
102
+ event: { type: "content_block_delta", delta: { type: "text_delta", text: "world" } },
103
+ },
104
+ {
105
+ type: "assistant",
106
+ message: {
107
+ id: "a2",
108
+ stop_reason: "end_turn",
109
+ content: [{ type: "text", text: "Hello world" }],
110
+ },
111
+ },
112
+ { type: "result", result: "Hello world", is_error: false },
113
+ ],
114
+ cli: [
115
+ {
116
+ type: "stream_event",
117
+ event: { type: "content_block_delta", delta: { type: "text_delta", text: "Hello " } },
118
+ },
119
+ {
120
+ type: "stream_event",
121
+ event: { type: "content_block_delta", delta: { type: "text_delta", text: "world" } },
122
+ },
123
+ {
124
+ type: "assistant",
125
+ message: {
126
+ id: "a2",
127
+ stop_reason: "end_turn",
128
+ content: [{ type: "text", text: "Hello world" }],
129
+ },
130
+ },
131
+ { type: "result", result: "Hello world", is_error: false },
132
+ ],
133
+ },
134
+ {
135
+ name: "error/status flow",
136
+ sdk: [
137
+ { type: "tool_progress", tool_name: "Read" },
138
+ { type: "auth_status", output: ["Authenticating"] },
139
+ { type: "auth_status", error: "Token expired" },
140
+ { type: "error", content: "Execution failed" },
141
+ { type: "result", result: "Execution failed", is_error: true },
142
+ ],
143
+ cli: [
144
+ { type: "tool_progress", tool_name: "Read" },
145
+ { type: "auth_status", output: ["Authenticating"] },
146
+ { type: "auth_status", error: "Token expired" },
147
+ { type: "error", message: "Execution failed" },
148
+ { type: "result", result: "Execution failed", is_error: true },
149
+ ],
150
+ },
151
+ ];
152
+ describe("runtime stream parity", () => {
153
+ it.each(fixtures)("produces equivalent visible timeline for $name", (fixture) => {
154
+ expect(renderTimeline(fixture.sdk)).toEqual(renderTimeline(fixture.cli));
155
+ });
156
+ });
157
+ //# sourceMappingURL=runtime-parity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-parity.test.js","sourceRoot":"","sources":["../../src/__tests__/runtime-parity.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-mode-handler.d.ts","sourceRoot":"","sources":["../src/auto-mode-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAEnF;AAMD;;GAEG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EAAE,GACrB;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,YAAY,EAAE,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,qBAAqB,GAAG,IAAI,CAiC9B"}
1
+ {"version":3,"file":"auto-mode-handler.d.ts","sourceRoot":"","sources":["../src/auto-mode-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAM1E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAEnF;AAMD;;GAEG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EAAE,GACrB;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,YAAY,EAAE,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,qBAAqB,GAAG,IAAI,CA0C9B"}
@@ -133,6 +133,15 @@ export function resolveChannelConfig(channelId, guildId, guilds, dmConfig) {
133
133
  }
134
134
  const channelConfig = guildConfig.channels?.find((c) => c.id === channelId);
135
135
  if (!channelConfig) {
136
+ // Fall back to guild-level default mode (e.g., respond to @mentions in any channel)
137
+ if (guildConfig.default_channel_mode) {
138
+ return {
139
+ mode: guildConfig.default_channel_mode,
140
+ contextMessages: DEFAULT_CHANNEL_CONTEXT_MESSAGES,
141
+ isDM: false,
142
+ guildId,
143
+ };
144
+ }
136
145
  return null;
137
146
  }
138
147
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"auto-mode-handler.js","sourceRoot":"","sources":["../src/auto-mode-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,GAE/B,MAAM,eAAe,CAAC;AAqBvB,gFAAgF;AAChF,yDAAyD;AACzD,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAiB;IAC3C,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAiB;IACzC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,QAAiB;IACjE,OAAO,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,gFAAgF;AAChF,2CAA2C;AAC3C,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,MAAsB;IAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,OAAsB,EACtB,MAAsB,EACtB,QAAiB;IAEjB,aAAa;IACb,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,2BAA2B;QAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC;YACzB,eAAe,EAAE,2BAA2B;YAC5C,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,eAAe,EAAE,aAAa,CAAC,gBAAgB;QAC/C,IAAI,EAAE,KAAK;QACX,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"auto-mode-handler.js","sourceRoot":"","sources":["../src/auto-mode-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,GAE/B,MAAM,eAAe,CAAC;AAqBvB,gFAAgF;AAChF,yDAAyD;AACzD,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAiB;IAC3C,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAiB;IACzC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,QAAiB;IACjE,OAAO,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,gFAAgF;AAChF,2CAA2C;AAC3C,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,MAAsB;IAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,OAAsB,EACtB,MAAsB,EACtB,QAAiB;IAEjB,aAAa;IACb,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,2BAA2B;QAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC;YACzB,eAAe,EAAE,2BAA2B;YAC5C,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,oFAAoF;QACpF,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,WAAW,CAAC,oBAAoB;gBACtC,eAAe,EAAE,gCAAgC;gBACjD,IAAI,EAAE,KAAK;gBACX,OAAO;aACR,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,eAAe,EAAE,aAAa,CAAC,gBAAgB;QAC/C,IAAI,EAAE,KAAK;QACX,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -17,6 +17,7 @@ vi.mock("discord.js", async () => {
17
17
  REST: MockREST,
18
18
  Routes: {
19
19
  applicationCommands: (clientId) => `/applications/${clientId}/commands`,
20
+ applicationGuildCommands: (clientId, guildId) => `/applications/${clientId}/guilds/${guildId}/commands`,
20
21
  },
21
22
  };
22
23
  });
@@ -130,8 +131,19 @@ describe("CommandManager", () => {
130
131
  });
131
132
  const commands = manager.getCommands();
132
133
  expect(commands.has("help")).toBe(true);
134
+ expect(commands.has("ping")).toBe(true);
135
+ expect(commands.has("config")).toBe(true);
136
+ expect(commands.has("tools")).toBe(true);
137
+ expect(commands.has("usage")).toBe(true);
138
+ expect(commands.has("skills")).toBe(true);
139
+ expect(commands.has("skill")).toBe(true);
133
140
  expect(commands.has("reset")).toBe(true);
134
141
  expect(commands.has("status")).toBe(true);
142
+ expect(commands.has("new")).toBe(true);
143
+ expect(commands.has("session")).toBe(true);
144
+ expect(commands.has("stop")).toBe(true);
145
+ expect(commands.has("cancel")).toBe(true);
146
+ expect(commands.has("retry")).toBe(true);
135
147
  });
136
148
  });
137
149
  describe("registerCommands", () => {
@@ -150,6 +162,22 @@ describe("CommandManager", () => {
150
162
  body: expect.any(Array),
151
163
  }));
152
164
  });
165
+ it("registers commands at guild scope when configured", async () => {
166
+ const manager = new CommandManager({
167
+ agentName: "test-agent",
168
+ client,
169
+ botToken: "test-token",
170
+ sessionManager,
171
+ getConnectorState: () => connectorState,
172
+ logger,
173
+ commandRegistration: {
174
+ scope: "guild",
175
+ guildId: "guild-123",
176
+ },
177
+ });
178
+ await manager.registerCommands();
179
+ expect(mockRestPut).toHaveBeenCalledWith(expect.stringContaining("/guilds/guild-123/commands"), expect.any(Object));
180
+ });
153
181
  it("logs successful registration", async () => {
154
182
  const manager = new CommandManager({
155
183
  agentName: "test-agent",
@@ -285,9 +313,15 @@ describe("CommandManager", () => {
285
313
  const interaction = createMockInteraction("help");
286
314
  await manager.handleInteraction(interaction);
287
315
  const reply = interaction.reply;
288
- // Help command should include agent name in response
316
+ // Help command should include agent name in embed footer
289
317
  expect(reply).toHaveBeenCalledWith(expect.objectContaining({
290
- content: expect.stringContaining("my-agent"),
318
+ embeds: expect.arrayContaining([
319
+ expect.objectContaining({
320
+ footer: expect.objectContaining({
321
+ text: expect.stringContaining("my-agent"),
322
+ }),
323
+ }),
324
+ ]),
291
325
  }));
292
326
  });
293
327
  });
@@ -303,7 +337,33 @@ describe("CommandManager", () => {
303
337
  });
304
338
  const commands = manager.getCommands();
305
339
  expect(commands).toBeInstanceOf(Map);
306
- expect(commands.size).toBe(3);
340
+ expect(commands.size).toBe(14);
341
+ });
342
+ });
343
+ describe("handleAutocomplete", () => {
344
+ it("responds with skill suggestions", async () => {
345
+ const manager = new CommandManager({
346
+ agentName: "test-agent",
347
+ client,
348
+ botToken: "test-token",
349
+ sessionManager,
350
+ getConnectorState: () => connectorState,
351
+ logger,
352
+ commandActions: {
353
+ listSkills: vi.fn().mockResolvedValue([
354
+ { name: "cloudflare-deploy", description: "Deploy apps to Cloudflare" },
355
+ { name: "pdf", description: "Work with PDF documents" },
356
+ ]),
357
+ },
358
+ });
359
+ const interaction = {
360
+ commandName: "skill",
361
+ options: { getFocused: vi.fn().mockReturnValue("pdf") },
362
+ respond: vi.fn().mockResolvedValue(undefined),
363
+ responded: false,
364
+ };
365
+ await manager.handleAutocomplete(interaction);
366
+ expect(interaction.respond).toHaveBeenCalledWith(expect.arrayContaining([expect.objectContaining({ value: "pdf" })]));
307
367
  });
308
368
  });
309
369
  });
@@ -1 +1 @@
1
- {"version":3,"file":"command-manager.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/command-manager.test.ts"],"names":[],"mappings":"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"}
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=extended-commands.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended-commands.test.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/extended-commands.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,159 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { configCommand } from "../config.js";
3
+ import { newCommand } from "../new.js";
4
+ import { pingCommand } from "../ping.js";
5
+ import { retryCommand } from "../retry.js";
6
+ import { sessionCommand } from "../session.js";
7
+ import { skillCommand } from "../skill.js";
8
+ import { skillsCommand } from "../skills.js";
9
+ import { stopCommand } from "../stop.js";
10
+ import { toolsCommand } from "../tools.js";
11
+ import { usageCommand } from "../usage.js";
12
+ function makeContext() {
13
+ const interaction = {
14
+ channelId: "channel-1",
15
+ reply: vi.fn().mockResolvedValue(undefined),
16
+ options: {
17
+ getString: vi.fn((key) => (key === "name" ? "pdf" : "inspect this file")),
18
+ },
19
+ };
20
+ const sessionManager = {
21
+ getSession: vi.fn().mockResolvedValue({
22
+ sessionId: "session-1234567890abcdefghijkl",
23
+ lastMessageAt: new Date().toISOString(),
24
+ }),
25
+ clearSession: vi.fn().mockResolvedValue(true),
26
+ };
27
+ return {
28
+ interaction,
29
+ client: {},
30
+ agentName: "test-agent",
31
+ sessionManager,
32
+ connectorState: {
33
+ status: "connected",
34
+ connectedAt: new Date().toISOString(),
35
+ disconnectedAt: null,
36
+ reconnectAttempts: 0,
37
+ lastError: null,
38
+ botUser: null,
39
+ rateLimits: {
40
+ totalCount: 0,
41
+ lastRateLimitAt: null,
42
+ isRateLimited: false,
43
+ currentResetTime: 0,
44
+ },
45
+ messageStats: { received: 0, sent: 0, ignored: 0 },
46
+ },
47
+ commandActions: {
48
+ stopRun: vi.fn().mockResolvedValue({ success: true, message: "stopped" }),
49
+ retryRun: vi.fn().mockResolvedValue({ success: true, message: "retried" }),
50
+ runSkill: vi.fn().mockResolvedValue({ success: true, message: "skill started" }),
51
+ listSkills: vi.fn().mockResolvedValue([{ name: "pdf", description: "Work with PDFs" }]),
52
+ getUsage: vi.fn().mockResolvedValue({
53
+ timestamp: new Date().toISOString(),
54
+ numTurns: 2,
55
+ inputTokens: 120,
56
+ outputTokens: 30,
57
+ isError: false,
58
+ }),
59
+ getCumulativeUsage: vi.fn().mockResolvedValue({
60
+ totalRuns: 5,
61
+ totalSuccesses: 4,
62
+ totalFailures: 1,
63
+ totalCostUsd: 0.1234,
64
+ totalInputTokens: 5000,
65
+ totalOutputTokens: 1200,
66
+ totalDurationMs: 45000,
67
+ firstRunAt: new Date(Date.now() - 3600000).toISOString(),
68
+ lastRunAt: new Date().toISOString(),
69
+ }),
70
+ getAgentConfig: vi.fn().mockResolvedValue({
71
+ runtime: "sdk",
72
+ model: "claude-sonnet-4",
73
+ permissionMode: "acceptEdits",
74
+ workingDirectory: "/tmp/project",
75
+ allowedTools: ["Read"],
76
+ deniedTools: [],
77
+ mcpServers: ["filesystem"],
78
+ }),
79
+ getSessionInfo: vi.fn().mockResolvedValue({
80
+ activeJobId: "job-123",
81
+ lastPrompt: "hello",
82
+ }),
83
+ },
84
+ };
85
+ }
86
+ describe("extended commands", () => {
87
+ it("executes /new", async () => {
88
+ const ctx = makeContext();
89
+ await newCommand.execute(ctx);
90
+ expect(ctx.interaction.reply).toHaveBeenCalledOnce();
91
+ });
92
+ it("executes /session", async () => {
93
+ const ctx = makeContext();
94
+ await sessionCommand.execute(ctx);
95
+ expect(ctx.interaction.reply).toHaveBeenCalledOnce();
96
+ });
97
+ it("executes /stop", async () => {
98
+ const ctx = makeContext();
99
+ await stopCommand.execute(ctx);
100
+ expect(ctx.interaction.reply).toHaveBeenCalledOnce();
101
+ });
102
+ it("executes /retry", async () => {
103
+ const ctx = makeContext();
104
+ await retryCommand.execute(ctx);
105
+ expect(ctx.interaction.reply).toHaveBeenCalledOnce();
106
+ });
107
+ it("executes /skills and /skill", async () => {
108
+ const ctx = makeContext();
109
+ await skillsCommand.execute(ctx);
110
+ await skillCommand.execute(ctx);
111
+ expect(ctx.interaction.reply).toHaveBeenCalledTimes(2);
112
+ });
113
+ it("executes /usage, /tools, /config, and /ping", async () => {
114
+ const ctx = makeContext();
115
+ await usageCommand.execute(ctx);
116
+ await toolsCommand.execute(ctx);
117
+ await configCommand.execute(ctx);
118
+ await pingCommand.execute(ctx);
119
+ expect(ctx.interaction.reply).toHaveBeenCalledTimes(4);
120
+ });
121
+ it("/usage shows both last run and cumulative embeds", async () => {
122
+ const ctx = makeContext();
123
+ await usageCommand.execute(ctx);
124
+ const call = ctx.interaction.reply.mock.calls[0][0];
125
+ expect(call.embeds).toHaveLength(2);
126
+ expect(call.embeds[0].title).toBe("Last Run");
127
+ expect(call.embeds[1].title).toBe("Session Totals");
128
+ expect(call.embeds[1].description).toContain("5");
129
+ expect(call.embeds[1].description).toContain("4 ok");
130
+ expect(call.ephemeral).toBe(true);
131
+ });
132
+ it("/usage shows only cumulative when no last run", async () => {
133
+ const ctx = makeContext();
134
+ ctx.commandActions.getUsage = vi.fn().mockResolvedValue(null);
135
+ await usageCommand.execute(ctx);
136
+ const call = ctx.interaction.reply.mock.calls[0][0];
137
+ expect(call.embeds).toHaveLength(1);
138
+ expect(call.embeds[0].title).toBe("Session Totals");
139
+ });
140
+ it("/usage shows empty message when no data", async () => {
141
+ const ctx = makeContext();
142
+ ctx.commandActions.getUsage = vi.fn().mockResolvedValue(null);
143
+ ctx.commandActions.getCumulativeUsage = vi.fn().mockResolvedValue({
144
+ totalRuns: 0,
145
+ totalSuccesses: 0,
146
+ totalFailures: 0,
147
+ totalCostUsd: 0,
148
+ totalInputTokens: 0,
149
+ totalOutputTokens: 0,
150
+ totalDurationMs: 0,
151
+ firstRunAt: "",
152
+ lastRunAt: "",
153
+ });
154
+ await usageCommand.execute(ctx);
155
+ const call = ctx.interaction.reply.mock.calls[0][0];
156
+ expect(call.content).toContain("No usage data");
157
+ });
158
+ });
159
+ //# sourceMappingURL=extended-commands.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended-commands.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/extended-commands.test.ts"],"names":[],"mappings":"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"}