@mergesignal/shared 0.4.1 → 0.4.2
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/dist/deriveScanNarrative.d.ts.map +1 -1
- package/dist/deriveScanNarrative.js +41 -8
- package/dist/deriveScanNarrative.test.js +4 -0
- package/dist/fixtures/repoIntelligenceFixtures.d.ts.map +1 -1
- package/dist/fixtures/repoIntelligenceFixtures.js +8 -1
- package/dist/presentation/compose/narrativeCompose.d.ts.map +1 -1
- package/dist/presentation/compose/narrativeCompose.js +15 -101
- package/dist/presentation/dto/scanCardPresentation.d.ts +2 -0
- package/dist/presentation/dto/scanCardPresentation.d.ts.map +1 -1
- package/dist/presentation/dto/scanDetailsPresentation.d.ts +2 -0
- package/dist/presentation/dto/scanDetailsPresentation.d.ts.map +1 -1
- package/dist/presentation/fixtures/presentationPersonaFixtures.d.ts +11 -0
- package/dist/presentation/fixtures/presentationPersonaFixtures.d.ts.map +1 -0
- package/dist/presentation/fixtures/presentationPersonaFixtures.js +197 -0
- package/dist/presentation/index.d.ts +2 -0
- package/dist/presentation/index.d.ts.map +1 -1
- package/dist/presentation/index.js +1 -0
- package/dist/presentation/intent/applyPostureVocabularyGuard.d.ts +5 -0
- package/dist/presentation/intent/applyPostureVocabularyGuard.d.ts.map +1 -0
- package/dist/presentation/intent/applyPostureVocabularyGuard.js +44 -0
- package/dist/presentation/intent/derivePresentationInterpretation.d.ts +4 -0
- package/dist/presentation/intent/derivePresentationInterpretation.d.ts.map +1 -0
- package/dist/presentation/intent/derivePresentationInterpretation.js +202 -0
- package/dist/presentation/intent/formatPresentationCopy.d.ts +7 -0
- package/dist/presentation/intent/formatPresentationCopy.d.ts.map +1 -0
- package/dist/presentation/intent/formatPresentationCopy.js +153 -0
- package/dist/presentation/intent/packageDisplayName.d.ts +4 -0
- package/dist/presentation/intent/packageDisplayName.d.ts.map +1 -0
- package/dist/presentation/intent/packageDisplayName.js +17 -0
- package/dist/presentation/intent/postureVocabularyGuard.test.d.ts +2 -0
- package/dist/presentation/intent/postureVocabularyGuard.test.d.ts.map +1 -0
- package/dist/presentation/intent/postureVocabularyGuard.test.js +23 -0
- package/dist/presentation/intent/presentationIntent.d.ts +14 -0
- package/dist/presentation/intent/presentationIntent.d.ts.map +1 -0
- package/dist/presentation/intent/presentationIntent.js +1 -0
- package/dist/presentation/intent/presentationIntent.test.d.ts +2 -0
- package/dist/presentation/intent/presentationIntent.test.d.ts.map +1 -0
- package/dist/presentation/intent/presentationIntent.test.js +29 -0
- package/dist/presentation/intent/verificationFocusLabels.d.ts +2 -0
- package/dist/presentation/intent/verificationFocusLabels.d.ts.map +1 -0
- package/dist/presentation/intent/verificationFocusLabels.js +45 -0
- package/dist/presentation/presentation.test.js +3 -0
- package/dist/presentation/presentationPersonas.test.d.ts +2 -0
- package/dist/presentation/presentationPersonas.test.d.ts.map +1 -0
- package/dist/presentation/presentationPersonas.test.js +166 -0
- package/dist/presentation/presenters/presentScanCard.d.ts.map +1 -1
- package/dist/presentation/presenters/presentScanCard.js +1 -0
- package/dist/presentation/presenters/presentScanDetails.d.ts.map +1 -1
- package/dist/presentation/presenters/presentScanDetails.js +7 -1
- package/dist/presentation/profile/derivePresentationProfile.d.ts.map +1 -1
- package/dist/presentation/profile/derivePresentationProfile.js +18 -27
- package/dist/presentation/profile/presentationProfile.d.ts +2 -0
- package/dist/presentation/profile/presentationProfile.d.ts.map +1 -1
- package/dist/repoIntelligenceSchema.d.ts +1 -1
- package/dist/scanNarrativeFacts.d.ts +31 -7
- package/dist/scanNarrativeFacts.d.ts.map +1 -1
- package/dist/scanNarrativeFacts.js +1 -0
- package/dist/scanSurfaceCopy.d.ts +8 -0
- package/dist/scanSurfaceCopy.d.ts.map +1 -1
- package/dist/scanSurfaceCopy.js +8 -0
- package/package.json +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { buildScanPresentationBundle } from "./orchestration/buildScanPresentationBundle.js";
|
|
3
|
+
import { presentScanCard } from "./presenters/presentScanCard.js";
|
|
4
|
+
import { presentScanDetails } from "./presenters/presentScanDetails.js";
|
|
5
|
+
import { presentCliScanSummary } from "./presenters/presentCliScanSummary.js";
|
|
6
|
+
import { scanResultBullmq, scanResultEslint, scanResultFastifyRuntime, scanResultLimitedContext, scanResultMixedTypescriptFastify, scanResultNextAuth, scanResultPrettier, scanResultTypescriptPatch, scanResultUnknownSafe, scanResultVitest, } from "./fixtures/presentationPersonaFixtures.js";
|
|
7
|
+
const SCAN_ID = "22222222-2222-4222-8222-222222222222";
|
|
8
|
+
const SAFE_FORBIDDEN = /needs review|high risk|critical concern/i;
|
|
9
|
+
const REVIEW_FORBIDDEN = /no action required|no verification required/i;
|
|
10
|
+
const personas = [
|
|
11
|
+
{
|
|
12
|
+
name: "typescript patch",
|
|
13
|
+
result: scanResultTypescriptPatch,
|
|
14
|
+
intent: "tooling_patch",
|
|
15
|
+
status: "safe",
|
|
16
|
+
density: "minimal",
|
|
17
|
+
headlineMatch: /patch upgrade/i,
|
|
18
|
+
headlineMustNot: /needs review/i,
|
|
19
|
+
verificationIncludes: ["CI", "typecheck"],
|
|
20
|
+
verificationMustNot: /auth flow/i,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: "eslint",
|
|
24
|
+
result: scanResultEslint,
|
|
25
|
+
intent: "tooling_upgrade",
|
|
26
|
+
status: "safe",
|
|
27
|
+
density: "minimal",
|
|
28
|
+
headlineMatch: /tooling upgrade/i,
|
|
29
|
+
headlineMustNot: /needs review/i,
|
|
30
|
+
verificationIncludes: ["CI", "lint"],
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "prettier",
|
|
34
|
+
result: scanResultPrettier,
|
|
35
|
+
intent: "tooling_upgrade",
|
|
36
|
+
status: "safe",
|
|
37
|
+
density: "minimal",
|
|
38
|
+
headlineMatch: /tooling upgrade/i,
|
|
39
|
+
headlineMustNot: /needs review/i,
|
|
40
|
+
verificationIncludes: ["format"],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "vitest",
|
|
44
|
+
result: scanResultVitest,
|
|
45
|
+
intent: "tooling_upgrade",
|
|
46
|
+
status: "safe",
|
|
47
|
+
density: "minimal",
|
|
48
|
+
headlineMatch: /tooling upgrade/i,
|
|
49
|
+
headlineMustNot: /needs review/i,
|
|
50
|
+
verificationIncludes: ["test suite"],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "fastify runtime",
|
|
54
|
+
result: scanResultFastifyRuntime,
|
|
55
|
+
intent: "runtime_upgrade",
|
|
56
|
+
status: "needs_review",
|
|
57
|
+
density: "rich",
|
|
58
|
+
headlineMatch: /runtime upgrade affects/i,
|
|
59
|
+
verificationIncludes: ["routes", "middleware"],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "nextauth runtime",
|
|
63
|
+
result: scanResultNextAuth,
|
|
64
|
+
intent: "auth_runtime_upgrade",
|
|
65
|
+
status: "needs_review",
|
|
66
|
+
density: "rich",
|
|
67
|
+
headlineMatch: /runtime upgrade affects/i,
|
|
68
|
+
verificationIncludes: ["auth flow"],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "bullmq runtime",
|
|
72
|
+
result: scanResultBullmq,
|
|
73
|
+
intent: "queue_runtime_upgrade",
|
|
74
|
+
status: "needs_review",
|
|
75
|
+
density: "rich",
|
|
76
|
+
headlineMatch: /runtime upgrade affects/i,
|
|
77
|
+
verificationIncludes: ["workers", "queue"],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "limited context",
|
|
81
|
+
result: scanResultLimitedContext,
|
|
82
|
+
intent: "limited_context",
|
|
83
|
+
status: "needs_review",
|
|
84
|
+
density: "minimal",
|
|
85
|
+
headlineMatch: /limited scan context/i,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "unknown safe",
|
|
89
|
+
result: scanResultUnknownSafe,
|
|
90
|
+
intent: "unknown_upgrade",
|
|
91
|
+
status: "safe",
|
|
92
|
+
density: "standard",
|
|
93
|
+
headlineMatch: /dependency upgrade/i,
|
|
94
|
+
headlineMustNot: /needs review/i,
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
function cardFor(result) {
|
|
98
|
+
const bundle = buildScanPresentationBundle({
|
|
99
|
+
result,
|
|
100
|
+
pipelineStatus: "done",
|
|
101
|
+
});
|
|
102
|
+
return presentScanCard(bundle);
|
|
103
|
+
}
|
|
104
|
+
describe("presentation personas", () => {
|
|
105
|
+
for (const persona of personas) {
|
|
106
|
+
it(`${persona.name}: intent, posture alignment, headline`, () => {
|
|
107
|
+
const card = cardFor(persona.result);
|
|
108
|
+
expect(card.presentationIntent).toBe(persona.intent);
|
|
109
|
+
expect(card.status).toBe(persona.status);
|
|
110
|
+
expect(card.density).toBe(persona.density);
|
|
111
|
+
expect(card.headline).toMatch(persona.headlineMatch);
|
|
112
|
+
if (persona.headlineMustNot) {
|
|
113
|
+
expect(card.headline).not.toMatch(persona.headlineMustNot);
|
|
114
|
+
}
|
|
115
|
+
if (persona.status === "safe") {
|
|
116
|
+
const combined = [
|
|
117
|
+
card.headline,
|
|
118
|
+
...card.keyPoints,
|
|
119
|
+
...card.verificationActions,
|
|
120
|
+
].join(" ");
|
|
121
|
+
expect(combined).not.toMatch(SAFE_FORBIDDEN);
|
|
122
|
+
}
|
|
123
|
+
if (persona.status === "needs_review") {
|
|
124
|
+
const combined = card.verificationActions.join(" ");
|
|
125
|
+
expect(combined).not.toMatch(REVIEW_FORBIDDEN);
|
|
126
|
+
}
|
|
127
|
+
if (persona.verificationIncludes) {
|
|
128
|
+
for (const v of persona.verificationIncludes) {
|
|
129
|
+
expect(card.verificationActions.some((a) => a.toLowerCase().includes(v.toLowerCase()))).toBe(true);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (persona.verificationMustNot) {
|
|
133
|
+
expect(card.verificationActions.join(" ")).not.toMatch(persona.verificationMustNot);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
it("mixed typescript+fastify: runtime intent, fastify in headline", () => {
|
|
138
|
+
const card = cardFor(scanResultMixedTypescriptFastify);
|
|
139
|
+
expect(card.presentationIntent).toBe("runtime_upgrade");
|
|
140
|
+
expect(card.headline.toLowerCase()).toContain("fastify");
|
|
141
|
+
expect(card.headline).not.toMatch(/patch upgrade/i);
|
|
142
|
+
});
|
|
143
|
+
it("cross-surface parity: fastify headline matches card, details, CLI", () => {
|
|
144
|
+
const bundle = buildScanPresentationBundle({
|
|
145
|
+
result: scanResultFastifyRuntime,
|
|
146
|
+
pipelineStatus: "done",
|
|
147
|
+
});
|
|
148
|
+
const card = presentScanCard(bundle);
|
|
149
|
+
const details = presentScanDetails(bundle, { scanId: SCAN_ID });
|
|
150
|
+
const cli = presentCliScanSummary(bundle, { repoLabel: "acme/api" });
|
|
151
|
+
expect(details.hero.headline).toBe(card.headline);
|
|
152
|
+
expect(cli.headline).toBe(card.headline);
|
|
153
|
+
});
|
|
154
|
+
it("cross-surface parity: typescript headline matches card, details, CLI", () => {
|
|
155
|
+
const bundle = buildScanPresentationBundle({
|
|
156
|
+
result: scanResultTypescriptPatch,
|
|
157
|
+
pipelineStatus: "done",
|
|
158
|
+
});
|
|
159
|
+
const card = presentScanCard(bundle);
|
|
160
|
+
const details = presentScanDetails(bundle, { scanId: SCAN_ID });
|
|
161
|
+
const cli = presentCliScanSummary(bundle, { repoLabel: "acme/api" });
|
|
162
|
+
expect(details.hero.headline).toBe(card.headline);
|
|
163
|
+
expect(cli.headline).toBe(card.headline);
|
|
164
|
+
expect(card.headline).not.toMatch(/needs review/i);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentScanCard.d.ts","sourceRoot":"","sources":["../../../src/presentation/presenters/presentScanCard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAgB3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEzF,MAAM,MAAM,sBAAsB,GAAG;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAsBF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,sBAAsB,EAC9B,GAAG,GAAE,sBAA2B,GAC/B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"presentScanCard.d.ts","sourceRoot":"","sources":["../../../src/presentation/presenters/presentScanCard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAgB3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEzF,MAAM,MAAM,sBAAsB,GAAG;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAsBF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,sBAAsB,EAC9B,GAAG,GAAE,sBAA2B,GAC/B,oBAAoB,CA0BtB"}
|
|
@@ -38,6 +38,7 @@ export function presentScanCard(bundle, ctx = {}) {
|
|
|
38
38
|
? aggregateFindingCounts(result.findings)
|
|
39
39
|
: null,
|
|
40
40
|
actionLabel: scanSurfaceCopy.presentation.actionLabelReview,
|
|
41
|
+
presentationIntent: profile.interpretation.intent,
|
|
41
42
|
};
|
|
42
43
|
return normalizeCard(presentation);
|
|
43
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentScanDetails.d.ts","sourceRoot":"","sources":["../../../src/presentation/presenters/presentScanDetails.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEzF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAoHF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,yBAAyB,GAC7B,uBAAuB,
|
|
1
|
+
{"version":3,"file":"presentScanDetails.d.ts","sourceRoot":"","sources":["../../../src/presentation/presenters/presentScanDetails.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEzF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAoHF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,yBAAyB,GAC7B,uBAAuB,CAyFzB"}
|
|
@@ -123,15 +123,21 @@ export function presentScanDetails(bundle, ctx) {
|
|
|
123
123
|
: undefined;
|
|
124
124
|
const posture = profile.status;
|
|
125
125
|
const postureLabel = MERGE_POSTURE_LABEL[posture];
|
|
126
|
+
const toolingIntent = profile.interpretation.intent === "tooling_patch" ||
|
|
127
|
+
profile.interpretation.intent === "tooling_upgrade";
|
|
128
|
+
const verdictLine = profile.priority === "pr_intelligence" && toolingIntent && keyPoints[0]
|
|
129
|
+
? keyPoints[0]
|
|
130
|
+
: deriveVerdictLineFromFacts(facts, result);
|
|
126
131
|
return {
|
|
127
132
|
evidenceContext: evidenceContextFromProfile(bundle),
|
|
128
133
|
status: profile.status,
|
|
129
134
|
density: profile.density,
|
|
130
135
|
confidence: profile.confidence,
|
|
136
|
+
presentationIntent: profile.interpretation.intent,
|
|
131
137
|
hero: {
|
|
132
138
|
headline: normalizeGeneratedText(headline),
|
|
133
139
|
subheadline: normalizeGeneratedTextNullable(subheadline) ?? undefined,
|
|
134
|
-
verdictLine:
|
|
140
|
+
verdictLine: normalizeGeneratedText(verdictLine),
|
|
135
141
|
scopeChip: deriveDetailReachChip(result.totalScore) ?? undefined,
|
|
136
142
|
postureLabel,
|
|
137
143
|
riskIndex: facts.riskIndex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivePresentationProfile.d.ts","sourceRoot":"","sources":["../../../src/presentation/profile/derivePresentationProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"derivePresentationProfile.d.ts","sourceRoot":"","sources":["../../../src/presentation/profile/derivePresentationProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKtE,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,KAAK,gCAAgC,GAAG;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAwFF,8DAA8D;AAC9D,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,gCAAgC,GACpC,mBAAmB,GAAG,IAAI,CAwB5B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mergePostureFromDecision } from "../../riskVocabulary.js";
|
|
2
2
|
import { scanSurfaceCopy } from "../../scanSurfaceCopy.js";
|
|
3
|
+
import { derivePresentationInterpretation } from "../intent/derivePresentationInterpretation.js";
|
|
3
4
|
function statusFromScore(totalScore) {
|
|
4
5
|
if (totalScore == null || !Number.isFinite(totalScore))
|
|
5
6
|
return "needs_review";
|
|
@@ -26,36 +27,24 @@ function hasHighSeverityFindings(facts) {
|
|
|
26
27
|
return facts.reviewerGuidance.some((g) => g.kind === "finding" &&
|
|
27
28
|
(g.priority === "critical" || g.priority === "high"));
|
|
28
29
|
}
|
|
29
|
-
function
|
|
30
|
-
if (facts.runtimeSurface?.kind === "runtime")
|
|
31
|
-
return true;
|
|
32
|
-
return facts.packageUsage.some((u) => u.paths.length > 0 || u.criticalPaths.length > 0);
|
|
33
|
-
}
|
|
34
|
-
function deriveDensity(facts, priority) {
|
|
30
|
+
function deriveDensity(facts, priority, interpretation) {
|
|
35
31
|
if (priority === "limited") {
|
|
36
32
|
return hasHighSeverityFindings(facts) ? "standard" : "minimal";
|
|
37
33
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
facts.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return "rich";
|
|
34
|
+
if (interpretation.allowRuntimeNarrative) {
|
|
35
|
+
const wideOrModerate = facts.blastRadius?.level === "wide" ||
|
|
36
|
+
facts.blastRadius?.level === "moderate";
|
|
37
|
+
const hasAreas = facts.affectedAreas.length > 0;
|
|
38
|
+
const hasPaths = facts.packageUsage.some((u) => u.paths.length > 0 || u.criticalPaths.length > 0);
|
|
39
|
+
if (wideOrModerate || hasAreas || hasPaths) {
|
|
40
|
+
return "rich";
|
|
41
|
+
}
|
|
47
42
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
toolingImpact ||
|
|
54
|
-
facts.runtimeSurface?.kind === "build" ||
|
|
55
|
-
facts.reachability?.kind === "build_only";
|
|
56
|
-
const narrowBlast = !facts.blastRadius || facts.blastRadius.level === "narrow";
|
|
57
|
-
if (buildOnly && narrowBlast && !hasAreas) {
|
|
58
|
-
return "minimal";
|
|
43
|
+
if (interpretation.suppressRuntimeNarrative) {
|
|
44
|
+
const narrow = !facts.blastRadius || facts.blastRadius.level === "narrow";
|
|
45
|
+
if (narrow && facts.affectedAreas.length === 0) {
|
|
46
|
+
return "minimal";
|
|
47
|
+
}
|
|
59
48
|
}
|
|
60
49
|
return "standard";
|
|
61
50
|
}
|
|
@@ -75,11 +64,12 @@ function deriveConfidence(facts, priority) {
|
|
|
75
64
|
export function derivePresentationProfile(facts, ctx) {
|
|
76
65
|
if (ctx.pipelineStatus !== "done")
|
|
77
66
|
return null;
|
|
67
|
+
const interpretation = derivePresentationInterpretation(facts);
|
|
78
68
|
const priority = hasStrongPrIntelligence(facts)
|
|
79
69
|
? "pr_intelligence"
|
|
80
70
|
: "limited";
|
|
81
71
|
const status = resolveStatus(facts, ctx);
|
|
82
|
-
const density = deriveDensity(facts, priority);
|
|
72
|
+
const density = deriveDensity(facts, priority, interpretation);
|
|
83
73
|
const confidence = deriveConfidence(facts, priority);
|
|
84
74
|
const degradedMessage = priority === "limited"
|
|
85
75
|
? scanSurfaceCopy.presentation.limitedContextMessage
|
|
@@ -90,5 +80,6 @@ export function derivePresentationProfile(facts, ctx) {
|
|
|
90
80
|
confidence,
|
|
91
81
|
priority,
|
|
92
82
|
degradedMessage,
|
|
83
|
+
interpretation,
|
|
93
84
|
};
|
|
94
85
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { PresentationConfidence, PresentationDensity, PresentationPriority, PresentationStatus } from "../dto/types.js";
|
|
2
|
+
import type { PresentationInterpretation } from "../intent/presentationIntent.js";
|
|
2
3
|
export type PresentationProfile = {
|
|
3
4
|
status: PresentationStatus;
|
|
4
5
|
density: PresentationDensity;
|
|
5
6
|
confidence: PresentationConfidence;
|
|
6
7
|
priority: PresentationPriority;
|
|
7
8
|
degradedMessage?: string;
|
|
9
|
+
interpretation: PresentationInterpretation;
|
|
8
10
|
};
|
|
9
11
|
//# sourceMappingURL=presentationProfile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentationProfile.d.ts","sourceRoot":"","sources":["../../../src/presentation/profile/presentationProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"presentationProfile.d.ts","sourceRoot":"","sources":["../../../src/presentation/profile/presentationProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,sBAAsB,CAAC;IACnC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,0BAA0B,CAAC;CAC5C,CAAC"}
|
|
@@ -39,9 +39,9 @@ export declare const repoIntelligenceWireSchema: z.ZodObject<{
|
|
|
39
39
|
runtime: "runtime";
|
|
40
40
|
build: "build";
|
|
41
41
|
test: "test";
|
|
42
|
-
format: "format";
|
|
43
42
|
tooling: "tooling";
|
|
44
43
|
lint: "lint";
|
|
44
|
+
format: "format";
|
|
45
45
|
ci: "ci";
|
|
46
46
|
}>>;
|
|
47
47
|
packageRole: z.ZodOptional<z.ZodEnum<{
|
|
@@ -15,6 +15,33 @@ export type NarrativePackageUsage = {
|
|
|
15
15
|
areas: string[];
|
|
16
16
|
};
|
|
17
17
|
export type RepoIntelligenceParseStatus = "ok" | "invalid" | "absent" | "untrusted";
|
|
18
|
+
export type PackageDependencyClass = "runtime" | "tooling" | "test" | "lint" | "format" | "build" | "ci" | "unknown";
|
|
19
|
+
export type PackageRoleKind = "typechecker" | "compiler" | "bundler" | "linter" | "formatter" | "test_runner" | "http_framework" | "auth" | "queue" | "orm" | "unknown";
|
|
20
|
+
export type PackageRuntimeImpact = "none" | "possible" | "confirmed" | "unknown";
|
|
21
|
+
export type PackageExpectedImpact = "runtime" | "build_time" | "typecheck" | "test_time" | "development_only" | "unknown";
|
|
22
|
+
export type PackageEvidenceStrength = "high" | "medium" | "low";
|
|
23
|
+
/** Engine semantic projection for one changed package (wire copy only). */
|
|
24
|
+
export type ChangedPackageSemantics = {
|
|
25
|
+
packageName: string;
|
|
26
|
+
dependencyClass: PackageDependencyClass | null;
|
|
27
|
+
packageRole: PackageRoleKind | null;
|
|
28
|
+
runtimeImpact: PackageRuntimeImpact | null;
|
|
29
|
+
expectedImpact: PackageExpectedImpact | null;
|
|
30
|
+
suppressRuntimeNarrative: boolean;
|
|
31
|
+
evidenceStrength: PackageEvidenceStrength | null;
|
|
32
|
+
verificationFocus: string[];
|
|
33
|
+
usagePathCount: number;
|
|
34
|
+
usageAreaCount: number;
|
|
35
|
+
};
|
|
36
|
+
export type PackageSemanticsSummary = {
|
|
37
|
+
dependencyClass: PackageDependencyClass | null;
|
|
38
|
+
packageRole: PackageRoleKind | null;
|
|
39
|
+
runtimeImpact: PackageRuntimeImpact | null;
|
|
40
|
+
expectedImpact: PackageExpectedImpact | null;
|
|
41
|
+
suppressRuntimeNarrative: boolean;
|
|
42
|
+
evidenceStrength: PackageEvidenceStrength | null;
|
|
43
|
+
verificationFocus: string[];
|
|
44
|
+
};
|
|
18
45
|
export type ScanNarrativeFacts = {
|
|
19
46
|
availability: {
|
|
20
47
|
mode: NarrativeAvailabilityMode;
|
|
@@ -47,13 +74,10 @@ export type ScanNarrativeFacts = {
|
|
|
47
74
|
frameworks: string[];
|
|
48
75
|
};
|
|
49
76
|
} | null;
|
|
50
|
-
/**
|
|
51
|
-
packageSemantics:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
suppressRuntimeNarrative: boolean;
|
|
55
|
-
verificationFocus: string[];
|
|
56
|
-
} | null;
|
|
77
|
+
/** Primary changed package semantics (ABI 2 wire projection). */
|
|
78
|
+
packageSemantics: PackageSemanticsSummary | null;
|
|
79
|
+
/** Per changed package semantics for mixed-PR precedence (wire projection). */
|
|
80
|
+
changedPackageSemantics: ChangedPackageSemantics[];
|
|
57
81
|
blastRadius: {
|
|
58
82
|
level: BlastRadiusLevel;
|
|
59
83
|
changedPackageCount?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanNarrativeFacts.d.ts","sourceRoot":"","sources":["../src/scanNarrativeFacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,yBAAyB,GACjC,iBAAiB,GACjB,UAAU,GACV,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,YAAY,GACZ,WAAW,GACX,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GACnC,IAAI,GACJ,SAAS,GACT,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE;QACZ,IAAI,EAAE,yBAAyB,CAAC;QAChC,yBAAyB,EAAE,OAAO,CAAC;QACnC,YAAY,EAAE;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,CAAC;QACjE,qBAAqB,EAAE,2BAA2B,CAAC;KACpD,CAAC;IAEF,eAAe,EAAE;QACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,GAAG,EAAE,MAAM,EAAE,CAAC;KACf,CAAC;IAEF,YAAY,EAAE,qBAAqB,EAAE,CAAC;IAEtC,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,cAAc,EAAE;QACd,IAAI,EAAE,kBAAkB,CAAC;QACzB,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KACnD,GAAG,IAAI,CAAC;IAET,YAAY,EAAE;QACZ,IAAI,EAAE,gBAAgB,CAAC;QACvB,QAAQ,EAAE;YAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAAC,UAAU,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KACrD,GAAG,IAAI,CAAC;IAET,
|
|
1
|
+
{"version":3,"file":"scanNarrativeFacts.d.ts","sourceRoot":"","sources":["../src/scanNarrativeFacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -297,11 +297,19 @@ export declare const scanSurfaceCopy: {
|
|
|
297
297
|
readonly multiRuntimeHeadline: "Multiple runtime dependency upgrades need review";
|
|
298
298
|
readonly buildOnlyHeadline: "{package} patch upgrade with limited application impact";
|
|
299
299
|
readonly runtimeHeadline: "{package} upgrade affects {surface}";
|
|
300
|
+
readonly toolingPatchHeadline: "{package} patch upgrade";
|
|
301
|
+
readonly toolingUpgradeHeadline: "{package} tooling upgrade";
|
|
302
|
+
readonly runtimeUpgradeHeadline: "{package} runtime upgrade affects {surface}";
|
|
303
|
+
readonly safeNeutralHeadline: "{package} dependency upgrade";
|
|
300
304
|
readonly defaultUpgradeHeadline: "{package} dependency upgrade needs review";
|
|
301
305
|
readonly changedPackageKeyPoint: "Changed package: {package}";
|
|
302
306
|
readonly usedInPathsSingle: "Used across application code ({path})";
|
|
303
307
|
readonly usedInPathsMultiple: "Used across {count} code paths";
|
|
304
308
|
readonly noRuntimePathsKeyPoint: "No runtime usage paths detected";
|
|
309
|
+
readonly expectedImpactLimitedKeyPoint: "Expected impact is limited to {workflows}";
|
|
310
|
+
readonly limitedEvidenceKeyPoint: "Evidence for this upgrade is limited";
|
|
311
|
+
readonly usedInRuntimePathsKeyPoint: "Used in runtime application paths";
|
|
312
|
+
readonly runtimeUsageKeyPoint: "Used in runtime application paths";
|
|
305
313
|
readonly blastRadiusWideKeyPoint: "Blast radius is wide";
|
|
306
314
|
readonly blastRadiusLevelKeyPoint: "Blast radius is {level}";
|
|
307
315
|
readonly noAffectedAreasKeyPoint: "No affected application areas identified";
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;IAwBvF,kFAAkF
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuClF,sEAAsE;;;;;CAO9D,CAAC;AAEX,iEAAiE;AACjE,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5D"}
|
package/dist/scanSurfaceCopy.js
CHANGED
|
@@ -300,11 +300,19 @@ export const scanSurfaceCopy = {
|
|
|
300
300
|
multiRuntimeHeadline: "Multiple runtime dependency upgrades need review",
|
|
301
301
|
buildOnlyHeadline: "{package} patch upgrade with limited application impact",
|
|
302
302
|
runtimeHeadline: "{package} upgrade affects {surface}",
|
|
303
|
+
toolingPatchHeadline: "{package} patch upgrade",
|
|
304
|
+
toolingUpgradeHeadline: "{package} tooling upgrade",
|
|
305
|
+
runtimeUpgradeHeadline: "{package} runtime upgrade affects {surface}",
|
|
306
|
+
safeNeutralHeadline: "{package} dependency upgrade",
|
|
303
307
|
defaultUpgradeHeadline: "{package} dependency upgrade needs review",
|
|
304
308
|
changedPackageKeyPoint: "Changed package: {package}",
|
|
305
309
|
usedInPathsSingle: "Used across application code ({path})",
|
|
306
310
|
usedInPathsMultiple: "Used across {count} code paths",
|
|
307
311
|
noRuntimePathsKeyPoint: "No runtime usage paths detected",
|
|
312
|
+
expectedImpactLimitedKeyPoint: "Expected impact is limited to {workflows}",
|
|
313
|
+
limitedEvidenceKeyPoint: "Evidence for this upgrade is limited",
|
|
314
|
+
usedInRuntimePathsKeyPoint: "Used in runtime application paths",
|
|
315
|
+
runtimeUsageKeyPoint: "Used in runtime application paths",
|
|
308
316
|
blastRadiusWideKeyPoint: "Blast radius is wide",
|
|
309
317
|
blastRadiusLevelKeyPoint: "Blast radius is {level}",
|
|
310
318
|
noAffectedAreasKeyPoint: "No affected application areas identified",
|