@samchon/graph 0.1.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/LICENSE +21 -0
- package/README.md +129 -0
- package/lib/AsyncSamchonGraphSource.d.ts +2 -0
- package/lib/AsyncSamchonGraphSource.js +3 -0
- package/lib/AsyncSamchonGraphSource.js.map +1 -0
- package/lib/SamchonGraphApplication.d.ts +10 -0
- package/lib/SamchonGraphApplication.js +64 -0
- package/lib/SamchonGraphApplication.js.map +1 -0
- package/lib/SamchonGraphSource.d.ts +2 -0
- package/lib/SamchonGraphSource.js +3 -0
- package/lib/SamchonGraphSource.js.map +1 -0
- package/lib/application.d.ts +3 -0
- package/lib/application.js +20 -0
- package/lib/application.js.map +1 -0
- package/lib/bin.d.ts +2 -0
- package/lib/bin.js +8 -0
- package/lib/bin.js.map +1 -0
- package/lib/index.d.ts +13 -0
- package/lib/index.js +30 -0
- package/lib/index.js.map +1 -0
- package/lib/indexer/IBuildGraphOptions.d.ts +41 -0
- package/lib/indexer/IBuildGraphOptions.js +3 -0
- package/lib/indexer/IBuildGraphOptions.js.map +1 -0
- package/lib/indexer/IIndexerResult.d.ts +5 -0
- package/lib/indexer/IIndexerResult.js +3 -0
- package/lib/indexer/IIndexerResult.js.map +1 -0
- package/lib/indexer/ILanguageSpec.d.ts +10 -0
- package/lib/indexer/ILanguageSpec.js +3 -0
- package/lib/indexer/ILanguageSpec.js.map +1 -0
- package/lib/indexer/LANGUAGE_SPECS.d.ts +2 -0
- package/lib/indexer/LANGUAGE_SPECS.js +114 -0
- package/lib/indexer/LANGUAGE_SPECS.js.map +1 -0
- package/lib/indexer/allExtensions.d.ts +2 -0
- package/lib/indexer/allExtensions.js +16 -0
- package/lib/indexer/allExtensions.js.map +1 -0
- package/lib/indexer/buildGraph.d.ts +3 -0
- package/lib/indexer/buildGraph.js +10 -0
- package/lib/indexer/buildGraph.js.map +1 -0
- package/lib/indexer/buildGraphDump.d.ts +3 -0
- package/lib/indexer/buildGraphDump.js +394 -0
- package/lib/indexer/buildGraphDump.js.map +1 -0
- package/lib/indexer/buildLspGraph.d.ts +3 -0
- package/lib/indexer/buildLspGraph.js +617 -0
- package/lib/indexer/buildLspGraph.js.map +1 -0
- package/lib/indexer/buildStaticGraph.d.ts +3 -0
- package/lib/indexer/buildStaticGraph.js +479 -0
- package/lib/indexer/buildStaticGraph.js.map +1 -0
- package/lib/indexer/decoratorsAbove.d.ts +1 -0
- package/lib/indexer/decoratorsAbove.js +14 -0
- package/lib/indexer/decoratorsAbove.js.map +1 -0
- package/lib/indexer/languageOf.d.ts +2 -0
- package/lib/indexer/languageOf.js +19 -0
- package/lib/indexer/languageOf.js.map +1 -0
- package/lib/indexer/languages.d.ts +5 -0
- package/lib/indexer/languages.js +22 -0
- package/lib/indexer/languages.js.map +1 -0
- package/lib/indexer/lspIndexer.d.ts +1 -0
- package/lib/indexer/lspIndexer.js +18 -0
- package/lib/indexer/lspIndexer.js.map +1 -0
- package/lib/indexer/overrideEdges.d.ts +2 -0
- package/lib/indexer/overrideEdges.js +45 -0
- package/lib/indexer/overrideEdges.js.map +1 -0
- package/lib/indexer/resolveType.d.ts +2 -0
- package/lib/indexer/resolveType.js +11 -0
- package/lib/indexer/resolveType.js.map +1 -0
- package/lib/indexer/specOf.d.ts +3 -0
- package/lib/indexer/specOf.js +8 -0
- package/lib/indexer/specOf.js.map +1 -0
- package/lib/indexer/staticIndexer.d.ts +1 -0
- package/lib/indexer/staticIndexer.js +18 -0
- package/lib/indexer/staticIndexer.js.map +1 -0
- package/lib/indexer/supertypesOf.d.ts +4 -0
- package/lib/indexer/supertypesOf.js +48 -0
- package/lib/indexer/supertypesOf.js.map +1 -0
- package/lib/lsp/DocumentSymbolResult.d.ts +3 -0
- package/lib/lsp/DocumentSymbolResult.js +3 -0
- package/lib/lsp/DocumentSymbolResult.js.map +1 -0
- package/lib/lsp/IDiagnostic.d.ts +8 -0
- package/lib/lsp/IDiagnostic.js +3 -0
- package/lib/lsp/IDiagnostic.js.map +1 -0
- package/lib/lsp/IDocumentSymbol.d.ts +9 -0
- package/lib/lsp/IDocumentSymbol.js +3 -0
- package/lib/lsp/IDocumentSymbol.js.map +1 -0
- package/lib/lsp/ILocation.d.ts +5 -0
- package/lib/lsp/ILocation.js +3 -0
- package/lib/lsp/ILocation.js.map +1 -0
- package/lib/lsp/IPosition.d.ts +4 -0
- package/lib/lsp/IPosition.js +3 -0
- package/lib/lsp/IPosition.js.map +1 -0
- package/lib/lsp/IRange.d.ts +5 -0
- package/lib/lsp/IRange.js +3 -0
- package/lib/lsp/IRange.js.map +1 -0
- package/lib/lsp/ISymbolInformation.d.ts +7 -0
- package/lib/lsp/ISymbolInformation.js +3 -0
- package/lib/lsp/ISymbolInformation.js.map +1 -0
- package/lib/lsp/LspClient.d.ts +17 -0
- package/lib/lsp/LspClient.js +140 -0
- package/lib/lsp/LspClient.js.map +1 -0
- package/lib/lsp/isDocumentSymbol.d.ts +3 -0
- package/lib/lsp/isDocumentSymbol.js +7 -0
- package/lib/lsp/isDocumentSymbol.js.map +1 -0
- package/lib/lsp/types.d.ts +8 -0
- package/lib/lsp/types.js +25 -0
- package/lib/lsp/types.js.map +1 -0
- package/lib/mcp/createServer.d.ts +3 -0
- package/lib/mcp/createServer.js +1947 -0
- package/lib/mcp/createServer.js.map +1 -0
- package/lib/mcp/startServer.d.ts +5 -0
- package/lib/mcp/startServer.js +23 -0
- package/lib/mcp/startServer.js.map +1 -0
- package/lib/model/GraphMemory.d.ts +25 -0
- package/lib/model/GraphMemory.js +141 -0
- package/lib/model/GraphMemory.js.map +1 -0
- package/lib/operations/bound.d.ts +1 -0
- package/lib/operations/bound.js +8 -0
- package/lib/operations/bound.js.map +1 -0
- package/lib/operations/common.d.ts +15 -0
- package/lib/operations/common.js +32 -0
- package/lib/operations/common.js.map +1 -0
- package/lib/operations/compareEdges.d.ts +2 -0
- package/lib/operations/compareEdges.js +10 -0
- package/lib/operations/compareEdges.js.map +1 -0
- package/lib/operations/edgeRank.d.ts +1 -0
- package/lib/operations/edgeRank.js +25 -0
- package/lib/operations/edgeRank.js.map +1 -0
- package/lib/operations/isExecution.d.ts +1 -0
- package/lib/operations/isExecution.js +11 -0
- package/lib/operations/isExecution.js.map +1 -0
- package/lib/operations/isPublicApiNoisePath.d.ts +2 -0
- package/lib/operations/isPublicApiNoisePath.js +11 -0
- package/lib/operations/isPublicApiNoisePath.js.map +1 -0
- package/lib/operations/isStructural.d.ts +1 -0
- package/lib/operations/isStructural.js +7 -0
- package/lib/operations/isStructural.js.map +1 -0
- package/lib/operations/isSupportPath.d.ts +2 -0
- package/lib/operations/isSupportPath.js +16 -0
- package/lib/operations/isSupportPath.js.map +1 -0
- package/lib/operations/isTestPath.d.ts +1 -0
- package/lib/operations/isTestPath.js +9 -0
- package/lib/operations/isTestPath.js.map +1 -0
- package/lib/operations/isTypeEdge.d.ts +1 -0
- package/lib/operations/isTypeEdge.js +11 -0
- package/lib/operations/isTypeEdge.js.map +1 -0
- package/lib/operations/publicEvidence.d.ts +2 -0
- package/lib/operations/publicEvidence.js +13 -0
- package/lib/operations/publicEvidence.js.map +1 -0
- package/lib/operations/referencesFromEdges.d.ts +3 -0
- package/lib/operations/referencesFromEdges.js +38 -0
- package/lib/operations/referencesFromEdges.js.map +1 -0
- package/lib/operations/resolveHandle.d.ts +6 -0
- package/lib/operations/resolveHandle.js +28 -0
- package/lib/operations/resolveHandle.js.map +1 -0
- package/lib/operations/resultGuide.d.ts +1 -0
- package/lib/operations/resultGuide.js +7 -0
- package/lib/operations/resultGuide.js.map +1 -0
- package/lib/operations/resultNext.d.ts +2 -0
- package/lib/operations/resultNext.js +7 -0
- package/lib/operations/resultNext.js.map +1 -0
- package/lib/operations/runDetails.d.ts +8 -0
- package/lib/operations/runDetails.js +190 -0
- package/lib/operations/runDetails.js.map +1 -0
- package/lib/operations/runEntrypoints.d.ts +9 -0
- package/lib/operations/runEntrypoints.js +122 -0
- package/lib/operations/runEntrypoints.js.map +1 -0
- package/lib/operations/runLookup.d.ts +10 -0
- package/lib/operations/runLookup.js +229 -0
- package/lib/operations/runLookup.js.map +1 -0
- package/lib/operations/runOverview.d.ts +10 -0
- package/lib/operations/runOverview.js +142 -0
- package/lib/operations/runOverview.js.map +1 -0
- package/lib/operations/runTour.d.ts +8 -0
- package/lib/operations/runTour.js +539 -0
- package/lib/operations/runTour.js.map +1 -0
- package/lib/operations/runTrace.d.ts +10 -0
- package/lib/operations/runTrace.js +283 -0
- package/lib/operations/runTrace.js.map +1 -0
- package/lib/operations/signatureOf.d.ts +2 -0
- package/lib/operations/signatureOf.js +45 -0
- package/lib/operations/signatureOf.js.map +1 -0
- package/lib/operations/subwords.d.ts +1 -0
- package/lib/operations/subwords.js +12 -0
- package/lib/operations/subwords.js.map +1 -0
- package/lib/operations/summaryOf.d.ts +2 -0
- package/lib/operations/summaryOf.js +24 -0
- package/lib/operations/summaryOf.js.map +1 -0
- package/lib/runGraph.d.ts +1 -0
- package/lib/runGraph.js +165 -0
- package/lib/runGraph.js.map +1 -0
- package/lib/structures/GraphEdgeKind.d.ts +10 -0
- package/lib/structures/GraphEdgeKind.js +3 -0
- package/lib/structures/GraphEdgeKind.js.map +1 -0
- package/lib/structures/GraphLanguage.d.ts +2 -0
- package/lib/structures/GraphLanguage.js +3 -0
- package/lib/structures/GraphLanguage.js.map +1 -0
- package/lib/structures/GraphNodeKind.d.ts +11 -0
- package/lib/structures/GraphNodeKind.js +3 -0
- package/lib/structures/GraphNodeKind.js.map +1 -0
- package/lib/structures/IGraphDecorator.d.ts +22 -0
- package/lib/structures/IGraphDecorator.js +3 -0
- package/lib/structures/IGraphDecorator.js.map +1 -0
- package/lib/structures/IGraphDetails.d.ts +126 -0
- package/lib/structures/IGraphDetails.js +3 -0
- package/lib/structures/IGraphDetails.js.map +1 -0
- package/lib/structures/IGraphDiagnostic.d.ts +23 -0
- package/lib/structures/IGraphDiagnostic.js +3 -0
- package/lib/structures/IGraphDiagnostic.js.map +1 -0
- package/lib/structures/IGraphDump.d.ts +37 -0
- package/lib/structures/IGraphDump.js +3 -0
- package/lib/structures/IGraphDump.js.map +1 -0
- package/lib/structures/IGraphEdge.d.ts +20 -0
- package/lib/structures/IGraphEdge.js +3 -0
- package/lib/structures/IGraphEdge.js.map +1 -0
- package/lib/structures/IGraphEntrypoints.d.ts +57 -0
- package/lib/structures/IGraphEntrypoints.js +3 -0
- package/lib/structures/IGraphEntrypoints.js.map +1 -0
- package/lib/structures/IGraphEscape.d.ts +40 -0
- package/lib/structures/IGraphEscape.js +3 -0
- package/lib/structures/IGraphEscape.js.map +1 -0
- package/lib/structures/IGraphEvidence.d.ts +24 -0
- package/lib/structures/IGraphEvidence.js +3 -0
- package/lib/structures/IGraphEvidence.js.map +1 -0
- package/lib/structures/IGraphLookup.d.ts +66 -0
- package/lib/structures/IGraphLookup.js +3 -0
- package/lib/structures/IGraphLookup.js.map +1 -0
- package/lib/structures/IGraphNext.d.ts +15 -0
- package/lib/structures/IGraphNext.js +3 -0
- package/lib/structures/IGraphNext.js.map +1 -0
- package/lib/structures/IGraphNode.d.ts +62 -0
- package/lib/structures/IGraphNode.js +3 -0
- package/lib/structures/IGraphNode.js.map +1 -0
- package/lib/structures/IGraphOverview.d.ts +100 -0
- package/lib/structures/IGraphOverview.js +3 -0
- package/lib/structures/IGraphOverview.js.map +1 -0
- package/lib/structures/IGraphTour.d.ts +54 -0
- package/lib/structures/IGraphTour.js +3 -0
- package/lib/structures/IGraphTour.js.map +1 -0
- package/lib/structures/IGraphTrace.d.ts +126 -0
- package/lib/structures/IGraphTrace.js +3 -0
- package/lib/structures/IGraphTrace.js.map +1 -0
- package/lib/structures/ISamchonGraphApplication.d.ts +162 -0
- package/lib/structures/ISamchonGraphApplication.js +3 -0
- package/lib/structures/ISamchonGraphApplication.js.map +1 -0
- package/lib/structures/index.d.ts +18 -0
- package/lib/structures/index.js +35 -0
- package/lib/structures/index.js.map +1 -0
- package/lib/structures.d.ts +1 -0
- package/lib/structures.js +18 -0
- package/lib/structures.js.map +1 -0
- package/lib/utils/DEFAULT_IGNORES.d.ts +1 -0
- package/lib/utils/DEFAULT_IGNORES.js +39 -0
- package/lib/utils/DEFAULT_IGNORES.js.map +1 -0
- package/lib/utils/IWalkOptions.d.ts +5 -0
- package/lib/utils/IWalkOptions.js +3 -0
- package/lib/utils/IWalkOptions.js.map +1 -0
- package/lib/utils/basename.d.ts +1 -0
- package/lib/utils/basename.js +10 -0
- package/lib/utils/basename.js.map +1 -0
- package/lib/utils/dirname.d.ts +1 -0
- package/lib/utils/dirname.js +10 -0
- package/lib/utils/dirname.js.map +1 -0
- package/lib/utils/fileFromUri.d.ts +1 -0
- package/lib/utils/fileFromUri.js +20 -0
- package/lib/utils/fileFromUri.js.map +1 -0
- package/lib/utils/fileUri.d.ts +1 -0
- package/lib/utils/fileUri.js +19 -0
- package/lib/utils/fileUri.js.map +1 -0
- package/lib/utils/fs.d.ts +6 -0
- package/lib/utils/fs.js +23 -0
- package/lib/utils/fs.js.map +1 -0
- package/lib/utils/isSubPath.d.ts +1 -0
- package/lib/utils/isSubPath.js +15 -0
- package/lib/utils/isSubPath.js.map +1 -0
- package/lib/utils/normalizePath.d.ts +1 -0
- package/lib/utils/normalizePath.js +7 -0
- package/lib/utils/normalizePath.js.map +1 -0
- package/lib/utils/path.d.ts +7 -0
- package/lib/utils/path.js +24 -0
- package/lib/utils/path.js.map +1 -0
- package/lib/utils/projectRelative.d.ts +1 -0
- package/lib/utils/projectRelative.js +9 -0
- package/lib/utils/projectRelative.js.map +1 -0
- package/lib/utils/readLines.d.ts +1 -0
- package/lib/utils/readLines.js +8 -0
- package/lib/utils/readLines.js.map +1 -0
- package/lib/utils/readText.d.ts +1 -0
- package/lib/utils/readText.js +17 -0
- package/lib/utils/readText.js.map +1 -0
- package/lib/utils/relativePath.d.ts +1 -0
- package/lib/utils/relativePath.js +12 -0
- package/lib/utils/relativePath.js.map +1 -0
- package/lib/utils/walkSourceFiles.d.ts +2 -0
- package/lib/utils/walkSourceFiles.js +44 -0
- package/lib/utils/walkSourceFiles.js.map +1 -0
- package/package.json +55 -0
- package/src/AsyncSamchonGraphSource.ts +5 -0
- package/src/SamchonGraphApplication.ts +74 -0
- package/src/SamchonGraphSource.ts +3 -0
- package/src/application.ts +3 -0
- package/src/bin.ts +6 -0
- package/src/index.ts +13 -0
- package/src/indexer/IBuildGraphOptions.ts +42 -0
- package/src/indexer/IIndexerResult.ts +6 -0
- package/src/indexer/ILanguageSpec.ts +11 -0
- package/src/indexer/LANGUAGE_SPECS.ts +112 -0
- package/src/indexer/allExtensions.ts +12 -0
- package/src/indexer/buildGraph.ts +10 -0
- package/src/indexer/buildGraphDump.ts +29 -0
- package/src/indexer/buildLspGraph.ts +710 -0
- package/src/indexer/buildStaticGraph.ts +507 -0
- package/src/indexer/decoratorsAbove.ts +9 -0
- package/src/indexer/languageOf.ts +13 -0
- package/src/indexer/languages.ts +5 -0
- package/src/indexer/lspIndexer.ts +1 -0
- package/src/indexer/overrideEdges.ts +42 -0
- package/src/indexer/resolveType.ts +14 -0
- package/src/indexer/specOf.ts +7 -0
- package/src/indexer/staticIndexer.ts +1 -0
- package/src/indexer/supertypesOf.ts +43 -0
- package/src/lsp/DocumentSymbolResult.ts +4 -0
- package/src/lsp/IDiagnostic.ts +9 -0
- package/src/lsp/IDocumentSymbol.ts +10 -0
- package/src/lsp/ILocation.ts +6 -0
- package/src/lsp/IPosition.ts +4 -0
- package/src/lsp/IRange.ts +6 -0
- package/src/lsp/ISymbolInformation.ts +8 -0
- package/src/lsp/LspClient.ts +165 -0
- package/src/lsp/isDocumentSymbol.ts +8 -0
- package/src/lsp/types.ts +8 -0
- package/src/mcp/createServer.ts +23 -0
- package/src/mcp/startServer.ts +23 -0
- package/src/model/GraphMemory.ts +165 -0
- package/src/operations/bound.ts +9 -0
- package/src/operations/common.ts +15 -0
- package/src/operations/compareEdges.ts +10 -0
- package/src/operations/edgeRank.ts +23 -0
- package/src/operations/isExecution.ts +9 -0
- package/src/operations/isPublicApiNoisePath.ts +10 -0
- package/src/operations/isStructural.ts +3 -0
- package/src/operations/isSupportPath.ts +16 -0
- package/src/operations/isTestPath.ts +7 -0
- package/src/operations/isTypeEdge.ts +9 -0
- package/src/operations/publicEvidence.ts +11 -0
- package/src/operations/referencesFromEdges.ts +37 -0
- package/src/operations/resolveHandle.ts +27 -0
- package/src/operations/resultGuide.ts +3 -0
- package/src/operations/resultNext.ts +9 -0
- package/src/operations/runDetails.ts +240 -0
- package/src/operations/runEntrypoints.ts +153 -0
- package/src/operations/runLookup.ts +269 -0
- package/src/operations/runOverview.ts +158 -0
- package/src/operations/runTour.ts +582 -0
- package/src/operations/runTrace.ts +339 -0
- package/src/operations/signatureOf.ts +40 -0
- package/src/operations/subwords.ts +8 -0
- package/src/operations/summaryOf.ts +21 -0
- package/src/runGraph.ts +144 -0
- package/src/structures/GraphEdgeKind.ts +24 -0
- package/src/structures/GraphLanguage.ts +21 -0
- package/src/structures/GraphNodeKind.ts +27 -0
- package/src/structures/IGraphDecorator.ts +25 -0
- package/src/structures/IGraphDetails.ts +153 -0
- package/src/structures/IGraphDiagnostic.ts +29 -0
- package/src/structures/IGraphDump.ts +45 -0
- package/src/structures/IGraphEdge.ts +24 -0
- package/src/structures/IGraphEntrypoints.ts +70 -0
- package/src/structures/IGraphEscape.ts +49 -0
- package/src/structures/IGraphEvidence.ts +29 -0
- package/src/structures/IGraphLookup.ts +80 -0
- package/src/structures/IGraphNext.ts +23 -0
- package/src/structures/IGraphNode.ts +76 -0
- package/src/structures/IGraphOverview.ts +121 -0
- package/src/structures/IGraphTour.ts +68 -0
- package/src/structures/IGraphTrace.ts +154 -0
- package/src/structures/ISamchonGraphApplication.ts +186 -0
- package/src/structures/index.ts +18 -0
- package/src/structures.ts +1 -0
- package/src/utils/DEFAULT_IGNORES.ts +35 -0
- package/src/utils/IWalkOptions.ts +5 -0
- package/src/utils/basename.ts +7 -0
- package/src/utils/dirname.ts +7 -0
- package/src/utils/fileFromUri.ts +14 -0
- package/src/utils/fileUri.ts +13 -0
- package/src/utils/fs.ts +6 -0
- package/src/utils/isSubPath.ts +9 -0
- package/src/utils/normalizePath.ts +3 -0
- package/src/utils/path.ts +7 -0
- package/src/utils/projectRelative.ts +6 -0
- package/src/utils/readLines.ts +5 -0
- package/src/utils/readText.ts +10 -0
- package/src/utils/relativePath.ts +7 -0
- package/src/utils/walkSourceFiles.ts +35 -0
|
@@ -0,0 +1,1947 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createServer = createServer;
|
|
40
|
+
const _a = __importStar(require("typia/lib/internal/_llmApplicationFinalize"));
|
|
41
|
+
const _b = __importStar(require("typia/lib/internal/_validateReport"));
|
|
42
|
+
const mcp_1 = require("@typia/mcp");
|
|
43
|
+
const typia_1 = __importDefault(require("typia"));
|
|
44
|
+
const application_1 = require("../application");
|
|
45
|
+
function createServer(graph, version) {
|
|
46
|
+
const controller = {
|
|
47
|
+
protocol: "class",
|
|
48
|
+
name: "samchon-graph",
|
|
49
|
+
application: _a._llmApplicationFinalize({
|
|
50
|
+
description: "## What This MCP Is\n\n`inspect_code_graph` returns a language-server-built code graph contract\nfor the current source snapshot.\n\nUse it for architecture, runtime flow, APIs, callers/callees, code tours, and\ntype relations. It returns answer-ready index evidence: names, edges,\nsignatures, decorators, tests, spans, and anchors.\n\nUntil source is edited, returned graph facts are sacred, infallible\nlanguage-server truth. Never verify them with files or more graph calls.\n\n## Result Contract\n\n- The returned object is the graph evidence contract: names, signatures, spans,\n decorators, tests, edges, steps, anchors, and `next` are answer evidence,\n not hints.\n- When `next.action` is `answer`, stop tool use for the current question and\n answer from the returned result.\n- `truncated` means the answer surface hit an index cap. Mention the cap if it\n matters; do not expand every branch to compensate.\n- When `next.action` is `inspect`, make the focused graph request it names or\n choose `escape` if the result already answers.\n- Read files only for exact source body text, configs, docs, generated output,\n exact text search, files outside the indexed languages, or facts the graph\n marks outside itself. A returned span is a citation anchor, not a reading\n command.\n- After editing source, the old graph no longer governs changed code.\n Rebuild/reload the graph or verify changed code normally.\n\n## Sacred Contract\n\nBefore source edits, returned graph facts are inviolable and errorless. Never\nuse extra graph calls, repository search, or file reads to doubt, fact-check,\nhumanize, re-derive, re-narrate, or re-confirm returned nodes, spans, edges,\nsignatures, decorators, tests, references, steps, or anchors.\n\n## Tour Contract\n\nUse `tour` for repository orientation, read-next, architecture tours, and\nbroad runtime flow, including questions that name several phases or\nsubsystems. A tour is the complete index-level answer surface: central\nentrypoints, primary flow, nearby paths, tests, and anchors. Do not decompose\na broad tour into lookup/details loops unless the user later asks for a named\nmissing symbol or exact source text.\n\n## Use Contract\n\n1. Ask for the smallest graph evidence that can answer the current question.\n2. Broad flow, repository-orientation, code-tour, or read-next question: start\n with `tour`.\n3. Concrete named symbol: use `lookup`, then `details` only if needed.\n4. Known endpoint pair or one selected handle: use one `trace`.\n5. Unknown narrow orientation: use `entrypoints` once.\n6. Selected symbol shape: use `details` for one to three handles.\n7. Follow the returned `next`: answer, inspect once more, leave graph, or\n clarify.\n8. Use `escape` when another graph call would repeat evidence or the remaining\n evidence is outside the code graph.\n\nMost code structure answers need one or two graph calls.\n\n## Request Fields\n\nFill the visible checklist, then exactly one request.\n\n- `question`: restate the code question being considered.\n- `draft`: initial request type and why it seems smallest.\n- `review`: correct a wrong, broad, stale, or duplicate draft. If graph facts\n already answer, if prior `next.action` was `answer`, or if the next\n evidence is outside the indexed code graph, say so here and make\n `request.type` be `escape`. If a broad flow draft is not `tour`, correct it\n here.\n- `request`: final request after review.\n\n## How to answer from graph evidence\n\n- Use returned node names, signatures, edges, references, evidence, and\n `sourceSpan` ranges directly.\n- Explain the central path first, then mention important branches.\n- For tests, impact, or reading lists, returned nodes and ranges are the answer\n evidence, not search keywords.\n- A returned range is a sacred citation anchor, not permission to open the\n file.",
|
|
51
|
+
functions: [
|
|
52
|
+
{
|
|
53
|
+
description: "Inspect the code graph contract.\n\nUse this before repository search when an answer depends on code\nsymbols, calls, types, decorators, references, ranges, or runtime/source\nrelationships. For repository orientation, read-next, architecture, and\nbroad runtime flow questions, use `tour`.\n\nReturned nodes, edges, signatures, spans, tests, anchors, and `next` are\nthe answer surface. If `next.action` is `answer`, stop tool use and answer\nfrom that result. Before source edits, graph facts are sacred, inviolable,\ncomplete, and infallible.",
|
|
54
|
+
name: "inspect_code_graph",
|
|
55
|
+
output: {
|
|
56
|
+
type: "object",
|
|
57
|
+
properties: {
|
|
58
|
+
result: {
|
|
59
|
+
anyOf: [
|
|
60
|
+
{
|
|
61
|
+
$ref: "#/$defs/IGraphDetails"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
$ref: "#/$defs/IGraphEntrypoints"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
$ref: "#/$defs/IGraphEscape"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
$ref: "#/$defs/IGraphLookup"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
$ref: "#/$defs/IGraphOverview"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
$ref: "#/$defs/IGraphTour"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
$ref: "#/$defs/IGraphTrace"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
description: "Result branch matching the submitted `request.type`.",
|
|
83
|
+
"x-discriminator": {
|
|
84
|
+
mapping: {
|
|
85
|
+
details: "#/$defs/IGraphDetails",
|
|
86
|
+
entrypoints: "#/$defs/IGraphEntrypoints",
|
|
87
|
+
escape: "#/$defs/IGraphEscape",
|
|
88
|
+
lookup: "#/$defs/IGraphLookup",
|
|
89
|
+
overview: "#/$defs/IGraphOverview",
|
|
90
|
+
tour: "#/$defs/IGraphTour",
|
|
91
|
+
trace: "#/$defs/IGraphTrace"
|
|
92
|
+
},
|
|
93
|
+
propertyName: "type"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
required: [
|
|
98
|
+
"result"
|
|
99
|
+
],
|
|
100
|
+
additionalProperties: false,
|
|
101
|
+
description: "The selected request's output. `result.type` mirrors `request.type`.",
|
|
102
|
+
$defs: {
|
|
103
|
+
GraphLanguage: {
|
|
104
|
+
type: "string",
|
|
105
|
+
"enum": [
|
|
106
|
+
"bash",
|
|
107
|
+
"c",
|
|
108
|
+
"cpp",
|
|
109
|
+
"csharp",
|
|
110
|
+
"dart",
|
|
111
|
+
"go",
|
|
112
|
+
"java",
|
|
113
|
+
"javascript",
|
|
114
|
+
"kotlin",
|
|
115
|
+
"lua",
|
|
116
|
+
"php",
|
|
117
|
+
"python",
|
|
118
|
+
"ruby",
|
|
119
|
+
"rust",
|
|
120
|
+
"scala",
|
|
121
|
+
"swift",
|
|
122
|
+
"typescript",
|
|
123
|
+
"unknown",
|
|
124
|
+
"zig"
|
|
125
|
+
],
|
|
126
|
+
description: "A source language a graph node can be declared in."
|
|
127
|
+
},
|
|
128
|
+
IGraphDecorator: {
|
|
129
|
+
type: "object",
|
|
130
|
+
properties: {
|
|
131
|
+
name: {
|
|
132
|
+
type: "string",
|
|
133
|
+
description: "The decorator name as written, qualified through its access path:\n`Controller`, `Get`, `TypedRoute.Get`, `MessagePattern`."
|
|
134
|
+
},
|
|
135
|
+
arguments: {
|
|
136
|
+
type: "array",
|
|
137
|
+
items: {
|
|
138
|
+
type: "string"
|
|
139
|
+
},
|
|
140
|
+
description: "The literal call arguments, in source order. Empty for a bare decorator."
|
|
141
|
+
},
|
|
142
|
+
evidence: {
|
|
143
|
+
$ref: "#/$defs/IGraphEvidence",
|
|
144
|
+
description: "The decorator expression span, for display."
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
required: [
|
|
148
|
+
"name"
|
|
149
|
+
],
|
|
150
|
+
additionalProperties: false,
|
|
151
|
+
description: "A decorator as written on a declaration, carried on the decorated\n's `decorators`.\n\nThe graph reports the decorator faithfully rather than interpreting any\nframework's convention: the `name` is the decorator as written (`Controller`,\n`Get`, `TypedRoute.Get`, ...), and statically resolvable literal arguments\nare preserved so a consumer can apply its own meaning without re-parsing\nsource."
|
|
152
|
+
},
|
|
153
|
+
IGraphDetails: {
|
|
154
|
+
type: "object",
|
|
155
|
+
properties: {
|
|
156
|
+
type: {
|
|
157
|
+
type: "string",
|
|
158
|
+
"enum": [
|
|
159
|
+
"details"
|
|
160
|
+
],
|
|
161
|
+
description: "Discriminator for selected symbol inspection."
|
|
162
|
+
},
|
|
163
|
+
nodes: {
|
|
164
|
+
type: "array",
|
|
165
|
+
items: {
|
|
166
|
+
$ref: "#/$defs/IGraphDetails.INode"
|
|
167
|
+
},
|
|
168
|
+
description: "Selected node facts, in the same order as resolved handles when possible."
|
|
169
|
+
},
|
|
170
|
+
unknown: {
|
|
171
|
+
type: "array",
|
|
172
|
+
items: {
|
|
173
|
+
type: "string"
|
|
174
|
+
},
|
|
175
|
+
description: "Handles that resolved to no node, or that were ambiguous."
|
|
176
|
+
},
|
|
177
|
+
next: {
|
|
178
|
+
$ref: "#/$defs/IGraphNext",
|
|
179
|
+
description: "How to use this source-free result next."
|
|
180
|
+
},
|
|
181
|
+
guide: {
|
|
182
|
+
type: "string",
|
|
183
|
+
description: "Human-readable compatibility note mirroring `next`."
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
required: [
|
|
187
|
+
"type",
|
|
188
|
+
"nodes",
|
|
189
|
+
"unknown",
|
|
190
|
+
"next",
|
|
191
|
+
"guide"
|
|
192
|
+
],
|
|
193
|
+
additionalProperties: false,
|
|
194
|
+
description: "The source-free facts for a few selected handles.\n\nThis is not a file reader. It returns signatures, member outlines, direct\ncalls, direct types, implementation candidates, dependency summaries, and\nsourceSpan citation anchors."
|
|
195
|
+
},
|
|
196
|
+
"IGraphDetails.IMember": {
|
|
197
|
+
type: "object",
|
|
198
|
+
properties: {
|
|
199
|
+
name: {
|
|
200
|
+
type: "string",
|
|
201
|
+
description: "Member name, qualified when the graph records an owner-qualified handle."
|
|
202
|
+
},
|
|
203
|
+
kind: {
|
|
204
|
+
type: "string",
|
|
205
|
+
description: "Member kind (`method`, `property`, `class`, ...)."
|
|
206
|
+
},
|
|
207
|
+
line: {
|
|
208
|
+
type: "number",
|
|
209
|
+
description: "1-based declaration line, when known."
|
|
210
|
+
},
|
|
211
|
+
signature: {
|
|
212
|
+
type: "string",
|
|
213
|
+
description: "The member's declaration signature."
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
required: [
|
|
217
|
+
"name",
|
|
218
|
+
"kind"
|
|
219
|
+
],
|
|
220
|
+
additionalProperties: false,
|
|
221
|
+
description: "One member of a container node, with its signature but not its body."
|
|
222
|
+
},
|
|
223
|
+
"IGraphDetails.INode": {
|
|
224
|
+
type: "object",
|
|
225
|
+
properties: {
|
|
226
|
+
id: {
|
|
227
|
+
type: "string",
|
|
228
|
+
description: "Stable handle for `details` or `trace`."
|
|
229
|
+
},
|
|
230
|
+
name: {
|
|
231
|
+
type: "string",
|
|
232
|
+
description: "The symbol's qualified name when available."
|
|
233
|
+
},
|
|
234
|
+
kind: {
|
|
235
|
+
type: "string",
|
|
236
|
+
description: "Its declaration kind (`class`, `interface`, `function`, ...)."
|
|
237
|
+
},
|
|
238
|
+
language: {
|
|
239
|
+
$ref: "#/$defs/GraphLanguage",
|
|
240
|
+
description: "Language the symbol is written in."
|
|
241
|
+
},
|
|
242
|
+
file: {
|
|
243
|
+
type: "string",
|
|
244
|
+
description: "Project-relative path of the file that declares it."
|
|
245
|
+
},
|
|
246
|
+
line: {
|
|
247
|
+
type: "number",
|
|
248
|
+
description: "1-based declaration line, when known."
|
|
249
|
+
},
|
|
250
|
+
sourceSpan: {
|
|
251
|
+
$ref: "#/$defs/PickIGraphEvidenceendLinefilestartLine",
|
|
252
|
+
description: "Source span of the declaration, when known."
|
|
253
|
+
},
|
|
254
|
+
signature: {
|
|
255
|
+
type: "string",
|
|
256
|
+
description: "The declaration signature: its first line(s) up to the body."
|
|
257
|
+
},
|
|
258
|
+
decorators: {
|
|
259
|
+
type: "array",
|
|
260
|
+
items: {
|
|
261
|
+
$ref: "#/$defs/IGraphDecorator"
|
|
262
|
+
},
|
|
263
|
+
description: "Decorators written on this declaration, when any."
|
|
264
|
+
},
|
|
265
|
+
implementation: {
|
|
266
|
+
$ref: "#/$defs/IGraphEvidence",
|
|
267
|
+
description: "Assigned implementation span, when source comes from one."
|
|
268
|
+
},
|
|
269
|
+
members: {
|
|
270
|
+
type: "array",
|
|
271
|
+
items: {
|
|
272
|
+
$ref: "#/$defs/IGraphDetails.IMember"
|
|
273
|
+
},
|
|
274
|
+
description: "For a container or object-literal variable: the owned symbol or top-level\nproperty outline a consumer reaches for, without bodies."
|
|
275
|
+
},
|
|
276
|
+
calls: {
|
|
277
|
+
type: "array",
|
|
278
|
+
items: {
|
|
279
|
+
$ref: "#/$defs/IGraphDetails.IReference"
|
|
280
|
+
},
|
|
281
|
+
description: "Direct execution dependencies in source order, with edge evidence."
|
|
282
|
+
},
|
|
283
|
+
types: {
|
|
284
|
+
type: "array",
|
|
285
|
+
items: {
|
|
286
|
+
$ref: "#/$defs/IGraphDetails.IReference"
|
|
287
|
+
},
|
|
288
|
+
description: "Direct type dependencies in source order, with edge evidence."
|
|
289
|
+
},
|
|
290
|
+
dependsOn: {
|
|
291
|
+
type: "array",
|
|
292
|
+
items: {
|
|
293
|
+
$ref: "#/$defs/IGraphDetails.IReference"
|
|
294
|
+
},
|
|
295
|
+
description: "Symbols this node uses (outgoing dependency edges)."
|
|
296
|
+
},
|
|
297
|
+
dependedOnBy: {
|
|
298
|
+
type: "array",
|
|
299
|
+
items: {
|
|
300
|
+
$ref: "#/$defs/IGraphDetails.IReference"
|
|
301
|
+
},
|
|
302
|
+
description: "Symbols that use this node (incoming dependency edges)."
|
|
303
|
+
},
|
|
304
|
+
diagnostics: {
|
|
305
|
+
type: "array",
|
|
306
|
+
items: {
|
|
307
|
+
$ref: "#/$defs/IGraphDiagnostic"
|
|
308
|
+
},
|
|
309
|
+
description: "Diagnostics reported on this node's declaration, when any."
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
required: [
|
|
313
|
+
"id",
|
|
314
|
+
"name",
|
|
315
|
+
"kind",
|
|
316
|
+
"language",
|
|
317
|
+
"file"
|
|
318
|
+
],
|
|
319
|
+
additionalProperties: false,
|
|
320
|
+
description: "One inspected node: its declared shape and graph coordinates."
|
|
321
|
+
},
|
|
322
|
+
"IGraphDetails.IReference": {
|
|
323
|
+
type: "object",
|
|
324
|
+
properties: {
|
|
325
|
+
id: {
|
|
326
|
+
type: "string",
|
|
327
|
+
description: "Stable handle for `details` or `trace`."
|
|
328
|
+
},
|
|
329
|
+
name: {
|
|
330
|
+
type: "string",
|
|
331
|
+
description: "The symbol's qualified name when available."
|
|
332
|
+
},
|
|
333
|
+
kind: {
|
|
334
|
+
type: "string",
|
|
335
|
+
description: "Its declaration kind (`class`, `interface`, `function`, ...)."
|
|
336
|
+
},
|
|
337
|
+
language: {
|
|
338
|
+
$ref: "#/$defs/GraphLanguage",
|
|
339
|
+
description: "Language the symbol is written in."
|
|
340
|
+
},
|
|
341
|
+
file: {
|
|
342
|
+
type: "string",
|
|
343
|
+
description: "Project-relative path of the file that declares it."
|
|
344
|
+
},
|
|
345
|
+
line: {
|
|
346
|
+
type: "number",
|
|
347
|
+
description: "1-based declaration line, when known."
|
|
348
|
+
},
|
|
349
|
+
sourceSpan: {
|
|
350
|
+
$ref: "#/$defs/PickIGraphEvidenceendLinefilestartLine",
|
|
351
|
+
description: "Source span of the declaration, when known."
|
|
352
|
+
},
|
|
353
|
+
relation: {
|
|
354
|
+
type: "string",
|
|
355
|
+
description: "The edge kind connecting the two (`calls`, `type_ref`, ...)."
|
|
356
|
+
},
|
|
357
|
+
evidence: {
|
|
358
|
+
$ref: "#/$defs/IGraphEvidence",
|
|
359
|
+
description: "Source span for the expression that produced this relationship. It is\nrepository evidence for the edge, not a file-read instruction."
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
required: [
|
|
363
|
+
"id",
|
|
364
|
+
"name",
|
|
365
|
+
"kind",
|
|
366
|
+
"language",
|
|
367
|
+
"file",
|
|
368
|
+
"relation"
|
|
369
|
+
],
|
|
370
|
+
additionalProperties: false,
|
|
371
|
+
description: "A dependency neighbor of an inspected node and the edge that links them."
|
|
372
|
+
},
|
|
373
|
+
IGraphDiagnostic: {
|
|
374
|
+
type: "object",
|
|
375
|
+
properties: {
|
|
376
|
+
file: {
|
|
377
|
+
type: "string",
|
|
378
|
+
description: "Project-relative path of the file the diagnostic is reported in."
|
|
379
|
+
},
|
|
380
|
+
message: {
|
|
381
|
+
type: "string",
|
|
382
|
+
description: "The human-readable diagnostic message."
|
|
383
|
+
},
|
|
384
|
+
severity: {
|
|
385
|
+
type: "string",
|
|
386
|
+
"enum": [
|
|
387
|
+
"error",
|
|
388
|
+
"hint",
|
|
389
|
+
"information",
|
|
390
|
+
"warning"
|
|
391
|
+
],
|
|
392
|
+
description: "Severity, when the producer distinguishes it."
|
|
393
|
+
},
|
|
394
|
+
source: {
|
|
395
|
+
type: "string",
|
|
396
|
+
description: "Which producer emitted the diagnostic."
|
|
397
|
+
},
|
|
398
|
+
code: {
|
|
399
|
+
anyOf: [
|
|
400
|
+
{
|
|
401
|
+
type: "string"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
type: "number"
|
|
405
|
+
}
|
|
406
|
+
],
|
|
407
|
+
description: "Numeric language server code, or string rule id for a lint/plugin finding."
|
|
408
|
+
},
|
|
409
|
+
evidence: {
|
|
410
|
+
$ref: "#/$defs/IGraphEvidence",
|
|
411
|
+
description: "The source span the diagnostic was attributed to, when resolved."
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
required: [
|
|
415
|
+
"file",
|
|
416
|
+
"message",
|
|
417
|
+
"severity"
|
|
418
|
+
],
|
|
419
|
+
additionalProperties: false,
|
|
420
|
+
description: "A language server or plugin diagnostic, fused onto the graph so an edit-triage\nquery can name the owning symbol of an error.\n\nThe language server's semantic pass contributes numeric-coded diagnostics;\nlint rules and transform plugins (typia, nestia, \u2026) contribute `plugin`/`lint`\nfindings whose `code` is a string."
|
|
421
|
+
},
|
|
422
|
+
IGraphEntrypoints: {
|
|
423
|
+
type: "object",
|
|
424
|
+
properties: {
|
|
425
|
+
type: {
|
|
426
|
+
type: "string",
|
|
427
|
+
"enum": [
|
|
428
|
+
"entrypoints"
|
|
429
|
+
],
|
|
430
|
+
description: "Discriminator for first-pass question indexing."
|
|
431
|
+
},
|
|
432
|
+
query: {
|
|
433
|
+
type: "string",
|
|
434
|
+
description: "The original question/search phrase the entrypoints were built for."
|
|
435
|
+
},
|
|
436
|
+
ranked: {
|
|
437
|
+
type: "array",
|
|
438
|
+
items: {
|
|
439
|
+
$ref: "#/$defs/IGraphEntrypoints.IEntrypoint"
|
|
440
|
+
},
|
|
441
|
+
description: "Ranked symbols relevant to the query."
|
|
442
|
+
},
|
|
443
|
+
mentions: {
|
|
444
|
+
type: "array",
|
|
445
|
+
items: {
|
|
446
|
+
$ref: "#/$defs/IGraphOverview.INode"
|
|
447
|
+
},
|
|
448
|
+
description: "Code handles written directly in the query, resolved when possible."
|
|
449
|
+
},
|
|
450
|
+
dependencyOrientation: {
|
|
451
|
+
type: "array",
|
|
452
|
+
items: {
|
|
453
|
+
type: "string"
|
|
454
|
+
},
|
|
455
|
+
description: "Direct dependency context for the resolved mentions and highest hits."
|
|
456
|
+
},
|
|
457
|
+
next: {
|
|
458
|
+
$ref: "#/$defs/IGraphNext",
|
|
459
|
+
description: "How to use this source-free result next."
|
|
460
|
+
},
|
|
461
|
+
guide: {
|
|
462
|
+
type: "string",
|
|
463
|
+
description: "Human-readable compatibility note mirroring `next`."
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
required: [
|
|
467
|
+
"type",
|
|
468
|
+
"query",
|
|
469
|
+
"ranked",
|
|
470
|
+
"mentions",
|
|
471
|
+
"dependencyOrientation",
|
|
472
|
+
"next",
|
|
473
|
+
"guide"
|
|
474
|
+
],
|
|
475
|
+
additionalProperties: false,
|
|
476
|
+
description: "The first compact source-free handle list for a code question."
|
|
477
|
+
},
|
|
478
|
+
"IGraphEntrypoints.IEntrypoint": {
|
|
479
|
+
type: "object",
|
|
480
|
+
properties: {
|
|
481
|
+
id: {
|
|
482
|
+
type: "string",
|
|
483
|
+
description: "Stable handle for `details` or `trace`."
|
|
484
|
+
},
|
|
485
|
+
name: {
|
|
486
|
+
type: "string",
|
|
487
|
+
description: "The symbol's qualified name when available."
|
|
488
|
+
},
|
|
489
|
+
kind: {
|
|
490
|
+
type: "string",
|
|
491
|
+
description: "Its declaration kind (`class`, `interface`, `function`, ...)."
|
|
492
|
+
},
|
|
493
|
+
language: {
|
|
494
|
+
$ref: "#/$defs/GraphLanguage",
|
|
495
|
+
description: "Language the symbol is written in."
|
|
496
|
+
},
|
|
497
|
+
file: {
|
|
498
|
+
type: "string",
|
|
499
|
+
description: "Project-relative path of the file that declares it."
|
|
500
|
+
},
|
|
501
|
+
line: {
|
|
502
|
+
type: "number",
|
|
503
|
+
description: "1-based declaration line, when known."
|
|
504
|
+
},
|
|
505
|
+
sourceSpan: {
|
|
506
|
+
$ref: "#/$defs/PickIGraphEvidenceendLinefilestartLine",
|
|
507
|
+
description: "Source span of the declaration, when known."
|
|
508
|
+
},
|
|
509
|
+
score: {
|
|
510
|
+
type: "number",
|
|
511
|
+
description: "Relative relevance; higher is a better match."
|
|
512
|
+
},
|
|
513
|
+
reason: {
|
|
514
|
+
type: "string",
|
|
515
|
+
description: "Why this entrypoint was ranked for the query."
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
required: [
|
|
519
|
+
"id",
|
|
520
|
+
"name",
|
|
521
|
+
"kind",
|
|
522
|
+
"language",
|
|
523
|
+
"file",
|
|
524
|
+
"score",
|
|
525
|
+
"reason"
|
|
526
|
+
],
|
|
527
|
+
additionalProperties: false,
|
|
528
|
+
description: "One ranked search hit."
|
|
529
|
+
},
|
|
530
|
+
IGraphEscape: {
|
|
531
|
+
type: "object",
|
|
532
|
+
properties: {
|
|
533
|
+
type: {
|
|
534
|
+
type: "string",
|
|
535
|
+
"enum": [
|
|
536
|
+
"escape"
|
|
537
|
+
],
|
|
538
|
+
description: "Discriminator for the no-op escape route."
|
|
539
|
+
},
|
|
540
|
+
skipped: {
|
|
541
|
+
type: "boolean",
|
|
542
|
+
"enum": [
|
|
543
|
+
true
|
|
544
|
+
],
|
|
545
|
+
description: "Always true so callers can distinguish an intentional no-op."
|
|
546
|
+
},
|
|
547
|
+
reason: {
|
|
548
|
+
type: "string",
|
|
549
|
+
description: "Why no graph operation should run."
|
|
550
|
+
},
|
|
551
|
+
nextStep: {
|
|
552
|
+
type: "string",
|
|
553
|
+
description: "Optional note about the next non-graph step."
|
|
554
|
+
},
|
|
555
|
+
next: {
|
|
556
|
+
$ref: "#/$defs/IGraphNext",
|
|
557
|
+
description: "How to proceed after skipping graph work."
|
|
558
|
+
},
|
|
559
|
+
guide: {
|
|
560
|
+
type: "string",
|
|
561
|
+
description: "Human-readable compatibility note mirroring `next`."
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
required: [
|
|
565
|
+
"type",
|
|
566
|
+
"skipped",
|
|
567
|
+
"reason",
|
|
568
|
+
"next",
|
|
569
|
+
"guide"
|
|
570
|
+
],
|
|
571
|
+
additionalProperties: false,
|
|
572
|
+
description: "The no-op result for when graph is not the useful next evidence source."
|
|
573
|
+
},
|
|
574
|
+
IGraphEvidence: {
|
|
575
|
+
type: "object",
|
|
576
|
+
properties: {
|
|
577
|
+
file: {
|
|
578
|
+
type: "string",
|
|
579
|
+
description: "Project-relative path of the file the span lives in."
|
|
580
|
+
},
|
|
581
|
+
startLine: {
|
|
582
|
+
type: "number",
|
|
583
|
+
description: "1-based line where the span starts."
|
|
584
|
+
},
|
|
585
|
+
startCol: {
|
|
586
|
+
type: "number",
|
|
587
|
+
description: "1-based column where the span starts, when known."
|
|
588
|
+
},
|
|
589
|
+
endLine: {
|
|
590
|
+
type: "number",
|
|
591
|
+
description: "1-based line where the span ends, when it differs from `startLine`."
|
|
592
|
+
},
|
|
593
|
+
endCol: {
|
|
594
|
+
type: "number",
|
|
595
|
+
description: "1-based column where the span ends, when known."
|
|
596
|
+
},
|
|
597
|
+
text: {
|
|
598
|
+
type: "string",
|
|
599
|
+
description: "The source text of the span, when captured."
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
required: [
|
|
603
|
+
"file",
|
|
604
|
+
"startLine"
|
|
605
|
+
],
|
|
606
|
+
additionalProperties: false,
|
|
607
|
+
description: "A source location that grounds a node or edge in real code: the declaration\nspan for a node, or the expression range that produced an edge.\n\nEvidence is display and grounding only; it is never identity. A node's id is\nposition-invariant (see ), so an edit that shifts a span\ndoes not re-key anything. `startLine`/`startCol` are 1-based. MCP output\nkeeps evidence as coordinates; consumers can read the file themselves when\nthey truly need source text."
|
|
608
|
+
},
|
|
609
|
+
IGraphLookup: {
|
|
610
|
+
type: "object",
|
|
611
|
+
properties: {
|
|
612
|
+
type: {
|
|
613
|
+
type: "string",
|
|
614
|
+
"enum": [
|
|
615
|
+
"lookup"
|
|
616
|
+
],
|
|
617
|
+
description: "Discriminator for targeted symbol lookup."
|
|
618
|
+
},
|
|
619
|
+
hits: {
|
|
620
|
+
type: "array",
|
|
621
|
+
items: {
|
|
622
|
+
$ref: "#/$defs/IGraphLookup.IHit"
|
|
623
|
+
},
|
|
624
|
+
description: "Ranked symbol matches for the query."
|
|
625
|
+
},
|
|
626
|
+
unknown: {
|
|
627
|
+
type: "array",
|
|
628
|
+
items: {
|
|
629
|
+
type: "string"
|
|
630
|
+
},
|
|
631
|
+
description: "Query terms that matched nothing."
|
|
632
|
+
},
|
|
633
|
+
next: {
|
|
634
|
+
$ref: "#/$defs/IGraphNext",
|
|
635
|
+
description: "How to use this source-free result next."
|
|
636
|
+
},
|
|
637
|
+
guide: {
|
|
638
|
+
type: "string",
|
|
639
|
+
description: "Human-readable compatibility note mirroring `next`."
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
required: [
|
|
643
|
+
"type",
|
|
644
|
+
"hits",
|
|
645
|
+
"next",
|
|
646
|
+
"guide"
|
|
647
|
+
],
|
|
648
|
+
additionalProperties: false,
|
|
649
|
+
description: "Targeted symbol lookup when a concrete name or handle is being resolved."
|
|
650
|
+
},
|
|
651
|
+
"IGraphLookup.IHit": {
|
|
652
|
+
type: "object",
|
|
653
|
+
properties: {
|
|
654
|
+
id: {
|
|
655
|
+
type: "string",
|
|
656
|
+
description: "Stable handle for `details` or `trace`."
|
|
657
|
+
},
|
|
658
|
+
name: {
|
|
659
|
+
type: "string",
|
|
660
|
+
description: "The symbol's qualified name when available."
|
|
661
|
+
},
|
|
662
|
+
kind: {
|
|
663
|
+
type: "string",
|
|
664
|
+
description: "Its declaration kind (`class`, `interface`, `function`, ...)."
|
|
665
|
+
},
|
|
666
|
+
language: {
|
|
667
|
+
$ref: "#/$defs/GraphLanguage",
|
|
668
|
+
description: "Language the symbol is written in."
|
|
669
|
+
},
|
|
670
|
+
file: {
|
|
671
|
+
type: "string",
|
|
672
|
+
description: "Project-relative path of the file that declares it."
|
|
673
|
+
},
|
|
674
|
+
line: {
|
|
675
|
+
type: "number",
|
|
676
|
+
description: "1-based declaration line, when known."
|
|
677
|
+
},
|
|
678
|
+
sourceSpan: {
|
|
679
|
+
$ref: "#/$defs/PickIGraphEvidenceendLinefilestartLine",
|
|
680
|
+
description: "Source span of the declaration, when known."
|
|
681
|
+
},
|
|
682
|
+
score: {
|
|
683
|
+
type: "number",
|
|
684
|
+
description: "Relative relevance; higher is a better match."
|
|
685
|
+
},
|
|
686
|
+
signature: {
|
|
687
|
+
type: "string",
|
|
688
|
+
description: "The hit's declaration signature, so you can often answer without\nrequesting details."
|
|
689
|
+
},
|
|
690
|
+
decorators: {
|
|
691
|
+
type: "array",
|
|
692
|
+
items: {
|
|
693
|
+
$ref: "#/$defs/IGraphDecorator"
|
|
694
|
+
},
|
|
695
|
+
description: "Decorators written on this declaration, when any."
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
required: [
|
|
699
|
+
"id",
|
|
700
|
+
"name",
|
|
701
|
+
"kind",
|
|
702
|
+
"language",
|
|
703
|
+
"file",
|
|
704
|
+
"score"
|
|
705
|
+
],
|
|
706
|
+
additionalProperties: false,
|
|
707
|
+
description: "One ranked hit with a handle to follow via `details` or `trace`."
|
|
708
|
+
},
|
|
709
|
+
IGraphNext: {
|
|
710
|
+
type: "object",
|
|
711
|
+
properties: {
|
|
712
|
+
action: {
|
|
713
|
+
type: "string",
|
|
714
|
+
"enum": [
|
|
715
|
+
"answer",
|
|
716
|
+
"clarify",
|
|
717
|
+
"inspect",
|
|
718
|
+
"outside"
|
|
719
|
+
],
|
|
720
|
+
description: "Answer, continue graph inspection, leave graph, or clarify.\n\n`answer` means the returned graph result already carries the evidence\ncontract for the current question, even when the slice is capped. Do not\ncall graph again or read files to re-check or complete it."
|
|
721
|
+
},
|
|
722
|
+
request: {
|
|
723
|
+
type: "string",
|
|
724
|
+
"enum": [
|
|
725
|
+
"details",
|
|
726
|
+
"entrypoints",
|
|
727
|
+
"lookup",
|
|
728
|
+
"overview",
|
|
729
|
+
"tour",
|
|
730
|
+
"trace"
|
|
731
|
+
],
|
|
732
|
+
description: "Smallest graph request type to use when `action` is `inspect`."
|
|
733
|
+
},
|
|
734
|
+
reason: {
|
|
735
|
+
type: "string",
|
|
736
|
+
description: "Why the returned graph evidence supports that action."
|
|
737
|
+
}
|
|
738
|
+
},
|
|
739
|
+
required: [
|
|
740
|
+
"action",
|
|
741
|
+
"reason"
|
|
742
|
+
],
|
|
743
|
+
additionalProperties: false,
|
|
744
|
+
description: "The required next step from a language-server-derived graph result."
|
|
745
|
+
},
|
|
746
|
+
IGraphOverview: {
|
|
747
|
+
type: "object",
|
|
748
|
+
properties: {
|
|
749
|
+
type: {
|
|
750
|
+
type: "string",
|
|
751
|
+
"enum": [
|
|
752
|
+
"overview"
|
|
753
|
+
],
|
|
754
|
+
description: "Discriminator for source-free project overview."
|
|
755
|
+
},
|
|
756
|
+
project: {
|
|
757
|
+
type: "string",
|
|
758
|
+
description: "Absolute project root."
|
|
759
|
+
},
|
|
760
|
+
languages: {
|
|
761
|
+
type: "array",
|
|
762
|
+
items: {
|
|
763
|
+
$ref: "#/$defs/GraphLanguage"
|
|
764
|
+
},
|
|
765
|
+
description: "Languages present in the project."
|
|
766
|
+
},
|
|
767
|
+
counts: {
|
|
768
|
+
$ref: "#/$defs/IGraphOverview.ICounts",
|
|
769
|
+
description: "Size of the graph."
|
|
770
|
+
},
|
|
771
|
+
layers: {
|
|
772
|
+
type: "array",
|
|
773
|
+
items: {
|
|
774
|
+
$ref: "#/$defs/IGraphOverview.ILayer"
|
|
775
|
+
},
|
|
776
|
+
description: "Folder layering, largest first."
|
|
777
|
+
},
|
|
778
|
+
hotspots: {
|
|
779
|
+
type: "array",
|
|
780
|
+
items: {
|
|
781
|
+
$ref: "#/$defs/IGraphOverview.IHotspot"
|
|
782
|
+
},
|
|
783
|
+
description: "Highest-dependency symbols, busiest first."
|
|
784
|
+
},
|
|
785
|
+
publicApi: {
|
|
786
|
+
type: "array",
|
|
787
|
+
items: {
|
|
788
|
+
$ref: "#/$defs/IGraphOverview.INode"
|
|
789
|
+
},
|
|
790
|
+
description: "Exported API symbols, most-depended-on first."
|
|
791
|
+
},
|
|
792
|
+
diagnostics: {
|
|
793
|
+
type: "array",
|
|
794
|
+
items: {
|
|
795
|
+
$ref: "#/$defs/IGraphDiagnostic"
|
|
796
|
+
},
|
|
797
|
+
description: "Index diagnostics, when any."
|
|
798
|
+
},
|
|
799
|
+
next: {
|
|
800
|
+
$ref: "#/$defs/IGraphNext",
|
|
801
|
+
description: "How to use this source-free result next."
|
|
802
|
+
},
|
|
803
|
+
guide: {
|
|
804
|
+
type: "string",
|
|
805
|
+
description: "Human-readable compatibility note mirroring `next`."
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
required: [
|
|
809
|
+
"type",
|
|
810
|
+
"project",
|
|
811
|
+
"languages",
|
|
812
|
+
"counts",
|
|
813
|
+
"next",
|
|
814
|
+
"guide"
|
|
815
|
+
],
|
|
816
|
+
additionalProperties: false,
|
|
817
|
+
description: "A compact, source-read-free project map for broad orientation only."
|
|
818
|
+
},
|
|
819
|
+
"IGraphOverview.ICounts": {
|
|
820
|
+
type: "object",
|
|
821
|
+
properties: {
|
|
822
|
+
files: {
|
|
823
|
+
type: "number",
|
|
824
|
+
description: "Number of source file container nodes."
|
|
825
|
+
},
|
|
826
|
+
nodes: {
|
|
827
|
+
type: "number",
|
|
828
|
+
description: "Total node count, including declarations and file containers."
|
|
829
|
+
},
|
|
830
|
+
edges: {
|
|
831
|
+
type: "number",
|
|
832
|
+
description: "Total edge count, including structural edges."
|
|
833
|
+
},
|
|
834
|
+
byKind: {
|
|
835
|
+
$ref: "#/$defs/Recordstringnumber",
|
|
836
|
+
description: "Node count per kind."
|
|
837
|
+
},
|
|
838
|
+
byLanguage: {
|
|
839
|
+
$ref: "#/$defs/Recordstringnumber",
|
|
840
|
+
description: "Node count per language."
|
|
841
|
+
}
|
|
842
|
+
},
|
|
843
|
+
required: [
|
|
844
|
+
"files",
|
|
845
|
+
"nodes",
|
|
846
|
+
"edges",
|
|
847
|
+
"byKind",
|
|
848
|
+
"byLanguage"
|
|
849
|
+
],
|
|
850
|
+
additionalProperties: false,
|
|
851
|
+
description: "Size of the graph by node/edge totals and per-kind node counts."
|
|
852
|
+
},
|
|
853
|
+
"IGraphOverview.IHotspot": {
|
|
854
|
+
type: "object",
|
|
855
|
+
properties: {
|
|
856
|
+
id: {
|
|
857
|
+
type: "string",
|
|
858
|
+
description: "Stable handle for `details` or `trace`."
|
|
859
|
+
},
|
|
860
|
+
name: {
|
|
861
|
+
type: "string",
|
|
862
|
+
description: "The symbol's qualified name when available."
|
|
863
|
+
},
|
|
864
|
+
kind: {
|
|
865
|
+
type: "string",
|
|
866
|
+
description: "Its declaration kind (`class`, `interface`, `function`, ...)."
|
|
867
|
+
},
|
|
868
|
+
language: {
|
|
869
|
+
$ref: "#/$defs/GraphLanguage",
|
|
870
|
+
description: "Language the symbol is written in."
|
|
871
|
+
},
|
|
872
|
+
file: {
|
|
873
|
+
type: "string",
|
|
874
|
+
description: "Project-relative path of the file that declares it."
|
|
875
|
+
},
|
|
876
|
+
line: {
|
|
877
|
+
type: "number",
|
|
878
|
+
description: "1-based declaration line, when known."
|
|
879
|
+
},
|
|
880
|
+
sourceSpan: {
|
|
881
|
+
$ref: "#/$defs/PickIGraphEvidenceendLinefilestartLine",
|
|
882
|
+
description: "Source span of the declaration, when known."
|
|
883
|
+
},
|
|
884
|
+
fanIn: {
|
|
885
|
+
type: "number",
|
|
886
|
+
description: "Non-structural edges pointing at this symbol."
|
|
887
|
+
},
|
|
888
|
+
fanOut: {
|
|
889
|
+
type: "number",
|
|
890
|
+
description: "Non-structural edges leaving this symbol."
|
|
891
|
+
}
|
|
892
|
+
},
|
|
893
|
+
required: [
|
|
894
|
+
"id",
|
|
895
|
+
"name",
|
|
896
|
+
"kind",
|
|
897
|
+
"language",
|
|
898
|
+
"file",
|
|
899
|
+
"fanIn",
|
|
900
|
+
"fanOut"
|
|
901
|
+
],
|
|
902
|
+
additionalProperties: false,
|
|
903
|
+
description: "A high-dependency symbol with its non-structural fan-in and fan-out."
|
|
904
|
+
},
|
|
905
|
+
"IGraphOverview.ILayer": {
|
|
906
|
+
type: "object",
|
|
907
|
+
properties: {
|
|
908
|
+
dir: {
|
|
909
|
+
type: "string",
|
|
910
|
+
description: "Directory, project-relative."
|
|
911
|
+
},
|
|
912
|
+
files: {
|
|
913
|
+
type: "number",
|
|
914
|
+
description: "Distinct source files under it."
|
|
915
|
+
},
|
|
916
|
+
exported: {
|
|
917
|
+
type: "number",
|
|
918
|
+
description: "Exported symbols declared under it."
|
|
919
|
+
},
|
|
920
|
+
languages: {
|
|
921
|
+
type: "array",
|
|
922
|
+
items: {
|
|
923
|
+
$ref: "#/$defs/GraphLanguage"
|
|
924
|
+
},
|
|
925
|
+
description: "Languages present under it."
|
|
926
|
+
}
|
|
927
|
+
},
|
|
928
|
+
required: [
|
|
929
|
+
"dir",
|
|
930
|
+
"files",
|
|
931
|
+
"exported",
|
|
932
|
+
"languages"
|
|
933
|
+
],
|
|
934
|
+
additionalProperties: false,
|
|
935
|
+
description: "One folder layer: its source files and export surface."
|
|
936
|
+
},
|
|
937
|
+
"IGraphOverview.INode": {
|
|
938
|
+
type: "object",
|
|
939
|
+
properties: {
|
|
940
|
+
id: {
|
|
941
|
+
type: "string",
|
|
942
|
+
description: "Stable handle for `details` or `trace`."
|
|
943
|
+
},
|
|
944
|
+
name: {
|
|
945
|
+
type: "string",
|
|
946
|
+
description: "The symbol's qualified name when available."
|
|
947
|
+
},
|
|
948
|
+
kind: {
|
|
949
|
+
type: "string",
|
|
950
|
+
description: "Its declaration kind (`class`, `interface`, `function`, ...)."
|
|
951
|
+
},
|
|
952
|
+
language: {
|
|
953
|
+
$ref: "#/$defs/GraphLanguage",
|
|
954
|
+
description: "Language the symbol is written in."
|
|
955
|
+
},
|
|
956
|
+
file: {
|
|
957
|
+
type: "string",
|
|
958
|
+
description: "Project-relative path of the file that declares it."
|
|
959
|
+
},
|
|
960
|
+
line: {
|
|
961
|
+
type: "number",
|
|
962
|
+
description: "1-based declaration line, when known."
|
|
963
|
+
},
|
|
964
|
+
sourceSpan: {
|
|
965
|
+
$ref: "#/$defs/PickIGraphEvidenceendLinefilestartLine",
|
|
966
|
+
description: "Source span of the declaration, when known."
|
|
967
|
+
}
|
|
968
|
+
},
|
|
969
|
+
required: [
|
|
970
|
+
"id",
|
|
971
|
+
"name",
|
|
972
|
+
"kind",
|
|
973
|
+
"language",
|
|
974
|
+
"file"
|
|
975
|
+
],
|
|
976
|
+
additionalProperties: false,
|
|
977
|
+
description: "A compact symbol coordinate that can be passed to deeper graph tools."
|
|
978
|
+
},
|
|
979
|
+
IGraphTour: {
|
|
980
|
+
type: "object",
|
|
981
|
+
properties: {
|
|
982
|
+
type: {
|
|
983
|
+
type: "string",
|
|
984
|
+
"enum": [
|
|
985
|
+
"tour"
|
|
986
|
+
],
|
|
987
|
+
description: "Discriminator for code-tour indexing."
|
|
988
|
+
},
|
|
989
|
+
question: {
|
|
990
|
+
type: "string",
|
|
991
|
+
description: "Natural code question this tour was built for."
|
|
992
|
+
},
|
|
993
|
+
entrypoints: {
|
|
994
|
+
type: "array",
|
|
995
|
+
items: {
|
|
996
|
+
$ref: "#/$defs/IGraphEntrypoints.IEntrypoint"
|
|
997
|
+
},
|
|
998
|
+
description: "Central entrypoints selected for the tour."
|
|
999
|
+
},
|
|
1000
|
+
primaryFlow: {
|
|
1001
|
+
type: "array",
|
|
1002
|
+
items: {
|
|
1003
|
+
type: "string"
|
|
1004
|
+
},
|
|
1005
|
+
description: "Selected primary runtime flows; sufficient for an index-level tour."
|
|
1006
|
+
},
|
|
1007
|
+
nearbyPaths: {
|
|
1008
|
+
type: "array",
|
|
1009
|
+
items: {
|
|
1010
|
+
$ref: "#/$defs/IGraphOverview.INode"
|
|
1011
|
+
},
|
|
1012
|
+
description: "Nearby dependency anchors around the selected entrypoints."
|
|
1013
|
+
},
|
|
1014
|
+
testAnchors: {
|
|
1015
|
+
type: "array",
|
|
1016
|
+
items: {
|
|
1017
|
+
$ref: "#/$defs/IGraphOverview.INode"
|
|
1018
|
+
},
|
|
1019
|
+
description: "Test or usage anchors reached through graph impact edges."
|
|
1020
|
+
},
|
|
1021
|
+
answerAnchors: {
|
|
1022
|
+
type: "array",
|
|
1023
|
+
items: {
|
|
1024
|
+
$ref: "#/$defs/IGraphOverview.INode"
|
|
1025
|
+
},
|
|
1026
|
+
description: "Ordered file/line anchors to cite in the final answer, not file reads."
|
|
1027
|
+
},
|
|
1028
|
+
diagnostics: {
|
|
1029
|
+
type: "array",
|
|
1030
|
+
items: {
|
|
1031
|
+
$ref: "#/$defs/IGraphDiagnostic"
|
|
1032
|
+
},
|
|
1033
|
+
description: "Diagnostics collected while building the tour."
|
|
1034
|
+
},
|
|
1035
|
+
next: {
|
|
1036
|
+
$ref: "#/$defs/IGraphNext",
|
|
1037
|
+
description: "How to use this source-free result next."
|
|
1038
|
+
},
|
|
1039
|
+
guide: {
|
|
1040
|
+
type: "string",
|
|
1041
|
+
description: "Human-readable compatibility note mirroring `next`."
|
|
1042
|
+
}
|
|
1043
|
+
},
|
|
1044
|
+
required: [
|
|
1045
|
+
"type",
|
|
1046
|
+
"entrypoints",
|
|
1047
|
+
"primaryFlow",
|
|
1048
|
+
"nearbyPaths",
|
|
1049
|
+
"testAnchors",
|
|
1050
|
+
"answerAnchors",
|
|
1051
|
+
"next",
|
|
1052
|
+
"guide"
|
|
1053
|
+
],
|
|
1054
|
+
additionalProperties: false,
|
|
1055
|
+
description: "Answer-ready, source-free tour evidence for broad code-flow questions."
|
|
1056
|
+
},
|
|
1057
|
+
IGraphTrace: {
|
|
1058
|
+
type: "object",
|
|
1059
|
+
properties: {
|
|
1060
|
+
type: {
|
|
1061
|
+
type: "string",
|
|
1062
|
+
"enum": [
|
|
1063
|
+
"trace"
|
|
1064
|
+
],
|
|
1065
|
+
description: "Discriminator for dependency tracing."
|
|
1066
|
+
},
|
|
1067
|
+
start: {
|
|
1068
|
+
$ref: "#/$defs/IGraphTrace.INode",
|
|
1069
|
+
description: "The resolved start node, or undefined when `from` matched nothing."
|
|
1070
|
+
},
|
|
1071
|
+
direction: {
|
|
1072
|
+
type: "string",
|
|
1073
|
+
description: "Trace direction actually used by this result."
|
|
1074
|
+
},
|
|
1075
|
+
hops: {
|
|
1076
|
+
type: "array",
|
|
1077
|
+
items: {
|
|
1078
|
+
$ref: "#/$defs/IGraphTrace.IHop"
|
|
1079
|
+
},
|
|
1080
|
+
description: "Edges traversed, in breadth-first order."
|
|
1081
|
+
},
|
|
1082
|
+
reached: {
|
|
1083
|
+
type: "array",
|
|
1084
|
+
items: {
|
|
1085
|
+
$ref: "#/$defs/IGraphTrace.INode"
|
|
1086
|
+
},
|
|
1087
|
+
description: "Unique nodes reached (excluding the start), each with its depth and roles."
|
|
1088
|
+
},
|
|
1089
|
+
truncated: {
|
|
1090
|
+
type: "boolean",
|
|
1091
|
+
description: "True when the trace hit maxNodes or maxDepth and more flow exists."
|
|
1092
|
+
},
|
|
1093
|
+
target: {
|
|
1094
|
+
$ref: "#/$defs/IGraphTrace.INode",
|
|
1095
|
+
description: "The resolved `to` target, when a path was requested."
|
|
1096
|
+
},
|
|
1097
|
+
path: {
|
|
1098
|
+
type: "array",
|
|
1099
|
+
items: {
|
|
1100
|
+
$ref: "#/$defs/IGraphTrace.INode"
|
|
1101
|
+
},
|
|
1102
|
+
description: "When `to` was given: the ordered dependency path from `from` to `to`\n(`from` first, `to` last), or empty when `to` is not reachable from\n`from`."
|
|
1103
|
+
},
|
|
1104
|
+
steps: {
|
|
1105
|
+
type: "array",
|
|
1106
|
+
items: {
|
|
1107
|
+
type: "string"
|
|
1108
|
+
},
|
|
1109
|
+
description: "Compact hop summaries preserving node names and edge evidence, capped."
|
|
1110
|
+
},
|
|
1111
|
+
candidates: {
|
|
1112
|
+
type: "array",
|
|
1113
|
+
items: {
|
|
1114
|
+
$ref: "#/$defs/IGraphTrace.INode"
|
|
1115
|
+
},
|
|
1116
|
+
description: "When `from` was an ambiguous name, the matches to disambiguate with."
|
|
1117
|
+
},
|
|
1118
|
+
next: {
|
|
1119
|
+
$ref: "#/$defs/IGraphNext",
|
|
1120
|
+
description: "How to use this source-free result next."
|
|
1121
|
+
},
|
|
1122
|
+
guide: {
|
|
1123
|
+
type: "string",
|
|
1124
|
+
description: "Human-readable compatibility note mirroring `next`."
|
|
1125
|
+
}
|
|
1126
|
+
},
|
|
1127
|
+
required: [
|
|
1128
|
+
"type",
|
|
1129
|
+
"direction",
|
|
1130
|
+
"hops",
|
|
1131
|
+
"reached",
|
|
1132
|
+
"truncated",
|
|
1133
|
+
"next",
|
|
1134
|
+
"guide"
|
|
1135
|
+
],
|
|
1136
|
+
additionalProperties: false,
|
|
1137
|
+
description: "The compact dependency or caller flow returned from a selected start symbol."
|
|
1138
|
+
},
|
|
1139
|
+
"IGraphTrace.IHop": {
|
|
1140
|
+
type: "object",
|
|
1141
|
+
properties: {
|
|
1142
|
+
from: {
|
|
1143
|
+
type: "string",
|
|
1144
|
+
description: "Source node id for this traversed edge."
|
|
1145
|
+
},
|
|
1146
|
+
to: {
|
|
1147
|
+
type: "string",
|
|
1148
|
+
description: "Target node id for this traversed edge."
|
|
1149
|
+
},
|
|
1150
|
+
kind: {
|
|
1151
|
+
type: "string",
|
|
1152
|
+
description: "Edge kind (`calls`, `type_ref`, `accesses`, ...)."
|
|
1153
|
+
},
|
|
1154
|
+
depth: {
|
|
1155
|
+
type: "number",
|
|
1156
|
+
description: "Hops from the start (1 = direct)."
|
|
1157
|
+
},
|
|
1158
|
+
evidence: {
|
|
1159
|
+
$ref: "#/$defs/IGraphEvidence",
|
|
1160
|
+
description: "Source span for the expression that produced this hop. It is repository\nevidence for the hop and can be cited without opening the file."
|
|
1161
|
+
}
|
|
1162
|
+
},
|
|
1163
|
+
required: [
|
|
1164
|
+
"from",
|
|
1165
|
+
"to",
|
|
1166
|
+
"kind",
|
|
1167
|
+
"depth"
|
|
1168
|
+
],
|
|
1169
|
+
additionalProperties: false,
|
|
1170
|
+
description: "One traversed edge, with its depth from the start."
|
|
1171
|
+
},
|
|
1172
|
+
"IGraphTrace.INode": {
|
|
1173
|
+
type: "object",
|
|
1174
|
+
properties: {
|
|
1175
|
+
id: {
|
|
1176
|
+
type: "string",
|
|
1177
|
+
description: "Stable handle for `details` or `trace`."
|
|
1178
|
+
},
|
|
1179
|
+
name: {
|
|
1180
|
+
type: "string",
|
|
1181
|
+
description: "The symbol's qualified name when available."
|
|
1182
|
+
},
|
|
1183
|
+
kind: {
|
|
1184
|
+
type: "string",
|
|
1185
|
+
description: "Its declaration kind (`class`, `interface`, `function`, ...)."
|
|
1186
|
+
},
|
|
1187
|
+
language: {
|
|
1188
|
+
$ref: "#/$defs/GraphLanguage",
|
|
1189
|
+
description: "Language the symbol is written in."
|
|
1190
|
+
},
|
|
1191
|
+
file: {
|
|
1192
|
+
type: "string",
|
|
1193
|
+
description: "Project-relative path of the file that declares it."
|
|
1194
|
+
},
|
|
1195
|
+
line: {
|
|
1196
|
+
type: "number",
|
|
1197
|
+
description: "1-based declaration line, when known."
|
|
1198
|
+
},
|
|
1199
|
+
sourceSpan: {
|
|
1200
|
+
$ref: "#/$defs/PickIGraphEvidenceendLinefilestartLine",
|
|
1201
|
+
description: "Source span of the declaration, when known."
|
|
1202
|
+
},
|
|
1203
|
+
depth: {
|
|
1204
|
+
type: "number",
|
|
1205
|
+
description: "Hops from the start, on a reached node."
|
|
1206
|
+
},
|
|
1207
|
+
signature: {
|
|
1208
|
+
type: "string",
|
|
1209
|
+
description: "The node's signature, carried on path nodes so the path explains itself."
|
|
1210
|
+
},
|
|
1211
|
+
roles: {
|
|
1212
|
+
type: "array",
|
|
1213
|
+
items: {
|
|
1214
|
+
type: "string"
|
|
1215
|
+
},
|
|
1216
|
+
description: "Why this node matters to an impact trace: `exported`, `test`."
|
|
1217
|
+
}
|
|
1218
|
+
},
|
|
1219
|
+
required: [
|
|
1220
|
+
"id",
|
|
1221
|
+
"name",
|
|
1222
|
+
"kind",
|
|
1223
|
+
"language",
|
|
1224
|
+
"file"
|
|
1225
|
+
],
|
|
1226
|
+
additionalProperties: false,
|
|
1227
|
+
description: "A node on the trace: the start, a reached node, or a candidate."
|
|
1228
|
+
},
|
|
1229
|
+
PickIGraphEvidenceendLinefilestartLine: {
|
|
1230
|
+
type: "object",
|
|
1231
|
+
properties: {
|
|
1232
|
+
file: {
|
|
1233
|
+
type: "string",
|
|
1234
|
+
description: "Project-relative path of the file the span lives in."
|
|
1235
|
+
},
|
|
1236
|
+
startLine: {
|
|
1237
|
+
type: "number",
|
|
1238
|
+
description: "1-based line where the span starts."
|
|
1239
|
+
},
|
|
1240
|
+
endLine: {
|
|
1241
|
+
type: "number",
|
|
1242
|
+
description: "1-based line where the span ends, when it differs from `startLine`."
|
|
1243
|
+
}
|
|
1244
|
+
},
|
|
1245
|
+
required: [
|
|
1246
|
+
"file",
|
|
1247
|
+
"startLine"
|
|
1248
|
+
],
|
|
1249
|
+
additionalProperties: false
|
|
1250
|
+
},
|
|
1251
|
+
Recordstringnumber: {
|
|
1252
|
+
type: "object",
|
|
1253
|
+
properties: {},
|
|
1254
|
+
required: [],
|
|
1255
|
+
additionalProperties: {
|
|
1256
|
+
type: "number"
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
},
|
|
1261
|
+
parameters: {
|
|
1262
|
+
type: "object",
|
|
1263
|
+
properties: {
|
|
1264
|
+
question: {
|
|
1265
|
+
type: "string",
|
|
1266
|
+
description: "User's code question.\n\nRestate the code question being considered. If the next evidence is a\nscript, config, doc, generated output, exact text, a file outside the\nindexed languages, or source body text, choose `escape`."
|
|
1267
|
+
},
|
|
1268
|
+
draft: {
|
|
1269
|
+
$ref: "#/$defs/ISamchonGraphApplication.IDraft",
|
|
1270
|
+
description: "Initial request plan before final arguments are filled.\n\nName the intended request type in `type` and why it seems smallest in\n`reason`. Broad flow, architecture, repository-orientation, and read-next\nquestions should normally draft `tour`; narrow named symbols can draft\n`lookup`, `trace`, or `details`."
|
|
1271
|
+
},
|
|
1272
|
+
review: {
|
|
1273
|
+
type: "string",
|
|
1274
|
+
description: "Final self-review before calling.\n\nCorrect a stale, broad, duplicate, or wrong draft here. If broad flow was\nsplit into search/detail steps, switch to `tour`. If graph facts already\nanswer, or prior `next.action` was `answer`, make `request.type` be\n`escape`; do not call graph or read files to re-confirm returned facts."
|
|
1275
|
+
},
|
|
1276
|
+
request: {
|
|
1277
|
+
anyOf: [
|
|
1278
|
+
{
|
|
1279
|
+
$ref: "#/$defs/IGraphOverview.IRequest"
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
$ref: "#/$defs/IGraphDetails.IRequest"
|
|
1283
|
+
},
|
|
1284
|
+
{
|
|
1285
|
+
$ref: "#/$defs/IGraphEntrypoints.IRequest"
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
$ref: "#/$defs/IGraphEscape.IRequest"
|
|
1289
|
+
},
|
|
1290
|
+
{
|
|
1291
|
+
$ref: "#/$defs/IGraphLookup.IRequest"
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
$ref: "#/$defs/IGraphTour.IRequest"
|
|
1295
|
+
},
|
|
1296
|
+
{
|
|
1297
|
+
$ref: "#/$defs/IGraphTrace.IRequest"
|
|
1298
|
+
}
|
|
1299
|
+
],
|
|
1300
|
+
description: "Final graph operation chosen after review, or a no-op escape.",
|
|
1301
|
+
"x-discriminator": {
|
|
1302
|
+
mapping: {
|
|
1303
|
+
details: "#/$defs/IGraphDetails.IRequest",
|
|
1304
|
+
entrypoints: "#/$defs/IGraphEntrypoints.IRequest",
|
|
1305
|
+
escape: "#/$defs/IGraphEscape.IRequest",
|
|
1306
|
+
lookup: "#/$defs/IGraphLookup.IRequest",
|
|
1307
|
+
overview: "#/$defs/IGraphOverview.IRequest",
|
|
1308
|
+
tour: "#/$defs/IGraphTour.IRequest",
|
|
1309
|
+
trace: "#/$defs/IGraphTrace.IRequest"
|
|
1310
|
+
},
|
|
1311
|
+
propertyName: "type"
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
},
|
|
1315
|
+
required: [
|
|
1316
|
+
"question",
|
|
1317
|
+
"draft",
|
|
1318
|
+
"review",
|
|
1319
|
+
"request"
|
|
1320
|
+
],
|
|
1321
|
+
additionalProperties: false,
|
|
1322
|
+
description: "Draft, review, then submit exactly one graph request or escape.",
|
|
1323
|
+
$defs: {
|
|
1324
|
+
"IGraphDetails.IRequest": {
|
|
1325
|
+
type: "object",
|
|
1326
|
+
properties: {
|
|
1327
|
+
type: {
|
|
1328
|
+
type: "string",
|
|
1329
|
+
"enum": [
|
|
1330
|
+
"details"
|
|
1331
|
+
],
|
|
1332
|
+
description: "Discriminator for selected symbol inspection."
|
|
1333
|
+
},
|
|
1334
|
+
handles: {
|
|
1335
|
+
type: "array",
|
|
1336
|
+
items: {
|
|
1337
|
+
type: "string"
|
|
1338
|
+
},
|
|
1339
|
+
description: "Node ids from another tool, or dotted symbol handles such as\n`OrderService.create`. Pass the few handles you need for source-free\ndetails. Prefer one to three handles. Use `trace` when you need a path\ninstead of widening this call."
|
|
1340
|
+
},
|
|
1341
|
+
neighbors: {
|
|
1342
|
+
type: "boolean",
|
|
1343
|
+
description: "Also list each node's direct dependencies and dependents (the symbols it\nuses and the symbols that use it). The list is capped; raise\n`neighborLimit` when the first slice is truncated and the missing\nrelation is named. This remains a relationship summary, not a file body."
|
|
1344
|
+
},
|
|
1345
|
+
neighborLimit: {
|
|
1346
|
+
type: "number",
|
|
1347
|
+
description: "Maximum dependencies and dependents to return per side when\n`neighbors:true`.\n\nPrefer the default. Values above a few neighbors are usually overfetch;\ncall `trace` for flow instead."
|
|
1348
|
+
},
|
|
1349
|
+
memberLimit: {
|
|
1350
|
+
type: "number",
|
|
1351
|
+
description: "Maximum owned members to return for a container or object literal. Raise\nonly when the first outline is truncated and the missing member is\nnamed."
|
|
1352
|
+
},
|
|
1353
|
+
dependencyLimit: {
|
|
1354
|
+
type: "number",
|
|
1355
|
+
description: "Maximum direct execution and type references to return per group. Raise\nonly when the first dependency slice is truncated and the missing\ndependency is named."
|
|
1356
|
+
},
|
|
1357
|
+
includeExternal: {
|
|
1358
|
+
type: "boolean",
|
|
1359
|
+
description: "Include dependency-boundary references from bundled libraries. Leave\nfalse for source-architecture answers; enable only when external\ntype/API boundaries are the question."
|
|
1360
|
+
}
|
|
1361
|
+
},
|
|
1362
|
+
required: [
|
|
1363
|
+
"type",
|
|
1364
|
+
"handles"
|
|
1365
|
+
],
|
|
1366
|
+
additionalProperties: false,
|
|
1367
|
+
description: "Which selected handles to inspect, and how much of each to return."
|
|
1368
|
+
},
|
|
1369
|
+
"IGraphEntrypoints.IRequest": {
|
|
1370
|
+
type: "object",
|
|
1371
|
+
properties: {
|
|
1372
|
+
type: {
|
|
1373
|
+
type: "string",
|
|
1374
|
+
"enum": [
|
|
1375
|
+
"entrypoints"
|
|
1376
|
+
],
|
|
1377
|
+
description: "Discriminator for first-pass question indexing."
|
|
1378
|
+
},
|
|
1379
|
+
query: {
|
|
1380
|
+
type: "string",
|
|
1381
|
+
description: "A natural code question or search phrase. Mix prose with code handles,\nfor example `how Repository.find loads relations` or\n`SelectQueryBuilder.setFindOptions join aliases`. Keep this close to the\nuser's question; do not turn it into a broad keyword dump."
|
|
1382
|
+
},
|
|
1383
|
+
language: {
|
|
1384
|
+
type: "string",
|
|
1385
|
+
"enum": [
|
|
1386
|
+
"bash",
|
|
1387
|
+
"c",
|
|
1388
|
+
"cpp",
|
|
1389
|
+
"csharp",
|
|
1390
|
+
"dart",
|
|
1391
|
+
"go",
|
|
1392
|
+
"java",
|
|
1393
|
+
"javascript",
|
|
1394
|
+
"kotlin",
|
|
1395
|
+
"lua",
|
|
1396
|
+
"php",
|
|
1397
|
+
"python",
|
|
1398
|
+
"ruby",
|
|
1399
|
+
"rust",
|
|
1400
|
+
"scala",
|
|
1401
|
+
"swift",
|
|
1402
|
+
"typescript",
|
|
1403
|
+
"unknown",
|
|
1404
|
+
"zig"
|
|
1405
|
+
],
|
|
1406
|
+
description: "Target source language for the entrypoints."
|
|
1407
|
+
},
|
|
1408
|
+
limit: {
|
|
1409
|
+
type: "number",
|
|
1410
|
+
description: "Maximum ranked hits to return.\n\nPrefer the default. Raise only when the first result was truncated and\nthe missing handle is named."
|
|
1411
|
+
}
|
|
1412
|
+
},
|
|
1413
|
+
required: [
|
|
1414
|
+
"type",
|
|
1415
|
+
"query"
|
|
1416
|
+
],
|
|
1417
|
+
additionalProperties: false,
|
|
1418
|
+
description: "Ask for first handles when the question is narrow but the symbol is not yet\nknown. For broad tours, read-next, architecture, or multi-phase runtime\nflow, use `tour` instead of decomposing the answer into entrypoints and\nfollow-up calls."
|
|
1419
|
+
},
|
|
1420
|
+
"IGraphEscape.IRequest": {
|
|
1421
|
+
type: "object",
|
|
1422
|
+
properties: {
|
|
1423
|
+
type: {
|
|
1424
|
+
type: "string",
|
|
1425
|
+
"enum": [
|
|
1426
|
+
"escape"
|
|
1427
|
+
],
|
|
1428
|
+
description: "Discriminator for the no-op escape route."
|
|
1429
|
+
},
|
|
1430
|
+
reason: {
|
|
1431
|
+
type: "string",
|
|
1432
|
+
description: "Why no graph operation should run.\n\nUse this only when the next evidence is outside the indexed code\ngraph: package scripts, config files, generated output, prose docs, exact\ntext, or exact source body text. Name the smallest returned sourceSpan\nwhen source body text is truly required."
|
|
1433
|
+
},
|
|
1434
|
+
nextStep: {
|
|
1435
|
+
type: "string",
|
|
1436
|
+
description: "The final non-graph note, if useful.\n\nKeep this short. Examples: `answer from the prior graph result`, `source\nbody needed at returned sourceSpan`, or `ask the user for a concrete\nsymbol`."
|
|
1437
|
+
}
|
|
1438
|
+
},
|
|
1439
|
+
required: [
|
|
1440
|
+
"type",
|
|
1441
|
+
"reason"
|
|
1442
|
+
],
|
|
1443
|
+
additionalProperties: false,
|
|
1444
|
+
description: "Skip graph work when graph evidence is unnecessary or exhausted."
|
|
1445
|
+
},
|
|
1446
|
+
"IGraphLookup.IRequest": {
|
|
1447
|
+
type: "object",
|
|
1448
|
+
properties: {
|
|
1449
|
+
type: {
|
|
1450
|
+
type: "string",
|
|
1451
|
+
"enum": [
|
|
1452
|
+
"lookup"
|
|
1453
|
+
],
|
|
1454
|
+
description: "Discriminator for targeted symbol lookup."
|
|
1455
|
+
},
|
|
1456
|
+
query: {
|
|
1457
|
+
type: "string",
|
|
1458
|
+
description: "What to find, in natural language and code vocabulary mixed freely: a\nsymbol name, a dotted member (`Service.create`), or a short phrase\n(`request handler`). Exact names are not required, but this is not a\nsecond broad entrypoints call. Use it when a named handle is missing or\nambiguous."
|
|
1459
|
+
},
|
|
1460
|
+
language: {
|
|
1461
|
+
type: "string",
|
|
1462
|
+
"enum": [
|
|
1463
|
+
"bash",
|
|
1464
|
+
"c",
|
|
1465
|
+
"cpp",
|
|
1466
|
+
"csharp",
|
|
1467
|
+
"dart",
|
|
1468
|
+
"go",
|
|
1469
|
+
"java",
|
|
1470
|
+
"javascript",
|
|
1471
|
+
"kotlin",
|
|
1472
|
+
"lua",
|
|
1473
|
+
"php",
|
|
1474
|
+
"python",
|
|
1475
|
+
"ruby",
|
|
1476
|
+
"rust",
|
|
1477
|
+
"scala",
|
|
1478
|
+
"swift",
|
|
1479
|
+
"typescript",
|
|
1480
|
+
"unknown",
|
|
1481
|
+
"zig"
|
|
1482
|
+
],
|
|
1483
|
+
description: "Restrict hits to this language."
|
|
1484
|
+
},
|
|
1485
|
+
kind: {
|
|
1486
|
+
type: "string",
|
|
1487
|
+
"enum": [
|
|
1488
|
+
"class",
|
|
1489
|
+
"constructor",
|
|
1490
|
+
"enum",
|
|
1491
|
+
"external_symbol",
|
|
1492
|
+
"field",
|
|
1493
|
+
"file",
|
|
1494
|
+
"function",
|
|
1495
|
+
"interface",
|
|
1496
|
+
"method",
|
|
1497
|
+
"module",
|
|
1498
|
+
"namespace",
|
|
1499
|
+
"package",
|
|
1500
|
+
"parameter",
|
|
1501
|
+
"property",
|
|
1502
|
+
"type",
|
|
1503
|
+
"variable"
|
|
1504
|
+
],
|
|
1505
|
+
description: "Restrict hits to this declaration kind."
|
|
1506
|
+
},
|
|
1507
|
+
limit: {
|
|
1508
|
+
type: "number",
|
|
1509
|
+
description: "Maximum hits to return.\n\nPrefer the default. Large hit lists usually mean the query is too broad;\nrefine the name instead of raising this."
|
|
1510
|
+
},
|
|
1511
|
+
includeExternal: {
|
|
1512
|
+
type: "boolean",
|
|
1513
|
+
description: "Include dependency-boundary declarations from bundled libraries. Leave\nfalse for project-source answers; enable only when external type/API\nboundaries are the question."
|
|
1514
|
+
}
|
|
1515
|
+
},
|
|
1516
|
+
required: [
|
|
1517
|
+
"type",
|
|
1518
|
+
"query"
|
|
1519
|
+
],
|
|
1520
|
+
additionalProperties: false,
|
|
1521
|
+
description: "Find a concrete class, method, function, property, type, or dotted handle."
|
|
1522
|
+
},
|
|
1523
|
+
"IGraphOverview.IRequest": {
|
|
1524
|
+
type: "object",
|
|
1525
|
+
properties: {
|
|
1526
|
+
type: {
|
|
1527
|
+
type: "string",
|
|
1528
|
+
"enum": [
|
|
1529
|
+
"overview"
|
|
1530
|
+
],
|
|
1531
|
+
description: "Discriminator for source-free project overview."
|
|
1532
|
+
},
|
|
1533
|
+
aspect: {
|
|
1534
|
+
type: "string",
|
|
1535
|
+
"enum": [
|
|
1536
|
+
"all",
|
|
1537
|
+
"diagnostics",
|
|
1538
|
+
"hotspots",
|
|
1539
|
+
"layers",
|
|
1540
|
+
"publicApi"
|
|
1541
|
+
],
|
|
1542
|
+
description: "The facet to project, or `all` for every facet. `layers` is the folder\nlayering, `hotspots` the highest-dependency symbols, `publicApi` the\nexported API symbols ranked by how depended-on they are.\n\nUse this only for broad public API or layer orientation. For behavior,\nlifecycle, request-flow, rendering-flow, validation-flow, caller, or\ndependency questions, use `entrypoints` then `trace` instead."
|
|
1543
|
+
}
|
|
1544
|
+
},
|
|
1545
|
+
required: [
|
|
1546
|
+
"type"
|
|
1547
|
+
],
|
|
1548
|
+
additionalProperties: false,
|
|
1549
|
+
description: "Which broad architecture facets `overview` should return."
|
|
1550
|
+
},
|
|
1551
|
+
"IGraphTour.IRequest": {
|
|
1552
|
+
type: "object",
|
|
1553
|
+
properties: {
|
|
1554
|
+
type: {
|
|
1555
|
+
type: "string",
|
|
1556
|
+
"enum": [
|
|
1557
|
+
"tour"
|
|
1558
|
+
],
|
|
1559
|
+
description: "Discriminator for code-tour indexing."
|
|
1560
|
+
},
|
|
1561
|
+
question: {
|
|
1562
|
+
type: "string",
|
|
1563
|
+
description: "The user's natural code-tour question."
|
|
1564
|
+
},
|
|
1565
|
+
language: {
|
|
1566
|
+
type: "string",
|
|
1567
|
+
"enum": [
|
|
1568
|
+
"bash",
|
|
1569
|
+
"c",
|
|
1570
|
+
"cpp",
|
|
1571
|
+
"csharp",
|
|
1572
|
+
"dart",
|
|
1573
|
+
"go",
|
|
1574
|
+
"java",
|
|
1575
|
+
"javascript",
|
|
1576
|
+
"kotlin",
|
|
1577
|
+
"lua",
|
|
1578
|
+
"php",
|
|
1579
|
+
"python",
|
|
1580
|
+
"ruby",
|
|
1581
|
+
"rust",
|
|
1582
|
+
"scala",
|
|
1583
|
+
"swift",
|
|
1584
|
+
"typescript",
|
|
1585
|
+
"unknown",
|
|
1586
|
+
"zig"
|
|
1587
|
+
],
|
|
1588
|
+
description: "Target source language for the tour."
|
|
1589
|
+
},
|
|
1590
|
+
limit: {
|
|
1591
|
+
type: "number",
|
|
1592
|
+
description: "Maximum central entrypoints to seed the tour.\n\nPrefer the default. Raise only when the question names several distinct\npublic paths that must all appear in one answer."
|
|
1593
|
+
}
|
|
1594
|
+
},
|
|
1595
|
+
required: [
|
|
1596
|
+
"type"
|
|
1597
|
+
],
|
|
1598
|
+
additionalProperties: false,
|
|
1599
|
+
description: "Build the complete index-level answer surface for broad code tours: central\nentrypoints, primary flow, nearby paths, tests, and answer anchors. Use\nthis instead of decomposing repository-orientation, read-next,\narchitecture, or multi-phase runtime-flow questions into many\nlookup/details/trace calls."
|
|
1600
|
+
},
|
|
1601
|
+
"IGraphTrace.IRequest": {
|
|
1602
|
+
type: "object",
|
|
1603
|
+
properties: {
|
|
1604
|
+
type: {
|
|
1605
|
+
type: "string",
|
|
1606
|
+
"enum": [
|
|
1607
|
+
"trace"
|
|
1608
|
+
],
|
|
1609
|
+
description: "Discriminator for dependency tracing."
|
|
1610
|
+
},
|
|
1611
|
+
from: {
|
|
1612
|
+
type: "string",
|
|
1613
|
+
description: "Where to start: a node id from another tool, a simple symbol name, or a\ndotted member name such as `OrderService.create`. An ambiguous name\nreturns its candidates instead of a trace."
|
|
1614
|
+
},
|
|
1615
|
+
to: {
|
|
1616
|
+
type: "string",
|
|
1617
|
+
description: "A target symbol: node id, simple symbol name, or dotted member name. When\ngiven, the tool returns the dependency path from `from` to this target,\nthe one-call answer for \"how does A reach B\", instead of an open-ended\ntrace. Prefer this path mode whenever both ends are known."
|
|
1618
|
+
},
|
|
1619
|
+
direction: {
|
|
1620
|
+
type: "string",
|
|
1621
|
+
"enum": [
|
|
1622
|
+
"forward",
|
|
1623
|
+
"impact",
|
|
1624
|
+
"reverse"
|
|
1625
|
+
],
|
|
1626
|
+
description: "`forward` follows what the start uses (callees, instantiations, renders);\n`reverse` follows what uses the start (callers); `impact` is a reverse\ntrace that prioritizes public API and test nodes a change would reach.\nIts test nodes are semantic usage edges, not a text-search inventory.\nCaller questions usually fit `reverse`."
|
|
1627
|
+
},
|
|
1628
|
+
focus: {
|
|
1629
|
+
type: "string",
|
|
1630
|
+
"enum": [
|
|
1631
|
+
"all",
|
|
1632
|
+
"execution",
|
|
1633
|
+
"types"
|
|
1634
|
+
],
|
|
1635
|
+
description: "Which non-structural edge family to follow: `execution` follows runtime\ncalls, instantiations, property access, and JSX renders; `types` follows\ntype references and inheritance; `all` preserves the full graph. Flow\nquestions should usually choose `execution` rather than `all`."
|
|
1636
|
+
},
|
|
1637
|
+
maxDepth: {
|
|
1638
|
+
type: "number",
|
|
1639
|
+
description: "How many hops deep to follow. Open forward/reverse traces are capped at\n2; impact traces at 4; path mode at 12.\n\nPrefer the default for open traces. Raise only for path mode or when the\nprevious trace named the missing next hop."
|
|
1640
|
+
},
|
|
1641
|
+
maxNodes: {
|
|
1642
|
+
type: "number",
|
|
1643
|
+
description: "Cap on reached nodes; the trace stops and marks itself truncated past it.\nOpen forward/reverse traces are capped at 8 nodes, impact at 16 nodes.\n\nPrefer the default; use larger open traces only when a named missing edge\nrequires it."
|
|
1644
|
+
},
|
|
1645
|
+
includeExternal: {
|
|
1646
|
+
type: "boolean",
|
|
1647
|
+
description: "Include dependency-boundary nodes from bundled libraries. Leave false for\nsource-flow tours; enable only when the user asks about external type/API\nboundaries."
|
|
1648
|
+
}
|
|
1649
|
+
},
|
|
1650
|
+
required: [
|
|
1651
|
+
"type",
|
|
1652
|
+
"from"
|
|
1653
|
+
],
|
|
1654
|
+
additionalProperties: false,
|
|
1655
|
+
description: "Where and how far to trace dependency flow."
|
|
1656
|
+
},
|
|
1657
|
+
"ISamchonGraphApplication.IDraft": {
|
|
1658
|
+
type: "object",
|
|
1659
|
+
properties: {
|
|
1660
|
+
reason: {
|
|
1661
|
+
type: "string",
|
|
1662
|
+
description: "Why this request type looks like the smallest useful next step."
|
|
1663
|
+
},
|
|
1664
|
+
type: {
|
|
1665
|
+
type: "string",
|
|
1666
|
+
"enum": [
|
|
1667
|
+
"details",
|
|
1668
|
+
"entrypoints",
|
|
1669
|
+
"escape",
|
|
1670
|
+
"lookup",
|
|
1671
|
+
"overview",
|
|
1672
|
+
"tour",
|
|
1673
|
+
"trace"
|
|
1674
|
+
],
|
|
1675
|
+
description: "The request type being considered, corrected later in `review`."
|
|
1676
|
+
}
|
|
1677
|
+
},
|
|
1678
|
+
required: [
|
|
1679
|
+
"reason",
|
|
1680
|
+
"type"
|
|
1681
|
+
],
|
|
1682
|
+
additionalProperties: false,
|
|
1683
|
+
description: "First-pass request plan, filled before the final `request` arguments.\n\n`reason` comes before `type` so the justification is written before the\nchoice it justifies."
|
|
1684
|
+
}
|
|
1685
|
+
}
|
|
1686
|
+
},
|
|
1687
|
+
validate: (() => {
|
|
1688
|
+
const _ip0 = input => "string" === typeof input["reason"];
|
|
1689
|
+
const _ip1 = input => undefined === input["includeExternal"] || "boolean" === typeof input["includeExternal"];
|
|
1690
|
+
const _ip2 = input => "string" === typeof input["query"];
|
|
1691
|
+
const _ip3 = input => undefined === input["language"] || true === _iv0.has(input["language"]);
|
|
1692
|
+
const _iv0 = new Set(["bash", "c", "cpp", "csharp", "dart", "go", "java", "javascript", "kotlin", "lua", "php", "python", "ruby", "rust", "scala", "swift", "typescript", "unknown", "zig"]);
|
|
1693
|
+
const _ip4 = input => undefined === input["limit"] || "number" === typeof input["limit"];
|
|
1694
|
+
const _iv1 = new Set(["class", "constructor", "enum", "external_symbol", "field", "file", "function", "interface", "method", "module", "namespace", "package", "parameter", "property", "type", "variable"]);
|
|
1695
|
+
const _ve0 = "(IGraphDetails.IRequest | IGraphEntrypoints.IRequest | IGraphEscape.IRequest | IGraphLookup.IRequest | IGraphOverview.IRequest | IGraphTour.IRequest | IGraphTrace.IRequest)";
|
|
1696
|
+
const _vp0 = (input, _path, _exceptionable = true) => "string" === typeof input["reason"] || _report(_exceptionable, {
|
|
1697
|
+
path: _path + ".reason",
|
|
1698
|
+
expected: "string",
|
|
1699
|
+
value: input["reason"]
|
|
1700
|
+
});
|
|
1701
|
+
const _vp1 = (input, _path, _exceptionable = true) => undefined === input["includeExternal"] || "boolean" === typeof input["includeExternal"] || _report(_exceptionable, {
|
|
1702
|
+
path: _path + ".includeExternal",
|
|
1703
|
+
expected: "(boolean | undefined)",
|
|
1704
|
+
value: input["includeExternal"]
|
|
1705
|
+
});
|
|
1706
|
+
const _vp2 = (input, _path, _exceptionable = true) => "string" === typeof input["query"] || _report(_exceptionable, {
|
|
1707
|
+
path: _path + ".query",
|
|
1708
|
+
expected: "string",
|
|
1709
|
+
value: input["query"]
|
|
1710
|
+
});
|
|
1711
|
+
const _vp3 = (input, _path, _exceptionable = true) => undefined === input["language"] || true === _vv0.has(input["language"]) || _report(_exceptionable, {
|
|
1712
|
+
path: _path + ".language",
|
|
1713
|
+
expected: _ve1,
|
|
1714
|
+
value: input["language"]
|
|
1715
|
+
});
|
|
1716
|
+
const _vv0 = new Set(["bash", "c", "cpp", "csharp", "dart", "go", "java", "javascript", "kotlin", "lua", "php", "python", "ruby", "rust", "scala", "swift", "typescript", "unknown", "zig"]);
|
|
1717
|
+
const _ve1 = "(\"bash\" | \"c\" | \"cpp\" | \"csharp\" | \"dart\" | \"go\" | \"java\" | \"javascript\" | \"kotlin\" | \"lua\" | \"php\" | \"python\" | \"ruby\" | \"rust\" | \"scala\" | \"swift\" | \"typescript\" | \"unknown\" | \"zig\" | undefined)";
|
|
1718
|
+
const _vp4 = (input, _path, _exceptionable = true) => undefined === input["limit"] || "number" === typeof input["limit"] || _report(_exceptionable, {
|
|
1719
|
+
path: _path + ".limit",
|
|
1720
|
+
expected: "(number | undefined)",
|
|
1721
|
+
value: input["limit"]
|
|
1722
|
+
});
|
|
1723
|
+
const _vv1 = new Set(["class", "constructor", "enum", "external_symbol", "field", "file", "function", "interface", "method", "module", "namespace", "package", "parameter", "property", "type", "variable"]);
|
|
1724
|
+
const _ve2 = "(\"class\" | \"constructor\" | \"enum\" | \"external_symbol\" | \"field\" | \"file\" | \"function\" | \"interface\" | \"method\" | \"module\" | \"namespace\" | \"package\" | \"parameter\" | \"property\" | \"type\" | \"variable\" | undefined)";
|
|
1725
|
+
const _ve3 = "(IGraphOverview.IRequest | IGraphDetails.IRequest | IGraphEntrypoints.IRequest | IGraphEscape.IRequest | IGraphLookup.IRequest | IGraphTour.IRequest | IGraphTrace.IRequest)";
|
|
1726
|
+
const _io0 = input => "string" === typeof input.question && ("object" === typeof input.draft && null !== input.draft && _io1(input.draft)) && "string" === typeof input.review && ("object" === typeof input.request && null !== input.request && _iu0(input.request));
|
|
1727
|
+
const _io1 = input => _ip0(input) && ("details" === input.type || "entrypoints" === input.type || "escape" === input.type || "lookup" === input.type || "overview" === input.type || "tour" === input.type || "trace" === input.type);
|
|
1728
|
+
const _io2 = input => "overview" === input.type && (undefined === input.aspect || "all" === input.aspect || "diagnostics" === input.aspect || "hotspots" === input.aspect || "layers" === input.aspect || "publicApi" === input.aspect);
|
|
1729
|
+
const _io3 = input => "details" === input.type && (Array.isArray(input.handles) && input.handles.every(elem => "string" === typeof elem)) && (undefined === input.neighbors || "boolean" === typeof input.neighbors) && (undefined === input.neighborLimit || "number" === typeof input.neighborLimit) && (undefined === input.memberLimit || "number" === typeof input.memberLimit) && (undefined === input.dependencyLimit || "number" === typeof input.dependencyLimit) && _ip1(input);
|
|
1730
|
+
const _io4 = input => "entrypoints" === input.type && _ip2(input) && _ip3(input) && _ip4(input);
|
|
1731
|
+
const _io5 = input => "escape" === input.type && _ip0(input) && (undefined === input.nextStep || "string" === typeof input.nextStep);
|
|
1732
|
+
const _io6 = input => "lookup" === input.type && _ip2(input) && _ip3(input) && (undefined === input.kind || true === _iv1.has(input.kind)) && _ip4(input) && _ip1(input);
|
|
1733
|
+
const _io7 = input => "tour" === input.type && (undefined === input.question || "string" === typeof input.question) && _ip3(input) && _ip4(input);
|
|
1734
|
+
const _io8 = input => "trace" === input.type && "string" === typeof input.from && (undefined === input.to || "string" === typeof input.to) && (undefined === input.direction || "forward" === input.direction || "impact" === input.direction || "reverse" === input.direction) && (undefined === input.focus || "all" === input.focus || "execution" === input.focus || "types" === input.focus) && (undefined === input.maxDepth || "number" === typeof input.maxDepth) && (undefined === input.maxNodes || "number" === typeof input.maxNodes) && _ip1(input);
|
|
1735
|
+
const _iu0 = input => (() => {
|
|
1736
|
+
if ("overview" === input.type)
|
|
1737
|
+
return _io2(input);
|
|
1738
|
+
else if ("details" === input.type)
|
|
1739
|
+
return _io3(input);
|
|
1740
|
+
else if ("entrypoints" === input.type)
|
|
1741
|
+
return _io4(input);
|
|
1742
|
+
else if ("escape" === input.type)
|
|
1743
|
+
return _io5(input);
|
|
1744
|
+
else if ("lookup" === input.type)
|
|
1745
|
+
return _io6(input);
|
|
1746
|
+
else if ("tour" === input.type)
|
|
1747
|
+
return _io7(input);
|
|
1748
|
+
else if ("trace" === input.type)
|
|
1749
|
+
return _io8(input);
|
|
1750
|
+
else
|
|
1751
|
+
return false;
|
|
1752
|
+
})();
|
|
1753
|
+
const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.question || _report(_exceptionable, {
|
|
1754
|
+
path: _path + ".question",
|
|
1755
|
+
expected: "string",
|
|
1756
|
+
value: input.question
|
|
1757
|
+
}), ("object" === typeof input.draft && null !== input.draft || _report(_exceptionable, {
|
|
1758
|
+
path: _path + ".draft",
|
|
1759
|
+
expected: "ISamchonGraphApplication.IDraft",
|
|
1760
|
+
value: input.draft
|
|
1761
|
+
})) && _vo1(input.draft, _path + ".draft", true && _exceptionable) || _report(_exceptionable, {
|
|
1762
|
+
path: _path + ".draft",
|
|
1763
|
+
expected: "ISamchonGraphApplication.IDraft",
|
|
1764
|
+
value: input.draft
|
|
1765
|
+
}), "string" === typeof input.review || _report(_exceptionable, {
|
|
1766
|
+
path: _path + ".review",
|
|
1767
|
+
expected: "string",
|
|
1768
|
+
value: input.review
|
|
1769
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
1770
|
+
path: _path + ".request",
|
|
1771
|
+
expected: _ve0,
|
|
1772
|
+
value: input.request
|
|
1773
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
1774
|
+
path: _path + ".request",
|
|
1775
|
+
expected: _ve0,
|
|
1776
|
+
value: input.request
|
|
1777
|
+
})].every(flag => flag);
|
|
1778
|
+
const _vo1 = (input, _path, _exceptionable = true) => [_vp0(input, _path, true && _exceptionable), "details" === input.type || "entrypoints" === input.type || "escape" === input.type || "lookup" === input.type || "overview" === input.type || "tour" === input.type || "trace" === input.type || _report(_exceptionable, {
|
|
1779
|
+
path: _path + ".type",
|
|
1780
|
+
expected: "(\"details\" | \"entrypoints\" | \"escape\" | \"lookup\" | \"overview\" | \"tour\" | \"trace\")",
|
|
1781
|
+
value: input.type
|
|
1782
|
+
})].every(flag => flag);
|
|
1783
|
+
const _vo2 = (input, _path, _exceptionable = true) => ["overview" === input.type || _report(_exceptionable, {
|
|
1784
|
+
path: _path + ".type",
|
|
1785
|
+
expected: "\"overview\"",
|
|
1786
|
+
value: input.type
|
|
1787
|
+
}), undefined === input.aspect || "all" === input.aspect || "diagnostics" === input.aspect || "hotspots" === input.aspect || "layers" === input.aspect || "publicApi" === input.aspect || _report(_exceptionable, {
|
|
1788
|
+
path: _path + ".aspect",
|
|
1789
|
+
expected: "(\"all\" | \"diagnostics\" | \"hotspots\" | \"layers\" | \"publicApi\" | undefined)",
|
|
1790
|
+
value: input.aspect
|
|
1791
|
+
})].every(flag => flag);
|
|
1792
|
+
const _vo3 = (input, _path, _exceptionable = true) => ["details" === input.type || _report(_exceptionable, {
|
|
1793
|
+
path: _path + ".type",
|
|
1794
|
+
expected: "\"details\"",
|
|
1795
|
+
value: input.type
|
|
1796
|
+
}), (Array.isArray(input.handles) || _report(_exceptionable, {
|
|
1797
|
+
path: _path + ".handles",
|
|
1798
|
+
expected: "Array<string>",
|
|
1799
|
+
value: input.handles
|
|
1800
|
+
})) && input.handles.map((elem, _index2) => "string" === typeof elem || _report(_exceptionable, {
|
|
1801
|
+
path: _path + ".handles[" + _index2 + "]",
|
|
1802
|
+
expected: "string",
|
|
1803
|
+
value: elem
|
|
1804
|
+
})).every(flag => flag) || _report(_exceptionable, {
|
|
1805
|
+
path: _path + ".handles",
|
|
1806
|
+
expected: "Array<string>",
|
|
1807
|
+
value: input.handles
|
|
1808
|
+
}), undefined === input.neighbors || "boolean" === typeof input.neighbors || _report(_exceptionable, {
|
|
1809
|
+
path: _path + ".neighbors",
|
|
1810
|
+
expected: "(boolean | undefined)",
|
|
1811
|
+
value: input.neighbors
|
|
1812
|
+
}), undefined === input.neighborLimit || "number" === typeof input.neighborLimit || _report(_exceptionable, {
|
|
1813
|
+
path: _path + ".neighborLimit",
|
|
1814
|
+
expected: "(number | undefined)",
|
|
1815
|
+
value: input.neighborLimit
|
|
1816
|
+
}), undefined === input.memberLimit || "number" === typeof input.memberLimit || _report(_exceptionable, {
|
|
1817
|
+
path: _path + ".memberLimit",
|
|
1818
|
+
expected: "(number | undefined)",
|
|
1819
|
+
value: input.memberLimit
|
|
1820
|
+
}), undefined === input.dependencyLimit || "number" === typeof input.dependencyLimit || _report(_exceptionable, {
|
|
1821
|
+
path: _path + ".dependencyLimit",
|
|
1822
|
+
expected: "(number | undefined)",
|
|
1823
|
+
value: input.dependencyLimit
|
|
1824
|
+
}), _vp1(input, _path, true && _exceptionable)].every(flag => flag);
|
|
1825
|
+
const _vo4 = (input, _path, _exceptionable = true) => ["entrypoints" === input.type || _report(_exceptionable, {
|
|
1826
|
+
path: _path + ".type",
|
|
1827
|
+
expected: "\"entrypoints\"",
|
|
1828
|
+
value: input.type
|
|
1829
|
+
}), _vp2(input, _path, true && _exceptionable), _vp3(input, _path, true && _exceptionable), _vp4(input, _path, true && _exceptionable)].every(flag => flag);
|
|
1830
|
+
const _vo5 = (input, _path, _exceptionable = true) => ["escape" === input.type || _report(_exceptionable, {
|
|
1831
|
+
path: _path + ".type",
|
|
1832
|
+
expected: "\"escape\"",
|
|
1833
|
+
value: input.type
|
|
1834
|
+
}), _vp0(input, _path, true && _exceptionable), undefined === input.nextStep || "string" === typeof input.nextStep || _report(_exceptionable, {
|
|
1835
|
+
path: _path + ".nextStep",
|
|
1836
|
+
expected: "(string | undefined)",
|
|
1837
|
+
value: input.nextStep
|
|
1838
|
+
})].every(flag => flag);
|
|
1839
|
+
const _vo6 = (input, _path, _exceptionable = true) => ["lookup" === input.type || _report(_exceptionable, {
|
|
1840
|
+
path: _path + ".type",
|
|
1841
|
+
expected: "\"lookup\"",
|
|
1842
|
+
value: input.type
|
|
1843
|
+
}), _vp2(input, _path, true && _exceptionable), _vp3(input, _path, true && _exceptionable), undefined === input.kind || true === _vv1.has(input.kind) || _report(_exceptionable, {
|
|
1844
|
+
path: _path + ".kind",
|
|
1845
|
+
expected: _ve2,
|
|
1846
|
+
value: input.kind
|
|
1847
|
+
}), _vp4(input, _path, true && _exceptionable), _vp1(input, _path, true && _exceptionable)].every(flag => flag);
|
|
1848
|
+
const _vo7 = (input, _path, _exceptionable = true) => ["tour" === input.type || _report(_exceptionable, {
|
|
1849
|
+
path: _path + ".type",
|
|
1850
|
+
expected: "\"tour\"",
|
|
1851
|
+
value: input.type
|
|
1852
|
+
}), undefined === input.question || "string" === typeof input.question || _report(_exceptionable, {
|
|
1853
|
+
path: _path + ".question",
|
|
1854
|
+
expected: "(string | undefined)",
|
|
1855
|
+
value: input.question
|
|
1856
|
+
}), _vp3(input, _path, true && _exceptionable), _vp4(input, _path, true && _exceptionable)].every(flag => flag);
|
|
1857
|
+
const _vo8 = (input, _path, _exceptionable = true) => ["trace" === input.type || _report(_exceptionable, {
|
|
1858
|
+
path: _path + ".type",
|
|
1859
|
+
expected: "\"trace\"",
|
|
1860
|
+
value: input.type
|
|
1861
|
+
}), "string" === typeof input.from || _report(_exceptionable, {
|
|
1862
|
+
path: _path + ".from",
|
|
1863
|
+
expected: "string",
|
|
1864
|
+
value: input.from
|
|
1865
|
+
}), undefined === input.to || "string" === typeof input.to || _report(_exceptionable, {
|
|
1866
|
+
path: _path + ".to",
|
|
1867
|
+
expected: "(string | undefined)",
|
|
1868
|
+
value: input.to
|
|
1869
|
+
}), undefined === input.direction || "forward" === input.direction || "impact" === input.direction || "reverse" === input.direction || _report(_exceptionable, {
|
|
1870
|
+
path: _path + ".direction",
|
|
1871
|
+
expected: "(\"forward\" | \"impact\" | \"reverse\" | undefined)",
|
|
1872
|
+
value: input.direction
|
|
1873
|
+
}), undefined === input.focus || "all" === input.focus || "execution" === input.focus || "types" === input.focus || _report(_exceptionable, {
|
|
1874
|
+
path: _path + ".focus",
|
|
1875
|
+
expected: "(\"all\" | \"execution\" | \"types\" | undefined)",
|
|
1876
|
+
value: input.focus
|
|
1877
|
+
}), undefined === input.maxDepth || "number" === typeof input.maxDepth || _report(_exceptionable, {
|
|
1878
|
+
path: _path + ".maxDepth",
|
|
1879
|
+
expected: "(number | undefined)",
|
|
1880
|
+
value: input.maxDepth
|
|
1881
|
+
}), undefined === input.maxNodes || "number" === typeof input.maxNodes || _report(_exceptionable, {
|
|
1882
|
+
path: _path + ".maxNodes",
|
|
1883
|
+
expected: "(number | undefined)",
|
|
1884
|
+
value: input.maxNodes
|
|
1885
|
+
}), _vp1(input, _path, true && _exceptionable)].every(flag => flag);
|
|
1886
|
+
const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
1887
|
+
if ("overview" === input.type)
|
|
1888
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
1889
|
+
else if ("details" === input.type)
|
|
1890
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
1891
|
+
else if ("entrypoints" === input.type)
|
|
1892
|
+
return _vo4(input, _path, true && _exceptionable);
|
|
1893
|
+
else if ("escape" === input.type)
|
|
1894
|
+
return _vo5(input, _path, true && _exceptionable);
|
|
1895
|
+
else if ("lookup" === input.type)
|
|
1896
|
+
return _vo6(input, _path, true && _exceptionable);
|
|
1897
|
+
else if ("tour" === input.type)
|
|
1898
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
1899
|
+
else if ("trace" === input.type)
|
|
1900
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
1901
|
+
else
|
|
1902
|
+
return _report(_exceptionable, {
|
|
1903
|
+
path: _path,
|
|
1904
|
+
expected: _ve3,
|
|
1905
|
+
value: input
|
|
1906
|
+
});
|
|
1907
|
+
})();
|
|
1908
|
+
const __is = input => "object" === typeof input && null !== input && _io0(input);
|
|
1909
|
+
let errors;
|
|
1910
|
+
let _report;
|
|
1911
|
+
return input => {
|
|
1912
|
+
if (false === __is(input)) {
|
|
1913
|
+
errors = [];
|
|
1914
|
+
_report = _b._validateReport(errors);
|
|
1915
|
+
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
1916
|
+
path: _path + "",
|
|
1917
|
+
expected: "ISamchonGraphApplication.IProps",
|
|
1918
|
+
value: input
|
|
1919
|
+
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
1920
|
+
path: _path + "",
|
|
1921
|
+
expected: "ISamchonGraphApplication.IProps",
|
|
1922
|
+
value: input
|
|
1923
|
+
}))(input, "$input", true);
|
|
1924
|
+
const success = 0 === errors.length;
|
|
1925
|
+
return success ? {
|
|
1926
|
+
success,
|
|
1927
|
+
data: input
|
|
1928
|
+
} : {
|
|
1929
|
+
success,
|
|
1930
|
+
errors,
|
|
1931
|
+
data: input
|
|
1932
|
+
};
|
|
1933
|
+
}
|
|
1934
|
+
return {
|
|
1935
|
+
success: true,
|
|
1936
|
+
data: input
|
|
1937
|
+
};
|
|
1938
|
+
};
|
|
1939
|
+
})()
|
|
1940
|
+
}
|
|
1941
|
+
]
|
|
1942
|
+
}),
|
|
1943
|
+
execute: new application_1.SamchonGraphApplication(graph),
|
|
1944
|
+
};
|
|
1945
|
+
return (0, mcp_1.createMcpServer)(controller, version);
|
|
1946
|
+
}
|
|
1947
|
+
//# sourceMappingURL=createServer.js.map
|