projscan 3.0.4 → 3.0.6

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.
Files changed (66) hide show
  1. package/README.md +45 -25
  2. package/dist/cli/commands/dogfood.d.ts +1 -0
  3. package/dist/cli/commands/dogfood.js +78 -0
  4. package/dist/cli/commands/dogfood.js.map +1 -0
  5. package/dist/cli/commands/start.js +7 -0
  6. package/dist/cli/commands/start.js.map +1 -1
  7. package/dist/cli/index.js +2 -0
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/core/adoption.js +24 -2
  10. package/dist/core/adoption.js.map +1 -1
  11. package/dist/core/ast.d.ts +6 -0
  12. package/dist/core/ast.js +59 -11
  13. package/dist/core/ast.js.map +1 -1
  14. package/dist/core/bugHunt.js +3 -0
  15. package/dist/core/bugHunt.js.map +1 -1
  16. package/dist/core/dataflow.js +98 -9
  17. package/dist/core/dataflow.js.map +1 -1
  18. package/dist/core/dogfood.d.ts +7 -0
  19. package/dist/core/dogfood.js +345 -0
  20. package/dist/core/dogfood.js.map +1 -0
  21. package/dist/core/fixFirst.d.ts +8 -0
  22. package/dist/core/fixFirst.js +109 -0
  23. package/dist/core/fixFirst.js.map +1 -0
  24. package/dist/core/frameworkSources.d.ts +3 -1
  25. package/dist/core/frameworkSources.js +44 -3
  26. package/dist/core/frameworkSources.js.map +1 -1
  27. package/dist/core/indexCache.js +5 -1
  28. package/dist/core/indexCache.js.map +1 -1
  29. package/dist/core/preflight.js +12 -7
  30. package/dist/core/preflight.js.map +1 -1
  31. package/dist/core/qualityScorecard.js +5 -1
  32. package/dist/core/qualityScorecard.js.map +1 -1
  33. package/dist/core/releaseEvidence.d.ts +1 -0
  34. package/dist/core/releaseEvidence.js +152 -8
  35. package/dist/core/releaseEvidence.js.map +1 -1
  36. package/dist/core/start.js +47 -3
  37. package/dist/core/start.js.map +1 -1
  38. package/dist/core/taint.js +89 -9
  39. package/dist/core/taint.js.map +1 -1
  40. package/dist/core/workplan.js +3 -0
  41. package/dist/core/workplan.js.map +1 -1
  42. package/dist/index.d.ts +2 -1
  43. package/dist/index.js +1 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/projscan-sbom.cdx.json +6 -6
  46. package/dist/tool-manifest.json +2 -2
  47. package/dist/types.d.ts +152 -0
  48. package/dist/utils/baseline.js +23 -2
  49. package/dist/utils/baseline.js.map +1 -1
  50. package/dist/utils/formatSupport.d.ts +1 -0
  51. package/dist/utils/formatSupport.js +1 -0
  52. package/dist/utils/formatSupport.js.map +1 -1
  53. package/package.json +4 -2
  54. package/public/.well-known/security.txt +6 -0
  55. package/public/brand/baseframe-labs/mark-dark-on-dark.png +0 -0
  56. package/public/brand/baseframe-labs/mark-dark.png +0 -0
  57. package/public/brand/baseframe-labs/mark-dark.svg +1 -0
  58. package/public/brand/baseframe-labs/mark-light-on-white.png +0 -0
  59. package/public/brand/baseframe-labs/mark-light.png +0 -0
  60. package/public/brand/baseframe-labs/mark-light.svg +1 -0
  61. package/public/brand/baseframe-labs/wordmark-dark-on-dark.png +0 -0
  62. package/public/brand/baseframe-labs/wordmark-dark.png +0 -0
  63. package/public/brand/baseframe-labs/wordmark-dark.svg +1 -0
  64. package/public/brand/baseframe-labs/wordmark-light-on-white.png +0 -0
  65. package/public/brand/baseframe-labs/wordmark-light.png +0 -0
  66. package/public/brand/baseframe-labs/wordmark-light.svg +1 -0
package/dist/types.d.ts CHANGED
@@ -311,6 +311,17 @@ export interface WorkplanVerification {
311
311
  commands: string[];
312
312
  expected: string;
313
313
  }
