projscan 4.4.0 → 4.6.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/README.md +36 -12
- package/dist/analyzers/pythonDependencyRiskCheck.js +1 -1
- package/dist/analyzers/pythonDependencyRiskCheck.js.map +1 -1
- package/dist/cli/_shared.d.ts +4 -5
- package/dist/cli/_shared.js +41 -188
- package/dist/cli/_shared.js.map +1 -1
- package/dist/cli/architectureLayers.d.ts +2 -0
- package/dist/cli/architectureLayers.js +112 -0
- package/dist/cli/architectureLayers.js.map +1 -0
- package/dist/cli/bannerDisplay.d.ts +9 -0
- package/dist/cli/bannerDisplay.js +18 -0
- package/dist/cli/bannerDisplay.js.map +1 -0
- package/dist/cli/changedIssueFilter.d.ts +10 -0
- package/dist/cli/changedIssueFilter.js +24 -0
- package/dist/cli/changedIssueFilter.js.map +1 -0
- package/dist/cli/commandPath.d.ts +2 -0
- package/dist/cli/commandPath.js +12 -0
- package/dist/cli/commandPath.js.map +1 -0
- package/dist/cli/commands/agentBrief.js +11 -0
- package/dist/cli/commands/agentBrief.js.map +1 -1
- package/dist/cli/commands/analyze.js +17 -6
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/ci.js +15 -3
- package/dist/cli/commands/ci.js.map +1 -1
- package/dist/cli/commands/coordinate.js +27 -0
- package/dist/cli/commands/coordinate.js.map +1 -1
- package/dist/cli/commands/doctor.js +16 -4
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/upgrade.js +1 -1
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/pluginReporter.d.ts +14 -0
- package/dist/cli/pluginReporter.js +46 -0
- package/dist/cli/pluginReporter.js.map +1 -0
- package/dist/cli/projectConfig.d.ts +12 -0
- package/dist/cli/projectConfig.js +41 -0
- package/dist/cli/projectConfig.js.map +1 -0
- package/dist/cli/treeSlice.d.ts +3 -0
- package/dist/cli/treeSlice.js +12 -0
- package/dist/cli/treeSlice.js.map +1 -0
- package/dist/core/ast.d.ts +4 -76
- package/dist/core/ast.js +11 -630
- package/dist/core/ast.js.map +1 -1
- package/dist/core/astBodySignals.d.ts +17 -0
- package/dist/core/astBodySignals.js +107 -0
- package/dist/core/astBodySignals.js.map +1 -0
- package/dist/core/astFunctionCollector.d.ts +11 -0
- package/dist/core/astFunctionCollector.js +140 -0
- package/dist/core/astFunctionCollector.js.map +1 -0
- package/dist/core/astFunctionNames.d.ts +2 -0
- package/dist/core/astFunctionNames.js +53 -0
- package/dist/core/astFunctionNames.js.map +1 -0
- package/dist/core/astFunctionNodes.d.ts +2 -0
- package/dist/core/astFunctionNodes.js +12 -0
- package/dist/core/astFunctionNodes.js.map +1 -0
- package/dist/core/astMembers.d.ts +13 -0
- package/dist/core/astMembers.js +116 -0
- package/dist/core/astMembers.js.map +1 -0
- package/dist/core/astModuleSignals.d.ts +3 -0
- package/dist/core/astModuleSignals.js +140 -0
- package/dist/core/astModuleSignals.js.map +1 -0
- package/dist/core/astParser.d.ts +11 -0
- package/dist/core/astParser.js +38 -0
- package/dist/core/astParser.js.map +1 -0
- package/dist/core/astProgramSignals.d.ts +11 -0
- package/dist/core/astProgramSignals.js +97 -0
- package/dist/core/astProgramSignals.js.map +1 -0
- package/dist/core/astTypes.d.ts +78 -0
- package/dist/core/astTypes.js +2 -0
- package/dist/core/astTypes.js.map +1 -0
- package/dist/core/codeGraph.d.ts +3 -28
- package/dist/core/codeGraph.js +3 -231
- package/dist/core/codeGraph.js.map +1 -1
- package/dist/core/codeGraphFanMetrics.d.ts +17 -0
- package/dist/core/codeGraphFanMetrics.js +89 -0
- package/dist/core/codeGraphFanMetrics.js.map +1 -0
- package/dist/core/codeGraphIndexes.d.ts +23 -0
- package/dist/core/codeGraphIndexes.js +57 -0
- package/dist/core/codeGraphIndexes.js.map +1 -0
- package/dist/core/codeGraphParsing.d.ts +20 -0
- package/dist/core/codeGraphParsing.js +104 -0
- package/dist/core/codeGraphParsing.js.map +1 -0
- package/dist/core/codeGraphTypes.d.ts +28 -0
- package/dist/core/codeGraphTypes.js +2 -0
- package/dist/core/codeGraphTypes.js.map +1 -0
- package/dist/core/collisionDetector.d.ts +2 -0
- package/dist/core/collisionDetector.js +17 -12
- package/dist/core/collisionDetector.js.map +1 -1
- package/dist/core/coordination.d.ts +4 -2
- package/dist/core/coordination.js +40 -4
- package/dist/core/coordination.js.map +1 -1
- package/dist/core/coordinationEvidence.d.ts +32 -0
- package/dist/core/coordinationEvidence.js +101 -0
- package/dist/core/coordinationEvidence.js.map +1 -0
- package/dist/core/dataflow.js +2 -1
- package/dist/core/dataflow.js.map +1 -1
- package/dist/core/fileAccess.d.ts +16 -0
- package/dist/core/fileAccess.js +78 -0
- package/dist/core/fileAccess.js.map +1 -0
- package/dist/core/fileExportTypes.d.ts +2 -0
- package/dist/core/fileExportTypes.js +16 -0
- package/dist/core/fileExportTypes.js.map +1 -0
- package/dist/core/fileGraphMetrics.d.ts +4 -0
- package/dist/core/fileGraphMetrics.js +34 -0
- package/dist/core/fileGraphMetrics.js.map +1 -0
- package/dist/core/fileInspectionEvidence.d.ts +13 -0
- package/dist/core/fileInspectionEvidence.js +14 -0
- package/dist/core/fileInspectionEvidence.js.map +1 -0
- package/dist/core/fileInspectionGraph.d.ts +5 -0
- package/dist/core/fileInspectionGraph.js +29 -0
- package/dist/core/fileInspectionGraph.js.map +1 -0
- package/dist/core/fileInspector.d.ts +4 -4
- package/dist/core/fileInspector.js +28 -215
- package/dist/core/fileInspector.js.map +1 -1
- package/dist/core/fileIssues.d.ts +1 -0
- package/dist/core/fileIssues.js +18 -0
- package/dist/core/fileIssues.js.map +1 -0
- package/dist/core/filePurpose.d.ts +2 -0
- package/dist/core/filePurpose.js +61 -0
- package/dist/core/filePurpose.js.map +1 -0
- package/dist/core/frameworkExpressSources.d.ts +4 -0
- package/dist/core/frameworkExpressSources.js +95 -0
- package/dist/core/frameworkExpressSources.js.map +1 -0
- package/dist/core/frameworkFastifySources.d.ts +4 -0
- package/dist/core/frameworkFastifySources.js +74 -0
- package/dist/core/frameworkFastifySources.js.map +1 -0
- package/dist/core/frameworkHonoSources.d.ts +4 -0
- package/dist/core/frameworkHonoSources.js +73 -0
- package/dist/core/frameworkHonoSources.js.map +1 -0
- package/dist/core/frameworkKoaSources.d.ts +4 -0
- package/dist/core/frameworkKoaSources.js +81 -0
- package/dist/core/frameworkKoaSources.js.map +1 -0
- package/dist/core/frameworkNextRouteSources.d.ts +2 -0
- package/dist/core/frameworkNextRouteSources.js +55 -0
- package/dist/core/frameworkNextRouteSources.js.map +1 -0
- package/dist/core/frameworkSources.d.ts +1 -1
- package/dist/core/frameworkSources.js +16 -125
- package/dist/core/frameworkSources.js.map +1 -1
- package/dist/core/hotspotAnalyzer.d.ts +2 -18
- package/dist/core/hotspotAnalyzer.js +15 -477
- package/dist/core/hotspotAnalyzer.js.map +1 -1
- package/dist/core/hotspotBuilder.d.ts +14 -0
- package/dist/core/hotspotBuilder.js +70 -0
- package/dist/core/hotspotBuilder.js.map +1 -0
- package/dist/core/hotspotCandidates.d.ts +9 -0
- package/dist/core/hotspotCandidates.js +63 -0
- package/dist/core/hotspotCandidates.js.map +1 -0
- package/dist/core/hotspotGit.d.ts +10 -0
- package/dist/core/hotspotGit.js +152 -0
- package/dist/core/hotspotGit.js.map +1 -0
- package/dist/core/hotspotIssues.d.ts +2 -0
- package/dist/core/hotspotIssues.js +83 -0
- package/dist/core/hotspotIssues.js.map +1 -0
- package/dist/core/hotspotLines.d.ts +2 -0
- package/dist/core/hotspotLines.js +24 -0
- package/dist/core/hotspotLines.js.map +1 -0
- package/dist/core/hotspotMemory.d.ts +2 -0
- package/dist/core/hotspotMemory.js +21 -0
- package/dist/core/hotspotMemory.js.map +1 -0
- package/dist/core/hotspotRanking.d.ts +13 -0
- package/dist/core/hotspotRanking.js +44 -0
- package/dist/core/hotspotRanking.js.map +1 -0
- package/dist/core/hotspotScoring.d.ts +23 -0
- package/dist/core/hotspotScoring.js +128 -0
- package/dist/core/hotspotScoring.js.map +1 -0
- package/dist/core/indexCache.js +4 -1
- package/dist/core/indexCache.js.map +1 -1
- package/dist/core/intentRouter.d.ts +3 -16
- package/dist/core/intentRouter.js +5 -7348
- package/dist/core/intentRouter.js.map +1 -1
- package/dist/core/intentRouterCatalog.d.ts +16 -0
- package/dist/core/intentRouterCatalog.js +1692 -0
- package/dist/core/intentRouterCatalog.js.map +1 -0
- package/dist/core/intentRouterCoordinationSignals.d.ts +12 -0
- package/dist/core/intentRouterCoordinationSignals.js +111 -0
- package/dist/core/intentRouterCoordinationSignals.js.map +1 -0
- package/dist/core/intentRouterDependencySignals.d.ts +9 -0
- package/dist/core/intentRouterDependencySignals.js +226 -0
- package/dist/core/intentRouterDependencySignals.js.map +1 -0
- package/dist/core/intentRouterKeywordContext.d.ts +14 -0
- package/dist/core/intentRouterKeywordContext.js +2 -0
- package/dist/core/intentRouterKeywordContext.js.map +1 -0
- package/dist/core/intentRouterKeywordEarlyGuards.d.ts +2 -0
- package/dist/core/intentRouterKeywordEarlyGuards.js +127 -0
- package/dist/core/intentRouterKeywordEarlyGuards.js.map +1 -0
- package/dist/core/intentRouterKeywordMatches.d.ts +3 -0
- package/dist/core/intentRouterKeywordMatches.js +31 -0
- package/dist/core/intentRouterKeywordMatches.js.map +1 -0
- package/dist/core/intentRouterKeywordSearchGuards.d.ts +2 -0
- package/dist/core/intentRouterKeywordSearchGuards.js +239 -0
- package/dist/core/intentRouterKeywordSearchGuards.js.map +1 -0
- package/dist/core/intentRouterKeywordTargetGuards.d.ts +2 -0
- package/dist/core/intentRouterKeywordTargetGuards.js +191 -0
- package/dist/core/intentRouterKeywordTargetGuards.js.map +1 -0
- package/dist/core/intentRouterKeywordToolGuards.d.ts +2 -0
- package/dist/core/intentRouterKeywordToolGuards.js +133 -0
- package/dist/core/intentRouterKeywordToolGuards.js.map +1 -0
- package/dist/core/intentRouterKeywordWeights.d.ts +4 -0
- package/dist/core/intentRouterKeywordWeights.js +1184 -0
- package/dist/core/intentRouterKeywordWeights.js.map +1 -0
- package/dist/core/intentRouterPlanningSignals.d.ts +7 -0
- package/dist/core/intentRouterPlanningSignals.js +268 -0
- package/dist/core/intentRouterPlanningSignals.js.map +1 -0
- package/dist/core/intentRouterPrDiffSignals.d.ts +1 -0
- package/dist/core/intentRouterPrDiffSignals.js +41 -0
- package/dist/core/intentRouterPrDiffSignals.js.map +1 -0
- package/dist/core/intentRouterPreflightSignals.d.ts +3 -0
- package/dist/core/intentRouterPreflightSignals.js +54 -0
- package/dist/core/intentRouterPreflightSignals.js.map +1 -0
- package/dist/core/intentRouterRegressionKeywordMatches.d.ts +1 -0
- package/dist/core/intentRouterRegressionKeywordMatches.js +176 -0
- package/dist/core/intentRouterRegressionKeywordMatches.js.map +1 -0
- package/dist/core/intentRouterRegressionSignals.d.ts +10 -0
- package/dist/core/intentRouterRegressionSignals.js +207 -0
- package/dist/core/intentRouterRegressionSignals.js.map +1 -0
- package/dist/core/intentRouterReleaseSignals.d.ts +8 -0
- package/dist/core/intentRouterReleaseSignals.js +59 -0
- package/dist/core/intentRouterReleaseSignals.js.map +1 -0
- package/dist/core/intentRouterRepoSignals.d.ts +8 -0
- package/dist/core/intentRouterRepoSignals.js +226 -0
- package/dist/core/intentRouterRepoSignals.js.map +1 -0
- package/dist/core/intentRouterReviewSignals.d.ts +2 -0
- package/dist/core/intentRouterReviewSignals.js +109 -0
- package/dist/core/intentRouterReviewSignals.js.map +1 -0
- package/dist/core/intentRouterRiskSignals.d.ts +12 -0
- package/dist/core/intentRouterRiskSignals.js +242 -0
- package/dist/core/intentRouterRiskSignals.js.map +1 -0
- package/dist/core/intentRouterScoring.d.ts +9 -0
- package/dist/core/intentRouterScoring.js +40 -0
- package/dist/core/intentRouterScoring.js.map +1 -0
- package/dist/core/intentRouterSearchApiSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchApiSignals.js +62 -0
- package/dist/core/intentRouterSearchApiSignals.js.map +1 -0
- package/dist/core/intentRouterSearchBackgroundSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchBackgroundSignals.js +55 -0
- package/dist/core/intentRouterSearchBackgroundSignals.js.map +1 -0
- package/dist/core/intentRouterSearchCommunicationSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchCommunicationSignals.js +74 -0
- package/dist/core/intentRouterSearchCommunicationSignals.js.map +1 -0
- package/dist/core/intentRouterSearchDataSignals.d.ts +2 -0
- package/dist/core/intentRouterSearchDataSignals.js +98 -0
- package/dist/core/intentRouterSearchDataSignals.js.map +1 -0
- package/dist/core/intentRouterSearchDomainSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchDomainSignals.js +71 -0
- package/dist/core/intentRouterSearchDomainSignals.js.map +1 -0
- package/dist/core/intentRouterSearchInfraSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchInfraSignals.js +79 -0
- package/dist/core/intentRouterSearchInfraSignals.js.map +1 -0
- package/dist/core/intentRouterSearchIntegrationSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchIntegrationSignals.js +117 -0
- package/dist/core/intentRouterSearchIntegrationSignals.js.map +1 -0
- package/dist/core/intentRouterSearchLookupSignals.d.ts +10 -0
- package/dist/core/intentRouterSearchLookupSignals.js +310 -0
- package/dist/core/intentRouterSearchLookupSignals.js.map +1 -0
- package/dist/core/intentRouterSearchNavigationSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchNavigationSignals.js +62 -0
- package/dist/core/intentRouterSearchNavigationSignals.js.map +1 -0
- package/dist/core/intentRouterSearchOwnershipSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchOwnershipSignals.js +15 -0
- package/dist/core/intentRouterSearchOwnershipSignals.js.map +1 -0
- package/dist/core/intentRouterSearchPageSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchPageSignals.js +84 -0
- package/dist/core/intentRouterSearchPageSignals.js.map +1 -0
- package/dist/core/intentRouterSearchReliabilitySignals.d.ts +1 -0
- package/dist/core/intentRouterSearchReliabilitySignals.js +94 -0
- package/dist/core/intentRouterSearchReliabilitySignals.js.map +1 -0
- package/dist/core/intentRouterSearchStateSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchStateSignals.js +107 -0
- package/dist/core/intentRouterSearchStateSignals.js.map +1 -0
- package/dist/core/intentRouterSearchStyleSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchStyleSignals.js +99 -0
- package/dist/core/intentRouterSearchStyleSignals.js.map +1 -0
- package/dist/core/intentRouterSearchTestSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchTestSignals.js +34 -0
- package/dist/core/intentRouterSearchTestSignals.js.map +1 -0
- package/dist/core/intentRouterSearchToolingSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchToolingSignals.js +106 -0
- package/dist/core/intentRouterSearchToolingSignals.js.map +1 -0
- package/dist/core/intentRouterSearchUiSignals.d.ts +1 -0
- package/dist/core/intentRouterSearchUiSignals.js +77 -0
- package/dist/core/intentRouterSearchUiSignals.js.map +1 -0
- package/dist/core/intentRouterSecuritySignals.d.ts +4 -0
- package/dist/core/intentRouterSecuritySignals.js +235 -0
- package/dist/core/intentRouterSecuritySignals.js.map +1 -0
- package/dist/core/intentRouterTargetSignals.d.ts +5 -0
- package/dist/core/intentRouterTargetSignals.js +76 -0
- package/dist/core/intentRouterTargetSignals.js.map +1 -0
- package/dist/core/intentRouterTokens.d.ts +1 -0
- package/dist/core/intentRouterTokens.js +36 -0
- package/dist/core/intentRouterTokens.js.map +1 -0
- package/dist/core/intentRouterUnderstandSignals.d.ts +1 -0
- package/dist/core/intentRouterUnderstandSignals.js +171 -0
- package/dist/core/intentRouterUnderstandSignals.js.map +1 -0
- package/dist/core/intentRouterVerificationSignals.d.ts +8 -0
- package/dist/core/intentRouterVerificationSignals.js +119 -0
- package/dist/core/intentRouterVerificationSignals.js.map +1 -0
- package/dist/core/intentRouterWorkSignals.d.ts +4 -0
- package/dist/core/intentRouterWorkSignals.js +157 -0
- package/dist/core/intentRouterWorkSignals.js.map +1 -0
- package/dist/core/languages/pythonLockfiles.d.ts +11 -0
- package/dist/core/languages/pythonLockfiles.js +206 -0
- package/dist/core/languages/pythonLockfiles.js.map +1 -0
- package/dist/core/languages/pythonManifestText.d.ts +7 -0
- package/dist/core/languages/pythonManifestText.js +25 -0
- package/dist/core/languages/pythonManifestText.js.map +1 -0
- package/dist/core/languages/pythonManifests.d.ts +6 -27
- package/dist/core/languages/pythonManifests.js +29 -303
- package/dist/core/languages/pythonManifests.js.map +1 -1
- package/dist/core/languages/pythonPep508.d.ts +4 -0
- package/dist/core/languages/pythonPep508.js +14 -0
- package/dist/core/languages/pythonPep508.js.map +1 -0
- package/dist/core/languages/pythonProjectEvidence.d.ts +2 -0
- package/dist/core/languages/pythonProjectEvidence.js +29 -0
- package/dist/core/languages/pythonProjectEvidence.js.map +1 -0
- package/dist/core/languages/pythonProjectTypes.d.ts +31 -0
- package/dist/core/languages/pythonProjectTypes.js +2 -0
- package/dist/core/languages/pythonProjectTypes.js.map +1 -0
- package/dist/core/languages/pythonPyproject.d.ts +2 -0
- package/dist/core/languages/pythonPyproject.js +160 -0
- package/dist/core/languages/pythonPyproject.js.map +1 -0
- package/dist/core/languages/pythonRequirements.d.ts +9 -0
- package/dist/core/languages/pythonRequirements.js +86 -0
- package/dist/core/languages/pythonRequirements.js.map +1 -0
- package/dist/core/languages/pythonRoots.d.ts +3 -0
- package/dist/core/languages/pythonRoots.js +83 -0
- package/dist/core/languages/pythonRoots.js.map +1 -0
- package/dist/core/languages/pythonSetuptools.d.ts +6 -0
- package/dist/core/languages/pythonSetuptools.js +58 -0
- package/dist/core/languages/pythonSetuptools.js.map +1 -0
- package/dist/core/prDiff.js +12 -0
- package/dist/core/prDiff.js.map +1 -1
- package/dist/core/preflight.d.ts +3 -3
- package/dist/core/preflight.js +28 -542
- package/dist/core/preflight.js.map +1 -1
- package/dist/core/preflightChangedFileReasons.d.ts +14 -0
- package/dist/core/preflightChangedFileReasons.js +75 -0
- package/dist/core/preflightChangedFileReasons.js.map +1 -0
- package/dist/core/preflightChangedFiles.d.ts +9 -0
- package/dist/core/preflightChangedFiles.js +34 -0
- package/dist/core/preflightChangedFiles.js.map +1 -0
- package/dist/core/preflightContextReasons.d.ts +17 -0
- package/dist/core/preflightContextReasons.js +73 -0
- package/dist/core/preflightContextReasons.js.map +1 -0
- package/dist/core/preflightEvidence.d.ts +34 -0
- package/dist/core/preflightEvidence.js +119 -0
- package/dist/core/preflightEvidence.js.map +1 -0
- package/dist/core/preflightInputs.d.ts +15 -0
- package/dist/core/preflightInputs.js +31 -0
- package/dist/core/preflightInputs.js.map +1 -0
- package/dist/core/preflightIssueReasons.d.ts +2 -0
- package/dist/core/preflightIssueReasons.js +39 -0
- package/dist/core/preflightIssueReasons.js.map +1 -0
- package/dist/core/preflightLocalEvidence.d.ts +12 -0
- package/dist/core/preflightLocalEvidence.js +36 -0
- package/dist/core/preflightLocalEvidence.js.map +1 -0
- package/dist/core/preflightReleaseScale.d.ts +28 -0
- package/dist/core/preflightReleaseScale.js +95 -0
- package/dist/core/preflightReleaseScale.js.map +1 -0
- package/dist/core/preflightRequiredChecks.d.ts +26 -0
- package/dist/core/preflightRequiredChecks.js +96 -0
- package/dist/core/preflightRequiredChecks.js.map +1 -0
- package/dist/core/preflightReviewEvidence.d.ts +16 -0
- package/dist/core/preflightReviewEvidence.js +31 -0
- package/dist/core/preflightReviewEvidence.js.map +1 -0
- package/dist/core/preflightReviewReasons.d.ts +15 -0
- package/dist/core/preflightReviewReasons.js +76 -0
- package/dist/core/preflightReviewReasons.js.map +1 -0
- package/dist/core/preflightSuggestedActions.d.ts +15 -0
- package/dist/core/preflightSuggestedActions.js +84 -0
- package/dist/core/preflightSuggestedActions.js.map +1 -0
- package/dist/core/preflightTruncation.d.ts +6 -0
- package/dist/core/preflightTruncation.js +7 -0
- package/dist/core/preflightTruncation.js.map +1 -0
- package/dist/core/preflightVerdict.d.ts +3 -0
- package/dist/core/preflightVerdict.js +17 -0
- package/dist/core/preflightVerdict.js.map +1 -0
- package/dist/core/releaseEvidence.d.ts +4 -3
- package/dist/core/releaseEvidence.js +12 -263
- package/dist/core/releaseEvidence.js.map +1 -1
- package/dist/core/releaseEvidenceBaseline.d.ts +2 -0
- package/dist/core/releaseEvidenceBaseline.js +28 -0
- package/dist/core/releaseEvidenceBaseline.js.map +1 -0
- package/dist/core/releaseEvidencePrSummary.d.ts +13 -0
- package/dist/core/releaseEvidencePrSummary.js +240 -0
- package/dist/core/releaseEvidencePrSummary.js.map +1 -0
- package/dist/core/releaseTrain.js +3 -317
- package/dist/core/releaseTrain.js.map +1 -1
- package/dist/core/releaseTrainFallbacks.d.ts +3 -0
- package/dist/core/releaseTrainFallbacks.js +318 -0
- package/dist/core/releaseTrainFallbacks.js.map +1 -0
- package/dist/core/reportScope.d.ts +24 -0
- package/dist/core/reportScope.js +234 -0
- package/dist/core/reportScope.js.map +1 -0
- package/dist/core/review.d.ts +2 -25
- package/dist/core/review.js +34 -1034
- package/dist/core/review.js.map +1 -1
- package/dist/core/reviewBaseSnapshot.d.ts +14 -0
- package/dist/core/reviewBaseSnapshot.js +41 -0
- package/dist/core/reviewBaseSnapshot.js.map +1 -0
- package/dist/core/reviewChangedFiles.d.ts +8 -0
- package/dist/core/reviewChangedFiles.js +63 -0
- package/dist/core/reviewChangedFiles.js.map +1 -0
- package/dist/core/reviewContractChanges.d.ts +5 -0
- package/dist/core/reviewContractChanges.js +114 -0
- package/dist/core/reviewContractChanges.js.map +1 -0
- package/dist/core/reviewCycles.d.ts +7 -0
- package/dist/core/reviewCycles.js +53 -0
- package/dist/core/reviewCycles.js.map +1 -0
- package/dist/core/reviewFindings.d.ts +17 -0
- package/dist/core/reviewFindings.js +49 -0
- package/dist/core/reviewFindings.js.map +1 -0
- package/dist/core/reviewFlowDiffs.d.ts +4 -0
- package/dist/core/reviewFlowDiffs.js +99 -0
- package/dist/core/reviewFlowDiffs.js.map +1 -0
- package/dist/core/reviewGit.d.ts +7 -0
- package/dist/core/reviewGit.js +45 -0
- package/dist/core/reviewGit.js.map +1 -0
- package/dist/core/reviewGraphEvidence.d.ts +3 -0
- package/dist/core/reviewGraphEvidence.js +55 -0
- package/dist/core/reviewGraphEvidence.js.map +1 -0
- package/dist/core/reviewHeadSnapshot.d.ts +8 -0
- package/dist/core/reviewHeadSnapshot.js +15 -0
- package/dist/core/reviewHeadSnapshot.js.map +1 -0
- package/dist/core/reviewIntent.d.ts +2 -0
- package/dist/core/reviewIntent.js +18 -0
- package/dist/core/reviewIntent.js.map +1 -0
- package/dist/core/reviewManifests.d.ts +12 -0
- package/dist/core/reviewManifests.js +124 -0
- package/dist/core/reviewManifests.js.map +1 -0
- package/dist/core/reviewNoChanges.d.ts +9 -0
- package/dist/core/reviewNoChanges.js +26 -0
- package/dist/core/reviewNoChanges.js.map +1 -0
- package/dist/core/reviewPackageScope.d.ts +4 -0
- package/dist/core/reviewPackageScope.js +24 -0
- package/dist/core/reviewPackageScope.js.map +1 -0
- package/dist/core/reviewRefs.d.ts +4 -0
- package/dist/core/reviewRefs.js +65 -0
- package/dist/core/reviewRefs.js.map +1 -0
- package/dist/core/reviewRiskyFunctions.d.ts +8 -0
- package/dist/core/reviewRiskyFunctions.js +83 -0
- package/dist/core/reviewRiskyFunctions.js.map +1 -0
- package/dist/core/reviewState.d.ts +21 -0
- package/dist/core/reviewState.js +96 -0
- package/dist/core/reviewState.js.map +1 -0
- package/dist/core/reviewTier.d.ts +18 -0
- package/dist/core/reviewTier.js +99 -0
- package/dist/core/reviewTier.js.map +1 -0
- package/dist/core/reviewVerdict.d.ts +9 -0
- package/dist/core/reviewVerdict.js +121 -0
- package/dist/core/reviewVerdict.js.map +1 -0
- package/dist/core/roadmapCatalog.d.ts +1 -0
- package/dist/core/roadmapCatalog.js +227 -7
- package/dist/core/roadmapCatalog.js.map +1 -1
- package/dist/core/start.d.ts +1 -1
- package/dist/core/start.js +26 -63
- package/dist/core/start.js.map +1 -1
- package/dist/core/startAdoptionGaps.d.ts +3 -0
- package/dist/core/startAdoptionGaps.js +12 -0
- package/dist/core/startAdoptionGaps.js.map +1 -0
- package/dist/core/startInputs.d.ts +31 -0
- package/dist/core/startInputs.js +27 -0
- package/dist/core/startInputs.js.map +1 -0
- package/dist/core/startMode.js +7 -1
- package/dist/core/startMode.js.map +1 -1
- package/dist/core/startNextActions.d.ts +13 -0
- package/dist/core/startNextActions.js +19 -0
- package/dist/core/startNextActions.js.map +1 -0
- package/dist/core/startReportBuilder.d.ts +25 -0
- package/dist/core/startReportBuilder.js +44 -0
- package/dist/core/startReportBuilder.js.map +1 -0
- package/dist/core/taint.js +14 -125
- package/dist/core/taint.js.map +1 -1
- package/dist/core/taintMatching.d.ts +11 -0
- package/dist/core/taintMatching.js +126 -0
- package/dist/core/taintMatching.js.map +1 -0
- package/dist/core/upgradePreview.d.ts +1 -12
- package/dist/core/upgradePreview.js +12 -160
- package/dist/core/upgradePreview.js.map +1 -1
- package/dist/core/upgradePreviewNpmEvidence.d.ts +19 -0
- package/dist/core/upgradePreviewNpmEvidence.js +164 -0
- package/dist/core/upgradePreviewNpmEvidence.js.map +1 -0
- package/dist/core/upgradePreviewPython.d.ts +2 -0
- package/dist/core/upgradePreviewPython.js +71 -0
- package/dist/core/upgradePreviewPython.js.map +1 -0
- package/dist/index.d.ts +6 -12
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +3 -24
- package/dist/mcp/server.js +32 -414
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/serverContext.d.ts +6 -0
- package/dist/mcp/serverContext.js +55 -0
- package/dist/mcp/serverContext.js.map +1 -0
- package/dist/mcp/serverDispatch.d.ts +39 -0
- package/dist/mcp/serverDispatch.js +74 -0
- package/dist/mcp/serverDispatch.js.map +1 -0
- package/dist/mcp/serverHandlers.d.ts +15 -0
- package/dist/mcp/serverHandlers.js +94 -0
- package/dist/mcp/serverHandlers.js.map +1 -0
- package/dist/mcp/serverLifecycle.d.ts +14 -0
- package/dist/mcp/serverLifecycle.js +65 -0
- package/dist/mcp/serverLifecycle.js.map +1 -0
- package/dist/mcp/serverMessage.d.ts +11 -0
- package/dist/mcp/serverMessage.js +37 -0
- package/dist/mcp/serverMessage.js.map +1 -0
- package/dist/mcp/serverSession.d.ts +6 -0
- package/dist/mcp/serverSession.js +77 -0
- package/dist/mcp/serverSession.js.map +1 -0
- package/dist/mcp/serverStdio.d.ts +7 -0
- package/dist/mcp/serverStdio.js +34 -0
- package/dist/mcp/serverStdio.js.map +1 -0
- package/dist/mcp/serverTypes.d.ts +18 -0
- package/dist/mcp/serverTypes.js +2 -0
- package/dist/mcp/serverTypes.js.map +1 -0
- package/dist/mcp/serverVersion.d.ts +1 -0
- package/dist/mcp/serverVersion.js +17 -0
- package/dist/mcp/serverVersion.js.map +1 -0
- package/dist/mcp/toolCatalog.d.ts +2 -0
- package/dist/mcp/toolCatalog.js +93 -0
- package/dist/mcp/toolCatalog.js.map +1 -0
- package/dist/mcp/tools/upgrade.d.ts +1 -1
- package/dist/mcp/tools/upgrade.js +2 -16
- package/dist/mcp/tools/upgrade.js.map +1 -1
- package/dist/mcp/tools.d.ts +2 -3
- package/dist/mcp/tools.js +5 -97
- package/dist/mcp/tools.js.map +1 -1
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/reporters/consoleUpgradeReporter.js +24 -2
- package/dist/reporters/consoleUpgradeReporter.js.map +1 -1
- package/dist/reporters/htmlReporter.d.ts +3 -2
- package/dist/reporters/htmlReporter.js +14 -2
- package/dist/reporters/htmlReporter.js.map +1 -1
- package/dist/reporters/jsonReporter.d.ts +4 -3
- package/dist/reporters/jsonReporter.js +9 -4
- package/dist/reporters/jsonReporter.js.map +1 -1
- package/dist/reporters/markdownAnalysisReporter.d.ts +2 -1
- package/dist/reporters/markdownAnalysisReporter.js +8 -1
- package/dist/reporters/markdownAnalysisReporter.js.map +1 -1
- package/dist/reporters/markdownArchitectureReporter.d.ts +3 -0
- package/dist/reporters/markdownArchitectureReporter.js +33 -0
- package/dist/reporters/markdownArchitectureReporter.js.map +1 -0
- package/dist/reporters/markdownCouplingReporter.d.ts +2 -0
- package/dist/reporters/markdownCouplingReporter.js +43 -0
- package/dist/reporters/markdownCouplingReporter.js.map +1 -0
- package/dist/reporters/markdownCoverageReporter.d.ts +2 -0
- package/dist/reporters/markdownCoverageReporter.js +40 -0
- package/dist/reporters/markdownCoverageReporter.js.map +1 -0
- package/dist/reporters/markdownExplanationReporter.d.ts +2 -0
- package/dist/reporters/markdownExplanationReporter.js +37 -0
- package/dist/reporters/markdownExplanationReporter.js.map +1 -0
- package/dist/reporters/markdownHealthReporter.d.ts +4 -0
- package/dist/reporters/markdownHealthReporter.js +66 -0
- package/dist/reporters/markdownHealthReporter.js.map +1 -0
- package/dist/reporters/markdownHotspotReporter.d.ts +2 -0
- package/dist/reporters/markdownHotspotReporter.js +36 -0
- package/dist/reporters/markdownHotspotReporter.js.map +1 -0
- package/dist/reporters/markdownOutdatedReporter.d.ts +2 -0
- package/dist/reporters/markdownOutdatedReporter.js +31 -0
- package/dist/reporters/markdownOutdatedReporter.js.map +1 -0
- package/dist/reporters/markdownPrDiffReporter.d.ts +2 -0
- package/dist/reporters/markdownPrDiffReporter.js +63 -0
- package/dist/reporters/markdownPrDiffReporter.js.map +1 -0
- package/dist/reporters/markdownReporter.d.ts +9 -12
- package/dist/reporters/markdownReporter.js +9 -288
- package/dist/reporters/markdownReporter.js.map +1 -1
- package/dist/reporters/markdownUpgradeReporter.js +19 -4
- package/dist/reporters/markdownUpgradeReporter.js.map +1 -1
- package/dist/reporters/markdownWorkspaceReporter.d.ts +2 -0
- package/dist/reporters/markdownWorkspaceReporter.js +25 -0
- package/dist/reporters/markdownWorkspaceReporter.js.map +1 -0
- package/dist/reporters/sarifReporter.d.ts +6 -4
- package/dist/reporters/sarifReporter.js +8 -7
- package/dist/reporters/sarifReporter.js.map +1 -1
- package/dist/tool-manifest.json +4 -4
- package/dist/types/config.d.ts +10 -0
- package/dist/types/dependencyHealth.d.ts +12 -0
- package/dist/types.d.ts +34 -34
- package/dist/utils/config.d.ts +2 -8
- package/dist/utils/config.js +14 -180
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/configBasics.d.ts +5 -0
- package/dist/utils/configBasics.js +21 -0
- package/dist/utils/configBasics.js.map +1 -0
- package/dist/utils/configHotspots.d.ts +2 -0
- package/dist/utils/configHotspots.js +15 -0
- package/dist/utils/configHotspots.js.map +1 -0
- package/dist/utils/configIssueRules.d.ts +8 -0
- package/dist/utils/configIssueRules.js +24 -0
- package/dist/utils/configIssueRules.js.map +1 -0
- package/dist/utils/configMonorepo.d.ts +2 -0
- package/dist/utils/configMonorepo.js +38 -0
- package/dist/utils/configMonorepo.js.map +1 -0
- package/dist/utils/configReportPolicies.d.ts +2 -0
- package/dist/utils/configReportPolicies.js +32 -0
- package/dist/utils/configReportPolicies.js.map +1 -0
- package/dist/utils/configScan.d.ts +2 -0
- package/dist/utils/configScan.js +15 -0
- package/dist/utils/configScan.js.map +1 -0
- package/dist/utils/configSeverity.d.ts +2 -0
- package/dist/utils/configSeverity.js +15 -0
- package/dist/utils/configSeverity.js.map +1 -0
- package/dist/utils/configSources.d.ts +5 -0
- package/dist/utils/configSources.js +55 -0
- package/dist/utils/configSources.js.map +1 -0
- package/dist/utils/configTaint.d.ts +2 -0
- package/dist/utils/configTaint.js +15 -0
- package/dist/utils/configTaint.js.map +1 -0
- package/docs/GUIDE.md +39 -4
- package/docs/ROADMAP.md +54 -21
- package/docs/examples/adoption-workflows.md +128 -0
- package/docs/examples/swarm-coordination.md +120 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -35,16 +35,16 @@ npx projscan
|
|
|
35
35
|
|
|
36
36
|
<img src="docs/projscan-mission-control.gif" alt="projscan Mission Control turning a plain-language goal into shortcut commands, proof commands, and review gates" width="760">
|
|
37
37
|
|
|
38
|
-
## What's New in 4.
|
|
38
|
+
## What's New in 4.6.0
|
|
39
39
|
|
|
40
|
-
4.
|
|
40
|
+
4.6.0 hardens the agent workflow loop: broader framework dataflow precision, coordination evidence for multi-agent work, public code graph types, and a smaller, easier-to-review routing test surface.
|
|
41
41
|
|
|
42
|
-
- **
|
|
43
|
-
- **
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
47
|
-
- **
|
|
42
|
+
- **More framework dataflow coverage.** Next `nextUrl`, Hono URL reads, Express URL reads, Koa URL reads, and Fastify URL reads are now framework-gated request sources.
|
|
43
|
+
- **Coordination evidence.** Agent hints include concrete local coordination evidence so teams can see which command answered the collision or handoff question.
|
|
44
|
+
- **Public code graph types.** Code graph result types are exported for package consumers that build on projscan results.
|
|
45
|
+
- **Routing hardening.** Mission Control start, intent router, review, CLI, and MCP coverage has been split into focused suites while preserving public behavior.
|
|
46
|
+
- **Release cleanup.** The high-churn `tests/core/start.test.ts` matrix has been reduced to a small default/workspace/ownership/coupling suite with focused companion files.
|
|
47
|
+
- **Bug fixes.** MCP watch IDs, request notifications, no-release continuation routing, agent harness proof routing, Python upgrade evidence, scoped dependency redaction, path-safe file links, unresolved review refs, and inspector purpose detection were tightened.
|
|
48
48
|
|
|
49
49
|
<img src="docs/projscan-proof-router.png" alt="projscan intent router and proof workflow showing impact routing, setup discovery, dependency intelligence, and stable-surface guardrails" width="760">
|
|
50
50
|
|
|
@@ -573,6 +573,10 @@ projscan dogfood --repo ../api --repo ../web --repo ../worker --feedback .projsc
|
|
|
573
573
|
projscan trial --repo ../api --repo ../web --repo ../worker --feedback .projscan-feedback.json --format json
|
|
574
574
|
```
|
|
575
575
|
|
|
576
|
+
For copyable team recipes, see
|
|
577
|
+
[`docs/examples/swarm-coordination.md`](docs/examples/swarm-coordination.md)
|
|
578
|
+
and [`docs/examples/adoption-workflows.md`](docs/examples/adoption-workflows.md).
|
|
579
|
+
|
|
576
580
|
For maintainers changing trust-sensitive behavior:
|
|
577
581
|
|
|
578
582
|
```bash
|
|
@@ -643,7 +647,7 @@ The report includes file/symbol-backed `claims`, `readFirst` files, entrypoints,
|
|
|
643
647
|
| `projscan dependencies` | Dependency analysis - counts, license summary, risks, recommendations |
|
|
644
648
|
| `projscan outdated` | Declared-vs-installed drift check (offline) |
|
|
645
649
|
| `projscan audit` | `npm audit`-powered vulnerability report - SARIF-ready for Code Scanning |
|
|
646
|
-
| `projscan upgrade <pkg>` | Preview upgrade impact -
|
|
650
|
+
| `projscan upgrade <pkg>` | Preview upgrade impact - npm CHANGELOG/importers or Python manifest, lockfile, and importer evidence, offline by default |
|
|
647
651
|
| `projscan coverage` | **Coverage × hotspots - rank the scariest untested files** (`--changed-only` for diff mode) |
|
|
648
652
|
| `projscan badge` | Generate a health score badge for your README |
|
|
649
653
|
| `projscan init` | _(1.6)_ Scaffold `.projscanrc.json` with sensible defaults |
|
|
@@ -697,10 +701,19 @@ projscan doctor --format markdown # Markdown for docs/PRs
|
|
|
697
701
|
projscan mission-proof --format markdown # Mission proof report for handoffs
|
|
698
702
|
projscan mission-proof --write reports/mission-proof.md # Save Markdown proof
|
|
699
703
|
projscan ci --format sarif # SARIF 2.1.0 for GitHub Code Scanning
|
|
704
|
+
projscan analyze --report-scope src/api --redact-paths --format json # Scoped, redacted shareable evidence
|
|
705
|
+
projscan doctor --report-policy apiEvidence --format markdown # Reuse a configured evidence policy
|
|
700
706
|
```
|
|
701
707
|
|
|
702
708
|
Formats: `console` (default), `json`, `markdown`, `sarif`, `html`
|
|
703
709
|
|
|
710
|
+
`analyze`, `doctor`, and `ci` also accept `--report-policy <name>`,
|
|
711
|
+
`--report-scope <paths>`, and `--redact-paths` for shareable evidence artifacts.
|
|
712
|
+
Scope is comma-separated and repo-relative; redaction replaces file paths with
|
|
713
|
+
stable labels. JSON/SARIF include path-safe `reportControls` metadata, and
|
|
714
|
+
Markdown/HTML print path-safe controls banners. Direct `--report-scope` and
|
|
715
|
+
`--redact-paths` flags override the selected preset for a single run.
|
|
716
|
+
|
|
704
717
|
Run `projscan help` for the generated command-by-command support matrix.
|
|
705
718
|
|
|
706
719
|
### Plugin Platform
|
|
@@ -766,6 +779,9 @@ Reporter plugins are intentionally CLI-only. MCP tools keep returning structured
|
|
|
766
779
|
| `--runbook` | Print only the Mission Control Markdown runbook (`start`) |
|
|
767
780
|
| `--changed-only` | Scope to files changed vs base ref (ci/analyze/doctor) |
|
|
768
781
|
| `--base-ref <ref>` | Git base ref for `--changed-only` (default: origin/main) |
|
|
782
|
+
| `--report-policy <name>` | Use a named report policy preset from config (`analyze`, `doctor`, `ci`) |
|
|
783
|
+
| `--report-scope <paths>` | Comma-separated repo-relative paths to include in exported evidence (`analyze`, `doctor`, `ci`) |
|
|
784
|
+
| `--redact-paths` | Replace file paths in exported evidence with stable labels (`analyze`, `doctor`, `ci`) |
|
|
769
785
|
| `--reporter <name>` | Render `doctor`, `analyze`, or `ci` with a local reporter plugin |
|
|
770
786
|
| `--verbose` | Enable debug output |
|
|
771
787
|
| `--quiet` | Suppress non-essential output |
|
|
@@ -806,11 +822,12 @@ Python repos now get the same treatment JS/TS has had since 0.6:
|
|
|
806
822
|
|
|
807
823
|
- **AST-accurate import graph.** `from pkg.mod import x`, relative imports, `__init__.py` packages, `__all__`. Parsed via tree-sitter-python (wasm, offline).
|
|
808
824
|
- **Python-aware analyzers.** Missing pytest / ruff / black config. Deprecated packages (nose, simplejson, pycrypto). Unused `pyproject.toml` / `requirements.txt` deps. Missing lockfile.
|
|
825
|
+
- **Python upgrade preview.** `projscan upgrade requests` reads `pyproject.toml` (including dependency groups), `setup.cfg`, `setup.py`, root `requirements*.txt`, Poetry/Pipfile/uv/PDM/Conda lockfiles, and pinned root requirements/constraints, then reports declared scope, current-version source, drift, and importers offline. A root Python manifest is enough evidence even before `.py` files exist.
|
|
809
826
|
- **Code search.** BM25 and semantic modes work on `.py` files out of the box.
|
|
810
827
|
- **Hotspots + dead code.** Same scoring as JS/TS, with `__init__.py` and pytest test-file conventions understood.
|
|
811
828
|
- **MCP tools work unchanged.** `projscan_semantic_graph`, `projscan_search`, `projscan_doctor`, `projscan_hotspots`, etc. all accept Python projects. Agents can ask "which files import `pkg.core`?" and get an answer in milliseconds.
|
|
812
829
|
|
|
813
|
-
`projscan_upgrade`
|
|
830
|
+
`projscan_upgrade` supports Node and Python offline previews. Python current-version evidence comes from Poetry, Pipfile, uv, PDM, Conda lockfiles, pinned root requirements, or pinned root constraints when present. Registry lookup remains npm-only behind `--check-registry`.
|
|
814
831
|
|
|
815
832
|
### Go (0.11)
|
|
816
833
|
|
|
@@ -1028,6 +1045,12 @@ Drop a `.projscanrc.json` at your repo root to set defaults - CLI flags always w
|
|
|
1028
1045
|
"severityOverrides": {
|
|
1029
1046
|
"missing-prettier": "info"
|
|
1030
1047
|
},
|
|
1048
|
+
"reportPolicies": {
|
|
1049
|
+
"apiEvidence": {
|
|
1050
|
+
"reportScope": ["src/api", "packages/backend"],
|
|
1051
|
+
"redactPaths": true
|
|
1052
|
+
}
|
|
1053
|
+
},
|
|
1031
1054
|
"hotspots": {
|
|
1032
1055
|
"limit": 20,
|
|
1033
1056
|
"since": "6 months ago"
|
|
@@ -1045,6 +1068,7 @@ Fields:
|
|
|
1045
1068
|
- `scan.offline` - block projscan network-capable features by default
|
|
1046
1069
|
- `disableRules` - silence rules by id; supports wildcard `prefix-*`
|
|
1047
1070
|
- `severityOverrides` - remap a rule's severity (`info` / `warning` / `error`)
|
|
1071
|
+
- `reportPolicies.<name>` - reusable evidence export preset for `analyze`, `doctor`, and `ci`
|
|
1048
1072
|
- `hotspots.limit` / `hotspots.since` - defaults for the `hotspots` command
|
|
1049
1073
|
- `monorepo.importPolicy` - cross-package import allow/deny rules in monorepos _(0.14+)_
|
|
1050
1074
|
|
|
@@ -1114,7 +1138,7 @@ projscan upgrade chalk --format markdown # Paste-ready review comment
|
|
|
1114
1138
|
|
|
1115
1139
|
- **`outdated`** - reads `package.json` and `node_modules/<pkg>/package.json` to classify drift (`major` / `minor` / `patch` / `same` / `unknown`). No network.
|
|
1116
1140
|
- **`audit`** - wraps `npm audit --json`, normalizes the output, and emits SARIF with per-finding rules anchored to `package.json`. Graceful fallback message for yarn/pnpm projects.
|
|
1117
|
-
- **`upgrade <pkg>`** - reads `node_modules/<pkg>/CHANGELOG.md
|
|
1141
|
+
- **`upgrade <pkg>`** - reads `node_modules/<pkg>/CHANGELOG.md` for npm packages or Python manifests/lockfiles for Python packages, flags available breaking-change markers, and lists every file in your repo that imports the package. All offline unless `--check-registry` is passed for npm.
|
|
1118
1142
|
|
|
1119
1143
|
### Unused dependencies (automatic in `doctor`)
|
|
1120
1144
|
|
|
@@ -1310,7 +1334,7 @@ Capability is advertised under `experimental.fileChanged` on `initialize` so cli
|
|
|
1310
1334
|
- **`projscan_start`** _(3.0.4)_ - first-60-seconds repo orientation. Composes setup diagnostics, `firstTenMinutes`, workflow recipes, workplan, quality scorecard, top risks, adoption gaps, next commands, and optional handoff payload.
|
|
1311
1335
|
- **`projscan_understand`** _(3.4)_ - cited repo-comprehension report with `map`, `flow`, `contracts`, `change`, and `verify` views, read-first files, unknowns, change readiness, verification tiers, and exact next commands.
|
|
1312
1336
|
- **`projscan_semantic_graph`** _(3.0; query mode 4.0)_ - the code graph, two ways. With no `query`: the stable v3 semantic graph contract (file, function, package, and symbol nodes plus `defines`, `imports`, `imports_package`, `exports`, and `calls` edges). With `query: { direction, file?, symbol? }`: one cheap targeted lookup — `imports`, `exports`, `importers`, `symbol_defs`, `package_importers` — with millisecond responses on a warm cache. (Subsumes the former `projscan_graph`, removed in 4.0.)
|
|
1313
|
-
- **`projscan_dataflow`** _(3.0)_ - focused direct, propagated, and bridge source-to-sink dataflow risks. Next.js and Express request sources are framework-aware, DB/write sinks are receiver-sensitive, and defaults suppress test-file paths, broad readFile/writeFile noise, JavaScript RegExp.exec false positives, and generated-code anxiety; opt into broader scans with `include_tests` / `include_broad_file_io` / `include_generated` or the matching CLI flags.
|
|
1337
|
+
- **`projscan_dataflow`** _(3.0)_ - focused direct, propagated, and bridge source-to-sink dataflow risks. Next.js route body readers and URL reads plus Hono, Express, Fastify, and Koa request sources are framework-aware, DB/write sinks are receiver-sensitive, and defaults suppress test-file paths, broad readFile/writeFile noise, JavaScript RegExp.exec false positives, and generated-code anxiety; opt into broader scans with `include_tests` / `include_broad_file_io` / `include_generated` or the matching CLI flags.
|
|
1314
1338
|
- **`projscan_search`** - fast search across `symbols` (exported names), `files` (path substring), or `content` (source substring with line + excerpt). Sub-file mode (`sub_file: true`) embeds per-function for sharper semantic results _(0.15)_.
|
|
1315
1339
|
- **`projscan_coupling`** _(0.11)_ - per-file fan-in / fan-out / instability + circular-import cycles (Tarjan SCC). Filter by `direction: cycles_only | high_fan_in | high_fan_out`.
|
|
1316
1340
|
- **`projscan_pr_diff`** _(0.11)_ - structural diff between two git refs. Returns added/removed/modified files with explicit lists of exports, imports, and call sites that changed, plus ΔCC and Δfan-in.
|
|
@@ -89,7 +89,7 @@ export async function check(rootPath, files) {
|
|
|
89
89
|
issues.push({
|
|
90
90
|
id: 'dep-risk-no-python-lockfile',
|
|
91
91
|
title: 'No Python lockfile detected',
|
|
92
|
-
description: 'No lockfile (poetry.lock / Pipfile.lock / pdm.lock / uv.lock / conda-lock.yml) or pinned
|
|
92
|
+
description: 'No lockfile (poetry.lock / Pipfile.lock / pdm.lock / uv.lock / conda-lock.yml), pinned requirements.txt, or pinned constraints.txt found. Builds may resolve different versions over time.',
|
|
93
93
|
severity,
|
|
94
94
|
category: 'dependencies',
|
|
95
95
|
fixAvailable: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pythonDependencyRiskCheck.js","sourceRoot":"","sources":["../../src/analyzers/pythonDependencyRiskCheck.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pythonDependencyRiskCheck.js","sourceRoot":"","sources":["../../src/analyzers/pythonDependencyRiskCheck.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/_shared.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import {
|
|
2
|
+
import type { PluginReporterCommand } from '../core/plugins.js';
|
|
3
3
|
import type { ProjscanConfig, ReportFormat } from '../types/config.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { FileExplanation, Issue } from '../types.js';
|
|
5
|
+
export { buildArchitectureLayers } from './architectureLayers.js';
|
|
6
|
+
export { sliceCliTree } from './treeSlice.js';
|
|
5
7
|
export declare const pkg: any;
|
|
6
8
|
export declare const program: Command;
|
|
7
9
|
export declare function getFormat(): ReportFormat;
|
|
@@ -13,8 +15,5 @@ export declare function setupLogLevel(): void;
|
|
|
13
15
|
export declare function maybeBanner(): void;
|
|
14
16
|
export declare function maybeCompactBanner(): void;
|
|
15
17
|
export declare function renderPluginReporterIfRequested(command: PluginReporterCommand, reporterName: unknown, payload: unknown): Promise<boolean>;
|
|
16
|
-
/** Walk a DirectoryNode to find the node whose `path` matches targetPath. */
|
|
17
|
-
export declare function sliceCliTree(node: DirectoryNode, targetPath: string): DirectoryNode | null;
|
|
18
18
|
export declare function analyzeFile(filePath: string): Promise<FileExplanation>;
|
|
19
|
-
export declare function buildArchitectureLayers(files: FileEntry[], frameworkNames: string[]): ArchitectureLayer[];
|
|
20
19
|
export declare function promptYesNo(question: string): Promise<boolean>;
|
package/dist/cli/_shared.js
CHANGED
|
@@ -7,12 +7,17 @@ import { fileURLToPath } from 'node:url';
|
|
|
7
7
|
import { explainFile as explainProjectFile } from '../core/fileInspector.js';
|
|
8
8
|
import { setLogLevel } from '../utils/logger.js';
|
|
9
9
|
import { showBanner, showCompactBanner } from '../utils/banner.js';
|
|
10
|
-
import { loadConfig } from '../utils/config.js';
|
|
11
10
|
import { recordCommandTelemetry } from '../core/telemetry.js';
|
|
12
11
|
import { enableOfflineMode } from '../core/privacy.js';
|
|
13
12
|
import { getChangedFiles } from '../utils/changedFiles.js';
|
|
14
13
|
import { OUTPUT_FORMATS, formatList, getCommandFormatSupport } from '../utils/formatSupport.js';
|
|
15
|
-
import {
|
|
14
|
+
import { changedFilesAvailableMessage, changedFilesUnavailableMessage, changedIssueFilterMessage, filterIssuesToChangedFiles, } from './changedIssueFilter.js';
|
|
15
|
+
import { loadCliProjectConfig } from './projectConfig.js';
|
|
16
|
+
import { renderCliPluginReporterIfRequested } from './pluginReporter.js';
|
|
17
|
+
import { cliCommandPath } from './commandPath.js';
|
|
18
|
+
import { renderCliBanner } from './bannerDisplay.js';
|
|
19
|
+
export { buildArchitectureLayers } from './architectureLayers.js';
|
|
20
|
+
export { sliceCliTree } from './treeSlice.js';
|
|
16
21
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
17
22
|
export const pkg = JSON.parse(readFileSync(path.resolve(__dirname, '../../package.json'), 'utf-8'));
|
|
18
23
|
export const program = new Command();
|
|
@@ -36,11 +41,11 @@ program.hook('preAction', (_thisCommand, actionCommand) => {
|
|
|
36
41
|
process.env.PROJSCAN_INCLUDE_IGNORED = '1';
|
|
37
42
|
if (opts.scanEnvValues)
|
|
38
43
|
process.env.PROJSCAN_SCAN_ENV_VALUES = '1';
|
|
39
|
-
activeTelemetryRun = { commandName:
|
|
44
|
+
activeTelemetryRun = { commandName: cliCommandPath(actionCommand), startedAt: Date.now() };
|
|
40
45
|
});
|
|
41
46
|
program.hook('postAction', async (_thisCommand, actionCommand) => {
|
|
42
47
|
const run = activeTelemetryRun ?? {
|
|
43
|
-
commandName:
|
|
48
|
+
commandName: cliCommandPath(actionCommand),
|
|
44
49
|
startedAt: Date.now(),
|
|
45
50
|
};
|
|
46
51
|
activeTelemetryRun = null;
|
|
@@ -52,17 +57,6 @@ program.hook('postAction', async (_thisCommand, actionCommand) => {
|
|
|
52
57
|
version: pkg.version,
|
|
53
58
|
}).catch(() => undefined);
|
|
54
59
|
});
|
|
55
|
-
function commandPath(actionCommand) {
|
|
56
|
-
const parts = [];
|
|
57
|
-
let current = actionCommand;
|
|
58
|
-
while (current && current.name() !== 'projscan') {
|
|
59
|
-
const name = current.name();
|
|
60
|
-
if (name)
|
|
61
|
-
parts.unshift(name);
|
|
62
|
-
current = current.parent ?? null;
|
|
63
|
-
}
|
|
64
|
-
return parts.join(' ') || actionCommand.name() || 'unknown';
|
|
65
|
-
}
|
|
66
60
|
export function getFormat() {
|
|
67
61
|
const opts = program.opts();
|
|
68
62
|
const f = opts.format;
|
|
@@ -90,57 +84,36 @@ export function getRootPath() {
|
|
|
90
84
|
}
|
|
91
85
|
export async function loadProjectConfig() {
|
|
92
86
|
const opts = program.opts();
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
process.env.PROJSCAN_INCLUDE_IGNORED = '1';
|
|
100
|
-
if (config.scan?.scanEnvValues)
|
|
101
|
-
process.env.PROJSCAN_SCAN_ENV_VALUES = '1';
|
|
102
|
-
if (source && !opts.quiet && getFormat() === 'console') {
|
|
103
|
-
console.error(chalk.dim(` [config: ${path.relative(getRootPath(), source) || source}]`));
|
|
104
|
-
}
|
|
105
|
-
return config;
|
|
106
|
-
}
|
|
107
|
-
catch (err) {
|
|
108
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
109
|
-
console.error(chalk.red(` Config error: ${msg}`));
|
|
110
|
-
process.exit(1);
|
|
111
|
-
}
|
|
87
|
+
return await loadCliProjectConfig({
|
|
88
|
+
rootPath: getRootPath(),
|
|
89
|
+
configOption: opts.config,
|
|
90
|
+
quiet: Boolean(opts.quiet),
|
|
91
|
+
format: getFormat(),
|
|
92
|
+
});
|
|
112
93
|
}
|
|
113
94
|
export async function filterIssuesByChangedFiles(issues, rootPath, baseRef) {
|
|
114
95
|
const result = await getChangedFiles(rootPath, baseRef);
|
|
96
|
+
const format = getFormat();
|
|
97
|
+
const quiet = Boolean(program.opts().quiet);
|
|
115
98
|
if (!result.available) {
|
|
116
|
-
|
|
117
|
-
console.error(chalk.yellow(` [--changed-only: ${result.reason ?? 'unavailable'} - reporting all issues]`));
|
|
118
|
-
}
|
|
99
|
+
writeChangedOnlyNotice(changedFilesUnavailableMessage(result.reason), format, quiet, 'warning');
|
|
119
100
|
return issues;
|
|
120
101
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
if (
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
? ` [--changed-only: ${dropped} issue(s) filtered out; ${unlocated} had no file location]`
|
|
135
|
-
: ` [--changed-only: ${dropped} issue(s) outside the changed-file set]`;
|
|
136
|
-
if (getFormat() === 'console') {
|
|
137
|
-
console.error(chalk.dim(message));
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
console.error(message.trim());
|
|
141
|
-
}
|
|
102
|
+
writeChangedOnlyNotice(changedFilesAvailableMessage(result.baseRef, result.files.length), format, quiet, 'dim');
|
|
103
|
+
const filtered = filterIssuesToChangedFiles(issues, result.files);
|
|
104
|
+
const filterMessage = changedIssueFilterMessage(filtered);
|
|
105
|
+
if (filterMessage)
|
|
106
|
+
writeChangedOnlyNotice(filterMessage, format, quiet, 'dim');
|
|
107
|
+
return filtered.issues;
|
|
108
|
+
}
|
|
109
|
+
function writeChangedOnlyNotice(message, format, quiet, style) {
|
|
110
|
+
if (quiet)
|
|
111
|
+
return;
|
|
112
|
+
if (format !== 'console') {
|
|
113
|
+
console.error(message.trim());
|
|
114
|
+
return;
|
|
142
115
|
}
|
|
143
|
-
|
|
116
|
+
console.error(style === 'warning' ? chalk.yellow(message) : chalk.dim(message));
|
|
144
117
|
}
|
|
145
118
|
export function setupLogLevel() {
|
|
146
119
|
const opts = program.opts();
|
|
@@ -150,148 +123,28 @@ export function setupLogLevel() {
|
|
|
150
123
|
setLogLevel('quiet');
|
|
151
124
|
}
|
|
152
125
|
export function maybeBanner() {
|
|
153
|
-
|
|
154
|
-
if (!opts.quiet && getFormat() === 'console') {
|
|
155
|
-
try {
|
|
156
|
-
showBanner();
|
|
157
|
-
}
|
|
158
|
-
catch (err) {
|
|
159
|
-
console.error(chalk.dim(` [banner error: ${err instanceof Error ? err.message : String(err)}]`));
|
|
160
|
-
}
|
|
161
|
-
}
|
|
126
|
+
renderCliBanner(currentBannerOptions(), showBanner);
|
|
162
127
|
}
|
|
163
128
|
export function maybeCompactBanner() {
|
|
129
|
+
renderCliBanner(currentBannerOptions(), showCompactBanner);
|
|
130
|
+
}
|
|
131
|
+
function currentBannerOptions() {
|
|
164
132
|
const opts = program.opts();
|
|
165
|
-
|
|
166
|
-
try {
|
|
167
|
-
showCompactBanner();
|
|
168
|
-
}
|
|
169
|
-
catch (err) {
|
|
170
|
-
console.error(chalk.dim(` [banner error: ${err instanceof Error ? err.message : String(err)}]`));
|
|
171
|
-
}
|
|
172
|
-
}
|
|
133
|
+
return { quiet: Boolean(opts.quiet), format: getFormat() };
|
|
173
134
|
}
|
|
174
135
|
export async function renderPluginReporterIfRequested(command, reporterName, payload) {
|
|
175
|
-
|
|
176
|
-
return false;
|
|
177
|
-
const format = getFormat();
|
|
178
|
-
if (format !== 'console') {
|
|
179
|
-
console.error(chalk.red(`--reporter cannot be combined with --format ${format}`));
|
|
180
|
-
process.exit(1);
|
|
181
|
-
}
|
|
182
|
-
const rootPath = getRootPath();
|
|
183
|
-
const resolved = await resolveReporterPlugin(rootPath, reporterName, command);
|
|
184
|
-
if (!resolved.ok) {
|
|
185
|
-
printPluginReporterDiagnostic(resolved.diagnostic);
|
|
186
|
-
process.exit(1);
|
|
187
|
-
}
|
|
188
|
-
const rendered = await renderReporterPlugin(resolved.plugin, {
|
|
136
|
+
return await renderCliPluginReporterIfRequested({
|
|
189
137
|
command,
|
|
190
|
-
|
|
191
|
-
manifest: resolved.plugin.manifest,
|
|
138
|
+
reporterName,
|
|
192
139
|
payload,
|
|
140
|
+
format: getFormat(),
|
|
141
|
+
rootPath: getRootPath(),
|
|
193
142
|
});
|
|
194
|
-
if (!rendered.ok) {
|
|
195
|
-
printPluginReporterDiagnostic(rendered.diagnostic);
|
|
196
|
-
process.exit(1);
|
|
197
|
-
}
|
|
198
|
-
console.log(rendered.output);
|
|
199
|
-
return true;
|
|
200
|
-
}
|
|
201
|
-
function printPluginReporterDiagnostic(diagnostic) {
|
|
202
|
-
console.error(chalk.red(`[${diagnostic.code}] ${diagnostic.message}`));
|
|
203
|
-
if (diagnostic.hint)
|
|
204
|
-
console.error(chalk.dim(`hint: ${diagnostic.hint}`));
|
|
205
|
-
}
|
|
206
|
-
/** Walk a DirectoryNode to find the node whose `path` matches targetPath. */
|
|
207
|
-
export function sliceCliTree(node, targetPath) {
|
|
208
|
-
if (node.path === targetPath)
|
|
209
|
-
return node;
|
|
210
|
-
for (const child of node.children) {
|
|
211
|
-
const hit = sliceCliTree(child, targetPath);
|
|
212
|
-
if (hit)
|
|
213
|
-
return hit;
|
|
214
|
-
}
|
|
215
|
-
return null;
|
|
216
143
|
}
|
|
217
144
|
export async function analyzeFile(filePath) {
|
|
218
145
|
const rootPath = process.cwd();
|
|
219
146
|
return await explainProjectFile(rootPath, path.relative(rootPath, filePath));
|
|
220
147
|
}
|
|
221
|
-
export function buildArchitectureLayers(files, frameworkNames) {
|
|
222
|
-
const layers = [];
|
|
223
|
-
const dirs = new Set(files.map((f) => f.directory.split(path.sep)[0]).filter(Boolean));
|
|
224
|
-
const frontendDirs = ['pages', 'components', 'views', 'layouts', 'public', 'app', 'styles'];
|
|
225
|
-
const frontendMatches = frontendDirs.filter((d) => dirs.has(d) || dirs.has(`src/${d}`));
|
|
226
|
-
const frontendFrameworks = frameworkNames.filter((f) => [
|
|
227
|
-
'React',
|
|
228
|
-
'Next.js',
|
|
229
|
-
'Vue.js',
|
|
230
|
-
'Nuxt.js',
|
|
231
|
-
'Svelte',
|
|
232
|
-
'SvelteKit',
|
|
233
|
-
'Angular',
|
|
234
|
-
'Solid.js',
|
|
235
|
-
].includes(f));
|
|
236
|
-
if (frontendMatches.length > 0 || frontendFrameworks.length > 0) {
|
|
237
|
-
layers.push({
|
|
238
|
-
name: 'Frontend',
|
|
239
|
-
technologies: frontendFrameworks.length > 0 ? frontendFrameworks : ['Static'],
|
|
240
|
-
directories: frontendMatches,
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
const apiDirs = ['api', 'routes', 'controllers', 'endpoints'];
|
|
244
|
-
const apiMatches = apiDirs.filter((d) => dirs.has(d) || dirs.has(`src/${d}`));
|
|
245
|
-
const apiFrameworks = frameworkNames.filter((f) => ['Express', 'Fastify', 'NestJS', 'Hono', 'Koa', 'Apollo Server', 'tRPC'].includes(f));
|
|
246
|
-
if (apiMatches.length > 0 || apiFrameworks.length > 0) {
|
|
247
|
-
layers.push({
|
|
248
|
-
name: 'API Layer',
|
|
249
|
-
technologies: apiFrameworks.length > 0 ? apiFrameworks : ['HTTP'],
|
|
250
|
-
directories: apiMatches,
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
const serviceDirs = ['services', 'lib', 'core', 'domain', 'modules'];
|
|
254
|
-
const serviceMatches = serviceDirs.filter((d) => dirs.has(d) || dirs.has(`src/${d}`));
|
|
255
|
-
if (serviceMatches.length > 0) {
|
|
256
|
-
layers.push({
|
|
257
|
-
name: 'Services',
|
|
258
|
-
technologies: inferServiceTech(files, serviceMatches),
|
|
259
|
-
directories: serviceMatches,
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
const dbDirs = ['db', 'database', 'prisma', 'migrations', 'models', 'entities'];
|
|
263
|
-
const dbMatches = dbDirs.filter((d) => dirs.has(d) || dirs.has(`src/${d}`));
|
|
264
|
-
const dbFrameworks = frameworkNames.filter((f) => ['Prisma', 'Drizzle ORM', 'Mongoose', 'TypeORM', 'Sequelize'].includes(f));
|
|
265
|
-
if (dbMatches.length > 0 || dbFrameworks.length > 0) {
|
|
266
|
-
layers.push({
|
|
267
|
-
name: 'Database',
|
|
268
|
-
technologies: dbFrameworks.length > 0 ? dbFrameworks : ['Database'],
|
|
269
|
-
directories: dbMatches,
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
if (layers.length === 0) {
|
|
273
|
-
const topDirs = [...dirs].slice(0, 5);
|
|
274
|
-
layers.push({
|
|
275
|
-
name: 'Application',
|
|
276
|
-
technologies: frameworkNames.length > 0 ? frameworkNames : ['Unknown'],
|
|
277
|
-
directories: topDirs,
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
return layers;
|
|
281
|
-
}
|
|
282
|
-
function inferServiceTech(files, serviceDirs) {
|
|
283
|
-
const techs = [];
|
|
284
|
-
const serviceFiles = files.filter((f) => serviceDirs.some((d) => f.directory.startsWith(d)));
|
|
285
|
-
const hasTsFiles = serviceFiles.some((f) => f.extension === '.ts' || f.extension === '.tsx');
|
|
286
|
-
const hasJsFiles = serviceFiles.some((f) => f.extension === '.js' || f.extension === '.jsx');
|
|
287
|
-
if (hasTsFiles)
|
|
288
|
-
techs.push('TypeScript');
|
|
289
|
-
else if (hasJsFiles)
|
|
290
|
-
techs.push('JavaScript');
|
|
291
|
-
if (techs.length === 0)
|
|
292
|
-
techs.push('Mixed');
|
|
293
|
-
return techs;
|
|
294
|
-
}
|
|
295
148
|
export function promptYesNo(question) {
|
|
296
149
|
return new Promise((resolve) => {
|
|
297
150
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
package/dist/cli/_shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/cli/_shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/cli/_shared.ts"],"names":[],"mappings":"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"}
|