@claude-flow/plugin-perf-optimizer 3.0.0-alpha.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.
@@ -0,0 +1,675 @@
1
+ /**
2
+ * Performance Optimizer Plugin - Type Definitions
3
+ *
4
+ * Types for bottleneck detection, memory analysis, query optimization,
5
+ * bundle optimization, and configuration tuning.
6
+ */
7
+ import { z } from 'zod';
8
+ export interface MCPToolInputSchema {
9
+ type: 'object';
10
+ properties: Record<string, unknown>;
11
+ required?: string[];
12
+ }
13
+ export interface MCPToolResult {
14
+ content: Array<{
15
+ type: 'text' | 'image' | 'resource';
16
+ text?: string;
17
+ data?: string;
18
+ mimeType?: string;
19
+ }>;
20
+ isError?: boolean;
21
+ }
22
+ export interface MCPTool {
23
+ name: string;
24
+ description: string;
25
+ inputSchema: MCPToolInputSchema;
26
+ category?: string;
27
+ tags?: string[];
28
+ version?: string;
29
+ cacheable?: boolean;
30
+ cacheTTL?: number;
31
+ handler: (input: Record<string, unknown>, context?: ToolContext) => Promise<MCPToolResult>;
32
+ }
33
+ export interface ToolContext {
34
+ sparseBridge?: SparseBridgeInterface;
35
+ fpgaBridge?: FpgaBridgeInterface;
36
+ config?: PerfOptimizerConfig;
37
+ logger?: Logger;
38
+ }
39
+ export interface Logger {
40
+ debug(message: string, meta?: Record<string, unknown>): void;
41
+ info(message: string, meta?: Record<string, unknown>): void;
42
+ warn(message: string, meta?: Record<string, unknown>): void;
43
+ error(message: string, meta?: Record<string, unknown>): void;
44
+ }
45
+ export interface PerfOptimizerConfig {
46
+ bottleneck: {
47
+ latencyThresholdMs: number;
48
+ errorRateThreshold: number;
49
+ cpuThreshold: number;
50
+ memoryThreshold: number;
51
+ };
52
+ memory: {
53
+ leakThresholdMb: number;
54
+ gcPressureThreshold: number;
55
+ maxHeapSize: number;
56
+ };
57
+ query: {
58
+ slowQueryThresholdMs: number;
59
+ maxResultSize: number;
60
+ indexSuggestionEnabled: boolean;
61
+ };
62
+ bundle: {
63
+ maxSizeKb: number;
64
+ treeshakingEnabled: boolean;
65
+ codeSplittingEnabled: boolean;
66
+ };
67
+ }
68
+ export declare const DEFAULT_CONFIG: PerfOptimizerConfig;
69
+ /**
70
+ * Span from distributed trace
71
+ */
72
+ export interface TraceSpan {
73
+ traceId: string;
74
+ spanId: string;
75
+ parentSpanId?: string;
76
+ operationName: string;
77
+ serviceName: string;
78
+ startTime: number;
79
+ duration: number;
80
+ status: 'ok' | 'error' | 'timeout';
81
+ attributes: Record<string, unknown>;
82
+ events?: SpanEvent[];
83
+ }
84
+ /**
85
+ * Span event
86
+ */
87
+ export interface SpanEvent {
88
+ name: string;
89
+ timestamp: number;
90
+ attributes?: Record<string, unknown>;
91
+ }
92
+ /**
93
+ * Trace data container
94
+ */
95
+ export interface TraceData {
96
+ format: 'otlp' | 'chrome_devtools' | 'jaeger' | 'zipkin';
97
+ spans: TraceSpan[];
98
+ metrics?: Record<string, number>;
99
+ }
100
+ /**
101
+ * Bottleneck detection result
102
+ */
103
+ export interface Bottleneck {
104
+ id: string;
105
+ type: BottleneckType;
106
+ severity: 'critical' | 'high' | 'medium' | 'low';
107
+ location: string;
108
+ description: string;
109
+ impact: {
110
+ latencyMs: number;
111
+ throughput: number;
112
+ errorRate: number;
113
+ };
114
+ suggestedFix: string;
115
+ relatedSpans: string[];
116
+ }
117
+ export type BottleneckType = 'cpu' | 'memory' | 'io' | 'network' | 'database' | 'render' | 'lock_contention' | 'gc_pressure';
118
+ /**
119
+ * Heap snapshot summary
120
+ */
121
+ export interface HeapSnapshot {
122
+ totalSize: number;
123
+ usedSize: number;
124
+ objects: HeapObject[];
125
+ retainers: RetainerPath[];
126
+ }
127
+ /**
128
+ * Heap object
129
+ */
130
+ export interface HeapObject {
131
+ name: string;
132
+ type: string;
133
+ size: number;
134
+ count: number;
135
+ shallowSize: number;
136
+ retainedSize: number;
137
+ }
138
+ /**
139
+ * Retainer path for memory leak detection
140
+ */
141
+ export interface RetainerPath {
142
+ object: string;
143
+ path: string[];
144
+ retainedSize: number;
145
+ distance: number;
146
+ }
147
+ /**
148
+ * Memory timeline point
149
+ */
150
+ export interface MemoryTimelinePoint {
151
+ timestamp: number;
152
+ heapUsed: number;
153
+ heapTotal: number;
154
+ external: number;
155
+ arrayBuffers: number;
156
+ }
157
+ /**
158
+ * Memory leak detection result
159
+ */
160
+ export interface MemoryLeak {
161
+ id: string;
162
+ type: MemoryLeakType;
163
+ severity: 'critical' | 'high' | 'medium' | 'low';
164
+ object: string;
165
+ retainedSize: number;
166
+ growthRate: number;
167
+ retainerPath: string[];
168
+ suggestedFix: string;
169
+ }
170
+ export type MemoryLeakType = 'detached_dom' | 'closure_leak' | 'event_listener' | 'timer_leak' | 'global_variable' | 'cache_unbounded';
171
+ /**
172
+ * Database query info
173
+ */
174
+ export interface QueryInfo {
175
+ sql: string;
176
+ duration: number;
177
+ stackTrace?: string;
178
+ resultSize?: number;
179
+ explain?: QueryExplainPlan;
180
+ }
181
+ /**
182
+ * Query explain plan
183
+ */
184
+ export interface QueryExplainPlan {
185
+ type: string;
186
+ table: string;
187
+ rows: number;
188
+ filtered: number;
189
+ extra?: string;
190
+ key?: string;
191
+ possibleKeys?: string[];
192
+ }
193
+ /**
194
+ * Query pattern detection
195
+ */
196
+ export interface QueryPattern {
197
+ id: string;
198
+ type: QueryPatternType;
199
+ severity: 'critical' | 'high' | 'medium' | 'low';
200
+ queries: string[];
201
+ count: number;
202
+ totalDuration: number;
203
+ suggestedFix: string;
204
+ suggestedIndex?: IndexSuggestion;
205
+ }
206
+ export type QueryPatternType = 'n_plus_1' | 'missing_index' | 'full_scan' | 'large_result' | 'slow_join' | 'duplicate_query';
207
+ /**
208
+ * Index suggestion
209
+ */
210
+ export interface IndexSuggestion {
211
+ table: string;
212
+ columns: string[];
213
+ type: 'btree' | 'hash' | 'gin' | 'gist';
214
+ estimatedImprovement: number;
215
+ createStatement: string;
216
+ }
217
+ /**
218
+ * Bundle stats
219
+ */
220
+ export interface BundleStats {
221
+ totalSize: number;
222
+ chunks: BundleChunk[];
223
+ modules: BundleModule[];
224
+ assets: BundleAsset[];
225
+ }
226
+ /**
227
+ * Bundle chunk
228
+ */
229
+ export interface BundleChunk {
230
+ name: string;
231
+ size: number;
232
+ modules: string[];
233
+ initial: boolean;
234
+ entry: boolean;
235
+ }
236
+ /**
237
+ * Bundle module
238
+ */
239
+ export interface BundleModule {
240
+ name: string;
241
+ size: number;
242
+ chunks: string[];
243
+ issuers: string[];
244
+ reasons: string[];
245
+ usedExports?: string[];
246
+ providedExports?: string[];
247
+ }
248
+ /**
249
+ * Bundle asset
250
+ */
251
+ export interface BundleAsset {
252
+ name: string;
253
+ size: number;
254
+ chunks: string[];
255
+ }
256
+ /**
257
+ * Bundle optimization suggestion
258
+ */
259
+ export interface BundleOptimization {
260
+ id: string;
261
+ type: BundleOptimizationType;
262
+ severity: 'critical' | 'high' | 'medium' | 'low';
263
+ target: string;
264
+ currentSize: number;
265
+ potentialSavings: number;
266
+ description: string;
267
+ suggestedFix: string;
268
+ }
269
+ export type BundleOptimizationType = 'tree_shaking' | 'code_splitting' | 'duplicate_deps' | 'large_modules' | 'dynamic_import' | 'polyfill_reduction';
270
+ /**
271
+ * Workload profile
272
+ */
273
+ export interface WorkloadProfile {
274
+ type: 'web' | 'api' | 'batch' | 'stream' | 'hybrid';
275
+ metrics: {
276
+ requestsPerSecond: number;
277
+ avgResponseTime: number;
278
+ errorRate: number;
279
+ concurrency: number;
280
+ };
281
+ constraints: {
282
+ maxLatency?: number;
283
+ maxMemory?: number;
284
+ maxCpu?: number;
285
+ maxCost?: number;
286
+ };
287
+ }
288
+ /**
289
+ * Configuration parameter
290
+ */
291
+ export interface ConfigParameter {
292
+ name: string;
293
+ type: 'number' | 'boolean' | 'string' | 'enum';
294
+ current: unknown;
295
+ suggested: unknown;
296
+ range?: [number, number];
297
+ options?: string[];
298
+ impact: number;
299
+ confidence: number;
300
+ }
301
+ /**
302
+ * Configuration optimization result
303
+ */
304
+ export interface ConfigOptimization {
305
+ parameters: ConfigParameter[];
306
+ objective: 'latency' | 'throughput' | 'cost' | 'balanced';
307
+ predictedImprovement: {
308
+ latency: number;
309
+ throughput: number;
310
+ cost: number;
311
+ };
312
+ confidence: number;
313
+ warnings: string[];
314
+ }
315
+ export declare const BottleneckDetectInputSchema: z.ZodObject<{
316
+ traceData: z.ZodObject<{
317
+ format: z.ZodEnum<["otlp", "chrome_devtools", "jaeger", "zipkin"]>;
318
+ spans: z.ZodArray<z.ZodUnknown, "many">;
319
+ metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
320
+ }, "strip", z.ZodTypeAny, {
321
+ format: "otlp" | "chrome_devtools" | "jaeger" | "zipkin";
322
+ spans: unknown[];
323
+ metrics?: Record<string, unknown> | undefined;
324
+ }, {
325
+ format: "otlp" | "chrome_devtools" | "jaeger" | "zipkin";
326
+ spans: unknown[];
327
+ metrics?: Record<string, unknown> | undefined;
328
+ }>;
329
+ analysisScope: z.ZodDefault<z.ZodArray<z.ZodEnum<["cpu", "memory", "io", "network", "database", "render", "all"]>, "many">>;
330
+ threshold: z.ZodOptional<z.ZodObject<{
331
+ latencyP95: z.ZodOptional<z.ZodNumber>;
332
+ throughput: z.ZodOptional<z.ZodNumber>;
333
+ errorRate: z.ZodOptional<z.ZodNumber>;
334
+ }, "strip", z.ZodTypeAny, {
335
+ throughput?: number | undefined;
336
+ latencyP95?: number | undefined;
337
+ errorRate?: number | undefined;
338
+ }, {
339
+ throughput?: number | undefined;
340
+ latencyP95?: number | undefined;
341
+ errorRate?: number | undefined;
342
+ }>>;
343
+ }, "strip", z.ZodTypeAny, {
344
+ traceData: {
345
+ format: "otlp" | "chrome_devtools" | "jaeger" | "zipkin";
346
+ spans: unknown[];
347
+ metrics?: Record<string, unknown> | undefined;
348
+ };
349
+ analysisScope: ("cpu" | "memory" | "io" | "network" | "database" | "render" | "all")[];
350
+ threshold?: {
351
+ throughput?: number | undefined;
352
+ latencyP95?: number | undefined;
353
+ errorRate?: number | undefined;
354
+ } | undefined;
355
+ }, {
356
+ traceData: {
357
+ format: "otlp" | "chrome_devtools" | "jaeger" | "zipkin";
358
+ spans: unknown[];
359
+ metrics?: Record<string, unknown> | undefined;
360
+ };
361
+ analysisScope?: ("cpu" | "memory" | "io" | "network" | "database" | "render" | "all")[] | undefined;
362
+ threshold?: {
363
+ throughput?: number | undefined;
364
+ latencyP95?: number | undefined;
365
+ errorRate?: number | undefined;
366
+ } | undefined;
367
+ }>;
368
+ export type BottleneckDetectInput = z.infer<typeof BottleneckDetectInputSchema>;
369
+ export declare const MemoryAnalyzeInputSchema: z.ZodObject<{
370
+ heapSnapshot: z.ZodOptional<z.ZodString>;
371
+ timeline: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
372
+ analysis: z.ZodOptional<z.ZodArray<z.ZodEnum<["leak_detection", "retention_analysis", "allocation_hotspots", "gc_pressure"]>, "many">>;
373
+ compareBaseline: z.ZodOptional<z.ZodString>;
374
+ }, "strip", z.ZodTypeAny, {
375
+ heapSnapshot?: string | undefined;
376
+ timeline?: unknown[] | undefined;
377
+ analysis?: ("gc_pressure" | "leak_detection" | "retention_analysis" | "allocation_hotspots")[] | undefined;
378
+ compareBaseline?: string | undefined;
379
+ }, {
380
+ heapSnapshot?: string | undefined;
381
+ timeline?: unknown[] | undefined;
382
+ analysis?: ("gc_pressure" | "leak_detection" | "retention_analysis" | "allocation_hotspots")[] | undefined;
383
+ compareBaseline?: string | undefined;
384
+ }>;
385
+ export type MemoryAnalyzeInput = z.infer<typeof MemoryAnalyzeInputSchema>;
386
+ export declare const QueryOptimizeInputSchema: z.ZodObject<{
387
+ queries: z.ZodArray<z.ZodObject<{
388
+ sql: z.ZodString;
389
+ duration: z.ZodNumber;
390
+ stackTrace: z.ZodOptional<z.ZodString>;
391
+ resultSize: z.ZodOptional<z.ZodNumber>;
392
+ }, "strip", z.ZodTypeAny, {
393
+ sql: string;
394
+ duration: number;
395
+ stackTrace?: string | undefined;
396
+ resultSize?: number | undefined;
397
+ }, {
398
+ sql: string;
399
+ duration: number;
400
+ stackTrace?: string | undefined;
401
+ resultSize?: number | undefined;
402
+ }>, "many">;
403
+ patterns: z.ZodOptional<z.ZodArray<z.ZodEnum<["n_plus_1", "missing_index", "full_scan", "large_result", "slow_join"]>, "many">>;
404
+ suggestIndexes: z.ZodDefault<z.ZodBoolean>;
405
+ }, "strip", z.ZodTypeAny, {
406
+ queries: {
407
+ sql: string;
408
+ duration: number;
409
+ stackTrace?: string | undefined;
410
+ resultSize?: number | undefined;
411
+ }[];
412
+ suggestIndexes: boolean;
413
+ patterns?: ("n_plus_1" | "missing_index" | "full_scan" | "large_result" | "slow_join")[] | undefined;
414
+ }, {
415
+ queries: {
416
+ sql: string;
417
+ duration: number;
418
+ stackTrace?: string | undefined;
419
+ resultSize?: number | undefined;
420
+ }[];
421
+ patterns?: ("n_plus_1" | "missing_index" | "full_scan" | "large_result" | "slow_join")[] | undefined;
422
+ suggestIndexes?: boolean | undefined;
423
+ }>;
424
+ export type QueryOptimizeInput = z.infer<typeof QueryOptimizeInputSchema>;
425
+ export declare const BundleOptimizeInputSchema: z.ZodObject<{
426
+ bundleStats: z.ZodString;
427
+ analysis: z.ZodOptional<z.ZodArray<z.ZodEnum<["tree_shaking", "code_splitting", "duplicate_deps", "large_modules", "dynamic_import"]>, "many">>;
428
+ targets: z.ZodOptional<z.ZodObject<{
429
+ maxSize: z.ZodOptional<z.ZodNumber>;
430
+ maxChunks: z.ZodOptional<z.ZodNumber>;
431
+ }, "strip", z.ZodTypeAny, {
432
+ maxSize?: number | undefined;
433
+ maxChunks?: number | undefined;
434
+ }, {
435
+ maxSize?: number | undefined;
436
+ maxChunks?: number | undefined;
437
+ }>>;
438
+ }, "strip", z.ZodTypeAny, {
439
+ bundleStats: string;
440
+ analysis?: ("tree_shaking" | "code_splitting" | "duplicate_deps" | "large_modules" | "dynamic_import")[] | undefined;
441
+ targets?: {
442
+ maxSize?: number | undefined;
443
+ maxChunks?: number | undefined;
444
+ } | undefined;
445
+ }, {
446
+ bundleStats: string;
447
+ analysis?: ("tree_shaking" | "code_splitting" | "duplicate_deps" | "large_modules" | "dynamic_import")[] | undefined;
448
+ targets?: {
449
+ maxSize?: number | undefined;
450
+ maxChunks?: number | undefined;
451
+ } | undefined;
452
+ }>;
453
+ export type BundleOptimizeInput = z.infer<typeof BundleOptimizeInputSchema>;
454
+ export declare const ConfigOptimizeInputSchema: z.ZodObject<{
455
+ workloadProfile: z.ZodObject<{
456
+ type: z.ZodEnum<["web", "api", "batch", "stream", "hybrid"]>;
457
+ metrics: z.ZodOptional<z.ZodObject<{
458
+ requestsPerSecond: z.ZodOptional<z.ZodNumber>;
459
+ avgResponseTime: z.ZodOptional<z.ZodNumber>;
460
+ errorRate: z.ZodOptional<z.ZodNumber>;
461
+ concurrency: z.ZodOptional<z.ZodNumber>;
462
+ }, "strip", z.ZodTypeAny, {
463
+ errorRate?: number | undefined;
464
+ requestsPerSecond?: number | undefined;
465
+ avgResponseTime?: number | undefined;
466
+ concurrency?: number | undefined;
467
+ }, {
468
+ errorRate?: number | undefined;
469
+ requestsPerSecond?: number | undefined;
470
+ avgResponseTime?: number | undefined;
471
+ concurrency?: number | undefined;
472
+ }>>;
473
+ constraints: z.ZodOptional<z.ZodObject<{
474
+ maxLatency: z.ZodOptional<z.ZodNumber>;
475
+ maxMemory: z.ZodOptional<z.ZodNumber>;
476
+ maxCpu: z.ZodOptional<z.ZodNumber>;
477
+ maxCost: z.ZodOptional<z.ZodNumber>;
478
+ }, "strip", z.ZodTypeAny, {
479
+ maxLatency?: number | undefined;
480
+ maxMemory?: number | undefined;
481
+ maxCpu?: number | undefined;
482
+ maxCost?: number | undefined;
483
+ }, {
484
+ maxLatency?: number | undefined;
485
+ maxMemory?: number | undefined;
486
+ maxCpu?: number | undefined;
487
+ maxCost?: number | undefined;
488
+ }>>;
489
+ }, "strip", z.ZodTypeAny, {
490
+ type: "web" | "api" | "batch" | "stream" | "hybrid";
491
+ metrics?: {
492
+ errorRate?: number | undefined;
493
+ requestsPerSecond?: number | undefined;
494
+ avgResponseTime?: number | undefined;
495
+ concurrency?: number | undefined;
496
+ } | undefined;
497
+ constraints?: {
498
+ maxLatency?: number | undefined;
499
+ maxMemory?: number | undefined;
500
+ maxCpu?: number | undefined;
501
+ maxCost?: number | undefined;
502
+ } | undefined;
503
+ }, {
504
+ type: "web" | "api" | "batch" | "stream" | "hybrid";
505
+ metrics?: {
506
+ errorRate?: number | undefined;
507
+ requestsPerSecond?: number | undefined;
508
+ avgResponseTime?: number | undefined;
509
+ concurrency?: number | undefined;
510
+ } | undefined;
511
+ constraints?: {
512
+ maxLatency?: number | undefined;
513
+ maxMemory?: number | undefined;
514
+ maxCpu?: number | undefined;
515
+ maxCost?: number | undefined;
516
+ } | undefined;
517
+ }>;
518
+ configSpace: z.ZodRecord<z.ZodString, z.ZodObject<{
519
+ type: z.ZodString;
520
+ range: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
521
+ current: z.ZodUnknown;
522
+ }, "strip", z.ZodTypeAny, {
523
+ type: string;
524
+ range?: unknown[] | undefined;
525
+ current?: unknown;
526
+ }, {
527
+ type: string;
528
+ range?: unknown[] | undefined;
529
+ current?: unknown;
530
+ }>>;
531
+ objective: z.ZodEnum<["latency", "throughput", "cost", "balanced"]>;
532
+ }, "strip", z.ZodTypeAny, {
533
+ workloadProfile: {
534
+ type: "web" | "api" | "batch" | "stream" | "hybrid";
535
+ metrics?: {
536
+ errorRate?: number | undefined;
537
+ requestsPerSecond?: number | undefined;
538
+ avgResponseTime?: number | undefined;
539
+ concurrency?: number | undefined;
540
+ } | undefined;
541
+ constraints?: {
542
+ maxLatency?: number | undefined;
543
+ maxMemory?: number | undefined;
544
+ maxCpu?: number | undefined;
545
+ maxCost?: number | undefined;
546
+ } | undefined;
547
+ };
548
+ configSpace: Record<string, {
549
+ type: string;
550
+ range?: unknown[] | undefined;
551
+ current?: unknown;
552
+ }>;
553
+ objective: "latency" | "throughput" | "cost" | "balanced";
554
+ }, {
555
+ workloadProfile: {
556
+ type: "web" | "api" | "batch" | "stream" | "hybrid";
557
+ metrics?: {
558
+ errorRate?: number | undefined;
559
+ requestsPerSecond?: number | undefined;
560
+ avgResponseTime?: number | undefined;
561
+ concurrency?: number | undefined;
562
+ } | undefined;
563
+ constraints?: {
564
+ maxLatency?: number | undefined;
565
+ maxMemory?: number | undefined;
566
+ maxCpu?: number | undefined;
567
+ maxCost?: number | undefined;
568
+ } | undefined;
569
+ };
570
+ configSpace: Record<string, {
571
+ type: string;
572
+ range?: unknown[] | undefined;
573
+ current?: unknown;
574
+ }>;
575
+ objective: "latency" | "throughput" | "cost" | "balanced";
576
+ }>;
577
+ export type ConfigOptimizeInput = z.infer<typeof ConfigOptimizeInputSchema>;
578
+ export interface BottleneckDetectOutput {
579
+ bottlenecks: Bottleneck[];
580
+ criticalPath: string[];
581
+ overallScore: number;
582
+ details: {
583
+ spanCount: number;
584
+ analysisScope: string[];
585
+ p50Latency: number;
586
+ p95Latency: number;
587
+ p99Latency: number;
588
+ errorRate: number;
589
+ interpretation: string;
590
+ };
591
+ }
592
+ export interface MemoryAnalyzeOutput {
593
+ leaks: MemoryLeak[];
594
+ hotspots: HeapObject[];
595
+ gcPressure: number;
596
+ details: {
597
+ heapUsed: number;
598
+ heapTotal: number;
599
+ objectCount: number;
600
+ analysisType: string[];
601
+ interpretation: string;
602
+ };
603
+ }
604
+ export interface QueryOptimizeOutput {
605
+ patterns: QueryPattern[];
606
+ optimizations: IndexSuggestion[];
607
+ totalQueries: number;
608
+ details: {
609
+ slowQueries: number;
610
+ nPlusOneCount: number;
611
+ missingIndexCount: number;
612
+ estimatedImprovement: number;
613
+ interpretation: string;
614
+ };
615
+ }
616
+ export interface BundleOptimizeOutput {
617
+ optimizations: BundleOptimization[];
618
+ totalSize: number;
619
+ potentialSavings: number;
620
+ details: {
621
+ chunkCount: number;
622
+ moduleCount: number;
623
+ duplicateDeps: string[];
624
+ largestModules: string[];
625
+ interpretation: string;
626
+ };
627
+ }
628
+ export interface ConfigOptimizeOutput {
629
+ recommendations: ConfigParameter[];
630
+ objective: string;
631
+ predictedImprovement: {
632
+ latency: number;
633
+ throughput: number;
634
+ cost: number;
635
+ };
636
+ details: {
637
+ parametersAnalyzed: number;
638
+ optimizationsFound: number;
639
+ confidence: number;
640
+ warnings: string[];
641
+ interpretation: string;
642
+ };
643
+ }
644
+ export interface SparseBridgeInterface {
645
+ readonly name: string;
646
+ readonly version: string;
647
+ init(): Promise<void>;
648
+ destroy(): Promise<void>;
649
+ isReady(): boolean;
650
+ encodeTraces(spans: TraceSpan[]): Promise<Float32Array>;
651
+ detectAnomalies(encoded: Float32Array, threshold: number): Promise<number[]>;
652
+ analyzeCriticalPath(encoded: Float32Array): Promise<string[]>;
653
+ }
654
+ export interface FpgaBridgeInterface {
655
+ readonly name: string;
656
+ readonly version: string;
657
+ init(): Promise<void>;
658
+ destroy(): Promise<void>;
659
+ isReady(): boolean;
660
+ optimizeConfig(workload: WorkloadProfile, configSpace: Record<string, unknown>): Promise<ConfigOptimization>;
661
+ predictPerformance(config: Record<string, unknown>, workload: WorkloadProfile): Promise<number>;
662
+ searchOptimalConfig(objective: string, constraints: Record<string, number>): Promise<Record<string, unknown>>;
663
+ }
664
+ export declare const PerfOptimizerErrorCodes: {
665
+ readonly BRIDGE_NOT_INITIALIZED: "PO_BRIDGE_NOT_INITIALIZED";
666
+ readonly INVALID_INPUT: "PO_INVALID_INPUT";
667
+ readonly TRACE_PARSE_ERROR: "PO_TRACE_PARSE_ERROR";
668
+ readonly ANALYSIS_FAILED: "PO_ANALYSIS_FAILED";
669
+ readonly TIMEOUT: "PO_TIMEOUT";
670
+ readonly RATE_LIMITED: "PO_RATE_LIMITED";
671
+ };
672
+ export type PerfOptimizerErrorCode = (typeof PerfOptimizerErrorCodes)[keyof typeof PerfOptimizerErrorCodes];
673
+ export declare function successResult(data: unknown): MCPToolResult;
674
+ export declare function errorResult(error: Error | string): MCPToolResult;
675
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}