yuangs 5.43.0 → 5.45.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.
Files changed (83) hide show
  1. package/dist/cli.js +2 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/git/auto.d.ts +0 -3
  4. package/dist/commands/git/auto.js +78 -257
  5. package/dist/commands/git/auto.js.map +1 -1
  6. package/dist/commands/git/historySemantic.d.ts +2 -0
  7. package/dist/commands/git/historySemantic.js +62 -0
  8. package/dist/commands/git/historySemantic.js.map +1 -0
  9. package/dist/commands/git/plan.js +4 -2
  10. package/dist/commands/git/plan.js.map +1 -1
  11. package/dist/commands/git/resolve.d.ts +2 -0
  12. package/dist/commands/git/resolve.js +104 -0
  13. package/dist/commands/git/resolve.js.map +1 -0
  14. package/dist/commands/git/semanticDiff.d.ts +2 -0
  15. package/dist/commands/git/semanticDiff.js +51 -0
  16. package/dist/commands/git/semanticDiff.js.map +1 -0
  17. package/dist/commands/git/smartCommit.d.ts +2 -0
  18. package/dist/commands/git/smartCommit.js +110 -0
  19. package/dist/commands/git/smartCommit.js.map +1 -0
  20. package/dist/commands/gitCommands.js +8 -0
  21. package/dist/commands/gitCommands.js.map +1 -1
  22. package/dist/core/ConfigManager.d.ts +39 -0
  23. package/dist/core/ConfigManager.js +127 -0
  24. package/dist/core/ConfigManager.js.map +1 -0
  25. package/dist/core/GlobalErrorHandler.d.ts +10 -0
  26. package/dist/core/GlobalErrorHandler.js +65 -0
  27. package/dist/core/GlobalErrorHandler.js.map +1 -0
  28. package/dist/core/capability/CapabilityLevel.d.ts +41 -109
  29. package/dist/core/capability/CapabilityLevel.js +76 -159
  30. package/dist/core/capability/CapabilityLevel.js.map +1 -1
  31. package/dist/core/capability/DegradationPolicy.js.map +1 -1
  32. package/dist/core/capability/Logger.d.ts +41 -0
  33. package/dist/core/capability/Logger.js +58 -0
  34. package/dist/core/capability/Logger.js.map +1 -0
  35. package/dist/core/capability/Pipeline.d.ts +146 -0
  36. package/dist/core/capability/Pipeline.js +233 -0
  37. package/dist/core/capability/Pipeline.js.map +1 -0
  38. package/dist/core/capability/PipelineFactory.d.ts +40 -0
  39. package/dist/core/capability/PipelineFactory.js +260 -0
  40. package/dist/core/capability/PipelineFactory.js.map +1 -0
  41. package/dist/core/capability/index.d.ts +3 -0
  42. package/dist/core/capability/index.js +3 -0
  43. package/dist/core/capability/index.js.map +1 -1
  44. package/dist/core/errors.d.ts +38 -0
  45. package/dist/core/errors.js +64 -0
  46. package/dist/core/errors.js.map +1 -0
  47. package/dist/core/git/ConflictResolver.d.ts +25 -0
  48. package/dist/core/git/ConflictResolver.js +121 -0
  49. package/dist/core/git/ConflictResolver.js.map +1 -0
  50. package/dist/core/git/GitService.d.ts +11 -1
  51. package/dist/core/git/GitService.js +37 -1
  52. package/dist/core/git/GitService.js.map +1 -1
  53. package/dist/core/git/SmartCommitManager.d.ts +24 -0
  54. package/dist/core/git/SmartCommitManager.js +137 -0
  55. package/dist/core/git/SmartCommitManager.js.map +1 -0
  56. package/dist/core/git/constants.d.ts +4 -0
  57. package/dist/core/git/constants.js +14 -1
  58. package/dist/core/git/constants.js.map +1 -1
  59. package/dist/core/git/semantic/SemanticCommitParser.d.ts +12 -0
  60. package/dist/core/git/semantic/SemanticCommitParser.js +92 -0
  61. package/dist/core/git/semantic/SemanticCommitParser.js.map +1 -0
  62. package/dist/core/git/semantic/SemanticDiffEngine.d.ts +18 -0
  63. package/dist/core/git/semantic/SemanticDiffEngine.js +152 -0
  64. package/dist/core/git/semantic/SemanticDiffEngine.js.map +1 -0
  65. package/dist/core/git/semantic/historyTypes.d.ts +14 -0
  66. package/dist/core/git/semantic/historyTypes.js +3 -0
  67. package/dist/core/git/semantic/historyTypes.js.map +1 -0
  68. package/dist/core/git/semantic/types.d.ts +29 -0
  69. package/dist/core/git/semantic/types.js +18 -0
  70. package/dist/core/git/semantic/types.js.map +1 -0
  71. package/dist/core/metrics/PerformanceMonitor.d.ts +28 -0
  72. package/dist/core/metrics/PerformanceMonitor.js +64 -0
  73. package/dist/core/metrics/PerformanceMonitor.js.map +1 -0
  74. package/dist/utils/CLIComponent.d.ts +26 -0
  75. package/dist/utils/CLIComponent.js +91 -0
  76. package/dist/utils/CLIComponent.js.map +1 -0
  77. package/dist/utils/Logger.d.ts +31 -0
  78. package/dist/utils/Logger.js +102 -0
  79. package/dist/utils/Logger.js.map +1 -0
  80. package/dist/utils/ProgressBar.d.ts +27 -0
  81. package/dist/utils/ProgressBar.js +103 -0
  82. package/dist/utils/ProgressBar.js.map +1 -0
  83. package/package.json +1 -1
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.configManager = exports.ConfigManager = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const js_yaml_1 = __importDefault(require("js-yaml"));
10
+ const errors_1 = require("./errors");
11
+ const Logger_1 = require("../utils/Logger");
12
+ const DEFAULT_CONFIG = {
13
+ git: {
14
+ auto: {
15
+ model: 'Assistant',
16
+ maxTasks: 5,
17
+ minScore: 85,
18
+ autoCommit: false,
19
+ reviewLevel: 'standard',
20
+ },
21
+ reviewThreshold: 7,
22
+ },
23
+ ui: {
24
+ theme: 'auto',
25
+ showProgress: true,
26
+ useEmoji: true,
27
+ },
28
+ ai: {
29
+ defaultModel: 'Assistant',
30
+ temperature: 0.7,
31
+ maxTokens: 2000,
32
+ },
33
+ };
34
+ const CONFIG_FILES = [
35
+ '.yuangsrc',
36
+ '.yuangsrc.json',
37
+ '.yuangsrc.yaml',
38
+ '.yuangsrc.yml',
39
+ 'yuangs.config.json',
40
+ ];
41
+ class ConfigManager {
42
+ cwd;
43
+ config = DEFAULT_CONFIG;
44
+ configPath = null;
45
+ constructor(cwd = process.cwd()) {
46
+ this.cwd = cwd;
47
+ }
48
+ /**
49
+ * Initialize and load configuration from disk
50
+ */
51
+ async init() {
52
+ const configPath = this.findConfigFile();
53
+ if (configPath) {
54
+ this.configPath = configPath;
55
+ await this.loadConfig(configPath);
56
+ }
57
+ }
58
+ findConfigFile() {
59
+ for (const file of CONFIG_FILES) {
60
+ const fullPath = path_1.default.join(this.cwd, file);
61
+ if (fs_1.default.existsSync(fullPath)) {
62
+ return fullPath;
63
+ }
64
+ }
65
+ // Check home directory as well
66
+ const homeDir = process.env.HOME || process.env.USERPROFILE;
67
+ if (homeDir) {
68
+ for (const file of CONFIG_FILES) {
69
+ const fullPath = path_1.default.join(homeDir, file);
70
+ if (fs_1.default.existsSync(fullPath)) {
71
+ return fullPath;
72
+ }
73
+ }
74
+ }
75
+ return null;
76
+ }
77
+ async loadConfig(filePath) {
78
+ try {
79
+ const content = await fs_1.default.promises.readFile(filePath, 'utf8');
80
+ let parsed;
81
+ if (filePath.endsWith('.yaml') || filePath.endsWith('.yml') || !filePath.includes('.')) {
82
+ parsed = js_yaml_1.default.load(content);
83
+ }
84
+ else {
85
+ parsed = JSON.parse(content);
86
+ }
87
+ this.config = this.deepMerge(DEFAULT_CONFIG, parsed || {});
88
+ Logger_1.logger.debug('Config', `Configuration loaded from ${filePath}`);
89
+ }
90
+ catch (error) {
91
+ throw new errors_1.ConfigError(`Failed to load config: ${error.message}`, [
92
+ `Check if ${filePath} is a valid JSON or YAML file.`,
93
+ ]);
94
+ }
95
+ }
96
+ deepMerge(target, source) {
97
+ const result = { ...target };
98
+ for (const key in source) {
99
+ if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {
100
+ result[key] = this.deepMerge(target[key] || {}, source[key]);
101
+ }
102
+ else {
103
+ result[key] = source[key];
104
+ }
105
+ }
106
+ return result;
107
+ }
108
+ get(path) {
109
+ const parts = path.split('.');
110
+ let value = this.config;
111
+ for (const part of parts) {
112
+ if (value === undefined || value === null)
113
+ return undefined;
114
+ value = value[part];
115
+ }
116
+ return value;
117
+ }
118
+ getAll() {
119
+ return this.config;
120
+ }
121
+ getConfigPath() {
122
+ return this.configPath;
123
+ }
124
+ }
125
+ exports.ConfigManager = ConfigManager;
126
+ exports.configManager = new ConfigManager();
127
+ //# sourceMappingURL=ConfigManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/core/ConfigManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Global error handler for the CLI
3
+ */
4
+ export declare class GlobalErrorHandler {
5
+ /**
6
+ * Standard way to display errors to the user
7
+ */
8
+ static handleError(error: any, context?: string): void;
9
+ private static getGenericSuggestions;
10
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GlobalErrorHandler = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const errors_1 = require("./errors");
9
+ const Logger_1 = require("../utils/Logger");
10
+ /**
11
+ * Global error handler for the CLI
12
+ */
13
+ class GlobalErrorHandler {
14
+ /**
15
+ * Standard way to display errors to the user
16
+ */
17
+ static handleError(error, context) {
18
+ const isYuangsError = error instanceof errors_1.YuangsError;
19
+ // Log the error details
20
+ Logger_1.logger.error(context || 'Global', error.message, {
21
+ code: isYuangsError ? error.code : 'UNKNOWN',
22
+ stack: error.stack
23
+ });
24
+ console.log('\n' + chalk_1.default.red.bold('✕ Error: ') + chalk_1.default.white(error.message));
25
+ if (isYuangsError && error.code) {
26
+ console.log(chalk_1.default.gray(`Code: ${error.code}`));
27
+ }
28
+ if (isYuangsError && error.suggestions && error.suggestions.length > 0) {
29
+ console.log('\n' + chalk_1.default.yellow.bold('💡 Suggestions:'));
30
+ error.suggestions.forEach(suggestion => {
31
+ console.log(chalk_1.default.yellow(` • ${suggestion}`));
32
+ });
33
+ }
34
+ else {
35
+ // Generic suggestions based on common error patterns
36
+ const genericSuggestions = this.getGenericSuggestions(error);
37
+ if (genericSuggestions.length > 0) {
38
+ console.log('\n' + chalk_1.default.cyan.bold('💡 Suggestions:'));
39
+ genericSuggestions.forEach(suggestion => {
40
+ console.log(chalk_1.default.cyan(` • ${suggestion}`));
41
+ });
42
+ }
43
+ }
44
+ console.log(''); // New line for spacing
45
+ }
46
+ static getGenericSuggestions(error) {
47
+ const message = error.message?.toLowerCase() || '';
48
+ const suggestions = [];
49
+ if (message.includes('not a git repository')) {
50
+ suggestions.push('Run this command inside a Git repository.', 'Use "git init" to create a new repository.');
51
+ }
52
+ else if (message.includes('permission denied') || message.includes('eacces')) {
53
+ suggestions.push('Try running with elevated permissions.', 'Check the file/directory ownership.');
54
+ }
55
+ else if (message.includes('enoent')) {
56
+ suggestions.push('Verify that the file or directory exists.');
57
+ }
58
+ else if (message.includes('network') || message.includes('econn')) {
59
+ suggestions.push('Check your internet connection.', 'Verify if the remote service is up.');
60
+ }
61
+ return suggestions;
62
+ }
63
+ }
64
+ exports.GlobalErrorHandler = GlobalErrorHandler;
65
+ //# sourceMappingURL=GlobalErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalErrorHandler.js","sourceRoot":"","sources":["../../src/core/GlobalErrorHandler.ts"],"names":[],"mappings":"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"}
@@ -1,125 +1,57 @@
1
1
  /**
2
- * Git 能力等级枚举
3
- *
4
- * 定义了不同层级的代码理解和处理能力,用于:
5
- * - 评估任务的复杂度
6
- * - 决定降级策略
7
- * - 选择合适的 AI 模型和工具
8
- *
9
- * 等级说明:
10
- * - SEMANTIC (5): 语义理解,需要理解代码意图和设计模式
11
- * - STRUCTURAL (4): 结构分析,需要理解代码结构和依赖关系
12
- * - LINE (3): 行级分析,需要理解具体代码行逻辑
13
- * - TEXT (2): 文本分析,只需要处理文本内容
14
- * - NONE (1): 无需智能分析
2
+ * CapabilityLevel
3
+ * ----------------
4
+ * 定义系统中「能力(Capability)」的智能等级。
5
+ *
6
+ * 该等级用于:
7
+ * - AI Capability 匹配
8
+ * - 模型路由规划
9
+ * - 执行阶段降级决策
10
+ * - todo.md 任务标注
11
+ *
12
+ * 级别说明:
13
+ * - SEMANTIC: 极致语义,理解业务意图和全局架构
14
+ * - STRUCTURAL: 结构分析,理解代码依赖和模块接口
15
+ * - LINE: 行级操作,关注具体逻辑实现
16
+ * - TEXT: 文本处理,简单的替换或格式化
17
+ * - NONE: 无智能要求
15
18
  */
16
19
  export declare enum CapabilityLevel {
17
- SEMANTIC = 5,
18
- STRUCTURAL = 4,
19
- LINE = 3,
20
- TEXT = 2,
21
- NONE = 1
20
+ /** 极致语义:理解业务、架构和设计意图 */
21
+ SEMANTIC = 4,
22
+ /** 结构分析:理解模块依赖、接口和类结构 */
23
+ STRUCTURAL = 3,
24
+ /** 行级分析:理解具体的代码行逻辑 */
25
+ LINE = 2,
26
+ /** 文本分析:简单的字符串处理和文本替换 */
27
+ TEXT = 1,
28
+ /** 无需智能分析 */
29
+ NONE = 0
22
30
  }
23
31
  /**
24
- * CapabilityLevel 枚举转换为字符串
25
- * @param level 能力等级
26
- * @returns 字符串表示
27
- */
28
- export declare function capabilityLevelToString(level: CapabilityLevel): string;
29
- /**
30
- * 将字符串转换为 CapabilityLevel
31
- * 用于从配置或 LLM 输出解析能力等级
32
- *
33
- * @param str 能力等级字符串(不区分大小写)
34
- * @returns CapabilityLevel 枚举值,如果字符串无效则返回 undefined
35
- *
36
- * @example
37
- * ```typescript
38
- * const level = stringToCapabilityLevel('semantic');
39
- * console.log(level); // CapabilityLevel.SEMANTIC
40
- *
41
- * const invalid = stringToCapabilityLevel('INVALID');
42
- * console.log(invalid); // undefined
43
- * ```
32
+ * 校验 Capability 降级链是否严格单调递减,且最终降级到 NONE
44
33
  */
45
- export declare function stringToCapabilityLevel(str: string): CapabilityLevel | undefined;
34
+ export declare function validateStrictDecreasing(chain: CapabilityLevel[]): boolean;
46
35
  /**
47
- * 比较两个能力等级
48
- * @param a 第一个能力等级
49
- * @param b 第二个能力等级
50
- * @returns 正数表示 a > b,负数表示 a < b,0 表示相等
36
+ * 能力等级的可读标签
51
37
  */
52
- export declare function compareCapabilities(a: CapabilityLevel, b: CapabilityLevel): number;
38
+ export declare const CapabilityLevelLabel: Record<CapabilityLevel, string>;
53
39
  /**
54
- * 判断能力等级 a 是否高于 b
55
- * @param a 第一个能力等级
56
- * @param b 第二个能力等级
57
- * @returns 如果 a > b 返回 true
58
- */
59
- export declare function isCapabilityHigher(a: CapabilityLevel, b: CapabilityLevel): boolean;
60
- /**
61
- * 判断能力等级 a 是否低于 b
62
- * @param a 第一个能力等级
63
- * @param b 第二个能力等级
64
- * @returns 如果 a < b 返回 true
65
- */
66
- export declare function isCapabilityLower(a: CapabilityLevel, b: CapabilityLevel): boolean;
67
- /**
68
- * 验证能力等级序列的单调性(严格递减)
69
- * 用于检查 fallbackChain 是否符合从高到低的要求
70
- *
71
- * @param levels 能力等级数组
72
- * @returns 如果序列严格递减返回 true
73
- *
74
- * @example
75
- * ```typescript
76
- * validateCapabilityMonotonicity([
77
- * CapabilityLevel.SEMANTIC,
78
- * CapabilityLevel.STRUCTURAL,
79
- * CapabilityLevel.NONE
80
- * ]); // true
81
- *
82
- * validateCapabilityMonotonicity([
83
- * CapabilityLevel.TEXT,
84
- * CapabilityLevel.SEMANTIC
85
- * ]); // false
86
- * ```
87
- */
88
- export declare function validateCapabilityMonotonicity(levels: CapabilityLevel[]): boolean;
89
- /**
90
- * 最小能力和降级链接口
91
- * 定义模块的能力需求和降级路径
40
+ * 最小能力要求配置接口
92
41
  */
93
42
  export interface MinCapability {
94
43
  minCapability: CapabilityLevel;
95
44
  fallbackChain: CapabilityLevel[];
96
45
  }
97
46
  /**
98
- * 验证降级链的有效性
99
- *
100
- * 规则:
101
- * 1. 降级链必须严格递减(从高到低)
102
- * 2. 降级链必须以 NONE 结束
103
- *
104
- * @param minCapability 包含最小能力和降级链的对象
105
- * @returns 如果降级链有效返回 true
106
- *
107
- * @example
108
- * ```typescript
109
- * validateFallbackChain({
110
- * minCapability: CapabilityLevel.SEMANTIC,
111
- * fallbackChain: [CapabilityLevel.STRUCTURAL, CapabilityLevel.TEXT, CapabilityLevel.NONE]
112
- * }); // true
113
- *
114
- * validateFallbackChain({
115
- * minCapability: CapabilityLevel.SEMANTIC,
116
- * fallbackChain: [CapabilityLevel.NONE]
117
- * }); // true
118
- *
119
- * validateFallbackChain({
120
- * minCapability: CapabilityLevel.SEMANTIC,
121
- * fallbackChain: [CapabilityLevel.TEXT] // 未以 NONE 结束
122
- * }); // false
123
- * ```
47
+ * 从字符串解析 CapabilityLevel (支持标签或数值字符串)
48
+ */
49
+ export declare function parseCapabilityLevel(value?: string | number, fallback?: CapabilityLevel): CapabilityLevel;
50
+ /**
51
+ * 判断能力是否满足要求
52
+ */
53
+ export declare function canExecute(current: CapabilityLevel, required: CapabilityLevel): boolean;
54
+ /**
55
+ * 获取能力等级的友好显示名称
124
56
  */
125
- export declare function validateFallbackChain(minCapability: MinCapability): boolean;
57
+ export declare function describeCapabilityLevel(level: CapabilityLevel): string;
@@ -1,184 +1,101 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CapabilityLevel = void 0;
4
- exports.capabilityLevelToString = capabilityLevelToString;
5
- exports.stringToCapabilityLevel = stringToCapabilityLevel;
6
- exports.compareCapabilities = compareCapabilities;
7
- exports.isCapabilityHigher = isCapabilityHigher;
8
- exports.isCapabilityLower = isCapabilityLower;
9
- exports.validateCapabilityMonotonicity = validateCapabilityMonotonicity;
10
- exports.validateFallbackChain = validateFallbackChain;
11
2
  /**
12
- * Git 能力等级枚举
3
+ * CapabilityLevel
4
+ * ----------------
5
+ * 定义系统中「能力(Capability)」的智能等级。
13
6
  *
14
- * 定义了不同层级的代码理解和处理能力,用于:
15
- * - 评估任务的复杂度
16
- * - 决定降级策略
17
- * - 选择合适的 AI 模型和工具
7
+ * 该等级用于:
8
+ * - AI Capability 匹配
9
+ * - 模型路由规划
10
+ * - 执行阶段降级决策
11
+ * - todo.md 任务标注
18
12
  *
19
- * 等级说明:
20
- * - SEMANTIC (5): 语义理解,需要理解代码意图和设计模式
21
- * - STRUCTURAL (4): 结构分析,需要理解代码结构和依赖关系
22
- * - LINE (3): 行级分析,需要理解具体代码行逻辑
23
- * - TEXT (2): 文本分析,只需要处理文本内容
24
- * - NONE (1): 无需智能分析
13
+ * 级别说明:
14
+ * - SEMANTIC: 极致语义,理解业务意图和全局架构
15
+ * - STRUCTURAL: 结构分析,理解代码依赖和模块接口
16
+ * - LINE: 行级操作,关注具体逻辑实现
17
+ * - TEXT: 文本处理,简单的替换或格式化
18
+ * - NONE: 无智能要求
25
19
  */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.CapabilityLevelLabel = exports.CapabilityLevel = void 0;
22
+ exports.validateStrictDecreasing = validateStrictDecreasing;
23
+ exports.parseCapabilityLevel = parseCapabilityLevel;
24
+ exports.canExecute = canExecute;
25
+ exports.describeCapabilityLevel = describeCapabilityLevel;
26
26
  var CapabilityLevel;
27
27
  (function (CapabilityLevel) {
28
- CapabilityLevel[CapabilityLevel["SEMANTIC"] = 5] = "SEMANTIC";
29
- CapabilityLevel[CapabilityLevel["STRUCTURAL"] = 4] = "STRUCTURAL";
30
- CapabilityLevel[CapabilityLevel["LINE"] = 3] = "LINE";
31
- CapabilityLevel[CapabilityLevel["TEXT"] = 2] = "TEXT";
32
- CapabilityLevel[CapabilityLevel["NONE"] = 1] = "NONE";
28
+ /** 极致语义:理解业务、架构和设计意图 */
29
+ CapabilityLevel[CapabilityLevel["SEMANTIC"] = 4] = "SEMANTIC";
30
+ /** 结构分析:理解模块依赖、接口和类结构 */
31
+ CapabilityLevel[CapabilityLevel["STRUCTURAL"] = 3] = "STRUCTURAL";
32
+ /** 行级分析:理解具体的代码行逻辑 */
33
+ CapabilityLevel[CapabilityLevel["LINE"] = 2] = "LINE";
34
+ /** 文本分析:简单的字符串处理和文本替换 */
35
+ CapabilityLevel[CapabilityLevel["TEXT"] = 1] = "TEXT";
36
+ /** 无需智能分析 */
37
+ CapabilityLevel[CapabilityLevel["NONE"] = 0] = "NONE";
33
38
  })(CapabilityLevel || (exports.CapabilityLevel = CapabilityLevel = {}));
34
39
  /**
35
- * CapabilityLevel 枚举转换为字符串
36
- * @param level 能力等级
37
- * @returns 字符串表示
40
+ * 校验 Capability 降级链是否严格单调递减,且最终降级到 NONE
38
41
  */
39
- function capabilityLevelToString(level) {
40
- switch (level) {
41
- case CapabilityLevel.SEMANTIC:
42
- return 'SEMANTIC';
43
- case CapabilityLevel.STRUCTURAL:
44
- return 'STRUCTURAL';
45
- case CapabilityLevel.LINE:
46
- return 'LINE';
47
- case CapabilityLevel.TEXT:
48
- return 'TEXT';
49
- case CapabilityLevel.NONE:
50
- return 'NONE';
51
- default:
52
- // 如果传入未知值,返回其数字表示
53
- return String(level);
54
- }
55
- }
56
- /**
57
- * 将字符串转换为 CapabilityLevel
58
- * 用于从配置或 LLM 输出解析能力等级
59
- *
60
- * @param str 能力等级字符串(不区分大小写)
61
- * @returns CapabilityLevel 枚举值,如果字符串无效则返回 undefined
62
- *
63
- * @example
64
- * ```typescript
65
- * const level = stringToCapabilityLevel('semantic');
66
- * console.log(level); // CapabilityLevel.SEMANTIC
67
- *
68
- * const invalid = stringToCapabilityLevel('INVALID');
69
- * console.log(invalid); // undefined
70
- * ```
71
- */
72
- function stringToCapabilityLevel(str) {
73
- const upper = str.toUpperCase();
74
- switch (upper) {
75
- case 'SEMANTIC':
76
- return CapabilityLevel.SEMANTIC;
77
- case 'STRUCTURAL':
78
- return CapabilityLevel.STRUCTURAL;
79
- case 'LINE':
80
- return CapabilityLevel.LINE;
81
- case 'TEXT':
82
- return CapabilityLevel.TEXT;
83
- case 'NONE':
84
- return CapabilityLevel.NONE;
85
- default:
86
- return undefined;
42
+ function validateStrictDecreasing(chain) {
43
+ if (chain.length === 0)
44
+ return true;
45
+ for (let i = 0; i < chain.length - 1; i++) {
46
+ if (chain[i] <= chain[i + 1])
47
+ return false;
87
48
  }
49
+ return chain[chain.length - 1] === CapabilityLevel.NONE;
88
50
  }
89
51
  /**
90
- * 比较两个能力等级
91
- * @param a 第一个能力等级
92
- * @param b 第二个能力等级
93
- * @returns 正数表示 a > b,负数表示 a < b,0 表示相等
94
- */
95
- function compareCapabilities(a, b) {
96
- return a - b;
97
- }
98
- /**
99
- * 判断能力等级 a 是否高于 b
100
- * @param a 第一个能力等级
101
- * @param b 第二个能力等级
102
- * @returns 如果 a > b 返回 true
52
+ * 能力等级的可读标签
103
53
  */
104
- function isCapabilityHigher(a, b) {
105
- return a > b;
106
- }
54
+ exports.CapabilityLevelLabel = {
55
+ [CapabilityLevel.SEMANTIC]: 'semantic',
56
+ [CapabilityLevel.STRUCTURAL]: 'structural',
57
+ [CapabilityLevel.LINE]: 'line',
58
+ [CapabilityLevel.TEXT]: 'text',
59
+ [CapabilityLevel.NONE]: 'none'
60
+ };
107
61
  /**
108
- * 判断能力等级 a 是否低于 b
109
- * @param a 第一个能力等级
110
- * @param b 第二个能力等级
111
- * @returns 如果 a < b 返回 true
62
+ * 从字符串解析 CapabilityLevel (支持标签或数值字符串)
112
63
  */
113
- function isCapabilityLower(a, b) {
114
- return a < b;
64
+ function parseCapabilityLevel(value, fallback = CapabilityLevel.NONE) {
65
+ if (value === undefined || value === null)
66
+ return fallback;
67
+ if (typeof value === 'number') {
68
+ return CapabilityLevel[value] !== undefined ? value : fallback;
69
+ }
70
+ const normalized = value.toString().toLowerCase();
71
+ // 1. 尝试按标签匹配
72
+ for (const [level, label] of Object.entries(exports.CapabilityLevelLabel)) {
73
+ if (label === normalized)
74
+ return Number(level);
75
+ }
76
+ // 2. 尝试解析数值字符串
77
+ const numeric = parseInt(normalized);
78
+ if (!isNaN(numeric)) {
79
+ return CapabilityLevel[numeric] !== undefined ? numeric : fallback;
80
+ }
81
+ return fallback;
115
82
  }
116
83
  /**
117
- * 验证能力等级序列的单调性(严格递减)
118
- * 用于检查 fallbackChain 是否符合从高到低的要求
119
- *
120
- * @param levels 能力等级数组
121
- * @returns 如果序列严格递减返回 true
122
- *
123
- * @example
124
- * ```typescript
125
- * validateCapabilityMonotonicity([
126
- * CapabilityLevel.SEMANTIC,
127
- * CapabilityLevel.STRUCTURAL,
128
- * CapabilityLevel.NONE
129
- * ]); // true
130
- *
131
- * validateCapabilityMonotonicity([
132
- * CapabilityLevel.TEXT,
133
- * CapabilityLevel.SEMANTIC
134
- * ]); // false
135
- * ```
84
+ * 判断能力是否满足要求
136
85
  */
137
- function validateCapabilityMonotonicity(levels) {
138
- if (levels.length <= 1)
139
- return true;
140
- for (let i = 0; i < levels.length - 1; i++) {
141
- if (levels[i] <= levels[i + 1]) {
142
- return false;
143
- }
144
- }
145
- return true;
86
+ function canExecute(current, required) {
87
+ return current >= required;
146
88
  }
147
89
  /**
148
- * 验证降级链的有效性
149
- *
150
- * 规则:
151
- * 1. 降级链必须严格递减(从高到低)
152
- * 2. 降级链必须以 NONE 结束
153
- *
154
- * @param minCapability 包含最小能力和降级链的对象
155
- * @returns 如果降级链有效返回 true
156
- *
157
- * @example
158
- * ```typescript
159
- * validateFallbackChain({
160
- * minCapability: CapabilityLevel.SEMANTIC,
161
- * fallbackChain: [CapabilityLevel.STRUCTURAL, CapabilityLevel.TEXT, CapabilityLevel.NONE]
162
- * }); // true
163
- *
164
- * validateFallbackChain({
165
- * minCapability: CapabilityLevel.SEMANTIC,
166
- * fallbackChain: [CapabilityLevel.NONE]
167
- * }); // true
168
- *
169
- * validateFallbackChain({
170
- * minCapability: CapabilityLevel.SEMANTIC,
171
- * fallbackChain: [CapabilityLevel.TEXT] // 未以 NONE 结束
172
- * }); // false
173
- * ```
90
+ * 获取能力等级的友好显示名称
174
91
  */
175
- function validateFallbackChain(minCapability) {
176
- if (minCapability.fallbackChain.length === 0) {
177
- return true;
178
- }
179
- if (!validateCapabilityMonotonicity([minCapability.minCapability, ...minCapability.fallbackChain])) {
180
- return false;
92
+ function describeCapabilityLevel(level) {
93
+ switch (level) {
94
+ case CapabilityLevel.SEMANTIC: return '极致语义 (Semantic)';
95
+ case CapabilityLevel.STRUCTURAL: return '结构分析 (Structural)';
96
+ case CapabilityLevel.LINE: return '行级分析 (Line)';
97
+ case CapabilityLevel.TEXT: return '文本处理 (Text)';
98
+ default: return '无智能要求 (None)';
181
99
  }
182
- return minCapability.fallbackChain[minCapability.fallbackChain.length - 1] === CapabilityLevel.NONE;
183
100
  }
184
101
  //# sourceMappingURL=CapabilityLevel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityLevel.js","sourceRoot":"","sources":["../../../src/core/capability/CapabilityLevel.ts"],"names":[],"mappings":";;;AA4BA,0DAgBC;AAkBD,0DAgBC;AAQD,kDAEC;AAQD,gDAEC;AAQD,8CAEC;AAuBD,wEASC;AAuCD,sDAUC;AA7LD;;;;;;;;;;;;;;GAcG;AACH,IAAY,eAMX;AAND,WAAY,eAAe;IACvB,6DAAY,CAAA;IACZ,iEAAc,CAAA;IACd,qDAAQ,CAAA;IACR,qDAAQ,CAAA;IACR,qDAAQ,CAAA;AACZ,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,KAAsB;IAC1D,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,eAAe,CAAC,QAAQ;YACzB,OAAO,UAAU,CAAC;QACtB,KAAK,eAAe,CAAC,UAAU;YAC3B,OAAO,YAAY,CAAC;QACxB,KAAK,eAAe,CAAC,IAAI;YACrB,OAAO,MAAM,CAAC;QAClB,KAAK,eAAe,CAAC,IAAI;YACrB,OAAO,MAAM,CAAC;QAClB,KAAK,eAAe,CAAC,IAAI;YACrB,OAAO,MAAM,CAAC;QAClB;YACI,kBAAkB;YAClB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,uBAAuB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,UAAU;YACX,OAAO,eAAe,CAAC,QAAQ,CAAC;QACpC,KAAK,YAAY;YACb,OAAO,eAAe,CAAC,UAAU,CAAC;QACtC,KAAK,MAAM;YACP,OAAO,eAAe,CAAC,IAAI,CAAC;QAChC,KAAK,MAAM;YACP,OAAO,eAAe,CAAC,IAAI,CAAC;QAChC,KAAK,MAAM;YACP,OAAO,eAAe,CAAC,IAAI,CAAC;QAChC;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,CAAkB,EAAE,CAAkB;IACtE,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,CAAkB,EAAE,CAAkB;IACrE,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,CAAkB,EAAE,CAAkB;IACpE,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,8BAA8B,CAAC,MAAyB;IACpE,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAgB,qBAAqB,CAAC,aAA4B;IAC9D,IAAI,aAAa,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,8BAA8B,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACjG,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC;AACxG,CAAC"}
1
+ {"version":3,"file":"CapabilityLevel.js","sourceRoot":"","sources":["../../../src/core/capability/CapabilityLevel.ts"],"names":[],"mappings":"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"}