@samchon/graph 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -0
  3. package/lib/AsyncSamchonGraphSource.d.ts +2 -0
  4. package/lib/AsyncSamchonGraphSource.js +3 -0
  5. package/lib/AsyncSamchonGraphSource.js.map +1 -0
  6. package/lib/SamchonGraphApplication.d.ts +10 -0
  7. package/lib/SamchonGraphApplication.js +64 -0
  8. package/lib/SamchonGraphApplication.js.map +1 -0
  9. package/lib/SamchonGraphSource.d.ts +2 -0
  10. package/lib/SamchonGraphSource.js +3 -0
  11. package/lib/SamchonGraphSource.js.map +1 -0
  12. package/lib/application.d.ts +3 -0
  13. package/lib/application.js +20 -0
  14. package/lib/application.js.map +1 -0
  15. package/lib/bin.d.ts +2 -0
  16. package/lib/bin.js +8 -0
  17. package/lib/bin.js.map +1 -0
  18. package/lib/index.d.ts +13 -0
  19. package/lib/index.js +30 -0
  20. package/lib/index.js.map +1 -0
  21. package/lib/indexer/IBuildGraphOptions.d.ts +41 -0
  22. package/lib/indexer/IBuildGraphOptions.js +3 -0
  23. package/lib/indexer/IBuildGraphOptions.js.map +1 -0
  24. package/lib/indexer/IIndexerResult.d.ts +5 -0
  25. package/lib/indexer/IIndexerResult.js +3 -0
  26. package/lib/indexer/IIndexerResult.js.map +1 -0
  27. package/lib/indexer/ILanguageSpec.d.ts +10 -0
  28. package/lib/indexer/ILanguageSpec.js +3 -0
  29. package/lib/indexer/ILanguageSpec.js.map +1 -0
  30. package/lib/indexer/LANGUAGE_SPECS.d.ts +2 -0
  31. package/lib/indexer/LANGUAGE_SPECS.js +114 -0
  32. package/lib/indexer/LANGUAGE_SPECS.js.map +1 -0
  33. package/lib/indexer/allExtensions.d.ts +2 -0
  34. package/lib/indexer/allExtensions.js +16 -0
  35. package/lib/indexer/allExtensions.js.map +1 -0
  36. package/lib/indexer/buildGraph.d.ts +3 -0
  37. package/lib/indexer/buildGraph.js +10 -0
  38. package/lib/indexer/buildGraph.js.map +1 -0
  39. package/lib/indexer/buildGraphDump.d.ts +3 -0
  40. package/lib/indexer/buildGraphDump.js +394 -0
  41. package/lib/indexer/buildGraphDump.js.map +1 -0
  42. package/lib/indexer/buildLspGraph.d.ts +3 -0
  43. package/lib/indexer/buildLspGraph.js +617 -0
  44. package/lib/indexer/buildLspGraph.js.map +1 -0
  45. package/lib/indexer/buildStaticGraph.d.ts +3 -0
  46. package/lib/indexer/buildStaticGraph.js +479 -0
  47. package/lib/indexer/buildStaticGraph.js.map +1 -0
  48. package/lib/indexer/decoratorsAbove.d.ts +1 -0
  49. package/lib/indexer/decoratorsAbove.js +14 -0
  50. package/lib/indexer/decoratorsAbove.js.map +1 -0
  51. package/lib/indexer/languageOf.d.ts +2 -0
  52. package/lib/indexer/languageOf.js +19 -0
  53. package/lib/indexer/languageOf.js.map +1 -0
  54. package/lib/indexer/languages.d.ts +5 -0
  55. package/lib/indexer/languages.js +22 -0
  56. package/lib/indexer/languages.js.map +1 -0
  57. package/lib/indexer/lspIndexer.d.ts +1 -0
  58. package/lib/indexer/lspIndexer.js +18 -0
  59. package/lib/indexer/lspIndexer.js.map +1 -0
  60. package/lib/indexer/overrideEdges.d.ts +2 -0
  61. package/lib/indexer/overrideEdges.js +45 -0
  62. package/lib/indexer/overrideEdges.js.map +1 -0
  63. package/lib/indexer/resolveType.d.ts +2 -0
  64. package/lib/indexer/resolveType.js +11 -0
  65. package/lib/indexer/resolveType.js.map +1 -0
  66. package/lib/indexer/specOf.d.ts +3 -0
  67. package/lib/indexer/specOf.js +8 -0
  68. package/lib/indexer/specOf.js.map +1 -0
  69. package/lib/indexer/staticIndexer.d.ts +1 -0
  70. package/lib/indexer/staticIndexer.js +18 -0
  71. package/lib/indexer/staticIndexer.js.map +1 -0
  72. package/lib/indexer/supertypesOf.d.ts +4 -0
  73. package/lib/indexer/supertypesOf.js +48 -0
  74. package/lib/indexer/supertypesOf.js.map +1 -0
  75. package/lib/lsp/DocumentSymbolResult.d.ts +3 -0
  76. package/lib/lsp/DocumentSymbolResult.js +3 -0
  77. package/lib/lsp/DocumentSymbolResult.js.map +1 -0
  78. package/lib/lsp/IDiagnostic.d.ts +8 -0
  79. package/lib/lsp/IDiagnostic.js +3 -0
  80. package/lib/lsp/IDiagnostic.js.map +1 -0
  81. package/lib/lsp/IDocumentSymbol.d.ts +9 -0
  82. package/lib/lsp/IDocumentSymbol.js +3 -0
  83. package/lib/lsp/IDocumentSymbol.js.map +1 -0
  84. package/lib/lsp/ILocation.d.ts +5 -0
  85. package/lib/lsp/ILocation.js +3 -0
  86. package/lib/lsp/ILocation.js.map +1 -0
  87. package/lib/lsp/IPosition.d.ts +4 -0
  88. package/lib/lsp/IPosition.js +3 -0
  89. package/lib/lsp/IPosition.js.map +1 -0
  90. package/lib/lsp/IRange.d.ts +5 -0
  91. package/lib/lsp/IRange.js +3 -0
  92. package/lib/lsp/IRange.js.map +1 -0
  93. package/lib/lsp/ISymbolInformation.d.ts +7 -0
  94. package/lib/lsp/ISymbolInformation.js +3 -0
  95. package/lib/lsp/ISymbolInformation.js.map +1 -0
  96. package/lib/lsp/LspClient.d.ts +17 -0
  97. package/lib/lsp/LspClient.js +140 -0
  98. package/lib/lsp/LspClient.js.map +1 -0
  99. package/lib/lsp/isDocumentSymbol.d.ts +3 -0
  100. package/lib/lsp/isDocumentSymbol.js +7 -0
  101. package/lib/lsp/isDocumentSymbol.js.map +1 -0
  102. package/lib/lsp/types.d.ts +8 -0
  103. package/lib/lsp/types.js +25 -0
  104. package/lib/lsp/types.js.map +1 -0
  105. package/lib/mcp/createServer.d.ts +3 -0
  106. package/lib/mcp/createServer.js +1947 -0
  107. package/lib/mcp/createServer.js.map +1 -0
  108. package/lib/mcp/startServer.d.ts +5 -0
  109. package/lib/mcp/startServer.js +23 -0
  110. package/lib/mcp/startServer.js.map +1 -0
  111. package/lib/model/GraphMemory.d.ts +25 -0
  112. package/lib/model/GraphMemory.js +141 -0
  113. package/lib/model/GraphMemory.js.map +1 -0
  114. package/lib/operations/bound.d.ts +1 -0
  115. package/lib/operations/bound.js +8 -0
  116. package/lib/operations/bound.js.map +1 -0
  117. package/lib/operations/common.d.ts +15 -0
  118. package/lib/operations/common.js +32 -0
  119. package/lib/operations/common.js.map +1 -0
  120. package/lib/operations/compareEdges.d.ts +2 -0
  121. package/lib/operations/compareEdges.js +10 -0
  122. package/lib/operations/compareEdges.js.map +1 -0
  123. package/lib/operations/edgeRank.d.ts +1 -0
  124. package/lib/operations/edgeRank.js +25 -0
  125. package/lib/operations/edgeRank.js.map +1 -0
  126. package/lib/operations/isExecution.d.ts +1 -0
  127. package/lib/operations/isExecution.js +11 -0
  128. package/lib/operations/isExecution.js.map +1 -0
  129. package/lib/operations/isPublicApiNoisePath.d.ts +2 -0
  130. package/lib/operations/isPublicApiNoisePath.js +11 -0
  131. package/lib/operations/isPublicApiNoisePath.js.map +1 -0
  132. package/lib/operations/isStructural.d.ts +1 -0
  133. package/lib/operations/isStructural.js +7 -0
  134. package/lib/operations/isStructural.js.map +1 -0
  135. package/lib/operations/isSupportPath.d.ts +2 -0
  136. package/lib/operations/isSupportPath.js +16 -0
  137. package/lib/operations/isSupportPath.js.map +1 -0
  138. package/lib/operations/isTestPath.d.ts +1 -0
  139. package/lib/operations/isTestPath.js +9 -0
  140. package/lib/operations/isTestPath.js.map +1 -0
  141. package/lib/operations/isTypeEdge.d.ts +1 -0
  142. package/lib/operations/isTypeEdge.js +11 -0
  143. package/lib/operations/isTypeEdge.js.map +1 -0
  144. package/lib/operations/publicEvidence.d.ts +2 -0
  145. package/lib/operations/publicEvidence.js +13 -0
  146. package/lib/operations/publicEvidence.js.map +1 -0
  147. package/lib/operations/referencesFromEdges.d.ts +3 -0
  148. package/lib/operations/referencesFromEdges.js +38 -0
  149. package/lib/operations/referencesFromEdges.js.map +1 -0
  150. package/lib/operations/resolveHandle.d.ts +6 -0
  151. package/lib/operations/resolveHandle.js +28 -0
  152. package/lib/operations/resolveHandle.js.map +1 -0
  153. package/lib/operations/resultGuide.d.ts +1 -0
  154. package/lib/operations/resultGuide.js +7 -0
  155. package/lib/operations/resultGuide.js.map +1 -0
  156. package/lib/operations/resultNext.d.ts +2 -0
  157. package/lib/operations/resultNext.js +7 -0
  158. package/lib/operations/resultNext.js.map +1 -0
  159. package/lib/operations/runDetails.d.ts +8 -0
  160. package/lib/operations/runDetails.js +190 -0
  161. package/lib/operations/runDetails.js.map +1 -0
  162. package/lib/operations/runEntrypoints.d.ts +9 -0
  163. package/lib/operations/runEntrypoints.js +122 -0
  164. package/lib/operations/runEntrypoints.js.map +1 -0
  165. package/lib/operations/runLookup.d.ts +10 -0
  166. package/lib/operations/runLookup.js +229 -0
  167. package/lib/operations/runLookup.js.map +1 -0
  168. package/lib/operations/runOverview.d.ts +10 -0
  169. package/lib/operations/runOverview.js +142 -0
  170. package/lib/operations/runOverview.js.map +1 -0
  171. package/lib/operations/runTour.d.ts +8 -0
  172. package/lib/operations/runTour.js +539 -0
  173. package/lib/operations/runTour.js.map +1 -0
  174. package/lib/operations/runTrace.d.ts +10 -0
  175. package/lib/operations/runTrace.js +283 -0
  176. package/lib/operations/runTrace.js.map +1 -0
  177. package/lib/operations/signatureOf.d.ts +2 -0
  178. package/lib/operations/signatureOf.js +45 -0
  179. package/lib/operations/signatureOf.js.map +1 -0
  180. package/lib/operations/subwords.d.ts +1 -0
  181. package/lib/operations/subwords.js +12 -0
  182. package/lib/operations/subwords.js.map +1 -0
  183. package/lib/operations/summaryOf.d.ts +2 -0
  184. package/lib/operations/summaryOf.js +24 -0
  185. package/lib/operations/summaryOf.js.map +1 -0
  186. package/lib/runGraph.d.ts +1 -0
  187. package/lib/runGraph.js +165 -0
  188. package/lib/runGraph.js.map +1 -0
  189. package/lib/structures/GraphEdgeKind.d.ts +10 -0
  190. package/lib/structures/GraphEdgeKind.js +3 -0
  191. package/lib/structures/GraphEdgeKind.js.map +1 -0
  192. package/lib/structures/GraphLanguage.d.ts +2 -0
  193. package/lib/structures/GraphLanguage.js +3 -0
  194. package/lib/structures/GraphLanguage.js.map +1 -0
  195. package/lib/structures/GraphNodeKind.d.ts +11 -0
  196. package/lib/structures/GraphNodeKind.js +3 -0
  197. package/lib/structures/GraphNodeKind.js.map +1 -0
  198. package/lib/structures/IGraphDecorator.d.ts +22 -0
  199. package/lib/structures/IGraphDecorator.js +3 -0
  200. package/lib/structures/IGraphDecorator.js.map +1 -0
  201. package/lib/structures/IGraphDetails.d.ts +126 -0
  202. package/lib/structures/IGraphDetails.js +3 -0
  203. package/lib/structures/IGraphDetails.js.map +1 -0
  204. package/lib/structures/IGraphDiagnostic.d.ts +23 -0
  205. package/lib/structures/IGraphDiagnostic.js +3 -0
  206. package/lib/structures/IGraphDiagnostic.js.map +1 -0
  207. package/lib/structures/IGraphDump.d.ts +37 -0
  208. package/lib/structures/IGraphDump.js +3 -0
  209. package/lib/structures/IGraphDump.js.map +1 -0
  210. package/lib/structures/IGraphEdge.d.ts +20 -0
  211. package/lib/structures/IGraphEdge.js +3 -0
  212. package/lib/structures/IGraphEdge.js.map +1 -0
  213. package/lib/structures/IGraphEntrypoints.d.ts +57 -0
  214. package/lib/structures/IGraphEntrypoints.js +3 -0
  215. package/lib/structures/IGraphEntrypoints.js.map +1 -0
  216. package/lib/structures/IGraphEscape.d.ts +40 -0
  217. package/lib/structures/IGraphEscape.js +3 -0
  218. package/lib/structures/IGraphEscape.js.map +1 -0
  219. package/lib/structures/IGraphEvidence.d.ts +24 -0
  220. package/lib/structures/IGraphEvidence.js +3 -0
  221. package/lib/structures/IGraphEvidence.js.map +1 -0
  222. package/lib/structures/IGraphLookup.d.ts +66 -0
  223. package/lib/structures/IGraphLookup.js +3 -0
  224. package/lib/structures/IGraphLookup.js.map +1 -0
  225. package/lib/structures/IGraphNext.d.ts +15 -0
  226. package/lib/structures/IGraphNext.js +3 -0
  227. package/lib/structures/IGraphNext.js.map +1 -0
  228. package/lib/structures/IGraphNode.d.ts +62 -0
  229. package/lib/structures/IGraphNode.js +3 -0
  230. package/lib/structures/IGraphNode.js.map +1 -0
  231. package/lib/structures/IGraphOverview.d.ts +100 -0
  232. package/lib/structures/IGraphOverview.js +3 -0
  233. package/lib/structures/IGraphOverview.js.map +1 -0
  234. package/lib/structures/IGraphTour.d.ts +54 -0
  235. package/lib/structures/IGraphTour.js +3 -0
  236. package/lib/structures/IGraphTour.js.map +1 -0
  237. package/lib/structures/IGraphTrace.d.ts +126 -0
  238. package/lib/structures/IGraphTrace.js +3 -0
  239. package/lib/structures/IGraphTrace.js.map +1 -0
  240. package/lib/structures/ISamchonGraphApplication.d.ts +162 -0
  241. package/lib/structures/ISamchonGraphApplication.js +3 -0
  242. package/lib/structures/ISamchonGraphApplication.js.map +1 -0
  243. package/lib/structures/index.d.ts +18 -0
  244. package/lib/structures/index.js +35 -0
  245. package/lib/structures/index.js.map +1 -0
  246. package/lib/structures.d.ts +1 -0
  247. package/lib/structures.js +18 -0
  248. package/lib/structures.js.map +1 -0
  249. package/lib/utils/DEFAULT_IGNORES.d.ts +1 -0
  250. package/lib/utils/DEFAULT_IGNORES.js +39 -0
  251. package/lib/utils/DEFAULT_IGNORES.js.map +1 -0
  252. package/lib/utils/IWalkOptions.d.ts +5 -0
  253. package/lib/utils/IWalkOptions.js +3 -0
  254. package/lib/utils/IWalkOptions.js.map +1 -0
  255. package/lib/utils/basename.d.ts +1 -0
  256. package/lib/utils/basename.js +10 -0
  257. package/lib/utils/basename.js.map +1 -0
  258. package/lib/utils/dirname.d.ts +1 -0
  259. package/lib/utils/dirname.js +10 -0
  260. package/lib/utils/dirname.js.map +1 -0
  261. package/lib/utils/fileFromUri.d.ts +1 -0
  262. package/lib/utils/fileFromUri.js +20 -0
  263. package/lib/utils/fileFromUri.js.map +1 -0
  264. package/lib/utils/fileUri.d.ts +1 -0
  265. package/lib/utils/fileUri.js +19 -0
  266. package/lib/utils/fileUri.js.map +1 -0
  267. package/lib/utils/fs.d.ts +6 -0
  268. package/lib/utils/fs.js +23 -0
  269. package/lib/utils/fs.js.map +1 -0
  270. package/lib/utils/isSubPath.d.ts +1 -0
  271. package/lib/utils/isSubPath.js +15 -0
  272. package/lib/utils/isSubPath.js.map +1 -0
  273. package/lib/utils/normalizePath.d.ts +1 -0
  274. package/lib/utils/normalizePath.js +7 -0
  275. package/lib/utils/normalizePath.js.map +1 -0
  276. package/lib/utils/path.d.ts +7 -0
  277. package/lib/utils/path.js +24 -0
  278. package/lib/utils/path.js.map +1 -0
  279. package/lib/utils/projectRelative.d.ts +1 -0
  280. package/lib/utils/projectRelative.js +9 -0
  281. package/lib/utils/projectRelative.js.map +1 -0
  282. package/lib/utils/readLines.d.ts +1 -0
  283. package/lib/utils/readLines.js +8 -0
  284. package/lib/utils/readLines.js.map +1 -0
  285. package/lib/utils/readText.d.ts +1 -0
  286. package/lib/utils/readText.js +17 -0
  287. package/lib/utils/readText.js.map +1 -0
  288. package/lib/utils/relativePath.d.ts +1 -0
  289. package/lib/utils/relativePath.js +12 -0
  290. package/lib/utils/relativePath.js.map +1 -0
  291. package/lib/utils/walkSourceFiles.d.ts +2 -0
  292. package/lib/utils/walkSourceFiles.js +44 -0
  293. package/lib/utils/walkSourceFiles.js.map +1 -0
  294. package/package.json +55 -0
  295. package/src/AsyncSamchonGraphSource.ts +5 -0
  296. package/src/SamchonGraphApplication.ts +74 -0
  297. package/src/SamchonGraphSource.ts +3 -0
  298. package/src/application.ts +3 -0
  299. package/src/bin.ts +6 -0
  300. package/src/index.ts +13 -0
  301. package/src/indexer/IBuildGraphOptions.ts +42 -0
  302. package/src/indexer/IIndexerResult.ts +6 -0
  303. package/src/indexer/ILanguageSpec.ts +11 -0
  304. package/src/indexer/LANGUAGE_SPECS.ts +112 -0
  305. package/src/indexer/allExtensions.ts +12 -0
  306. package/src/indexer/buildGraph.ts +10 -0
  307. package/src/indexer/buildGraphDump.ts +29 -0
  308. package/src/indexer/buildLspGraph.ts +710 -0
  309. package/src/indexer/buildStaticGraph.ts +507 -0
  310. package/src/indexer/decoratorsAbove.ts +9 -0
  311. package/src/indexer/languageOf.ts +13 -0
  312. package/src/indexer/languages.ts +5 -0
  313. package/src/indexer/lspIndexer.ts +1 -0
  314. package/src/indexer/overrideEdges.ts +42 -0
  315. package/src/indexer/resolveType.ts +14 -0
  316. package/src/indexer/specOf.ts +7 -0
  317. package/src/indexer/staticIndexer.ts +1 -0
  318. package/src/indexer/supertypesOf.ts +43 -0
  319. package/src/lsp/DocumentSymbolResult.ts +4 -0
  320. package/src/lsp/IDiagnostic.ts +9 -0
  321. package/src/lsp/IDocumentSymbol.ts +10 -0
  322. package/src/lsp/ILocation.ts +6 -0
  323. package/src/lsp/IPosition.ts +4 -0
  324. package/src/lsp/IRange.ts +6 -0
  325. package/src/lsp/ISymbolInformation.ts +8 -0
  326. package/src/lsp/LspClient.ts +165 -0
  327. package/src/lsp/isDocumentSymbol.ts +8 -0
  328. package/src/lsp/types.ts +8 -0
  329. package/src/mcp/createServer.ts +23 -0
  330. package/src/mcp/startServer.ts +23 -0
  331. package/src/model/GraphMemory.ts +165 -0
  332. package/src/operations/bound.ts +9 -0
  333. package/src/operations/common.ts +15 -0
  334. package/src/operations/compareEdges.ts +10 -0
  335. package/src/operations/edgeRank.ts +23 -0
  336. package/src/operations/isExecution.ts +9 -0
  337. package/src/operations/isPublicApiNoisePath.ts +10 -0
  338. package/src/operations/isStructural.ts +3 -0
  339. package/src/operations/isSupportPath.ts +16 -0
  340. package/src/operations/isTestPath.ts +7 -0
  341. package/src/operations/isTypeEdge.ts +9 -0
  342. package/src/operations/publicEvidence.ts +11 -0
  343. package/src/operations/referencesFromEdges.ts +37 -0
  344. package/src/operations/resolveHandle.ts +27 -0
  345. package/src/operations/resultGuide.ts +3 -0
  346. package/src/operations/resultNext.ts +9 -0
  347. package/src/operations/runDetails.ts +240 -0
  348. package/src/operations/runEntrypoints.ts +153 -0
  349. package/src/operations/runLookup.ts +269 -0
  350. package/src/operations/runOverview.ts +158 -0
  351. package/src/operations/runTour.ts +582 -0
  352. package/src/operations/runTrace.ts +339 -0
  353. package/src/operations/signatureOf.ts +40 -0
  354. package/src/operations/subwords.ts +8 -0
  355. package/src/operations/summaryOf.ts +21 -0
  356. package/src/runGraph.ts +144 -0
  357. package/src/structures/GraphEdgeKind.ts +24 -0
  358. package/src/structures/GraphLanguage.ts +21 -0
  359. package/src/structures/GraphNodeKind.ts +27 -0
  360. package/src/structures/IGraphDecorator.ts +25 -0
  361. package/src/structures/IGraphDetails.ts +153 -0
  362. package/src/structures/IGraphDiagnostic.ts +29 -0
  363. package/src/structures/IGraphDump.ts +45 -0
  364. package/src/structures/IGraphEdge.ts +24 -0
  365. package/src/structures/IGraphEntrypoints.ts +70 -0
  366. package/src/structures/IGraphEscape.ts +49 -0
  367. package/src/structures/IGraphEvidence.ts +29 -0
  368. package/src/structures/IGraphLookup.ts +80 -0
  369. package/src/structures/IGraphNext.ts +23 -0
  370. package/src/structures/IGraphNode.ts +76 -0
  371. package/src/structures/IGraphOverview.ts +121 -0
  372. package/src/structures/IGraphTour.ts +68 -0
  373. package/src/structures/IGraphTrace.ts +154 -0
  374. package/src/structures/ISamchonGraphApplication.ts +186 -0
  375. package/src/structures/index.ts +18 -0
  376. package/src/structures.ts +1 -0
  377. package/src/utils/DEFAULT_IGNORES.ts +35 -0
  378. package/src/utils/IWalkOptions.ts +5 -0
  379. package/src/utils/basename.ts +7 -0
  380. package/src/utils/dirname.ts +7 -0
  381. package/src/utils/fileFromUri.ts +14 -0
  382. package/src/utils/fileUri.ts +13 -0
  383. package/src/utils/fs.ts +6 -0
  384. package/src/utils/isSubPath.ts +9 -0
  385. package/src/utils/normalizePath.ts +3 -0
  386. package/src/utils/path.ts +7 -0
  387. package/src/utils/projectRelative.ts +6 -0
  388. package/src/utils/readLines.ts +5 -0
  389. package/src/utils/readText.ts +10 -0
  390. package/src/utils/relativePath.ts +7 -0
  391. package/src/utils/walkSourceFiles.ts +35 -0
