erosolar-cli 1.7.160 → 1.7.162

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 (52) hide show
  1. package/dist/capabilities/performanceMonitoringCapability.d.ts +108 -0
  2. package/dist/capabilities/performanceMonitoringCapability.d.ts.map +1 -0
  3. package/dist/capabilities/performanceMonitoringCapability.js +176 -0
  4. package/dist/capabilities/performanceMonitoringCapability.js.map +1 -0
  5. package/dist/core/performanceMonitor.d.ts +93 -0
  6. package/dist/core/performanceMonitor.d.ts.map +1 -0
  7. package/dist/core/performanceMonitor.js +195 -0
  8. package/dist/core/performanceMonitor.js.map +1 -0
  9. package/dist/core/toolRuntime.d.ts +5 -1
  10. package/dist/core/toolRuntime.d.ts.map +1 -1
  11. package/dist/core/toolRuntime.js +11 -1
  12. package/dist/core/toolRuntime.js.map +1 -1
  13. package/dist/security/tool-security-wrapper.js +3 -3
  14. package/dist/security/tool-security-wrapper.js.map +1 -1
  15. package/dist/shell/claudeCodeStreamHandler.d.ts +145 -0
  16. package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -0
  17. package/dist/shell/claudeCodeStreamHandler.js +312 -0
  18. package/dist/shell/claudeCodeStreamHandler.js.map +1 -0
  19. package/dist/shell/inputQueueManager.d.ts +144 -0
  20. package/dist/shell/inputQueueManager.d.ts.map +1 -0
  21. package/dist/shell/inputQueueManager.js +290 -0
  22. package/dist/shell/inputQueueManager.js.map +1 -0
  23. package/dist/shell/interactiveShell.d.ts +12 -0
  24. package/dist/shell/interactiveShell.d.ts.map +1 -1
  25. package/dist/shell/interactiveShell.js +75 -18
  26. package/dist/shell/interactiveShell.js.map +1 -1
  27. package/dist/shell/streamingOutputManager.d.ts +88 -0
  28. package/dist/shell/streamingOutputManager.d.ts.map +1 -0
  29. package/dist/shell/streamingOutputManager.js +155 -0
  30. package/dist/shell/streamingOutputManager.js.map +1 -0
  31. package/dist/shell/systemPrompt.js +2 -2
  32. package/dist/shell/systemPrompt.js.map +1 -1
  33. package/dist/shell/taskCompletionDetector.d.ts.map +1 -1
  34. package/dist/shell/taskCompletionDetector.js +1 -3
  35. package/dist/shell/taskCompletionDetector.js.map +1 -1
  36. package/dist/tools/editTools.d.ts.map +1 -1
  37. package/dist/tools/editTools.js +32 -8
  38. package/dist/tools/editTools.js.map +1 -1
  39. package/dist/tools/fileTools.d.ts.map +1 -1
  40. package/dist/tools/fileTools.js +2 -126
  41. package/dist/tools/fileTools.js.map +1 -1
  42. package/dist/ui/persistentPrompt.d.ts +3 -5
  43. package/dist/ui/persistentPrompt.d.ts.map +1 -1
  44. package/dist/ui/persistentPrompt.js +5 -11
  45. package/dist/ui/persistentPrompt.js.map +1 -1
  46. package/dist/ui/toolDisplay.d.ts.map +1 -1
  47. package/dist/ui/toolDisplay.js +1 -3
  48. package/dist/ui/toolDisplay.js.map +1 -1
  49. package/dist/ui/toolDisplayAdapter.d.ts.map +1 -1
  50. package/dist/ui/toolDisplayAdapter.js +0 -3
  51. package/dist/ui/toolDisplayAdapter.js.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Performance Monitoring Capability
