@grafema/util 0.3.0-beta
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 +190 -0
- package/dist/api/GraphAPI.d.ts +87 -0
- package/dist/api/GraphAPI.d.ts.map +1 -0
- package/dist/api/GraphAPI.js +212 -0
- package/dist/api/GraphAPI.js.map +1 -0
- package/dist/api/GuaranteeAPI.d.ts +147 -0
- package/dist/api/GuaranteeAPI.d.ts.map +1 -0
- package/dist/api/GuaranteeAPI.js +290 -0
- package/dist/api/GuaranteeAPI.js.map +1 -0
- package/dist/config/ConfigLoader.d.ts +214 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +441 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/CoverageAnalyzer.d.ts +65 -0
- package/dist/core/CoverageAnalyzer.d.ts.map +1 -0
- package/dist/core/CoverageAnalyzer.js +199 -0
- package/dist/core/CoverageAnalyzer.js.map +1 -0
- package/dist/core/FileExplainer.d.ts +101 -0
- package/dist/core/FileExplainer.d.ts.map +1 -0
- package/dist/core/FileExplainer.js +140 -0
- package/dist/core/FileExplainer.js.map +1 -0
- package/dist/core/FileOverview.d.ts +124 -0
- package/dist/core/FileOverview.d.ts.map +1 -0
- package/dist/core/FileOverview.js +279 -0
- package/dist/core/FileOverview.js.map +1 -0
- package/dist/core/GrafemaUri.d.ts +66 -0
- package/dist/core/GrafemaUri.d.ts.map +1 -0
- package/dist/core/GrafemaUri.js +191 -0
- package/dist/core/GrafemaUri.js.map +1 -0
- package/dist/core/GraphBackend.d.ts +158 -0
- package/dist/core/GraphBackend.d.ts.map +1 -0
- package/dist/core/GraphBackend.js +85 -0
- package/dist/core/GraphBackend.js.map +1 -0
- package/dist/core/GraphFreshnessChecker.d.ts +33 -0
- package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
- package/dist/core/GraphFreshnessChecker.js +104 -0
- package/dist/core/GraphFreshnessChecker.js.map +1 -0
- package/dist/core/GuaranteeManager.d.ts +254 -0
- package/dist/core/GuaranteeManager.d.ts.map +1 -0
- package/dist/core/GuaranteeManager.js +447 -0
- package/dist/core/GuaranteeManager.js.map +1 -0
- package/dist/core/HashUtils.d.ts +24 -0
- package/dist/core/HashUtils.d.ts.map +1 -0
- package/dist/core/HashUtils.js +46 -0
- package/dist/core/HashUtils.js.map +1 -0
- package/dist/core/IncrementalReanalyzer.d.ts +33 -0
- package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
- package/dist/core/IncrementalReanalyzer.js +67 -0
- package/dist/core/IncrementalReanalyzer.js.map +1 -0
- package/dist/core/ResourceRegistry.d.ts +17 -0
- package/dist/core/ResourceRegistry.d.ts.map +1 -0
- package/dist/core/ResourceRegistry.js +32 -0
- package/dist/core/ResourceRegistry.js.map +1 -0
- package/dist/core/SemanticId.d.ts +159 -0
- package/dist/core/SemanticId.d.ts.map +1 -0
- package/dist/core/SemanticId.js +291 -0
- package/dist/core/SemanticId.js.map +1 -0
- package/dist/core/VersionManager.d.ts +166 -0
- package/dist/core/VersionManager.d.ts.map +1 -0
- package/dist/core/VersionManager.js +239 -0
- package/dist/core/VersionManager.js.map +1 -0
- package/dist/core/brandNodeInternal.d.ts +14 -0
- package/dist/core/brandNodeInternal.d.ts.map +1 -0
- package/dist/core/brandNodeInternal.js +4 -0
- package/dist/core/brandNodeInternal.js.map +1 -0
- package/dist/core/nodes/GuaranteeNode.d.ts +76 -0
- package/dist/core/nodes/GuaranteeNode.d.ts.map +1 -0
- package/dist/core/nodes/GuaranteeNode.js +118 -0
- package/dist/core/nodes/GuaranteeNode.js.map +1 -0
- package/dist/core/nodes/IssueNode.d.ts +73 -0
- package/dist/core/nodes/IssueNode.d.ts.map +1 -0
- package/dist/core/nodes/IssueNode.js +130 -0
- package/dist/core/nodes/IssueNode.js.map +1 -0
- package/dist/core/nodes/NodeKind.d.ts +104 -0
- package/dist/core/nodes/NodeKind.d.ts.map +1 -0
- package/dist/core/nodes/NodeKind.js +166 -0
- package/dist/core/nodes/NodeKind.js.map +1 -0
- package/dist/diagnostics/DiagnosticCollector.d.ts +103 -0
- package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticCollector.js +133 -0
- package/dist/diagnostics/DiagnosticCollector.js.map +1 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts +122 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticReporter.js +300 -0
- package/dist/diagnostics/DiagnosticReporter.js.map +1 -0
- package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
- package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticWriter.js +44 -0
- package/dist/diagnostics/DiagnosticWriter.js.map +1 -0
- package/dist/diagnostics/categories.d.ts +57 -0
- package/dist/diagnostics/categories.d.ts.map +1 -0
- package/dist/diagnostics/categories.js +71 -0
- package/dist/diagnostics/categories.js.map +1 -0
- package/dist/diagnostics/index.d.ts +17 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +15 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/errors/GrafemaError.d.ts +200 -0
- package/dist/errors/GrafemaError.d.ts.map +1 -0
- package/dist/errors/GrafemaError.js +209 -0
- package/dist/errors/GrafemaError.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/instructions/index.d.ts +8 -0
- package/dist/instructions/index.d.ts.map +1 -0
- package/dist/instructions/index.js +20 -0
- package/dist/instructions/index.js.map +1 -0
- package/dist/instructions/onboarding.md +133 -0
- package/dist/knowledge/KnowledgeBase.d.ts +113 -0
- package/dist/knowledge/KnowledgeBase.d.ts.map +1 -0
- package/dist/knowledge/KnowledgeBase.js +420 -0
- package/dist/knowledge/KnowledgeBase.js.map +1 -0
- package/dist/knowledge/SemanticAddressResolver.d.ts +59 -0
- package/dist/knowledge/SemanticAddressResolver.d.ts.map +1 -0
- package/dist/knowledge/SemanticAddressResolver.js +160 -0
- package/dist/knowledge/SemanticAddressResolver.js.map +1 -0
- package/dist/knowledge/git-ingest.d.ts +58 -0
- package/dist/knowledge/git-ingest.d.ts.map +1 -0
- package/dist/knowledge/git-ingest.js +301 -0
- package/dist/knowledge/git-ingest.js.map +1 -0
- package/dist/knowledge/git-queries.d.ts +86 -0
- package/dist/knowledge/git-queries.d.ts.map +1 -0
- package/dist/knowledge/git-queries.js +177 -0
- package/dist/knowledge/git-queries.js.map +1 -0
- package/dist/knowledge/index.d.ts +14 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +10 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/parser.d.ts +39 -0
- package/dist/knowledge/parser.d.ts.map +1 -0
- package/dist/knowledge/parser.js +292 -0
- package/dist/knowledge/parser.js.map +1 -0
- package/dist/knowledge/types.d.ts +133 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +8 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/logging/Logger.d.ts +98 -0
- package/dist/logging/Logger.d.ts.map +1 -0
- package/dist/logging/Logger.js +274 -0
- package/dist/logging/Logger.js.map +1 -0
- package/dist/notation/archetypes.d.ts +36 -0
- package/dist/notation/archetypes.d.ts.map +1 -0
- package/dist/notation/archetypes.js +173 -0
- package/dist/notation/archetypes.js.map +1 -0
- package/dist/notation/fold.d.ts +25 -0
- package/dist/notation/fold.d.ts.map +1 -0
- package/dist/notation/fold.js +598 -0
- package/dist/notation/fold.js.map +1 -0
- package/dist/notation/index.d.ts +18 -0
- package/dist/notation/index.d.ts.map +1 -0
- package/dist/notation/index.js +16 -0
- package/dist/notation/index.js.map +1 -0
- package/dist/notation/lodExtractor.d.ts +32 -0
- package/dist/notation/lodExtractor.d.ts.map +1 -0
- package/dist/notation/lodExtractor.js +149 -0
- package/dist/notation/lodExtractor.js.map +1 -0
- package/dist/notation/nameShortener.d.ts +22 -0
- package/dist/notation/nameShortener.d.ts.map +1 -0
- package/dist/notation/nameShortener.js +24 -0
- package/dist/notation/nameShortener.js.map +1 -0
- package/dist/notation/perspectives.d.ts +11 -0
- package/dist/notation/perspectives.d.ts.map +1 -0
- package/dist/notation/perspectives.js +16 -0
- package/dist/notation/perspectives.js.map +1 -0
- package/dist/notation/renderer.d.ts +31 -0
- package/dist/notation/renderer.d.ts.map +1 -0
- package/dist/notation/renderer.js +315 -0
- package/dist/notation/renderer.js.map +1 -0
- package/dist/notation/traceRenderer.d.ts +39 -0
- package/dist/notation/traceRenderer.d.ts.map +1 -0
- package/dist/notation/traceRenderer.js +358 -0
- package/dist/notation/traceRenderer.js.map +1 -0
- package/dist/notation/types.d.ts +66 -0
- package/dist/notation/types.d.ts.map +1 -0
- package/dist/notation/types.js +10 -0
- package/dist/notation/types.js.map +1 -0
- package/dist/queries/NodeContext.d.ts +81 -0
- package/dist/queries/NodeContext.d.ts.map +1 -0
- package/dist/queries/NodeContext.js +196 -0
- package/dist/queries/NodeContext.js.map +1 -0
- package/dist/queries/findCallsInFunction.d.ts +62 -0
- package/dist/queries/findCallsInFunction.d.ts.map +1 -0
- package/dist/queries/findCallsInFunction.js +169 -0
- package/dist/queries/findCallsInFunction.js.map +1 -0
- package/dist/queries/findContainingFunction.d.ts +57 -0
- package/dist/queries/findContainingFunction.d.ts.map +1 -0
- package/dist/queries/findContainingFunction.js +91 -0
- package/dist/queries/findContainingFunction.js.map +1 -0
- package/dist/queries/index.d.ts +18 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +14 -0
- package/dist/queries/index.js.map +1 -0
- package/dist/queries/traceDataflow.d.ts +65 -0
- package/dist/queries/traceDataflow.d.ts.map +1 -0
- package/dist/queries/traceDataflow.js +754 -0
- package/dist/queries/traceDataflow.js.map +1 -0
- package/dist/queries/traceValues.d.ts +70 -0
- package/dist/queries/traceValues.d.ts.map +1 -0
- package/dist/queries/traceValues.js +373 -0
- package/dist/queries/traceValues.js.map +1 -0
- package/dist/queries/types.d.ts +166 -0
- package/dist/queries/types.d.ts.map +1 -0
- package/dist/queries/types.js +10 -0
- package/dist/queries/types.js.map +1 -0
- package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
- package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
- package/dist/schema/GraphSchemaExtractor.js +125 -0
- package/dist/schema/GraphSchemaExtractor.js.map +1 -0
- package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
- package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
- package/dist/schema/InterfaceSchemaExtractor.js +113 -0
- package/dist/schema/InterfaceSchemaExtractor.js.map +1 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +3 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts +356 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -0
- package/dist/storage/backends/RFDBServerBackend.js +748 -0
- package/dist/storage/backends/RFDBServerBackend.js.map +1 -0
- package/dist/storage/backends/typeValidation.d.ts +47 -0
- package/dist/storage/backends/typeValidation.d.ts.map +1 -0
- package/dist/storage/backends/typeValidation.js +141 -0
- package/dist/storage/backends/typeValidation.js.map +1 -0
- package/dist/utils/findRfdbBinary.d.ts +67 -0
- package/dist/utils/findRfdbBinary.d.ts.map +1 -0
- package/dist/utils/findRfdbBinary.js +261 -0
- package/dist/utils/findRfdbBinary.js.map +1 -0
- package/dist/utils/lazyDownload.d.ts +43 -0
- package/dist/utils/lazyDownload.d.ts.map +1 -0
- package/dist/utils/lazyDownload.js +175 -0
- package/dist/utils/lazyDownload.js.map +1 -0
- package/dist/utils/moduleResolution.d.ts +134 -0
- package/dist/utils/moduleResolution.d.ts.map +1 -0
- package/dist/utils/moduleResolution.js +189 -0
- package/dist/utils/moduleResolution.js.map +1 -0
- package/dist/utils/resolveNodeFile.d.ts +13 -0
- package/dist/utils/resolveNodeFile.d.ts.map +1 -0
- package/dist/utils/resolveNodeFile.js +18 -0
- package/dist/utils/resolveNodeFile.js.map +1 -0
- package/dist/utils/startRfdbServer.d.ts +63 -0
- package/dist/utils/startRfdbServer.d.ts.map +1 -0
- package/dist/utils/startRfdbServer.js +142 -0
- package/dist/utils/startRfdbServer.js.map +1 -0
- package/dist/validation/PathValidator.d.ts +80 -0
- package/dist/validation/PathValidator.d.ts.map +1 -0
- package/dist/validation/PathValidator.js +252 -0
- package/dist/validation/PathValidator.js.map +1 -0
- package/dist/version.d.ts +11 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +26 -0
- package/dist/version.js.map +1 -0
- package/package.json +50 -0
- package/src/api/GraphAPI.ts +307 -0
- package/src/api/GuaranteeAPI.ts +402 -0
- package/src/config/ConfigLoader.ts +653 -0
- package/src/config/index.ts +13 -0
- package/src/core/CoverageAnalyzer.ts +243 -0
- package/src/core/FileExplainer.ts +179 -0
- package/src/core/FileOverview.ts +397 -0
- package/src/core/GrafemaUri.ts +216 -0
- package/src/core/GraphBackend.ts +266 -0
- package/src/core/GraphFreshnessChecker.ts +145 -0
- package/src/core/GuaranteeManager.ts +684 -0
- package/src/core/HashUtils.ts +48 -0
- package/src/core/IncrementalReanalyzer.ts +106 -0
- package/src/core/ResourceRegistry.ts +39 -0
- package/src/core/SemanticId.ts +423 -0
- package/src/core/VersionManager.ts +405 -0
- package/src/core/brandNodeInternal.ts +16 -0
- package/src/core/nodes/GuaranteeNode.ts +162 -0
- package/src/core/nodes/IssueNode.ts +177 -0
- package/src/core/nodes/NodeKind.ts +192 -0
- package/src/diagnostics/DiagnosticCollector.ts +170 -0
- package/src/diagnostics/DiagnosticReporter.ts +395 -0
- package/src/diagnostics/DiagnosticWriter.ts +50 -0
- package/src/diagnostics/categories.ts +104 -0
- package/src/diagnostics/index.ts +30 -0
- package/src/errors/GrafemaError.ts +297 -0
- package/src/index.ts +261 -0
- package/src/instructions/index.ts +21 -0
- package/src/instructions/onboarding.md +133 -0
- package/src/knowledge/KnowledgeBase.ts +486 -0
- package/src/knowledge/SemanticAddressResolver.ts +191 -0
- package/src/knowledge/git-ingest.ts +402 -0
- package/src/knowledge/git-queries.ts +269 -0
- package/src/knowledge/index.ts +29 -0
- package/src/knowledge/parser.ts +294 -0
- package/src/knowledge/types.ts +146 -0
- package/src/logging/Logger.ts +303 -0
- package/src/notation/archetypes.ts +189 -0
- package/src/notation/fold.ts +696 -0
- package/src/notation/index.ts +27 -0
- package/src/notation/lodExtractor.ts +177 -0
- package/src/notation/nameShortener.ts +24 -0
- package/src/notation/perspectives.ts +18 -0
- package/src/notation/renderer.ts +394 -0
- package/src/notation/traceRenderer.ts +458 -0
- package/src/notation/types.ts +79 -0
- package/src/queries/NodeContext.ts +280 -0
- package/src/queries/findCallsInFunction.ts +249 -0
- package/src/queries/findContainingFunction.ts +124 -0
- package/src/queries/index.ts +44 -0
- package/src/queries/traceDataflow.ts +838 -0
- package/src/queries/traceValues.ts +531 -0
- package/src/queries/types.ts +191 -0
- package/src/schema/GraphSchemaExtractor.ts +177 -0
- package/src/schema/InterfaceSchemaExtractor.ts +173 -0
- package/src/schema/index.ts +5 -0
- package/src/storage/backends/RFDBServerBackend.ts +895 -0
- package/src/storage/backends/typeValidation.ts +154 -0
- package/src/utils/findRfdbBinary.ts +288 -0
- package/src/utils/lazyDownload.ts +206 -0
- package/src/utils/moduleResolution.ts +271 -0
- package/src/utils/resolveNodeFile.ts +18 -0
- package/src/utils/startRfdbServer.ts +197 -0
- package/src/validation/PathValidator.ts +334 -0
- package/src/version.ts +28 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/notation/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace Narrative Renderer
|
|
3
|
+
*
|
|
4
|
+
* Transforms flat TraceDataflowResult[] into module-grouped,
|
|
5
|
+
* operator-annotated narrative using Grafema DSL operators.
|
|
6
|
+
*
|
|
7
|
+
* Same renderer for CLI and MCP — the output is a plain string.
|
|
8
|
+
*
|
|
9
|
+
* LOD levels:
|
|
10
|
+
* summary — shape + per-file type counts only (always fits on screen)
|
|
11
|
+
* normal — auto-tiered compression (default, max 35 lines)
|
|
12
|
+
* full — every node listed, grouped by file, no budget
|
|
13
|
+
*
|
|
14
|
+
* Operators are inferred from node type + direction. Since TraceDataflowResult
|
|
15
|
+
* has no edge data, these are approximate — use `describe` for precise
|
|
16
|
+
* edge-based operators.
|
|
17
|
+
*
|
|
18
|
+
* @module notation/traceRenderer
|
|
19
|
+
*/
|
|
20
|
+
import type { TraceDataflowResult } from '../queries/traceDataflow.js';
|
|
21
|
+
export type TraceDetail = 'summary' | 'normal' | 'full';
|
|
22
|
+
export interface TraceNarrativeOptions {
|
|
23
|
+
/** Level of detail: summary, normal (default), full */
|
|
24
|
+
detail?: TraceDetail;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Render trace dataflow results as a human-readable narrative.
|
|
28
|
+
*
|
|
29
|
+
* Transforms flat BFS results into a module-grouped, operator-annotated
|
|
30
|
+
* narrative using Grafema DSL operators. Infers operators from node type
|
|
31
|
+
* and trace direction since edge info is not available in TraceDataflowResult.
|
|
32
|
+
*
|
|
33
|
+
* @param results - Array of TraceDataflowResult from traceDataflow()
|
|
34
|
+
* @param sourceName - Display name for the seed/source node
|
|
35
|
+
* @param options - Rendering options (detail level)
|
|
36
|
+
* @returns Formatted narrative string with legend and LOD hints
|
|
37
|
+
*/
|
|
38
|
+
export declare function renderTraceNarrative(results: TraceDataflowResult[], sourceName: string, options?: TraceNarrativeOptions): string;
|
|
39
|
+
//# sourceMappingURL=traceRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traceRenderer.d.ts","sourceRoot":"","sources":["../../src/notation/traceRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,6BAA6B,CAAC;AAKrF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA2UD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAgFR"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace Narrative Renderer
|
|
3
|
+
*
|
|
4
|
+
* Transforms flat TraceDataflowResult[] into module-grouped,
|
|
5
|
+
* operator-annotated narrative using Grafema DSL operators.
|
|
6
|
+
*
|
|
7
|
+
* Same renderer for CLI and MCP — the output is a plain string.
|
|
8
|
+
*
|
|
9
|
+
* LOD levels:
|
|
10
|
+
* summary — shape + per-file type counts only (always fits on screen)
|
|
11
|
+
* normal — auto-tiered compression (default, max 35 lines)
|
|
12
|
+
* full — every node listed, grouped by file, no budget
|
|
13
|
+
*
|
|
14
|
+
* Operators are inferred from node type + direction. Since TraceDataflowResult
|
|
15
|
+
* has no edge data, these are approximate — use `describe` for precise
|
|
16
|
+
* edge-based operators.
|
|
17
|
+
*
|
|
18
|
+
* @module notation/traceRenderer
|
|
19
|
+
*/
|
|
20
|
+
import { generateLegend } from './archetypes.js';
|
|
21
|
+
// === CONSTANTS ===
|
|
22
|
+
/** Node types to skip — internal graph plumbing, not meaningful to users. */
|
|
23
|
+
const NOISE_TYPES = new Set(['REFERENCE', 'EXPRESSION', 'LITERAL']);
|
|
24
|
+
/** Hard budget for normal detail: maximum lines in body. */
|
|
25
|
+
const MAX_LINES = 35;
|
|
26
|
+
// === LEGEND (from single source of truth) ===
|
|
27
|
+
function lodHint(currentDetail) {
|
|
28
|
+
switch (currentDetail) {
|
|
29
|
+
case 'summary':
|
|
30
|
+
return 'Use detail="normal" for node list, detail="full" for complete chain';
|
|
31
|
+
case 'normal':
|
|
32
|
+
return 'Use detail="full" for complete chain, detail="summary" for overview';
|
|
33
|
+
case 'full':
|
|
34
|
+
return 'Use detail="summary" for overview, detail="normal" for compressed view';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// === OPERATOR MAPPING ===
|
|
38
|
+
/**
|
|
39
|
+
* Unified operator vocabulary — uses the same operators as `describe` tool.
|
|
40
|
+
* Since trace has no edge data, operators are inferred from node type + direction.
|
|
41
|
+
*
|
|
42
|
+
* Operators (from archetypes.ts):
|
|
43
|
+
* > flow_out (calls, passes, returns)
|
|
44
|
+
* < flow_in (reads, receives, assigned from)
|
|
45
|
+
* => write (persistent side effect)
|
|
46
|
+
* o- depends (imports)
|
|
47
|
+
* >x exception (throws)
|
|
48
|
+
* ?| gates (condition)
|
|
49
|
+
* {} contains (class membership)
|
|
50
|
+
*/
|
|
51
|
+
function getOperator(nodeType, direction) {
|
|
52
|
+
const isForward = direction === 'forward';
|
|
53
|
+
switch (nodeType) {
|
|
54
|
+
case 'PARAMETER':
|
|
55
|
+
case 'VARIABLE':
|
|
56
|
+
case 'CALL':
|
|
57
|
+
case 'RETURN':
|
|
58
|
+
case 'EXPORT':
|
|
59
|
+
return isForward ? '>' : '<';
|
|
60
|
+
case 'IMPORT':
|
|
61
|
+
return isForward ? '<' : '>';
|
|
62
|
+
case 'FUNCTION':
|
|
63
|
+
case 'METHOD':
|
|
64
|
+
return 'o-';
|
|
65
|
+
case 'CLASS':
|
|
66
|
+
return '{}';
|
|
67
|
+
case 'CONSTANT':
|
|
68
|
+
return '=>';
|
|
69
|
+
case 'BRANCH':
|
|
70
|
+
return '?|';
|
|
71
|
+
default:
|
|
72
|
+
return isForward ? '>' : '<';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function detectShape(startFile, fileGroups) {
|
|
76
|
+
const totalNodes = Array.from(fileGroups.values()).reduce((s, g) => s + g.length, 0);
|
|
77
|
+
const fileCount = fileGroups.size;
|
|
78
|
+
// Chain: ≤2 files, ≤10 nodes
|
|
79
|
+
if (fileCount <= 2 && totalNodes <= 10)
|
|
80
|
+
return 'chain';
|
|
81
|
+
const startFileGroup = startFile ? fileGroups.get(startFile) : undefined;
|
|
82
|
+
const startFileNodeCount = startFileGroup?.length ?? 0;
|
|
83
|
+
const otherFiles = fileCount - (startFileGroup ? 1 : 0);
|
|
84
|
+
// Fan-out: most nodes from 1 source, 3+ target files
|
|
85
|
+
if (otherFiles >= 3 && startFileNodeCount <= totalNodes * 0.3)
|
|
86
|
+
return 'fan-out';
|
|
87
|
+
// Fan-in: 3+ source files converging to 1 target
|
|
88
|
+
for (const [, nodes] of fileGroups) {
|
|
89
|
+
if (nodes.length > totalNodes * 0.5 && fileCount >= 3)
|
|
90
|
+
return 'fan-in';
|
|
91
|
+
}
|
|
92
|
+
// Diamond: fan-out then fan-in (heuristic: 4+ files with spread distribution)
|
|
93
|
+
if (fileCount >= 4)
|
|
94
|
+
return 'diamond';
|
|
95
|
+
return 'chain';
|
|
96
|
+
}
|
|
97
|
+
function shapeLabel(shape, fileCount, nodeCount) {
|
|
98
|
+
switch (shape) {
|
|
99
|
+
case 'chain': return `chain (${nodeCount} nodes reached)`;
|
|
100
|
+
case 'fan-out': return `fan-out across ${fileCount} modules (${nodeCount} nodes reached)`;
|
|
101
|
+
case 'fan-in': return `fan-in from ${fileCount} modules (${nodeCount} nodes reached)`;
|
|
102
|
+
case 'diamond': return `diamond across ${fileCount} modules (${nodeCount} nodes reached)`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// === COMPRESSION TIERS ===
|
|
106
|
+
function getTier(totalReached) {
|
|
107
|
+
if (totalReached <= 5)
|
|
108
|
+
return 1;
|
|
109
|
+
if (totalReached <= 30)
|
|
110
|
+
return 2;
|
|
111
|
+
if (totalReached <= 100)
|
|
112
|
+
return 3;
|
|
113
|
+
if (totalReached <= 300)
|
|
114
|
+
return 4;
|
|
115
|
+
return 5;
|
|
116
|
+
}
|
|
117
|
+
// === GROUPING ===
|
|
118
|
+
function groupByFile(nodes) {
|
|
119
|
+
const groups = new Map();
|
|
120
|
+
for (const node of nodes) {
|
|
121
|
+
const file = node.file || '<unknown>';
|
|
122
|
+
let group = groups.get(file);
|
|
123
|
+
if (!group) {
|
|
124
|
+
group = [];
|
|
125
|
+
groups.set(file, group);
|
|
126
|
+
}
|
|
127
|
+
group.push(node);
|
|
128
|
+
}
|
|
129
|
+
// Sort nodes within each group by line number
|
|
130
|
+
for (const [, group] of groups) {
|
|
131
|
+
group.sort((a, b) => (a.line ?? 0) - (b.line ?? 0));
|
|
132
|
+
}
|
|
133
|
+
return groups;
|
|
134
|
+
}
|
|
135
|
+
function groupByDirectory(nodes) {
|
|
136
|
+
const groups = new Map();
|
|
137
|
+
for (const node of nodes) {
|
|
138
|
+
const file = node.file || '<unknown>';
|
|
139
|
+
const lastSlash = file.lastIndexOf('/');
|
|
140
|
+
const dir = lastSlash >= 0 ? file.substring(0, lastSlash) : '.';
|
|
141
|
+
let group = groups.get(dir);
|
|
142
|
+
if (!group) {
|
|
143
|
+
group = [];
|
|
144
|
+
groups.set(dir, group);
|
|
145
|
+
}
|
|
146
|
+
group.push(node);
|
|
147
|
+
}
|
|
148
|
+
return groups;
|
|
149
|
+
}
|
|
150
|
+
function filterNoise(nodes) {
|
|
151
|
+
return nodes.filter(n => !NOISE_TYPES.has(n.type));
|
|
152
|
+
}
|
|
153
|
+
// === PER-FILE TYPE SUMMARY ===
|
|
154
|
+
function typeSummary(nodes) {
|
|
155
|
+
const types = new Map();
|
|
156
|
+
for (const n of nodes) {
|
|
157
|
+
types.set(n.type, (types.get(n.type) || 0) + 1);
|
|
158
|
+
}
|
|
159
|
+
return Array.from(types.entries())
|
|
160
|
+
.map(([t, c]) => `${c} ${t}`)
|
|
161
|
+
.join(', ');
|
|
162
|
+
}
|
|
163
|
+
// === RENDERING ===
|
|
164
|
+
function renderNodeLine(node, direction) {
|
|
165
|
+
const operator = getOperator(node.type, direction);
|
|
166
|
+
const name = node.name || '(anonymous)';
|
|
167
|
+
return ` ${operator} ${name} (${node.type})`;
|
|
168
|
+
}
|
|
169
|
+
// --- detail="full": every node, grouped by file, no budget ---
|
|
170
|
+
function renderFull(fileGroups, direction, lines) {
|
|
171
|
+
for (const [file, nodes] of fileGroups) {
|
|
172
|
+
lines.push('');
|
|
173
|
+
lines.push(` ${file}`);
|
|
174
|
+
for (const node of nodes) {
|
|
175
|
+
lines.push(renderNodeLine(node, direction));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// --- detail="summary": per-file type counts only ---
|
|
180
|
+
function renderSummary(fileGroups, lines) {
|
|
181
|
+
for (const [file, nodes] of fileGroups) {
|
|
182
|
+
lines.push(` ${file} — ${nodes.length} nodes (${typeSummary(nodes)})`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// --- detail="normal": auto-tiered ---
|
|
186
|
+
function renderTier1(nodes, direction, lines) {
|
|
187
|
+
for (const node of nodes) {
|
|
188
|
+
lines.push(renderNodeLine(node, direction));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function renderTier2(fileGroups, direction, lines) {
|
|
192
|
+
const budgetForContent = MAX_LINES - 3;
|
|
193
|
+
let remaining = 0;
|
|
194
|
+
let remainingModules = 0;
|
|
195
|
+
for (const [file, nodes] of fileGroups) {
|
|
196
|
+
if (lines.length >= budgetForContent) {
|
|
197
|
+
remaining += nodes.length;
|
|
198
|
+
remainingModules++;
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
lines.push('');
|
|
202
|
+
lines.push(` ${file}`);
|
|
203
|
+
for (const node of nodes) {
|
|
204
|
+
if (lines.length >= budgetForContent) {
|
|
205
|
+
remaining += 1;
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
lines.push(renderNodeLine(node, direction));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (remaining > 0) {
|
|
212
|
+
lines.push('');
|
|
213
|
+
lines.push(` ... and ${remainingModules} more modules (${remaining} nodes)`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function renderTier3(fileGroups, direction, lines) {
|
|
217
|
+
const MAX_PER_FILE = 3;
|
|
218
|
+
const budgetForContent = MAX_LINES - 3;
|
|
219
|
+
let remaining = 0;
|
|
220
|
+
let remainingModules = 0;
|
|
221
|
+
for (const [file, nodes] of fileGroups) {
|
|
222
|
+
if (lines.length >= budgetForContent) {
|
|
223
|
+
remaining += nodes.length;
|
|
224
|
+
remainingModules++;
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
lines.push('');
|
|
228
|
+
lines.push(` ${file}`);
|
|
229
|
+
const show = nodes.slice(0, MAX_PER_FILE);
|
|
230
|
+
const hidden = nodes.length - show.length;
|
|
231
|
+
for (const node of show) {
|
|
232
|
+
if (lines.length >= budgetForContent) {
|
|
233
|
+
remaining++;
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
lines.push(renderNodeLine(node, direction));
|
|
237
|
+
}
|
|
238
|
+
if (hidden > 0 && lines.length < budgetForContent) {
|
|
239
|
+
lines.push(` ... +${hidden} more`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (remaining > 0) {
|
|
243
|
+
lines.push('');
|
|
244
|
+
lines.push(` ... and ${remainingModules} more modules (${remaining} nodes)`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
function renderTier4(fileGroups, lines) {
|
|
248
|
+
let remainingModules = 0;
|
|
249
|
+
let remainingNodes = 0;
|
|
250
|
+
for (const [file, nodes] of fileGroups) {
|
|
251
|
+
if (lines.length >= MAX_LINES - 2) {
|
|
252
|
+
remainingModules++;
|
|
253
|
+
remainingNodes += nodes.length;
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
lines.push(` ${file} — ${nodes.length} nodes (${typeSummary(nodes)})`);
|
|
257
|
+
}
|
|
258
|
+
if (remainingModules > 0) {
|
|
259
|
+
lines.push(` ... and ${remainingModules} more modules (${remainingNodes} nodes)`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
function renderTier5(nodes, lines) {
|
|
263
|
+
const dirGroups = groupByDirectory(nodes);
|
|
264
|
+
let remainingDirs = 0;
|
|
265
|
+
let remainingNodes = 0;
|
|
266
|
+
for (const [dir, dirNodes] of dirGroups) {
|
|
267
|
+
if (lines.length >= MAX_LINES - 2) {
|
|
268
|
+
remainingDirs++;
|
|
269
|
+
remainingNodes += dirNodes.length;
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
const files = new Set(dirNodes.map(n => n.file || '<unknown>'));
|
|
273
|
+
lines.push(` ${dir}/ — ${files.size} files, ${dirNodes.length} nodes (${typeSummary(dirNodes)})`);
|
|
274
|
+
}
|
|
275
|
+
if (remainingDirs > 0) {
|
|
276
|
+
lines.push(` ... and ${remainingDirs} more directories (${remainingNodes} nodes)`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// === MAIN EXPORT ===
|
|
280
|
+
/**
|
|
281
|
+
* Render trace dataflow results as a human-readable narrative.
|
|
282
|
+
*
|
|
283
|
+
* Transforms flat BFS results into a module-grouped, operator-annotated
|
|
284
|
+
* narrative using Grafema DSL operators. Infers operators from node type
|
|
285
|
+
* and trace direction since edge info is not available in TraceDataflowResult.
|
|
286
|
+
*
|
|
287
|
+
* @param results - Array of TraceDataflowResult from traceDataflow()
|
|
288
|
+
* @param sourceName - Display name for the seed/source node
|
|
289
|
+
* @param options - Rendering options (detail level)
|
|
290
|
+
* @returns Formatted narrative string with legend and LOD hints
|
|
291
|
+
*/
|
|
292
|
+
export function renderTraceNarrative(results, sourceName, options = {}) {
|
|
293
|
+
const detail = options.detail ?? 'normal';
|
|
294
|
+
if (results.length === 0)
|
|
295
|
+
return `No dataflow results for "${sourceName}"`;
|
|
296
|
+
const output = [];
|
|
297
|
+
for (const result of results) {
|
|
298
|
+
const arrow = result.direction === 'forward' ? '→' : '←';
|
|
299
|
+
// detail="full" shows everything BFS found — no noise filtering
|
|
300
|
+
const displayNodes = detail === 'full' ? result.reached : filterNoise(result.reached);
|
|
301
|
+
if (displayNodes.length === 0) {
|
|
302
|
+
if (result.reached.length > 0) {
|
|
303
|
+
// BFS found nodes but all were noise types — inform the user
|
|
304
|
+
output.push(`"${sourceName}" ${arrow} ${result.reached.length} nodes reached (all internal references — use detail="full" to see)`);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
output.push(`"${sourceName}" ${arrow} no reachable nodes`);
|
|
308
|
+
}
|
|
309
|
+
output.push('');
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
const fileGroups = groupByFile(displayNodes);
|
|
313
|
+
const shape = detectShape(result.startNode.file, fileGroups);
|
|
314
|
+
// Use display count in header — matches what user sees in body
|
|
315
|
+
const displayCount = displayNodes.length;
|
|
316
|
+
output.push(`"${sourceName}" ${arrow} ${shapeLabel(shape, fileGroups.size, displayCount)}`);
|
|
317
|
+
const lines = [];
|
|
318
|
+
if (detail === 'full') {
|
|
319
|
+
renderFull(fileGroups, result.direction, lines);
|
|
320
|
+
}
|
|
321
|
+
else if (detail === 'summary') {
|
|
322
|
+
renderSummary(fileGroups, lines);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
// normal: auto-tiered
|
|
326
|
+
const tier = getTier(displayCount);
|
|
327
|
+
switch (tier) {
|
|
328
|
+
case 1:
|
|
329
|
+
renderTier1(displayNodes, result.direction, lines);
|
|
330
|
+
break;
|
|
331
|
+
case 2:
|
|
332
|
+
renderTier2(fileGroups, result.direction, lines);
|
|
333
|
+
break;
|
|
334
|
+
case 3:
|
|
335
|
+
renderTier3(fileGroups, result.direction, lines);
|
|
336
|
+
break;
|
|
337
|
+
case 4:
|
|
338
|
+
renderTier4(fileGroups, lines);
|
|
339
|
+
break;
|
|
340
|
+
case 5:
|
|
341
|
+
renderTier5(displayNodes, lines);
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
output.push(...lines);
|
|
346
|
+
output.push('');
|
|
347
|
+
}
|
|
348
|
+
// Trim trailing empty line
|
|
349
|
+
while (output.length > 0 && output[output.length - 1] === '') {
|
|
350
|
+
output.pop();
|
|
351
|
+
}
|
|
352
|
+
// Append legend (from archetypes.ts — single source of truth) + LOD hint
|
|
353
|
+
output.push('');
|
|
354
|
+
output.push(generateLegend());
|
|
355
|
+
output.push(lodHint(detail));
|
|
356
|
+
return output.join('\n');
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=traceRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traceRenderer.js","sourceRoot":"","sources":["../../src/notation/traceRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAWjD,oBAAoB;AAEpB,6EAA6E;AAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAEpE,4DAA4D;AAC5D,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,+CAA+C;AAE/C,SAAS,OAAO,CAAC,aAA0B;IACzC,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO,qEAAqE,CAAC;QAC/E,KAAK,QAAQ;YACX,OAAO,qEAAqE,CAAC;QAC/E,KAAK,MAAM;YACT,OAAO,wEAAwE,CAAC;IACpF,CAAC;AACH,CAAC;AAED,2BAA2B;AAE3B;;;;;;;;;;;;GAYG;AACH,SAAS,WAAW,CAAC,QAAgB,EAAE,SAAiC;IACtE,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC;IAE1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,IAAI,CAAC;QACd,KAAK,UAAU;YACb,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QACd;YACE,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;AACH,CAAC;AAMD,SAAS,WAAW,CAClB,SAA6B,EAC7B,UAAuC;IAEvC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IAElC,6BAA6B;IAC7B,IAAI,SAAS,IAAI,CAAC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IAEvD,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,kBAAkB,GAAG,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,qDAAqD;IACrD,IAAI,UAAU,IAAI,CAAC,IAAI,kBAAkB,IAAI,UAAU,GAAG,GAAG;QAAE,OAAO,SAAS,CAAC;IAEhF,iDAAiD;IACjD,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,GAAG,GAAG,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;IACzE,CAAC;IAED,8EAA8E;IAC9E,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAErC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB,EAAE,SAAiB,EAAE,SAAiB;IACzE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO,CAAC,CAAC,OAAO,UAAU,SAAS,iBAAiB,CAAC;QAC1D,KAAK,SAAS,CAAC,CAAC,OAAO,kBAAkB,SAAS,aAAa,SAAS,iBAAiB,CAAC;QAC1F,KAAK,QAAQ,CAAC,CAAC,OAAO,eAAe,SAAS,aAAa,SAAS,iBAAiB,CAAC;QACtF,KAAK,SAAS,CAAC,CAAC,OAAO,kBAAkB,SAAS,aAAa,SAAS,iBAAiB,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,4BAA4B;AAE5B,SAAS,OAAO,CAAC,YAAoB;IACnC,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,IAAI,YAAY,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACjC,IAAI,YAAY,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAClC,IAAI,YAAY,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mBAAmB;AAEnB,SAAS,WAAW,CAAC,KAAqB;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;QACtC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,8CAA8C;IAC9C,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChE,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAqB;IACxC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,gCAAgC;AAEhC,SAAS,WAAW,CAAC,KAAqB;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,oBAAoB;AAEpB,SAAS,cAAc,CAAC,IAAkB,EAAE,SAAiC;IAC3E,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC;IACxC,OAAO,OAAO,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC;AAClD,CAAC;AAED,gEAAgE;AAEhE,SAAS,UAAU,CACjB,UAAuC,EACvC,SAAiC,EACjC,KAAe;IAEf,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,sDAAsD;AAEtD,SAAS,aAAa,CACpB,UAAuC,EACvC,KAAe;IAEf,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,CAAC,MAAM,WAAW,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,uCAAuC;AAEvC,SAAS,WAAW,CAClB,KAAqB,EACrB,SAAiC,EACjC,KAAe;IAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,UAAuC,EACvC,SAAiC,EACjC,KAAe;IAEf,MAAM,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACrC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAC1B,gBAAgB,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBACrC,SAAS,IAAI,CAAC,CAAC;gBACf,SAAS;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,gBAAgB,kBAAkB,SAAS,SAAS,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,UAAuC,EACvC,SAAiC,EACjC,KAAe;IAEf,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,MAAM,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACrC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAC1B,gBAAgB,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBACrC,SAAS,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,gBAAgB,kBAAkB,SAAS,SAAS,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,UAAuC,EACvC,KAAe;IAEf,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClC,gBAAgB,EAAE,CAAC;YACnB,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,CAAC,MAAM,WAAW,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,aAAa,gBAAgB,kBAAkB,cAAc,SAAS,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,KAAqB,EACrB,KAAe;IAEf,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClC,aAAa,EAAE,CAAC;YAChB,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;YAClC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,WAAW,QAAQ,CAAC,MAAM,WAAW,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,aAAa,aAAa,sBAAsB,cAAc,SAAS,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,sBAAsB;AAEtB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA8B,EAC9B,UAAkB,EAClB,UAAiC,EAAE;IAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAE1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,4BAA4B,UAAU,GAAG,CAAC;IAE3E,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEzD,gEAAgE;QAChE,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEtF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,6DAA6D;gBAC7D,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,qEAAqE,CACvH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,KAAK,KAAK,qBAAqB,CAC9C,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7D,+DAA+D;QAC/D,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;QAEzC,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAC/E,CAAC;QAEF,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACnC,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,CAAC;oBACJ,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBACnD,MAAM;gBACR,KAAK,CAAC;oBACJ,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBACjD,MAAM;gBACR,KAAK,CAAC;oBACJ,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBACjD,MAAM;gBACR,KAAK,CAAC;oBACJ,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,CAAC;oBACJ,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;oBACjC,MAAM;YACV,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notation Types — interfaces for the Grafema DSL rendering engine
|
|
3
|
+
*
|
|
4
|
+
* The DSL is output-only: graph data → compact visual notation.
|
|
5
|
+
* Datalog remains the query language.
|
|
6
|
+
*
|
|
7
|
+
* @module notation/types
|
|
8
|
+
*/
|
|
9
|
+
import type { BaseNodeRecord, EdgeRecord } from '@grafema/types';
|
|
10
|
+
export type Archetype = 'contains' | 'flow_out' | 'flow_in' | 'write' | 'exception' | 'depends' | 'publishes' | 'gates' | 'governs';
|
|
11
|
+
export interface EdgeMapping {
|
|
12
|
+
archetype: Archetype;
|
|
13
|
+
/** ASCII operator: >, <, =>, >x, o-, ~>>, ?|, |=, '' for containment */
|
|
14
|
+
operator: string;
|
|
15
|
+
/** Human-readable verb: "calls", "reads", "writes"... */
|
|
16
|
+
verb: string;
|
|
17
|
+
/** Rendering order within blocks */
|
|
18
|
+
sortOrder: number;
|
|
19
|
+
}
|
|
20
|
+
export interface DescribeOptions {
|
|
21
|
+
/** LOD: 0=names, 1=edges (default), 2=nested+fold, 3=nested (exact) */
|
|
22
|
+
depth?: number;
|
|
23
|
+
/** Only show these archetypes */
|
|
24
|
+
archetypeFilter?: Archetype[];
|
|
25
|
+
/** Max items before summarization (default 7) */
|
|
26
|
+
budget?: number;
|
|
27
|
+
/** Append file:line to node headers */
|
|
28
|
+
includeLocations?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface SubgraphData {
|
|
31
|
+
rootNodes: BaseNodeRecord[];
|
|
32
|
+
edges: EdgeRecord[];
|
|
33
|
+
nodeMap: Map<string, BaseNodeRecord>;
|
|
34
|
+
}
|
|
35
|
+
export interface FoldMeta {
|
|
36
|
+
kind: 'fold' | 'chain' | 'dispatch' | 'leaf-repeat' | 'trivial-group' | 'datum-inline';
|
|
37
|
+
count: number;
|
|
38
|
+
label?: string;
|
|
39
|
+
sourceSummary?: string;
|
|
40
|
+
chainSteps?: string[];
|
|
41
|
+
chainSource?: string;
|
|
42
|
+
branches?: Array<{
|
|
43
|
+
pattern: string;
|
|
44
|
+
handler: string;
|
|
45
|
+
}>;
|
|
46
|
+
names?: string[];
|
|
47
|
+
}
|
|
48
|
+
export interface NotationBlock {
|
|
49
|
+
nodeId: string;
|
|
50
|
+
displayName: string;
|
|
51
|
+
nodeType: string;
|
|
52
|
+
lines: NotationLine[];
|
|
53
|
+
children: NotationBlock[];
|
|
54
|
+
location?: string;
|
|
55
|
+
/** Set by fold engine — serializer renders fold summaries differently */
|
|
56
|
+
foldMeta?: FoldMeta;
|
|
57
|
+
}
|
|
58
|
+
export interface NotationLine {
|
|
59
|
+
operator: string;
|
|
60
|
+
verb: string;
|
|
61
|
+
targets: string[];
|
|
62
|
+
sortOrder: number;
|
|
63
|
+
/** Optional prefix modifier, e.g. '[]' for edges inside loops */
|
|
64
|
+
modifier?: string;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,SAAS,GACT,OAAO,GACP,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notation Types — interfaces for the Grafema DSL rendering engine
|
|
3
|
+
*
|
|
4
|
+
* The DSL is output-only: graph data → compact visual notation.
|
|
5
|
+
* Datalog remains the query language.
|
|
6
|
+
*
|
|
7
|
+
* @module notation/types
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/notation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node Context — shared data logic for building node neighborhood context
|
|
3
|
+
*
|
|
4
|
+
* Extracts source code preview and all incoming/outgoing edges
|
|
5
|
+
* for a given node, grouped by edge type.
|
|
6
|
+
*
|
|
7
|
+
* Used by CLI (grafema context) and MCP (get_context tool).
|
|
8
|
+
* Consumers handle their own formatting; this module provides data only.
|
|
9
|
+
*
|
|
10
|
+
* @module queries/NodeContext
|
|
11
|
+
*/
|
|
12
|
+
import type { BaseNodeRecord, EdgeRecord } from '@grafema/types';
|
|
13
|
+
interface GraphBackend {
|
|
14
|
+
getNode(id: string): Promise<BaseNodeRecord | null>;
|
|
15
|
+
getOutgoingEdges(nodeId: string, edgeTypes?: string[] | null): Promise<EdgeRecord[]>;
|
|
16
|
+
getIncomingEdges(nodeId: string, edgeTypes?: string[] | null): Promise<EdgeRecord[]>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Edge types that are structural/containment — shown in compact form.
|
|
20
|
+
* These describe HOW code is nested, not WHAT it does.
|
|
21
|
+
*/
|
|
22
|
+
export declare const STRUCTURAL_EDGE_TYPES: Set<string>;
|
|
23
|
+
export interface EdgeWithNode {
|
|
24
|
+
edge: EdgeRecord;
|
|
25
|
+
node: BaseNodeRecord | null;
|
|
26
|
+
}
|
|
27
|
+
export interface EdgeGroup {
|
|
28
|
+
edgeType: string;
|
|
29
|
+
edges: EdgeWithNode[];
|
|
30
|
+
}
|
|
31
|
+
export interface SourcePreview {
|
|
32
|
+
file: string;
|
|
33
|
+
startLine: number;
|
|
34
|
+
endLine: number;
|
|
35
|
+
lines: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface NodeContext {
|
|
38
|
+
node: BaseNodeRecord;
|
|
39
|
+
source: SourcePreview | null;
|
|
40
|
+
outgoing: EdgeGroup[];
|
|
41
|
+
incoming: EdgeGroup[];
|
|
42
|
+
}
|
|
43
|
+
export interface BuildNodeContextOptions {
|
|
44
|
+
/** Lines of context before the highlighted line (default: 3) */
|
|
45
|
+
contextLines?: number;
|
|
46
|
+
/** Filter to only these edge types (null = show all) */
|
|
47
|
+
edgeTypeFilter?: Set<string> | null;
|
|
48
|
+
/**
|
|
49
|
+
* DI callback for reading file content.
|
|
50
|
+
* Return file content as string, or null if file can't be read.
|
|
51
|
+
* Default uses fs.readFileSync.
|
|
52
|
+
*/
|
|
53
|
+
readFileContent?: (filePath: string) => string | null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build full node context: source preview + all edges with connected nodes.
|
|
57
|
+
*
|
|
58
|
+
* @param backend - Graph backend for queries
|
|
59
|
+
* @param node - The node to build context for (already looked up by caller)
|
|
60
|
+
* @param options - Context options
|
|
61
|
+
* @returns NodeContext with source preview and grouped edges
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildNodeContext(backend: GraphBackend, node: BaseNodeRecord, options?: BuildNodeContextOptions): Promise<NodeContext>;
|
|
64
|
+
/**
|
|
65
|
+
* Get display name for a node based on its type.
|
|
66
|
+
*
|
|
67
|
+
* Special cases:
|
|
68
|
+
* - HTTP routes: "METHOD /path"
|
|
69
|
+
* - HTTP requests: "METHOD url"
|
|
70
|
+
* - Socket.IO: event name
|
|
71
|
+
* - Default: node.name or node.id
|
|
72
|
+
*/
|
|
73
|
+
export declare function getNodeDisplayName(node: BaseNodeRecord): string;
|
|
74
|
+
/**
|
|
75
|
+
* Format edge metadata for inline display (only meaningful fields).
|
|
76
|
+
*
|
|
77
|
+
* Returns a string like " [arg0]" or "" if no relevant metadata.
|
|
78
|
+
*/
|
|
79
|
+
export declare function formatEdgeMetadata(edge: EdgeRecord): string;
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=NodeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeContext.d.ts","sourceRoot":"","sources":["../../src/queries/NodeContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjE,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC1B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzB,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAC1B,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC1B;AAMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAuBhC,CAAC;AAMH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACvD;AAmBD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,WAAW,CAAC,CAkCtB;AAkDD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAyB/D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAoB3D"}
|