memor-code-cli 0.2.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 (418) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/IntentionalStructure/index.d.ts +13 -0
  4. package/dist/IntentionalStructure/index.d.ts.map +1 -0
  5. package/dist/IntentionalStructure/index.js +46 -0
  6. package/dist/IntentionalStructure/index.js.map +1 -0
  7. package/dist/IntentionalStructure/parseCompose.d.ts +13 -0
  8. package/dist/IntentionalStructure/parseCompose.d.ts.map +1 -0
  9. package/dist/IntentionalStructure/parseCompose.js +234 -0
  10. package/dist/IntentionalStructure/parseCompose.js.map +1 -0
  11. package/dist/IntentionalStructure/parseDeployConfigs.d.ts +7 -0
  12. package/dist/IntentionalStructure/parseDeployConfigs.d.ts.map +1 -0
  13. package/dist/IntentionalStructure/parseDeployConfigs.js +168 -0
  14. package/dist/IntentionalStructure/parseDeployConfigs.js.map +1 -0
  15. package/dist/IntentionalStructure/parseEnvWiring.d.ts +7 -0
  16. package/dist/IntentionalStructure/parseEnvWiring.d.ts.map +1 -0
  17. package/dist/IntentionalStructure/parseEnvWiring.js +159 -0
  18. package/dist/IntentionalStructure/parseEnvWiring.js.map +1 -0
  19. package/dist/IntentionalStructure/parseWorkspaces.d.ts +8 -0
  20. package/dist/IntentionalStructure/parseWorkspaces.d.ts.map +1 -0
  21. package/dist/IntentionalStructure/parseWorkspaces.js +179 -0
  22. package/dist/IntentionalStructure/parseWorkspaces.js.map +1 -0
  23. package/dist/IntentionalStructure/types.d.ts +34 -0
  24. package/dist/IntentionalStructure/types.d.ts.map +1 -0
  25. package/dist/IntentionalStructure/types.js +8 -0
  26. package/dist/IntentionalStructure/types.js.map +1 -0
  27. package/dist/RepoTypeDetection/applyRepoModeConsistency.d.ts +11 -0
  28. package/dist/RepoTypeDetection/applyRepoModeConsistency.d.ts.map +1 -0
  29. package/dist/RepoTypeDetection/applyRepoModeConsistency.js +53 -0
  30. package/dist/RepoTypeDetection/applyRepoModeConsistency.js.map +1 -0
  31. package/dist/RepoTypeDetection/detectAppArchetype.d.ts +12 -0
  32. package/dist/RepoTypeDetection/detectAppArchetype.d.ts.map +1 -0
  33. package/dist/RepoTypeDetection/detectAppArchetype.js +162 -0
  34. package/dist/RepoTypeDetection/detectAppArchetype.js.map +1 -0
  35. package/dist/RepoTypeDetection/detectPackageArchetype.d.ts +10 -0
  36. package/dist/RepoTypeDetection/detectPackageArchetype.d.ts.map +1 -0
  37. package/dist/RepoTypeDetection/detectPackageArchetype.js +149 -0
  38. package/dist/RepoTypeDetection/detectPackageArchetype.js.map +1 -0
  39. package/dist/RepoTypeDetection/detectRepoCenterSystems.d.ts +11 -0
  40. package/dist/RepoTypeDetection/detectRepoCenterSystems.d.ts.map +1 -0
  41. package/dist/RepoTypeDetection/detectRepoCenterSystems.js +123 -0
  42. package/dist/RepoTypeDetection/detectRepoCenterSystems.js.map +1 -0
  43. package/dist/RepoTypeDetection/detectRepoMode.d.ts +16 -0
  44. package/dist/RepoTypeDetection/detectRepoMode.d.ts.map +1 -0
  45. package/dist/RepoTypeDetection/detectRepoMode.js +338 -0
  46. package/dist/RepoTypeDetection/detectRepoMode.js.map +1 -0
  47. package/dist/RepoTypeDetection/detectRepoSignals.d.ts +13 -0
  48. package/dist/RepoTypeDetection/detectRepoSignals.d.ts.map +1 -0
  49. package/dist/RepoTypeDetection/detectRepoSignals.js +451 -0
  50. package/dist/RepoTypeDetection/detectRepoSignals.js.map +1 -0
  51. package/dist/RepoTypeDetection/inferSupportRole.d.ts +8 -0
  52. package/dist/RepoTypeDetection/inferSupportRole.d.ts.map +1 -0
  53. package/dist/RepoTypeDetection/inferSupportRole.js +177 -0
  54. package/dist/RepoTypeDetection/inferSupportRole.js.map +1 -0
  55. package/dist/RuntimeInference/detectEnvConsumers.d.ts +7 -0
  56. package/dist/RuntimeInference/detectEnvConsumers.d.ts.map +1 -0
  57. package/dist/RuntimeInference/detectEnvConsumers.js +108 -0
  58. package/dist/RuntimeInference/detectEnvConsumers.js.map +1 -0
  59. package/dist/RuntimeInference/detectHttpEdges.d.ts +4 -0
  60. package/dist/RuntimeInference/detectHttpEdges.d.ts.map +1 -0
  61. package/dist/RuntimeInference/detectHttpEdges.js +146 -0
  62. package/dist/RuntimeInference/detectHttpEdges.js.map +1 -0
  63. package/dist/RuntimeInference/detectOrmConsumers.d.ts +5 -0
  64. package/dist/RuntimeInference/detectOrmConsumers.d.ts.map +1 -0
  65. package/dist/RuntimeInference/detectOrmConsumers.js +117 -0
  66. package/dist/RuntimeInference/detectOrmConsumers.js.map +1 -0
  67. package/dist/RuntimeInference/detectProxyRewrites.d.ts +5 -0
  68. package/dist/RuntimeInference/detectProxyRewrites.d.ts.map +1 -0
  69. package/dist/RuntimeInference/detectProxyRewrites.js +137 -0
  70. package/dist/RuntimeInference/detectProxyRewrites.js.map +1 -0
  71. package/dist/RuntimeInference/detectTrpcEdges.d.ts +4 -0
  72. package/dist/RuntimeInference/detectTrpcEdges.d.ts.map +1 -0
  73. package/dist/RuntimeInference/detectTrpcEdges.js +137 -0
  74. package/dist/RuntimeInference/detectTrpcEdges.js.map +1 -0
  75. package/dist/RuntimeInference/index.d.ts +17 -0
  76. package/dist/RuntimeInference/index.d.ts.map +1 -0
  77. package/dist/RuntimeInference/index.js +32 -0
  78. package/dist/RuntimeInference/index.js.map +1 -0
  79. package/dist/RuntimeInference/types.d.ts +8 -0
  80. package/dist/RuntimeInference/types.d.ts.map +1 -0
  81. package/dist/RuntimeInference/types.js +3 -0
  82. package/dist/RuntimeInference/types.js.map +1 -0
  83. package/dist/SystemSynthesis/index.d.ts +27 -0
  84. package/dist/SystemSynthesis/index.d.ts.map +1 -0
  85. package/dist/SystemSynthesis/index.js +31 -0
  86. package/dist/SystemSynthesis/index.js.map +1 -0
  87. package/dist/SystemSynthesis/mergeLayerOutputs.d.ts +13 -0
  88. package/dist/SystemSynthesis/mergeLayerOutputs.d.ts.map +1 -0
  89. package/dist/SystemSynthesis/mergeLayerOutputs.js +220 -0
  90. package/dist/SystemSynthesis/mergeLayerOutputs.js.map +1 -0
  91. package/dist/SystemSynthesis/stampDeterministic.d.ts +11 -0
  92. package/dist/SystemSynthesis/stampDeterministic.d.ts.map +1 -0
  93. package/dist/SystemSynthesis/stampDeterministic.js +177 -0
  94. package/dist/SystemSynthesis/stampDeterministic.js.map +1 -0
  95. package/dist/SystemSynthesis/synthesize.d.ts +15 -0
  96. package/dist/SystemSynthesis/synthesize.d.ts.map +1 -0
  97. package/dist/SystemSynthesis/synthesize.js +258 -0
  98. package/dist/SystemSynthesis/synthesize.js.map +1 -0
  99. package/dist/SystemSynthesis/types.d.ts +110 -0
  100. package/dist/SystemSynthesis/types.d.ts.map +1 -0
  101. package/dist/SystemSynthesis/types.js +12 -0
  102. package/dist/SystemSynthesis/types.js.map +1 -0
  103. package/dist/amGeneration/buildFlowGraph.d.ts +39 -0
  104. package/dist/amGeneration/buildFlowGraph.d.ts.map +1 -0
  105. package/dist/amGeneration/buildFlowGraph.js +643 -0
  106. package/dist/amGeneration/buildFlowGraph.js.map +1 -0
  107. package/dist/amGeneration/enrichAMEdges.d.ts +16 -0
  108. package/dist/amGeneration/enrichAMEdges.d.ts.map +1 -0
  109. package/dist/amGeneration/enrichAMEdges.js +291 -0
  110. package/dist/amGeneration/enrichAMEdges.js.map +1 -0
  111. package/dist/amGeneration/generateAM.d.ts +23 -0
  112. package/dist/amGeneration/generateAM.d.ts.map +1 -0
  113. package/dist/amGeneration/generateAM.js +131 -0
  114. package/dist/amGeneration/generateAM.js.map +1 -0
  115. package/dist/amGeneration/generateAMForRepo.d.ts +6 -0
  116. package/dist/amGeneration/generateAMForRepo.d.ts.map +1 -0
  117. package/dist/amGeneration/generateAMForRepo.js +130 -0
  118. package/dist/amGeneration/generateAMForRepo.js.map +1 -0
  119. package/dist/amGeneration/generateFlows.d.ts +27 -0
  120. package/dist/amGeneration/generateFlows.d.ts.map +1 -0
  121. package/dist/amGeneration/generateFlows.js +320 -0
  122. package/dist/amGeneration/generateFlows.js.map +1 -0
  123. package/dist/amGeneration/promptBuilder.d.ts +24 -0
  124. package/dist/amGeneration/promptBuilder.d.ts.map +1 -0
  125. package/dist/amGeneration/promptBuilder.js +299 -0
  126. package/dist/amGeneration/promptBuilder.js.map +1 -0
  127. package/dist/amGeneration/selectStrategicFiles.d.ts +42 -0
  128. package/dist/amGeneration/selectStrategicFiles.d.ts.map +1 -0
  129. package/dist/amGeneration/selectStrategicFiles.js +672 -0
  130. package/dist/amGeneration/selectStrategicFiles.js.map +1 -0
  131. package/dist/amGeneration/types.d.ts +83 -0
  132. package/dist/amGeneration/types.d.ts.map +1 -0
  133. package/dist/amGeneration/types.js +9 -0
  134. package/dist/amGeneration/types.js.map +1 -0
  135. package/dist/amSections.d.ts +29 -0
  136. package/dist/amSections.d.ts.map +1 -0
  137. package/dist/amSections.js +424 -0
  138. package/dist/amSections.js.map +1 -0
  139. package/dist/analysis/analysisCache.d.ts +4 -0
  140. package/dist/analysis/analysisCache.d.ts.map +1 -0
  141. package/dist/analysis/analysisCache.js +92 -0
  142. package/dist/analysis/analysisCache.js.map +1 -0
  143. package/dist/analysis/buildBranchStory.d.ts +95 -0
  144. package/dist/analysis/buildBranchStory.d.ts.map +1 -0
  145. package/dist/analysis/buildBranchStory.js +1264 -0
  146. package/dist/analysis/buildBranchStory.js.map +1 -0
  147. package/dist/analysis/buildDetailedFileXRay.d.ts +49 -0
  148. package/dist/analysis/buildDetailedFileXRay.d.ts.map +1 -0
  149. package/dist/analysis/buildDetailedFileXRay.js +607 -0
  150. package/dist/analysis/buildDetailedFileXRay.js.map +1 -0
  151. package/dist/analysis/buildFileXRay.d.ts +35 -0
  152. package/dist/analysis/buildFileXRay.d.ts.map +1 -0
  153. package/dist/analysis/buildFileXRay.js +305 -0
  154. package/dist/analysis/buildFileXRay.js.map +1 -0
  155. package/dist/analysis/classifySilentKiller.d.ts +14 -0
  156. package/dist/analysis/classifySilentKiller.d.ts.map +1 -0
  157. package/dist/analysis/classifySilentKiller.js +235 -0
  158. package/dist/analysis/classifySilentKiller.js.map +1 -0
  159. package/dist/analysis/diffChunks.d.ts +21 -0
  160. package/dist/analysis/diffChunks.d.ts.map +1 -0
  161. package/dist/analysis/diffChunks.js +302 -0
  162. package/dist/analysis/diffChunks.js.map +1 -0
  163. package/dist/analysis/extractRouteMap.d.ts +49 -0
  164. package/dist/analysis/extractRouteMap.d.ts.map +1 -0
  165. package/dist/analysis/extractRouteMap.js +354 -0
  166. package/dist/analysis/extractRouteMap.js.map +1 -0
  167. package/dist/analysis/generateFileInsight.d.ts +19 -0
  168. package/dist/analysis/generateFileInsight.d.ts.map +1 -0
  169. package/dist/analysis/generateFileInsight.js +103 -0
  170. package/dist/analysis/generateFileInsight.js.map +1 -0
  171. package/dist/analysis/llmXRay.d.ts +39 -0
  172. package/dist/analysis/llmXRay.d.ts.map +1 -0
  173. package/dist/analysis/llmXRay.js +208 -0
  174. package/dist/analysis/llmXRay.js.map +1 -0
  175. package/dist/analysis/simulateFailure.d.ts +44 -0
  176. package/dist/analysis/simulateFailure.d.ts.map +1 -0
  177. package/dist/analysis/simulateFailure.js +407 -0
  178. package/dist/analysis/simulateFailure.js.map +1 -0
  179. package/dist/anthropic.d.ts +3 -0
  180. package/dist/anthropic.d.ts.map +1 -0
  181. package/dist/anthropic.js +16 -0
  182. package/dist/anthropic.js.map +1 -0
  183. package/dist/app/buildAppPage.d.ts +34 -0
  184. package/dist/app/buildAppPage.d.ts.map +1 -0
  185. package/dist/app/buildAppPage.js +3085 -0
  186. package/dist/app/buildAppPage.js.map +1 -0
  187. package/dist/app-bundle.js +122 -0
  188. package/dist/buildAppData.d.ts +3 -0
  189. package/dist/buildAppData.d.ts.map +1 -0
  190. package/dist/buildAppData.js +207 -0
  191. package/dist/buildAppData.js.map +1 -0
  192. package/dist/builders/analyzeRepo.d.ts +25 -0
  193. package/dist/builders/analyzeRepo.d.ts.map +1 -0
  194. package/dist/builders/analyzeRepo.js +873 -0
  195. package/dist/builders/analyzeRepo.js.map +1 -0
  196. package/dist/builders/buildSystemConnections.d.ts +3 -0
  197. package/dist/builders/buildSystemConnections.d.ts.map +1 -0
  198. package/dist/builders/buildSystemConnections.js +388 -0
  199. package/dist/builders/buildSystemConnections.js.map +1 -0
  200. package/dist/builders/buildTextSummary.d.ts +61 -0
  201. package/dist/builders/buildTextSummary.d.ts.map +1 -0
  202. package/dist/builders/buildTextSummary.js +178 -0
  203. package/dist/builders/buildTextSummary.js.map +1 -0
  204. package/dist/builders/deriveRecommendedStartPath.d.ts +11 -0
  205. package/dist/builders/deriveRecommendedStartPath.d.ts.map +1 -0
  206. package/dist/builders/deriveRecommendedStartPath.js +140 -0
  207. package/dist/builders/deriveRecommendedStartPath.js.map +1 -0
  208. package/dist/builders/deriveRuntimeRole.d.ts +4 -0
  209. package/dist/builders/deriveRuntimeRole.d.ts.map +1 -0
  210. package/dist/builders/deriveRuntimeRole.js +30 -0
  211. package/dist/builders/deriveRuntimeRole.js.map +1 -0
  212. package/dist/builders/detectRunCommands.d.ts +16 -0
  213. package/dist/builders/detectRunCommands.d.ts.map +1 -0
  214. package/dist/builders/detectRunCommands.js +285 -0
  215. package/dist/builders/detectRunCommands.js.map +1 -0
  216. package/dist/builders/generateSystemNarrative.d.ts +12 -0
  217. package/dist/builders/generateSystemNarrative.d.ts.map +1 -0
  218. package/dist/builders/generateSystemNarrative.js +474 -0
  219. package/dist/builders/generateSystemNarrative.js.map +1 -0
  220. package/dist/builders/gitLogParser.d.ts +15 -0
  221. package/dist/builders/gitLogParser.d.ts.map +1 -0
  222. package/dist/builders/gitLogParser.js +116 -0
  223. package/dist/builders/gitLogParser.js.map +1 -0
  224. package/dist/builders/readRepoContext.d.ts +30 -0
  225. package/dist/builders/readRepoContext.d.ts.map +1 -0
  226. package/dist/builders/readRepoContext.js +323 -0
  227. package/dist/builders/readRepoContext.js.map +1 -0
  228. package/dist/builders/readSystemReadme.d.ts +39 -0
  229. package/dist/builders/readSystemReadme.d.ts.map +1 -0
  230. package/dist/builders/readSystemReadme.js +133 -0
  231. package/dist/builders/readSystemReadme.js.map +1 -0
  232. package/dist/builders/systemRanking.d.ts +24 -0
  233. package/dist/builders/systemRanking.d.ts.map +1 -0
  234. package/dist/builders/systemRanking.js +153 -0
  235. package/dist/builders/systemRanking.js.map +1 -0
  236. package/dist/cli.d.ts +3 -0
  237. package/dist/cli.d.ts.map +1 -0
  238. package/dist/cli.js +170 -0
  239. package/dist/cli.js.map +1 -0
  240. package/dist/detectors/applyRunnableConfidenceGate.d.ts +8 -0
  241. package/dist/detectors/applyRunnableConfidenceGate.d.ts.map +1 -0
  242. package/dist/detectors/applyRunnableConfidenceGate.js +166 -0
  243. package/dist/detectors/applyRunnableConfidenceGate.js.map +1 -0
  244. package/dist/detectors/classifySystemType.d.ts +17 -0
  245. package/dist/detectors/classifySystemType.d.ts.map +1 -0
  246. package/dist/detectors/classifySystemType.js +460 -0
  247. package/dist/detectors/classifySystemType.js.map +1 -0
  248. package/dist/detectors/detectAppInternalUnits.d.ts +20 -0
  249. package/dist/detectors/detectAppInternalUnits.d.ts.map +1 -0
  250. package/dist/detectors/detectAppInternalUnits.js +454 -0
  251. package/dist/detectors/detectAppInternalUnits.js.map +1 -0
  252. package/dist/detectors/detectBlocks.d.ts +6 -0
  253. package/dist/detectors/detectBlocks.d.ts.map +1 -0
  254. package/dist/detectors/detectBlocks.js +354 -0
  255. package/dist/detectors/detectBlocks.js.map +1 -0
  256. package/dist/detectors/detectComposeServices.d.ts +23 -0
  257. package/dist/detectors/detectComposeServices.d.ts.map +1 -0
  258. package/dist/detectors/detectComposeServices.js +255 -0
  259. package/dist/detectors/detectComposeServices.js.map +1 -0
  260. package/dist/detectors/detectEntryPoints.d.ts +6 -0
  261. package/dist/detectors/detectEntryPoints.d.ts.map +1 -0
  262. package/dist/detectors/detectEntryPoints.js +376 -0
  263. package/dist/detectors/detectEntryPoints.js.map +1 -0
  264. package/dist/detectors/detectSubsystems.d.ts +6 -0
  265. package/dist/detectors/detectSubsystems.d.ts.map +1 -0
  266. package/dist/detectors/detectSubsystems.js +376 -0
  267. package/dist/detectors/detectSubsystems.js.map +1 -0
  268. package/dist/detectors/detectSystemCandidates.d.ts +3 -0
  269. package/dist/detectors/detectSystemCandidates.d.ts.map +1 -0
  270. package/dist/detectors/detectSystemCandidates.js +577 -0
  271. package/dist/detectors/detectSystemCandidates.js.map +1 -0
  272. package/dist/devWatcher.d.ts +14 -0
  273. package/dist/devWatcher.d.ts.map +1 -0
  274. package/dist/devWatcher.js +96 -0
  275. package/dist/devWatcher.js.map +1 -0
  276. package/dist/graph/buildCodebaseGraph.d.ts +3 -0
  277. package/dist/graph/buildCodebaseGraph.d.ts.map +1 -0
  278. package/dist/graph/buildCodebaseGraph.js +602 -0
  279. package/dist/graph/buildCodebaseGraph.js.map +1 -0
  280. package/dist/graph/buildLLMPayload.d.ts +89 -0
  281. package/dist/graph/buildLLMPayload.d.ts.map +1 -0
  282. package/dist/graph/buildLLMPayload.js +715 -0
  283. package/dist/graph/buildLLMPayload.js.map +1 -0
  284. package/dist/graph/callLLM.d.ts +16 -0
  285. package/dist/graph/callLLM.d.ts.map +1 -0
  286. package/dist/graph/callLLM.js +274 -0
  287. package/dist/graph/callLLM.js.map +1 -0
  288. package/dist/graph/types.d.ts +76 -0
  289. package/dist/graph/types.d.ts.map +1 -0
  290. package/dist/graph/types.js +5 -0
  291. package/dist/graph/types.js.map +1 -0
  292. package/dist/graph/walkExports.d.ts +2 -0
  293. package/dist/graph/walkExports.d.ts.map +1 -0
  294. package/dist/graph/walkExports.js +172 -0
  295. package/dist/graph/walkExports.js.map +1 -0
  296. package/dist/heuristics/file-patterns.json +325 -0
  297. package/dist/heuristics/known-packages.json +1022 -0
  298. package/dist/heuristics/loader.d.ts +121 -0
  299. package/dist/heuristics/loader.d.ts.map +1 -0
  300. package/dist/heuristics/loader.js +196 -0
  301. package/dist/heuristics/loader.js.map +1 -0
  302. package/dist/heuristics/repo-mode-signals.json +248 -0
  303. package/dist/index.d.ts +3 -0
  304. package/dist/index.d.ts.map +1 -0
  305. package/dist/index.js +93 -0
  306. package/dist/index.js.map +1 -0
  307. package/dist/mcp.d.ts +3 -0
  308. package/dist/mcp.d.ts.map +1 -0
  309. package/dist/mcp.js +356 -0
  310. package/dist/mcp.js.map +1 -0
  311. package/dist/scanner/buildImportGraph.d.ts +23 -0
  312. package/dist/scanner/buildImportGraph.d.ts.map +1 -0
  313. package/dist/scanner/buildImportGraph.js +186 -0
  314. package/dist/scanner/buildImportGraph.js.map +1 -0
  315. package/dist/scanner/detectDBOps.d.ts +21 -0
  316. package/dist/scanner/detectDBOps.d.ts.map +1 -0
  317. package/dist/scanner/detectDBOps.js +346 -0
  318. package/dist/scanner/detectDBOps.js.map +1 -0
  319. package/dist/scanner/detectOutbound.d.ts +6 -0
  320. package/dist/scanner/detectOutbound.d.ts.map +1 -0
  321. package/dist/scanner/detectOutbound.js +101 -0
  322. package/dist/scanner/detectOutbound.js.map +1 -0
  323. package/dist/scanner/detectRepoPurpose.d.ts +19 -0
  324. package/dist/scanner/detectRepoPurpose.d.ts.map +1 -0
  325. package/dist/scanner/detectRepoPurpose.js +335 -0
  326. package/dist/scanner/detectRepoPurpose.js.map +1 -0
  327. package/dist/scanner/detectRoutes.d.ts +22 -0
  328. package/dist/scanner/detectRoutes.d.ts.map +1 -0
  329. package/dist/scanner/detectRoutes.js +406 -0
  330. package/dist/scanner/detectRoutes.js.map +1 -0
  331. package/dist/scanner/filterNoise.d.ts +4 -0
  332. package/dist/scanner/filterNoise.d.ts.map +1 -0
  333. package/dist/scanner/filterNoise.js +95 -0
  334. package/dist/scanner/filterNoise.js.map +1 -0
  335. package/dist/scanner/loadTsAliases.d.ts +20 -0
  336. package/dist/scanner/loadTsAliases.d.ts.map +1 -0
  337. package/dist/scanner/loadTsAliases.js +135 -0
  338. package/dist/scanner/loadTsAliases.js.map +1 -0
  339. package/dist/scanner/routeHandlers.d.ts +15 -0
  340. package/dist/scanner/routeHandlers.d.ts.map +1 -0
  341. package/dist/scanner/routeHandlers.js +154 -0
  342. package/dist/scanner/routeHandlers.js.map +1 -0
  343. package/dist/scanner/scanRepo.d.ts +10 -0
  344. package/dist/scanner/scanRepo.d.ts.map +1 -0
  345. package/dist/scanner/scanRepo.js +165 -0
  346. package/dist/scanner/scanRepo.js.map +1 -0
  347. package/dist/scanner/walkImports.d.ts +14 -0
  348. package/dist/scanner/walkImports.d.ts.map +1 -0
  349. package/dist/scanner/walkImports.js +162 -0
  350. package/dist/scanner/walkImports.js.map +1 -0
  351. package/dist/server.d.ts +2 -0
  352. package/dist/server.d.ts.map +1 -0
  353. package/dist/server.js +956 -0
  354. package/dist/server.js.map +1 -0
  355. package/dist/session/diff.d.ts +4 -0
  356. package/dist/session/diff.d.ts.map +1 -0
  357. package/dist/session/diff.js +150 -0
  358. package/dist/session/diff.js.map +1 -0
  359. package/dist/session/snapshot.d.ts +5 -0
  360. package/dist/session/snapshot.d.ts.map +1 -0
  361. package/dist/session/snapshot.js +114 -0
  362. package/dist/session/snapshot.js.map +1 -0
  363. package/dist/session/store.d.ts +8 -0
  364. package/dist/session/store.d.ts.map +1 -0
  365. package/dist/session/store.js +101 -0
  366. package/dist/session/store.js.map +1 -0
  367. package/dist/session/types.d.ts +46 -0
  368. package/dist/session/types.d.ts.map +1 -0
  369. package/dist/session/types.js +4 -0
  370. package/dist/session/types.js.map +1 -0
  371. package/dist/types.d.ts +350 -0
  372. package/dist/types.d.ts.map +1 -0
  373. package/dist/types.js +4 -0
  374. package/dist/types.js.map +1 -0
  375. package/dist/utils/file.d.ts +5 -0
  376. package/dist/utils/file.d.ts.map +1 -0
  377. package/dist/utils/file.js +76 -0
  378. package/dist/utils/file.js.map +1 -0
  379. package/dist/utils/path.d.ts +7 -0
  380. package/dist/utils/path.d.ts.map +1 -0
  381. package/dist/utils/path.js +62 -0
  382. package/dist/utils/path.js.map +1 -0
  383. package/dist/utils/text.d.ts +5 -0
  384. package/dist/utils/text.d.ts.map +1 -0
  385. package/dist/utils/text.js +29 -0
  386. package/dist/utils/text.js.map +1 -0
  387. package/dist/viewBuilders/buildSystemFolders.d.ts +39 -0
  388. package/dist/viewBuilders/buildSystemFolders.d.ts.map +1 -0
  389. package/dist/viewBuilders/buildSystemFolders.js +198 -0
  390. package/dist/viewBuilders/buildSystemFolders.js.map +1 -0
  391. package/dist/watcher/repoWatcher.d.ts +17 -0
  392. package/dist/watcher/repoWatcher.d.ts.map +1 -0
  393. package/dist/watcher/repoWatcher.js +87 -0
  394. package/dist/watcher/repoWatcher.js.map +1 -0
  395. package/package.json +102 -0
  396. package/public/memor_logo.svg +18 -0
  397. package/public/memor_transparent_logo.svg +25 -0
  398. package/public/tIcons/bun.svg +1 -0
  399. package/public/tIcons/css.svg +1 -0
  400. package/public/tIcons/docker.svg +3 -0
  401. package/public/tIcons/expressjs.svg +1 -0
  402. package/public/tIcons/html5.svg +6 -0
  403. package/public/tIcons/javascript.svg +1 -0
  404. package/public/tIcons/jest.svg +4 -0
  405. package/public/tIcons/json.svg +1 -0
  406. package/public/tIcons/markdown-light.svg +1 -0
  407. package/public/tIcons/nestjs.svg +1 -0
  408. package/public/tIcons/nextjs_icon_dark.svg +1 -0
  409. package/public/tIcons/npm.svg +1 -0
  410. package/public/tIcons/pnpm.svg +1 -0
  411. package/public/tIcons/prisma.svg +1 -0
  412. package/public/tIcons/react_dark.svg +11 -0
  413. package/public/tIcons/supabase.svg +15 -0
  414. package/public/tIcons/tailwindcss.svg +1 -0
  415. package/public/tIcons/turborepo-icon-light.svg +1 -0
  416. package/public/tIcons/typescript.svg +1 -0
  417. package/public/tIcons/vite.svg +1 -0
  418. package/public/tIcons/yarn.svg +1 -0
