@mergesignal/shared 0.12.2 → 0.13.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 (172) hide show
  1. package/dist/assessment/authoredCommunication.d.ts +30 -0
  2. package/dist/assessment/authoredCommunication.d.ts.map +1 -0
  3. package/dist/assessment/authoredCommunication.js +18 -0
  4. package/dist/assessment/index.d.ts +6 -0
  5. package/dist/assessment/index.d.ts.map +1 -0
  6. package/dist/assessment/index.js +5 -0
  7. package/dist/assessment/literals.d.ts +44 -0
  8. package/dist/assessment/literals.d.ts.map +1 -0
  9. package/dist/assessment/literals.js +140 -0
  10. package/dist/assessment/schema.d.ts +311 -0
  11. package/dist/assessment/schema.d.ts.map +1 -0
  12. package/dist/assessment/schema.js +162 -0
  13. package/dist/assessment/types.d.ts +197 -0
  14. package/dist/assessment/types.d.ts.map +1 -0
  15. package/dist/assessment/types.js +1 -0
  16. package/dist/assessment/version.d.ts +11 -0
  17. package/dist/assessment/version.d.ts.map +1 -0
  18. package/dist/assessment/version.js +9 -0
  19. package/dist/assessmentLabels.d.ts +1 -1
  20. package/dist/assessmentLabels.d.ts.map +1 -1
  21. package/dist/assessmentPresentationUtils.d.ts +1 -1
  22. package/dist/assessmentPresentationUtils.d.ts.map +1 -1
  23. package/dist/assessmentProjection.d.ts +1 -1
  24. package/dist/assessmentProjection.d.ts.map +1 -1
  25. package/dist/deriveScanNarrative.d.ts.map +1 -1
  26. package/dist/deriveScanNarrative.js +2 -1
  27. package/dist/fixtures/assessmentFixtures.d.ts +1 -1
  28. package/dist/fixtures/assessmentScopeFixtures.d.ts +1 -1
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -0
  32. package/dist/lockfileEvidence.d.ts +22 -0
  33. package/dist/lockfileEvidence.d.ts.map +1 -0
  34. package/dist/lockfileEvidence.js +32 -0
  35. package/dist/presentation/dto/assessmentPresentationFields.d.ts +1 -1
  36. package/dist/presentation/dto/assessmentPresentationFields.d.ts.map +1 -1
  37. package/dist/presentation/orchestration/buildScanPresentationBundle.d.ts.map +1 -1
  38. package/dist/presentation/orchestration/buildScanPresentationBundle.js +2 -1
  39. package/dist/presentation/orchestration/scanPresentationBundle.d.ts +2 -1
  40. package/dist/presentation/orchestration/scanPresentationBundle.d.ts.map +1 -1
  41. package/dist/presentation/profile/buildProfileFromAssessment.d.ts +1 -1
  42. package/dist/presentation/profile/buildProfileFromAssessment.d.ts.map +1 -1
  43. package/dist/presentation/profile/buildProfileFromAssessment.js +13 -5
  44. package/dist/repoIntelligenceSchema.d.ts +5 -5
  45. package/dist/scanResultSchema.d.ts +6 -6
  46. package/dist/scanResultSchema.js +1 -1
  47. package/dist/types.d.ts +6 -2
  48. package/dist/types.d.ts.map +1 -1
  49. package/package.json +1 -2
  50. package/dist/actionsStepSummary.test.d.ts +0 -2
  51. package/dist/actionsStepSummary.test.d.ts.map +0 -1
  52. package/dist/actionsStepSummary.test.js +0 -53
  53. package/dist/assessmentProjection.verificationChannel.test.d.ts +0 -2
  54. package/dist/assessmentProjection.verificationChannel.test.d.ts.map +0 -1
  55. package/dist/assessmentProjection.verificationChannel.test.js +0 -110
  56. package/dist/deriveScanNarrative.test.d.ts +0 -2
  57. package/dist/deriveScanNarrative.test.d.ts.map +0 -1
  58. package/dist/deriveScanNarrative.test.js +0 -274
  59. package/dist/engineWireRegression.test.d.ts +0 -2
  60. package/dist/engineWireRegression.test.d.ts.map +0 -1
  61. package/dist/engineWireRegression.test.js +0 -77
  62. package/dist/fixtures/engineAbi4Fixtures.d.ts +0 -16
  63. package/dist/fixtures/engineAbi4Fixtures.d.ts.map +0 -1
  64. package/dist/fixtures/engineAbi4Fixtures.js +0 -26
  65. package/dist/fixtures/legacyEngineRepoIntelligence.d.ts +0 -28
  66. package/dist/fixtures/legacyEngineRepoIntelligence.d.ts.map +0 -1
  67. package/dist/fixtures/legacyEngineRepoIntelligence.js +0 -28
  68. package/dist/fixtures/repoIntelligenceFixtures.d.ts +0 -8
  69. package/dist/fixtures/repoIntelligenceFixtures.d.ts.map +0 -1
  70. package/dist/fixtures/repoIntelligenceFixtures.js +0 -123
  71. package/dist/fixtures/repoIntelligenceTestHelpers.d.ts +0 -5
  72. package/dist/fixtures/repoIntelligenceTestHelpers.d.ts.map +0 -1
  73. package/dist/fixtures/repoIntelligenceTestHelpers.js +0 -28
  74. package/dist/formatInsight.test.d.ts +0 -2
  75. package/dist/formatInsight.test.d.ts.map +0 -1
  76. package/dist/formatInsight.test.js +0 -102
  77. package/dist/narrativeParity.test.d.ts +0 -2
  78. package/dist/narrativeParity.test.d.ts.map +0 -1
  79. package/dist/narrativeParity.test.js +0 -35
  80. package/dist/narrativePresentation.test.d.ts +0 -2
  81. package/dist/narrativePresentation.test.d.ts.map +0 -1
  82. package/dist/narrativePresentation.test.js +0 -54
  83. package/dist/normalizeGeneratedText.test.d.ts +0 -2
  84. package/dist/normalizeGeneratedText.test.d.ts.map +0 -1
  85. package/dist/normalizeGeneratedText.test.js +0 -18
  86. package/dist/prRiskBand.test.d.ts +0 -2
  87. package/dist/prRiskBand.test.d.ts.map +0 -1
  88. package/dist/prRiskBand.test.js +0 -68
  89. package/dist/prRiskWire.test.d.ts +0 -2
  90. package/dist/prRiskWire.test.d.ts.map +0 -1
  91. package/dist/prRiskWire.test.js +0 -106
  92. package/dist/prRiskWiringRegression.test.d.ts +0 -2
  93. package/dist/prRiskWiringRegression.test.d.ts.map +0 -1
  94. package/dist/prRiskWiringRegression.test.js +0 -102
  95. package/dist/presentation/abi3Expression.test.d.ts +0 -13
  96. package/dist/presentation/abi3Expression.test.d.ts.map +0 -1
  97. package/dist/presentation/abi3Expression.test.js +0 -392
  98. package/dist/presentation/buildGitHubCheckRunOutput.test.d.ts +0 -2
  99. package/dist/presentation/buildGitHubCheckRunOutput.test.d.ts.map +0 -1
  100. package/dist/presentation/buildGitHubCheckRunOutput.test.js +0 -163
  101. package/dist/presentation/bundleAccessorParity.test.d.ts +0 -9
  102. package/dist/presentation/bundleAccessorParity.test.d.ts.map +0 -1
  103. package/dist/presentation/bundleAccessorParity.test.js +0 -126
  104. package/dist/presentation/cliParity.test.d.ts +0 -2
  105. package/dist/presentation/cliParity.test.d.ts.map +0 -1
  106. package/dist/presentation/cliParity.test.js +0 -49
  107. package/dist/presentation/compose/narrativeChannels.test.d.ts +0 -2
  108. package/dist/presentation/compose/narrativeChannels.test.d.ts.map +0 -1
  109. package/dist/presentation/compose/narrativeChannels.test.js +0 -42
  110. package/dist/presentation/decisionSurface.test.d.ts +0 -2
  111. package/dist/presentation/decisionSurface.test.d.ts.map +0 -1
  112. package/dist/presentation/decisionSurface.test.js +0 -290
  113. package/dist/presentation/fixtures/dashboardCardGolden.test.d.ts +0 -2
  114. package/dist/presentation/fixtures/dashboardCardGolden.test.d.ts.map +0 -1
  115. package/dist/presentation/fixtures/dashboardCardGolden.test.js +0 -38
  116. package/dist/presentation/fixtures/presentationPersonaFixtures.d.ts +0 -11
  117. package/dist/presentation/fixtures/presentationPersonaFixtures.d.ts.map +0 -1
  118. package/dist/presentation/fixtures/presentationPersonaFixtures.js +0 -208
  119. package/dist/presentation/fixtures/scanResultFixtures.d.ts +0 -5
  120. package/dist/presentation/fixtures/scanResultFixtures.d.ts.map +0 -1
  121. package/dist/presentation/fixtures/scanResultFixtures.js +0 -123
  122. package/dist/presentation/intent/postureVocabularyGuard.test.d.ts +0 -2
  123. package/dist/presentation/intent/postureVocabularyGuard.test.d.ts.map +0 -1
  124. package/dist/presentation/intent/postureVocabularyGuard.test.js +0 -23
  125. package/dist/presentation/orchestration/buildScanPresentationBundle.test.d.ts +0 -2
  126. package/dist/presentation/orchestration/buildScanPresentationBundle.test.d.ts.map +0 -1
  127. package/dist/presentation/orchestration/buildScanPresentationBundle.test.js +0 -99
  128. package/dist/presentation/presentation.test.d.ts +0 -2
  129. package/dist/presentation/presentation.test.d.ts.map +0 -1
  130. package/dist/presentation/presentation.test.js +0 -126
  131. package/dist/presentation/presentationPersonas.test.d.ts +0 -2
  132. package/dist/presentation/presentationPersonas.test.d.ts.map +0 -1
  133. package/dist/presentation/presentationPersonas.test.js +0 -164
  134. package/dist/presentation/surfaceParity.test.d.ts +0 -2
  135. package/dist/presentation/surfaceParity.test.d.ts.map +0 -1
  136. package/dist/presentation/surfaceParity.test.js +0 -156
  137. package/dist/presentation/verificationChannelParity.test.d.ts +0 -2
  138. package/dist/presentation/verificationChannelParity.test.d.ts.map +0 -1
  139. package/dist/presentation/verificationChannelParity.test.js +0 -57
  140. package/dist/productMessaging.test.d.ts +0 -2
  141. package/dist/productMessaging.test.d.ts.map +0 -1
  142. package/dist/productMessaging.test.js +0 -97
  143. package/dist/repoIntelligenceSchema.contract.test.d.ts +0 -2
  144. package/dist/repoIntelligenceSchema.contract.test.d.ts.map +0 -1
  145. package/dist/repoIntelligenceSchema.contract.test.js +0 -51
  146. package/dist/repoIntelligenceSemantics.test.d.ts +0 -2
  147. package/dist/repoIntelligenceSemantics.test.d.ts.map +0 -1
  148. package/dist/repoIntelligenceSemantics.test.js +0 -63
  149. package/dist/repoIntelligenceValidation.persist.test.d.ts +0 -2
  150. package/dist/repoIntelligenceValidation.persist.test.d.ts.map +0 -1
  151. package/dist/repoIntelligenceValidation.persist.test.js +0 -44
  152. package/dist/riskSignals.test.d.ts +0 -2
  153. package/dist/riskSignals.test.d.ts.map +0 -1
  154. package/dist/riskSignals.test.js +0 -32
  155. package/dist/riskVocabulary.test.d.ts +0 -2
  156. package/dist/riskVocabulary.test.d.ts.map +0 -1
  157. package/dist/riskVocabulary.test.js +0 -14
  158. package/dist/scanPresentationBundle.golden.test.d.ts +0 -2
  159. package/dist/scanPresentationBundle.golden.test.d.ts.map +0 -1
  160. package/dist/scanPresentationBundle.golden.test.js +0 -78
  161. package/dist/scanResultSchema.test.d.ts +0 -2
  162. package/dist/scanResultSchema.test.d.ts.map +0 -1
  163. package/dist/scanResultSchema.test.js +0 -162
  164. package/dist/scanSurfaceCopy.test.d.ts +0 -2
  165. package/dist/scanSurfaceCopy.test.d.ts.map +0 -1
  166. package/dist/scanSurfaceCopy.test.js +0 -14
  167. package/dist/selectTopAffectedAreas.test.d.ts +0 -2
  168. package/dist/selectTopAffectedAreas.test.d.ts.map +0 -1
  169. package/dist/selectTopAffectedAreas.test.js +0 -179
  170. package/dist/trustedScanGuards.test.d.ts +0 -2
  171. package/dist/trustedScanGuards.test.d.ts.map +0 -1
  172. package/dist/trustedScanGuards.test.js +0 -151
