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,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildTextSummary = buildTextSummary;
4
+ // ── Main builder ──────────────────────────────────────────────────────
5
+ function buildTextSummary(analysis, repoContext, systemReadmes) {
6
+ const systems = analysis.systems;
7
+ // Headline: README first sentence, then package.json description
8
+ let headline = null;
9
+ let headlineSource = null;
10
+ if (repoContext.rootReadmeSummary) {
11
+ headline = firstSentence(repoContext.rootReadmeSummary);
12
+ headlineSource = "README.md";
13
+ }
14
+ else {
15
+ const rootSystem = systemReadmes[systems[0]?.id];
16
+ if (rootSystem?.packageDescription) {
17
+ headline = rootSystem.packageDescription;
18
+ headlineSource = "package.json";
19
+ }
20
+ }
21
+ const enriched = systems.map((s) => enrichSystem(s, systemReadmes[s.id]));
22
+ const primary = enriched.filter((s) => s.tier === "primary");
23
+ const secondary = enriched.filter((s) => s.tier === "secondary");
24
+ const support = enriched.filter((s) => s.tier === "support");
25
+ const openFirst = buildOpenFirst(primary, secondary);
26
+ const safeToSkip = support
27
+ .filter((s) => s.incomingCount === 0 && s.outgoingCount === 0)
28
+ .map((s) => s.name);
29
+ const gaps = buildGaps(analysis, repoContext, systemReadmes, enriched);
30
+ return {
31
+ repoName: analysis.repoName,
32
+ detectedMode: analysis.repoMode,
33
+ totalFiles: analysis.summary.totalFiles,
34
+ totalSystems: systems.length,
35
+ frameworks: analysis.summary.detectedFrameworks ?? [],
36
+ headline,
37
+ headlineSource,
38
+ claudeMd: repoContext.claudeMdContent,
39
+ claudeMdSource: repoContext.claudeMdSource,
40
+ contributingNotes: repoContext.contributingNotes,
41
+ contributingSource: repoContext.contributingSource,
42
+ openFirst,
43
+ systems: { primary, secondary, support },
44
+ safeToSkip,
45
+ gaps,
46
+ };
47
+ }
48
+ // ── System enrichment ─────────────────────────────────────────────────
49
+ function enrichSystem(sys, readme) {
50
+ const outgoing = sys.connections?.outgoing ?? [];
51
+ const incoming = sys.connections?.incoming ?? [];
52
+ let description = sys.description ?? "";
53
+ let descriptionSource = "memor-analysis";
54
+ if (readme?.bestDescription) {
55
+ description = readme.bestDescription;
56
+ descriptionSource = readme.bestDescriptionSource === "README.md"
57
+ ? "README.md" : "package.json";
58
+ }
59
+ return {
60
+ id: sys.id,
61
+ name: sys.name,
62
+ tier: sys.systemTier,
63
+ type: sys.type ?? "unknown",
64
+ description,
65
+ descriptionSource,
66
+ tech: sys.detectedTech ?? [],
67
+ archetype: sys.graphArchetype ?? sys.appArchetype ?? sys.packageArchetype ?? null,
68
+ entryPoints: (sys.entryPoints ?? []).slice(0, 3).map((ep) => ({
69
+ path: ep.path,
70
+ kind: ep.kind,
71
+ })),
72
+ incomingCount: incoming.length,
73
+ outgoingCount: outgoing.length,
74
+ dependents: incoming.map((c) => c.targetSystemName),
75
+ dependencies: outgoing.map((c) => c.targetSystemName),
76
+ };
77
+ }
78
+ // ── Open this first ───────────────────────────────────────────────────
79
+ function buildOpenFirst(primary, secondary) {
80
+ const result = [];
81
+ for (const sys of [...primary, ...secondary].slice(0, 4)) {
82
+ const ep = sys.entryPoints[0];
83
+ if (!ep)
84
+ continue;
85
+ result.push({
86
+ system: sys.name,
87
+ path: ep.path,
88
+ context: deriveContext(sys),
89
+ source: "AST",
90
+ });
91
+ }
92
+ return result;
93
+ }
94
+ function deriveContext(sys) {
95
+ const t = sys.type.toLowerCase();
96
+ const name = sys.name.toLowerCase();
97
+ const arch = (sys.archetype ?? "").toLowerCase();
98
+ const tech = sys.tech.map((x) => x.toLowerCase());
99
+ if (tech.some((x) => x.includes("electron") || x.includes("tauri")))
100
+ return "Working on desktop app?";
101
+ if (name.includes("desktop") || name.includes("electron"))
102
+ return "Working on desktop app?";
103
+ if (t.includes("frontend") || t.includes("client"))
104
+ return "Working on UI?";
105
+ if (name.includes("web") || name.includes("frontend") || name.includes("ui"))
106
+ return "Working on UI?";
107
+ if (arch.includes("next") || arch.includes("vite-react") || arch.includes("remix"))
108
+ return "Working on UI?";
109
+ if (tech.some((x) => x.includes("react") || x.includes("vue") || x.includes("svelte") || x.includes("next")))
110
+ return "Working on UI?";
111
+ if (t.includes("backend") || t.includes("server"))
112
+ return "Working on API?";
113
+ if (name.includes("api") || name.includes("server") || name.includes("backend"))
114
+ return "Working on API?";
115
+ if (arch.includes("nest") || arch.includes("express") || arch.includes("fastify"))
116
+ return "Working on API?";
117
+ if (tech.some((x) => x.includes("nestjs") || x.includes("express") || x.includes("fastify")))
118
+ return "Working on API?";
119
+ if (name.includes("db") || name.includes("database") || name.includes("prisma"))
120
+ return "Changing the database?";
121
+ if (tech.some((x) => x.includes("prisma") || x.includes("drizzle") || x.includes("typeorm")))
122
+ return "Changing the database?";
123
+ if (t.includes("cli") || name.includes("cli") || arch.includes("cli"))
124
+ return "Building CLI tooling?";
125
+ if (tech.some((x) => x.includes("react native") || x.includes("expo")))
126
+ return "Working on mobile?";
127
+ if (name.includes("mobile") || name.includes("native"))
128
+ return "Working on mobile?";
129
+ if (sys.tier === "secondary" && sys.incomingCount > 1)
130
+ return `Touching ${sys.name}?`;
131
+ if (t.includes("lib") || arch.includes("library") || arch.includes("package"))
132
+ return `Touching ${sys.name}?`;
133
+ return `Working on ${sys.name}?`;
134
+ }
135
+ // ── Honest gaps ───────────────────────────────────────────────────────
136
+ function buildGaps(analysis, context, systemReadmes, systems) {
137
+ const gaps = [];
138
+ if (analysis.repoMode === "unknown") {
139
+ gaps.push({
140
+ what: "Architecture pattern could not be classified",
141
+ why: "Repo structure does not match known patterns (monorepo, library, product). Results may have misidentified primary systems.",
142
+ });
143
+ }
144
+ if (!context.claudeMdContent) {
145
+ gaps.push({
146
+ what: "No CLAUDE.md found",
147
+ why: "Non-obvious architectural decisions are not documented in a machine-readable way.",
148
+ });
149
+ }
150
+ const noReadme = systems.filter((s) => systemReadmes[s.id]?.bestDescriptionSource == null && s.tier !== "support");
151
+ if (noReadme.length > 0) {
152
+ gaps.push({
153
+ what: `${noReadme.length} system${noReadme.length > 1 ? "s" : ""} have no README: ${noReadme.map((s) => s.name).join(", ")}`,
154
+ why: "Descriptions for these systems come from Memor's structural analysis, not human-written docs.",
155
+ });
156
+ }
157
+ if (systems.length <= 2 && analysis.summary.totalFiles > 100) {
158
+ gaps.push({
159
+ what: "Single-package repo — internal structure not visible at system level",
160
+ why: "All code shares one package.json. Drill into the system to see folder-level structure.",
161
+ });
162
+ }
163
+ const connected = systems.filter((s) => s.incomingCount > 0 || s.outgoingCount > 0).length;
164
+ const ratio = systems.length > 0 ? connected / systems.length : 0;
165
+ if (ratio < 0.4 && systems.length > 3) {
166
+ gaps.push({
167
+ what: "Less than 40% of systems have detected connections",
168
+ why: "Connections are detected from import statements across package boundaries. Dynamic imports and runtime dependencies are not detected.",
169
+ });
170
+ }
171
+ return gaps;
172
+ }
173
+ // ── Helpers ───────────────────────────────────────────────────────────
174
+ function firstSentence(text) {
175
+ const m = text.match(/^[^.!?]+[.!?]/);
176
+ return m ? m[0].trim() : text.split(" ").slice(0, 12).join(" ");
177
+ }
178
+ //# sourceMappingURL=buildTextSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTextSummary.js","sourceRoot":"","sources":["../../src/builders/buildTextSummary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { MemorSystem } from "../types";
2
+ export type StartPathResult = {
3
+ path?: string;
4
+ reason?: string;
5
+ confidence?: "high" | "medium" | "fallback";
6
+ };
7
+ /**
8
+ * Single "open this first" path with explanation.
9
+ */
10
+ export declare function deriveRecommendedStartPath(system: MemorSystem): StartPathResult;
11
+ //# sourceMappingURL=deriveRecommendedStartPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deriveRecommendedStartPath.d.ts","sourceRoot":"","sources":["../../src/builders/deriveRecommendedStartPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAc,MAAM,UAAU,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC7C,CAAC;AA4GF;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CA2C/E"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deriveRecommendedStartPath = deriveRecommendedStartPath;
4
+ function pathRankForType(pathNorm, systemType) {
5
+ const p = pathNorm.replace(/\/+$/, "");
6
+ const webFirst = [
7
+ /(^|\/)app\/layout\.(tsx|jsx|ts|js)$/,
8
+ /(^|\/)app\/page\.(tsx|jsx|ts|js)$/,
9
+ /(^|\/)src\/app\/layout\.(tsx|jsx|ts|js)$/,
10
+ /(^|\/)src\/app\/page\.(tsx|jsx|ts|js)$/,
11
+ /(^|\/)pages\/_app\.(tsx|jsx|ts|js)$/,
12
+ /(^|\/)pages\/index\.(tsx|jsx|ts|js)$/,
13
+ /(^|\/)src\/pages\/_app\.(tsx|jsx|ts|js)$/,
14
+ /(^|\/)src\/pages\/index\.(tsx|jsx|ts|js)$/,
15
+ /(^|\/)src\/main\.(tsx|jsx)$/,
16
+ /(^|\/)src\/index\.(tsx|jsx)$/,
17
+ /(^|\/)index\.html$/,
18
+ ];
19
+ const apiFirst = [
20
+ /(^|\/)src\/cli\.(ts|js|mts|cts)$/,
21
+ /(^|\/)src\/main\.(ts|js|mts|cts)$/,
22
+ /(^|\/)src\/server\.(ts|js)$/,
23
+ /(^|\/)src\/index\.(ts|js|mts|cts)$/,
24
+ /(^|\/)cli\.(ts|js|mts|cts)$/,
25
+ /(^|\/)server\.(ts|js)$/,
26
+ /(^|\/)main\.(ts|js|mts|cts)$/,
27
+ /(^|\/)index\.(ts|js|mts|cts)$/,
28
+ ];
29
+ const libFirst = [
30
+ /(^|\/)src\/index\.(ts|tsx|js|jsx)$/,
31
+ /(^|\/)index\.(ts|tsx|js|jsx)$/,
32
+ ];
33
+ const infraFirst = [/docker-compose\.ya?ml$/, /(^|\/)Dockerfile$/];
34
+ const pick = (patterns, base) => {
35
+ for (let i = 0; i < patterns.length; i++) {
36
+ if (patterns[i].test(p))
37
+ return base - i;
38
+ }
39
+ return 0;
40
+ };
41
+ if (systemType === "web-app" || systemType === "docs-site") {
42
+ const w = pick(webFirst, 100);
43
+ if (w)
44
+ return w;
45
+ }
46
+ if (systemType === "api-service" || systemType === "worker") {
47
+ const a = pick(apiFirst, 95);
48
+ if (a)
49
+ return a;
50
+ }
51
+ if (systemType === "ui-library" || systemType === "shared-package") {
52
+ const l = pick(libFirst, 88);
53
+ if (l)
54
+ return l;
55
+ }
56
+ if (systemType === "infra") {
57
+ const i = pick(infraFirst, 92);
58
+ if (i)
59
+ return i;
60
+ }
61
+ if (systemType === "unknown") {
62
+ return Math.max(pick(webFirst, 85), pick(apiFirst, 85), pick(libFirst, 80));
63
+ }
64
+ return 0;
65
+ }
66
+ function entryScore(ep, systemType) {
67
+ const base = pathRankForType(ep.path, systemType);
68
+ if (ep.path.endsWith("package.json") || /(^|\/)package\.json$/.test(ep.path))
69
+ return 12 + ep.confidence * 8;
70
+ if (ep.kind === "docs" && ep.path.endsWith("/"))
71
+ return 70 + ep.confidence * 10;
72
+ // Source anchor directories (non-JS roots) should rank above package.json
73
+ if (base === 0 && ep.confidence > 0 && ep.kind === "library") {
74
+ return 30 + ep.confidence * 20;
75
+ }
76
+ return base + ep.confidence * 15;
77
+ }
78
+ function isPkgJson(p) {
79
+ return p.endsWith("package.json") || p.endsWith("/package.json");
80
+ }
81
+ function confidenceLabel(ep, score) {
82
+ if (isPkgJson(ep.path))
83
+ return "fallback";
84
+ if (score >= 70 || ep.confidence >= 0.7)
85
+ return "high";
86
+ if (score >= 30 || ep.confidence >= 0.45)
87
+ return "medium";
88
+ return "fallback";
89
+ }
90
+ function reasonLabel(ep) {
91
+ if (isPkgJson(ep.path)) {
92
+ return "No stronger runtime or source anchor was found, so manifest fallback was used.";
93
+ }
94
+ return ep.reason;
95
+ }
96
+ /**
97
+ * Single "open this first" path with explanation.
98
+ */
99
+ function deriveRecommendedStartPath(system) {
100
+ if (system.entryPoints.length === 0)
101
+ return {};
102
+ if (system.systemTier === "support") {
103
+ const nonPkg = system.entryPoints.filter((e) => !isPkgJson(e.path));
104
+ if (nonPkg.length === 0)
105
+ return {};
106
+ }
107
+ const sorted = [...system.entryPoints].sort((a, b) => {
108
+ const sb = entryScore(b, system.type);
109
+ const sa = entryScore(a, system.type);
110
+ if (sb !== sa)
111
+ return sb - sa;
112
+ return b.confidence - a.confidence;
113
+ });
114
+ const best = sorted[0];
115
+ const bestScore = entryScore(best, system.type);
116
+ if (isPkgJson(best.path)) {
117
+ const alt = sorted.find((e) => !isPkgJson(e.path) && entryScore(e, system.type) > 28);
118
+ if (alt) {
119
+ const altScore = entryScore(alt, system.type);
120
+ return {
121
+ path: alt.path,
122
+ reason: reasonLabel(alt),
123
+ confidence: confidenceLabel(alt, altScore),
124
+ };
125
+ }
126
+ if (system.systemTier === "support")
127
+ return {};
128
+ return {
129
+ path: best.path,
130
+ reason: reasonLabel(best),
131
+ confidence: "fallback",
132
+ };
133
+ }
134
+ return {
135
+ path: best.path,
136
+ reason: reasonLabel(best),
137
+ confidence: confidenceLabel(best, bestScore),
138
+ };
139
+ }
140
+ //# sourceMappingURL=deriveRecommendedStartPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deriveRecommendedStartPath.js","sourceRoot":"","sources":["../../src/builders/deriveRecommendedStartPath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { MemorSystem, RuntimeRole } from "../types";
2
+ import { type RankingContext } from "./systemRanking";
3
+ export declare function deriveRuntimeRole(system: MemorSystem, ctx: RankingContext): RuntimeRole;
4
+ //# sourceMappingURL=deriveRuntimeRole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deriveRuntimeRole.d.ts","sourceRoot":"","sources":["../../src/builders/deriveRuntimeRole.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,cAAc,GAClB,WAAW,CA4Bb"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deriveRuntimeRole = deriveRuntimeRole;
4
+ const systemRanking_1 = require("./systemRanking");
5
+ function deriveRuntimeRole(system, ctx) {
6
+ if ((0, systemRanking_1.isLikelySupportOnlyPackageName)(ctx.candidateName))
7
+ return "support";
8
+ if (system.type === "ui-library" || system.type === "shared-package")
9
+ return "consumable";
10
+ if (!system.recommendedStartPath)
11
+ return "consumable";
12
+ if (system.type === "unknown")
13
+ return "consumable";
14
+ if (system.type === "infra") {
15
+ const hasCodeEntry = /\.(ts|js|py|go|rs|rb|php)$/.test(system.recommendedStartPath);
16
+ return hasCodeEntry ? "runnable" : "support";
17
+ }
18
+ if (ctx.underPackages) {
19
+ const tech = system.detectedTech ?? [];
20
+ const isUnmistakableStandaloneApp = tech.some((t) => /^electron$/i.test(t)) ||
21
+ tech.some((t) => /^capacitor$/i.test(t)) ||
22
+ (system.type === "api-service" && tech.some((t) => /^NestJS$/i.test(t)));
23
+ if (!isUnmistakableStandaloneApp) {
24
+ if (system.type === "api-service" || system.type === "web-app")
25
+ return "consumable";
26
+ }
27
+ }
28
+ return "runnable";
29
+ }
30
+ //# sourceMappingURL=deriveRuntimeRole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deriveRuntimeRole.js","sourceRoot":"","sources":["../../src/builders/deriveRuntimeRole.ts"],"names":[],"mappings":";;AAMA,8CA+BC;AApCD,mDAGyB;AAEzB,SAAgB,iBAAiB,CAC/B,MAAmB,EACnB,GAAmB;IAEnB,IAAI,IAAA,8CAA8B,EAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IAExE,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAClE,OAAO,YAAY,CAAC;IAEtB,IAAI,CAAC,MAAM,CAAC,oBAAoB;QAAE,OAAO,YAAY,CAAC;IAEtD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAEnD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpF,OAAO,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;QACvC,MAAM,2BAA2B,GAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAC5D,OAAO,YAAY,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * detectRunCommands — zero-LLM extraction of runnable commands from repo manifests.
3
+ *
4
+ * Priority order: package.json → Makefile → docker-compose → turbo.json
5
+ * Selects the single best representative per category (max 6 total).
6
+ * Turbo internal tasks (#) and package-scoped scripts (@pkg/) are discarded.
7
+ */
8
+ export type RunCommandCategory = "start" | "build" | "test" | "lint" | "db" | "docker" | "other";
9
+ export interface RunCommand {
10
+ label: string;
11
+ command: string;
12
+ source: string;
13
+ category: RunCommandCategory;
14
+ }
15
+ export declare function detectRunCommands(repoRoot: string): Promise<RunCommand[]>;
16
+ //# sourceMappingURL=detectRunCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectRunCommands.d.ts","sourceRoot":"","sources":["../../src/builders/detectRunCommands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjG,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAqMD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA8B/E"}