discord-ops 0.1.0 → 0.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 (169) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +59 -5
  3. package/dist/cli/index.js +31 -13
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/client.d.ts +13 -11
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +65 -25
  8. package/dist/client.js.map +1 -1
  9. package/dist/config/index.d.ts +7 -1
  10. package/dist/config/index.d.ts.map +1 -1
  11. package/dist/config/index.js +18 -3
  12. package/dist/config/index.js.map +1 -1
  13. package/dist/config/schema.d.ts +8 -0
  14. package/dist/config/schema.d.ts.map +1 -1
  15. package/dist/config/schema.js +1 -0
  16. package/dist/config/schema.js.map +1 -1
  17. package/dist/routing/resolver.d.ts +2 -1
  18. package/dist/routing/resolver.d.ts.map +1 -1
  19. package/dist/routing/resolver.js +2 -0
  20. package/dist/routing/resolver.js.map +1 -1
  21. package/dist/server.d.ts.map +1 -1
  22. package/dist/server.js +46 -1
  23. package/dist/server.js.map +1 -1
  24. package/dist/tools/audit/index.d.ts +2 -0
  25. package/dist/tools/audit/index.d.ts.map +1 -0
  26. package/dist/tools/audit/index.js +2 -0
  27. package/dist/tools/audit/index.js.map +1 -0
  28. package/dist/tools/audit/query-audit-log.d.ts +3 -0
  29. package/dist/tools/audit/query-audit-log.d.ts.map +1 -0
  30. package/dist/tools/audit/query-audit-log.js +60 -0
  31. package/dist/tools/audit/query-audit-log.js.map +1 -0
  32. package/dist/tools/channels/create-channel.d.ts.map +1 -1
  33. package/dist/tools/channels/create-channel.js +4 -1
  34. package/dist/tools/channels/create-channel.js.map +1 -1
  35. package/dist/tools/channels/delete-channel.d.ts.map +1 -1
  36. package/dist/tools/channels/delete-channel.js +4 -1
  37. package/dist/tools/channels/delete-channel.js.map +1 -1
  38. package/dist/tools/channels/edit-channel.d.ts.map +1 -1
  39. package/dist/tools/channels/edit-channel.js +4 -1
  40. package/dist/tools/channels/edit-channel.js.map +1 -1
  41. package/dist/tools/channels/get-channel.d.ts.map +1 -1
  42. package/dist/tools/channels/get-channel.js +4 -1
  43. package/dist/tools/channels/get-channel.js.map +1 -1
  44. package/dist/tools/channels/index.d.ts +2 -0
  45. package/dist/tools/channels/index.d.ts.map +1 -1
  46. package/dist/tools/channels/index.js +2 -0
  47. package/dist/tools/channels/index.js.map +1 -1
  48. package/dist/tools/channels/list-channels.d.ts.map +1 -1
  49. package/dist/tools/channels/list-channels.js +4 -1
  50. package/dist/tools/channels/list-channels.js.map +1 -1
  51. package/dist/tools/channels/purge-messages.d.ts +3 -0
  52. package/dist/tools/channels/purge-messages.d.ts.map +1 -0
  53. package/dist/tools/channels/purge-messages.js +41 -0
  54. package/dist/tools/channels/purge-messages.js.map +1 -0
  55. package/dist/tools/channels/set-slowmode.d.ts +3 -0
  56. package/dist/tools/channels/set-slowmode.d.ts.map +1 -0
  57. package/dist/tools/channels/set-slowmode.js +36 -0
  58. package/dist/tools/channels/set-slowmode.js.map +1 -0
  59. package/dist/tools/guilds/get-guild.d.ts.map +1 -1
  60. package/dist/tools/guilds/get-guild.js +4 -1
  61. package/dist/tools/guilds/get-guild.js.map +1 -1
  62. package/dist/tools/guilds/list-guilds.d.ts.map +1 -1
  63. package/dist/tools/guilds/list-guilds.js +11 -4
  64. package/dist/tools/guilds/list-guilds.js.map +1 -1
  65. package/dist/tools/health-check.d.ts.map +1 -1
  66. package/dist/tools/health-check.js +15 -2
  67. package/dist/tools/health-check.js.map +1 -1
  68. package/dist/tools/index.d.ts.map +1 -1
  69. package/dist/tools/index.js +47 -0
  70. package/dist/tools/index.js.map +1 -1
  71. package/dist/tools/members/get-member.d.ts.map +1 -1
  72. package/dist/tools/members/get-member.js +4 -1
  73. package/dist/tools/members/get-member.js.map +1 -1
  74. package/dist/tools/members/list-members.d.ts.map +1 -1
  75. package/dist/tools/members/list-members.js +4 -1
  76. package/dist/tools/members/list-members.js.map +1 -1
  77. package/dist/tools/messaging/add-reaction.js +1 -1
  78. package/dist/tools/messaging/add-reaction.js.map +1 -1
  79. package/dist/tools/messaging/delete-message.d.ts.map +1 -1
  80. package/dist/tools/messaging/delete-message.js +1 -1
  81. package/dist/tools/messaging/delete-message.js.map +1 -1
  82. package/dist/tools/messaging/edit-message.js +1 -1
  83. package/dist/tools/messaging/edit-message.js.map +1 -1
  84. package/dist/tools/messaging/get-messages.js +1 -1
  85. package/dist/tools/messaging/get-messages.js.map +1 -1
  86. package/dist/tools/messaging/send-message.d.ts.map +1 -1
  87. package/dist/tools/messaging/send-message.js +2 -4
  88. package/dist/tools/messaging/send-message.js.map +1 -1
  89. package/dist/tools/moderation/ban-member.d.ts +3 -0
  90. package/dist/tools/moderation/ban-member.d.ts.map +1 -0
  91. package/dist/tools/moderation/ban-member.js +48 -0
  92. package/dist/tools/moderation/ban-member.js.map +1 -0
  93. package/dist/tools/moderation/index.d.ts +5 -0
  94. package/dist/tools/moderation/index.d.ts.map +1 -0
  95. package/dist/tools/moderation/index.js +5 -0
  96. package/dist/tools/moderation/index.js.map +1 -0
  97. package/dist/tools/moderation/kick-member.d.ts +3 -0
  98. package/dist/tools/moderation/kick-member.d.ts.map +1 -0
  99. package/dist/tools/moderation/kick-member.js +40 -0
  100. package/dist/tools/moderation/kick-member.js.map +1 -0
  101. package/dist/tools/moderation/timeout-member.d.ts +3 -0
  102. package/dist/tools/moderation/timeout-member.d.ts.map +1 -0
  103. package/dist/tools/moderation/timeout-member.js +47 -0
  104. package/dist/tools/moderation/timeout-member.js.map +1 -0
  105. package/dist/tools/moderation/unban-member.d.ts +3 -0
  106. package/dist/tools/moderation/unban-member.d.ts.map +1 -0
  107. package/dist/tools/moderation/unban-member.js +30 -0
  108. package/dist/tools/moderation/unban-member.js.map +1 -0
  109. package/dist/tools/roles/assign-role.d.ts +3 -0
  110. package/dist/tools/roles/assign-role.d.ts.map +1 -0
  111. package/dist/tools/roles/assign-role.js +40 -0
  112. package/dist/tools/roles/assign-role.js.map +1 -0
  113. package/dist/tools/roles/create-role.d.ts +3 -0
  114. package/dist/tools/roles/create-role.d.ts.map +1 -0
  115. package/dist/tools/roles/create-role.js +50 -0
  116. package/dist/tools/roles/create-role.js.map +1 -0
  117. package/dist/tools/roles/delete-role.d.ts +3 -0
  118. package/dist/tools/roles/delete-role.d.ts.map +1 -0
  119. package/dist/tools/roles/delete-role.js +32 -0
  120. package/dist/tools/roles/delete-role.js.map +1 -0
  121. package/dist/tools/roles/edit-role.d.ts +3 -0
  122. package/dist/tools/roles/edit-role.d.ts.map +1 -0
  123. package/dist/tools/roles/edit-role.js +52 -0
  124. package/dist/tools/roles/edit-role.js.map +1 -0
  125. package/dist/tools/roles/index.d.ts +4 -0
  126. package/dist/tools/roles/index.d.ts.map +1 -1
  127. package/dist/tools/roles/index.js +4 -0
  128. package/dist/tools/roles/index.js.map +1 -1
  129. package/dist/tools/roles/list-roles.d.ts.map +1 -1
  130. package/dist/tools/roles/list-roles.js +6 -2
  131. package/dist/tools/roles/list-roles.js.map +1 -1
  132. package/dist/tools/schema.d.ts +9 -0
  133. package/dist/tools/schema.d.ts.map +1 -0
  134. package/dist/tools/schema.js +13 -0
  135. package/dist/tools/schema.js.map +1 -0
  136. package/dist/tools/threads/create-thread.js +1 -1
  137. package/dist/tools/threads/create-thread.js.map +1 -1
  138. package/dist/tools/threads/list-threads.d.ts.map +1 -1
  139. package/dist/tools/threads/list-threads.js +4 -1
  140. package/dist/tools/threads/list-threads.js.map +1 -1
  141. package/dist/tools/webhooks/create-webhook.d.ts +3 -0
  142. package/dist/tools/webhooks/create-webhook.d.ts.map +1 -0
  143. package/dist/tools/webhooks/create-webhook.js +38 -0
  144. package/dist/tools/webhooks/create-webhook.js.map +1 -0
  145. package/dist/tools/webhooks/delete-webhook.d.ts +3 -0
  146. package/dist/tools/webhooks/delete-webhook.d.ts.map +1 -0
  147. package/dist/tools/webhooks/delete-webhook.js +27 -0
  148. package/dist/tools/webhooks/delete-webhook.js.map +1 -0
  149. package/dist/tools/webhooks/edit-webhook.d.ts +3 -0
  150. package/dist/tools/webhooks/edit-webhook.d.ts.map +1 -0
  151. package/dist/tools/webhooks/edit-webhook.js +36 -0
  152. package/dist/tools/webhooks/edit-webhook.js.map +1 -0
  153. package/dist/tools/webhooks/execute-webhook.d.ts +3 -0
  154. package/dist/tools/webhooks/execute-webhook.d.ts.map +1 -0
  155. package/dist/tools/webhooks/execute-webhook.js +63 -0
  156. package/dist/tools/webhooks/execute-webhook.js.map +1 -0
  157. package/dist/tools/webhooks/get-webhook.d.ts +3 -0
  158. package/dist/tools/webhooks/get-webhook.d.ts.map +1 -0
  159. package/dist/tools/webhooks/get-webhook.js +33 -0
  160. package/dist/tools/webhooks/get-webhook.js.map +1 -0
  161. package/dist/tools/webhooks/index.d.ts +7 -0
  162. package/dist/tools/webhooks/index.d.ts.map +1 -0
  163. package/dist/tools/webhooks/index.js +7 -0
  164. package/dist/tools/webhooks/index.js.map +1 -0
  165. package/dist/tools/webhooks/list-webhooks.d.ts +3 -0
  166. package/dist/tools/webhooks/list-webhooks.d.ts.map +1 -0
  167. package/dist/tools/webhooks/list-webhooks.js +47 -0
  168. package/dist/tools/webhooks/list-webhooks.js.map +1 -0
  169. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-webhook.js","sourceRoot":"","sources":["../../../src/tools/webhooks/execute-webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../types.js";
