@mergesignal/shared 0.2.8 → 0.4.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.
Files changed (128) hide show
  1. package/dist/deriveScanNarrative.d.ts +0 -3
  2. package/dist/deriveScanNarrative.d.ts.map +1 -1
  3. package/dist/deriveScanNarrative.js +30 -19
  4. package/dist/deriveScanNarrative.test.js +37 -8
  5. package/dist/engineWireRegression.test.d.ts +2 -0
  6. package/dist/engineWireRegression.test.d.ts.map +1 -0
  7. package/dist/engineWireRegression.test.js +57 -0
  8. package/dist/fixtures/legacyEngineRepoIntelligence.d.ts +28 -0
  9. package/dist/fixtures/legacyEngineRepoIntelligence.d.ts.map +1 -0
  10. package/dist/fixtures/legacyEngineRepoIntelligence.js +28 -0
  11. package/dist/fixtures/repoIntelligenceFixtures.d.ts +0 -2
  12. package/dist/fixtures/repoIntelligenceFixtures.d.ts.map +1 -1
  13. package/dist/fixtures/repoIntelligenceFixtures.js +14 -4
  14. package/dist/fixtures/repoIntelligenceTestHelpers.d.ts +5 -0
  15. package/dist/fixtures/repoIntelligenceTestHelpers.d.ts.map +1 -0
  16. package/dist/fixtures/repoIntelligenceTestHelpers.js +28 -0
  17. package/dist/index.d.ts +4 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +4 -2
  20. package/dist/narrativeParity.test.js +21 -19
  21. package/dist/narrativePresentation.test.js +2 -1
  22. package/dist/presentGitHubPrComment.d.ts +3 -4
  23. package/dist/presentGitHubPrComment.d.ts.map +1 -1
  24. package/dist/presentGitHubPrComment.js +15 -61
  25. package/dist/presentation/compose/narrativeCompose.d.ts +16 -0
  26. package/dist/presentation/compose/narrativeCompose.d.ts.map +1 -0
  27. package/dist/presentation/compose/narrativeCompose.js +167 -0
  28. package/dist/presentation/dto/githubAndCliPresentation.d.ts +53 -0
  29. package/dist/presentation/dto/githubAndCliPresentation.d.ts.map +1 -0
  30. package/dist/presentation/dto/githubAndCliPresentation.js +1 -0
  31. package/dist/presentation/dto/scanCardPresentation.d.ts +25 -0
  32. package/dist/presentation/dto/scanCardPresentation.d.ts.map +1 -0
  33. package/dist/presentation/dto/scanCardPresentation.js +1 -0
  34. package/dist/presentation/dto/scanDetailsPresentation.d.ts +111 -0
  35. package/dist/presentation/dto/scanDetailsPresentation.d.ts.map +1 -0
  36. package/dist/presentation/dto/scanDetailsPresentation.js +1 -0
  37. package/dist/presentation/dto/types.d.ts +24 -0
  38. package/dist/presentation/dto/types.d.ts.map +1 -0
  39. package/dist/presentation/dto/types.js +22 -0
  40. package/dist/presentation/fixtures/scanResultFixtures.d.ts +5 -0
  41. package/dist/presentation/fixtures/scanResultFixtures.d.ts.map +1 -0
  42. package/dist/presentation/fixtures/scanResultFixtures.js +83 -0
  43. package/dist/presentation/index.d.ts +25 -0
  44. package/dist/presentation/index.d.ts.map +1 -0
  45. package/dist/presentation/index.js +13 -0
  46. package/dist/presentation/orchestration/buildScanCardPresentation.d.ts +11 -0
  47. package/dist/presentation/orchestration/buildScanCardPresentation.d.ts.map +1 -0
  48. package/dist/presentation/orchestration/buildScanCardPresentation.js +44 -0
  49. package/dist/presentation/orchestration/buildScanDetailsPresentation.d.ts +14 -0
  50. package/dist/presentation/orchestration/buildScanDetailsPresentation.d.ts.map +1 -0
  51. package/dist/presentation/orchestration/buildScanDetailsPresentation.js +19 -0
  52. package/dist/presentation/orchestration/buildScanPresentationBundle.d.ts +15 -0
  53. package/dist/presentation/orchestration/buildScanPresentationBundle.d.ts.map +1 -0
  54. package/dist/presentation/orchestration/buildScanPresentationBundle.js +23 -0
  55. package/dist/presentation/orchestration/scanPresentationBundle.d.ts +15 -0
  56. package/dist/presentation/orchestration/scanPresentationBundle.d.ts.map +1 -0
  57. package/dist/presentation/orchestration/scanPresentationBundle.js +1 -0
  58. package/dist/presentation/presentation.test.d.ts +2 -0
  59. package/dist/presentation/presentation.test.d.ts.map +1 -0
  60. package/dist/presentation/presentation.test.js +95 -0
  61. package/dist/presentation/presenters/presentCliScanSummary.d.ts +6 -0
  62. package/dist/presentation/presenters/presentCliScanSummary.d.ts.map +1 -0
  63. package/dist/presentation/presenters/presentCliScanSummary.js +30 -0
  64. package/dist/presentation/presenters/presentGitHubCheckRun.d.ts +8 -0
  65. package/dist/presentation/presenters/presentGitHubCheckRun.d.ts.map +1 -0
  66. package/dist/presentation/presenters/presentGitHubCheckRun.js +32 -0
  67. package/dist/presentation/presenters/presentGitHubPrComment.d.ts +4 -0
  68. package/dist/presentation/presenters/presentGitHubPrComment.d.ts.map +1 -0
  69. package/dist/presentation/presenters/presentGitHubPrComment.js +40 -0
  70. package/dist/presentation/presenters/presentPipelineScanCard.d.ts +3 -0
  71. package/dist/presentation/presenters/presentPipelineScanCard.d.ts.map +1 -0
  72. package/dist/presentation/presenters/presentPipelineScanCard.js +23 -0
  73. package/dist/presentation/presenters/presentScanCard.d.ts +7 -0
  74. package/dist/presentation/presenters/presentScanCard.d.ts.map +1 -0
  75. package/dist/presentation/presenters/presentScanCard.js +43 -0
  76. package/dist/presentation/presenters/presentScanDetails.d.ts +9 -0
  77. package/dist/presentation/presenters/presentScanDetails.d.ts.map +1 -0
  78. package/dist/presentation/presenters/presentScanDetails.js +177 -0
  79. package/dist/presentation/profile/derivePresentationProfile.d.ts +12 -0
  80. package/dist/presentation/profile/derivePresentationProfile.d.ts.map +1 -0
  81. package/dist/presentation/profile/derivePresentationProfile.js +86 -0
  82. package/dist/presentation/profile/presentationProfile.d.ts +9 -0
  83. package/dist/presentation/profile/presentationProfile.d.ts.map +1 -0
  84. package/dist/presentation/profile/presentationProfile.js +1 -0
  85. package/dist/presentation/render/renderCliScanSummaryText.d.ts +3 -0
  86. package/dist/presentation/render/renderCliScanSummaryText.d.ts.map +1 -0
  87. package/dist/presentation/render/renderCliScanSummaryText.js +30 -0
  88. package/dist/presentation/render/renderGitHubCheckRunMarkdown.d.ts +3 -0
  89. package/dist/presentation/render/renderGitHubCheckRunMarkdown.d.ts.map +1 -0
  90. package/dist/presentation/render/renderGitHubCheckRunMarkdown.js +23 -0
  91. package/dist/presentation/render/renderGitHubPrCommentMarkdown.d.ts +3 -0
  92. package/dist/presentation/render/renderGitHubPrCommentMarkdown.d.ts.map +1 -0
  93. package/dist/presentation/render/renderGitHubPrCommentMarkdown.js +24 -0
  94. package/dist/repoIntelligenceMappers.d.ts +20 -0
  95. package/dist/repoIntelligenceMappers.d.ts.map +1 -0
  96. package/dist/repoIntelligenceMappers.js +60 -0
  97. package/dist/repoIntelligenceSchema.contract.test.d.ts +2 -0
  98. package/dist/repoIntelligenceSchema.contract.test.d.ts.map +1 -0
  99. package/dist/repoIntelligenceSchema.contract.test.js +19 -0
  100. package/dist/repoIntelligenceSchema.d.ts +52 -83
  101. package/dist/repoIntelligenceSchema.d.ts.map +1 -1
  102. package/dist/repoIntelligenceSchema.js +99 -141
  103. package/dist/repoIntelligenceValidation.d.ts +18 -0
  104. package/dist/repoIntelligenceValidation.d.ts.map +1 -0
  105. package/dist/repoIntelligenceValidation.js +76 -0
  106. package/dist/repoIntelligenceValidation.persist.test.d.ts +2 -0
  107. package/dist/repoIntelligenceValidation.persist.test.d.ts.map +1 -0
  108. package/dist/repoIntelligenceValidation.persist.test.js +44 -0
  109. package/dist/scanCardSummary.d.ts +4 -35
  110. package/dist/scanCardSummary.d.ts.map +1 -1
  111. package/dist/scanCardSummary.js +12 -63
  112. package/dist/scanCardSummary.test.js +56 -75
  113. package/dist/scanDetailViewModel.d.ts +1 -0
  114. package/dist/scanDetailViewModel.d.ts.map +1 -1
  115. package/dist/scanDetailViewModel.js +1 -1
  116. package/dist/scanDetailViewModel.test.js +2 -1
  117. package/dist/scanNarrativeFacts.d.ts +2 -0
  118. package/dist/scanNarrativeFacts.d.ts.map +1 -1
  119. package/dist/scanNarrativeFacts.js +1 -0
  120. package/dist/scanSurfaceCopy.d.ts +25 -0
  121. package/dist/scanSurfaceCopy.d.ts.map +1 -1
  122. package/dist/scanSurfaceCopy.js +25 -0
  123. package/dist/types.d.ts +15 -3
  124. package/dist/types.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/dist/presentScanCardSummary.d.ts +0 -16
  127. package/dist/presentScanCardSummary.d.ts.map +0 -1
  128. package/dist/presentScanCardSummary.js +0 -212
