erosolar-cli 2.1.170 → 2.1.172

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 (172) hide show
  1. package/README.md +1 -1
  2. package/agents/erosolar-code.rules.json +2 -2
  3. package/agents/general.rules.json +3 -21
  4. package/dist/StringUtils.d.ts +8 -0
  5. package/dist/StringUtils.d.ts.map +1 -0
  6. package/dist/StringUtils.js +11 -0
  7. package/dist/StringUtils.js.map +1 -0
  8. package/dist/capabilities/statusCapability.js +2 -2
  9. package/dist/capabilities/statusCapability.js.map +1 -1
  10. package/dist/contracts/agent-schemas.json +5 -5
  11. package/dist/core/agent.d.ts +24 -83
  12. package/dist/core/agent.d.ts.map +1 -1
  13. package/dist/core/agent.js +248 -499
  14. package/dist/core/agent.js.map +1 -1
  15. package/dist/core/aiFlowSupervisor.d.ts +44 -0
  16. package/dist/core/aiFlowSupervisor.d.ts.map +1 -0
  17. package/dist/core/aiFlowSupervisor.js +299 -0
  18. package/dist/core/aiFlowSupervisor.js.map +1 -0
  19. package/dist/core/cliTestHarness.d.ts +200 -0
  20. package/dist/core/cliTestHarness.d.ts.map +1 -0
  21. package/dist/core/cliTestHarness.js +549 -0
  22. package/dist/core/cliTestHarness.js.map +1 -0
  23. package/dist/core/preferences.d.ts +0 -1
  24. package/dist/core/preferences.d.ts.map +1 -1
  25. package/dist/core/preferences.js +1 -8
  26. package/dist/core/preferences.js.map +1 -1
  27. package/dist/core/schemaValidator.js +3 -3
  28. package/dist/core/schemaValidator.js.map +1 -1
  29. package/dist/core/testUtils.d.ts +121 -0
  30. package/dist/core/testUtils.d.ts.map +1 -0
  31. package/dist/core/testUtils.js +235 -0
  32. package/dist/core/testUtils.js.map +1 -0
  33. package/dist/core/toolPreconditions.d.ts +11 -0
  34. package/dist/core/toolPreconditions.d.ts.map +1 -1
  35. package/dist/core/toolPreconditions.js +164 -33
  36. package/dist/core/toolPreconditions.js.map +1 -1
  37. package/dist/core/toolRuntime.d.ts.map +1 -1
  38. package/dist/core/toolRuntime.js +114 -9
  39. package/dist/core/toolRuntime.js.map +1 -1
  40. package/dist/core/toolValidation.d.ts +116 -0
  41. package/dist/core/toolValidation.d.ts.map +1 -0
  42. package/dist/core/toolValidation.js +282 -0
  43. package/dist/core/toolValidation.js.map +1 -0
  44. package/dist/core/updateChecker.d.ts +1 -61
  45. package/dist/core/updateChecker.d.ts.map +1 -1
  46. package/dist/core/updateChecker.js +3 -147
  47. package/dist/core/updateChecker.js.map +1 -1
  48. package/dist/headless/headlessApp.d.ts.map +1 -1
  49. package/dist/headless/headlessApp.js +39 -0
  50. package/dist/headless/headlessApp.js.map +1 -1
  51. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  52. package/dist/plugins/tools/nodeDefaults.js +2 -0
  53. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  54. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  55. package/dist/providers/openaiResponsesProvider.js +74 -79
  56. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  57. package/dist/runtime/agentController.d.ts.map +1 -1
  58. package/dist/runtime/agentController.js +3 -6
  59. package/dist/runtime/agentController.js.map +1 -1
  60. package/dist/runtime/agentSession.d.ts +2 -0
  61. package/dist/runtime/agentSession.d.ts.map +1 -1
  62. package/dist/runtime/agentSession.js +2 -2
  63. package/dist/runtime/agentSession.js.map +1 -1
  64. package/dist/shell/interactiveShell.d.ts +18 -11
  65. package/dist/shell/interactiveShell.d.ts.map +1 -1
  66. package/dist/shell/interactiveShell.js +291 -273
  67. package/dist/shell/interactiveShell.js.map +1 -1
  68. package/dist/shell/shellApp.d.ts.map +1 -1
  69. package/dist/shell/shellApp.js +1 -7
  70. package/dist/shell/shellApp.js.map +1 -1
  71. package/dist/shell/systemPrompt.d.ts.map +1 -1
  72. package/dist/shell/systemPrompt.js +15 -4
  73. package/dist/shell/systemPrompt.js.map +1 -1
  74. package/dist/subagents/taskRunner.js +1 -2
  75. package/dist/subagents/taskRunner.js.map +1 -1
  76. package/dist/tools/bashTools.d.ts.map +1 -1
  77. package/dist/tools/bashTools.js +8 -101
  78. package/dist/tools/bashTools.js.map +1 -1
  79. package/dist/tools/diffUtils.d.ts +2 -8
  80. package/dist/tools/diffUtils.d.ts.map +1 -1
  81. package/dist/tools/diffUtils.js +13 -72
  82. package/dist/tools/diffUtils.js.map +1 -1
  83. package/dist/tools/grepTools.d.ts.map +1 -1
  84. package/dist/tools/grepTools.js +2 -10
  85. package/dist/tools/grepTools.js.map +1 -1
  86. package/dist/tools/planningTools.d.ts +10 -0
  87. package/dist/tools/planningTools.d.ts.map +1 -1
  88. package/dist/tools/planningTools.js +16 -0
  89. package/dist/tools/planningTools.js.map +1 -1
  90. package/dist/tools/searchTools.d.ts.map +1 -1
  91. package/dist/tools/searchTools.js +2 -4
  92. package/dist/tools/searchTools.js.map +1 -1
  93. package/dist/ui/PromptController.d.ts +4 -1
  94. package/dist/ui/PromptController.d.ts.map +1 -1
  95. package/dist/ui/PromptController.js +7 -1
  96. package/dist/ui/PromptController.js.map +1 -1
  97. package/dist/ui/ShellUIAdapter.d.ts +28 -292
  98. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  99. package/dist/ui/ShellUIAdapter.js +121 -1513
  100. package/dist/ui/ShellUIAdapter.js.map +1 -1
  101. package/dist/ui/UnifiedUIRenderer.d.ts +30 -133
  102. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  103. package/dist/ui/UnifiedUIRenderer.js +370 -939
  104. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  105. package/dist/ui/animatedStatus.d.ts +6 -128
  106. package/dist/ui/animatedStatus.d.ts.map +1 -1
  107. package/dist/ui/animatedStatus.js +50 -383
  108. package/dist/ui/animatedStatus.js.map +1 -1
  109. package/dist/ui/display.d.ts +26 -182
  110. package/dist/ui/display.d.ts.map +1 -1
  111. package/dist/ui/display.js +97 -678
  112. package/dist/ui/display.js.map +1 -1
  113. package/dist/ui/layout.d.ts +1 -0
  114. package/dist/ui/layout.d.ts.map +1 -1
  115. package/dist/ui/layout.js +12 -0
  116. package/dist/ui/layout.js.map +1 -1
  117. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts +7 -61
  118. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts.map +1 -1
  119. package/dist/ui/orchestration/UIUpdateCoordinator.js +20 -232
  120. package/dist/ui/orchestration/UIUpdateCoordinator.js.map +1 -1
  121. package/dist/ui/planOverlay.d.ts +28 -0
  122. package/dist/ui/planOverlay.d.ts.map +1 -0
  123. package/dist/ui/planOverlay.js +156 -0
  124. package/dist/ui/planOverlay.js.map +1 -0
  125. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  126. package/dist/ui/shortcutsHelp.js +1 -0
  127. package/dist/ui/shortcutsHelp.js.map +1 -1
  128. package/dist/ui/streamingFormatter.d.ts +30 -0
  129. package/dist/ui/streamingFormatter.d.ts.map +1 -0
  130. package/dist/ui/streamingFormatter.js +91 -0
  131. package/dist/ui/streamingFormatter.js.map +1 -0
  132. package/dist/ui/unified/index.d.ts +1 -30
  133. package/dist/ui/unified/index.d.ts.map +1 -1
  134. package/dist/ui/unified/index.js +2 -45
  135. package/dist/ui/unified/index.js.map +1 -1
  136. package/dist/utils/errorUtils.d.ts +16 -0
  137. package/dist/utils/errorUtils.d.ts.map +1 -0
  138. package/dist/utils/errorUtils.js +66 -0
  139. package/dist/utils/errorUtils.js.map +1 -0
  140. package/package.json +2 -1
  141. package/dist/core/reliabilityPrompt.d.ts +0 -9
  142. package/dist/core/reliabilityPrompt.d.ts.map +0 -1
  143. package/dist/core/reliabilityPrompt.js +0 -31
  144. package/dist/core/reliabilityPrompt.js.map +0 -1
  145. package/dist/ui/UnifiedUIController.d.ts +0 -81
  146. package/dist/ui/UnifiedUIController.d.ts.map +0 -1
  147. package/dist/ui/UnifiedUIController.js +0 -212
  148. package/dist/ui/UnifiedUIController.js.map +0 -1
  149. package/dist/ui/animation/AnimationScheduler.d.ts +0 -192
  150. package/dist/ui/animation/AnimationScheduler.d.ts.map +0 -1
  151. package/dist/ui/animation/AnimationScheduler.js +0 -432
  152. package/dist/ui/animation/AnimationScheduler.js.map +0 -1
  153. package/dist/ui/inPlaceUpdater.d.ts +0 -181
  154. package/dist/ui/inPlaceUpdater.d.ts.map +0 -1
  155. package/dist/ui/inPlaceUpdater.js +0 -515
  156. package/dist/ui/inPlaceUpdater.js.map +0 -1
  157. package/dist/ui/interrupts/InterruptManager.d.ts +0 -142
  158. package/dist/ui/interrupts/InterruptManager.d.ts.map +0 -1
  159. package/dist/ui/interrupts/InterruptManager.js +0 -439
  160. package/dist/ui/interrupts/InterruptManager.js.map +0 -1
  161. package/dist/ui/telemetry/ResponseTracker.d.ts +0 -22
  162. package/dist/ui/telemetry/ResponseTracker.d.ts.map +0 -1
  163. package/dist/ui/telemetry/ResponseTracker.js +0 -60
  164. package/dist/ui/telemetry/ResponseTracker.js.map +0 -1
  165. package/dist/ui/telemetry/UITelemetry.d.ts +0 -181
  166. package/dist/ui/telemetry/UITelemetry.d.ts.map +0 -1
  167. package/dist/ui/telemetry/UITelemetry.js +0 -446
  168. package/dist/ui/telemetry/UITelemetry.js.map +0 -1
  169. package/dist/ui/unified/layout.d.ts +0 -12
  170. package/dist/ui/unified/layout.d.ts.map +0 -1
  171. package/dist/ui/unified/layout.js +0 -96
  172. package/dist/ui/unified/layout.js.map +0 -1
