projscan 4.4.0 → 4.5.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 +35 -12
- package/dist/cli/commands/analyze.js +12 -2
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/ci.js +11 -0
- package/dist/cli/commands/ci.js.map +1 -1
- package/dist/cli/commands/doctor.js +11 -0
- 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/core/ast.d.ts +5 -0
- package/dist/core/ast.js +8 -1
- package/dist/core/ast.js.map +1 -1
- package/dist/core/dataflow.js +2 -1
- package/dist/core/dataflow.js.map +1 -1
- package/dist/core/frameworkSources.d.ts +1 -1
- package/dist/core/frameworkSources.js +92 -2
- package/dist/core/frameworkSources.js.map +1 -1
- package/dist/core/indexCache.js +2 -1
- package/dist/core/indexCache.js.map +1 -1
- package/dist/core/languages/pythonManifests.d.ts +11 -0
- package/dist/core/languages/pythonManifests.js +34 -19
- package/dist/core/languages/pythonManifests.js.map +1 -1
- package/dist/core/reportScope.d.ts +17 -0
- package/dist/core/reportScope.js +143 -0
- package/dist/core/reportScope.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.js +10 -15
- package/dist/core/start.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/taint.js +10 -9
- package/dist/core/taint.js.map +1 -1
- package/dist/core/upgradePreview.js +72 -0
- package/dist/core/upgradePreview.js.map +1 -1
- 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/projscan-sbom.cdx.json +6 -6
- package/dist/reporters/consoleUpgradeReporter.js +24 -2
- package/dist/reporters/consoleUpgradeReporter.js.map +1 -1
- package/dist/reporters/markdownUpgradeReporter.js +19 -4
- package/dist/reporters/markdownUpgradeReporter.js.map +1 -1
- package/dist/tool-manifest.json +3 -3
- package/dist/types/config.d.ts +10 -0
- package/dist/types/dependencyHealth.d.ts +12 -0
- package/dist/types.d.ts +1 -1
- package/dist/utils/config.js +32 -0
- package/dist/utils/config.js.map +1 -1
- package/docs/GUIDE.md +25 -1
- package/docs/ROADMAP.md +54 -21
- package/docs/examples/adoption-workflows.md +128 -0
- package/docs/examples/swarm-coordination.md +109 -0
- package/package.json +3 -1
|
@@ -9,6 +9,18 @@ export const ROADMAP_3_2_LINES = [
|
|
|
9
9
|
'3.9.x',
|
|
10
10
|
];
|
|
11
11
|
export const ROADMAP_3_4_LINES = ['3.4.x'];
|
|
12
|
+
export const ROADMAP_POST_4_4_LINES = [
|
|
13
|
+
'4.5.x',
|
|
14
|
+
'4.6.x',
|
|
15
|
+
'4.7.x',
|
|
16
|
+
'4.8.x',
|
|
17
|
+
'4.9.x',
|
|
18
|
+
];
|
|
19
|
+
const DEFAULT_ROADMAP_LINE_RULES = [
|
|
20
|
+
{ minimumMajor: 4, minimumMinor: 4, lines: ROADMAP_POST_4_4_LINES },
|
|
21
|
+
{ minimumMajor: 3, minimumMinor: 4, lines: ROADMAP_3_4_LINES },
|
|
22
|
+
{ minimumMajor: 3, minimumMinor: 1, lines: ROADMAP_3_2_LINES },
|
|
23
|
+
];
|
|
12
24
|
const ROADMAP_3_2_CATALOG = {
|
|
13
25
|
'3.2.x': {
|
|
14
26
|
line: '3.2.x',
|
|
@@ -288,18 +300,226 @@ const ROADMAP_3_2_CATALOG = {
|
|
|
288
300
|
},
|
|
289
301
|
],
|
|
290
302
|
},
|
|
303
|
+
'4.5.x': {
|
|
304
|
+
line: '4.5.x',
|
|
305
|
+
track: {
|
|
306
|
+
theme: 'Roadmap And Release-Train Reliability',
|
|
307
|
+
outcome: 'Planning surfaces describe the current post-4.4 product direction instead of stale shipped 3.x/4.0 work.',
|
|
308
|
+
includedInPlan: true,
|
|
309
|
+
scope: [
|
|
310
|
+
'post-4.4 roadmap refresh',
|
|
311
|
+
'release-train default-line refresh',
|
|
312
|
+
'product-planning route verification',
|
|
313
|
+
],
|
|
314
|
+
successCriteria: [
|
|
315
|
+
'release-train defaults to post-4.4 lines on 4.4.x and newer',
|
|
316
|
+
'docs/ROADMAP.md names already-shipped 4.0 through 4.4 work as completed',
|
|
317
|
+
'planning output remains read-only and does not bump versions',
|
|
318
|
+
],
|
|
319
|
+
},
|
|
320
|
+
tasks: [
|
|
321
|
+
{
|
|
322
|
+
id: 'rt-4-5-roadmap-release-train-refresh',
|
|
323
|
+
priority: 'p0',
|
|
324
|
+
title: 'Refresh roadmap and release-train surfaces',
|
|
325
|
+
why: 'Maintainers and agents should see the real next product bets after 4.4.0 instead of a completed 3.4/3.6/4.0 plan.',
|
|
326
|
+
track: '4.5.x',
|
|
327
|
+
files: [
|
|
328
|
+
'src/core/roadmapCatalog.ts',
|
|
329
|
+
'src/core/releaseTrain.ts',
|
|
330
|
+
'docs/ROADMAP.md',
|
|
331
|
+
'docs/GUIDE.md',
|
|
332
|
+
],
|
|
333
|
+
verification: {
|
|
334
|
+
commands: [
|
|
335
|
+
'projscan release-train --format json',
|
|
336
|
+
'projscan start --intent "what should we build next?" --format json',
|
|
337
|
+
],
|
|
338
|
+
expected: 'Planning output names post-4.4 workstreams and stays read-only without package version changes.',
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
],
|
|
342
|
+
},
|
|
343
|
+
'4.6.x': {
|
|
344
|
+
line: '4.6.x',
|
|
345
|
+
track: {
|
|
346
|
+
theme: 'Swarm Coordination Evidence',
|
|
347
|
+
outcome: 'Teams can validate which coordination commands agents actually use before investing in deeper swarm automation.',
|
|
348
|
+
includedInPlan: true,
|
|
349
|
+
scope: [
|
|
350
|
+
'coordination workflow examples',
|
|
351
|
+
'claims and collision evidence recipes',
|
|
352
|
+
'coordinate-watch adoption proof',
|
|
353
|
+
],
|
|
354
|
+
successCriteria: [
|
|
355
|
+
'docs show a real local workflow for collisions, claims, merge-risk, coordinate, and coordinate --watch',
|
|
356
|
+
'agent-brief and preflight coordination evidence stay separated from remembered session context',
|
|
357
|
+
'validation examples stay local-first and require no daemon or cloud service',
|
|
358
|
+
],
|
|
359
|
+
},
|
|
360
|
+
tasks: [
|
|
361
|
+
{
|
|
362
|
+
id: 'rt-4-6-swarm-coordination-validation',
|
|
363
|
+
priority: 'p0',
|
|
364
|
+
title: 'Validate swarm coordination in real agent workflows',
|
|
365
|
+
why: 'The coordination surface is only valuable if teams can see where it prevents collisions and which command answered the coordination question.',
|
|
366
|
+
track: '4.6.x',
|
|
367
|
+
files: [
|
|
368
|
+
'docs/GUIDE.md',
|
|
369
|
+
'README.md',
|
|
370
|
+
'docs/examples/swarm-coordination.md',
|
|
371
|
+
'src/core/agentBrief.ts',
|
|
372
|
+
'src/core/preflight.ts',
|
|
373
|
+
],
|
|
374
|
+
verification: {
|
|
375
|
+
commands: [
|
|
376
|
+
'projscan collisions --format json',
|
|
377
|
+
'projscan coordinate --format json',
|
|
378
|
+
'projscan agent-brief --format json',
|
|
379
|
+
],
|
|
380
|
+
expected: 'Coordination evidence names the active command path, current worktree state, and local-only validation workflow.',
|
|
381
|
+
},
|
|
382
|
+
},
|
|
383
|
+
],
|
|
384
|
+
},
|
|
385
|
+
'4.7.x': {
|
|
386
|
+
line: '4.7.x',
|
|
387
|
+
track: {
|
|
388
|
+
theme: 'Framework Dataflow Precision',
|
|
389
|
+
outcome: 'Framework-specific request sources continue to expand through narrow, tested source patterns instead of broad name matching.',
|
|
390
|
+
includedInPlan: true,
|
|
391
|
+
scope: [
|
|
392
|
+
'Fastify and Koa request source coverage',
|
|
393
|
+
'receiver-sensitive database sink checks',
|
|
394
|
+
'regression fixtures for false-positive suppression',
|
|
395
|
+
],
|
|
396
|
+
successCriteria: [
|
|
397
|
+
'dataflow detects tested framework request sources into database sinks',
|
|
398
|
+
'ordinary helper functions with similar names stay quiet',
|
|
399
|
+
'custom source and sink configuration still overrides defaults',
|
|
400
|
+
],
|
|
401
|
+
},
|
|
402
|
+
tasks: [
|
|
403
|
+
{
|
|
404
|
+
id: 'rt-4-7-framework-dataflow-precision',
|
|
405
|
+
priority: 'p1',
|
|
406
|
+
title: 'Broaden framework dataflow precision',
|
|
407
|
+
why: 'Deeper framework precision is the right static-analysis moat when it is added as small tested patterns.',
|
|
408
|
+
track: '4.7.x',
|
|
409
|
+
files: ['src/core/frameworkSources.ts', 'src/core/dataflow.ts', 'tests/core/dataflow.test.ts'],
|
|
410
|
+
verification: {
|
|
411
|
+
commands: ['npm run test -- tests/core/dataflow.test.ts', 'projscan dataflow --format json'],
|
|
412
|
+
expected: 'New framework request-source fixtures report real source-to-sink paths and suppress lookalike helpers.',
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
],
|
|
416
|
+
},
|
|
417
|
+
'4.8.x': {
|
|
418
|
+
line: '4.8.x',
|
|
419
|
+
track: {
|
|
420
|
+
theme: 'Scoped Evidence Exports',
|
|
421
|
+
outcome: 'Teams can share report artifacts with scoped or redacted paths without exposing broader repository structure.',
|
|
422
|
+
includedInPlan: true,
|
|
423
|
+
scope: [
|
|
424
|
+
'path-scope filtering',
|
|
425
|
+
'stable path redaction labels',
|
|
426
|
+
'SARIF and JSON evidence shaping',
|
|
427
|
+
],
|
|
428
|
+
successCriteria: [
|
|
429
|
+
'issue reports can be filtered to a requested path scope',
|
|
430
|
+
'redacted reports replace file paths with stable labels',
|
|
431
|
+
'redaction never reads .env values or adds network calls',
|
|
432
|
+
],
|
|
433
|
+
},
|
|
434
|
+
tasks: [
|
|
435
|
+
{
|
|
436
|
+
id: 'rt-4-8-scoped-redacted-evidence',
|
|
437
|
+
priority: 'p1',
|
|
438
|
+
title: 'Add scoped and redacted report export controls',
|
|
439
|
+
why: 'Security reviewers need useful artifacts they can share without leaking paths outside the reviewed area.',
|
|
440
|
+
track: '4.8.x',
|
|
441
|
+
files: [
|
|
442
|
+
'src/core/reportScope.ts',
|
|
443
|
+
'src/cli/commands/analyze.ts',
|
|
444
|
+
'src/cli/commands/doctor.ts',
|
|
445
|
+
'src/cli/commands/ci.ts',
|
|
446
|
+
'src/reporters/sarifReporter.ts',
|
|
447
|
+
],
|
|
448
|
+
verification: {
|
|
449
|
+
commands: [
|
|
450
|
+
'projscan doctor --report-scope src --redact-paths --format json',
|
|
451
|
+
'projscan analyze --report-scope src --redact-paths --format sarif',
|
|
452
|
+
],
|
|
453
|
+
expected: 'Reports include only scoped issue evidence and expose redacted path labels instead of raw file paths.',
|
|
454
|
+
},
|
|
455
|
+
},
|
|
456
|
+
],
|
|
457
|
+
},
|
|
458
|
+
'4.9.x': {
|
|
459
|
+
line: '4.9.x',
|
|
460
|
+
track: {
|
|
461
|
+
theme: 'Python Upgrade Intelligence And Hotspot Maintainability',
|
|
462
|
+
outcome: 'Python dependency upgrade previews become useful offline, while the highest-churn projscan surfaces keep shrinking through focused tests and extraction.',
|
|
463
|
+
includedInPlan: true,
|
|
464
|
+
scope: [
|
|
465
|
+
'requirements.txt and Poetry dependency lookup',
|
|
466
|
+
'Python importers for upgrade preview',
|
|
467
|
+
'start/types/test hotspot coverage and extraction',
|
|
468
|
+
'real adoption examples for orchestration, ownership, and plugins',
|
|
469
|
+
],
|
|
470
|
+
successCriteria: [
|
|
471
|
+
'projscan_upgrade can preview Python dependencies from local manifests',
|
|
472
|
+
'README and guide no longer describe Python upgrade support as only planned',
|
|
473
|
+
'hotspot work adds focused coverage or extraction without unrelated refactors',
|
|
474
|
+
'docs include concrete adoption examples for agent orchestration, package ownership, and policy plugins',
|
|
475
|
+
],
|
|
476
|
+
},
|
|
477
|
+
tasks: [
|
|
478
|
+
{
|
|
479
|
+
id: 'rt-4-9-python-upgrade-and-hotspot-maintainability',
|
|
480
|
+
priority: 'p1',
|
|
481
|
+
title: 'Ship Python upgrade intelligence and keep reducing hotspots',
|
|
482
|
+
why: 'Python repos should get the same offline upgrade impact preview as Node repos, and the repo should keep paying down known high-churn surfaces.',
|
|
483
|
+
track: '4.9.x',
|
|
484
|
+
files: [
|
|
485
|
+
'src/core/upgradePreview.ts',
|
|
486
|
+
'src/core/languages/pythonManifests.ts',
|
|
487
|
+
'src/types/dependencyHealth.ts',
|
|
488
|
+
'tests/core/upgradePreview.test.ts',
|
|
489
|
+
'src/core/start.ts',
|
|
490
|
+
'src/types.ts',
|
|
491
|
+
'tests/core/start.test.ts',
|
|
492
|
+
],
|
|
493
|
+
verification: {
|
|
494
|
+
commands: [
|
|
495
|
+
'npm run test -- tests/core/upgradePreview.test.ts tests/mcp/pythonUpgradeFallback.test.ts',
|
|
496
|
+
'npm run typecheck:public-types',
|
|
497
|
+
'projscan hotspots --format json',
|
|
498
|
+
],
|
|
499
|
+
expected: 'Python upgrade previews return declared versions and importers, public types compile, and hotspot risk is covered or explicitly deferred.',
|
|
500
|
+
},
|
|
501
|
+
},
|
|
502
|
+
],
|
|
503
|
+
},
|
|
291
504
|
};
|
|
292
505
|
export function defaultRoadmapLinesForVersion(version) {
|
|
293
506
|
if (!version)
|
|
294
507
|
return undefined;
|
|
295
|
-
const
|
|
296
|
-
if (!
|
|
508
|
+
const roadmapVersion = roadmapVersionParts(version);
|
|
509
|
+
if (!roadmapVersion)
|
|
297
510
|
return undefined;
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
511
|
+
const rule = DEFAULT_ROADMAP_LINE_RULES.find((candidate) => isAtLeastRoadmapVersion(roadmapVersion, candidate));
|
|
512
|
+
return rule ? [...rule.lines] : undefined;
|
|
513
|
+
}
|
|
514
|
+
function roadmapVersionParts(version) {
|
|
515
|
+
const [majorPart, minorPart = '0'] = version.split('.');
|
|
516
|
+
const major = Number.parseInt(majorPart ?? '', 10);
|
|
517
|
+
const minor = Number.parseInt(minorPart, 10);
|
|
518
|
+
return Number.isFinite(major) && Number.isFinite(minor) ? { major, minor } : null;
|
|
519
|
+
}
|
|
520
|
+
function isAtLeastRoadmapVersion(version, rule) {
|
|
521
|
+
return (version.major > rule.minimumMajor ||
|
|
522
|
+
(version.major === rule.minimumMajor && version.minor >= rule.minimumMinor));
|
|
303
523
|
}
|
|
304
524
|
export function roadmapTrackForLine(line) {
|
|
305
525
|
const entry = ROADMAP_3_2_CATALOG[line];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmapCatalog.js","sourceRoot":"","sources":["../../src/core/roadmapCatalog.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACC,CAAC;AACX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"roadmapCatalog.js","sourceRoot":"","sources":["../../src/core/roadmapCatalog.ts"],"names":[],"mappings":"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"}
|
package/dist/core/start.js
CHANGED
|
@@ -7,8 +7,9 @@ import { loadMissionOutcome } from './missionOutcome.js';
|
|
|
7
7
|
import { detectStartHarnessHints } from './startHarness.js';
|
|
8
8
|
import { buildAdoptionLoop } from './startAdoptionLoop.js';
|
|
9
9
|
import { buildStartCoordinationHints, buildStartRiskSources } from './startEvidence.js';
|
|
10
|
+
import { buildStartNextActions } from './startNextActions.js';
|
|
10
11
|
import { normalizeStartOptions } from './startOptions.js';
|
|
11
|
-
import { chooseWorkflow, combineRisks,
|
|
12
|
+
import { chooseWorkflow, combineRisks, summarize } from './startMissionPolicy.js';
|
|
12
13
|
import { buildMissionControl } from './startMissionControl.js';
|
|
13
14
|
export async function computeStartReport(rootPath, options = {}) {
|
|
14
15
|
const { intent, modeResolution, mode, maxTasks, maxRisks } = normalizeStartOptions(options);
|
|
@@ -49,20 +50,14 @@ export async function computeStartReport(rootPath, options = {}) {
|
|
|
49
50
|
riskSources,
|
|
50
51
|
missionOutcome,
|
|
51
52
|
});
|
|
52
|
-
const nextActions =
|
|
53
|
-
missionControl
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
label: 'Keep using projscan every PR',
|
|
61
|
-
command,
|
|
62
|
-
})),
|
|
63
|
-
...workplan.suggestedNextActions,
|
|
64
|
-
...quality.suggestedNextActions,
|
|
65
|
-
]);
|
|
53
|
+
const nextActions = buildStartNextActions({
|
|
54
|
+
missionControl,
|
|
55
|
+
firstTenMinutes,
|
|
56
|
+
workflow,
|
|
57
|
+
adoptionLoop,
|
|
58
|
+
workplan,
|
|
59
|
+
quality,
|
|
60
|
+
});
|
|
66
61
|
const report = {
|
|
67
62
|
schemaVersion: 1,
|
|
68
63
|
readOnly: true,
|
package/dist/core/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/core/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA4B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/core/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PreflightSuggestedAction } from '../types/preflight.js';
|
|
2
|
+
import type { QualityScorecardReport } from '../types/qualityScorecard.js';
|
|
3
|
+
import type { StartReport } from '../types/start.js';
|
|
4
|
+
import type { WorkplanReport } from '../types/workplan.js';
|
|
5
|
+
export interface BuildStartNextActionsInput {
|
|
6
|
+
missionControl: StartReport['missionControl'];
|
|
7
|
+
firstTenMinutes: StartReport['firstTenMinutes'];
|
|
8
|
+
workflow: StartReport['recommendedWorkflow'];
|
|
9
|
+
adoptionLoop: StartReport['adoptionLoop'];
|
|
10
|
+
workplan: WorkplanReport;
|
|
11
|
+
quality: QualityScorecardReport;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildStartNextActions(input: BuildStartNextActionsInput): PreflightSuggestedAction[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { dedupeActions } from './startMissionPolicy.js';
|
|
2
|
+
export function buildStartNextActions(input) {
|
|
3
|
+
const { missionControl, firstTenMinutes, workflow, adoptionLoop, workplan, quality } = input;
|
|
4
|
+
return dedupeActions([
|
|
5
|
+
missionControl.primaryAction,
|
|
6
|
+
...firstTenMinutes.commands.map((step) => ({
|
|
7
|
+
label: `First 10 minutes: ${step.label}`,
|
|
8
|
+
command: step.command,
|
|
9
|
+
})),
|
|
10
|
+
...workflow.commands.map((command) => ({ label: `Run ${workflow.name}`, command })),
|
|
11
|
+
...(adoptionLoop?.nextCommands ?? []).map((command) => ({
|
|
12
|
+
label: 'Keep using projscan every PR',
|
|
13
|
+
command,
|
|
14
|
+
})),
|
|
15
|
+
...workplan.suggestedNextActions,
|
|
16
|
+
...quality.suggestedNextActions,
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=startNextActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startNextActions.js","sourceRoot":"","sources":["../../src/core/startNextActions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAWxD,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC7F,OAAO,aAAa,CAAC;QACnB,cAAc,CAAC,aAAa;QAC5B,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzC,KAAK,EAAE,qBAAqB,IAAI,CAAC,KAAK,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,GAAG,CAAC,YAAY,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtD,KAAK,EAAE,8BAA8B;YACrC,OAAO;SACR,CAAC,CAAC;QACH,GAAG,QAAQ,CAAC,oBAAoB;QAChC,GAAG,OAAO,CAAC,oBAAoB;KAChC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/core/taint.js
CHANGED
|
@@ -103,16 +103,18 @@ export function computeTaint(graph, config) {
|
|
|
103
103
|
const callees = fn.callSites ?? [];
|
|
104
104
|
const directCallSites = fn.directCallSites ?? [];
|
|
105
105
|
const memberCallSites = fn.memberCallSites ?? [];
|
|
106
|
+
const memberReferences = fn.memberReferences ?? [];
|
|
106
107
|
const memberAliases = fn.memberAliases ?? [];
|
|
107
108
|
const references = fn.references ?? [];
|
|
108
109
|
totalCallSites += callees.length;
|
|
109
110
|
// Default sources mostly match property/reference reads; custom sources
|
|
110
111
|
// may still be call-shaped. Sinks are call-shaped, so callSites only.
|
|
111
|
-
const sourceHit = frameworkRequestSourceForFunction(file, fn.name, memberCallSites, fn.parameters ?? [], sources, references, fn.contextualCallSite, gf.imports) ?? pickSourceHit(callees, references, sources, customSources);
|
|
112
|
+
const sourceHit = frameworkRequestSourceForFunction(file, fn.name, memberCallSites, memberReferences, fn.parameters ?? [], sources, references, fn.contextualCallSite, gf.imports) ?? pickSourceHit(callees, references, sources, customSources);
|
|
112
113
|
const sinkHit = pickSinkHit(callees, directCallSites, memberCallSites, memberAliases, sinks, customSinks, file, gf);
|
|
113
114
|
const hasSource = sourceHit !== null;
|
|
114
115
|
const hasSink = sinkHit !== null;
|
|
115
116
|
const node = {
|
|
117
|
+
id: `${file}::${fn.name}@${fn.line}`,
|
|
116
118
|
qualName: fn.name,
|
|
117
119
|
bareName: bareName(fn.name),
|
|
118
120
|
file,
|
|
@@ -123,7 +125,7 @@ export function computeTaint(graph, config) {
|
|
|
123
125
|
hasSource,
|
|
124
126
|
hasSink,
|
|
125
127
|
};
|
|
126
|
-
fnByQual.set(
|
|
128
|
+
fnByQual.set(node.id, node);
|
|
127
129
|
let list = fnsByBareName.get(node.bareName);
|
|
128
130
|
if (!list) {
|
|
129
131
|
list = [];
|
|
@@ -143,7 +145,7 @@ export function computeTaint(graph, config) {
|
|
|
143
145
|
};
|
|
144
146
|
}
|
|
145
147
|
const flows = [];
|
|
146
|
-
const seen = new Set(); // dedupe key:
|
|
148
|
+
const seen = new Set(); // dedupe key: sourceFnId::sinkFnId
|
|
147
149
|
// 1.8+ — track which source functions hit MAX_DEPTH with frontier
|
|
148
150
|
// still non-empty. The agent gets these in `truncatedSources` so it
|
|
149
151
|
// knows where the analysis was clipped.
|
|
@@ -167,7 +169,7 @@ export function computeTaint(graph, config) {
|
|
|
167
169
|
continue;
|
|
168
170
|
// Same-function shortcut.
|
|
169
171
|
if (sourceFn.hasSink) {
|
|
170
|
-
const key = `${sourceFn.
|
|
172
|
+
const key = `${sourceFn.id}::${sourceFn.id}`;
|
|
171
173
|
if (!seen.has(key)) {
|
|
172
174
|
seen.add(key);
|
|
173
175
|
flows.push({
|
|
@@ -181,7 +183,7 @@ export function computeTaint(graph, config) {
|
|
|
181
183
|
}
|
|
182
184
|
}
|
|
183
185
|
// BFS through callees.
|
|
184
|
-
const visited = new Set([
|
|
186
|
+
const visited = new Set([sourceFn.id]);
|
|
185
187
|
let frontier = [{ node: sourceFn, path: [sourceFn] }];
|
|
186
188
|
let depth = 0;
|
|
187
189
|
let frontierCapped = false;
|
|
@@ -195,13 +197,12 @@ export function computeTaint(graph, config) {
|
|
|
195
197
|
for (const calleeName of entry.node.callees) {
|
|
196
198
|
const candidates = fnsByBareName.get(calleeName) ?? [];
|
|
197
199
|
for (const candidate of candidates) {
|
|
198
|
-
|
|
199
|
-
if (visited.has(key))
|
|
200
|
+
if (visited.has(candidate.id))
|
|
200
201
|
continue;
|
|
201
|
-
visited.add(
|
|
202
|
+
visited.add(candidate.id);
|
|
202
203
|
const newPath = [...entry.path, candidate];
|
|
203
204
|
if (candidate.hasSink) {
|
|
204
|
-
const flowKey = `${sourceFn.
|
|
205
|
+
const flowKey = `${sourceFn.id}::${candidate.id}`;
|
|
205
206
|
if (!seen.has(flowKey)) {
|
|
206
207
|
seen.add(flowKey);
|
|
207
208
|
const filesInPath = [];
|
package/dist/core/taint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taint.js","sourceRoot":"","sources":["../../src/core/taint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taint.js","sourceRoot":"","sources":["../../src/core/taint.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import fs from 'node:fs/promises';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { drift as semverDrift, parse as parseSemver, compare as compareSemver, } from '../utils/semver.js';
|
|
4
4
|
import { buildImportGraph, filesImporting } from './importGraph.js';
|
|
5
|
+
import { buildCodeGraph } from './codeGraph.js';
|
|
6
|
+
import { detectPythonProject, } from './languages/pythonManifests.js';
|
|
5
7
|
import { OFFLINE_ENV, isOfflineMode } from './privacy.js';
|
|
6
8
|
const CHANGELOG_NAMES = ['CHANGELOG.md', 'CHANGELOG', 'History.md', 'HISTORY.md'];
|
|
7
9
|
const BREAKING_MARKERS = [
|
|
@@ -74,6 +76,9 @@ export async function previewUpgrade(rootPath, pkgName, files, options = {}) {
|
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
if (!declaredVersions && !installed) {
|
|
79
|
+
const pythonPreview = await previewPythonUpgrade(rootPath, pkgName, files);
|
|
80
|
+
if (pythonPreview)
|
|
81
|
+
return pythonPreview;
|
|
77
82
|
return {
|
|
78
83
|
available: false,
|
|
79
84
|
reason: `Package "${pkgName}" not found in package.json or node_modules`,
|
|
@@ -134,6 +139,73 @@ export async function previewUpgrade(rootPath, pkgName, files, options = {}) {
|
|
|
134
139
|
...(registryError ? { registryError } : {}),
|
|
135
140
|
};
|
|
136
141
|
}
|
|
142
|
+
async function previewPythonUpgrade(rootPath, pkgName, files) {
|
|
143
|
+
const project = await detectPythonProject(rootPath, files);
|
|
144
|
+
if (!project)
|
|
145
|
+
return null;
|
|
146
|
+
const dep = findPythonDeclaredDep(project.declared, pkgName);
|
|
147
|
+
if (!dep)
|
|
148
|
+
return unavailablePythonUpgrade(pkgName);
|
|
149
|
+
const graph = await buildCodeGraph(rootPath, files);
|
|
150
|
+
const importers = pythonFilesImporting(graph.packageImporters, pkgName);
|
|
151
|
+
const locked = findPythonLockedDep(project.locked, pkgName);
|
|
152
|
+
return pythonUpgradePreview(pkgName, dep, locked, importers);
|
|
153
|
+
}
|
|
154
|
+
function unavailablePythonUpgrade(pkgName) {
|
|
155
|
+
return {
|
|
156
|
+
available: false,
|
|
157
|
+
reason: `Python package "${pkgName}" not found in pyproject.toml, setup.cfg, setup.py, or requirements*.txt`,
|
|
158
|
+
name: pkgName,
|
|
159
|
+
ecosystem: 'python',
|
|
160
|
+
declared: null,
|
|
161
|
+
installed: null,
|
|
162
|
+
latest: null,
|
|
163
|
+
drift: 'unknown',
|
|
164
|
+
breakingMarkers: [],
|
|
165
|
+
importers: [],
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function pythonUpgradePreview(pkgName, dep, locked, importers) {
|
|
169
|
+
const currentVersion = locked?.version ?? null;
|
|
170
|
+
return {
|
|
171
|
+
available: true,
|
|
172
|
+
name: pkgName,
|
|
173
|
+
ecosystem: 'python',
|
|
174
|
+
declared: dep.versionSpec || null,
|
|
175
|
+
installed: currentVersion,
|
|
176
|
+
latest: currentVersion,
|
|
177
|
+
drift: currentVersion ? semverDrift(dep.versionSpec || null, currentVersion) : 'unknown',
|
|
178
|
+
breakingMarkers: [],
|
|
179
|
+
importers,
|
|
180
|
+
declaredSource: dep.source,
|
|
181
|
+
...(dep.line > 0 ? { declaredLine: dep.line } : {}),
|
|
182
|
+
declaredScope: dep.scope,
|
|
183
|
+
...(locked ? { installedSource: locked.source } : {}),
|
|
184
|
+
...(locked && locked.line > 0 ? { installedLine: locked.line } : {}),
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function findPythonDeclaredDep(deps, pkgName) {
|
|
188
|
+
const normalized = normalizePythonPackageName(pkgName);
|
|
189
|
+
return deps.find((dep) => normalizePythonPackageName(dep.name) === normalized) ?? null;
|
|
190
|
+
}
|
|
191
|
+
function findPythonLockedDep(deps, pkgName) {
|
|
192
|
+
const normalized = normalizePythonPackageName(pkgName);
|
|
193
|
+
return deps.find((dep) => normalizePythonPackageName(dep.name) === normalized) ?? null;
|
|
194
|
+
}
|
|
195
|
+
function pythonFilesImporting(packageImporters, pkgName) {
|
|
196
|
+
const normalized = normalizePythonPackageName(pkgName);
|
|
197
|
+
const out = new Set();
|
|
198
|
+
for (const [pkg, importers] of packageImporters) {
|
|
199
|
+
if (normalizePythonPackageName(pkg) !== normalized)
|
|
200
|
+
continue;
|
|
201
|
+
for (const file of importers)
|
|
202
|
+
out.add(file);
|
|
203
|
+
}
|
|
204
|
+
return [...out].sort();
|
|
205
|
+
}
|
|
206
|
+
function normalizePythonPackageName(name) {
|
|
207
|
+
return name.trim().toLowerCase().replace(/[-_.]+/g, '-');
|
|
208
|
+
}
|
|
137
209
|
/**
|
|
138
210
|
* Fetch the latest version of `pkgName` from the npm registry. Uses
|
|
139
211
|
* Node's built-in fetch (Node 18+). Network-only; the caller must have
|