agent4discord 0.1.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.
- package/README.ko.md +134 -0
- package/README.md +170 -0
- package/dist/bot.d.ts +1 -0
- package/dist/bot.js +114 -0
- package/dist/bot.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +27 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/index.d.ts +9 -0
- package/dist/commands/index.js +44 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.js +152 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/model.d.ts +5 -0
- package/dist/commands/model.js +65 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/resume.d.ts +6 -0
- package/dist/commands/resume.js +113 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.js +49 -0
- package/dist/config.js.map +1 -0
- package/dist/formatters/chunker.d.ts +5 -0
- package/dist/formatters/chunker.js +46 -0
- package/dist/formatters/chunker.js.map +1 -0
- package/dist/formatters/embedBuilder.d.ts +28 -0
- package/dist/formatters/embedBuilder.js +32 -0
- package/dist/formatters/embedBuilder.js.map +1 -0
- package/dist/formatters/toolFormatter.d.ts +4 -0
- package/dist/formatters/toolFormatter.js +90 -0
- package/dist/formatters/toolFormatter.js.map +1 -0
- package/dist/guild.d.ts +22 -0
- package/dist/guild.js +41 -0
- package/dist/guild.js.map +1 -0
- package/dist/interactions/directoryBrowser.d.ts +61 -0
- package/dist/interactions/directoryBrowser.js +611 -0
- package/dist/interactions/directoryBrowser.js.map +1 -0
- package/dist/interactions/index.d.ts +5 -0
- package/dist/interactions/index.js +92 -0
- package/dist/interactions/index.js.map +1 -0
- package/dist/interactions/permissionHandler.d.ts +11 -0
- package/dist/interactions/permissionHandler.js +107 -0
- package/dist/interactions/permissionHandler.js.map +1 -0
- package/dist/interactions/sessionControls.d.ts +9 -0
- package/dist/interactions/sessionControls.js +95 -0
- package/dist/interactions/sessionControls.js.map +1 -0
- package/dist/sessions/eventHandler.d.ts +3 -0
- package/dist/sessions/eventHandler.js +209 -0
- package/dist/sessions/eventHandler.js.map +1 -0
- package/dist/sessions/sessionManager.d.ts +29 -0
- package/dist/sessions/sessionManager.js +203 -0
- package/dist/sessions/sessionManager.js.map +1 -0
- package/dist/sessions/sessionStore.d.ts +4 -0
- package/dist/sessions/sessionStore.js +29 -0
- package/dist/sessions/sessionStore.js.map +1 -0
- package/dist/sessions/streamHandler.d.ts +18 -0
- package/dist/sessions/streamHandler.js +119 -0
- package/dist/sessions/streamHandler.js.map +1 -0
- package/dist/sessions/toolProgress.d.ts +14 -0
- package/dist/sessions/toolProgress.js +65 -0
- package/dist/sessions/toolProgress.js.map +1 -0
- package/dist/sessions/usageTracker.d.ts +12 -0
- package/dist/sessions/usageTracker.js +222 -0
- package/dist/sessions/usageTracker.js.map +1 -0
- package/dist/setup.d.ts +1 -0
- package/dist/setup.js +101 -0
- package/dist/setup.js.map +1 -0
- package/dist/utils/filesystem.d.ts +11 -0
- package/dist/utils/filesystem.js +26 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.js +3 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/plugins.d.ts +6 -0
- package/dist/utils/plugins.js +66 -0
- package/dist/utils/plugins.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const TOOL_EMOJIS = {
|
|
2
|
+
Edit: '\u270F\uFE0F',
|
|
3
|
+
Write: '\uD83D\uDCDD',
|
|
4
|
+
Read: '\uD83D\uDCD6',
|
|
5
|
+
Bash: '\uD83D\uDCBB',
|
|
6
|
+
Glob: '\uD83D\uDD0D',
|
|
7
|
+
Grep: '\uD83D\uDD0E',
|
|
8
|
+
Agent: '\uD83E\uDD16',
|
|
9
|
+
WebSearch: '\uD83C\uDF10',
|
|
10
|
+
WebFetch: '\uD83C\uDF10',
|
|
11
|
+
};
|
|
12
|
+
export function getToolEmoji(toolName) {
|
|
13
|
+
return TOOL_EMOJIS[toolName] || '\uD83D\uDD27';
|
|
14
|
+
}
|
|
15
|
+
export function formatThreadName(toolName, input) {
|
|
16
|
+
const emoji = getToolEmoji(toolName);
|
|
17
|
+
let summary = '';
|
|
18
|
+
switch (toolName) {
|
|
19
|
+
case 'Edit':
|
|
20
|
+
case 'Write':
|
|
21
|
+
case 'Read':
|
|
22
|
+
summary = input.file_path || input.path || 'unknown';
|
|
23
|
+
break;
|
|
24
|
+
case 'Bash':
|
|
25
|
+
summary = input.command?.slice(0, 60) || 'command';
|
|
26
|
+
break;
|
|
27
|
+
case 'Glob':
|
|
28
|
+
summary = input.pattern || 'pattern';
|
|
29
|
+
break;
|
|
30
|
+
case 'Grep':
|
|
31
|
+
summary = input.pattern || 'search';
|
|
32
|
+
break;
|
|
33
|
+
case 'Agent':
|
|
34
|
+
summary = input.description || input.prompt?.slice(0, 40) || 'task';
|
|
35
|
+
break;
|
|
36
|
+
case 'WebSearch':
|
|
37
|
+
case 'WebFetch':
|
|
38
|
+
summary = input.query || input.url || 'search';
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
summary = JSON.stringify(input).slice(0, 60);
|
|
42
|
+
}
|
|
43
|
+
const name = `${emoji} ${toolName}: ${summary}`;
|
|
44
|
+
return name.slice(0, 100);
|
|
45
|
+
}
|
|
46
|
+
export function formatToolInput(toolName, input) {
|
|
47
|
+
switch (toolName) {
|
|
48
|
+
case 'Edit': {
|
|
49
|
+
let text = `**File:** \`${input.file_path || 'unknown'}\`\n`;
|
|
50
|
+
if (input.old_string && input.new_string) {
|
|
51
|
+
text += '\n```diff\n';
|
|
52
|
+
for (const line of String(input.old_string).split('\n')) {
|
|
53
|
+
text += `- ${line}\n`;
|
|
54
|
+
}
|
|
55
|
+
for (const line of String(input.new_string).split('\n')) {
|
|
56
|
+
text += `+ ${line}\n`;
|
|
57
|
+
}
|
|
58
|
+
text += '```';
|
|
59
|
+
}
|
|
60
|
+
return truncate(text, 4000);
|
|
61
|
+
}
|
|
62
|
+
case 'Write':
|
|
63
|
+
return truncate(`**File:** \`${input.file_path || 'unknown'}\`\n\n\`\`\`\n${input.content || ''}\n\`\`\``, 4000);
|
|
64
|
+
case 'Read':
|
|
65
|
+
return `**File:** \`${input.file_path || 'unknown'}\``;
|
|
66
|
+
case 'Bash':
|
|
67
|
+
return truncate(`**Command:**\n\`\`\`bash\n${input.command || ''}\n\`\`\``, 4000);
|
|
68
|
+
case 'Glob':
|
|
69
|
+
return `**Pattern:** \`${input.pattern || ''}\``;
|
|
70
|
+
case 'Grep':
|
|
71
|
+
return `**Pattern:** \`${input.pattern || ''}\`${input.path ? `\n**Path:** \`${input.path}\`` : ''}`;
|
|
72
|
+
default:
|
|
73
|
+
return truncate(`\`\`\`json\n${JSON.stringify(input, null, 2)}\n\`\`\``, 4000);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export function formatToolResult(toolName, result) {
|
|
77
|
+
if (typeof result === 'string') {
|
|
78
|
+
if (toolName === 'Bash') {
|
|
79
|
+
return truncate(`\`\`\`\n${result}\n\`\`\``, 4000);
|
|
80
|
+
}
|
|
81
|
+
return truncate(result, 4000);
|
|
82
|
+
}
|
|
83
|
+
return truncate(JSON.stringify(result, null, 2), 4000);
|
|
84
|
+
}
|
|
85
|
+
function truncate(text, maxLength) {
|
|
86
|
+
if (text.length <= maxLength)
|
|
87
|
+
return text;
|
|
88
|
+
return text.slice(0, maxLength - 20) + '\n... (truncated)';
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=toolFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolFormatter.js","sourceRoot":"","sources":["../../src/formatters/toolFormatter.ts"],"names":[],"mappings":"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"}
|
package/dist/guild.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface GuildConfig {
|
|
2
|
+
guildId: string;
|
|
3
|
+
generalCategoryId: string;
|
|
4
|
+
sessionsCategoryId: string;
|
|
5
|
+
generalChannelId: string;
|
|
6
|
+
sessionChannelId: string;
|
|
7
|
+
usageChannelId?: string;
|
|
8
|
+
usageMessageId?: string;
|
|
9
|
+
initializedAt: string;
|
|
10
|
+
initializedBy: string;
|
|
11
|
+
activeSessions: Record<string, SessionEntry>;
|
|
12
|
+
}
|
|
13
|
+
export interface SessionEntry {
|
|
14
|
+
sessionId: string;
|
|
15
|
+
cwd: string;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
userId: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function loadGuildConfig(guildId: string): GuildConfig | null;
|
|
20
|
+
export declare function saveGuildConfig(config: GuildConfig): void;
|
|
21
|
+
export declare function updateGuildConfig(guildId: string, partial: Partial<Omit<GuildConfig, 'guildId'>>): GuildConfig | null;
|
|
22
|
+
export declare function deleteGuildSession(guildId: string, channelId: string): void;
|
package/dist/guild.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { CONFIG_DIR } from './config.js';
|
|
4
|
+
const GUILDS_DIR = path.join(CONFIG_DIR, 'guilds');
|
|
5
|
+
function guildPath(guildId) {
|
|
6
|
+
return path.join(GUILDS_DIR, `${guildId}.json`);
|
|
7
|
+
}
|
|
8
|
+
export function loadGuildConfig(guildId) {
|
|
9
|
+
const filePath = guildPath(guildId);
|
|
10
|
+
if (!fs.existsSync(filePath))
|
|
11
|
+
return null;
|
|
12
|
+
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
13
|
+
return JSON.parse(raw);
|
|
14
|
+
}
|
|
15
|
+
export function saveGuildConfig(config) {
|
|
16
|
+
if (!fs.existsSync(GUILDS_DIR)) {
|
|
17
|
+
fs.mkdirSync(GUILDS_DIR, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
const data = JSON.stringify(config, null, 2) + '\n';
|
|
20
|
+
const target = guildPath(config.guildId);
|
|
21
|
+
const tmp = target + '.tmp';
|
|
22
|
+
// Atomic write: write to temp file, then rename
|
|
23
|
+
fs.writeFileSync(tmp, data, { encoding: 'utf-8' });
|
|
24
|
+
fs.renameSync(tmp, target);
|
|
25
|
+
}
|
|
26
|
+
export function updateGuildConfig(guildId, partial) {
|
|
27
|
+
const config = loadGuildConfig(guildId);
|
|
28
|
+
if (!config)
|
|
29
|
+
return null;
|
|
30
|
+
const updated = { ...config, ...partial, guildId: config.guildId };
|
|
31
|
+
saveGuildConfig(updated);
|
|
32
|
+
return updated;
|
|
33
|
+
}
|
|
34
|
+
export function deleteGuildSession(guildId, channelId) {
|
|
35
|
+
const config = loadGuildConfig(guildId);
|
|
36
|
+
if (!config)
|
|
37
|
+
return;
|
|
38
|
+
delete config.activeSessions[channelId];
|
|
39
|
+
saveGuildConfig(config);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=guild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guild.js","sourceRoot":"","sources":["../src/guild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAEnD,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;IAE5B,gDAAgD;IAChD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,OAA8C;IAE9C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACnE,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAAiB;IACnE,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,OAAO,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ActionRowBuilder, EmbedBuilder, type ButtonInteraction, type MessageActionRowComponentBuilder, type StringSelectMenuInteraction } from 'discord.js';
|
|
2
|
+
export declare function displayPath(fullPath: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* Build the directory browser message with embed, select menu, and buttons.
|
|
5
|
+
*/
|
|
6
|
+
export declare function buildBrowserMessage(dirPath: string, page?: number): Promise<{
|
|
7
|
+
embeds: EmbedBuilder[];
|
|
8
|
+
components: ActionRowBuilder<MessageActionRowComponentBuilder>[];
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Handle directory selection from the StringSelectMenu.
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleDirectoryBrowse(interaction: StringSelectMenuInteraction): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Handle the "Parent" button -- navigate to the parent directory.
|
|
16
|
+
*/
|
|
17
|
+
export declare function handleDirectoryParent(interaction: ButtonInteraction): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Handle the "Cancel" button -- reset to home directory.
|
|
20
|
+
*/
|
|
21
|
+
export declare function handleDirectoryCancel(interaction: ButtonInteraction): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Handle the "Previous" pagination button.
|
|
24
|
+
*/
|
|
25
|
+
export declare function handleDirectoryPrev(interaction: ButtonInteraction): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Handle the "Next" pagination button.
|
|
28
|
+
*/
|
|
29
|
+
export declare function handleDirectoryNext(interaction: ButtonInteraction): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Handle the "Session Start" button -- show ephemeral model selection message.
|
|
32
|
+
*/
|
|
33
|
+
export declare function handleSessionStart(interaction: ButtonInteraction): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Handle model select menu -- update the embed footer with the chosen model.
|
|
36
|
+
*/
|
|
37
|
+
export declare function handleModelSelect(interaction: StringSelectMenuInteraction): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Handle model confirm button -- create session channel and start a Claude Code session.
|
|
40
|
+
*/
|
|
41
|
+
export declare function handleModelConfirm(interaction: ButtonInteraction): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Handle model cancel button -- dismiss the ephemeral model picker.
|
|
44
|
+
*/
|
|
45
|
+
export declare function handleModelCancel(interaction: ButtonInteraction): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Handle the "Resume Session" button -- switch to session picker mode.
|
|
48
|
+
*/
|
|
49
|
+
export declare function handleResumeSession(interaction: ButtonInteraction): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Handle session selection from the resume picker StringSelectMenu.
|
|
52
|
+
*/
|
|
53
|
+
export declare function handleResumeBrowse(interaction: StringSelectMenuInteraction): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Handle the "Back" button in the resume picker -- return to directory browser.
|
|
56
|
+
*/
|
|
57
|
+
export declare function handleResumeBack(interaction: ButtonInteraction): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Handle the "Resume" button in the resume picker -- resume the selected session.
|
|
60
|
+
*/
|
|
61
|
+
export declare function handleResumeStart(interaction: ButtonInteraction): Promise<void>;
|