@mcp-graph-workflow/mcp-graph 5.2.0 → 5.4.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.
- package/dist/api/router.d.ts +0 -1
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +4 -5
- package/dist/api/router.js.map +1 -1
- package/dist/api/routes/benchmark.d.ts.map +1 -1
- package/dist/api/routes/benchmark.js +47 -2
- package/dist/api/routes/benchmark.js.map +1 -1
- package/dist/api/routes/code-graph.d.ts +12 -0
- package/dist/api/routes/code-graph.d.ts.map +1 -0
- package/dist/api/routes/code-graph.js +154 -0
- package/dist/api/routes/code-graph.js.map +1 -0
- package/dist/api/routes/context.d.ts.map +1 -1
- package/dist/api/routes/context.js +75 -0
- package/dist/api/routes/context.js.map +1 -1
- package/dist/api/routes/folder.d.ts +1 -4
- package/dist/api/routes/folder.d.ts.map +1 -1
- package/dist/api/routes/folder.js +19 -17
- package/dist/api/routes/folder.js.map +1 -1
- package/dist/api/routes/integrations.d.ts.map +1 -1
- package/dist/api/routes/integrations.js +60 -16
- package/dist/api/routes/integrations.js.map +1 -1
- package/dist/api/routes/knowledge.js +1 -1
- package/dist/api/routes/knowledge.js.map +1 -1
- package/dist/api/routes/skills.d.ts +2 -1
- package/dist/api/routes/skills.d.ts.map +1 -1
- package/dist/api/routes/skills.js +194 -4
- package/dist/api/routes/skills.js.map +1 -1
- package/dist/cli/commands/index-cmd.js +5 -5
- package/dist/cli/commands/index-cmd.js.map +1 -1
- package/dist/core/code/code-indexer.d.ts +20 -0
- package/dist/core/code/code-indexer.d.ts.map +1 -0
- package/dist/core/code/code-indexer.js +161 -0
- package/dist/core/code/code-indexer.js.map +1 -0
- package/dist/core/code/code-search.d.ts +16 -0
- package/dist/core/code/code-search.d.ts.map +1 -0
- package/dist/core/code/code-search.js +77 -0
- package/dist/core/code/code-search.js.map +1 -0
- package/dist/core/code/code-store.d.ts +35 -0
- package/dist/core/code/code-store.d.ts.map +1 -0
- package/dist/core/code/code-store.js +228 -0
- package/dist/core/code/code-store.js.map +1 -0
- package/dist/core/code/code-types.d.ts +209 -0
- package/dist/core/code/code-types.d.ts.map +1 -0
- package/dist/core/code/code-types.js +94 -0
- package/dist/core/code/code-types.js.map +1 -0
- package/dist/core/code/graph-traversal.d.ts +27 -0
- package/dist/core/code/graph-traversal.d.ts.map +1 -0
- package/dist/core/code/graph-traversal.js +122 -0
- package/dist/core/code/graph-traversal.js.map +1 -0
- package/dist/core/code/process-detector.d.ts +11 -0
- package/dist/core/code/process-detector.d.ts.map +1 -0
- package/dist/core/code/process-detector.js +65 -0
- package/dist/core/code/process-detector.js.map +1 -0
- package/dist/core/code/ts-analyzer.d.ts +12 -0
- package/dist/core/code/ts-analyzer.d.ts.map +1 -0
- package/dist/core/code/ts-analyzer.js +331 -0
- package/dist/core/code/ts-analyzer.js.map +1 -0
- package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
- package/dist/core/config/ai-memory-generator.js +149 -61
- package/dist/core/config/ai-memory-generator.js.map +1 -1
- package/dist/core/config/config-loader.d.ts.map +1 -1
- package/dist/core/config/config-loader.js +2 -10
- package/dist/core/config/config-loader.js.map +1 -1
- package/dist/core/config/config-schema.d.ts +1 -2
- package/dist/core/config/config-schema.d.ts.map +1 -1
- package/dist/core/config/config-schema.js +2 -3
- package/dist/core/config/config-schema.js.map +1 -1
- package/dist/core/context/compact-context.d.ts +51 -0
- package/dist/core/context/compact-context.d.ts.map +1 -1
- package/dist/core/context/compact-context.js +292 -0
- package/dist/core/context/compact-context.js.map +1 -1
- package/dist/core/context/context-assembler.d.ts +1 -1
- package/dist/core/context/context-assembler.js +1 -1
- package/dist/core/doctor/doctor-checks.d.ts +1 -1
- package/dist/core/doctor/doctor-checks.js +21 -21
- package/dist/core/doctor/doctor-checks.js.map +1 -1
- package/dist/core/events/event-types.d.ts +18 -1
- package/dist/core/events/event-types.d.ts.map +1 -1
- package/dist/core/graph/graph-types.d.ts +1 -0
- package/dist/core/graph/graph-types.d.ts.map +1 -1
- package/dist/core/insights/bottleneck-detector.js +1 -1
- package/dist/core/insights/bottleneck-detector.js.map +1 -1
- package/dist/core/integrations/enriched-context.d.ts +10 -6
- package/dist/core/integrations/enriched-context.d.ts.map +1 -1
- package/dist/core/integrations/enriched-context.js +35 -35
- package/dist/core/integrations/enriched-context.js.map +1 -1
- package/dist/core/integrations/integration-orchestrator.js +2 -2
- package/dist/core/integrations/integration-orchestrator.js.map +1 -1
- package/dist/core/integrations/mcp-deps-installer.d.ts +1 -1
- package/dist/core/integrations/mcp-deps-installer.d.ts.map +1 -1
- package/dist/core/integrations/mcp-deps-installer.js +1 -60
- package/dist/core/integrations/mcp-deps-installer.js.map +1 -1
- package/dist/core/integrations/mcp-servers-config.d.ts +1 -1
- package/dist/core/integrations/mcp-servers-config.d.ts.map +1 -1
- package/dist/core/integrations/mcp-servers-config.js +0 -17
- package/dist/core/integrations/mcp-servers-config.js.map +1 -1
- package/dist/core/integrations/tool-status.d.ts +8 -3
- package/dist/core/integrations/tool-status.d.ts.map +1 -1
- package/dist/core/integrations/tool-status.js +38 -48
- package/dist/core/integrations/tool-status.js.map +1 -1
- package/dist/core/memory/memory-migrator.d.ts +15 -0
- package/dist/core/memory/memory-migrator.d.ts.map +1 -0
- package/dist/core/memory/memory-migrator.js +64 -0
- package/dist/core/memory/memory-migrator.js.map +1 -0
- package/dist/core/memory/memory-reader.d.ts +30 -0
- package/dist/core/memory/memory-reader.d.ts.map +1 -0
- package/dist/core/memory/memory-reader.js +106 -0
- package/dist/core/memory/memory-reader.js.map +1 -0
- package/dist/core/planner/lifecycle-phase.d.ts +1 -0
- package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
- package/dist/core/planner/lifecycle-phase.js +11 -8
- package/dist/core/planner/lifecycle-phase.js.map +1 -1
- package/dist/core/rag/memory-indexer.d.ts +16 -0
- package/dist/core/rag/memory-indexer.d.ts.map +1 -0
- package/dist/core/rag/{serena-indexer.js → memory-indexer.js} +12 -12
- package/dist/core/rag/memory-indexer.js.map +1 -0
- package/dist/core/rag/{serena-rag-query.d.ts → memory-rag-query.d.ts} +11 -9
- package/dist/core/rag/memory-rag-query.d.ts.map +1 -0
- package/dist/core/rag/{serena-rag-query.js → memory-rag-query.js} +18 -15
- package/dist/core/rag/memory-rag-query.js.map +1 -0
- package/dist/core/rag/skill-indexer.d.ts +16 -0
- package/dist/core/rag/skill-indexer.d.ts.map +1 -0
- package/dist/core/rag/skill-indexer.js +98 -0
- package/dist/core/rag/skill-indexer.js.map +1 -0
- package/dist/core/skills/built-in-skills.d.ts +26 -0
- package/dist/core/skills/built-in-skills.d.ts.map +1 -0
- package/dist/core/skills/built-in-skills.js +467 -0
- package/dist/core/skills/built-in-skills.js.map +1 -0
- package/dist/core/skills/self-healing-listener.d.ts +22 -0
- package/dist/core/skills/self-healing-listener.d.ts.map +1 -0
- package/dist/core/skills/self-healing-listener.js +102 -0
- package/dist/core/skills/self-healing-listener.js.map +1 -0
- package/dist/core/skills/skill-store.d.ts +14 -0
- package/dist/core/skills/skill-store.d.ts.map +1 -0
- package/dist/core/skills/skill-store.js +109 -0
- package/dist/core/skills/skill-store.js.map +1 -0
- package/dist/core/store/knowledge-store.d.ts +1 -1
- package/dist/core/store/knowledge-store.js +1 -1
- package/dist/core/store/migrations.d.ts.map +1 -1
- package/dist/core/store/migrations.js +128 -0
- package/dist/core/store/migrations.js.map +1 -1
- package/dist/core/store/path-resolver.d.ts +38 -0
- package/dist/core/store/path-resolver.d.ts.map +1 -0
- package/dist/core/store/path-resolver.js +92 -0
- package/dist/core/store/path-resolver.js.map +1 -0
- package/dist/core/store/sqlite-store.d.ts +21 -0
- package/dist/core/store/sqlite-store.d.ts.map +1 -1
- package/dist/core/store/sqlite-store.js +81 -30
- package/dist/core/store/sqlite-store.js.map +1 -1
- package/dist/core/store/tool-token-store.d.ts +39 -0
- package/dist/core/store/tool-token-store.d.ts.map +1 -0
- package/dist/core/store/tool-token-store.js +79 -0
- package/dist/core/store/tool-token-store.js.map +1 -0
- package/dist/core/utils/constants.d.ts +10 -0
- package/dist/core/utils/constants.d.ts.map +1 -1
- package/dist/core/utils/constants.js +12 -0
- package/dist/core/utils/constants.js.map +1 -1
- package/dist/mcp/app-factory.d.ts +0 -1
- package/dist/mcp/app-factory.d.ts.map +1 -1
- package/dist/mcp/app-factory.js +2 -2
- package/dist/mcp/app-factory.js.map +1 -1
- package/dist/mcp/lifecycle-wrapper.d.ts +3 -1
- package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
- package/dist/mcp/lifecycle-wrapper.js +41 -1
- package/dist/mcp/lifecycle-wrapper.js.map +1 -1
- package/dist/mcp/server.js +19 -14
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +6 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/list-skills.d.ts +7 -0
- package/dist/mcp/tools/list-skills.d.ts.map +1 -0
- package/dist/mcp/tools/list-skills.js +68 -0
- package/dist/mcp/tools/list-skills.js.map +1 -0
- package/dist/mcp/tools/manage-skill.d.ts +8 -0
- package/dist/mcp/tools/manage-skill.d.ts.map +1 -0
- package/dist/mcp/tools/manage-skill.js +149 -0
- package/dist/mcp/tools/manage-skill.js.map +1 -0
- package/dist/mcp/tools/memory.d.ts +8 -0
- package/dist/mcp/tools/memory.d.ts.map +1 -0
- package/dist/mcp/tools/memory.js +106 -0
- package/dist/mcp/tools/memory.js.map +1 -0
- package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
- package/dist/mcp/tools/reindex-knowledge.js +11 -7
- package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
- package/dist/schemas/graph.schema.d.ts +2 -0
- package/dist/schemas/graph.schema.d.ts.map +1 -1
- package/dist/schemas/graph.schema.js +1 -0
- package/dist/schemas/graph.schema.js.map +1 -1
- package/dist/schemas/knowledge.schema.d.ts +4 -0
- package/dist/schemas/knowledge.schema.d.ts.map +1 -1
- package/dist/schemas/knowledge.schema.js +1 -1
- package/dist/schemas/knowledge.schema.js.map +1 -1
- package/dist/schemas/skill.schema.d.ts +57 -0
- package/dist/schemas/skill.schema.d.ts.map +1 -0
- package/dist/schemas/skill.schema.js +24 -0
- package/dist/schemas/skill.schema.js.map +1 -0
- package/dist/web/dashboard/dist/assets/benchmark-tab-BW4QxI49.js +1 -0
- package/dist/web/dashboard/dist/assets/constants-kpH_c6vY.js +1 -0
- package/dist/web/dashboard/dist/assets/context-tab-C5RAlXNW.js +1 -0
- package/dist/web/dashboard/dist/assets/gitnexus-tab-BnxxYl2F.js +430 -0
- package/dist/web/dashboard/dist/assets/graph-tab-Cv_wQ6Az.js +1 -0
- package/dist/web/dashboard/dist/assets/graph-utils-Ds1zJyD1.js +7 -0
- package/dist/web/dashboard/dist/assets/index-BAeZDWWy.js +53 -0
- package/dist/web/dashboard/dist/assets/index-Bic_URMs.js +17 -0
- package/dist/web/dashboard/dist/assets/index-DQqYFXms.css +1 -0
- package/dist/web/dashboard/dist/assets/insights-tab-U_ATOqPu.js +52 -0
- package/dist/web/dashboard/dist/assets/{logs-tab-Cxpcv_ni.js → logs-tab-B8psCXuB.js} +1 -1
- package/dist/web/dashboard/dist/assets/memories-tab-DcWok2by.js +1 -0
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-CjftveTc.js +1 -0
- package/dist/web/dashboard/dist/assets/skills-tab-Ddp1w4vS.js +1 -0
- package/dist/web/dashboard/dist/index.html +2 -2
- package/package.json +2 -2
- package/dist/api/routes/gitnexus.d.ts +0 -12
- package/dist/api/routes/gitnexus.d.ts.map +0 -1
- package/dist/api/routes/gitnexus.js +0 -164
- package/dist/api/routes/gitnexus.js.map +0 -1
- package/dist/core/integrations/gitnexus-launcher.d.ts +0 -67
- package/dist/core/integrations/gitnexus-launcher.d.ts.map +0 -1
- package/dist/core/integrations/gitnexus-launcher.js +0 -268
- package/dist/core/integrations/gitnexus-launcher.js.map +0 -1
- package/dist/core/integrations/gitnexus-queries.d.ts +0 -55
- package/dist/core/integrations/gitnexus-queries.d.ts.map +0 -1
- package/dist/core/integrations/gitnexus-queries.js +0 -168
- package/dist/core/integrations/gitnexus-queries.js.map +0 -1
- package/dist/core/integrations/serena-reader.d.ts +0 -18
- package/dist/core/integrations/serena-reader.d.ts.map +0 -1
- package/dist/core/integrations/serena-reader.js +0 -68
- package/dist/core/integrations/serena-reader.js.map +0 -1
- package/dist/core/rag/serena-indexer.d.ts +0 -16
- package/dist/core/rag/serena-indexer.d.ts.map +0 -1
- package/dist/core/rag/serena-indexer.js.map +0 -1
- package/dist/core/rag/serena-rag-query.d.ts.map +0 -1
- package/dist/core/rag/serena-rag-query.js.map +0 -1
- package/dist/web/dashboard/dist/assets/benchmark-tab-DE6hAHVG.js +0 -1
- package/dist/web/dashboard/dist/assets/constants-BIEJOBya.js +0 -1
- package/dist/web/dashboard/dist/assets/gitnexus-tab-DsBjJHx8.js +0 -312
- package/dist/web/dashboard/dist/assets/graph-tab-C09DzeZ_.js +0 -1
- package/dist/web/dashboard/dist/assets/graph-utils-D4LFspTf.js +0 -23
- package/dist/web/dashboard/dist/assets/index-B2fTJ4AS.js +0 -53
- package/dist/web/dashboard/dist/assets/index-CkqEqKiH.css +0 -1
- package/dist/web/dashboard/dist/assets/insights-tab-Bm7CDckb.js +0 -1
- package/dist/web/dashboard/dist/assets/prd-backlog-tab-X84Rj-IB.js +0 -1
- package/dist/web/dashboard/dist/assets/serena-tab-BunULNvw.js +0 -1
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas and types for the native Code Intelligence engine.
|
|
3
|
+
* Replaces GitNexus types with Zod-validated, SQLite-backed structures.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod/v4";
|
|
6
|
+
export declare const SymbolKindSchema: z.ZodEnum<{
|
|
7
|
+
function: "function";
|
|
8
|
+
enum: "enum";
|
|
9
|
+
class: "class";
|
|
10
|
+
method: "method";
|
|
11
|
+
variable: "variable";
|
|
12
|
+
interface: "interface";
|
|
13
|
+
type_alias: "type_alias";
|
|
14
|
+
}>;
|
|
15
|
+
export type SymbolKind = z.infer<typeof SymbolKindSchema>;
|
|
16
|
+
export declare const RelationTypeSchema: z.ZodEnum<{
|
|
17
|
+
implements: "implements";
|
|
18
|
+
calls: "calls";
|
|
19
|
+
imports: "imports";
|
|
20
|
+
extends: "extends";
|
|
21
|
+
belongs_to: "belongs_to";
|
|
22
|
+
}>;
|
|
23
|
+
export type CodeRelationType = z.infer<typeof RelationTypeSchema>;
|
|
24
|
+
export declare const RiskLevelSchema: z.ZodEnum<{
|
|
25
|
+
low: "low";
|
|
26
|
+
medium: "medium";
|
|
27
|
+
high: "high";
|
|
28
|
+
}>;
|
|
29
|
+
export type RiskLevel = z.infer<typeof RiskLevelSchema>;
|
|
30
|
+
export declare const CodeSymbolSchema: z.ZodObject<{
|
|
31
|
+
id: z.ZodString;
|
|
32
|
+
projectId: z.ZodString;
|
|
33
|
+
name: z.ZodString;
|
|
34
|
+
kind: z.ZodEnum<{
|
|
35
|
+
function: "function";
|
|
36
|
+
enum: "enum";
|
|
37
|
+
class: "class";
|
|
38
|
+
method: "method";
|
|
39
|
+
variable: "variable";
|
|
40
|
+
interface: "interface";
|
|
41
|
+
type_alias: "type_alias";
|
|
42
|
+
}>;
|
|
43
|
+
file: z.ZodString;
|
|
44
|
+
startLine: z.ZodInt;
|
|
45
|
+
endLine: z.ZodInt;
|
|
46
|
+
exported: z.ZodBoolean;
|
|
47
|
+
modulePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
48
|
+
signature: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
49
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
50
|
+
indexedAt: z.ZodString;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type CodeSymbol = z.infer<typeof CodeSymbolSchema>;
|
|
53
|
+
export declare const CodeRelationSchema: z.ZodObject<{
|
|
54
|
+
id: z.ZodString;
|
|
55
|
+
projectId: z.ZodString;
|
|
56
|
+
fromSymbol: z.ZodString;
|
|
57
|
+
toSymbol: z.ZodString;
|
|
58
|
+
type: z.ZodEnum<{
|
|
59
|
+
implements: "implements";
|
|
60
|
+
calls: "calls";
|
|
61
|
+
imports: "imports";
|
|
62
|
+
extends: "extends";
|
|
63
|
+
belongs_to: "belongs_to";
|
|
64
|
+
}>;
|
|
65
|
+
file: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
66
|
+
line: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
|
|
67
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
68
|
+
indexedAt: z.ZodString;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
export type CodeRelation = z.infer<typeof CodeRelationSchema>;
|
|
71
|
+
export declare const CodeGraphDataSchema: z.ZodObject<{
|
|
72
|
+
symbols: z.ZodArray<z.ZodObject<{
|
|
73
|
+
id: z.ZodString;
|
|
74
|
+
projectId: z.ZodString;
|
|
75
|
+
name: z.ZodString;
|
|
76
|
+
kind: z.ZodEnum<{
|
|
77
|
+
function: "function";
|
|
78
|
+
enum: "enum";
|
|
79
|
+
class: "class";
|
|
80
|
+
method: "method";
|
|
81
|
+
variable: "variable";
|
|
82
|
+
interface: "interface";
|
|
83
|
+
type_alias: "type_alias";
|
|
84
|
+
}>;
|
|
85
|
+
file: z.ZodString;
|
|
86
|
+
startLine: z.ZodInt;
|
|
87
|
+
endLine: z.ZodInt;
|
|
88
|
+
exported: z.ZodBoolean;
|
|
89
|
+
modulePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
90
|
+
signature: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
91
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
92
|
+
indexedAt: z.ZodString;
|
|
93
|
+
}, z.core.$strip>>;
|
|
94
|
+
relations: z.ZodArray<z.ZodObject<{
|
|
95
|
+
id: z.ZodString;
|
|
96
|
+
projectId: z.ZodString;
|
|
97
|
+
fromSymbol: z.ZodString;
|
|
98
|
+
toSymbol: z.ZodString;
|
|
99
|
+
type: z.ZodEnum<{
|
|
100
|
+
implements: "implements";
|
|
101
|
+
calls: "calls";
|
|
102
|
+
imports: "imports";
|
|
103
|
+
extends: "extends";
|
|
104
|
+
belongs_to: "belongs_to";
|
|
105
|
+
}>;
|
|
106
|
+
file: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
107
|
+
line: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
|
|
108
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
109
|
+
indexedAt: z.ZodString;
|
|
110
|
+
}, z.core.$strip>>;
|
|
111
|
+
}, z.core.$strip>;
|
|
112
|
+
export type CodeGraphData = z.infer<typeof CodeGraphDataSchema>;
|
|
113
|
+
export declare const AffectedSymbolSchema: z.ZodObject<{
|
|
114
|
+
name: z.ZodString;
|
|
115
|
+
file: z.ZodString;
|
|
116
|
+
confidence: z.ZodNumber;
|
|
117
|
+
depth: z.ZodOptional<z.ZodInt>;
|
|
118
|
+
}, z.core.$strip>;
|
|
119
|
+
export type AffectedSymbol = z.infer<typeof AffectedSymbolSchema>;
|
|
120
|
+
export declare const ImpactResultSchema: z.ZodObject<{
|
|
121
|
+
symbol: z.ZodString;
|
|
122
|
+
affectedSymbols: z.ZodArray<z.ZodObject<{
|
|
123
|
+
name: z.ZodString;
|
|
124
|
+
file: z.ZodString;
|
|
125
|
+
confidence: z.ZodNumber;
|
|
126
|
+
depth: z.ZodOptional<z.ZodInt>;
|
|
127
|
+
}, z.core.$strip>>;
|
|
128
|
+
riskLevel: z.ZodEnum<{
|
|
129
|
+
low: "low";
|
|
130
|
+
medium: "medium";
|
|
131
|
+
high: "high";
|
|
132
|
+
}>;
|
|
133
|
+
}, z.core.$strip>;
|
|
134
|
+
export type ImpactResult = z.infer<typeof ImpactResultSchema>;
|
|
135
|
+
export declare const CodeIndexMetaSchema: z.ZodObject<{
|
|
136
|
+
projectId: z.ZodString;
|
|
137
|
+
lastIndexed: z.ZodString;
|
|
138
|
+
fileCount: z.ZodInt;
|
|
139
|
+
symbolCount: z.ZodInt;
|
|
140
|
+
relationCount: z.ZodInt;
|
|
141
|
+
gitHash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
142
|
+
}, z.core.$strip>;
|
|
143
|
+
export type CodeIndexMeta = z.infer<typeof CodeIndexMetaSchema>;
|
|
144
|
+
export declare const CodeSearchResultSchema: z.ZodObject<{
|
|
145
|
+
symbol: z.ZodObject<{
|
|
146
|
+
id: z.ZodString;
|
|
147
|
+
projectId: z.ZodString;
|
|
148
|
+
name: z.ZodString;
|
|
149
|
+
kind: z.ZodEnum<{
|
|
150
|
+
function: "function";
|
|
151
|
+
enum: "enum";
|
|
152
|
+
class: "class";
|
|
153
|
+
method: "method";
|
|
154
|
+
variable: "variable";
|
|
155
|
+
interface: "interface";
|
|
156
|
+
type_alias: "type_alias";
|
|
157
|
+
}>;
|
|
158
|
+
file: z.ZodString;
|
|
159
|
+
startLine: z.ZodInt;
|
|
160
|
+
endLine: z.ZodInt;
|
|
161
|
+
exported: z.ZodBoolean;
|
|
162
|
+
modulePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
163
|
+
signature: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
164
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
165
|
+
indexedAt: z.ZodString;
|
|
166
|
+
}, z.core.$strip>;
|
|
167
|
+
score: z.ZodNumber;
|
|
168
|
+
modulePath: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
169
|
+
}, z.core.$strip>;
|
|
170
|
+
export type CodeSearchResult = z.infer<typeof CodeSearchResultSchema>;
|
|
171
|
+
export interface AnalyzedFile {
|
|
172
|
+
file: string;
|
|
173
|
+
symbols: Omit<CodeSymbol, "id" | "projectId" | "indexedAt">[];
|
|
174
|
+
relations: Omit<CodeRelation, "id" | "projectId" | "indexedAt">[];
|
|
175
|
+
}
|
|
176
|
+
export interface DetectedChange {
|
|
177
|
+
file: string;
|
|
178
|
+
changeType: "added" | "modified" | "deleted";
|
|
179
|
+
affectedSymbols: string[];
|
|
180
|
+
}
|
|
181
|
+
export interface ChangeDetectionResult {
|
|
182
|
+
changes: DetectedChange[];
|
|
183
|
+
impactSummary: {
|
|
184
|
+
totalFiles: number;
|
|
185
|
+
totalSymbols: number;
|
|
186
|
+
riskLevel: RiskLevel;
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
export interface DetectedProcess {
|
|
190
|
+
entryPoint: string;
|
|
191
|
+
entryFile: string;
|
|
192
|
+
chain: Array<{
|
|
193
|
+
name: string;
|
|
194
|
+
file: string;
|
|
195
|
+
}>;
|
|
196
|
+
}
|
|
197
|
+
export interface CodeAnalyzer {
|
|
198
|
+
/** Languages supported by this analyzer (e.g., ["typescript", "javascript"]) */
|
|
199
|
+
readonly languages: string[];
|
|
200
|
+
/** Analyze a single file and return symbols + relations */
|
|
201
|
+
analyzeFile(filePath: string, basePath: string): AnalyzedFile;
|
|
202
|
+
}
|
|
203
|
+
export interface IndexResult {
|
|
204
|
+
fileCount: number;
|
|
205
|
+
symbolCount: number;
|
|
206
|
+
relationCount: number;
|
|
207
|
+
}
|
|
208
|
+
export declare function calculateRiskLevel(affectedCount: number): RiskLevel;
|
|
209
|
+
//# sourceMappingURL=code-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-types.d.ts","sourceRoot":"","sources":["../../../src/core/code/code-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas and types for the native Code Intelligence engine.
|
|
3
|
+
* Replaces GitNexus types with Zod-validated, SQLite-backed structures.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod/v4";
|
|
6
|
+
// ── Symbol Kinds ──────────────────────────────────────
|
|
7
|
+
export const SymbolKindSchema = z.enum([
|
|
8
|
+
"function",
|
|
9
|
+
"class",
|
|
10
|
+
"method",
|
|
11
|
+
"interface",
|
|
12
|
+
"type_alias",
|
|
13
|
+
"enum",
|
|
14
|
+
"variable",
|
|
15
|
+
]);
|
|
16
|
+
// ── Relation Types ────────────────────────────────────
|
|
17
|
+
export const RelationTypeSchema = z.enum([
|
|
18
|
+
"calls",
|
|
19
|
+
"imports",
|
|
20
|
+
"extends",
|
|
21
|
+
"implements",
|
|
22
|
+
"belongs_to",
|
|
23
|
+
]);
|
|
24
|
+
// ── Risk Levels ───────────────────────────────────────
|
|
25
|
+
export const RiskLevelSchema = z.enum(["low", "medium", "high"]);
|
|
26
|
+
// ── Code Symbol ───────────────────────────────────────
|
|
27
|
+
export const CodeSymbolSchema = z.object({
|
|
28
|
+
id: z.string(),
|
|
29
|
+
projectId: z.string(),
|
|
30
|
+
name: z.string(),
|
|
31
|
+
kind: SymbolKindSchema,
|
|
32
|
+
file: z.string(),
|
|
33
|
+
startLine: z.int().min(1),
|
|
34
|
+
endLine: z.int().min(1),
|
|
35
|
+
exported: z.boolean(),
|
|
36
|
+
modulePath: z.string().nullable().optional(),
|
|
37
|
+
signature: z.string().nullable().optional(),
|
|
38
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
39
|
+
indexedAt: z.string(),
|
|
40
|
+
});
|
|
41
|
+
// ── Code Relation ─────────────────────────────────────
|
|
42
|
+
export const CodeRelationSchema = z.object({
|
|
43
|
+
id: z.string(),
|
|
44
|
+
projectId: z.string(),
|
|
45
|
+
fromSymbol: z.string(),
|
|
46
|
+
toSymbol: z.string(),
|
|
47
|
+
type: RelationTypeSchema,
|
|
48
|
+
file: z.string().nullable().optional(),
|
|
49
|
+
line: z.int().nullable().optional(),
|
|
50
|
+
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
51
|
+
indexedAt: z.string(),
|
|
52
|
+
});
|
|
53
|
+
// ── Code Graph Data (API response shape) ──────────────
|
|
54
|
+
export const CodeGraphDataSchema = z.object({
|
|
55
|
+
symbols: z.array(CodeSymbolSchema),
|
|
56
|
+
relations: z.array(CodeRelationSchema),
|
|
57
|
+
});
|
|
58
|
+
// ── Affected Symbol (impact analysis) ─────────────────
|
|
59
|
+
export const AffectedSymbolSchema = z.object({
|
|
60
|
+
name: z.string(),
|
|
61
|
+
file: z.string(),
|
|
62
|
+
confidence: z.number().min(0).max(1),
|
|
63
|
+
depth: z.int().min(1).optional(),
|
|
64
|
+
});
|
|
65
|
+
// ── Impact Result ─────────────────────────────────────
|
|
66
|
+
export const ImpactResultSchema = z.object({
|
|
67
|
+
symbol: z.string(),
|
|
68
|
+
affectedSymbols: z.array(AffectedSymbolSchema),
|
|
69
|
+
riskLevel: RiskLevelSchema,
|
|
70
|
+
});
|
|
71
|
+
// ── Index Meta ────────────────────────────────────────
|
|
72
|
+
export const CodeIndexMetaSchema = z.object({
|
|
73
|
+
projectId: z.string(),
|
|
74
|
+
lastIndexed: z.string(),
|
|
75
|
+
fileCount: z.int().min(0),
|
|
76
|
+
symbolCount: z.int().min(0),
|
|
77
|
+
relationCount: z.int().min(0),
|
|
78
|
+
gitHash: z.string().nullable().optional(),
|
|
79
|
+
});
|
|
80
|
+
// ── Search Result ─────────────────────────────────────
|
|
81
|
+
export const CodeSearchResultSchema = z.object({
|
|
82
|
+
symbol: CodeSymbolSchema,
|
|
83
|
+
score: z.number(),
|
|
84
|
+
modulePath: z.string().nullable().optional(),
|
|
85
|
+
});
|
|
86
|
+
// ── Helpers ───────────────────────────────────────────
|
|
87
|
+
export function calculateRiskLevel(affectedCount) {
|
|
88
|
+
if (affectedCount > 15)
|
|
89
|
+
return "high";
|
|
90
|
+
if (affectedCount >= 5)
|
|
91
|
+
return "medium";
|
|
92
|
+
return "low";
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=code-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-types.js","sourceRoot":"","sources":["../../../src/core/code/code-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,yDAAyD;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,UAAU;IACV,OAAO;IACP,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,UAAU;CACX,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,OAAO;IACP,SAAS;IACT,SAAS;IACT,YAAY;IACZ,YAAY;CACb,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAIjE,yDAAyD;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;CACvC,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC9C,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAIH,yDAAyD;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAyDH,yDAAyD;AAEzD,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,IAAI,aAAa,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,aAAa,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph traversal algorithms for Code Intelligence.
|
|
3
|
+
* Operates on CodeStore data: BFS for context/impact, symbol lookup for change detection.
|
|
4
|
+
*/
|
|
5
|
+
import type { CodeStore } from "./code-store.js";
|
|
6
|
+
import type { CodeGraphData, CodeSymbol, CodeRelation, ImpactResult } from "./code-types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Get 360° context for a symbol: all direct callers, callees, and related symbols.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSymbolContext(store: CodeStore, name: string, projectId: string): CodeGraphData;
|
|
11
|
+
/**
|
|
12
|
+
* Analyze blast radius via BFS. Direction controls traversal:
|
|
13
|
+
* - "upstream": who depends on this symbol (callers, importers)
|
|
14
|
+
* - "downstream": what this symbol depends on (callees, imported)
|
|
15
|
+
*/
|
|
16
|
+
export declare function analyzeImpact(store: CodeStore, name: string, projectId: string, direction?: "upstream" | "downstream", maxDepth?: number): ImpactResult;
|
|
17
|
+
/**
|
|
18
|
+
* Get the complete code graph for a project (with optional limit).
|
|
19
|
+
*/
|
|
20
|
+
export declare function getFullGraph(store: CodeStore, projectId: string, symbolLimit?: number): {
|
|
21
|
+
symbols: CodeSymbol[];
|
|
22
|
+
relations: Array<CodeRelation & {
|
|
23
|
+
from: string;
|
|
24
|
+
to: string;
|
|
25
|
+
}>;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=graph-traversal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-traversal.d.ts","sourceRoot":"","sources":["../../../src/core/code/graph-traversal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAM7G;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAuCjG;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,UAAU,GAAG,YAAyB,EACjD,QAAQ,GAAE,MAAU,GACnB,YAAY,CA2Dd;AAID;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,MAAa,GACzB;IAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAiB1F"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph traversal algorithms for Code Intelligence.
|
|
3
|
+
* Operates on CodeStore data: BFS for context/impact, symbol lookup for change detection.
|
|
4
|
+
*/
|
|
5
|
+
import { calculateRiskLevel } from "./code-types.js";
|
|
6
|
+
import { logger } from "../utils/logger.js";
|
|
7
|
+
// ── Context (1-hop neighbors) ────────────────────────
|
|
8
|
+
/**
|
|
9
|
+
* Get 360° context for a symbol: all direct callers, callees, and related symbols.
|
|
10
|
+
*/
|
|
11
|
+
export function getSymbolContext(store, name, projectId) {
|
|
12
|
+
const targets = store.findSymbolsByName(name, projectId);
|
|
13
|
+
if (targets.length === 0) {
|
|
14
|
+
return { symbols: [], relations: [] };
|
|
15
|
+
}
|
|
16
|
+
const symbolMap = new Map();
|
|
17
|
+
const relationSet = new Map();
|
|
18
|
+
for (const target of targets) {
|
|
19
|
+
symbolMap.set(target.id, target);
|
|
20
|
+
// Outgoing relations (callees, imports, etc.)
|
|
21
|
+
const outgoing = store.getRelationsFrom(target.id);
|
|
22
|
+
for (const rel of outgoing) {
|
|
23
|
+
relationSet.set(rel.id, rel);
|
|
24
|
+
const neighbor = store.getSymbol(rel.toSymbol);
|
|
25
|
+
if (neighbor)
|
|
26
|
+
symbolMap.set(neighbor.id, neighbor);
|
|
27
|
+
}
|
|
28
|
+
// Incoming relations (callers, importers, etc.)
|
|
29
|
+
const incoming = store.getRelationsTo(target.id);
|
|
30
|
+
for (const rel of incoming) {
|
|
31
|
+
relationSet.set(rel.id, rel);
|
|
32
|
+
const neighbor = store.getSymbol(rel.fromSymbol);
|
|
33
|
+
if (neighbor)
|
|
34
|
+
symbolMap.set(neighbor.id, neighbor);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
logger.debug("graph-traversal:context", {
|
|
38
|
+
symbol: name,
|
|
39
|
+
symbols: symbolMap.size,
|
|
40
|
+
relations: relationSet.size,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
symbols: Array.from(symbolMap.values()),
|
|
44
|
+
relations: Array.from(relationSet.values()),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// ── Impact Analysis (BFS depth 1-3) ─────────────────
|
|
48
|
+
/**
|
|
49
|
+
* Analyze blast radius via BFS. Direction controls traversal:
|
|
50
|
+
* - "upstream": who depends on this symbol (callers, importers)
|
|
51
|
+
* - "downstream": what this symbol depends on (callees, imported)
|
|
52
|
+
*/
|
|
53
|
+
export function analyzeImpact(store, name, projectId, direction = "upstream", maxDepth = 3) {
|
|
54
|
+
const targets = store.findSymbolsByName(name, projectId);
|
|
55
|
+
if (targets.length === 0) {
|
|
56
|
+
return { symbol: name, affectedSymbols: [], riskLevel: "low" };
|
|
57
|
+
}
|
|
58
|
+
const visited = new Set();
|
|
59
|
+
const affected = [];
|
|
60
|
+
// Seed BFS with target symbol IDs
|
|
61
|
+
let frontier = targets.map((t) => ({ id: t.id, depth: 0 }));
|
|
62
|
+
for (const t of targets)
|
|
63
|
+
visited.add(t.id);
|
|
64
|
+
while (frontier.length > 0) {
|
|
65
|
+
const nextFrontier = [];
|
|
66
|
+
for (const { id, depth } of frontier) {
|
|
67
|
+
if (depth >= maxDepth)
|
|
68
|
+
continue;
|
|
69
|
+
const relations = direction === "upstream"
|
|
70
|
+
? store.getRelationsTo(id)
|
|
71
|
+
: store.getRelationsFrom(id);
|
|
72
|
+
for (const rel of relations) {
|
|
73
|
+
const neighborId = direction === "upstream" ? rel.fromSymbol : rel.toSymbol;
|
|
74
|
+
if (visited.has(neighborId))
|
|
75
|
+
continue;
|
|
76
|
+
visited.add(neighborId);
|
|
77
|
+
const neighbor = store.getSymbol(neighborId);
|
|
78
|
+
if (!neighbor)
|
|
79
|
+
continue;
|
|
80
|
+
const newDepth = depth + 1;
|
|
81
|
+
// Confidence decay: d=1 → 1.0, d=2 → 0.7, d=3 → 0.4
|
|
82
|
+
const confidence = Math.max(0.1, 1.0 - (newDepth - 1) * 0.3);
|
|
83
|
+
affected.push({
|
|
84
|
+
name: neighbor.name,
|
|
85
|
+
file: neighbor.file,
|
|
86
|
+
confidence,
|
|
87
|
+
depth: newDepth,
|
|
88
|
+
});
|
|
89
|
+
nextFrontier.push({ id: neighborId, depth: newDepth });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
frontier = nextFrontier;
|
|
93
|
+
}
|
|
94
|
+
const riskLevel = calculateRiskLevel(affected.length);
|
|
95
|
+
logger.debug("graph-traversal:impact", {
|
|
96
|
+
symbol: name,
|
|
97
|
+
direction,
|
|
98
|
+
affected: affected.length,
|
|
99
|
+
riskLevel,
|
|
100
|
+
});
|
|
101
|
+
return { symbol: name, affectedSymbols: affected, riskLevel };
|
|
102
|
+
}
|
|
103
|
+
// ── Full Graph ───────────────────────────────────────
|
|
104
|
+
/**
|
|
105
|
+
* Get the complete code graph for a project (with optional limit).
|
|
106
|
+
*/
|
|
107
|
+
export function getFullGraph(store, projectId, symbolLimit = 5000) {
|
|
108
|
+
const symbols = store.getAllSymbols(projectId, symbolLimit);
|
|
109
|
+
const relations = store.getAllRelations(projectId);
|
|
110
|
+
// Build id→name map so the dashboard can reference nodes by name
|
|
111
|
+
const idToName = new Map();
|
|
112
|
+
for (const sym of symbols) {
|
|
113
|
+
idToName.set(sym.id, sym.name);
|
|
114
|
+
}
|
|
115
|
+
const enrichedRelations = relations.map((rel) => ({
|
|
116
|
+
...rel,
|
|
117
|
+
from: idToName.get(rel.fromSymbol) ?? rel.fromSymbol,
|
|
118
|
+
to: idToName.get(rel.toSymbol) ?? rel.toSymbol,
|
|
119
|
+
}));
|
|
120
|
+
return { symbols, relations: enrichedRelations };
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=graph-traversal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-traversal.js","sourceRoot":"","sources":["../../../src/core/code/graph-traversal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process detector — identifies entry points and traces call chains.
|
|
3
|
+
* Entry point = exported function/method with no incoming "calls" relations.
|
|
4
|
+
*/
|
|
5
|
+
import type { CodeStore } from "./code-store.js";
|
|
6
|
+
import type { DetectedProcess } from "./code-types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Detect execution processes: exported symbols with no callers → trace call chains.
|
|
9
|
+
*/
|
|
10
|
+
export declare function detectProcesses(store: CodeStore, projectId: string): DetectedProcess[];
|
|
11
|
+
//# sourceMappingURL=process-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-detector.d.ts","sourceRoot":"","sources":["../../../src/core/code/process-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAuEtF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process detector — identifies entry points and traces call chains.
|
|
3
|
+
* Entry point = exported function/method with no incoming "calls" relations.
|
|
4
|
+
*/
|
|
5
|
+
import { logger } from "../utils/logger.js";
|
|
6
|
+
/**
|
|
7
|
+
* Detect execution processes: exported symbols with no callers → trace call chains.
|
|
8
|
+
*/
|
|
9
|
+
export function detectProcesses(store, projectId) {
|
|
10
|
+
const allSymbols = store.getAllSymbols(projectId);
|
|
11
|
+
const allRelations = store.getAllRelations(projectId);
|
|
12
|
+
// Build sets for quick lookup
|
|
13
|
+
const callTargets = new Set();
|
|
14
|
+
const callGraph = new Map(); // symbolId → [calleeIds]
|
|
15
|
+
for (const rel of allRelations) {
|
|
16
|
+
if (rel.type === "calls") {
|
|
17
|
+
callTargets.add(rel.toSymbol);
|
|
18
|
+
const existing = callGraph.get(rel.fromSymbol) ?? [];
|
|
19
|
+
existing.push(rel.toSymbol);
|
|
20
|
+
callGraph.set(rel.fromSymbol, existing);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Symbol ID → symbol lookup
|
|
24
|
+
const symbolMap = new Map(allSymbols.map((s) => [s.id, s]));
|
|
25
|
+
// Entry points: exported functions/methods with no incoming calls
|
|
26
|
+
const entryPoints = allSymbols.filter((s) => s.exported && !callTargets.has(s.id) && (s.kind === "function" || s.kind === "method"));
|
|
27
|
+
const processes = [];
|
|
28
|
+
for (const entry of entryPoints) {
|
|
29
|
+
const chain = [];
|
|
30
|
+
const visited = new Set();
|
|
31
|
+
// BFS to trace call chain
|
|
32
|
+
const queue = callGraph.get(entry.id) ?? [];
|
|
33
|
+
for (const id of queue)
|
|
34
|
+
visited.add(id);
|
|
35
|
+
let frontier = [...queue];
|
|
36
|
+
while (frontier.length > 0) {
|
|
37
|
+
const next = [];
|
|
38
|
+
for (const id of frontier) {
|
|
39
|
+
const sym = symbolMap.get(id);
|
|
40
|
+
if (!sym)
|
|
41
|
+
continue;
|
|
42
|
+
chain.push({ name: sym.name, file: sym.file });
|
|
43
|
+
const callees = callGraph.get(id) ?? [];
|
|
44
|
+
for (const calleeId of callees) {
|
|
45
|
+
if (!visited.has(calleeId)) {
|
|
46
|
+
visited.add(calleeId);
|
|
47
|
+
next.push(calleeId);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
frontier = next;
|
|
52
|
+
}
|
|
53
|
+
processes.push({
|
|
54
|
+
entryPoint: entry.name,
|
|
55
|
+
entryFile: entry.file,
|
|
56
|
+
chain,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
logger.debug("process-detector", {
|
|
60
|
+
entryPoints: entryPoints.length,
|
|
61
|
+
processes: processes.length,
|
|
62
|
+
});
|
|
63
|
+
return processes;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=process-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-detector.js","sourceRoot":"","sources":["../../../src/core/code/process-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript AST analyzer using ts.createSourceFile() (parse-only, no type checker).
|
|
3
|
+
* Extracts symbols and relations from TypeScript files syntactically.
|
|
4
|
+
* ~10-100x faster than ts.createProgram() with ~95% accuracy.
|
|
5
|
+
*/
|
|
6
|
+
import type { AnalyzedFile } from "./code-types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Analyze a single TypeScript file syntactically.
|
|
9
|
+
* Returns extracted symbols and relations with paths relative to basePath.
|
|
10
|
+
*/
|
|
11
|
+
export declare function analyzeFile(filePath: string, basePath: string): AnalyzedFile;
|
|
12
|
+
//# sourceMappingURL=ts-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-analyzer.d.ts","sourceRoot":"","sources":["../../../src/core/code/ts-analyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,iBAAiB,CAAC;AAK9E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CA+B5E"}
|