@flaid/devmap 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 +168 -0
- package/dist/ai/completion.d.ts +7 -0
- package/dist/ai/completion.d.ts.map +1 -0
- package/dist/ai/completion.js +27 -0
- package/dist/ai/completion.js.map +1 -0
- package/dist/ai/contextBuilder.d.ts +42 -0
- package/dist/ai/contextBuilder.d.ts.map +1 -0
- package/dist/ai/contextBuilder.js +632 -0
- package/dist/ai/contextBuilder.js.map +1 -0
- package/dist/ai/groq.d.ts +36 -0
- package/dist/ai/groq.d.ts.map +1 -0
- package/dist/ai/groq.js +368 -0
- package/dist/ai/groq.js.map +1 -0
- package/dist/ai/openrouter.d.ts +20 -0
- package/dist/ai/openrouter.d.ts.map +1 -0
- package/dist/ai/openrouter.js +187 -0
- package/dist/ai/openrouter.js.map +1 -0
- package/dist/ai/prompts.d.ts +7 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +88 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/provider.d.ts +15 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +28 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/ai/snapshotEnrichment.d.ts +4 -0
- package/dist/ai/snapshotEnrichment.d.ts.map +1 -0
- package/dist/ai/snapshotEnrichment.js +188 -0
- package/dist/ai/snapshotEnrichment.js.map +1 -0
- package/dist/ai/types.d.ts +29 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/analyzers/analysis/extractors/fallbackExtractor.d.ts +30 -0
- package/dist/analyzers/analysis/extractors/fallbackExtractor.d.ts.map +1 -0
- package/dist/analyzers/analysis/extractors/fallbackExtractor.js +114 -0
- package/dist/analyzers/analysis/extractors/fallbackExtractor.js.map +1 -0
- package/dist/analyzers/analysis/extractors/index.d.ts +16 -0
- package/dist/analyzers/analysis/extractors/index.d.ts.map +1 -0
- package/dist/analyzers/analysis/extractors/index.js +135 -0
- package/dist/analyzers/analysis/extractors/index.js.map +1 -0
- package/dist/analyzers/analysis/extractors/prismaExtractor.d.ts +15 -0
- package/dist/analyzers/analysis/extractors/prismaExtractor.d.ts.map +1 -0
- package/dist/analyzers/analysis/extractors/prismaExtractor.js +183 -0
- package/dist/analyzers/analysis/extractors/prismaExtractor.js.map +1 -0
- package/dist/analyzers/analysis/extractors/sqlExtractor.d.ts +14 -0
- package/dist/analyzers/analysis/extractors/sqlExtractor.d.ts.map +1 -0
- package/dist/analyzers/analysis/extractors/sqlExtractor.js +163 -0
- package/dist/analyzers/analysis/extractors/sqlExtractor.js.map +1 -0
- package/dist/analyzers/analysis/extractors/types.d.ts +76 -0
- package/dist/analyzers/analysis/extractors/types.d.ts.map +1 -0
- package/dist/analyzers/analysis/extractors/types.js +2 -0
- package/dist/analyzers/analysis/extractors/types.js.map +1 -0
- package/dist/analyzers/analysis/fileAnalysis.d.ts +36 -0
- package/dist/analyzers/analysis/fileAnalysis.d.ts.map +1 -0
- package/dist/analyzers/analysis/fileAnalysis.js +2 -0
- package/dist/analyzers/analysis/fileAnalysis.js.map +1 -0
- package/dist/analyzers/analysis/fileRole.d.ts +30 -0
- package/dist/analyzers/analysis/fileRole.d.ts.map +1 -0
- package/dist/analyzers/analysis/fileRole.js +242 -0
- package/dist/analyzers/analysis/fileRole.js.map +1 -0
- package/dist/analyzers/analysis/fileScanner.d.ts +10 -0
- package/dist/analyzers/analysis/fileScanner.d.ts.map +1 -0
- package/dist/analyzers/analysis/fileScanner.js +44 -0
- package/dist/analyzers/analysis/fileScanner.js.map +1 -0
- package/dist/analyzers/analysis/filterEngine.d.ts +2 -0
- package/dist/analyzers/analysis/filterEngine.d.ts.map +1 -0
- package/dist/analyzers/analysis/filterEngine.js +110 -0
- package/dist/analyzers/analysis/filterEngine.js.map +1 -0
- package/dist/analyzers/analysis/index.d.ts +12 -0
- package/dist/analyzers/analysis/index.d.ts.map +1 -0
- package/dist/analyzers/analysis/index.js +8 -0
- package/dist/analyzers/analysis/index.js.map +1 -0
- package/dist/analyzers/analysis/preprocessors/astroPreprocessor.d.ts +23 -0
- package/dist/analyzers/analysis/preprocessors/astroPreprocessor.d.ts.map +1 -0
- package/dist/analyzers/analysis/preprocessors/astroPreprocessor.js +40 -0
- package/dist/analyzers/analysis/preprocessors/astroPreprocessor.js.map +1 -0
- package/dist/analyzers/analysis/preprocessors/index.d.ts +5 -0
- package/dist/analyzers/analysis/preprocessors/index.d.ts.map +1 -0
- package/dist/analyzers/analysis/preprocessors/index.js +4 -0
- package/dist/analyzers/analysis/preprocessors/index.js.map +1 -0
- package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.d.ts +27 -0
- package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.d.ts.map +1 -0
- package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.js +50 -0
- package/dist/analyzers/analysis/preprocessors/sveltePreprocessor.js.map +1 -0
- package/dist/analyzers/analysis/preprocessors/types.d.ts +45 -0
- package/dist/analyzers/analysis/preprocessors/types.d.ts.map +1 -0
- package/dist/analyzers/analysis/preprocessors/types.js +2 -0
- package/dist/analyzers/analysis/preprocessors/types.js.map +1 -0
- package/dist/analyzers/analysis/preprocessors/vuePreprocessor.d.ts +21 -0
- package/dist/analyzers/analysis/preprocessors/vuePreprocessor.d.ts.map +1 -0
- package/dist/analyzers/analysis/preprocessors/vuePreprocessor.js +44 -0
- package/dist/analyzers/analysis/preprocessors/vuePreprocessor.js.map +1 -0
- package/dist/analyzers/analysis/tsMorphAnalyzer.d.ts +10 -0
- package/dist/analyzers/analysis/tsMorphAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/analysis/tsMorphAnalyzer.js +190 -0
- package/dist/analyzers/analysis/tsMorphAnalyzer.js.map +1 -0
- package/dist/analyzers/detectors/capabilityDetector.d.ts +28 -0
- package/dist/analyzers/detectors/capabilityDetector.d.ts.map +1 -0
- package/dist/analyzers/detectors/capabilityDetector.js +288 -0
- package/dist/analyzers/detectors/capabilityDetector.js.map +1 -0
- package/dist/analyzers/detectors/databaseDetector.d.ts +7 -0
- package/dist/analyzers/detectors/databaseDetector.d.ts.map +1 -0
- package/dist/analyzers/detectors/databaseDetector.js +71 -0
- package/dist/analyzers/detectors/databaseDetector.js.map +1 -0
- package/dist/analyzers/detectors/frameworkDetector.d.ts +22 -0
- package/dist/analyzers/detectors/frameworkDetector.d.ts.map +1 -0
- package/dist/analyzers/detectors/frameworkDetector.js +160 -0
- package/dist/analyzers/detectors/frameworkDetector.js.map +1 -0
- package/dist/analyzers/detectors/frontendFeatureDetector.d.ts +26 -0
- package/dist/analyzers/detectors/frontendFeatureDetector.d.ts.map +1 -0
- package/dist/analyzers/detectors/frontendFeatureDetector.js +269 -0
- package/dist/analyzers/detectors/frontendFeatureDetector.js.map +1 -0
- package/dist/analyzers/detectors/index.d.ts +11 -0
- package/dist/analyzers/detectors/index.d.ts.map +1 -0
- package/dist/analyzers/detectors/index.js +7 -0
- package/dist/analyzers/detectors/index.js.map +1 -0
- package/dist/analyzers/detectors/nestRouteDetector.d.ts +13 -0
- package/dist/analyzers/detectors/nestRouteDetector.d.ts.map +1 -0
- package/dist/analyzers/detectors/nestRouteDetector.js +69 -0
- package/dist/analyzers/detectors/nestRouteDetector.js.map +1 -0
- package/dist/analyzers/detectors/routeDetector.d.ts +22 -0
- package/dist/analyzers/detectors/routeDetector.d.ts.map +1 -0
- package/dist/analyzers/detectors/routeDetector.js +368 -0
- package/dist/analyzers/detectors/routeDetector.js.map +1 -0
- package/dist/analyzers/detectors/serviceDetector.d.ts +3 -0
- package/dist/analyzers/detectors/serviceDetector.d.ts.map +1 -0
- package/dist/analyzers/detectors/serviceDetector.js +81 -0
- package/dist/analyzers/detectors/serviceDetector.js.map +1 -0
- package/dist/analyzers/features/featureDetector.d.ts +22 -0
- package/dist/analyzers/features/featureDetector.d.ts.map +1 -0
- package/dist/analyzers/features/featureDetector.js +821 -0
- package/dist/analyzers/features/featureDetector.js.map +1 -0
- package/dist/analyzers/features/featureMerge.d.ts +65 -0
- package/dist/analyzers/features/featureMerge.d.ts.map +1 -0
- package/dist/analyzers/features/featureMerge.js +168 -0
- package/dist/analyzers/features/featureMerge.js.map +1 -0
- package/dist/analyzers/features/featureSimilarity.d.ts +152 -0
- package/dist/analyzers/features/featureSimilarity.d.ts.map +1 -0
- package/dist/analyzers/features/featureSimilarity.js +264 -0
- package/dist/analyzers/features/featureSimilarity.js.map +1 -0
- package/dist/analyzers/features/index.d.ts +6 -0
- package/dist/analyzers/features/index.d.ts.map +1 -0
- package/dist/analyzers/features/index.js +4 -0
- package/dist/analyzers/features/index.js.map +1 -0
- package/dist/analyzers/graph/dependencyGraph.d.ts +5 -0
- package/dist/analyzers/graph/dependencyGraph.d.ts.map +1 -0
- package/dist/analyzers/graph/dependencyGraph.js +88 -0
- package/dist/analyzers/graph/dependencyGraph.js.map +1 -0
- package/dist/analyzers/graph/dependencyMap.d.ts +43 -0
- package/dist/analyzers/graph/dependencyMap.d.ts.map +1 -0
- package/dist/analyzers/graph/dependencyMap.js +85 -0
- package/dist/analyzers/graph/dependencyMap.js.map +1 -0
- package/dist/analyzers/graph/entryPoints.d.ts +3 -0
- package/dist/analyzers/graph/entryPoints.d.ts.map +1 -0
- package/dist/analyzers/graph/entryPoints.js +21 -0
- package/dist/analyzers/graph/entryPoints.js.map +1 -0
- package/dist/analyzers/graph/index.d.ts +7 -0
- package/dist/analyzers/graph/index.d.ts.map +1 -0
- package/dist/analyzers/graph/index.js +5 -0
- package/dist/analyzers/graph/index.js.map +1 -0
- package/dist/analyzers/graph/sourceScope.d.ts +2 -0
- package/dist/analyzers/graph/sourceScope.d.ts.map +1 -0
- package/dist/analyzers/graph/sourceScope.js +30 -0
- package/dist/analyzers/graph/sourceScope.js.map +1 -0
- package/dist/analyzers/inference/domainInference.d.ts +58 -0
- package/dist/analyzers/inference/domainInference.d.ts.map +1 -0
- package/dist/analyzers/inference/domainInference.js +234 -0
- package/dist/analyzers/inference/domainInference.js.map +1 -0
- package/dist/analyzers/inference/index.d.ts +5 -0
- package/dist/analyzers/inference/index.d.ts.map +1 -0
- package/dist/analyzers/inference/index.js +3 -0
- package/dist/analyzers/inference/index.js.map +1 -0
- package/dist/analyzers/inference/ownershipTopology.d.ts +8 -0
- package/dist/analyzers/inference/ownershipTopology.d.ts.map +1 -0
- package/dist/analyzers/inference/ownershipTopology.js +65 -0
- package/dist/analyzers/inference/ownershipTopology.js.map +1 -0
- package/dist/analyzers/pipeline/analyzerRegistry.d.ts +9 -0
- package/dist/analyzers/pipeline/analyzerRegistry.d.ts.map +1 -0
- package/dist/analyzers/pipeline/analyzerRegistry.js +35 -0
- package/dist/analyzers/pipeline/analyzerRegistry.js.map +1 -0
- package/dist/analyzers/pipeline/heuristicAnalyzer.d.ts +12 -0
- package/dist/analyzers/pipeline/heuristicAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/pipeline/heuristicAnalyzer.js +150 -0
- package/dist/analyzers/pipeline/heuristicAnalyzer.js.map +1 -0
- package/dist/analyzers/pipeline/index.d.ts +7 -0
- package/dist/analyzers/pipeline/index.d.ts.map +1 -0
- package/dist/analyzers/pipeline/index.js +5 -0
- package/dist/analyzers/pipeline/index.js.map +1 -0
- package/dist/analyzers/pipeline/projectMap.d.ts +120 -0
- package/dist/analyzers/pipeline/projectMap.d.ts.map +1 -0
- package/dist/analyzers/pipeline/projectMap.js +726 -0
- package/dist/analyzers/pipeline/projectMap.js.map +1 -0
- package/dist/analyzers/pipeline/projectMetadata.d.ts +19 -0
- package/dist/analyzers/pipeline/projectMetadata.d.ts.map +1 -0
- package/dist/analyzers/pipeline/projectMetadata.js +149 -0
- package/dist/analyzers/pipeline/projectMetadata.js.map +1 -0
- package/dist/analyzers/pipeline/reasonTags.d.ts +6 -0
- package/dist/analyzers/pipeline/reasonTags.d.ts.map +1 -0
- package/dist/analyzers/pipeline/reasonTags.js +6 -0
- package/dist/analyzers/pipeline/reasonTags.js.map +1 -0
- package/dist/analyzers/registry/ai-providers.d.ts +3 -0
- package/dist/analyzers/registry/ai-providers.d.ts.map +1 -0
- package/dist/analyzers/registry/ai-providers.js +94 -0
- package/dist/analyzers/registry/ai-providers.js.map +1 -0
- package/dist/analyzers/registry/analytics.d.ts +3 -0
- package/dist/analyzers/registry/analytics.d.ts.map +1 -0
- package/dist/analyzers/registry/analytics.js +15 -0
- package/dist/analyzers/registry/analytics.js.map +1 -0
- package/dist/analyzers/registry/auth.d.ts +3 -0
- package/dist/analyzers/registry/auth.d.ts.map +1 -0
- package/dist/analyzers/registry/auth.js +18 -0
- package/dist/analyzers/registry/auth.js.map +1 -0
- package/dist/analyzers/registry/background-jobs.d.ts +3 -0
- package/dist/analyzers/registry/background-jobs.d.ts.map +1 -0
- package/dist/analyzers/registry/background-jobs.js +14 -0
- package/dist/analyzers/registry/background-jobs.js.map +1 -0
- package/dist/analyzers/registry/caching.d.ts +3 -0
- package/dist/analyzers/registry/caching.d.ts.map +1 -0
- package/dist/analyzers/registry/caching.js +13 -0
- package/dist/analyzers/registry/caching.js.map +1 -0
- package/dist/analyzers/registry/cms-content.d.ts +3 -0
- package/dist/analyzers/registry/cms-content.d.ts.map +1 -0
- package/dist/analyzers/registry/cms-content.js +15 -0
- package/dist/analyzers/registry/cms-content.js.map +1 -0
- package/dist/analyzers/registry/database.d.ts +3 -0
- package/dist/analyzers/registry/database.d.ts.map +1 -0
- package/dist/analyzers/registry/database.js +13 -0
- package/dist/analyzers/registry/database.js.map +1 -0
- package/dist/analyzers/registry/email.d.ts +3 -0
- package/dist/analyzers/registry/email.d.ts.map +1 -0
- package/dist/analyzers/registry/email.js +19 -0
- package/dist/analyzers/registry/email.js.map +1 -0
- package/dist/analyzers/registry/file-upload.d.ts +3 -0
- package/dist/analyzers/registry/file-upload.d.ts.map +1 -0
- package/dist/analyzers/registry/file-upload.js +19 -0
- package/dist/analyzers/registry/file-upload.js.map +1 -0
- package/dist/analyzers/registry/firebase.d.ts +3 -0
- package/dist/analyzers/registry/firebase.d.ts.map +1 -0
- package/dist/analyzers/registry/firebase.js +8 -0
- package/dist/analyzers/registry/firebase.js.map +1 -0
- package/dist/analyzers/registry/index.d.ts +16 -0
- package/dist/analyzers/registry/index.d.ts.map +1 -0
- package/dist/analyzers/registry/index.js +88 -0
- package/dist/analyzers/registry/index.js.map +1 -0
- package/dist/analyzers/registry/internationalization.d.ts +3 -0
- package/dist/analyzers/registry/internationalization.d.ts.map +1 -0
- package/dist/analyzers/registry/internationalization.js +13 -0
- package/dist/analyzers/registry/internationalization.js.map +1 -0
- package/dist/analyzers/registry/logging-monitoring.d.ts +3 -0
- package/dist/analyzers/registry/logging-monitoring.d.ts.map +1 -0
- package/dist/analyzers/registry/logging-monitoring.js +14 -0
- package/dist/analyzers/registry/logging-monitoring.js.map +1 -0
- package/dist/analyzers/registry/notifications.d.ts +3 -0
- package/dist/analyzers/registry/notifications.d.ts.map +1 -0
- package/dist/analyzers/registry/notifications.js +14 -0
- package/dist/analyzers/registry/notifications.js.map +1 -0
- package/dist/analyzers/registry/payments.d.ts +3 -0
- package/dist/analyzers/registry/payments.d.ts.map +1 -0
- package/dist/analyzers/registry/payments.js +23 -0
- package/dist/analyzers/registry/payments.js.map +1 -0
- package/dist/analyzers/registry/rate-limiting.d.ts +3 -0
- package/dist/analyzers/registry/rate-limiting.d.ts.map +1 -0
- package/dist/analyzers/registry/rate-limiting.js +13 -0
- package/dist/analyzers/registry/rate-limiting.js.map +1 -0
- package/dist/analyzers/registry/search.d.ts +3 -0
- package/dist/analyzers/registry/search.d.ts.map +1 -0
- package/dist/analyzers/registry/search.js +15 -0
- package/dist/analyzers/registry/search.js.map +1 -0
- package/dist/analyzers/registry/testing.d.ts +3 -0
- package/dist/analyzers/registry/testing.d.ts.map +1 -0
- package/dist/analyzers/registry/testing.js +13 -0
- package/dist/analyzers/registry/testing.js.map +1 -0
- package/dist/analyzers/registry/types.d.ts +14 -0
- package/dist/analyzers/registry/types.d.ts.map +1 -0
- package/dist/analyzers/registry/types.js +2 -0
- package/dist/analyzers/registry/types.js.map +1 -0
- package/dist/cache/agentNavigation.d.ts +7 -0
- package/dist/cache/agentNavigation.d.ts.map +1 -0
- package/dist/cache/agentNavigation.js +253 -0
- package/dist/cache/agentNavigation.js.map +1 -0
- package/dist/cache/fileHash.d.ts +2 -0
- package/dist/cache/fileHash.d.ts.map +1 -0
- package/dist/cache/fileHash.js +5 -0
- package/dist/cache/fileHash.js.map +1 -0
- package/dist/cache/snapshot.d.ts +20 -0
- package/dist/cache/snapshot.d.ts.map +1 -0
- package/dist/cache/snapshot.js +184 -0
- package/dist/cache/snapshot.js.map +1 -0
- package/dist/commands/analyze.d.ts +12 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +201 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/config.d.ts +10 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +65 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/doctor.d.ts +11 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +141 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/explain.d.ts +37 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +101 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/flow.d.ts +34 -0
- package/dist/commands/flow.d.ts.map +1 -0
- package/dist/commands/flow.js +151 -0
- package/dist/commands/flow.js.map +1 -0
- package/dist/commands/init.d.ts +16 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +197 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/map.d.ts +24 -0
- package/dist/commands/map.d.ts.map +1 -0
- package/dist/commands/map.js +282 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/commands/onboarding.d.ts +36 -0
- package/dist/commands/onboarding.d.ts.map +1 -0
- package/dist/commands/onboarding.js +226 -0
- package/dist/commands/onboarding.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +104 -0
- package/dist/index.js.map +1 -0
- package/dist/onboarding/model.d.ts +27 -0
- package/dist/onboarding/model.d.ts.map +1 -0
- package/dist/onboarding/model.js +2 -0
- package/dist/onboarding/model.js.map +1 -0
- package/dist/onboarding/modelBuilder.d.ts +4 -0
- package/dist/onboarding/modelBuilder.d.ts.map +1 -0
- package/dist/onboarding/modelBuilder.js +330 -0
- package/dist/onboarding/modelBuilder.js.map +1 -0
- package/dist/utils/agentsFile.d.ts +6 -0
- package/dist/utils/agentsFile.d.ts.map +1 -0
- package/dist/utils/agentsFile.js +85 -0
- package/dist/utils/agentsFile.js.map +1 -0
- package/dist/utils/config.d.ts +20 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +88 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/devmapFile.d.ts +3 -0
- package/dist/utils/devmapFile.d.ts.map +1 -0
- package/dist/utils/devmapFile.js +43 -0
- package/dist/utils/devmapFile.js.map +1 -0
- package/dist/utils/errors.d.ts +8 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +92 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gitignore.d.ts +2 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +22 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/dist/utils/help.d.ts +3 -0
- package/dist/utils/help.d.ts.map +1 -0
- package/dist/utils/help.js +19 -0
- package/dist/utils/help.js.map +1 -0
- package/dist/utils/mapRenderer.d.ts +39 -0
- package/dist/utils/mapRenderer.d.ts.map +1 -0
- package/dist/utils/mapRenderer.js +90 -0
- package/dist/utils/mapRenderer.js.map +1 -0
- package/dist/utils/markdownTerminal.d.ts +6 -0
- package/dist/utils/markdownTerminal.d.ts.map +1 -0
- package/dist/utils/markdownTerminal.js +153 -0
- package/dist/utils/markdownTerminal.js.map +1 -0
- package/dist/utils/output.d.ts +29 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +108 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/packageMetadata.d.ts +2 -0
- package/dist/utils/packageMetadata.d.ts.map +1 -0
- package/dist/utils/packageMetadata.js +5 -0
- package/dist/utils/packageMetadata.js.map +1 -0
- package/dist/utils/prompt.d.ts +11 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +81 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/slug.d.ts +2 -0
- package/dist/utils/slug.d.ts.map +1 -0
- package/dist/utils/slug.js +8 -0
- package/dist/utils/slug.js.map +1 -0
- package/dist/utils/targetResolver.d.ts +7 -0
- package/dist/utils/targetResolver.d.ts.map +1 -0
- package/dist/utils/targetResolver.js +15 -0
- package/dist/utils/targetResolver.js.map +1 -0
- package/dist/utils/welcome.d.ts +10 -0
- package/dist/utils/welcome.d.ts.map +1 -0
- package/dist/utils/welcome.js +80 -0
- package/dist/utils/welcome.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { buildBoundedTree, buildReverseGraph, DEFAULT_MAX_CHILDREN } from "../analyzers/graph/index.js";
|
|
4
|
+
import { isSnapshotStale, readSnapshotOrThrow } from "../cache/snapshot.js";
|
|
5
|
+
import { DevmapError } from "../utils/errors.js";
|
|
6
|
+
import { slugifyMapName } from "../utils/slug.js";
|
|
7
|
+
import { resolveFileTarget } from "../utils/targetResolver.js";
|
|
8
|
+
import { buildMapMarkdown, renderFlatList, renderMermaid, renderTree } from "../utils/mapRenderer.js";
|
|
9
|
+
import { output, withJsonOutput } from "../utils/output.js";
|
|
10
|
+
const USES_DEPTH = 2;
|
|
11
|
+
const USED_BY_DEPTH = 1;
|
|
12
|
+
const FEATURE_MAP_DEPTH = 4;
|
|
13
|
+
export async function mapCommand(target, options = {}) {
|
|
14
|
+
if (options.json) {
|
|
15
|
+
await withJsonOutput(async () => {
|
|
16
|
+
output.json(await runMap(target, options));
|
|
17
|
+
});
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const result = await runMap(target, options);
|
|
21
|
+
output.section(`DevMap — map: ${result.target}`);
|
|
22
|
+
if (result.snapshot.stale) {
|
|
23
|
+
output.warning("Snapshot is stale: this map may not reflect the latest code.");
|
|
24
|
+
output.note("Run devmap analyze --fresh, then repeat devmap map.");
|
|
25
|
+
}
|
|
26
|
+
output.markdown(result.markdown);
|
|
27
|
+
output.success(`Wrote ${result.writtenPaths.markdown}`);
|
|
28
|
+
output.success(`Wrote ${result.writtenPaths.mermaid}`);
|
|
29
|
+
}
|
|
30
|
+
async function runMap(target, options) {
|
|
31
|
+
const projectRoot = resolve(options.projectRoot ?? ".");
|
|
32
|
+
const snapshot = await readSnapshotOrThrow(projectRoot);
|
|
33
|
+
const stale = await isSnapshotStale(projectRoot, snapshot);
|
|
34
|
+
const resolved = resolveMapTarget(snapshot, target);
|
|
35
|
+
const built = resolved.mode === "file"
|
|
36
|
+
? buildFileMap(snapshot, resolved.value, options.depth, options.all)
|
|
37
|
+
: resolved.mode === "feature"
|
|
38
|
+
? buildFeatureMap(snapshot, resolved.value, options.depth, options.all)
|
|
39
|
+
: buildProjectMap(snapshot, options.all);
|
|
40
|
+
const slug = slugifyMapName(resolved.value);
|
|
41
|
+
const mapsDir = join(projectRoot, ".devmap", "maps");
|
|
42
|
+
await mkdir(mapsDir, { recursive: true });
|
|
43
|
+
const markdownPath = join(mapsDir, `${slug}.md`);
|
|
44
|
+
const mermaidPath = join(mapsDir, `${slug}.mermaid`);
|
|
45
|
+
await writeFile(markdownPath, built.markdown, "utf8");
|
|
46
|
+
await writeFile(mermaidPath, `${built.mermaid}\n`, "utf8");
|
|
47
|
+
return {
|
|
48
|
+
status: "ok",
|
|
49
|
+
mode: resolved.mode,
|
|
50
|
+
target: resolved.value,
|
|
51
|
+
markdown: built.markdown,
|
|
52
|
+
mermaid: built.mermaid,
|
|
53
|
+
writtenPaths: {
|
|
54
|
+
markdown: `.devmap/maps/${slug}.md`,
|
|
55
|
+
mermaid: `.devmap/maps/${slug}.mermaid`
|
|
56
|
+
},
|
|
57
|
+
snapshot: { generatedAt: snapshot.generatedAt, stale }
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function resolveMapTarget(snapshot, target) {
|
|
61
|
+
if (!target || target.trim() === "") {
|
|
62
|
+
return { mode: "project", value: "project" };
|
|
63
|
+
}
|
|
64
|
+
const feature = snapshot.features.find((candidate) => candidate.name.toLowerCase() === target.toLowerCase());
|
|
65
|
+
if (feature) {
|
|
66
|
+
return { mode: "feature", value: feature.name };
|
|
67
|
+
}
|
|
68
|
+
const fileTarget = resolveFileTarget(snapshot, target);
|
|
69
|
+
if (fileTarget) {
|
|
70
|
+
return fileTarget;
|
|
71
|
+
}
|
|
72
|
+
const featureNames = snapshot.features.map((f) => f.name).join(", ") || "(none detected)";
|
|
73
|
+
throw new DevmapError(`"${target}" isn't a known file or feature.`, `Known features: ${featureNames}. For a file, use its path relative to the project root.`);
|
|
74
|
+
}
|
|
75
|
+
function buildFileMap(snapshot, path, depth, all) {
|
|
76
|
+
const reverseGraph = buildReverseGraph(snapshot.fileGraph);
|
|
77
|
+
const maxChildren = all ? Infinity : DEFAULT_MAX_CHILDREN;
|
|
78
|
+
const usesTree = buildBoundedTree(snapshot.fileGraph, path, depth ?? USES_DEPTH, { maxChildren });
|
|
79
|
+
const usedByTree = buildBoundedTree(reverseGraph, path, depth ?? USED_BY_DEPTH, { maxChildren });
|
|
80
|
+
const mermaidEdges = [
|
|
81
|
+
...collectEdgesFromTree(path, usesTree, "forward"),
|
|
82
|
+
...collectEdgesFromTree(path, usedByTree, "reverse")
|
|
83
|
+
];
|
|
84
|
+
return {
|
|
85
|
+
markdown: buildMapMarkdown({
|
|
86
|
+
title: path,
|
|
87
|
+
sections: [
|
|
88
|
+
{ heading: "Uses", body: renderTree(usesTree) },
|
|
89
|
+
{ heading: "Used by", body: renderTree(usedByTree) }
|
|
90
|
+
],
|
|
91
|
+
mermaid: renderMermaid(mermaidEdges)
|
|
92
|
+
}),
|
|
93
|
+
mermaid: renderMermaid(mermaidEdges)
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function collectEdgesFromTree(root, node, direction, parent = root) {
|
|
97
|
+
const edges = [];
|
|
98
|
+
for (const child of node.children) {
|
|
99
|
+
edges.push(direction === "forward"
|
|
100
|
+
? { from: parent, to: child.path }
|
|
101
|
+
: { from: child.path, to: parent });
|
|
102
|
+
if (!child.isCycle) {
|
|
103
|
+
edges.push(...collectEdgesFromTree(root, child, direction, child.path));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return edges;
|
|
107
|
+
}
|
|
108
|
+
function buildFeatureMap(snapshot, name, depth, all) {
|
|
109
|
+
const feature = snapshot.features.find((candidate) => candidate.name === name);
|
|
110
|
+
if (!feature) {
|
|
111
|
+
throw new DevmapError(`Feature "${name}" not found in the current snapshot.`);
|
|
112
|
+
}
|
|
113
|
+
const featureFiles = new Set(feature.files);
|
|
114
|
+
const reverseGraph = buildReverseGraph(snapshot.fileGraph);
|
|
115
|
+
const root = feature.entryPoint ?? feature.files[0];
|
|
116
|
+
const maxChildren = all ? Infinity : DEFAULT_MAX_CHILDREN;
|
|
117
|
+
const listCap = all ? Infinity : DEFAULT_MAX_CHILDREN;
|
|
118
|
+
const internalTree = root
|
|
119
|
+
? buildBoundedTree(snapshot.fileGraph, root, depth ?? FEATURE_MAP_DEPTH, {
|
|
120
|
+
filter: (path) => featureFiles.has(path),
|
|
121
|
+
maxChildren
|
|
122
|
+
})
|
|
123
|
+
: { path: name, children: [], isCycle: false };
|
|
124
|
+
const reached = new Set();
|
|
125
|
+
if (root)
|
|
126
|
+
collectTreePaths(internalTree, reached);
|
|
127
|
+
const unreached = feature.files.filter((path) => path !== root && !reached.has(path));
|
|
128
|
+
const externalDependencies = new Set();
|
|
129
|
+
for (const file of feature.files) {
|
|
130
|
+
for (const dependency of snapshot.fileGraph[file] ?? []) {
|
|
131
|
+
if (!featureFiles.has(dependency))
|
|
132
|
+
externalDependencies.add(dependency);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const externalDependents = new Set();
|
|
136
|
+
for (const file of feature.files) {
|
|
137
|
+
for (const dependent of reverseGraph[file] ?? []) {
|
|
138
|
+
if (!featureFiles.has(dependent))
|
|
139
|
+
externalDependents.add(dependent);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Cap which files are actually drawn as edges to match the (possibly
|
|
143
|
+
// truncated) flat lists below — otherwise the mermaid diagram could still
|
|
144
|
+
// balloon even after the text list is capped.
|
|
145
|
+
const shownDependencies = Number.isFinite(listCap)
|
|
146
|
+
? new Set([...externalDependencies].slice(0, listCap))
|
|
147
|
+
: externalDependencies;
|
|
148
|
+
const shownDependents = Number.isFinite(listCap)
|
|
149
|
+
? new Set([...externalDependents].slice(0, listCap))
|
|
150
|
+
: externalDependents;
|
|
151
|
+
const dependencyEdges = [];
|
|
152
|
+
for (const file of feature.files) {
|
|
153
|
+
for (const dependency of snapshot.fileGraph[file] ?? []) {
|
|
154
|
+
if (shownDependencies.has(dependency))
|
|
155
|
+
dependencyEdges.push({ from: file, to: dependency });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const dependentEdges = [];
|
|
159
|
+
for (const file of feature.files) {
|
|
160
|
+
for (const dependent of reverseGraph[file] ?? []) {
|
|
161
|
+
if (shownDependents.has(dependent))
|
|
162
|
+
dependentEdges.push({ from: dependent, to: file });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const internalEdges = root ? collectEdgesFromTree(root, internalTree, "forward") : [];
|
|
166
|
+
const mermaidEdges = [...internalEdges, ...dependencyEdges, ...dependentEdges];
|
|
167
|
+
const sections = [
|
|
168
|
+
{
|
|
169
|
+
heading: "Internal structure",
|
|
170
|
+
body: root ? `${root}\n${renderTree(internalTree)}` : renderTree(internalTree)
|
|
171
|
+
}
|
|
172
|
+
];
|
|
173
|
+
if (unreached.length > 0) {
|
|
174
|
+
sections.push({
|
|
175
|
+
heading: "Other files in this feature",
|
|
176
|
+
body: renderFlatList(unreached, { cap: listCap })
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
sections.push({
|
|
180
|
+
heading: "Depends on (outside this feature)",
|
|
181
|
+
body: renderFlatList([...externalDependencies], { cap: listCap })
|
|
182
|
+
}, {
|
|
183
|
+
heading: "Used by (outside this feature)",
|
|
184
|
+
body: renderFlatList([...externalDependents], { cap: listCap })
|
|
185
|
+
});
|
|
186
|
+
return {
|
|
187
|
+
markdown: buildMapMarkdown({ title: name, sections, mermaid: renderMermaid(mermaidEdges) }),
|
|
188
|
+
mermaid: renderMermaid(mermaidEdges)
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function collectTreePaths(node, into) {
|
|
192
|
+
into.add(node.path);
|
|
193
|
+
if (!node.isCycle) {
|
|
194
|
+
for (const child of node.children)
|
|
195
|
+
collectTreePaths(child, into);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
function buildProjectMap(snapshot, all) {
|
|
199
|
+
if (all) {
|
|
200
|
+
return buildFullProjectDump(snapshot);
|
|
201
|
+
}
|
|
202
|
+
const features = snapshot.features;
|
|
203
|
+
const fileToFeature = new Map();
|
|
204
|
+
for (const feature of features) {
|
|
205
|
+
for (const file of feature.files) {
|
|
206
|
+
if (!fileToFeature.has(file))
|
|
207
|
+
fileToFeature.set(file, feature.name);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
const featureSummaries = features.map((feature) => `${feature.name} (${feature.files.length} file${feature.files.length === 1 ? "" : "s"})`);
|
|
211
|
+
const crossFeatureEdgeKeys = new Set();
|
|
212
|
+
const mermaidEdges = [];
|
|
213
|
+
for (const feature of features) {
|
|
214
|
+
for (const file of feature.files) {
|
|
215
|
+
for (const dependency of snapshot.fileGraph[file] ?? []) {
|
|
216
|
+
const dependencyFeature = fileToFeature.get(dependency);
|
|
217
|
+
if (dependencyFeature && dependencyFeature !== feature.name) {
|
|
218
|
+
const key = `${feature.name}=>${dependencyFeature}`;
|
|
219
|
+
if (!crossFeatureEdgeKeys.has(key)) {
|
|
220
|
+
crossFeatureEdgeKeys.add(key);
|
|
221
|
+
mermaidEdges.push({ from: feature.name, to: dependencyFeature });
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
const relationshipLines = [...crossFeatureEdgeKeys].map((key) => {
|
|
228
|
+
const [from, to] = key.split("=>");
|
|
229
|
+
return ` - ${from} → ${to}`;
|
|
230
|
+
});
|
|
231
|
+
const totalFiles = Object.keys(snapshot.fileIndex).length;
|
|
232
|
+
const mappedFiles = fileToFeature.size;
|
|
233
|
+
const coverageNote = totalFiles > 0
|
|
234
|
+
? `${mappedFiles} of ${totalFiles} files belong to a detected feature. The rest (config, infra, tests, etc.) aren't shown here — use "devmap map <file>" for any specific file.`
|
|
235
|
+
: "(no files scanned)";
|
|
236
|
+
const sections = [
|
|
237
|
+
{
|
|
238
|
+
heading: "Features",
|
|
239
|
+
body: featureSummaries.length > 0 ? renderFlatList(featureSummaries) : "(none detected)"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
heading: "Feature relationships",
|
|
243
|
+
body: relationshipLines.length > 0
|
|
244
|
+
? relationshipLines.join("\n")
|
|
245
|
+
: "(no cross-feature dependencies detected)"
|
|
246
|
+
},
|
|
247
|
+
{ heading: "Entry points", body: renderFlatList(snapshot.entryPoints) },
|
|
248
|
+
{ heading: "Coverage", body: coverageNote }
|
|
249
|
+
];
|
|
250
|
+
return {
|
|
251
|
+
markdown: buildMapMarkdown({ title: "Project", sections, mermaid: renderMermaid(mermaidEdges) }),
|
|
252
|
+
mermaid: renderMermaid(mermaidEdges)
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
function buildFullProjectDump(snapshot) {
|
|
256
|
+
const files = Object.keys(snapshot.fileGraph).sort();
|
|
257
|
+
const mermaidEdges = [];
|
|
258
|
+
const lines = [];
|
|
259
|
+
for (const file of files) {
|
|
260
|
+
const dependencies = snapshot.fileGraph[file] ?? [];
|
|
261
|
+
lines.push(dependencies.length > 0
|
|
262
|
+
? ` - ${file} → ${dependencies.join(", ")}`
|
|
263
|
+
: ` - ${file}`);
|
|
264
|
+
for (const dependency of dependencies) {
|
|
265
|
+
mermaidEdges.push({ from: file, to: dependency });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return {
|
|
269
|
+
markdown: buildMapMarkdown({
|
|
270
|
+
title: "Project (full)",
|
|
271
|
+
sections: [
|
|
272
|
+
{
|
|
273
|
+
heading: "All files",
|
|
274
|
+
body: lines.length > 0 ? lines.join("\n") : "(no files scanned)"
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
mermaid: renderMermaid(mermaidEdges)
|
|
278
|
+
}),
|
|
279
|
+
mermaid: renderMermaid(mermaidEdges)
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/commands/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ProjectMap } from "../analyzers/pipeline/index.js";
|
|
2
|
+
import type { OnboardingLanguage, OnboardingModel, ConceptualStep, FeatureSummary, StartHereItem } from "../onboarding/model.js";
|
|
3
|
+
import { type Prompt } from "../utils/prompt.js";
|
|
4
|
+
export type { OnboardingLanguage } from "../onboarding/model.js";
|
|
5
|
+
export type OnboardingOptions = {
|
|
6
|
+
json?: boolean;
|
|
7
|
+
language?: string;
|
|
8
|
+
projectRoot?: string;
|
|
9
|
+
prompt?: Prompt;
|
|
10
|
+
target?: string;
|
|
11
|
+
write?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type OnboardingGuide = {
|
|
14
|
+
status: "ok";
|
|
15
|
+
language: OnboardingLanguage;
|
|
16
|
+
projectName: string;
|
|
17
|
+
tagline: string;
|
|
18
|
+
stackLine: string;
|
|
19
|
+
whatThisIs: string;
|
|
20
|
+
howItWorks: ConceptualStep[];
|
|
21
|
+
features: FeatureSummary[];
|
|
22
|
+
startHere: StartHereItem[];
|
|
23
|
+
snapshot: {
|
|
24
|
+
generatedAt: string;
|
|
25
|
+
stale: boolean;
|
|
26
|
+
};
|
|
27
|
+
markdown: string;
|
|
28
|
+
writtenPath: string | null;
|
|
29
|
+
};
|
|
30
|
+
export declare function onboardingCommand(options?: OnboardingOptions): Promise<void>;
|
|
31
|
+
export declare function buildOnboardingMarkdown(model: OnboardingModel, options?: {
|
|
32
|
+
stale?: boolean;
|
|
33
|
+
language?: OnboardingLanguage;
|
|
34
|
+
flows?: ProjectMap["flows"];
|
|
35
|
+
}): string;
|
|
36
|
+
//# sourceMappingURL=onboarding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/commands/onboarding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEjI,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtF;AAoCD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CACxB,GACL,MAAM,CA4ER"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { writeFile } from "node:fs/promises";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { isSnapshotStale, readSnapshotOrThrow } from "../cache/snapshot.js";
|
|
4
|
+
import { buildOnboardingModel } from "../onboarding/modelBuilder.js";
|
|
5
|
+
import { output, withJsonOutput } from "../utils/output.js";
|
|
6
|
+
import { createPrompt } from "../utils/prompt.js";
|
|
7
|
+
export async function onboardingCommand(options = {}) {
|
|
8
|
+
if (options.json) {
|
|
9
|
+
await withJsonOutput(async () => {
|
|
10
|
+
output.json(await runOnboarding(options));
|
|
11
|
+
});
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const guide = await runOnboarding(options);
|
|
15
|
+
output.section("DevMap Onboarding");
|
|
16
|
+
if (guide.snapshot.stale) {
|
|
17
|
+
output.warning("Snapshot is stale: this guide may use outdated project structure.");
|
|
18
|
+
output.note("Run devmap analyze --fresh, then repeat devmap onboarding.");
|
|
19
|
+
}
|
|
20
|
+
output.markdown(guide.markdown);
|
|
21
|
+
if (guide.writtenPath) {
|
|
22
|
+
output.success(`Wrote ${guide.writtenPath}`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
output.note("To write this guide to ONBOARDING.md, run devmap onboarding --write.");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function runOnboarding(options) {
|
|
29
|
+
const projectRoot = resolve(options.projectRoot ?? options.target ?? ".");
|
|
30
|
+
const snapshot = await readSnapshotOrThrow(projectRoot);
|
|
31
|
+
const stale = await isSnapshotStale(projectRoot, snapshot);
|
|
32
|
+
const language = await resolveOnboardingLanguage(options);
|
|
33
|
+
const model = buildOnboardingModel(snapshot, language);
|
|
34
|
+
model.isStale = stale;
|
|
35
|
+
const markdown = buildOnboardingMarkdown(model, { stale, language, flows: snapshot.flows });
|
|
36
|
+
const writtenPath = options.write ? "ONBOARDING.md" : null;
|
|
37
|
+
if (writtenPath) {
|
|
38
|
+
await writeFile(join(projectRoot, writtenPath), `${markdown}\n`, "utf8");
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
status: "ok",
|
|
42
|
+
language,
|
|
43
|
+
projectName: model.projectName,
|
|
44
|
+
tagline: model.tagline,
|
|
45
|
+
stackLine: model.stackLine,
|
|
46
|
+
whatThisIs: model.whatThisIs,
|
|
47
|
+
howItWorks: model.howItWorks,
|
|
48
|
+
features: model.features,
|
|
49
|
+
startHere: model.startHere,
|
|
50
|
+
snapshot: {
|
|
51
|
+
generatedAt: snapshot.generatedAt,
|
|
52
|
+
stale
|
|
53
|
+
},
|
|
54
|
+
markdown,
|
|
55
|
+
writtenPath
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function buildOnboardingMarkdown(model, options = {}) {
|
|
59
|
+
const lang = options.language ?? model.language;
|
|
60
|
+
const sections = [];
|
|
61
|
+
// Header
|
|
62
|
+
sections.push(`# ${model.projectName}`);
|
|
63
|
+
sections.push("");
|
|
64
|
+
sections.push(model.tagline);
|
|
65
|
+
if (model.stackLine)
|
|
66
|
+
sections.push(`\`${model.stackLine}\``);
|
|
67
|
+
sections.push("");
|
|
68
|
+
// Stale warning
|
|
69
|
+
if (options.stale || model.isStale) {
|
|
70
|
+
sections.push(lang === "id"
|
|
71
|
+
? "> ⚠ Snapshot stale — jalankan `devmap analyze --fresh` sebelum mengandalkan guide ini."
|
|
72
|
+
: "> ⚠ Snapshot is stale — run `devmap analyze --fresh` before relying on this guide.");
|
|
73
|
+
sections.push("");
|
|
74
|
+
}
|
|
75
|
+
sections.push("---");
|
|
76
|
+
sections.push("");
|
|
77
|
+
// Section 1: What this is
|
|
78
|
+
sections.push(lang === "id" ? "## Tentang project ini" : "## What this is");
|
|
79
|
+
sections.push("");
|
|
80
|
+
sections.push(model.whatThisIs);
|
|
81
|
+
sections.push("");
|
|
82
|
+
// Section 2: How it works
|
|
83
|
+
sections.push(lang === "id" ? "## Cara kerjanya" : "## How it works");
|
|
84
|
+
sections.push("");
|
|
85
|
+
for (let i = 0; i < model.howItWorks.length; i++) {
|
|
86
|
+
sections.push(`${i + 1}. ${model.howItWorks[i].step}`);
|
|
87
|
+
}
|
|
88
|
+
sections.push("");
|
|
89
|
+
// Section 3: What's inside
|
|
90
|
+
if (model.features.length > 0) {
|
|
91
|
+
sections.push(lang === "id" ? "## Fitur yang ada" : "## What's inside");
|
|
92
|
+
sections.push("");
|
|
93
|
+
sections.push(...renderFeatureTable(model.features, lang));
|
|
94
|
+
sections.push("");
|
|
95
|
+
}
|
|
96
|
+
// Section 4: Start here
|
|
97
|
+
if (model.startHere.length > 0) {
|
|
98
|
+
sections.push(lang === "id" ? "## Mulai dari sini" : "## Start here");
|
|
99
|
+
sections.push("");
|
|
100
|
+
sections.push(...renderStartHereTable(model.startHere, lang));
|
|
101
|
+
sections.push("");
|
|
102
|
+
}
|
|
103
|
+
// Section 5: Key flows (optional, dari snapshot langsung)
|
|
104
|
+
const flows = options.flows ?? [];
|
|
105
|
+
if (flows.length > 0) {
|
|
106
|
+
sections.push(lang === "id" ? "## Flow utama" : "## Key flows");
|
|
107
|
+
sections.push("");
|
|
108
|
+
sections.push(...renderKeyFlows(flows, lang));
|
|
109
|
+
sections.push("");
|
|
110
|
+
}
|
|
111
|
+
// Section 6: Go deeper (statik)
|
|
112
|
+
sections.push(lang === "id" ? "## Lebih dalam" : "## Go deeper");
|
|
113
|
+
sections.push("");
|
|
114
|
+
sections.push(...renderGoDeeper(lang));
|
|
115
|
+
sections.push("");
|
|
116
|
+
// Footer
|
|
117
|
+
sections.push("---");
|
|
118
|
+
sections.push(lang === "id"
|
|
119
|
+
? "*Dibuat oleh DevMap · Jalankan `devmap analyze` untuk refresh*"
|
|
120
|
+
: "*Generated by DevMap · Run `devmap analyze` to refresh*");
|
|
121
|
+
return sections.join("\n").replace(/\n{3,}/g, "\n\n");
|
|
122
|
+
}
|
|
123
|
+
function renderFeatureTable(features, lang) {
|
|
124
|
+
const header = lang === "id"
|
|
125
|
+
? ["| Fitur | Fungsi |", "|-------|--------|"]
|
|
126
|
+
: ["| Feature | What it does |", "|---------|-------------|"];
|
|
127
|
+
const rows = features.map((f) => {
|
|
128
|
+
const entryNote = f.entryFile ? ` Entry: \`${f.entryFile}\`` : "";
|
|
129
|
+
return `| ${f.name} | ${f.what}${entryNote} |`;
|
|
130
|
+
});
|
|
131
|
+
return [...header, ...rows];
|
|
132
|
+
}
|
|
133
|
+
function renderStartHereTable(items, lang) {
|
|
134
|
+
const header = lang === "id"
|
|
135
|
+
? ["| # | File | Kenapa baca ini |", "|---|------|-----------------|"]
|
|
136
|
+
: ["| # | File | Why read this |", "|---|------|---------------|"];
|
|
137
|
+
const rows = items.map((item) => `| ${item.order} | \`${item.path}\` | ${item.reason} |`);
|
|
138
|
+
return [...header, ...rows];
|
|
139
|
+
}
|
|
140
|
+
function renderKeyFlows(flows, lang) {
|
|
141
|
+
const lines = [];
|
|
142
|
+
const topFlows = flows
|
|
143
|
+
.filter((f) => f.steps.length > 1)
|
|
144
|
+
.slice(0, 3);
|
|
145
|
+
for (const flow of topFlows) {
|
|
146
|
+
lines.push(`### ${flow.name}`);
|
|
147
|
+
lines.push("");
|
|
148
|
+
if (flow.entryPoint) {
|
|
149
|
+
lines.push(`\`${flow.entryPoint}\``);
|
|
150
|
+
}
|
|
151
|
+
for (let i = 0; i < flow.steps.length; i++) {
|
|
152
|
+
const step = flow.steps[i];
|
|
153
|
+
const isLast = i === flow.steps.length - 1;
|
|
154
|
+
const fileLabel = step.file ? `\`${step.file}\`` : step.label;
|
|
155
|
+
const purposeNote = step.purpose ? ` — ${step.purpose}` : "";
|
|
156
|
+
const prefix = isLast ? " └─" : " ├─";
|
|
157
|
+
lines.push(`${prefix} ${fileLabel}${purposeNote}`);
|
|
158
|
+
}
|
|
159
|
+
lines.push("");
|
|
160
|
+
}
|
|
161
|
+
return lines;
|
|
162
|
+
}
|
|
163
|
+
// Set of actually-registered CLI commands from index.ts.
|
|
164
|
+
// Add entries here when new commands ship so they appear in the onboarding guide.
|
|
165
|
+
const AVAILABLE_COMMANDS = new Set([
|
|
166
|
+
"init",
|
|
167
|
+
"analyze",
|
|
168
|
+
"onboarding",
|
|
169
|
+
"config",
|
|
170
|
+
"doctor",
|
|
171
|
+
"map",
|
|
172
|
+
"flow",
|
|
173
|
+
"explain",
|
|
174
|
+
]);
|
|
175
|
+
const GO_DEEPER_ENTRIES = [
|
|
176
|
+
{ command: "analyze", args: "<target>", en: "analyze project structure and generate a static map", id: "analisis struktur proyek dan hasilkan peta statis" },
|
|
177
|
+
{ command: "doctor", en: "diagnose DevMap setup issues", id: "diagnosis masalah pengaturan DevMap" },
|
|
178
|
+
{ command: "config", args: "model <model>", en: "set a model override or restore automatic routing", id: "atur override model atau routing otomatis" },
|
|
179
|
+
{ command: "init", en: "initialize DevMap configuration", id: "inisialisasi konfigurasi DevMap" },
|
|
180
|
+
{ command: "explain", args: "<file>", en: "understand what a specific file does", id: "pahami apa yang dilakukan file tertentu" },
|
|
181
|
+
{ command: "map", en: "see the full dependency graph", id: "lihat graph dependency lengkap" },
|
|
182
|
+
{ command: "flow", en: "trace a request end-to-end", id: "trace request dari awal sampai akhir" },
|
|
183
|
+
];
|
|
184
|
+
function renderGoDeeper(lang) {
|
|
185
|
+
return GO_DEEPER_ENTRIES
|
|
186
|
+
.filter(entry => AVAILABLE_COMMANDS.has(entry.command))
|
|
187
|
+
.map(entry => {
|
|
188
|
+
const cmd = entry.args
|
|
189
|
+
? `devmap ${entry.command} ${entry.args}`
|
|
190
|
+
: `devmap ${entry.command}`;
|
|
191
|
+
const desc = lang === "id" ? entry.id : entry.en;
|
|
192
|
+
return `- \`${cmd}\` — ${desc}`;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
// ── Language resolution ───────────────────────────────────────────────────────
|
|
196
|
+
async function resolveOnboardingLanguage(options) {
|
|
197
|
+
const explicitLanguage = normalizeOnboardingLanguage(options.language);
|
|
198
|
+
if (explicitLanguage) {
|
|
199
|
+
return explicitLanguage;
|
|
200
|
+
}
|
|
201
|
+
if (options.json || (!options.prompt && !process.stdin.isTTY)) {
|
|
202
|
+
return "en";
|
|
203
|
+
}
|
|
204
|
+
const prompt = options.prompt ?? createPrompt();
|
|
205
|
+
try {
|
|
206
|
+
const answer = await prompt.ask("Onboarding language? [en/id] (default: en): ");
|
|
207
|
+
return normalizeOnboardingLanguage(answer) ?? "en";
|
|
208
|
+
}
|
|
209
|
+
finally {
|
|
210
|
+
prompt.close();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function normalizeOnboardingLanguage(value) {
|
|
214
|
+
const normalized = value?.trim().toLowerCase();
|
|
215
|
+
if (!normalized) {
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
if (["id", "ind", "indo", "indonesia", "indonesian", "bahasa indonesia"].includes(normalized)) {
|
|
219
|
+
return "id";
|
|
220
|
+
}
|
|
221
|
+
if (["en", "eng", "english", "inggris"].includes(normalized)) {
|
|
222
|
+
return "en";
|
|
223
|
+
}
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=onboarding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/commands/onboarding.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|