314
+ export interface FixFirstRecommendation {
315
+ id: string;
316
+ title: string;
317
+ source: string;
318
+ priority: WorkplanPriority;
319
+ whyFirst: string;
320
+ files: string[];
321
+ owner?: string;
322
+ commands: string[];
323
+ expected?: string;
324
+ }
314
325
  export interface WorkplanTask {
315
326
  id: string;
316
327
  priority: WorkplanPriority;
@@ -339,6 +350,7 @@ export interface WorkplanReport {
339
350
  summary: string;
340
351
  topRisks: WorkplanTopRisk[];
341
352
  tasks: WorkplanTask[];
353
+ fixFirst?: FixFirstRecommendation;
342
354
  coordination: WorkplanCoordination;
343
355
  suggestedNextActions: PreflightSuggestedAction[];
344
356
  truncated?: boolean;
@@ -408,6 +420,7 @@ export interface BugHuntReport {
408
420
  };
409
421
  topSuspects: BugHuntFinding[];
410
422
  fixQueue: BugHuntFinding[];
423
+ fixFirst?: FixFirstRecommendation;
411
424
  verificationMatrix: Array<{
412
425
  command: string;
413
426
  reason: string;
@@ -450,6 +463,8 @@ export interface EvidencePackPrSummary {
450
463
  trust: EvidencePackTrustCalibration;
451
464
  topRisks: EvidencePackTopRisk[];
452
465
  teamRoutes: EvidencePackTeamRoute[];
466
+ ownershipSuggestion?: string;
467
+ fixFirst?: FixFirstRecommendation;
453
468
  nextCommands: string[];
454
469
  baselineTrend?: BaselineTrend;
455
470
  }
@@ -591,6 +606,18 @@ export interface StartAdoptionGap {
591
606
  summary: string;
592
607
  command?: string;
593
608
  }
609
+ export interface StartAdoptionLoopMetric {
610
+ id: string;
611
+ label: string;
612
+ target: string;
613
+ command?: string;
614
+ }
615
+ export interface StartAdoptionLoop {
616
+ cadence: 'every_pr';
617
+ why: string;
618
+ metrics: StartAdoptionLoopMetric[];
619
+ nextCommands: string[];
620
+ }
594
621
  export interface StartReport {
595
622
  schemaVersion: 1;
596
623
  readOnly: true;
@@ -618,11 +645,128 @@ export interface StartReport {
618
645
  mcpReady: boolean;
619
646
  };
620
647
  topRisks: StartRisk[];
648
+ fixFirst?: FixFirstRecommendation;
621
649
  adoptionGaps: StartAdoptionGap[];
650
+ adoptionLoop?: StartAdoptionLoop;
622
651
  nextActions: PreflightSuggestedAction[];
623
652
  handoff?: WorkplanHandoffPayload;
624
653
  truncated?: boolean;
625
654
  }
655
+ export type DogfoodRepoStatus = 'pass' | 'warn' | 'fail';
656
+ export interface DogfoodFeedbackResponse {
657
+ repo?: string;
658
+ pr?: string;
659
+ reviewer?: string;
660
+ useful?: boolean;
661
+ minutesSaved?: number;
662
+ preventedBadEdit?: boolean;
663
+ ownerRoutingClear?: boolean;
664
+ nextCommandClear?: boolean;
665
+ falsePositiveRules?: string[];
666
+ missingSignals?: string[];
667
+ noisyFindings?: string[];
668
+ note?: string;
669
+ }
670
+ export interface DogfoodFeedbackInput {
671
+ responses: DogfoodFeedbackResponse[];
672
+ }
673
+ export interface DogfoodRepoValidation {
674
+ feedbackResponses: number;
675
+ usefulResponses: number;
676
+ minutesSaved: number;
677
+ preventedBadEdits: number;
678
+ ownerRoutingClear: number;
679
+ nextCommandClear: number;
680
+ falsePositiveRules: string[];
681
+ missingSignals: string[];
682
+ noisyFindings: string[];
683
+ }
684
+ export interface DogfoodWebsiteProof {
685
+ headline: string;
686
+ metrics: string[];
687
+ bullets: string[];
688
+ markdown: string;
689
+ }
690
+ export interface DogfoodMarketValidation {
691
+ status: 'proven' | 'needs_feedback' | 'needs_more_repos' | 'needs_tuning';
692
+ summary: string;
693
+ repoCoverage: {
694
+ target: number;
695
+ evaluated: number;
696
+ targetMet: boolean;
697
+ };
698
+ feedback: {
699
+ responses: number;
700
+ usefulResponses: number;
701
+ usefulnessRate: number;
702
+ preventedBadEdits: number;
703
+ ownerRoutingClear: number;
704
+ nextCommandClear: number;
705
+ minutesSaved: {
706
+ total: number;
707
+ average: number;
708
+ max: number;
709
+ };
710
+ };
711
+ falsePositive: {
712
+ totalReports: number;
713
+ noisyRules: Array<{
714
+ rule: string;
715
+ count: number;
716
+ }>;
717
+ missingSignals: Array<{
718
+ signal: string;
719
+ count: number;
720
+ }>;
721
+ noisyFindings: Array<{
722
+ finding: string;
723
+ count: number;
724
+ }>;
725
+ };
726
+ firstPr: {
727
+ readyRepos: number;
728
+ repeatUseReadyRepos: number;
729
+ requiredFeedbackQuestions: string[];
730
+ };
731
+ websiteProof: DogfoodWebsiteProof;
732
+ }
733
+ export interface DogfoodRepoResult {
734
+ path: string;
735
+ name: string;
736
+ status: DogfoodRepoStatus;
737
+ healthScore: number;
738
+ mcpReady: boolean;
739
+ prCommentReady: boolean;
740
+ repeatUseReady: boolean;
741
+ verdict: EvidencePackVerdict;
742
+ gaps: string[];
743
+ feedbackQuestions: string[];
744
+ validation: DogfoodRepoValidation;
745
+ nextCommands: string[];
746
+ }
747
+ export interface DogfoodReport {
748
+ schemaVersion: 1;
749
+ readOnly: true;
750
+ rootPath: string;
751
+ targetRepoCount: number;
752
+ summary: string;
753
+ repos: DogfoodRepoResult[];
754
+ totals: {
755
+ reposEvaluated: number;
756
+ passingRepos: number;
757
+ warningRepos: number;
758
+ failingRepos: number;
759
+ prCommentReady: number;
760
+ repeatUseReady: number;
761
+ mcpReady: number;
762
+ usefulFeedback: number;
763
+ minutesSaved: number;
764
+ preventedBadEdits: number;
765
+ falsePositiveReports: number;
766
+ };
767
+ marketValidation: DogfoodMarketValidation;
768
+ suggestedNextActions: PreflightSuggestedAction[];
769
+ }
626
770
  export interface GraphCorpusFixtureMetrics {
627
771
  name: string;
628
772
  fixture: string;
@@ -665,6 +809,7 @@ export interface QualityScorecardReport {
665
809
  health: HealthScore;
666
810
  dimensions: QualityScorecardDimension[];
667
811
  topRisks: QualityScorecardRisk[];
812
+ fixFirst?: FixFirstRecommendation;
668
813
  commands: string[];
669
814
  suggestedNextActions: PreflightSuggestedAction[];
670
815
  truncated?: boolean;
@@ -765,6 +910,13 @@ export interface BaselineRecurringRule {
765
910
  export interface BaselineTrend {
766
911
  scoreDirection: 'up' | 'down' | 'flat';
767
912
  scoreDelta: number;
913
+ riskDirection?: 'up' | 'down' | 'flat';
914
+ riskDelta?: number;
915
+ qualityScoreBefore?: number;
916
+ qualityScoreAfter?: number;
917
+ newIssueCount?: number;
918
+ resolvedIssueCount?: number;
919
+ changedSinceBaseline?: string[];
768
920
  newHotspots: string[];
769
921
  recurringNoisyRules: BaselineRecurringRule[];
770
922
  summary: string;
@@ -51,7 +51,7 @@ export function computeDiff(before, currentIssues, currentHotspots) {
51
51
  newIssues,
52
52
  resolvedIssues,
53
53
  hotspotDiff,
54
- trend: buildTrend(scoreDelta, before, after, hotspotDiff),
54
+ trend: buildTrend(scoreDelta, before, after, hotspotDiff, newIssues, resolvedIssues),
55
55
  };
56
56
  }
57
57
  function diffHotspots(before, after) {
@@ -106,24 +106,45 @@ function diffHotspots(before, after) {
106
106
  resolved.sort((a, b) => (b.beforeScore ?? 0) - (a.beforeScore ?? 0));
107
107
  return { rose, fell, appeared, resolved };
108
108
  }
109
- function buildTrend(scoreDelta, before, after, hotspotDiff) {
109
+ function buildTrend(scoreDelta, before, after, hotspotDiff, newIssues, resolvedIssues) {
110
110
  const roundedDelta = round1(scoreDelta);
111
+ const riskDelta = round1(-scoreDelta);
111
112
  const recurringNoisyRules = recurringRules(before.issueRuleCounts ?? countBaselineIssuesById(before), after.issueRuleCounts ?? countBaselineIssuesById(after));
112
113
  const newHotspots = (hotspotDiff?.appeared ?? []).map((entry) => entry.relativePath).slice(0, 5);
113
114
  const scoreDirection = roundedDelta > 0 ? 'up' : roundedDelta < 0 ? 'down' : 'flat';
115
+ const riskDirection = riskDelta > 0 ? 'up' : riskDelta < 0 ? 'down' : 'flat';
116
+ const changedSinceBaseline = buildChangedSinceBaseline(newIssues, resolvedIssues, newHotspots, recurringNoisyRules);
114
117
  const summary = [
115
118
  `score ${scoreDirection}${roundedDelta === 0 ? '' : ` ${roundedDelta > 0 ? '+' : ''}${roundedDelta}`}`,
119
+ `risk ${riskDirection}${riskDelta === 0 ? '' : ` ${riskDelta > 0 ? '+' : ''}${riskDelta}`}`,
116
120
  newHotspots.length > 0 ? `${newHotspots.length} new hotspot(s)` : 'no new hotspots',
117
121
  recurringNoisyRules.length > 0 ? `${recurringNoisyRules.length} recurring noisy rule(s)` : 'no recurring noisy rules',
118
122
  ].join('; ');
119
123
  return {
120
124
  scoreDirection,
121
125
  scoreDelta: roundedDelta,
126
+ riskDirection,
127
+ riskDelta,
128
+ qualityScoreBefore: before.score,
129
+ qualityScoreAfter: after.score,
130
+ newIssueCount: newIssues.length,
131
+ resolvedIssueCount: resolvedIssues.length,
132
+ changedSinceBaseline,
122
133
  newHotspots,
123
134
  recurringNoisyRules,
124
135
  summary,
125
136
  };
126
137
  }
138
+ function buildChangedSinceBaseline(newIssues, resolvedIssues, newHotspots, recurringNoisyRules) {
139
+ const changes = [];
140
+ changes.push(newIssues.length > 0 ? `${newIssues.length} new issue(s): ${newIssues.slice(0, 3).join('; ')}` : '0 new issues');
141
+ changes.push(resolvedIssues.length > 0 ? `${resolvedIssues.length} resolved issue(s): ${resolvedIssues.slice(0, 3).join('; ')}` : '0 resolved issues');
142
+ changes.push(newHotspots.length > 0 ? `new hotspot(s): ${newHotspots.join(', ')}` : 'no new hotspots');
143
+ if (recurringNoisyRules.length > 0) {
144
+ changes.push(`recurring noisy rule(s): ${recurringNoisyRules.map((rule) => `${rule.id} ${rule.before}->${rule.after}`).join(', ')}`);
145
+ }
146
+ return changes.slice(0, 5);
147
+ }
127
148
  function countIssuesById(issues) {
128
149
  const counts = {};
129
150
  for (const issue of issues)
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/utils/baseline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/utils/baseline.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare const COMMAND_FORMAT_SUPPORT: {
15
15
  readonly diagram: readonly ["console", "json", "markdown"];
16
16
  readonly diff: readonly ["console", "json", "markdown"];
17
17
  readonly doctor: readonly ["console", "json", "markdown", "sarif", "html"];
18
+ readonly dogfood: readonly ["console", "json"];
18
19
  readonly 'evidence-pack': readonly ["console", "json"];
19
20
  readonly explain: readonly ["console", "json", "markdown"];
20
21
  readonly 'explain-issue': readonly ["console", "json", "markdown"];
@@ -14,6 +14,7 @@ export const COMMAND_FORMAT_SUPPORT = {
14
14
  diagram: ['console', 'json', 'markdown'],
15
15
  diff: ['console', 'json', 'markdown'],
16
16
  doctor: ['console', 'json', 'markdown', 'sarif', 'html'],
17
+ dogfood: ['console', 'json'],
17
18
  'evidence-pack': ['console', 'json'],
18
19
  explain: ['console', 'json', 'markdown'],
19
20
  'explain-issue': ['console', 'json', 'markdown'],
@@ -1 +1 @@
1
- {"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "projscan",
3
3
  "mcpName": "io.github.abhiyoheswaran1/projscan",
4
- "version": "3.0.4",
4
+ "version": "3.0.6",
5
5
  "description": "Agent-first code intelligence. MCP server (2025-03-26) with AST parsing for JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; 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",
@@ -16,7 +16,9 @@
16
16
  "docs/PLUGIN-AUTHORING.md",
17
17
  "docs/PLUGIN-GALLERY.md",
18
18
  "docs/plugin.schema.json",
19
- "docs/examples/plugins"
19
+ "docs/examples/plugins",
20
+ "public/brand/baseframe-labs",
21
+ "public/.well-known/security.txt"
20
22
  ],
21
23
  "scripts": {
22
24
  "build": "tsc && node scripts/copy-wasm.mjs && node scripts/generate-tool-manifest.mjs",
@@ -0,0 +1,6 @@
1
+ # Vulnerability disclosure
2
+ # https://www.rfc-editor.org/rfc/rfc9116
3
+
4
+ Contact: mailto:support@baseframelabs.com
5
+ Expires: 2027-03-31T00:00:00.000Z
6
+ Preferred-Languages: en
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 32 32" width="512" height="512" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="3.5" y="3.5" width="25" height="25" rx="6" stroke="#f3f0e8" stroke-width="2"/><line x1="9" y1="22" x2="23" y2="22" stroke="#ff6444" stroke-width="2" stroke-linecap="round"/><rect x="13" y="11" width="6" height="6" rx="1.4" fill="#f3f0e8"/></svg>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 32 32" width="512" height="512" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="3.5" y="3.5" width="25" height="25" rx="6" stroke="#1a1812" stroke-width="2"/><line x1="9" y1="22" x2="23" y2="22" stroke="#d8472a" stroke-width="2" stroke-linecap="round"/><rect x="13" y="11" width="6" height="6" rx="1.4" fill="#1a1812"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 40" width="500" height="100" fill="none"><g transform="translate(4,6)"><rect x="3.5" y="3.5" width="25" height="25" rx="6" stroke="#f3f0e8" stroke-width="2"/><line x1="9" y1="22" x2="23" y2="22" stroke="#ff6444" stroke-width="2" stroke-linecap="round"/><rect x="13" y="11" width="6" height="6" rx="1.4" fill="#f3f0e8"/></g><text x="45" y="26" font-family="Geist, ui-sans-serif, system-ui, sans-serif" font-size="17" font-weight="600" letter-spacing="-0.3" fill="#f3f0e8">Baseframe<tspan font-family="'Geist Mono', ui-monospace, monospace" font-size="12" font-weight="400" letter-spacing="2" fill="#948e80" dx="7">LABS</tspan></text></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 40" width="500" height="100" fill="none"><g transform="translate(4,6)"><rect x="3.5" y="3.5" width="25" height="25" rx="6" stroke="#1a1812" stroke-width="2"/><line x1="9" y1="22" x2="23" y2="22" stroke="#d8472a" stroke-width="2" stroke-linecap="round"/><rect x="13" y="11" width="6" height="6" rx="1.4" fill="#1a1812"/></g><text x="45" y="26" font-family="Geist, ui-sans-serif, system-ui, sans-serif" font-size="17" font-weight="600" letter-spacing="-0.3" fill="#1a1812">Baseframe<tspan font-family="'Geist Mono', ui-monospace, monospace" font-size="12" font-weight="400" letter-spacing="2" fill="#79746a" dx="7">LABS</tspan></text></svg>