yuangs 1.3.71 → 1.3.73

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 (38) hide show
  1. package/dist/cli.js +6 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/capabilityCommands.d.ts +2 -0
  4. package/dist/commands/capabilityCommands.js +123 -0
  5. package/dist/commands/capabilityCommands.js.map +1 -0
  6. package/dist/commands/contextBuffer.d.ts +1 -1
  7. package/dist/commands/contextBuffer.js +4 -2
  8. package/dist/commands/contextBuffer.js.map +1 -1
  9. package/dist/commands/handleAIChat.js +46 -10
  10. package/dist/commands/handleAIChat.js.map +1 -1
  11. package/dist/commands/handleAICommand.d.ts +2 -1
  12. package/dist/commands/handleAICommand.js +46 -19
  13. package/dist/commands/handleAICommand.js.map +1 -1
  14. package/dist/core/capabilities.d.ts +23 -0
  15. package/dist/core/capabilities.js +64 -0
  16. package/dist/core/capabilities.js.map +1 -0
  17. package/dist/core/capabilityInference.d.ts +2 -0
  18. package/dist/core/capabilityInference.js +22 -0
  19. package/dist/core/capabilityInference.js.map +1 -0
  20. package/dist/core/capabilitySystem.d.ts +17 -0
  21. package/dist/core/capabilitySystem.js +116 -0
  22. package/dist/core/capabilitySystem.js.map +1 -0
  23. package/dist/core/configMerge.d.ts +19 -0
  24. package/dist/core/configMerge.js +93 -0
  25. package/dist/core/configMerge.js.map +1 -0
  26. package/dist/core/executionRecord.d.ts +39 -0
  27. package/dist/core/executionRecord.js +44 -0
  28. package/dist/core/executionRecord.js.map +1 -0
  29. package/dist/core/executionStore.d.ts +7 -0
  30. package/dist/core/executionStore.js +93 -0
  31. package/dist/core/executionStore.js.map +1 -0
  32. package/dist/core/modelMatcher.d.ts +28 -0
  33. package/dist/core/modelMatcher.js +50 -0
  34. package/dist/core/modelMatcher.js.map +1 -0
  35. package/dist/core/replayEngine.d.ts +19 -0
  36. package/dist/core/replayEngine.js +98 -0
  37. package/dist/core/replayEngine.js.map +1 -0
  38. package/package.json +1 -1
