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.
- package/LICENSE +21 -0
- package/README.md +109 -0
- package/dist/IntentionalStructure/index.d.ts +13 -0
- package/dist/IntentionalStructure/index.d.ts.map +1 -0
- package/dist/IntentionalStructure/index.js +46 -0
- package/dist/IntentionalStructure/index.js.map +1 -0
- package/dist/IntentionalStructure/parseCompose.d.ts +13 -0
- package/dist/IntentionalStructure/parseCompose.d.ts.map +1 -0
- package/dist/IntentionalStructure/parseCompose.js +234 -0
- package/dist/IntentionalStructure/parseCompose.js.map +1 -0
- package/dist/IntentionalStructure/parseDeployConfigs.d.ts +7 -0
- package/dist/IntentionalStructure/parseDeployConfigs.d.ts.map +1 -0
- package/dist/IntentionalStructure/parseDeployConfigs.js +168 -0
- package/dist/IntentionalStructure/parseDeployConfigs.js.map +1 -0
- package/dist/IntentionalStructure/parseEnvWiring.d.ts +7 -0
- package/dist/IntentionalStructure/parseEnvWiring.d.ts.map +1 -0
- package/dist/IntentionalStructure/parseEnvWiring.js +159 -0
- package/dist/IntentionalStructure/parseEnvWiring.js.map +1 -0
- package/dist/IntentionalStructure/parseWorkspaces.d.ts +8 -0
- package/dist/IntentionalStructure/parseWorkspaces.d.ts.map +1 -0
- package/dist/IntentionalStructure/parseWorkspaces.js +179 -0
- package/dist/IntentionalStructure/parseWorkspaces.js.map +1 -0
- package/dist/IntentionalStructure/types.d.ts +34 -0
- package/dist/IntentionalStructure/types.d.ts.map +1 -0
- package/dist/IntentionalStructure/types.js +8 -0
- package/dist/IntentionalStructure/types.js.map +1 -0
- package/dist/RepoTypeDetection/applyRepoModeConsistency.d.ts +11 -0
- package/dist/RepoTypeDetection/applyRepoModeConsistency.d.ts.map +1 -0
- package/dist/RepoTypeDetection/applyRepoModeConsistency.js +53 -0
- package/dist/RepoTypeDetection/applyRepoModeConsistency.js.map +1 -0
- package/dist/RepoTypeDetection/detectAppArchetype.d.ts +12 -0
- package/dist/RepoTypeDetection/detectAppArchetype.d.ts.map +1 -0
- package/dist/RepoTypeDetection/detectAppArchetype.js +162 -0
- package/dist/RepoTypeDetection/detectAppArchetype.js.map +1 -0
- package/dist/RepoTypeDetection/detectPackageArchetype.d.ts +10 -0
- package/dist/RepoTypeDetection/detectPackageArchetype.d.ts.map +1 -0
- package/dist/RepoTypeDetection/detectPackageArchetype.js +149 -0
- package/dist/RepoTypeDetection/detectPackageArchetype.js.map +1 -0
- package/dist/RepoTypeDetection/detectRepoCenterSystems.d.ts +11 -0
- package/dist/RepoTypeDetection/detectRepoCenterSystems.d.ts.map +1 -0
- package/dist/RepoTypeDetection/detectRepoCenterSystems.js +123 -0
- package/dist/RepoTypeDetection/detectRepoCenterSystems.js.map +1 -0
- package/dist/RepoTypeDetection/detectRepoMode.d.ts +16 -0
- package/dist/RepoTypeDetection/detectRepoMode.d.ts.map +1 -0
- package/dist/RepoTypeDetection/detectRepoMode.js +338 -0
- package/dist/RepoTypeDetection/detectRepoMode.js.map +1 -0
- package/dist/RepoTypeDetection/detectRepoSignals.d.ts +13 -0
- package/dist/RepoTypeDetection/detectRepoSignals.d.ts.map +1 -0
- package/dist/RepoTypeDetection/detectRepoSignals.js +451 -0
- package/dist/RepoTypeDetection/detectRepoSignals.js.map +1 -0
- package/dist/RepoTypeDetection/inferSupportRole.d.ts +8 -0
- package/dist/RepoTypeDetection/inferSupportRole.d.ts.map +1 -0
- package/dist/RepoTypeDetection/inferSupportRole.js +177 -0
- package/dist/RepoTypeDetection/inferSupportRole.js.map +1 -0
- package/dist/RuntimeInference/detectEnvConsumers.d.ts +7 -0
- package/dist/RuntimeInference/detectEnvConsumers.d.ts.map +1 -0
- package/dist/RuntimeInference/detectEnvConsumers.js +108 -0
- package/dist/RuntimeInference/detectEnvConsumers.js.map +1 -0
- package/dist/RuntimeInference/detectHttpEdges.d.ts +4 -0
- package/dist/RuntimeInference/detectHttpEdges.d.ts.map +1 -0
- package/dist/RuntimeInference/detectHttpEdges.js +146 -0
- package/dist/RuntimeInference/detectHttpEdges.js.map +1 -0
- package/dist/RuntimeInference/detectOrmConsumers.d.ts +5 -0
- package/dist/RuntimeInference/detectOrmConsumers.d.ts.map +1 -0
- package/dist/RuntimeInference/detectOrmConsumers.js +117 -0
- package/dist/RuntimeInference/detectOrmConsumers.js.map +1 -0
- package/dist/RuntimeInference/detectProxyRewrites.d.ts +5 -0
- package/dist/RuntimeInference/detectProxyRewrites.d.ts.map +1 -0
- package/dist/RuntimeInference/detectProxyRewrites.js +137 -0
- package/dist/RuntimeInference/detectProxyRewrites.js.map +1 -0
- package/dist/RuntimeInference/detectTrpcEdges.d.ts +4 -0
- package/dist/RuntimeInference/detectTrpcEdges.d.ts.map +1 -0
- package/dist/RuntimeInference/detectTrpcEdges.js +137 -0
- package/dist/RuntimeInference/detectTrpcEdges.js.map +1 -0
- package/dist/RuntimeInference/index.d.ts +17 -0
- package/dist/RuntimeInference/index.d.ts.map +1 -0
- package/dist/RuntimeInference/index.js +32 -0
- package/dist/RuntimeInference/index.js.map +1 -0
- package/dist/RuntimeInference/types.d.ts +8 -0
- package/dist/RuntimeInference/types.d.ts.map +1 -0
- package/dist/RuntimeInference/types.js +3 -0
- package/dist/RuntimeInference/types.js.map +1 -0
- package/dist/SystemSynthesis/index.d.ts +27 -0
- package/dist/SystemSynthesis/index.d.ts.map +1 -0
- package/dist/SystemSynthesis/index.js +31 -0
- package/dist/SystemSynthesis/index.js.map +1 -0
- package/dist/SystemSynthesis/mergeLayerOutputs.d.ts +13 -0
- package/dist/SystemSynthesis/mergeLayerOutputs.d.ts.map +1 -0
- package/dist/SystemSynthesis/mergeLayerOutputs.js +220 -0
- package/dist/SystemSynthesis/mergeLayerOutputs.js.map +1 -0
- package/dist/SystemSynthesis/stampDeterministic.d.ts +11 -0
- package/dist/SystemSynthesis/stampDeterministic.d.ts.map +1 -0
- package/dist/SystemSynthesis/stampDeterministic.js +177 -0
- package/dist/SystemSynthesis/stampDeterministic.js.map +1 -0
- package/dist/SystemSynthesis/synthesize.d.ts +15 -0
- package/dist/SystemSynthesis/synthesize.d.ts.map +1 -0
- package/dist/SystemSynthesis/synthesize.js +258 -0
- package/dist/SystemSynthesis/synthesize.js.map +1 -0
- package/dist/SystemSynthesis/types.d.ts +110 -0
- package/dist/SystemSynthesis/types.d.ts.map +1 -0
- package/dist/SystemSynthesis/types.js +12 -0
- package/dist/SystemSynthesis/types.js.map +1 -0
- package/dist/amGeneration/buildFlowGraph.d.ts +39 -0
- package/dist/amGeneration/buildFlowGraph.d.ts.map +1 -0
- package/dist/amGeneration/buildFlowGraph.js +643 -0
- package/dist/amGeneration/buildFlowGraph.js.map +1 -0
- package/dist/amGeneration/enrichAMEdges.d.ts +16 -0
- package/dist/amGeneration/enrichAMEdges.d.ts.map +1 -0
- package/dist/amGeneration/enrichAMEdges.js +291 -0
- package/dist/amGeneration/enrichAMEdges.js.map +1 -0
- package/dist/amGeneration/generateAM.d.ts +23 -0
- package/dist/amGeneration/generateAM.d.ts.map +1 -0
- package/dist/amGeneration/generateAM.js +131 -0
- package/dist/amGeneration/generateAM.js.map +1 -0
- package/dist/amGeneration/generateAMForRepo.d.ts +6 -0
- package/dist/amGeneration/generateAMForRepo.d.ts.map +1 -0
- package/dist/amGeneration/generateAMForRepo.js +130 -0
- package/dist/amGeneration/generateAMForRepo.js.map +1 -0
- package/dist/amGeneration/generateFlows.d.ts +27 -0
- package/dist/amGeneration/generateFlows.d.ts.map +1 -0
- package/dist/amGeneration/generateFlows.js +320 -0
- package/dist/amGeneration/generateFlows.js.map +1 -0
- package/dist/amGeneration/promptBuilder.d.ts +24 -0
- package/dist/amGeneration/promptBuilder.d.ts.map +1 -0
- package/dist/amGeneration/promptBuilder.js +299 -0
- package/dist/amGeneration/promptBuilder.js.map +1 -0
- package/dist/amGeneration/selectStrategicFiles.d.ts +42 -0
- package/dist/amGeneration/selectStrategicFiles.d.ts.map +1 -0
- package/dist/amGeneration/selectStrategicFiles.js +672 -0
- package/dist/amGeneration/selectStrategicFiles.js.map +1 -0
- package/dist/amGeneration/types.d.ts +83 -0
- package/dist/amGeneration/types.d.ts.map +1 -0
- package/dist/amGeneration/types.js +9 -0
- package/dist/amGeneration/types.js.map +1 -0
- package/dist/amSections.d.ts +29 -0
- package/dist/amSections.d.ts.map +1 -0
- package/dist/amSections.js +424 -0
- package/dist/amSections.js.map +1 -0
- package/dist/analysis/analysisCache.d.ts +4 -0
- package/dist/analysis/analysisCache.d.ts.map +1 -0
- package/dist/analysis/analysisCache.js +92 -0
- package/dist/analysis/analysisCache.js.map +1 -0
- package/dist/analysis/buildBranchStory.d.ts +95 -0
- package/dist/analysis/buildBranchStory.d.ts.map +1 -0
- package/dist/analysis/buildBranchStory.js +1264 -0
- package/dist/analysis/buildBranchStory.js.map +1 -0
- package/dist/analysis/buildDetailedFileXRay.d.ts +49 -0
- package/dist/analysis/buildDetailedFileXRay.d.ts.map +1 -0
- package/dist/analysis/buildDetailedFileXRay.js +607 -0
- package/dist/analysis/buildDetailedFileXRay.js.map +1 -0
- package/dist/analysis/buildFileXRay.d.ts +35 -0
- package/dist/analysis/buildFileXRay.d.ts.map +1 -0
- package/dist/analysis/buildFileXRay.js +305 -0
- package/dist/analysis/buildFileXRay.js.map +1 -0
- package/dist/analysis/classifySilentKiller.d.ts +14 -0
- package/dist/analysis/classifySilentKiller.d.ts.map +1 -0
- package/dist/analysis/classifySilentKiller.js +235 -0
- package/dist/analysis/classifySilentKiller.js.map +1 -0
- package/dist/analysis/diffChunks.d.ts +21 -0
- package/dist/analysis/diffChunks.d.ts.map +1 -0
- package/dist/analysis/diffChunks.js +302 -0
- package/dist/analysis/diffChunks.js.map +1 -0
- package/dist/analysis/extractRouteMap.d.ts +49 -0
- package/dist/analysis/extractRouteMap.d.ts.map +1 -0
- package/dist/analysis/extractRouteMap.js +354 -0
- package/dist/analysis/extractRouteMap.js.map +1 -0
- package/dist/analysis/generateFileInsight.d.ts +19 -0
- package/dist/analysis/generateFileInsight.d.ts.map +1 -0
- package/dist/analysis/generateFileInsight.js +103 -0
- package/dist/analysis/generateFileInsight.js.map +1 -0
- package/dist/analysis/llmXRay.d.ts +39 -0
- package/dist/analysis/llmXRay.d.ts.map +1 -0
- package/dist/analysis/llmXRay.js +208 -0
- package/dist/analysis/llmXRay.js.map +1 -0
- package/dist/analysis/simulateFailure.d.ts +44 -0
- package/dist/analysis/simulateFailure.d.ts.map +1 -0
- package/dist/analysis/simulateFailure.js +407 -0
- package/dist/analysis/simulateFailure.js.map +1 -0
- package/dist/anthropic.d.ts +3 -0
- package/dist/anthropic.d.ts.map +1 -0
- package/dist/anthropic.js +16 -0
- package/dist/anthropic.js.map +1 -0
- package/dist/app/buildAppPage.d.ts +34 -0
- package/dist/app/buildAppPage.d.ts.map +1 -0
- package/dist/app/buildAppPage.js +3085 -0
- package/dist/app/buildAppPage.js.map +1 -0
- package/dist/app-bundle.js +122 -0
- package/dist/buildAppData.d.ts +3 -0
- package/dist/buildAppData.d.ts.map +1 -0
- package/dist/buildAppData.js +207 -0
- package/dist/buildAppData.js.map +1 -0
- package/dist/builders/analyzeRepo.d.ts +25 -0
- package/dist/builders/analyzeRepo.d.ts.map +1 -0
- package/dist/builders/analyzeRepo.js +873 -0
- package/dist/builders/analyzeRepo.js.map +1 -0
- package/dist/builders/buildSystemConnections.d.ts +3 -0
- package/dist/builders/buildSystemConnections.d.ts.map +1 -0
- package/dist/builders/buildSystemConnections.js +388 -0
- package/dist/builders/buildSystemConnections.js.map +1 -0
- package/dist/builders/buildTextSummary.d.ts +61 -0
- package/dist/builders/buildTextSummary.d.ts.map +1 -0
- package/dist/builders/buildTextSummary.js +178 -0
- package/dist/builders/buildTextSummary.js.map +1 -0
- package/dist/builders/deriveRecommendedStartPath.d.ts +11 -0
- package/dist/builders/deriveRecommendedStartPath.d.ts.map +1 -0
- package/dist/builders/deriveRecommendedStartPath.js +140 -0
- package/dist/builders/deriveRecommendedStartPath.js.map +1 -0
- package/dist/builders/deriveRuntimeRole.d.ts +4 -0
- package/dist/builders/deriveRuntimeRole.d.ts.map +1 -0
- package/dist/builders/deriveRuntimeRole.js +30 -0
- package/dist/builders/deriveRuntimeRole.js.map +1 -0
- package/dist/builders/detectRunCommands.d.ts +16 -0
- package/dist/builders/detectRunCommands.d.ts.map +1 -0
- package/dist/builders/detectRunCommands.js +285 -0
- package/dist/builders/detectRunCommands.js.map +1 -0
- package/dist/builders/generateSystemNarrative.d.ts +12 -0
- package/dist/builders/generateSystemNarrative.d.ts.map +1 -0
- package/dist/builders/generateSystemNarrative.js +474 -0
- package/dist/builders/generateSystemNarrative.js.map +1 -0
- package/dist/builders/gitLogParser.d.ts +15 -0
- package/dist/builders/gitLogParser.d.ts.map +1 -0
- package/dist/builders/gitLogParser.js +116 -0
- package/dist/builders/gitLogParser.js.map +1 -0
- package/dist/builders/readRepoContext.d.ts +30 -0
- package/dist/builders/readRepoContext.d.ts.map +1 -0
- package/dist/builders/readRepoContext.js +323 -0
- package/dist/builders/readRepoContext.js.map +1 -0
- package/dist/builders/readSystemReadme.d.ts +39 -0
- package/dist/builders/readSystemReadme.d.ts.map +1 -0
- package/dist/builders/readSystemReadme.js +133 -0
- package/dist/builders/readSystemReadme.js.map +1 -0
- package/dist/builders/systemRanking.d.ts +24 -0
- package/dist/builders/systemRanking.d.ts.map +1 -0
- package/dist/builders/systemRanking.js +153 -0
- package/dist/builders/systemRanking.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +170 -0
- package/dist/cli.js.map +1 -0
- package/dist/detectors/applyRunnableConfidenceGate.d.ts +8 -0
- package/dist/detectors/applyRunnableConfidenceGate.d.ts.map +1 -0
- package/dist/detectors/applyRunnableConfidenceGate.js +166 -0
- package/dist/detectors/applyRunnableConfidenceGate.js.map +1 -0
- package/dist/detectors/classifySystemType.d.ts +17 -0
- package/dist/detectors/classifySystemType.d.ts.map +1 -0
- package/dist/detectors/classifySystemType.js +460 -0
- package/dist/detectors/classifySystemType.js.map +1 -0
- package/dist/detectors/detectAppInternalUnits.d.ts +20 -0
- package/dist/detectors/detectAppInternalUnits.d.ts.map +1 -0
- package/dist/detectors/detectAppInternalUnits.js +454 -0
- package/dist/detectors/detectAppInternalUnits.js.map +1 -0
- package/dist/detectors/detectBlocks.d.ts +6 -0
- package/dist/detectors/detectBlocks.d.ts.map +1 -0
- package/dist/detectors/detectBlocks.js +354 -0
- package/dist/detectors/detectBlocks.js.map +1 -0
- package/dist/detectors/detectComposeServices.d.ts +23 -0
- package/dist/detectors/detectComposeServices.d.ts.map +1 -0
- package/dist/detectors/detectComposeServices.js +255 -0
- package/dist/detectors/detectComposeServices.js.map +1 -0
- package/dist/detectors/detectEntryPoints.d.ts +6 -0
- package/dist/detectors/detectEntryPoints.d.ts.map +1 -0
- package/dist/detectors/detectEntryPoints.js +376 -0
- package/dist/detectors/detectEntryPoints.js.map +1 -0
- package/dist/detectors/detectSubsystems.d.ts +6 -0
- package/dist/detectors/detectSubsystems.d.ts.map +1 -0
- package/dist/detectors/detectSubsystems.js +376 -0
- package/dist/detectors/detectSubsystems.js.map +1 -0
- package/dist/detectors/detectSystemCandidates.d.ts +3 -0
- package/dist/detectors/detectSystemCandidates.d.ts.map +1 -0
- package/dist/detectors/detectSystemCandidates.js +577 -0
- package/dist/detectors/detectSystemCandidates.js.map +1 -0
- package/dist/devWatcher.d.ts +14 -0
- package/dist/devWatcher.d.ts.map +1 -0
- package/dist/devWatcher.js +96 -0
- package/dist/devWatcher.js.map +1 -0
- package/dist/graph/buildCodebaseGraph.d.ts +3 -0
- package/dist/graph/buildCodebaseGraph.d.ts.map +1 -0
- package/dist/graph/buildCodebaseGraph.js +602 -0
- package/dist/graph/buildCodebaseGraph.js.map +1 -0
- package/dist/graph/buildLLMPayload.d.ts +89 -0
- package/dist/graph/buildLLMPayload.d.ts.map +1 -0
- package/dist/graph/buildLLMPayload.js +715 -0
- package/dist/graph/buildLLMPayload.js.map +1 -0
- package/dist/graph/callLLM.d.ts +16 -0
- package/dist/graph/callLLM.d.ts.map +1 -0
- package/dist/graph/callLLM.js +274 -0
- package/dist/graph/callLLM.js.map +1 -0
- package/dist/graph/types.d.ts +76 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +5 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/graph/walkExports.d.ts +2 -0
- package/dist/graph/walkExports.d.ts.map +1 -0
- package/dist/graph/walkExports.js +172 -0
- package/dist/graph/walkExports.js.map +1 -0
- package/dist/heuristics/file-patterns.json +325 -0
- package/dist/heuristics/known-packages.json +1022 -0
- package/dist/heuristics/loader.d.ts +121 -0
- package/dist/heuristics/loader.d.ts.map +1 -0
- package/dist/heuristics/loader.js +196 -0
- package/dist/heuristics/loader.js.map +1 -0
- package/dist/heuristics/repo-mode-signals.json +248 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +3 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +356 -0
- package/dist/mcp.js.map +1 -0
- package/dist/scanner/buildImportGraph.d.ts +23 -0
- package/dist/scanner/buildImportGraph.d.ts.map +1 -0
- package/dist/scanner/buildImportGraph.js +186 -0
- package/dist/scanner/buildImportGraph.js.map +1 -0
- package/dist/scanner/detectDBOps.d.ts +21 -0
- package/dist/scanner/detectDBOps.d.ts.map +1 -0
- package/dist/scanner/detectDBOps.js +346 -0
- package/dist/scanner/detectDBOps.js.map +1 -0
- package/dist/scanner/detectOutbound.d.ts +6 -0
- package/dist/scanner/detectOutbound.d.ts.map +1 -0
- package/dist/scanner/detectOutbound.js +101 -0
- package/dist/scanner/detectOutbound.js.map +1 -0
- package/dist/scanner/detectRepoPurpose.d.ts +19 -0
- package/dist/scanner/detectRepoPurpose.d.ts.map +1 -0
- package/dist/scanner/detectRepoPurpose.js +335 -0
- package/dist/scanner/detectRepoPurpose.js.map +1 -0
- package/dist/scanner/detectRoutes.d.ts +22 -0
- package/dist/scanner/detectRoutes.d.ts.map +1 -0
- package/dist/scanner/detectRoutes.js +406 -0
- package/dist/scanner/detectRoutes.js.map +1 -0
- package/dist/scanner/filterNoise.d.ts +4 -0
- package/dist/scanner/filterNoise.d.ts.map +1 -0
- package/dist/scanner/filterNoise.js +95 -0
- package/dist/scanner/filterNoise.js.map +1 -0
- package/dist/scanner/loadTsAliases.d.ts +20 -0
- package/dist/scanner/loadTsAliases.d.ts.map +1 -0
- package/dist/scanner/loadTsAliases.js +135 -0
- package/dist/scanner/loadTsAliases.js.map +1 -0
- package/dist/scanner/routeHandlers.d.ts +15 -0
- package/dist/scanner/routeHandlers.d.ts.map +1 -0
- package/dist/scanner/routeHandlers.js +154 -0
- package/dist/scanner/routeHandlers.js.map +1 -0
- package/dist/scanner/scanRepo.d.ts +10 -0
- package/dist/scanner/scanRepo.d.ts.map +1 -0
- package/dist/scanner/scanRepo.js +165 -0
- package/dist/scanner/scanRepo.js.map +1 -0
- package/dist/scanner/walkImports.d.ts +14 -0
- package/dist/scanner/walkImports.d.ts.map +1 -0
- package/dist/scanner/walkImports.js +162 -0
- package/dist/scanner/walkImports.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +956 -0
- package/dist/server.js.map +1 -0
- package/dist/session/diff.d.ts +4 -0
- package/dist/session/diff.d.ts.map +1 -0
- package/dist/session/diff.js +150 -0
- package/dist/session/diff.js.map +1 -0
- package/dist/session/snapshot.d.ts +5 -0
- package/dist/session/snapshot.d.ts.map +1 -0
- package/dist/session/snapshot.js +114 -0
- package/dist/session/snapshot.js.map +1 -0
- package/dist/session/store.d.ts +8 -0
- package/dist/session/store.d.ts.map +1 -0
- package/dist/session/store.js +101 -0
- package/dist/session/store.js.map +1 -0
- package/dist/session/types.d.ts +46 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +4 -0
- package/dist/session/types.js.map +1 -0
- package/dist/types.d.ts +350 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/file.d.ts +5 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +76 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/path.d.ts +7 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +62 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/text.d.ts +5 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +29 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/viewBuilders/buildSystemFolders.d.ts +39 -0
- package/dist/viewBuilders/buildSystemFolders.d.ts.map +1 -0
- package/dist/viewBuilders/buildSystemFolders.js +198 -0
- package/dist/viewBuilders/buildSystemFolders.js.map +1 -0
- package/dist/watcher/repoWatcher.d.ts +17 -0
- package/dist/watcher/repoWatcher.d.ts.map +1 -0
- package/dist/watcher/repoWatcher.js +87 -0
- package/dist/watcher/repoWatcher.js.map +1 -0
- package/package.json +102 -0
- package/public/memor_logo.svg +18 -0
- package/public/memor_transparent_logo.svg +25 -0
- package/public/tIcons/bun.svg +1 -0
- package/public/tIcons/css.svg +1 -0
- package/public/tIcons/docker.svg +3 -0
- package/public/tIcons/expressjs.svg +1 -0
- package/public/tIcons/html5.svg +6 -0
- package/public/tIcons/javascript.svg +1 -0
- package/public/tIcons/jest.svg +4 -0
- package/public/tIcons/json.svg +1 -0
- package/public/tIcons/markdown-light.svg +1 -0
- package/public/tIcons/nestjs.svg +1 -0
- package/public/tIcons/nextjs_icon_dark.svg +1 -0
- package/public/tIcons/npm.svg +1 -0
- package/public/tIcons/pnpm.svg +1 -0
- package/public/tIcons/prisma.svg +1 -0
- package/public/tIcons/react_dark.svg +11 -0
- package/public/tIcons/supabase.svg +15 -0
- package/public/tIcons/tailwindcss.svg +1 -0
- package/public/tIcons/turborepo-icon-light.svg +1 -0
- package/public/tIcons/typescript.svg +1 -0
- package/public/tIcons/vite.svg +1 -0
- package/public/tIcons/yarn.svg +1 -0
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* extractRouteMap — deterministic Next.js route scanner.
|
|
4
|
+
*
|
|
5
|
+
* Finds all route.ts (API routes) and page.tsx (page components),
|
|
6
|
+
* runs buildDetailedFileXRay on each to get handler signatures + call chains,
|
|
7
|
+
* and returns a compact RouteMap for use in flow generation.
|
|
8
|
+
*
|
|
9
|
+
* Zero LLM calls. Runs in ~100ms on a typical Next.js app.
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.extractRouteMap = extractRouteMap;
|
|
46
|
+
exports.serializeRouteMap = serializeRouteMap;
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const buildDetailedFileXRay_1 = require("./buildDetailedFileXRay");
|
|
50
|
+
const buildFlowGraph_1 = require("../amGeneration/buildFlowGraph");
|
|
51
|
+
// ── File path → route path ────────────────────────────────────────────────────
|
|
52
|
+
const HTTP_METHODS = new Set(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]);
|
|
53
|
+
function filePathToRoutePath(relPath) {
|
|
54
|
+
// Remove file extension and trailing /route or /page
|
|
55
|
+
let p = relPath
|
|
56
|
+
.replace(/\\/g, "/")
|
|
57
|
+
.replace(/\.(ts|tsx|js|jsx)$/, "")
|
|
58
|
+
.replace(/\/route$/, "")
|
|
59
|
+
.replace(/\/page$/, "");
|
|
60
|
+
// Strip leading app/ or pages/
|
|
61
|
+
p = p.replace(/^app\//, "/").replace(/^pages\//, "/");
|
|
62
|
+
if (!p.startsWith("/"))
|
|
63
|
+
p = "/" + p;
|
|
64
|
+
// Next.js: remove (group) segments like (marketing)
|
|
65
|
+
p = p.replace(/\/\([^)]+\)/g, "");
|
|
66
|
+
// Clean up double slashes
|
|
67
|
+
p = p.replace(/\/+/g, "/");
|
|
68
|
+
return p || "/";
|
|
69
|
+
}
|
|
70
|
+
// ── Scan helpers ──────────────────────────────────────────────────────────────
|
|
71
|
+
function findFiles(dir, pattern) {
|
|
72
|
+
const results = [];
|
|
73
|
+
if (!fs.existsSync(dir))
|
|
74
|
+
return results;
|
|
75
|
+
function walk(current) {
|
|
76
|
+
let entries;
|
|
77
|
+
try {
|
|
78
|
+
entries = fs.readdirSync(current, { withFileTypes: true });
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
for (const e of entries) {
|
|
84
|
+
if (e.name.startsWith(".") || e.name === "node_modules")
|
|
85
|
+
continue;
|
|
86
|
+
const full = path.join(current, e.name);
|
|
87
|
+
if (e.isDirectory()) {
|
|
88
|
+
walk(full);
|
|
89
|
+
}
|
|
90
|
+
else if (pattern.test(e.name)) {
|
|
91
|
+
results.push(full);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
walk(dir);
|
|
96
|
+
return results;
|
|
97
|
+
}
|
|
98
|
+
function buildCallChains(fns) {
|
|
99
|
+
const byName = new Map(fns.map(f => [f.name, f]));
|
|
100
|
+
const chains = [];
|
|
101
|
+
for (const fn of fns) {
|
|
102
|
+
for (const callee of fn.calls) {
|
|
103
|
+
chains.push({ from: fn.name, to: callee, external: false });
|
|
104
|
+
}
|
|
105
|
+
for (const ext of fn.externalCalls ?? []) {
|
|
106
|
+
chains.push({ from: fn.name, to: ext, external: true });
|
|
107
|
+
}
|
|
108
|
+
// One level deeper: resolve what fn.calls themselves call
|
|
109
|
+
for (const callee of fn.calls) {
|
|
110
|
+
const calleeFn = byName.get(callee);
|
|
111
|
+
if (!calleeFn)
|
|
112
|
+
continue;
|
|
113
|
+
for (const ext of calleeFn.externalCalls ?? []) {
|
|
114
|
+
chains.push({ from: callee, to: ext, external: true });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return chains;
|
|
119
|
+
}
|
|
120
|
+
// ── Main extractor ────────────────────────────────────────────────────────────
|
|
121
|
+
// ── Monorepo-aware Next.js root discovery ─────────────────────────────────────
|
|
122
|
+
function isNextJsRoot(dir) {
|
|
123
|
+
return (fs.existsSync(path.join(dir, "next.config.ts")) ||
|
|
124
|
+
fs.existsSync(path.join(dir, "next.config.js")) ||
|
|
125
|
+
fs.existsSync(path.join(dir, "next.config.mjs")) ||
|
|
126
|
+
fs.existsSync(path.join(dir, "next.config.cjs")));
|
|
127
|
+
}
|
|
128
|
+
function findNextJsRoots(repoRoot) {
|
|
129
|
+
const roots = [];
|
|
130
|
+
if (isNextJsRoot(repoRoot))
|
|
131
|
+
roots.push(repoRoot);
|
|
132
|
+
// Scan common monorepo parent dirs (apps/*, packages/*)
|
|
133
|
+
for (const parentName of ["apps", "packages"]) {
|
|
134
|
+
const parentDir = path.join(repoRoot, parentName);
|
|
135
|
+
if (!fs.existsSync(parentDir))
|
|
136
|
+
continue;
|
|
137
|
+
let entries;
|
|
138
|
+
try {
|
|
139
|
+
entries = fs.readdirSync(parentDir, { withFileTypes: true });
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
for (const e of entries) {
|
|
145
|
+
if (!e.isDirectory())
|
|
146
|
+
continue;
|
|
147
|
+
const subDir = path.join(parentDir, e.name);
|
|
148
|
+
if (isNextJsRoot(subDir))
|
|
149
|
+
roots.push(subDir);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Fallback: always include root even if no next.config found
|
|
153
|
+
if (roots.length === 0)
|
|
154
|
+
roots.push(repoRoot);
|
|
155
|
+
return roots;
|
|
156
|
+
}
|
|
157
|
+
// ── Background job scanner ────────────────────────────────────────────────────
|
|
158
|
+
function scanBackgroundJobs(repoRoot) {
|
|
159
|
+
const jobs = [];
|
|
160
|
+
const CODE_RE = /\.(ts|tsx|js|jsx|mjs)$/;
|
|
161
|
+
// Patterns to detect
|
|
162
|
+
const CRON_RE = /(?:cron\.schedule|schedule\(|@Cron\()\s*['"`]([^'"`]+)['"`]/g;
|
|
163
|
+
const QUEUE_RE = /\.(?:process|add|subscribe|consume|on)\s*\(\s*['"`]([^'"`]+)['"`]/g;
|
|
164
|
+
const INTERVAL_RE = /setInterval\s*\([^,]+,\s*(\d+)/g;
|
|
165
|
+
const LISTENER_RE = /(?:emitter|bus|eventBus|rabbit|nats)\.on\s*\(\s*['"`]([^'"`]+)['"`]/g;
|
|
166
|
+
const WORKER_RE = /new\s+(?:Worker|BullWorker|Queue)\s*\(\s*['"`]([^'"`]+)['"`]/g;
|
|
167
|
+
function walk(dir) {
|
|
168
|
+
let entries;
|
|
169
|
+
try {
|
|
170
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
for (const e of entries) {
|
|
176
|
+
if (e.name.startsWith(".") || e.name === "node_modules" || e.name === "dist")
|
|
177
|
+
continue;
|
|
178
|
+
const full = path.join(dir, e.name);
|
|
179
|
+
if (e.isDirectory()) {
|
|
180
|
+
walk(full);
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (!CODE_RE.test(e.name))
|
|
184
|
+
continue;
|
|
185
|
+
let src;
|
|
186
|
+
try {
|
|
187
|
+
src = fs.readFileSync(full, "utf8");
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
const relPath = path.relative(repoRoot, full).replace(/\\/g, "/");
|
|
193
|
+
const check = (re, kind, labelFn) => {
|
|
194
|
+
re.lastIndex = 0;
|
|
195
|
+
let m;
|
|
196
|
+
while ((m = re.exec(src)) !== null) {
|
|
197
|
+
const fnMatch = src.slice(0, m.index).match(/(?:function|async function|const|let)\s+([\w$]+)\s*(?:=|{)/g);
|
|
198
|
+
const handler = fnMatch ? fnMatch[fnMatch.length - 1].replace(/^.*?(?:function|const|let)\s+([\w$]+).*$/, "$1") : "handler";
|
|
199
|
+
jobs.push({ kind, filePath: relPath, trigger: labelFn(m), handlerName: handler });
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
check(CRON_RE, "cron", m => m[1]);
|
|
203
|
+
check(QUEUE_RE, "queue", m => m[1]);
|
|
204
|
+
check(LISTENER_RE, "event-listener", m => m[1]);
|
|
205
|
+
check(WORKER_RE, "worker", m => m[1]);
|
|
206
|
+
// setInterval: convert ms to human label
|
|
207
|
+
INTERVAL_RE.lastIndex = 0;
|
|
208
|
+
let im;
|
|
209
|
+
while ((im = INTERVAL_RE.exec(src)) !== null) {
|
|
210
|
+
const ms = parseInt(im[1]);
|
|
211
|
+
const label = ms >= 3_600_000 ? `every ${Math.round(ms / 3_600_000)}h`
|
|
212
|
+
: ms >= 60_000 ? `every ${Math.round(ms / 60_000)}min`
|
|
213
|
+
: `every ${ms}ms`;
|
|
214
|
+
jobs.push({ kind: "interval", filePath: relPath, trigger: label, handlerName: "setInterval" });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
walk(repoRoot);
|
|
219
|
+
return jobs;
|
|
220
|
+
}
|
|
221
|
+
function extractRouteMap(repoRoot) {
|
|
222
|
+
const nextRoots = findNextJsRoots(repoRoot);
|
|
223
|
+
const routeFiles = [];
|
|
224
|
+
const pageFiles = [];
|
|
225
|
+
for (const nextRoot of nextRoots) {
|
|
226
|
+
const appDir = path.join(nextRoot, "app");
|
|
227
|
+
const pagesDir = path.join(nextRoot, "pages");
|
|
228
|
+
routeFiles.push(...findFiles(appDir, /^route\.(ts|tsx|js|jsx)$/), ...findFiles(pagesDir, /^.*\.(ts|tsx|js|jsx)$/));
|
|
229
|
+
pageFiles.push(...findFiles(appDir, /^page\.(ts|tsx|js|jsx)$/), ...findFiles(pagesDir, /^(?!_app|_document|api\/).*\.(tsx|jsx)$/));
|
|
230
|
+
}
|
|
231
|
+
const filteredRouteFiles = routeFiles.filter(f => !f.includes("/node_modules/"));
|
|
232
|
+
const filteredPageFiles = pageFiles.filter(f => !f.includes("/node_modules/"));
|
|
233
|
+
const apiRoutes = [];
|
|
234
|
+
const pages = [];
|
|
235
|
+
// Process API routes
|
|
236
|
+
for (const absPath of filteredRouteFiles) {
|
|
237
|
+
// Skip pages/api/** that are in old router (treat as API routes)
|
|
238
|
+
const relPath = path.relative(repoRoot, absPath).replace(/\\/g, "/");
|
|
239
|
+
const routePath = filePathToRoutePath(relPath);
|
|
240
|
+
let xray;
|
|
241
|
+
try {
|
|
242
|
+
xray = (0, buildDetailedFileXRay_1.buildDetailedFileXRay)(absPath, repoRoot);
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
const httpHandlers = xray.functions.filter(f => HTTP_METHODS.has(f.name));
|
|
248
|
+
if (httpHandlers.length === 0)
|
|
249
|
+
continue; // not a route handler file
|
|
250
|
+
const handlers = httpHandlers.map(h => ({
|
|
251
|
+
method: h.name,
|
|
252
|
+
calls: h.calls,
|
|
253
|
+
externalCalls: h.externalCalls ?? [],
|
|
254
|
+
isAsync: h.isAsync,
|
|
255
|
+
}));
|
|
256
|
+
apiRoutes.push({
|
|
257
|
+
routePath,
|
|
258
|
+
filePath: relPath,
|
|
259
|
+
handlers,
|
|
260
|
+
callChains: buildCallChains(xray.functions),
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
// Process page routes
|
|
264
|
+
for (const absPath of filteredPageFiles) {
|
|
265
|
+
const relPath = path.relative(repoRoot, absPath).replace(/\\/g, "/");
|
|
266
|
+
const routePath = filePathToRoutePath(relPath);
|
|
267
|
+
let xray;
|
|
268
|
+
try {
|
|
269
|
+
xray = (0, buildDetailedFileXRay_1.buildDetailedFileXRay)(absPath, repoRoot);
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
const comp = xray.functions.find(f => f.kind === "component");
|
|
275
|
+
if (!comp)
|
|
276
|
+
continue;
|
|
277
|
+
pages.push({
|
|
278
|
+
routePath,
|
|
279
|
+
filePath: relPath,
|
|
280
|
+
componentName: comp.name,
|
|
281
|
+
calls: comp.calls,
|
|
282
|
+
externalCalls: comp.externalCalls ?? [],
|
|
283
|
+
stateVars: comp.renderAnalysis?.stateVars ?? [],
|
|
284
|
+
events: (comp.renderAnalysis?.eventsWired ?? []).map(e => e.event),
|
|
285
|
+
renders: comp.renderAnalysis?.renderedElements ?? [],
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
// If no Next.js API routes found, fall back to Express/NestJS entry point discovery
|
|
289
|
+
if (apiRoutes.length === 0) {
|
|
290
|
+
try {
|
|
291
|
+
const entryPoints = (0, buildFlowGraph_1.discoverEntryPoints)(repoRoot);
|
|
292
|
+
for (const ep of entryPoints) {
|
|
293
|
+
// Only include write paths and any route not already captured
|
|
294
|
+
apiRoutes.push({
|
|
295
|
+
routePath: ep.routePath,
|
|
296
|
+
filePath: path.relative(repoRoot, ep.absFile).replace(/\\/g, "/"),
|
|
297
|
+
handlers: [{ method: ep.method, calls: ep.handlerFn ? [ep.handlerFn] : [], externalCalls: [], isAsync: true }],
|
|
298
|
+
callChains: [],
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
catch { /* best-effort */ }
|
|
303
|
+
}
|
|
304
|
+
// Sort by route path for deterministic output
|
|
305
|
+
apiRoutes.sort((a, b) => a.routePath.localeCompare(b.routePath));
|
|
306
|
+
pages.sort((a, b) => a.routePath.localeCompare(b.routePath));
|
|
307
|
+
const backgroundJobs = scanBackgroundJobs(repoRoot);
|
|
308
|
+
return { apiRoutes, pages, backgroundJobs };
|
|
309
|
+
}
|
|
310
|
+
// ── Compact text serialization (for LLM prompt) ───────────────────────────────
|
|
311
|
+
function serializeRouteMap(rm) {
|
|
312
|
+
const lines = [];
|
|
313
|
+
lines.push(`API ROUTES (${rm.apiRoutes.length}):`);
|
|
314
|
+
for (const r of rm.apiRoutes) {
|
|
315
|
+
const methods = r.handlers.map(h => h.method).join(", ");
|
|
316
|
+
lines.push(` ${methods} ${r.routePath} [${r.filePath}]`);
|
|
317
|
+
for (const h of r.handlers) {
|
|
318
|
+
if (h.calls.length > 0) {
|
|
319
|
+
lines.push(` ${h.method}() → calls: ${h.calls.join(", ")}`);
|
|
320
|
+
}
|
|
321
|
+
if (h.externalCalls.length > 0) {
|
|
322
|
+
lines.push(` ${h.method}() → external: ${h.externalCalls.join(", ")}`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
// Show resolved call chains (handler → callee → external)
|
|
326
|
+
const deepExt = r.callChains.filter(c => c.external && !r.handlers.some(h => h.method === c.from));
|
|
327
|
+
if (deepExt.length > 0) {
|
|
328
|
+
const unique = [...new Set(deepExt.map(c => `${c.from} → ${c.to}`))];
|
|
329
|
+
lines.push(` chains: ${unique.slice(0, 4).join("; ")}`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
lines.push("");
|
|
333
|
+
lines.push(`PAGE ROUTES (${rm.pages.length}):`);
|
|
334
|
+
for (const p of rm.pages) {
|
|
335
|
+
lines.push(` ${p.routePath} [${p.filePath}] component: ${p.componentName}`);
|
|
336
|
+
if (p.calls.length > 0)
|
|
337
|
+
lines.push(` calls: ${p.calls.join(", ")}`);
|
|
338
|
+
if (p.externalCalls.length > 0)
|
|
339
|
+
lines.push(` external: ${p.externalCalls.join(", ")}`);
|
|
340
|
+
if (p.stateVars.length > 0)
|
|
341
|
+
lines.push(` state: [${p.stateVars.join(", ")}]`);
|
|
342
|
+
if (p.renders.length > 0)
|
|
343
|
+
lines.push(` renders: ${p.renders.join(", ")}`);
|
|
344
|
+
}
|
|
345
|
+
if (rm.backgroundJobs.length > 0) {
|
|
346
|
+
lines.push("");
|
|
347
|
+
lines.push(`BACKGROUND JOBS (${rm.backgroundJobs.length}):`);
|
|
348
|
+
for (const j of rm.backgroundJobs) {
|
|
349
|
+
lines.push(` [${j.kind.toUpperCase()}] ${j.trigger} handler: ${j.handlerName} [${j.filePath}]`);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return lines.join("\n");
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=extractRouteMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractRouteMap.js","sourceRoot":"","sources":["../../src/analysis/extractRouteMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* generateFileInsight — fast Claude Haiku call for a file's AI description + suggestions.
|
|
3
|
+
*
|
|
4
|
+
* Sends a compact STRUCTURED summary (function signatures, call graph, render analysis)
|
|
5
|
+
* instead of raw source lines. This covers the whole file regardless of size and uses
|
|
6
|
+
* far fewer tokens than pasting code.
|
|
7
|
+
*
|
|
8
|
+
* Results are cached in memory for the lifetime of the server process.
|
|
9
|
+
*/
|
|
10
|
+
import type { DetailedFileXRay } from "./buildDetailedFileXRay";
|
|
11
|
+
export type FileInsight = {
|
|
12
|
+
description: string;
|
|
13
|
+
suggestions: {
|
|
14
|
+
title: string;
|
|
15
|
+
detail: string;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
18
|
+
export declare function generateFileInsight(absPath: string, repoRoot: string, apiKey: string, xray: DetailedFileXRay): Promise<FileInsight>;
|
|
19
|
+
//# sourceMappingURL=generateFileInsight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateFileInsight.d.ts","sourceRoot":"","sources":["../../src/analysis/generateFileInsight.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClD,CAAC;AA4DF,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* generateFileInsight — fast Claude Haiku call for a file's AI description + suggestions.
|
|
4
|
+
*
|
|
5
|
+
* Sends a compact STRUCTURED summary (function signatures, call graph, render analysis)
|
|
6
|
+
* instead of raw source lines. This covers the whole file regardless of size and uses
|
|
7
|
+
* far fewer tokens than pasting code.
|
|
8
|
+
*
|
|
9
|
+
* Results are cached in memory for the lifetime of the server process.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.generateFileInsight = generateFileInsight;
|
|
13
|
+
const anthropic_1 = require("../anthropic");
|
|
14
|
+
// In-memory cache: absolute path → insight
|
|
15
|
+
const cache = new Map();
|
|
16
|
+
function buildStructuredSummary(xray) {
|
|
17
|
+
const lines = [];
|
|
18
|
+
lines.push(`File: ${xray.relPath} (${xray.lineCount} lines)`);
|
|
19
|
+
lines.push(`Type: ${xray.ext}`);
|
|
20
|
+
lines.push("");
|
|
21
|
+
// Imports — just the sources, names are noise
|
|
22
|
+
if (xray.imports.length > 0) {
|
|
23
|
+
const sources = xray.imports.map(i => i.source).join(", ");
|
|
24
|
+
lines.push(`Imports: ${sources}`);
|
|
25
|
+
lines.push("");
|
|
26
|
+
}
|
|
27
|
+
lines.push(`Functions (${xray.functions.length}):`);
|
|
28
|
+
for (const fn of xray.functions) {
|
|
29
|
+
const loc = fn.lineEnd - fn.lineStart;
|
|
30
|
+
const tags = [fn.kind];
|
|
31
|
+
if (fn.isAsync)
|
|
32
|
+
tags.push("async");
|
|
33
|
+
if (fn.isExported)
|
|
34
|
+
tags.push("exported");
|
|
35
|
+
const calledByCount = fn.calledBy.length;
|
|
36
|
+
lines.push(` ${fn.name} [${tags.join(", ")}] L${fn.lineStart}-${fn.lineEnd} (${loc} loc)`);
|
|
37
|
+
if (fn.params.length > 0) {
|
|
38
|
+
const p = fn.params.map(p => `${p.name}${p.optional ? "?" : ""}: ${p.type}`).join(", ");
|
|
39
|
+
lines.push(` params: ${p}`);
|
|
40
|
+
}
|
|
41
|
+
if (fn.returnType && fn.returnType !== "void") {
|
|
42
|
+
lines.push(` returns: ${fn.returnType}`);
|
|
43
|
+
}
|
|
44
|
+
if (fn.calls.length > 0) {
|
|
45
|
+
lines.push(` calls: ${fn.calls.join(", ")}`);
|
|
46
|
+
}
|
|
47
|
+
if (calledByCount > 0) {
|
|
48
|
+
lines.push(` calledBy: ${fn.calledBy.join(", ")}`);
|
|
49
|
+
}
|
|
50
|
+
else if (!fn.isExported && fn.kind === "function") {
|
|
51
|
+
lines.push(` calledBy: none (potential dead code)`);
|
|
52
|
+
}
|
|
53
|
+
if (fn.externalCalls && fn.externalCalls.length > 0) {
|
|
54
|
+
lines.push(` external: ${fn.externalCalls.join(", ")}`);
|
|
55
|
+
}
|
|
56
|
+
if (fn.renderAnalysis) {
|
|
57
|
+
const ra = fn.renderAnalysis;
|
|
58
|
+
if (ra.stateVars.length > 0)
|
|
59
|
+
lines.push(` state: [${ra.stateVars.join(", ")}]`);
|
|
60
|
+
if (ra.eventsWired.length > 0)
|
|
61
|
+
lines.push(` events: ${ra.eventsWired.map(e => `${e.event}(${e.handler})`).join(", ")}`);
|
|
62
|
+
if (ra.conditionCount > 0)
|
|
63
|
+
lines.push(` conditions: ${ra.conditionCount}`);
|
|
64
|
+
if (ra.renderedElements.length > 0)
|
|
65
|
+
lines.push(` renders: ${ra.renderedElements.join(", ")}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return lines.join("\n");
|
|
69
|
+
}
|
|
70
|
+
async function generateFileInsight(absPath, repoRoot, apiKey, xray) {
|
|
71
|
+
if (cache.has(absPath))
|
|
72
|
+
return cache.get(absPath);
|
|
73
|
+
const summary = buildStructuredSummary(xray);
|
|
74
|
+
const client = (0, anthropic_1.createAnthropicClient)(apiKey);
|
|
75
|
+
const msg = await client.messages.create({
|
|
76
|
+
model: "claude-haiku-4-5-20251001",
|
|
77
|
+
max_tokens: 512,
|
|
78
|
+
messages: [
|
|
79
|
+
{
|
|
80
|
+
role: "user",
|
|
81
|
+
content: `You are a senior engineer reviewing a codebase. Below is a structured analysis of one file — function signatures, call graph, state, events, external API calls. Use this to give a precise description and actionable suggestions. Respond with JSON only, no markdown.
|
|
82
|
+
|
|
83
|
+
${summary}
|
|
84
|
+
|
|
85
|
+
JSON format:
|
|
86
|
+
{
|
|
87
|
+
"description": "• <what this file does — 1 line>\n• <its architectural role — 1 line>\n• <key dependency or pattern worth knowing — 1 line>",
|
|
88
|
+
"suggestions": [
|
|
89
|
+
{ "title": "<4-5 words>", "detail": "<specific actionable improvement grounded in the data above, ≤90 chars>" },
|
|
90
|
+
{ "title": "<4-5 words>", "detail": "<specific actionable improvement grounded in the data above, ≤90 chars>" },
|
|
91
|
+
{ "title": "<4-5 words>", "detail": "<specific actionable improvement grounded in the data above, ≤90 chars>" }
|
|
92
|
+
]
|
|
93
|
+
}`,
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
});
|
|
97
|
+
const raw = msg.content[0].type === "text" ? msg.content[0].text.trim() : "{}";
|
|
98
|
+
const clean = raw.replace(/^```json?\s*/i, "").replace(/```\s*$/, "").trim();
|
|
99
|
+
const insight = JSON.parse(clean);
|
|
100
|
+
cache.set(absPath, insight);
|
|
101
|
+
return insight;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=generateFileInsight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateFileInsight.js","sourceRoot":"","sources":["../../src/analysis/generateFileInsight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* llmXRay — LLM-powered deep analysis of a single source file.
|
|
3
|
+
*
|
|
4
|
+
* Produces a structured breakdown:
|
|
5
|
+
* - headline: what this file REALLY is (not what the name says)
|
|
6
|
+
* - responsibilities: each distinct job the file does, with line ranges + snippets
|
|
7
|
+
* - dependencyMap: what each import actually contributes
|
|
8
|
+
* - blastRadius: what breaks if this file has a bug
|
|
9
|
+
*
|
|
10
|
+
* Results are cached at {repoRoot}/.memor/xray/{hash}.json, invalidated by file mtime.
|
|
11
|
+
*/
|
|
12
|
+
export type LLMXRayResponsibility = {
|
|
13
|
+
name: string;
|
|
14
|
+
lineRange: string;
|
|
15
|
+
snippet: string;
|
|
16
|
+
what: string;
|
|
17
|
+
why: string;
|
|
18
|
+
gotcha?: string;
|
|
19
|
+
};
|
|
20
|
+
export type LLMXRayDep = {
|
|
21
|
+
source: string;
|
|
22
|
+
role: string;
|
|
23
|
+
};
|
|
24
|
+
export type LLMXRayBlastItem = {
|
|
25
|
+
severity: "critical" | "warning" | "info";
|
|
26
|
+
bug: string;
|
|
27
|
+
effect: string;
|
|
28
|
+
};
|
|
29
|
+
export type LLMXRay = {
|
|
30
|
+
headline: string;
|
|
31
|
+
realRole: string;
|
|
32
|
+
responsibilities: LLMXRayResponsibility[];
|
|
33
|
+
dependencyMap: LLMXRayDep[];
|
|
34
|
+
blastRadius: LLMXRayBlastItem[];
|
|
35
|
+
generatedAt: string;
|
|
36
|
+
fileMtime: number;
|
|
37
|
+
};
|
|
38
|
+
export declare function generateLLMXRay(absPath: string, repoRoot: string, apiKey?: string): Promise<LLMXRay>;
|
|
39
|
+
//# sourceMappingURL=llmXRay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llmXRay.d.ts","sourceRoot":"","sources":["../../src/analysis/llmXRay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IAC1C,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAmGF,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAyElB"}
|