2
+ export declare const getWebhook: ToolDefinition;
3
+ //# sourceMappingURL=get-webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-webhook.d.ts","sourceRoot":"","sources":["../../../src/tools/webhooks/get-webhook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWlD,eAAO,MAAM,UAAU,EAAE,cAuBxB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ import { toolResultJson } from "../types.js";
3
+ import { snowflakeId } from "../schema.js";
4
+ import { getTokenForProject } from "../../config/index.js";
5
+ const inputSchema = z.object({
6
+ webhook_id: snowflakeId.describe("Webhook ID to fetch"),
7
+ guild_id: snowflakeId.describe("Guild ID (needed for bot token resolution)"),
8
+ project: z.string().optional().describe("Project name (resolves bot token for multi-bot setups)"),
9
+ });
10
+ export const getWebhook = {
11
+ name: "get_webhook",
12
+ description: "Get details about a specific webhook.",
13
+ category: "webhooks",
14
+ inputSchema,
15
+ handle: async (input, ctx) => {
16
+ const token = input.project ? getTokenForProject(input.project, ctx.config) : undefined;
17
+ const client = await ctx.discord.getClient(token);
18
+ const webhook = await client.fetchWebhook(input.webhook_id);
19
+ return toolResultJson({
20
+ id: webhook.id,
21
+ name: webhook.name,
22
+ channel_id: webhook.channelId,
23
+ guild_id: webhook.guildId,
24
+ type: webhook.type,
25
+ avatar: webhook.avatar,
26
+ created_at: webhook.createdAt?.toISOString(),
27
+ owner: webhook.owner
28
+ ? { id: webhook.owner.id, tag: webhook.owner.tag ?? webhook.owner.id }
29
+ : null,
30
+ });
31
+ },
32
+ };
33
+ //# sourceMappingURL=get-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-webhook.js","sourceRoot":"","sources":["../../../src/tools/webhooks/get-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACvD,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CAClG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,uCAAuC;IACpD,QAAQ,EAAE,UAAU;IACpB,WAAW;IACX,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE5D,OAAO,cAAc,CAAC;YACpB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,QAAQ,EAAE,OAAO,CAAC,OAAO;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE;YAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;gBAClB,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAG,OAAO,CAAC,KAAa,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC/E,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createWebhook } from "./create-webhook.js";
2
+ export { getWebhook } from "./get-webhook.js";
3
+ export { listWebhooks } from "./list-webhooks.js";
4
+ export { editWebhook } from "./edit-webhook.js";
5
+ export { deleteWebhook } from "./delete-webhook.js";
6
+ export { executeWebhook } from "./execute-webhook.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/webhooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createWebhook } from "./create-webhook.js";
2
+ export { getWebhook } from "./get-webhook.js";
3
+ export { listWebhooks } from "./list-webhooks.js";
4
+ export { editWebhook } from "./edit-webhook.js";
5
+ export { deleteWebhook } from "./delete-webhook.js";
6
+ export { executeWebhook } from "./execute-webhook.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/webhooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../types.js";
2
+ export declare const listWebhooks: ToolDefinition;
3
+ //# sourceMappingURL=list-webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-webhooks.d.ts","sourceRoot":"","sources":["../../../src/tools/webhooks/list-webhooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWlD,eAAO,MAAM,YAAY,EAAE,cAsC1B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ import { toolResult, toolResultJson } from "../types.js";
3
+ import { snowflakeId } from "../schema.js";
4
+ import { getTokenForProject } from "../../config/index.js";
5
+ const inputSchema = z.object({
6
+ guild_id: snowflakeId.describe("Guild ID to list webhooks from"),
7
+ channel_id: snowflakeId.optional().describe("Filter webhooks to a specific channel"),
8
+ project: z.string().optional().describe("Project name (resolves bot token for multi-bot setups)"),
9
+ });
10
+ export const listWebhooks = {
11
+ name: "list_webhooks",
12
+ description: "List webhooks in a guild or channel. Requires ManageWebhooks permission.",
13
+ category: "webhooks",
14
+ inputSchema,
15
+ permissions: ["ManageWebhooks"],
16
+ requiresGuild: true,
17
+ handle: async (input, ctx) => {
18
+ const token = input.project ? getTokenForProject(input.project, ctx.config) : undefined;
19
+ let webhooks;
20
+ if (input.channel_id) {
21
+ const channel = await ctx.discord.getChannel(input.channel_id, token);
22
+ if (!("fetchWebhooks" in channel)) {
23
+ return toolResult("Channel does not support webhooks", true);
24
+ }
25
+ webhooks = await channel.fetchWebhooks();
26
+ }
27
+ else {
28
+ const guild = await ctx.discord.getGuild(input.guild_id, token);
29
+ webhooks = await guild.fetchWebhooks();
30
+ }
31
+ const result = [...webhooks.values()].map((wh) => ({
32
+ id: wh.id,
33
+ name: wh.name,
34
+ channel_id: wh.channelId,
35
+ type: wh.type,
36
+ owner: wh.owner ? { id: wh.owner.id, tag: wh.owner.tag ?? wh.owner.id } : null,
37
+ created_at: wh.createdAt?.toISOString(),
38
+ }));
39
+ return toolResultJson({
40
+ guild_id: input.guild_id,
41
+ channel_id: input.channel_id ?? null,
42
+ count: result.length,
43
+ webhooks: result,
44
+ });
45
+ },
46
+ };
47
+ //# sourceMappingURL=list-webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-webhooks.js","sourceRoot":"","sources":["../../../src/tools/webhooks/list-webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAChE,UAAU,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACpF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CAClG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,0EAA0E;IACvF,QAAQ,EAAE,UAAU;IACpB,WAAW;IACX,WAAW,EAAE,CAAC,gBAAgB,CAAC;IAC/B,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExF,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtE,IAAI,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO,UAAU,CAAC,mCAAmC,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,QAAQ,GAAG,MAAO,OAAe,CAAC,aAAa,EAAE,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChE,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;YACtD,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,UAAU,EAAE,EAAE,CAAC,SAAS;YACxB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;YAC9E,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE;SACxC,CAAC,CAAC,CAAC;QAEJ,OAAO,cAAc,CAAC;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACpC,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discord-ops",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Agency-grade Discord MCP server with multi-guild project routing",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -67,6 +67,7 @@
67
67
  "@changesets/cli": "^2.29.4",
68
68
  "@eslint/js": "^9.39.4",
69
69
  "@types/node": "^22.15.3",
70
+ "@vitest/coverage-v8": "^3.2.4",
70
71
  "eslint": "^9.26.0",
71
72
  "prettier": "^3.5.3",
72
73
  "tsx": "^4.19.4",