@@ -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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"}
@@ -0,0 +1,23 @@
1
+ export declare enum AtomicCapability {
2
+ TEXT_GENERATION = "text_generation",
3
+ CODE_GENERATION = "code_generation",
4
+ TOOL_CALLING = "tool_calling",
5
+ LONG_CONTEXT = "long_context",
6
+ REASONING = "reasoning",
7
+ STREAMING = "streaming"
8
+ }
9
+ export interface CompositeCapability {
10
+ name: string;
11
+ composedOf: AtomicCapability[];
12
+ }
13
+ export declare const COMPOSITE_CAPABILITIES: CompositeCapability[];
14
+ export declare enum ConstraintCapability {
15
+ PREFER_DETERMINISTIC = "prefer_deterministic",
16
+ LOW_COST = "low_cost",
17
+ FAST_RESPONSE = "fast_response"
18
+ }
19
+ export declare const CAPABILITY_VERSION = "1.0";
20
+ export declare function isAtomicCapability(value: string): value is AtomicCapability;
21
+ export declare function isConstraintCapability(value: string): value is ConstraintCapability;
22
+ export declare function resolveCompositeCapability(name: string): AtomicCapability[];
23
+ export declare function expandCapabilities(capabilities: Array<AtomicCapability | string>): Set<AtomicCapability>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CAPABILITY_VERSION = exports.ConstraintCapability = exports.COMPOSITE_CAPABILITIES = exports.AtomicCapability = void 0;
4
+ exports.isAtomicCapability = isAtomicCapability;
5
+ exports.isConstraintCapability = isConstraintCapability;
6
+ exports.resolveCompositeCapability = resolveCompositeCapability;
7
+ exports.expandCapabilities = expandCapabilities;
8
+ var AtomicCapability;
9
+ (function (AtomicCapability) {
10
+ AtomicCapability["TEXT_GENERATION"] = "text_generation";
11
+ AtomicCapability["CODE_GENERATION"] = "code_generation";
12
+ AtomicCapability["TOOL_CALLING"] = "tool_calling";
13
+ AtomicCapability["LONG_CONTEXT"] = "long_context";
14
+ AtomicCapability["REASONING"] = "reasoning";
15
+ AtomicCapability["STREAMING"] = "streaming";
16
+ })(AtomicCapability || (exports.AtomicCapability = AtomicCapability = {}));
17
+ exports.COMPOSITE_CAPABILITIES = [
18
+ {
19
+ name: 'interactive_agent',
20
+ composedOf: [AtomicCapability.TOOL_CALLING, AtomicCapability.REASONING],
21
+ },
22
+ {
23
+ name: 'large_repo_analysis',
24
+ composedOf: [AtomicCapability.LONG_CONTEXT, AtomicCapability.REASONING],
25
+ },
26
+ {
27
+ name: 'safe_code_editing',
28
+ composedOf: [AtomicCapability.CODE_GENERATION, AtomicCapability.REASONING],
29
+ },
30
+ ];
31
+ var ConstraintCapability;
32
+ (function (ConstraintCapability) {
33
+ ConstraintCapability["PREFER_DETERMINISTIC"] = "prefer_deterministic";
34
+ ConstraintCapability["LOW_COST"] = "low_cost";
35
+ ConstraintCapability["FAST_RESPONSE"] = "fast_response";
36
+ })(ConstraintCapability || (exports.ConstraintCapability = ConstraintCapability = {}));
37
+ exports.CAPABILITY_VERSION = '1.0';
38
+ function isAtomicCapability(value) {
39
+ return Object.values(AtomicCapability).includes(value);
40
+ }
41
+ function isConstraintCapability(value) {
42
+ return Object.values(ConstraintCapability).includes(value);
43
+ }
44
+ function resolveCompositeCapability(name) {
45
+ const composite = exports.COMPOSITE_CAPABILITIES.find(c => c.name === name);
46
+ if (!composite) {
47
+ throw new Error(`Unknown composite capability: ${name}`);
48
+ }
49
+ return composite.composedOf;
50
+ }
51
+ function expandCapabilities(capabilities) {
52
+ const result = new Set();
53
+ for (const cap of capabilities) {
54
+ if (isAtomicCapability(cap)) {
55
+ result.add(cap);
56
+ }
57
+ else {
58
+ const atomicCaps = resolveCompositeCapability(cap);
59
+ atomicCaps.forEach(c => result.add(c));
60
+ }
61
+ }
62
+ return result;
63
+ }
64
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/core/capabilities.ts"],"names":[],"mappings":";;;AAqCA,gDAEC;AAED,wDAEC;AAED,gEAMC;AAED,gDAeC;AApED,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,uDAAmC,CAAA;IACnC,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;IAC7B,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;AACzB,CAAC,EAPW,gBAAgB,gCAAhB,gBAAgB,QAO3B;AAOY,QAAA,sBAAsB,GAA0B;IAC3D;QACE,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC;KACxE;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC;KACxE;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,CAAC,SAAS,CAAC;KAC3E;CACF,CAAC;AAEF,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,qEAA6C,CAAA;IAC7C,6CAAqB,CAAA;IACrB,uDAA+B,CAAA;AACjC,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B;AAEY,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAExC,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAyB,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAa;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAA6B,CAAC,CAAC;AACrF,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAY;IACrD,MAAM,SAAS,GAAG,8BAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC,UAAU,CAAC;AAC9B,CAAC;AAED,SAAgB,kBAAkB,CAChC,YAA8C;IAE9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;YACnD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CapabilityRequirement } from '../core/modelMatcher';
2
+ export declare function inferCapabilityRequirement(userInput: string): CapabilityRequirement;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inferCapabilityRequirement = inferCapabilityRequirement;
4
+ const capabilities_1 = require("../core/capabilities");
5
+ function inferCapabilityRequirement(userInput) {
6
+ const required = [];
7
+ const input = userInput.toLowerCase();
8
+ if (input.includes('代码') || input.includes('script') || input.includes('文件') || input.includes('create') || input.includes('write')) {
9
+ required.push(capabilities_1.AtomicCapability.CODE_GENERATION);
10
+ }
11
+ if (input.includes('分析') || input.includes('理解') || input.includes('解释') || input.includes('推理')) {
12
+ required.push(capabilities_1.AtomicCapability.REASONING);
13
+ }
14
+ if (input.includes('长') || input.includes('large') || input.includes('仓库') || input.includes('目录') || input.includes('所有文件')) {
15
+ required.push(capabilities_1.AtomicCapability.LONG_CONTEXT);
16
+ }
17
+ return {
18
+ required: Array.from(new Set(required)),
19
+ preferred: [],
20
+ };
21
+ }
22
+ //# sourceMappingURL=capabilityInference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilityInference.js","sourceRoot":"","sources":["../../src/core/capabilityInference.ts"],"names":[],"mappings":";;AAGA,gEAqBC;AAxBD,uDAAwD;AAGxD,SAAgB,0BAA0B,CAAC,SAAiB;IAC1D,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAEtC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpI,QAAQ,CAAC,IAAI,CAAC,+BAAgB,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjG,QAAQ,CAAC,IAAI,CAAC,+BAAgB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7H,QAAQ,CAAC,IAAI,CAAC,+BAAgB,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { CapabilityRequirement, ModelCapabilities, CapabilityMatchResult } from './modelMatcher';
2
+ import { MergedConfig } from './configMerge';
3
+ import { ReplayOptions, ReplayResult } from './replayEngine';
4
+ export declare class CapabilitySystem {
5
+ private primaryModels;
6
+ private fallbackModels;
7
+ constructor();
8
+ private initializeDefaultModels;
9
+ matchCapability(requirement: CapabilityRequirement): CapabilityMatchResult;
10
+ loadMergedConfig(): MergedConfig;
11
+ loadCustomModels(): ModelCapabilities[];
12
+ getAllModels(): ModelCapabilities[];
13
+ createAndSaveExecutionRecord(commandName: string, requirement: CapabilityRequirement, matchResult: CapabilityMatchResult, command?: string): string;
14
+ replayExecution(recordId: string, options: ReplayOptions): Promise<ReplayResult>;
15
+ explainConfig(): string;
16
+ }
17
+ export declare const capabilitySystem: CapabilitySystem;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.capabilitySystem = exports.CapabilitySystem = void 0;
4
+ const modelMatcher_1 = require("./modelMatcher");
5
+ const configMerge_1 = require("./configMerge");
6
+ const executionRecord_1 = require("./executionRecord");
7
+ const executionStore_1 = require("./executionStore");
8
+ const replayEngine_1 = require("./replayEngine");
9
+ class CapabilitySystem {
10
+ primaryModels = [];
11
+ fallbackModels = [];
12
+ constructor() {
13
+ this.initializeDefaultModels();
14
+ }
15
+ initializeDefaultModels() {
16
+ this.primaryModels = [
17
+ {
18
+ name: 'gemini-pro-latest',
19
+ provider: 'google',
20
+ atomicCapabilities: [
21
+ require('./capabilities').AtomicCapability.TEXT_GENERATION,
22
+ require('./capabilities').AtomicCapability.CODE_GENERATION,
23
+ require('./capabilities').AtomicCapability.REASONING,
24
+ require('./capabilities').AtomicCapability.LONG_CONTEXT,
25
+ require('./capabilities').AtomicCapability.STREAMING,
26
+ ],
27
+ contextWindow: 128000,
28
+ costProfile: 'high',
29
+ },
30
+ {
31
+ name: 'gemini-flash-latest',
32
+ provider: 'google',
33
+ atomicCapabilities: [
34
+ require('./capabilities').AtomicCapability.TEXT_GENERATION,
35
+ require('./capabilities').AtomicCapability.CODE_GENERATION,
36
+ require('./capabilities').AtomicCapability.REASONING,
37
+ require('./capabilities').AtomicCapability.STREAMING,
38
+ ],
39
+ contextWindow: 32000,
40
+ costProfile: 'medium',
41
+ },
42
+ {
43
+ name: 'Assistant',
44
+ provider: 'aiproxy',
45
+ atomicCapabilities: [
46
+ require('./capabilities').AtomicCapability.TEXT_GENERATION,
47
+ require('./capabilities').AtomicCapability.CODE_GENERATION,
48
+ require('./capabilities').AtomicCapability.REASONING,
49
+ ],
50
+ contextWindow: 8000,
51
+ costProfile: 'low',
52
+ },
53
+ ];
54
+ this.fallbackModels = [
55
+ {
56
+ name: 'gemini-flash-lite-latest',
57
+ provider: 'google',
58
+ atomicCapabilities: [
59
+ require('./capabilities').AtomicCapability.TEXT_GENERATION,
60
+ require('./capabilities').AtomicCapability.REASONING,
61
+ ],
62
+ contextWindow: 16000,
63
+ costProfile: 'low',
64
+ },
65
+ ];
66
+ }
67
+ matchCapability(requirement) {
68
+ const allModels = this.getAllModels();
69
+ const primaryModels = [...this.primaryModels, ...this.loadCustomModels()];
70
+ return (0, modelMatcher_1.matchModelWithFallback)(primaryModels, this.fallbackModels, requirement);
71
+ }
72
+ loadMergedConfig() {
73
+ const builtin = {
74
+ aiProxyUrl: 'https://aiproxy.want.biz/v1/chat/completions',
75
+ defaultModel: 'Assistant',
76
+ accountType: 'free',
77
+ };
78
+ const filePaths = (0, configMerge_1.getConfigFilePaths)();
79
+ const projectConfig = filePaths.project ? (0, configMerge_1.loadConfigAt)(filePaths.project) : null;
80
+ const userGlobal = (0, configMerge_1.loadConfigAt)(filePaths.userGlobal);
81
+ return (0, configMerge_1.mergeConfigs)(builtin, userGlobal, projectConfig, null);
82
+ }
83
+ loadCustomModels() {
84
+ const filePaths = (0, configMerge_1.getConfigFilePaths)();
85
+ const projectConfig = filePaths.project ? (0, configMerge_1.loadConfigAt)(filePaths.project) : null;
86
+ const userGlobal = (0, configMerge_1.loadConfigAt)(filePaths.userGlobal);
87
+ const customModelsArray = [];
88
+ if (userGlobal?.models && Array.isArray(userGlobal.models)) {
89
+ customModelsArray.push(...userGlobal.models);
90
+ }
91
+ if (projectConfig?.models && Array.isArray(projectConfig.models)) {
92
+ customModelsArray.push(...projectConfig.models);
93
+ }
94
+ return customModelsArray;
95
+ }
96
+ getAllModels() {
97
+ const customModels = this.loadCustomModels();
98
+ return [...this.primaryModels, ...this.fallbackModels, ...customModels];
99
+ }
100
+ createAndSaveExecutionRecord(commandName, requirement, matchResult, command) {
101
+ const config = this.loadMergedConfig();
102
+ const record = (0, executionRecord_1.createExecutionRecord)(commandName, requirement, config, matchResult, { success: matchResult.selected !== null }, command);
103
+ const filePath = (0, executionStore_1.saveExecutionRecord)(record);
104
+ return record.id;
105
+ }
106
+ replayExecution(recordId, options) {
107
+ return replayEngine_1.replayEngine.replay(recordId, options);
108
+ }
109
+ explainConfig() {
110
+ const config = this.loadMergedConfig();
111
+ return (0, configMerge_1.dumpConfigSnapshot)(config);
112
+ }
113
+ }
114
+ exports.CapabilitySystem = CapabilitySystem;
115
+ exports.capabilitySystem = new CapabilitySystem();
116
+ //# sourceMappingURL=capabilitySystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilitySystem.js","sourceRoot":"","sources":["../../src/core/capabilitySystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type ConfigSource = 'built-in' | 'user-global' | 'project' | 'command-override';
2
+ export interface ConfigFieldSource<T = unknown> {
3
+ value: T;
4
+ source: ConfigSource;
5
+ filePath?: string;
6
+ }
7
+ export interface MergedConfig {
8
+ aiProxyUrl: ConfigFieldSource<string>;
9
+ defaultModel: ConfigFieldSource<string>;
10
+ accountType: ConfigFieldSource<'free' | 'pro'>;
11
+ [key: string]: ConfigFieldSource<unknown>;
12
+ }
13
+ export declare function loadConfigAt(filePath: string): Record<string, unknown> | null;
14
+ export declare function mergeConfigs(builtin: Record<string, unknown>, userGlobal: Record<string, unknown> | null, project: Record<string, unknown> | null, commandOverride: Record<string, unknown> | null): MergedConfig;
15
+ export declare function dumpConfigSnapshot(config: MergedConfig): string;
16
+ export declare function getConfigFilePaths(): {
17
+ userGlobal: string;
18
+ project: string | null;
19
+ };
@@ -0,0 +1,93 @@
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.loadConfigAt = loadConfigAt;
7
+ exports.mergeConfigs = mergeConfigs;
8
+ exports.dumpConfigSnapshot = dumpConfigSnapshot;
9
+ exports.getConfigFilePaths = getConfigFilePaths;
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const os_1 = __importDefault(require("os"));
13
+ const js_yaml_1 = __importDefault(require("js-yaml"));
14
+ function loadConfigAt(filePath) {
15
+ if (!fs_1.default.existsSync(filePath)) {
16
+ return null;
17
+ }
18
+ try {
19
+ const content = fs_1.default.readFileSync(filePath, 'utf8');
20
+ if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
21
+ return js_yaml_1.default.load(content);
22
+ }
23
+ return JSON.parse(content);
24
+ }
25
+ catch (error) {
26
+ console.warn(`Failed to load config from ${filePath}:`, error);
27
+ return null;
28
+ }
29
+ }
30
+ function mergeConfigs(builtin, userGlobal, project, commandOverride) {
31
+ const merged = {};
32
+ const addField = (key, value, source, filePath) => {
33
+ merged[key] = { value, source, filePath };
34
+ };
35
+ Object.entries(builtin).forEach(([key, value]) => {
36
+ addField(key, value, 'built-in');
37
+ });
38
+ if (userGlobal) {
39
+ Object.entries(userGlobal).forEach(([key, value]) => {
40
+ addField(key, value, 'user-global', path_1.default.join(os_1.default.homedir(), '.yuangs.json'));
41
+ });
42
+ }
43
+ if (project) {
44
+ Object.entries(project).forEach(([key, value]) => {
45
+ addField(key, value, 'project');
46
+ });
47
+ }
48
+ if (commandOverride) {
49
+ Object.entries(commandOverride).forEach(([key, value]) => {
50
+ addField(key, value, 'command-override');
51
+ });
52
+ }
53
+ return merged;
54
+ }
55
+ function dumpConfigSnapshot(config) {
56
+ const output = {};
57
+ Object.entries(config).forEach(([key, field]) => {
58
+ output[key] = {
59
+ value: field.value,
60
+ source: field.source,
61
+ filePath: field.filePath,
62
+ };
63
+ });
64
+ return JSON.stringify(output, null, 2);
65
+ }
66
+ function findProjectConfig(cwd = process.cwd()) {
67
+ let dir = cwd;
68
+ const configFiles = ['.yuangs.json', '.yuangs.yaml', '.yuangs.yml', 'yuangs.config.json'];
69
+ while (dir && dir !== path_1.default.dirname(dir)) {
70
+ for (const filename of configFiles) {
71
+ const candidate = path_1.default.join(dir, filename);
72
+ if (fs_1.default.existsSync(candidate)) {
73
+ return candidate;
74
+ }
75
+ }
76
+ dir = path_1.default.dirname(dir);
77
+ }
78
+ const root = path_1.default.parse(cwd).root;
79
+ for (const filename of configFiles) {
80
+ const rootCandidate = path_1.default.join(root, filename);
81
+ if (fs_1.default.existsSync(rootCandidate)) {
82
+ return rootCandidate;
83
+ }
84
+ }
85
+ return null;
86
+ }
87
+ function getConfigFilePaths() {
88
+ return {
89
+ userGlobal: path_1.default.join(os_1.default.homedir(), '.yuangs.json'),
90
+ project: findProjectConfig(),
91
+ };
92
+ }
93
+ //# sourceMappingURL=configMerge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configMerge.js","sourceRoot":"","sources":["../../src/core/configMerge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { MergedConfig } from './configMerge';
2
+ import { ModelCapabilities, CapabilityMatchExplanation } from './modelMatcher';
3
+ import { CapabilityRequirement } from './modelMatcher';
4
+ export interface ExecutionMeta {
5
+ commandName: string;
6
+ timestamp: string;
7
+ toolVersion: string;
8
+ projectPath: string;
9
+ }
10
+ export interface CapabilityIntent {
11
+ required: string[];
12
+ preferred: string[];
13
+ capabilityVersion: string;
14
+ }
15
+ export interface ModelDecision {
16
+ candidateModels: CapabilityMatchExplanation[];
17
+ selectedModel: ModelCapabilities | null;
18
+ usedFallback: boolean;
19
+ fallbackReason?: string;
20
+ }
21
+ export interface ExecutionOutcome {
22
+ success: boolean;
23
+ failureReason?: 'capability-mismatch' | 'provider-error' | 'user-abort' | 'timeout' | 'other';
24
+ tokenCount?: number;
25
+ latencyMs?: number;
26
+ }
27
+ export interface ExecutionRecord {
28
+ id: string;
29
+ meta: ExecutionMeta;
30
+ intent: CapabilityIntent;
31
+ configSnapshot: MergedConfig;
32
+ decision: ModelDecision;
33
+ outcome: ExecutionOutcome;
34
+ command?: string;
35
+ }
36
+ export declare function createExecutionId(): string;
37
+ export declare function createExecutionRecord(commandName: string, requirement: CapabilityRequirement, config: MergedConfig, matchResult: any, outcome?: Partial<ExecutionOutcome>, command?: string): ExecutionRecord;
38
+ export declare function serializeExecutionRecord(record: ExecutionRecord): string;
39
+ export declare function deserializeExecutionRecord(json: string): ExecutionRecord;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createExecutionId = createExecutionId;
4
+ exports.createExecutionRecord = createExecutionRecord;
5
+ exports.serializeExecutionRecord = serializeExecutionRecord;
6
+ exports.deserializeExecutionRecord = deserializeExecutionRecord;
7
+ function createExecutionId() {
8
+ return `exec_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
9
+ }
10
+ function createExecutionRecord(commandName, requirement, config, matchResult, outcome = {}, command) {
11
+ const version = require('../../package.json').version;
12
+ return {
13
+ id: createExecutionId(),
14
+ meta: {
15
+ commandName,
16
+ timestamp: new Date().toISOString(),
17
+ toolVersion: version,
18
+ projectPath: process.cwd(),
19
+ },
20
+ intent: {
21
+ required: requirement.required.map(String),
22
+ preferred: requirement.preferred.map(String),
23
+ capabilityVersion: require('./capabilities').CAPABILITY_VERSION,
24
+ },
25
+ configSnapshot: config,
26
+ decision: {
27
+ candidateModels: matchResult.candidates || [],
28
+ selectedModel: matchResult.selected,
29
+ usedFallback: matchResult.fallbackOccurred,
30
+ },
31
+ outcome: {
32
+ success: outcome.success ?? false,
33
+ ...outcome,
34
+ },
35
+ command,
36
+ };
37
+ }
38
+ function serializeExecutionRecord(record) {
39
+ return JSON.stringify(record, null, 2);
40
+ }
41
+ function deserializeExecutionRecord(json) {
42
+ return JSON.parse(json);
43
+ }
44
+ //# sourceMappingURL=executionRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionRecord.js","sourceRoot":"","sources":["../../src/core/executionRecord.ts"],"names":[],"mappings":";;AAyCA,8CAEC;AAED,sDAmCC;AAED,4DAEC;AAED,gEAEC;AA/CD,SAAgB,iBAAiB;IAC/B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,WAAkC,EAClC,MAAoB,EACpB,WAAgB,EAChB,UAAqC,EAAE,EACvC,OAAgB;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IAEtD,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE;QACvB,IAAI,EAAE;YACJ,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;SAC3B;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1C,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5C,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,kBAAkB;SAChE;QACD,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE;YACR,eAAe,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;YAC7C,aAAa,EAAE,WAAW,CAAC,QAAQ;YACnC,YAAY,EAAE,WAAW,CAAC,gBAAgB;SAC3C;QACD,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,GAAG,OAAO;SACX;QACD,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAuB;IAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAY;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ExecutionRecord } from './executionRecord';
2
+ export declare function ensureRecordDir(): void;
3
+ export declare function saveExecutionRecord(record: ExecutionRecord): string;
4
+ export declare function loadExecutionRecord(id: string): ExecutionRecord | null;
5
+ export declare function listExecutionRecords(limit?: number): ExecutionRecord[];
6
+ export declare function deleteExecutionRecord(id: string): boolean;
7
+ export declare function clearAllExecutionRecords(): void;
@@ -0,0 +1,93 @@
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.ensureRecordDir = ensureRecordDir;
7
+ exports.saveExecutionRecord = saveExecutionRecord;
8
+ exports.loadExecutionRecord = loadExecutionRecord;
9
+ exports.listExecutionRecords = listExecutionRecords;
10
+ exports.deleteExecutionRecord = deleteExecutionRecord;
11
+ exports.clearAllExecutionRecords = clearAllExecutionRecords;
12
+ const fs_1 = __importDefault(require("fs"));
13
+ const path_1 = __importDefault(require("path"));
14
+ const os_1 = __importDefault(require("os"));
15
+ const executionRecord_1 = require("./executionRecord");
16
+ const RECORD_DIR = path_1.default.join(os_1.default.homedir(), '.yuangs', 'executions');
17
+ function ensureRecordDir() {
18
+ if (!fs_1.default.existsSync(RECORD_DIR)) {
19
+ fs_1.default.mkdirSync(RECORD_DIR, { recursive: true });
20
+ }
21
+ }
22
+ function saveExecutionRecord(record) {
23
+ ensureRecordDir();
24
+ const filename = `${record.id}.json`;
25
+ const filepath = path_1.default.join(RECORD_DIR, filename);
26
+ fs_1.default.writeFileSync(filepath, (0, executionRecord_1.serializeExecutionRecord)(record), 'utf8');
27
+ return filepath;
28
+ }
29
+ function loadExecutionRecord(id) {
30
+ ensureRecordDir();
31
+ const filename = `${id}.json`;
32
+ const filepath = path_1.default.join(RECORD_DIR, filename);
33
+ if (!fs_1.default.existsSync(filepath)) {
34
+ return null;
35
+ }
36
+ try {
37
+ const content = fs_1.default.readFileSync(filepath, 'utf8');
38
+ return (0, executionRecord_1.deserializeExecutionRecord)(content);
39
+ }
40
+ catch (error) {
41
+ console.error(`Failed to load execution record ${id}:`, error);
42
+ return null;
43
+ }
44
+ }
45
+ function listExecutionRecords(limit = 50) {
46
+ ensureRecordDir();
47
+ const files = fs_1.default.readdirSync(RECORD_DIR)
48
+ .filter(f => f.endsWith('.json'))
49
+ .sort((a, b) => {
50
+ const statA = fs_1.default.statSync(path_1.default.join(RECORD_DIR, a));
51
+ const statB = fs_1.default.statSync(path_1.default.join(RECORD_DIR, b));
52
+ return statB.mtimeMs - statA.mtimeMs;
53
+ })
54
+ .slice(0, limit);
55
+ const records = [];
56
+ for (const file of files) {
57
+ const record = loadExecutionRecord(file.replace('.json', ''));
58
+ if (record) {
59
+ records.push(record);
60
+ }
61
+ }
62
+ return records;
63
+ }
64
+ function deleteExecutionRecord(id) {
65
+ ensureRecordDir();
66
+ const filename = `${id}.json`;
67
+ const filepath = path_1.default.join(RECORD_DIR, filename);
68
+ if (!fs_1.default.existsSync(filepath)) {
69
+ return false;
70
+ }
71
+ try {
72
+ fs_1.default.unlinkSync(filepath);
73
+ return true;
74
+ }
75
+ catch (error) {
76
+ console.error(`Failed to delete execution record ${id}:`, error);
77
+ return false;
78
+ }
79
+ }
80
+ function clearAllExecutionRecords() {
81
+ ensureRecordDir();
82
+ const files = fs_1.default.readdirSync(RECORD_DIR).filter(f => f.endsWith('.json'));
83
+ for (const file of files) {
84
+ const filepath = path_1.default.join(RECORD_DIR, file);
85
+ try {
86
+ fs_1.default.unlinkSync(filepath);
87
+ }
88
+ catch (error) {
89
+ console.error(`Failed to delete ${filepath}:`, error);
90
+ }
91
+ }
92
+ }
93
+ //# sourceMappingURL=executionStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionStore.js","sourceRoot":"","sources":["../../src/core/executionStore.ts"],"names":[],"mappings":"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"}