front-cpu 0.1.1

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 (136) hide show
  1. package/README.md +475 -0
  2. package/README.zh-CN.md +474 -0
  3. package/dist/Pipeline.d.ts +119 -0
  4. package/dist/Pipeline.d.ts.map +1 -0
  5. package/dist/Pipeline.js +373 -0
  6. package/dist/Pipeline.js.map +1 -0
  7. package/dist/debug.d.ts +3 -0
  8. package/dist/debug.d.ts.map +1 -0
  9. package/dist/debug.js +12 -0
  10. package/dist/debug.js.map +1 -0
  11. package/dist/index.d.ts +20 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +19 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/interfaces.d.ts +49 -0
  16. package/dist/interfaces.d.ts.map +1 -0
  17. package/dist/interfaces.js +8 -0
  18. package/dist/interfaces.js.map +1 -0
  19. package/dist/isa/index.d.ts +20 -0
  20. package/dist/isa/index.d.ts.map +1 -0
  21. package/dist/isa/index.js +26 -0
  22. package/dist/isa/index.js.map +1 -0
  23. package/dist/isa/types.d.ts +144 -0
  24. package/dist/isa/types.d.ts.map +1 -0
  25. package/dist/isa/types.js +10 -0
  26. package/dist/isa/types.js.map +1 -0
  27. package/dist/logging/CPUConsole.d.ts +105 -0
  28. package/dist/logging/CPUConsole.d.ts.map +1 -0
  29. package/dist/logging/CPUConsole.js +471 -0
  30. package/dist/logging/CPUConsole.js.map +1 -0
  31. package/dist/logging/CPUDebugger.d.ts +91 -0
  32. package/dist/logging/CPUDebugger.d.ts.map +1 -0
  33. package/dist/logging/CPUDebugger.js +166 -0
  34. package/dist/logging/CPUDebugger.js.map +1 -0
  35. package/dist/logging/CPUEventCollector.d.ts +90 -0
  36. package/dist/logging/CPUEventCollector.d.ts.map +1 -0
  37. package/dist/logging/CPUEventCollector.js +353 -0
  38. package/dist/logging/CPUEventCollector.js.map +1 -0
  39. package/dist/logging/CPULogger.d.ts +150 -0
  40. package/dist/logging/CPULogger.d.ts.map +1 -0
  41. package/dist/logging/CPULogger.js +336 -0
  42. package/dist/logging/CPULogger.js.map +1 -0
  43. package/dist/logging/index.d.ts +10 -0
  44. package/dist/logging/index.d.ts.map +1 -0
  45. package/dist/logging/index.js +16 -0
  46. package/dist/logging/index.js.map +1 -0
  47. package/dist/logging/runtime.d.ts +37 -0
  48. package/dist/logging/runtime.d.ts.map +1 -0
  49. package/dist/logging/runtime.js +42 -0
  50. package/dist/logging/runtime.js.map +1 -0
  51. package/dist/logging/stack-parser.d.ts +22 -0
  52. package/dist/logging/stack-parser.d.ts.map +1 -0
  53. package/dist/logging/stack-parser.js +144 -0
  54. package/dist/logging/stack-parser.js.map +1 -0
  55. package/dist/logging/types.d.ts +73 -0
  56. package/dist/logging/types.d.ts.map +1 -0
  57. package/dist/logging/types.js +47 -0
  58. package/dist/logging/types.js.map +1 -0
  59. package/dist/scheduling/ResourceStrategyRegistry.d.ts +61 -0
  60. package/dist/scheduling/ResourceStrategyRegistry.d.ts.map +1 -0
  61. package/dist/scheduling/ResourceStrategyRegistry.js +109 -0
  62. package/dist/scheduling/ResourceStrategyRegistry.js.map +1 -0
  63. package/dist/scheduling/index.d.ts +6 -0
  64. package/dist/scheduling/index.d.ts.map +1 -0
  65. package/dist/scheduling/index.js +5 -0
  66. package/dist/scheduling/index.js.map +1 -0
  67. package/dist/scheduling/types.d.ts +44 -0
  68. package/dist/scheduling/types.d.ts.map +1 -0
  69. package/dist/scheduling/types.js +5 -0
  70. package/dist/scheduling/types.js.map +1 -0
  71. package/dist/stages/EX.d.ts +17 -0
  72. package/dist/stages/EX.d.ts.map +1 -0
  73. package/dist/stages/EX.js +95 -0
  74. package/dist/stages/EX.js.map +1 -0
  75. package/dist/stages/IF.d.ts +41 -0
  76. package/dist/stages/IF.d.ts.map +1 -0
  77. package/dist/stages/IF.js +83 -0
  78. package/dist/stages/IF.js.map +1 -0
  79. package/dist/stages/RES.d.ts +17 -0
  80. package/dist/stages/RES.d.ts.map +1 -0
  81. package/dist/stages/RES.js +37 -0
  82. package/dist/stages/RES.js.map +1 -0
  83. package/dist/stages/SCH.d.ts +77 -0
  84. package/dist/stages/SCH.d.ts.map +1 -0
  85. package/dist/stages/SCH.js +270 -0
  86. package/dist/stages/SCH.js.map +1 -0
  87. package/dist/stages/WB.d.ts +19 -0
  88. package/dist/stages/WB.d.ts.map +1 -0
  89. package/dist/stages/WB.js +102 -0
  90. package/dist/stages/WB.js.map +1 -0
  91. package/dist/types.d.ts +111 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +26 -0
  94. package/dist/types.js.map +1 -0
  95. package/dist/utils/InstructionCancellation.d.ts +31 -0
  96. package/dist/utils/InstructionCancellation.d.ts.map +1 -0
  97. package/dist/utils/InstructionCancellation.js +53 -0
  98. package/dist/utils/InstructionCancellation.js.map +1 -0
  99. package/dist/utils/abortable.d.ts +30 -0
  100. package/dist/utils/abortable.d.ts.map +1 -0
  101. package/dist/utils/abortable.js +76 -0
  102. package/dist/utils/abortable.js.map +1 -0
  103. package/dist/utils/request.d.ts +27 -0
  104. package/dist/utils/request.d.ts.map +1 -0
  105. package/dist/utils/request.js +96 -0
  106. package/dist/utils/request.js.map +1 -0
  107. package/package.json +74 -0
  108. package/src/Pipeline.ts +475 -0
  109. package/src/debug.ts +15 -0
  110. package/src/index.ts +67 -0
  111. package/src/interfaces.ts +53 -0
  112. package/src/isa/index.ts +34 -0
  113. package/src/isa/types.ts +178 -0
  114. package/src/logging/CPUConsole.md +843 -0
  115. package/src/logging/CPUConsole.ts +631 -0
  116. package/src/logging/CPUDebugger.ts +235 -0
  117. package/src/logging/CPUEventCollector.ts +418 -0
  118. package/src/logging/CPULogger.ts +435 -0
  119. package/src/logging/CPU_LOGGING_DESIGN.md +1319 -0
  120. package/src/logging/USAGE_GUIDE.md +505 -0
  121. package/src/logging/index.ts +21 -0
  122. package/src/logging/runtime.ts +96 -0
  123. package/src/logging/stack-parser.ts +168 -0
  124. package/src/logging/types.ts +101 -0
  125. package/src/scheduling/ResourceStrategyRegistry.ts +124 -0
  126. package/src/scheduling/index.ts +13 -0
  127. package/src/scheduling/types.ts +47 -0
  128. package/src/stages/EX.ts +121 -0
  129. package/src/stages/IF.ts +103 -0
  130. package/src/stages/RES.ts +46 -0
  131. package/src/stages/SCH.ts +331 -0
  132. package/src/stages/WB.ts +127 -0
  133. package/src/types.ts +118 -0
  134. package/src/utils/InstructionCancellation.ts +73 -0
  135. package/src/utils/abortable.ts +89 -0
  136. package/src/utils/request.ts +125 -0
