mistagent 0.1.4 → 0.1.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/README.md ADDED
@@ -0,0 +1,204 @@
1
+ # MistAgent CLI
2
+
3
+ > 基于 React + Ink 的终端 AI 对话客户端,连接 WebAgent 后端服务。
4
+
5
+ ---
6
+
7
+ ## 功能特性
8
+
9
+ - **终端原生 UI**:基于 React 19 + Ink 的终端界面,支持 Markdown 渲染、语法高亮、加载动画
10
+ - **SSE 流式对话**:通过 Server-Sent Events 实时接收 LLM 流式响应
11
+ - **多会话管理**:创建、切换、删除对话会话
12
+ - **模型切换**:运行时动态切换 LLM 模型
13
+ - **文件上传**:支持通过 `@file` 引用本地文件注入对话上下文
14
+ - **斜杠命令**:`/help`、`/model`、`/session`、`/tools` 等快捷命令
15
+ - **代码分析**:内置 tree-sitter 多语言代码结构分析工具
16
+ - **文件穿透**:当后端启用 `ENABLE_FILE_TUNNEL=true` 时,LLM 调用的文件操作在客户端本地执行
17
+
18
+ ---
19
+
20
+ ## 技术栈
21
+
22
+ | 层级 | 技术 |
23
+ |---|---|
24
+ | UI 框架 | React 19 + Ink 6 |
25
+ | Markdown | marked + marked-terminal |
26
+ | 代码分析 | tree-sitter(支持 10 种语言) |
27
+ | HTTP 客户端 | 内置 fetch(eventsource-parser 解析 SSE) |
28
+ | CLI 参数 | yargs |
29
+ | 图结构 | graphology(代码分析依赖图) |
30
+
31
+ ---
32
+
33
+ ## 项目结构
34
+
35
+ ```
36
+ MistAgentcli/
37
+ ├── index.ts # 入口文件
38
+ ├── src/
39
+ │ ├── main.tsx # React 渲染入口
40
+ │ ├── api/ # 后端 API 客户端
41
+ │ │ ├── client.ts # HTTP 客户端(baseURL + token)
42
+ │ │ ├── auth.ts # 登录/认证 API
43
+ │ │ ├── chat.ts # 对话 API(SSE 流式)
44
+ │ │ ├── sessions.ts # 会话管理 API
45
+ │ │ ├── models.ts # 模型列表/切换 API
46
+ │ │ ├── tools.ts # 工具列表 API
47
+ │ │ └── tunnel.ts # 文件穿透结果回传 API
48
+ │ ├── components/ # UI 组件
49
+ │ │ ├── App.tsx # 根组件
50
+ │ │ ├── AppLayout.tsx # 布局
51
+ │ │ ├── Composer.tsx # 输入编辑器
52
+ │ │ ├── MainContent.tsx # 主内容区
53
+ │ │ ├── Header.tsx # 顶栏
54
+ │ │ ├── Footer.tsx # 底栏
55
+ │ │ ├── LoginPrompt.tsx # 登录界面
56
+ │ │ ├── ModelPicker.tsx # 模型选择器
57
+ │ │ ├── SessionPicker.tsx # 会话选择器
58
+ │ │ ├── messages/ # 消息类型组件
59
+ │ │ └── shared/ # 通用组件
60
+ │ ├── contexts/ # React Context
61
+ │ │ ├── AppContext.tsx # 应用级状态
62
+ │ │ ├── ChatContext.tsx # 对话状态
63
+ │ │ ├── SessionContext.tsx # 会话状态
64
+ │ │ ├── ModelContext.tsx # 模型状态
65
+ │ │ ├── UIContext.tsx # UI 状态
66
+ │ │ └── KeypressContext.tsx # 键盘输入
67
+ │ ├── hooks/ # 自定义 Hooks
68
+ │ │ ├── useChat.ts # 核心:SSE 流解析 + 消息状态管理
69
+ │ │ ├── useSlashCommand.ts # 斜杠命令处理
70
+ │ │ ├── useTextBuffer.ts # 文本缓冲区
71
+ │ │ └── ...
72
+ │ ├── tools/ # 本地工具
73
+ │ │ └── code-analyzer/ # 代码结构分析(tree-sitter)
74
+ │ ├── types/ # TypeScript 类型定义
75
+ │ │ ├── api.ts # 后端 API 类型(含 SSEToolExecuteRequest)
76
+ │ │ └── history.ts # 消息历史类型
77
+ │ └── utils/ # 工具函数
78
+ │ ├── fileTunnel.ts # 文件穿透:本地文件操作执行器
79
+ │ ├── fileRef.ts # 文件引用处理
80
+ │ ├── config.ts # 配置管理
81
+ │ └── ...
82
+ ├── vendor/ # 第三方依赖
83
+ ├── package.json
84
+ └── tsconfig.json
85
+ ```
86
+
87
+ ---
88
+
89
+ ## 快速开始
90
+
91
+ ### 1. 安装依赖
92
+
93
+ ```bash
94
+ npm install
95
+ ```
96
+
97
+ > 需要 Node.js >= 20。
98
+
99
+ ### 2. 配置后端地址
100
+
101
+ 编辑 `src/utils/config.ts` 或通过环境变量设置后端 URL:
102
+
103
+ ```bash
104
+ export MIST_API_URL=http://your-server:8000
105
+ ```
106
+
107
+ ### 3. 开发模式
108
+
109
+ ```bash
110
+ npm run dev
111
+ ```
112
+
113
+ ### 4. 构建 & 运行
114
+
115
+ ```bash
116
+ npm run build
117
+ npm start
118
+ # 或直接
119
+ npx mist
120
+ ```
121
+
122
+ ---
123
+
124
+ ## 文件穿透(File Tool Tunneling)
125
+
126
+ 当后端 WebAgent 设置 `ENABLE_FILE_TUNNEL=true` 时,LLM Agent 调用的文件操作工具(read_file、write_file 等)不在服务器执行,而是穿透到 CLI 客户端在用户 PC 上本地执行。
127
+
128
+ ### 工作流程
129
+
130
+ ```
131
+ 后端 LLM 调用 read_file
132
+
133
+ ProxyFileTool 创建 PendingRequest,await asyncio.Event
134
+
135
+ SSE 推送 tool_execute_request 事件到 CLI
136
+
137
+ useChat.ts 收到事件 → 调用 fileTunnel.executeFileOperation()
138
+
139
+ 本地 Node.js fs 执行文件操作
140
+
141
+ POST /api/v1/tunnel/result 回传结果
142
+
143
+ 后端 PendingRequest 被唤醒 → LangGraph 继续执行
144
+ ```
145
+
146
+ ### 涉及文件
147
+
148
+ | 文件 | 作用 |
149
+ |---|---|
150
+ | `src/utils/fileTunnel.ts` | 本地文件操作执行器(read_file、write_file、list_directory、copy_file、move_file、file_delete、file_search) |
151
+ | `src/api/tunnel.ts` | `submitTunnelResult()` — 将本地执行结果 POST 回服务端 |
152
+ | `src/hooks/useChat.ts` | 处理 SSE `tool_execute_request` 事件,调度本地执行 + 回传 |
153
+ | `src/types/api.ts` | `SSEToolExecuteRequest` 接口定义 |
154
+
155
+ ### SSE 事件格式
156
+
157
+ ```json
158
+ {
159
+ "event": "tool_execute_request",
160
+ "data": {
161
+ "request_id": "uuid",
162
+ "tool_name": "read_file",
163
+ "args": { "file_path": "/path/to/file" },
164
+ "thread_id": "uuid"
165
+ }
166
+ }
167
+ ```
168
+
169
+ ### 回传格式
170
+
171
+ ```json
172
+ POST /api/v1/tunnel/result
173
+ {
174
+ "request_id": "uuid",
175
+ "success": true,
176
+ "result": "文件内容或操作结果",
177
+ "error": ""
178
+ }
179
+ ```
180
+
181
+ ### 支持的工具
182
+
183
+ | 工具名 | 操作 |
184
+ |---|---|
185
+ | `read_file` | 读取文件内容 |
186
+ | `write_file` | 写入文件(自动创建目录) |
187
+ | `list_directory` | 列出目录内容 |
188
+ | `copy_file` | 复制文件 |
189
+ | `move_file` | 移动/重命名文件 |
190
+ | `file_delete` | 删除文件 |
191
+ | `file_search` | 递归搜索匹配文件名的文件 |
192
+
193
+ ### 超时
194
+
195
+ 客户端需在 **120 秒** 内完成操作并回传结果,否则后端 ProxyFileTool 返回超时错误。
196
+
197
+ ---
198
+
199
+ ## 与 WebAgent 后端的关系
200
+
201
+ MistAgent CLI 是 [WebAgent](../WebAgent/) 的终端客户端。WebAgent 提供 REST + SSE + WebSocket API,MistAgent CLI 通过这些接口与后端交互。
202
+
203
+ - 后端仓库:`../WebAgent/`
204
+ - API 文档:参见 WebAgent README.md 的 [API 接口](../WebAgent/README.md#api-接口) 部分
@@ -0,0 +1,19 @@
1
+ /**
2
+ * File Tool Tunneling API
3
+ *
4
+ * 将本地文件操作结果回传给服务端。
5
+ */
6
+ export interface TunnelResultPayload {
7
+ request_id: string;
8
+ success: boolean;
9
+ result: string;
10
+ error: string;
11
+ }
12
+ /**
13
+ * 提交文件操作执行结果到服务端
14
+ *
15
+ * 服务端的 ProxyFileTool 正在 await asyncio.Event,
16
+ * 收到此请求后会唤醒并继续 LangGraph 执行。
17
+ */
18
+ export declare function submitTunnelResult(payload: TunnelResultPayload): Promise<void>;
19
+ //# sourceMappingURL=tunnel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../src/api/tunnel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * File Tool Tunneling API
3
+ *
4
+ * 将本地文件操作结果回传给服务端。
5
+ */
6
+ import { getClient } from './client.js';
7
+ /**
8
+ * 提交文件操作执行结果到服务端
9
+ *
10
+ * 服务端的 ProxyFileTool 正在 await asyncio.Event,
11
+ * 收到此请求后会唤醒并继续 LangGraph 执行。
12
+ */
13
+ export async function submitTunnelResult(payload) {
14
+ await getClient().post('/api/v1/tunnel/result', payload);
15
+ }
16
+ //# sourceMappingURL=tunnel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../src/api/tunnel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA4B;IAE5B,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,cAAc,EACf,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,OAAO;2BAOH,MAAM;;;;;;;EAoJzB"}
1
+ {"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,cAAc,EACf,MAAM,4BAA4B,CAAC;AAWpC,wBAAgB,OAAO;2BAOH,MAAM;;;;;;;EA0KzB"}
@@ -3,7 +3,9 @@ import { createParser } from 'eventsource-parser';
3
3
  import { writeFileSync, mkdirSync } from 'node:fs';
4
4
  import { join } from 'node:path';
5
5
  import { chatApi } from '../api/chat.js';
6
+ import { submitTunnelResult } from '../api/tunnel.js';
6
7
  import { processFileReferences } from '../utils/fileRef.js';
8
+ import { executeFileOperation } from '../utils/fileTunnel.js';
7
9
  import { DEBUG_LOG_AITEXT, DEBUG_AITEXT_FILE, CODE_ANALYZER_DIR } from '../utils/config.js';
8
10
  import { useChatState, useChatDispatch, StreamingState, } from '../contexts/ChatContext.js';
9
11
  import { useModelState } from '../contexts/ModelContext.js';
@@ -72,6 +74,28 @@ export function useChat() {
72
74
  dispatch({ type: 'TOOL_CALL_DONE' });
73
75
  break;
74
76
  }
77
+ case 'tool_execute_request': {
78
+ // 文件工具穿透:服务端请求在本地执行文件操作
79
+ const data = JSON.parse(event.data);
80
+ dispatch({
81
+ type: 'TOOL_CALL_START',
82
+ name: `[local] ${data.tool_name}`,
83
+ args: JSON.stringify(data.args),
84
+ });
85
+ // 异步执行本地文件操作并回传结果
86
+ executeFileOperation(data)
87
+ .then((result) => submitTunnelResult(result))
88
+ .catch(() => {
89
+ // 回传失败的兜底处理
90
+ submitTunnelResult({
91
+ request_id: data.request_id,
92
+ success: false,
93
+ result: '',
94
+ error: 'Failed to submit tunnel result',
95
+ }).catch(() => { });
96
+ });
97
+ break;
98
+ }
75
99
  case 'done': {
76
100
  dispatch({ type: 'STREAM_DONE' });
77
101
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../../src/hooks/useChat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../../src/hooks/useChat.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,13 @@ export interface SSEError {
104
104
  content: string;
105
105
  thread_id: string;
106
106
  }
107
+ /** 文件工具穿透:服务端请求客户端执行文件操作 */
108
+ export interface SSEToolExecuteRequest {
109
+ request_id: string;
110
+ tool_name: string;
111
+ args: Record<string, string>;
112
+ thread_id: string;
113
+ }
107
114
  export interface HealthResponse {
108
115
  status: string;
109
116
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const DEFAULT_SERVER_URL = "https://solidity.slowmist.ai";
1
+ export declare const DEFAULT_SERVER_URL = "http://localhost:8000";
2
2
  export declare function getServerUrl(cliArg?: string): string;
3
3
  export declare function saveToken(token: string): void;
4
4
  export declare function loadToken(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,kBAAkB,iCAAiC,CAAC;AAKjE,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpD;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAO7C;AAGD,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAMzC;AAGD,wBAAgB,UAAU,IAAI,IAAI,CAMjC;AAMD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAGzC,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAO/C;AAGD,wBAAgB,SAAS,IAAI,SAAS,CAQrC;AAMD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAO/D;AAGD,wBAAgB,SAAS,IAAI,UAAU,GAAG,IAAI,CAU7C;AAID,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,eAAO,MAAM,wBAAwB,eAAe,CAAC;AASrD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAM7C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAGtC,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAKjD,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,eAAO,MAAM,iBAAiB,qBAAqB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAI1D,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpD;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAO7C;AAGD,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAMzC;AAGD,wBAAgB,UAAU,IAAI,IAAI,CAMjC;AAMD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAGzC,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAO/C;AAGD,wBAAgB,SAAS,IAAI,SAAS,CAQrC;AAMD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAO/D;AAGD,wBAAgB,SAAS,IAAI,UAAU,GAAG,IAAI,CAU7C;AAID,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,eAAO,MAAM,wBAAwB,eAAe,CAAC;AASrD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAM7C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAGtC,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAKjD,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,eAAO,MAAM,iBAAiB,qBAAqB,CAAC"}
@@ -7,8 +7,8 @@ const CONFIG_DIR = join(homedir(), '.mistagent');
7
7
  // 登录 token 文件路径,文件权限 0o600 仅当前用户可读写
8
8
  const TOKEN_FILE = join(CONFIG_DIR, 'token');
9
9
  // 后端服务器默认地址,可通过 CLI 参数或环境变量 MISTAGENT_SERVER 覆盖
10
- export const DEFAULT_SERVER_URL = 'https://solidity.slowmist.ai';
11
- // export const DEFAULT_SERVER_URL = 'http://localhost:8000';
10
+ // export const DEFAULT_SERVER_URL = 'https://solidity.slowmist.ai';
11
+ export const DEFAULT_SERVER_URL = 'http://localhost:8000';
12
12
  // 获取后端服务器地址,优先级: CLI 参数 > 环境变量 > 默认值
13
13
  // 非 localhost 地址强制要求 HTTPS,防止中间人攻击导致 token 泄露
14
14
  export function getServerUrl(cliArg) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "0.1.4";
1
+ export declare const VERSION = "0.1.5";
2
2
  export declare const BANNER_LINES: string[];
3
3
  export declare const BANNER_SUBTITLE = " A G E N T";
4
4
  export declare function getBannerGradient(): string[];
@@ -1,4 +1,4 @@
1
- export const VERSION = '0.1.4';
1
+ export const VERSION = '0.1.5';
2
2
  // Banner as line array for per-line gradient coloring
3
3
  export const BANNER_LINES = [
4
4
  ' ███╗ ███╗██╗███████╗████████╗',
@@ -0,0 +1,26 @@
1
+ /**
2
+ * File Tool Tunneling - 本地文件操作执行器
3
+ *
4
+ * 当后端发送 tool_execute_request SSE 事件时,
5
+ * 在客户端本地执行文件操作并回传结果。
6
+ */
7
+ export interface TunnelRequest {
8
+ request_id: string;
9
+ tool_name: string;
10
+ args: Record<string, string>;
11
+ thread_id: string;
12
+ }
13
+ export interface TunnelResult {
14
+ request_id: string;
15
+ success: boolean;
16
+ result: string;
17
+ error: string;
18
+ }
19
+ /**
20
+ * 在本地执行文件操作
21
+ *
22
+ * 根据 tool_name 分发到对应的 fs 操作。
23
+ * 工具名称和参数与 LangChain FileManagementToolkit 保持一致。
24
+ */
25
+ export declare function executeFileOperation(req: TunnelRequest): Promise<TunnelResult>;
26
+ //# sourceMappingURL=fileTunnel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileTunnel.d.ts","sourceRoot":"","sources":["../../../src/utils/fileTunnel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,CAmHvB"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * File Tool Tunneling - 本地文件操作执行器
3
+ *
4
+ * 当后端发送 tool_execute_request SSE 事件时,
5
+ * 在客户端本地执行文件操作并回传结果。
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ /**
10
+ * 在本地执行文件操作
11
+ *
12
+ * 根据 tool_name 分发到对应的 fs 操作。
13
+ * 工具名称和参数与 LangChain FileManagementToolkit 保持一致。
14
+ */
15
+ export async function executeFileOperation(req) {
16
+ try {
17
+ let result;
18
+ switch (req.tool_name) {
19
+ case 'read_file': {
20
+ const filePath = req.args.file_path;
21
+ if (!filePath) {
22
+ return fail(req, 'Missing required argument: file_path');
23
+ }
24
+ result = fs.readFileSync(filePath, 'utf-8');
25
+ break;
26
+ }
27
+ case 'write_file': {
28
+ const filePath = req.args.file_path;
29
+ const text = req.args.text ?? '';
30
+ if (!filePath) {
31
+ return fail(req, 'Missing required argument: file_path');
32
+ }
33
+ // 确保目录存在
34
+ const dir = path.dirname(filePath);
35
+ fs.mkdirSync(dir, { recursive: true });
36
+ fs.writeFileSync(filePath, text, 'utf-8');
37
+ result = `File written successfully to ${filePath}`;
38
+ break;
39
+ }
40
+ case 'list_directory': {
41
+ const dirPath = req.args.dir_path || req.args.input || '.';
42
+ if (!fs.existsSync(dirPath)) {
43
+ return fail(req, `Directory not found: ${dirPath}`);
44
+ }
45
+ const entries = fs.readdirSync(dirPath);
46
+ result = entries.join('\n');
47
+ break;
48
+ }
49
+ case 'copy_file': {
50
+ const src = req.args.source_path;
51
+ const dst = req.args.destination_path;
52
+ if (!src || !dst) {
53
+ return fail(req, 'Missing required arguments: source_path, destination_path');
54
+ }
55
+ // 确保目标目录存在
56
+ fs.mkdirSync(path.dirname(dst), { recursive: true });
57
+ fs.copyFileSync(src, dst);
58
+ result = `Copied ${src} to ${dst}`;
59
+ break;
60
+ }
61
+ case 'move_file': {
62
+ const src = req.args.source_path;
63
+ const dst = req.args.destination_path;
64
+ if (!src || !dst) {
65
+ return fail(req, 'Missing required arguments: source_path, destination_path');
66
+ }
67
+ fs.mkdirSync(path.dirname(dst), { recursive: true });
68
+ fs.renameSync(src, dst);
69
+ result = `Moved ${src} to ${dst}`;
70
+ break;
71
+ }
72
+ case 'file_delete': {
73
+ const filePath = req.args.file_path;
74
+ if (!filePath) {
75
+ return fail(req, 'Missing required argument: file_path');
76
+ }
77
+ if (!fs.existsSync(filePath)) {
78
+ return fail(req, `File not found: ${filePath}`);
79
+ }
80
+ fs.unlinkSync(filePath);
81
+ result = `Deleted ${filePath}`;
82
+ break;
83
+ }
84
+ case 'file_search': {
85
+ const pattern = req.args.pattern || req.args.input || '';
86
+ const dirPath = req.args.dir_path || '.';
87
+ if (!pattern) {
88
+ return fail(req, 'Missing required argument: pattern');
89
+ }
90
+ const matches = searchFiles(dirPath, pattern);
91
+ result = matches.length > 0 ? matches.join('\n') : 'No files found';
92
+ break;
93
+ }
94
+ case 'bash_shell_run': {
95
+ const command = req.args.command;
96
+ if (!command) {
97
+ return fail(req, 'Missing required argument: command');
98
+ }
99
+ const { execSync } = await import('node:child_process');
100
+ result = execSync(command, {
101
+ encoding: 'utf-8',
102
+ timeout: 60_000,
103
+ cwd: process.cwd(),
104
+ });
105
+ break;
106
+ }
107
+ default:
108
+ return fail(req, `Unknown tool: ${req.tool_name}`);
109
+ }
110
+ return {
111
+ request_id: req.request_id,
112
+ success: true,
113
+ result,
114
+ error: '',
115
+ };
116
+ }
117
+ catch (err) {
118
+ const errorMsg = err instanceof Error ? err.message : String(err);
119
+ return fail(req, errorMsg);
120
+ }
121
+ }
122
+ function fail(req, error) {
123
+ return {
124
+ request_id: req.request_id,
125
+ success: false,
126
+ result: '',
127
+ error,
128
+ };
129
+ }
130
+ /**
131
+ * 递归搜索匹配模式的文件
132
+ */
133
+ function searchFiles(dir, pattern, maxDepth = 5, depth = 0) {
134
+ if (depth > maxDepth)
135
+ return [];
136
+ const results = [];
137
+ try {
138
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
139
+ for (const entry of entries) {
140
+ const fullPath = path.join(dir, entry.name);
141
+ if (entry.name.includes(pattern)) {
142
+ results.push(fullPath);
143
+ }
144
+ if (entry.isDirectory() &&
145
+ !entry.name.startsWith('.') &&
146
+ entry.name !== 'node_modules') {
147
+ results.push(...searchFiles(fullPath, pattern, maxDepth, depth + 1));
148
+ }
149
+ }
150
+ }
151
+ catch {
152
+ /* permission error or inaccessible directory, skip */
153
+ }
154
+ return results;
155
+ }
156
+ //# sourceMappingURL=fileTunnel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileTunnel.js","sourceRoot":"","sources":["../../../src/utils/fileTunnel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mistagent",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "MistAgent - Terminal AI Assistant",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",