yuangs 1.3.61 → 1.3.62

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.
@@ -1,3 +1,4 @@
1
1
  import { OSProfile } from '../core/os';
2
- export declare function buildCommandPrompt(userInput: string, os: OSProfile): string;
2
+ import type { Macro } from '../core/validation';
3
+ export declare function buildCommandPrompt(userInput: string, os: OSProfile, macros?: Record<string, Macro>): string;
3
4
  export declare function buildFixPrompt(originalCmd: string, stderr: string, os: OSProfile): string;
package/dist/ai/prompt.js CHANGED
@@ -2,7 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildCommandPrompt = buildCommandPrompt;
4
4
  exports.buildFixPrompt = buildFixPrompt;
5
- function buildCommandPrompt(userInput, os) {
5
+ function buildCommandPrompt(userInput, os, macros) {
6
+ const macroContext = macros && Object.keys(macros).length > 0
7
+ ? `
8
+ 【可复用的快捷指令 (Macros)】
9
+ 以下是可以直接复用的已验证命令。优先复用这些指令,而不是生成新命令:
10
+
11
+ ${Object.entries(macros).map(([name, macro]) => ` - ${name}: ${macro.description || '(无描述)'}`).join('\n')}
12
+
13
+ 当用户的需求与某个 Macro 匹配或相似时:
14
+ 1. 优先使用该 Macro
15
+ 2. 在 JSON 输出中使用 "macro" 字段指定 Macro 名称,而不是 "command" 字段
16
+ 3. 仅在没有合适 Macro 时才生成新命令
17
+ `
18
+ : '';
6
19
  return `
7
20
  你是一个专业的命令行专家。
8
21
 
@@ -22,11 +35,15 @@ function buildCommandPrompt(userInput, os) {
22
35
  - 默认不使用 sudo。
23
36
  - 确保输出的命令是单行或者使用 && 连接。
24
37
  - 不要解释,只输出符合以下 JSON 结构的文本。
38
+ - 优先复用已验证的快捷指令(Macros),每个 Macro 都是经过人工验证的可靠命令。在生成新命令前,检查是否已有 Macro 可以完成任务。
39
+
40
+ ${macroContext}
25
41
 
26
42
  【输出 JSON 结构】
27
43
  {
28
44
  "plan": "简要说明你准备执行的步骤",
29
- "command": "可直接执行的 shell 命令",
45
+ "command": "可直接执行的 shell 命令(仅当没有合适 Macro 时提供)",
46
+ "macro": "要复用的 Macro 名称(优先使用,与 command 二选一)",
30
47
  "risk": "low | medium | high"
31
48
  }
32
49
 
@@ -45,7 +62,8 @@ ${originalCmd}
45
62
  ${stderr}
46
63
 
47
64
  请生成一个 **${os.name} 兼容** 的等价命令。
48
- 依然只输出 JSON 格式。
65
+ 依然只输出 JSON 格式。注意:这是修复命令,不需要检查 Macro。
66
+
49
67
  {
50
68
  "plan": "修复说明",
51
69
  "command": "修复后的命令",
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/ai/prompt.ts"],"names":[],"mappings":";;AAEA,gDAkCC;AAED,wCAsBC;AA1DD,SAAgB,kBAAkB,CAC9B,SAAiB,EACjB,EAAa;IAEb,OAAO;;;;UAID,EAAE,CAAC,IAAI;WACN,EAAE,CAAC,KAAK;aACN,EAAE,CAAC,IAAI;aACP,EAAE,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;EAqBlB,SAAS;CACV,CAAC;AACF,CAAC;AAED,SAAgB,cAAc,CAC1B,WAAmB,EACnB,MAAc,EACd,EAAa;IAEb,OAAO;OACJ,EAAE,CAAC,IAAI;;;EAGZ,WAAW;;;EAGX,MAAM;;UAEE,EAAE,CAAC,IAAI;;;;;;;CAOhB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/ai/prompt.ts"],"names":[],"mappings":";;AAGA,gDAqDC;AAED,wCAuBC;AA9ED,SAAgB,kBAAkB,CAC9B,SAAiB,EACjB,EAAa,EACb,MAA8B;IAE9B,MAAM,YAAY,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC;;;;EAIR,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;CAMzG;QACO,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;;;;UAID,EAAE,CAAC,IAAI;WACN,EAAE,CAAC,KAAK;aACN,EAAE,CAAC,IAAI;aACP,EAAE,CAAC,IAAI;;;;;;;;;;;;;;EAclB,YAAY;;;;;;;;;;;EAWZ,SAAS;CACV,CAAC;AACF,CAAC;AAED,SAAgB,cAAc,CAC1B,WAAmB,EACnB,MAAc,EACd,EAAa;IAEb,OAAO;OACJ,EAAE,CAAC,IAAI;;;EAGZ,WAAW;;;EAGX,MAAM;;UAEE,EAAE,CAAC,IAAI;;;;;;;;CAQhB,CAAC;AACF,CAAC"}
@@ -3,4 +3,8 @@ export declare function handleAICommand(userInput: string, options: {
3
3
  model?: string;
4
4
  dryRun?: boolean;
5
5
  autoYes?: boolean;
6
- }): Promise<import("../core/executor").ExecResult | undefined>;
6
+ }): Promise<{
7
+ code: number | null;
8
+ stdout?: string;
9
+ stderr?: string;
10
+ } | undefined>;
@@ -15,20 +15,21 @@ const autofix_1 = require("../core/autofix");
15
15
  const confirm_1 = require("../utils/confirm");
16
16
  const history_1 = require("../utils/history");
17
17
  const validation_1 = require("../core/validation");
18
+ const macros_1 = require("../core/macros");
18
19
  function validateAIPlan(obj) {
19
20
  return (typeof obj === 'object' &&
20
21
  obj !== null &&
21
22
  typeof obj.plan === 'string' &&
22
- typeof obj.command === 'string' &&
23
- ['low', 'medium', 'high'].includes(obj.risk));
23
+ ['low', 'medium', 'high'].includes(obj.risk) &&
24
+ (typeof obj.command === 'string' || typeof obj.macro === 'string'));
24
25
  }
25
26
  async function handleAICommand(userInput, options) {
26
27
  const os = (0, os_1.getOSProfile)();
28
+ const macros = (0, macros_1.getMacros)();
27
29
  const spinner = (0, ora_1.default)(chalk_1.default.cyan('🧠 AI 正在规划中...')).start();
28
30
  try {
29
31
  // 1️⃣ 让 AI 出计划
30
- // ... (AI call logic remains same)
31
- const prompt = (0, prompt_1.buildCommandPrompt)(userInput, os);
32
+ const prompt = (0, prompt_1.buildCommandPrompt)(userInput, os, macros);
32
33
  const raw = await (0, client_1.askAI)(prompt, options.model);
33
34
  spinner.stop();
34
35
  const { aiCommandPlanSchema } = require('../core/validation');
@@ -40,11 +41,31 @@ async function handleAICommand(userInput, options) {
40
41
  return;
41
42
  }
42
43
  const plan = parseResult.data;
44
+ // Determine if we're using a macro or a new command
45
+ const isUsingMacro = !!plan.macro;
46
+ let actualCommand = plan.macro ? macros[plan.macro]?.commands : plan.command;
47
+ if (!actualCommand) {
48
+ console.log(chalk_1.default.red('\n❌ 无效的计划:'));
49
+ if (plan.macro) {
50
+ console.log(chalk_1.default.red(`未找到名为 "${plan.macro}" 的 Macro`));
51
+ }
52
+ else {
53
+ console.log(chalk_1.default.red('未提供有效的命令'));
54
+ }
55
+ return;
56
+ }
57
+ const commandToExecute = actualCommand;
43
58
  // 2️⃣ 风险兜底
44
- const finalRisk = (0, risk_1.assessRisk)(plan.command, plan.risk);
59
+ const finalRisk = (0, risk_1.assessRisk)(commandToExecute, plan.risk);
45
60
  // 3️⃣ 展示给用户
46
61
  console.log(chalk_1.default.bold.cyan('\n🧠 计划: ') + plan.plan);
47
- console.log(chalk_1.default.bold.green('💻 命令: ') + chalk_1.default.yellow(plan.command));
62
+ if (isUsingMacro) {
63
+ console.log(chalk_1.default.bold.green('✨ 复用 Macro: ') + chalk_1.default.yellow(plan.macro));
64
+ console.log(chalk_1.default.gray(' (已验证的命令,无需重新生成)'));
65
+ }
66
+ else {
67
+ console.log(chalk_1.default.bold.green('💻 命令: ') + chalk_1.default.yellow(commandToExecute));
68
+ }
48
69
  const riskColor = finalRisk === 'high' ? chalk_1.default.red : (finalRisk === 'medium' ? chalk_1.default.yellow : chalk_1.default.green);
49
70
  console.log(chalk_1.default.bold('⚠️ 风险判断: ') + riskColor(finalRisk.toUpperCase()));
50
71
  // Check Dry Run
@@ -54,11 +75,16 @@ async function handleAICommand(userInput, options) {
54
75
  }
55
76
  // 4️⃣ 确认
56
77
  console.log(chalk_1.default.gray('─'.repeat(50)));
57
- console.log(chalk_1.default.yellow('⚠️ 注意: 以上命令由 AI 生成,请在执行前仔细检查。'));
58
- console.log(chalk_1.default.gray(' AI 可能会犯错,安全由您掌控。'));
78
+ if (isUsingMacro) {
79
+ console.log(chalk_1.default.yellow('⚠️ 注意: AI 正在复用已验证的 Macro。'));
80
+ }
81
+ else {
82
+ console.log(chalk_1.default.yellow('⚠️ 注意: 以上命令由 AI 生成,请在执行前仔细检查。'));
83
+ console.log(chalk_1.default.gray(' AI 可能会犯错,安全由您掌控。'));
84
+ }
59
85
  console.log(chalk_1.default.gray('─'.repeat(50)));
60
86
  let shouldExecute = options.execute || options.autoYes;
61
- // If high risk, maybe force confirm even with autoYes?
87
+ // If high risk, maybe force confirm even with autoYes?
62
88
  // For now, let's respect autoYes as the "I know what I'm doing" flag.
63
89
  // But if risk is high and NOT autoYes, we definitely ask.
64
90
  if (!shouldExecute) {
@@ -70,12 +96,20 @@ async function handleAICommand(userInput, options) {
70
96
  }
71
97
  // 5️⃣ 执行
72
98
  console.log(chalk_1.default.gray('\n执行中...\n'));
73
- let result = await (0, executor_1.exec)(plan.command);
74
- // 6️⃣ 自动修复(仅一次)
75
- if (result.code !== 0 && result.code !== null) {
99
+ let result;
100
+ if (isUsingMacro) {
101
+ const macroSuccess = (0, macros_1.runMacro)(plan.macro);
102
+ result = { code: 0, stdout: '', stderr: '' };
103
+ console.log(chalk_1.default.green('✓ Macro 已执行'));
104
+ }
105
+ else {
106
+ result = await (0, executor_1.exec)(commandToExecute);
107
+ }
108
+ // 6️⃣ 自动修复(仅针对新生成的命令,不针对 Macros)
109
+ if (!isUsingMacro && result.code !== 0 && result.code !== null) {
76
110
  console.log(chalk_1.default.red('\n❌ 执行失败,尝试自动修复...'));
77
- const fixedPlan = await (0, autofix_1.autoFixCommand)(plan.command, result.stderr, os, options.model);
78
- if (fixedPlan) {
111
+ const fixedPlan = await (0, autofix_1.autoFixCommand)(commandToExecute, result.stderr, os, options.model);
112
+ if (fixedPlan && fixedPlan.command) {
79
113
  console.log(chalk_1.default.bold.cyan('🔁 修复方案: ') + fixedPlan.plan);
80
114
  console.log(chalk_1.default.bold.green('💻 修复命令: ') + chalk_1.default.yellow(fixedPlan.command));
81
115
  const retry = await (0, confirm_1.confirm)('是否执行修复后的命令?');
@@ -97,9 +131,14 @@ async function handleAICommand(userInput, options) {
97
131
  if (result.code === 0) {
98
132
  (0, history_1.saveHistory)({
99
133
  question: userInput,
100
- command: plan.command,
134
+ command: commandToExecute,
101
135
  });
102
- console.log(chalk_1.default.green('\n✓ 执行成功并已存入历史库'));
136
+ if (isUsingMacro) {
137
+ console.log(chalk_1.default.green('\n✓ Macro 执行成功并已存入历史库'));
138
+ }
139
+ else {
140
+ console.log(chalk_1.default.green('\n✓ 执行成功并已存入历史库'));
141
+ }
103
142
  }
104
143
  return result;
105
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handleAICommand.js","sourceRoot":"","sources":["../../src/commands/handleAICommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleAICommand.js","sourceRoot":"","sources":["../../src/commands/handleAICommand.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { OSProfile } from './os';
2
- import { AICommandPlan } from './validation';
3
- export declare function autoFixCommand(originalCmd: string, stderr: string, os: OSProfile, model?: string): Promise<AICommandPlan | null>;
2
+ import { AIFixPlan } from './validation';
3
+ export declare function autoFixCommand(originalCmd: string, stderr: string, os: OSProfile, model?: string): Promise<AIFixPlan | null>;
@@ -7,7 +7,7 @@ const validation_1 = require("./validation");
7
7
  async function autoFixCommand(originalCmd, stderr, os, model) {
8
8
  const prompt = (0, prompt_1.buildFixPrompt)(originalCmd, stderr, os);
9
9
  const raw = await (0, client_1.askAI)(prompt, model);
10
- const parseResult = (0, validation_1.safeParseJSON)(raw, validation_1.aiCommandPlanSchema, {});
10
+ const parseResult = (0, validation_1.safeParseJSON)(raw, validation_1.aiFixPlanSchema, {});
11
11
  if (!parseResult.success) {
12
12
  return null;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../src/core/autofix.ts"],"names":[],"mappings":";;AAKA,wCAgBC;AApBD,yCAA8C;AAC9C,yCAAqC;AACrC,6CAAiF;AAE1E,KAAK,UAAU,cAAc,CAChC,WAAmB,EACnB,MAAc,EACd,EAAa,EACb,KAAc;IAEd,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,IAAA,cAAK,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,IAAA,0BAAa,EAAC,GAAG,EAAE,gCAAmB,EAAE,EAAmB,CAAC,CAAC;IAEjF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../src/core/autofix.ts"],"names":[],"mappings":";;AAKA,wCAgBC;AApBD,yCAA8C;AAC9C,yCAAqC;AACrC,6CAAyE;AAElE,KAAK,UAAU,cAAc,CAChC,WAAmB,EACnB,MAAc,EACd,EAAa,EACb,KAAc;IAEd,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,IAAA,cAAK,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,IAAA,0BAAa,EAAC,GAAG,EAAE,4BAAe,EAAE,EAAe,CAAC,CAAC;IAEzE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC;AAC5B,CAAC"}
@@ -30,7 +30,8 @@ export declare const DEFAULT_APPS: {
30
30
  };
31
31
  export declare const aiCommandPlanSchema: z.ZodObject<{
32
32
  plan: z.ZodString;
33
- command: z.ZodString;
33
+ command: z.ZodOptional<z.ZodString>;
34
+ macro: z.ZodOptional<z.ZodString>;
34
35
  risk: z.ZodEnum<{
35
36
  low: "low";
36
37
  medium: "medium";
@@ -38,6 +39,16 @@ export declare const aiCommandPlanSchema: z.ZodObject<{
38
39
  }>;
39
40
  }, z.core.$strip>;
40
41
  export type AICommandPlan = z.infer<typeof aiCommandPlanSchema>;
42
+ export declare const aiFixPlanSchema: z.ZodObject<{
43
+ plan: z.ZodString;
44
+ command: z.ZodString;
45
+ risk: z.ZodEnum<{
46
+ low: "low";
47
+ medium: "medium";
48
+ high: "high";
49
+ }>;
50
+ }, z.core.$strip>;
51
+ export type AIFixPlan = z.infer<typeof aiFixPlanSchema>;
41
52
  export declare const userConfigSchema: z.ZodObject<{
42
53
  defaultModel: z.ZodOptional<z.ZodString>;
43
54
  aiProxyUrl: z.ZodOptional<z.ZodString>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.historyEntrySchema = exports.macroSchema = exports.appsConfigSchema = exports.userConfigSchema = exports.aiCommandPlanSchema = exports.DEFAULT_APPS = exports.DEFAULT_ACCOUNT_TYPE = exports.DEFAULT_MODEL = exports.DEFAULT_AI_PROXY_URL = void 0;
3
+ exports.historyEntrySchema = exports.macroSchema = exports.appsConfigSchema = exports.userConfigSchema = exports.aiFixPlanSchema = exports.aiCommandPlanSchema = exports.DEFAULT_APPS = exports.DEFAULT_ACCOUNT_TYPE = exports.DEFAULT_MODEL = exports.DEFAULT_AI_PROXY_URL = void 0;
4
4
  exports.extractJSON = extractJSON;
5
5
  exports.safeParseJSON = safeParseJSON;
6
6
  exports.parseUserConfig = parseUserConfig;
@@ -18,7 +18,15 @@ exports.DEFAULT_APPS = {
18
18
  };
19
19
  exports.aiCommandPlanSchema = zod_1.z.object({
20
20
  plan: zod_1.z.string().describe('Explanation of the command'),
21
- command: zod_1.z.string().describe('The shell command to execute'),
21
+ command: zod_1.z.string().optional().describe('The shell command to execute'),
22
+ macro: zod_1.z.string().optional().describe('Name of an existing macro to reuse'),
23
+ risk: zod_1.z.enum(['low', 'medium', 'high']).describe('Risk level assessment')
24
+ }).refine(data => data.command || data.macro, {
25
+ message: 'Either command or macro must be provided'
26
+ });
27
+ exports.aiFixPlanSchema = zod_1.z.object({
28
+ plan: zod_1.z.string().describe('Fix explanation'),
29
+ command: zod_1.z.string().describe('The fixed shell command (always required for fixes)'),
22
30
  risk: zod_1.z.enum(['low', 'medium', 'high']).describe('Risk level assessment')
23
31
  });
24
32
  exports.userConfigSchema = zod_1.z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuangs",
3
- "version": "1.3.61",
3
+ "version": "1.3.62",
4
4
  "description": "苑广山的个人应用集合 CLI(彩色版)",
5
5
  "author": "苑广山",
6
6
  "license": "ISC",