@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.
Files changed (324) hide show
  1. package/LICENSE +190 -0
  2. package/dist/api/GraphAPI.d.ts +87 -0
  3. package/dist/api/GraphAPI.d.ts.map +1 -0
  4. package/dist/api/GraphAPI.js +212 -0
  5. package/dist/api/GraphAPI.js.map +1 -0
  6. package/dist/api/GuaranteeAPI.d.ts +147 -0
  7. package/dist/api/GuaranteeAPI.d.ts.map +1 -0
  8. package/dist/api/GuaranteeAPI.js +290 -0
  9. package/dist/api/GuaranteeAPI.js.map +1 -0
  10. package/dist/config/ConfigLoader.d.ts +214 -0
  11. package/dist/config/ConfigLoader.d.ts.map +1 -0
  12. package/dist/config/ConfigLoader.js +441 -0
  13. package/dist/config/ConfigLoader.js.map +1 -0
  14. package/dist/config/index.d.ts +6 -0
  15. package/dist/config/index.d.ts.map +1 -0
  16. package/dist/config/index.js +5 -0
  17. package/dist/config/index.js.map +1 -0
  18. package/dist/core/CoverageAnalyzer.d.ts +65 -0
  19. package/dist/core/CoverageAnalyzer.d.ts.map +1 -0
  20. package/dist/core/CoverageAnalyzer.js +199 -0
  21. package/dist/core/CoverageAnalyzer.js.map +1 -0
  22. package/dist/core/FileExplainer.d.ts +101 -0
  23. package/dist/core/FileExplainer.d.ts.map +1 -0
  24. package/dist/core/FileExplainer.js +140 -0
  25. package/dist/core/FileExplainer.js.map +1 -0
  26. package/dist/core/FileOverview.d.ts +124 -0
  27. package/dist/core/FileOverview.d.ts.map +1 -0
  28. package/dist/core/FileOverview.js +279 -0
  29. package/dist/core/FileOverview.js.map +1 -0
  30. package/dist/core/GrafemaUri.d.ts +66 -0
  31. package/dist/core/GrafemaUri.d.ts.map +1 -0
  32. package/dist/core/GrafemaUri.js +191 -0
  33. package/dist/core/GrafemaUri.js.map +1 -0
  34. package/dist/core/GraphBackend.d.ts +158 -0
  35. package/dist/core/GraphBackend.d.ts.map +1 -0
  36. package/dist/core/GraphBackend.js +85 -0
  37. package/dist/core/GraphBackend.js.map +1 -0
  38. package/dist/core/GraphFreshnessChecker.d.ts +33 -0
  39. package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
  40. package/dist/core/GraphFreshnessChecker.js +104 -0
  41. package/dist/core/GraphFreshnessChecker.js.map +1 -0
  42. package/dist/core/GuaranteeManager.d.ts +254 -0
  43. package/dist/core/GuaranteeManager.d.ts.map +1 -0
  44. package/dist/core/GuaranteeManager.js +447 -0
  45. package/dist/core/GuaranteeManager.js.map +1 -0
  46. package/dist/core/HashUtils.d.ts +24 -0
  47. package/dist/core/HashUtils.d.ts.map +1 -0
  48. package/dist/core/HashUtils.js +46 -0
  49. package/dist/core/HashUtils.js.map +1 -0
  50. package/dist/core/IncrementalReanalyzer.d.ts +33 -0
  51. package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
  52. package/dist/core/IncrementalReanalyzer.js +67 -0
  53. package/dist/core/IncrementalReanalyzer.js.map +1 -0
  54. package/dist/core/ResourceRegistry.d.ts +17 -0
  55. package/dist/core/ResourceRegistry.d.ts.map +1 -0
  56. package/dist/core/ResourceRegistry.js +32 -0
  57. package/dist/core/ResourceRegistry.js.map +1 -0
  58. package/dist/core/SemanticId.d.ts +159 -0
  59. package/dist/core/SemanticId.d.ts.map +1 -0
  60. package/dist/core/SemanticId.js +291 -0
  61. package/dist/core/SemanticId.js.map +1 -0
  62. package/dist/core/VersionManager.d.ts +166 -0
  63. package/dist/core/VersionManager.d.ts.map +1 -0
  64. package/dist/core/VersionManager.js +239 -0
  65. package/dist/core/VersionManager.js.map +1 -0
  66. package/dist/core/brandNodeInternal.d.ts +14 -0
  67. package/dist/core/brandNodeInternal.d.ts.map +1 -0
  68. package/dist/core/brandNodeInternal.js +4 -0
  69. package/dist/core/brandNodeInternal.js.map +1 -0
  70. package/dist/core/nodes/GuaranteeNode.d.ts +76 -0
  71. package/dist/core/nodes/GuaranteeNode.d.ts.map +1 -0
  72. package/dist/core/nodes/GuaranteeNode.js +118 -0
  73. package/dist/core/nodes/GuaranteeNode.js.map +1 -0
  74. package/dist/core/nodes/IssueNode.d.ts +73 -0
  75. package/dist/core/nodes/IssueNode.d.ts.map +1 -0
  76. package/dist/core/nodes/IssueNode.js +130 -0
  77. package/dist/core/nodes/IssueNode.js.map +1 -0
  78. package/dist/core/nodes/NodeKind.d.ts +104 -0
  79. package/dist/core/nodes/NodeKind.d.ts.map +1 -0
  80. package/dist/core/nodes/NodeKind.js +166 -0
  81. package/dist/core/nodes/NodeKind.js.map +1 -0
  82. package/dist/diagnostics/DiagnosticCollector.d.ts +103 -0
  83. package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
  84. package/dist/diagnostics/DiagnosticCollector.js +133 -0
  85. package/dist/diagnostics/DiagnosticCollector.js.map +1 -0
  86. package/dist/diagnostics/DiagnosticReporter.d.ts +122 -0
  87. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
  88. package/dist/diagnostics/DiagnosticReporter.js +300 -0
  89. package/dist/diagnostics/DiagnosticReporter.js.map +1 -0
  90. package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
  91. package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
  92. package/dist/diagnostics/DiagnosticWriter.js +44 -0
  93. package/dist/diagnostics/DiagnosticWriter.js.map +1 -0
  94. package/dist/diagnostics/categories.d.ts +57 -0
  95. package/dist/diagnostics/categories.d.ts.map +1 -0
  96. package/dist/diagnostics/categories.js +71 -0
  97. package/dist/diagnostics/categories.js.map +1 -0
  98. package/dist/diagnostics/index.d.ts +17 -0
  99. package/dist/diagnostics/index.d.ts.map +1 -0
  100. package/dist/diagnostics/index.js +15 -0
  101. package/dist/diagnostics/index.js.map +1 -0
  102. package/dist/errors/GrafemaError.d.ts +200 -0
  103. package/dist/errors/GrafemaError.d.ts.map +1 -0
  104. package/dist/errors/GrafemaError.js +209 -0
  105. package/dist/errors/GrafemaError.js.map +1 -0
  106. package/dist/index.d.ts +75 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +76 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/instructions/index.d.ts +8 -0
  111. package/dist/instructions/index.d.ts.map +1 -0
  112. package/dist/instructions/index.js +20 -0
  113. package/dist/instructions/index.js.map +1 -0
  114. package/dist/instructions/onboarding.md +133 -0
  115. package/dist/knowledge/KnowledgeBase.d.ts +113 -0
  116. package/dist/knowledge/KnowledgeBase.d.ts.map +1 -0
  117. package/dist/knowledge/KnowledgeBase.js +420 -0
  118. package/dist/knowledge/KnowledgeBase.js.map +1 -0
  119. package/dist/knowledge/SemanticAddressResolver.d.ts +59 -0
  120. package/dist/knowledge/SemanticAddressResolver.d.ts.map +1 -0
  121. package/dist/knowledge/SemanticAddressResolver.js +160 -0
  122. package/dist/knowledge/SemanticAddressResolver.js.map +1 -0
  123. package/dist/knowledge/git-ingest.d.ts +58 -0
  124. package/dist/knowledge/git-ingest.d.ts.map +1 -0
  125. package/dist/knowledge/git-ingest.js +301 -0
  126. package/dist/knowledge/git-ingest.js.map +1 -0
  127. package/dist/knowledge/git-queries.d.ts +86 -0
  128. package/dist/knowledge/git-queries.d.ts.map +1 -0
  129. package/dist/knowledge/git-queries.js +177 -0
  130. package/dist/knowledge/git-queries.js.map +1 -0
  131. package/dist/knowledge/index.d.ts +14 -0
  132. package/dist/knowledge/index.d.ts.map +1 -0
  133. package/dist/knowledge/index.js +10 -0
  134. package/dist/knowledge/index.js.map +1 -0
  135. package/dist/knowledge/parser.d.ts +39 -0
  136. package/dist/knowledge/parser.d.ts.map +1 -0
  137. package/dist/knowledge/parser.js +292 -0
  138. package/dist/knowledge/parser.js.map +1 -0
  139. package/dist/knowledge/types.d.ts +133 -0
  140. package/dist/knowledge/types.d.ts.map +1 -0
  141. package/dist/knowledge/types.js +8 -0
  142. package/dist/knowledge/types.js.map +1 -0
  143. package/dist/logging/Logger.d.ts +98 -0
  144. package/dist/logging/Logger.d.ts.map +1 -0
  145. package/dist/logging/Logger.js +274 -0
  146. package/dist/logging/Logger.js.map +1 -0
  147. package/dist/notation/archetypes.d.ts +36 -0
  148. package/dist/notation/archetypes.d.ts.map +1 -0
  149. package/dist/notation/archetypes.js +173 -0
  150. package/dist/notation/archetypes.js.map +1 -0
  151. package/dist/notation/fold.d.ts +25 -0
  152. package/dist/notation/fold.d.ts.map +1 -0
  153. package/dist/notation/fold.js +598 -0
  154. package/dist/notation/fold.js.map +1 -0
  155. package/dist/notation/index.d.ts +18 -0
  156. package/dist/notation/index.d.ts.map +1 -0
  157. package/dist/notation/index.js +16 -0
  158. package/dist/notation/index.js.map +1 -0
  159. package/dist/notation/lodExtractor.d.ts +32 -0
  160. package/dist/notation/lodExtractor.d.ts.map +1 -0
  161. package/dist/notation/lodExtractor.js +149 -0
  162. package/dist/notation/lodExtractor.js.map +1 -0
  163. package/dist/notation/nameShortener.d.ts +22 -0
  164. package/dist/notation/nameShortener.d.ts.map +1 -0
  165. package/dist/notation/nameShortener.js +24 -0
  166. package/dist/notation/nameShortener.js.map +1 -0
  167. package/dist/notation/perspectives.d.ts +11 -0
  168. package/dist/notation/perspectives.d.ts.map +1 -0
  169. package/dist/notation/perspectives.js +16 -0
  170. package/dist/notation/perspectives.js.map +1 -0
  171. package/dist/notation/renderer.d.ts +31 -0
  172. package/dist/notation/renderer.d.ts.map +1 -0
  173. package/dist/notation/renderer.js +315 -0
  174. package/dist/notation/renderer.js.map +1 -0
  175. package/dist/notation/traceRenderer.d.ts +39 -0
  176. package/dist/notation/traceRenderer.d.ts.map +1 -0
  177. package/dist/notation/traceRenderer.js +358 -0
  178. package/dist/notation/traceRenderer.js.map +1 -0
  179. package/dist/notation/types.d.ts +66 -0
  180. package/dist/notation/types.d.ts.map +1 -0
  181. package/dist/notation/types.js +10 -0
  182. package/dist/notation/types.js.map +1 -0
  183. package/dist/queries/NodeContext.d.ts +81 -0
  184. package/dist/queries/NodeContext.d.ts.map +1 -0
  185. package/dist/queries/NodeContext.js +196 -0
  186. package/dist/queries/NodeContext.js.map +1 -0
  187. package/dist/queries/findCallsInFunction.d.ts +62 -0
  188. package/dist/queries/findCallsInFunction.d.ts.map +1 -0
  189. package/dist/queries/findCallsInFunction.js +169 -0
  190. package/dist/queries/findCallsInFunction.js.map +1 -0
  191. package/dist/queries/findContainingFunction.d.ts +57 -0
  192. package/dist/queries/findContainingFunction.d.ts.map +1 -0
  193. package/dist/queries/findContainingFunction.js +91 -0
  194. package/dist/queries/findContainingFunction.js.map +1 -0
  195. package/dist/queries/index.d.ts +18 -0
  196. package/dist/queries/index.d.ts.map +1 -0
  197. package/dist/queries/index.js +14 -0
  198. package/dist/queries/index.js.map +1 -0
  199. package/dist/queries/traceDataflow.d.ts +65 -0
  200. package/dist/queries/traceDataflow.d.ts.map +1 -0
  201. package/dist/queries/traceDataflow.js +754 -0
  202. package/dist/queries/traceDataflow.js.map +1 -0
  203. package/dist/queries/traceValues.d.ts +70 -0
  204. package/dist/queries/traceValues.d.ts.map +1 -0
  205. package/dist/queries/traceValues.js +373 -0
  206. package/dist/queries/traceValues.js.map +1 -0
  207. package/dist/queries/types.d.ts +166 -0
  208. package/dist/queries/types.d.ts.map +1 -0
  209. package/dist/queries/types.js +10 -0
  210. package/dist/queries/types.js.map +1 -0
  211. package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
  212. package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
  213. package/dist/schema/GraphSchemaExtractor.js +125 -0
  214. package/dist/schema/GraphSchemaExtractor.js.map +1 -0
  215. package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
  216. package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
  217. package/dist/schema/InterfaceSchemaExtractor.js +113 -0
  218. package/dist/schema/InterfaceSchemaExtractor.js.map +1 -0
  219. package/dist/schema/index.d.ts +5 -0
  220. package/dist/schema/index.d.ts.map +1 -0
  221. package/dist/schema/index.js +3 -0
  222. package/dist/schema/index.js.map +1 -0
  223. package/dist/storage/backends/RFDBServerBackend.d.ts +356 -0
  224. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -0
  225. package/dist/storage/backends/RFDBServerBackend.js +748 -0
  226. package/dist/storage/backends/RFDBServerBackend.js.map +1 -0
  227. package/dist/storage/backends/typeValidation.d.ts +47 -0
  228. package/dist/storage/backends/typeValidation.d.ts.map +1 -0
  229. package/dist/storage/backends/typeValidation.js +141 -0
  230. package/dist/storage/backends/typeValidation.js.map +1 -0
  231. package/dist/utils/findRfdbBinary.d.ts +67 -0
  232. package/dist/utils/findRfdbBinary.d.ts.map +1 -0
  233. package/dist/utils/findRfdbBinary.js +261 -0
  234. package/dist/utils/findRfdbBinary.js.map +1 -0
  235. package/dist/utils/lazyDownload.d.ts +43 -0
  236. package/dist/utils/lazyDownload.d.ts.map +1 -0
  237. package/dist/utils/lazyDownload.js +175 -0
  238. package/dist/utils/lazyDownload.js.map +1 -0
  239. package/dist/utils/moduleResolution.d.ts +134 -0
  240. package/dist/utils/moduleResolution.d.ts.map +1 -0
  241. package/dist/utils/moduleResolution.js +189 -0
  242. package/dist/utils/moduleResolution.js.map +1 -0
  243. package/dist/utils/resolveNodeFile.d.ts +13 -0
  244. package/dist/utils/resolveNodeFile.d.ts.map +1 -0
  245. package/dist/utils/resolveNodeFile.js +18 -0
  246. package/dist/utils/resolveNodeFile.js.map +1 -0
  247. package/dist/utils/startRfdbServer.d.ts +63 -0
  248. package/dist/utils/startRfdbServer.d.ts.map +1 -0
  249. package/dist/utils/startRfdbServer.js +142 -0
  250. package/dist/utils/startRfdbServer.js.map +1 -0
  251. package/dist/validation/PathValidator.d.ts +80 -0
  252. package/dist/validation/PathValidator.d.ts.map +1 -0
  253. package/dist/validation/PathValidator.js +252 -0
  254. package/dist/validation/PathValidator.js.map +1 -0
  255. package/dist/version.d.ts +11 -0
  256. package/dist/version.d.ts.map +1 -0
  257. package/dist/version.js +26 -0
  258. package/dist/version.js.map +1 -0
  259. package/package.json +50 -0
  260. package/src/api/GraphAPI.ts +307 -0
  261. package/src/api/GuaranteeAPI.ts +402 -0
  262. package/src/config/ConfigLoader.ts +653 -0
  263. package/src/config/index.ts +13 -0
  264. package/src/core/CoverageAnalyzer.ts +243 -0
  265. package/src/core/FileExplainer.ts +179 -0
  266. package/src/core/FileOverview.ts +397 -0
  267. package/src/core/GrafemaUri.ts +216 -0
  268. package/src/core/GraphBackend.ts +266 -0
  269. package/src/core/GraphFreshnessChecker.ts +145 -0
  270. package/src/core/GuaranteeManager.ts +684 -0
  271. package/src/core/HashUtils.ts +48 -0
  272. package/src/core/IncrementalReanalyzer.ts +106 -0
  273. package/src/core/ResourceRegistry.ts +39 -0
  274. package/src/core/SemanticId.ts +423 -0
  275. package/src/core/VersionManager.ts +405 -0
  276. package/src/core/brandNodeInternal.ts +16 -0
  277. package/src/core/nodes/GuaranteeNode.ts +162 -0
  278. package/src/core/nodes/IssueNode.ts +177 -0
  279. package/src/core/nodes/NodeKind.ts +192 -0
  280. package/src/diagnostics/DiagnosticCollector.ts +170 -0
  281. package/src/diagnostics/DiagnosticReporter.ts +395 -0
  282. package/src/diagnostics/DiagnosticWriter.ts +50 -0
  283. package/src/diagnostics/categories.ts +104 -0
  284. package/src/diagnostics/index.ts +30 -0
  285. package/src/errors/GrafemaError.ts +297 -0
  286. package/src/index.ts +261 -0
  287. package/src/instructions/index.ts +21 -0
  288. package/src/instructions/onboarding.md +133 -0
  289. package/src/knowledge/KnowledgeBase.ts +486 -0
  290. package/src/knowledge/SemanticAddressResolver.ts +191 -0
  291. package/src/knowledge/git-ingest.ts +402 -0
  292. package/src/knowledge/git-queries.ts +269 -0
  293. package/src/knowledge/index.ts +29 -0
  294. package/src/knowledge/parser.ts +294 -0
  295. package/src/knowledge/types.ts +146 -0
  296. package/src/logging/Logger.ts +303 -0
  297. package/src/notation/archetypes.ts +189 -0
  298. package/src/notation/fold.ts +696 -0
  299. package/src/notation/index.ts +27 -0
  300. package/src/notation/lodExtractor.ts +177 -0
  301. package/src/notation/nameShortener.ts +24 -0
  302. package/src/notation/perspectives.ts +18 -0
  303. package/src/notation/renderer.ts +394 -0
  304. package/src/notation/traceRenderer.ts +458 -0
  305. package/src/notation/types.ts +79 -0
  306. package/src/queries/NodeContext.ts +280 -0
  307. package/src/queries/findCallsInFunction.ts +249 -0
  308. package/src/queries/findContainingFunction.ts +124 -0
  309. package/src/queries/index.ts +44 -0
  310. package/src/queries/traceDataflow.ts +838 -0
  311. package/src/queries/traceValues.ts +531 -0
  312. package/src/queries/types.ts +191 -0
  313. package/src/schema/GraphSchemaExtractor.ts +177 -0
  314. package/src/schema/InterfaceSchemaExtractor.ts +173 -0
  315. package/src/schema/index.ts +5 -0
  316. package/src/storage/backends/RFDBServerBackend.ts +895 -0
  317. package/src/storage/backends/typeValidation.ts +154 -0
  318. package/src/utils/findRfdbBinary.ts +288 -0
  319. package/src/utils/lazyDownload.ts +206 -0
  320. package/src/utils/moduleResolution.ts +271 -0
  321. package/src/utils/resolveNodeFile.ts +18 -0
  322. package/src/utils/startRfdbServer.ts +197 -0
  323. package/src/validation/PathValidator.ts +334 -0
  324. 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"}