projscan 4.6.0 → 4.7.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 +24 -11
- package/dist/cli/_shared.js +12 -44
- package/dist/cli/_shared.js.map +1 -1
- package/dist/cli/changedOnly.d.ts +16 -0
- package/dist/cli/changedOnly.js +28 -0
- package/dist/cli/changedOnly.js.map +1 -0
- package/dist/cli/formatOptions.d.ts +4 -0
- package/dist/cli/formatOptions.js +30 -0
- package/dist/cli/formatOptions.js.map +1 -0
- package/dist/core/agentBrief.js +6 -1
- package/dist/core/agentBrief.js.map +1 -1
- package/dist/core/astBodySignals.js +2 -3
- package/dist/core/astBodySignals.js.map +1 -1
- package/dist/core/astMembers.d.ts +1 -0
- package/dist/core/astMembers.js +38 -9
- package/dist/core/astMembers.js.map +1 -1
- package/dist/core/bugHunt.js +2 -142
- package/dist/core/bugHunt.js.map +1 -1
- package/dist/core/bugHuntHotspotFindings.d.ts +2 -0
- package/dist/core/bugHuntHotspotFindings.js +68 -0
- package/dist/core/bugHuntHotspotFindings.js.map +1 -0
- package/dist/core/bugHuntPreflightFindings.d.ts +3 -0
- package/dist/core/bugHuntPreflightFindings.js +115 -0
- package/dist/core/bugHuntPreflightFindings.js.map +1 -0
- package/dist/core/codeGraph.d.ts +1 -8
- package/dist/core/codeGraph.js +4 -30
- package/dist/core/codeGraph.js.map +1 -1
- package/dist/core/codeGraphFileSelection.d.ts +7 -0
- package/dist/core/codeGraphFileSelection.js +19 -0
- package/dist/core/codeGraphFileSelection.js.map +1 -0
- package/dist/core/codeGraphQueries.d.ts +9 -0
- package/dist/core/codeGraphQueries.js +25 -0
- package/dist/core/codeGraphQueries.js.map +1 -0
- package/dist/core/dataflow.js +3 -338
- package/dist/core/dataflow.js.map +1 -1
- package/dist/core/dataflowDatabaseSinks.d.ts +8 -0
- package/dist/core/dataflowDatabaseSinks.js +78 -0
- package/dist/core/dataflowDatabaseSinks.js.map +1 -0
- package/dist/core/dataflowRiskAssembly.d.ts +11 -0
- package/dist/core/dataflowRiskAssembly.js +117 -0
- package/dist/core/dataflowRiskAssembly.js.map +1 -0
- package/dist/core/dataflowTraversal.d.ts +25 -0
- package/dist/core/dataflowTraversal.js +200 -0
- package/dist/core/dataflowTraversal.js.map +1 -0
- package/dist/core/fileInspectionReport.d.ts +13 -0
- package/dist/core/fileInspectionReport.js +49 -0
- package/dist/core/fileInspectionReport.js.map +1 -0
- package/dist/core/fileInspector.d.ts +3 -11
- package/dist/core/fileInspector.js +2 -46
- package/dist/core/fileInspector.js.map +1 -1
- package/dist/core/fixSuggest.d.ts +1 -9
- package/dist/core/fixSuggest.js +2 -58
- package/dist/core/fixSuggest.js.map +1 -1
- package/dist/core/fixSuggestDependencyNames.d.ts +1 -0
- package/dist/core/fixSuggestDependencyNames.js +9 -0
- package/dist/core/fixSuggestDependencyNames.js.map +1 -0
- package/dist/core/fixSuggestPreview.d.ts +10 -0
- package/dist/core/fixSuggestPreview.js +87 -0
- package/dist/core/fixSuggestPreview.js.map +1 -0
- package/dist/core/frameworkHonoSources.js +7 -0
- package/dist/core/frameworkHonoSources.js.map +1 -1
- package/dist/core/frameworkNextRouteSources.d.ts +6 -1
- package/dist/core/frameworkNextRouteSources.js +31 -1
- package/dist/core/frameworkNextRouteSources.js.map +1 -1
- package/dist/core/frameworkRemixSources.d.ts +2 -0
- package/dist/core/frameworkRemixSources.js +63 -0
- package/dist/core/frameworkRemixSources.js.map +1 -0
- package/dist/core/frameworkSources.d.ts +15 -3
- package/dist/core/frameworkSources.js +41 -10
- package/dist/core/frameworkSources.js.map +1 -1
- package/dist/core/intentRouter.d.ts +4 -14
- package/dist/core/intentRouter.js +4 -29
- package/dist/core/intentRouter.js.map +1 -1
- package/dist/core/intentRouterCatalog.js +17 -0
- package/dist/core/intentRouterCatalog.js.map +1 -1
- package/dist/core/intentRouterKeywordWeights.js +13 -0
- package/dist/core/intentRouterKeywordWeights.js.map +1 -1
- package/dist/core/intentRouterReleaseSignals.js +119 -39
- package/dist/core/intentRouterReleaseSignals.js.map +1 -1
- package/dist/core/intentRouterResult.d.ts +16 -0
- package/dist/core/intentRouterResult.js +34 -0
- package/dist/core/intentRouterResult.js.map +1 -0
- package/dist/core/intentRouterWorkSignals.js +18 -0
- package/dist/core/intentRouterWorkSignals.js.map +1 -1
- package/dist/core/languages/pythonLockfiles.d.ts +4 -0
- package/dist/core/languages/pythonLockfiles.js +6 -2
- package/dist/core/languages/pythonLockfiles.js.map +1 -1
- package/dist/core/languages/pythonManifests.js +5 -5
- package/dist/core/languages/pythonManifests.js.map +1 -1
- package/dist/core/languages/pythonProjectEvidence.js +1 -1
- package/dist/core/languages/pythonProjectEvidence.js.map +1 -1
- package/dist/core/languages/pythonRequirements.js +144 -18
- package/dist/core/languages/pythonRequirements.js.map +1 -1
- package/dist/core/pluginManifestValidation.d.ts +41 -0
- package/dist/core/pluginManifestValidation.js +179 -0
- package/dist/core/pluginManifestValidation.js.map +1 -0
- package/dist/core/plugins.d.ts +3 -41
- package/dist/core/plugins.js +2 -129
- package/dist/core/plugins.js.map +1 -1
- package/dist/core/regressionPlan.d.ts +2 -1
- package/dist/core/regressionPlan.js +7 -1
- package/dist/core/regressionPlan.js.map +1 -1
- package/dist/core/releaseEvidence.js +6 -120
- package/dist/core/releaseEvidence.js.map +1 -1
- package/dist/core/releaseEvidenceArtifacts.d.ts +3 -0
- package/dist/core/releaseEvidenceArtifacts.js +65 -0
- package/dist/core/releaseEvidenceArtifacts.js.map +1 -0
- package/dist/core/releaseEvidenceVerdict.d.ts +6 -0
- package/dist/core/releaseEvidenceVerdict.js +54 -0
- package/dist/core/releaseEvidenceVerdict.js.map +1 -0
- package/dist/core/reportPathRedaction.d.ts +4 -0
- package/dist/core/reportPathRedaction.js +64 -0
- package/dist/core/reportPathRedaction.js.map +1 -0
- package/dist/core/reportScope.js +2 -163
- package/dist/core/reportScope.js.map +1 -1
- package/dist/core/reportScopeFiltering.d.ts +9 -0
- package/dist/core/reportScopeFiltering.js +102 -0
- package/dist/core/reportScopeFiltering.js.map +1 -0
- package/dist/core/searchIndex.d.ts +2 -14
- package/dist/core/searchIndex.js +4 -227
- package/dist/core/searchIndex.js.map +1 -1
- package/dist/core/searchIndexFiles.d.ts +1 -0
- package/dist/core/searchIndexFiles.js +26 -0
- package/dist/core/searchIndexFiles.js.map +1 -0
- package/dist/core/searchIndexText.d.ts +15 -0
- package/dist/core/searchIndexText.js +204 -0
- package/dist/core/searchIndexText.js.map +1 -0
- package/dist/core/start.js +5 -46
- package/dist/core/start.js.map +1 -1
- package/dist/core/startEvidence.d.ts +1 -1
- package/dist/core/startEvidence.js +16 -1
- package/dist/core/startEvidence.js.map +1 -1
- package/dist/core/startInputs.d.ts +1 -0
- package/dist/core/startInputs.js +4 -1
- package/dist/core/startInputs.js.map +1 -1
- package/dist/core/startMissionPolicy.js +10 -0
- package/dist/core/startMissionPolicy.js.map +1 -1
- package/dist/core/startReportBuilder.d.ts +1 -0
- package/dist/core/startReportBuilder.js +1 -0
- package/dist/core/startReportBuilder.js.map +1 -1
- package/dist/core/startReportContext.d.ts +23 -0
- package/dist/core/startReportContext.js +51 -0
- package/dist/core/startReportContext.js.map +1 -0
- package/dist/core/startRoadmapPreview.d.ts +2 -0
- package/dist/core/startRoadmapPreview.js +31 -0
- package/dist/core/startRoadmapPreview.js.map +1 -0
- package/dist/core/taint.d.ts +2 -67
- package/dist/core/taint.js +41 -164
- package/dist/core/taint.js.map +1 -1
- package/dist/core/taintIndex.d.ts +20 -0
- package/dist/core/taintIndex.js +81 -0
- package/dist/core/taintIndex.js.map +1 -0
- package/dist/core/taintTraversal.d.ts +8 -0
- package/dist/core/taintTraversal.js +113 -0
- package/dist/core/taintTraversal.js.map +1 -0
- package/dist/core/taintTypes.d.ts +67 -0
- package/dist/core/taintTypes.js +2 -0
- package/dist/core/taintTypes.js.map +1 -0
- package/dist/core/telemetry.js +36 -30
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/upgradePreviewPython.js +1 -1
- package/dist/core/upgradePreviewPython.js.map +1 -1
- package/dist/mcp/tools.js +11 -12
- package/dist/mcp/tools.js.map +1 -1
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/reporters/consoleFixReporter.d.ts +3 -0
- package/dist/reporters/consoleFixReporter.js +41 -0
- package/dist/reporters/consoleFixReporter.js.map +1 -0
- package/dist/reporters/consoleReporter.d.ts +1 -3
- package/dist/reporters/consoleReporter.js +1 -42
- package/dist/reporters/consoleReporter.js.map +1 -1
- package/dist/tool-manifest.json +2 -2
- package/dist/types/start.d.ts +14 -0
- package/docs/GUIDE.md +1 -1
- package/docs/ROADMAP.md +16 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,16 +35,29 @@ 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.
|
|
39
|
-
|
|
40
|
-
4.
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
- **
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
- **
|
|
38
|
+
## What's New in 4.7.0
|
|
39
|
+
|
|
40
|
+
4.7.0 turns the post-4.6 validation train into release-ready evidence: broader
|
|
41
|
+
framework dataflow precision, offline Python requirement include support,
|
|
42
|
+
release-train roadmap routing, and lower-risk internal hotspots.
|
|
43
|
+
|
|
44
|
+
- **Remix dataflow coverage.** Remix route actions and loaders now classify
|
|
45
|
+
request body readers, headers, URL, signal, and params through
|
|
46
|
+
framework-gated source patterns.
|
|
47
|
+
- **Python requirements includes.** Upgrade previews follow local `-r`
|
|
48
|
+
requirements and `-c` constraints without reading outside the scan or adding
|
|
49
|
+
network access.
|
|
50
|
+
- **Roadmap routing.** Build-next product-planning prompts now route to
|
|
51
|
+
release-train roadmap evidence with a read-only roadmap preview.
|
|
52
|
+
- **Hotspot cleanup.** Dataflow risk assembly, plugin manifest validation,
|
|
53
|
+
telemetry flushing, search index helpers, release evidence, and bug-hunt
|
|
54
|
+
findings have been split into focused modules.
|
|
55
|
+
- **Focused coverage.** Python lockfile, framework dataflow, intent router,
|
|
56
|
+
preflight, MCP, and start suites now carry smaller regression tests plus
|
|
57
|
+
architecture guards for high-risk entrypoints.
|
|
58
|
+
- **Release readiness.** Large-train preflight warnings are now separated from
|
|
59
|
+
concrete taint, dataflow, health, plugin, and supply-chain defects so release
|
|
60
|
+
review can focus on scale sign-off.
|
|
48
61
|
|
|
49
62
|
<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
63
|
|
|
@@ -487,7 +500,7 @@ projscan start --intent "what should an intern work on?" # Routes to bug-hunt pr
|
|
|
487
500
|
projscan start --intent "what is a low risk improvement?" # Routes to bug-hunt prioritization
|
|
488
501
|
projscan start --intent "pick a small safe task" # Routes to bug-hunt prioritization
|
|
489
502
|
projscan start --intent "what should I do next?" # Routes to an ordered before-edit workplan
|
|
490
|
-
projscan start --intent "what should we build next?" # Routes to
|
|
503
|
+
projscan start --intent "what should we build next?" # Routes to release-train roadmap planning
|
|
491
504
|
projscan start --intent "explain issue missing-test-framework" # Routes to deep issue context
|
|
492
505
|
projscan start --intent "fix issue missing-test-framework" # Routes to a concrete fix suggestion
|
|
493
506
|
projscan start --intent "is user input reaching SQL sinks?" # Routes to hardening dataflow analysis
|
package/dist/cli/_shared.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
2
|
import path from 'node:path';
|
|
4
3
|
import readline from 'node:readline';
|
|
5
4
|
import { readFileSync } from 'node:fs';
|
|
@@ -9,13 +8,13 @@ import { setLogLevel } from '../utils/logger.js';
|
|
|
9
8
|
import { showBanner, showCompactBanner } from '../utils/banner.js';
|
|
10
9
|
import { recordCommandTelemetry } from '../core/telemetry.js';
|
|
11
10
|
import { enableOfflineMode } from '../core/privacy.js';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { changedFilesAvailableMessage, changedFilesUnavailableMessage, changedIssueFilterMessage, filterIssuesToChangedFiles, } from './changedIssueFilter.js';
|
|
11
|
+
import { formatList } from '../utils/formatSupport.js';
|
|
12
|
+
import { filterIssuesByChangedFilesForCli } from './changedOnly.js';
|
|
15
13
|
import { loadCliProjectConfig } from './projectConfig.js';
|
|
16
14
|
import { renderCliPluginReporterIfRequested } from './pluginReporter.js';
|
|
17
15
|
import { cliCommandPath } from './commandPath.js';
|
|
18
16
|
import { renderCliBanner } from './bannerDisplay.js';
|
|
17
|
+
import { assertCliFormatSupported, resolveCliFormat } from './formatOptions.js';
|
|
19
18
|
export { buildArchitectureLayers } from './architectureLayers.js';
|
|
20
19
|
export { sliceCliTree } from './treeSlice.js';
|
|
21
20
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
@@ -58,26 +57,10 @@ program.hook('postAction', async (_thisCommand, actionCommand) => {
|
|
|
58
57
|
}).catch(() => undefined);
|
|
59
58
|
});
|
|
60
59
|
export function getFormat() {
|
|
61
|
-
|
|
62
|
-
const f = opts.format;
|
|
63
|
-
if (OUTPUT_FORMATS.includes(f))
|
|
64
|
-
return f;
|
|
65
|
-
console.error(chalk.red(`Unsupported --format ${f}.`));
|
|
66
|
-
console.error(chalk.dim(`Supported formats: ${formatList()}`));
|
|
67
|
-
process.exit(1);
|
|
60
|
+
return resolveCliFormat(program.opts().format);
|
|
68
61
|
}
|
|
69
62
|
export function assertFormatSupported(commandName) {
|
|
70
|
-
|
|
71
|
-
const supported = getCommandFormatSupport(commandName);
|
|
72
|
-
if (!supported) {
|
|
73
|
-
console.error(chalk.red(`Internal error: no --format support metadata for projscan ${commandName}.`));
|
|
74
|
-
process.exit(1);
|
|
75
|
-
}
|
|
76
|
-
if (supported.includes(format))
|
|
77
|
-
return format;
|
|
78
|
-
console.error(chalk.red(`projscan ${commandName} does not support --format ${format}.`));
|
|
79
|
-
console.error(chalk.dim(`Supported formats: ${formatList(supported)}`));
|
|
80
|
-
process.exit(1);
|
|
63
|
+
return assertCliFormatSupported(commandName, program.opts().format);
|
|
81
64
|
}
|
|
82
65
|
export function getRootPath() {
|
|
83
66
|
return process.cwd();
|
|
@@ -92,28 +75,13 @@ export async function loadProjectConfig() {
|
|
|
92
75
|
});
|
|
93
76
|
}
|
|
94
77
|
export async function filterIssuesByChangedFiles(issues, rootPath, baseRef) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
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;
|
|
115
|
-
}
|
|
116
|
-
console.error(style === 'warning' ? chalk.yellow(message) : chalk.dim(message));
|
|
78
|
+
return await filterIssuesByChangedFilesForCli({
|
|
79
|
+
issues,
|
|
80
|
+
rootPath,
|
|
81
|
+
baseRef,
|
|
82
|
+
format: getFormat(),
|
|
83
|
+
quiet: Boolean(program.opts().quiet),
|
|
84
|
+
});
|
|
117
85
|
}
|
|
118
86
|
export function setupLogLevel() {
|
|
119
87
|
const opts = program.opts();
|
package/dist/cli/_shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/cli/_shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../src/cli/_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ChangedFilesResult } from '../utils/changedFiles.js';
|
|
2
|
+
import type { ReportFormat } from '../types/config.js';
|
|
3
|
+
import type { Issue } from '../types.js';
|
|
4
|
+
type ChangedFilesLoader = (rootPath: string, explicitBaseRef?: string) => Promise<ChangedFilesResult>;
|
|
5
|
+
type NoticeWriter = (message: string) => void;
|
|
6
|
+
export interface ChangedOnlyFilterOptions {
|
|
7
|
+
issues: Issue[];
|
|
8
|
+
rootPath: string;
|
|
9
|
+
baseRef?: string;
|
|
10
|
+
format: ReportFormat;
|
|
11
|
+
quiet: boolean;
|
|
12
|
+
getChangedFiles?: ChangedFilesLoader;
|
|
13
|
+
write?: NoticeWriter;
|
|
14
|
+
}
|
|
15
|
+
export declare function filterIssuesByChangedFilesForCli(options: ChangedOnlyFilterOptions): Promise<Issue[]>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { getChangedFiles } from '../utils/changedFiles.js';
|
|
3
|
+
import { changedFilesAvailableMessage, changedFilesUnavailableMessage, changedIssueFilterMessage, filterIssuesToChangedFiles, } from './changedIssueFilter.js';
|
|
4
|
+
export async function filterIssuesByChangedFilesForCli(options) {
|
|
5
|
+
const loadChangedFiles = options.getChangedFiles ?? getChangedFiles;
|
|
6
|
+
const result = await loadChangedFiles(options.rootPath, options.baseRef);
|
|
7
|
+
if (!result.available) {
|
|
8
|
+
writeChangedOnlyNotice(changedFilesUnavailableMessage(result.reason), options.format, options.quiet, 'warning', options.write);
|
|
9
|
+
return options.issues;
|
|
10
|
+
}
|
|
11
|
+
writeChangedOnlyNotice(changedFilesAvailableMessage(result.baseRef, result.files.length), options.format, options.quiet, 'dim', options.write);
|
|
12
|
+
const filtered = filterIssuesToChangedFiles(options.issues, result.files);
|
|
13
|
+
const filterMessage = changedIssueFilterMessage(filtered);
|
|
14
|
+
if (filterMessage) {
|
|
15
|
+
writeChangedOnlyNotice(filterMessage, options.format, options.quiet, 'dim', options.write);
|
|
16
|
+
}
|
|
17
|
+
return filtered.issues;
|
|
18
|
+
}
|
|
19
|
+
function writeChangedOnlyNotice(message, format, quiet, style, write = console.error) {
|
|
20
|
+
if (quiet)
|
|
21
|
+
return;
|
|
22
|
+
if (format !== 'console') {
|
|
23
|
+
write(message.trim());
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
write(style === 'warning' ? chalk.yellow(message) : chalk.dim(message));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=changedOnly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changedOnly.js","sourceRoot":"","sources":["../../src/cli/changedOnly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAA2B,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAkBjC,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,OAAiC;IAEjC,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,IAAI,eAAe,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,sBAAsB,CACpB,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7C,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,SAAS,EACT,OAAO,CAAC,KAAK,CACd,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,sBAAsB,CACpB,4BAA4B,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EACjE,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,KAAK,EACL,OAAO,CAAC,KAAK,CACd,CAAC;IACF,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,aAAa,EAAE,CAAC;QAClB,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC;AACzB,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAe,EACf,MAAoB,EACpB,KAAc,EACd,KAAwB,EACxB,QAAsB,OAAO,CAAC,KAAK;IAEnC,IAAI,KAAK;QAAE,OAAO;IAClB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IACD,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ReportFormat } from '../types/config.js';
|
|
2
|
+
export type CliFormatFailure = (messages: string[]) => never;
|
|
3
|
+
export declare function resolveCliFormat(formatOption: unknown, fail?: CliFormatFailure): ReportFormat;
|
|
4
|
+
export declare function assertCliFormatSupported(commandName: string, formatOption: unknown, fail?: CliFormatFailure): ReportFormat;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { OUTPUT_FORMATS, formatList, getCommandFormatSupport } from '../utils/formatSupport.js';
|
|
3
|
+
export function resolveCliFormat(formatOption, fail = exitWithFormatMessages) {
|
|
4
|
+
const format = String(formatOption);
|
|
5
|
+
if (OUTPUT_FORMATS.includes(format))
|
|
6
|
+
return format;
|
|
7
|
+
fail([
|
|
8
|
+
chalk.red(`Unsupported --format ${format}.`),
|
|
9
|
+
chalk.dim(`Supported formats: ${formatList()}`),
|
|
10
|
+
]);
|
|
11
|
+
}
|
|
12
|
+
export function assertCliFormatSupported(commandName, formatOption, fail = exitWithFormatMessages) {
|
|
13
|
+
const format = resolveCliFormat(formatOption, fail);
|
|
14
|
+
const supported = getCommandFormatSupport(commandName);
|
|
15
|
+
if (!supported) {
|
|
16
|
+
fail([chalk.red(`Internal error: no --format support metadata for projscan ${commandName}.`)]);
|
|
17
|
+
}
|
|
18
|
+
if (supported.includes(format))
|
|
19
|
+
return format;
|
|
20
|
+
fail([
|
|
21
|
+
chalk.red(`projscan ${commandName} does not support --format ${format}.`),
|
|
22
|
+
chalk.dim(`Supported formats: ${formatList(supported)}`),
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
function exitWithFormatMessages(messages) {
|
|
26
|
+
for (const message of messages)
|
|
27
|
+
console.error(message);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=formatOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatOptions.js","sourceRoot":"","sources":["../../src/cli/formatOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAKhG,MAAM,UAAU,gBAAgB,CAC9B,YAAqB,EACrB,OAAyB,sBAAsB;IAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACpC,IAAK,cAAoC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAsB,CAAC;IAC1F,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,wBAAwB,MAAM,GAAG,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,sBAAsB,UAAU,EAAE,EAAE,CAAC;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,YAAqB,EACrB,OAAyB,sBAAsB;IAE/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,YAAY,WAAW,8BAA8B,MAAM,GAAG,CAAC;QACzE,KAAK,CAAC,GAAG,CAAC,sBAAsB,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB;IAChD,KAAK,MAAM,OAAO,IAAI,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/core/agentBrief.js
CHANGED
|
@@ -95,11 +95,16 @@ function swarmCoordinationHints(summary) {
|
|
|
95
95
|
const hints = toCoordinationHints(summary);
|
|
96
96
|
if (hints.length === 0)
|
|
97
97
|
return [];
|
|
98
|
+
const hintMessage = hints.join(' ');
|
|
99
|
+
const sessionBoundary = summary.evidence?.sessionSeparation.rememberedContext;
|
|
100
|
+
const message = sessionBoundary && !hintMessage.includes(sessionBoundary)
|
|
101
|
+
? `${hintMessage} ${sessionBoundary}`
|
|
102
|
+
: hintMessage;
|
|
98
103
|
return [
|
|
99
104
|
{
|
|
100
105
|
id: 'swarm-coordination',
|
|
101
106
|
label: 'Swarm coordination',
|
|
102
|
-
message
|
|
107
|
+
message,
|
|
103
108
|
command: 'projscan coordinate --format json',
|
|
104
109
|
},
|
|
105
110
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentBrief.js","sourceRoot":"","sources":["../../src/core/agentBrief.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,IAAI,mBAAmB,GAEzC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAqB7D,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,UAAoC,EAAE;IAEtC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,mBAAmB,CAChC,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,YAAY,CAAC,MAAM,CACpB,CAAC;IACF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxE,WAAW,CAAC,QAAQ,CAAC;QACrB,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;QACpD,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;QACtC,gBAAgB,CAAC,QAAQ,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,SAAS,CAAC;QACzB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QAClD,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;QACzC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,MAAM;QACN,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QACzC,MAAM;QACN,OAAO,EAAE;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/C,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;YACnC,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAC1F,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD;QACD,KAAK;QACL,UAAU;QACV,oBAAoB,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;QACzD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE;YACpE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YACrB,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,QAAgB,EAChB,KAAkB;IAElB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc;YAC/C,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa;YAC7C,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM;YAC7E,aAAa,EAAE,QAAQ,CAAC,SAAS;YACjC,WAAW,EAAE,sBAAsB,CAAC,KAAK,CAAC;SAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAgB;IAC9C,OAAO,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACjE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,OAAmC;IAMjE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"agentBrief.js","sourceRoot":"","sources":["../../src/core/agentBrief.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { babelCalleeName, babelQualifiedMemberName,
|
|
1
|
+
import { babelCalleeName, babelQualifiedMemberName, bindingIdentifierNames, collectMemberAliases, collectMemberReadIdents, isMemberExpressionNode, } from './astMembers.js';
|
|
2
2
|
import { isFunctionNode } from './astFunctionNodes.js';
|
|
3
3
|
import { childAstNodes, isDecisionPoint } from './astProgramSignals.js';
|
|
4
4
|
/**
|
|
@@ -34,8 +34,7 @@ export function functionParamNames(fnNode) {
|
|
|
34
34
|
const params = fnNode.params ?? [];
|
|
35
35
|
const out = new Set();
|
|
36
36
|
for (const param of params) {
|
|
37
|
-
const name
|
|
38
|
-
if (name)
|
|
37
|
+
for (const name of bindingIdentifierNames(param))
|
|
39
38
|
out.add(name);
|
|
40
39
|
}
|
|
41
40
|
return [...out];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astBodySignals.js","sourceRoot":"","sources":["../../src/core/astBodySignals.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"astBodySignals.js","sourceRoot":"","sources":["../../src/core/astBodySignals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Node } from '@babel/types';
|
|
2
2
|
export declare function bindingIdentifierName(node: Node | null | undefined): string | null;
|
|
3
|
+
export declare function bindingIdentifierNames(node: Node | null | undefined): string[];
|
|
3
4
|
export declare function isMemberExpressionNode(node: Node): boolean;
|
|
4
5
|
/**
|
|
5
6
|
* Walk a member-expression chain (`a.b.c`, `req.body.x`, `process.env.SECRET`)
|
package/dist/core/astMembers.js
CHANGED
|
@@ -1,15 +1,44 @@
|
|
|
1
1
|
export function bindingIdentifierName(node) {
|
|
2
|
+
return bindingIdentifierNames(node)[0] ?? null;
|
|
3
|
+
}
|
|
4
|
+
const BINDING_NAME_READERS = {
|
|
5
|
+
Identifier: identifierBindingNames,
|
|
6
|
+
AssignmentPattern: assignmentPatternBindingNames,
|
|
7
|
+
RestElement: restElementBindingNames,
|
|
8
|
+
ObjectPattern: objectPatternBindingNames,
|
|
9
|
+
ArrayPattern: arrayPatternBindingNames,
|
|
10
|
+
};
|
|
11
|
+
export function bindingIdentifierNames(node) {
|
|
2
12
|
if (!node)
|
|
3
|
-
return
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
return [];
|
|
14
|
+
return BINDING_NAME_READERS[node.type]?.(node) ?? [];
|
|
15
|
+
}
|
|
16
|
+
function identifierBindingNames(node) {
|
|
17
|
+
const name = node.name;
|
|
18
|
+
return name ? [name] : [];
|
|
19
|
+
}
|
|
20
|
+
function assignmentPatternBindingNames(node) {
|
|
21
|
+
return bindingIdentifierNames(node.left);
|
|
22
|
+
}
|
|
23
|
+
function restElementBindingNames(node) {
|
|
24
|
+
return bindingIdentifierNames(node.argument);
|
|
25
|
+
}
|
|
26
|
+
function objectPatternBindingNames(node) {
|
|
27
|
+
return (node.properties ?? []).flatMap(bindingNamesFromObjectPatternProperty);
|
|
28
|
+
}
|
|
29
|
+
function arrayPatternBindingNames(node) {
|
|
30
|
+
return (node.elements ?? []).flatMap(bindingIdentifierNames);
|
|
31
|
+
}
|
|
32
|
+
function bindingNamesFromObjectPatternProperty(property) {
|
|
33
|
+
if (!property)
|
|
34
|
+
return [];
|
|
35
|
+
if (property.type === 'RestElement') {
|
|
36
|
+
return bindingIdentifierNames(property.argument);
|
|
11
37
|
}
|
|
12
|
-
|
|
38
|
+
if (property.type !== 'ObjectProperty')
|
|
39
|
+
return [];
|
|
40
|
+
const value = property.value;
|
|
41
|
+
return bindingIdentifierNames(value);
|
|
13
42
|
}
|
|
14
43
|
export function isMemberExpressionNode(node) {
|
|
15
44
|
return node.type === 'MemberExpression' || node.type === 'OptionalMemberExpression';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astMembers.js","sourceRoot":"","sources":["../../src/core/astMembers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,IAA6B;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"astMembers.js","sourceRoot":"","sources":["../../src/core/astMembers.ts"],"names":[],"mappings":"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"}
|
package/dist/core/bugHunt.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { analyzeHotspots } from './hotspotAnalyzer.js';
|
|
2
2
|
import { collectIssues } from './issueEngine.js';
|
|
3
3
|
import { fixFirstFromBugHuntFinding } from './fixFirst.js';
|
|
4
|
+
import { hotspotToFinding } from './bugHuntHotspotFindings.js';
|
|
5
|
+
import { filesFromPreflightEvidence, preflightReasonToFinding, } from './bugHuntPreflightFindings.js';
|
|
4
6
|
import { computePreflight } from './preflight.js';
|
|
5
7
|
import { scanRepository } from './repositoryScanner.js';
|
|
6
8
|
import { buildRiskNow } from './sessionResources.js';
|
|
@@ -84,40 +86,6 @@ function issueToFinding(issue) {
|
|
|
84
86
|
},
|
|
85
87
|
};
|
|
86
88
|
}
|
|
87
|
-
function preflightReasonToFinding(reason, index, changedFiles = []) {
|
|
88
|
-
const files = reason.file ? [reason.file] : changedFiles;
|
|
89
|
-
return {
|
|
90
|
-
id: `bh-preflight-${index + 1}`,
|
|
91
|
-
priority: severityPriority(reason.severity),
|
|
92
|
-
source: 'preflight',
|
|
93
|
-
title: preflightReasonTitle(reason),
|
|
94
|
-
why: reason.message,
|
|
95
|
-
files,
|
|
96
|
-
evidence: [
|
|
97
|
-
{
|
|
98
|
-
source: reason.source,
|
|
99
|
-
severity: reason.severity,
|
|
100
|
-
message: reason.message,
|
|
101
|
-
...(files[0] ? { file: files[0] } : {}),
|
|
102
|
-
...(reason.issueId ? { issueId: reason.issueId } : {}),
|
|
103
|
-
...(reason.tool ? { tool: reason.tool } : {}),
|
|
104
|
-
},
|
|
105
|
-
],
|
|
106
|
-
suggestedTools: ['projscan_preflight', reason.tool ?? 'projscan_doctor'],
|
|
107
|
-
verification: {
|
|
108
|
-
commands: [
|
|
109
|
-
'projscan preflight --mode before_commit --format json',
|
|
110
|
-
'projscan doctor --format json',
|
|
111
|
-
],
|
|
112
|
-
expected: 'The preflight reason is gone or intentionally documented as accepted risk.',
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
function preflightReasonTitle(reason) {
|
|
117
|
-
if (reason.source === 'release')
|
|
118
|
-
return 'Review preflight release sign-off';
|
|
119
|
-
return `Resolve preflight ${reason.source} signal`;
|
|
120
|
-
}
|
|
121
89
|
function conflictToFinding(conflict, index) {
|
|
122
90
|
return {
|
|
123
91
|
id: `bh-session-${index + 1}`,
|
|
@@ -141,35 +109,6 @@ function conflictToFinding(conflict, index) {
|
|
|
141
109
|
},
|
|
142
110
|
};
|
|
143
111
|
}
|
|
144
|
-
function hotspotToFinding(hotspot) {
|
|
145
|
-
return {
|
|
146
|
-
id: `bh-hotspot-${slug(hotspot.relativePath)}`,
|
|
147
|
-
priority: hotspot.issueIds.length > 0 ? (hotspot.riskScore >= 70 ? 'p1' : 'p2') : 'p2',
|
|
148
|
-
source: 'hotspot',
|
|
149
|
-
title: `${hotspot.issueIds.length > 0 ? 'Inspect' : 'Watch'} risky hotspot ${hotspot.relativePath}`,
|
|
150
|
-
why: hotspot.reasons[0] ??
|
|
151
|
-
`Risk score ${Math.round(hotspot.riskScore)} combines churn, complexity, and issue density.`,
|
|
152
|
-
files: [hotspot.relativePath],
|
|
153
|
-
evidence: [
|
|
154
|
-
{
|
|
155
|
-
source: 'hotspots',
|
|
156
|
-
message: `risk score ${Math.round(hotspot.riskScore)}`,
|
|
157
|
-
file: hotspot.relativePath,
|
|
158
|
-
},
|
|
159
|
-
...hotspot.issueIds.slice(0, 3).map((issueId) => ({
|
|
160
|
-
source: 'doctor',
|
|
161
|
-
message: `linked issue ${issueId}`,
|
|
162
|
-
issueId,
|
|
163
|
-
file: hotspot.relativePath,
|
|
164
|
-
})),
|
|
165
|
-
],
|
|
166
|
-
suggestedTools: ['projscan_file', 'projscan_hotspots', 'projscan_impact'],
|
|
167
|
-
verification: {
|
|
168
|
-
commands: [`projscan file ${hotspot.relativePath} --format json`, 'npm test'],
|
|
169
|
-
expected: 'The hotspot has either lower risk, added regression coverage, or an explicit owner for remaining risk.',
|
|
170
|
-
},
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
112
|
function cleanVerificationFinding() {
|
|
174
113
|
return {
|
|
175
114
|
id: 'bh-verify-clean',
|
|
@@ -280,79 +219,6 @@ function isReleaseSignoffFinding(finding) {
|
|
|
280
219
|
function filesFromIssue(issue) {
|
|
281
220
|
return [...new Set((issue.locations ?? []).map((location) => location.file).filter(Boolean))];
|
|
282
221
|
}
|
|
283
|
-
function filesFromPreflightEvidence(files) {
|
|
284
|
-
const contextFiles = files.filter((file) => !isProjscanRuntimePath(file));
|
|
285
|
-
if (contextFiles.length === 0)
|
|
286
|
-
return files;
|
|
287
|
-
const reviewableFiles = sortReviewContextFiles(contextFiles.filter((file) => !isAgentRuntimePath(file)));
|
|
288
|
-
if (reviewableFiles.length === 0)
|
|
289
|
-
return contextFiles;
|
|
290
|
-
const runtimeFiles = contextFiles.filter(isAgentRuntimePath);
|
|
291
|
-
return [...reviewableFiles, ...runtimeFiles];
|
|
292
|
-
}
|
|
293
|
-
function sortReviewContextFiles(files) {
|
|
294
|
-
return files
|
|
295
|
-
.map((file, index) => ({ file, index }))
|
|
296
|
-
.sort((left, right) => {
|
|
297
|
-
const byKind = compareRanks(reviewContextRank(left.file), reviewContextRank(right.file));
|
|
298
|
-
if (byKind)
|
|
299
|
-
return byKind;
|
|
300
|
-
const byPackage = compareRanks(packageMetadataRank(left.file), packageMetadataRank(right.file));
|
|
301
|
-
if (byPackage)
|
|
302
|
-
return byPackage;
|
|
303
|
-
return left.index - right.index;
|
|
304
|
-
})
|
|
305
|
-
.map((entry) => entry.file);
|
|
306
|
-
}
|
|
307
|
-
const PACKAGE_METADATA_RANKS = [
|
|
308
|
-
{ rank: 0, pattern: /^package\.json$/ },
|
|
309
|
-
{
|
|
310
|
-
rank: 1,
|
|
311
|
-
pattern: /^(package-lock\.json|npm-shrinkwrap\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lock|bun\.lockb)$/,
|
|
312
|
-
},
|
|
313
|
-
{ rank: 2, pattern: /(^|\/)package\.json$/ },
|
|
314
|
-
{
|
|
315
|
-
rank: 3,
|
|
316
|
-
pattern: /(^|\/)(package-lock\.json|npm-shrinkwrap\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lock|bun\.lockb)$/,
|
|
317
|
-
},
|
|
318
|
-
];
|
|
319
|
-
const REVIEW_CONTEXT_RANKS = [
|
|
320
|
-
{
|
|
321
|
-
rank: 0,
|
|
322
|
-
pattern: /(^|\/)(package\.json|package-lock\.json|npm-shrinkwrap\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lock|bun\.lockb)$/,
|
|
323
|
-
},
|
|
324
|
-
{ rank: 1, pattern: /^src\//, exclude: /(^|[/.-])(test|spec)\.[cm]?[jt]sx?$/ },
|
|
325
|
-
{ rank: 2, pattern: /(^tests?\/|(^|[/.-])(test|spec)\.[cm]?[jt]sx?$)/ },
|
|
326
|
-
{ rank: 3, pattern: /(^docs\/|(^|\/)(README|CHANGELOG)\.md$|\.md$)/ },
|
|
327
|
-
];
|
|
328
|
-
function reviewContextRank(file) {
|
|
329
|
-
return rankedPatternMatch(normalizeReviewPath(file), REVIEW_CONTEXT_RANKS) ?? 4;
|
|
330
|
-
}
|
|
331
|
-
function packageMetadataRank(file) {
|
|
332
|
-
return rankedPatternMatch(normalizeReviewPath(file), PACKAGE_METADATA_RANKS) ?? 4;
|
|
333
|
-
}
|
|
334
|
-
function rankedPatternMatch(path, ranks) {
|
|
335
|
-
const match = ranks.find((rank) => rank.pattern.test(path) && !rank.exclude?.test(path));
|
|
336
|
-
return match?.rank ?? null;
|
|
337
|
-
}
|
|
338
|
-
function compareRanks(left, right) {
|
|
339
|
-
return left === right ? 0 : left - right;
|
|
340
|
-
}
|
|
341
|
-
function normalizeReviewPath(file) {
|
|
342
|
-
return file.replace(/\\/g, '/');
|
|
343
|
-
}
|
|
344
|
-
function isProjscanRuntimePath(file) {
|
|
345
|
-
return (file === '.projscan-cache' ||
|
|
346
|
-
file.startsWith('.projscan-cache/') ||
|
|
347
|
-
file === '.projscan-memory' ||
|
|
348
|
-
file.startsWith('.projscan-memory/'));
|
|
349
|
-
}
|
|
350
|
-
function isAgentRuntimePath(file) {
|
|
351
|
-
return (file === '.agentflight' ||
|
|
352
|
-
file.startsWith('.agentflight/') ||
|
|
353
|
-
file === '.agentloop' ||
|
|
354
|
-
file.startsWith('.agentloop/'));
|
|
355
|
-
}
|
|
356
222
|
function severityPriority(severity) {
|
|
357
223
|
if (severity === 'error')
|
|
358
224
|
return 'p0';
|
|
@@ -383,10 +249,4 @@ function normalizeMax(value) {
|
|
|
383
249
|
return DEFAULT_MAX_FINDINGS;
|
|
384
250
|
return Math.max(1, Math.min(25, Math.floor(value)));
|
|
385
251
|
}
|
|
386
|
-
function slug(value) {
|
|
387
|
-
return (value
|
|
388
|
-
.replace(/[^a-zA-Z0-9]+/g, '-')
|
|
389
|
-
.replace(/^-+|-+$/g, '')
|
|
390
|
-
.toLowerCase() || 'root');
|
|
391
|
-
}
|
|
392
252
|
//# sourceMappingURL=bugHunt.js.map
|