figma-to-code-agent 0.6.0 → 0.8.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 (193) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +69 -77
  3. package/README.zh-CN.md +173 -0
  4. package/dist/agent/ConversationContext.d.ts +91 -0
  5. package/dist/agent/ConversationContext.d.ts.map +1 -0
  6. package/dist/agent/ConversationContext.js +271 -0
  7. package/dist/agent/ConversationContext.js.map +1 -0
  8. package/dist/agent/DecisionEngine.d.ts +77 -0
  9. package/dist/agent/DecisionEngine.d.ts.map +1 -0
  10. package/dist/agent/DecisionEngine.js +414 -0
  11. package/dist/agent/DecisionEngine.js.map +1 -0
  12. package/dist/agent/ExecutionOrchestrator.d.ts +55 -0
  13. package/dist/agent/ExecutionOrchestrator.d.ts.map +1 -0
  14. package/dist/agent/ExecutionOrchestrator.js +360 -0
  15. package/dist/agent/ExecutionOrchestrator.js.map +1 -0
  16. package/dist/agent/IntentUnderstandingEngine.d.ts +43 -0
  17. package/dist/agent/IntentUnderstandingEngine.d.ts.map +1 -0
  18. package/dist/agent/IntentUnderstandingEngine.js +261 -0
  19. package/dist/agent/IntentUnderstandingEngine.js.map +1 -0
  20. package/dist/agent/index.d.ts +9 -0
  21. package/dist/agent/index.d.ts.map +1 -0
  22. package/dist/agent/index.js +30 -0
  23. package/dist/agent/index.js.map +1 -0
  24. package/dist/agent/types.d.ts +111 -0
  25. package/dist/agent/types.d.ts.map +1 -0
  26. package/dist/agent/types.js +6 -0
  27. package/dist/agent/types.js.map +1 -0
  28. package/dist/cli/InteractiveCLI.d.ts +109 -0
  29. package/dist/cli/InteractiveCLI.d.ts.map +1 -0
  30. package/dist/cli/InteractiveCLI.js +534 -0
  31. package/dist/cli/InteractiveCLI.js.map +1 -0
  32. package/dist/cli/ProgressDisplay.d.ts +117 -0
  33. package/dist/cli/ProgressDisplay.d.ts.map +1 -0
  34. package/dist/cli/ProgressDisplay.js +370 -0
  35. package/dist/cli/ProgressDisplay.js.map +1 -0
  36. package/dist/cli/index.d.ts +6 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +22 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/consistency/DesignConsistencyChecker.d.ts +125 -0
  41. package/dist/consistency/DesignConsistencyChecker.d.ts.map +1 -0
  42. package/dist/consistency/DesignConsistencyChecker.js +448 -0
  43. package/dist/consistency/DesignConsistencyChecker.js.map +1 -0
  44. package/dist/consistency/index.d.ts +5 -0
  45. package/dist/consistency/index.d.ts.map +1 -0
  46. package/dist/consistency/index.js +21 -0
  47. package/dist/consistency/index.js.map +1 -0
  48. package/dist/context/CodeStyleMatcher.d.ts +124 -0
  49. package/dist/context/CodeStyleMatcher.d.ts.map +1 -0
  50. package/dist/context/CodeStyleMatcher.js +558 -0
  51. package/dist/context/CodeStyleMatcher.js.map +1 -0
  52. package/dist/context/IncrementalUpdater.d.ts +97 -0
  53. package/dist/context/IncrementalUpdater.d.ts.map +1 -0
  54. package/dist/context/IncrementalUpdater.js +431 -0
  55. package/dist/context/IncrementalUpdater.js.map +1 -0
  56. package/dist/context/index.d.ts +6 -0
  57. package/dist/context/index.d.ts.map +1 -0
  58. package/dist/context/index.js +22 -0
  59. package/dist/context/index.js.map +1 -0
  60. package/dist/feedback/FeedbackLoop.d.ts +125 -0
  61. package/dist/feedback/FeedbackLoop.d.ts.map +1 -0
  62. package/dist/feedback/FeedbackLoop.js +353 -0
  63. package/dist/feedback/FeedbackLoop.js.map +1 -0
  64. package/dist/feedback/index.d.ts +5 -0
  65. package/dist/feedback/index.d.ts.map +1 -0
  66. package/dist/feedback/index.js +21 -0
  67. package/dist/feedback/index.js.map +1 -0
  68. package/dist/mcp/FigmaMCPIntegration.d.ts +72 -0
  69. package/dist/mcp/FigmaMCPIntegration.d.ts.map +1 -0
  70. package/dist/mcp/FigmaMCPIntegration.js +173 -0
  71. package/dist/mcp/FigmaMCPIntegration.js.map +1 -0
  72. package/dist/mcp/MCPServiceManager.d.ts +109 -0
  73. package/dist/mcp/MCPServiceManager.d.ts.map +1 -0
  74. package/dist/mcp/MCPServiceManager.js +237 -0
  75. package/dist/mcp/MCPServiceManager.js.map +1 -0
  76. package/dist/mcp/MCPToolAdapter.d.ts +73 -0
  77. package/dist/mcp/MCPToolAdapter.d.ts.map +1 -0
  78. package/dist/mcp/MCPToolAdapter.js +249 -0
  79. package/dist/mcp/MCPToolAdapter.js.map +1 -0
  80. package/dist/mcp/index.d.ts +7 -0
  81. package/dist/mcp/index.d.ts.map +1 -0
  82. package/dist/mcp/index.js +23 -0
  83. package/dist/mcp/index.js.map +1 -0
  84. package/dist/mcp-server/MCPServer.d.ts +125 -0
  85. package/dist/mcp-server/MCPServer.d.ts.map +1 -0
  86. package/dist/mcp-server/MCPServer.js +449 -0
  87. package/dist/mcp-server/MCPServer.js.map +1 -0
  88. package/dist/mcp-server/index.d.ts +5 -0
  89. package/dist/mcp-server/index.d.ts.map +1 -0
  90. package/dist/mcp-server/index.js +21 -0
  91. package/dist/mcp-server/index.js.map +1 -0
  92. package/dist/monitoring/ExecutionSummary.d.ts +160 -0
  93. package/dist/monitoring/ExecutionSummary.d.ts.map +1 -0
  94. package/dist/monitoring/ExecutionSummary.js +345 -0
  95. package/dist/monitoring/ExecutionSummary.js.map +1 -0
  96. package/dist/monitoring/Logger.d.ts +139 -0
  97. package/dist/monitoring/Logger.d.ts.map +1 -0
  98. package/dist/monitoring/Logger.js +406 -0
  99. package/dist/monitoring/Logger.js.map +1 -0
  100. package/dist/monitoring/index.d.ts +6 -0
  101. package/dist/monitoring/index.d.ts.map +1 -0
  102. package/dist/monitoring/index.js +22 -0
  103. package/dist/monitoring/index.js.map +1 -0
  104. package/dist/performance/LLMCache.d.ts +133 -0
  105. package/dist/performance/LLMCache.d.ts.map +1 -0
  106. package/dist/performance/LLMCache.js +358 -0
  107. package/dist/performance/LLMCache.js.map +1 -0
  108. package/dist/performance/ParallelProcessor.d.ts +89 -0
  109. package/dist/performance/ParallelProcessor.d.ts.map +1 -0
  110. package/dist/performance/ParallelProcessor.js +253 -0
  111. package/dist/performance/ParallelProcessor.js.map +1 -0
  112. package/dist/performance/TokenMonitor.d.ts +166 -0
  113. package/dist/performance/TokenMonitor.d.ts.map +1 -0
  114. package/dist/performance/TokenMonitor.js +315 -0
  115. package/dist/performance/TokenMonitor.js.map +1 -0
  116. package/dist/performance/index.d.ts +7 -0
  117. package/dist/performance/index.d.ts.map +1 -0
  118. package/dist/performance/index.js +23 -0
  119. package/dist/performance/index.js.map +1 -0
  120. package/dist/prototype/InteractivePrototypeGenerator.d.ts +175 -0
  121. package/dist/prototype/InteractivePrototypeGenerator.d.ts.map +1 -0
  122. package/dist/prototype/InteractivePrototypeGenerator.js +624 -0
  123. package/dist/prototype/InteractivePrototypeGenerator.js.map +1 -0
  124. package/dist/prototype/index.d.ts +5 -0
  125. package/dist/prototype/index.d.ts.map +1 -0
  126. package/dist/prototype/index.js +21 -0
  127. package/dist/prototype/index.js.map +1 -0
  128. package/dist/skill/SkillConfig.d.ts +66 -0
  129. package/dist/skill/SkillConfig.d.ts.map +1 -0
  130. package/dist/skill/SkillConfig.js +233 -0
  131. package/dist/skill/SkillConfig.js.map +1 -0
  132. package/dist/skill/SkillInterface.d.ts +102 -0
  133. package/dist/skill/SkillInterface.d.ts.map +1 -0
  134. package/dist/skill/SkillInterface.js +425 -0
  135. package/dist/skill/SkillInterface.js.map +1 -0
  136. package/dist/skill/index.d.ts +7 -0
  137. package/dist/skill/index.d.ts.map +1 -0
  138. package/dist/skill/index.js +23 -0
  139. package/dist/skill/index.js.map +1 -0
  140. package/dist/skill/types.d.ts +103 -0
  141. package/dist/skill/types.d.ts.map +1 -0
  142. package/dist/skill/types.js +6 -0
  143. package/dist/skill/types.js.map +1 -0
  144. package/dist/templates/TemplateManager.d.ts +147 -0
  145. package/dist/templates/TemplateManager.d.ts.map +1 -0
  146. package/dist/templates/TemplateManager.js +418 -0
  147. package/dist/templates/TemplateManager.js.map +1 -0
  148. package/dist/templates/index.d.ts +6 -0
  149. package/dist/templates/index.d.ts.map +1 -0
  150. package/dist/templates/index.js +10 -0
  151. package/dist/templates/index.js.map +1 -0
  152. package/dist/tools/CodeGenerationTool.d.ts +32 -0
  153. package/dist/tools/CodeGenerationTool.d.ts.map +1 -0
  154. package/dist/tools/CodeGenerationTool.js +63 -0
  155. package/dist/tools/CodeGenerationTool.js.map +1 -0
  156. package/dist/tools/FigmaExtractionTool.d.ts +45 -0
  157. package/dist/tools/FigmaExtractionTool.d.ts.map +1 -0
  158. package/dist/tools/FigmaExtractionTool.js +105 -0
  159. package/dist/tools/FigmaExtractionTool.js.map +1 -0
  160. package/dist/tools/ProjectAnalysisTool.d.ts +104 -0
  161. package/dist/tools/ProjectAnalysisTool.d.ts.map +1 -0
  162. package/dist/tools/ProjectAnalysisTool.js +428 -0
  163. package/dist/tools/ProjectAnalysisTool.js.map +1 -0
  164. package/dist/tools/ToolRegistry.d.ts +59 -0
  165. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  166. package/dist/tools/ToolRegistry.js +162 -0
  167. package/dist/tools/ToolRegistry.js.map +1 -0
  168. package/dist/tools/TransformationTool.d.ts +30 -0
  169. package/dist/tools/TransformationTool.d.ts.map +1 -0
  170. package/dist/tools/TransformationTool.js +50 -0
  171. package/dist/tools/TransformationTool.js.map +1 -0
  172. package/dist/tools/index.d.ts +10 -0
  173. package/dist/tools/index.d.ts.map +1 -0
  174. package/dist/tools/index.js +32 -0
  175. package/dist/tools/index.js.map +1 -0
  176. package/dist/tools/types.d.ts +74 -0
  177. package/dist/tools/types.d.ts.map +1 -0
  178. package/dist/tools/types.js +6 -0
  179. package/dist/tools/types.js.map +1 -0
  180. package/dist/transformation/transformers/LayoutOptimizer.d.ts +8 -0
  181. package/dist/transformation/transformers/LayoutOptimizer.d.ts.map +1 -1
  182. package/dist/transformation/transformers/LayoutOptimizer.js +157 -15
  183. package/dist/transformation/transformers/LayoutOptimizer.js.map +1 -1
  184. package/dist/version/VersionManager.d.ts +128 -0
  185. package/dist/version/VersionManager.d.ts.map +1 -0
  186. package/dist/version/VersionManager.js +400 -0
  187. package/dist/version/VersionManager.js.map +1 -0
  188. package/dist/version/index.d.ts +5 -0
  189. package/dist/version/index.d.ts.map +1 -0
  190. package/dist/version/index.js +21 -0
  191. package/dist/version/index.js.map +1 -0
  192. package/package.json +3 -1
  193. package/QUICKSTART.md +0 -178
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * MCP 服务器模块
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./MCPServer"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,8CAA4B"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * 执行摘要生成系统
3
+ * 收集和格式化执行过程的摘要信息
4
+ */
5
+ export interface ExecutionEvent {
6
+ id: string;
7
+ timestamp: Date;
8
+ type: 'decision' | 'tool_call' | 'result' | 'error' | 'checkpoint';
9
+ data: any;
10
+ }
11
+ export interface DecisionEvent {
12
+ intent: string;
13
+ strategies: string[];
14
+ selectedStrategy: string;
15
+ reasoning: string;
16
+ confidence: number;
17
+ }
18
+ export interface ToolCallEvent {
19
+ toolName: string;
20
+ inputs: any;
21
+ duration: number;
22
+ success: boolean;
23
+ error?: string;
24
+ }
25
+ export interface ResultEvent {
26
+ success: boolean;
27
+ outputs?: any;
28
+ error?: string;
29
+ metrics: {
30
+ totalDuration: number;
31
+ tokensUsed: number;
32
+ toolsInvoked: number;
33
+ };
34
+ }
35
+ export interface ExecutionSummaryData {
36
+ sessionId: string;
37
+ startTime: Date;
38
+ endTime?: Date;
39
+ totalDuration: number;
40
+ success: boolean;
41
+ events: ExecutionEvent[];
42
+ decisions: DecisionEvent[];
43
+ toolCalls: ToolCallEvent[];
44
+ results: ResultEvent[];
45
+ metrics: {
46
+ totalTokens: number;
47
+ totalCost: number;
48
+ toolCallCount: number;
49
+ successRate: number;
50
+ };
51
+ }
52
+ /**
53
+ * 执行摘要生成器
54
+ */
55
+ export declare class ExecutionSummary {
56
+ private sessionId;
57
+ private startTime;
58
+ private endTime?;
59
+ private events;
60
+ private decisions;
61
+ private toolCalls;
62
+ private results;
63
+ constructor(sessionId: string);
64
+ /**
65
+ * 记录决策事件
66
+ */
67
+ recordDecision(decision: DecisionEvent): void;
68
+ /**
69
+ * 记录工具调用事件
70
+ */
71
+ recordToolCall(toolCall: ToolCallEvent): void;
72
+ /**
73
+ * 记录结果事件
74
+ */
75
+ recordResult(result: ResultEvent): void;
76
+ /**
77
+ * 记录错误事件
78
+ */
79
+ recordError(error: string, context?: any): void;
80
+ /**
81
+ * 记录检查点事件
82
+ */
83
+ recordCheckpoint(checkpoint: any): void;
84
+ /**
85
+ * 完成执行
86
+ */
87
+ complete(): void;
88
+ /**
89
+ * 获取摘要数据
90
+ */
91
+ getSummaryData(): ExecutionSummaryData;
92
+ /**
93
+ * 格式化摘要为文本
94
+ */
95
+ formatAsText(): string;
96
+ /**
97
+ * 格式化摘要为 JSON
98
+ */
99
+ formatAsJson(): string;
100
+ /**
101
+ * 生成执行流程图(Mermaid 格式)
102
+ */
103
+ generateFlowchart(): string;
104
+ /**
105
+ * 生成简短摘要
106
+ */
107
+ generateBriefSummary(): string;
108
+ /**
109
+ * 格式化持续时间
110
+ */
111
+ private formatDuration;
112
+ /**
113
+ * 获取事件类型标签
114
+ */
115
+ private getEventTypeLabel;
116
+ /**
117
+ * 生成唯一 ID
118
+ */
119
+ private generateId;
120
+ }
121
+ /**
122
+ * 执行摘要管理器
123
+ */
124
+ export declare class ExecutionSummaryManager {
125
+ private summaries;
126
+ private currentSessionId;
127
+ /**
128
+ * 开始新会话
129
+ */
130
+ startSession(sessionId?: string): ExecutionSummary;
131
+ /**
132
+ * 获取当前会话摘要
133
+ */
134
+ getCurrentSummary(): ExecutionSummary | null;
135
+ /**
136
+ * 获取会话摘要
137
+ */
138
+ getSummary(sessionId: string): ExecutionSummary | null;
139
+ /**
140
+ * 完成当前会话
141
+ */
142
+ completeCurrentSession(): void;
143
+ /**
144
+ * 列出所有会话
145
+ */
146
+ listSessions(): string[];
147
+ /**
148
+ * 清除会话
149
+ */
150
+ clearSession(sessionId: string): void;
151
+ /**
152
+ * 清除所有会话
153
+ */
154
+ clearAllSessions(): void;
155
+ /**
156
+ * 生成会话 ID
157
+ */
158
+ private generateSessionId;
159
+ }
160
+ //# sourceMappingURL=ExecutionSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionSummary.d.ts","sourceRoot":"","sources":["../../src/monitoring/ExecutionSummary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ /**
3
+ * 执行摘要生成系统
4
+ * 收集和格式化执行过程的摘要信息
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ExecutionSummaryManager = exports.ExecutionSummary = void 0;
8
+ /**
9
+ * 执行摘要生成器
10
+ */
11
+ class ExecutionSummary {
12
+ constructor(sessionId) {
13
+ this.events = [];
14
+ this.decisions = [];
15
+ this.toolCalls = [];
16
+ this.results = [];
17
+ this.sessionId = sessionId;
18
+ this.startTime = new Date();
19
+ }
20
+ /**
21
+ * 记录决策事件
22
+ */
23
+ recordDecision(decision) {
24
+ this.decisions.push(decision);
25
+ this.events.push({
26
+ id: this.generateId(),
27
+ timestamp: new Date(),
28
+ type: 'decision',
29
+ data: decision,
30
+ });
31
+ }
32
+ /**
33
+ * 记录工具调用事件
34
+ */
35
+ recordToolCall(toolCall) {
36
+ this.toolCalls.push(toolCall);
37
+ this.events.push({
38
+ id: this.generateId(),
39
+ timestamp: new Date(),
40
+ type: 'tool_call',
41
+ data: toolCall,
42
+ });
43
+ }
44
+ /**
45
+ * 记录结果事件
46
+ */
47
+ recordResult(result) {
48
+ this.results.push(result);
49
+ this.events.push({
50
+ id: this.generateId(),
51
+ timestamp: new Date(),
52
+ type: 'result',
53
+ data: result,
54
+ });
55
+ }
56
+ /**
57
+ * 记录错误事件
58
+ */
59
+ recordError(error, context) {
60
+ this.events.push({
61
+ id: this.generateId(),
62
+ timestamp: new Date(),
63
+ type: 'error',
64
+ data: { error, context },
65
+ });
66
+ }
67
+ /**
68
+ * 记录检查点事件
69
+ */
70
+ recordCheckpoint(checkpoint) {
71
+ this.events.push({
72
+ id: this.generateId(),
73
+ timestamp: new Date(),
74
+ type: 'checkpoint',
75
+ data: checkpoint,
76
+ });
77
+ }
78
+ /**
79
+ * 完成执行
80
+ */
81
+ complete() {
82
+ this.endTime = new Date();
83
+ }
84
+ /**
85
+ * 获取摘要数据
86
+ */
87
+ getSummaryData() {
88
+ const totalDuration = this.endTime
89
+ ? this.endTime.getTime() - this.startTime.getTime()
90
+ : Date.now() - this.startTime.getTime();
91
+ const successfulToolCalls = this.toolCalls.filter((tc) => tc.success).length;
92
+ const successRate = this.toolCalls.length > 0 ? successfulToolCalls / this.toolCalls.length : 0;
93
+ const totalTokens = this.results.reduce((sum, r) => sum + (r.metrics?.tokensUsed || 0), 0);
94
+ const totalCost = totalTokens * 0.00001; // 简化的成本计算
95
+ return {
96
+ sessionId: this.sessionId,
97
+ startTime: this.startTime,
98
+ endTime: this.endTime,
99
+ totalDuration,
100
+ success: this.results.length > 0 && this.results[this.results.length - 1].success,
101
+ events: this.events,
102
+ decisions: this.decisions,
103
+ toolCalls: this.toolCalls,
104
+ results: this.results,
105
+ metrics: {
106
+ totalTokens,
107
+ totalCost,
108
+ toolCallCount: this.toolCalls.length,
109
+ successRate,
110
+ },
111
+ };
112
+ }
113
+ /**
114
+ * 格式化摘要为文本
115
+ */
116
+ formatAsText() {
117
+ const data = this.getSummaryData();
118
+ const lines = [];
119
+ lines.push('# 执行摘要\n');
120
+ lines.push(`会话 ID: ${data.sessionId}`);
121
+ lines.push(`开始时间: ${data.startTime.toISOString()}`);
122
+ if (data.endTime) {
123
+ lines.push(`结束时间: ${data.endTime.toISOString()}`);
124
+ }
125
+ lines.push(`总耗时: ${this.formatDuration(data.totalDuration)}`);
126
+ lines.push(`状态: ${data.success ? '✓ 成功' : '✗ 失败'}\n`);
127
+ // 指标
128
+ lines.push('## 执行指标\n');
129
+ lines.push(`工具调用次数: ${data.metrics.toolCallCount}`);
130
+ lines.push(`成功率: ${(data.metrics.successRate * 100).toFixed(1)}%`);
131
+ lines.push(`Token 使用量: ${data.metrics.totalTokens.toLocaleString()}`);
132
+ lines.push(`预估成本: $${data.metrics.totalCost.toFixed(4)}\n`);
133
+ // 决策
134
+ if (data.decisions.length > 0) {
135
+ lines.push('## 决策记录\n');
136
+ data.decisions.forEach((decision, idx) => {
137
+ lines.push(`### 决策 ${idx + 1}`);
138
+ lines.push(`意图: ${decision.intent}`);
139
+ lines.push(`选择策略: ${decision.selectedStrategy}`);
140
+ lines.push(`理由: ${decision.reasoning}`);
141
+ lines.push(`置信度: ${(decision.confidence * 100).toFixed(1)}%`);
142
+ if (decision.strategies.length > 1) {
143
+ lines.push(`备选策略: ${decision.strategies.filter((s) => s !== decision.selectedStrategy).join(', ')}`);
144
+ }
145
+ lines.push('');
146
+ });
147
+ }
148
+ // 工具调用
149
+ if (data.toolCalls.length > 0) {
150
+ lines.push('## 工具调用记录\n');
151
+ data.toolCalls.forEach((call, idx) => {
152
+ const status = call.success ? '✓' : '✗';
153
+ lines.push(`${idx + 1}. ${status} ${call.toolName} (${this.formatDuration(call.duration)})`);
154
+ if (call.error) {
155
+ lines.push(` 错误: ${call.error}`);
156
+ }
157
+ });
158
+ lines.push('');
159
+ }
160
+ // 结果
161
+ if (data.results.length > 0) {
162
+ lines.push('## 执行结果\n');
163
+ const lastResult = data.results[data.results.length - 1];
164
+ lines.push(`状态: ${lastResult.success ? '成功' : '失败'}`);
165
+ if (lastResult.error) {
166
+ lines.push(`错误: ${lastResult.error}`);
167
+ }
168
+ if (lastResult.outputs) {
169
+ lines.push(`输出: ${JSON.stringify(lastResult.outputs, null, 2)}`);
170
+ }
171
+ lines.push('');
172
+ }
173
+ // 时间线
174
+ lines.push('## 执行时间线\n');
175
+ data.events.forEach((event) => {
176
+ const time = event.timestamp.toISOString().split('T')[1].split('.')[0];
177
+ const type = this.getEventTypeLabel(event.type);
178
+ lines.push(`[${time}] ${type}`);
179
+ });
180
+ return lines.join('\n');
181
+ }
182
+ /**
183
+ * 格式化摘要为 JSON
184
+ */
185
+ formatAsJson() {
186
+ return JSON.stringify(this.getSummaryData(), null, 2);
187
+ }
188
+ /**
189
+ * 生成执行流程图(Mermaid 格式)
190
+ */
191
+ generateFlowchart() {
192
+ const data = this.getSummaryData();
193
+ const lines = [];
194
+ lines.push('```mermaid');
195
+ lines.push('graph TD');
196
+ lines.push(' Start([开始]) --> Intent[理解意图]');
197
+ // 决策节点
198
+ data.decisions.forEach((decision, idx) => {
199
+ const decisionId = `Decision${idx}`;
200
+ const strategyId = `Strategy${idx}`;
201
+ if (idx === 0) {
202
+ lines.push(` Intent --> ${decisionId}{决策 ${idx + 1}}`);
203
+ }
204
+ else {
205
+ lines.push(` Tool${idx - 1} --> ${decisionId}{决策 ${idx + 1}}`);
206
+ }
207
+ lines.push(` ${decisionId} --> ${strategyId}[${decision.selectedStrategy}]`);
208
+ });
209
+ // 工具调用节点
210
+ data.toolCalls.forEach((call, idx) => {
211
+ const toolId = `Tool${idx}`;
212
+ const prevNode = idx === 0 ? 'Strategy0' : `Tool${idx - 1}`;
213
+ const style = call.success ? '' : ':::error';
214
+ lines.push(` ${prevNode} --> ${toolId}[${call.toolName}]${style}`);
215
+ });
216
+ // 结果节点
217
+ const lastToolId = data.toolCalls.length > 0 ? `Tool${data.toolCalls.length - 1}` : 'Strategy0';
218
+ const resultStyle = data.success ? ':::success' : ':::error';
219
+ lines.push(` ${lastToolId} --> Result([${data.success ? '成功' : '失败'}])${resultStyle}`);
220
+ // 样式定义
221
+ lines.push('');
222
+ lines.push(' classDef success fill:#90EE90');
223
+ lines.push(' classDef error fill:#FFB6C1');
224
+ lines.push('```');
225
+ return lines.join('\n');
226
+ }
227
+ /**
228
+ * 生成简短摘要
229
+ */
230
+ generateBriefSummary() {
231
+ const data = this.getSummaryData();
232
+ const duration = this.formatDuration(data.totalDuration);
233
+ const status = data.success ? '成功' : '失败';
234
+ return `执行${status},耗时 ${duration},调用 ${data.metrics.toolCallCount} 个工具,使用 ${data.metrics.totalTokens} tokens`;
235
+ }
236
+ /**
237
+ * 格式化持续时间
238
+ */
239
+ formatDuration(ms) {
240
+ if (ms < 1000) {
241
+ return `${Math.round(ms)}ms`;
242
+ }
243
+ const seconds = Math.floor(ms / 1000);
244
+ if (seconds < 60) {
245
+ return `${seconds}s`;
246
+ }
247
+ const minutes = Math.floor(seconds / 60);
248
+ const remainingSeconds = seconds % 60;
249
+ return `${minutes}m ${remainingSeconds}s`;
250
+ }
251
+ /**
252
+ * 获取事件类型标签
253
+ */
254
+ getEventTypeLabel(type) {
255
+ const labels = {
256
+ decision: '决策',
257
+ tool_call: '工具调用',
258
+ result: '结果',
259
+ error: '错误',
260
+ checkpoint: '检查点',
261
+ };
262
+ return labels[type] || type;
263
+ }
264
+ /**
265
+ * 生成唯一 ID
266
+ */
267
+ generateId() {
268
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
269
+ }
270
+ }
271
+ exports.ExecutionSummary = ExecutionSummary;
272
+ /**
273
+ * 执行摘要管理器
274
+ */
275
+ class ExecutionSummaryManager {
276
+ constructor() {
277
+ this.summaries = new Map();
278
+ this.currentSessionId = null;
279
+ }
280
+ /**
281
+ * 开始新会话
282
+ */
283
+ startSession(sessionId) {
284
+ const id = sessionId || this.generateSessionId();
285
+ const summary = new ExecutionSummary(id);
286
+ this.summaries.set(id, summary);
287
+ this.currentSessionId = id;
288
+ return summary;
289
+ }
290
+ /**
291
+ * 获取当前会话摘要
292
+ */
293
+ getCurrentSummary() {
294
+ if (!this.currentSessionId) {
295
+ return null;
296
+ }
297
+ return this.summaries.get(this.currentSessionId) || null;
298
+ }
299
+ /**
300
+ * 获取会话摘要
301
+ */
302
+ getSummary(sessionId) {
303
+ return this.summaries.get(sessionId) || null;
304
+ }
305
+ /**
306
+ * 完成当前会话
307
+ */
308
+ completeCurrentSession() {
309
+ const summary = this.getCurrentSummary();
310
+ if (summary) {
311
+ summary.complete();
312
+ }
313
+ this.currentSessionId = null;
314
+ }
315
+ /**
316
+ * 列出所有会话
317
+ */
318
+ listSessions() {
319
+ return Array.from(this.summaries.keys());
320
+ }
321
+ /**
322
+ * 清除会话
323
+ */
324
+ clearSession(sessionId) {
325
+ this.summaries.delete(sessionId);
326
+ if (this.currentSessionId === sessionId) {
327
+ this.currentSessionId = null;
328
+ }
329
+ }
330
+ /**
331
+ * 清除所有会话
332
+ */
333
+ clearAllSessions() {
334
+ this.summaries.clear();
335
+ this.currentSessionId = null;
336
+ }
337
+ /**
338
+ * 生成会话 ID
339
+ */
340
+ generateSessionId() {
341
+ return `session-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
342
+ }
343
+ }
344
+ exports.ExecutionSummaryManager = ExecutionSummaryManager;
345
+ //# sourceMappingURL=ExecutionSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionSummary.js","sourceRoot":"","sources":["../../src/monitoring/ExecutionSummary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * 执行日志系统
3
+ * 提供结构化日志记录和输出
4
+ */
5
+ export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
6
+ export interface LogEntry {
7
+ timestamp: Date;
8
+ level: LogLevel;
9
+ message: string;
10
+ context?: Record<string, any>;
11
+ error?: Error;
12
+ tags?: string[];
13
+ }
14
+ export interface LoggerConfig {
15
+ level: LogLevel;
16
+ outputs: LogOutput[];
17
+ includeTimestamp: boolean;
18
+ includeContext: boolean;
19
+ colorOutput: boolean;
20
+ maxFileSize?: number;
21
+ maxFiles?: number;
22
+ }
23
+ export interface LogOutput {
24
+ type: 'console' | 'file';
25
+ path?: string;
26
+ format?: 'text' | 'json';
27
+ }
28
+ /**
29
+ * 日志记录器
30
+ */
31
+ export declare class Logger {
32
+ private config;
33
+ private logBuffer;
34
+ private fileHandles;
35
+ private readonly levelPriority;
36
+ constructor(config?: Partial<LoggerConfig>);
37
+ /**
38
+ * 记录 DEBUG 级别日志
39
+ */
40
+ debug(message: string, context?: Record<string, any>, tags?: string[]): void;
41
+ /**
42
+ * 记录 INFO 级别日志
43
+ */
44
+ info(message: string, context?: Record<string, any>, tags?: string[]): void;
45
+ /**
46
+ * 记录 WARN 级别日志
47
+ */
48
+ warn(message: string, context?: Record<string, any>, tags?: string[]): void;
49
+ /**
50
+ * 记录 ERROR 级别日志
51
+ */
52
+ error(message: string, error?: Error, context?: Record<string, any>, tags?: string[]): void;
53
+ /**
54
+ * 记录日志
55
+ */
56
+ private log;
57
+ /**
58
+ * 获取日志历史
59
+ */
60
+ getHistory(filter?: {
61
+ level?: LogLevel;
62
+ tags?: string[];
63
+ startTime?: Date;
64
+ endTime?: Date;
65
+ }): LogEntry[];
66
+ /**
67
+ * 清除日志历史
68
+ */
69
+ clearHistory(): void;
70
+ /**
71
+ * 导出日志
72
+ */
73
+ exportLogs(outputPath: string, format?: 'text' | 'json'): void;
74
+ /**
75
+ * 关闭日志记录器
76
+ */
77
+ close(): void;
78
+ /**
79
+ * 初始化文件输出
80
+ */
81
+ private initializeFileOutputs;
82
+ /**
83
+ * 写入到输出目标
84
+ */
85
+ private writeToOutput;
86
+ /**
87
+ * 格式化文本日志条目
88
+ */
89
+ private formatTextEntry;
90
+ /**
91
+ * 格式化 JSON 日志条目
92
+ */
93
+ private formatJsonEntry;
94
+ /**
95
+ * 序列化日志条目
96
+ */
97
+ private serializeEntry;
98
+ /**
99
+ * 着色日志条目
100
+ */
101
+ private colorizeEntry;
102
+ /**
103
+ * 检查并轮转日志文件
104
+ */
105
+ private checkAndRotateLogFile;
106
+ /**
107
+ * 轮转日志文件(如果需要)
108
+ */
109
+ private rotateLogFileIfNeeded;
110
+ /**
111
+ * 轮转日志文件
112
+ */
113
+ private rotateLogFile;
114
+ /**
115
+ * 获取统计信息
116
+ */
117
+ getStats(): {
118
+ totalLogs: number;
119
+ byLevel: Record<LogLevel, number>;
120
+ byTag: Record<string, number>;
121
+ errorCount: number;
122
+ };
123
+ }
124
+ /**
125
+ * 获取全局日志记录器
126
+ */
127
+ export declare function getLogger(): Logger;
128
+ /**
129
+ * 设置全局日志记录器
130
+ */
131
+ export declare function setLogger(logger: Logger): void;
132
+ /**
133
+ * 便捷日志函数
134
+ */
135
+ export declare function debug(message: string, context?: Record<string, any>, tags?: string[]): void;
136
+ export declare function info(message: string, context?: Record<string, any>, tags?: string[]): void;
137
+ export declare function warn(message: string, context?: Record<string, any>, tags?: string[]): void;
138
+ export declare function error(message: string, err?: Error, context?: Record<string, any>, tags?: string[]): void;
139
+ //# sourceMappingURL=Logger.d.ts.map