@pinepaper.studio/mcp-server 1.2.1 → 1.3.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 (65) hide show
  1. package/README.md +109 -2
  2. package/dist/assets/asset-manager.d.ts +75 -0
  3. package/dist/assets/asset-manager.d.ts.map +1 -0
  4. package/dist/assets/asset-manager.js +156 -0
  5. package/dist/assets/asset-manager.js.map +1 -0
  6. package/dist/assets/index.d.ts +12 -0
  7. package/dist/assets/index.d.ts.map +1 -0
  8. package/dist/assets/index.js +12 -0
  9. package/dist/assets/index.js.map +1 -0
  10. package/dist/assets/repositories/fontawesome.d.ts +43 -0
  11. package/dist/assets/repositories/fontawesome.d.ts.map +1 -0
  12. package/dist/assets/repositories/fontawesome.js +163 -0
  13. package/dist/assets/repositories/fontawesome.js.map +1 -0
  14. package/dist/assets/repositories/iconify.d.ts +44 -0
  15. package/dist/assets/repositories/iconify.d.ts.map +1 -0
  16. package/dist/assets/repositories/iconify.js +208 -0
  17. package/dist/assets/repositories/iconify.js.map +1 -0
  18. package/dist/assets/repositories/openclipart.d.ts +41 -0
  19. package/dist/assets/repositories/openclipart.d.ts.map +1 -0
  20. package/dist/assets/repositories/openclipart.js +138 -0
  21. package/dist/assets/repositories/openclipart.js.map +1 -0
  22. package/dist/assets/repositories/svgrepo.d.ts +61 -0
  23. package/dist/assets/repositories/svgrepo.d.ts.map +1 -0
  24. package/dist/assets/repositories/svgrepo.js +276 -0
  25. package/dist/assets/repositories/svgrepo.js.map +1 -0
  26. package/dist/assets/types.d.ts +85 -0
  27. package/dist/assets/types.d.ts.map +1 -0
  28. package/dist/assets/types.js +7 -0
  29. package/dist/assets/types.js.map +1 -0
  30. package/dist/execution/canvas-state.d.ts +65 -0
  31. package/dist/execution/canvas-state.d.ts.map +1 -0
  32. package/dist/execution/canvas-state.js +165 -0
  33. package/dist/execution/canvas-state.js.map +1 -0
  34. package/dist/execution/index.d.ts +8 -0
  35. package/dist/execution/index.d.ts.map +1 -0
  36. package/dist/execution/index.js +8 -0
  37. package/dist/execution/index.js.map +1 -0
  38. package/dist/metrics/index.d.ts +8 -0
  39. package/dist/metrics/index.d.ts.map +1 -0
  40. package/dist/metrics/index.js +8 -0
  41. package/dist/metrics/index.js.map +1 -0
  42. package/dist/metrics/performance-tracker.d.ts +96 -0
  43. package/dist/metrics/performance-tracker.d.ts.map +1 -0
  44. package/dist/metrics/performance-tracker.js +270 -0
  45. package/dist/metrics/performance-tracker.js.map +1 -0
  46. package/dist/metrics/types.d.ts +86 -0
  47. package/dist/metrics/types.d.ts.map +1 -0
  48. package/dist/metrics/types.js +7 -0
  49. package/dist/metrics/types.js.map +1 -0
  50. package/dist/tools/definitions.d.ts.map +1 -1
  51. package/dist/tools/definitions.js +510 -0
  52. package/dist/tools/definitions.js.map +1 -1
  53. package/dist/tools/handlers.d.ts.map +1 -1
  54. package/dist/tools/handlers.js +313 -34
  55. package/dist/tools/handlers.js.map +1 -1
  56. package/dist/types/code-generator.d.ts +13 -1
  57. package/dist/types/code-generator.d.ts.map +1 -1
  58. package/dist/types/code-generator.js +91 -1
  59. package/dist/types/code-generator.js.map +1 -1
  60. package/dist/types/schemas.d.ts +210 -47
  61. package/dist/types/schemas.d.ts.map +1 -1
  62. package/dist/types/schemas.js +59 -0
  63. package/dist/types/schemas.js.map +1 -1
  64. package/manifest.json +42 -2
  65. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Performance Metrics Module
