mistagent 0.1.4 → 0.1.6

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 VERSION = "0.1.4";
1
+ export declare const VERSION = "0.1.6";
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.6';
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.6",
4
4
  "description": "MistAgent - Terminal AI Assistant",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",