synabun 2026.3.307 → 2026.3.310
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/CLAUDE.md +150 -0
- package/hooks/claude-code/post-plan.mjs +1 -1
- package/hooks/claude-code/session-start.mjs +2 -0
- package/mcp-server/dist/config.d.ts +13 -0
- package/mcp-server/dist/config.d.ts.map +1 -0
- package/mcp-server/dist/config.js +59 -0
- package/mcp-server/dist/config.js.map +1 -0
- package/mcp-server/dist/http.d.ts +13 -0
- package/mcp-server/dist/http.d.ts.map +1 -0
- package/mcp-server/dist/http.js +86 -0
- package/mcp-server/dist/http.js.map +1 -0
- package/mcp-server/dist/index.d.ts +10 -0
- package/mcp-server/dist/index.d.ts.map +1 -0
- package/mcp-server/dist/index.js +189 -0
- package/mcp-server/dist/index.js.map +1 -0
- package/mcp-server/dist/preload-http.d.ts +3 -0
- package/mcp-server/dist/preload-http.d.ts.map +1 -0
- package/mcp-server/dist/preload-http.js +26 -0
- package/mcp-server/dist/preload-http.js.map +1 -0
- package/mcp-server/dist/preload.d.ts +3 -0
- package/mcp-server/dist/preload.d.ts.map +1 -0
- package/mcp-server/dist/preload.js +30 -0
- package/mcp-server/dist/preload.js.map +1 -0
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.d.ts +19 -0
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.d.ts.map +1 -0
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.js +403 -0
- package/mcp-server/dist/scripts/migrate-qdrant-to-sqlite.js.map +1 -0
- package/mcp-server/dist/services/categories.d.ts +61 -0
- package/mcp-server/dist/services/categories.d.ts.map +1 -0
- package/mcp-server/dist/services/categories.js +356 -0
- package/mcp-server/dist/services/categories.js.map +1 -0
- package/mcp-server/dist/services/discord.d.ts +112 -0
- package/mcp-server/dist/services/discord.d.ts.map +1 -0
- package/mcp-server/dist/services/discord.js +477 -0
- package/mcp-server/dist/services/discord.js.map +1 -0
- package/mcp-server/dist/services/file-checksums.d.ts +14 -0
- package/mcp-server/dist/services/file-checksums.d.ts.map +1 -0
- package/mcp-server/dist/services/file-checksums.js +34 -0
- package/mcp-server/dist/services/file-checksums.js.map +1 -0
- package/mcp-server/dist/services/local-embeddings.d.ts +23 -0
- package/mcp-server/dist/services/local-embeddings.d.ts.map +1 -0
- package/mcp-server/dist/services/local-embeddings.js +71 -0
- package/mcp-server/dist/services/local-embeddings.js.map +1 -0
- package/mcp-server/dist/services/neural-interface.d.ts +92 -0
- package/mcp-server/dist/services/neural-interface.d.ts.map +1 -0
- package/mcp-server/dist/services/neural-interface.js +238 -0
- package/mcp-server/dist/services/neural-interface.js.map +1 -0
- package/mcp-server/dist/services/sqlite.d.ts +85 -0
- package/mcp-server/dist/services/sqlite.d.ts.map +1 -0
- package/mcp-server/dist/services/sqlite.js +660 -0
- package/mcp-server/dist/services/sqlite.js.map +1 -0
- package/mcp-server/dist/tools/browser-advanced.d.ts +54 -0
- package/mcp-server/dist/tools/browser-advanced.d.ts.map +1 -0
- package/mcp-server/dist/tools/browser-advanced.js +97 -0
- package/mcp-server/dist/tools/browser-advanced.js.map +1 -0
- package/mcp-server/dist/tools/browser-interact.d.ts +138 -0
- package/mcp-server/dist/tools/browser-interact.d.ts.map +1 -0
- package/mcp-server/dist/tools/browser-interact.js +216 -0
- package/mcp-server/dist/tools/browser-interact.js.map +1 -0
- package/mcp-server/dist/tools/browser-navigate.d.ts +52 -0
- package/mcp-server/dist/tools/browser-navigate.d.ts.map +1 -0
- package/mcp-server/dist/tools/browser-navigate.js +61 -0
- package/mcp-server/dist/tools/browser-navigate.js.map +1 -0
- package/mcp-server/dist/tools/browser-observe.d.ts +298 -0
- package/mcp-server/dist/tools/browser-observe.d.ts.map +1 -0
- package/mcp-server/dist/tools/browser-observe.js +1154 -0
- package/mcp-server/dist/tools/browser-observe.js.map +1 -0
- package/mcp-server/dist/tools/browser.d.ts +7 -0
- package/mcp-server/dist/tools/browser.d.ts.map +1 -0
- package/mcp-server/dist/tools/browser.js +55 -0
- package/mcp-server/dist/tools/browser.js.map +1 -0
- package/mcp-server/dist/tools/card-tools.d.ts +82 -0
- package/mcp-server/dist/tools/card-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/card-tools.js +137 -0
- package/mcp-server/dist/tools/card-tools.js.map +1 -0
- package/mcp-server/dist/tools/card.d.ts +8 -0
- package/mcp-server/dist/tools/card.d.ts.map +1 -0
- package/mcp-server/dist/tools/card.js +14 -0
- package/mcp-server/dist/tools/card.js.map +1 -0
- package/mcp-server/dist/tools/category.d.ts +32 -0
- package/mcp-server/dist/tools/category.d.ts.map +1 -0
- package/mcp-server/dist/tools/category.js +290 -0
- package/mcp-server/dist/tools/category.js.map +1 -0
- package/mcp-server/dist/tools/discord-channel.d.ts +44 -0
- package/mcp-server/dist/tools/discord-channel.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-channel.js +236 -0
- package/mcp-server/dist/tools/discord-channel.js.map +1 -0
- package/mcp-server/dist/tools/discord-guild.d.ts +20 -0
- package/mcp-server/dist/tools/discord-guild.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-guild.js +138 -0
- package/mcp-server/dist/tools/discord-guild.js.map +1 -0
- package/mcp-server/dist/tools/discord-member.d.ts +26 -0
- package/mcp-server/dist/tools/discord-member.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-member.js +122 -0
- package/mcp-server/dist/tools/discord-member.js.map +1 -0
- package/mcp-server/dist/tools/discord-message.d.ts +36 -0
- package/mcp-server/dist/tools/discord-message.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-message.js +184 -0
- package/mcp-server/dist/tools/discord-message.js.map +1 -0
- package/mcp-server/dist/tools/discord-onboarding.d.ts +32 -0
- package/mcp-server/dist/tools/discord-onboarding.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-onboarding.js +179 -0
- package/mcp-server/dist/tools/discord-onboarding.js.map +1 -0
- package/mcp-server/dist/tools/discord-role.d.ts +34 -0
- package/mcp-server/dist/tools/discord-role.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-role.js +178 -0
- package/mcp-server/dist/tools/discord-role.js.map +1 -0
- package/mcp-server/dist/tools/discord-thread.d.ts +28 -0
- package/mcp-server/dist/tools/discord-thread.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-thread.js +88 -0
- package/mcp-server/dist/tools/discord-thread.js.map +1 -0
- package/mcp-server/dist/tools/discord-webhook.d.ts +32 -0
- package/mcp-server/dist/tools/discord-webhook.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord-webhook.js +154 -0
- package/mcp-server/dist/tools/discord-webhook.js.map +1 -0
- package/mcp-server/dist/tools/discord.d.ts +7 -0
- package/mcp-server/dist/tools/discord.d.ts.map +1 -0
- package/mcp-server/dist/tools/discord.js +31 -0
- package/mcp-server/dist/tools/discord.js.map +1 -0
- package/mcp-server/dist/tools/forget.d.ts +14 -0
- package/mcp-server/dist/tools/forget.d.ts.map +1 -0
- package/mcp-server/dist/tools/forget.js +26 -0
- package/mcp-server/dist/tools/forget.js.map +1 -0
- package/mcp-server/dist/tools/git-tools.d.ts +24 -0
- package/mcp-server/dist/tools/git-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/git-tools.js +107 -0
- package/mcp-server/dist/tools/git-tools.js.map +1 -0
- package/mcp-server/dist/tools/git.d.ts +7 -0
- package/mcp-server/dist/tools/git.d.ts.map +1 -0
- package/mcp-server/dist/tools/git.js +9 -0
- package/mcp-server/dist/tools/git.js.map +1 -0
- package/mcp-server/dist/tools/image-tools.d.ts +24 -0
- package/mcp-server/dist/tools/image-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/image-tools.js +80 -0
- package/mcp-server/dist/tools/image-tools.js.map +1 -0
- package/mcp-server/dist/tools/image.d.ts +10 -0
- package/mcp-server/dist/tools/image.d.ts.map +1 -0
- package/mcp-server/dist/tools/image.js +12 -0
- package/mcp-server/dist/tools/image.js.map +1 -0
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +77 -0
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/leonardo-browser-tools.js +223 -0
- package/mcp-server/dist/tools/leonardo-browser-tools.js.map +1 -0
- package/mcp-server/dist/tools/leonardo.d.ts +13 -0
- package/mcp-server/dist/tools/leonardo.d.ts.map +1 -0
- package/mcp-server/dist/tools/leonardo.js +19 -0
- package/mcp-server/dist/tools/leonardo.js.map +1 -0
- package/mcp-server/dist/tools/loop.d.ts +30 -0
- package/mcp-server/dist/tools/loop.d.ts.map +1 -0
- package/mcp-server/dist/tools/loop.js +302 -0
- package/mcp-server/dist/tools/loop.js.map +1 -0
- package/mcp-server/dist/tools/memories.d.ts +26 -0
- package/mcp-server/dist/tools/memories.d.ts.map +1 -0
- package/mcp-server/dist/tools/memories.js +96 -0
- package/mcp-server/dist/tools/memories.js.map +1 -0
- package/mcp-server/dist/tools/recall.d.ts +41 -0
- package/mcp-server/dist/tools/recall.d.ts.map +1 -0
- package/mcp-server/dist/tools/recall.js +275 -0
- package/mcp-server/dist/tools/recall.js.map +1 -0
- package/mcp-server/dist/tools/reflect.d.ts +44 -0
- package/mcp-server/dist/tools/reflect.d.ts.map +1 -0
- package/mcp-server/dist/tools/reflect.js +118 -0
- package/mcp-server/dist/tools/reflect.js.map +1 -0
- package/mcp-server/dist/tools/remember.d.ts +38 -0
- package/mcp-server/dist/tools/remember.d.ts.map +1 -0
- package/mcp-server/dist/tools/remember.js +88 -0
- package/mcp-server/dist/tools/remember.js.map +1 -0
- package/mcp-server/dist/tools/response.d.ts +23 -0
- package/mcp-server/dist/tools/response.d.ts.map +1 -0
- package/mcp-server/dist/tools/response.js +24 -0
- package/mcp-server/dist/tools/response.js.map +1 -0
- package/mcp-server/dist/tools/restore.d.ts +14 -0
- package/mcp-server/dist/tools/restore.d.ts.map +1 -0
- package/mcp-server/dist/tools/restore.js +23 -0
- package/mcp-server/dist/tools/restore.js.map +1 -0
- package/mcp-server/dist/tools/sync.d.ts +18 -0
- package/mcp-server/dist/tools/sync.d.ts.map +1 -0
- package/mcp-server/dist/tools/sync.js +93 -0
- package/mcp-server/dist/tools/sync.js.map +1 -0
- package/mcp-server/dist/tools/tictactoe-tools.d.ts +18 -0
- package/mcp-server/dist/tools/tictactoe-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/tictactoe-tools.js +78 -0
- package/mcp-server/dist/tools/tictactoe-tools.js.map +1 -0
- package/mcp-server/dist/tools/tictactoe.d.ts +7 -0
- package/mcp-server/dist/tools/tictactoe.d.ts.map +1 -0
- package/mcp-server/dist/tools/tictactoe.js +9 -0
- package/mcp-server/dist/tools/tictactoe.js.map +1 -0
- package/mcp-server/dist/tools/utils.d.ts +10 -0
- package/mcp-server/dist/tools/utils.d.ts.map +1 -0
- package/mcp-server/dist/tools/utils.js +30 -0
- package/mcp-server/dist/tools/utils.js.map +1 -0
- package/mcp-server/dist/tools/whiteboard-tools.d.ts +194 -0
- package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/whiteboard-tools.js +198 -0
- package/mcp-server/dist/tools/whiteboard-tools.js.map +1 -0
- package/mcp-server/dist/tools/whiteboard.d.ts +8 -0
- package/mcp-server/dist/tools/whiteboard.d.ts.map +1 -0
- package/mcp-server/dist/tools/whiteboard.js +14 -0
- package/mcp-server/dist/tools/whiteboard.js.map +1 -0
- package/mcp-server/dist/tui.d.ts +3 -0
- package/mcp-server/dist/tui.d.ts.map +1 -0
- package/mcp-server/dist/tui.js +807 -0
- package/mcp-server/dist/tui.js.map +1 -0
- package/mcp-server/dist/types.d.ts +77 -0
- package/mcp-server/dist/types.d.ts.map +1 -0
- package/mcp-server/dist/types.js +2 -0
- package/mcp-server/dist/types.js.map +1 -0
- package/neural-interface/public/shared/styles.css +2 -2
- package/neural-interface/public/shared/ui-settings.js +2 -2
- package/neural-interface/server.js +82 -8
- package/neural-interface/templates/CLAUDE-template.md +9 -1
- package/package.json +4 -2
- package/preuninstall.js +28 -0
- package/setup.js +86 -1
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import * as discord from '../services/discord.js';
|
|
3
|
+
import { text } from './response.js';
|
|
4
|
+
export const discordOnboardingSchema = {
|
|
5
|
+
action: z.enum(['get', 'set_welcome', 'set_rules', 'set_verification', 'set_onboarding'])
|
|
6
|
+
.describe('Action: get (current config), set_welcome (welcome screen), set_rules (rules channel), set_verification (level), set_onboarding (prompts & defaults).'),
|
|
7
|
+
guild_id: z.string().optional()
|
|
8
|
+
.describe('Guild ID. Defaults to DISCORD_GUILD_ID env var.'),
|
|
9
|
+
description: z.string().optional()
|
|
10
|
+
.describe('Welcome screen description text (set_welcome).'),
|
|
11
|
+
welcome_channels: z.array(z.record(z.unknown())).optional()
|
|
12
|
+
.describe('Welcome screen channels: [{channel_id, description, emoji_name?}] (set_welcome).'),
|
|
13
|
+
rules_channel: z.string().optional()
|
|
14
|
+
.describe('Channel name or ID for rules (set_rules).'),
|
|
15
|
+
system_channel: z.string().optional()
|
|
16
|
+
.describe('Channel name or ID for system messages (set_rules).'),
|
|
17
|
+
verification_level: z.enum(['none', 'low', 'medium', 'high', 'very_high']).optional()
|
|
18
|
+
.describe('Verification level (set_verification). none=unrestricted, low=email, medium=5min, high=10min, very_high=phone.'),
|
|
19
|
+
prompts: z.array(z.record(z.unknown())).optional()
|
|
20
|
+
.describe('Onboarding prompts array (set_onboarding). Each: {title, options: [{title, description?, emoji_name?, channel_ids?, role_ids?}], single_select?, required?, in_onboarding?}'),
|
|
21
|
+
default_channels: z.array(z.string()).optional()
|
|
22
|
+
.describe('Default channel IDs for new members (set_onboarding).'),
|
|
23
|
+
enabled: z.boolean().optional()
|
|
24
|
+
.describe('Enable/disable onboarding (set_onboarding).'),
|
|
25
|
+
};
|
|
26
|
+
export const discordOnboardingDescription = 'Discord server onboarding and setup. Actions: get, set_welcome, set_rules, set_verification, set_onboarding.';
|
|
27
|
+
// ── Get ────────────────────────────────────────────────────────
|
|
28
|
+
async function handleGet(guildId) {
|
|
29
|
+
// Fetch guild info, welcome screen, and onboarding in sequence
|
|
30
|
+
const guildRes = await discord.getGuild(guildId);
|
|
31
|
+
const welcomeRes = await discord.getWelcomeScreen(guildId);
|
|
32
|
+
const onboardingRes = await discord.getOnboarding(guildId);
|
|
33
|
+
const lines = ['**Server Setup Status:**\n'];
|
|
34
|
+
// Guild settings
|
|
35
|
+
if (guildRes.ok && guildRes.data) {
|
|
36
|
+
const g = guildRes.data;
|
|
37
|
+
const verificationNames = ['None', 'Low (email)', 'Medium (5min)', 'High (10min)', 'Very High (phone)'];
|
|
38
|
+
lines.push(`Verification: ${verificationNames[g.verification_level] || g.verification_level}`);
|
|
39
|
+
lines.push(`Rules channel: ${g.rules_channel_id || 'not set'}`);
|
|
40
|
+
lines.push(`System channel: ${g.system_channel_id || 'not set'}`);
|
|
41
|
+
const hasWelcome = g.features.includes('WELCOME_SCREEN_ENABLED');
|
|
42
|
+
lines.push(`Welcome screen: ${hasWelcome ? 'enabled' : 'disabled'}`);
|
|
43
|
+
const hasCommunity = g.features.includes('COMMUNITY');
|
|
44
|
+
lines.push(`Community: ${hasCommunity ? 'enabled' : 'disabled'}`);
|
|
45
|
+
lines.push('');
|
|
46
|
+
}
|
|
47
|
+
// Welcome screen
|
|
48
|
+
if (welcomeRes.ok && welcomeRes.data) {
|
|
49
|
+
const w = welcomeRes.data;
|
|
50
|
+
lines.push('**Welcome Screen:**');
|
|
51
|
+
lines.push(`Description: ${w.description || '(none)'}`);
|
|
52
|
+
if (w.welcome_channels.length > 0) {
|
|
53
|
+
for (const ch of w.welcome_channels) {
|
|
54
|
+
lines.push(` <#${ch.channel_id}> — ${ch.description}${ch.emoji_name ? ` ${ch.emoji_name}` : ''}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
lines.push(' (no channels configured)');
|
|
59
|
+
}
|
|
60
|
+
lines.push('');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
lines.push('**Welcome Screen:** not configured or requires Community\n');
|
|
64
|
+
}
|
|
65
|
+
// Onboarding
|
|
66
|
+
if (onboardingRes.ok && onboardingRes.data) {
|
|
67
|
+
const o = onboardingRes.data;
|
|
68
|
+
lines.push('**Onboarding:**');
|
|
69
|
+
lines.push(`Enabled: ${o.enabled}`);
|
|
70
|
+
lines.push(`Default channels: ${o.default_channel_ids.length > 0 ? o.default_channel_ids.map(id => `<#${id}>`).join(', ') : 'none'}`);
|
|
71
|
+
if (o.prompts.length > 0) {
|
|
72
|
+
lines.push(`Prompts (${o.prompts.length}):`);
|
|
73
|
+
for (const p of o.prompts) {
|
|
74
|
+
const opts = p.options.map(opt => opt.title).join(', ');
|
|
75
|
+
lines.push(` "${p.title}" (${p.options.length} options${p.required ? ', required' : ''}${p.single_select ? ', single' : ', multi'}): ${opts}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
lines.push('Prompts: none');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
lines.push('**Onboarding:** not configured');
|
|
84
|
+
}
|
|
85
|
+
return text(lines.join('\n'));
|
|
86
|
+
}
|
|
87
|
+
// ── Set Welcome ────────────────────────────────────────────────
|
|
88
|
+
async function handleSetWelcome(guildId, args) {
|
|
89
|
+
const data = { enabled: true };
|
|
90
|
+
if (args.description !== undefined)
|
|
91
|
+
data.description = args.description;
|
|
92
|
+
if (args.welcome_channels)
|
|
93
|
+
data.welcome_channels = args.welcome_channels;
|
|
94
|
+
const res = await discord.setWelcomeScreen(guildId, data);
|
|
95
|
+
if (res.error)
|
|
96
|
+
return text(res.error);
|
|
97
|
+
return text(`Updated welcome screen.${args.description ? ` Description: "${args.description}"` : ''}${args.welcome_channels ? ` Channels: ${args.welcome_channels.length}` : ''}`);
|
|
98
|
+
}
|
|
99
|
+
// ── Set Rules ──────────────────────────────────────────────────
|
|
100
|
+
async function handleSetRules(guildId, args) {
|
|
101
|
+
if (!args.rules_channel && !args.system_channel) {
|
|
102
|
+
return text('Provide rules_channel and/or system_channel.');
|
|
103
|
+
}
|
|
104
|
+
const data = {};
|
|
105
|
+
if (args.rules_channel) {
|
|
106
|
+
const ch = await discord.resolveChannel(args.rules_channel, guildId);
|
|
107
|
+
if ('error' in ch)
|
|
108
|
+
return text(`Rules channel: ${ch.error}`);
|
|
109
|
+
data.rules_channel_id = ch.id;
|
|
110
|
+
}
|
|
111
|
+
if (args.system_channel) {
|
|
112
|
+
const ch = await discord.resolveChannel(args.system_channel, guildId);
|
|
113
|
+
if ('error' in ch)
|
|
114
|
+
return text(`System channel: ${ch.error}`);
|
|
115
|
+
data.system_channel_id = ch.id;
|
|
116
|
+
}
|
|
117
|
+
const res = await discord.editGuildSettings(guildId, data);
|
|
118
|
+
if (res.error)
|
|
119
|
+
return text(res.error);
|
|
120
|
+
const changes = Object.entries(data).map(([k, v]) => `${k}: ${v}`).join(', ');
|
|
121
|
+
return text(`Updated guild settings: ${changes}`);
|
|
122
|
+
}
|
|
123
|
+
// ── Set Verification ───────────────────────────────────────────
|
|
124
|
+
async function handleSetVerification(guildId, args) {
|
|
125
|
+
if (!args.verification_level) {
|
|
126
|
+
return text('verification_level is required.');
|
|
127
|
+
}
|
|
128
|
+
const level = discord.VERIFICATION_LEVELS[args.verification_level];
|
|
129
|
+
if (level === undefined) {
|
|
130
|
+
return text(`Unknown verification level "${args.verification_level}". Use: none, low, medium, high, very_high.`);
|
|
131
|
+
}
|
|
132
|
+
const res = await discord.editGuildSettings(guildId, { verification_level: level });
|
|
133
|
+
if (res.error)
|
|
134
|
+
return text(res.error);
|
|
135
|
+
return text(`Set verification level to ${args.verification_level} (${level}).`);
|
|
136
|
+
}
|
|
137
|
+
// ── Set Onboarding ─────────────────────────────────────────────
|
|
138
|
+
async function handleSetOnboarding(guildId, args) {
|
|
139
|
+
// GET current onboarding first, then merge
|
|
140
|
+
const currentRes = await discord.getOnboarding(guildId);
|
|
141
|
+
const current = (currentRes.ok && currentRes.data)
|
|
142
|
+
? currentRes.data
|
|
143
|
+
: { prompts: [], default_channel_ids: [], enabled: false };
|
|
144
|
+
const data = { ...current };
|
|
145
|
+
if (args.prompts !== undefined)
|
|
146
|
+
data.prompts = args.prompts;
|
|
147
|
+
if (args.default_channels !== undefined)
|
|
148
|
+
data.default_channel_ids = args.default_channels;
|
|
149
|
+
if (args.enabled !== undefined)
|
|
150
|
+
data.enabled = args.enabled;
|
|
151
|
+
const res = await discord.setOnboarding(guildId, data);
|
|
152
|
+
if (res.error)
|
|
153
|
+
return text(res.error);
|
|
154
|
+
const changes = [];
|
|
155
|
+
if (args.enabled !== undefined)
|
|
156
|
+
changes.push(`enabled: ${args.enabled}`);
|
|
157
|
+
if (args.prompts)
|
|
158
|
+
changes.push(`prompts: ${args.prompts.length}`);
|
|
159
|
+
if (args.default_channels)
|
|
160
|
+
changes.push(`default channels: ${args.default_channels.length}`);
|
|
161
|
+
return text(`Updated onboarding: ${changes.join(', ')}`);
|
|
162
|
+
}
|
|
163
|
+
// ── Main dispatcher ────────────────────────────────────────────
|
|
164
|
+
export async function handleDiscordOnboarding(args) {
|
|
165
|
+
const resolved = await discord.resolveGuildId(args.guild_id);
|
|
166
|
+
if ('error' in resolved)
|
|
167
|
+
return text(resolved.error);
|
|
168
|
+
const guildId = resolved.guildId;
|
|
169
|
+
switch (args.action) {
|
|
170
|
+
case 'get': return handleGet(guildId);
|
|
171
|
+
case 'set_welcome': return handleSetWelcome(guildId, args);
|
|
172
|
+
case 'set_rules': return handleSetRules(guildId, args);
|
|
173
|
+
case 'set_verification': return handleSetVerification(guildId, args);
|
|
174
|
+
case 'set_onboarding': return handleSetOnboarding(guildId, args);
|
|
175
|
+
default:
|
|
176
|
+
return text(`Unknown action "${args.action}". Use: get, set_welcome, set_rules, set_verification, set_onboarding.`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=discord-onboarding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord-onboarding.js","sourceRoot":"","sources":["../../src/tools/discord-onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,CAAU,CAAC;SAC/F,QAAQ,CAAC,uJAAuJ,CAAC;IACpK,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;SACxD,QAAQ,CAAC,kFAAkF,CAAC;IAC/F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACjC,QAAQ,CAAC,2CAA2C,CAAC;IACxD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,qDAAqD,CAAC;IAClE,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAU,CAAC,CAAC,QAAQ,EAAE;SAC3F,QAAQ,CAAC,gHAAgH,CAAC;IAC7H,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC/C,QAAQ,CAAC,6KAA6K,CAAC;IAC1L,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC7C,QAAQ,CAAC,uDAAuD,CAAC;IACpE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GACvC,8GAA8G,CAAC;AAEjH,kEAAkE;AAElE,KAAK,UAAU,SAAS,CAAC,OAAe;IACtC,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAa,CAAC,4BAA4B,CAAC,CAAC;IAEvD,iBAAiB;IACjB,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAKlB,CAAC;QACF,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/F,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,IAAI,SAAS,EAAE,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,IAAI,SAAS,EAAE,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,cAAc,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,iBAAiB;IACjB,IAAI,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,UAAU,CAAC,IAGpB,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC3E,CAAC;IAED,aAAa;IACb,IAAI,aAAa,CAAC,EAAE,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,aAAa,CAAC,IAKvB,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,IAAI,EAAE,CAAC,CAAC;YAClJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,kEAAkE;AAElE,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,IAGhD;IACC,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACxE,IAAI,IAAI,CAAC,gBAAgB;QAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAEzE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,OAAO,IAAI,CAAC,0BAA0B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrL,CAAC;AAED,kEAAkE;AAElE,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,IAG9C;IACC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,OAAO,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,OAAO,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,kEAAkE;AAElE,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,IAAqC;IACzF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,+BAA+B,IAAI,CAAC,kBAAkB,6CAA6C,CAAC,CAAC;IACnH,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,OAAO,IAAI,CAAC,6BAA6B,IAAI,CAAC,kBAAkB,KAAK,KAAK,IAAI,CAAC,CAAC;AAClF,CAAC;AAED,kEAAkE;AAElE,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,IAInD;IACC,2CAA2C;IAC3C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,UAAU,CAAC,IAA+B;QAC5C,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE7D,MAAM,IAAI,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5D,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;QAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC1F,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE5D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,gBAAgB;QAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7F,OAAO,IAAI,CAAC,uBAAuB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,kEAAkE;AAElE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAW7C;IACC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAEjC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,KAAK,CAAC,CAAC,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,KAAK,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,KAAK,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvD,KAAK,kBAAkB,CAAC,CAAC,OAAO,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrE,KAAK,gBAAgB,CAAC,CAAC,OAAO,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjE;YACE,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,wEAAwE,CAAC,CAAC;IACxH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const discordRoleSchema: {
|
|
3
|
+
action: z.ZodEnum<["create", "edit", "delete", "list", "assign", "remove"]>;
|
|
4
|
+
guild_id: z.ZodOptional<z.ZodString>;
|
|
5
|
+
role: z.ZodOptional<z.ZodString>;
|
|
6
|
+
name: z.ZodOptional<z.ZodString>;
|
|
7
|
+
color: z.ZodOptional<z.ZodString>;
|
|
8
|
+
hoist: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
+
mentionable: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
permissions: z.ZodOptional<z.ZodString>;
|
|
11
|
+
position: z.ZodOptional<z.ZodNumber>;
|
|
12
|
+
member: z.ZodOptional<z.ZodString>;
|
|
13
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
14
|
+
};
|
|
15
|
+
export declare const discordRoleDescription = "Discord role management. Actions: create, edit, delete, list, assign (role to member), remove (role from member).";
|
|
16
|
+
export declare function handleDiscordRole(args: {
|
|
17
|
+
action: string;
|
|
18
|
+
guild_id?: string;
|
|
19
|
+
role?: string;
|
|
20
|
+
name?: string;
|
|
21
|
+
color?: string;
|
|
22
|
+
hoist?: boolean;
|
|
23
|
+
mentionable?: boolean;
|
|
24
|
+
permissions?: string;
|
|
25
|
+
position?: number;
|
|
26
|
+
member?: string;
|
|
27
|
+
reason?: string;
|
|
28
|
+
}): Promise<{
|
|
29
|
+
content: {
|
|
30
|
+
type: "text";
|
|
31
|
+
text: string;
|
|
32
|
+
}[];
|
|
33
|
+
}>;
|
|
34
|
+
//# sourceMappingURL=discord-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord-role.d.ts","sourceRoot":"","sources":["../../src/tools/discord-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAuB7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,sHACkF,CAAC;AAuJtH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;;;;;GAeA"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import * as discord from '../services/discord.js';
|
|
3
|
+
import { text } from './response.js';
|
|
4
|
+
export const discordRoleSchema = {
|
|
5
|
+
action: z.enum(['create', 'edit', 'delete', 'list', 'assign', 'remove'])
|
|
6
|
+
.describe('Action: create, edit, delete, list, assign (to member), remove (from member).'),
|
|
7
|
+
guild_id: z.string().optional()
|
|
8
|
+
.describe('Guild ID. Defaults to DISCORD_GUILD_ID env var.'),
|
|
9
|
+
role: z.string().optional()
|
|
10
|
+
.describe('Role name or ID (required for edit/delete/assign/remove).'),
|
|
11
|
+
name: z.string().optional()
|
|
12
|
+
.describe('Role name (create required, edit optional).'),
|
|
13
|
+
color: z.string().optional()
|
|
14
|
+
.describe('Hex color e.g. "#ff0000" (create/edit).'),
|
|
15
|
+
hoist: z.boolean().optional()
|
|
16
|
+
.describe('Display separately in sidebar (create/edit).'),
|
|
17
|
+
mentionable: z.boolean().optional()
|
|
18
|
+
.describe('Allow @mention by anyone (create/edit).'),
|
|
19
|
+
permissions: z.string().optional()
|
|
20
|
+
.describe('Permission flags, comma-separated (create/edit). E.g. "SEND_MESSAGES,MANAGE_CHANNELS".'),
|
|
21
|
+
position: z.number().optional()
|
|
22
|
+
.describe('Sort position (edit only).'),
|
|
23
|
+
member: z.string().optional()
|
|
24
|
+
.describe('User name or ID (assign/remove actions).'),
|
|
25
|
+
reason: z.string().optional()
|
|
26
|
+
.describe('Audit log reason.'),
|
|
27
|
+
};
|
|
28
|
+
export const discordRoleDescription = 'Discord role management. Actions: create, edit, delete, list, assign (role to member), remove (role from member).';
|
|
29
|
+
// ── Create ─────────────────────────────────────────────────────
|
|
30
|
+
async function handleCreate(guildId, args) {
|
|
31
|
+
if (!args.name) {
|
|
32
|
+
return text('name is required for create action.');
|
|
33
|
+
}
|
|
34
|
+
const data = { name: args.name };
|
|
35
|
+
if (args.color) {
|
|
36
|
+
const hex = args.color.replace('#', '');
|
|
37
|
+
data.color = parseInt(hex, 16);
|
|
38
|
+
}
|
|
39
|
+
if (args.hoist !== undefined)
|
|
40
|
+
data.hoist = args.hoist;
|
|
41
|
+
if (args.mentionable !== undefined)
|
|
42
|
+
data.mentionable = args.mentionable;
|
|
43
|
+
if (args.permissions) {
|
|
44
|
+
try {
|
|
45
|
+
data.permissions = discord.resolvePermissions(args.permissions);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
return text(err.message);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const res = await discord.createRole(guildId, data);
|
|
52
|
+
if (res.error)
|
|
53
|
+
return text(res.error);
|
|
54
|
+
const role = res.data;
|
|
55
|
+
const colorStr = role.color ? ` #${role.color.toString(16).padStart(6, '0')}` : '';
|
|
56
|
+
return text(`Created role @${role.name} (${role.id})${colorStr}`);
|
|
57
|
+
}
|
|
58
|
+
// ── Edit ───────────────────────────────────────────────────────
|
|
59
|
+
async function handleEdit(guildId, args) {
|
|
60
|
+
if (!args.role) {
|
|
61
|
+
return text('role is required for edit action.');
|
|
62
|
+
}
|
|
63
|
+
const resolved = await discord.resolveRole(args.role, guildId);
|
|
64
|
+
if ('error' in resolved)
|
|
65
|
+
return text(resolved.error);
|
|
66
|
+
const data = {};
|
|
67
|
+
if (args.name !== undefined)
|
|
68
|
+
data.name = args.name;
|
|
69
|
+
if (args.color !== undefined) {
|
|
70
|
+
const hex = args.color.replace('#', '');
|
|
71
|
+
data.color = parseInt(hex, 16);
|
|
72
|
+
}
|
|
73
|
+
if (args.hoist !== undefined)
|
|
74
|
+
data.hoist = args.hoist;
|
|
75
|
+
if (args.mentionable !== undefined)
|
|
76
|
+
data.mentionable = args.mentionable;
|
|
77
|
+
if (args.permissions) {
|
|
78
|
+
try {
|
|
79
|
+
data.permissions = discord.resolvePermissions(args.permissions);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
return text(err.message);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (Object.keys(data).length === 0 && args.position === undefined) {
|
|
86
|
+
return text('No changes specified.');
|
|
87
|
+
}
|
|
88
|
+
const res = await discord.editRole(guildId, resolved.id, data);
|
|
89
|
+
if (res.error)
|
|
90
|
+
return text(res.error);
|
|
91
|
+
return text(`Updated role @${resolved.name} (${resolved.id}).`);
|
|
92
|
+
}
|
|
93
|
+
// ── Delete ─────────────────────────────────────────────────────
|
|
94
|
+
async function handleDelete(guildId, args) {
|
|
95
|
+
if (!args.role) {
|
|
96
|
+
return text('role is required for delete action.');
|
|
97
|
+
}
|
|
98
|
+
const resolved = await discord.resolveRole(args.role, guildId);
|
|
99
|
+
if ('error' in resolved)
|
|
100
|
+
return text(resolved.error);
|
|
101
|
+
const res = await discord.deleteRole(guildId, resolved.id);
|
|
102
|
+
if (res.error)
|
|
103
|
+
return text(res.error);
|
|
104
|
+
return text(`Deleted role @${resolved.name} (${resolved.id}).`);
|
|
105
|
+
}
|
|
106
|
+
// ── List ───────────────────────────────────────────────────────
|
|
107
|
+
async function handleList(guildId) {
|
|
108
|
+
const roles = await discord.getGuildRoles(guildId);
|
|
109
|
+
if ('error' in roles)
|
|
110
|
+
return text(roles.error);
|
|
111
|
+
const list = roles
|
|
112
|
+
.sort((a, b) => b.position - a.position);
|
|
113
|
+
const lines = list.map(r => {
|
|
114
|
+
const color = r.color ? ` #${r.color.toString(16).padStart(6, '0')}` : '';
|
|
115
|
+
const flags = [];
|
|
116
|
+
if (r.hoist)
|
|
117
|
+
flags.push('hoisted');
|
|
118
|
+
if (r.mentionable)
|
|
119
|
+
flags.push('mentionable');
|
|
120
|
+
if (r.managed)
|
|
121
|
+
flags.push('managed');
|
|
122
|
+
const flagStr = flags.length > 0 ? ` [${flags.join(', ')}]` : '';
|
|
123
|
+
return ` @${r.name} (${r.id})${color}${flagStr}`;
|
|
124
|
+
});
|
|
125
|
+
return text(`Roles (${list.length}):\n${lines.join('\n')}`);
|
|
126
|
+
}
|
|
127
|
+
// ── Assign ─────────────────────────────────────────────────────
|
|
128
|
+
async function handleAssign(guildId, args) {
|
|
129
|
+
if (!args.role)
|
|
130
|
+
return text('role is required for assign action.');
|
|
131
|
+
if (!args.member)
|
|
132
|
+
return text('member is required for assign action.');
|
|
133
|
+
const roleResolved = await discord.resolveRole(args.role, guildId);
|
|
134
|
+
if ('error' in roleResolved)
|
|
135
|
+
return text(roleResolved.error);
|
|
136
|
+
const userResolved = await discord.resolveUser(args.member, guildId);
|
|
137
|
+
if ('error' in userResolved)
|
|
138
|
+
return text(userResolved.error);
|
|
139
|
+
const res = await discord.addMemberRole(guildId, userResolved.id, roleResolved.id);
|
|
140
|
+
if (res.error)
|
|
141
|
+
return text(res.error);
|
|
142
|
+
return text(`Assigned @${roleResolved.name} to ${userResolved.name}.`);
|
|
143
|
+
}
|
|
144
|
+
// ── Remove ─────────────────────────────────────────────────────
|
|
145
|
+
async function handleRemove(guildId, args) {
|
|
146
|
+
if (!args.role)
|
|
147
|
+
return text('role is required for remove action.');
|
|
148
|
+
if (!args.member)
|
|
149
|
+
return text('member is required for remove action.');
|
|
150
|
+
const roleResolved = await discord.resolveRole(args.role, guildId);
|
|
151
|
+
if ('error' in roleResolved)
|
|
152
|
+
return text(roleResolved.error);
|
|
153
|
+
const userResolved = await discord.resolveUser(args.member, guildId);
|
|
154
|
+
if ('error' in userResolved)
|
|
155
|
+
return text(userResolved.error);
|
|
156
|
+
const res = await discord.removeMemberRole(guildId, userResolved.id, roleResolved.id);
|
|
157
|
+
if (res.error)
|
|
158
|
+
return text(res.error);
|
|
159
|
+
return text(`Removed @${roleResolved.name} from ${userResolved.name}.`);
|
|
160
|
+
}
|
|
161
|
+
// ── Main dispatcher ────────────────────────────────────────────
|
|
162
|
+
export async function handleDiscordRole(args) {
|
|
163
|
+
const resolved = await discord.resolveGuildId(args.guild_id);
|
|
164
|
+
if ('error' in resolved)
|
|
165
|
+
return text(resolved.error);
|
|
166
|
+
const guildId = resolved.guildId;
|
|
167
|
+
switch (args.action) {
|
|
168
|
+
case 'create': return handleCreate(guildId, args);
|
|
169
|
+
case 'edit': return handleEdit(guildId, args);
|
|
170
|
+
case 'delete': return handleDelete(guildId, args);
|
|
171
|
+
case 'list': return handleList(guildId);
|
|
172
|
+
case 'assign': return handleAssign(guildId, args);
|
|
173
|
+
case 'remove': return handleRemove(guildId, args);
|
|
174
|
+
default:
|
|
175
|
+
return text(`Unknown action "${args.action}". Use: create, edit, delete, list, assign, remove.`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=discord-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord-role.js","sourceRoot":"","sources":["../../src/tools/discord-role.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const discordThreadSchema: {
|
|
3
|
+
action: z.ZodEnum<["create", "archive", "unarchive", "lock", "delete"]>;
|
|
4
|
+
guild_id: z.ZodOptional<z.ZodString>;
|
|
5
|
+
channel: z.ZodOptional<z.ZodString>;
|
|
6
|
+
thread: z.ZodOptional<z.ZodString>;
|
|
7
|
+
name: z.ZodOptional<z.ZodString>;
|
|
8
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
9
|
+
auto_archive: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
private: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
};
|
|
12
|
+
export declare const discordThreadDescription = "Discord thread management. Actions: create (from message or standalone), archive, unarchive, lock, delete.";
|
|
13
|
+
export declare function handleDiscordThread(args: {
|
|
14
|
+
action: string;
|
|
15
|
+
guild_id?: string;
|
|
16
|
+
channel?: string;
|
|
17
|
+
thread?: string;
|
|
18
|
+
name?: string;
|
|
19
|
+
message_id?: string;
|
|
20
|
+
auto_archive?: number;
|
|
21
|
+
private?: boolean;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
content: {
|
|
24
|
+
type: "text";
|
|
25
|
+
text: string;
|
|
26
|
+
}[];
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=discord-thread.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord-thread.d.ts","sourceRoot":"","sources":["../../src/tools/discord-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,mBAAmB;;;;;;;;;CAiB/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,+GACyE,CAAC;AAkE/G,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;;;;;GAUA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import * as discord from '../services/discord.js';
|
|
3
|
+
import { text } from './response.js';
|
|
4
|
+
export const discordThreadSchema = {
|
|
5
|
+
action: z.enum(['create', 'archive', 'unarchive', 'lock', 'delete'])
|
|
6
|
+
.describe('Action: create, archive, unarchive, lock, delete.'),
|
|
7
|
+
guild_id: z.string().optional()
|
|
8
|
+
.describe('Guild ID for channel name resolution. Defaults to DISCORD_GUILD_ID env var.'),
|
|
9
|
+
channel: z.string().optional()
|
|
10
|
+
.describe('Parent channel name or ID (create only).'),
|
|
11
|
+
thread: z.string().optional()
|
|
12
|
+
.describe('Thread ID (required for archive/unarchive/lock/delete).'),
|
|
13
|
+
name: z.string().optional()
|
|
14
|
+
.describe('Thread name (create required).'),
|
|
15
|
+
message_id: z.string().optional()
|
|
16
|
+
.describe('Create thread from this message (create only). Omit for standalone thread.'),
|
|
17
|
+
auto_archive: z.number().optional()
|
|
18
|
+
.describe('Auto-archive duration in minutes: 60, 1440, 4320, or 10080 (create only).'),
|
|
19
|
+
private: z.boolean().optional()
|
|
20
|
+
.describe('Create private thread (create only, default false).'),
|
|
21
|
+
};
|
|
22
|
+
export const discordThreadDescription = 'Discord thread management. Actions: create (from message or standalone), archive, unarchive, lock, delete.';
|
|
23
|
+
// ── Create ─────────────────────────────────────────────────────
|
|
24
|
+
async function handleCreate(args) {
|
|
25
|
+
if (!args.channel)
|
|
26
|
+
return text('channel is required for create action.');
|
|
27
|
+
if (!args.name)
|
|
28
|
+
return text('name is required for create action.');
|
|
29
|
+
let channelId = args.channel;
|
|
30
|
+
if (!/^\d{17,20}$/.test(channelId)) {
|
|
31
|
+
const resolved = await discord.resolveGuildId(args.guild_id);
|
|
32
|
+
if ('error' in resolved)
|
|
33
|
+
return text(resolved.error);
|
|
34
|
+
const ch = await discord.resolveChannel(args.channel, resolved.guildId);
|
|
35
|
+
if ('error' in ch)
|
|
36
|
+
return text(ch.error);
|
|
37
|
+
channelId = ch.id;
|
|
38
|
+
}
|
|
39
|
+
const data = {
|
|
40
|
+
name: args.name,
|
|
41
|
+
auto_archive_duration: args.auto_archive || 1440,
|
|
42
|
+
};
|
|
43
|
+
let res;
|
|
44
|
+
if (args.message_id) {
|
|
45
|
+
// Create thread from message
|
|
46
|
+
res = await discord.createThreadFromMessage(channelId, args.message_id, data);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// Standalone thread
|
|
50
|
+
data.type = args.private ? 12 : 11; // 11 = public, 12 = private
|
|
51
|
+
res = await discord.createThread(channelId, data);
|
|
52
|
+
}
|
|
53
|
+
if (res.error)
|
|
54
|
+
return text(res.error);
|
|
55
|
+
const thread = res.data;
|
|
56
|
+
return text(`Created thread "${thread.name}" (${thread.id})${args.message_id ? ` from message ${args.message_id}` : ''}.`);
|
|
57
|
+
}
|
|
58
|
+
// ── Archive / Unarchive / Lock ─────────────────────────────────
|
|
59
|
+
async function handleModify(args, updates, actionName) {
|
|
60
|
+
if (!args.thread)
|
|
61
|
+
return text(`thread ID is required for ${actionName} action.`);
|
|
62
|
+
const res = await discord.modifyThread(args.thread, updates);
|
|
63
|
+
if (res.error)
|
|
64
|
+
return text(res.error);
|
|
65
|
+
return text(`Thread ${args.thread} ${actionName}d.`);
|
|
66
|
+
}
|
|
67
|
+
// ── Delete ─────────────────────────────────────────────────────
|
|
68
|
+
async function handleDelete(args) {
|
|
69
|
+
if (!args.thread)
|
|
70
|
+
return text('thread ID is required for delete action.');
|
|
71
|
+
const res = await discord.deleteThread(args.thread);
|
|
72
|
+
if (res.error)
|
|
73
|
+
return text(res.error);
|
|
74
|
+
return text(`Deleted thread ${args.thread}.`);
|
|
75
|
+
}
|
|
76
|
+
// ── Main dispatcher ────────────────────────────────────────────
|
|
77
|
+
export async function handleDiscordThread(args) {
|
|
78
|
+
switch (args.action) {
|
|
79
|
+
case 'create': return handleCreate(args);
|
|
80
|
+
case 'archive': return handleModify(args, { archived: true }, 'archive');
|
|
81
|
+
case 'unarchive': return handleModify(args, { archived: false }, 'unarchive');
|
|
82
|
+
case 'lock': return handleModify(args, { locked: true }, 'lock');
|
|
83
|
+
case 'delete': return handleDelete(args);
|
|
84
|
+
default:
|
|
85
|
+
return text(`Unknown action "${args.action}". Use: create, archive, unarchive, lock, delete.`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=discord-thread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord-thread.js","sourceRoot":"","sources":["../../src/tools/discord-thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;SAC1E,QAAQ,CAAC,mDAAmD,CAAC;IAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,yDAAyD,CAAC;IACtE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACxB,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B,QAAQ,CAAC,4EAA4E,CAAC;IACzF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,QAAQ,CAAC,2EAA2E,CAAC;IACxF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,qDAAqD,CAAC;CACnE,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GACnC,4GAA4G,CAAC;AAE/G,kEAAkE;AAElE,KAAK,UAAU,YAAY,CAAC,IAG3B;IACC,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACzE,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAEnE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,OAAO,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,OAAO,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACzC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GAA4B;QACpC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,qBAAqB,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;KACjD,CAAC;IAEF,IAAI,GAA4B,CAAC;IAEjC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,6BAA6B;QAC7B,GAAG,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACN,oBAAoB;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,4BAA4B;QAChE,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAoC,CAAC;IACxD,OAAO,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7H,CAAC;AAED,kEAAkE;AAElE,KAAK,UAAU,YAAY,CAAC,IAAyB,EAAE,OAAgC,EAAE,UAAkB;IACzG,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,6BAA6B,UAAU,UAAU,CAAC,CAAC;IAEjF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,kEAAkE;AAElE,KAAK,UAAU,YAAY,CAAC,IAAyB;IACnD,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAE1E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,OAAO,IAAI,CAAC,kBAAkB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,kEAAkE;AAElE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IASzC;IACC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,KAAK,SAAS,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;QACzE,KAAK,WAAW,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9E,KAAK,MAAM,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACjE,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC;YACE,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,mDAAmD,CAAC,CAAC;IACnG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const discordWebhookSchema: {
|
|
3
|
+
action: z.ZodEnum<["create", "edit", "delete", "list", "execute"]>;
|
|
4
|
+
guild_id: z.ZodOptional<z.ZodString>;
|
|
5
|
+
channel: z.ZodOptional<z.ZodString>;
|
|
6
|
+
webhook_id: z.ZodOptional<z.ZodString>;
|
|
7
|
+
webhook_token: z.ZodOptional<z.ZodString>;
|
|
8
|
+
name: z.ZodOptional<z.ZodString>;
|
|
9
|
+
avatar_url: z.ZodOptional<z.ZodString>;
|
|
10
|
+
content: z.ZodOptional<z.ZodString>;
|
|
11
|
+
username: z.ZodOptional<z.ZodString>;
|
|
12
|
+
embeds: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
|
|
13
|
+
};
|
|
14
|
+
export declare const discordWebhookDescription = "Discord webhook management. Actions: create, edit, delete, list, execute (send message as webhook).";
|
|
15
|
+
export declare function handleDiscordWebhook(args: {
|
|
16
|
+
action: string;
|
|
17
|
+
guild_id?: string;
|
|
18
|
+
channel?: string;
|
|
19
|
+
webhook_id?: string;
|
|
20
|
+
webhook_token?: string;
|
|
21
|
+
name?: string;
|
|
22
|
+
avatar_url?: string;
|
|
23
|
+
content?: string;
|
|
24
|
+
username?: string;
|
|
25
|
+
embeds?: Record<string, unknown>[];
|
|
26
|
+
}): Promise<{
|
|
27
|
+
content: {
|
|
28
|
+
type: "text";
|
|
29
|
+
text: string;
|
|
30
|
+
}[];
|
|
31
|
+
}>;
|
|
32
|
+
//# sourceMappingURL=discord-webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord-webhook.d.ts","sourceRoot":"","sources":["../../src/tools/discord-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;CAqBhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,wGACiE,CAAC;AA8HxG,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACpC;;;;;GAUA"}
|