3
+ *
4
+ * Provides tools for:
5
+ * - Viewing performance statistics
6
+ * - Analyzing tool execution patterns
7
+ * - Identifying performance bottlenecks
8
+ * - Debugging slow operations
9
+ */
10
+ export declare const performanceMonitoringCapability: {
11
+ name: string;
12
+ description: string;
13
+ tools: ({
14
+ name: string;
15
+ description: string;
16
+ parameters: {
17
+ type: string;
18
+ properties: {
19
+ clear_metrics: {
20
+ type: string;
21
+ description: string;
22
+ default: boolean;
23
+ };
24
+ include_recent_activity?: undefined;
25
+ tool_name?: undefined;
26
+ slow_threshold_ms?: undefined;
27
+ };
28
+ required?: undefined;
29
+ };
30
+ handler: (args: {
31
+ clear_metrics?: boolean;
32
+ }) => Promise<string>;
33
+ } | {
34
+ name: string;
35
+ description: string;
36
+ parameters: {
37
+ type: string;
38
+ properties: {
39
+ include_recent_activity: {
40
+ type: string;
41
+ description: string;
42
+ default: boolean;
43
+ };
44
+ clear_metrics?: undefined;
45
+ tool_name?: undefined;
46
+ slow_threshold_ms?: undefined;
47
+ };
48
+ required?: undefined;
49
+ };
50
+ handler: (_args: {
51
+ include_recent_activity?: boolean;
52
+ }) => Promise<string>;
53
+ } | {
54
+ name: string;
55
+ description: string;
56
+ parameters: {
57
+ type: string;
58
+ properties: {
59
+ tool_name: {
60
+ type: string;
61
+ description: string;
62
+ };
63
+ clear_metrics?: undefined;
64
+ include_recent_activity?: undefined;
65
+ slow_threshold_ms?: undefined;
66
+ };
67
+ required: string[];
68
+ };
69
+ handler: (args: {
70
+ tool_name: string;
71
+ }) => Promise<string>;
72
+ } | {
73
+ name: string;
74
+ description: string;
75
+ parameters: {
76
+ type: string;
77
+ properties: {
78
+ clear_metrics?: undefined;
79
+ include_recent_activity?: undefined;
80
+ tool_name?: undefined;
81
+ slow_threshold_ms?: undefined;
82
+ };
83
+ required?: undefined;
84
+ };
85
+ handler: () => Promise<string>;
86
+ } | {
87
+ name: string;
88
+ description: string;
89
+ parameters: {
90
+ type: string;
91
+ properties: {
92
+ slow_threshold_ms: {
93
+ type: string;
94
+ description: string;
95
+ default: number;
96
+ };
97
+ clear_metrics?: undefined;
98
+ include_recent_activity?: undefined;
99
+ tool_name?: undefined;
100
+ };
101
+ required?: undefined;
102
+ };
103
+ handler: (args: {
104
+ slow_threshold_ms?: number;
105
+ }) => Promise<string>;
106
+ })[];
107
+ };
108
+ //# sourceMappingURL=performanceMonitoringCapability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performanceMonitoringCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/performanceMonitoringCapability.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;wBAiBhB;YAAE,aAAa,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;;;;;;;;;;;;;;yBAuB1B;YAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;;;;;;;;;;;;;wBAiBtC;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2ErB;YAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE;;CAgDzD,CAAC"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Performance Monitoring Capability
3
+ *
4
+ * Provides tools for:
5
+ * - Viewing performance statistics
6
+ * - Analyzing tool execution patterns
7
+ * - Identifying performance bottlenecks
8
+ * - Debugging slow operations
9
+ */
10
+ import { globalPerformanceMonitor } from '../core/performanceMonitor.js';
11
+ export const performanceMonitoringCapability = {
12
+ name: 'performance_monitoring',
13
+ description: 'Monitor and analyze tool execution performance',
14
+ tools: [
15
+ {
16
+ name: 'get_performance_stats',
17
+ description: 'Get comprehensive performance statistics for all tool executions',
18
+ parameters: {
19
+ type: 'object',
20
+ properties: {
21
+ clear_metrics: {
22
+ type: 'boolean',
23
+ description: 'Whether to clear metrics after retrieving stats (default: false)',
24
+ default: false,
25
+ },
26
+ },
27
+ },
28
+ handler: async (args) => {
29
+ const stats = globalPerformanceMonitor.getStats();
30
+ if (args.clear_metrics) {
31
+ globalPerformanceMonitor.clear();
32
+ }
33
+ return JSON.stringify(stats, null, 2);
34
+ },
35
+ },
36
+ {
37
+ name: 'get_performance_report',
38
+ description: 'Get a formatted performance report with insights and recommendations',
39
+ parameters: {
40
+ type: 'object',
41
+ properties: {
42
+ include_recent_activity: {
43
+ type: 'boolean',
44
+ description: 'Include recent tool activity in the report (default: true)',
45
+ default: true,
46
+ },
47
+ },
48
+ },
49
+ handler: async (_args) => {
50
+ return globalPerformanceMonitor.generateReport();
51
+ },
52
+ },
53
+ {
54
+ name: 'analyze_tool_performance',
55
+ description: 'Analyze performance metrics for a specific tool',
56
+ parameters: {
57
+ type: 'object',
58
+ properties: {
59
+ tool_name: {
60
+ type: 'string',
61
+ description: 'Name of the tool to analyze',
62
+ },
63
+ },
64
+ required: ['tool_name'],
65
+ },
66
+ handler: async (args) => {
67
+ const metrics = globalPerformanceMonitor.getToolMetrics(args.tool_name);
68
+ if (metrics.length === 0) {
69
+ return `No performance data found for tool: ${args.tool_name}`;
70
+ }
71
+ const successfulMetrics = metrics.filter(m => m.success);
72
+ const failedMetrics = metrics.filter(m => !m.success);
73
+ const executionTimes = successfulMetrics.map(m => m.executionTimeMs);
74
+ const averageTime = executionTimes.length > 0
75
+ ? executionTimes.reduce((sum, time) => sum + time, 0) / executionTimes.length
76
+ : 0;
77
+ const maxTime = executionTimes.length > 0 ? Math.max(...executionTimes) : 0;
78
+ const minTime = executionTimes.length > 0 ? Math.min(...executionTimes) : 0;
79
+ let report = `Performance Analysis for: ${args.tool_name}\n`;
80
+ report += `Total Executions: ${metrics.length}\n`;
81
+ report += `Successful: ${successfulMetrics.length}\n`;
82
+ report += `Failed: ${failedMetrics.length}\n`;
83
+ report += `Success Rate: ${((successfulMetrics.length / metrics.length) * 100).toFixed(1)}%\n`;
84
+ if (successfulMetrics.length > 0) {
85
+ report += `\nExecution Times:\n`;
86
+ report += ` Average: ${averageTime.toFixed(2)}ms\n`;
87
+ report += ` Fastest: ${minTime.toFixed(2)}ms\n`;
88
+ report += ` Slowest: ${maxTime.toFixed(2)}ms\n`;
89
+ // Performance categorization
90
+ if (averageTime > 5000) {
91
+ report += ` ⚠️ Performance Warning: This tool is consistently slow (>5s)\n`;
92
+ }
93
+ else if (averageTime > 1000) {
94
+ report += ` ℹ️ Performance Note: This tool is moderately slow (>1s)\n`;
95
+ }
96
+ else {
97
+ report += ` ✓ Performance: This tool is fast (<1s)\n`;
98
+ }
99
+ }
100
+ if (failedMetrics.length > 0) {
101
+ report += `\nRecent Failures:\n`;
102
+ failedMetrics.slice(-5).forEach(metric => {
103
+ report += ` ${new Date(metric.timestamp).toISOString()}: ${metric.error}\n`;
104
+ });
105
+ }
106
+ return report;
107
+ },
108
+ },
109
+ {
110
+ name: 'clear_performance_metrics',
111
+ description: 'Clear all performance metrics and start fresh',
112
+ parameters: {
113
+ type: 'object',
114
+ properties: {},
115
+ },
116
+ handler: async () => {
117
+ globalPerformanceMonitor.clear();
118
+ return 'Performance metrics cleared successfully';
119
+ },
120
+ },
121
+ {
122
+ name: 'identify_performance_bottlenecks',
123
+ description: 'Identify tools that are causing performance bottlenecks',
124
+ parameters: {
125
+ type: 'object',
126
+ properties: {
127
+ slow_threshold_ms: {
128
+ type: 'number',
129
+ description: 'Threshold for considering a tool slow (default: 1000ms)',
130
+ default: 1000,
131
+ },
132
+ },
133
+ },
134
+ handler: async (args) => {
135
+ const threshold = args.slow_threshold_ms ?? 1000;
136
+ // Get all tools and their average execution times
137
+ const toolMetrics = new Map();
138
+ globalPerformanceMonitor.getToolMetrics('*').forEach(metric => {
139
+ if (metric.success) {
140
+ const existing = toolMetrics.get(metric.toolName) || { totalTime: 0, count: 0, maxTime: 0 };
141
+ toolMetrics.set(metric.toolName, {
142
+ totalTime: existing.totalTime + metric.executionTimeMs,
143
+ count: existing.count + 1,
144
+ maxTime: Math.max(existing.maxTime, metric.executionTimeMs),
145
+ });
146
+ }
147
+ });
148
+ const slowTools = Array.from(toolMetrics.entries())
149
+ .map(([toolName, data]) => ({
150
+ toolName,
151
+ averageTime: data.totalTime / data.count,
152
+ maxTime: data.maxTime,
153
+ count: data.count,
154
+ }))
155
+ .filter(tool => tool.averageTime > threshold)
156
+ .sort((a, b) => b.averageTime - a.averageTime);
157
+ if (slowTools.length === 0) {
158
+ return `No performance bottlenecks detected (threshold: ${threshold}ms)`;
159
+ }
160
+ let report = `Performance Bottlenecks (threshold: ${threshold}ms):\n\n`;
161
+ slowTools.forEach(tool => {
162
+ report += `🔴 ${tool.toolName}\n`;
163
+ report += ` Average: ${tool.averageTime.toFixed(2)}ms\n`;
164
+ report += ` Maximum: ${tool.maxTime.toFixed(2)}ms\n`;
165
+ report += ` Calls: ${tool.count}\n\n`;
166
+ });
167
+ report += `Recommendations:\n`;
168
+ report += `• Consider optimizing the slowest tools\n`;
169
+ report += `• Use caching for expensive operations\n`;
170
+ report += `• Batch operations when possible\n`;
171
+ return report;
172
+ },
173
+ },
174
+ ],
175
+ };
176
+ //# sourceMappingURL=performanceMonitoringCapability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performanceMonitoringCapability.js","sourceRoot":"","sources":["../../src/capabilities/performanceMonitoringCapability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * PerformanceMonitor - Instrumentation for tracking tool execution performance
3
+ *
4
+ * Provides:
5
+ * - Tool execution timing
6
+ * - Memory usage tracking
7
+ * - Performance metrics aggregation
8
+ * - Debug logging capabilities
9
+ * - Performance bottleneck identification
10
+ */
11
+ import type { ToolCallRequest } from './types.js';
12
+ export interface PerformanceMetrics {
13
+ toolName: string;
14
+ executionTimeMs: number;
15
+ memoryUsageDelta?: number;
16
+ timestamp: number;
17
+ success: boolean;
18
+ error?: string;
19
+ profileName?: string;
20
+ provider?: string;
21
+ model?: string;
22
+ }
23
+ export interface PerformanceStats {
24
+ totalCalls: number;
25
+ averageExecutionTime: number;
26
+ slowestTool: string;
27
+ slowestTime: number;
28
+ fastestTool: string;
29
+ fastestTime: number;
30
+ errorRate: number;
31
+ toolsByFrequency: Array<{
32
+ toolName: string;
33
+ count: number;
34
+ }>;
35
+ }
36
+ export interface PerformanceMonitorOptions {
37
+ enabled?: boolean;
38
+ maxMetrics?: number;
39
+ logLevel?: 'none' | 'basic' | 'detailed';
40
+ autoReportInterval?: number;
41
+ }
42
+ export declare class PerformanceMonitor {
43
+ private metrics;
44
+ private options;
45
+ private reportInterval?;
46
+ constructor(options?: PerformanceMonitorOptions);
47
+ /**
48
+ * Start tracking a tool execution
49
+ */
50
+ startToolCall(call: ToolCallRequest, context?: {
51
+ profileName?: string;
52
+ provider?: string;
53
+ model?: string;
54
+ }): () => PerformanceMetrics;
55
+ /**
56
+ * Record a failed tool execution
57
+ */
58
+ recordToolError(call: ToolCallRequest, error: string, context?: {
59
+ profileName?: string;
60
+ provider?: string;
61
+ model?: string;
62
+ }): void;
63
+ /**
64
+ * Add a metric to the collection
65
+ */
66
+ private addMetric;
67
+ /**
68
+ * Get performance statistics
69
+ */
70
+ getStats(): PerformanceStats;
71
+ /**
72
+ * Get metrics for a specific tool
73
+ */
74
+ getToolMetrics(toolName: string): PerformanceMetrics[];
75
+ /**
76
+ * Clear all metrics
77
+ */
78
+ clear(): void;
79
+ /**
80
+ * Generate a performance report
81
+ */
82
+ generateReport(): string;
83
+ /**
84
+ * Start automatic reporting
85
+ */
86
+ private startAutoReporting;
87
+ /**
88
+ * Stop the monitor and clean up
89
+ */
90
+ destroy(): void;
91
+ }
92
+ export declare const globalPerformanceMonitor: PerformanceMonitor;
93
+ //# sourceMappingURL=performanceMonitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performanceMonitor.d.ts","sourceRoot":"","sources":["../../src/core/performanceMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,OAAO,GAAE,yBAA8B;IAanD;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,kBAAkB;IAmCrI;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAqB3H;;OAEG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IAiD5B;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAItD;;OAEG;IACH,KAAK;IAIL;;OAEG;IACH,cAAc,IAAI,MAAM;IA8BxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO;CAKR;AAGD,eAAO,MAAM,wBAAwB,oBAMnC,CAAC"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * PerformanceMonitor - Instrumentation for tracking tool execution performance
3
+ *
4
+ * Provides:
5
+ * - Tool execution timing
6
+ * - Memory usage tracking
7
+ * - Performance metrics aggregation
8
+ * - Debug logging capabilities
9
+ * - Performance bottleneck identification
10
+ */
11
+ export class PerformanceMonitor {
12
+ metrics = [];
13
+ options;
14
+ reportInterval;
15
+ constructor(options = {}) {
16
+ this.options = {
17
+ enabled: options.enabled ?? true,
18
+ maxMetrics: options.maxMetrics ?? 1000,
19
+ logLevel: options.logLevel ?? 'basic',
20
+ autoReportInterval: options.autoReportInterval ?? 0,
21
+ };
22
+ if (this.options.autoReportInterval > 0) {
23
+ this.startAutoReporting();
24
+ }
25
+ }
26
+ /**
27
+ * Start tracking a tool execution
28
+ */
29
+ startToolCall(call, context) {
30
+ if (!this.options.enabled) {
31
+ return () => ({});
32
+ }
33
+ const startTime = performance.now();
34
+ const startMemory = process.memoryUsage().heapUsed;
35
+ return () => {
36
+ const endTime = performance.now();
37
+ const endMemory = process.memoryUsage().heapUsed;
38
+ const executionTime = endTime - startTime;
39
+ const memoryDelta = endMemory - startMemory;
40
+ const metric = {
41
+ toolName: call.name,
42
+ executionTimeMs: executionTime,
43
+ memoryUsageDelta: memoryDelta,
44
+ timestamp: Date.now(),
45
+ success: true,
46
+ profileName: context?.profileName,
47
+ provider: context?.provider,
48
+ model: context?.model,
49
+ };
50
+ this.addMetric(metric);
51
+ if (this.options.logLevel === 'detailed' || (this.options.logLevel === 'basic' && executionTime > 1000)) {
52
+ console.log(`[Performance] ${call.name} took ${executionTime.toFixed(2)}ms`);
53
+ }
54
+ return metric;
55
+ };
56
+ }
57
+ /**
58
+ * Record a failed tool execution
59
+ */
60
+ recordToolError(call, error, context) {
61
+ if (!this.options.enabled)
62
+ return;
63
+ const metric = {
64
+ toolName: call.name,
65
+ executionTimeMs: 0,
66
+ timestamp: Date.now(),
67
+ success: false,
68
+ error,
69
+ profileName: context?.profileName,
70
+ provider: context?.provider,
71
+ model: context?.model,
72
+ };
73
+ this.addMetric(metric);
74
+ if (this.options.logLevel !== 'none') {
75
+ console.warn(`[Performance] ${call.name} failed: ${error}`);
76
+ }
77
+ }
78
+ /**
79
+ * Add a metric to the collection
80
+ */
81
+ addMetric(metric) {
82
+ this.metrics.push(metric);
83
+ // Keep only the most recent metrics
84
+ if (this.metrics.length > this.options.maxMetrics) {
85
+ this.metrics = this.metrics.slice(-this.options.maxMetrics);
86
+ }
87
+ }
88
+ /**
89
+ * Get performance statistics
90
+ */
91
+ getStats() {
92
+ const successfulMetrics = this.metrics.filter(m => m.success);
93
+ const failedMetrics = this.metrics.filter(m => !m.success);
94
+ if (successfulMetrics.length === 0) {
95
+ return {
96
+ totalCalls: this.metrics.length,
97
+ averageExecutionTime: 0,
98
+ slowestTool: 'none',
99
+ slowestTime: 0,
100
+ fastestTool: 'none',
101
+ fastestTime: 0,
102
+ errorRate: this.metrics.length > 0 ? 1 : 0,
103
+ toolsByFrequency: [],
104
+ };
105
+ }
106
+ const toolFrequency = new Map();
107
+ this.metrics.forEach(metric => {
108
+ toolFrequency.set(metric.toolName, (toolFrequency.get(metric.toolName) || 0) + 1);
109
+ });
110
+ const toolsByFrequency = Array.from(toolFrequency.entries())
111
+ .map(([toolName, count]) => ({ toolName, count }))
112
+ .sort((a, b) => b.count - a.count);
113
+ const executionTimes = successfulMetrics.map(m => m.executionTimeMs);
114
+ const averageTime = executionTimes.reduce((sum, time) => sum + time, 0) / executionTimes.length;
115
+ const slowest = successfulMetrics.reduce((slowest, current) => current.executionTimeMs > slowest.executionTimeMs ? current : slowest);
116
+ const fastest = successfulMetrics.reduce((fastest, current) => current.executionTimeMs < fastest.executionTimeMs ? current : fastest);
117
+ return {
118
+ totalCalls: this.metrics.length,
119
+ averageExecutionTime: averageTime,
120
+ slowestTool: slowest.toolName,
121
+ slowestTime: slowest.executionTimeMs,
122
+ fastestTool: fastest.toolName,
123
+ fastestTime: fastest.executionTimeMs,
124
+ errorRate: failedMetrics.length / this.metrics.length,
125
+ toolsByFrequency,
126
+ };
127
+ }
128
+ /**
129
+ * Get metrics for a specific tool
130
+ */
131
+ getToolMetrics(toolName) {
132
+ return this.metrics.filter(m => m.toolName === toolName);
133
+ }
134
+ /**
135
+ * Clear all metrics
136
+ */
137
+ clear() {
138
+ this.metrics = [];
139
+ }
140
+ /**
141
+ * Generate a performance report
142
+ */
143
+ generateReport() {
144
+ const stats = this.getStats();
145
+ const recentMetrics = this.metrics.slice(-10);
146
+ let report = `\n=== Performance Report ===\n`;
147
+ report += `Total Tool Calls: ${stats.totalCalls}\n`;
148
+ report += `Average Execution Time: ${stats.averageExecutionTime.toFixed(2)}ms\n`;
149
+ report += `Slowest Tool: ${stats.slowestTool} (${stats.slowestTime.toFixed(2)}ms)\n`;
150
+ report += `Fastest Tool: ${stats.fastestTool} (${stats.fastestTime.toFixed(2)}ms)\n`;
151
+ report += `Error Rate: ${(stats.errorRate * 100).toFixed(1)}%\n`;
152
+ if (stats.toolsByFrequency.length > 0) {
153
+ report += `\nMost Used Tools:\n`;
154
+ stats.toolsByFrequency.slice(0, 5).forEach(({ toolName, count }) => {
155
+ report += ` ${toolName}: ${count} calls\n`;
156
+ });
157
+ }
158
+ if (recentMetrics.length > 0) {
159
+ report += `\nRecent Activity:\n`;
160
+ recentMetrics.forEach(metric => {
161
+ const status = metric.success ? '✓' : '✗';
162
+ const time = metric.success ? `${metric.executionTimeMs.toFixed(2)}ms` : 'failed';
163
+ report += ` ${status} ${metric.toolName} - ${time}\n`;
164
+ });
165
+ }
166
+ return report;
167
+ }
168
+ /**
169
+ * Start automatic reporting
170
+ */
171
+ startAutoReporting() {
172
+ this.reportInterval = setInterval(() => {
173
+ if (this.metrics.length > 0) {
174
+ console.log(this.generateReport());
175
+ }
176
+ }, this.options.autoReportInterval);
177
+ }
178
+ /**
179
+ * Stop the monitor and clean up
180
+ */
181
+ destroy() {
182
+ if (this.reportInterval) {
183
+ clearInterval(this.reportInterval);
184
+ }
185
+ }
186
+ }
187
+ // Global performance monitor instance
188
+ export const globalPerformanceMonitor = new PerformanceMonitor({
189
+ enabled: process.env['EROSOLAR_PERFORMANCE_MONITOR'] !== 'false',
190
+ logLevel: process.env['EROSOLAR_PERFORMANCE_LOG_LEVEL'] || 'basic',
191
+ autoReportInterval: process.env['EROSOLAR_PERFORMANCE_REPORT_INTERVAL']
192
+ ? parseInt(process.env['EROSOLAR_PERFORMANCE_REPORT_INTERVAL'])
193
+ : 0,
194
+ });
195
+ //# sourceMappingURL=performanceMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performanceMonitor.js","sourceRoot":"","sources":["../../src/core/performanceMonitor.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,11 @@ export declare class ToolRuntime {
49
49
  registerSuite(suite: ToolSuite): void;
50
50
  unregisterSuite(id: string): void;
51
51
  listProviderTools(): ProviderToolDefinition[];
52
- execute(call: ToolCallRequest): Promise<string>;
52
+ execute(call: ToolCallRequest, context?: {
53
+ profileName?: string;
54
+ provider?: string;
55
+ model?: string;
56
+ }): Promise<string>;
53
57
  private getCacheKey;
54
58
  clearCache(): void;
55
59
  getCacheStats(): {
@@ -1 +1 @@
1
- {"version":3,"file":"toolRuntime.d.ts","sourceRoot":"","sources":["../../src/core/toolRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolRuntime.d.ts","sourceRoot":"","sources":["../../src/core/toolRuntime.ts"],"names":[],"mappings":"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"}