@@ -0,0 +1,150 @@
1
+ /**
2
+ * CPU 日志记录器
3
+ *
4
+ * 职责:
5
+ * 1. 存储和索引所有 CPU 事件
6
+ * 2. 提供强大的查询 API
7
+ * 3. 自动分析和聚合
8
+ */
9
+ import type { PipelineStage, InstructionStatus } from '../types';
10
+ import { CPUEventType, type CPUEvent } from './types';
11
+ export declare class CPULogger {
12
+ private events;
13
+ private maxEvents;
14
+ private eventsByInstruction;
15
+ private eventsByCorrelation;
16
+ private eventsByType;
17
+ private stats;
18
+ /**
19
+ * 批量接收事件
20
+ */
21
+ ingestBatch(events: CPUEvent[]): void;
22
+ /**
23
+ * 接收单个事件
24
+ */
25
+ private ingestEvent;
26
+ private addToIndex;
27
+ private removeFromIndexes;
28
+ /**
29
+ * 查询:获取指令的完整事件链
30
+ */
31
+ getInstructionTrace(instructionId: string): CPUEvent[];
32
+ /**
33
+ * 查询:获取 correlationId 的完整链路
34
+ */
35
+ getCorrelationTrace(correlationId: string): CPUEvent[];
36
+ /**
37
+ * 查询:按类型过滤事件
38
+ */
39
+ getEventsByType(type: CPUEventType): CPUEvent[];
40
+ /**
41
+ * 查询:按指令类型过滤
42
+ */
43
+ getEventsByInstructionType(instructionType: string): CPUEvent[];
44
+ /**
45
+ * 查询:按时间范围过滤
46
+ */
47
+ getEventsByTimeRange(startTime: number, endTime: number): CPUEvent[];
48
+ /**
49
+ * 查询:按标签过滤
50
+ */
51
+ getEventsByTags(tags: string[]): CPUEvent[];
52
+ /**
53
+ * 高级查询:复杂条件
54
+ */
55
+ query(filter: {
56
+ instructionType?: string;
57
+ eventType?: CPUEventType;
58
+ pipelineStage?: PipelineStage;
59
+ instructionStatus?: InstructionStatus;
60
+ timeRange?: {
61
+ start: number;
62
+ end: number;
63
+ };
64
+ tags?: string[];
65
+ minLatency?: number;
66
+ maxLatency?: number;
67
+ }): CPUEvent[];
68
+ /**
69
+ * 分析:指令性能统计
70
+ */
71
+ analyzeInstructionPerformance(instructionType: string): {
72
+ count: number;
73
+ successRate: number;
74
+ avgLatency: number;
75
+ p50: number;
76
+ p95: number;
77
+ p99: number;
78
+ };
79
+ /**
80
+ * 分析:资源冲突热点
81
+ */
82
+ analyzeResourceConflicts(): Array<{
83
+ resource: string;
84
+ conflictCount: number;
85
+ avgWaitTime: number;
86
+ involvedInstructions: string[];
87
+ }>;
88
+ /**
89
+ * 分析:乐观更新回滚率
90
+ */
91
+ analyzeOptimisticRollbackRate(): {
92
+ totalOptimistic: number;
93
+ rollbackCount: number;
94
+ rollbackRate: number;
95
+ byInstructionType: Record<string, {
96
+ total: number;
97
+ rollbacks: number;
98
+ rate: number;
99
+ }>;
100
+ };
101
+ /**
102
+ * 分析:流水线吞吐量
103
+ */
104
+ analyzeThroughput(timeWindowMs?: number): {
105
+ instructionsPerSecond: number;
106
+ eventsPerSecond: number;
107
+ avgPipelineUtilization: number;
108
+ };
109
+ /**
110
+ * 工具:计算百分位数
111
+ */
112
+ private percentile;
113
+ /**
114
+ * 快速统计(用于 Pipeline status)
115
+ */
116
+ getQuickStats(): {
117
+ totalCompleted: number;
118
+ totalFailed: number;
119
+ totalCancelled: number;
120
+ };
121
+ /**
122
+ * 获取统计信息
123
+ */
124
+ getStats(): {
125
+ totalInstructions: number;
126
+ totalCorrelations: number;
127
+ storageUsage: number;
128
+ maxStorage: number;
129
+ totalCompleted: number;
130
+ totalFailed: number;
131
+ totalCancelled: number;
132
+ totalEvents: number;
133
+ eventCounts: Map<CPUEventType, number>;
134
+ instructionCounts: Map<string, number>;
135
+ };
136
+ /**
137
+ * 导出数据(用于离线分析)
138
+ */
139
+ exportData(filter?: any): {
140
+ events: CPUEvent[];
141
+ stats: any;
142
+ exportTime: number;
143
+ };
144
+ /**
145
+ * 清空数据
146
+ */
147
+ clear(): void;
148
+ }
149
+ export declare const cpuLogger: CPULogger;
150
+ //# sourceMappingURL=CPULogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CPULogger.d.ts","sourceRoot":"","sources":["../../src/logging/CPULogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,336 @@
1
+ /**
2
+ * CPU 日志记录器
3
+ *
4
+ * 职责:
5
+ * 1. 存储和索引所有 CPU 事件
6
+ * 2. 提供强大的查询 API
7
+ * 3. 自动分析和聚合
8
+ */
9
+ import { CPUEventType } from './types';
10
+ export class CPULogger {
11
+ constructor() {
12
+ // 存储
13
+ this.events = [];
14
+ this.maxEvents = 10000; // 保留最近 10000 条事件
15
+ // 索引
16
+ this.eventsByInstruction = new Map();
17
+ this.eventsByCorrelation = new Map();
18
+ this.eventsByType = new Map();
19
+ // 统计
20
+ this.stats = {
21
+ totalEvents: 0,
22
+ eventCounts: new Map(),
23
+ instructionCounts: new Map(),
24
+ };
25
+ }
26
+ /**
27
+ * 批量接收事件
28
+ */
29
+ ingestBatch(events) {
30
+ for (const event of events) {
31
+ this.ingestEvent(event);
32
+ }
33
+ }
34
+ /**
35
+ * 接收单个事件
36
+ */
37
+ ingestEvent(event) {
38
+ // 存储
39
+ this.events.push(event);
40
+ if (this.events.length > this.maxEvents) {
41
+ const removed = this.events.shift();
42
+ this.removeFromIndexes(removed);
43
+ }
44
+ // 索引
45
+ this.addToIndex(this.eventsByInstruction, event.instructionId, event);
46
+ this.addToIndex(this.eventsByCorrelation, event.correlationId, event);
47
+ this.addToIndex(this.eventsByType, event.eventType, event);
48
+ // 统计
49
+ this.stats.totalEvents++;
50
+ this.stats.eventCounts.set(event.eventType, (this.stats.eventCounts.get(event.eventType) || 0) + 1);
51
+ this.stats.instructionCounts.set(event.instructionType, (this.stats.instructionCounts.get(event.instructionType) || 0) + 1);
52
+ }
53
+ addToIndex(map, key, event) {
54
+ if (!map.has(key)) {
55
+ map.set(key, []);
56
+ }
57
+ map.get(key).push(event);
58
+ }
59
+ removeFromIndexes(event) {
60
+ // 从索引中移除(简化实现)
61
+ const instrEvents = this.eventsByInstruction.get(event.instructionId);
62
+ if (instrEvents) {
63
+ const index = instrEvents.indexOf(event);
64
+ if (index > -1)
65
+ instrEvents.splice(index, 1);
66
+ }
67
+ const corrEvents = this.eventsByCorrelation.get(event.correlationId);
68
+ if (corrEvents) {
69
+ const index = corrEvents.indexOf(event);
70
+ if (index > -1)
71
+ corrEvents.splice(index, 1);
72
+ }
73
+ const typeEvents = this.eventsByType.get(event.eventType);
74
+ if (typeEvents) {
75
+ const index = typeEvents.indexOf(event);
76
+ if (index > -1)
77
+ typeEvents.splice(index, 1);
78
+ }
79
+ }
80
+ // ==================== 查询 API ====================
81
+ /**
82
+ * 查询:获取指令的完整事件链
83
+ */
84
+ getInstructionTrace(instructionId) {
85
+ return this.eventsByInstruction.get(instructionId) || [];
86
+ }
87
+ /**
88
+ * 查询:获取 correlationId 的完整链路
89
+ */
90
+ getCorrelationTrace(correlationId) {
91
+ return this.eventsByCorrelation.get(correlationId) || [];
92
+ }
93
+ /**
94
+ * 查询:按类型过滤事件
95
+ */
96
+ getEventsByType(type) {
97
+ return this.eventsByType.get(type) || [];
98
+ }
99
+ /**
100
+ * 查询:按指令类型过滤
101
+ */
102
+ getEventsByInstructionType(instructionType) {
103
+ return this.events.filter((e) => e.instructionType === instructionType);
104
+ }
105
+ /**
106
+ * 查询:按时间范围过滤
107
+ */
108
+ getEventsByTimeRange(startTime, endTime) {
109
+ return this.events.filter((e) => e.timestamp >= startTime && e.timestamp <= endTime);
110
+ }
111
+ /**
112
+ * 查询:按标签过滤
113
+ */
114
+ getEventsByTags(tags) {
115
+ return this.events.filter((e) => tags.some((tag) => e.metadata?.tags?.includes(tag)));
116
+ }
117
+ /**
118
+ * 高级查询:复杂条件
119
+ */
120
+ query(filter) {
121
+ let results = this.events;
122
+ if (filter.instructionType) {
123
+ results = results.filter((e) => e.instructionType === filter.instructionType);
124
+ }
125
+ if (filter.eventType) {
126
+ results = results.filter((e) => e.eventType === filter.eventType);
127
+ }
128
+ if (filter.pipelineStage) {
129
+ results = results.filter((e) => e.pipelineStage === filter.pipelineStage);
130
+ }
131
+ if (filter.instructionStatus) {
132
+ results = results.filter((e) => e.instructionStatus === filter.instructionStatus);
133
+ }
134
+ if (filter.timeRange) {
135
+ results = results.filter((e) => e.timestamp >= filter.timeRange.start && e.timestamp <= filter.timeRange.end);
136
+ }
137
+ if (filter.tags) {
138
+ results = results.filter((e) => filter.tags.some((tag) => e.metadata?.tags?.includes(tag)));
139
+ }
140
+ if (filter.minLatency !== undefined) {
141
+ results = results.filter((e) => e.latency !== undefined && e.latency >= filter.minLatency);
142
+ }
143
+ if (filter.maxLatency !== undefined) {
144
+ results = results.filter((e) => e.latency !== undefined && e.latency <= filter.maxLatency);
145
+ }
146
+ return results;
147
+ }
148
+ // ==================== 分析 API ====================
149
+ /**
150
+ * 分析:指令性能统计
151
+ */
152
+ analyzeInstructionPerformance(instructionType) {
153
+ const instructions = Array.from(this.eventsByInstruction.entries()).filter(([_, events]) => events[0]?.instructionType === instructionType);
154
+ if (instructions.length === 0) {
155
+ return {
156
+ count: 0,
157
+ successRate: 0,
158
+ avgLatency: 0,
159
+ p50: 0,
160
+ p95: 0,
161
+ p99: 0,
162
+ };
163
+ }
164
+ const latencies = [];
165
+ let successCount = 0;
166
+ for (const [_, events] of instructions) {
167
+ const commitEvent = events.find((e) => e.eventType === CPUEventType.INSTRUCTION_COMMITTED);
168
+ const failEvent = events.find((e) => e.eventType === CPUEventType.INSTRUCTION_FAILED);
169
+ if (commitEvent) {
170
+ successCount++;
171
+ const duration = commitEvent.timestamp - events[0].timestamp;
172
+ latencies.push(duration);
173
+ }
174
+ else if (failEvent) {
175
+ const duration = failEvent.timestamp - events[0].timestamp;
176
+ latencies.push(duration);
177
+ }
178
+ }
179
+ latencies.sort((a, b) => a - b);
180
+ return {
181
+ count: instructions.length,
182
+ successRate: successCount / instructions.length,
183
+ avgLatency: latencies.reduce((a, b) => a + b, 0) / latencies.length || 0,
184
+ p50: this.percentile(latencies, 0.5),
185
+ p95: this.percentile(latencies, 0.95),
186
+ p99: this.percentile(latencies, 0.99),
187
+ };
188
+ }
189
+ /**
190
+ * 分析:资源冲突热点
191
+ */
192
+ analyzeResourceConflicts() {
193
+ const conflicts = this.getEventsByType(CPUEventType.SCHEDULER_CONFLICT_DETECTED);
194
+ const resourceMap = new Map();
195
+ for (const event of conflicts) {
196
+ const { conflictingResources, waitTime, conflictingInstructions } = event.payload;
197
+ for (const resource of conflictingResources) {
198
+ if (!resourceMap.has(resource)) {
199
+ resourceMap.set(resource, {
200
+ count: 0,
201
+ totalWait: 0,
202
+ instructions: new Set(),
203
+ });
204
+ }
205
+ const entry = resourceMap.get(resource);
206
+ entry.count++;
207
+ entry.totalWait += waitTime;
208
+ conflictingInstructions.forEach((id) => entry.instructions.add(id));
209
+ }
210
+ }
211
+ return Array.from(resourceMap.entries())
212
+ .map(([resource, data]) => ({
213
+ resource,
214
+ conflictCount: data.count,
215
+ avgWaitTime: data.totalWait / data.count,
216
+ involvedInstructions: Array.from(data.instructions),
217
+ }))
218
+ .sort((a, b) => b.conflictCount - a.conflictCount);
219
+ }
220
+ /**
221
+ * 分析:乐观更新回滚率
222
+ */
223
+ analyzeOptimisticRollbackRate() {
224
+ const appliedEvents = this.getEventsByType(CPUEventType.OPTIMISTIC_APPLIED);
225
+ const rolledBackEvents = this.getEventsByType(CPUEventType.OPTIMISTIC_ROLLED_BACK);
226
+ const byType = {};
227
+ // 统计每种指令类型的乐观更新和回滚
228
+ for (const event of appliedEvents) {
229
+ if (!byType[event.instructionType]) {
230
+ byType[event.instructionType] = { total: 0, rollbacks: 0, rate: 0 };
231
+ }
232
+ byType[event.instructionType].total++;
233
+ }
234
+ for (const event of rolledBackEvents) {
235
+ if (!byType[event.instructionType]) {
236
+ byType[event.instructionType] = { total: 0, rollbacks: 0, rate: 0 };
237
+ }
238
+ byType[event.instructionType].rollbacks++;
239
+ }
240
+ // 计算回滚率
241
+ for (const type in byType) {
242
+ byType[type].rate = byType[type].rollbacks / byType[type].total;
243
+ }
244
+ return {
245
+ totalOptimistic: appliedEvents.length,
246
+ rollbackCount: rolledBackEvents.length,
247
+ rollbackRate: rolledBackEvents.length / appliedEvents.length || 0,
248
+ byInstructionType: byType,
249
+ };
250
+ }
251
+ /**
252
+ * 分析:流水线吞吐量
253
+ */
254
+ analyzeThroughput(timeWindowMs = 60000) {
255
+ const now = Date.now();
256
+ const startTime = now - timeWindowMs;
257
+ const recentEvents = this.getEventsByTimeRange(startTime, now);
258
+ const instructionIds = new Set(recentEvents.map((e) => e.instructionId));
259
+ return {
260
+ instructionsPerSecond: (instructionIds.size / timeWindowMs) * 1000,
261
+ eventsPerSecond: (recentEvents.length / timeWindowMs) * 1000,
262
+ avgPipelineUtilization: 0, // TODO: 计算流水线利用率
263
+ };
264
+ }
265
+ /**
266
+ * 工具:计算百分位数
267
+ */
268
+ percentile(values, p) {
269
+ if (values.length === 0)
270
+ return 0;
271
+ const index = Math.ceil(values.length * p) - 1;
272
+ return values[index] || 0;
273
+ }
274
+ /**
275
+ * 快速统计(用于 Pipeline status)
276
+ */
277
+ getQuickStats() {
278
+ let totalCompleted = 0;
279
+ let totalFailed = 0;
280
+ let totalCancelled = 0;
281
+ // 遍历所有指令,统计成功、失败和取消次数
282
+ for (const events of this.eventsByInstruction.values()) {
283
+ const lastEvent = events[events.length - 1];
284
+ if (lastEvent?.eventType === CPUEventType.INSTRUCTION_COMMITTED) {
285
+ totalCompleted++;
286
+ }
287
+ else if (lastEvent?.eventType === CPUEventType.INSTRUCTION_FAILED) {
288
+ totalFailed++;
289
+ }
290
+ else if (lastEvent?.eventType === CPUEventType.INSTRUCTION_CANCELLED) {
291
+ totalCancelled++;
292
+ }
293
+ }
294
+ return { totalCompleted, totalFailed, totalCancelled };
295
+ }
296
+ /**
297
+ * 获取统计信息
298
+ */
299
+ getStats() {
300
+ return {
301
+ ...this.stats,
302
+ ...this.getQuickStats(), // 🔥 包含快速统计
303
+ totalInstructions: this.eventsByInstruction.size,
304
+ totalCorrelations: this.eventsByCorrelation.size,
305
+ storageUsage: this.events.length,
306
+ maxStorage: this.maxEvents,
307
+ };
308
+ }
309
+ /**
310
+ * 导出数据(用于离线分析)
311
+ */
312
+ exportData(filter) {
313
+ const events = filter ? this.query(filter) : this.events;
314
+ return {
315
+ events,
316
+ stats: this.getStats(),
317
+ exportTime: Date.now(),
318
+ };
319
+ }
320
+ /**
321
+ * 清空数据
322
+ */
323
+ clear() {
324
+ this.events = [];
325
+ this.eventsByInstruction.clear();
326
+ this.eventsByCorrelation.clear();
327
+ this.eventsByType.clear();
328
+ this.stats = {
329
+ totalEvents: 0,
330
+ eventCounts: new Map(),
331
+ instructionCounts: new Map(),
332
+ };
333
+ }
334
+ }
335
+ export const cpuLogger = new CPULogger();
336
+ //# sourceMappingURL=CPULogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CPULogger.js","sourceRoot":"","sources":["../../src/logging/CPULogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CPU 日志和调试系统统一导出
3
+ */
4
+ export { CPUEventType, ConsoleLevel, type CPUEvent, type CallSource } from './types';
5
+ export { cpuEventCollector, CPUEventCollector } from './CPUEventCollector';
6
+ export { cpuLogger, CPULogger } from './CPULogger';
7
+ export { cpuDebugger, CPUDebugger } from './CPUDebugger';
8
+ export { cpuConsole, CPUConsole } from './CPUConsole';
9
+ export { captureCallSource, formatCallSource, formatCallSourceShort } from './stack-parser';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAG1E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGlD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * CPU 日志和调试系统统一导出
3
+ */
4
+ // 类型
5
+ export { CPUEventType, ConsoleLevel } from './types';
6
+ // 事件采集器
7
+ export { cpuEventCollector, CPUEventCollector } from './CPUEventCollector';
8
+ // 日志记录器
9
+ export { cpuLogger, CPULogger } from './CPULogger';
10
+ // 调试器
11
+ export { cpuDebugger, CPUDebugger } from './CPUDebugger';
12
+ // 控制台
13
+ export { cpuConsole, CPUConsole } from './CPUConsole';
14
+ // 调用栈解析工具
15
+ export { captureCallSource, formatCallSource, formatCallSourceShort } from './stack-parser';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK;AACL,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkC,MAAM,SAAS,CAAA;AAEpF,QAAQ;AACR,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE1E,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM;AACN,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAExD,MAAM;AACN,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAErD,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,37 @@
1
+ import type { QueuedInstruction } from '../types';
2
+ import type { CallSource } from './types';
3
+ export interface CPUEventCollectorLike {
4
+ onInstructionCreated: (instruction: QueuedInstruction) => void;
5
+ onInstructionCommitted: (instruction: QueuedInstruction) => void;
6
+ onInstructionCancelled: (instruction: QueuedInstruction) => void;
7
+ onInstructionFailed: (instruction: QueuedInstruction, error: Error) => void;
8
+ onOptimisticApplied: (instructionId: string, instructionType: string, correlationId: string, snapshot: any, changes: any) => void;
9
+ onOptimisticRolledBack: (instructionId: string, instructionType: string, correlationId: string, snapshot: any, reason: string, error?: Error) => void;
10
+ }
11
+ export interface CPUConsoleLike {
12
+ onInstructionCreated: (instruction: QueuedInstruction) => void;
13
+ onInstructionSuccess: (instruction: QueuedInstruction, duration: number) => void;
14
+ onInstructionCancelled: (instruction: QueuedInstruction, duration: number) => void;
15
+ onInstructionFailure: (instruction: QueuedInstruction, error: Error, duration: number) => void;
16
+ onOptimisticApplied: (instruction: QueuedInstruction) => void;
17
+ onOptimisticRolledBack: (instruction: QueuedInstruction, reason: string) => void;
18
+ }
19
+ export interface CPULoggerLike {
20
+ getQuickStats: () => {
21
+ totalCompleted: number;
22
+ totalFailed: number;
23
+ totalCancelled: number;
24
+ };
25
+ }
26
+ export interface LoggingProvider {
27
+ cpuEventCollector: CPUEventCollectorLike;
28
+ cpuConsole: CPUConsoleLike;
29
+ cpuLogger: CPULoggerLike;
30
+ captureCallSource: (skipFrames?: number) => CallSource | undefined;
31
+ }
32
+ export declare let cpuEventCollector: CPUEventCollectorLike;
33
+ export declare let cpuConsole: CPUConsoleLike;
34
+ export declare let cpuLogger: CPULoggerLike;
35
+ export declare let captureCallSource: (skipFrames?: number) => CallSource | undefined;
36
+ export declare function setLoggingProvider(provider: Partial<LoggingProvider>): void;
37
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/logging/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC9D,sBAAsB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAChE,sBAAsB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAChE,mBAAmB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC3E,mBAAmB,EAAE,CACnB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,GAAG,KACT,IAAI,CAAA;IACT,sBAAsB,EAAE,CACtB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,KACV,IAAI,CAAA;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,oBAAoB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC9D,oBAAoB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAChF,sBAAsB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClF,oBAAoB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9F,mBAAmB,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC7D,sBAAsB,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACjF;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,UAAU,EAAE,cAAc,CAAA;IAC1B,SAAS,EAAE,aAAa,CAAA;IACxB,iBAAiB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAA;CACnE;AA4BD,eAAO,IAAI,iBAAiB,EAAE,qBAA0C,CAAA;AACxE,eAAO,IAAI,UAAU,EAAE,cAA4B,CAAA;AACnD,eAAO,IAAI,SAAS,EAAE,aAA0B,CAAA;AAChD,eAAO,IAAI,iBAAiB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,UAAU,GAAG,SAA2B,CAAA;AAE/F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAa3E"}
@@ -0,0 +1,42 @@
1
+ const noopEventCollector = {
2
+ onInstructionCreated: () => { },
3
+ onInstructionCommitted: () => { },
4
+ onInstructionCancelled: () => { },
5
+ onInstructionFailed: () => { },
6
+ onOptimisticApplied: () => { },
7
+ onOptimisticRolledBack: () => { },
8
+ };
9
+ const noopConsole = {
10
+ onInstructionCreated: () => { },
11
+ onInstructionSuccess: () => { },
12
+ onInstructionCancelled: () => { },
13
+ onInstructionFailure: () => { },
14
+ onOptimisticApplied: () => { },
15
+ onOptimisticRolledBack: () => { },
16
+ };
17
+ const noopLogger = {
18
+ getQuickStats: () => ({
19
+ totalCompleted: 0,
20
+ totalFailed: 0,
21
+ totalCancelled: 0,
22
+ }),
23
+ };
24
+ export let cpuEventCollector = noopEventCollector;
25
+ export let cpuConsole = noopConsole;
26
+ export let cpuLogger = noopLogger;
27
+ export let captureCallSource = () => undefined;
28
+ export function setLoggingProvider(provider) {
29
+ if (provider.cpuEventCollector) {
30
+ cpuEventCollector = provider.cpuEventCollector;
31
+ }
32
+ if (provider.cpuConsole) {
33
+ cpuConsole = provider.cpuConsole;
34
+ }
35
+ if (provider.cpuLogger) {
36
+ cpuLogger = provider.cpuLogger;
37
+ }
38
+ if (provider.captureCallSource) {
39
+ captureCallSource = provider.captureCallSource;
40
+ }
41
+ }
42
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/logging/runtime.ts"],"names":[],"mappings":"AAiDA,MAAM,kBAAkB,GAA0B;IAChD,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC9B,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;IAChC,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;IAChC,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC7B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC7B,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;CACjC,CAAA;AAED,MAAM,WAAW,GAAmB;IAClC,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC9B,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC9B,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;IAChC,oBAAoB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC9B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC7B,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;CACjC,CAAA;AAED,MAAM,UAAU,GAAkB;IAChC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QACpB,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;KAClB,CAAC;CACH,CAAA;AAED,MAAM,CAAC,IAAI,iBAAiB,GAA0B,kBAAkB,CAAA;AACxE,MAAM,CAAC,IAAI,UAAU,GAAmB,WAAW,CAAA;AACnD,MAAM,CAAC,IAAI,SAAS,GAAkB,UAAU,CAAA;AAChD,MAAM,CAAC,IAAI,iBAAiB,GAAoD,GAAG,EAAE,CAAC,SAAS,CAAA;AAE/F,MAAM,UAAU,kBAAkB,CAAC,QAAkC;IACnE,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC/B,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAA;IAChD,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IAChC,CAAC;IACD,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC/B,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAA;IAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 调用栈解析工具
3
+ *
4
+ * 用于从 Error.stack 中提取调用源信息(文件路径、行号、列号)
5
+ */
6
+ import type { CallSource } from './types';
7
+ /**
8
+ * 捕获并解析调用栈,获取调用源信息
9
+ *
10
+ * @param skipFrames 跳过的栈帧数(用于跳过内部函数)
11
+ * @returns 调用源信息,解析失败返回 undefined
12
+ */
13
+ export declare function captureCallSource(skipFrames?: number): CallSource | undefined;
14
+ /**
15
+ * 格式化调用源为可读字符串
16
+ */
17
+ export declare function formatCallSource(callSource: CallSource): string;
18
+ /**
19
+ * 格式化调用源为简短字符串(仅文件和行号)
20
+ */
21
+ export declare function formatCallSourceShort(callSource: CallSource): string;
22
+ //# sourceMappingURL=stack-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-parser.d.ts","sourceRoot":"","sources":["../../src/logging/stack-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,GAAE,MAAU,GAAG,UAAU,GAAG,SAAS,CAmDhF;AAyFD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAG/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEpE"}