@@ -0,0 +1,539 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runTour = runTour;
4
+ const common_1 = require("./common");
5
+ const runDetails_1 = require("./runDetails");
6
+ const runEntrypoints_1 = require("./runEntrypoints");
7
+ const runTrace_1 = require("./runTrace");
8
+ const DEFAULT_LIMIT = 5;
9
+ const MAX_LIMIT = 5;
10
+ const FLOW_SEEDS = 5;
11
+ const DETAIL_SEEDS = 3;
12
+ const TEST_SEEDS = 3;
13
+ const MAX_FLOW_STEPS = 8;
14
+ const MAX_NEARBY = 10;
15
+ const MAX_TESTS = 8;
16
+ const MAX_READ_NEXT = 14;
17
+ const TOUR_TRACE_MAX_DEPTH = 3;
18
+ const TOUR_TRACE_MAX_NODES = 16;
19
+ const STRUCTURAL_KINDS = new Set(["contains", "exports", "imports"]);
20
+ const EXECUTION_KINDS = new Set([
21
+ "calls",
22
+ "instantiates",
23
+ "accesses",
24
+ "renders",
25
+ "references",
26
+ ]);
27
+ const TOUR_SEED_KINDS = new Set([
28
+ "class",
29
+ "function",
30
+ "method",
31
+ "property",
32
+ "variable",
33
+ "module",
34
+ "namespace",
35
+ "enum",
36
+ ]);
37
+ const QUERY_STOP_WORDS = new Set([
38
+ "about", "after", "and", "are", "api", "architecture", "around", "before",
39
+ "based", "behavior", "between", "but", "can", "central", "change", "changes",
40
+ "code", "does", "for", "first", "find", "flow", "from", "has", "have", "how",
41
+ "include", "including", "implementation", "into", "its", "nearby", "need",
42
+ "needs", "new", "next", "path", "paths", "project", "public", "read", "real",
43
+ "runtime", "should", "show", "that", "the", "this", "test", "tests", "trace",
44
+ "through", "with", "without", "tour", "typescript", "user", "what", "where",
45
+ "which", "work",
46
+ ]);
47
+ /**
48
+ * Compose a repository-orientation/code-tour answer surface from existing graph
49
+ * operations. It returns selected symbols, flows, nearby edges, test anchors,
50
+ * and answer anchors without reading or embedding source bodies.
51
+ */
52
+ function runTour(graph, props) {
53
+ const query = (props.question ?? "project architecture").trim();
54
+ const limit = (0, common_1.bound)(props.limit, DEFAULT_LIMIT, 1, MAX_LIMIT);
55
+ const entry = (0, runEntrypoints_1.runEntrypoints)(graph, {
56
+ type: "entrypoints",
57
+ query,
58
+ language: props.language,
59
+ limit,
60
+ });
61
+ const terms = queryTerms(graph, query);
62
+ const seeds = tourSeedsOf(graph, entry, query, terms, limit);
63
+ const seedIds = seeds.map((node) => node.id);
64
+ const flowSeedIds = flowSeedIdsOf(seeds);
65
+ const entrypoints = seeds.map((node) => ({
66
+ ...(0, common_1.summaryOf)(node),
67
+ score: Math.round(tourSeedScore(graph, node, terms)),
68
+ reason: seedReason(graph, node, terms),
69
+ }));
70
+ const primaryFlow = [];
71
+ const flowReached = [];
72
+ for (const id of flowSeedIds.slice(0, FLOW_SEEDS)) {
73
+ const trace = (0, runTrace_1.runTrace)(graph, {
74
+ type: "trace",
75
+ from: id,
76
+ direction: "forward",
77
+ focus: "execution",
78
+ maxDepth: TOUR_TRACE_MAX_DEPTH,
79
+ maxNodes: TOUR_TRACE_MAX_NODES,
80
+ });
81
+ // The forward trace always yields steps; the `?? []` is a type-level guard.
82
+ /* c8 ignore next */
83
+ const flowSteps = trace.steps ?? [];
84
+ for (const step of flowSteps) {
85
+ /* c8 ignore next -- defensive bound on total flow steps. */
86
+ if (primaryFlow.length >= FLOW_SEEDS * MAX_FLOW_STEPS)
87
+ break;
88
+ if (!primaryFlow.includes(step))
89
+ primaryFlow.push(step);
90
+ }
91
+ for (const node of trace.reached) {
92
+ const real = graph.node(node.id);
93
+ if (real !== undefined && !isNoisePath(real.file))
94
+ flowReached.push(real);
95
+ }
96
+ }
97
+ const details = seedIds.length === 0
98
+ ? undefined
99
+ : (0, runDetails_1.runDetails)(graph, {
100
+ type: "details",
101
+ handles: seedIds.slice(0, DETAIL_SEEDS),
102
+ neighbors: true,
103
+ memberLimit: 4,
104
+ dependencyLimit: 2,
105
+ neighborLimit: 2,
106
+ });
107
+ const nearbyPaths = details === undefined ? [] : nearbyNodesOf(details);
108
+ const testAnchors = testNodesOf(graph, uniqueIds([
109
+ ...seedIds.slice(0, TEST_SEEDS),
110
+ ...flowReached.map((node) => node.id),
111
+ ]));
112
+ const answerAnchors = uniqueNodes([
113
+ ...entrypoints.map((node) => stripEntrypoint(node)),
114
+ ...flowReached.map(common_1.summaryOf),
115
+ ...nearbyPaths,
116
+ ...testAnchors,
117
+ ]).slice(0, MAX_READ_NEXT);
118
+ return {
119
+ type: "tour",
120
+ question: props.question,
121
+ entrypoints,
122
+ primaryFlow,
123
+ nearbyPaths: nearbyPaths.slice(0, MAX_NEARBY),
124
+ testAnchors: testAnchors.slice(0, MAX_TESTS),
125
+ answerAnchors,
126
+ diagnostics: graph.diagnostics.slice(0, 12),
127
+ next: (0, common_1.resultNext)("answer", "This tour is the complete index-level answer surface: central entrypoints, primary flow, nearby paths, tests, and answer anchors."),
128
+ guide: (0, common_1.resultGuide)("Use this tour as the answer-ready index. Do not split it into extra lookup/details/trace calls unless the user asks for a named missing symbol or exact source text."),
129
+ };
130
+ }
131
+ // Rank and select the central symbols the tour is built around: named
132
+ // mentions and explicit handles from the query first, then query-scored
133
+ // high-degree seeds, falling back to the raw ranked hits.
134
+ function tourSeedsOf(graph, entry, query, terms, limit) {
135
+ const out = [];
136
+ const seen = new Set();
137
+ const add = (node) => {
138
+ if (node === undefined || seen.has(node.id) || !isTourSeed(graph, node))
139
+ return;
140
+ seen.add(node.id);
141
+ out.push(node);
142
+ };
143
+ for (const mention of entry.mentions)
144
+ add(graph.node(mention.id));
145
+ if (hasExplicitSymbolHandle(query)) {
146
+ for (const hit of entry.ranked)
147
+ add(graph.node(hit.id));
148
+ }
149
+ for (const node of rankedTourSeeds(graph, terms))
150
+ add(node);
151
+ if (out.length === 0) {
152
+ for (const hit of entry.ranked)
153
+ add(graph.node(hit.id));
154
+ }
155
+ return out.slice(0, limit);
156
+ }
157
+ function seedReason(graph, node, terms) {
158
+ if (matchedQueryTerms(node, terms).size > 0)
159
+ return "Name matches the question terms.";
160
+ const execution = executionDegree(graph, node.id);
161
+ if (execution.out > 0)
162
+ return "Central runtime flow for this question.";
163
+ if (node.exported === true)
164
+ return "Exported entrypoint on the public surface.";
165
+ return "High-degree symbol relevant to the question.";
166
+ }
167
+ function stripEntrypoint(node) {
168
+ const { score: _score, reason: _reason, ...rest } = node;
169
+ void _score;
170
+ void _reason;
171
+ return rest;
172
+ }
173
+ function nearbyNodesOf(details) {
174
+ const out = [];
175
+ for (const node of details.nodes) {
176
+ // calls/types/dependsOn/dependedOnBy are all optional reference arrays; a
177
+ // single `?? []` normalizes each, so both the defined and undefined cases
178
+ // are exercised by whichever field happens to be absent.
179
+ const refs = [node.calls, node.types, node.dependsOn, node.dependedOnBy].flatMap((group) => group ?? []);
180
+ for (const ref of refs) {
181
+ out.push({
182
+ id: ref.id,
183
+ name: ref.name,
184
+ kind: ref.kind,
185
+ language: ref.language,
186
+ file: ref.file,
187
+ ...(ref.line !== undefined ? { line: ref.line } : {}),
188
+ ...(ref.sourceSpan !== undefined ? { sourceSpan: ref.sourceSpan } : {}),
189
+ });
190
+ }
191
+ }
192
+ return uniqueNodes(out);
193
+ }
194
+ // Collect test/usage anchors: test-file callers pointing at the seeds, plus
195
+ // test-role nodes reached through the impact edges.
196
+ function testNodesOf(graph, seedIds) {
197
+ const out = [];
198
+ for (const id of seedIds) {
199
+ for (const edge of graph.incoming(id)) {
200
+ const node = graph.node(edge.from);
201
+ if (node === undefined || !(0, common_1.isTestPath)(node.file))
202
+ continue;
203
+ out.push((0, common_1.summaryOf)(node));
204
+ }
205
+ const impact = (0, runTrace_1.runTrace)(graph, {
206
+ type: "trace",
207
+ from: id,
208
+ direction: "impact",
209
+ maxDepth: 4,
210
+ maxNodes: 16,
211
+ });
212
+ for (const node of impact.reached) {
213
+ if (node.roles?.includes("test") === true) {
214
+ const real = graph.node(node.id);
215
+ if (real !== undefined)
216
+ out.push((0, common_1.summaryOf)(real));
217
+ }
218
+ }
219
+ }
220
+ return uniqueNodes(out);
221
+ }
222
+ // --- query relevance scoring (ported from the reference engine) -------------
223
+ function queryTerms(graph, query) {
224
+ const projectTerms = new Set(subwords(graph.project));
225
+ return subwords(query).filter((term) => term.length > 2 && !QUERY_STOP_WORDS.has(term) && !projectTerms.has(term));
226
+ }
227
+ function rankedTourSeeds(graph, terms) {
228
+ const items = graph.nodes
229
+ .filter((node) => isTourSeed(graph, node))
230
+ .map((node) => ({
231
+ node,
232
+ score: tourSeedScore(graph, node, terms),
233
+ matchedTerms: matchedQueryTerms(node, terms),
234
+ }))
235
+ .filter((item) => item.score > 0)
236
+ .sort((a, b) => b.score - a.score);
237
+ return diverseTourSeeds(items, terms).map((item) => item.node);
238
+ }
239
+ function tourSeedScore(graph, node, terms) {
240
+ const degree = realDegree(graph, node.id);
241
+ const execution = executionDegree(graph, node.id);
242
+ const queryWords = new Set(terms);
243
+ const matchScore = queryMatchScore(node, terms);
244
+ let score = kindScore(node.kind);
245
+ const surface = entrySurfaceScore(node);
246
+ score += surface;
247
+ score += runtimeEntryScore(node, surface);
248
+ score += Math.min(14, Math.log2(1 + degree.in) * 4);
249
+ score += Math.min(30, Math.log2(1 + degree.out) * 9);
250
+ score += Math.min(28, Math.log2(1 + execution.out) * 10);
251
+ if (node.exported === true)
252
+ score += 14;
253
+ if (node.decorators !== undefined && node.decorators.length > 0)
254
+ score += 10;
255
+ score += matchScore;
256
+ score *= queryAlignmentFactor(matchScore, queryWords);
257
+ score *= broadTourDamping(node, queryWords);
258
+ return score;
259
+ }
260
+ function isTourSeed(graph, node) {
261
+ return (TOUR_SEED_KINDS.has(node.kind) &&
262
+ (node.kind !== "property" || executionDegree(graph, node.id).out > 0) &&
263
+ !node.external &&
264
+ node.ignored !== true &&
265
+ node.evidence !== undefined &&
266
+ !isNoisePath(node.file));
267
+ }
268
+ function flowSeedIdsOf(seeds) {
269
+ const executable = seeds.filter((node) => ["function", "method", "property", "variable"].includes(node.kind));
270
+ const source = executable.length === 0 ? seeds : executable;
271
+ return source.map((node) => node.id);
272
+ }
273
+ function realDegree(graph, id) {
274
+ let incoming = 0;
275
+ let outgoing = 0;
276
+ for (const edge of graph.outgoing(id))
277
+ if (!STRUCTURAL_KINDS.has(edge.kind))
278
+ outgoing++;
279
+ for (const edge of graph.incoming(id))
280
+ if (!STRUCTURAL_KINDS.has(edge.kind))
281
+ incoming++;
282
+ return { in: incoming, out: outgoing };
283
+ }
284
+ function executionDegree(graph, id) {
285
+ let incoming = 0;
286
+ let outgoing = 0;
287
+ for (const edge of graph.outgoing(id))
288
+ if (EXECUTION_KINDS.has(edge.kind))
289
+ outgoing++;
290
+ for (const edge of graph.incoming(id))
291
+ if (EXECUTION_KINDS.has(edge.kind))
292
+ incoming++;
293
+ return { in: incoming, out: outgoing };
294
+ }
295
+ function kindScore(kind) {
296
+ switch (kind) {
297
+ case "function":
298
+ case "method":
299
+ return 28;
300
+ case "property":
301
+ case "variable":
302
+ return 8;
303
+ case "class":
304
+ return 24;
305
+ case "module":
306
+ case "namespace":
307
+ return 16;
308
+ case "enum":
309
+ return 10;
310
+ // every TOUR_SEED_KIND has an explicit case above; the default is a
311
+ // defensive fallback unreachable from the seed filter.
312
+ /* c8 ignore next 2 */
313
+ default:
314
+ return 0;
315
+ }
316
+ }
317
+ function entrySurfaceScore(node) {
318
+ const file = node.file.replace(/\\/g, "/");
319
+ const base = file.slice(file.lastIndexOf("/") + 1).toLowerCase();
320
+ const stem = base.replace(/\.[cm]?[tj]sx?$/, "");
321
+ const depth = sourceDepth(file);
322
+ let score = 0;
323
+ if (stem === "index") {
324
+ if (depth <= 0)
325
+ score += 48;
326
+ else if (depth === 1)
327
+ score += 32;
328
+ else if (depth === 2)
329
+ score += 12;
330
+ }
331
+ else if (stem === "main" || stem === "server" || stem === "bootstrap")
332
+ score += 42;
333
+ else if (stem === "app" || stem === "application")
334
+ score += 28;
335
+ if (depth <= 1)
336
+ score += 22;
337
+ else if (depth === 2)
338
+ score += 12;
339
+ else if (depth === 3)
340
+ score += 5;
341
+ if (node.exported === true && score > 0)
342
+ score += 12;
343
+ return score;
344
+ }
345
+ function runtimeEntryScore(node, surface) {
346
+ const words = new Set([...subwords(node.name), ...subwords(node.qualifiedName ?? "")]);
347
+ if (isPrivateLike(node, words))
348
+ return 0;
349
+ const hasVerb = hasAny(words, [
350
+ "bootstrap", "create", "execute", "handle", "init", "initialize", "listen",
351
+ "mount", "open", "parse", "render", "run", "safe", "safeparse", "start",
352
+ "startup", "subscribe", "update",
353
+ ]);
354
+ if (node.kind === "method" && hasVerb)
355
+ return 90;
356
+ if ((node.kind === "function" || node.kind === "property" || node.kind === "variable") &&
357
+ surface > 0 &&
358
+ hasVerb) {
359
+ return 70;
360
+ }
361
+ if (node.kind === "class" &&
362
+ hasAny(words, [
363
+ "application", "app", "backend", "client", "datasource", "factory", "server",
364
+ ])) {
365
+ return 45;
366
+ }
367
+ return 0;
368
+ }
369
+ function sourceDepth(file) {
370
+ const parts = file.split("/").filter(Boolean);
371
+ if (parts[0] === "src")
372
+ return Math.max(0, parts.length - 2);
373
+ if (parts[0] === "packages" && parts.length >= 3)
374
+ return Math.max(0, parts.length - 3);
375
+ return Math.max(0, parts.length - 1);
376
+ }
377
+ function queryMatchScore(node, terms) {
378
+ return matchedQueryTerms(node, terms).size * 8 + matchedFileTerms(node, terms).size * 2;
379
+ }
380
+ function matchedQueryTerms(node, terms) {
381
+ const words = [...subwords(node.name), ...subwords(node.qualifiedName ?? "")];
382
+ return matchedTerms(words, terms);
383
+ }
384
+ function matchedFileTerms(node, terms) {
385
+ return matchedTerms(subwords(node.file), terms);
386
+ }
387
+ function matchedTerms(words, terms) {
388
+ const wordSet = new Set(words);
389
+ const stems = new Set(words.map(stemWord));
390
+ const matched = new Set();
391
+ for (const term of terms) {
392
+ if (wordSet.has(term) ||
393
+ stems.has(stemWord(term)) ||
394
+ words.some((word) => commonPrefixLength(stemWord(term), stemWord(word)) >= 6)) {
395
+ matched.add(term);
396
+ }
397
+ }
398
+ return matched;
399
+ }
400
+ function diverseTourSeeds(items, terms) {
401
+ if (items.length <= 1 || terms.length === 0)
402
+ return items;
403
+ const out = [];
404
+ const remaining = [...items];
405
+ const uncovered = new Set(terms);
406
+ while (remaining.length > 0) {
407
+ let bestIndex = 0;
408
+ let bestScore = Number.NEGATIVE_INFINITY;
409
+ for (let i = 0; i < remaining.length; i++) {
410
+ const item = remaining[i];
411
+ let coverage = 0;
412
+ for (const term of item.matchedTerms)
413
+ if (uncovered.has(term))
414
+ coverage++;
415
+ const score = coverage * 120 + item.score;
416
+ if (score > bestScore) {
417
+ bestScore = score;
418
+ bestIndex = i;
419
+ }
420
+ }
421
+ const [picked] = remaining.splice(bestIndex, 1);
422
+ out.push(picked);
423
+ for (const term of picked.matchedTerms)
424
+ uncovered.delete(term);
425
+ }
426
+ return out;
427
+ }
428
+ function queryAlignmentFactor(matchScore, queryWords) {
429
+ if (queryWords.size === 0)
430
+ return 1;
431
+ if (matchScore >= 24)
432
+ return 1.45;
433
+ if (matchScore >= 8)
434
+ return 1.15;
435
+ return 0.45;
436
+ }
437
+ function broadTourDamping(node, queryWords) {
438
+ const words = new Set([
439
+ ...subwords(node.name),
440
+ ...subwords(node.qualifiedName ?? ""),
441
+ ...subwords(node.file),
442
+ ]);
443
+ let factor = 1;
444
+ if (!hasAny(queryWords, ["internal", "private"]) && isPrivateLike(node, words)) {
445
+ factor *= 0.25;
446
+ }
447
+ if (!hasAny(queryWords, ["error", "errors", "exception", "exceptions"]) &&
448
+ hasAny(words, ["error", "errors", "exception", "exceptions"])) {
449
+ factor *= 0.25;
450
+ }
451
+ if (!hasAny(queryWords, [
452
+ "config", "configuration", "env", "environment", "option", "options", "port",
453
+ ]) &&
454
+ (node.kind === "variable" || node.kind === "property") &&
455
+ hasAny(words, [
456
+ "config", "configuration", "env", "environment", "option", "options", "port",
457
+ ])) {
458
+ factor *= 0.35;
459
+ }
460
+ if (!hasAny(queryWords, [
461
+ "deserialize", "deserializer", "serializer", "serialize", "serialization",
462
+ ]) &&
463
+ hasAny(words, [
464
+ "deserialize", "deserializer", "serializer", "serialize", "serialization",
465
+ ])) {
466
+ factor *= 0.25;
467
+ }
468
+ return factor;
469
+ }
470
+ function hasAny(words, candidates) {
471
+ return candidates.some((word) => words.has(word));
472
+ }
473
+ function isPrivateLike(node, words) {
474
+ const name = node.qualifiedName ?? node.name;
475
+ return (name.startsWith("_") ||
476
+ name.includes("._") ||
477
+ hasAny(words, ["inner", "internal", "private"]));
478
+ }
479
+ function hasExplicitSymbolHandle(query) {
480
+ return /`[^`]+`/.test(query) || /\b[A-Za-z_$][\w$]*\.[A-Za-z_$][\w$]*\b/.test(query);
481
+ }
482
+ // Tests, examples, fixtures, generated output, and build artifacts are noise
483
+ // for tour seeding (ported from the reference isSupportPath).
484
+ function isNoisePath(file) {
485
+ return (file === "" ||
486
+ file.startsWith("bundled://") ||
487
+ /(^|\/)node_modules\//.test(file) ||
488
+ /(^|\/)(test|tests|__tests__|spec|sample|samples|fixture|fixtures|__fixtures__|example|examples)\//.test(file) ||
489
+ /\.(test|spec)\.[cm]?[tj]sx?$/.test(file) ||
490
+ /(^|\/)typings\.[cm]?ts$/.test(file) ||
491
+ /\.d\.[cm]?ts$/.test(file) ||
492
+ /(^|\/)(dist|build|coverage|generated|__generated__)\//.test(file));
493
+ }
494
+ function subwords(text) {
495
+ return text
496
+ .replace(/([a-z0-9])([A-Z])/g, "$1 $2")
497
+ .replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2")
498
+ .split(/[^a-zA-Z0-9]+/)
499
+ .filter((word) => word.length > 0)
500
+ .map((word) => word.toLowerCase());
501
+ }
502
+ function stemWord(word) {
503
+ for (const suffix of ["ing", "ed", "es", "s"]) {
504
+ if (word.length > suffix.length + 3 && word.endsWith(suffix)) {
505
+ return word.slice(0, -suffix.length);
506
+ }
507
+ }
508
+ return word;
509
+ }
510
+ function commonPrefixLength(a, b) {
511
+ const n = Math.min(a.length, b.length);
512
+ let i = 0;
513
+ while (i < n && a.charCodeAt(i) === b.charCodeAt(i))
514
+ i++;
515
+ return i;
516
+ }
517
+ function uniqueIds(ids) {
518
+ const out = [];
519
+ const seen = new Set();
520
+ for (const id of ids) {
521
+ if (seen.has(id))
522
+ continue;
523
+ seen.add(id);
524
+ out.push(id);
525
+ }
526
+ return out;
527
+ }
528
+ function uniqueNodes(nodes) {
529
+ const out = [];
530
+ const seen = new Set();
531
+ for (const node of nodes) {
532
+ if (seen.has(node.id))
533
+ continue;
534
+ seen.add(node.id);
535
+ out.push(node);
536
+ }
537
+ return out;
538
+ }
539
+ //# sourceMappingURL=runTour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runTour.js","sourceRoot":"","sources":["../../src/operations/runTour.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { GraphMemory } from "../model/GraphMemory";
2
+ import { IGraphTrace } from "../structures";
3
+ /**
4
+ * Breadth-first trace along the dependency graph. Structural
5
+ * (contains/exports/imports) edges are excluded so the path is real call/type
6
+ * flow; forward walks callees, reverse and impact walk callers. Impact
7
+ * additionally tags each reached node's role so the blast radius on the public
8
+ * surface is legible.
9
+ */
10
+ export declare function runTrace(graph: GraphMemory, props: IGraphTrace.IRequest): IGraphTrace;