yuangs 5.56.0 → 5.58.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.
@@ -0,0 +1,471 @@
1
+ "use strict";
2
+ /**
3
+ * 工具能力规范 (Tool Capability Specification)
4
+ * -----------------------------------------
5
+ * 定义每个工具的元数据、能力要求和使用规范
6
+ *
7
+ * 目的:
8
+ * 1. 建立工具与能力等级的硬性依赖关系
9
+ * 2. 提供工具的 JSON Schema 定义用于 LLM 理解
10
+ * 3. 统一工具的错误处理和重试策略
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.TOOL_CAPABILITY_MAP = exports.ToolCategory = void 0;
14
+ exports.canExecuteTool = canExecuteTool;
15
+ exports.getToolCapabilityRequirement = getToolCapabilityRequirement;
16
+ exports.getAvailableToolsForCapability = getAvailableToolsForCapability;
17
+ exports.getToolJSONSchema = getToolJSONSchema;
18
+ exports.generateToolDefinitionsPrompt = generateToolDefinitionsPrompt;
19
+ const CapabilityLevel_1 = require("../core/capability/CapabilityLevel");
20
+ /**
21
+ * 工具类别枚举
22
+ */
23
+ var ToolCategory;
24
+ (function (ToolCategory) {
25
+ ToolCategory["FILE_IO"] = "file_io";
26
+ ToolCategory["FILE_SEARCH"] = "file_search";
27
+ ToolCategory["CODE_ANALYSIS"] = "code_analysis";
28
+ ToolCategory["GIT_OPERATION"] = "git_operation";
29
+ ToolCategory["SYSTEM"] = "system";
30
+ ToolCategory["NETWORK"] = "network"; // 网络操作
31
+ })(ToolCategory || (exports.ToolCategory = ToolCategory = {}));
32
+ /**
33
+ * 工具能力映射表
34
+ * 定义每个工具所需的最小能力等级
35
+ */
36
+ exports.TOOL_CAPABILITY_MAP = {
37
+ // ===== 基础文件操作 =====
38
+ read_file: {
39
+ name: 'read_file',
40
+ category: ToolCategory.FILE_IO,
41
+ description: '读取指定路径的文件内容',
42
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
43
+ parameters: [
44
+ { name: 'path', type: 'string', description: '文件路径(绝对路径或相对路径)', required: true },
45
+ { name: 'encoding', type: 'string', description: '文件编码,默认 utf-8', required: false, default: 'utf-8' }
46
+ ],
47
+ returns: '文件内容字符串',
48
+ examples: [
49
+ {
50
+ description: '读取配置文件',
51
+ parameters: { path: 'package.json' },
52
+ expectedResult: 'package.json 的内容'
53
+ }
54
+ ],
55
+ riskLevel: 'low',
56
+ retryable: true,
57
+ maxRetries: 3
58
+ },
59
+ read_file_lines: {
60
+ name: 'read_file_lines',
61
+ category: ToolCategory.FILE_IO,
62
+ description: '读取文件的指定行范围,用于处理大文件',
63
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
64
+ parameters: [
65
+ { name: 'path', type: 'string', description: '文件路径', required: true },
66
+ { name: 'start_line', type: 'number', description: '起始行号(从1开始)', required: true },
67
+ { name: 'end_line', type: 'number', description: '结束行号(包含),可选,默认到文件末尾', required: false },
68
+ { name: 'encoding', type: 'string', description: '文件编码,默认 utf-8', required: false, default: 'utf-8' }
69
+ ],
70
+ returns: '指定行范围的内容,带行号',
71
+ examples: [
72
+ {
73
+ description: '读取文件前50行',
74
+ parameters: { path: 'large-file.log', start_line: 1, end_line: 50 },
75
+ expectedResult: '文件第1-50行的内容'
76
+ },
77
+ {
78
+ description: '读取文件第100到150行',
79
+ parameters: { path: 'src/agent/executor.ts', start_line: 100, end_line: 150 },
80
+ expectedResult: '文件第100-150行的内容'
81
+ }
82
+ ],
83
+ riskLevel: 'low',
84
+ retryable: true,
85
+ maxRetries: 3
86
+ },
87
+ write_file: {
88
+ name: 'write_file',
89
+ category: ToolCategory.FILE_IO,
90
+ description: '创建或覆盖文件内容',
91
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
92
+ parameters: [
93
+ { name: 'path', type: 'string', description: '文件路径', required: true },
94
+ { name: 'content', type: 'string', description: '文件内容', required: true },
95
+ { name: 'encoding', type: 'string', description: '文件编码,默认 utf-8', required: false, default: 'utf-8' }
96
+ ],
97
+ returns: '写入成功的确认信息',
98
+ examples: [
99
+ {
100
+ description: '创建新文件',
101
+ parameters: { path: 'output.txt', content: 'Hello World' },
102
+ expectedResult: 'Successfully wrote output.txt'
103
+ }
104
+ ],
105
+ riskLevel: 'medium',
106
+ retryable: false,
107
+ maxRetries: 0
108
+ },
109
+ append_file: {
110
+ name: 'append_file',
111
+ category: ToolCategory.FILE_IO,
112
+ description: '向文件末尾追加内容',
113
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
114
+ parameters: [
115
+ { name: 'path', type: 'string', description: '文件路径', required: true },
116
+ { name: 'content', type: 'string', description: '要追加的内容', required: true },
117
+ { name: 'encoding', type: 'string', description: '文件编码,默认 utf-8', required: false, default: 'utf-8' }
118
+ ],
119
+ returns: '追加成功的确认信息',
120
+ examples: [
121
+ {
122
+ description: '向日志文件追加内容',
123
+ parameters: { path: 'app.log', content: 'New log entry\n' },
124
+ expectedResult: 'Successfully appended to app.log'
125
+ }
126
+ ],
127
+ riskLevel: 'medium',
128
+ retryable: true,
129
+ maxRetries: 2
130
+ },
131
+ // ===== 文件搜索和列表 =====
132
+ list_files: {
133
+ name: 'list_files',
134
+ category: ToolCategory.FILE_SEARCH,
135
+ description: '列出指定目录下的文件和子目录',
136
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
137
+ parameters: [
138
+ { name: 'path', type: 'string', description: '目录路径,默认当前目录', required: false, default: '.' },
139
+ { name: 'recursive', type: 'boolean', description: '是否递归列出子目录,默认 false', required: false, default: false },
140
+ { name: 'pattern', type: 'string', description: '文件名模式过滤(如 *.ts),默认不过滤', required: false },
141
+ { name: 'exclude_dirs', type: 'array', description: '要排除的目录名列表(如 node_modules)', required: false, default: [] }
142
+ ],
143
+ returns: '文件和目录列表的 JSON',
144
+ examples: [
145
+ {
146
+ description: '列出 src 目录下的 TypeScript 文件',
147
+ parameters: { path: 'src', recursive: true, pattern: '*.ts', exclude_dirs: ['node_modules'] },
148
+ expectedResult: 'src 目录下所有 .ts 文件的列表'
149
+ }
150
+ ],
151
+ riskLevel: 'low',
152
+ retryable: true,
153
+ maxRetries: 3
154
+ },
155
+ list_directory_tree: {
156
+ name: 'list_directory_tree',
157
+ category: ToolCategory.FILE_SEARCH,
158
+ description: '生成目录结构的树形展示,便于理解项目结构',
159
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
160
+ parameters: [
161
+ { name: 'path', type: 'string', description: '目录路径,默认当前目录', required: false, default: '.' },
162
+ { name: 'max_depth', type: 'number', description: '最大递归深度,默认 3', required: false, default: 3 },
163
+ { name: 'include_files', type: 'boolean', description: '是否包含文件,默认 true', required: false, default: true },
164
+ { name: 'exclude_patterns', type: 'array', description: '要排除的路径模式列表', required: false, default: ['node_modules', '.git', 'dist', 'build'] }
165
+ ],
166
+ returns: '目录结构的树形文本',
167
+ examples: [
168
+ {
169
+ description: '生成项目目录树',
170
+ parameters: { path: '.', max_depth: 3 },
171
+ expectedResult: '项目的树形目录结构'
172
+ }
173
+ ],
174
+ riskLevel: 'low',
175
+ retryable: true,
176
+ maxRetries: 3
177
+ },
178
+ search_in_files: {
179
+ name: 'search_in_files',
180
+ category: ToolCategory.FILE_SEARCH,
181
+ description: '在文件中搜索指定内容(类似 grep)',
182
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
183
+ parameters: [
184
+ { name: 'pattern', type: 'string', description: '搜索模式(支持正则表达式)', required: true },
185
+ { name: 'path', type: 'string', description: '搜索路径,默认当前目录', required: false, default: '.' },
186
+ { name: 'file_pattern', type: 'string', description: '文件名模式(如 *.ts),默认所有文件', required: false },
187
+ { name: 'recursive', type: 'boolean', description: '是否递归搜索,默认 true', required: false, default: true },
188
+ { name: 'ignore_case', type: 'boolean', description: '是否忽略大小写,默认 false', required: false, default: false },
189
+ { name: 'context_lines', type: 'number', description: '显示匹配行的上下文行数,默认 0', required: false, default: 0 },
190
+ { name: 'max_results', type: 'number', description: '最大结果数,默认 50', required: false, default: 50 }
191
+ ],
192
+ returns: '匹配结果的列表,包含文件名、行号和匹配内容',
193
+ examples: [
194
+ {
195
+ description: '在 TypeScript 文件中搜索 "function"',
196
+ parameters: { pattern: 'function', file_pattern: '*.ts', recursive: true },
197
+ expectedResult: '所有包含 "function" 的 TypeScript 文件及其行号'
198
+ }
199
+ ],
200
+ riskLevel: 'low',
201
+ retryable: true,
202
+ maxRetries: 3
203
+ },
204
+ // ===== 代码分析工具 =====
205
+ search_symbol: {
206
+ name: 'search_symbol',
207
+ category: ToolCategory.CODE_ANALYSIS,
208
+ description: '搜索代码符号(函数、类、变量等)的定义和引用',
209
+ minCapability: CapabilityLevel_1.CapabilityLevel.STRUCTURAL,
210
+ parameters: [
211
+ { name: 'symbol', type: 'string', description: '符号名称', required: true },
212
+ { name: 'symbol_type', type: 'string', description: '符号类型(function, class, variable, interface)', required: false },
213
+ { name: 'path', type: 'string', description: '搜索路径,默认当前目录', required: false, default: '.' },
214
+ { name: 'file_pattern', type: 'string', description: '文件名模式,默认所有文件', required: false }
215
+ ],
216
+ returns: '符号的定义位置和引用位置列表',
217
+ examples: [
218
+ {
219
+ description: '搜索 ToolExecutor 类的定义',
220
+ parameters: { symbol: 'ToolExecutor', symbol_type: 'class' },
221
+ expectedResult: 'ToolExecutor 类的定义文件和行号'
222
+ }
223
+ ],
224
+ riskLevel: 'low',
225
+ retryable: true,
226
+ maxRetries: 3
227
+ },
228
+ analyze_dependencies: {
229
+ name: 'analyze_dependencies',
230
+ category: ToolCategory.CODE_ANALYSIS,
231
+ description: '分析文件的依赖关系(import/require)',
232
+ minCapability: CapabilityLevel_1.CapabilityLevel.STRUCTURAL,
233
+ parameters: [
234
+ { name: 'path', type: 'string', description: '文件路径或目录路径', required: true },
235
+ { name: 'recursive', type: 'boolean', description: '是否递归分析依赖,默认 false', required: false, default: false }
236
+ ],
237
+ returns: '依赖关系图或列表',
238
+ examples: [
239
+ {
240
+ description: '分析 executor.ts 的依赖',
241
+ parameters: { path: 'src/agent/executor.ts' },
242
+ expectedResult: 'executor.ts 导入的所有模块和它们的位置'
243
+ }
244
+ ],
245
+ riskLevel: 'low',
246
+ retryable: true,
247
+ maxRetries: 3
248
+ },
249
+ // ===== Git 操作 =====
250
+ git_status: {
251
+ name: 'git_status',
252
+ category: ToolCategory.GIT_OPERATION,
253
+ description: '获取 Git 仓库状态',
254
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
255
+ parameters: [
256
+ { name: 'path', type: 'string', description: '仓库路径,默认当前目录', required: false, default: '.' }
257
+ ],
258
+ returns: 'Git 状态信息(分支、修改的文件等)',
259
+ examples: [
260
+ {
261
+ description: '获取当前 Git 状态',
262
+ parameters: {},
263
+ expectedResult: '当前分支和修改的文件列表'
264
+ }
265
+ ],
266
+ riskLevel: 'low',
267
+ retryable: true,
268
+ maxRetries: 2
269
+ },
270
+ git_diff: {
271
+ name: 'git_diff',
272
+ category: ToolCategory.GIT_OPERATION,
273
+ description: '查看文件或提交的差异',
274
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
275
+ parameters: [
276
+ { name: 'file', type: 'string', description: '指定文件路径,可选', required: false },
277
+ { name: 'cached', type: 'boolean', description: '查看暂存区的差异,默认 false', required: false, default: false },
278
+ { name: 'lines', type: 'number', description: '只显示前 N 行差异', required: false }
279
+ ],
280
+ returns: 'Git diff 输出',
281
+ examples: [
282
+ {
283
+ description: '查看工作区的修改',
284
+ parameters: {},
285
+ expectedResult: '所有未暂存的修改'
286
+ }
287
+ ],
288
+ riskLevel: 'low',
289
+ retryable: true,
290
+ maxRetries: 2
291
+ },
292
+ git_log: {
293
+ name: 'git_log',
294
+ category: ToolCategory.GIT_OPERATION,
295
+ description: '查看提交历史',
296
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
297
+ parameters: [
298
+ { name: 'max_count', type: 'number', description: '最多显示的提交数,默认 10', required: false, default: 10 },
299
+ { name: 'file', type: 'string', description: '只显示指定文件的历史', required: false },
300
+ { name: 'oneline', type: 'boolean', description: '单行格式,默认 true', required: false, default: true }
301
+ ],
302
+ returns: '提交历史记录',
303
+ examples: [
304
+ {
305
+ description: '查看最近5条提交',
306
+ parameters: { max_count: 5 },
307
+ expectedResult: '最近5条提交记录'
308
+ }
309
+ ],
310
+ riskLevel: 'low',
311
+ retryable: true,
312
+ maxRetries: 2
313
+ },
314
+ // ===== 系统操作 =====
315
+ shell_cmd: {
316
+ name: 'shell_cmd',
317
+ category: ToolCategory.SYSTEM,
318
+ description: '执行 Shell 命令',
319
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
320
+ parameters: [
321
+ { name: 'command', type: 'string', description: '要执行的命令', required: true },
322
+ { name: 'timeout', type: 'number', description: '超时时间(秒),默认 30', required: false, default: 30 }
323
+ ],
324
+ returns: '命令执行结果(stdout/stderr)',
325
+ examples: [
326
+ {
327
+ description: '列出当前目录',
328
+ parameters: { command: 'ls -la' },
329
+ expectedResult: '当前目录的文件列表'
330
+ }
331
+ ],
332
+ riskLevel: 'high',
333
+ retryable: false,
334
+ maxRetries: 0
335
+ },
336
+ // ===== 上下文管理工具 =====
337
+ continue_reading: {
338
+ name: 'continue_reading',
339
+ category: ToolCategory.FILE_IO,
340
+ description: '继续读取之前被截断的文件内容',
341
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
342
+ parameters: [
343
+ { name: 'path', type: 'string', description: '文件路径', required: true },
344
+ { name: 'from_position', type: 'number', description: '从哪个字符位置继续读取(默认之前读取的末尾)', required: false },
345
+ { name: 'length', type: 'number', description: '读取长度,默认 2000', required: false, default: 2000 }
346
+ ],
347
+ returns: '从指定位置开始的文件内容',
348
+ examples: [
349
+ {
350
+ description: '继续读取被截断的大文件',
351
+ parameters: { path: 'large-file.log', from_position: 2000, length: 2000 },
352
+ expectedResult: '从位置 2000 开始的 2000 个字符'
353
+ }
354
+ ],
355
+ riskLevel: 'low',
356
+ retryable: true,
357
+ maxRetries: 3
358
+ },
359
+ file_info: {
360
+ name: 'file_info',
361
+ category: ToolCategory.FILE_IO,
362
+ description: '获取文件的元信息(大小、类型、修改时间等)',
363
+ minCapability: CapabilityLevel_1.CapabilityLevel.TEXT,
364
+ parameters: [
365
+ { name: 'path', type: 'string', description: '文件路径', required: true }
366
+ ],
367
+ returns: '文件元信息的 JSON',
368
+ examples: [
369
+ {
370
+ description: '获取文件信息',
371
+ parameters: { path: 'package.json' },
372
+ expectedResult: '{ size: 1234, modified: "2024-01-01", type: "file" }'
373
+ }
374
+ ],
375
+ riskLevel: 'low',
376
+ retryable: true,
377
+ maxRetries: 3
378
+ }
379
+ };
380
+ /**
381
+ * 检查工具是否可以被当前能力等级执行
382
+ */
383
+ function canExecuteTool(toolName, currentCapability) {
384
+ const metadata = exports.TOOL_CAPABILITY_MAP[toolName];
385
+ if (!metadata)
386
+ return false;
387
+ return currentCapability >= metadata.minCapability;
388
+ }
389
+ /**
390
+ * 获取工具的能力要求
391
+ */
392
+ function getToolCapabilityRequirement(toolName) {
393
+ const metadata = exports.TOOL_CAPABILITY_MAP[toolName];
394
+ return metadata ? metadata.minCapability : null;
395
+ }
396
+ /**
397
+ * 根据 capability 级别获取可用的工具列表
398
+ */
399
+ function getAvailableToolsForCapability(capability) {
400
+ return Object.entries(exports.TOOL_CAPABILITY_MAP)
401
+ .filter(([_, metadata]) => capability >= metadata.minCapability)
402
+ .map(([name, _]) => name);
403
+ }
404
+ /**
405
+ * 获取工具的 JSON Schema 定义
406
+ * 用于生成 LLM 的工具定义
407
+ */
408
+ function getToolJSONSchema(toolName) {
409
+ const metadata = exports.TOOL_CAPABILITY_MAP[toolName];
410
+ if (!metadata)
411
+ return null;
412
+ const properties = {};
413
+ const required = [];
414
+ for (const param of metadata.parameters) {
415
+ properties[param.name] = {
416
+ type: param.type,
417
+ description: param.description
418
+ };
419
+ if (param.default !== undefined) {
420
+ properties[param.name].default = param.default;
421
+ }
422
+ if (param.required) {
423
+ required.push(param.name);
424
+ }
425
+ }
426
+ return {
427
+ type: 'object',
428
+ properties,
429
+ required
430
+ };
431
+ }
432
+ /**
433
+ * 生成完整的工具定义列表(用于 LLM System Prompt)
434
+ */
435
+ function generateToolDefinitionsPrompt() {
436
+ let prompt = '=== 可用工具定义 (Available Tools) ===\n\n';
437
+ for (const [name, metadata] of Object.entries(exports.TOOL_CAPABILITY_MAP)) {
438
+ prompt += `## ${name}\n`;
439
+ prompt += `- **描述**: ${metadata.description}\n`;
440
+ prompt += `- **能力要求**: ${capabilityLevelToString(metadata.minCapability)}\n`;
441
+ prompt += `- **风险等级**: ${metadata.riskLevel}\n`;
442
+ prompt += `- **参数**:\n`;
443
+ for (const param of metadata.parameters) {
444
+ const required = param.required ? '必需' : '可选';
445
+ const defaultVal = param.default !== undefined ? ` (默认: ${param.default})` : '';
446
+ prompt += ` - \`${param.name}\` (${param.type}, ${required})${defaultVal}: ${param.description}\n`;
447
+ }
448
+ prompt += `- **示例**:\n`;
449
+ for (const example of metadata.examples) {
450
+ const paramsStr = JSON.stringify(example.parameters, null, 2);
451
+ prompt += ` ${example.description}\n`;
452
+ prompt += ` 参数: ${paramsStr}\n`;
453
+ }
454
+ prompt += '\n';
455
+ }
456
+ return prompt;
457
+ }
458
+ /**
459
+ * 辅助函数:能力等级转字符串
460
+ */
461
+ function capabilityLevelToString(level) {
462
+ switch (level) {
463
+ case CapabilityLevel_1.CapabilityLevel.SEMANTIC: return 'SEMANTIC (极致语义)';
464
+ case CapabilityLevel_1.CapabilityLevel.STRUCTURAL: return 'STRUCTURAL (结构分析)';
465
+ case CapabilityLevel_1.CapabilityLevel.LINE: return 'LINE (行级分析)';
466
+ case CapabilityLevel_1.CapabilityLevel.TEXT: return 'TEXT (文本处理)';
467
+ case CapabilityLevel_1.CapabilityLevel.NONE: return 'NONE (无智能要求)';
468
+ default: return 'UNKNOWN';
469
+ }
470
+ }
471
+ //# sourceMappingURL=toolCapability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolCapability.js","sourceRoot":"","sources":["../../src/agent/toolCapability.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ async function confirm(message) {
43
43
  const rl = readline.createInterface({
44
44
  input: process.stdin,
45
45
  output: process.stdout,
46
+ terminal: false, // 禁用终端特性以避免与外部 readline 接口冲突
46
47
  });
47
48
  try {
48
49
  const answer = await rl.question(chalk_1.default.yellow(`\n⚠️ ${message} (y/N) `));
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/utils/confirm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,0BAYC;AAfD,iEAAmD;AACnD,kDAA0B;AAEnB,KAAK,UAAU,OAAO,CAAC,OAAe;IACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,OAAO,SAAS,CAAC,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;IACxC,CAAC;YAAS,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/utils/confirm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,0BAaC;AAhBD,iEAAmD;AACnD,kDAA0B;AAEnB,KAAK,UAAU,OAAO,CAAC,OAAe;IACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK,EAAE,6BAA6B;KACjD,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,OAAO,SAAS,CAAC,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;IACxC,CAAC;YAAS,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuangs",
3
- "version": "5.56.0",
3
+ "version": "5.58.0",
4
4
  "description": "苑广山的个人应用集合 CLI(彩色版)",
5
5
  "author": "苑广山",
6
6
  "license": "ISC",