discord-ops 0.21.0 → 0.21.2
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.
- package/CHANGELOG.md +12 -0
- package/dist/profiles/index.d.ts +1 -1
- package/dist/profiles/index.d.ts.map +1 -1
- package/dist/profiles/index.js +27 -1
- package/dist/profiles/index.js.map +1 -1
- package/dist/tools/messaging/search.d.ts.map +1 -1
- package/dist/tools/messaging/search.js +4 -3
- package/dist/tools/messaging/search.js.map +1 -1
- package/dist/tools/messaging/send-embed.d.ts.map +1 -1
- package/dist/tools/messaging/send-embed.js +3 -2
- package/dist/tools/messaging/send-embed.js.map +1 -1
- package/package.json +5 -3
- package/dist/tools/profiles.d.ts +0 -14
- package/dist/tools/profiles.d.ts.map +0 -1
- package/dist/tools/profiles.js +0 -63
- package/dist/tools/profiles.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# discord-ops
|
|
2
2
|
|
|
3
|
+
## 0.21.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 58be846: Enforce `snowflakeId` schema on all Snowflake ID parameters (`channel_id`, `guild_id`, `author_id`) in `search_messages` and `send_embed` tools. Previously these used bare `z.string()` which lacked the `^\d{17,20}$` pattern validation, causing callers that pass 19-digit integer IDs to hit type coercion errors.
|
|
8
|
+
|
|
9
|
+
## 0.21.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- e34f143: Add messaging, channels, and webhooks tool profiles; consolidate duplicate filterTools implementation; improve HTTP transport branch coverage (70.45% → 88.88%)
|
|
14
|
+
|
|
3
15
|
## 0.21.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/dist/profiles/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Reduces schema overhead when agents only need a few tools.
|
|
4
4
|
*/
|
|
5
5
|
import type { ToolDefinition } from "../tools/types.js";
|
|
6
|
-
export declare const PROFILE_NAMES: readonly ["full", "monitoring", "readonly", "moderation"];
|
|
6
|
+
export declare const PROFILE_NAMES: readonly ["full", "monitoring", "readonly", "moderation", "messaging", "channels", "webhooks"];
|
|
7
7
|
export type ProfileName = (typeof PROFILE_NAMES)[number];
|
|
8
8
|
export declare const PROFILES: Record<ProfileName, string[] | "all">;
|
|
9
9
|
export declare function isProfileName(s: string): s is ProfileName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,aAAa,gGAQhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,CA6C1D,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,WAAW,CAEzD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE,CAmEjG"}
|
package/dist/profiles/index.js
CHANGED
|
@@ -2,7 +2,15 @@
|
|
|
2
2
|
* Tool profiles for loading subsets of tools.
|
|
3
3
|
* Reduces schema overhead when agents only need a few tools.
|
|
4
4
|
*/
|
|
5
|
-
export const PROFILE_NAMES = [
|
|
5
|
+
export const PROFILE_NAMES = [
|
|
6
|
+
"full",
|
|
7
|
+
"monitoring",
|
|
8
|
+
"readonly",
|
|
9
|
+
"moderation",
|
|
10
|
+
"messaging",
|
|
11
|
+
"channels",
|
|
12
|
+
"webhooks",
|
|
13
|
+
];
|
|
6
14
|
export const PROFILES = {
|
|
7
15
|
full: "all",
|
|
8
16
|
monitoring: [
|
|
@@ -30,6 +38,24 @@ export const PROFILES = {
|
|
|
30
38
|
"purge_messages",
|
|
31
39
|
"query_audit_log",
|
|
32
40
|
],
|
|
41
|
+
messaging: ["add_reaction", "delete_message", "edit_message", "get_messages", "send_message"],
|
|
42
|
+
channels: [
|
|
43
|
+
"create_channel",
|
|
44
|
+
"delete_channel",
|
|
45
|
+
"edit_channel",
|
|
46
|
+
"get_channel",
|
|
47
|
+
"list_channels",
|
|
48
|
+
"purge_messages",
|
|
49
|
+
"set_slowmode",
|
|
50
|
+
],
|
|
51
|
+
webhooks: [
|
|
52
|
+
"create_webhook",
|
|
53
|
+
"delete_webhook",
|
|
54
|
+
"edit_webhook",
|
|
55
|
+
"execute_webhook",
|
|
56
|
+
"get_webhook",
|
|
57
|
+
"list_webhooks",
|
|
58
|
+
],
|
|
33
59
|
};
|
|
34
60
|
export function isProfileName(s) {
|
|
35
61
|
return PROFILE_NAMES.includes(s);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/messaging/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/messaging/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA0BlD,eAAO,MAAM,cAAc,EAAE,cA2F5B,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { toolResultJson } from "../types.js";
|
|
3
|
+
import { snowflakeId } from "../schema.js";
|
|
3
4
|
import { resolveTarget } from "../../routing/resolver.js";
|
|
4
5
|
const inputSchema = z.object({
|
|
5
|
-
channel_id:
|
|
6
|
-
guild_id:
|
|
6
|
+
channel_id: snowflakeId.optional().describe("Direct channel ID"),
|
|
7
|
+
guild_id: snowflakeId.optional().describe("Direct guild ID"),
|
|
7
8
|
project: z.string().optional().describe("Project name for routing"),
|
|
8
9
|
channel: z.string().optional().describe("Channel alias within project"),
|
|
9
10
|
query: z.string().min(1).describe("Text to search for (case-insensitive substring match)"),
|
|
10
|
-
author_id:
|
|
11
|
+
author_id: snowflakeId.optional().describe("Filter results to messages from this user ID"),
|
|
11
12
|
limit: z
|
|
12
13
|
.number()
|
|
13
14
|
.min(1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/messaging/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/messaging/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-embed.d.ts","sourceRoot":"","sources":["../../../src/tools/messaging/send-embed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"send-embed.d.ts","sourceRoot":"","sources":["../../../src/tools/messaging/send-embed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAqBlD,eAAO,MAAM,SAAS,EAAE,cA+DvB,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { toolResult, toolResultJson } from "../types.js";
|
|
3
|
+
import { snowflakeId } from "../schema.js";
|
|
3
4
|
import { notificationType } from "../../config/schema.js";
|
|
4
5
|
import { resolveTarget } from "../../routing/resolver.js";
|
|
5
6
|
import { fetchOgMetadata, isPublicHttpUrl } from "../../utils/og-fetch.js";
|
|
6
7
|
const inputSchema = z.object({
|
|
7
8
|
url: z.string().url().describe("URL to unfurl as a rich embed"),
|
|
8
|
-
channel_id:
|
|
9
|
-
guild_id:
|
|
9
|
+
channel_id: snowflakeId.optional().describe("Direct channel ID"),
|
|
10
|
+
guild_id: snowflakeId.optional().describe("Direct guild ID"),
|
|
10
11
|
project: z.string().optional().describe("Project name for routing"),
|
|
11
12
|
channel: z.string().optional().describe("Channel alias within project"),
|
|
12
13
|
notification_type: notificationType.optional().describe("Notification type for auto-routing"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-embed.js","sourceRoot":"","sources":["../../../src/tools/messaging/send-embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE3E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC/D,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"send-embed.js","sourceRoot":"","sources":["../../../src/tools/messaging/send-embed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "discord-ops",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.2",
|
|
4
4
|
"description": "Agency-grade Discord MCP server with multi-guild project routing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -68,7 +68,8 @@
|
|
|
68
68
|
"format:check": "prettier --check .",
|
|
69
69
|
"prepublishOnly": "node scripts/block-local-publish.mjs && npm audit --audit-level=high && npm run build",
|
|
70
70
|
"changeset": "changeset",
|
|
71
|
-
"release": "changeset publish"
|
|
71
|
+
"release": "changeset publish",
|
|
72
|
+
"prepare": "husky"
|
|
72
73
|
},
|
|
73
74
|
"dependencies": {
|
|
74
75
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
@@ -85,7 +86,8 @@
|
|
|
85
86
|
"tsx": "^4.19.4",
|
|
86
87
|
"typescript": "^5.8.3",
|
|
87
88
|
"typescript-eslint": "^8.58.0",
|
|
88
|
-
"vitest": "^3.1.2"
|
|
89
|
+
"vitest": "^3.1.2",
|
|
90
|
+
"husky": "^9.1.7"
|
|
89
91
|
},
|
|
90
92
|
"engines": {
|
|
91
93
|
"node": "^20.0.0 || ^22.0.0 || ^24.0.0"
|
package/dist/tools/profiles.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ToolDefinition } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Named tool profiles that limit which tools are exposed by the MCP server.
|
|
4
|
-
* A profile value of "all" exposes every registered tool.
|
|
5
|
-
* An array value lists the exact tool names to expose.
|
|
6
|
-
*/
|
|
7
|
-
export declare const PROFILES: Record<string, readonly string[] | "all">;
|
|
8
|
-
/**
|
|
9
|
-
* Filters `tools` to only those whose names appear in the named profile.
|
|
10
|
-
* Returns all tools when the profile value is "all" or when the profile name
|
|
11
|
-
* is not found in `PROFILES`.
|
|
12
|
-
*/
|
|
13
|
-
export declare function filterTools(tools: readonly ToolDefinition[], profileName: string): ToolDefinition[];
|
|
14
|
-
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/tools/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CA2CV,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,WAAW,EAAE,MAAM,GAClB,cAAc,EAAE,CAOlB"}
|
package/dist/tools/profiles.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Named tool profiles that limit which tools are exposed by the MCP server.
|
|
3
|
-
* A profile value of "all" exposes every registered tool.
|
|
4
|
-
* An array value lists the exact tool names to expose.
|
|
5
|
-
*/
|
|
6
|
-
export const PROFILES = {
|
|
7
|
-
all: "all",
|
|
8
|
-
readonly: [
|
|
9
|
-
"get_channel",
|
|
10
|
-
"get_guild",
|
|
11
|
-
"get_member",
|
|
12
|
-
"get_messages",
|
|
13
|
-
"get_webhook",
|
|
14
|
-
"health_check",
|
|
15
|
-
"list_channels",
|
|
16
|
-
"list_guilds",
|
|
17
|
-
"list_members",
|
|
18
|
-
"list_roles",
|
|
19
|
-
"list_threads",
|
|
20
|
-
"list_webhooks",
|
|
21
|
-
"query_audit_log",
|
|
22
|
-
],
|
|
23
|
-
messaging: ["add_reaction", "delete_message", "edit_message", "get_messages", "send_message"],
|
|
24
|
-
moderation: [
|
|
25
|
-
"ban_member",
|
|
26
|
-
"kick_member",
|
|
27
|
-
"purge_messages",
|
|
28
|
-
"query_audit_log",
|
|
29
|
-
"timeout_member",
|
|
30
|
-
"unban_member",
|
|
31
|
-
],
|
|
32
|
-
channels: [
|
|
33
|
-
"create_channel",
|
|
34
|
-
"delete_channel",
|
|
35
|
-
"edit_channel",
|
|
36
|
-
"get_channel",
|
|
37
|
-
"list_channels",
|
|
38
|
-
"purge_messages",
|
|
39
|
-
"set_slowmode",
|
|
40
|
-
],
|
|
41
|
-
webhooks: [
|
|
42
|
-
"create_webhook",
|
|
43
|
-
"delete_webhook",
|
|
44
|
-
"edit_webhook",
|
|
45
|
-
"execute_webhook",
|
|
46
|
-
"get_webhook",
|
|
47
|
-
"list_webhooks",
|
|
48
|
-
],
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Filters `tools` to only those whose names appear in the named profile.
|
|
52
|
-
* Returns all tools when the profile value is "all" or when the profile name
|
|
53
|
-
* is not found in `PROFILES`.
|
|
54
|
-
*/
|
|
55
|
-
export function filterTools(tools, profileName) {
|
|
56
|
-
const profile = PROFILES[profileName];
|
|
57
|
-
if (profile === undefined || profile === "all") {
|
|
58
|
-
return [...tools];
|
|
59
|
-
}
|
|
60
|
-
const allowed = new Set(profile);
|
|
61
|
-
return tools.filter((t) => allowed.has(t.name));
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=profiles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/tools/profiles.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA8C;IACjE,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE;QACR,aAAa;QACb,WAAW;QACX,YAAY;QACZ,cAAc;QACd,aAAa;QACb,cAAc;QACd,eAAe;QACf,aAAa;QACb,cAAc;QACd,YAAY;QACZ,cAAc;QACd,eAAe;QACf,iBAAiB;KAClB;IACD,SAAS,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;IAC7F,UAAU,EAAE;QACV,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;KACf;IACD,QAAQ,EAAE;QACR,gBAAgB;QAChB,gBAAgB;QAChB,cAAc;QACd,aAAa;QACb,eAAe;QACf,gBAAgB;QAChB,cAAc;KACf;IACD,QAAQ,EAAE;QACR,gBAAgB;QAChB,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,eAAe;KAChB;CACkD,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,KAAgC,EAChC,WAAmB;IAEnB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC"}
|