@ai-support-agent/cli 0.0.5-beta.3 → 0.0.5-beta.5
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/dist/api-client.d.ts +18 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +8 -0
- package/dist/api-client.js.map +1 -1
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +28 -2
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/claude-code-runner.d.ts +31 -1
- package/dist/commands/claude-code-runner.d.ts.map +1 -1
- package/dist/commands/claude-code-runner.js +186 -17
- package/dist/commands/claude-code-runner.js.map +1 -1
- package/dist/commands/file-executor.d.ts +4 -1
- package/dist/commands/file-executor.d.ts.map +1 -1
- package/dist/commands/file-executor.js +46 -0
- package/dist/commands/file-executor.js.map +1 -1
- package/dist/commands/file-transfer.d.ts +26 -0
- package/dist/commands/file-transfer.d.ts.map +1 -0
- package/dist/commands/file-transfer.js +148 -0
- package/dist/commands/file-transfer.js.map +1 -0
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +20 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/shared-chat-utils.d.ts +5 -1
- package/dist/commands/shared-chat-utils.d.ts.map +1 -1
- package/dist/commands/shared-chat-utils.js +13 -0
- package/dist/commands/shared-chat-utils.js.map +1 -1
- package/dist/constants.d.ts +3 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/file-upload.d.ts +9 -0
- package/dist/mcp/tools/file-upload.d.ts.map +1 -0
- package/dist/mcp/tools/file-upload.js +37 -0
- package/dist/mcp/tools/file-upload.js.map +1 -0
- package/dist/project-agent.d.ts +2 -0
- package/dist/project-agent.d.ts.map +1 -1
- package/dist/project-agent.js +36 -4
- package/dist/project-agent.js.map +1 -1
- package/dist/terminal/constants.d.ts +7 -0
- package/dist/terminal/constants.d.ts.map +1 -0
- package/dist/terminal/constants.js +10 -0
- package/dist/terminal/constants.js.map +1 -0
- package/dist/terminal/index.d.ts +5 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +9 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/terminal-session.d.ts +55 -0
- package/dist/terminal/terminal-session.d.ts.map +1 -0
- package/dist/terminal/terminal-session.js +171 -0
- package/dist/terminal/terminal-session.js.map +1 -0
- package/dist/terminal/terminal-websocket.d.ts +48 -0
- package/dist/terminal/terminal-websocket.d.ts.map +1 -0
- package/dist/terminal/terminal-websocket.js +217 -0
- package/dist/terminal/terminal-websocket.js.map +1 -0
- package/dist/types.d.ts +30 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/api-client.d.ts
CHANGED
|
@@ -19,5 +19,23 @@ export declare class ApiClient {
|
|
|
19
19
|
getAwsCredentials(awsAccountId: string): Promise<AwsCredentials>;
|
|
20
20
|
getDbCredentials(name: string): Promise<DbCredentials>;
|
|
21
21
|
submitChatChunk(commandId: string, chunk: ChatChunk, agentId: string): Promise<void>;
|
|
22
|
+
getUploadUrl(data: {
|
|
23
|
+
conversationId: string;
|
|
24
|
+
messageId: string;
|
|
25
|
+
filename: string;
|
|
26
|
+
contentType: string;
|
|
27
|
+
fileSize: number;
|
|
28
|
+
projectCode: string;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
uploadUrl: string;
|
|
31
|
+
fileId: string;
|
|
32
|
+
s3Key: string;
|
|
33
|
+
}>;
|
|
34
|
+
getDownloadUrl(data: {
|
|
35
|
+
fileId: string;
|
|
36
|
+
s3Key: string;
|
|
37
|
+
}): Promise<{
|
|
38
|
+
downloadUrl: string;
|
|
39
|
+
}>;
|
|
22
40
|
}
|
|
23
41
|
//# sourceMappingURL=api-client.d.ts.map
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;YA2B3B,GAAG;YAOH,IAAI;YAOJ,QAAQ;IAMhB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY7D,SAAS,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,cAAc,CAAC,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAc9B,cAAc,CAAC,OAAO,GAAE,cAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxE,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAKpE,OAAO,CAAC,iBAAiB;IAMnB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrE,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAMV,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,cAAc,GACnC,OAAO,CAAC,IAAI,CAAC;IAQV,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKvC,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAKlD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKhE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtD,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;YA2B3B,GAAG;YAOH,IAAI;YAOJ,QAAQ;IAMhB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY7D,SAAS,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,cAAc,CAAC,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAc9B,cAAc,CAAC,OAAO,GAAE,cAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxE,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAKpE,OAAO,CAAC,iBAAiB;IAMnB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrE,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAMV,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,cAAc,GACnC,OAAO,CAAC,IAAI,CAAC;IAQV,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKvC,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAKlD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKhE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtD,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAMV,YAAY,CAAC,IAAI,EAAE;QACvB,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ3D,cAAc,CAAC,IAAI,EAAE;QACzB,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAOrC"}
|
package/dist/api-client.js
CHANGED
|
@@ -125,6 +125,14 @@ class ApiClient {
|
|
|
125
125
|
logger_1.logger.debug(`Submitting chat chunk ${chunk.index} (${chunk.type}) for command: ${commandId}`);
|
|
126
126
|
await this.postVoid(constants_1.API_ENDPOINTS.COMMAND_CHUNKS(commandId), chunk, { params: { agentId } });
|
|
127
127
|
}
|
|
128
|
+
async getUploadUrl(data) {
|
|
129
|
+
logger_1.logger.debug(`Requesting upload URL for file: ${data.filename}`);
|
|
130
|
+
return this.post(constants_1.API_ENDPOINTS.FILES_UPLOAD_URL, data);
|
|
131
|
+
}
|
|
132
|
+
async getDownloadUrl(data) {
|
|
133
|
+
logger_1.logger.debug(`Requesting download URL for file: ${data.fileId}`);
|
|
134
|
+
return this.post(constants_1.API_ENDPOINTS.FILES_DOWNLOAD_URL, data);
|
|
135
|
+
}
|
|
128
136
|
}
|
|
129
137
|
exports.ApiClient = ApiClient;
|
|
130
138
|
//# sourceMappingURL=api-client.js.map
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-executor.d.ts","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAiB,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"chat-executor.d.ts","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAiB,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAUlI,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAErE;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,EACjB,YAAY,CAAC,EAAE,iBAAiB,EAChC,cAAc,CAAC,EAAE,aAAa,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,qBAAqB,EACrC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|
|
@@ -9,6 +9,7 @@ const utils_1 = require("../utils");
|
|
|
9
9
|
const project_dir_1 = require("../project-dir");
|
|
10
10
|
const api_chat_executor_1 = require("./api-chat-executor");
|
|
11
11
|
const claude_code_runner_1 = require("./claude-code-runner");
|
|
12
|
+
const file_transfer_1 = require("./file-transfer");
|
|
12
13
|
const shared_chat_utils_1 = require("./shared-chat-utils");
|
|
13
14
|
// Re-export for backward compatibility with existing consumers
|
|
14
15
|
var claude_code_runner_2 = require("./claude-code-runner");
|
|
@@ -48,6 +49,7 @@ async function executeClaudeCodeChat(payload, commandId, client, agentId, server
|
|
|
48
49
|
const { sendChunk, getChunkIndex } = (0, shared_chat_utils_1.createChunkSender)(commandId, client, agentId, 'chat', { debugLog: true });
|
|
49
50
|
try {
|
|
50
51
|
const allowedTools = serverConfig?.claudeCodeConfig?.allowedTools;
|
|
52
|
+
const systemPrompt = serverConfig?.claudeCodeConfig?.systemPrompt;
|
|
51
53
|
const serverAddDirs = serverConfig?.claudeCodeConfig?.addDirs ?? [];
|
|
52
54
|
// Merge project directory auto-add dirs with server-configured dirs
|
|
53
55
|
let addDirs;
|
|
@@ -75,9 +77,30 @@ async function executeClaudeCodeChat(payload, commandId, client, agentId, server
|
|
|
75
77
|
awsEnv = awsResult.env;
|
|
76
78
|
await sendAwsCredentialNotices(awsResult, projectCode, sendChunk);
|
|
77
79
|
}
|
|
80
|
+
// 添付ファイルのダウンロード
|
|
81
|
+
const chatFiles = (0, file_transfer_1.parseChatFiles)(payload.files);
|
|
82
|
+
const conversationId = (0, utils_1.parseString)(payload.conversationId);
|
|
83
|
+
let filePathsNotice = '';
|
|
84
|
+
let cleanupDownloads;
|
|
85
|
+
if (chatFiles.length > 0 && projectDir && conversationId) {
|
|
86
|
+
const downloadResult = await (0, file_transfer_1.downloadChatFiles)(client, agentId, chatFiles, projectDir, conversationId);
|
|
87
|
+
cleanupDownloads = downloadResult.cleanup;
|
|
88
|
+
if (downloadResult.downloadedPaths.length > 0) {
|
|
89
|
+
filePathsNotice = `\n\n<attached_files>\n${downloadResult.downloadedPaths.map((p) => `- ${p}`).join('\n')}\n</attached_files>`;
|
|
90
|
+
logger_1.logger.info(`[chat] Downloaded ${downloadResult.downloadedPaths.length} files for command [${commandId}]`);
|
|
91
|
+
}
|
|
92
|
+
if (downloadResult.failedCount > 0) {
|
|
93
|
+
await sendChunk('delta', `⚠️ ${downloadResult.failedCount}件のファイルのダウンロードに失敗しました\n\n`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
78
96
|
// 会話履歴をメッセージに埋め込む(Claude Code CLI用)
|
|
79
97
|
const history = (0, shared_chat_utils_1.parseHistory)(payload.history);
|
|
80
|
-
|
|
98
|
+
// file_upload ツールに必要なメタデータをメッセージに付加
|
|
99
|
+
let metadataNotice = '';
|
|
100
|
+
if (conversationId && mcpConfigPath) {
|
|
101
|
+
metadataNotice = `\n\n<message_metadata>\nconversationId: ${conversationId}\nmessageId: ${commandId}\nprojectCode: ${projectCode ?? ''}\n</message_metadata>`;
|
|
102
|
+
}
|
|
103
|
+
const messageWithHistory = (0, shared_chat_utils_1.formatHistoryForClaudeCode)(history, message + filePathsNotice + metadataNotice);
|
|
81
104
|
const logDetails = [
|
|
82
105
|
allowedTools?.length ? `allowedTools: ${allowedTools.join(', ')}` : '(no allowedTools)',
|
|
83
106
|
addDirs?.length ? `addDirs: ${addDirs.join(', ')}` : null,
|
|
@@ -85,10 +108,11 @@ async function executeClaudeCodeChat(payload, commandId, client, agentId, server
|
|
|
85
108
|
awsEnv ? 'AWS credentials' : null,
|
|
86
109
|
mcpConfigPath ? 'MCP config' : null,
|
|
87
110
|
history.length > 0 ? `${history.length} history messages` : null,
|
|
111
|
+
chatFiles.length > 0 ? `${chatFiles.length} attached files` : null,
|
|
88
112
|
].filter(Boolean).join(', ');
|
|
89
113
|
logger_1.logger.debug(`[chat] Spawning claude CLI for command [${commandId}]: ${logDetails}`);
|
|
90
114
|
logger_1.logger.debug(`[chat] serverConfig.claudeCodeConfig: ${JSON.stringify(serverConfig?.claudeCodeConfig ?? null)}`);
|
|
91
|
-
const result = await (0, claude_code_runner_1.runClaudeCode)(messageWithHistory, sendChunk, allowedTools, addDirs, locale, awsEnv, mcpConfigPath);
|
|
115
|
+
const result = await (0, claude_code_runner_1.runClaudeCode)(messageWithHistory, sendChunk, allowedTools, addDirs, locale, awsEnv, mcpConfigPath, projectDir, systemPrompt);
|
|
92
116
|
logger_1.logger.info(`[chat] Chat command completed [${commandId}]: output=${result.text.length} chars, ${getChunkIndex()} chunks sent, duration=${result.metadata.durationMs}ms`);
|
|
93
117
|
// 完了チャンクを送信(metadata を含める)
|
|
94
118
|
const doneContent = JSON.stringify({
|
|
@@ -96,6 +120,8 @@ async function executeClaudeCodeChat(payload, commandId, client, agentId, server
|
|
|
96
120
|
metadata: result.metadata,
|
|
97
121
|
});
|
|
98
122
|
await sendChunk('done', doneContent);
|
|
123
|
+
// ダウンロードした一時ファイルをクリーンアップ
|
|
124
|
+
cleanupDownloads?.();
|
|
99
125
|
return { success: true, data: result.text };
|
|
100
126
|
}
|
|
101
127
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-executor.js","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"chat-executor.js","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,9 +18,39 @@ export declare function buildClaudeArgs(message: string, options?: {
|
|
|
18
18
|
addDirs?: string[];
|
|
19
19
|
locale?: string;
|
|
20
20
|
mcpConfigPath?: string;
|
|
21
|
+
systemPrompt?: string;
|
|
21
22
|
}): string[];
|
|
22
23
|
/**
|
|
23
24
|
* Claude Code CLI をサブプロセスとして実行し、出力をストリーミングで返す
|
|
24
25
|
*/
|
|
25
|
-
export declare function runClaudeCode(message: string, sendChunk: (type: ChatChunkType, content: string) => Promise<void>, allowedTools?: string[], addDirs?: string[], locale?: string, awsEnv?: Record<string, string>, mcpConfigPath?: string): Promise<ClaudeCodeResult>;
|
|
26
|
+
export declare function runClaudeCode(message: string, sendChunk: (type: ChatChunkType, content: string) => Promise<void>, allowedTools?: string[], addDirs?: string[], locale?: string, awsEnv?: Record<string, string>, mcpConfigPath?: string, cwd?: string, systemPrompt?: string): Promise<ClaudeCodeResult>;
|
|
27
|
+
/**
|
|
28
|
+
* stream-json の NDJSON 1行をパースし、テキストやツール呼び出し情報を処理する
|
|
29
|
+
* sendChunk は fire-and-forget で呼び出される(同期的に状態を返すため)
|
|
30
|
+
*
|
|
31
|
+
* @returns newSentTextLength: 送信済みテキスト長, text: resultイベントのテキスト(undefinedなら未取得)
|
|
32
|
+
*/
|
|
33
|
+
export declare function processStreamJsonLine(line: string, sendChunk: (type: ChatChunkType, content: string) => Promise<void>, pid: number, state: {
|
|
34
|
+
sentTextLength: number;
|
|
35
|
+
pendingFileUploadIds?: Set<string>;
|
|
36
|
+
}): {
|
|
37
|
+
newSentTextLength: number;
|
|
38
|
+
text?: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* file_upload ツールの結果をパースし、file_attachment チャンク用データを返す
|
|
42
|
+
*
|
|
43
|
+
* MCP ツールの tool_result.content は配列形式: [{type: "text", text: "..."}]
|
|
44
|
+
* 組み込みツールの tool_result.content は文字列形式
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseFileUploadResult(content: string | Array<{
|
|
47
|
+
type: string;
|
|
48
|
+
text?: string;
|
|
49
|
+
}> | undefined): {
|
|
50
|
+
fileId: string;
|
|
51
|
+
s3Key: string;
|
|
52
|
+
filename: string;
|
|
53
|
+
contentType: string;
|
|
54
|
+
fileSize: number;
|
|
55
|
+
} | null;
|
|
26
56
|
//# sourceMappingURL=claude-code-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-runner.d.ts","sourceRoot":"","sources":["../../src/commands/claude-code-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,4BAA4B;AAC5B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,EAAE,OAAO,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;
|
|
1
|
+
{"version":3,"file":"claude-code-runner.d.ts","sourceRoot":"","sources":["../../src/commands/claude-code-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,4BAA4B;AAC5B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,EAAE,OAAO,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAmCD;gDACgD;AAChD,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOtD;AAED,0BAA0B;AAC1B,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GACA,MAAM,EAAE,CA6CV;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAClE,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAiG3B;AAKD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAClE,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,GACpE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAiF9C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,GAAG;IAC3G,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,IAAI,CA+BP"}
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.buildCleanEnv = buildCleanEnv;
|
|
7
7
|
exports.buildClaudeArgs = buildClaudeArgs;
|
|
8
8
|
exports.runClaudeCode = runClaudeCode;
|
|
9
|
+
exports.processStreamJsonLine = processStreamJsonLine;
|
|
10
|
+
exports.parseFileUploadResult = parseFileUploadResult;
|
|
9
11
|
const child_process_1 = require("child_process");
|
|
10
12
|
const os_1 = __importDefault(require("os"));
|
|
11
13
|
const constants_1 = require("../constants");
|
|
@@ -24,7 +26,7 @@ function buildCleanEnv() {
|
|
|
24
26
|
}
|
|
25
27
|
/** Claude CLI の引数配列を構築 */
|
|
26
28
|
function buildClaudeArgs(message, options) {
|
|
27
|
-
const args = ['-p'];
|
|
29
|
+
const args = ['-p', '--output-format', 'stream-json', '--verbose'];
|
|
28
30
|
if (options?.allowedTools?.length) {
|
|
29
31
|
for (const tool of options.allowedTools) {
|
|
30
32
|
args.push('--allowedTools', tool);
|
|
@@ -39,11 +41,32 @@ function buildClaudeArgs(message, options) {
|
|
|
39
41
|
if (options?.mcpConfigPath) {
|
|
40
42
|
args.push('--mcp-config', options.mcpConfigPath);
|
|
41
43
|
}
|
|
44
|
+
// システムプロンプトを構築: 言語設定 + サーバー設定 + file_upload 指示
|
|
45
|
+
const promptParts = [];
|
|
42
46
|
if (options?.locale) {
|
|
43
|
-
|
|
47
|
+
promptParts.push(options.locale === 'ja'
|
|
44
48
|
? 'Always respond in Japanese. Use Japanese for all explanations and communications.'
|
|
45
|
-
: 'Always respond in English. Use English for all explanations and communications.';
|
|
46
|
-
|
|
49
|
+
: 'Always respond in English. Use English for all explanations and communications.');
|
|
50
|
+
}
|
|
51
|
+
if (options?.systemPrompt) {
|
|
52
|
+
promptParts.push(options.systemPrompt);
|
|
53
|
+
}
|
|
54
|
+
if (options?.mcpConfigPath) {
|
|
55
|
+
promptParts.push([
|
|
56
|
+
'CRITICAL FILE DELIVERY RULE:',
|
|
57
|
+
'When you create or modify a file using the Write tool, the user CANNOT see or download the file unless you upload it.',
|
|
58
|
+
'You MUST call the mcp__ai-support-agent__file_upload tool AFTER every Write tool call.',
|
|
59
|
+
'Required parameters for file_upload:',
|
|
60
|
+
'- filePath: the absolute path of the file you just wrote',
|
|
61
|
+
'- filename: the display name (e.g., "mbc-logo.svg")',
|
|
62
|
+
'- conversationId: from <message_metadata> in the user message',
|
|
63
|
+
'- messageId: from <message_metadata> in the user message',
|
|
64
|
+
'- projectCode: from <message_metadata> in the user message',
|
|
65
|
+
'If you skip the upload, the file is invisible to the user. Always upload.',
|
|
66
|
+
].join('\n'));
|
|
67
|
+
}
|
|
68
|
+
if (promptParts.length > 0) {
|
|
69
|
+
args.push('--append-system-prompt', promptParts.join('\n\n'));
|
|
47
70
|
}
|
|
48
71
|
args.push(message);
|
|
49
72
|
return args;
|
|
@@ -51,7 +74,7 @@ function buildClaudeArgs(message, options) {
|
|
|
51
74
|
/**
|
|
52
75
|
* Claude Code CLI をサブプロセスとして実行し、出力をストリーミングで返す
|
|
53
76
|
*/
|
|
54
|
-
async function runClaudeCode(message, sendChunk, allowedTools, addDirs, locale, awsEnv, mcpConfigPath) {
|
|
77
|
+
async function runClaudeCode(message, sendChunk, allowedTools, addDirs, locale, awsEnv, mcpConfigPath, cwd, systemPrompt) {
|
|
55
78
|
return new Promise((resolve, reject) => {
|
|
56
79
|
const startTime = Date.now();
|
|
57
80
|
// claude CLI が利用可能か確認し、print モードで実行
|
|
@@ -59,14 +82,19 @@ async function runClaudeCode(message, sendChunk, allowedTools, addDirs, locale,
|
|
|
59
82
|
// CLAUDECODE および CLAUDE_CODE_* 環境変数を除外
|
|
60
83
|
const cleanEnv = buildCleanEnv();
|
|
61
84
|
const env = awsEnv ? { ...cleanEnv, ...awsEnv } : cleanEnv;
|
|
62
|
-
const args = buildClaudeArgs(message, { allowedTools, addDirs, locale, mcpConfigPath });
|
|
85
|
+
const args = buildClaudeArgs(message, { allowedTools, addDirs, locale, mcpConfigPath, systemPrompt });
|
|
63
86
|
const child = (0, child_process_1.spawn)('claude', args, {
|
|
64
87
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
65
88
|
env,
|
|
89
|
+
...(cwd ? { cwd } : {}),
|
|
66
90
|
});
|
|
67
91
|
logger_1.logger.debug(`[chat] claude CLI spawned (pid=${child.pid}, cmd=claude ${args.map(a => a.includes(' ') ? `"${a}"` : a).join(' ')})`);
|
|
68
|
-
let
|
|
69
|
-
let
|
|
92
|
+
let resultText = '';
|
|
93
|
+
let stdoutBuffer = '';
|
|
94
|
+
// テキストチャンクの重複送信を防ぐため、前回送信済みテキスト長を追跡
|
|
95
|
+
let sentTextLength = 0;
|
|
96
|
+
// file_upload ツールの tool_use_id を追跡して tool_result から file_attachment を生成
|
|
97
|
+
const pendingFileUploadIds = new Set();
|
|
70
98
|
// タイムアウト: 120秒で応答がなければ強制終了
|
|
71
99
|
let sigkillTimer;
|
|
72
100
|
const timeout = setTimeout(() => {
|
|
@@ -81,14 +109,24 @@ async function runClaudeCode(message, sendChunk, allowedTools, addDirs, locale,
|
|
|
81
109
|
}, constants_1.CHAT_SIGKILL_DELAY);
|
|
82
110
|
}, constants_1.CHAT_TIMEOUT);
|
|
83
111
|
child.stdout.on('data', (data) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
112
|
+
stdoutBuffer += data.toString();
|
|
113
|
+
// NDJSON: 改行で分割して各行をパース
|
|
114
|
+
const lines = stdoutBuffer.split('\n');
|
|
115
|
+
// 最後の不完全な行はバッファに残す
|
|
116
|
+
stdoutBuffer = lines.pop() ?? '';
|
|
117
|
+
for (const line of lines) {
|
|
118
|
+
const trimmed = line.trim();
|
|
119
|
+
if (!trimmed)
|
|
120
|
+
continue;
|
|
121
|
+
const { newSentTextLength, text } = processStreamJsonLine(trimmed, sendChunk, child.pid ?? 0, { sentTextLength, pendingFileUploadIds });
|
|
122
|
+
sentTextLength = newSentTextLength;
|
|
123
|
+
if (text !== undefined)
|
|
124
|
+
resultText = text;
|
|
125
|
+
}
|
|
88
126
|
});
|
|
89
127
|
child.stderr.on('data', (data) => {
|
|
128
|
+
// --verbose モードでは stderr にも NDJSON が出力されるので、デバッグログのみ
|
|
90
129
|
const text = data.toString();
|
|
91
|
-
stderrOutput += text;
|
|
92
130
|
logger_1.logger.debug(`[chat] claude CLI stderr: ${text.substring(0, constants_1.LOG_DEBUG_LIMIT)}`);
|
|
93
131
|
});
|
|
94
132
|
child.on('error', (error) => {
|
|
@@ -109,22 +147,153 @@ async function runClaudeCode(message, sendChunk, allowedTools, addDirs, locale,
|
|
|
109
147
|
const durationMs = Date.now() - startTime;
|
|
110
148
|
// メッセージ本文を除いた引数(監査用)
|
|
111
149
|
const metadataArgs = args.slice(0, -1);
|
|
112
|
-
logger_1.logger.debug(`[chat] claude CLI exited (pid=${child.pid}, code=${code},
|
|
150
|
+
logger_1.logger.debug(`[chat] claude CLI exited (pid=${child.pid}, code=${code}, duration=${durationMs}ms)`);
|
|
113
151
|
if (code === 0) {
|
|
114
152
|
resolve({
|
|
115
|
-
text:
|
|
153
|
+
text: resultText,
|
|
116
154
|
metadata: {
|
|
117
155
|
args: metadataArgs,
|
|
118
156
|
exitCode: code,
|
|
119
|
-
hasStderr:
|
|
157
|
+
hasStderr: false,
|
|
120
158
|
durationMs,
|
|
121
159
|
},
|
|
122
160
|
});
|
|
123
161
|
}
|
|
124
162
|
else {
|
|
125
|
-
reject(new Error(`claude CLI がコード ${code}
|
|
163
|
+
reject(new Error(`claude CLI がコード ${code} で終了しました`));
|
|
126
164
|
}
|
|
127
165
|
});
|
|
128
166
|
});
|
|
129
167
|
}
|
|
168
|
+
/** file_upload ツール結果を file_attachment チャンクに変換する */
|
|
169
|
+
const FILE_UPLOAD_TOOL_NAME = 'mcp__ai-support-agent__file_upload';
|
|
170
|
+
/**
|
|
171
|
+
* stream-json の NDJSON 1行をパースし、テキストやツール呼び出し情報を処理する
|
|
172
|
+
* sendChunk は fire-and-forget で呼び出される(同期的に状態を返すため)
|
|
173
|
+
*
|
|
174
|
+
* @returns newSentTextLength: 送信済みテキスト長, text: resultイベントのテキスト(undefinedなら未取得)
|
|
175
|
+
*/
|
|
176
|
+
function processStreamJsonLine(line, sendChunk, pid, state) {
|
|
177
|
+
let parsed;
|
|
178
|
+
try {
|
|
179
|
+
parsed = JSON.parse(line);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// JSON パースに失敗した場合はスキップ
|
|
183
|
+
logger_1.logger.debug(`[chat] stream-json parse error (pid=${pid}): ${line.substring(0, constants_1.LOG_DEBUG_LIMIT)}`);
|
|
184
|
+
return { newSentTextLength: state.sentTextLength };
|
|
185
|
+
}
|
|
186
|
+
if (parsed.type === 'assistant' && parsed.message?.content) {
|
|
187
|
+
let newSentTextLength = state.sentTextLength;
|
|
188
|
+
// assistant メッセージからテキストとツール呼び出しを抽出
|
|
189
|
+
let fullText = '';
|
|
190
|
+
for (const block of parsed.message.content) {
|
|
191
|
+
if (block.type === 'text' && block.text) {
|
|
192
|
+
fullText += block.text;
|
|
193
|
+
}
|
|
194
|
+
else if (block.type === 'tool_use' && block.name) {
|
|
195
|
+
// ツール呼び出し情報をログ出力
|
|
196
|
+
logger_1.logger.info(`[chat] tool_use: ${block.name} (pid=${pid})`);
|
|
197
|
+
// tool_call チャンクとして送信
|
|
198
|
+
void sendChunk('tool_call', JSON.stringify({
|
|
199
|
+
name: block.name,
|
|
200
|
+
id: block.id,
|
|
201
|
+
}));
|
|
202
|
+
// file_upload ツールの呼び出しを追跡(tool_result から file_attachment を生成するため)
|
|
203
|
+
if (block.name === FILE_UPLOAD_TOOL_NAME && block.id) {
|
|
204
|
+
if (!state.pendingFileUploadIds)
|
|
205
|
+
state.pendingFileUploadIds = new Set();
|
|
206
|
+
state.pendingFileUploadIds.add(block.id);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// 新しいテキスト部分のみ delta チャンクとして送信(重複防止)
|
|
211
|
+
if (fullText.length > newSentTextLength) {
|
|
212
|
+
const newText = fullText.substring(newSentTextLength);
|
|
213
|
+
void sendChunk('delta', newText);
|
|
214
|
+
newSentTextLength = fullText.length;
|
|
215
|
+
}
|
|
216
|
+
return { newSentTextLength };
|
|
217
|
+
}
|
|
218
|
+
// user メッセージ内の tool_result から file_upload の結果を検出し、file_attachment チャンクを送信
|
|
219
|
+
// MCP ツールの tool_result は2回来る: 1回目は tool_reference(スキップ)、2回目が実際の結果
|
|
220
|
+
if (parsed.type === 'user' && parsed.message?.content && state.pendingFileUploadIds?.size) {
|
|
221
|
+
for (const block of parsed.message.content) {
|
|
222
|
+
if (block.type === 'tool_result' && block.tool_use_id && state.pendingFileUploadIds.has(block.tool_use_id)) {
|
|
223
|
+
const fileData = parseFileUploadResult(block.content);
|
|
224
|
+
if (fileData) {
|
|
225
|
+
state.pendingFileUploadIds.delete(block.tool_use_id);
|
|
226
|
+
logger_1.logger.info(`[chat] file_upload result: fileId=${fileData.fileId}, filename=${fileData.filename} (pid=${pid})`);
|
|
227
|
+
void sendChunk('file_attachment', JSON.stringify(fileData));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return { newSentTextLength: state.sentTextLength };
|
|
232
|
+
}
|
|
233
|
+
if (parsed.type === 'result' && parsed.result !== undefined) {
|
|
234
|
+
return { newSentTextLength: state.sentTextLength, text: parsed.result };
|
|
235
|
+
}
|
|
236
|
+
if (parsed.type === 'system' && parsed.subtype === 'init') {
|
|
237
|
+
// MCP サーバー接続状態とツール一覧をログ出力(デバッグ用)
|
|
238
|
+
if (parsed.mcp_servers?.length) {
|
|
239
|
+
for (const mcp of parsed.mcp_servers) {
|
|
240
|
+
if (mcp.status === 'connected') {
|
|
241
|
+
logger_1.logger.info(`[chat] MCP server "${mcp.name}" connected (pid=${pid})`);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
logger_1.logger.warn(`[chat] MCP server "${mcp.name}" status=${mcp.status}${mcp.error ? ` error=${mcp.error}` : ''} (pid=${pid})`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (parsed.tools?.length) {
|
|
249
|
+
const mcpTools = parsed.tools.filter(t => t.startsWith('mcp__'));
|
|
250
|
+
logger_1.logger.info(`[chat] stream-json init: ${parsed.tools.length} tools available, MCP tools: [${mcpTools.join(', ')}] (pid=${pid})`);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
logger_1.logger.info(`[chat] stream-json init received, no tools listed (pid=${pid})`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return { newSentTextLength: state.sentTextLength };
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* file_upload ツールの結果をパースし、file_attachment チャンク用データを返す
|
|
260
|
+
*
|
|
261
|
+
* MCP ツールの tool_result.content は配列形式: [{type: "text", text: "..."}]
|
|
262
|
+
* 組み込みツールの tool_result.content は文字列形式
|
|
263
|
+
*/
|
|
264
|
+
function parseFileUploadResult(content) {
|
|
265
|
+
if (!content)
|
|
266
|
+
return null;
|
|
267
|
+
// content からテキストを抽出
|
|
268
|
+
let textContent;
|
|
269
|
+
if (typeof content === 'string') {
|
|
270
|
+
textContent = content;
|
|
271
|
+
}
|
|
272
|
+
else if (Array.isArray(content)) {
|
|
273
|
+
// MCP ツール形式: [{type: "text", text: "..."}, ...]
|
|
274
|
+
const textBlock = content.find(b => b.type === 'text' && b.text);
|
|
275
|
+
if (!textBlock?.text)
|
|
276
|
+
return null;
|
|
277
|
+
textContent = textBlock.text;
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
try {
|
|
283
|
+
const data = JSON.parse(textContent);
|
|
284
|
+
if (data.success && typeof data.fileId === 'string' && typeof data.s3Key === 'string' && typeof data.filename === 'string') {
|
|
285
|
+
return {
|
|
286
|
+
fileId: data.fileId,
|
|
287
|
+
s3Key: data.s3Key,
|
|
288
|
+
filename: data.filename,
|
|
289
|
+
contentType: data.contentType ?? 'application/octet-stream',
|
|
290
|
+
fileSize: typeof data.fileSize === 'number' ? data.fileSize : 0,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// パース失敗は無視
|
|
296
|
+
}
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
130
299
|
//# sourceMappingURL=claude-code-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../src/commands/claude-code-runner.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"claude-code-runner.js","sourceRoot":"","sources":["../../src/commands/claude-code-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type { CommandResult, FileListPayload, FileReadPayload, FileWritePayload } from '../types';
|
|
1
|
+
import type { CommandResult, FileDeletePayload, FileListPayload, FileMkdirPayload, FileReadPayload, FileRenamePayload, FileWritePayload } from '../types';
|
|
2
2
|
export declare function fileRead(payload: FileReadPayload): Promise<CommandResult>;
|
|
3
3
|
export declare function fileWrite(payload: FileWritePayload): Promise<CommandResult>;
|
|
4
4
|
export declare function fileList(payload: FileListPayload): Promise<CommandResult>;
|
|
5
|
+
export declare function fileRename(payload: FileRenamePayload): Promise<CommandResult>;
|
|
6
|
+
export declare function fileDelete(payload: FileDeletePayload): Promise<CommandResult>;
|
|
7
|
+
export declare function fileMkdir(payload: FileMkdirPayload): Promise<CommandResult>;
|
|
5
8
|
//# sourceMappingURL=file-executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-executor.d.ts","sourceRoot":"","sources":["../../src/commands/file-executor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"file-executor.d.ts","sourceRoot":"","sources":["../../src/commands/file-executor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAGzJ,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAexB;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CAOxB"}
|
|
@@ -36,10 +36,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.fileRead = fileRead;
|
|
37
37
|
exports.fileWrite = fileWrite;
|
|
38
38
|
exports.fileList = fileList;
|
|
39
|
+
exports.fileRename = fileRename;
|
|
40
|
+
exports.fileDelete = fileDelete;
|
|
41
|
+
exports.fileMkdir = fileMkdir;
|
|
39
42
|
const fs = __importStar(require("fs"));
|
|
40
43
|
const path = __importStar(require("path"));
|
|
41
44
|
const constants_1 = require("../constants");
|
|
42
45
|
const security_1 = require("../security");
|
|
46
|
+
const utils_1 = require("../utils");
|
|
43
47
|
async function fileRead(payload) {
|
|
44
48
|
const pathOrError = await (0, security_1.resolveAndValidatePath)(payload);
|
|
45
49
|
if (typeof pathOrError !== 'string')
|
|
@@ -94,4 +98,46 @@ async function fileList(payload) {
|
|
|
94
98
|
}));
|
|
95
99
|
return { success: true, data: { items, truncated, total: allEntries.length } };
|
|
96
100
|
}
|
|
101
|
+
async function fileRename(payload) {
|
|
102
|
+
const oldPath = (0, utils_1.parseString)(payload.oldPath);
|
|
103
|
+
const newPath = (0, utils_1.parseString)(payload.newPath);
|
|
104
|
+
if (!oldPath || !newPath) {
|
|
105
|
+
return { success: false, error: constants_1.ERR_NO_FILE_PATH_SPECIFIED };
|
|
106
|
+
}
|
|
107
|
+
const oldPathOrError = await (0, security_1.resolveAndValidatePath)({ path: oldPath });
|
|
108
|
+
if (typeof oldPathOrError !== 'string')
|
|
109
|
+
return oldPathOrError;
|
|
110
|
+
const newPathOrError = await (0, security_1.resolveAndValidatePath)({ path: newPath });
|
|
111
|
+
if (typeof newPathOrError !== 'string')
|
|
112
|
+
return newPathOrError;
|
|
113
|
+
await fs.promises.rename(oldPathOrError, newPathOrError);
|
|
114
|
+
return { success: true, data: `Renamed ${oldPathOrError} to ${newPathOrError}` };
|
|
115
|
+
}
|
|
116
|
+
async function fileDelete(payload) {
|
|
117
|
+
const pathOrError = await (0, security_1.resolveAndValidatePath)(payload);
|
|
118
|
+
if (typeof pathOrError !== 'string')
|
|
119
|
+
return pathOrError;
|
|
120
|
+
const resolvedPath = pathOrError;
|
|
121
|
+
if (payload.recursive) {
|
|
122
|
+
await fs.promises.rm(resolvedPath, { recursive: true, force: true });
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const stat = await fs.promises.lstat(resolvedPath);
|
|
126
|
+
if (stat.isDirectory()) {
|
|
127
|
+
await fs.promises.rmdir(resolvedPath);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
await fs.promises.unlink(resolvedPath);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return { success: true, data: `Deleted ${resolvedPath}` };
|
|
134
|
+
}
|
|
135
|
+
async function fileMkdir(payload) {
|
|
136
|
+
const pathOrError = await (0, security_1.resolveAndValidatePath)(payload);
|
|
137
|
+
if (typeof pathOrError !== 'string')
|
|
138
|
+
return pathOrError;
|
|
139
|
+
const resolvedPath = pathOrError;
|
|
140
|
+
await fs.promises.mkdir(resolvedPath, { recursive: true });
|
|
141
|
+
return { success: true, data: `Created directory ${resolvedPath}` };
|
|
142
|
+
}
|
|
97
143
|
//# sourceMappingURL=file-executor.js.map
|