@@ -1,181 +0,0 @@
1
- /**
2
- * UITelemetry - Collects and tracks UI performance metrics and user interactions
3
- * Provides insights into UI responsiveness, user behavior, and system performance
4
- */
5
- import { EventEmitter } from 'events';
6
- export interface UIEvent {
7
- type: string;
8
- timestamp: number;
9
- duration?: number;
10
- metadata?: any;
11
- }
12
- export interface PerformanceMetric {
13
- name: string;
14
- value: number;
15
- unit: string;
16
- timestamp: number;
17
- }
18
- export interface UserInteraction {
19
- type: 'command' | 'keypress' | 'menu-selection' | 'cancel' | 'confirm';
20
- target?: string;
21
- timestamp: number;
22
- responseTime?: number;
23
- completed: boolean;
24
- }
25
- export interface RenderMetric {
26
- component: string;
27
- renderTime: number;
28
- frameCount: number;
29
- dropped: number;
30
- timestamp: number;
31
- }
32
- export interface TelemetrySnapshot {
33
- timestamp: number;
34
- period: {
35
- start: number;
36
- end: number;
37
- };
38
- events: {
39
- total: number;
40
- byType: Record<string, number>;
41
- };
42
- performance: {
43
- avgRenderTime: number;
44
- avgResponseTime: number;
45
- framerate: number;
46
- memoryUsage: NodeJS.MemoryUsage;
47
- cpuUsage: NodeJS.CpuUsage;
48
- };
49
- interactions: {
50
- total: number;
51
- completed: number;
52
- cancelled: number;
53
- avgResponseTime: number;
54
- };
55
- errors: {
56
- total: number;
57
- byType: Record<string, number>;
58
- };
59
- }
60
- export interface TelemetryConfig {
61
- enabled: boolean;
62
- bufferSize: number;
63
- flushInterval: number;
64
- captureStackTraces: boolean;
65
- anonymize: boolean;
66
- performanceThresholds: {
67
- renderTime: number;
68
- responseTime: number;
69
- framerate: number;
70
- memory: number;
71
- };
72
- }
73
- export declare class UITelemetry extends EventEmitter {
74
- private config;
75
- private events;
76
- private metrics;
77
- private interactions;
78
- private renderMetrics;
79
- private errors;
80
- private sessionStart;
81
- private marks;
82
- private measures;
83
- private flushTimer;
84
- private frameCounter;
85
- constructor(config?: Partial<TelemetryConfig>);
86
- /**
87
- * Start telemetry collection
88
- */
89
- private startCollection;
90
- /**
91
- * Record a UI event
92
- */
93
- recordEvent(type: string, eventMetadata?: any): void;
94
- /**
95
- * Start a performance mark
96
- */
97
- markStart(name: string): void;
98
- /**
99
- * End a performance mark and record the duration
100
- */
101
- markEnd(name: string, _metadata?: any): number;
102
- /**
103
- * Record a user interaction
104
- */
105
- recordInteraction(type: UserInteraction['type'], target?: string): {
106
- complete: () => void;
107
- cancel: () => void;
108
- };
109
- /**
110
- * Record render metrics
111
- */
112
- recordRender(component: string, renderTime: number): void;
113
- /**
114
- * Record an error
115
- */
116
- recordError(error: any, context?: any): void;
117
- /**
118
- * Record memory usage
119
- */
120
- private recordMemoryUsage;
121
- /**
122
- * Check performance threshold
123
- */
124
- private checkPerformanceThreshold;
125
- /**
126
- * Check response time threshold
127
- */
128
- private checkResponseTimeThreshold;
129
- /**
130
- * Trim buffer to prevent memory issues
131
- */
132
- private trimBuffer;
133
- /**
134
- * Anonymize sensitive data
135
- */
136
- private anonymizeData;
137
- /**
138
- * Get current telemetry snapshot
139
- */
140
- getSnapshot(): TelemetrySnapshot;
141
- /**
142
- * Get performance summary
143
- */
144
- getPerformanceSummary(): {
145
- measures: Record<string, {
146
- avg: number;
147
- min: number;
148
- max: number;
149
- count: number;
150
- }>;
151
- slowestOperations: Array<{
152
- name: string;
153
- duration: number;
154
- }>;
155
- };
156
- /**
157
- * Flush telemetry data
158
- */
159
- flush(): void;
160
- /**
161
- * Enable or disable telemetry
162
- */
163
- setEnabled(enabled: boolean): void;
164
- /**
165
- * Update configuration
166
- */
167
- updateConfig(config: Partial<TelemetryConfig>): void;
168
- /**
169
- * Reset all telemetry data
170
- */
171
- reset(): void;
172
- /**
173
- * Stop telemetry collection
174
- */
175
- stop(): void;
176
- /**
177
- * Dispose of telemetry
178
- */
179
- dispose(): void;
180
- }
181
- //# sourceMappingURL=UITelemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UITelemetry.d.ts","sourceRoot":"","sources":["../../../src/ui/telemetry/UITelemetry.ts"],"names":[],"mappings":"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"}
@@ -1,446 +0,0 @@
1
- /**
2
- * UITelemetry - Collects and tracks UI performance metrics and user interactions
3
- * Provides insights into UI responsiveness, user behavior, and system performance
4
- */
5
- import { EventEmitter } from 'events';
6
- import { performance } from 'perf_hooks';
7
- export class UITelemetry extends EventEmitter {
8
- config;
9
- events = [];
10
- metrics = [];
11
- interactions = [];
12
- renderMetrics = [];
13
- errors = [];
14
- sessionStart;
15
- marks = new Map();
16
- measures = new Map();
17
- flushTimer = null;
18
- frameCounter = {
19
- frames: 0,
20
- dropped: 0,
21
- lastFrame: performance.now(),
22
- };
23
- constructor(config = {}) {
24
- super();
25
- this.config = {
26
- enabled: true,
27
- bufferSize: 10000,
28
- flushInterval: 60000, // 1 minute
29
- captureStackTraces: false,
30
- anonymize: true,
31
- performanceThresholds: {
32
- renderTime: 16, // 60 FPS target
33
- responseTime: 100, // 100ms max response time
34
- framerate: 30, // Minimum acceptable framerate
35
- memory: 500 * 1024 * 1024, // 500MB memory threshold
36
- },
37
- ...config,
38
- };
39
- this.sessionStart = Date.now();
40
- if (this.config.enabled) {
41
- this.startCollection();
42
- }
43
- }
44
- /**
45
- * Start telemetry collection
46
- */
47
- startCollection() {
48
- // Set up flush timer
49
- if (this.config.flushInterval > 0) {
50
- this.flushTimer = setInterval(() => this.flush(), this.config.flushInterval);
51
- }
52
- // Monitor memory usage
53
- setInterval(() => {
54
- this.recordMemoryUsage();
55
- }, 10000); // Every 10 seconds
56
- this.emit('telemetry:started');
57
- }
58
- /**
59
- * Record a UI event
60
- */
61
- recordEvent(type, eventMetadata) {
62
- if (!this.config.enabled)
63
- return;
64
- const event = {
65
- type,
66
- timestamp: Date.now(),
67
- metadata: this.config.anonymize ? this.anonymizeData(eventMetadata) : eventMetadata,
68
- };
69
- this.events.push(event);
70
- this.trimBuffer('events');
71
- this.emit('event:recorded', event);
72
- }
73
- /**
74
- * Start a performance mark
75
- */
76
- markStart(name) {
77
- if (!this.config.enabled)
78
- return;
79
- this.marks.set(name, performance.now());
80
- }
81
- /**
82
- * End a performance mark and record the duration
83
- */
84
- markEnd(name, _metadata) {
85
- if (!this.config.enabled)
86
- return 0;
87
- const start = this.marks.get(name);
88
- if (!start) {
89
- console.warn(`No start mark found for: ${name}`);
90
- return 0;
91
- }
92
- const duration = performance.now() - start;
93
- this.marks.delete(name);
94
- // Store measure
95
- if (!this.measures.has(name)) {
96
- this.measures.set(name, []);
97
- }
98
- this.measures.get(name).push(duration);
99
- // Record metric
100
- const metric = {
101
- name,
102
- value: duration,
103
- unit: 'ms',
104
- timestamp: Date.now(),
105
- };
106
- this.metrics.push(metric);
107
- this.trimBuffer('metrics');
108
- // Check threshold
109
- this.checkPerformanceThreshold(name, duration);
110
- this.emit('metric:recorded', metric);
111
- return duration;
112
- }
113
- /**
114
- * Record a user interaction
115
- */
116
- recordInteraction(type, target) {
117
- if (!this.config.enabled) {
118
- return {
119
- complete: () => { },
120
- cancel: () => { },
121
- };
122
- }
123
- const interaction = {
124
- type,
125
- target,
126
- timestamp: Date.now(),
127
- completed: false,
128
- };
129
- this.interactions.push(interaction);
130
- return {
131
- complete: () => {
132
- interaction.completed = true;
133
- interaction.responseTime = Date.now() - interaction.timestamp;
134
- this.checkResponseTimeThreshold(interaction.responseTime);
135
- this.emit('interaction:completed', interaction);
136
- },
137
- cancel: () => {
138
- interaction.completed = false;
139
- this.emit('interaction:cancelled', interaction);
140
- },
141
- };
142
- }
143
- /**
144
- * Record render metrics
145
- */
146
- recordRender(component, renderTime) {
147
- if (!this.config.enabled)
148
- return;
149
- // Update frame counter
150
- const now = performance.now();
151
- const timeSinceLastFrame = now - this.frameCounter.lastFrame;
152
- if (timeSinceLastFrame > 33.33) { // More than 2 frames at 60fps
153
- this.frameCounter.dropped++;
154
- }
155
- this.frameCounter.frames++;
156
- this.frameCounter.lastFrame = now;
157
- const metric = {
158
- component,
159
- renderTime,
160
- frameCount: this.frameCounter.frames,
161
- dropped: this.frameCounter.dropped,
162
- timestamp: Date.now(),
163
- };
164
- this.renderMetrics.push(metric);
165
- this.trimBuffer('renderMetrics');
166
- // Check render time threshold
167
- if (renderTime > this.config.performanceThresholds.renderTime) {
168
- this.emit('performance:slow-render', {
169
- component,
170
- renderTime,
171
- threshold: this.config.performanceThresholds.renderTime,
172
- });
173
- }
174
- this.emit('render:recorded', metric);
175
- }
176
- /**
177
- * Record an error
178
- */
179
- recordError(error, context) {
180
- if (!this.config.enabled)
181
- return;
182
- const errorRecord = {
183
- error: {
184
- message: error.message || String(error),
185
- type: error.constructor?.name || 'Error',
186
- stack: this.config.captureStackTraces ? error.stack : undefined,
187
- },
188
- timestamp: Date.now(),
189
- context: this.config.anonymize ? this.anonymizeData(context) : context,
190
- };
191
- this.errors.push(errorRecord);
192
- this.trimBuffer('errors');
193
- this.emit('error:recorded', errorRecord);
194
- }
195
- /**
196
- * Record memory usage
197
- */
198
- recordMemoryUsage() {
199
- const usage = process.memoryUsage();
200
- const metric = {
201
- name: 'memory.heapUsed',
202
- value: usage.heapUsed,
203
- unit: 'bytes',
204
- timestamp: Date.now(),
205
- };
206
- this.metrics.push(metric);
207
- // Check memory threshold
208
- if (usage.heapUsed > this.config.performanceThresholds.memory) {
209
- this.emit('performance:high-memory', {
210
- usage: usage.heapUsed,
211
- threshold: this.config.performanceThresholds.memory,
212
- });
213
- }
214
- }
215
- /**
216
- * Check performance threshold
217
- */
218
- checkPerformanceThreshold(name, duration) {
219
- if (name.includes('render') &&
220
- duration > this.config.performanceThresholds.renderTime) {
221
- this.emit('performance:threshold-exceeded', {
222
- type: 'render',
223
- name,
224
- duration,
225
- threshold: this.config.performanceThresholds.renderTime,
226
- });
227
- }
228
- }
229
- /**
230
- * Check response time threshold
231
- */
232
- checkResponseTimeThreshold(responseTime) {
233
- if (responseTime > this.config.performanceThresholds.responseTime) {
234
- this.emit('performance:threshold-exceeded', {
235
- type: 'response',
236
- responseTime,
237
- threshold: this.config.performanceThresholds.responseTime,
238
- });
239
- }
240
- }
241
- /**
242
- * Trim buffer to prevent memory issues
243
- */
244
- trimBuffer(bufferName) {
245
- const buffer = this[bufferName];
246
- if (Array.isArray(buffer) && buffer.length > this.config.bufferSize) {
247
- // Keep most recent items
248
- const toRemove = buffer.length - this.config.bufferSize;
249
- buffer.splice(0, toRemove);
250
- }
251
- }
252
- /**
253
- * Anonymize sensitive data
254
- */
255
- anonymizeData(data) {
256
- if (!data)
257
- return data;
258
- if (typeof data !== 'object')
259
- return data;
260
- const anonymized = { ...data };
261
- // Remove or hash sensitive fields
262
- const sensitiveFields = ['password', 'token', 'key', 'secret', 'email', 'username'];
263
- for (const field of sensitiveFields) {
264
- if (field in anonymized) {
265
- anonymized[field] = '[REDACTED]';
266
- }
267
- }
268
- // Recursively anonymize nested objects
269
- for (const key in anonymized) {
270
- if (typeof anonymized[key] === 'object' && anonymized[key] !== null) {
271
- anonymized[key] = this.anonymizeData(anonymized[key]);
272
- }
273
- }
274
- return anonymized;
275
- }
276
- /**
277
- * Get current telemetry snapshot
278
- */
279
- getSnapshot() {
280
- const now = Date.now();
281
- const period = {
282
- start: this.sessionStart,
283
- end: now,
284
- };
285
- // Calculate event statistics
286
- const eventsByType = {};
287
- for (const event of this.events) {
288
- eventsByType[event.type] = (eventsByType[event.type] || 0) + 1;
289
- }
290
- // Calculate performance metrics
291
- const renderTimes = this.renderMetrics.map(m => m.renderTime);
292
- const avgRenderTime = renderTimes.length > 0
293
- ? renderTimes.reduce((a, b) => a + b, 0) / renderTimes.length
294
- : 0;
295
- const responseTimes = this.interactions
296
- .filter(i => i.responseTime !== undefined)
297
- .map(i => i.responseTime);
298
- const avgResponseTime = responseTimes.length > 0
299
- ? responseTimes.reduce((a, b) => a + b, 0) / responseTimes.length
300
- : 0;
301
- const framerate = this.frameCounter.frames > 0
302
- ? (this.frameCounter.frames - this.frameCounter.dropped) /
303
- ((now - this.sessionStart) / 1000)
304
- : 0;
305
- // Calculate interaction statistics
306
- const completedInteractions = this.interactions.filter(i => i.completed).length;
307
- const cancelledInteractions = this.interactions.filter(i => !i.completed).length;
308
- // Calculate error statistics
309
- const errorsByType = {};
310
- for (const error of this.errors) {
311
- const type = error.error.type || 'Unknown';
312
- errorsByType[type] = (errorsByType[type] || 0) + 1;
313
- }
314
- return {
315
- timestamp: now,
316
- period,
317
- events: {
318
- total: this.events.length,
319
- byType: eventsByType,
320
- },
321
- performance: {
322
- avgRenderTime,
323
- avgResponseTime,
324
- framerate,
325
- memoryUsage: process.memoryUsage(),
326
- cpuUsage: process.cpuUsage(),
327
- },
328
- interactions: {
329
- total: this.interactions.length,
330
- completed: completedInteractions,
331
- cancelled: cancelledInteractions,
332
- avgResponseTime,
333
- },
334
- errors: {
335
- total: this.errors.length,
336
- byType: errorsByType,
337
- },
338
- };
339
- }
340
- /**
341
- * Get performance summary
342
- */
343
- getPerformanceSummary() {
344
- const summary = {};
345
- for (const [name, durations] of this.measures) {
346
- if (durations.length === 0)
347
- continue;
348
- summary[name] = {
349
- avg: durations.reduce((a, b) => a + b, 0) / durations.length,
350
- min: Math.min(...durations),
351
- max: Math.max(...durations),
352
- count: durations.length,
353
- };
354
- }
355
- // Find slowest operations
356
- const allOperations = [];
357
- for (const metric of this.metrics) {
358
- if (metric.unit === 'ms') {
359
- allOperations.push({ name: metric.name, duration: metric.value });
360
- }
361
- }
362
- const slowestOperations = allOperations
363
- .sort((a, b) => b.duration - a.duration)
364
- .slice(0, 10);
365
- return {
366
- measures: summary,
367
- slowestOperations,
368
- };
369
- }
370
- /**
371
- * Flush telemetry data
372
- */
373
- flush() {
374
- const snapshot = this.getSnapshot();
375
- this.emit('telemetry:flush', snapshot);
376
- // Clear old data based on buffer size
377
- const cutoff = Date.now() - this.config.flushInterval;
378
- this.events = this.events.filter(e => e.timestamp > cutoff);
379
- this.metrics = this.metrics.filter(m => m.timestamp > cutoff);
380
- this.interactions = this.interactions.filter(i => i.timestamp > cutoff);
381
- this.renderMetrics = this.renderMetrics.filter(m => m.timestamp > cutoff);
382
- this.errors = this.errors.filter(e => e.timestamp > cutoff);
383
- }
384
- /**
385
- * Enable or disable telemetry
386
- */
387
- setEnabled(enabled) {
388
- this.config.enabled = enabled;
389
- if (!enabled) {
390
- this.stop();
391
- }
392
- else {
393
- this.startCollection();
394
- }
395
- this.emit('telemetry:status-changed', { enabled });
396
- }
397
- /**
398
- * Update configuration
399
- */
400
- updateConfig(config) {
401
- const wasEnabled = this.config.enabled;
402
- this.config = { ...this.config, ...config };
403
- if (wasEnabled !== this.config.enabled) {
404
- this.setEnabled(this.config.enabled);
405
- }
406
- this.emit('telemetry:config-updated', this.config);
407
- }
408
- /**
409
- * Reset all telemetry data
410
- */
411
- reset() {
412
- this.events = [];
413
- this.metrics = [];
414
- this.interactions = [];
415
- this.renderMetrics = [];
416
- this.errors = [];
417
- this.marks.clear();
418
- this.measures.clear();
419
- this.frameCounter = {
420
- frames: 0,
421
- dropped: 0,
422
- lastFrame: performance.now(),
423
- };
424
- this.sessionStart = Date.now();
425
- this.emit('telemetry:reset');
426
- }
427
- /**
428
- * Stop telemetry collection
429
- */
430
- stop() {
431
- if (this.flushTimer) {
432
- clearInterval(this.flushTimer);
433
- this.flushTimer = null;
434
- }
435
- this.emit('telemetry:stopped');
436
- }
437
- /**
438
- * Dispose of telemetry
439
- */
440
- dispose() {
441
- this.stop();
442
- this.removeAllListeners();
443
- this.reset();
444
- }
445
- }
446
- //# sourceMappingURL=UITelemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UITelemetry.js","sourceRoot":"","sources":["../../../src/ui/telemetry/UITelemetry.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export interface StatusLinePart {
2
- text: string;
3
- tone?: 'info' | 'warn' | 'error' | 'success' | 'muted';
4
- }
5
- export declare const renderDivider: (width: number, label?: string) => string;
6
- export declare const renderStatusLine: (parts: StatusLinePart[], width: number) => string;
7
- /**
8
- * Render status parts into multiple lines, wrapping as needed.
9
- * Unlike renderStatusLine, this never truncates - it wraps to new lines.
10
- */
11
- export declare const renderStatusLines: (parts: StatusLinePart[], width: number) => string[];
12
- //# sourceMappingURL=layout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/ui/unified/layout.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;CACxD;AAaD,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAY7D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,cAAc,EAAE,EAAE,OAAO,MAAM,KAAG,MAuBzE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,cAAc,EAAE,EAAE,OAAO,MAAM,KAAG,MAAM,EAsChF,CAAC"}