@@ -0,0 +1,474 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSystemNarrative = generateSystemNarrative;
4
+ exports.applyNarratives = applyNarratives;
5
+ // ── Priority 1: package.json description (NEVER overridden) ───────────
6
+ function fromPackageJson(sys, repoName, centerDescription) {
7
+ const desc = sys.packageDescription;
8
+ if (!desc || desc.length <= 8)
9
+ return null;
10
+ // Skip placeholder/TODO descriptions
11
+ if (/^\s*TODO/i.test(desc))
12
+ return null;
13
+ // Skip descriptions that are just the package name
14
+ if (desc.toLowerCase().replace(/[^a-z0-9]/g, "") === sys.name.toLowerCase().replace(/[^a-z0-9]/g, ""))
15
+ return null;
16
+ const isCenter = sys.name.toLowerCase().replace(/[^a-z0-9]/g, "") ===
17
+ repoName.toLowerCase().replace(/[^a-z0-9]/g, "");
18
+ // If a non-center package has the same description as the center (or the shared
19
+ // monorepo tagline), it's a copy-paste artifact — skip it so name-patterns or
20
+ // enrichment can provide something more specific.
21
+ if (!isCenter && centerDescription) {
22
+ const normalizedDesc = desc.replace(/\s*\(@[^)]+\)\s*$/, "").trim();
23
+ const normalizedCenter = centerDescription.replace(/\s*\(@[^)]+\)\s*$/, "").trim();
24
+ if (normalizedDesc === normalizedCenter)
25
+ return null;
26
+ }
27
+ const short = desc;
28
+ return {
29
+ shortDescription: short,
30
+ confidence: "high",
31
+ reasoning: [`[package.json] "${desc}"`],
32
+ };
33
+ }
34
+ // ── Priority 2: Non-package system templates ──────────────────────────
35
+ const NON_PACKAGE_TEMPLATES = {
36
+ compiler: (rn) => `Build-time compiler for ${rn}, transforms source into optimized runtime output.`,
37
+ scripts: (rn) => `Build, release, and automation scripts for the ${rn} repository.`,
38
+ examples: (rn) => `Example applications demonstrating ${rn} usage patterns.`,
39
+ benchmark: (rn) => `Performance benchmarking suite for ${rn}.`,
40
+ benchmarking: (rn) => `Performance benchmarking suite for ${rn}.`,
41
+ fixtures: (rn) => `Test fixtures and reference data for ${rn} regression testing.`,
42
+ playground: (rn) => `Interactive sandbox for testing and experimentation with ${rn}.`,
43
+ playgrounds: (rn) => `Interactive sandboxes for testing and experimentation with ${rn}.`,
44
+ documentation: (rn) => `Documentation source and developer guides for ${rn}.`,
45
+ docs: (rn) => `Documentation source and developer guides for ${rn}.`,
46
+ e2e: (rn) => `End-to-end test infrastructure for ${rn}.`,
47
+ };
48
+ function fromNonPackageTemplate(sys, repoName) {
49
+ if (sys.type !== "support-system")
50
+ return null;
51
+ const lower = sys.name.toLowerCase();
52
+ const templateFn = NON_PACKAGE_TEMPLATES[lower];
53
+ if (!templateFn)
54
+ return null;
55
+ return {
56
+ shortDescription: templateFn(repoName),
57
+ confidence: "medium",
58
+ reasoning: [`[non-package:${lower}] Known architectural directory.`],
59
+ };
60
+ }
61
+ const NAME_RULES = [
62
+ // Language tools (MUST come before "server" to prevent language-server misfire)
63
+ {
64
+ id: "language-tools",
65
+ match: (n) => /language.?server/i.test(n) || /\blsp\b/i.test(n) ||
66
+ /\bcheck$/i.test(n) || /^ts-plugin$/i.test(n),
67
+ describe: (n) => /language.?server/i.test(n)
68
+ ? "Language server providing editor tooling: autocomplete, diagnostics, and code intelligence."
69
+ : /\bcheck$/i.test(n)
70
+ ? "Type-checking CLI for validating project code from the command line."
71
+ : "Editor integration plugin providing enhanced IDE support.",
72
+ },
73
+ {
74
+ id: "vscode",
75
+ match: (n) => /\bvscode\b/i.test(n),
76
+ describe: () => "VS Code extension providing syntax highlighting, diagnostics, and editor-level integration.",
77
+ },
78
+ // DevTools (with variant differentiation)
79
+ {
80
+ id: "devtools",
81
+ match: (n) => /\bdevtools?\b/i.test(n),
82
+ describe: (n) => {
83
+ if (/shared/i.test(n))
84
+ return "Shared infrastructure powering the DevTools UI and data protocols.";
85
+ if (/extension/i.test(n))
86
+ return "Browser extension for inspecting and debugging application state.";
87
+ if (/inline/i.test(n))
88
+ return "Embeddable DevTools variant for rendering inspection UI inside a host page.";
89
+ if (/shell/i.test(n))
90
+ return "Standalone DevTools shell for development and testing of the DevTools UI itself.";
91
+ if (/fusebox/i.test(n))
92
+ return "DevTools integration for React Native debugging via Fusebox.";
93
+ if (/timeline/i.test(n))
94
+ return "Timeline profiler for visualizing scheduling and rendering performance.";
95
+ if (/core/i.test(n))
96
+ return "Core DevTools module used by standalone and embedded variants.";
97
+ return "Developer tools for inspecting, profiling, and debugging application state.";
98
+ },
99
+ },
100
+ // Renderers (MUST come before generic "server" and "dom")
101
+ {
102
+ id: "renderer",
103
+ match: (n) => /renderer/i.test(n) && !/test/i.test(n) && !/noop/i.test(n),
104
+ describe: (n) => {
105
+ if (/native/i.test(n))
106
+ return "React renderer for native mobile platforms, translating reconciliation output into native UI updates.";
107
+ return "Custom renderer translating framework reconciliation output into host-specific UI updates.";
108
+ },
109
+ },
110
+ {
111
+ id: "noop-renderer",
112
+ match: (n) => /noop.?renderer/i.test(n),
113
+ describe: () => "No-op renderer used for testing the reconciler and server rendering without a real host environment.",
114
+ },
115
+ // Server-DOM transport
116
+ {
117
+ id: "server-dom",
118
+ match: (n) => /server.?dom/i.test(n),
119
+ describe: (n) => {
120
+ const bundler = extractBundlerName(n);
121
+ return bundler
122
+ ? `Server Components transport layer for ${bundler}, enabling streaming between server and client.`
123
+ : "Server Components transport layer for streaming between server and client runtimes.";
124
+ },
125
+ },
126
+ // DOM bindings (NOT devtools, NOT test, NOT server-dom)
127
+ {
128
+ id: "dom",
129
+ match: (n) => /\bdom\b/i.test(n) &&
130
+ !/devtools/i.test(n) && !/test/i.test(n) && !/server/i.test(n),
131
+ describe: (n, sys, rn) => {
132
+ if (/bindings/i.test(n))
133
+ return `Internal DOM binding layer connecting ${rn}'s reconciler to browser APIs.`;
134
+ return `Renderer binding ${rn}'s reconciliation engine to the browser DOM.`;
135
+ },
136
+ },
137
+ // Server (NOT server-dom, NOT language-server)
138
+ {
139
+ id: "server",
140
+ match: (n) => /\bserver\b/i.test(n) &&
141
+ !/dom/i.test(n) && !/language/i.test(n) && !/devtools/i.test(n),
142
+ describe: (_, _s, rn) => `Server-side rendering and streaming entry points for ${rn}.`,
143
+ },
144
+ // Client
145
+ {
146
+ id: "client",
147
+ match: (n) => /\bclient\b/i.test(n) && !/devtools/i.test(n) && !/test/i.test(n),
148
+ describe: (_, _s, rn) => `Client-side streaming and hydration support for ${rn}.`,
149
+ },
150
+ // Core runtime names
151
+ {
152
+ id: "reconciler",
153
+ match: (n) => /\breconciler\b/i.test(n),
154
+ describe: () => "Core reconciliation engine for diffing virtual representations and applying updates to host targets.",
155
+ },
156
+ {
157
+ id: "scheduler",
158
+ match: (n) => /\bscheduler\b/i.test(n),
159
+ describe: () => "Cooperative scheduling primitives for prioritizing, batching, and yielding work.",
160
+ },
161
+ {
162
+ id: "shared",
163
+ match: (n) => /^shared$|^common$/i.test(n),
164
+ describe: () => "Shared internal utilities and constants consumed by multiple sibling packages.",
165
+ },
166
+ // CLI / scaffolding
167
+ {
168
+ id: "create-cli",
169
+ match: (n) => /^create-/i.test(n),
170
+ describe: (_, _s, rn) => `Project scaffolding CLI for creating new ${rn} projects from templates.`,
171
+ },
172
+ // Compiler
173
+ {
174
+ id: "compiler",
175
+ match: (n, s) => /\bcompiler\b/i.test(n) || (s.type === "support-system" && /compiler/i.test(s.rootPath)),
176
+ describe: (_, _s, rn) => `Build-time compiler that transforms ${rn} source into optimized runtime output.`,
177
+ },
178
+ // Refresh / HMR
179
+ {
180
+ id: "refresh",
181
+ match: (n) => /\brefresh\b/i.test(n),
182
+ describe: (_, _s, rn) => `Fast Refresh (HMR) integration enabling instant feedback during ${rn} development.`,
183
+ },
184
+ // Test utilities
185
+ {
186
+ id: "test",
187
+ match: (n) => /\btest(?:ing)?\b/i.test(n) || /\bjest\b/i.test(n) || /\bfixture/i.test(n),
188
+ describe: (n) => {
189
+ if (/jest/i.test(n))
190
+ return "Jest integration providing custom matchers and test environment for the framework.";
191
+ if (/fixture/i.test(n))
192
+ return "Test fixtures and reference cases for regression testing.";
193
+ if (/suspense/i.test(n))
194
+ return "Test utilities for validating Suspense boundaries and async rendering behavior.";
195
+ if (/test-renderer/i.test(n))
196
+ return "Lightweight renderer for snapshot testing components without a DOM.";
197
+ if (/test-utils/i.test(n))
198
+ return "Internal test utilities and helpers shared across the test suite.";
199
+ if (/dom.?event/i.test(n))
200
+ return "Test utilities for simulating and validating DOM events.";
201
+ if (/testing.?library/i.test(n))
202
+ return "Testing library utilities for behavior-driven component tests.";
203
+ return "Test utilities and helpers for framework testing infrastructure.";
204
+ },
205
+ },
206
+ // Linting
207
+ {
208
+ id: "lint",
209
+ match: (n) => /\beslint\b/i.test(n) || /\blint\b/i.test(n),
210
+ describe: (n) => {
211
+ if (/hooks/i.test(n))
212
+ return "ESLint plugin enforcing rules of Hooks and dependency validation.";
213
+ return "Linting rules and code quality enforcement for the framework ecosystem.";
214
+ },
215
+ },
216
+ // Content / markdown
217
+ {
218
+ id: "content",
219
+ match: (n) => /\bprism\b/i.test(n) || /\bmarkdown\b/i.test(n) ||
220
+ /\bremark\b/i.test(n) || /\bmdx\b/i.test(n) || /\bmarkdoc\b/i.test(n),
221
+ describe: (n) => {
222
+ if (/prism/i.test(n))
223
+ return "Syntax highlighting integration using Prism for code blocks.";
224
+ if (/remark/i.test(n))
225
+ return "Remark-based Markdown processing pipeline.";
226
+ if (/mdx/i.test(n))
227
+ return "MDX support enabling JSX components inside Markdown content.";
228
+ if (/markdoc/i.test(n))
229
+ return "Markdoc integration for structured, extensible Markdown content.";
230
+ return "Content processing for Markdown and related formats.";
231
+ },
232
+ },
233
+ // Adapter / platform
234
+ {
235
+ id: "adapter",
236
+ match: (n) => /\badapter\b/i.test(n) || isAdapterName(n),
237
+ describe: (n) => {
238
+ const platform = cleanAdapterName(n);
239
+ return `Deployment adapter for ${platform}, translating build output to the platform's runtime format.`;
240
+ },
241
+ },
242
+ // Telemetry
243
+ {
244
+ id: "telemetry",
245
+ match: (n) => /\btelemetry\b/i.test(n),
246
+ describe: () => "Anonymous usage telemetry for measuring adoption and guiding framework improvements.",
247
+ },
248
+ // Upgrade / migration
249
+ {
250
+ id: "upgrade",
251
+ match: (n) => /\bupgrade\b/i.test(n) || /\bmigrat/i.test(n),
252
+ describe: (_, _s, rn) => `Version migration tool helping projects upgrade between ${rn} releases.`,
253
+ },
254
+ // RSS
255
+ {
256
+ id: "rss",
257
+ match: (n) => /\brss\b/i.test(n),
258
+ describe: (_, _s, rn) => `RSS feed generation helper for ${rn} projects.`,
259
+ },
260
+ // DB
261
+ {
262
+ id: "db",
263
+ match: (n) => /\bdb\b/i.test(n) || /\bdatabase\b/i.test(n),
264
+ describe: () => "Data layer providing database access, schema management, or ORM capabilities.",
265
+ },
266
+ // Debug tools (non-devtools)
267
+ {
268
+ id: "debug-tools",
269
+ match: (n) => /\bdebug.?tools?\b/i.test(n),
270
+ describe: () => "Debugging utilities for programmatic inspection of component trees and state.",
271
+ },
272
+ // Brand checking (react-is)
273
+ {
274
+ id: "is-check",
275
+ match: (n) => /-is$/i.test(n),
276
+ describe: (_, _s, rn) => `Runtime type-checking utilities for identifying ${rn} element types.`,
277
+ },
278
+ ];
279
+ function extractBundlerName(name) {
280
+ const match = name.match(/server.?dom.?(esm|webpack|parcel|turbopack|fb|unbundled)/i);
281
+ if (!match)
282
+ return null;
283
+ const MAP = {
284
+ esm: "ESM imports",
285
+ webpack: "Webpack",
286
+ parcel: "Parcel",
287
+ turbopack: "Turbopack",
288
+ fb: "Meta's internal bundler",
289
+ unbundled: "unbundled Node.js environments",
290
+ };
291
+ return MAP[match[1].toLowerCase()] || match[1];
292
+ }
293
+ const ADAPTER_NAMES = /^(node|cloudflare|vercel|netlify|deno|bun)$/i;
294
+ function isAdapterName(name) {
295
+ return ADAPTER_NAMES.test(name);
296
+ }
297
+ function cleanAdapterName(name) {
298
+ const match = name.match(ADAPTER_NAMES);
299
+ if (match) {
300
+ const MAP = {
301
+ node: "Node.js", cloudflare: "Cloudflare Workers",
302
+ vercel: "Vercel", netlify: "Netlify", deno: "Deno", bun: "Bun",
303
+ };
304
+ return MAP[match[0].toLowerCase()] || match[0];
305
+ }
306
+ return name;
307
+ }
308
+ // ── Priority 4: Extends-relationship based ────────────────────────────
309
+ function fromExtendsRelation(sys, repoName) {
310
+ const ext = sys.connections?.outgoing?.find((c) => c.relation === "extends");
311
+ if (!ext)
312
+ return null;
313
+ const n = sys.name.toLowerCase();
314
+ const inc = sys.connections?.incoming?.length || 0;
315
+ const depNote = inc > 0 ? ` — ${inc} package${inc > 1 ? "s" : ""} depend${inc === 1 ? "s" : ""} on it` : "";
316
+ // If the system has a meaningful name, use it for a richer description
317
+ if (/\bcore\b/i.test(n))
318
+ return { shortDescription: `Core ${repoName} module, extends ${ext.targetSystemName}${depNote}.`, confidence: "medium", reasoning: [`[extends:core] Core module extending ${ext.targetSystemName}.`] };
319
+ if (/\bmicroservice/i.test(n))
320
+ return { shortDescription: `Microservices support for ${repoName}, extends ${ext.targetSystemName}${depNote}.`, confidence: "medium", reasoning: [`[extends:microservices]`] };
321
+ if (/platform[-_](\w+)/i.test(n)) {
322
+ const raw = n.match(/platform[-_](\S+)/i)?.[1] || n;
323
+ const PLATFORM_NAMES = {
324
+ express: "Express", fastify: "Fastify", ws: "WebSocket (ws)",
325
+ "socket.io": "Socket.io", "socket-io": "Socket.io", koa: "Koa",
326
+ hapi: "Hapi", deno: "Deno", bun: "Bun",
327
+ };
328
+ const platform = PLATFORM_NAMES[raw] || capitalize(raw);
329
+ return { shortDescription: `${platform} platform adapter for ${repoName}, extends ${ext.targetSystemName}${depNote}.`, confidence: "medium", reasoning: [`[extends:platform]`] };
330
+ }
331
+ if (/\bwebsocket/i.test(n) || /\bws\b/i.test(n))
332
+ return { shortDescription: `WebSocket support for ${repoName}, extends ${ext.targetSystemName}${depNote}.`, confidence: "medium", reasoning: [`[extends:websocket]`] };
333
+ return {
334
+ shortDescription: `${sys.name} extends ${ext.targetSystemName}${depNote}.`,
335
+ confidence: "medium",
336
+ reasoning: [`[connection:extends] Extends ${ext.targetSystemName}.`],
337
+ };
338
+ }
339
+ function capitalize(s) {
340
+ return s.charAt(0).toUpperCase() + s.slice(1);
341
+ }
342
+ // ── Main generator ────────────────────────────────────────────────────
343
+ function generateSystemNarrative(sys, repoName, centerDescription) {
344
+ // P1: package.json description — ALWAYS wins (unless it's a monorepo copy-paste)
345
+ const pkg = fromPackageJson(sys, repoName, centerDescription);
346
+ if (pkg)
347
+ return pkg;
348
+ // P2: Non-package system templates
349
+ const nonPkg = fromNonPackageTemplate(sys, repoName);
350
+ if (nonPkg)
351
+ return nonPkg;
352
+ // P3: Precise name-pattern matching with exclusions
353
+ const n = sys.name.toLowerCase();
354
+ for (const rule of NAME_RULES) {
355
+ if (rule.match(n, sys)) {
356
+ return {
357
+ shortDescription: rule.describe(n, sys, repoName),
358
+ confidence: "medium",
359
+ reasoning: [`[name-rule:${rule.id}] Matched pattern for ${sys.name}.`],
360
+ };
361
+ }
362
+ }
363
+ // P4: Extends relationship
364
+ const ext = fromExtendsRelation(sys, repoName);
365
+ if (ext)
366
+ return ext;
367
+ // P4b: README excerpt (between extends-relationship and plain fallback)
368
+ if (sys.readmeExcerpt && sys.readmeExcerpt.length > 20) {
369
+ return {
370
+ shortDescription: sys.readmeExcerpt,
371
+ confidence: "medium",
372
+ reasoning: [`[readme] Extracted from README.md`],
373
+ };
374
+ }
375
+ // P5: Fallback — keep existing description
376
+ return {
377
+ shortDescription: sys.description || `Package: ${sys.name}.`,
378
+ confidence: "low",
379
+ reasoning: ["No specific evidence found; using existing description."],
380
+ };
381
+ }
382
+ /**
383
+ * Generate narratives for all systems, apply them, then deduplicate siblings.
384
+ */
385
+ function applyNarratives(systems, repoName) {
386
+ const narratives = new Map();
387
+ const rn = repoName.toLowerCase().replace(/[^a-z0-9]/g, "");
388
+ // Find the center system's packageDescription so we can detect monorepo
389
+ // copy-paste artifacts (non-center packages with the same generic description)
390
+ const center = systems.find((s) => s.name.toLowerCase().replace(/[^a-z0-9]/g, "") === rn);
391
+ // Also detect "copy-paste" descriptions: when 60%+ of systems share the same
392
+ // base description (ignoring scope suffixes like (@common)), treat it as the
393
+ // generic project tagline that non-center systems should skip.
394
+ const descCounts = new Map();
395
+ for (const s of systems) {
396
+ if (!s.packageDescription)
397
+ continue;
398
+ const normalized = s.packageDescription.replace(/\s*\(@[^)]+\)\s*$/, "").trim();
399
+ descCounts.set(normalized, (descCounts.get(normalized) || 0) + 1);
400
+ }
401
+ let sharedDesc;
402
+ for (const [desc, count] of descCounts) {
403
+ if (count >= Math.max(2, systems.length * 0.5)) {
404
+ sharedDesc = desc;
405
+ break;
406
+ }
407
+ }
408
+ const centerDesc = center?.packageDescription || sharedDesc;
409
+ for (const sys of systems) {
410
+ const narrative = generateSystemNarrative(sys, repoName, centerDesc);
411
+ narratives.set(sys.id, narrative);
412
+ const GENERIC_DESCRIPTIONS = [
413
+ "provides shared runtime utilities",
414
+ "provides runtime utilities",
415
+ "shared runtime utilities",
416
+ "provides utilities",
417
+ ];
418
+ const isGeneric = GENERIC_DESCRIPTIONS.some((g) => narrative.shortDescription.toLowerCase().includes(g));
419
+ if (narrative.shortDescription.length > 10 &&
420
+ !narrative.shortDescription.startsWith("Package:") &&
421
+ !isGeneric) {
422
+ sys.description = narrative.shortDescription;
423
+ }
424
+ }
425
+ deduplicateSiblings(systems);
426
+ return narratives;
427
+ }
428
+ // ── Sibling deduplication ─────────────────────────────────────────────
429
+ function deduplicateSiblings(systems) {
430
+ const byDesc = new Map();
431
+ for (const sys of systems) {
432
+ const key = sys.description;
433
+ const arr = byDesc.get(key) || [];
434
+ arr.push(sys);
435
+ byDesc.set(key, arr);
436
+ }
437
+ for (const [, group] of byDesc) {
438
+ if (group.length < 2)
439
+ continue;
440
+ for (const sys of group) {
441
+ const suffix = deriveSuffix(sys);
442
+ if (suffix) {
443
+ sys.description = sys.description.replace(/\.$/, "") + ` (${suffix}).`;
444
+ }
445
+ }
446
+ }
447
+ }
448
+ function deriveSuffix(sys) {
449
+ const n = sys.name.toLowerCase();
450
+ const parts = n.split(/[-_./]/);
451
+ // Walk backwards through name parts, skipping noise
452
+ for (let i = parts.length - 1; i >= 0; i--) {
453
+ const part = parts[i];
454
+ if (part && part.length >= 2 && !NOISE_SUFFIXES.has(part)) {
455
+ // Don't use a part that's too common to differentiate (e.g. the repo name prefix)
456
+ if (i === 0 && parts.length > 1)
457
+ continue;
458
+ return part;
459
+ }
460
+ }
461
+ // Path-based differentiator
462
+ if (sys.rootPath && sys.rootPath !== ".") {
463
+ const pathParts = sys.rootPath.split("/");
464
+ const lastDir = pathParts[pathParts.length - 1];
465
+ if (lastDir && lastDir !== sys.name)
466
+ return lastDir;
467
+ }
468
+ return null;
469
+ }
470
+ const NOISE_SUFFIXES = new Set([
471
+ "shared", "common", "utils", "helpers", "lib",
472
+ "package", "module", "src", "dist", "build",
473
+ ]);
474
+ //# sourceMappingURL=generateSystemNarrative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSystemNarrative.js","sourceRoot":"","sources":["../../src/builders/generateSystemNarrative.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** Parse git log to compute per-system commit frequency. Pure I/O — no inference. */
2
+ export type SystemCommitFrequency = {
3
+ commitCount: number;
4
+ lastCommit: string | null;
5
+ };
6
+ /**
7
+ * Returns commit count and last-commit date per system for the past `sinceDays` days.
8
+ * Commit count = number of distinct commits that touched at least one file in the system.
9
+ * Never throws — returns zeroed result if git is unavailable.
10
+ */
11
+ export declare function gitLogParser(repoPath: string, sinceDays: number, systems: {
12
+ id: string;
13
+ rootPath: string;
14
+ }[]): Promise<Map<string, SystemCommitFrequency>>;
15
+ //# sourceMappingURL=gitLogParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitLogParser.d.ts","sourceRoot":"","sources":["../../src/builders/gitLogParser.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAQrF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAsBF;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,GAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAgE7C"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ /** Parse git log to compute per-system commit frequency. Pure I/O — no inference. */
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.gitLogParser = gitLogParser;
38
+ const child_process_1 = require("child_process");
39
+ const util_1 = require("util");
40
+ const path = __importStar(require("path"));
41
+ const exec = (0, util_1.promisify)(child_process_1.execFile);
42
+ function fileToSystemId(filePath, repoPath, systems) {
43
+ const absFile = path.resolve(repoPath, filePath);
44
+ let best = null;
45
+ let bestLen = 0;
46
+ for (const sys of systems) {
47
+ const sysAbs = path.resolve(sys.rootPath);
48
+ if (absFile.startsWith(sysAbs + path.sep) || absFile === sysAbs) {
49
+ if (sysAbs.length > bestLen) {
50
+ bestLen = sysAbs.length;
51
+ best = sys.id;
52
+ }
53
+ }
54
+ }
55
+ return best;
56
+ }
57
+ /**
58
+ * Returns commit count and last-commit date per system for the past `sinceDays` days.
59
+ * Commit count = number of distinct commits that touched at least one file in the system.
60
+ * Never throws — returns zeroed result if git is unavailable.
61
+ */
62
+ async function gitLogParser(repoPath, sinceDays, systems) {
63
+ const result = new Map(systems.map((s) => [s.id, { commitCount: 0, lastCommit: null }]));
64
+ if (systems.length === 0)
65
+ return result;
66
+ try {
67
+ const { stdout } = await exec("git", [
68
+ "log",
69
+ `--since=${sinceDays} days ago`,
70
+ "--name-only",
71
+ "--pretty=format:COMMIT %ci",
72
+ "--diff-filter=ACMR",
73
+ ], { cwd: repoPath, maxBuffer: 50 * 1024 * 1024 });
74
+ if (!stdout.trim())
75
+ return result;
76
+ let currentDate = null;
77
+ const touchedInCommit = new Set();
78
+ for (const raw of stdout.split("\n")) {
79
+ const line = raw.trimEnd();
80
+ if (line.startsWith("COMMIT ")) {
81
+ // Flush previous commit's systems
82
+ for (const sysId of touchedInCommit) {
83
+ const entry = result.get(sysId);
84
+ if (entry)
85
+ entry.commitCount++;
86
+ }
87
+ touchedInCommit.clear();
88
+ currentDate = line.slice(7).trim(); // "2024-01-15 10:30:00 +0000"
89
+ continue;
90
+ }
91
+ const filePath = line.trim();
92
+ if (!filePath)
93
+ continue;
94
+ const sysId = fileToSystemId(filePath, repoPath, systems);
95
+ if (!sysId)
96
+ continue;
97
+ touchedInCommit.add(sysId);
98
+ // First time we see a file from this system = most recent commit date
99
+ const entry = result.get(sysId);
100
+ if (entry && !entry.lastCommit && currentDate) {
101
+ entry.lastCommit = currentDate;
102
+ }
103
+ }
104
+ // Flush last commit
105
+ for (const sysId of touchedInCommit) {
106
+ const entry = result.get(sysId);
107
+ if (entry)
108
+ entry.commitCount++;
109
+ }
110
+ }
111
+ catch {
112
+ // git unavailable or not a repo — return zeroed result
113
+ }
114
+ return result;
115
+ }
116
+ //# sourceMappingURL=gitLogParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitLogParser.js","sourceRoot":"","sources":["../../src/builders/gitLogParser.ts"],"names":[],"mappings":"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"}