spec-gen-cli 1.2.2 → 1.2.4
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 +272 -25
- package/dist/api/generate.d.ts.map +1 -1
- package/dist/api/generate.js +11 -7
- package/dist/api/generate.js.map +1 -1
- package/dist/api/run.d.ts.map +1 -1
- package/dist/api/run.js +5 -3
- package/dist/api/run.js.map +1 -1
- package/dist/api/types.d.ts +4 -4
- package/dist/api/types.d.ts.map +1 -1
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +101 -41
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +28 -23
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +353 -10
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +241 -48
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/view.d.ts.map +1 -1
- package/dist/cli/commands/view.js +33 -4
- package/dist/cli/commands/view.js.map +1 -1
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +11 -0
- package/dist/constants.js.map +1 -1
- package/dist/core/analyzer/artifact-generator.d.ts.map +1 -1
- package/dist/core/analyzer/artifact-generator.js +11 -3
- package/dist/core/analyzer/artifact-generator.js.map +1 -1
- package/dist/core/analyzer/ast-chunker.d.ts +24 -0
- package/dist/core/analyzer/ast-chunker.d.ts.map +1 -0
- package/dist/core/analyzer/ast-chunker.js +198 -0
- package/dist/core/analyzer/ast-chunker.js.map +1 -0
- package/dist/core/analyzer/call-graph.d.ts +52 -5
- package/dist/core/analyzer/call-graph.d.ts.map +1 -1
- package/dist/core/analyzer/call-graph.js +769 -48
- package/dist/core/analyzer/call-graph.js.map +1 -1
- package/dist/core/analyzer/code-shaper.d.ts.map +1 -1
- package/dist/core/analyzer/code-shaper.js +5 -0
- package/dist/core/analyzer/code-shaper.js.map +1 -1
- package/dist/core/analyzer/codebase-digest.d.ts +40 -0
- package/dist/core/analyzer/codebase-digest.d.ts.map +1 -0
- package/dist/core/analyzer/codebase-digest.js +194 -0
- package/dist/core/analyzer/codebase-digest.js.map +1 -0
- package/dist/core/analyzer/cpp-header-resolver.d.ts +30 -0
- package/dist/core/analyzer/cpp-header-resolver.d.ts.map +1 -0
- package/dist/core/analyzer/cpp-header-resolver.js +71 -0
- package/dist/core/analyzer/cpp-header-resolver.js.map +1 -0
- package/dist/core/analyzer/dependency-graph.d.ts +19 -0
- package/dist/core/analyzer/dependency-graph.d.ts.map +1 -1
- package/dist/core/analyzer/dependency-graph.js +76 -0
- package/dist/core/analyzer/dependency-graph.js.map +1 -1
- package/dist/core/analyzer/duplicate-detector.d.ts.map +1 -1
- package/dist/core/analyzer/duplicate-detector.js +7 -1
- package/dist/core/analyzer/duplicate-detector.js.map +1 -1
- package/dist/core/analyzer/function-registry-trie.d.ts +21 -0
- package/dist/core/analyzer/function-registry-trie.d.ts.map +1 -0
- package/dist/core/analyzer/function-registry-trie.js +39 -0
- package/dist/core/analyzer/function-registry-trie.js.map +1 -0
- package/dist/core/analyzer/import-resolver-bridge.d.ts +25 -0
- package/dist/core/analyzer/import-resolver-bridge.d.ts.map +1 -0
- package/dist/core/analyzer/import-resolver-bridge.js +99 -0
- package/dist/core/analyzer/import-resolver-bridge.js.map +1 -0
- package/dist/core/analyzer/signature-extractor.d.ts.map +1 -1
- package/dist/core/analyzer/signature-extractor.js +131 -3
- package/dist/core/analyzer/signature-extractor.js.map +1 -1
- package/dist/core/analyzer/subgraph-extractor.d.ts +10 -2
- package/dist/core/analyzer/subgraph-extractor.d.ts.map +1 -1
- package/dist/core/analyzer/subgraph-extractor.js +25 -7
- package/dist/core/analyzer/subgraph-extractor.js.map +1 -1
- package/dist/core/analyzer/type-inference-engine.d.ts +23 -0
- package/dist/core/analyzer/type-inference-engine.d.ts.map +1 -0
- package/dist/core/analyzer/type-inference-engine.js +130 -0
- package/dist/core/analyzer/type-inference-engine.js.map +1 -0
- package/dist/core/analyzer/vector-index.d.ts +35 -6
- package/dist/core/analyzer/vector-index.d.ts.map +1 -1
- package/dist/core/analyzer/vector-index.js +308 -54
- package/dist/core/analyzer/vector-index.js.map +1 -1
- package/dist/core/generator/spec-pipeline.d.ts +31 -11
- package/dist/core/generator/spec-pipeline.d.ts.map +1 -1
- package/dist/core/generator/spec-pipeline.js +170 -39
- package/dist/core/generator/spec-pipeline.js.map +1 -1
- package/dist/core/generator/stages/stage2-entities.d.ts.map +1 -1
- package/dist/core/generator/stages/stage2-entities.js +2 -1
- package/dist/core/generator/stages/stage2-entities.js.map +1 -1
- package/dist/core/generator/stages/stage3-services.d.ts.map +1 -1
- package/dist/core/generator/stages/stage3-services.js +2 -1
- package/dist/core/generator/stages/stage3-services.js.map +1 -1
- package/dist/core/generator/stages/stage4-api.d.ts.map +1 -1
- package/dist/core/generator/stages/stage4-api.js +2 -1
- package/dist/core/generator/stages/stage4-api.js.map +1 -1
- package/dist/core/generator/stages/stage5-architecture.d.ts +2 -1
- package/dist/core/generator/stages/stage5-architecture.d.ts.map +1 -1
- package/dist/core/generator/stages/stage5-architecture.js +15 -3
- package/dist/core/generator/stages/stage5-architecture.js.map +1 -1
- package/dist/core/services/chat-agent.d.ts +5 -0
- package/dist/core/services/chat-agent.d.ts.map +1 -1
- package/dist/core/services/chat-agent.js +14 -0
- package/dist/core/services/chat-agent.js.map +1 -1
- package/dist/core/services/chat-tools.d.ts.map +1 -1
- package/dist/core/services/chat-tools.js +172 -50
- package/dist/core/services/chat-tools.js.map +1 -1
- package/dist/core/services/llm-service.d.ts +23 -1
- package/dist/core/services/llm-service.d.ts.map +1 -1
- package/dist/core/services/llm-service.js +94 -2
- package/dist/core/services/llm-service.js.map +1 -1
- package/dist/core/services/mcp-handlers/analysis.d.ts +12 -0
- package/dist/core/services/mcp-handlers/analysis.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/analysis.js +138 -2
- package/dist/core/services/mcp-handlers/analysis.js.map +1 -1
- package/dist/core/services/mcp-handlers/graph.d.ts +21 -1
- package/dist/core/services/mcp-handlers/graph.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/graph.js +142 -2
- package/dist/core/services/mcp-handlers/graph.js.map +1 -1
- package/dist/core/services/mcp-handlers/orient.d.ts +17 -0
- package/dist/core/services/mcp-handlers/orient.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/orient.js +200 -0
- package/dist/core/services/mcp-handlers/orient.js.map +1 -0
- package/dist/core/services/mcp-handlers/semantic.d.ts +18 -4
- package/dist/core/services/mcp-handlers/semantic.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/semantic.js +161 -17
- package/dist/core/services/mcp-handlers/semantic.js.map +1 -1
- package/dist/core/services/mcp-handlers/utils.d.ts +43 -0
- package/dist/core/services/mcp-handlers/utils.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/utils.js +66 -1
- package/dist/core/services/mcp-handlers/utils.js.map +1 -1
- package/dist/core/services/mcp-watcher.d.ts +41 -0
- package/dist/core/services/mcp-watcher.d.ts.map +1 -0
- package/dist/core/services/mcp-watcher.js +177 -0
- package/dist/core/services/mcp-watcher.js.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/pipeline.d.ts +7 -0
- package/dist/types/pipeline.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/viewer/InteractiveGraphViewer.jsx +39 -10
- package/src/viewer/components/ChatPanel.jsx +8 -5
- package/src/viewer/components/ClassGraph.jsx +782 -0
- package/src/viewer/components/FlatGraph.jsx +3 -3
- package/src/viewer/utils/graph-helpers.js +9 -1
- package/src/viewer/utils/themes.js +36 -0
package/dist/cli/commands/mcp.js
CHANGED
|
@@ -22,22 +22,50 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
22
22
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
23
23
|
import { sanitizeMcpError, validateDirectory } from '../../core/services/mcp-handlers/utils.js';
|
|
24
24
|
import { DEFAULT_DRIFT_MAX_FILES } from '../../constants.js';
|
|
25
|
-
import { handleGetCallGraph, handleGetSubgraph, handleAnalyzeImpact, handleGetLowRiskRefactorCandidates, handleGetLeafFunctions, handleGetCriticalHubs, handleGetGodFunctions, } from '../../core/services/mcp-handlers/graph.js';
|
|
26
|
-
import { handleSearchCode, handleSuggestInsertionPoints, handleSearchSpecs, handleListSpecDomains, } from '../../core/services/mcp-handlers/semantic.js';
|
|
27
|
-
import {
|
|
25
|
+
import { handleGetCallGraph, handleGetSubgraph, handleAnalyzeImpact, handleGetLowRiskRefactorCandidates, handleGetLeafFunctions, handleGetCriticalHubs, handleGetGodFunctions, handleGetFileDependencies, handleTraceExecutionPath, } from '../../core/services/mcp-handlers/graph.js';
|
|
26
|
+
import { handleSearchCode, handleSuggestInsertionPoints, handleSearchSpecs, handleListSpecDomains, handleGetSpec, } from '../../core/services/mcp-handlers/semantic.js';
|
|
27
|
+
import { handleOrient } from '../../core/services/mcp-handlers/orient.js';
|
|
28
|
+
import { handleAnalyzeCodebase, handleGetArchitectureOverview, handleGetRefactorReport, handleGetDuplicateReport, handleGetSignatures, handleGetMapping, handleCheckSpecDrift, handleGetFunctionSkeleton, handleGetFunctionBody, handleGetDecisions, } from '../../core/services/mcp-handlers/analysis.js';
|
|
28
29
|
// Re-export utilities for tests
|
|
29
30
|
export { sanitizeMcpError, validateDirectory };
|
|
30
31
|
// Re-export handlers for use by chat-tools.ts and tests
|
|
31
|
-
export { handleGetCallGraph, handleGetSubgraph, handleAnalyzeImpact, handleGetLowRiskRefactorCandidates, handleGetLeafFunctions, handleGetCriticalHubs, handleGetGodFunctions, handleSearchCode, handleSuggestInsertionPoints, handleSearchSpecs, handleAnalyzeCodebase, handleGetArchitectureOverview, handleGetRefactorReport, handleGetDuplicateReport, handleGetSignatures, handleGetMapping, handleCheckSpecDrift, handleGetFunctionSkeleton, };
|
|
32
|
+
export { handleGetCallGraph, handleGetSubgraph, handleAnalyzeImpact, handleGetLowRiskRefactorCandidates, handleGetLeafFunctions, handleGetCriticalHubs, handleGetGodFunctions, handleGetFileDependencies, handleTraceExecutionPath, handleSearchCode, handleSuggestInsertionPoints, handleSearchSpecs, handleAnalyzeCodebase, handleGetArchitectureOverview, handleGetRefactorReport, handleGetDuplicateReport, handleGetSignatures, handleGetMapping, handleCheckSpecDrift, handleGetFunctionSkeleton, };
|
|
32
33
|
// ============================================================================
|
|
33
34
|
// TOOL DEFINITIONS
|
|
34
35
|
// ============================================================================
|
|
35
36
|
export const TOOL_DEFINITIONS = [
|
|
37
|
+
{
|
|
38
|
+
name: 'orient',
|
|
39
|
+
description: 'START HERE. Call this before any other tool when beginning a new task on an unfamiliar codebase. ' +
|
|
40
|
+
'Given a natural-language task description, returns in ONE call: relevant functions, source files, ' +
|
|
41
|
+
'spec domains that cover them, depth-1 call neighbours, top insertion point candidates, ' +
|
|
42
|
+
'and matching spec sections. Falls back to keyword search if the embedding server is down. ' +
|
|
43
|
+
'Requires "spec-gen analyze" to have been run at least once.',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
properties: {
|
|
47
|
+
directory: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Absolute path to the project directory',
|
|
50
|
+
},
|
|
51
|
+
task: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
description: 'Natural language description of the task, e.g. "add rate limiting to the HTTP API"',
|
|
54
|
+
},
|
|
55
|
+
limit: {
|
|
56
|
+
type: 'number',
|
|
57
|
+
description: 'Number of relevant functions to return (default: 5)',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
required: ['directory', 'task'],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
36
63
|
{
|
|
37
64
|
name: 'analyze_codebase',
|
|
38
|
-
description: '
|
|
39
|
-
'
|
|
40
|
-
'
|
|
65
|
+
description: 'USE THIS WHEN: the project has never been analyzed, or the user says the code changed ' +
|
|
66
|
+
'significantly since the last run, or other tools return "no cache found". ' +
|
|
67
|
+
'Builds the call graph, dependency graph, and refactor priorities — all without an LLM. ' +
|
|
68
|
+
'Results are cached for 1 hour; skip this if the cache is recent.',
|
|
41
69
|
inputSchema: {
|
|
42
70
|
type: 'object',
|
|
43
71
|
properties: {
|
|
@@ -55,10 +83,9 @@ export const TOOL_DEFINITIONS = [
|
|
|
55
83
|
},
|
|
56
84
|
{
|
|
57
85
|
name: 'get_architecture_overview',
|
|
58
|
-
description: '
|
|
59
|
-
'
|
|
60
|
-
'
|
|
61
|
-
'Run analyze_codebase first.',
|
|
86
|
+
description: 'USE THIS WHEN: onboarding to an unknown codebase, or before planning a large feature. ' +
|
|
87
|
+
'Returns domain clusters, cross-cluster dependencies, global entry points, and critical hubs — ' +
|
|
88
|
+
'faster than reading package.json + directory tree yourself. Run analyze_codebase first.',
|
|
62
89
|
inputSchema: {
|
|
63
90
|
type: 'object',
|
|
64
91
|
properties: {
|
|
@@ -144,9 +171,11 @@ export const TOOL_DEFINITIONS = [
|
|
|
144
171
|
},
|
|
145
172
|
{
|
|
146
173
|
name: 'get_subgraph',
|
|
147
|
-
description: 'Extract a subgraph of the call graph centred on
|
|
174
|
+
description: 'Extract a subgraph of the call graph centred on ONE specific function. ' +
|
|
175
|
+
'Call once per function — do not combine multiple function names in a single call. ' +
|
|
148
176
|
'Useful for impact analysis ("what does X call?"), dependency tracing ' +
|
|
149
177
|
'("who calls X?"), or understanding a change\'s blast radius. ' +
|
|
178
|
+
'Prefer maxDepth 1 or 2; depth ≥ 3 on large projects may timeout. ' +
|
|
150
179
|
'Run analyze_codebase first.',
|
|
151
180
|
inputSchema: {
|
|
152
181
|
type: 'object',
|
|
@@ -157,7 +186,7 @@ export const TOOL_DEFINITIONS = [
|
|
|
157
186
|
},
|
|
158
187
|
functionName: {
|
|
159
188
|
type: 'string',
|
|
160
|
-
description: 'Name of
|
|
189
|
+
description: 'Name of a single function to centre the subgraph on (exact name preferred; partial substring also accepted)',
|
|
161
190
|
},
|
|
162
191
|
direction: {
|
|
163
192
|
type: 'string',
|
|
@@ -168,7 +197,7 @@ export const TOOL_DEFINITIONS = [
|
|
|
168
197
|
},
|
|
169
198
|
maxDepth: {
|
|
170
199
|
type: 'number',
|
|
171
|
-
description: 'Maximum traversal depth (default: 3)',
|
|
200
|
+
description: 'Maximum traversal depth (default: 3, recommended: 1–2 to avoid timeout)',
|
|
172
201
|
},
|
|
173
202
|
format: {
|
|
174
203
|
type: 'string',
|
|
@@ -179,6 +208,40 @@ export const TOOL_DEFINITIONS = [
|
|
|
179
208
|
required: ['directory', 'functionName'],
|
|
180
209
|
},
|
|
181
210
|
},
|
|
211
|
+
{
|
|
212
|
+
name: 'trace_execution_path',
|
|
213
|
+
description: 'USE THIS WHEN debugging: "how does request X reach function Y?", ' +
|
|
214
|
+
'"which call chain produced this error?", "is there a path from A to B?". ' +
|
|
215
|
+
'Finds all execution paths between two functions in the call graph (BFS/DFS, ' +
|
|
216
|
+
'shortest first). Complementary to get_subgraph — use get_subgraph for ' +
|
|
217
|
+
'neighbourhood exploration, trace_execution_path for point-to-point tracing.',
|
|
218
|
+
inputSchema: {
|
|
219
|
+
type: 'object',
|
|
220
|
+
properties: {
|
|
221
|
+
directory: {
|
|
222
|
+
type: 'string',
|
|
223
|
+
description: 'Absolute path to the project directory',
|
|
224
|
+
},
|
|
225
|
+
entryFunction: {
|
|
226
|
+
type: 'string',
|
|
227
|
+
description: 'Starting function name (exact or partial match)',
|
|
228
|
+
},
|
|
229
|
+
targetFunction: {
|
|
230
|
+
type: 'string',
|
|
231
|
+
description: 'Target function name (exact or partial match)',
|
|
232
|
+
},
|
|
233
|
+
maxDepth: {
|
|
234
|
+
type: 'number',
|
|
235
|
+
description: 'Maximum path length in hops (default: 6)',
|
|
236
|
+
},
|
|
237
|
+
maxPaths: {
|
|
238
|
+
type: 'number',
|
|
239
|
+
description: 'Maximum number of paths to return (default: 10, max: 50)',
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
required: ['directory', 'entryFunction', 'targetFunction'],
|
|
243
|
+
},
|
|
244
|
+
},
|
|
182
245
|
{
|
|
183
246
|
name: 'get_mapping',
|
|
184
247
|
description: 'Return the requirement → function mapping produced by spec-gen generate. ' +
|
|
@@ -206,11 +269,10 @@ export const TOOL_DEFINITIONS = [
|
|
|
206
269
|
},
|
|
207
270
|
{
|
|
208
271
|
name: 'check_spec_drift',
|
|
209
|
-
description: '
|
|
210
|
-
'
|
|
211
|
-
'spec coverage
|
|
212
|
-
'
|
|
213
|
-
'Runs in static mode (no LLM required).',
|
|
272
|
+
description: 'USE THIS WHEN: you\'ve modified code and want to know if the specs are still aligned, ' +
|
|
273
|
+
'or when asked "is the code in sync with the spec?", "what changed since the last spec run?". ' +
|
|
274
|
+
'Compares git-changed files against spec coverage — impossible to replicate by reading files. ' +
|
|
275
|
+
'Requires spec-gen generate to have been run at least once. No LLM required.',
|
|
214
276
|
inputSchema: {
|
|
215
277
|
type: 'object',
|
|
216
278
|
properties: {
|
|
@@ -247,10 +309,10 @@ export const TOOL_DEFINITIONS = [
|
|
|
247
309
|
},
|
|
248
310
|
{
|
|
249
311
|
name: 'analyze_impact',
|
|
250
|
-
description: '
|
|
251
|
-
'
|
|
252
|
-
'
|
|
253
|
-
'
|
|
312
|
+
description: 'USE THIS WHEN: you\'re about to modify a function and want to know the full consequences — ' +
|
|
313
|
+
'"what breaks if I change X?", "what\'s the blast radius of modifying Y?". ' +
|
|
314
|
+
'Returns fan-in/out, full call chains, risk score (0–100), and refactoring strategy. ' +
|
|
315
|
+
'Call this before touching any non-trivial function. Run analyze_codebase first.',
|
|
254
316
|
inputSchema: {
|
|
255
317
|
type: 'object',
|
|
256
318
|
properties: {
|
|
@@ -399,12 +461,11 @@ export const TOOL_DEFINITIONS = [
|
|
|
399
461
|
},
|
|
400
462
|
{
|
|
401
463
|
name: 'suggest_insertion_points',
|
|
402
|
-
description: '
|
|
403
|
-
'
|
|
404
|
-
'to return ranked
|
|
405
|
-
'
|
|
406
|
-
'
|
|
407
|
-
'Requires a vector index built with "spec-gen analyze --embed".',
|
|
464
|
+
description: 'USE THIS WHEN: you need to find where to implement a new feature — ' +
|
|
465
|
+
'"where should I add rate limiting?", "where\'s the best place to add email validation?". ' +
|
|
466
|
+
'Combines semantic search + call graph to return ranked candidates with strategy. ' +
|
|
467
|
+
'Call this before writing any code; then use get_subgraph on the top candidates. ' +
|
|
468
|
+
'Requires "spec-gen analyze --embed".',
|
|
408
469
|
inputSchema: {
|
|
409
470
|
type: 'object',
|
|
410
471
|
properties: {
|
|
@@ -431,12 +492,11 @@ export const TOOL_DEFINITIONS = [
|
|
|
431
492
|
},
|
|
432
493
|
{
|
|
433
494
|
name: 'search_code',
|
|
434
|
-
description: '
|
|
435
|
-
'
|
|
436
|
-
'
|
|
437
|
-
'
|
|
438
|
-
'
|
|
439
|
-
'or the "embedding" section in .spec-gen/config.json.',
|
|
495
|
+
description: 'USE THIS WHEN: you don\'t know which file or function handles a concept — ' +
|
|
496
|
+
'"where is rate limiting implemented?", "which function validates tokens?", ' +
|
|
497
|
+
'"what handles authentication?". Beats grep when the function name is unknown. ' +
|
|
498
|
+
'Falls back to keyword search automatically if the embedding server is down. ' +
|
|
499
|
+
'Requires "spec-gen analyze --embed" to have been run at least once.',
|
|
440
500
|
inputSchema: {
|
|
441
501
|
type: 'object',
|
|
442
502
|
properties: {
|
|
@@ -478,13 +538,10 @@ export const TOOL_DEFINITIONS = [
|
|
|
478
538
|
},
|
|
479
539
|
{
|
|
480
540
|
name: 'search_specs',
|
|
481
|
-
description: '
|
|
482
|
-
'
|
|
483
|
-
'Use
|
|
484
|
-
'
|
|
485
|
-
'Requires a spec index built with "spec-gen analyze --embed" or "spec-gen analyze --reindex-specs". ' +
|
|
486
|
-
'Configure the embedding endpoint via EMBED_BASE_URL + EMBED_MODEL env vars ' +
|
|
487
|
-
'or the "embedding" section in .spec-gen/config.json.',
|
|
541
|
+
description: 'USE THIS WHEN: asked "which spec covers X?", "what does the spec say about Y?", ' +
|
|
542
|
+
'"which requirement describes Z?". Searches specs by meaning and returns linked source files. ' +
|
|
543
|
+
'Use spec-first: check what the spec says before reading or writing code. ' +
|
|
544
|
+
'Requires "spec-gen analyze --embed" or "spec-gen analyze --reindex-specs".',
|
|
488
545
|
inputSchema: {
|
|
489
546
|
type: 'object',
|
|
490
547
|
properties: {
|
|
@@ -512,20 +569,120 @@ export const TOOL_DEFINITIONS = [
|
|
|
512
569
|
required: ['directory', 'query'],
|
|
513
570
|
},
|
|
514
571
|
},
|
|
572
|
+
{
|
|
573
|
+
name: 'get_spec',
|
|
574
|
+
description: 'Return the full content of a spec domain\'s specification file (spec.md) and the ' +
|
|
575
|
+
'functions that implement it. Use this to read requirements directly when you know the ' +
|
|
576
|
+
'domain name. Complements search_specs (which searches by meaning) by giving exact ' +
|
|
577
|
+
'read access to a known domain.',
|
|
578
|
+
inputSchema: {
|
|
579
|
+
type: 'object',
|
|
580
|
+
properties: {
|
|
581
|
+
directory: { type: 'string', description: 'Absolute path to the project directory' },
|
|
582
|
+
domain: {
|
|
583
|
+
type: 'string',
|
|
584
|
+
description: 'Domain name as returned by list_spec_domains (e.g. "auth", "analyzer")',
|
|
585
|
+
},
|
|
586
|
+
},
|
|
587
|
+
required: ['directory', 'domain'],
|
|
588
|
+
},
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
name: 'get_function_body',
|
|
592
|
+
description: 'Return the exact source code of a named function in a file. ' +
|
|
593
|
+
'Use this after search_code or get_function_skeleton to read the full implementation. ' +
|
|
594
|
+
'Requires a prior "spec-gen analyze" run for precise byte-range extraction; ' +
|
|
595
|
+
'falls back to a brace-depth scan when the call graph is unavailable.',
|
|
596
|
+
inputSchema: {
|
|
597
|
+
type: 'object',
|
|
598
|
+
properties: {
|
|
599
|
+
directory: { type: 'string', description: 'Absolute path to the project directory' },
|
|
600
|
+
filePath: {
|
|
601
|
+
type: 'string',
|
|
602
|
+
description: 'File path relative to the project directory, e.g. "src/auth/jwt.ts"',
|
|
603
|
+
},
|
|
604
|
+
functionName: {
|
|
605
|
+
type: 'string',
|
|
606
|
+
description: 'Name of the function to extract, e.g. "verifyToken"',
|
|
607
|
+
},
|
|
608
|
+
},
|
|
609
|
+
required: ['directory', 'filePath', 'functionName'],
|
|
610
|
+
},
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
name: 'get_file_dependencies',
|
|
614
|
+
description: 'Return the file-level import dependencies for a given source file. ' +
|
|
615
|
+
'Answers "what does this file import?" and "what files import this file?". ' +
|
|
616
|
+
'Useful for planning refactors, understanding coupling, or scoping the blast radius ' +
|
|
617
|
+
'of a change. Reads the dependency-graph.json produced by "spec-gen analyze".',
|
|
618
|
+
inputSchema: {
|
|
619
|
+
type: 'object',
|
|
620
|
+
properties: {
|
|
621
|
+
directory: { type: 'string', description: 'Absolute path to the project directory' },
|
|
622
|
+
filePath: {
|
|
623
|
+
type: 'string',
|
|
624
|
+
description: 'File path relative to the project root, e.g. "src/core/analyzer/vector-index.ts"',
|
|
625
|
+
},
|
|
626
|
+
direction: {
|
|
627
|
+
type: 'string',
|
|
628
|
+
enum: ['imports', 'importedBy', 'both'],
|
|
629
|
+
description: '"imports" = what this file depends on, "importedBy" = what depends on this file, "both" = both directions (default)',
|
|
630
|
+
},
|
|
631
|
+
},
|
|
632
|
+
required: ['directory', 'filePath'],
|
|
633
|
+
},
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
name: 'get_decisions',
|
|
637
|
+
description: 'List or search Architecture Decision Records (ADRs) stored in openspec/decisions/. ' +
|
|
638
|
+
'Use this when you need to understand why an architectural decision was made, ' +
|
|
639
|
+
'or to check whether a pattern is already documented. ' +
|
|
640
|
+
'ADRs are generated by "spec-gen generate --adrs".',
|
|
641
|
+
inputSchema: {
|
|
642
|
+
type: 'object',
|
|
643
|
+
properties: {
|
|
644
|
+
directory: { type: 'string', description: 'Absolute path to the project directory' },
|
|
645
|
+
query: {
|
|
646
|
+
type: 'string',
|
|
647
|
+
description: 'Optional text filter — returns only ADRs whose title or content contains this string',
|
|
648
|
+
},
|
|
649
|
+
},
|
|
650
|
+
required: ['directory'],
|
|
651
|
+
},
|
|
652
|
+
},
|
|
515
653
|
];
|
|
516
|
-
|
|
517
|
-
// MCP SERVER
|
|
518
|
-
// ============================================================================
|
|
519
|
-
async function startMcpServer() {
|
|
654
|
+
async function startMcpServer(options = {}) {
|
|
520
655
|
const server = new Server({ name: 'spec-gen', version: '1.0.0' }, { capabilities: { tools: {} } });
|
|
521
656
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
522
657
|
tools: TOOL_DEFINITIONS,
|
|
523
658
|
}));
|
|
659
|
+
// --watch-auto: start the watcher on the first tool call that carries a directory
|
|
660
|
+
let autoWatcher;
|
|
524
661
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
525
662
|
const { name, arguments: args = {} } = request.params;
|
|
663
|
+
if (options.watchAuto && !autoWatcher) {
|
|
664
|
+
const dir = args.directory;
|
|
665
|
+
if (typeof dir === 'string') {
|
|
666
|
+
const { resolve } = await import('node:path');
|
|
667
|
+
const { McpWatcher } = await import('../../core/services/mcp-watcher.js');
|
|
668
|
+
const debounceMs = parseInt(options.watchDebounce ?? '400', 10);
|
|
669
|
+
autoWatcher = new McpWatcher({
|
|
670
|
+
rootPath: resolve(dir),
|
|
671
|
+
debounceMs: isNaN(debounceMs) ? 400 : debounceMs,
|
|
672
|
+
});
|
|
673
|
+
await autoWatcher.start();
|
|
674
|
+
const cleanup = () => autoWatcher.stop().then(() => process.exit(0));
|
|
675
|
+
process.on('SIGINT', cleanup);
|
|
676
|
+
process.on('SIGTERM', cleanup);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
526
679
|
try {
|
|
527
680
|
let result;
|
|
528
|
-
if (name === '
|
|
681
|
+
if (name === 'orient') {
|
|
682
|
+
const { directory, task, limit = 5 } = args;
|
|
683
|
+
result = await handleOrient(directory, task, limit);
|
|
684
|
+
}
|
|
685
|
+
else if (name === 'analyze_codebase') {
|
|
529
686
|
const { directory, force = false } = args;
|
|
530
687
|
result = await handleAnalyzeCodebase(directory, force);
|
|
531
688
|
}
|
|
@@ -549,6 +706,10 @@ async function startMcpServer() {
|
|
|
549
706
|
const { directory, functionName, direction = 'downstream', maxDepth = 3, format = 'json' } = args;
|
|
550
707
|
result = await handleGetSubgraph(directory, functionName, direction, maxDepth, format);
|
|
551
708
|
}
|
|
709
|
+
else if (name === 'trace_execution_path') {
|
|
710
|
+
const { directory, entryFunction, targetFunction, maxDepth = 6, maxPaths = 10 } = args;
|
|
711
|
+
result = await handleTraceExecutionPath(directory, entryFunction, targetFunction, maxDepth, maxPaths);
|
|
712
|
+
}
|
|
552
713
|
else if (name === 'get_mapping') {
|
|
553
714
|
const { directory, domain, orphansOnly } = args;
|
|
554
715
|
result = await handleGetMapping(directory, domain, orphansOnly);
|
|
@@ -601,6 +762,22 @@ async function startMcpServer() {
|
|
|
601
762
|
const { directory } = args;
|
|
602
763
|
result = await handleListSpecDomains(directory);
|
|
603
764
|
}
|
|
765
|
+
else if (name === 'get_spec') {
|
|
766
|
+
const { directory, domain } = args;
|
|
767
|
+
result = await handleGetSpec(directory, domain);
|
|
768
|
+
}
|
|
769
|
+
else if (name === 'get_function_body') {
|
|
770
|
+
const { directory, filePath, functionName } = args;
|
|
771
|
+
result = await handleGetFunctionBody(directory, filePath, functionName);
|
|
772
|
+
}
|
|
773
|
+
else if (name === 'get_file_dependencies') {
|
|
774
|
+
const { directory, filePath, direction = 'both' } = args;
|
|
775
|
+
result = await handleGetFileDependencies(directory, filePath, direction);
|
|
776
|
+
}
|
|
777
|
+
else if (name === 'get_decisions') {
|
|
778
|
+
const { directory, query } = args;
|
|
779
|
+
result = await handleGetDecisions(directory, query);
|
|
780
|
+
}
|
|
604
781
|
else {
|
|
605
782
|
return {
|
|
606
783
|
content: [{ type: 'text', text: `Unknown tool: ${name}` }],
|
|
@@ -621,11 +798,27 @@ async function startMcpServer() {
|
|
|
621
798
|
});
|
|
622
799
|
const transport = new StdioServerTransport();
|
|
623
800
|
await server.connect(transport);
|
|
801
|
+
if (options.watch) {
|
|
802
|
+
const { resolve } = await import('node:path');
|
|
803
|
+
const { McpWatcher } = await import('../../core/services/mcp-watcher.js');
|
|
804
|
+
const debounceMs = parseInt(options.watchDebounce ?? '400', 10);
|
|
805
|
+
const watcher = new McpWatcher({
|
|
806
|
+
rootPath: resolve(options.watch),
|
|
807
|
+
debounceMs: isNaN(debounceMs) ? 400 : debounceMs,
|
|
808
|
+
});
|
|
809
|
+
await watcher.start();
|
|
810
|
+
const cleanup = () => watcher.stop().then(() => process.exit(0));
|
|
811
|
+
process.on('SIGINT', cleanup);
|
|
812
|
+
process.on('SIGTERM', cleanup);
|
|
813
|
+
}
|
|
624
814
|
}
|
|
625
815
|
// ============================================================================
|
|
626
816
|
// COMMAND EXPORT
|
|
627
817
|
// ============================================================================
|
|
628
818
|
export const mcpCommand = new Command('mcp')
|
|
629
819
|
.description('Start spec-gen as an MCP server (stdio transport, for Cline/Claude Code)')
|
|
630
|
-
.
|
|
820
|
+
.option('--watch <directory>', 'Watch a project directory and incrementally re-index signatures on file changes')
|
|
821
|
+
.option('--watch-auto', 'Auto-detect the project directory from the first tool call and start watching (recommended for Cline/Claude Code)', false)
|
|
822
|
+
.option('--watch-debounce <ms>', 'Debounce delay in ms before re-indexing after a file change (default: 400)', '400')
|
|
823
|
+
.action((options) => startMcpServer(options));
|
|
631
824
|
//# sourceMappingURL=mcp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kCAAkC,EAClC,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AAEtD,gCAAgC;AAChC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;AAE/C,wDAAwD;AACxD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kCAAkC,EAClC,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC;AAEF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,mGAAmG;YACnG,oGAAoG;YACpG,yFAAyF;YACzF,4FAA4F;YAC5F,6DAA6D;QAC/D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oFAAoF;iBAClG;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;SAChC;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,wFAAwF;YACxF,4EAA4E;YAC5E,yFAAyF;YACzF,kEAAkE;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kEAAkE;iBAChF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EACT,wFAAwF;YACxF,gGAAgG;YAChG,yFAAyF;QAC3F,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wEAAwE;iBACtF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,yEAAyE;YACzE,6EAA6E;YAC7E,mFAAmF;YACnF,sDAAsD;QACxD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wEAAwE;iBACtF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,oEAAoE;YACpE,0EAA0E;YAC1E,sEAAsE;YACtE,6BAA6B;QAC/B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,uFAAuF;YACvF,oFAAoF;YACpF,0EAA0E;YAC1E,uEAAuE;YACvE,oDAAoD;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wEAAwE;iBACtF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,uEAAuE;YACvE,iFAAiF;YACjF,qEAAqE;QACvE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yEAAyE;iBAC5E;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,yEAAyE;YACzE,oFAAoF;YACpF,uEAAuE;YACvE,+DAA+D;YAC/D,mEAAmE;YACnE,6BAA6B;QAC/B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6GAA6G;iBAC3H;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC;oBACxC,WAAW,EACT,mDAAmD;wBACnD,sCAAsC;wBACtC,2BAA2B;iBAC9B;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yEAAyE;iBACvF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;oBACzB,WAAW,EAAE,gEAAgE;iBAC9E;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC;SACxC;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,mEAAmE;YACnE,2EAA2E;YAC3E,8EAA8E;YAC9E,wEAAwE;YACxE,6EAA6E;QAC/E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0DAA0D;iBACxE;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,CAAC;SAC3D;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,2EAA2E;YAC3E,4EAA4E;YAC5E,0EAA0E;YAC1E,4DAA4D;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gDAAgD;iBAC9D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+DAA+D;iBAC7E;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,wFAAwF;YACxF,+FAA+F;YAC/F,+FAA+F;YAC/F,6EAA6E;QAC/E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mEAAmE;iBACjF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+DAA+D;iBAC7E;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,sDAAsD;iBACpE;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,sDAAsD;iBACpE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;oBAClC,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,6FAA6F;YAC7F,4EAA4E;YAC5E,sFAAsF;YACtF,iFAAiF;QACnF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6DAA6D;iBAC3E;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6DAA6D;iBAC3E;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;SAClC;KACF;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,WAAW,EACT,2EAA2E;YAC3E,oEAAoE;YACpE,uEAAuE;YACvE,6BAA6B;QAC/B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kEAAkE;iBAChF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,2EAA2E;YAC3E,+EAA+E;YAC/E,4EAA4E;YAC5E,6BAA6B;QAC/B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+DAA+D;iBAC7E;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;oBAC/B,WAAW,EACT,4EAA4E;iBAC/E;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,sFAAsF;YACtF,qFAAqF;YACrF,mFAAmF;YACnF,0EAA0E;QAC5E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gDAAgD;iBAC9D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8DAA8D;iBAC5E;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,gFAAgF;YAChF,oFAAoF;YACpF,+DAA+D;YAC/D,8EAA8E;YAC9E,mDAAmD;QACrD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;SACpC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,mFAAmF;YACnF,2DAA2D;YAC3D,iFAAiF;YACjF,wDAAwD;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8DAA8D;iBAC5E;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,qEAAqE;YACrE,2FAA2F;YAC3F,mFAAmF;YACnF,kFAAkF;YAClF,sCAAsC;QACxC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4DAA4D;wBAC5D,uFAAuF;iBAC1F;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0EAA0E;iBACxF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;SACvC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,4EAA4E;YAC5E,6EAA6E;YAC7E,gFAAgF;YAChF,8EAA8E;YAC9E,qEAAqE;QACvE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0EAA0E;iBACxF;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oEAAoE;iBAClF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;SACjC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,uDAAuD;YACvD,wGAAwG;QAC1G,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;aACrF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,kFAAkF;YAClF,+FAA+F;YAC/F,2EAA2E;YAC3E,4EAA4E;QAC9E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0DAA0D;iBACxE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yFAAyF;iBACvG;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;SACjC;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,mFAAmF;YACnF,wFAAwF;YACxF,oFAAoF;YACpF,gCAAgC;QAClC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBACpF,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wEAAwE;iBACtF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;SAClC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,8DAA8D;YAC9D,uFAAuF;YACvF,6EAA6E;YAC7E,sEAAsE;QACxE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBACpF,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qEAAqE;iBACnF;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC;SACpD;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,qEAAqE;YACrE,4EAA4E;YAC5E,qFAAqF;YACrF,8EAA8E;QAChF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBACpF,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kFAAkF;iBAChG;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC;oBACvC,WAAW,EAAE,qHAAqH;iBACnI;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;SACpC;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,qFAAqF;YACrF,+EAA+E;YAC/E,uDAAuD;YACvD,mDAAmD;QACrD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBACpF,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sFAAsF;iBACpG;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;CACF,CAAC;AAYF,KAAK,UAAU,cAAc,CAAC,UAA4B,EAAE;IAC1D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EACtC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC,CAAC;IAEJ,kFAAkF;IAClF,IAAI,WAAgF,CAAC;IAErF,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEtD,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,GAAG,GAAI,IAAgC,CAAC,SAAS,CAAC;YACxD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC9C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;gBAC1E,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;gBAChE,WAAW,GAAG,IAAI,UAAU,CAAC;oBAC3B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;iBACjD,CAAC,CAAC;gBACH,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAG,OAAO,CAAC,CAAC;gBAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,MAAe,CAAC;YAEpB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAA2D,CAAC;gBACnG,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACvC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,IAA8C,CAAC;gBACpF,MAAM,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;gBAChD,MAAM,EAAE,SAAS,EAAE,GAAG,IAA6B,CAAC;gBACpD,MAAM,GAAG,MAAM,6BAA6B,CAAC,SAAS,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,IAA6B,CAAC;gBACpD,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrC,MAAM,EAAE,SAAS,EAAE,GAAG,IAA6B,CAAC;gBACpD,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAmD,CAAC;gBACvF,MAAM,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBACnC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,GAAG,YAAY,EAAE,QAAQ,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GACxF,IAAmJ,CAAC;gBACtJ,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzF,CAAC;iBAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC3C,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAE,GAC7E,IAAkH,CAAC;gBACrH,MAAM,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACxG,CAAC;iBAAM,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAClC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAqE,CAAC;gBACjH,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GACpC,IAA6D,CAAC;gBAChE,MAAM,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,IAAI,KAAK,kCAAkC,EAAE,CAAC;gBACvD,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,WAAW,EAAE,GACzC,IAAmE,CAAC;gBACtE,MAAM,GAAG,MAAM,kCAAkC,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACnF,CAAC;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACzC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,GAC5D,IAAuG,CAAC;gBAC1G,MAAM,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAC/E,CAAC;iBAAM,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,GAC3C,IAAgE,CAAC;gBACnE,MAAM,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,IAA6B,CAAC;gBACpD,MAAM,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBAC5C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAA+C,CAAC;gBAChF,MAAM,GAAG,MAAM,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChE,CAAC;iBAAM,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,CAAC,EAAE,GAChD,IAA0E,CAAC;gBAC7E,MAAM,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACvC,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,uBAAuB,EAAE,GAClH,IAA4I,CAAC;gBAC/I,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACzF,CAAC;iBAAM,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAClC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACxD,IAAkG,CAAC;gBACrG,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/E,CAAC;iBAAM,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;gBAC/C,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,GACnD,IAAqF,CAAC;gBACxF,MAAM,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvF,CAAC;iBAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBACnC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GACrD,IAA+F,CAAC;gBAClG,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,MAAM,EAAE,SAAS,EAAE,GAAG,IAA6B,CAAC;gBACpD,MAAM,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAA6C,CAAC;gBAC5E,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,GACzC,IAAqE,CAAC;gBACxE,MAAM,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC1E,CAAC;iBAAM,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBAC5C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,EAAE,GAC/C,IAA8F,CAAC;gBACjG,MAAM,GAAG,MAAM,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBACpC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAA6C,CAAC;gBAC3E,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;oBAC1D,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GACR,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAExE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aAClC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACzE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC;YAC7B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;SACjD,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAG,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,0EAA0E,CAAC;KACvF,MAAM,CAAC,qBAAqB,EAAE,iFAAiF,CAAC;KAChH,MAAM,CAAC,cAAc,EAAE,mHAAmH,EAAE,KAAK,CAAC;KAClJ,MAAM,CAAC,uBAAuB,EAAE,4EAA4E,EAAE,KAAK,CAAC;KACpH,MAAM,CAAC,CAAC,OAAyB,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/view.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,kGAAkG;AAClG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO1E;AAYD,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/view.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,kGAAkG;AAClG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO1E;AAYD,eAAO,MAAM,WAAW,SAgiBrB,CAAC"}
|
|
@@ -126,6 +126,29 @@ export const viewCommand = new Command('view')
|
|
|
126
126
|
res.end(JSON.stringify({ error: sanitizeErrorMessage(err.message) }));
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
|
+
devServer.middlewares.use('/api/class-graph', async (_req, res) => {
|
|
130
|
+
try {
|
|
131
|
+
if (!(await fileExists(llmContextPath))) {
|
|
132
|
+
res.statusCode = 404;
|
|
133
|
+
res.end(JSON.stringify({ error: 'llm-context.json not found' }));
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const raw = JSON.parse(await readFile(llmContextPath, 'utf-8'));
|
|
137
|
+
const cg = raw.callGraph ?? {};
|
|
138
|
+
res.setHeader('Content-Type', 'application/json; charset=utf-8');
|
|
139
|
+
res.statusCode = 200;
|
|
140
|
+
res.end(JSON.stringify({
|
|
141
|
+
classes: cg.classes ?? [],
|
|
142
|
+
inheritanceEdges: cg.inheritanceEdges ?? [],
|
|
143
|
+
edges: cg.edges ?? [],
|
|
144
|
+
nodes: cg.nodes ?? [],
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
res.statusCode = 500;
|
|
149
|
+
res.end(JSON.stringify({ error: sanitizeErrorMessage(err.message) }));
|
|
150
|
+
}
|
|
151
|
+
});
|
|
129
152
|
devServer.middlewares.use('/api/refactor-priorities', async (_req, res) => {
|
|
130
153
|
try {
|
|
131
154
|
if (!(await fileExists(refactorPath))) {
|
|
@@ -400,10 +423,16 @@ export const viewCommand = new Command('view')
|
|
|
400
423
|
});
|
|
401
424
|
if (abortController.signal.aborted)
|
|
402
425
|
return;
|
|
403
|
-
const highlightIds =
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
426
|
+
const highlightIds = [];
|
|
427
|
+
const highlightPaths = [];
|
|
428
|
+
for (const p of filePaths) {
|
|
429
|
+
const id = pathToNodeId.get(normalise(p));
|
|
430
|
+
if (id) {
|
|
431
|
+
highlightIds.push(id);
|
|
432
|
+
highlightPaths.push(p);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
sendEvent({ type: 'reply', reply, highlightIds, filePaths: highlightPaths });
|
|
407
436
|
res.end();
|
|
408
437
|
}
|
|
409
438
|
catch (err) {
|