@@ -1 +1 @@
1
- {"version":3,"file":"scanCardSummary.d.ts","sourceRoot":"","sources":["../src/scanCardSummary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanCardSummary.d.ts","sourceRoot":"","sources":["../src/scanCardSummary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAMvF,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1E,MAAM,MAAM,yBAAyB,GACjC,aAAa,GACb,UAAU,GACV,iBAAiB,GACjB,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAGhC,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAsBF,wFAAwF;AACxF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,0BAA0B,GACnC,OAAO,CAQT;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,0BAA0B,GACnC,kBAAkB,CAKpB;AAED,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO,CAST;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAEvE;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,aAAa,GAAG,IAAI,CAKtB;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,GACrC,mBAAmB,CAgBrB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACrC,cAAc,EAAE,kBAAkB,GACjC,eAAe,CAOjB;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,2FAA2F;AAC3F,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,kBAAkB,GACjC,eAAe,CAuBjB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,sBAAsB,GAC5B,eAAe,CAcjB"}
@@ -1,5 +1,4 @@
1
- import { deriveScanNarrative } from "./deriveScanNarrative.js";
2
- import { presentScanCardSummary } from "./presentScanCardSummary.js";
1
+ import { buildScanCardPresentation } from "./presentation/orchestration/buildScanCardPresentation.js";
3
2
  import { mergePostureFromDecision, } from "./riskVocabulary.js";
4
3
  import { scanSurfaceCopy } from "./scanSurfaceCopy.js";
5
4
  const STALE_SUBLINE = "Based on earlier commit";
@@ -53,14 +52,7 @@ export function isPipelinePlaceholderCopy(text) {
53
52
  }
54
53
  /** True when summary reflects pipeline lifecycle, not merge posture. */
55
54
  export function isPipelineCardSummary(summary) {
56
- if (isPipelinePlaceholderCopy(summary.summaryLine))
57
- return true;
58
- return (summary.mergePosture === null &&
59
- summary.riskIndex === null &&
60
- (summary.headline === scanSurfaceCopy.pipeline.scanRunning ||
61
- summary.headline === scanSurfaceCopy.pipeline.analysisIncomplete ||
62
- summary.headline === scanSurfaceCopy.pipeline.scanUnavailable) &&
63
- summary.narrativeMode === "denormalized");
55
+ return summary.pipeline != null;
64
56
  }
65
57
  /** Single source for risk index color bands (aligns with decision score bands). */
66
58
  export function deriveRiskIndexBand(score) {
@@ -101,26 +93,11 @@ export function aggregateFindingCounts(findings) {
101
93
  * Quiet safe cards with no mappable signals show posture + exposure only.
102
94
  */
103
95
  export function deriveScanCardSummary(result, pipelineStatus) {
104
- if (pipelineStatus === "queued" || pipelineStatus === "running") {
105
- return presentScanCardSummary(deriveScanNarrative(null), {
106
- pipelineStatus,
107
- });
108
- }
109
- if (pipelineStatus === "failed") {
110
- return presentScanCardSummary(deriveScanNarrative(null), {
111
- pipelineStatus: "failed",
112
- });
113
- }
114
- if (!result) {
115
- return {
116
- ...presentScanCardSummary(deriveScanNarrative(null), { pipelineStatus }),
117
- headline: scanSurfaceCopy.pipeline.scanUnavailable,
118
- };
119
- }
120
- const facts = deriveScanNarrative(result);
121
- return presentScanCardSummary(facts, {
96
+ return buildScanCardPresentation({
122
97
  pipelineStatus,
123
- findings: result.findings,
98
+ result: result ?? null,
99
+ decision: result?.decision?.recommendation,
100
+ totalScore: result?.totalScore,
124
101
  });
125
102
  }
126
103
  /** Subline appended when scan results are stale (head SHA mismatch). */
@@ -160,38 +137,10 @@ export function resolvePrScanCardSummary(input) {
160
137
  hasResult: input.result != null,
161
138
  scannedAt: input.scannedAt,
162
139
  });
163
- if (effectivePipeline === "done") {
164
- const scanResult = input.result ??
165
- (hasScanCompletionEvidence({
166
- decision: input.decision,
167
- totalScore: input.totalScore,
168
- hasResult: false,
169
- })
170
- ? {
171
- totalScore: input.totalScore ?? 0,
172
- layerScores: {
173
- security: 0,
174
- maintainability: 0,
175
- ecosystem: 0,
176
- upgradeImpact: 0,
177
- },
178
- findings: [],
179
- generatedAt: new Date().toISOString(),
180
- decision: mergePostureFromDecision(input.decision)
181
- ? {
182
- recommendation: mergePostureFromDecision(input.decision),
183
- confidence: "medium",
184
- reasoning: [],
185
- }
186
- : undefined,
187
- }
188
- : null);
189
- if (scanResult) {
190
- const fromResult = deriveScanCardSummary(scanResult, "done");
191
- if (!isPipelineCardSummary(fromResult))
192
- return fromResult;
193
- }
194
- return deriveScanCardSummaryFromDenormalized(input.decision, input.totalScore, input.summaryText, "done");
195
- }
196
- return deriveScanCardSummary(input.result, effectivePipeline);
140
+ return buildScanCardPresentation({
141
+ pipelineStatus: effectivePipeline,
142
+ result: input.result,
143
+ decision: input.decision,
144
+ totalScore: input.totalScore,
145
+ });
197
146
  }
@@ -1,21 +1,6 @@
1
1
  import { describe, it, expect } from "vitest";
2
- import { isCatalogPhrase } from "./cardObservationCatalog.js";
2
+ import { scanSurfaceCopy } from "./scanSurfaceCopy.js";
3
3
  import { aggregateFindingCounts, deriveRiskIndexBand, deriveScanCardSummary, deriveScanCardSummaryFromDenormalized, isPipelineCardSummary, isPipelinePlaceholderCopy, resolvePipelineStatus, resolvePrScanCardSummary, staleScanSubline, } from "./scanCardSummary.js";
4
- const pipelinePresentationDefaults = {
5
- narrativeMode: "denormalized",
6
- codeIntelligenceAvailable: false,
7
- changedPackagesDisplay: null,
8
- runtimeSurfaceLabel: null,
9
- reachabilityLabel: null,
10
- blastRadiusLabel: null,
11
- affectedAreas: [],
12
- primaryInsight: null,
13
- structuralOnlyDisclaimer: null,
14
- usageSummary: null,
15
- verificationLine: null,
16
- blastRadiusDetail: null,
17
- frameworksSummary: null,
18
- };
19
4
  const baseResult = {
20
5
  totalScore: 10,
21
6
  layerScores: {
@@ -27,6 +12,22 @@ const baseResult = {
27
12
  findings: [],
28
13
  generatedAt: "2026-01-01T00:00:00.000Z",
29
14
  };
15
+ function pipelineCard(overrides = {}) {
16
+ return {
17
+ pipeline: {
18
+ status: "queued",
19
+ headline: scanSurfaceCopy.pipeline.scanRunning,
20
+ subheadline: scanSurfaceCopy.pipeline.scanIncomplete,
21
+ },
22
+ headline: scanSurfaceCopy.pipeline.scanRunning,
23
+ changedPackages: [],
24
+ keyPoints: [],
25
+ affectedAreas: [],
26
+ verificationActions: [],
27
+ evidence: [],
28
+ ...overrides,
29
+ };
30
+ }
30
31
  describe("deriveRiskIndexBand", () => {
31
32
  it("maps score thresholds", () => {
32
33
  expect(deriveRiskIndexBand(0)).toBe("low");
@@ -67,18 +68,19 @@ describe("aggregateFindingCounts", () => {
67
68
  describe("deriveScanCardSummary", () => {
68
69
  it("returns scanning copy for queued/running", () => {
69
70
  const queued = deriveScanCardSummary(null, "queued");
70
- expect(queued.headline).toBe("Scan in progress");
71
- expect(queued.summaryLine).toBe("Waiting for results...");
72
- expect(queued.mergePosture).toBeNull();
71
+ expect(queued.headline).toBe(scanSurfaceCopy.pipeline.scanRunning);
72
+ expect(queued.pipeline?.status).toBe("queued");
73
+ expect(queued.status).toBeUndefined();
73
74
  const running = deriveScanCardSummary(null, "running");
74
- expect(running.headline).toBe("Scan in progress");
75
+ expect(running.headline).toBe(scanSurfaceCopy.pipeline.scanRunning);
76
+ expect(running.pipeline?.status).toBe("running");
75
77
  });
76
78
  it("returns failed copy", () => {
77
79
  const failed = deriveScanCardSummary(null, "failed");
78
- expect(failed.headline).toBe("Analysis could not be completed");
79
- expect(failed.mergePosture).toBeNull();
80
+ expect(failed.headline).toBe(scanSurfaceCopy.pipeline.analysisIncomplete);
81
+ expect(failed.pipeline?.status).toBe("failed");
80
82
  });
81
- it("derives posture headline and risk index for done scans", () => {
83
+ it("derives posture and risk index for done scans", () => {
82
84
  const r = {
83
85
  ...baseResult,
84
86
  totalScore: 72,
@@ -99,14 +101,11 @@ describe("deriveScanCardSummary", () => {
99
101
  },
100
102
  };
101
103
  const summary = deriveScanCardSummary(r, "done");
102
- expect(summary.mergePosture).toBe("risky");
103
- expect(summary.headline).toBe("Risky");
104
+ expect(summary.status).toBe("risky");
105
+ expect(summary.headline).toBe(scanSurfaceCopy.presentation.limitedContextHeadline);
104
106
  expect(summary.riskIndex).toBe(72);
105
- expect(summary.riskIndexBand).toBe("high");
106
- expect(summary.summaryLine).toBeNull();
107
- expect(summary.operationalObservations).toContain("Large upgrade blast radius");
108
107
  });
109
- it("keeps quiet safe cards posture-only without observations", () => {
108
+ it("keeps quiet safe cards minimal without extra key points beyond defaults", () => {
110
109
  const r = {
111
110
  ...baseResult,
112
111
  totalScore: 12,
@@ -117,10 +116,10 @@ describe("deriveScanCardSummary", () => {
117
116
  },
118
117
  };
119
118
  const summary = deriveScanCardSummary(r, "done");
120
- expect(summary.summaryLine).toBeNull();
121
- expect(summary.operationalObservations).toEqual([]);
119
+ expect(summary.status).toBe("safe");
120
+ expect(summary.keyPoints.length).toBeGreaterThan(0);
122
121
  });
123
- it("surfaces catalog observations from explain signals", () => {
122
+ it("surfaces catalog key points from explain signals", () => {
124
123
  const r = {
125
124
  ...baseResult,
126
125
  decision: {
@@ -147,11 +146,7 @@ describe("deriveScanCardSummary", () => {
147
146
  },
148
147
  };
149
148
  const summary = deriveScanCardSummary(r, "done");
150
- expect(summary.topAffectedAreas).toHaveLength(2);
151
- expect(summary.operationalObservations.length).toBeGreaterThan(0);
152
- for (const phrase of summary.operationalObservations) {
153
- expect(isCatalogPhrase(phrase)).toBe(true);
154
- }
149
+ expect(summary.keyPoints.length).toBeGreaterThan(0);
155
150
  });
156
151
  it("exports stale subline constant", () => {
157
152
  expect(staleScanSubline()).toBe("Based on earlier commit");
@@ -183,32 +178,21 @@ describe("resolvePipelineStatus", () => {
183
178
  });
184
179
  describe("isPipelineCardSummary", () => {
185
180
  it("detects scanning placeholder summaries", () => {
186
- expect(isPipelineCardSummary({
187
- mergePosture: null,
188
- riskIndex: null,
189
- riskIndexBand: null,
190
- headline: "Scan in progress",
191
- summaryLine: "Waiting for results...",
192
- findingCounts: null,
193
- topAffectedAreas: [],
194
- operationalObservations: [],
195
- supportingLine: null,
196
- ...pipelinePresentationDefaults,
197
- })).toBe(true);
198
- });
199
- it("detects hybrid completed posture with pipeline summary line", () => {
200
- expect(isPipelineCardSummary({
201
- mergePosture: "risky",
202
- riskIndex: 72,
203
- riskIndexBand: "high",
204
- headline: "Risky",
205
- summaryLine: "Waiting for results...",
206
- findingCounts: null,
207
- topAffectedAreas: [],
208
- operationalObservations: [],
209
- supportingLine: null,
210
- ...pipelinePresentationDefaults,
211
- })).toBe(true);
181
+ expect(isPipelineCardSummary(pipelineCard({
182
+ pipeline: {
183
+ status: "queued",
184
+ headline: scanSurfaceCopy.pipeline.scanRunning,
185
+ subheadline: scanSurfaceCopy.pipeline.scanIncomplete,
186
+ },
187
+ }))).toBe(true);
188
+ });
189
+ it("detects failed pipeline summaries", () => {
190
+ expect(isPipelineCardSummary(pipelineCard({
191
+ pipeline: {
192
+ status: "failed",
193
+ headline: scanSurfaceCopy.pipeline.analysisIncomplete,
194
+ },
195
+ }))).toBe(true);
212
196
  });
213
197
  });
214
198
  describe("isPipelinePlaceholderCopy", () => {
@@ -218,23 +202,21 @@ describe("isPipelinePlaceholderCopy", () => {
218
202
  });
219
203
  });
220
204
  describe("deriveScanCardSummaryFromDenormalized", () => {
221
- it("builds risky summary from denormalized columns without generic narration", () => {
205
+ it("builds risky summary from denormalized columns", () => {
222
206
  const summary = deriveScanCardSummaryFromDenormalized("risky", 72, "Auth boundary change", "done");
223
- expect(summary.mergePosture).toBe("risky");
224
- expect(summary.headline).toBe("Risky");
207
+ expect(summary.status).toBe("risky");
225
208
  expect(summary.riskIndex).toBe(72);
226
- expect(summary.summaryLine).toBeNull();
227
- expect(summary.operationalObservations).toEqual([]);
209
+ expect(summary.pipeline).toBeUndefined();
228
210
  });
229
211
  it("does not inject pipeline placeholder summaryText", () => {
230
212
  const summary = deriveScanCardSummaryFromDenormalized("risky", 72, "Waiting for results...", "done");
231
- expect(summary.mergePosture).toBe("risky");
232
- expect(summary.summaryLine).not.toBe("Waiting for results...");
213
+ expect(summary.status).toBe("risky");
214
+ expect(summary.pipeline).toBeUndefined();
233
215
  });
234
216
  it("does not inject raw generic summaryText on quiet safe cards", () => {
235
217
  const summary = deriveScanCardSummaryFromDenormalized("safe", 12, "No high-confidence merge risks from this PR dependency change", "done");
236
- expect(summary.mergePosture).toBe("safe");
237
- expect(summary.summaryLine).toBeNull();
218
+ expect(summary.status).toBe("safe");
219
+ expect(summary.pipeline).toBeUndefined();
238
220
  });
239
221
  });
240
222
  describe("resolvePrScanCardSummary", () => {
@@ -246,8 +228,7 @@ describe("resolvePrScanCardSummary", () => {
246
228
  summaryText: "Waiting for results...",
247
229
  result: null,
248
230
  });
249
- expect(summary.mergePosture).toBe("risky");
250
- expect(summary.headline).toBe("Risky");
251
- expect(summary.summaryLine).not.toBe("Waiting for results...");
231
+ expect(summary.status).toBe("risky");
232
+ expect(summary.pipeline).toBeUndefined();
252
233
  });
253
234
  });
@@ -122,6 +122,7 @@ export declare function deriveVerdictLine(posture: MergePosture | null, totalSco
122
122
  export declare function deriveAct2Themes(result: ScanResult): string[];
123
123
  export declare function deriveOperationalImpact(result: ScanResult, verifyLabels?: Set<string>): ScanDetailOperationalImpact;
124
124
  export declare function presentScanDetailNarrativeContext(facts: ScanNarrativeFacts): ScanDetailNarrativeContext;
125
+ export declare function deriveVerdictLineFromFacts(facts: ScanNarrativeFacts, result: ScanResult): string;
125
126
  /** Scan detail presentation from shared narrative facts. */
126
127
  export declare function presentScanDetailViewModel(facts: ScanNarrativeFacts, result: ScanResult, options: DeriveScanDetailOptions): ScanDetailViewModel;
127
128
  export declare function deriveScanDetailViewModel(result: ScanResult | null | undefined, options: DeriveScanDetailOptions): ScanDetailViewModel | null;
@@ -1 +1 @@
1
- {"version":3,"file":"scanDetailViewModel.d.ts","sourceRoot":"","sources":["../src/scanDetailViewModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanDetailViewModel.d.ts","sourceRoot":"","sources":["../src/scanDetailViewModel.ts"],"names":[],"mappings":"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"}
@@ -552,7 +552,7 @@ function deriveBecauseThemesFromFacts(facts) {
552
552
  }
553
553
  return themes.slice(0, ACT2_MAX_THEMES);
554
554
  }
555
- function deriveVerdictLineFromFacts(facts, result) {
555
+ export function deriveVerdictLineFromFacts(facts, result) {
556
556
  const topGuidance = facts.reviewerGuidance.find((g) => (g.scope === "changed" || g.kind === "insight") && g.message.trim());
557
557
  if (topGuidance) {
558
558
  return truncateWithEllipsis(topGuidance.message.trim(), VERDICT_LINE_MAX_CHARS);
@@ -2,6 +2,7 @@ import { describe, expect, it } from "vitest";
2
2
  import { primaryPrExample } from "./productMessaging.js";
3
3
  import { ACT2_MAX_THEMES, TIER1_MAX_VISIBLE_IMPACTS, deriveAct2Themes, deriveOperationalImpact, deriveFollowUpBridgeNote, deriveScanDetailViewModel, deriveVerdictLine, sanitizeAct2Theme, tier1PassesRecallTest, } from "./scanDetailViewModel.js";
4
4
  import { fixtureRepoIntelligenceFastify } from "./fixtures/repoIntelligenceFixtures.js";
5
+ import { analysisPreparationWithValidRepoIntel } from "./fixtures/repoIntelligenceTestHelpers.js";
5
6
  const baseResult = {
6
7
  totalScore: 10,
7
8
  layerScores: {
@@ -133,7 +134,7 @@ describe("Tier 1 success criterion", () => {
133
134
  const vm = deriveScanDetailViewModel({
134
135
  ...baseResult,
135
136
  changedPackages: ["fastify"],
136
- analysisPreparation: { codeIntelligenceAvailable: true, warnings: [] },
137
+ analysisPreparation: analysisPreparationWithValidRepoIntel(),
137
138
  repoIntelligence: fixtureRepoIntelligenceFastify,
138
139
  insights: [
139
140
  {
@@ -14,6 +14,7 @@ export type NarrativePackageUsage = {
14
14
  files: string[];
15
15
  areas: string[];
16
16
  };
17
+ export type RepoIntelligenceParseStatus = "ok" | "invalid" | "absent" | "untrusted";
17
18
  export type ScanNarrativeFacts = {
18
19
  availability: {
19
20
  mode: NarrativeAvailabilityMode;
@@ -23,6 +24,7 @@ export type ScanNarrativeFacts = {
23
24
  tier2: boolean;
24
25
  tier3: boolean;
25
26
  };
27
+ repoIntelligenceParse: RepoIntelligenceParseStatus;
26
28
  };
27
29
  changedPackages: {
28
30
  primary: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"scanNarrativeFacts.d.ts","sourceRoot":"","sources":["../src/scanNarrativeFacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanNarrativeFacts.d.ts","sourceRoot":"","sources":["../src/scanNarrativeFacts.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export const EMPTY_SCAN_NARRATIVE_FACTS = {
3
3
  mode: "denormalized",
4
4
  codeIntelligenceAvailable: false,
5
5
  tiersPresent: { tier1: false, tier2: false, tier3: false },
6
+ repoIntelligenceParse: "absent",
6
7
  },
7
8
  changedPackages: { primary: null, others: [], all: [] },
8
9
  packageUsage: [],
@@ -288,6 +288,31 @@ export declare const scanSurfaceCopy: {
288
288
  readonly areasSeparator: " | ";
289
289
  readonly contextSeparator: " | ";
290
290
  };
291
+ /** Shared presentation layer copy (composeHeadline, key points, verification). */
292
+ readonly presentation: {
293
+ readonly limitedContextHeadline: "Dependency upgrade with limited scan context";
294
+ readonly limitedContextMessage: "PR-specific scan context was limited";
295
+ readonly limitedContextKeyPoint: "PR-specific intelligence was limited for this scan";
296
+ readonly noChangedPackagesHeadline: "Dependency scan complete";
297
+ readonly multiRuntimeHeadline: "Multiple runtime dependency upgrades need review";
298
+ readonly buildOnlyHeadline: "{package} patch upgrade with limited application impact";
299
+ readonly runtimeHeadline: "{package} upgrade affects {surface}";
300
+ readonly defaultUpgradeHeadline: "{package} dependency upgrade needs review";
301
+ readonly changedPackageKeyPoint: "Changed package: {package}";
302
+ readonly usedInPathsSingle: "Used across application code ({path})";
303
+ readonly usedInPathsMultiple: "Used across {count} code paths";
304
+ readonly noRuntimePathsKeyPoint: "No runtime usage paths detected";
305
+ readonly blastRadiusWideKeyPoint: "Blast radius is wide";
306
+ readonly blastRadiusLevelKeyPoint: "Blast radius is {level}";
307
+ readonly noAffectedAreasKeyPoint: "No affected application areas identified";
308
+ readonly affectedAreasKeyPoint: "Affected areas: {areas}";
309
+ readonly verifyCiTypecheck: "Confirm CI/typecheck passes";
310
+ readonly verifyAuthFlow: "Run authenticated API request flow";
311
+ readonly verifyErrorResponses: "Check error responses and status codes";
312
+ readonly graphDepthContext: "Repository graph max depth: {depth}";
313
+ readonly graphSizeContext: "Repository graph: {nodes} nodes, {edges} edges";
314
+ readonly actionLabelReview: "Review scan";
315
+ };
291
316
  readonly cli: {
292
317
  readonly stderrAnalysisIncomplete: "Analysis could not be completed.";
293
318
  readonly stderrOutputNotVerified: "These results could not be verified.";
@@ -1 +1 @@
1
- {"version":3,"file":"scanSurfaceCopy.d.ts","sourceRoot":"","sources":["../src/scanSurfaceCopy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;QAgBxB,8EAA8E;;QAG9E,6DAA6D;;;;QAO7D,qDAAqD;;;;;QASrD,mEAAmE;;;;QAOnE,yFAAyF;;QAGzF,mFAAmF;;QAGnF,4EAA4E;;QAE5E,8FAA8F;;QAE9F,+DAA+D;;;QAI/D,6EAA6E;;;;;QAK7E,2CAA2C;;;QAK3C,2EAA2E;;QAE3E,4EAA4E;;;QAI5E,sEAAsE;;;IAGxE,2EAA2E;;;;;;;;;;;;;;QAiBzE,oEAAoE;;;IAGtE,wEAAwE;;;;;;QAOtE,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkCzC,yDAAyD;;YAGzD,mDAAmD;;YAGnD,8BAA8B;;YAE9B,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4CtD,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsI/C,uFAAuF;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BvF,sEAAsE;;;;;CAO9D,CAAC;AAEX,iEAAiE;AACjE,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5D"}
1
+ {"version":3,"file":"scanSurfaceCopy.d.ts","sourceRoot":"","sources":["../src/scanSurfaceCopy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;QAgBxB,8EAA8E;;QAG9E,6DAA6D;;;;QAO7D,qDAAqD;;;;;QASrD,mEAAmE;;;;QAOnE,yFAAyF;;QAGzF,mFAAmF;;QAGnF,4EAA4E;;QAE5E,8FAA8F;;QAE9F,+DAA+D;;;QAI/D,6EAA6E;;;;;QAK7E,2CAA2C;;;QAK3C,2EAA2E;;QAE3E,4EAA4E;;;QAI5E,sEAAsE;;;IAGxE,2EAA2E;;;;;;;;;;;;;;QAiBzE,oEAAoE;;;IAGtE,wEAAwE;;;;;;QAOtE,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkCzC,yDAAyD;;YAGzD,mDAAmD;;YAGnD,8BAA8B;;YAE9B,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4CtD,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsI/C,uFAAuF;;;;;;;;;;;;;;;;;;;;;;;;IAwBvF,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BlF,sEAAsE;;;;;CAO9D,CAAC;AAEX,iEAAiE;AACjE,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5D"}
@@ -291,6 +291,31 @@ export const scanSurfaceCopy = {
291
291
  areasSeparator: " | ",
292
292
  contextSeparator: " | ",
293
293
  },
294
+ /** Shared presentation layer copy (composeHeadline, key points, verification). */
295
+ presentation: {
296
+ limitedContextHeadline: "Dependency upgrade with limited scan context",
297
+ limitedContextMessage: "PR-specific scan context was limited",
298
+ limitedContextKeyPoint: "PR-specific intelligence was limited for this scan",
299
+ noChangedPackagesHeadline: "Dependency scan complete",
300
+ multiRuntimeHeadline: "Multiple runtime dependency upgrades need review",
301
+ buildOnlyHeadline: "{package} patch upgrade with limited application impact",
302
+ runtimeHeadline: "{package} upgrade affects {surface}",
303
+ defaultUpgradeHeadline: "{package} dependency upgrade needs review",
304
+ changedPackageKeyPoint: "Changed package: {package}",
305
+ usedInPathsSingle: "Used across application code ({path})",
306
+ usedInPathsMultiple: "Used across {count} code paths",
307
+ noRuntimePathsKeyPoint: "No runtime usage paths detected",
308
+ blastRadiusWideKeyPoint: "Blast radius is wide",
309
+ blastRadiusLevelKeyPoint: "Blast radius is {level}",
310
+ noAffectedAreasKeyPoint: "No affected application areas identified",
311
+ affectedAreasKeyPoint: "Affected areas: {areas}",
312
+ verifyCiTypecheck: "Confirm CI/typecheck passes",
313
+ verifyAuthFlow: "Run authenticated API request flow",
314
+ verifyErrorResponses: "Check error responses and status codes",
315
+ graphDepthContext: "Repository graph max depth: {depth}",
316
+ graphSizeContext: "Repository graph: {nodes} nodes, {edges} edges",
317
+ actionLabelReview: "Review scan",
318
+ },
294
319
  cli: {
295
320
  stderrAnalysisIncomplete: "Analysis could not be completed.",
296
321
  stderrOutputNotVerified: "These results could not be verified.",
package/dist/types.d.ts CHANGED
@@ -52,16 +52,25 @@ export type CodeAnalysisInput = {
52
52
  fileContents: Map<string, string>;
53
53
  changedPackages: string[];
54
54
  };
55
- export type AnalysisContextWarningCode = "lockfile_diff_skipped" | "lockfile_diff_failed" | "lockfile_diff_empty" | "base_lockfile_missing" | "code_fetch_skipped" | "code_fetch_failed" | "code_fetch_auth_failure" | "code_fetch_timeout" | "code_fetch_rate_limit" | "code_corpus_empty";
55
+ export type AnalysisContextWarningCode = "lockfile_diff_skipped" | "lockfile_diff_failed" | "lockfile_diff_empty" | "base_lockfile_missing" | "code_fetch_skipped" | "code_fetch_failed" | "code_fetch_auth_failure" | "code_fetch_timeout" | "code_fetch_rate_limit" | "code_corpus_empty" | "repo_intelligence_contract_invalid";
56
56
  export type AnalysisContextWarning = {
57
57
  code: AnalysisContextWarningCode;
58
58
  message: string;
59
59
  details?: Record<string, unknown>;
60
60
  };
61
+ export type RepoIntelligenceValidationStatus = "valid" | "invalid" | "absent";
62
+ export type RepoIntelligenceValidation = {
63
+ status: RepoIntelligenceValidationStatus;
64
+ abi: string;
65
+ issueCount?: number;
66
+ representativeIssues?: string[];
67
+ validatedAt: string;
68
+ };
61
69
  /** Worker-authored diagnostics merged onto persisted ScanResult when corpus unavailable. */
62
70
  export type AnalysisPreparation = {
63
71
  codeIntelligenceAvailable: boolean;
64
72
  warnings: AnalysisContextWarning[];
73
+ repoIntelligenceValidation?: RepoIntelligenceValidation;
65
74
  };
66
75
  /** Subset of PR identity passed into analysis (no installation tokens). */
67
76
  export type ScanRequestGithubContext = {
@@ -264,8 +273,11 @@ export type ScanResult = {
264
273
  reportPresentation?: ReportPresentation;
265
274
  /** Echo of `ScanRequest.changedPackages` when non-empty (e.g. lockfile diff); for Check Run / UI copy. */
266
275
  changedPackages?: string[];
267
- /** Optional repository intelligence block when code corpus was analyzed. */
268
- repoIntelligence?: import("./repoIntelligenceSchema.js").RepoIntelligence & Record<string, unknown>;
276
+ /**
277
+ * Raw engine-emitted repository intelligence (valid or invalid wire).
278
+ * Consumers must use `analysisPreparation.repoIntelligenceValidation` + {@link safeParseRepoIntelligence}.
279
+ */
280
+ repoIntelligence?: unknown;
269
281
  /** Worker merge: preparation diagnostics (code corpus availability). */
270
282
  analysisPreparation?: AnalysisPreparation;
271
283
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mergesignal/shared",
3
- "version": "0.2.8",
3
+ "version": "0.4.0",
4
4
  "description": "MergeSignal shared scan contract, presentation policy, and trusted validation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,16 +0,0 @@
1
- import { type ScanCardSummary, type ScanPipelineStatus } from "./scanCardSummary.js";
2
- import type { ScanNarrativeFacts } from "./scanNarrativeFacts.js";
3
- import { type CardExposureDisplay } from "./formatCardExposureDisplay.js";
4
- import { type MergePosture } from "./riskVocabulary.js";
5
- import type { ScanResult } from "./types.js";
6
- export type PresentScanCardSummaryOptions = {
7
- pipelineStatus?: ScanPipelineStatus;
8
- findings?: ScanResult["findings"];
9
- };
10
- /**
11
- * Dashboard card presentation DTO from consumer-agnostic facts.
12
- */
13
- export declare function presentScanCardSummary(facts: ScanNarrativeFacts, options?: PresentScanCardSummaryOptions): ScanCardSummary;
14
- export type { CardExposureDisplay, MergePosture };
15
- export declare function exposureFromFacts(facts: ScanNarrativeFacts): CardExposureDisplay | null;
16
- //# sourceMappingURL=presentScanCardSummary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presentScanCardSummary.d.ts","sourceRoot":"","sources":["../src/presentScanCardSummary.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AAkBxC,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CACnC,CAAC;AA2HF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,6BAAkC,GAC1C,eAAe,CA8HjB;AAED,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;AAElD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,GAAG,IAAI,CAE5B"}