@@ -0,0 +1,162 @@
1
+ import { z } from "zod";
2
+ import { ABSTAIN_REASON_KINDS, ASSESSMENT_CONFIDENCES, ASSESSMENT_OUTCOMES, ASSESSMENT_POSTURES, ASSESSMENT_REPORT_MODES, BOUNDED_VERIFY_TARGET_KINDS, CHANGE_CLASSES, CLEARANCE_BASES, COVERAGE_CLASSES, DELTA_DIMENSION_KINDS, FOCAL_ELECTION_DIMENSIONS, INSIGHT_EMISSION_FLOORS, MERGE_CONCERN_KINDS, NARRATIVE_INTENSITIES, REACH_BUCKETS, REACH_VISIBILITIES, REVIEW_EPISODE_SHAPES, SUFFICIENCY_BLOCKER_KINDS, UNCLEARED_REASONS, VERIFICATION_INTENSITIES, } from "./literals.js";
3
+ const assessmentConcernSchema = z.object({
4
+ kind: z.enum(MERGE_CONCERN_KINDS),
5
+ rank: z.number().int().nonnegative(),
6
+ packages: z.array(z.string()).optional(),
7
+ evidenceRefs: z.array(z.string()),
8
+ context: z.string().optional(),
9
+ });
10
+ const assessmentPresentationWireSchema = z.object({
11
+ narrativeIntensity: z.enum(NARRATIVE_INTENSITIES),
12
+ reachVisibility: z.enum(REACH_VISIBILITIES),
13
+ verificationIntensity: z.enum(VERIFICATION_INTENSITIES),
14
+ insightEmissionFloor: z.enum(INSIGHT_EMISSION_FLOORS),
15
+ reportMode: z.enum(ASSESSMENT_REPORT_MODES),
16
+ });
17
+ const reviewFocalPointSchema = z.object({
18
+ episodeShape: z.enum(REVIEW_EPISODE_SHAPES),
19
+ anchors: z.array(z.string()),
20
+ supportingPackages: z.array(z.string()).optional(),
21
+ election: z.object({
22
+ grounding: z.array(z.object({
23
+ packageName: z.string(),
24
+ reason: z.string(),
25
+ decidedBy: z.enum(FOCAL_ELECTION_DIMENSIONS),
26
+ evidenceRefs: z.array(z.string()),
27
+ })),
28
+ exclusions: z.array(z.object({
29
+ packageName: z.string(),
30
+ reason: z.string(),
31
+ lostOn: z.enum(FOCAL_ELECTION_DIMENSIONS),
32
+ evidenceRefs: z.array(z.string()),
33
+ })),
34
+ }),
35
+ electionSummary: z.string().optional(),
36
+ });
37
+ const reachScopeSchema = z.object({
38
+ packages: z.array(z.string()),
39
+ maxBucket: z.enum(REACH_BUCKETS),
40
+ entryPointFiles: z.array(z.string()).optional(),
41
+ });
42
+ const artifactGroundedVerificationScopeSchema = z.object({
43
+ packages: z.array(z.string()),
44
+ focus: z.array(z.string()),
45
+ artifactPaths: z.array(z.string()),
46
+ });
47
+ const verificationScopeSchema = z.object({
48
+ packages: z.array(z.string()),
49
+ focus: z.array(z.string()),
50
+ guidance: z.array(z.string()).optional(),
51
+ artifactGrounded: artifactGroundedVerificationScopeSchema.optional(),
52
+ });
53
+ // --- ABI 4 outcome model sub-schemas ---
54
+ const abstainReasonSchema = z.object({
55
+ kind: z.enum(ABSTAIN_REASON_KINDS),
56
+ packageName: z.string().optional(),
57
+ detail: z.string().optional(),
58
+ });
59
+ const sufficiencyBlockerSchema = z.object({
60
+ kind: z.enum(SUFFICIENCY_BLOCKER_KINDS),
61
+ packageName: z.string().optional(),
62
+ detail: z.string().optional(),
63
+ });
64
+ const packageSufficiencySchema = z.object({
65
+ packageName: z.string(),
66
+ clearanceEligible: z.boolean(),
67
+ provenBrokenEligible: z.boolean(),
68
+ blockers: z.array(sufficiencyBlockerSchema),
69
+ });
70
+ const evidenceSufficiencyVerdictSchema = z.object({
71
+ sufficient: z.boolean(),
72
+ clearanceEligible: z.boolean(),
73
+ provenBrokenEligible: z.boolean(),
74
+ boundedVerifyEligible: z.boolean(),
75
+ blockers: z.array(sufficiencyBlockerSchema),
76
+ perPackage: z.record(z.string(), packageSufficiencySchema),
77
+ });
78
+ const boundedVerifyTargetSchema = z.object({
79
+ targetId: z.string(),
80
+ packageName: z.string(),
81
+ kind: z.enum(BOUNDED_VERIFY_TARGET_KINDS),
82
+ file: z.string().optional(),
83
+ line: z.number().int().nonnegative().optional(),
84
+ configKey: z.string().optional(),
85
+ scenario: z.string().optional(),
86
+ whatToVerify: z.string(),
87
+ whyAutomationStopped: z.string(),
88
+ whatProofWouldResolveIt: z.string(),
89
+ });
90
+ const clearedDimensionSchema = z.object({
91
+ kind: z.enum(DELTA_DIMENSION_KINDS),
92
+ basis: z.enum(CLEARANCE_BASES),
93
+ proofArtifactRef: z.string().optional(),
94
+ noImpactProofRef: z.string().optional(),
95
+ });
96
+ const unclearedDimensionSchema = z.object({
97
+ kind: z.enum(DELTA_DIMENSION_KINDS),
98
+ reason: z.enum(UNCLEARED_REASONS),
99
+ boundedVerifyTarget: boundedVerifyTargetSchema.optional(),
100
+ });
101
+ const clearanceEnvelopeSchema = z.object({
102
+ packageName: z.string(),
103
+ clearedDimensions: z.array(clearedDimensionSchema),
104
+ unclearedDimensions: z.array(unclearedDimensionSchema),
105
+ coverageClass: z.enum(COVERAGE_CLASSES),
106
+ });
107
+ const packageOutcomeSchema = z.object({
108
+ packageName: z.string(),
109
+ outcome: z.enum(ASSESSMENT_OUTCOMES),
110
+ proofArtifactRefs: z.array(z.string()).optional(),
111
+ clearanceEnvelopeRef: z.string().optional(),
112
+ boundedVerifyTargetRefs: z.array(z.string()).optional(),
113
+ });
114
+ /** Root Assessment wire schema (ABI 4).
115
+ *
116
+ * All ABI 3 required fields are preserved. ABI 4 outcome model fields are optional,
117
+ * so ABI 3 payloads continue to parse successfully. Parsers must tolerate absent ABI 4
118
+ * fields and treat them as "shadow mode not yet active."
119
+ */
120
+ export const assessmentSchema = z.object({
121
+ reviewFocalPoint: reviewFocalPointSchema,
122
+ reachScope: reachScopeSchema,
123
+ verificationScope: verificationScopeSchema,
124
+ posture: z.enum(ASSESSMENT_POSTURES),
125
+ confidence: z.enum(ASSESSMENT_CONFIDENCES),
126
+ primaryConcern: z.enum(MERGE_CONCERN_KINDS).nullable(),
127
+ concerns: z.array(assessmentConcernSchema),
128
+ factors: z.array(z.string()),
129
+ changeClasses: z.array(z.enum(CHANGE_CLASSES)),
130
+ presentation: assessmentPresentationWireSchema,
131
+ reasoning: z.array(z.string()),
132
+ confidenceRationale: z.string(),
133
+ notAffectedLine: z.string().nullable().optional(),
134
+ resolutionLine: z.string().nullable().optional(),
135
+ // ABI 4 optional outcome model fields — absent when shadow mode is inactive
136
+ outcome: z.enum(ASSESSMENT_OUTCOMES).optional(),
137
+ perPackageOutcome: z.record(z.string(), packageOutcomeSchema).optional(),
138
+ clearanceEnvelopes: z.record(z.string(), clearanceEnvelopeSchema).optional(),
139
+ boundedVerifyTargets: z.array(boundedVerifyTargetSchema).optional(),
140
+ evidenceSufficiencyVerdict: evidenceSufficiencyVerdictSchema.optional(),
141
+ abstainReasons: z.array(abstainReasonSchema).optional(),
142
+ });
143
+ export function parseAssessmentOrThrow(data) {
144
+ const parsed = assessmentSchema.safeParse(data);
145
+ if (!parsed.success) {
146
+ const issues = parsed.error.issues
147
+ .map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`)
148
+ .join("; ");
149
+ throw new Error(`assessment validation: ${issues}`);
150
+ }
151
+ return parsed.data;
152
+ }
153
+ export function safeParseAssessment(data) {
154
+ const parsed = assessmentSchema.safeParse(data);
155
+ if (!parsed.success) {
156
+ return {
157
+ ok: false,
158
+ issues: parsed.error.issues.map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`),
159
+ };
160
+ }
161
+ return { ok: true, value: parsed.data };
162
+ }
@@ -0,0 +1,197 @@
1
+ import type { ABSTAIN_REASON_KINDS, ASSESSMENT_CONFIDENCES, ASSESSMENT_OUTCOMES, ASSESSMENT_POSTURES, ASSESSMENT_REPORT_MODES, BOUNDED_VERIFY_TARGET_KINDS, CHANGE_CLASSES, CLEARANCE_BASES, COVERAGE_CLASSES, DELTA_DIMENSION_KINDS, FOCAL_ELECTION_DIMENSIONS, INSIGHT_EMISSION_FLOORS, MERGE_CONCERN_KINDS, NARRATIVE_INTENSITIES, REACH_BUCKETS, REACH_VISIBILITIES, REVIEW_EPISODE_SHAPES, SUFFICIENCY_BLOCKER_KINDS, UNCLEARED_REASONS, VERIFICATION_INTENSITIES } from "./literals.js";
2
+ /**
3
+ * Assessment Contract — canonical public decision and explainability wire types.
4
+ * Assessment is the sole authority for posture and presentation intensity on the wire.
5
+ */
6
+ export type AssessmentPosture = (typeof ASSESSMENT_POSTURES)[number];
7
+ export type AssessmentConfidence = (typeof ASSESSMENT_CONFIDENCES)[number];
8
+ export type ChangeClass = (typeof CHANGE_CLASSES)[number];
9
+ export type MergeConcernKind = (typeof MERGE_CONCERN_KINDS)[number];
10
+ export type NarrativeIntensity = (typeof NARRATIVE_INTENSITIES)[number];
11
+ export type ReachVisibility = (typeof REACH_VISIBILITIES)[number];
12
+ export type VerificationIntensity = (typeof VERIFICATION_INTENSITIES)[number];
13
+ export type InsightEmissionFloor = (typeof INSIGHT_EMISSION_FLOORS)[number];
14
+ export type AssessmentReportMode = (typeof ASSESSMENT_REPORT_MODES)[number];
15
+ export type ReviewEpisodeShape = (typeof REVIEW_EPISODE_SHAPES)[number];
16
+ export type FocalElectionDimension = (typeof FOCAL_ELECTION_DIMENSIONS)[number];
17
+ export type ReachBucket = (typeof REACH_BUCKETS)[number];
18
+ export type DeltaDimensionKind = (typeof DELTA_DIMENSION_KINDS)[number];
19
+ export type AssessmentConcern = {
20
+ kind: MergeConcernKind;
21
+ rank: number;
22
+ packages?: string[];
23
+ evidenceRefs: string[];
24
+ /** One sentence of repository-specific context; absent when no repo-specific content. */
25
+ context?: string;
26
+ };
27
+ export type AssessmentPresentation = {
28
+ narrativeIntensity: NarrativeIntensity;
29
+ reachVisibility: ReachVisibility;
30
+ verificationIntensity: VerificationIntensity;
31
+ insightEmissionFloor: InsightEmissionFloor;
32
+ reportMode: AssessmentReportMode;
33
+ };
34
+ export type FocalElectionGrounding = {
35
+ packageName: string;
36
+ reason: string;
37
+ decidedBy: FocalElectionDimension;
38
+ evidenceRefs: string[];
39
+ };
40
+ export type FocalElectionExclusion = {
41
+ packageName: string;
42
+ reason: string;
43
+ lostOn: FocalElectionDimension;
44
+ evidenceRefs: string[];
45
+ };
46
+ export type ReviewFocalPoint = {
47
+ episodeShape: ReviewEpisodeShape;
48
+ anchors: string[];
49
+ supportingPackages?: string[];
50
+ election: {
51
+ grounding: FocalElectionGrounding[];
52
+ exclusions: FocalElectionExclusion[];
53
+ };
54
+ /** One sentence explaining the anchor election; absent for structural episodes or uncontested elections. */
55
+ electionSummary?: string;
56
+ };
57
+ export type ReachScope = {
58
+ packages: string[];
59
+ maxBucket: ReachBucket;
60
+ /** Repository entry paths grounded by propagation evidence (Phase 3.5). */
61
+ entryPointFiles?: string[];
62
+ };
63
+ export type VerificationScope = {
64
+ packages: string[];
65
+ focus: string[];
66
+ /** Actionable verification sentences; absent when verificationIntensity === 'none'. */
67
+ guidance?: string[];
68
+ /** Advisory artifact-grounded verification (tooling packages only). */
69
+ artifactGrounded?: ArtifactGroundedVerificationScope;
70
+ };
71
+ export type ArtifactGroundedVerificationScope = {
72
+ packages: string[];
73
+ focus: string[];
74
+ artifactPaths: string[];
75
+ };
76
+ /** Assessment wire contract (ABI 4 — adds outcome model fields; ABI 3 expression fields preserved). */
77
+ export type Assessment = {
78
+ reviewFocalPoint: ReviewFocalPoint;
79
+ reachScope: ReachScope;
80
+ verificationScope: VerificationScope;
81
+ posture: AssessmentPosture;
82
+ confidence: AssessmentConfidence;
83
+ primaryConcern: MergeConcernKind | null;
84
+ concerns: AssessmentConcern[];
85
+ factors: string[];
86
+ changeClasses: ChangeClass[];
87
+ presentation: AssessmentPresentation;
88
+ /** Repository-specific reasoning sentences explaining this posture. Always produced. */
89
+ reasoning: string[];
90
+ /** One sentence explaining this confidence level. Always produced. */
91
+ confidenceRationale: string;
92
+ /**
93
+ * Q8 answer: "What is not affected?" — authored for `cleared` outcome when at least one
94
+ * dimension was proven unused. Detail/CLI only; absent when nothing was proven unused.
95
+ */
96
+ notAffectedLine?: string | null;
97
+ /**
98
+ * Q9 answer: "What would make this deterministic?" — authored in Expression for
99
+ * `bounded_verify` and `abstain` outcomes. Absent for `cleared` and `proven_broken`.
100
+ */
101
+ resolutionLine?: string | null;
102
+ /** Primary product outcome surface (ABI 4). Absent until shadow mode is active. */
103
+ outcome?: AssessmentOutcome;
104
+ perPackageOutcome?: Record<string, PackageOutcome>;
105
+ clearanceEnvelopes?: Record<string, ClearanceEnvelope>;
106
+ /** Bounded verify targets, capped at 3 per PR. */
107
+ boundedVerifyTargets?: BoundedVerifyTarget[];
108
+ evidenceSufficiencyVerdict?: EvidenceSufficiencyVerdict;
109
+ abstainReasons?: AbstainReason[];
110
+ };
111
+ /** Wire presentation subset — excludes engine policy fields. */
112
+ export type AssessmentPresentationPublic = Pick<AssessmentPresentation, "narrativeIntensity" | "reachVisibility" | "verificationIntensity" | "reportMode">;
113
+ export type AssessmentPresentationWire = AssessmentPresentation;
114
+ export type AssessmentOutcome = (typeof ASSESSMENT_OUTCOMES)[number];
115
+ export type AbstainReasonKind = (typeof ABSTAIN_REASON_KINDS)[number];
116
+ export type SufficiencyBlockerKind = (typeof SUFFICIENCY_BLOCKER_KINDS)[number];
117
+ export type BoundedVerifyTargetKind = (typeof BOUNDED_VERIFY_TARGET_KINDS)[number];
118
+ export type ClearanceBasis = (typeof CLEARANCE_BASES)[number];
119
+ export type UnclearedReason = (typeof UNCLEARED_REASONS)[number];
120
+ export type CoverageClass = (typeof COVERAGE_CLASSES)[number];
121
+ export type AbstainReason = {
122
+ kind: AbstainReasonKind;
123
+ packageName?: string;
124
+ detail?: string;
125
+ };
126
+ export type SufficiencyBlocker = {
127
+ kind: SufficiencyBlockerKind;
128
+ packageName?: string;
129
+ detail?: string;
130
+ };
131
+ export type PackageSufficiency = {
132
+ packageName: string;
133
+ clearanceEligible: boolean;
134
+ provenBrokenEligible: boolean;
135
+ blockers: SufficiencyBlocker[];
136
+ };
137
+ export type EvidenceSufficiencyVerdict = {
138
+ sufficient: boolean;
139
+ clearanceEligible: boolean;
140
+ provenBrokenEligible: boolean;
141
+ boundedVerifyEligible: boolean;
142
+ blockers: SufficiencyBlocker[];
143
+ perPackage: Record<string, PackageSufficiency>;
144
+ };
145
+ export type BoundedVerifyTarget = {
146
+ targetId: string;
147
+ packageName: string;
148
+ kind: BoundedVerifyTargetKind;
149
+ file?: string;
150
+ line?: number;
151
+ configKey?: string;
152
+ /**
153
+ * Internal engine metadata identifying the scenario type.
154
+ * NEVER rendered directly in developer-facing output — vocabulary firewall.
155
+ * Expression uses `whatToVerify` (noun phrase) to compose the developer sentence.
156
+ */
157
+ scenario?: string;
158
+ /**
159
+ * Noun phrase describing the subject of verification.
160
+ * Expression's BOUNDED_VERIFY_SENTENCE templates compose the full developer sentence.
161
+ *
162
+ * Correct: "constraint ranges for `pkg-a`"
163
+ * Incorrect: "Verify `pkg-a` constraint ranges are satisfied." (complete sentence — causes double-verb)
164
+ */
165
+ whatToVerify: string;
166
+ whyAutomationStopped: string;
167
+ /**
168
+ * Internal proof-kind slug identifying what evidence would close this target.
169
+ * NEVER rendered directly — Expression maps this to resolutionLine prose.
170
+ */
171
+ whatProofWouldResolveIt: string;
172
+ };
173
+ export type ClearedDimension = {
174
+ kind: DeltaDimensionKind;
175
+ basis: ClearanceBasis;
176
+ proofArtifactRef?: string;
177
+ noImpactProofRef?: string;
178
+ };
179
+ export type UnclearedDimension = {
180
+ kind: DeltaDimensionKind;
181
+ reason: UnclearedReason;
182
+ boundedVerifyTarget?: BoundedVerifyTarget;
183
+ };
184
+ export type ClearanceEnvelope = {
185
+ packageName: string;
186
+ clearedDimensions: ClearedDimension[];
187
+ unclearedDimensions: UnclearedDimension[];
188
+ coverageClass: CoverageClass;
189
+ };
190
+ export type PackageOutcome = {
191
+ packageName: string;
192
+ outcome: AssessmentOutcome;
193
+ proofArtifactRefs?: string[];
194
+ clearanceEnvelopeRef?: string;
195
+ boundedVerifyTargetRefs?: string[];
196
+ };
197
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/assessment/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Assessment wire ABI — canonical authority for MergeSignal public Assessment contracts.
3
+ * Bump only on incompatible Assessment wire shape changes.
4
+ *
5
+ * ABI 4: adds optional outcome model fields (outcome, perPackageOutcome,
6
+ * clearanceEnvelopes, boundedVerifyTargets, evidenceSufficiencyVerdict, abstainReasons).
7
+ * Backward-compatible: all new fields are optional; ABI 3 payloads remain valid.
8
+ */
9
+ export declare const ASSESSMENT_ABI: "4";
10
+ export type AssessmentAbi = typeof ASSESSMENT_ABI;
11
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/assessment/version.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAG,GAAY,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Assessment wire ABI — canonical authority for MergeSignal public Assessment contracts.
3
+ * Bump only on incompatible Assessment wire shape changes.
4
+ *
5
+ * ABI 4: adds optional outcome model fields (outcome, perPackageOutcome,
6
+ * clearanceEnvelopes, boundedVerifyTargets, evidenceSufficiencyVerdict, abstainReasons).
7
+ * Backward-compatible: all new fields are optional; ABI 3 payloads remain valid.
8
+ */
9
+ export const ASSESSMENT_ABI = "4";
@@ -1,4 +1,4 @@
1
- import type { MergeConcernKind } from "@mergesignal/contracts";
1
+ import type { MergeConcernKind } from "./assessment/types.js";
2
2
  /** Display labels for factor tokens (mirrors engine factor-registry labels). */
