@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 @@
|
|
|
1
|
+
{"version":3,"file":"featureDetector.js","sourceRoot":"","sources":["../../../src/analyzers/features/featureDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* featureMerge.ts
|
|
3
|
+
*
|
|
4
|
+
* Centralized feature merge logic.
|
|
5
|
+
*
|
|
6
|
+
* Sebelumnya merge tersebar di dua tempat:
|
|
7
|
+
* 1. featureDetector.ts → mergeFeature() pakai normalizeFeatureName (string only)
|
|
8
|
+
* 2. projectMap.ts → domain feature merge pakai f.name.toLowerCase() equality
|
|
9
|
+
*
|
|
10
|
+
* Keduanya punya flaw yang sama: bergantung pada nama sebagai identity.
|
|
11
|
+
* "Plan Management" dan "Customizable Plans" tidak akan di-merge karena nama berbeda.
|
|
12
|
+
*
|
|
13
|
+
* Refactor ini:
|
|
14
|
+
* - Ganti kedua merge sites dengan satu fungsi: mergeIntoFeatureList()
|
|
15
|
+
* - Pakai featureSimilarity.ts sebagai basis comparison
|
|
16
|
+
* - Canonical name: first-seen wins (stabil antar-run)
|
|
17
|
+
* - Merge enriches data (files, terms, entities) tanpa rename feature
|
|
18
|
+
*/
|
|
19
|
+
import type { FeatureInfo } from "./featureDetector.js";
|
|
20
|
+
import { type FeatureIdentity } from "./featureSimilarity.js";
|
|
21
|
+
export declare function toFeatureIdentity(feature: FeatureInfo): FeatureIdentity;
|
|
22
|
+
/**
|
|
23
|
+
* mergeIntoFeatureList — merge satu feature ke list yang sudah ada.
|
|
24
|
+
*
|
|
25
|
+
* Algorithm:
|
|
26
|
+
* 1. Cari existing feature yang similar (pakai similarity engine)
|
|
27
|
+
* 2. Kalau ditemukan → enrich existing (files, terms, entities), jangan rename
|
|
28
|
+
* 3. Kalau tidak ditemukan → tambah sebagai feature baru
|
|
29
|
+
*
|
|
30
|
+
* Canonical name: feature pertama yang masuk MENANG — tidak pernah di-overwrite.
|
|
31
|
+
* Ini kunci stabilitas: walaupun AI run ke-2 generate "Customizable Plans",
|
|
32
|
+
* kalau "Plan Management" sudah ada di list, namanya tetap "Plan Management".
|
|
33
|
+
*
|
|
34
|
+
* @param features - List feature yang sudah ada (mutated in place)
|
|
35
|
+
* @param addition - Feature baru yang ingin di-merge
|
|
36
|
+
* @param threshold - Similarity threshold (default: DEFAULT_SIMILARITY_THRESHOLD)
|
|
37
|
+
*/
|
|
38
|
+
export declare function mergeIntoFeatureList(features: FeatureInfo[], addition: FeatureInfo, threshold?: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* mergeFeatureData — combine data dari dua feature yang sudah diidentifikasi sama.
|
|
41
|
+
*
|
|
42
|
+
* Rules:
|
|
43
|
+
* - name: existing wins (canonical first-seen)
|
|
44
|
+
* - purpose: existing wins KECUALI existing adalah generic fallback
|
|
45
|
+
* - files: union (dedup)
|
|
46
|
+
* - evidence: union (dedup)
|
|
47
|
+
* - searchTerms: union (capped di MAX_SEARCH_TERMS)
|
|
48
|
+
* - confidence: ambil yang lebih tinggi (jangan downgrade)
|
|
49
|
+
* - entryPoints: union — domain feature bisa bawa entryPoints baru
|
|
50
|
+
* - businessFlow: existing wins jika meaningful, fallback ke addition
|
|
51
|
+
*/
|
|
52
|
+
export declare function mergeFeatureData(existing: FeatureInfo, addition: FeatureInfo): FeatureInfo;
|
|
53
|
+
/**
|
|
54
|
+
* mergeDomainFeatures — merge semua domain features ke static feature list.
|
|
55
|
+
*
|
|
56
|
+
* Ini menggantikan loop di projectMap.ts yang hanya pakai name.toLowerCase() equality.
|
|
57
|
+
* Sekarang pakai similarity engine sehingga "Customizable Plans" tidak duplicate
|
|
58
|
+
* "Plan Management" yang sudah ada dari static analysis.
|
|
59
|
+
*
|
|
60
|
+
* @param features - Static features (mutated)
|
|
61
|
+
* @param domainFeatures - AI-inferred features
|
|
62
|
+
* @param threshold - Similarity threshold
|
|
63
|
+
*/
|
|
64
|
+
export declare function mergeDomainFeatures(features: FeatureInfo[], domainFeatures: FeatureInfo[], threshold?: number): void;
|
|
65
|
+
//# sourceMappingURL=featureMerge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureMerge.d.ts","sourceRoot":"","sources":["../../../src/analyzers/features/featureMerge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAEL,KAAK,eAAe,EAGrB,MAAM,wBAAwB,CAAC;AAMhC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAUvE;AAwCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,WAAW,EACrB,SAAS,SAA+B,GACvC,IAAI,CAeN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,CAsB1F;AAmBD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,WAAW,EAAE,EACvB,cAAc,EAAE,WAAW,EAAE,EAC7B,SAAS,SAA+B,GACvC,IAAI,CAIN"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* featureMerge.ts
|
|
3
|
+
*
|
|
4
|
+
* Centralized feature merge logic.
|
|
5
|
+
*
|
|
6
|
+
* Sebelumnya merge tersebar di dua tempat:
|
|
7
|
+
* 1. featureDetector.ts → mergeFeature() pakai normalizeFeatureName (string only)
|
|
8
|
+
* 2. projectMap.ts → domain feature merge pakai f.name.toLowerCase() equality
|
|
9
|
+
*
|
|
10
|
+
* Keduanya punya flaw yang sama: bergantung pada nama sebagai identity.
|
|
11
|
+
* "Plan Management" dan "Customizable Plans" tidak akan di-merge karena nama berbeda.
|
|
12
|
+
*
|
|
13
|
+
* Refactor ini:
|
|
14
|
+
* - Ganti kedua merge sites dengan satu fungsi: mergeIntoFeatureList()
|
|
15
|
+
* - Pakai featureSimilarity.ts sebagai basis comparison
|
|
16
|
+
* - Canonical name: first-seen wins (stabil antar-run)
|
|
17
|
+
* - Merge enriches data (files, terms, entities) tanpa rename feature
|
|
18
|
+
*/
|
|
19
|
+
import { findSimilarFeature, MAX_SEARCH_TERMS, DEFAULT_SIMILARITY_THRESHOLD, } from "./featureSimilarity.js";
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Convert FeatureInfo ke FeatureIdentity untuk similarity comparison
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
export function toFeatureIdentity(feature) {
|
|
24
|
+
return {
|
|
25
|
+
name: feature.name,
|
|
26
|
+
// Sort arrays deterministically agar fingerprint dan similarity
|
|
27
|
+
// comparison konsisten antar-run.
|
|
28
|
+
files: [...feature.files].sort(),
|
|
29
|
+
searchTerms: [...feature.searchTerms].sort(),
|
|
30
|
+
relatedEntities: extractRelatedEntities(feature).sort(),
|
|
31
|
+
purpose: feature.purpose,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* extractRelatedEntities — derive entity names dari feature data.
|
|
36
|
+
*
|
|
37
|
+
* entityGraphToFeatures() inject entity name + owned/peer names ke searchTerms.
|
|
38
|
+
* capabilitiesToFeatures() juga inject entity names via cap.entities.
|
|
39
|
+
*
|
|
40
|
+
* Filter ketat: hanya entity name dari feature name pattern, bukan asal-asalan
|
|
41
|
+
* dari searchTerms (yang bisa berisi generic technical keywords).
|
|
42
|
+
*
|
|
43
|
+
* entityOverlap di similarity engine tetap dapat sinyal dari searchTerms
|
|
44
|
+
* melalui termOverlap — jadi entityOverlap khusus menangkap entity name
|
|
45
|
+
* yang eksplisit dari feature name "X Management".
|
|
46
|
+
*/
|
|
47
|
+
function extractRelatedEntities(feature) {
|
|
48
|
+
const entities = [];
|
|
49
|
+
// Pattern: "X Management" / "X System" / "X Module" → "X" adalah entity
|
|
50
|
+
const nameMatch = feature.name.match(/^(.+?)\s+(?:Management|System|Module|Feature|Service)$/i);
|
|
51
|
+
if (nameMatch) {
|
|
52
|
+
entities.push(nameMatch[1].trim());
|
|
53
|
+
}
|
|
54
|
+
// Hanya ambil searchTerms yang eksplisit Title Case (entity names).
|
|
55
|
+
// searchTerms umumnya lowercase, jadi ini filter natural.
|
|
56
|
+
// Terms dari FEATURE_SIGNALS (technical keywords) tidak akan lulus.
|
|
57
|
+
for (const term of feature.searchTerms) {
|
|
58
|
+
if (/^[A-Z]/.test(term)) {
|
|
59
|
+
entities.push(term);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return [...new Set(entities)];
|
|
63
|
+
}
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
// Core merge function
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
/**
|
|
68
|
+
* mergeIntoFeatureList — merge satu feature ke list yang sudah ada.
|
|
69
|
+
*
|
|
70
|
+
* Algorithm:
|
|
71
|
+
* 1. Cari existing feature yang similar (pakai similarity engine)
|
|
72
|
+
* 2. Kalau ditemukan → enrich existing (files, terms, entities), jangan rename
|
|
73
|
+
* 3. Kalau tidak ditemukan → tambah sebagai feature baru
|
|
74
|
+
*
|
|
75
|
+
* Canonical name: feature pertama yang masuk MENANG — tidak pernah di-overwrite.
|
|
76
|
+
* Ini kunci stabilitas: walaupun AI run ke-2 generate "Customizable Plans",
|
|
77
|
+
* kalau "Plan Management" sudah ada di list, namanya tetap "Plan Management".
|
|
78
|
+
*
|
|
79
|
+
* @param features - List feature yang sudah ada (mutated in place)
|
|
80
|
+
* @param addition - Feature baru yang ingin di-merge
|
|
81
|
+
* @param threshold - Similarity threshold (default: DEFAULT_SIMILARITY_THRESHOLD)
|
|
82
|
+
*/
|
|
83
|
+
export function mergeIntoFeatureList(features, addition, threshold = DEFAULT_SIMILARITY_THRESHOLD) {
|
|
84
|
+
const identities = features.map(toFeatureIdentity);
|
|
85
|
+
const additionIdentity = toFeatureIdentity(addition);
|
|
86
|
+
const match = findSimilarFeature(identities, additionIdentity, threshold);
|
|
87
|
+
if (match === null) {
|
|
88
|
+
// Tidak ada yang similar → tambah sebagai feature baru
|
|
89
|
+
features.push(addition);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// Similar feature ditemukan → enrich tanpa rename
|
|
93
|
+
const existing = features[match.index];
|
|
94
|
+
features[match.index] = mergeFeatureData(existing, addition);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* mergeFeatureData — combine data dari dua feature yang sudah diidentifikasi sama.
|
|
98
|
+
*
|
|
99
|
+
* Rules:
|
|
100
|
+
* - name: existing wins (canonical first-seen)
|
|
101
|
+
* - purpose: existing wins KECUALI existing adalah generic fallback
|
|
102
|
+
* - files: union (dedup)
|
|
103
|
+
* - evidence: union (dedup)
|
|
104
|
+
* - searchTerms: union (capped di MAX_SEARCH_TERMS)
|
|
105
|
+
* - confidence: ambil yang lebih tinggi (jangan downgrade)
|
|
106
|
+
* - entryPoints: union — domain feature bisa bawa entryPoints baru
|
|
107
|
+
* - businessFlow: existing wins jika meaningful, fallback ke addition
|
|
108
|
+
*/
|
|
109
|
+
export function mergeFeatureData(existing, addition) {
|
|
110
|
+
const resolvedPurpose = isGenericPurpose(existing.purpose) && !isGenericPurpose(addition.purpose)
|
|
111
|
+
? addition.purpose
|
|
112
|
+
: existing.purpose;
|
|
113
|
+
const resolvedBusinessFlow = existing.businessFlow.length > 0
|
|
114
|
+
&& !isPlaceholderBusinessFlow(existing.businessFlow)
|
|
115
|
+
? existing.businessFlow
|
|
116
|
+
: addition.businessFlow.length > 0
|
|
117
|
+
? addition.businessFlow
|
|
118
|
+
: existing.businessFlow;
|
|
119
|
+
return {
|
|
120
|
+
...existing,
|
|
121
|
+
purpose: resolvedPurpose,
|
|
122
|
+
files: dedup([...existing.files, ...addition.files]),
|
|
123
|
+
evidence: dedup([...existing.evidence, ...addition.evidence]),
|
|
124
|
+
entryPoints: dedup([...existing.entryPoints, ...addition.entryPoints]),
|
|
125
|
+
searchTerms: dedup([...existing.searchTerms, ...addition.searchTerms]).slice(0, MAX_SEARCH_TERMS),
|
|
126
|
+
businessFlow: resolvedBusinessFlow,
|
|
127
|
+
confidence: higherConfidence(existing.confidence, addition.confidence),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function isGenericPurpose(purpose) {
|
|
131
|
+
const lower = purpose.toLowerCase();
|
|
132
|
+
return (/^identifies .+ capability/i.test(lower)
|
|
133
|
+
|| /^manages .+ data and operations\.?$/i.test(lower)
|
|
134
|
+
|| lower.length === 0);
|
|
135
|
+
}
|
|
136
|
+
function isPlaceholderBusinessFlow(flow) {
|
|
137
|
+
return flow.length === 1 && /^Identify files related to /i.test(flow[0]);
|
|
138
|
+
}
|
|
139
|
+
// ---------------------------------------------------------------------------
|
|
140
|
+
// Batch merge — untuk domain features dari AI inference
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
/**
|
|
143
|
+
* mergeDomainFeatures — merge semua domain features ke static feature list.
|
|
144
|
+
*
|
|
145
|
+
* Ini menggantikan loop di projectMap.ts yang hanya pakai name.toLowerCase() equality.
|
|
146
|
+
* Sekarang pakai similarity engine sehingga "Customizable Plans" tidak duplicate
|
|
147
|
+
* "Plan Management" yang sudah ada dari static analysis.
|
|
148
|
+
*
|
|
149
|
+
* @param features - Static features (mutated)
|
|
150
|
+
* @param domainFeatures - AI-inferred features
|
|
151
|
+
* @param threshold - Similarity threshold
|
|
152
|
+
*/
|
|
153
|
+
export function mergeDomainFeatures(features, domainFeatures, threshold = DEFAULT_SIMILARITY_THRESHOLD) {
|
|
154
|
+
for (const df of domainFeatures) {
|
|
155
|
+
mergeIntoFeatureList(features, df, threshold);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// ---------------------------------------------------------------------------
|
|
159
|
+
// Helpers
|
|
160
|
+
// ---------------------------------------------------------------------------
|
|
161
|
+
function dedup(arr) {
|
|
162
|
+
return [...new Set(arr)];
|
|
163
|
+
}
|
|
164
|
+
function higherConfidence(a, b) {
|
|
165
|
+
const rank = { high: 2, medium: 1, low: 0 };
|
|
166
|
+
return rank[a] >= rank[b] ? a : b;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=featureMerge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureMerge.js","sourceRoot":"","sources":["../../../src/analyzers/features/featureMerge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* featureSimilarity.ts
|
|
3
|
+
*
|
|
4
|
+
* Reusable similarity engine untuk feature identity comparison.
|
|
5
|
+
*
|
|
6
|
+
* Design goals:
|
|
7
|
+
* - Tidak bergantung pada feature name sebagai primary identity
|
|
8
|
+
* - Weighted multi-factor scoring: files, entities, searchTerms, description
|
|
9
|
+
* - Groundwork untuk future fingerprint system
|
|
10
|
+
* - No heuristic string tricks (substring, includes, normalize-only)
|
|
11
|
+
*
|
|
12
|
+
* Scoring model:
|
|
13
|
+
* Setiap faktor diberi bobot berbeda tergantung reliability-nya.
|
|
14
|
+
* File overlap = paling reliable (concrete evidence).
|
|
15
|
+
* Name similarity = least reliable (AI dapat berubah wording).
|
|
16
|
+
*
|
|
17
|
+
* Composite score 0.0 - 1.0.
|
|
18
|
+
* Threshold default 0.35 — dipilih biar:
|
|
19
|
+
* - "Plan Management" ↔ "Customizable Plans" MATCH (entity + terms overlap)
|
|
20
|
+
* - "Authentication" ↔ "Search" TIDAK MATCH (no overlap)
|
|
21
|
+
* - "Search" ↔ "Search Functionality" MATCH (terms overlap)
|
|
22
|
+
*/
|
|
23
|
+
export type FeatureIdentity = {
|
|
24
|
+
name: string;
|
|
25
|
+
/** File paths yang di-associate ke feature ini */
|
|
26
|
+
files: string[];
|
|
27
|
+
/** Search terms — keyword from signal definitions, entity names, etc. */
|
|
28
|
+
searchTerms: string[];
|
|
29
|
+
/** Related entity names — dari entityGraph atau domainFeature.relatedEntities */
|
|
30
|
+
relatedEntities: string[];
|
|
31
|
+
/** Purpose / description string — dipakai sebagai soft signal */
|
|
32
|
+
purpose?: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* MAX_SEARCH_TERMS — cross-cutting constant untuk search term cap.
|
|
36
|
+
* Konsisten dengan featureDetector. Dipakai di similarity engine dan merge.
|
|
37
|
+
*/
|
|
38
|
+
export declare const MAX_SEARCH_TERMS = 8;
|
|
39
|
+
/**
|
|
40
|
+
* FeatureSimilarityConfig — weights dan threshold yang bisa di-override.
|
|
41
|
+
*/
|
|
42
|
+
export type FeatureSimilarityConfig = {
|
|
43
|
+
weights: {
|
|
44
|
+
fileOverlap: number;
|
|
45
|
+
termOverlap: number;
|
|
46
|
+
entityOverlap: number;
|
|
47
|
+
nameSimilarity: number;
|
|
48
|
+
};
|
|
49
|
+
threshold: number;
|
|
50
|
+
};
|
|
51
|
+
export declare const DEFAULT_SIMILARITY_CONFIG: FeatureSimilarityConfig;
|
|
52
|
+
/**
|
|
53
|
+
* DEFAULT_SIMILARITY_THRESHOLD — backward compat alias.
|
|
54
|
+
*/
|
|
55
|
+
export declare const DEFAULT_SIMILARITY_THRESHOLD: number;
|
|
56
|
+
/**
|
|
57
|
+
* computeSimilarity — hitung composite similarity score antara dua feature.
|
|
58
|
+
*
|
|
59
|
+
* @returns 0.0 - 1.0 (0 = no similarity, 1 = identical)
|
|
60
|
+
*/
|
|
61
|
+
export declare function computeSimilarity(a: FeatureIdentity, b: FeatureIdentity, config?: FeatureSimilarityConfig): number;
|
|
62
|
+
/**
|
|
63
|
+
* isSimilarFeature — convenience wrapper dengan threshold.
|
|
64
|
+
*/
|
|
65
|
+
export declare function isSimilarFeature(a: FeatureIdentity, b: FeatureIdentity, thresholdOrConfig?: number | FeatureSimilarityConfig): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* findSimilarFeature — cari feature di list yang paling similar ke candidate.
|
|
68
|
+
*
|
|
69
|
+
* Return { index, score } dari match terbaik, atau null kalau tidak ada yang
|
|
70
|
+
* melewati threshold.
|
|
71
|
+
*/
|
|
72
|
+
export declare function findSimilarFeature(candidates: FeatureIdentity[], target: FeatureIdentity, thresholdOrConfig?: number | FeatureSimilarityConfig): {
|
|
73
|
+
index: number;
|
|
74
|
+
score: number;
|
|
75
|
+
} | null;
|
|
76
|
+
/**
|
|
77
|
+
* SimilarityExplanation — breakdown per faktor + reasons.
|
|
78
|
+
* @internal — kandidat masuk devmap doctor output nanti, bukan public API.
|
|
79
|
+
*/
|
|
80
|
+
export type SimilarityExplanation = {
|
|
81
|
+
score: number;
|
|
82
|
+
threshold: number;
|
|
83
|
+
similar: boolean;
|
|
84
|
+
factors: {
|
|
85
|
+
fileOverlap: {
|
|
86
|
+
score: number;
|
|
87
|
+
weight: number;
|
|
88
|
+
contribution: number;
|
|
89
|
+
detail: string;
|
|
90
|
+
};
|
|
91
|
+
termOverlap: {
|
|
92
|
+
score: number;
|
|
93
|
+
weight: number;
|
|
94
|
+
contribution: number;
|
|
95
|
+
detail: string;
|
|
96
|
+
};
|
|
97
|
+
entityOverlap: {
|
|
98
|
+
score: number;
|
|
99
|
+
weight: number;
|
|
100
|
+
contribution: number;
|
|
101
|
+
detail: string;
|
|
102
|
+
};
|
|
103
|
+
nameSimilarity: {
|
|
104
|
+
score: number;
|
|
105
|
+
weight: number;
|
|
106
|
+
contribution: number;
|
|
107
|
+
detail: string;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
weaknesses: string[];
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* computeSimilarityWithExplanation — seperti computeSimilarity, tapi return
|
|
114
|
+
* breakdown detail buat debugging.
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
export declare function computeSimilarityWithExplanation(a: FeatureIdentity, b: FeatureIdentity, config?: FeatureSimilarityConfig): SimilarityExplanation;
|
|
118
|
+
/**
|
|
119
|
+
* jaccardSimilarity — |A ∩ B| / |A ∪ B|
|
|
120
|
+
*
|
|
121
|
+
* Dipakai untuk set-based features (files, terms, entities).
|
|
122
|
+
* Return 1.0 kalau keduanya empty (dua feature tanpa data tidak conflicting).
|
|
123
|
+
* Return 0.0 kalau salah satu empty dan yang lain tidak.
|
|
124
|
+
*/
|
|
125
|
+
export declare function jaccardSimilarity(a: Set<string>, b: Set<string>): number;
|
|
126
|
+
/**
|
|
127
|
+
* trigramSimilarity — Dice coefficient pada character trigrams.
|
|
128
|
+
*
|
|
129
|
+
* Lebih robust dari Levenshtein untuk perbandingan nama pendek.
|
|
130
|
+
* "Plan Management" ↔ "Customizable Plans" → ~0.28
|
|
131
|
+
* "Authentication" ↔ "Authentication System" → ~0.82
|
|
132
|
+
* "Search" ↔ "Search Functionality" → ~0.55
|
|
133
|
+
*
|
|
134
|
+
* Dipakai sebagai soft signal saja (weight 0.10) karena AI wording volatile.
|
|
135
|
+
*/
|
|
136
|
+
export declare function trigramSimilarity(a: string, b: string): number;
|
|
137
|
+
export type FeatureFingerprint = {
|
|
138
|
+
/** Sorted, normalized file paths */
|
|
139
|
+
fileSignature: string;
|
|
140
|
+
/** Sorted, normalized search terms */
|
|
141
|
+
termSignature: string;
|
|
142
|
+
/** Sorted, normalized entity names */
|
|
143
|
+
entitySignature: string;
|
|
144
|
+
};
|
|
145
|
+
export declare function buildFeatureFingerprint(identity: FeatureIdentity): FeatureFingerprint;
|
|
146
|
+
/**
|
|
147
|
+
* fingerprintSimilarity — compare dua fingerprint secara segment-by-segment.
|
|
148
|
+
* Alternative entry point kalau future code ingin compare fingerprints
|
|
149
|
+
* tanpa reconstruct full FeatureIdentity.
|
|
150
|
+
*/
|
|
151
|
+
export declare function fingerprintSimilarity(a: FeatureFingerprint, b: FeatureFingerprint): number;
|
|
152
|
+
//# sourceMappingURL=featureSimilarity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureSimilarity.d.ts","sourceRoot":"","sources":["../../../src/analyzers/features/featureSimilarity.ts"],"names":[],"mappings":"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"}
|