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,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Heuristics loader — reads the JSON knowledge files and exposes typed helpers.
|
|
3
|
+
*
|
|
4
|
+
* This is the ONLY file that touches the JSON files.
|
|
5
|
+
* All detectors import from here, never directly from the JSON files.
|
|
6
|
+
*
|
|
7
|
+
* Separation of concerns:
|
|
8
|
+
* JSON files = knowledge (what frameworks exist, what patterns mean what)
|
|
9
|
+
* TypeScript = logic (how to score, combine, and decide)
|
|
10
|
+
*/
|
|
11
|
+
export type PackageDepKind = "runtime" | "dev" | "peer" | "any";
|
|
12
|
+
export type KnownPackageEntry = {
|
|
13
|
+
framework: string | null;
|
|
14
|
+
category: string;
|
|
15
|
+
typeHint: string | null;
|
|
16
|
+
depKind: PackageDepKind;
|
|
17
|
+
weight: number;
|
|
18
|
+
repoSignal?: string;
|
|
19
|
+
note?: string;
|
|
20
|
+
};
|
|
21
|
+
export type ArchetypeSignal = {
|
|
22
|
+
type: "file-exists" | "file-pattern" | "dir-exists" | "dir-at-root" | "file-count" | "no-signal";
|
|
23
|
+
name?: string;
|
|
24
|
+
path?: string;
|
|
25
|
+
pattern?: string;
|
|
26
|
+
signal?: string;
|
|
27
|
+
min?: number;
|
|
28
|
+
weight: number;
|
|
29
|
+
note?: string;
|
|
30
|
+
};
|
|
31
|
+
export type ArchetypeDefinition = {
|
|
32
|
+
label: string;
|
|
33
|
+
typeHint: string;
|
|
34
|
+
minScore: number;
|
|
35
|
+
signals: ArchetypeSignal[];
|
|
36
|
+
};
|
|
37
|
+
export type ImportanceScores = Record<string, number>;
|
|
38
|
+
export type FlowSuppressionRules = Record<string, string[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Look up a package by exact name.
|
|
41
|
+
* Returns null if not found or if the entry is a section separator (string).
|
|
42
|
+
*/
|
|
43
|
+
export declare function getPackageInfo(name: string): KnownPackageEntry | null;
|
|
44
|
+
/**
|
|
45
|
+
* Check if a package name is a known framework dep, filtered by dep kind.
|
|
46
|
+
*
|
|
47
|
+
* @param name - exact package name
|
|
48
|
+
* @param actualDepKind - where it appears in the consuming package.json
|
|
49
|
+
* "runtime" = in dependencies{}
|
|
50
|
+
* "dev" = in devDependencies{}
|
|
51
|
+
* "peer" = in peerDependencies{}
|
|
52
|
+
*/
|
|
53
|
+
export declare function isKnownFrameworkDep(name: string, actualDepKind: "runtime" | "dev" | "peer"): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Get the typeHint for a package, respecting depKind rules.
|
|
56
|
+
* Returns null if the package should not produce a typeHint in this context.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getTypeHintForPackage(name: string, actualDepKind: "runtime" | "dev" | "peer"): string | null;
|
|
59
|
+
/**
|
|
60
|
+
* Get the signal weight for a package, or 0 if not applicable.
|
|
61
|
+
*/
|
|
62
|
+
export declare function getPackageWeight(name: string, actualDepKind: "runtime" | "dev" | "peer"): number;
|
|
63
|
+
/**
|
|
64
|
+
* Get the framework display name for a package.
|
|
65
|
+
* Used for tech badge labels on canvas nodes.
|
|
66
|
+
*/
|
|
67
|
+
export declare function getFrameworkLabel(name: string): string | null;
|
|
68
|
+
/**
|
|
69
|
+
* Check if a package is a monorepo signal (turbo, nx, lerna, etc.)
|
|
70
|
+
*/
|
|
71
|
+
export declare function isMonorepoToolDep(name: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Resolve all known framework labels from a list of dep names.
|
|
74
|
+
* Deduplicates by framework name.
|
|
75
|
+
* Used to build the `detectedTech` array for a system.
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveFrameworkLabels(runtimeDeps: string[], devDeps: string[], peerDeps: string[]): string[];
|
|
78
|
+
export declare function getArchetypeDefinition(name: string): ArchetypeDefinition | null;
|
|
79
|
+
export declare function getAllArchetypes(): Record<string, ArchetypeDefinition>;
|
|
80
|
+
export declare function getAllSubsystemPatterns(): Record<string, ArchetypeDefinition>;
|
|
81
|
+
/**
|
|
82
|
+
* Get the base importance score for a system type.
|
|
83
|
+
* Used by systemRanking.ts to determine canvas node prominence.
|
|
84
|
+
*/
|
|
85
|
+
export declare function getBaseImportanceScore(systemType: string): number;
|
|
86
|
+
/**
|
|
87
|
+
* Get the bonus added when a system is detected as the repo center.
|
|
88
|
+
*/
|
|
89
|
+
export declare function getRepoCenterBonus(role: "is-repo-center" | "is-most-depended-on" | "is-entry-system"): number;
|
|
90
|
+
/**
|
|
91
|
+
* Get the flow families that should be suppressed for a given repo mode.
|
|
92
|
+
* Prevents boilerplate flow templates on framework/library repos.
|
|
93
|
+
*/
|
|
94
|
+
export declare function getSuppressedFlowFamilies(repoMode: string): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Check if a flow family should be suppressed for the given repo mode.
|
|
97
|
+
*/
|
|
98
|
+
export declare function shouldSuppressFlowFamily(repoMode: string, family: string): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Get all repo mode definitions.
|
|
101
|
+
*/
|
|
102
|
+
export declare function getAllRepoModes(): Record<string, {
|
|
103
|
+
label: string;
|
|
104
|
+
description: string;
|
|
105
|
+
minScore: number;
|
|
106
|
+
signals: Array<{
|
|
107
|
+
label: string;
|
|
108
|
+
weight: number;
|
|
109
|
+
}>;
|
|
110
|
+
incidental_runnables?: {
|
|
111
|
+
description: string;
|
|
112
|
+
rule: string;
|
|
113
|
+
};
|
|
114
|
+
importanceNote?: string;
|
|
115
|
+
}>;
|
|
116
|
+
/**
|
|
117
|
+
* Everything a detector needs to classify a system from its package.json deps.
|
|
118
|
+
* Returns a map of typeHint → accumulated weight from all matching deps.
|
|
119
|
+
*/
|
|
120
|
+
export declare function scoreTypeHintsFromDeps(runtimeDeps: string[], devDeps: string[], peerDeps: string[]): Map<string, number>;
|
|
121
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/heuristics/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Heuristics loader — reads the JSON knowledge files and exposes typed helpers.
|
|
4
|
+
*
|
|
5
|
+
* This is the ONLY file that touches the JSON files.
|
|
6
|
+
* All detectors import from here, never directly from the JSON files.
|
|
7
|
+
*
|
|
8
|
+
* Separation of concerns:
|
|
9
|
+
* JSON files = knowledge (what frameworks exist, what patterns mean what)
|
|
10
|
+
* TypeScript = logic (how to score, combine, and decide)
|
|
11
|
+
*/
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.getPackageInfo = getPackageInfo;
|
|
17
|
+
exports.isKnownFrameworkDep = isKnownFrameworkDep;
|
|
18
|
+
exports.getTypeHintForPackage = getTypeHintForPackage;
|
|
19
|
+
exports.getPackageWeight = getPackageWeight;
|
|
20
|
+
exports.getFrameworkLabel = getFrameworkLabel;
|
|
21
|
+
exports.isMonorepoToolDep = isMonorepoToolDep;
|
|
22
|
+
exports.resolveFrameworkLabels = resolveFrameworkLabels;
|
|
23
|
+
exports.getArchetypeDefinition = getArchetypeDefinition;
|
|
24
|
+
exports.getAllArchetypes = getAllArchetypes;
|
|
25
|
+
exports.getAllSubsystemPatterns = getAllSubsystemPatterns;
|
|
26
|
+
exports.getBaseImportanceScore = getBaseImportanceScore;
|
|
27
|
+
exports.getRepoCenterBonus = getRepoCenterBonus;
|
|
28
|
+
exports.getSuppressedFlowFamilies = getSuppressedFlowFamilies;
|
|
29
|
+
exports.shouldSuppressFlowFamily = shouldSuppressFlowFamily;
|
|
30
|
+
exports.getAllRepoModes = getAllRepoModes;
|
|
31
|
+
exports.scoreTypeHintsFromDeps = scoreTypeHintsFromDeps;
|
|
32
|
+
const known_packages_json_1 = __importDefault(require("./known-packages.json"));
|
|
33
|
+
const file_patterns_json_1 = __importDefault(require("./file-patterns.json"));
|
|
34
|
+
const repo_mode_signals_json_1 = __importDefault(require("./repo-mode-signals.json"));
|
|
35
|
+
// ── Package Knowledge ──────────────────────────────────────────────────
|
|
36
|
+
const PACKAGES = known_packages_json_1.default;
|
|
37
|
+
/**
|
|
38
|
+
* Look up a package by exact name.
|
|
39
|
+
* Returns null if not found or if the entry is a section separator (string).
|
|
40
|
+
*/
|
|
41
|
+
function getPackageInfo(name) {
|
|
42
|
+
const entry = PACKAGES[name];
|
|
43
|
+
if (!entry || typeof entry === "string")
|
|
44
|
+
return null;
|
|
45
|
+
return entry;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if a package name is a known framework dep, filtered by dep kind.
|
|
49
|
+
*
|
|
50
|
+
* @param name - exact package name
|
|
51
|
+
* @param actualDepKind - where it appears in the consuming package.json
|
|
52
|
+
* "runtime" = in dependencies{}
|
|
53
|
+
* "dev" = in devDependencies{}
|
|
54
|
+
* "peer" = in peerDependencies{}
|
|
55
|
+
*/
|
|
56
|
+
function isKnownFrameworkDep(name, actualDepKind) {
|
|
57
|
+
const info = getPackageInfo(name);
|
|
58
|
+
if (!info || info.weight === 0)
|
|
59
|
+
return false;
|
|
60
|
+
if (info.depKind === "any")
|
|
61
|
+
return true;
|
|
62
|
+
if (info.depKind === "runtime" && actualDepKind !== "runtime")
|
|
63
|
+
return false;
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get the typeHint for a package, respecting depKind rules.
|
|
68
|
+
* Returns null if the package should not produce a typeHint in this context.
|
|
69
|
+
*/
|
|
70
|
+
function getTypeHintForPackage(name, actualDepKind) {
|
|
71
|
+
const info = getPackageInfo(name);
|
|
72
|
+
if (!info || info.weight === 0)
|
|
73
|
+
return null;
|
|
74
|
+
if (info.depKind === "runtime" && actualDepKind !== "runtime")
|
|
75
|
+
return null;
|
|
76
|
+
return info.typeHint;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get the signal weight for a package, or 0 if not applicable.
|
|
80
|
+
*/
|
|
81
|
+
function getPackageWeight(name, actualDepKind) {
|
|
82
|
+
const info = getPackageInfo(name);
|
|
83
|
+
if (!info)
|
|
84
|
+
return 0;
|
|
85
|
+
if (info.depKind === "runtime" && actualDepKind !== "runtime")
|
|
86
|
+
return 0;
|
|
87
|
+
if (info.depKind === "dev" && actualDepKind === "runtime")
|
|
88
|
+
return info.weight * 0.3; // runtime presence of a dev tool is weak
|
|
89
|
+
return info.weight;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get the framework display name for a package.
|
|
93
|
+
* Used for tech badge labels on canvas nodes.
|
|
94
|
+
*/
|
|
95
|
+
function getFrameworkLabel(name) {
|
|
96
|
+
const info = getPackageInfo(name);
|
|
97
|
+
return info?.framework ?? null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if a package is a monorepo signal (turbo, nx, lerna, etc.)
|
|
101
|
+
*/
|
|
102
|
+
function isMonorepoToolDep(name) {
|
|
103
|
+
const info = getPackageInfo(name);
|
|
104
|
+
return info?.repoSignal === "monorepo";
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Resolve all known framework labels from a list of dep names.
|
|
108
|
+
* Deduplicates by framework name.
|
|
109
|
+
* Used to build the `detectedTech` array for a system.
|
|
110
|
+
*/
|
|
111
|
+
function resolveFrameworkLabels(runtimeDeps, devDeps, peerDeps) {
|
|
112
|
+
const seen = new Set();
|
|
113
|
+
const labels = [];
|
|
114
|
+
function check(name, kind) {
|
|
115
|
+
const info = getPackageInfo(name);
|
|
116
|
+
if (!info?.framework)
|
|
117
|
+
return;
|
|
118
|
+
if (info.depKind === "runtime" && kind !== "runtime")
|
|
119
|
+
return;
|
|
120
|
+
if (!seen.has(info.framework)) {
|
|
121
|
+
seen.add(info.framework);
|
|
122
|
+
labels.push(info.framework);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
runtimeDeps.forEach((d) => check(d, "runtime"));
|
|
126
|
+
devDeps.forEach((d) => check(d, "dev"));
|
|
127
|
+
peerDeps.forEach((d) => check(d, "peer"));
|
|
128
|
+
return labels;
|
|
129
|
+
}
|
|
130
|
+
// ── Archetype Knowledge ────────────────────────────────────────────────
|
|
131
|
+
const FILE_PATTERNS = file_patterns_json_1.default;
|
|
132
|
+
function getArchetypeDefinition(name) {
|
|
133
|
+
return FILE_PATTERNS.archetypes[name] ?? null;
|
|
134
|
+
}
|
|
135
|
+
function getAllArchetypes() {
|
|
136
|
+
return FILE_PATTERNS.archetypes;
|
|
137
|
+
}
|
|
138
|
+
function getAllSubsystemPatterns() {
|
|
139
|
+
return FILE_PATTERNS["subsystem-patterns"];
|
|
140
|
+
}
|
|
141
|
+
// ── Repo Mode Knowledge ────────────────────────────────────────────────
|
|
142
|
+
const REPO_MODE_SIGNALS = repo_mode_signals_json_1.default;
|
|
143
|
+
/**
|
|
144
|
+
* Get the base importance score for a system type.
|
|
145
|
+
* Used by systemRanking.ts to determine canvas node prominence.
|
|
146
|
+
*/
|
|
147
|
+
function getBaseImportanceScore(systemType) {
|
|
148
|
+
return REPO_MODE_SIGNALS["importance-scores"][systemType] ?? 0.30;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get the bonus added when a system is detected as the repo center.
|
|
152
|
+
*/
|
|
153
|
+
function getRepoCenterBonus(role) {
|
|
154
|
+
return REPO_MODE_SIGNALS["repo-center-bonus"][role] ?? 0;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get the flow families that should be suppressed for a given repo mode.
|
|
158
|
+
* Prevents boilerplate flow templates on framework/library repos.
|
|
159
|
+
*/
|
|
160
|
+
function getSuppressedFlowFamilies(repoMode) {
|
|
161
|
+
return REPO_MODE_SIGNALS["flow-suppression-rules"][repoMode] ?? [];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Check if a flow family should be suppressed for the given repo mode.
|
|
165
|
+
*/
|
|
166
|
+
function shouldSuppressFlowFamily(repoMode, family) {
|
|
167
|
+
return getSuppressedFlowFamilies(repoMode).includes(family);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get all repo mode definitions.
|
|
171
|
+
*/
|
|
172
|
+
function getAllRepoModes() {
|
|
173
|
+
return REPO_MODE_SIGNALS.modes;
|
|
174
|
+
}
|
|
175
|
+
// ── Convenience bundles ────────────────────────────────────────────────
|
|
176
|
+
/**
|
|
177
|
+
* Everything a detector needs to classify a system from its package.json deps.
|
|
178
|
+
* Returns a map of typeHint → accumulated weight from all matching deps.
|
|
179
|
+
*/
|
|
180
|
+
function scoreTypeHintsFromDeps(runtimeDeps, devDeps, peerDeps) {
|
|
181
|
+
const scores = new Map();
|
|
182
|
+
function accumulate(name, kind) {
|
|
183
|
+
const w = getPackageWeight(name, kind);
|
|
184
|
+
if (w === 0)
|
|
185
|
+
return;
|
|
186
|
+
const hint = getTypeHintForPackage(name, kind);
|
|
187
|
+
if (!hint)
|
|
188
|
+
return;
|
|
189
|
+
scores.set(hint, (scores.get(hint) ?? 0) + w);
|
|
190
|
+
}
|
|
191
|
+
runtimeDeps.forEach((d) => accumulate(d, "runtime"));
|
|
192
|
+
devDeps.forEach((d) => accumulate(d, "dev"));
|
|
193
|
+
peerDeps.forEach((d) => accumulate(d, "peer"));
|
|
194
|
+
return scores;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/heuristics/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_meta": {
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"scope": "JS/TS ecosystem — structural conditions that determine repo-level mode",
|
|
5
|
+
"how": "repo mode = the overall shape of the repository. Not a system type — the whole repo's identity.",
|
|
6
|
+
"modes": {
|
|
7
|
+
"product-web-app": "Single product: one web app, optional API backend",
|
|
8
|
+
"product-domain-machine": "Monorepo: multiple runnable apps + shared packages",
|
|
9
|
+
"framework-core": "A framework itself — used by other people's projects",
|
|
10
|
+
"library-tooling": "A library or developer tool — imported, not deployed",
|
|
11
|
+
"surface-platform": "Multi-surface platform: web + mobile + desktop surfaces",
|
|
12
|
+
"ui-component-library": "A UI component library: components published for others to use",
|
|
13
|
+
"documentation-site": "A docs-first repo: the product IS the documentation",
|
|
14
|
+
"workflow-platform": "CI/CD, pipeline orchestration, or workflow automation",
|
|
15
|
+
"developer-tooling": "CLI tools, build tools, linters, code generators",
|
|
16
|
+
"e2e-testing-suite": "A repo whose primary purpose is E2E testing another product",
|
|
17
|
+
"unknown": "Cannot determine — show basic info only"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"modes": {
|
|
21
|
+
"product-web-app": {
|
|
22
|
+
"label": "Product Web Application",
|
|
23
|
+
"description": "A single deployable product with a web frontend and optional backend",
|
|
24
|
+
"requires": {
|
|
25
|
+
"any": ["has-web-app-system", "has-next-config", "has-vite-spa"]
|
|
26
|
+
},
|
|
27
|
+
"excludes": {
|
|
28
|
+
"any": ["multiple-runnable-apps", "is-library-repo", "is-framework-repo"]
|
|
29
|
+
},
|
|
30
|
+
"signals": [
|
|
31
|
+
{ "label": "Single web app entry point", "weight": 30 },
|
|
32
|
+
{ "label": "next.config.* at root", "weight": 25 },
|
|
33
|
+
{ "label": "src/main.tsx with index.html", "weight": 25 },
|
|
34
|
+
{ "label": "No packages/ directory with >3 packages", "weight": 15 }
|
|
35
|
+
],
|
|
36
|
+
"minScore": 30,
|
|
37
|
+
"examples": ["cal.com", "linear-app", "notion-clone"]
|
|
38
|
+
},
|
|
39
|
+
"product-domain-machine": {
|
|
40
|
+
"label": "Product Monorepo",
|
|
41
|
+
"description": "Multiple runnable apps backed by shared packages — one product, many deployables",
|
|
42
|
+
"requires": {
|
|
43
|
+
"all": ["has-packages-or-apps-dir"],
|
|
44
|
+
"any": ["multiple-runnable-apps", "apps-dir-with-2-plus"]
|
|
45
|
+
},
|
|
46
|
+
"excludes": {
|
|
47
|
+
"any": ["is-ui-library-dominant", "is-framework-repo"]
|
|
48
|
+
},
|
|
49
|
+
"signals": [
|
|
50
|
+
{ "label": "apps/ directory with 2+ runnable apps", "weight": 40 },
|
|
51
|
+
{ "label": "packages/ with shared utilities + apps/ with apps", "weight": 35 },
|
|
52
|
+
{ "label": "turbo.json or nx.json at root", "weight": 20 },
|
|
53
|
+
{ "label": "Multiple package.json with start scripts", "weight": 25 }
|
|
54
|
+
],
|
|
55
|
+
"minScore": 40,
|
|
56
|
+
"examples": ["hoppscotch", "twenty", "cal.com monorepo", "supabase"]
|
|
57
|
+
},
|
|
58
|
+
"framework-core": {
|
|
59
|
+
"label": "Framework Core",
|
|
60
|
+
"description": "A framework, runtime, or platform used by other developers' projects",
|
|
61
|
+
"requires": {
|
|
62
|
+
"any": [
|
|
63
|
+
"has-compiler-framework-archetype",
|
|
64
|
+
"has-platform-adapters",
|
|
65
|
+
"has-core-runtime-zone",
|
|
66
|
+
"is-published-as-framework"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"signals": [
|
|
70
|
+
{ "label": "compiler/ or parse/ directory at root", "weight": 40 },
|
|
71
|
+
{ "label": "Platform adapter packages (express, fastify)", "weight": 35 },
|
|
72
|
+
{ "label": "packages/core + packages/react + packages/vue", "weight": 30 },
|
|
73
|
+
{ "label": "npm package named without app-like suffix", "weight": 15 },
|
|
74
|
+
{ "label": "peerDependencies-heavy package.json", "weight": 20 },
|
|
75
|
+
{ "label": "High incoming deps from other packages", "weight": 25 }
|
|
76
|
+
],
|
|
77
|
+
"minScore": 40,
|
|
78
|
+
"examples": ["react", "vue", "svelte", "nestjs/nest", "vercel/next.js"],
|
|
79
|
+
"note": "Framework repos should NOT get flow patterns that assume user-facing behavior (login, payment). They have internal framework flows."
|
|
80
|
+
},
|
|
81
|
+
"library-tooling": {
|
|
82
|
+
"label": "Library / Developer Tooling",
|
|
83
|
+
"description": "An npm package or tool consumed by developers, not deployed as a product",
|
|
84
|
+
"requires": {
|
|
85
|
+
"any": [
|
|
86
|
+
"has-cli-archetype",
|
|
87
|
+
"single-package-with-src-index",
|
|
88
|
+
"is-type-definitions-only"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"excludes": {
|
|
92
|
+
"any": ["has-web-app-entry", "is-framework-repo", "multiple-runnable-apps"]
|
|
93
|
+
},
|
|
94
|
+
"signals": [
|
|
95
|
+
{ "label": "bin/ directory with CLI entry", "weight": 35 },
|
|
96
|
+
{ "label": "commander/yargs in runtime deps", "weight": 30 },
|
|
97
|
+
{ "label": "src/index.ts as primary export", "weight": 20 },
|
|
98
|
+
{ "label": "No index.html or web entry point", "weight": 15 },
|
|
99
|
+
{ "label": "package.json main/exports field set", "weight": 20 }
|
|
100
|
+
],
|
|
101
|
+
"minScore": 30,
|
|
102
|
+
"examples": ["redux-toolkit", "zod", "lodash", "date-fns", "axios"]
|
|
103
|
+
},
|
|
104
|
+
"ui-component-library": {
|
|
105
|
+
"label": "UI Component Library",
|
|
106
|
+
"description": "A library of UI components published for other developers to use",
|
|
107
|
+
"requires": {
|
|
108
|
+
"any": [
|
|
109
|
+
"ui-lib-count-5-or-more",
|
|
110
|
+
"storybook-with-30-plus-stories",
|
|
111
|
+
"packages-all-ui-typed"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"excludes": {
|
|
115
|
+
"any": ["runnable-count-2-or-more", "is-docs-site-dominant"]
|
|
116
|
+
},
|
|
117
|
+
"signals": [
|
|
118
|
+
{ "label": "5+ packages all with ui/component names", "weight": 45 },
|
|
119
|
+
{ "label": "30+ .stories.* files", "weight": 35 },
|
|
120
|
+
{ "label": ".storybook/ config at root", "weight": 30 },
|
|
121
|
+
{ "label": "peerDeps include react/vue", "weight": 20 },
|
|
122
|
+
{ "label": "No runnable apps (no src/main.tsx in any pkg)", "weight": 20 }
|
|
123
|
+
],
|
|
124
|
+
"minScore": 45,
|
|
125
|
+
"examples": ["chakra-ui", "radix-ui", "shadcn/ui", "material-ui"],
|
|
126
|
+
"incidental-runnables": {
|
|
127
|
+
"description": "Some UI libs have a docs app or storybook app as runnable. This should NOT trigger product-domain-machine.",
|
|
128
|
+
"rule": "If runnableCount >= 1 AND uiLibCount >= 4, prefer ui-component-library over product-domain-machine"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"documentation-site": {
|
|
132
|
+
"label": "Documentation Site",
|
|
133
|
+
"description": "The primary product is documentation — MDX content, guides, API references",
|
|
134
|
+
"requires": {
|
|
135
|
+
"any": [
|
|
136
|
+
"has-docusaurus",
|
|
137
|
+
"has-vitepress",
|
|
138
|
+
"has-nextra",
|
|
139
|
+
"high-mdx-density"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
"signals": [
|
|
143
|
+
{ "label": "Docusaurus/VitePress/Nextra framework", "weight": 50 },
|
|
144
|
+
{ "label": "20+ MDX files", "weight": 30 },
|
|
145
|
+
{ "label": "docs/ as primary directory", "weight": 20 },
|
|
146
|
+
{ "label": "No significant src/ code tree", "weight": 15 }
|
|
147
|
+
],
|
|
148
|
+
"minScore": 40,
|
|
149
|
+
"examples": ["docusaurus.io", "vitepress docs", "nextra sites"],
|
|
150
|
+
"importanceNote": "docs-site importance score = 0.48 (NOT 0.72). A docs site is supplementary in a product repo. Only dominant when it IS the primary system."
|
|
151
|
+
},
|
|
152
|
+
"e2e-testing-suite": {
|
|
153
|
+
"label": "End-to-End Test Suite",
|
|
154
|
+
"description": "The repo's primary purpose is E2E testing another product",
|
|
155
|
+
"requires": {
|
|
156
|
+
"all": ["high-e2e-signal"],
|
|
157
|
+
"none": ["is-product-with-incidental-e2e"]
|
|
158
|
+
},
|
|
159
|
+
"signals": [
|
|
160
|
+
{ "label": "cypress/ or e2e/ as ROOT directory", "weight": 40 },
|
|
161
|
+
{ "label": "cypress.config.* or playwright.config.*", "weight": 45 },
|
|
162
|
+
{ "label": "5+ .cy.* files", "weight": 40 },
|
|
163
|
+
{ "label": "No src/ application code", "weight": 20 }
|
|
164
|
+
],
|
|
165
|
+
"minScore": 55,
|
|
166
|
+
"antiSignals": [
|
|
167
|
+
{ "label": ".spec.ts files — these are Vitest/Jest, NOT Cypress", "weight": -30, "note": "Never count .spec.ts as e2e evidence" },
|
|
168
|
+
{ "label": "Large src/ application tree alongside tests", "weight": -25, "note": "If a product has e2e tests, it is not an e2e-testing-suite" }
|
|
169
|
+
],
|
|
170
|
+
"examples": ["a dedicated cypress test repo", "playwright test suite repo"]
|
|
171
|
+
},
|
|
172
|
+
"developer-tooling": {
|
|
173
|
+
"label": "Developer Tooling / CLI",
|
|
174
|
+
"description": "A command-line tool, build tool, linter, or code generator",
|
|
175
|
+
"requires": {
|
|
176
|
+
"any": ["has-bin-field", "has-cli-archetype", "has-cli-framework-dep"]
|
|
177
|
+
},
|
|
178
|
+
"signals": [
|
|
179
|
+
{ "label": "bin/ with CLI entry points", "weight": 40 },
|
|
180
|
+
{ "label": "commander/yargs in runtime deps", "weight": 35 },
|
|
181
|
+
{ "label": "src/cli.ts or src/commands/", "weight": 30 },
|
|
182
|
+
{ "label": "package.json bin field set", "weight": 35 }
|
|
183
|
+
],
|
|
184
|
+
"minScore": 35,
|
|
185
|
+
"examples": ["create-react-app", "vite CLI", "eslint", "prettier", "typescript compiler"]
|
|
186
|
+
},
|
|
187
|
+
"surface-platform": {
|
|
188
|
+
"label": "Multi-Surface Platform",
|
|
189
|
+
"description": "A platform serving multiple surfaces: web, mobile, desktop, API",
|
|
190
|
+
"requires": {
|
|
191
|
+
"all": ["multiple-surface-types"]
|
|
192
|
+
},
|
|
193
|
+
"signals": [
|
|
194
|
+
{ "label": "web/ + mobile/ + desktop/ directories", "weight": 45 },
|
|
195
|
+
{ "label": "react-native or expo in deps", "weight": 35 },
|
|
196
|
+
{ "label": "electron in deps alongside web app", "weight": 35 },
|
|
197
|
+
{ "label": "3+ distinctly different surface types", "weight": 40 }
|
|
198
|
+
],
|
|
199
|
+
"minScore": 45,
|
|
200
|
+
"examples": ["hoppscotch (web+desktop+agent)", "an app with web+mobile+desktop"]
|
|
201
|
+
},
|
|
202
|
+
"workflow-platform": {
|
|
203
|
+
"label": "Workflow / Pipeline Platform",
|
|
204
|
+
"description": "Orchestrates CI/CD pipelines, workflows, or automated tasks",
|
|
205
|
+
"requires": {
|
|
206
|
+
"any": ["has-workflow-patterns", "has-pipeline-dirs"]
|
|
207
|
+
},
|
|
208
|
+
"signals": [
|
|
209
|
+
{ "label": "pipelines/ or workflows/ directory", "weight": 40 },
|
|
210
|
+
{ "label": "temporal/bull/agenda in runtime deps", "weight": 35 },
|
|
211
|
+
{ "label": "DAG or directed graph patterns", "weight": 30 }
|
|
212
|
+
],
|
|
213
|
+
"minScore": 40,
|
|
214
|
+
"examples": ["n8n", "temporal.io apps", "GitHub Actions runners"]
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"importance-scores": {
|
|
218
|
+
"_note": "Base importance scores for system types. These control visual prominence on the canvas.",
|
|
219
|
+
"api-service": 0.78,
|
|
220
|
+
"web-app": 0.75,
|
|
221
|
+
"desktop-app": 0.75,
|
|
222
|
+
"ui-library": 0.72,
|
|
223
|
+
"compiler-framework": 0.80,
|
|
224
|
+
"worker": 0.60,
|
|
225
|
+
"shared-package": 0.45,
|
|
226
|
+
"docs-site": 0.48,
|
|
227
|
+
"infra": 0.50,
|
|
228
|
+
"developer-tooling": 0.65,
|
|
229
|
+
"e2e-testing-suite": 0.40,
|
|
230
|
+
"storybook-component-library": 0.65,
|
|
231
|
+
"design-system": 0.70,
|
|
232
|
+
"unknown": 0.30
|
|
233
|
+
},
|
|
234
|
+
"repo-center-bonus": {
|
|
235
|
+
"_note": "Bonus added to importance score when a system is detected as the repo center",
|
|
236
|
+
"is-repo-center": 0.15,
|
|
237
|
+
"is-most-depended-on": 0.10,
|
|
238
|
+
"is-entry-system": 0.08
|
|
239
|
+
},
|
|
240
|
+
"flow-suppression-rules": {
|
|
241
|
+
"_note": "Which FLOW_PATTERN families should be suppressed for which repo modes. Prevents boilerplate flows on repos where they make no sense.",
|
|
242
|
+
"framework-core": ["web-product", "cli-tool"],
|
|
243
|
+
"library-tooling": ["web-product", "cli-tool"],
|
|
244
|
+
"ui-component-library": ["web-product"],
|
|
245
|
+
"e2e-testing-suite": ["web-product", "backend-framework", "library"],
|
|
246
|
+
"documentation-site": ["web-product", "backend-framework"]
|
|
247
|
+
}
|
|
248
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|