3
3
  export declare const ASSESSMENT_FACTOR_LABELS: Record<string, string>;
4
4
  export declare const MERGE_CONCERN_LABELS: Record<MergeConcernKind, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"assessmentLabels.d.ts","sourceRoot":"","sources":["../src/assessmentLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmB3D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAcjE,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D"}
1
+ {"version":3,"file":"assessmentLabels.d.ts","sourceRoot":"","sources":["../src/assessmentLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmB3D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAcjE,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -1,4 +1,4 @@
1
- import type { AssessmentPresentationPublic, AssessmentPresentationWire, NarrativeIntensity } from "@mergesignal/contracts";
1
+ import type { AssessmentPresentationPublic, AssessmentPresentationWire, NarrativeIntensity } from "./assessment/types.js";
2
2
  /** Public presentation subset — excludes engine policy fields. */
3
3
  export declare function toPublicPresentation(wire: AssessmentPresentationWire): AssessmentPresentationPublic;
4
4
  /** Map engine narrative intensity to presentation density (formatting only). */
@@ -1 +1 @@
1
- {"version":3,"file":"assessmentPresentationUtils.d.ts","sourceRoot":"","sources":["../src/assessmentPresentationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,kEAAkE;AAClE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,0BAA0B,GAC/B,4BAA4B,CAO9B;AAED,gFAAgF;AAChF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,kBAAkB,GAC5B,SAAS,GAAG,UAAU,GAAG,MAAM,CAIjC"}
1
+ {"version":3,"file":"assessmentPresentationUtils.d.ts","sourceRoot":"","sources":["../src/assessmentPresentationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,kEAAkE;AAClE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,0BAA0B,GAC/B,4BAA4B,CAO9B;AAED,gFAAgF;AAChF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,kBAAkB,GAC5B,SAAS,GAAG,UAAU,GAAG,MAAM,CAIjC"}
@@ -1,6 +1,6 @@
1
1
  import type { ScanResult } from "./types.js";
2
2
  import { type RepoIntelligence } from "./repoIntelligenceSchema.js";
3
- import type { Assessment, AssessmentPresentationPublic, ReachVisibility, VerificationIntensity } from "@mergesignal/contracts";
3
+ import type { Assessment, AssessmentPresentationPublic, ReachVisibility, VerificationIntensity } from "./assessment/types.js";
4
4
  import type { PresentationStatus } from "./presentation/dto/types.js";
5
5
  export type VerificationChannel = "runtime" | "artifact" | "none";
6
6
  export declare function resolveVerificationChannel(intensity: VerificationIntensity): VerificationChannel;
@@ -1 +1 @@
1
- {"version":3,"file":"assessmentProjection.d.ts","sourceRoot":"","sources":["../src/assessmentProjection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,UAAU,EACV,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAmDlE,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,qBAAqB,GAC/B,mBAAmB,CAIrB;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAQ5E;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAS7E;AAED,wBAAgB,uCAAuC,CACrD,YAAY,EAAE,4BAA4B,EAC1C,MAAM,EAAE,UAAU,GACjB;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAWnD;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAErE;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,eAAe,GAC1B,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAiDR;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAMlE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACjB,MAAM,EAAE,CAaV;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,4BAA4B,EAC1C,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,GACV,MAAM,EAAE,CAWV;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,GAAG,MAAM,EAAE,CAI3E"}
1
+ {"version":3,"file":"assessmentProjection.d.ts","sourceRoot":"","sources":["../src/assessmentProjection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,UAAU,EACV,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAmDlE,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,qBAAqB,GAC/B,mBAAmB,CAIrB;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAQ5E;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAS7E;AAED,wBAAgB,uCAAuC,CACrD,YAAY,EAAE,4BAA4B,EAC1C,MAAM,EAAE,UAAU,GACjB;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAWnD;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAErE;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,eAAe,GAC1B,MAAM,GAAG,SAAS,CAWpB;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAiDR;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAMlE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,GACjB,MAAM,EAAE,CAaV;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,4BAA4B,EAC1C,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,GACV,MAAM,EAAE,CAWV;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,GAAG,MAAM,EAAE,CAI3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"deriveScanNarrative.d.ts","sourceRoot":"","sources":["../src/deriveScanNarrative.ts"],"names":[],"mappings":"AAYA,OAAO,EAgBL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAMV,UAAU,EACX,MAAM,YAAY,CAAC;AAwiBpB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GACpC,kBAAkB,CAsIpB"}
1
+ {"version":3,"file":"deriveScanNarrative.d.ts","sourceRoot":"","sources":["../src/deriveScanNarrative.ts"],"names":[],"mappings":"AAYA,OAAO,EAgBL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAMV,UAAU,EACX,MAAM,YAAY,CAAC;AAwiBpB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GACpC,kBAAkB,CAsIpB"}
@@ -5,6 +5,7 @@ import { isRuntimeNarrativeSafe } from "./repoIntelligenceSemantics.js";
5
5
  import { deriveRiskSignals } from "./riskSignals.js";
6
6
  import { EMPTY_SCAN_NARRATIVE_FACTS, NARRATIVE_FACT_MAX_AREAS, NARRATIVE_FACT_MAX_HOTSPOTS, NARRATIVE_FACT_MAX_PATHS, } from "./scanNarrativeFacts.js";
7
7
  import { mergePostureFromDecision } from "./riskVocabulary.js";
8
+ import { hasPreparationUncertaintyWarnings } from "./lockfileEvidence.js";
8
9
  import { selectTopAffectedAreas } from "./selectTopAffectedAreas.js";
9
10
  function parseChangedPackages(changed) {
10
11
  const all = Array.isArray(changed)
@@ -407,7 +408,7 @@ function assessmentConfidenceFromResult(result) {
407
408
  }
408
409
  function limitedContextDiagnostic(input) {
409
410
  return (input.corpusGateReason !== "ok" ||
410
- input.preparationWarnings.length > 0 ||
411
+ hasPreparationUncertaintyWarnings(input.preparationWarnings) ||
411
412
  input.assessmentConfidence === "low");
412
413
  }
413
414
  /**
@@ -1,4 +1,4 @@
1
- import type { Assessment } from "@mergesignal/contracts";
1
+ import type { Assessment } from "../assessment/types.js";
2
2
  export declare const assessmentTypescriptPatch: Assessment;
3
3
  export declare const assessmentEslint: Assessment;
4
4
  export declare const assessmentPrettier: Assessment;
@@ -1,4 +1,4 @@
1
- import type { ArtifactGroundedVerificationScope, Assessment, FocalElectionDimension, ReachScope, ReviewEpisodeShape, ReviewFocalPoint, VerificationScope } from "@mergesignal/contracts";
1
+ import type { ArtifactGroundedVerificationScope, Assessment, FocalElectionDimension, ReachScope, ReviewEpisodeShape, ReviewFocalPoint, VerificationScope } from "../assessment/types.js";
2
2
  export declare function minimalReviewFocalPoint(anchors: string[], opts?: {
3
3
  episodeShape?: ReviewEpisodeShape;
4
4
  supportingPackages?: string[];
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from "./types.js";
2
+ export * from "./assessment/index.js";
3
+ export * from "./lockfileEvidence.js";
2
4
  export * from "./assessmentLabels.js";
3
5
  export * from "./assessmentProjection.js";
4
6
  export * from "./riskVocabulary.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,wCAAwC,EAAE,MAAM,6BAA6B,CAAC;AACvF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,wCAAwC,EAAE,MAAM,6BAA6B,CAAC;AACvF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from "./types.js";
2
+ export * from "./assessment/index.js";
3
+ export * from "./lockfileEvidence.js";
2
4
  export * from "./assessmentLabels.js";
3
5
  export * from "./assessmentProjection.js";
4
6
  export * from "./riskVocabulary.js";
@@ -0,0 +1,22 @@
1
+ import type { AnalysisContextWarning } from "./types.js";
2
+ /** Authoritative lockfile comparison outcome from Scan Preparation. */
3
+ export type LockfileEvidenceStatus = {
4
+ kind: "not_applicable";
5
+ } | {
6
+ kind: "verified";
7
+ delta: "empty" | "changed";
8
+ } | {
9
+ kind: "unavailable";
10
+ reason: "incomplete_parse" | "missing_head" | "missing_base" | "manager_mismatch" | "comparison_failed";
11
+ };
12
+ /** Lockfile warnings that limit evidence confidence for merge decisions. */
13
+ export declare const LOCKFILE_UNCERTAINTY_WARNING_CODES: readonly ["lockfile_evidence_incomplete", "lockfile_head_missing", "base_lockfile_missing", "lockfile_diff_skipped", "lockfile_diff_failed"];
14
+ export type LockfileUncertaintyWarningCode = (typeof LOCKFILE_UNCERTAINTY_WARNING_CODES)[number];
15
+ /** Preparation warnings that limit scan context confidence (excludes informational events). */
16
+ export declare const PREPARATION_UNCERTAINTY_WARNING_CODES: readonly ["lockfile_evidence_incomplete", "lockfile_head_missing", "base_lockfile_missing", "lockfile_diff_skipped", "lockfile_diff_failed", "code_fetch_failed", "code_fetch_auth_failure", "code_fetch_timeout", "code_fetch_rate_limit", "code_corpus_empty", "repo_intelligence_contract_invalid"];
17
+ export type PreparationUncertaintyWarningCode = (typeof PREPARATION_UNCERTAINTY_WARNING_CODES)[number];
18
+ export declare function isLockfileUncertaintyWarningCode(code: string): code is LockfileUncertaintyWarningCode;
19
+ export declare function isPreparationUncertaintyWarning(warning: AnalysisContextWarning): boolean;
20
+ export declare function hasLockfileUncertaintyWarnings(warnings: readonly AnalysisContextWarning[]): boolean;
21
+ export declare function hasPreparationUncertaintyWarnings(warnings: readonly AnalysisContextWarning[]): boolean;
22
+ //# sourceMappingURL=lockfileEvidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfileEvidence.d.ts","sourceRoot":"","sources":["../src/lockfileEvidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AACvE,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAChD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EACF,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,kBAAkB,GAClB,mBAAmB,CAAC;CACzB,CAAC;AAEN,4EAA4E;AAC5E,eAAO,MAAM,kCAAkC,8IAMW,CAAC;AAE3D,MAAM,MAAM,8BAA8B,GACxC,CAAC,OAAO,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,+FAA+F;AAC/F,eAAO,MAAM,qCAAqC,wSAQQ,CAAC;AAE3D,MAAM,MAAM,iCAAiC,GAC3C,CAAC,OAAO,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC;AASzD,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,GACX,IAAI,IAAI,8BAA8B,CAExC;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,SAAS,sBAAsB,EAAE,GAC1C,OAAO,CAET;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,SAAS,sBAAsB,EAAE,GAC1C,OAAO,CAET"}
@@ -0,0 +1,32 @@
1
+ /** Lockfile warnings that limit evidence confidence for merge decisions. */
2
+ export const LOCKFILE_UNCERTAINTY_WARNING_CODES = [
3
+ "lockfile_evidence_incomplete",
4
+ "lockfile_head_missing",
5
+ "base_lockfile_missing",
6
+ "lockfile_diff_skipped",
7
+ "lockfile_diff_failed",
8
+ ];
9
+ /** Preparation warnings that limit scan context confidence (excludes informational events). */
10
+ export const PREPARATION_UNCERTAINTY_WARNING_CODES = [
11
+ ...LOCKFILE_UNCERTAINTY_WARNING_CODES,
12
+ "code_fetch_failed",
13
+ "code_fetch_auth_failure",
14
+ "code_fetch_timeout",
15
+ "code_fetch_rate_limit",
16
+ "code_corpus_empty",
17
+ "repo_intelligence_contract_invalid",
18
+ ];
19
+ const lockfileUncertaintySet = new Set(LOCKFILE_UNCERTAINTY_WARNING_CODES);
20
+ const preparationUncertaintySet = new Set(PREPARATION_UNCERTAINTY_WARNING_CODES);
21
+ export function isLockfileUncertaintyWarningCode(code) {
22
+ return lockfileUncertaintySet.has(code);
23
+ }
24
+ export function isPreparationUncertaintyWarning(warning) {
25
+ return preparationUncertaintySet.has(warning.code);
26
+ }
27
+ export function hasLockfileUncertaintyWarnings(warnings) {
28
+ return warnings.some((w) => isLockfileUncertaintyWarningCode(w.code));
29
+ }
30
+ export function hasPreparationUncertaintyWarnings(warnings) {
31
+ return warnings.some(isPreparationUncertaintyWarning);
32
+ }
@@ -1,4 +1,4 @@
1
- import type { MergeConcernKind, NarrativeIntensity, ReachVisibility } from "@mergesignal/contracts";
1
+ import type { MergeConcernKind, NarrativeIntensity, ReachVisibility } from "../../assessment/types.js";
2
2
  import type { VerificationChannel } from "../../assessmentProjection.js";
3
3
  /** Assessment-aligned fields projected identically across surfaces. */
4
4
  export type AssessmentPresentationFields = {
@@ -1 +1 @@
1
- {"version":3,"file":"assessmentPresentationFields.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/assessmentPresentationFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,uEAAuE;AACvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC;IAC3C,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"assessmentPresentationFields.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/assessmentPresentationFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAEhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,uEAAuE;AACvE,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC;IAC3C,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildScanPresentationBundle.d.ts","sourceRoot":"","sources":["../../../src/presentation/orchestration/buildScanPresentationBundle.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gCAAgC,GACtC,sBAAsB,GAAG,IAAI,CA8B/B"}
1
+ {"version":3,"file":"buildScanPresentationBundle.d.ts","sourceRoot":"","sources":["../../../src/presentation/orchestration/buildScanPresentationBundle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gCAAgC,GACtC,sBAAsB,GAAG,IAAI,CA8B/B"}
@@ -1,4 +1,5 @@
1
- import { extractAuthoredCommunication, parseAssessmentOrThrow, } from "@mergesignal/contracts";
1
+ import { extractAuthoredCommunication } from "../../assessment/authoredCommunication.js";
2
+ import { parseAssessmentOrThrow } from "../../assessment/schema.js";
2
3
  import { toPublicPresentation } from "../../assessmentPresentationUtils.js";
3
4
  import { deriveScanNarrative } from "../../deriveScanNarrative.js";
4
5
  import { buildProfileFromAssessment } from "../profile/buildProfileFromAssessment.js";
@@ -1,4 +1,5 @@
1
- import type { Assessment, AssessmentPresentationPublic, AuthoredCommunicationAccessors } from "@mergesignal/contracts";
1
+ import type { AuthoredCommunicationAccessors } from "../../assessment/authoredCommunication.js";
2
+ import type { Assessment, AssessmentPresentationPublic } from "../../assessment/types.js";
2
3
  import type { ScanNarrativeFacts } from "../../scanNarrativeFacts.js";
3
4
  import type { ScanResult } from "../../types.js";
4
5
  import type { PresentationProfile } from "../profile/presentationProfile.js";
@@ -1 +1 @@
1
- {"version":3,"file":"scanPresentationBundle.d.ts","sourceRoot":"","sources":["../../../src/presentation/orchestration/scanPresentationBundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,4BAA4B,EAC5B,8BAA8B,EAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG,8BAA8B,GAAG;IACpE,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,4BAA4B,CAAC;IAC3C,OAAO,EAAE,mBAAmB,CAAC;IAC7B;;;OAGG;IACH,KAAK,EAAE,kBAAkB,CAAC;IAC1B;;;OAGG;IACH,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"scanPresentationBundle.d.ts","sourceRoot":"","sources":["../../../src/presentation/orchestration/scanPresentationBundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,KAAK,EACV,UAAU,EACV,4BAA4B,EAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG,8BAA8B,GAAG;IACpE,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,4BAA4B,CAAC;IAC3C,OAAO,EAAE,mBAAmB,CAAC;IAC7B;;;OAGG;IACH,KAAK,EAAE,kBAAkB,CAAC;IAC1B;;;OAGG;IACH,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Assessment, AssessmentPresentationPublic } from "@mergesignal/contracts";
1
+ import type { Assessment, AssessmentPresentationPublic } from "../../assessment/types.js";
2
2
  import type { ScanResult } from "../../types.js";
3
3
  import type { PresentationProfile } from "./presentationProfile.js";
4
4
  export declare function buildProfileFromAssessment(assessment: Assessment, presentation: AssessmentPresentationPublic, result: ScanResult): PresentationProfile;
@@ -1 +1 @@
1
- {"version":3,"file":"buildProfileFromAssessment.d.ts","sourceRoot":"","sources":["../../../src/presentation/profile/buildProfileFromAssessment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAoDpE,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,4BAA4B,EAC1C,MAAM,EAAE,UAAU,GACjB,mBAAmB,CAuBrB"}
1
+ {"version":3,"file":"buildProfileFromAssessment.d.ts","sourceRoot":"","sources":["../../../src/presentation/profile/buildProfileFromAssessment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,4BAA4B,EAC7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAqDpE,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,4BAA4B,EAC1C,MAAM,EAAE,UAAU,GACjB,mBAAmB,CA+BrB"}