@usefragments/core 1.7.0 → 1.8.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 (35) hide show
  1. package/dist/chunk-MZ4SW3TP.js +375 -0
  2. package/dist/chunk-MZ4SW3TP.js.map +1 -0
  3. package/dist/{chunk-WNMWKUYG.js → chunk-UUREQ4HD.js} +318 -6
  4. package/dist/chunk-UUREQ4HD.js.map +1 -0
  5. package/dist/codes/index.d.ts +1 -1
  6. package/dist/codes/index.js +1 -2
  7. package/dist/compiled-types/index.d.ts +1 -1
  8. package/dist/generate/index.d.ts +1 -1
  9. package/dist/governance-telemetry.d.ts +316 -0
  10. package/dist/governance-telemetry.js +11 -0
  11. package/dist/governance-telemetry.js.map +1 -0
  12. package/dist/{index-hZAlYCli.d.ts → index-Cxk3SOQP.d.ts} +1005 -1005
  13. package/dist/index.d.ts +529 -477
  14. package/dist/index.js +78 -37
  15. package/dist/index.js.map +1 -1
  16. package/dist/react-types.d.ts +1 -1
  17. package/dist/registry.d.ts +146 -146
  18. package/dist/schemas/index.d.ts +1 -1
  19. package/dist/schemas/index.js +3 -1
  20. package/dist/test-utils.d.ts +1 -1
  21. package/package.json +5 -1
  22. package/src/component-contract.ts +12 -0
  23. package/src/contract-parser.ts +2 -0
  24. package/src/governance-telemetry.test.ts +18 -0
  25. package/src/governance-telemetry.ts +398 -0
  26. package/src/index.ts +17 -0
  27. package/src/rules/index.ts +5 -1
  28. package/src/rules/tokens-css-vars-must-be-defined.test.ts +66 -1
  29. package/src/rules/tokens-css-vars-must-be-defined.ts +88 -16
  30. package/src/schemas/index.ts +4 -0
  31. package/src/schemas/normalize-finding.test.ts +50 -0
  32. package/dist/chunk-WNMWKUYG.js.map +0 -1
  33. package/dist/chunk-ZHS52OT4.js +0 -317
  34. package/dist/chunk-ZHS52OT4.js.map +0 -1
  35. package/dist/{governance-D9KtH-vg.d.ts → governance-eEzCyfes.d.ts} +154 -154
