trace-mcp 0.1.0 → 1.0.10
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.
- package/README.md +267 -172
- package/dist/cli.js +48577 -17626
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +570 -7
- package/dist/index.js +21389 -4742
- package/dist/index.js.map +1 -1
- package/hooks/trace-mcp-guard.sh +142 -0
- package/hooks/trace-mcp-reindex.sh +45 -0
- package/package.json +11 -3
package/dist/index.d.ts
CHANGED
|
@@ -139,11 +139,25 @@ interface FileParseResult {
|
|
|
139
139
|
warnings?: string[];
|
|
140
140
|
metadata?: Record<string, unknown>;
|
|
141
141
|
}
|
|
142
|
+
type PluginCategory = 'framework' | 'orm' | 'validation' | 'state' | 'api' | 'realtime' | 'testing' | 'tooling' | 'view';
|
|
142
143
|
interface PluginManifest {
|
|
143
144
|
name: string;
|
|
144
145
|
version: string;
|
|
145
146
|
priority: number;
|
|
146
147
|
dependencies?: string[];
|
|
148
|
+
category?: PluginCategory;
|
|
149
|
+
}
|
|
150
|
+
/** Detected runtime/language version from manifest files. */
|
|
151
|
+
interface DetectedVersion {
|
|
152
|
+
runtime: string;
|
|
153
|
+
version?: string;
|
|
154
|
+
source: string;
|
|
155
|
+
}
|
|
156
|
+
/** Parsed dependency entry from any manifest. */
|
|
157
|
+
interface ParsedDependency {
|
|
158
|
+
name: string;
|
|
159
|
+
version?: string;
|
|
160
|
+
dev?: boolean;
|
|
147
161
|
}
|
|
148
162
|
interface ProjectContext {
|
|
149
163
|
rootPath: string;
|
|
@@ -151,11 +165,35 @@ interface ProjectContext {
|
|
|
151
165
|
packageJson?: Record<string, unknown>;
|
|
152
166
|
pyprojectToml?: Record<string, unknown>;
|
|
153
167
|
requirementsTxt?: string[];
|
|
168
|
+
goMod?: {
|
|
169
|
+
module: string;
|
|
170
|
+
goVersion?: string;
|
|
171
|
+
deps: ParsedDependency[];
|
|
172
|
+
};
|
|
173
|
+
cargoToml?: {
|
|
174
|
+
package?: Record<string, unknown>;
|
|
175
|
+
deps: ParsedDependency[];
|
|
176
|
+
};
|
|
177
|
+
gemfile?: {
|
|
178
|
+
deps: ParsedDependency[];
|
|
179
|
+
};
|
|
180
|
+
pomXml?: {
|
|
181
|
+
groupId?: string;
|
|
182
|
+
artifactId?: string;
|
|
183
|
+
version?: string;
|
|
184
|
+
deps: ParsedDependency[];
|
|
185
|
+
};
|
|
186
|
+
buildGradle?: {
|
|
187
|
+
deps: ParsedDependency[];
|
|
188
|
+
};
|
|
189
|
+
detectedVersions: DetectedVersion[];
|
|
190
|
+
allDependencies: ParsedDependency[];
|
|
154
191
|
configFiles: string[];
|
|
155
192
|
}
|
|
156
193
|
interface LanguagePlugin {
|
|
157
194
|
manifest: PluginManifest;
|
|
158
195
|
supportedExtensions: string[];
|
|
196
|
+
supportedVersions?: string[];
|
|
159
197
|
extractSymbols(filePath: string, content: Buffer): TraceMcpResult<FileParseResult>;
|
|
160
198
|
}
|
|
161
199
|
interface FrameworkPlugin {
|
|
@@ -199,6 +237,7 @@ interface ResolveContext {
|
|
|
199
237
|
declare class Store {
|
|
200
238
|
readonly db: Database.Database;
|
|
201
239
|
constructor(db: Database.Database);
|
|
240
|
+
private readonly _stmts;
|
|
202
241
|
insertFile(path: string, language: string | null, contentHash: string | null, byteLength: number | null, workspace?: string | null): number;
|
|
203
242
|
getFile(path: string): FileRow | undefined;
|
|
204
243
|
getFileById(id: number): FileRow | undefined;
|
|
@@ -207,10 +246,11 @@ declare class Store {
|
|
|
207
246
|
getFilesByWorkspace(workspace: string): FileRow[];
|
|
208
247
|
updateFileHash(fileId: number, hash: string, byteLength: number): void;
|
|
209
248
|
updateFileStatus(fileId: number, status: string, frameworkRole?: string): void;
|
|
249
|
+
updateFileGitignored(fileId: number, gitignored: boolean): void;
|
|
210
250
|
deleteFile(fileId: number): void;
|
|
211
251
|
/** Delete routes, components, migrations, ORM models, and RN screens for a file (and their nodes). */
|
|
212
252
|
deleteEntitiesByFile(fileId: number): void;
|
|
213
|
-
insertSymbol(fileId: number, sym: RawSymbol): number;
|
|
253
|
+
insertSymbol(fileId: number, sym: RawSymbol, parentIdOverride?: number | null): number;
|
|
214
254
|
insertSymbols(fileId: number, symbols: RawSymbol[]): number[];
|
|
215
255
|
deleteSymbolsByFile(fileId: number): void;
|
|
216
256
|
getSymbolsByFile(fileId: number): SymbolRow[];
|
|
@@ -220,6 +260,9 @@ declare class Store {
|
|
|
220
260
|
getNodeId(nodeType: string, refId: number): number | undefined;
|
|
221
261
|
insertEdge(sourceNodeId: number, targetNodeId: number, edgeTypeName: string, resolved?: boolean, metadata?: Record<string, unknown>, isCrossWs?: boolean): TraceMcpResult<number>;
|
|
222
262
|
deleteEdgesForFileNodes(fileId: number): void;
|
|
263
|
+
/** Delete only outgoing edges from a file's nodes — used by incremental indexing
|
|
264
|
+
* to preserve incoming edges (e.g. imports from other files into this file). */
|
|
265
|
+
deleteOutgoingEdgesForFileNodes(fileId: number): void;
|
|
223
266
|
traverseEdges(startNodeId: number, direction: 'outgoing' | 'incoming', depth: number): EdgeRow[];
|
|
224
267
|
insertRoute(route: RawRoute, fileId: number): number;
|
|
225
268
|
insertComponent(comp: RawComponent, fileId: number): number;
|
|
@@ -326,7 +369,22 @@ declare class Store {
|
|
|
326
369
|
byte_start: number;
|
|
327
370
|
byte_end: number;
|
|
328
371
|
}[];
|
|
372
|
+
/** Get all distinct workspaces with file/symbol counts. */
|
|
373
|
+
getWorkspaceStats(): WorkspaceStats[];
|
|
374
|
+
/** Get all cross-workspace edges with resolved source/target workspace info. */
|
|
375
|
+
getCrossWorkspaceEdges(): CrossWorkspaceEdge[];
|
|
376
|
+
/** Get workspace dependency summary: which workspaces depend on which. */
|
|
377
|
+
getWorkspaceDependencyGraph(): WorkspaceDependency[];
|
|
378
|
+
/** Get symbols in a workspace that are used by other workspaces (public API surface). */
|
|
379
|
+
getWorkspaceExports(workspace: string): SymbolWithFilePath[];
|
|
329
380
|
getStats(): IndexStats;
|
|
381
|
+
insertGraphSnapshot(snapshotType: string, data: Record<string, unknown>, commitHash?: string, filePath?: string): number;
|
|
382
|
+
getGraphSnapshots(snapshotType: string, options?: {
|
|
383
|
+
filePath?: string;
|
|
384
|
+
since?: string;
|
|
385
|
+
limit?: number;
|
|
386
|
+
}): GraphSnapshotRow[];
|
|
387
|
+
pruneGraphSnapshots(maxAge?: number): number;
|
|
330
388
|
}
|
|
331
389
|
interface FileRow {
|
|
332
390
|
id: number;
|
|
@@ -339,6 +397,7 @@ interface FileRow {
|
|
|
339
397
|
indexed_at: string;
|
|
340
398
|
metadata: string | null;
|
|
341
399
|
workspace: string | null;
|
|
400
|
+
gitignored: number;
|
|
342
401
|
}
|
|
343
402
|
interface SymbolRow {
|
|
344
403
|
id: number;
|
|
@@ -445,6 +504,30 @@ interface EdgeTypeRow {
|
|
|
445
504
|
category: string;
|
|
446
505
|
description: string;
|
|
447
506
|
}
|
|
507
|
+
interface WorkspaceStats {
|
|
508
|
+
workspace: string;
|
|
509
|
+
file_count: number;
|
|
510
|
+
symbol_count: number;
|
|
511
|
+
languages: string | null;
|
|
512
|
+
}
|
|
513
|
+
interface CrossWorkspaceEdge {
|
|
514
|
+
id: number;
|
|
515
|
+
edge_type: string;
|
|
516
|
+
source_workspace: string | null;
|
|
517
|
+
source_path: string | null;
|
|
518
|
+
source_symbol: string | null;
|
|
519
|
+
source_kind: string | null;
|
|
520
|
+
target_workspace: string | null;
|
|
521
|
+
target_path: string | null;
|
|
522
|
+
target_symbol: string | null;
|
|
523
|
+
target_kind: string | null;
|
|
524
|
+
}
|
|
525
|
+
interface WorkspaceDependency {
|
|
526
|
+
from_workspace: string;
|
|
527
|
+
to_workspace: string;
|
|
528
|
+
edge_count: number;
|
|
529
|
+
edge_types: string;
|
|
530
|
+
}
|
|
448
531
|
interface IndexStats {
|
|
449
532
|
totalFiles: number;
|
|
450
533
|
totalSymbols: number;
|
|
@@ -456,24 +539,35 @@ interface IndexStats {
|
|
|
456
539
|
partialFiles: number;
|
|
457
540
|
errorFiles: number;
|
|
458
541
|
}
|
|
542
|
+
interface GraphSnapshotRow {
|
|
543
|
+
id: number;
|
|
544
|
+
commit_hash: string | null;
|
|
545
|
+
created_at: string;
|
|
546
|
+
snapshot_type: string;
|
|
547
|
+
file_path: string | null;
|
|
548
|
+
data: string;
|
|
549
|
+
}
|
|
459
550
|
|
|
460
551
|
declare class PluginRegistry {
|
|
461
552
|
private languagePlugins;
|
|
462
553
|
private frameworkPlugins;
|
|
554
|
+
private _extMap;
|
|
555
|
+
private _activeFrameworkCache;
|
|
463
556
|
registerLanguagePlugin(plugin: LanguagePlugin): void;
|
|
464
557
|
registerFrameworkPlugin(plugin: FrameworkPlugin): void;
|
|
465
558
|
getLanguagePlugins(): LanguagePlugin[];
|
|
466
559
|
getActiveFrameworkPlugins(ctx: ProjectContext): TraceMcpResult<FrameworkPlugin[]>;
|
|
560
|
+
/** Clear per-pipeline-run caches. Call at start of each indexing run. */
|
|
561
|
+
clearCaches(): void;
|
|
467
562
|
getAllFrameworkPlugins(): FrameworkPlugin[];
|
|
468
563
|
getLanguagePluginForFile(filePath: string): LanguagePlugin | undefined;
|
|
564
|
+
private getExtensionMap;
|
|
469
565
|
private sortByPriority;
|
|
470
566
|
private topologicalSort;
|
|
471
567
|
}
|
|
472
568
|
|
|
473
569
|
declare const TraceMcpConfigSchema: z.ZodObject<{
|
|
474
570
|
root: z.ZodDefault<z.ZodString>;
|
|
475
|
-
include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
476
|
-
exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
477
571
|
db: z.ZodDefault<z.ZodObject<{
|
|
478
572
|
path: z.ZodDefault<z.ZodString>;
|
|
479
573
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -481,6 +575,8 @@ declare const TraceMcpConfigSchema: z.ZodObject<{
|
|
|
481
575
|
}, {
|
|
482
576
|
path?: string | undefined;
|
|
483
577
|
}>>;
|
|
578
|
+
include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
579
|
+
exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
484
580
|
frameworks: z.ZodOptional<z.ZodObject<{
|
|
485
581
|
laravel: z.ZodOptional<z.ZodObject<{
|
|
486
582
|
artisan: z.ZodOptional<z.ZodObject<{
|
|
@@ -568,20 +664,338 @@ declare const TraceMcpConfigSchema: z.ZodObject<{
|
|
|
568
664
|
security: z.ZodOptional<z.ZodObject<{
|
|
569
665
|
secret_patterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
570
666
|
max_file_size_bytes: z.ZodOptional<z.ZodNumber>;
|
|
667
|
+
max_files: z.ZodOptional<z.ZodNumber>;
|
|
571
668
|
}, "strip", z.ZodTypeAny, {
|
|
572
669
|
secret_patterns?: string[] | undefined;
|
|
573
670
|
max_file_size_bytes?: number | undefined;
|
|
671
|
+
max_files?: number | undefined;
|
|
574
672
|
}, {
|
|
575
673
|
secret_patterns?: string[] | undefined;
|
|
576
674
|
max_file_size_bytes?: number | undefined;
|
|
675
|
+
max_files?: number | undefined;
|
|
676
|
+
}>>;
|
|
677
|
+
predictive: z.ZodOptional<z.ZodObject<{
|
|
678
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
679
|
+
weights: z.ZodDefault<z.ZodObject<{
|
|
680
|
+
bug: z.ZodDefault<z.ZodObject<{
|
|
681
|
+
churn: z.ZodDefault<z.ZodNumber>;
|
|
682
|
+
fix_ratio: z.ZodDefault<z.ZodNumber>;
|
|
683
|
+
complexity: z.ZodDefault<z.ZodNumber>;
|
|
684
|
+
coupling: z.ZodDefault<z.ZodNumber>;
|
|
685
|
+
pagerank: z.ZodDefault<z.ZodNumber>;
|
|
686
|
+
authors: z.ZodDefault<z.ZodNumber>;
|
|
687
|
+
}, "strip", z.ZodTypeAny, {
|
|
688
|
+
churn: number;
|
|
689
|
+
fix_ratio: number;
|
|
690
|
+
complexity: number;
|
|
691
|
+
coupling: number;
|
|
692
|
+
pagerank: number;
|
|
693
|
+
authors: number;
|
|
694
|
+
}, {
|
|
695
|
+
churn?: number | undefined;
|
|
696
|
+
fix_ratio?: number | undefined;
|
|
697
|
+
complexity?: number | undefined;
|
|
698
|
+
coupling?: number | undefined;
|
|
699
|
+
pagerank?: number | undefined;
|
|
700
|
+
authors?: number | undefined;
|
|
701
|
+
}>>;
|
|
702
|
+
tech_debt: z.ZodDefault<z.ZodObject<{
|
|
703
|
+
complexity: z.ZodDefault<z.ZodNumber>;
|
|
704
|
+
coupling: z.ZodDefault<z.ZodNumber>;
|
|
705
|
+
test_gap: z.ZodDefault<z.ZodNumber>;
|
|
706
|
+
churn: z.ZodDefault<z.ZodNumber>;
|
|
707
|
+
}, "strip", z.ZodTypeAny, {
|
|
708
|
+
churn: number;
|
|
709
|
+
complexity: number;
|
|
710
|
+
coupling: number;
|
|
711
|
+
test_gap: number;
|
|
712
|
+
}, {
|
|
713
|
+
churn?: number | undefined;
|
|
714
|
+
complexity?: number | undefined;
|
|
715
|
+
coupling?: number | undefined;
|
|
716
|
+
test_gap?: number | undefined;
|
|
717
|
+
}>>;
|
|
718
|
+
change_risk: z.ZodDefault<z.ZodObject<{
|
|
719
|
+
blast_radius: z.ZodDefault<z.ZodNumber>;
|
|
720
|
+
complexity: z.ZodDefault<z.ZodNumber>;
|
|
721
|
+
churn: z.ZodDefault<z.ZodNumber>;
|
|
722
|
+
test_gap: z.ZodDefault<z.ZodNumber>;
|
|
723
|
+
coupling: z.ZodDefault<z.ZodNumber>;
|
|
724
|
+
}, "strip", z.ZodTypeAny, {
|
|
725
|
+
churn: number;
|
|
726
|
+
complexity: number;
|
|
727
|
+
coupling: number;
|
|
728
|
+
test_gap: number;
|
|
729
|
+
blast_radius: number;
|
|
730
|
+
}, {
|
|
731
|
+
churn?: number | undefined;
|
|
732
|
+
complexity?: number | undefined;
|
|
733
|
+
coupling?: number | undefined;
|
|
734
|
+
test_gap?: number | undefined;
|
|
735
|
+
blast_radius?: number | undefined;
|
|
736
|
+
}>>;
|
|
737
|
+
}, "strip", z.ZodTypeAny, {
|
|
738
|
+
bug: {
|
|
739
|
+
churn: number;
|
|
740
|
+
fix_ratio: number;
|
|
741
|
+
complexity: number;
|
|
742
|
+
coupling: number;
|
|
743
|
+
pagerank: number;
|
|
744
|
+
authors: number;
|
|
745
|
+
};
|
|
746
|
+
tech_debt: {
|
|
747
|
+
churn: number;
|
|
748
|
+
complexity: number;
|
|
749
|
+
coupling: number;
|
|
750
|
+
test_gap: number;
|
|
751
|
+
};
|
|
752
|
+
change_risk: {
|
|
753
|
+
churn: number;
|
|
754
|
+
complexity: number;
|
|
755
|
+
coupling: number;
|
|
756
|
+
test_gap: number;
|
|
757
|
+
blast_radius: number;
|
|
758
|
+
};
|
|
759
|
+
}, {
|
|
760
|
+
bug?: {
|
|
761
|
+
churn?: number | undefined;
|
|
762
|
+
fix_ratio?: number | undefined;
|
|
763
|
+
complexity?: number | undefined;
|
|
764
|
+
coupling?: number | undefined;
|
|
765
|
+
pagerank?: number | undefined;
|
|
766
|
+
authors?: number | undefined;
|
|
767
|
+
} | undefined;
|
|
768
|
+
tech_debt?: {
|
|
769
|
+
churn?: number | undefined;
|
|
770
|
+
complexity?: number | undefined;
|
|
771
|
+
coupling?: number | undefined;
|
|
772
|
+
test_gap?: number | undefined;
|
|
773
|
+
} | undefined;
|
|
774
|
+
change_risk?: {
|
|
775
|
+
churn?: number | undefined;
|
|
776
|
+
complexity?: number | undefined;
|
|
777
|
+
coupling?: number | undefined;
|
|
778
|
+
test_gap?: number | undefined;
|
|
779
|
+
blast_radius?: number | undefined;
|
|
780
|
+
} | undefined;
|
|
781
|
+
}>>;
|
|
782
|
+
cache_ttl_minutes: z.ZodDefault<z.ZodNumber>;
|
|
783
|
+
git_since_days: z.ZodDefault<z.ZodNumber>;
|
|
784
|
+
module_depth: z.ZodDefault<z.ZodNumber>;
|
|
785
|
+
}, "strip", z.ZodTypeAny, {
|
|
786
|
+
enabled: boolean;
|
|
787
|
+
weights: {
|
|
788
|
+
bug: {
|
|
789
|
+
churn: number;
|
|
790
|
+
fix_ratio: number;
|
|
791
|
+
complexity: number;
|
|
792
|
+
coupling: number;
|
|
793
|
+
pagerank: number;
|
|
794
|
+
authors: number;
|
|
795
|
+
};
|
|
796
|
+
tech_debt: {
|
|
797
|
+
churn: number;
|
|
798
|
+
complexity: number;
|
|
799
|
+
coupling: number;
|
|
800
|
+
test_gap: number;
|
|
801
|
+
};
|
|
802
|
+
change_risk: {
|
|
803
|
+
churn: number;
|
|
804
|
+
complexity: number;
|
|
805
|
+
coupling: number;
|
|
806
|
+
test_gap: number;
|
|
807
|
+
blast_radius: number;
|
|
808
|
+
};
|
|
809
|
+
};
|
|
810
|
+
cache_ttl_minutes: number;
|
|
811
|
+
git_since_days: number;
|
|
812
|
+
module_depth: number;
|
|
813
|
+
}, {
|
|
814
|
+
enabled?: boolean | undefined;
|
|
815
|
+
weights?: {
|
|
816
|
+
bug?: {
|
|
817
|
+
churn?: number | undefined;
|
|
818
|
+
fix_ratio?: number | undefined;
|
|
819
|
+
complexity?: number | undefined;
|
|
820
|
+
coupling?: number | undefined;
|
|
821
|
+
pagerank?: number | undefined;
|
|
822
|
+
authors?: number | undefined;
|
|
823
|
+
} | undefined;
|
|
824
|
+
tech_debt?: {
|
|
825
|
+
churn?: number | undefined;
|
|
826
|
+
complexity?: number | undefined;
|
|
827
|
+
coupling?: number | undefined;
|
|
828
|
+
test_gap?: number | undefined;
|
|
829
|
+
} | undefined;
|
|
830
|
+
change_risk?: {
|
|
831
|
+
churn?: number | undefined;
|
|
832
|
+
complexity?: number | undefined;
|
|
833
|
+
coupling?: number | undefined;
|
|
834
|
+
test_gap?: number | undefined;
|
|
835
|
+
blast_radius?: number | undefined;
|
|
836
|
+
} | undefined;
|
|
837
|
+
} | undefined;
|
|
838
|
+
cache_ttl_minutes?: number | undefined;
|
|
839
|
+
git_since_days?: number | undefined;
|
|
840
|
+
module_depth?: number | undefined;
|
|
841
|
+
}>>;
|
|
842
|
+
intent: z.ZodOptional<z.ZodObject<{
|
|
843
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
844
|
+
domain_hints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
|
|
845
|
+
custom_domains: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
846
|
+
name: z.ZodString;
|
|
847
|
+
parent: z.ZodOptional<z.ZodString>;
|
|
848
|
+
description: z.ZodOptional<z.ZodString>;
|
|
849
|
+
path_patterns: z.ZodArray<z.ZodString, "many">;
|
|
850
|
+
}, "strip", z.ZodTypeAny, {
|
|
851
|
+
name: string;
|
|
852
|
+
path_patterns: string[];
|
|
853
|
+
parent?: string | undefined;
|
|
854
|
+
description?: string | undefined;
|
|
855
|
+
}, {
|
|
856
|
+
name: string;
|
|
857
|
+
path_patterns: string[];
|
|
858
|
+
parent?: string | undefined;
|
|
859
|
+
description?: string | undefined;
|
|
860
|
+
}>, "many">>;
|
|
861
|
+
auto_classify_on_index: z.ZodDefault<z.ZodBoolean>;
|
|
862
|
+
classify_batch_size: z.ZodDefault<z.ZodNumber>;
|
|
863
|
+
}, "strip", z.ZodTypeAny, {
|
|
864
|
+
enabled: boolean;
|
|
865
|
+
auto_classify_on_index: boolean;
|
|
866
|
+
classify_batch_size: number;
|
|
867
|
+
domain_hints?: Record<string, string[]> | undefined;
|
|
868
|
+
custom_domains?: {
|
|
869
|
+
name: string;
|
|
870
|
+
path_patterns: string[];
|
|
871
|
+
parent?: string | undefined;
|
|
872
|
+
description?: string | undefined;
|
|
873
|
+
}[] | undefined;
|
|
874
|
+
}, {
|
|
875
|
+
enabled?: boolean | undefined;
|
|
876
|
+
domain_hints?: Record<string, string[]> | undefined;
|
|
877
|
+
custom_domains?: {
|
|
878
|
+
name: string;
|
|
879
|
+
path_patterns: string[];
|
|
880
|
+
parent?: string | undefined;
|
|
881
|
+
description?: string | undefined;
|
|
882
|
+
}[] | undefined;
|
|
883
|
+
auto_classify_on_index?: boolean | undefined;
|
|
884
|
+
classify_batch_size?: number | undefined;
|
|
885
|
+
}>>;
|
|
886
|
+
runtime: z.ZodOptional<z.ZodObject<{
|
|
887
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
888
|
+
otlp: z.ZodDefault<z.ZodObject<{
|
|
889
|
+
port: z.ZodDefault<z.ZodNumber>;
|
|
890
|
+
host: z.ZodDefault<z.ZodString>;
|
|
891
|
+
max_body_bytes: z.ZodDefault<z.ZodNumber>;
|
|
892
|
+
}, "strip", z.ZodTypeAny, {
|
|
893
|
+
port: number;
|
|
894
|
+
host: string;
|
|
895
|
+
max_body_bytes: number;
|
|
896
|
+
}, {
|
|
897
|
+
port?: number | undefined;
|
|
898
|
+
host?: string | undefined;
|
|
899
|
+
max_body_bytes?: number | undefined;
|
|
900
|
+
}>>;
|
|
901
|
+
retention: z.ZodDefault<z.ZodObject<{
|
|
902
|
+
max_span_age_days: z.ZodDefault<z.ZodNumber>;
|
|
903
|
+
max_aggregate_age_days: z.ZodDefault<z.ZodNumber>;
|
|
904
|
+
prune_interval: z.ZodDefault<z.ZodNumber>;
|
|
905
|
+
}, "strip", z.ZodTypeAny, {
|
|
906
|
+
max_span_age_days: number;
|
|
907
|
+
max_aggregate_age_days: number;
|
|
908
|
+
prune_interval: number;
|
|
909
|
+
}, {
|
|
910
|
+
max_span_age_days?: number | undefined;
|
|
911
|
+
max_aggregate_age_days?: number | undefined;
|
|
912
|
+
prune_interval?: number | undefined;
|
|
913
|
+
}>>;
|
|
914
|
+
mapping: z.ZodDefault<z.ZodObject<{
|
|
915
|
+
fqn_attributes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
916
|
+
route_patterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
917
|
+
}, "strip", z.ZodTypeAny, {
|
|
918
|
+
fqn_attributes: string[];
|
|
919
|
+
route_patterns: string[];
|
|
920
|
+
}, {
|
|
921
|
+
fqn_attributes?: string[] | undefined;
|
|
922
|
+
route_patterns?: string[] | undefined;
|
|
923
|
+
}>>;
|
|
924
|
+
}, "strip", z.ZodTypeAny, {
|
|
925
|
+
enabled: boolean;
|
|
926
|
+
otlp: {
|
|
927
|
+
port: number;
|
|
928
|
+
host: string;
|
|
929
|
+
max_body_bytes: number;
|
|
930
|
+
};
|
|
931
|
+
retention: {
|
|
932
|
+
max_span_age_days: number;
|
|
933
|
+
max_aggregate_age_days: number;
|
|
934
|
+
prune_interval: number;
|
|
935
|
+
};
|
|
936
|
+
mapping: {
|
|
937
|
+
fqn_attributes: string[];
|
|
938
|
+
route_patterns: string[];
|
|
939
|
+
};
|
|
940
|
+
}, {
|
|
941
|
+
enabled?: boolean | undefined;
|
|
942
|
+
otlp?: {
|
|
943
|
+
port?: number | undefined;
|
|
944
|
+
host?: string | undefined;
|
|
945
|
+
max_body_bytes?: number | undefined;
|
|
946
|
+
} | undefined;
|
|
947
|
+
retention?: {
|
|
948
|
+
max_span_age_days?: number | undefined;
|
|
949
|
+
max_aggregate_age_days?: number | undefined;
|
|
950
|
+
prune_interval?: number | undefined;
|
|
951
|
+
} | undefined;
|
|
952
|
+
mapping?: {
|
|
953
|
+
fqn_attributes?: string[] | undefined;
|
|
954
|
+
route_patterns?: string[] | undefined;
|
|
955
|
+
} | undefined;
|
|
956
|
+
}>>;
|
|
957
|
+
topology: z.ZodOptional<z.ZodObject<{
|
|
958
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
959
|
+
repos: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
960
|
+
auto_detect: z.ZodDefault<z.ZodBoolean>;
|
|
961
|
+
auto_federation: z.ZodDefault<z.ZodBoolean>;
|
|
962
|
+
contract_globs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
963
|
+
}, "strip", z.ZodTypeAny, {
|
|
964
|
+
enabled: boolean;
|
|
965
|
+
repos: string[];
|
|
966
|
+
auto_detect: boolean;
|
|
967
|
+
auto_federation: boolean;
|
|
968
|
+
contract_globs?: string[] | undefined;
|
|
969
|
+
}, {
|
|
970
|
+
enabled?: boolean | undefined;
|
|
971
|
+
repos?: string[] | undefined;
|
|
972
|
+
auto_detect?: boolean | undefined;
|
|
973
|
+
auto_federation?: boolean | undefined;
|
|
974
|
+
contract_globs?: string[] | undefined;
|
|
975
|
+
}>>;
|
|
976
|
+
tools: z.ZodOptional<z.ZodObject<{
|
|
977
|
+
preset: z.ZodDefault<z.ZodString>;
|
|
978
|
+
include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
979
|
+
exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
980
|
+
descriptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
981
|
+
}, "strip", z.ZodTypeAny, {
|
|
982
|
+
preset: string;
|
|
983
|
+
include?: string[] | undefined;
|
|
984
|
+
exclude?: string[] | undefined;
|
|
985
|
+
descriptions?: Record<string, string> | undefined;
|
|
986
|
+
}, {
|
|
987
|
+
include?: string[] | undefined;
|
|
988
|
+
exclude?: string[] | undefined;
|
|
989
|
+
preset?: string | undefined;
|
|
990
|
+
descriptions?: Record<string, string> | undefined;
|
|
577
991
|
}>>;
|
|
578
992
|
}, "strip", z.ZodTypeAny, {
|
|
579
993
|
root: string;
|
|
580
|
-
include: string[];
|
|
581
|
-
exclude: string[];
|
|
582
994
|
db: {
|
|
583
995
|
path: string;
|
|
584
996
|
};
|
|
997
|
+
include: string[];
|
|
998
|
+
exclude: string[];
|
|
585
999
|
plugins: string[];
|
|
586
1000
|
frameworks?: {
|
|
587
1001
|
laravel?: {
|
|
@@ -609,14 +1023,86 @@ declare const TraceMcpConfigSchema: z.ZodObject<{
|
|
|
609
1023
|
security?: {
|
|
610
1024
|
secret_patterns?: string[] | undefined;
|
|
611
1025
|
max_file_size_bytes?: number | undefined;
|
|
1026
|
+
max_files?: number | undefined;
|
|
1027
|
+
} | undefined;
|
|
1028
|
+
predictive?: {
|
|
1029
|
+
enabled: boolean;
|
|
1030
|
+
weights: {
|
|
1031
|
+
bug: {
|
|
1032
|
+
churn: number;
|
|
1033
|
+
fix_ratio: number;
|
|
1034
|
+
complexity: number;
|
|
1035
|
+
coupling: number;
|
|
1036
|
+
pagerank: number;
|
|
1037
|
+
authors: number;
|
|
1038
|
+
};
|
|
1039
|
+
tech_debt: {
|
|
1040
|
+
churn: number;
|
|
1041
|
+
complexity: number;
|
|
1042
|
+
coupling: number;
|
|
1043
|
+
test_gap: number;
|
|
1044
|
+
};
|
|
1045
|
+
change_risk: {
|
|
1046
|
+
churn: number;
|
|
1047
|
+
complexity: number;
|
|
1048
|
+
coupling: number;
|
|
1049
|
+
test_gap: number;
|
|
1050
|
+
blast_radius: number;
|
|
1051
|
+
};
|
|
1052
|
+
};
|
|
1053
|
+
cache_ttl_minutes: number;
|
|
1054
|
+
git_since_days: number;
|
|
1055
|
+
module_depth: number;
|
|
1056
|
+
} | undefined;
|
|
1057
|
+
intent?: {
|
|
1058
|
+
enabled: boolean;
|
|
1059
|
+
auto_classify_on_index: boolean;
|
|
1060
|
+
classify_batch_size: number;
|
|
1061
|
+
domain_hints?: Record<string, string[]> | undefined;
|
|
1062
|
+
custom_domains?: {
|
|
1063
|
+
name: string;
|
|
1064
|
+
path_patterns: string[];
|
|
1065
|
+
parent?: string | undefined;
|
|
1066
|
+
description?: string | undefined;
|
|
1067
|
+
}[] | undefined;
|
|
1068
|
+
} | undefined;
|
|
1069
|
+
runtime?: {
|
|
1070
|
+
enabled: boolean;
|
|
1071
|
+
otlp: {
|
|
1072
|
+
port: number;
|
|
1073
|
+
host: string;
|
|
1074
|
+
max_body_bytes: number;
|
|
1075
|
+
};
|
|
1076
|
+
retention: {
|
|
1077
|
+
max_span_age_days: number;
|
|
1078
|
+
max_aggregate_age_days: number;
|
|
1079
|
+
prune_interval: number;
|
|
1080
|
+
};
|
|
1081
|
+
mapping: {
|
|
1082
|
+
fqn_attributes: string[];
|
|
1083
|
+
route_patterns: string[];
|
|
1084
|
+
};
|
|
1085
|
+
} | undefined;
|
|
1086
|
+
topology?: {
|
|
1087
|
+
enabled: boolean;
|
|
1088
|
+
repos: string[];
|
|
1089
|
+
auto_detect: boolean;
|
|
1090
|
+
auto_federation: boolean;
|
|
1091
|
+
contract_globs?: string[] | undefined;
|
|
1092
|
+
} | undefined;
|
|
1093
|
+
tools?: {
|
|
1094
|
+
preset: string;
|
|
1095
|
+
include?: string[] | undefined;
|
|
1096
|
+
exclude?: string[] | undefined;
|
|
1097
|
+
descriptions?: Record<string, string> | undefined;
|
|
612
1098
|
} | undefined;
|
|
613
1099
|
}, {
|
|
614
1100
|
root?: string | undefined;
|
|
615
|
-
include?: string[] | undefined;
|
|
616
|
-
exclude?: string[] | undefined;
|
|
617
1101
|
db?: {
|
|
618
1102
|
path?: string | undefined;
|
|
619
1103
|
} | undefined;
|
|
1104
|
+
include?: string[] | undefined;
|
|
1105
|
+
exclude?: string[] | undefined;
|
|
620
1106
|
frameworks?: {
|
|
621
1107
|
laravel?: {
|
|
622
1108
|
artisan?: {
|
|
@@ -644,9 +1130,86 @@ declare const TraceMcpConfigSchema: z.ZodObject<{
|
|
|
644
1130
|
security?: {
|
|
645
1131
|
secret_patterns?: string[] | undefined;
|
|
646
1132
|
max_file_size_bytes?: number | undefined;
|
|
1133
|
+
max_files?: number | undefined;
|
|
1134
|
+
} | undefined;
|
|
1135
|
+
predictive?: {
|
|
1136
|
+
enabled?: boolean | undefined;
|
|
1137
|
+
weights?: {
|
|
1138
|
+
bug?: {
|
|
1139
|
+
churn?: number | undefined;
|
|
1140
|
+
fix_ratio?: number | undefined;
|
|
1141
|
+
complexity?: number | undefined;
|
|
1142
|
+
coupling?: number | undefined;
|
|
1143
|
+
pagerank?: number | undefined;
|
|
1144
|
+
authors?: number | undefined;
|
|
1145
|
+
} | undefined;
|
|
1146
|
+
tech_debt?: {
|
|
1147
|
+
churn?: number | undefined;
|
|
1148
|
+
complexity?: number | undefined;
|
|
1149
|
+
coupling?: number | undefined;
|
|
1150
|
+
test_gap?: number | undefined;
|
|
1151
|
+
} | undefined;
|
|
1152
|
+
change_risk?: {
|
|
1153
|
+
churn?: number | undefined;
|
|
1154
|
+
complexity?: number | undefined;
|
|
1155
|
+
coupling?: number | undefined;
|
|
1156
|
+
test_gap?: number | undefined;
|
|
1157
|
+
blast_radius?: number | undefined;
|
|
1158
|
+
} | undefined;
|
|
1159
|
+
} | undefined;
|
|
1160
|
+
cache_ttl_minutes?: number | undefined;
|
|
1161
|
+
git_since_days?: number | undefined;
|
|
1162
|
+
module_depth?: number | undefined;
|
|
1163
|
+
} | undefined;
|
|
1164
|
+
intent?: {
|
|
1165
|
+
enabled?: boolean | undefined;
|
|
1166
|
+
domain_hints?: Record<string, string[]> | undefined;
|
|
1167
|
+
custom_domains?: {
|
|
1168
|
+
name: string;
|
|
1169
|
+
path_patterns: string[];
|
|
1170
|
+
parent?: string | undefined;
|
|
1171
|
+
description?: string | undefined;
|
|
1172
|
+
}[] | undefined;
|
|
1173
|
+
auto_classify_on_index?: boolean | undefined;
|
|
1174
|
+
classify_batch_size?: number | undefined;
|
|
1175
|
+
} | undefined;
|
|
1176
|
+
runtime?: {
|
|
1177
|
+
enabled?: boolean | undefined;
|
|
1178
|
+
otlp?: {
|
|
1179
|
+
port?: number | undefined;
|
|
1180
|
+
host?: string | undefined;
|
|
1181
|
+
max_body_bytes?: number | undefined;
|
|
1182
|
+
} | undefined;
|
|
1183
|
+
retention?: {
|
|
1184
|
+
max_span_age_days?: number | undefined;
|
|
1185
|
+
max_aggregate_age_days?: number | undefined;
|
|
1186
|
+
prune_interval?: number | undefined;
|
|
1187
|
+
} | undefined;
|
|
1188
|
+
mapping?: {
|
|
1189
|
+
fqn_attributes?: string[] | undefined;
|
|
1190
|
+
route_patterns?: string[] | undefined;
|
|
1191
|
+
} | undefined;
|
|
1192
|
+
} | undefined;
|
|
1193
|
+
topology?: {
|
|
1194
|
+
enabled?: boolean | undefined;
|
|
1195
|
+
repos?: string[] | undefined;
|
|
1196
|
+
auto_detect?: boolean | undefined;
|
|
1197
|
+
auto_federation?: boolean | undefined;
|
|
1198
|
+
contract_globs?: string[] | undefined;
|
|
1199
|
+
} | undefined;
|
|
1200
|
+
tools?: {
|
|
1201
|
+
include?: string[] | undefined;
|
|
1202
|
+
exclude?: string[] | undefined;
|
|
1203
|
+
preset?: string | undefined;
|
|
1204
|
+
descriptions?: Record<string, string> | undefined;
|
|
647
1205
|
} | undefined;
|
|
648
1206
|
}>;
|
|
649
1207
|
type TraceMcpConfig = z.infer<typeof TraceMcpConfigSchema>;
|
|
1208
|
+
/**
|
|
1209
|
+
* Load config for a project.
|
|
1210
|
+
* Merge order: global defaults → per-project overrides → Zod schema defaults.
|
|
1211
|
+
* The `projectRoot` key in the global config (keyed by absolute path) is also checked.
|
|
1212
|
+
*/
|
|
650
1213
|
declare function loadConfig(searchFrom?: string): Promise<TraceMcpResult<TraceMcpConfig>>;
|
|
651
1214
|
|
|
652
1215
|
declare function createServer(store: Store, registry: PluginRegistry, config: TraceMcpConfig, rootPath?: string): McpServer;
|