projscan 4.1.0 → 4.3.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 +192 -26
- package/dist/cli/commands/missionProof.d.ts +1 -0
- package/dist/cli/commands/missionProof.js +60 -0
- package/dist/cli/commands/missionProof.js.map +1 -0
- package/dist/cli/commands/start.js +1040 -2
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/missionOutcome.d.ts +2 -0
- package/dist/core/missionOutcome.js +219 -0
- package/dist/core/missionOutcome.js.map +1 -0
- package/dist/core/missionProof.d.ts +6 -0
- package/dist/core/missionProof.js +123 -0
- package/dist/core/missionProof.js.map +1 -0
- package/dist/core/start.d.ts +1 -0
- package/dist/core/start.js +1051 -9
- package/dist/core/start.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools/start.js +5 -0
- package/dist/mcp/tools/start.js.map +1 -1
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/tool-manifest.json +6 -2
- package/dist/types.d.ts +283 -0
- package/dist/utils/formatSupport.d.ts +1 -0
- package/dist/utils/formatSupport.js +1 -0
- package/dist/utils/formatSupport.js.map +1 -1
- package/docs/GUIDE.md +3 -1
- package/docs/demos/projscan-4-1-demo.html +95 -82
- package/docs/projscan-mission-control.png +0 -0
- package/docs/projscan-proof-router.png +0 -0
- package/package.json +2 -2
- package/scripts/capture-readme-assets.mjs +1 -1
|
@@ -422,33 +422,34 @@
|
|
|
422
422
|
<section class="hero" aria-label="projscan Mission Control">
|
|
423
423
|
<div class="intro">
|
|
424
424
|
<div>
|
|
425
|
-
<p class="eyebrow">
|
|
426
|
-
<h1>
|
|
425
|
+
<p class="eyebrow">Mission Outcome Loop</p>
|
|
426
|
+
<h1>Resume from real proof.</h1>
|
|
427
427
|
<p class="lead">
|
|
428
|
-
projscan
|
|
429
|
-
|
|
430
|
-
|
|
428
|
+
projscan routes a developer goal, saves the mission, reads the
|
|
429
|
+
proof state, and tells the next agent what changed, what remains,
|
|
430
|
+
and whether the work is ready for version review.
|
|
431
431
|
</p>
|
|
432
432
|
<div class="pills" aria-label="Product capabilities">
|
|
433
433
|
<span class="pill">Mission Control</span>
|
|
434
434
|
<span class="pill">Local-first</span>
|
|
435
435
|
<span class="pill">MCP-ready</span>
|
|
436
|
-
<span class="pill">
|
|
436
|
+
<span class="pill">Outcome resume</span>
|
|
437
|
+
<span class="pill">Proof report</span>
|
|
437
438
|
</div>
|
|
438
439
|
</div>
|
|
439
440
|
|
|
440
441
|
<div class="metric-row" aria-label="Release candidate signals">
|
|
441
442
|
<div class="metric">
|
|
442
|
-
<strong>1
|
|
443
|
-
<span>
|
|
443
|
+
<strong>1 bundle</strong>
|
|
444
|
+
<span>mission plus proof</span>
|
|
444
445
|
</div>
|
|
445
446
|
<div class="metric">
|
|
446
447
|
<strong>45</strong>
|
|
447
|
-
<span>MCP tools
|
|
448
|
+
<span>MCP tools</span>
|
|
448
449
|
</div>
|
|
449
450
|
<div class="metric">
|
|
450
|
-
<strong>
|
|
451
|
-
<span>
|
|
451
|
+
<strong>11 / 12</strong>
|
|
452
|
+
<span>AST adapters / languages</span>
|
|
452
453
|
</div>
|
|
453
454
|
</div>
|
|
454
455
|
</div>
|
|
@@ -458,63 +459,78 @@
|
|
|
458
459
|
<span class="dot red"></span>
|
|
459
460
|
<span class="dot amber"></span>
|
|
460
461
|
<span class="dot green"></span>
|
|
461
|
-
<span class="terminal-title">projscan start --
|
|
462
|
+
<span class="terminal-title">projscan start --mission</span>
|
|
462
463
|
</div>
|
|
463
464
|
<div class="terminal-body">
|
|
464
465
|
<span class="line"
|
|
465
466
|
><span class="prompt">$</span>
|
|
466
467
|
<span class="cmd"
|
|
467
|
-
>projscan start --
|
|
468
|
-
change?"</span
|
|
468
|
+
>projscan start --mission .projscan/mission</span
|
|
469
469
|
></span
|
|
470
470
|
>
|
|
471
471
|
<span class="line dim">ProjScan Mission Control</span>
|
|
472
|
-
<span class="line">
|
|
473
|
-
<span class="line">Status: <span class="
|
|
472
|
+
<span class="line">Mission: .projscan/mission</span>
|
|
473
|
+
<span class="line">Status: <span class="success">passed</span></span>
|
|
474
474
|
<span class="line"
|
|
475
|
-
>
|
|
476
|
-
<span class="notice">
|
|
475
|
+
>Outcome:
|
|
476
|
+
<span class="notice">proof passed after 3 commands</span></span
|
|
477
477
|
>
|
|
478
478
|
<span class="line dim"
|
|
479
|
-
>
|
|
479
|
+
>read proof-logs/summary.json and status.jsonl</span
|
|
480
480
|
>
|
|
481
481
|
|
|
482
482
|
<div class="term-section">
|
|
483
|
-
<span class="line term-heading">
|
|
483
|
+
<span class="line term-heading">What Changed</span>
|
|
484
484
|
<span class="line"
|
|
485
|
-
>-
|
|
486
|
-
commands</span
|
|
485
|
+
>- Mission proof passed after 3 command(s).</span
|
|
487
486
|
>
|
|
488
487
|
<span class="line"
|
|
489
|
-
>-
|
|
488
|
+
>- 1 reviewer decision recorded.</span
|
|
490
489
|
>
|
|
491
|
-
<span class="line"
|
|
492
|
-
|
|
490
|
+
<span class="line">- 0 failed gates remain.</span>
|
|
491
|
+
</div>
|
|
492
|
+
|
|
493
|
+
<div class="term-section">
|
|
494
|
+
<span class="line term-heading">What Remains</span>
|
|
495
|
+
<span class="line success"
|
|
496
|
+
>Run ./review.sh and choose a reviewer reply.</span
|
|
497
|
+
>
|
|
498
|
+
<span class="line success"
|
|
499
|
+
>Version candidate: review_candidate</span
|
|
493
500
|
>
|
|
494
501
|
</div>
|
|
495
502
|
|
|
496
503
|
<div class="term-section">
|
|
497
|
-
<span class="line term-heading">
|
|
504
|
+
<span class="line term-heading">Outcome Commands</span>
|
|
498
505
|
<span class="line success"
|
|
499
|
-
|
|
506
|
+
>projscan start --mission .projscan/mission</span
|
|
500
507
|
>
|
|
501
508
|
<span class="line success"
|
|
502
|
-
|
|
509
|
+
>projscan mission-proof --mission .projscan/mission</span
|
|
503
510
|
>
|
|
504
511
|
<span class="line success"
|
|
505
|
-
|
|
512
|
+
>projscan mission-proof --baseline manual-runs.json</span
|
|
506
513
|
>
|
|
514
|
+
<span class="line dim">all source stays local</span>
|
|
507
515
|
</div>
|
|
508
516
|
|
|
509
517
|
<div class="term-section">
|
|
510
|
-
<span class="line term-heading">
|
|
511
|
-
<span class="line"
|
|
512
|
-
|
|
518
|
+
<span class="line term-heading">Proof Evidence</span>
|
|
519
|
+
<span class="line success"
|
|
520
|
+
>proof-logs/summary.json: passed</span
|
|
513
521
|
>
|
|
514
|
-
<span class="line"
|
|
515
|
-
|
|
522
|
+
<span class="line success"
|
|
523
|
+
>proof-logs/status.jsonl: 3 rows</span
|
|
516
524
|
>
|
|
517
525
|
</div>
|
|
526
|
+
|
|
527
|
+
<div class="term-section">
|
|
528
|
+
<span class="line term-heading">Review Gate</span>
|
|
529
|
+
<span class="line">capture: git status --short</span>
|
|
530
|
+
<span class="line">capture: git diff --stat</span>
|
|
531
|
+
<span class="line success">reply: review version candidate</span>
|
|
532
|
+
<span class="line warn">do not publish until approved</span>
|
|
533
|
+
</div>
|
|
518
534
|
</div>
|
|
519
535
|
</section>
|
|
520
536
|
</section>
|
|
@@ -522,7 +538,7 @@
|
|
|
522
538
|
<section class="grid" aria-label="New developer workflows">
|
|
523
539
|
<article class="card">
|
|
524
540
|
<span class="label green">Goal routing</span>
|
|
525
|
-
<h2>Ask in
|
|
541
|
+
<h2>Ask in plain language.</h2>
|
|
526
542
|
<p>
|
|
527
543
|
Route privacy, merge readiness, refactor risk, local setup,
|
|
528
544
|
ownership, dependency, release, and handoff questions to the right
|
|
@@ -530,21 +546,21 @@
|
|
|
530
546
|
</p>
|
|
531
547
|
</article>
|
|
532
548
|
<article class="card">
|
|
533
|
-
<span class="label blue">
|
|
534
|
-
<h2>Start from
|
|
549
|
+
<span class="label blue">Outcome resume</span>
|
|
550
|
+
<h2>Start from saved proof.</h2>
|
|
535
551
|
<p>
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
552
|
+
<code>projscan start --mission</code> reads the bundle proof state
|
|
553
|
+
and gives the next agent a focused "what changed / what remains"
|
|
554
|
+
handoff.
|
|
539
555
|
</p>
|
|
540
556
|
</article>
|
|
541
557
|
<article class="card">
|
|
542
|
-
<span class="label amber">
|
|
543
|
-
<h2>
|
|
558
|
+
<span class="label amber">Proof report</span>
|
|
559
|
+
<h2>Measure the saved work.</h2>
|
|
544
560
|
<p>
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
561
|
+
<code>projscan mission-proof</code> reports proof completion,
|
|
562
|
+
reviewer approvals, reruns, failed gates, time saved, and local
|
|
563
|
+
risk avoided.
|
|
548
564
|
</p>
|
|
549
565
|
</article>
|
|
550
566
|
</section>
|
|
@@ -552,12 +568,13 @@
|
|
|
552
568
|
<section class="proof" id="proof" aria-label="Proof and dependency view">
|
|
553
569
|
<div class="proof-header">
|
|
554
570
|
<div>
|
|
555
|
-
<p class="eyebrow">
|
|
556
|
-
<h2>
|
|
571
|
+
<p class="eyebrow">Proof, review, and adoption evidence</p>
|
|
572
|
+
<h2>Close the loop.</h2>
|
|
557
573
|
</div>
|
|
558
574
|
<p>
|
|
559
|
-
|
|
560
|
-
|
|
575
|
+
Developers and agents can resume from a saved mission bundle,
|
|
576
|
+
summarize pass/fail evidence, and compare local proof against a
|
|
577
|
+
manual baseline without sending source code anywhere.
|
|
561
578
|
</p>
|
|
562
579
|
</div>
|
|
563
580
|
|
|
@@ -567,34 +584,32 @@
|
|
|
567
584
|
<span class="dot red"></span>
|
|
568
585
|
<span class="dot amber"></span>
|
|
569
586
|
<span class="dot green"></span>
|
|
570
|
-
<span class="terminal-title">projscan
|
|
587
|
+
<span class="terminal-title">projscan mission-proof</span>
|
|
571
588
|
</div>
|
|
572
589
|
<div class="terminal-body">
|
|
573
590
|
<span class="line"
|
|
574
591
|
><span class="prompt">$</span>
|
|
575
592
|
<span class="cmd"
|
|
576
|
-
>projscan
|
|
577
|
-
|
|
593
|
+
>projscan mission-proof --mission .projscan/mission --format
|
|
594
|
+
json</span
|
|
578
595
|
></span
|
|
579
596
|
>
|
|
580
|
-
<span class="line dim">
|
|
597
|
+
<span class="line dim">Local proof summary</span>
|
|
581
598
|
<span class="line"> </span>
|
|
582
|
-
<span class="line term-heading">1
|
|
583
|
-
<span class="line">confidence: high</span>
|
|
584
|
-
<span class="line">matched: breaks, rename</span>
|
|
585
|
-
<span class="line notice"
|
|
586
|
-
>Before renaming or deleting, see every caller that
|
|
587
|
-
breaks.</span
|
|
588
|
-
>
|
|
599
|
+
<span class="line term-heading">{"passed":1,"failed":0,</span>
|
|
589
600
|
<span class="line success"
|
|
590
|
-
|
|
601
|
+
> "reruns":0,"reviewerApprovals":1}</span
|
|
591
602
|
>
|
|
592
603
|
<span class="line"> </span>
|
|
593
|
-
<span class="line term-heading">
|
|
594
|
-
<span class="line"
|
|
595
|
-
|
|
604
|
+
<span class="line term-heading">Risk avoided</span>
|
|
605
|
+
<span class="line success"
|
|
606
|
+
>- proof gate passed before release</span
|
|
607
|
+
>
|
|
608
|
+
<span class="line success"
|
|
609
|
+
>- version review is safe to request</span
|
|
610
|
+
>
|
|
596
611
|
<span class="line notice"
|
|
597
|
-
>
|
|
612
|
+
>Next: projscan start --mission .projscan/mission</span
|
|
598
613
|
>
|
|
599
614
|
</div>
|
|
600
615
|
</section>
|
|
@@ -603,35 +618,33 @@
|
|
|
603
618
|
<div class="signal">
|
|
604
619
|
<span class="tag green">Verify</span>
|
|
605
620
|
<span>
|
|
606
|
-
<strong>
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
regression planning.
|
|
621
|
+
<strong>Outcome resume</strong>
|
|
622
|
+
<code>--mission</code> reads <code>summary.json</code>, status
|
|
623
|
+
rows, and reviewer decisions.
|
|
610
624
|
</span>
|
|
611
625
|
</div>
|
|
612
626
|
<div class="signal">
|
|
613
|
-
<span class="tag blue">
|
|
627
|
+
<span class="tag blue">MCP</span>
|
|
614
628
|
<span>
|
|
615
|
-
<strong>
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
out where agents need them.
|
|
629
|
+
<strong>MCP start input</strong>
|
|
630
|
+
<code>mission_dir</code> carries the same proof outcome to
|
|
631
|
+
agent clients.
|
|
619
632
|
</span>
|
|
620
633
|
</div>
|
|
621
634
|
<div class="signal">
|
|
622
|
-
<span class="tag amber">
|
|
635
|
+
<span class="tag amber">List</span>
|
|
623
636
|
<span>
|
|
624
|
-
<strong>
|
|
625
|
-
|
|
626
|
-
|
|
637
|
+
<strong>Proof summary</strong>
|
|
638
|
+
<code>mission-proof</code> reports completion, reruns, failed
|
|
639
|
+
gates, and approvals.
|
|
627
640
|
</span>
|
|
628
641
|
</div>
|
|
629
642
|
<div class="signal">
|
|
630
|
-
<span class="tag red">
|
|
643
|
+
<span class="tag red">Gate</span>
|
|
631
644
|
<span>
|
|
632
|
-
<strong>
|
|
633
|
-
|
|
634
|
-
|
|
645
|
+
<strong>Version review</strong>
|
|
646
|
+
Outcome data says whether to request review or keep fixing
|
|
647
|
+
failed proof.
|
|
635
648
|
</span>
|
|
636
649
|
</div>
|
|
637
650
|
</div>
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projscan",
|
|
3
3
|
"mcpName": "io.github.abhiyoheswaran1/projscan",
|
|
4
|
-
"version": "4.
|
|
5
|
-
"description": "Agent-first code intelligence. MCP server (2025-03-26) with AST
|
|
4
|
+
"version": "4.3.0",
|
|
5
|
+
"description": "Agent-first code intelligence. MCP server (2025-03-26) with 11 AST adapters covering 12 named languages: JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; repo understanding maps (projscan_understand), stable v3 semantic graph (projscan_semantic_graph), dataflow risk engine with bridge-helper detection (projscan_dataflow), code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg, new taint flows, contract changes, and newDataflowRisks) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), first-60-seconds workflow orientation (projscan_start), agent workplans (projscan_workplan), bug-hunt queues (projscan_bug_hunt), product-line planning (projscan_release_train), evidence packs (projscan_evidence_pack), regression planning (projscan_regression_plan), agent briefs (projscan_agent_brief), quality scorecards (projscan_quality_scorecard), and preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@ const captures = [
|
|
|
16
16
|
name: 'Mission Control hero',
|
|
17
17
|
url: pathToFileURL(demoPath).href,
|
|
18
18
|
output: path.join(repoRoot, 'docs', 'projscan-mission-control.png'),
|
|
19
|
-
viewport: '1440,
|
|
19
|
+
viewport: '1440,1120',
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
name: 'Intent and proof workflow',
|