@usefragments/core 1.7.1 → 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.
@@ -0,0 +1,375 @@
1
+ // src/governance-telemetry.ts
2
+ var GOVERNANCE_TELEMETRY_TOP_LEVEL_FIELDS = [
3
+ "contractHash",
4
+ "schemaVersion",
5
+ "generatedAt",
6
+ "root",
7
+ "hook",
8
+ "git",
9
+ "summary",
10
+ "groups",
11
+ "suppressions",
12
+ "bypassEvents",
13
+ "hookEvents",
14
+ "packageVocabularies",
15
+ "adoption",
16
+ "health",
17
+ "topology",
18
+ "source",
19
+ "gateRung",
20
+ "diffOnly",
21
+ "failOnWarnings"
22
+ ];
23
+ var GOVERNANCE_TELEMETRY_FIELDS = [
24
+ {
25
+ path: "schemaVersion",
26
+ type: '"fragments-governance-report:v1"',
27
+ purpose: "Pins the accepted wire shape and compatibility policy.",
28
+ carriage: "none",
29
+ topLevelField: "schemaVersion"
30
+ },
31
+ {
32
+ path: "generatedAt",
33
+ type: "ISO-8601 string",
34
+ purpose: "Records when the CLI produced the report.",
35
+ carriage: "none",
36
+ topLevelField: "generatedAt"
37
+ },
38
+ {
39
+ path: "root.{workspaceRoot,packageRoot,packageName}",
40
+ type: "string fields",
41
+ purpose: "Identifies the scanned workspace and package roots.",
42
+ carriage: "none",
43
+ topLevelField: "root"
44
+ },
45
+ {
46
+ path: "hook.{installedAt,mode,agents[]}",
47
+ type: "installation metadata",
48
+ purpose: "Describes the local hook installation that produced evidence.",
49
+ carriage: "none",
50
+ topLevelField: "hook"
51
+ },
52
+ {
53
+ path: "git.{baseRef,headSha,branch,repoFullName,pullRequestNumber}",
54
+ type: "Git and provider identifiers",
55
+ purpose: "Attaches results to the correct repository, commit and pull request.",
56
+ carriage: "none",
57
+ topLevelField: "git"
58
+ },
59
+ {
60
+ path: "summary.{filesScanned,rulesActive,presetsLoaded[],groupCount,occurrenceCount,ignoredCount,classnamesScanned,classnamesDynamic,classnamesResolved,totalFindings,errorCount,warnCount,infoCount,passed}",
61
+ type: "counts, verdict and active preset names",
62
+ purpose: "Reports scan volume and result totals without finding rows.",
63
+ carriage: "derived",
64
+ topLevelField: "summary"
65
+ },
66
+ {
67
+ path: "summary.ignoredByReason.{reason}",
68
+ type: "configured reason name \u2192 count",
69
+ purpose: "Counts ignored findings by the reason configured by the repository.",
70
+ carriage: "derived",
71
+ topLevelField: "summary"
72
+ },
73
+ {
74
+ path: "summary.countsBySeverity.{error,warn,info}",
75
+ type: "severity counts",
76
+ purpose: "Counts findings in each fixed severity bucket.",
77
+ carriage: "derived",
78
+ topLevelField: "summary"
79
+ },
80
+ {
81
+ path: "summary.countsByCategory.{category}",
82
+ type: "configured category name \u2192 count",
83
+ purpose: "Counts findings by the rule categories present in the scan.",
84
+ carriage: "derived",
85
+ topLevelField: "summary"
86
+ },
87
+ {
88
+ path: "summary.integrity.{status,declared,fatalForCi,blockingCapable,summary}",
89
+ type: "governance-integrity verdict",
90
+ purpose: "Explains whether the resolved policy is capable of enforcement.",
91
+ carriage: "derived",
92
+ topLevelField: "summary"
93
+ },
94
+ {
95
+ path: "summary.integrity.families[].{id,armed,reason,remediation}",
96
+ type: "integrity-family status",
97
+ purpose: "Explains the enforcement readiness of each governance family.",
98
+ carriage: "derived",
99
+ topLevelField: "summary"
100
+ },
101
+ {
102
+ path: "summary.integrity.families[].rules[]",
103
+ type: "rule identifiers",
104
+ purpose: "Names the active rules contributing to an integrity family.",
105
+ carriage: "derived",
106
+ topLevelField: "summary"
107
+ },
108
+ {
109
+ path: "summary.integrity.armed[]",
110
+ type: "integrity-family identifiers",
111
+ purpose: "Names the governance families capable of enforcement.",
112
+ carriage: "derived",
113
+ topLevelField: "summary"
114
+ },
115
+ {
116
+ path: "summary.integrity.remediations[]",
117
+ type: "remediation messages",
118
+ purpose: "Explains how to make an inert or degraded policy effective.",
119
+ carriage: "derived",
120
+ topLevelField: "summary"
121
+ },
122
+ {
123
+ path: "summary.integrity.configDiagnostics[].{code,kind,severity,path,message}",
124
+ type: "configuration diagnostics",
125
+ purpose: "Reports inert or conflicting authored governance configuration.",
126
+ carriage: "structured-source",
127
+ topLevelField: "summary"
128
+ },
129
+ {
130
+ path: "summary.integrity.roster.{configured,active,inert}",
131
+ type: "rule roster counts",
132
+ purpose: "Counts configured, active and inert governance rules.",
133
+ carriage: "derived",
134
+ topLevelField: "summary"
135
+ },
136
+ {
137
+ path: "summary.countsByBaselineState.{baselined,new}",
138
+ type: "baseline-state counts",
139
+ purpose: "Separates accepted baseline debt from newly introduced findings.",
140
+ carriage: "derived",
141
+ topLevelField: "summary"
142
+ },
143
+ {
144
+ path: "groups[].{groupId,ruleId,category,severity,packageRoot,filePath}",
145
+ type: "finding group metadata",
146
+ purpose: "Identifies each grouped rule failure and repository-relative path.",
147
+ carriage: "none",
148
+ topLevelField: "groups"
149
+ },
150
+ {
151
+ path: "groups[].message",
152
+ type: "string",
153
+ purpose: "Explains the failure and may quote the offending source literal.",
154
+ carriage: "source-literal",
155
+ topLevelField: "groups"
156
+ },
157
+ {
158
+ path: "groups[].normalizedOffense.kind",
159
+ type: "normalized-offense category",
160
+ purpose: "Names the kind of source offense represented by the group.",
161
+ carriage: "derived",
162
+ topLevelField: "groups"
163
+ },
164
+ {
165
+ path: "groups[].normalizedOffense.raw",
166
+ type: "normalized source offense",
167
+ purpose: "Carries the exact offending source substring.",
168
+ carriage: "source-literal",
169
+ topLevelField: "groups"
170
+ },
171
+ {
172
+ path: "groups[].normalizedOffense.canonical",
173
+ type: "normalized source offense",
174
+ purpose: "Carries the derived canonical representation of the offense.",
175
+ carriage: "derived",
176
+ topLevelField: "groups"
177
+ },
178
+ {
179
+ path: "groups[].occurrences[].occurrenceId",
180
+ type: "stable occurrence identifier",
181
+ purpose: "Identifies one occurrence within a finding group.",
182
+ carriage: "derived",
183
+ topLevelField: "groups"
184
+ },
185
+ {
186
+ path: "groups[].occurrences[].location.{file,line,column,endLine,endColumn}",
187
+ type: "repository-relative location",
188
+ purpose: "Places each occurrence at its exact file/line/column range.",
189
+ carriage: "none",
190
+ topLevelField: "groups"
191
+ },
192
+ {
193
+ path: "groups[].occurrences[].area.{areaId,areaName,criticality,owners[],matchedGlob}",
194
+ type: "area identifiers, owners and criticality",
195
+ purpose: "Carries the configured product-area classification for the file.",
196
+ carriage: "structured-source",
197
+ topLevelField: "groups"
198
+ },
199
+ {
200
+ path: "groups[].occurrences[].evidence[].factId",
201
+ type: "fact identifier",
202
+ purpose: "Links the occurrence to the extracted fact supporting it.",
203
+ carriage: "derived",
204
+ topLevelField: "groups"
205
+ },
206
+ {
207
+ path: "groups[].occurrences[].evidence[].fact.kind",
208
+ type: "fact discriminator",
209
+ purpose: "Names the extracted rule-fact shape.",
210
+ carriage: "none",
211
+ topLevelField: "groups"
212
+ },
213
+ {
214
+ path: "groups[].occurrences[].evidence[].fact.location.{file,line,column,endLine,endColumn}",
215
+ type: "repository-relative location",
216
+ purpose: "Locates the source-backed fact used as evidence.",
217
+ carriage: "none",
218
+ topLevelField: "groups"
219
+ },
220
+ {
221
+ path: "groups[].occurrences[].evidence[].fact.{ruleSpecificField}",
222
+ type: "extensible rule-specific fact fields",
223
+ purpose: "Carries rule-specific parsed facts; fields may include selectors, properties and source values.",
224
+ carriage: "structured-source",
225
+ topLevelField: "groups"
226
+ },
227
+ {
228
+ path: "groups[].suggestedReplacement.{kind,from,to,certainty,reason}",
229
+ type: "deterministic replacement",
230
+ purpose: "Carries the deterministic replacement the CLI can apply.",
231
+ carriage: "derived",
232
+ topLevelField: "groups"
233
+ },
234
+ {
235
+ path: "groups[].suggestedReplacement.edit.{file,start,end,replacement}",
236
+ type: "deterministic edit range",
237
+ purpose: "Locates and describes the exact edit the CLI can apply.",
238
+ carriage: "derived",
239
+ topLevelField: "groups"
240
+ },
241
+ {
242
+ path: "suppressions[].{id,kind,file,line,column,code,expiresOn,attachedLine,attachedTo,directive}",
243
+ type: "directive identity, location and attachment metadata",
244
+ purpose: "Reports matched in-source governance directives.",
245
+ carriage: "none",
246
+ topLevelField: "suppressions"
247
+ },
248
+ {
249
+ path: "suppressions[].reason",
250
+ type: "authored directive reason",
251
+ purpose: "Carries the repository-authored reason for the suppression.",
252
+ carriage: "source-literal",
253
+ topLevelField: "suppressions"
254
+ },
255
+ {
256
+ path: "bypassEvents[].{code,file,line}",
257
+ type: "rule code and source location",
258
+ purpose: "Records directives that actually bypassed a finding in this run.",
259
+ carriage: "none",
260
+ topLevelField: "bypassEvents"
261
+ },
262
+ {
263
+ path: "bypassEvents[].reason",
264
+ type: "authored directive reason",
265
+ purpose: "Carries the repository-authored reason for the bypass.",
266
+ carriage: "source-literal",
267
+ topLevelField: "bypassEvents"
268
+ },
269
+ {
270
+ path: "bypassEvents[].area.{areaId,areaName,criticality,matchedGlob}",
271
+ type: "configured product-area metadata",
272
+ purpose: "Classifies the bypass by its configured product area.",
273
+ carriage: "structured-source",
274
+ topLevelField: "bypassEvents"
275
+ },
276
+ {
277
+ path: "hookEvents[].{eventId,kind,ruleId,code,file,mode,agent,timestamp,reasonClass}",
278
+ type: "bounded hook decision receipts",
279
+ purpose: "Reports deny, downgrade, suppression and fail-open decisions.",
280
+ carriage: "none",
281
+ topLevelField: "hookEvents"
282
+ },
283
+ {
284
+ path: "packageVocabularies[].{source,packageName,status,manifestPath,digest,commit}",
285
+ type: "compiled canonical-package vocabulary records",
286
+ purpose: "Publishes package vocabulary proposed by authoritative local discovery.",
287
+ carriage: "structured-source",
288
+ topLevelField: "packageVocabularies"
289
+ },
290
+ {
291
+ path: "packageVocabularies[].roots[].{name,members[]}",
292
+ type: "compiled component roots and members",
293
+ purpose: "Publishes the canonical component vocabulary discovered from the package.",
294
+ carriage: "structured-source",
295
+ topLevelField: "packageVocabularies"
296
+ },
297
+ {
298
+ path: "adoption.{metricVersion,adoptedUsages,ownableUsages}",
299
+ type: "versioned component-identity usage counts",
300
+ purpose: "Records the exact numerator and denominator used for adoption history.",
301
+ carriage: "derived",
302
+ topLevelField: "adoption"
303
+ },
304
+ {
305
+ path: "adoption.shadows[].{componentKey,displayName,canonicalTarget,usageCount}",
306
+ type: "bounded component-identity summaries",
307
+ purpose: "Explains which shadow components are moving the adoption curve without uploading source.",
308
+ carriage: "derived",
309
+ topLevelField: "adoption"
310
+ },
311
+ {
312
+ path: "health.{metricVersion,checkedSites,violatingSites}",
313
+ type: "versioned contract-site counts",
314
+ purpose: "Records how many sites contract-scope rules inspected and how many distinct sites carried a finding.",
315
+ carriage: "derived",
316
+ topLevelField: "health"
317
+ },
318
+ {
319
+ path: "health.populations.{componentUsages,tokenReferences}",
320
+ type: "per-population site counts",
321
+ purpose: "Names the measured populations behind the checked-site denominator.",
322
+ carriage: "derived",
323
+ topLevelField: "health"
324
+ },
325
+ {
326
+ path: "topology.areaImpact[].{areaId,areaName,beforeOpen,afterOpen,introduced,persistent,resolved}",
327
+ type: "area identifiers and before/after counts",
328
+ purpose: "Reports bounded product-area impact totals.",
329
+ carriage: "derived",
330
+ topLevelField: "topology"
331
+ },
332
+ {
333
+ path: "contractHash",
334
+ type: "64-character FCID",
335
+ purpose: "Pins the exact compiled contract enforced by the run.",
336
+ carriage: "derived",
337
+ topLevelField: "contractHash"
338
+ },
339
+ {
340
+ path: "source",
341
+ type: '"ci"',
342
+ purpose: "Identifies the report producer.",
343
+ carriage: "none",
344
+ topLevelField: "source"
345
+ },
346
+ {
347
+ path: "gateRung",
348
+ type: '"ci" | "cli"',
349
+ purpose: "Identifies the enforcement rung that produced the verdict.",
350
+ carriage: "none",
351
+ topLevelField: "gateRung"
352
+ },
353
+ {
354
+ path: "diffOnly",
355
+ type: "boolean",
356
+ purpose: "States whether the scan was restricted to changed files.",
357
+ carriage: "none",
358
+ topLevelField: "diffOnly"
359
+ },
360
+ {
361
+ path: "failOnWarnings",
362
+ type: "boolean",
363
+ purpose: "States whether warnings were gating for this run.",
364
+ carriage: "none",
365
+ topLevelField: "failOnWarnings"
366
+ }
367
+ ];
368
+ var GOVERNANCE_TELEMETRY_SOURCE_DISCLOSURE = "The report carries source text in named fields: offending literals, messages that may quote them, structured rule facts, authored suppression and bypass reasons, and compiled package vocabulary. It never uploads whole files, whole source lines or function bodies.";
369
+
370
+ export {
371
+ GOVERNANCE_TELEMETRY_TOP_LEVEL_FIELDS,
372
+ GOVERNANCE_TELEMETRY_FIELDS,
373
+ GOVERNANCE_TELEMETRY_SOURCE_DISCLOSURE
374
+ };
375
+ //# sourceMappingURL=chunk-MZ4SW3TP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/governance-telemetry.ts"],"sourcesContent":["/**\n * Public disclosure contract for `fragments-governance-report:v1`.\n *\n * Brace groups enumerate closed sibling fields without hiding additions behind\n * `*`. The three named placeholder fields are the only intentionally open\n * records: configured ignore reasons, configured categories, and rule-specific\n * evidence facts.\n */\nexport type GovernanceTelemetryCarriage =\n | \"none\"\n | \"derived\"\n | \"source-literal\"\n | \"structured-source\";\n\nexport interface GovernanceTelemetryField {\n path: string;\n type: string;\n purpose: string;\n carriage: GovernanceTelemetryCarriage;\n topLevelField: GovernanceTelemetryTopLevelField;\n}\n\nexport const GOVERNANCE_TELEMETRY_TOP_LEVEL_FIELDS = [\n \"contractHash\",\n \"schemaVersion\",\n \"generatedAt\",\n \"root\",\n \"hook\",\n \"git\",\n \"summary\",\n \"groups\",\n \"suppressions\",\n \"bypassEvents\",\n \"hookEvents\",\n \"packageVocabularies\",\n \"adoption\",\n \"health\",\n \"topology\",\n \"source\",\n \"gateRung\",\n \"diffOnly\",\n \"failOnWarnings\",\n] as const;\n\nexport type GovernanceTelemetryTopLevelField =\n (typeof GOVERNANCE_TELEMETRY_TOP_LEVEL_FIELDS)[number];\n\nexport const GOVERNANCE_TELEMETRY_FIELDS = [\n {\n path: \"schemaVersion\",\n type: '\"fragments-governance-report:v1\"',\n purpose: \"Pins the accepted wire shape and compatibility policy.\",\n carriage: \"none\",\n topLevelField: \"schemaVersion\",\n },\n {\n path: \"generatedAt\",\n type: \"ISO-8601 string\",\n purpose: \"Records when the CLI produced the report.\",\n carriage: \"none\",\n topLevelField: \"generatedAt\",\n },\n {\n path: \"root.{workspaceRoot,packageRoot,packageName}\",\n type: \"string fields\",\n purpose: \"Identifies the scanned workspace and package roots.\",\n carriage: \"none\",\n topLevelField: \"root\",\n },\n {\n path: \"hook.{installedAt,mode,agents[]}\",\n type: \"installation metadata\",\n purpose: \"Describes the local hook installation that produced evidence.\",\n carriage: \"none\",\n topLevelField: \"hook\",\n },\n {\n path: \"git.{baseRef,headSha,branch,repoFullName,pullRequestNumber}\",\n type: \"Git and provider identifiers\",\n purpose: \"Attaches results to the correct repository, commit and pull request.\",\n carriage: \"none\",\n topLevelField: \"git\",\n },\n {\n path: \"summary.{filesScanned,rulesActive,presetsLoaded[],groupCount,occurrenceCount,ignoredCount,classnamesScanned,classnamesDynamic,classnamesResolved,totalFindings,errorCount,warnCount,infoCount,passed}\",\n type: \"counts, verdict and active preset names\",\n purpose: \"Reports scan volume and result totals without finding rows.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.ignoredByReason.{reason}\",\n type: \"configured reason name → count\",\n purpose: \"Counts ignored findings by the reason configured by the repository.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.countsBySeverity.{error,warn,info}\",\n type: \"severity counts\",\n purpose: \"Counts findings in each fixed severity bucket.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.countsByCategory.{category}\",\n type: \"configured category name → count\",\n purpose: \"Counts findings by the rule categories present in the scan.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.integrity.{status,declared,fatalForCi,blockingCapable,summary}\",\n type: \"governance-integrity verdict\",\n purpose: \"Explains whether the resolved policy is capable of enforcement.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.integrity.families[].{id,armed,reason,remediation}\",\n type: \"integrity-family status\",\n purpose: \"Explains the enforcement readiness of each governance family.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.integrity.families[].rules[]\",\n type: \"rule identifiers\",\n purpose: \"Names the active rules contributing to an integrity family.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.integrity.armed[]\",\n type: \"integrity-family identifiers\",\n purpose: \"Names the governance families capable of enforcement.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.integrity.remediations[]\",\n type: \"remediation messages\",\n purpose: \"Explains how to make an inert or degraded policy effective.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.integrity.configDiagnostics[].{code,kind,severity,path,message}\",\n type: \"configuration diagnostics\",\n purpose: \"Reports inert or conflicting authored governance configuration.\",\n carriage: \"structured-source\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.integrity.roster.{configured,active,inert}\",\n type: \"rule roster counts\",\n purpose: \"Counts configured, active and inert governance rules.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"summary.countsByBaselineState.{baselined,new}\",\n type: \"baseline-state counts\",\n purpose: \"Separates accepted baseline debt from newly introduced findings.\",\n carriage: \"derived\",\n topLevelField: \"summary\",\n },\n {\n path: \"groups[].{groupId,ruleId,category,severity,packageRoot,filePath}\",\n type: \"finding group metadata\",\n purpose: \"Identifies each grouped rule failure and repository-relative path.\",\n carriage: \"none\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].message\",\n type: \"string\",\n purpose: \"Explains the failure and may quote the offending source literal.\",\n carriage: \"source-literal\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].normalizedOffense.kind\",\n type: \"normalized-offense category\",\n purpose: \"Names the kind of source offense represented by the group.\",\n carriage: \"derived\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].normalizedOffense.raw\",\n type: \"normalized source offense\",\n purpose: \"Carries the exact offending source substring.\",\n carriage: \"source-literal\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].normalizedOffense.canonical\",\n type: \"normalized source offense\",\n purpose: \"Carries the derived canonical representation of the offense.\",\n carriage: \"derived\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].occurrences[].occurrenceId\",\n type: \"stable occurrence identifier\",\n purpose: \"Identifies one occurrence within a finding group.\",\n carriage: \"derived\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].occurrences[].location.{file,line,column,endLine,endColumn}\",\n type: \"repository-relative location\",\n purpose: \"Places each occurrence at its exact file/line/column range.\",\n carriage: \"none\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].occurrences[].area.{areaId,areaName,criticality,owners[],matchedGlob}\",\n type: \"area identifiers, owners and criticality\",\n purpose: \"Carries the configured product-area classification for the file.\",\n carriage: \"structured-source\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].occurrences[].evidence[].factId\",\n type: \"fact identifier\",\n purpose: \"Links the occurrence to the extracted fact supporting it.\",\n carriage: \"derived\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].occurrences[].evidence[].fact.kind\",\n type: \"fact discriminator\",\n purpose: \"Names the extracted rule-fact shape.\",\n carriage: \"none\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].occurrences[].evidence[].fact.location.{file,line,column,endLine,endColumn}\",\n type: \"repository-relative location\",\n purpose: \"Locates the source-backed fact used as evidence.\",\n carriage: \"none\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].occurrences[].evidence[].fact.{ruleSpecificField}\",\n type: \"extensible rule-specific fact fields\",\n purpose:\n \"Carries rule-specific parsed facts; fields may include selectors, properties and source values.\",\n carriage: \"structured-source\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].suggestedReplacement.{kind,from,to,certainty,reason}\",\n type: \"deterministic replacement\",\n purpose: \"Carries the deterministic replacement the CLI can apply.\",\n carriage: \"derived\",\n topLevelField: \"groups\",\n },\n {\n path: \"groups[].suggestedReplacement.edit.{file,start,end,replacement}\",\n type: \"deterministic edit range\",\n purpose: \"Locates and describes the exact edit the CLI can apply.\",\n carriage: \"derived\",\n topLevelField: \"groups\",\n },\n {\n path: \"suppressions[].{id,kind,file,line,column,code,expiresOn,attachedLine,attachedTo,directive}\",\n type: \"directive identity, location and attachment metadata\",\n purpose: \"Reports matched in-source governance directives.\",\n carriage: \"none\",\n topLevelField: \"suppressions\",\n },\n {\n path: \"suppressions[].reason\",\n type: \"authored directive reason\",\n purpose: \"Carries the repository-authored reason for the suppression.\",\n carriage: \"source-literal\",\n topLevelField: \"suppressions\",\n },\n {\n path: \"bypassEvents[].{code,file,line}\",\n type: \"rule code and source location\",\n purpose: \"Records directives that actually bypassed a finding in this run.\",\n carriage: \"none\",\n topLevelField: \"bypassEvents\",\n },\n {\n path: \"bypassEvents[].reason\",\n type: \"authored directive reason\",\n purpose: \"Carries the repository-authored reason for the bypass.\",\n carriage: \"source-literal\",\n topLevelField: \"bypassEvents\",\n },\n {\n path: \"bypassEvents[].area.{areaId,areaName,criticality,matchedGlob}\",\n type: \"configured product-area metadata\",\n purpose: \"Classifies the bypass by its configured product area.\",\n carriage: \"structured-source\",\n topLevelField: \"bypassEvents\",\n },\n {\n path: \"hookEvents[].{eventId,kind,ruleId,code,file,mode,agent,timestamp,reasonClass}\",\n type: \"bounded hook decision receipts\",\n purpose: \"Reports deny, downgrade, suppression and fail-open decisions.\",\n carriage: \"none\",\n topLevelField: \"hookEvents\",\n },\n {\n path: \"packageVocabularies[].{source,packageName,status,manifestPath,digest,commit}\",\n type: \"compiled canonical-package vocabulary records\",\n purpose: \"Publishes package vocabulary proposed by authoritative local discovery.\",\n carriage: \"structured-source\",\n topLevelField: \"packageVocabularies\",\n },\n {\n path: \"packageVocabularies[].roots[].{name,members[]}\",\n type: \"compiled component roots and members\",\n purpose: \"Publishes the canonical component vocabulary discovered from the package.\",\n carriage: \"structured-source\",\n topLevelField: \"packageVocabularies\",\n },\n {\n path: \"adoption.{metricVersion,adoptedUsages,ownableUsages}\",\n type: \"versioned component-identity usage counts\",\n purpose: \"Records the exact numerator and denominator used for adoption history.\",\n carriage: \"derived\",\n topLevelField: \"adoption\",\n },\n {\n path: \"adoption.shadows[].{componentKey,displayName,canonicalTarget,usageCount}\",\n type: \"bounded component-identity summaries\",\n purpose:\n \"Explains which shadow components are moving the adoption curve without uploading source.\",\n carriage: \"derived\",\n topLevelField: \"adoption\",\n },\n {\n path: \"health.{metricVersion,checkedSites,violatingSites}\",\n type: \"versioned contract-site counts\",\n purpose:\n \"Records how many sites contract-scope rules inspected and how many distinct sites carried a finding.\",\n carriage: \"derived\",\n topLevelField: \"health\",\n },\n {\n path: \"health.populations.{componentUsages,tokenReferences}\",\n type: \"per-population site counts\",\n purpose: \"Names the measured populations behind the checked-site denominator.\",\n carriage: \"derived\",\n topLevelField: \"health\",\n },\n {\n path: \"topology.areaImpact[].{areaId,areaName,beforeOpen,afterOpen,introduced,persistent,resolved}\",\n type: \"area identifiers and before/after counts\",\n purpose: \"Reports bounded product-area impact totals.\",\n carriage: \"derived\",\n topLevelField: \"topology\",\n },\n {\n path: \"contractHash\",\n type: \"64-character FCID\",\n purpose: \"Pins the exact compiled contract enforced by the run.\",\n carriage: \"derived\",\n topLevelField: \"contractHash\",\n },\n {\n path: \"source\",\n type: '\"ci\"',\n purpose: \"Identifies the report producer.\",\n carriage: \"none\",\n topLevelField: \"source\",\n },\n {\n path: \"gateRung\",\n type: '\"ci\" | \"cli\"',\n purpose: \"Identifies the enforcement rung that produced the verdict.\",\n carriage: \"none\",\n topLevelField: \"gateRung\",\n },\n {\n path: \"diffOnly\",\n type: \"boolean\",\n purpose: \"States whether the scan was restricted to changed files.\",\n carriage: \"none\",\n topLevelField: \"diffOnly\",\n },\n {\n path: \"failOnWarnings\",\n type: \"boolean\",\n purpose: \"States whether warnings were gating for this run.\",\n carriage: \"none\",\n topLevelField: \"failOnWarnings\",\n },\n] as const satisfies readonly GovernanceTelemetryField[];\n\nexport const GOVERNANCE_TELEMETRY_SOURCE_DISCLOSURE =\n \"The report carries source text in named fields: offending literals, messages that may quote them, structured rule facts, authored suppression and bypass reasons, and compiled package vocabulary. It never uploads whole files, whole source lines or function bodies.\";\n"],"mappings":"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","names":[]}