@@ -1,317 +0,0 @@
1
- import {
2
- legacySeverityLevelSchema,
3
- severityFromLevel,
4
- severityLevel,
5
- severityLevelSchema,
6
- severitySchema
7
- } from "./chunk-V4VQB57N.js";
8
-
9
- // src/schemas/index.ts
10
- import { z } from "zod";
11
- var evidenceGradeSchema = z.enum([
12
- "none",
13
- "runtime_advisory",
14
- "provenance_bound",
15
- "source_backed",
16
- "receipt_backed"
17
- ]);
18
- var factLocationSchema = z.object({
19
- file: z.string(),
20
- line: z.number().int().nonnegative(),
21
- column: z.number().int().nonnegative(),
22
- endLine: z.number().int().nonnegative().optional(),
23
- endColumn: z.number().int().nonnegative().optional()
24
- });
25
- var findingReplacePropValueFixSchema = z.object({
26
- kind: z.literal("replacePropValue"),
27
- title: z.string(),
28
- prop: z.string(),
29
- value: z.unknown(),
30
- deterministic: z.boolean().optional()
31
- });
32
- var findingReplaceStyleValueFixSchema = z.object({
33
- kind: z.literal("replaceStyleValue"),
34
- title: z.string(),
35
- property: z.string(),
36
- value: z.string(),
37
- deterministic: z.boolean().optional()
38
- });
39
- var findingReplaceImportFixSchema = z.object({
40
- kind: z.literal("replaceImport"),
41
- title: z.string(),
42
- from: z.string(),
43
- to: z.string(),
44
- deterministic: z.boolean().optional()
45
- });
46
- var findingReplaceComponentFixSchema = z.object({
47
- kind: z.literal("replaceComponent"),
48
- title: z.string(),
49
- from: z.string(),
50
- to: z.string(),
51
- deterministic: z.boolean().optional()
52
- });
53
- var findingReplaceClassTokenFixSchema = z.object({
54
- kind: z.literal("replaceClassToken"),
55
- title: z.string(),
56
- from: z.string(),
57
- to: z.string().nullable(),
58
- utility: z.string(),
59
- deterministic: z.boolean().optional()
60
- });
61
- var findingFixSchema = z.discriminatedUnion("kind", [
62
- findingReplacePropValueFixSchema,
63
- findingReplaceStyleValueFixSchema,
64
- findingReplaceImportFixSchema,
65
- findingReplaceComponentFixSchema,
66
- findingReplaceClassTokenFixSchema
67
- ]);
68
- var factEvidenceSchema = z.object({
69
- factId: z.string(),
70
- fact: z.object({
71
- kind: z.string(),
72
- location: factLocationSchema.optional()
73
- }).passthrough()
74
- });
75
- var findingSchema = z.object({
76
- ruleId: z.string(),
77
- ruleVersion: z.string(),
78
- severity: severitySchema,
79
- level: severityLevelSchema,
80
- code: z.string().regex(/^FUI\d{4}$/).optional(),
81
- helpUrl: z.string().url().optional(),
82
- message: z.string(),
83
- fingerprint: z.string(),
84
- location: factLocationSchema,
85
- evidence: z.array(factEvidenceSchema).min(1),
86
- evidenceGrade: evidenceGradeSchema.optional(),
87
- fix: findingFixSchema.optional(),
88
- attributes: z.record(z.unknown()).optional(),
89
- /**
90
- * Product area this finding's file resolved to (topology layer). Optional —
91
- * absent when the repo has no `topology` config. See `topology/resolve-area`.
92
- */
93
- area: z.object({
94
- areaId: z.string(),
95
- areaName: z.string(),
96
- criticality: z.enum(["low", "medium", "high", "revenue", "regulated"]),
97
- owners: z.array(z.string()),
98
- matchedGlob: z.string()
99
- }).optional()
100
- });
101
- var violationSchema = z.object({
102
- nodeId: z.string(),
103
- nodeType: z.string(),
104
- rule: z.string(),
105
- severity: severitySchema,
106
- level: severityLevelSchema.optional(),
107
- code: z.string().regex(/^FUI\d{4}$/).optional(),
108
- helpUrl: z.string().url().optional(),
109
- message: z.string(),
110
- path: z.string().optional(),
111
- suggestion: z.string().optional(),
112
- prop: z.string().optional(),
113
- filePath: z.string().optional(),
114
- line: z.number().int().nonnegative().optional(),
115
- column: z.number().int().nonnegative().optional(),
116
- rawValue: z.string().optional(),
117
- extra: z.record(z.unknown()).optional()
118
- });
119
- var fixSchema = z.object({
120
- nodeId: z.string(),
121
- prop: z.string().optional(),
122
- action: z.enum(["remove", "replace", "add"]),
123
- value: z.unknown().optional(),
124
- description: z.string()
125
- });
126
- var validatorResultSchema = z.object({
127
- validator: z.string(),
128
- severity: severitySchema,
129
- passed: z.boolean(),
130
- violations: z.array(violationSchema),
131
- findings: z.array(findingSchema).optional(),
132
- suggestions: z.array(fixSchema).optional()
133
- });
134
- var governanceVerdictMetadataSchema = z.object({
135
- runner: z.string(),
136
- policyVersion: z.string().optional(),
137
- duration: z.number().nonnegative(),
138
- nodeCount: z.number().int().nonnegative(),
139
- componentTypes: z.array(z.string())
140
- });
141
- var governanceVerdictSchema = z.object({
142
- verdict: z.enum(["pass", "warn", "fail"]).optional(),
143
- passed: z.boolean(),
144
- score: z.number(),
145
- results: z.array(validatorResultSchema),
146
- metadata: governanceVerdictMetadataSchema
147
- });
148
- var suppressionDirectiveSchema = z.object({
149
- ruleId: z.string().optional(),
150
- reason: z.string().min(1),
151
- expiresAt: z.string().datetime().optional(),
152
- expiresOn: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
153
- scope: z.enum(["line", "block", "file"]).default("line"),
154
- code: z.string().regex(/^FUI\d{4}$/).optional()
155
- });
156
- var agentPlanSchema = z.object({
157
- tool: z.enum([
158
- "design_system/list_primitives",
159
- "design_system/conform",
160
- "design_system/prove_compliant"
161
- ]),
162
- args: z.record(z.unknown()),
163
- confidence: z.number().min(0).max(1)
164
- });
165
- var agentFindingSchema = z.object({
166
- code: z.string().regex(/^FUI\d{4}$/).optional(),
167
- ruleId: z.string(),
168
- filePath: z.string(),
169
- line: z.number().int().nonnegative(),
170
- col: z.number().int().nonnegative(),
171
- severity: severitySchema,
172
- level: severityLevelSchema,
173
- message: z.string(),
174
- evidenceGrade: evidenceGradeSchema.optional(),
175
- evidence: z.array(factEvidenceSchema),
176
- plan: agentPlanSchema
177
- });
178
- var AGENT_FORMAT_SCHEMA_VERSION = "typestyle.agent.v2";
179
- var agentIntegritySchema = z.object({
180
- rulesLoaded: z.number().int().nonnegative(),
181
- status: z.enum(["healthy", "degraded", "inert"]),
182
- healthy: z.boolean(),
183
- inert: z.boolean(),
184
- reasons: z.array(z.string())
185
- });
186
- var agentRunProvenanceSchema = z.object({
187
- runId: z.string().regex(/^run_[a-f0-9]{12}$/),
188
- fcid: z.string().min(1),
189
- baselineId: z.string().min(1).optional(),
190
- scope: z.object({
191
- method: z.enum(["three-dot", "tree-diff", "status", "fallback-full", "explicit", "full"]),
192
- gitOk: z.boolean()
193
- }),
194
- engineVersion: z.string().min(1),
195
- scopeHash: z.string().regex(/^[a-f0-9]{64}$/),
196
- inputsHash: z.string().regex(/^[a-f0-9]{64}$/).optional(),
197
- inputFilesHash: z.string().regex(/^[a-f0-9]{64}$/)
198
- });
199
- var agentRunVerdictSchema = z.object({
200
- exitCode: z.union([z.literal(0), z.literal(1)]),
201
- reasons: z.array(z.string()),
202
- gatingFindingCount: z.number().int().nonnegative()
203
- });
204
- var agentFormatBaseSchema = z.object({
205
- schemaVersion: z.literal(AGENT_FORMAT_SCHEMA_VERSION),
206
- summary: z.string(),
207
- integrity: agentIntegritySchema,
208
- fix_first: z.array(agentFindingSchema),
209
- remaining: z.array(agentFindingSchema),
210
- suppression_template: z.object({
211
- directive: z.string(),
212
- requiredFields: z.array(z.string()),
213
- example: z.string()
214
- }),
215
- budget: z.object({
216
- iteration: z.number().int().nonnegative(),
217
- maxIterations: z.number().int().positive(),
218
- scoreDelta: z.number()
219
- }),
220
- findings: z.array(findingSchema).optional(),
221
- suppressions: z.array(suppressionDirectiveSchema).optional(),
222
- provenance: agentRunProvenanceSchema.optional(),
223
- verdict: agentRunVerdictSchema.optional()
224
- });
225
- var agentFormatSchema = z.union([
226
- agentFormatBaseSchema.extend({
227
- passed: z.boolean(),
228
- score: z.number(),
229
- status: z.never().optional(),
230
- reasons: z.never().optional(),
231
- integrity: agentIntegritySchema.extend({
232
- rulesLoaded: z.number().int().positive()
233
- })
234
- }),
235
- agentFormatBaseSchema.extend({
236
- passed: z.literal(false),
237
- score: z.never().optional(),
238
- status: z.literal("indeterminate"),
239
- reasons: z.tuple([z.literal("zero_rules_loaded")]),
240
- integrity: agentIntegritySchema.extend({
241
- rulesLoaded: z.literal(0)
242
- })
243
- }),
244
- // A finalized Run can explicitly allow inert governance. Preserve the
245
- // indeterminate integrity truth while making `passed` match that Run's sole
246
- // verdict; requiring Run pins prevents generic zero-rule envelopes from
247
- // accidentally becoming green.
248
- agentFormatBaseSchema.extend({
249
- passed: z.literal(true),
250
- score: z.never().optional(),
251
- status: z.literal("indeterminate"),
252
- reasons: z.tuple([z.literal("zero_rules_loaded")]),
253
- integrity: agentIntegritySchema.extend({
254
- rulesLoaded: z.literal(0)
255
- }),
256
- provenance: agentRunProvenanceSchema,
257
- verdict: agentRunVerdictSchema.extend({ exitCode: z.literal(0) })
258
- })
259
- ]);
260
- var agentErrorEnvelopeSchema = z.object({
261
- schemaVersion: z.literal(AGENT_FORMAT_SCHEMA_VERSION),
262
- passed: z.literal(false),
263
- error: z.object({
264
- code: z.string().min(1),
265
- message: z.string().min(1)
266
- }),
267
- provenance: agentRunProvenanceSchema.optional(),
268
- verdict: agentRunVerdictSchema.optional(),
269
- cloudReport: z.enum(["reported", "failed", "skipped"]).optional(),
270
- notices: z.array(z.string()).optional()
271
- });
272
- var agentOutputSchema = z.union([agentFormatSchema, agentErrorEnvelopeSchema]);
273
- function normalizeSeverity(severity) {
274
- return severitySchema.safeParse(severity).success ? severity : severityFromLevel(legacySeverityLevelSchema.parse(severity));
275
- }
276
- function normalizeFinding(input) {
277
- return {
278
- ...input,
279
- evidenceGrade: input.evidenceGrade ?? "source_backed",
280
- level: input.level ?? severityLevel(input.severity)
281
- };
282
- }
283
- function normalizeViolation(input) {
284
- return {
285
- ...input,
286
- level: input.level ?? severityLevel(input.severity)
287
- };
288
- }
289
-
290
- export {
291
- factLocationSchema,
292
- findingReplacePropValueFixSchema,
293
- findingReplaceStyleValueFixSchema,
294
- findingReplaceImportFixSchema,
295
- findingReplaceComponentFixSchema,
296
- findingReplaceClassTokenFixSchema,
297
- findingFixSchema,
298
- factEvidenceSchema,
299
- findingSchema,
300
- violationSchema,
301
- fixSchema,
302
- validatorResultSchema,
303
- governanceVerdictMetadataSchema,
304
- governanceVerdictSchema,
305
- suppressionDirectiveSchema,
306
- agentPlanSchema,
307
- agentFindingSchema,
308
- AGENT_FORMAT_SCHEMA_VERSION,
309
- agentIntegritySchema,
310
- agentFormatSchema,
311
- agentErrorEnvelopeSchema,
312
- agentOutputSchema,
313
- normalizeSeverity,
314
- normalizeFinding,
315
- normalizeViolation
316
- };
317
- //# sourceMappingURL=chunk-ZHS52OT4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schemas/index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport {\n legacySeverityLevelSchema,\n severityFromLevel,\n severityLevel,\n severityLevelSchema,\n severitySchema,\n} from \"../severity.js\";\nimport type { LegacySeverityLevel, Severity } from \"../severity.js\";\nimport type { EvidenceGrade } from \"../evidence.js\";\n\nconst evidenceGradeSchema: z.ZodType<EvidenceGrade> = z.enum([\n \"none\",\n \"runtime_advisory\",\n \"provenance_bound\",\n \"source_backed\",\n \"receipt_backed\",\n]);\n\nexport { legacySeverityLevelSchema, severityLevelSchema, severitySchema };\nexport type { LegacySeverityLevel, Severity, SeverityLevel } from \"../severity.js\";\n\nexport const factLocationSchema = z.object({\n file: z.string(),\n line: z.number().int().nonnegative(),\n column: z.number().int().nonnegative(),\n endLine: z.number().int().nonnegative().optional(),\n endColumn: z.number().int().nonnegative().optional(),\n});\nexport type FactLocation = z.infer<typeof factLocationSchema>;\n\nexport const findingReplacePropValueFixSchema = z.object({\n kind: z.literal(\"replacePropValue\"),\n title: z.string(),\n prop: z.string(),\n value: z.unknown(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceStyleValueFixSchema = z.object({\n kind: z.literal(\"replaceStyleValue\"),\n title: z.string(),\n property: z.string(),\n value: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceImportFixSchema = z.object({\n kind: z.literal(\"replaceImport\"),\n title: z.string(),\n from: z.string(),\n to: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceComponentFixSchema = z.object({\n kind: z.literal(\"replaceComponent\"),\n title: z.string(),\n from: z.string(),\n to: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingReplaceClassTokenFixSchema = z.object({\n kind: z.literal(\"replaceClassToken\"),\n title: z.string(),\n from: z.string(),\n to: z.string().nullable(),\n utility: z.string(),\n deterministic: z.boolean().optional(),\n});\n\nexport const findingFixSchema = z.discriminatedUnion(\"kind\", [\n findingReplacePropValueFixSchema,\n findingReplaceStyleValueFixSchema,\n findingReplaceImportFixSchema,\n findingReplaceComponentFixSchema,\n findingReplaceClassTokenFixSchema,\n]);\nexport type FindingFix = z.infer<typeof findingFixSchema>;\nexport type FindingReplacePropValueFix = z.infer<typeof findingReplacePropValueFixSchema>;\nexport type FindingReplaceStyleValueFix = z.infer<typeof findingReplaceStyleValueFixSchema>;\nexport type FindingReplaceImportFix = z.infer<typeof findingReplaceImportFixSchema>;\nexport type FindingReplaceComponentFix = z.infer<typeof findingReplaceComponentFixSchema>;\nexport type FindingReplaceClassTokenFix = z.infer<typeof findingReplaceClassTokenFixSchema>;\n\nexport interface FactEvidence {\n factId: string;\n fact: {\n kind: string;\n location?: FactLocation;\n };\n}\n\nexport const factEvidenceSchema: z.ZodType<FactEvidence> = z.object({\n factId: z.string(),\n fact: z\n .object({\n kind: z.string(),\n location: factLocationSchema.optional(),\n })\n .passthrough(),\n});\n\nexport const findingSchema = z.object({\n ruleId: z.string(),\n ruleVersion: z.string(),\n severity: severitySchema,\n level: severityLevelSchema,\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n helpUrl: z.string().url().optional(),\n message: z.string(),\n fingerprint: z.string(),\n location: factLocationSchema,\n evidence: z.array(factEvidenceSchema).min(1),\n evidenceGrade: evidenceGradeSchema.optional(),\n fix: findingFixSchema.optional(),\n attributes: z.record(z.unknown()).optional(),\n /**\n * Product area this finding's file resolved to (topology layer). Optional —\n * absent when the repo has no `topology` config. See `topology/resolve-area`.\n */\n area: z\n .object({\n areaId: z.string(),\n areaName: z.string(),\n criticality: z.enum([\"low\", \"medium\", \"high\", \"revenue\", \"regulated\"]),\n owners: z.array(z.string()),\n matchedGlob: z.string(),\n })\n .optional(),\n});\nexport type Finding = z.infer<typeof findingSchema>;\n\nexport const violationSchema = z.object({\n nodeId: z.string(),\n nodeType: z.string(),\n rule: z.string(),\n severity: severitySchema,\n level: severityLevelSchema.optional(),\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n helpUrl: z.string().url().optional(),\n message: z.string(),\n path: z.string().optional(),\n suggestion: z.string().optional(),\n prop: z.string().optional(),\n filePath: z.string().optional(),\n line: z.number().int().nonnegative().optional(),\n column: z.number().int().nonnegative().optional(),\n rawValue: z.string().optional(),\n extra: z.record(z.unknown()).optional(),\n});\nexport type Violation = z.infer<typeof violationSchema>;\n\nexport const fixSchema = z.object({\n nodeId: z.string(),\n prop: z.string().optional(),\n action: z.enum([\"remove\", \"replace\", \"add\"]),\n value: z.unknown().optional(),\n description: z.string(),\n});\nexport type Fix = z.infer<typeof fixSchema>;\n\nexport const validatorResultSchema = z.object({\n validator: z.string(),\n severity: severitySchema,\n passed: z.boolean(),\n violations: z.array(violationSchema),\n findings: z.array(findingSchema).optional(),\n suggestions: z.array(fixSchema).optional(),\n});\nexport type ValidatorResult = z.infer<typeof validatorResultSchema>;\n\nexport const governanceVerdictMetadataSchema = z.object({\n runner: z.string(),\n policyVersion: z.string().optional(),\n duration: z.number().nonnegative(),\n nodeCount: z.number().int().nonnegative(),\n componentTypes: z.array(z.string()),\n});\nexport type GovernanceVerdictMetadata = z.infer<typeof governanceVerdictMetadataSchema>;\n\nexport const governanceVerdictSchema = z.object({\n verdict: z.enum([\"pass\", \"warn\", \"fail\"]).optional(),\n passed: z.boolean(),\n score: z.number(),\n results: z.array(validatorResultSchema),\n metadata: governanceVerdictMetadataSchema,\n});\nexport type GovernanceVerdict = z.infer<typeof governanceVerdictSchema>;\n\nexport const suppressionDirectiveSchema = z.object({\n ruleId: z.string().optional(),\n reason: z.string().min(1),\n expiresAt: z.string().datetime().optional(),\n expiresOn: z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/)\n .optional(),\n scope: z.enum([\"line\", \"block\", \"file\"]).default(\"line\"),\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n});\nexport type SuppressionDirective = z.infer<typeof suppressionDirectiveSchema>;\n\nexport const agentPlanSchema = z.object({\n tool: z.enum([\n \"design_system/list_primitives\",\n \"design_system/conform\",\n \"design_system/prove_compliant\",\n ]),\n args: z.record(z.unknown()),\n confidence: z.number().min(0).max(1),\n});\n\nexport const agentFindingSchema = z.object({\n code: z\n .string()\n .regex(/^FUI\\d{4}$/)\n .optional(),\n ruleId: z.string(),\n filePath: z.string(),\n line: z.number().int().nonnegative(),\n col: z.number().int().nonnegative(),\n severity: severitySchema,\n level: severityLevelSchema,\n message: z.string(),\n evidenceGrade: evidenceGradeSchema.optional(),\n evidence: z.array(factEvidenceSchema),\n plan: agentPlanSchema,\n});\n\nexport const AGENT_FORMAT_SCHEMA_VERSION = \"typestyle.agent.v2\" as const;\n\nexport const agentIntegritySchema = z.object({\n rulesLoaded: z.number().int().nonnegative(),\n status: z.enum([\"healthy\", \"degraded\", \"inert\"]),\n healthy: z.boolean(),\n inert: z.boolean(),\n reasons: z.array(z.string()),\n});\n\nconst agentRunProvenanceSchema = z.object({\n runId: z.string().regex(/^run_[a-f0-9]{12}$/),\n fcid: z.string().min(1),\n baselineId: z.string().min(1).optional(),\n scope: z.object({\n method: z.enum([\"three-dot\", \"tree-diff\", \"status\", \"fallback-full\", \"explicit\", \"full\"]),\n gitOk: z.boolean(),\n }),\n engineVersion: z.string().min(1),\n scopeHash: z.string().regex(/^[a-f0-9]{64}$/),\n inputsHash: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .optional(),\n inputFilesHash: z.string().regex(/^[a-f0-9]{64}$/),\n});\n\nconst agentRunVerdictSchema = z.object({\n exitCode: z.union([z.literal(0), z.literal(1)]),\n reasons: z.array(z.string()),\n gatingFindingCount: z.number().int().nonnegative(),\n});\n\nconst agentFormatBaseSchema = z.object({\n schemaVersion: z.literal(AGENT_FORMAT_SCHEMA_VERSION),\n summary: z.string(),\n integrity: agentIntegritySchema,\n fix_first: z.array(agentFindingSchema),\n remaining: z.array(agentFindingSchema),\n suppression_template: z.object({\n directive: z.string(),\n requiredFields: z.array(z.string()),\n example: z.string(),\n }),\n budget: z.object({\n iteration: z.number().int().nonnegative(),\n maxIterations: z.number().int().positive(),\n scoreDelta: z.number(),\n }),\n findings: z.array(findingSchema).optional(),\n suppressions: z.array(suppressionDirectiveSchema).optional(),\n provenance: agentRunProvenanceSchema.optional(),\n verdict: agentRunVerdictSchema.optional(),\n});\n\nexport const agentFormatSchema = z.union([\n agentFormatBaseSchema.extend({\n passed: z.boolean(),\n score: z.number(),\n status: z.never().optional(),\n reasons: z.never().optional(),\n integrity: agentIntegritySchema.extend({\n rulesLoaded: z.number().int().positive(),\n }),\n }),\n agentFormatBaseSchema.extend({\n passed: z.literal(false),\n score: z.never().optional(),\n status: z.literal(\"indeterminate\"),\n reasons: z.tuple([z.literal(\"zero_rules_loaded\")]),\n integrity: agentIntegritySchema.extend({\n rulesLoaded: z.literal(0),\n }),\n }),\n // A finalized Run can explicitly allow inert governance. Preserve the\n // indeterminate integrity truth while making `passed` match that Run's sole\n // verdict; requiring Run pins prevents generic zero-rule envelopes from\n // accidentally becoming green.\n agentFormatBaseSchema.extend({\n passed: z.literal(true),\n score: z.never().optional(),\n status: z.literal(\"indeterminate\"),\n reasons: z.tuple([z.literal(\"zero_rules_loaded\")]),\n integrity: agentIntegritySchema.extend({\n rulesLoaded: z.literal(0),\n }),\n provenance: agentRunProvenanceSchema,\n verdict: agentRunVerdictSchema.extend({ exitCode: z.literal(0) }),\n }),\n]);\nexport type AgentFormat = z.infer<typeof agentFormatSchema>;\n\nexport const agentErrorEnvelopeSchema = z.object({\n schemaVersion: z.literal(AGENT_FORMAT_SCHEMA_VERSION),\n passed: z.literal(false),\n error: z.object({\n code: z.string().min(1),\n message: z.string().min(1),\n }),\n provenance: agentRunProvenanceSchema.optional(),\n verdict: agentRunVerdictSchema.optional(),\n cloudReport: z.enum([\"reported\", \"failed\", \"skipped\"]).optional(),\n notices: z.array(z.string()).optional(),\n});\nexport type AgentErrorEnvelope = z.infer<typeof agentErrorEnvelopeSchema>;\n\nexport const agentOutputSchema = z.union([agentFormatSchema, agentErrorEnvelopeSchema]);\nexport type AgentOutput = z.infer<typeof agentOutputSchema>;\n\nexport function normalizeSeverity(severity: Severity | LegacySeverityLevel): Severity {\n return severitySchema.safeParse(severity).success\n ? (severity as Severity)\n : severityFromLevel(legacySeverityLevelSchema.parse(severity));\n}\n\nexport function normalizeFinding(\n input: Omit<Finding, \"level\"> & { level?: Finding[\"level\"] }\n): Finding {\n return {\n ...input,\n evidenceGrade: input.evidenceGrade ?? \"source_backed\",\n level: input.level ?? severityLevel(input.severity),\n };\n}\n\nexport function normalizeViolation(\n input: Omit<Violation, \"level\"> & { level?: Violation[\"level\"] }\n): Violation {\n return {\n ...input,\n level: input.level ?? severityLevel(input.severity),\n };\n}\n"],"mappings":"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","names":[]}