3
+ *
4
+ * Provides performance tracking and metrics collection for MCP tool operations.
5
+ */
6
+ export * from './types.js';
7
+ export * from './performance-tracker.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Performance Tracker
3
+ *
4
+ * Tracks execution timing metrics for MCP tool operations.
5
+ * Provides aggregate statistics and export functionality.
6
+ */
7
+ import { TimingMetric, AggregateStats, MetricsFilter, MetricsExportFormat, MetricsSummary } from './types.js';
8
+ /**
9
+ * Configuration options for PerformanceTracker
10
+ */
11
+ export interface PerformanceTrackerConfig {
12
+ /** Maximum number of metrics to retain in memory (default: 1000) */
13
+ maxRetention?: number;
14
+ /** Whether tracking is enabled (default: true) */
15
+ enabled?: boolean;
16
+ }
17
+ /**
18
+ * Performance tracking and metrics collection
19
+ */
20
+ export declare class PerformanceTracker {
21
+ private metrics;
22
+ private activeTimers;
23
+ private maxRetention;
24
+ private enabled;
25
+ constructor(config?: PerformanceTrackerConfig);
26
+ /**
27
+ * Start a timer with a unique ID
28
+ */
29
+ startTimer(id: string): void;
30
+ /**
31
+ * End a timer and return elapsed time in milliseconds
32
+ */
33
+ endTimer(id: string): number;
34
+ /**
35
+ * Record a timing metric
36
+ */
37
+ recordMetric(metric: TimingMetric): void;
38
+ /**
39
+ * Get metrics matching filter criteria
40
+ */
41
+ getMetrics(filter?: MetricsFilter): TimingMetric[];
42
+ /**
43
+ * Calculate aggregate statistics for metrics
44
+ */
45
+ getAggregateStats(metrics: TimingMetric[]): AggregateStats;
46
+ /**
47
+ * Calculate percentile value
48
+ */
49
+ private percentile;
50
+ /**
51
+ * Get summary metrics for a tool or phase
52
+ */
53
+ getSummary(filter?: MetricsFilter): MetricsSummary[];
54
+ /**
55
+ * Export metrics in specified format
56
+ */
57
+ exportMetrics(format: MetricsExportFormat, filter?: MetricsFilter): string;
58
+ /**
59
+ * Export metrics as CSV
60
+ */
61
+ private exportCSV;
62
+ /**
63
+ * Export summary statistics
64
+ */
65
+ private exportSummary;
66
+ /**
67
+ * Clear all metrics
68
+ */
69
+ clear(): void;
70
+ /**
71
+ * Get tracker statistics
72
+ */
73
+ getStats(): {
74
+ totalMetrics: number;
75
+ activeTimers: number;
76
+ retention: number;
77
+ enabled: boolean;
78
+ };
79
+ /**
80
+ * Enable tracking
81
+ */
82
+ enable(): void;
83
+ /**
84
+ * Disable tracking
85
+ */
86
+ disable(): void;
87
+ }
88
+ /**
89
+ * Get or create the global performance tracker instance
90
+ */
91
+ export declare function getPerformanceTracker(config?: PerformanceTrackerConfig): PerformanceTracker;
92
+ /**
93
+ * Reset the global performance tracker (mainly for testing)
94
+ */
95
+ export declare function resetPerformanceTracker(): void;
96
+ //# sourceMappingURL=performance-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/performance-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,EAEZ,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAU;gBAEb,MAAM,GAAE,wBAA6B;IAKjD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAc5B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAWxC;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAkClD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,cAAc;IAgC1D;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE;IAqCpD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;IAkB1E;;OAEG;IACH,OAAO,CAAC,SAAS;IAmBjB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;KAClB;IASD;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAKD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,kBAAkB,CAc3F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Performance Tracker
3
+ *
4
+ * Tracks execution timing metrics for MCP tool operations.
5
+ * Provides aggregate statistics and export functionality.
6
+ */
7
+ /**
8
+ * Performance tracking and metrics collection
9
+ */
10
+ export class PerformanceTracker {
11
+ metrics = [];
12
+ activeTimers = new Map();
13
+ maxRetention;
14
+ enabled;
15
+ constructor(config = {}) {
16
+ this.maxRetention = config.maxRetention ?? 1000;
17
+ this.enabled = config.enabled ?? true;
18
+ }
19
+ /**
20
+ * Start a timer with a unique ID
21
+ */
22
+ startTimer(id) {
23
+ if (!this.enabled)
24
+ return;
25
+ this.activeTimers.set(id, Date.now());
26
+ }
27
+ /**
28
+ * End a timer and return elapsed time in milliseconds
29
+ */
30
+ endTimer(id) {
31
+ if (!this.enabled)
32
+ return 0;
33
+ const startTime = this.activeTimers.get(id);
34
+ if (!startTime) {
35
+ console.error(`[PerformanceTracker] Timer '${id}' not found`);
36
+ return 0;
37
+ }
38
+ const duration = Date.now() - startTime;
39
+ this.activeTimers.delete(id);
40
+ return duration;
41
+ }
42
+ /**
43
+ * Record a timing metric
44
+ */
45
+ recordMetric(metric) {
46
+ if (!this.enabled)
47
+ return;
48
+ this.metrics.push(metric);
49
+ // Enforce retention limit (LRU eviction)
50
+ if (this.metrics.length > this.maxRetention) {
51
+ this.metrics.shift(); // Remove oldest
52
+ }
53
+ }
54
+ /**
55
+ * Get metrics matching filter criteria
56
+ */
57
+ getMetrics(filter) {
58
+ let results = [...this.metrics];
59
+ if (!filter)
60
+ return results;
61
+ // Apply filters
62
+ if (filter.toolName) {
63
+ results = results.filter((m) => m.toolName === filter.toolName);
64
+ }
65
+ if (filter.phase) {
66
+ results = results.filter((m) => m.phase === filter.phase);
67
+ }
68
+ if (filter.success !== undefined) {
69
+ results = results.filter((m) => m.success === filter.success);
70
+ }
71
+ if (filter.since) {
72
+ results = results.filter((m) => m.timestamp >= filter.since);
73
+ }
74
+ if (filter.until) {
75
+ results = results.filter((m) => m.timestamp <= filter.until);
76
+ }
77
+ // Apply limit
78
+ if (filter.limit && filter.limit > 0) {
79
+ results = results.slice(-filter.limit); // Most recent N
80
+ }
81
+ return results;
82
+ }
83
+ /**
84
+ * Calculate aggregate statistics for metrics
85
+ */
86
+ getAggregateStats(metrics) {
87
+ if (metrics.length === 0) {
88
+ return {
89
+ count: 0,
90
+ avgDuration: 0,
91
+ minDuration: 0,
92
+ maxDuration: 0,
93
+ p50: 0,
94
+ p95: 0,
95
+ p99: 0,
96
+ successRate: 0,
97
+ totalDuration: 0,
98
+ };
99
+ }
100
+ const durations = metrics.map((m) => m.duration).sort((a, b) => a - b);
101
+ const successCount = metrics.filter((m) => m.success).length;
102
+ const totalDuration = durations.reduce((sum, d) => sum + d, 0);
103
+ return {
104
+ count: metrics.length,
105
+ avgDuration: totalDuration / metrics.length,
106
+ minDuration: durations[0],
107
+ maxDuration: durations[durations.length - 1],
108
+ p50: this.percentile(durations, 0.5),
109
+ p95: this.percentile(durations, 0.95),
110
+ p99: this.percentile(durations, 0.99),
111
+ successRate: successCount / metrics.length,
112
+ totalDuration,
113
+ };
114
+ }
115
+ /**
116
+ * Calculate percentile value
117
+ */
118
+ percentile(sortedValues, p) {
119
+ if (sortedValues.length === 0)
120
+ return 0;
121
+ const index = Math.ceil(sortedValues.length * p) - 1;
122
+ return sortedValues[Math.max(0, index)];
123
+ }
124
+ /**
125
+ * Get summary metrics for a tool or phase
126
+ */
127
+ getSummary(filter) {
128
+ const metrics = this.getMetrics(filter);
129
+ if (metrics.length === 0) {
130
+ return [];
131
+ }
132
+ // Group by tool name and phase
133
+ const grouped = new Map();
134
+ for (const metric of metrics) {
135
+ const key = `${metric.toolName}:${metric.phase}`;
136
+ if (!grouped.has(key)) {
137
+ grouped.set(key, []);
138
+ }
139
+ grouped.get(key).push(metric);
140
+ }
141
+ // Generate summaries
142
+ const summaries = [];
143
+ for (const [key, metricGroup] of grouped.entries()) {
144
+ const [toolName, phase] = key.split(':');
145
+ summaries.push({
146
+ toolName,
147
+ phase: phase,
148
+ stats: this.getAggregateStats(metricGroup),
149
+ recentMetrics: metricGroup.slice(-5), // Last 5 measurements
150
+ });
151
+ }
152
+ // Sort by average duration (slowest first)
153
+ summaries.sort((a, b) => b.stats.avgDuration - a.stats.avgDuration);
154
+ return summaries;
155
+ }
156
+ /**
157
+ * Export metrics in specified format
158
+ */
159
+ exportMetrics(format, filter) {
160
+ const metrics = this.getMetrics(filter);
161
+ switch (format) {
162
+ case 'json':
163
+ return JSON.stringify(metrics, null, 2);
164
+ case 'csv':
165
+ return this.exportCSV(metrics);
166
+ case 'summary':
167
+ return this.exportSummary(filter);
168
+ default:
169
+ throw new Error(`Unknown export format: ${format}`);
170
+ }
171
+ }
172
+ /**
173
+ * Export metrics as CSV
174
+ */
175
+ exportCSV(metrics) {
176
+ const headers = ['timestamp', 'toolName', 'phase', 'duration', 'success', 'error'];
177
+ const rows = metrics.map((m) => [
178
+ m.timestamp,
179
+ m.toolName,
180
+ m.phase,
181
+ m.duration,
182
+ m.success,
183
+ m.error || '',
184
+ ]);
185
+ const csv = [
186
+ headers.join(','),
187
+ ...rows.map((row) => row.map((cell) => `"${cell}"`).join(',')),
188
+ ].join('\n');
189
+ return csv;
190
+ }
191
+ /**
192
+ * Export summary statistics
193
+ */
194
+ exportSummary(filter) {
195
+ const summaries = this.getSummary(filter);
196
+ if (summaries.length === 0) {
197
+ return 'No metrics available';
198
+ }
199
+ const lines = ['Performance Metrics Summary', '='.repeat(50), ''];
200
+ for (const summary of summaries) {
201
+ const stats = summary.stats;
202
+ lines.push(`Tool: ${summary.toolName} | Phase: ${summary.phase}`);
203
+ lines.push(` Count: ${stats.count}`);
204
+ lines.push(` Avg: ${stats.avgDuration.toFixed(2)}ms`);
205
+ lines.push(` Min: ${stats.minDuration.toFixed(2)}ms`);
206
+ lines.push(` Max: ${stats.maxDuration.toFixed(2)}ms`);
207
+ lines.push(` P50: ${stats.p50.toFixed(2)}ms`);
208
+ lines.push(` P95: ${stats.p95.toFixed(2)}ms`);
209
+ lines.push(` P99: ${stats.p99.toFixed(2)}ms`);
210
+ lines.push(` Success Rate: ${(stats.successRate * 100).toFixed(1)}%`);
211
+ lines.push('');
212
+ }
213
+ return lines.join('\n');
214
+ }
215
+ /**
216
+ * Clear all metrics
217
+ */
218
+ clear() {
219
+ this.metrics = [];
220
+ this.activeTimers.clear();
221
+ }
222
+ /**
223
+ * Get tracker statistics
224
+ */
225
+ getStats() {
226
+ return {
227
+ totalMetrics: this.metrics.length,
228
+ activeTimers: this.activeTimers.size,
229
+ retention: this.maxRetention,
230
+ enabled: this.enabled,
231
+ };
232
+ }
233
+ /**
234
+ * Enable tracking
235
+ */
236
+ enable() {
237
+ this.enabled = true;
238
+ }
239
+ /**
240
+ * Disable tracking
241
+ */
242
+ disable() {
243
+ this.enabled = false;
244
+ }
245
+ }
246
+ // Global singleton instance
247
+ let globalTracker = null;
248
+ /**
249
+ * Get or create the global performance tracker instance
250
+ */
251
+ export function getPerformanceTracker(config) {
252
+ if (!globalTracker) {
253
+ // Check environment variables for configuration
254
+ const envConfig = {
255
+ enabled: process.env.PINEPAPER_METRICS_ENABLED !== 'false',
256
+ maxRetention: process.env.PINEPAPER_METRICS_RETENTION
257
+ ? parseInt(process.env.PINEPAPER_METRICS_RETENTION, 10)
258
+ : 1000,
259
+ };
260
+ globalTracker = new PerformanceTracker({ ...envConfig, ...config });
261
+ }
262
+ return globalTracker;
263
+ }
264
+ /**
265
+ * Reset the global performance tracker (mainly for testing)
266
+ */
267
+ export function resetPerformanceTracker() {
268
+ globalTracker = null;
269
+ }
270
+ //# sourceMappingURL=performance-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-tracker.js","sourceRoot":"","sources":["../../src/metrics/performance-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Performance Metrics Types
3
+ *
4
+ * Type definitions for performance tracking and metrics collection.
5
+ */
6
+ /**
7
+ * Phase of tool execution being measured
8
+ */
9
+ export type MetricPhase = 'validation' | 'code_generation' | 'browser_execution' | 'screenshot' | 'total';
10
+ /**
11
+ * A single timing metric for a tool execution phase
12
+ */
13
+ export interface TimingMetric {
14
+ /** Tool name (e.g., 'pinepaper_create_item') */
15
+ toolName: string;
16
+ /** Execution phase being measured */
17
+ phase: MetricPhase;
18
+ /** Duration in milliseconds */
19
+ duration: number;
20
+ /** Unix timestamp when metric was recorded */
21
+ timestamp: number;
22
+ /** Whether the operation succeeded */
23
+ success: boolean;
24
+ /** Error message if operation failed */
25
+ error?: string;
26
+ /** Additional metadata about the operation */
27
+ metadata?: Record<string, unknown>;
28
+ }
29
+ /**
30
+ * Aggregate statistics for a set of metrics
31
+ */
32
+ export interface AggregateStats {
33
+ /** Total number of measurements */
34
+ count: number;
35
+ /** Average duration in milliseconds */
36
+ avgDuration: number;
37
+ /** Minimum duration in milliseconds */
38
+ minDuration: number;
39
+ /** Maximum duration in milliseconds */
40
+ maxDuration: number;
41
+ /** Median duration (50th percentile) in milliseconds */
42
+ p50: number;
43
+ /** 95th percentile duration in milliseconds */
44
+ p95: number;
45
+ /** 99th percentile duration in milliseconds */
46
+ p99: number;
47
+ /** Success rate (0-1) */
48
+ successRate: number;
49
+ /** Total duration of all operations in milliseconds */
50
+ totalDuration: number;
51
+ }
52
+ /**
53
+ * Filter options for querying metrics
54
+ */
55
+ export interface MetricsFilter {
56
+ /** Filter by tool name */
57
+ toolName?: string;
58
+ /** Filter by execution phase */
59
+ phase?: MetricPhase;
60
+ /** Filter by success status */
61
+ success?: boolean;
62
+ /** Filter metrics since this timestamp (Unix timestamp) */
63
+ since?: number;
64
+ /** Filter metrics until this timestamp (Unix timestamp) */
65
+ until?: number;
66
+ /** Maximum number of results to return */
67
+ limit?: number;
68
+ }
69
+ /**
70
+ * Export format for metrics
71
+ */
72
+ export type MetricsExportFormat = 'json' | 'csv' | 'summary';
73
+ /**
74
+ * Metrics summary for tool or phase
75
+ */
76
+ export interface MetricsSummary {
77
+ /** Tool name or 'all' for aggregate */
78
+ toolName: string;
79
+ /** Phase or 'all' for aggregate */
80
+ phase: MetricPhase | 'all';
81
+ /** Aggregate statistics */
82
+ stats: AggregateStats;
83
+ /** Recent measurements (last N) */
84
+ recentMetrics?: TimingMetric[];
85
+ }
86
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metrics/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,GACnB,YAAY,GACZ,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IAEjB,qCAAqC;IACrC,KAAK,EAAE,WAAW,CAAC;IAEnB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAElB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IAEjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IAEd,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IAEpB,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IAEZ,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IAEpB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,mCAAmC;IACnC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC;IAE3B,2BAA2B;IAC3B,KAAK,EAAE,cAAc,CAAC;IAEtB,mCAAmC;IACnC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Performance Metrics Types
3
+ *
4
+ * Type definitions for performance tracking and metrics collection.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metrics/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAM/C,eAAO,MAAM,eAAe,EAAE,IAAI,EA8hCjC,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAE5D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,CAO3D"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA4I/C,eAAO,MAAM,eAAe,EAAE,IAAI,EA65CjC,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAE5D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,CAO3D"}