@geotechcli/core 0.4.77 → 0.4.78

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 (129) hide show
  1. package/dist/agents/data-tools.js +38 -1
  2. package/dist/agents/data-tools.js.map +1 -1
  3. package/dist/agents/fem-artifact-guards.d.ts +14 -0
  4. package/dist/agents/fem-artifact-guards.d.ts.map +1 -0
  5. package/dist/agents/fem-artifact-guards.js +53 -0
  6. package/dist/agents/fem-artifact-guards.js.map +1 -0
  7. package/dist/agents/fem-tools.js +86 -1
  8. package/dist/agents/fem-tools.js.map +1 -1
  9. package/dist/agents/filesystem-tools.js +13 -0
  10. package/dist/agents/filesystem-tools.js.map +1 -1
  11. package/dist/agents/provider-operating-contract.d.ts +3 -3
  12. package/dist/agents/provider-operating-contract.d.ts.map +1 -1
  13. package/dist/agents/provider-operating-contract.js +10 -46
  14. package/dist/agents/provider-operating-contract.js.map +1 -1
  15. package/dist/agents/runtime-bootstrap.d.ts +1 -0
  16. package/dist/agents/runtime-bootstrap.d.ts.map +1 -1
  17. package/dist/agents/runtime-bootstrap.js +1 -0
  18. package/dist/agents/runtime-bootstrap.js.map +1 -1
  19. package/dist/agents/safety.d.ts.map +1 -1
  20. package/dist/agents/safety.js +33 -0
  21. package/dist/agents/safety.js.map +1 -1
  22. package/dist/agents/signal-tools.d.ts +2 -0
  23. package/dist/agents/signal-tools.d.ts.map +1 -0
  24. package/dist/agents/signal-tools.js +96 -0
  25. package/dist/agents/signal-tools.js.map +1 -0
  26. package/dist/agents/swarm-planner.js +1 -1
  27. package/dist/agents/swarm-planner.js.map +1 -1
  28. package/dist/agents/swarm.d.ts +1 -0
  29. package/dist/agents/swarm.d.ts.map +1 -1
  30. package/dist/agents/swarm.js +202 -31
  31. package/dist/agents/swarm.js.map +1 -1
  32. package/dist/fem/ground-model-draft.d.ts +14 -0
  33. package/dist/fem/ground-model-draft.d.ts.map +1 -1
  34. package/dist/fem/ground-model-draft.js +86 -21
  35. package/dist/fem/ground-model-draft.js.map +1 -1
  36. package/dist/fem/index.d.ts +1 -1
  37. package/dist/fem/index.d.ts.map +1 -1
  38. package/dist/fem/index.js +1 -1
  39. package/dist/fem/index.js.map +1 -1
  40. package/dist/fem/routing.d.ts +15 -1
  41. package/dist/fem/routing.d.ts.map +1 -1
  42. package/dist/fem/routing.js +192 -14
  43. package/dist/fem/routing.js.map +1 -1
  44. package/dist/fem/validation.d.ts.map +1 -1
  45. package/dist/fem/validation.js +715 -30
  46. package/dist/fem/validation.js.map +1 -1
  47. package/dist/fem/webgl.d.ts.map +1 -1
  48. package/dist/fem/webgl.js +24 -8
  49. package/dist/fem/webgl.js.map +1 -1
  50. package/dist/index.d.ts +1 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +1 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/ingest/document-evidence-packet.d.ts +603 -45
  55. package/dist/ingest/document-evidence-packet.d.ts.map +1 -1
  56. package/dist/ingest/document-evidence-packet.js +145 -5
  57. package/dist/ingest/document-evidence-packet.js.map +1 -1
  58. package/dist/ingest/geotech-benchmark-corpus.d.ts +108 -0
  59. package/dist/ingest/geotech-benchmark-corpus.d.ts.map +1 -0
  60. package/dist/ingest/geotech-benchmark-corpus.js +423 -0
  61. package/dist/ingest/geotech-benchmark-corpus.js.map +1 -0
  62. package/dist/ingest/geotech-document-benchmark.d.ts +133 -0
  63. package/dist/ingest/geotech-document-benchmark.d.ts.map +1 -1
  64. package/dist/ingest/geotech-document-benchmark.js +370 -2
  65. package/dist/ingest/geotech-document-benchmark.js.map +1 -1
  66. package/dist/ingest/geotech-document.d.ts +3 -0
  67. package/dist/ingest/geotech-document.d.ts.map +1 -1
  68. package/dist/ingest/geotech-document.js +7 -0
  69. package/dist/ingest/geotech-document.js.map +1 -1
  70. package/dist/ingest/index.d.ts +2 -1
  71. package/dist/ingest/index.d.ts.map +1 -1
  72. package/dist/ingest/index.js +1 -0
  73. package/dist/ingest/index.js.map +1 -1
  74. package/dist/ingest/job-store.d.ts.map +1 -1
  75. package/dist/ingest/job-store.js +193 -0
  76. package/dist/ingest/job-store.js.map +1 -1
  77. package/dist/ingest/job-worker.d.ts.map +1 -1
  78. package/dist/ingest/job-worker.js +5 -0
  79. package/dist/ingest/job-worker.js.map +1 -1
  80. package/dist/ingest/page-evidence-cache.d.ts +6 -2
  81. package/dist/ingest/page-evidence-cache.d.ts.map +1 -1
  82. package/dist/ingest/page-evidence-cache.js +226 -4
  83. package/dist/ingest/page-evidence-cache.js.map +1 -1
  84. package/dist/ingest/pdf.d.ts.map +1 -1
  85. package/dist/ingest/pdf.js +2 -2
  86. package/dist/ingest/pdf.js.map +1 -1
  87. package/dist/ingest/review-store.d.ts +3 -0
  88. package/dist/ingest/review-store.d.ts.map +1 -1
  89. package/dist/ingest/review-store.js +28 -0
  90. package/dist/ingest/review-store.js.map +1 -1
  91. package/dist/llm/capabilities.d.ts +6 -1
  92. package/dist/llm/capabilities.d.ts.map +1 -1
  93. package/dist/llm/capabilities.js +66 -0
  94. package/dist/llm/capabilities.js.map +1 -1
  95. package/dist/llm/index.d.ts +2 -2
  96. package/dist/llm/index.d.ts.map +1 -1
  97. package/dist/llm/index.js +1 -1
  98. package/dist/llm/index.js.map +1 -1
  99. package/dist/llm/types.d.ts +20 -0
  100. package/dist/llm/types.d.ts.map +1 -1
  101. package/dist/llm/types.js.map +1 -1
  102. package/dist/meta/metadata.json +1 -1
  103. package/dist/report/ingest-dossier.d.ts.map +1 -1
  104. package/dist/report/ingest-dossier.js +13 -1
  105. package/dist/report/ingest-dossier.js.map +1 -1
  106. package/dist/signal/index.d.ts +95 -0
  107. package/dist/signal/index.d.ts.map +1 -0
  108. package/dist/signal/index.js +375 -0
  109. package/dist/signal/index.js.map +1 -0
  110. package/dist/verifier/findings.d.ts +1 -1
  111. package/dist/verifier/findings.d.ts.map +1 -1
  112. package/dist/verifier/findings.js +329 -0
  113. package/dist/verifier/findings.js.map +1 -1
  114. package/dist/vision/ocr.d.ts +2 -0
  115. package/dist/vision/ocr.d.ts.map +1 -1
  116. package/dist/vision/ocr.js +78 -2
  117. package/dist/vision/ocr.js.map +1 -1
  118. package/dist/vision/preprocess.d.ts +65 -0
  119. package/dist/vision/preprocess.d.ts.map +1 -1
  120. package/dist/vision/preprocess.js +620 -7
  121. package/dist/vision/preprocess.js.map +1 -1
  122. package/dist/workspace/project-workflow-executor.d.ts +1 -1
  123. package/dist/workspace/project-workflow-executor.d.ts.map +1 -1
  124. package/dist/workspace/project-workflow-executor.js +216 -4
  125. package/dist/workspace/project-workflow-executor.js.map +1 -1
  126. package/dist/workspace/project-workflow-router.d.ts.map +1 -1
  127. package/dist/workspace/project-workflow-router.js +41 -1
  128. package/dist/workspace/project-workflow-router.js.map +1 -1
  129. package/package.json +1 -1
@@ -10,18 +10,18 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
10
10
  generatedAt: z.ZodString;
11
11
  providerContract: z.ZodObject<{
12
12
  providerNeutral: z.ZodLiteral<true>;
13
- purpose: z.ZodLiteral<"byok-document-understanding">;
13
+ purpose: z.ZodLiteral<"document-evidence-contract">;
14
14
  normalizedMethods: z.ZodArray<z.ZodEnum<["native-pdf-text", "layout-ocr", "visual-reasoning", "hybrid", "none"]>, "many">;
15
15
  reviewGates: z.ZodArray<z.ZodString, "many">;
16
16
  }, "strip", z.ZodTypeAny, {
17
17
  reviewGates: string[];
18
18
  providerNeutral: true;
19
- purpose: "byok-document-understanding";
19
+ purpose: "document-evidence-contract";
20
20
  normalizedMethods: ("none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid")[];
21
21
  }, {
22
22
  reviewGates: string[];
23
23
  providerNeutral: true;
24
- purpose: "byok-document-understanding";
24
+ purpose: "document-evidence-contract";
25
25
  normalizedMethods: ("none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid")[];
26
26
  }>;
27
27
  source: z.ZodObject<{
@@ -123,10 +123,10 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
123
123
  canAutoProceed: z.ZodBoolean;
124
124
  }, "strip", z.ZodTypeAny, {
125
125
  confidence: number;
126
+ reviewRequired: boolean;
126
127
  title: string | null;
127
128
  parseStatus: "failed" | "partial" | "parsed";
128
129
  canAutoProceed: boolean;
129
- reviewRequired: boolean;
130
130
  documentClass: string | null;
131
131
  confidenceBreakdown?: {
132
132
  schemaVersion: 1;
@@ -149,10 +149,10 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
149
149
  } | undefined;
150
150
  }, {
151
151
  confidence: number;
152
+ reviewRequired: boolean;
152
153
  title: string | null;
153
154
  parseStatus: "failed" | "partial" | "parsed";
154
155
  canAutoProceed: boolean;
155
- reviewRequired: boolean;
156
156
  documentClass: string | null;
157
157
  confidenceBreakdown?: {
158
158
  schemaVersion: 1;
@@ -184,6 +184,292 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
184
184
  sourceCategory: z.ZodEnum<["native-text", "layout-ocr", "vision", "none"]>;
185
185
  cacheStatus: z.ZodEnum<["hit", "miss", "stored", "skipped", "unavailable"]>;
186
186
  cacheEntryId: z.ZodOptional<z.ZodString>;
187
+ preprocessing: z.ZodOptional<z.ZodObject<{
188
+ sourceCategory: z.ZodEnum<["native-text", "layout-ocr", "vision", "none"]>;
189
+ cacheStatus: z.ZodEnum<["hit", "miss", "stored", "skipped", "unavailable"]>;
190
+ cacheKey: z.ZodOptional<z.ZodString>;
191
+ fileHash: z.ZodOptional<z.ZodString>;
192
+ pageHash: z.ZodOptional<z.ZodString>;
193
+ modelVersion: z.ZodOptional<z.ZodString>;
194
+ preprocessingVersion: z.ZodOptional<z.ZodString>;
195
+ schemaVersion: z.ZodOptional<z.ZodNumber>;
196
+ pipelineVersion: z.ZodOptional<z.ZodString>;
197
+ policy: z.ZodOptional<z.ZodEnum<["none", "ocr-optimized"]>>;
198
+ transformed: z.ZodOptional<z.ZodBoolean>;
199
+ operations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
200
+ input: z.ZodOptional<z.ZodObject<{
201
+ mimeType: z.ZodString;
202
+ byteLength: z.ZodNumber;
203
+ width: z.ZodOptional<z.ZodNumber>;
204
+ height: z.ZodOptional<z.ZodNumber>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ mimeType: string;
207
+ byteLength: number;
208
+ width?: number | undefined;
209
+ height?: number | undefined;
210
+ }, {
211
+ mimeType: string;
212
+ byteLength: number;
213
+ width?: number | undefined;
214
+ height?: number | undefined;
215
+ }>>;
216
+ output: z.ZodOptional<z.ZodObject<{
217
+ mimeType: z.ZodString;
218
+ byteLength: z.ZodNumber;
219
+ width: z.ZodOptional<z.ZodNumber>;
220
+ height: z.ZodOptional<z.ZodNumber>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ mimeType: string;
223
+ byteLength: number;
224
+ width?: number | undefined;
225
+ height?: number | undefined;
226
+ }, {
227
+ mimeType: string;
228
+ byteLength: number;
229
+ width?: number | undefined;
230
+ height?: number | undefined;
231
+ }>>;
232
+ quality: z.ZodOptional<z.ZodObject<{
233
+ score: z.ZodNumber;
234
+ contentCoverageRatio: z.ZodNumber;
235
+ darkPixelRatio: z.ZodNumber;
236
+ regionCoverageRatio: z.ZodNumber;
237
+ regionCount: z.ZodNumber;
238
+ cropAssetCount: z.ZodNumber;
239
+ deskew: z.ZodObject<{
240
+ method: z.ZodLiteral<"projection-profile">;
241
+ angleDeg: z.ZodNumber;
242
+ confidence: z.ZodNumber;
243
+ applied: z.ZodBoolean;
244
+ }, "strip", z.ZodTypeAny, {
245
+ method: "projection-profile";
246
+ confidence: number;
247
+ applied: boolean;
248
+ angleDeg: number;
249
+ }, {
250
+ method: "projection-profile";
251
+ confidence: number;
252
+ applied: boolean;
253
+ angleDeg: number;
254
+ }>;
255
+ warnings: z.ZodArray<z.ZodString, "many">;
256
+ }, "strip", z.ZodTypeAny, {
257
+ warnings: string[];
258
+ score: number;
259
+ contentCoverageRatio: number;
260
+ darkPixelRatio: number;
261
+ regionCoverageRatio: number;
262
+ regionCount: number;
263
+ cropAssetCount: number;
264
+ deskew: {
265
+ method: "projection-profile";
266
+ confidence: number;
267
+ applied: boolean;
268
+ angleDeg: number;
269
+ };
270
+ }, {
271
+ warnings: string[];
272
+ score: number;
273
+ contentCoverageRatio: number;
274
+ darkPixelRatio: number;
275
+ regionCoverageRatio: number;
276
+ regionCount: number;
277
+ cropAssetCount: number;
278
+ deskew: {
279
+ method: "projection-profile";
280
+ confidence: number;
281
+ applied: boolean;
282
+ angleDeg: number;
283
+ };
284
+ }>>;
285
+ regionCount: z.ZodOptional<z.ZodNumber>;
286
+ }, "strip", z.ZodTypeAny, {
287
+ sourceCategory: "vision" | "none" | "native-text" | "layout-ocr";
288
+ cacheStatus: "skipped" | "unavailable" | "hit" | "miss" | "stored";
289
+ output?: {
290
+ mimeType: string;
291
+ byteLength: number;
292
+ width?: number | undefined;
293
+ height?: number | undefined;
294
+ } | undefined;
295
+ schemaVersion?: number | undefined;
296
+ quality?: {
297
+ warnings: string[];
298
+ score: number;
299
+ contentCoverageRatio: number;
300
+ darkPixelRatio: number;
301
+ regionCoverageRatio: number;
302
+ regionCount: number;
303
+ cropAssetCount: number;
304
+ deskew: {
305
+ method: "projection-profile";
306
+ confidence: number;
307
+ applied: boolean;
308
+ angleDeg: number;
309
+ };
310
+ } | undefined;
311
+ regionCount?: number | undefined;
312
+ transformed?: boolean | undefined;
313
+ fileHash?: string | undefined;
314
+ pageHash?: string | undefined;
315
+ modelVersion?: string | undefined;
316
+ preprocessingVersion?: string | undefined;
317
+ pipelineVersion?: string | undefined;
318
+ policy?: "none" | "ocr-optimized" | undefined;
319
+ input?: {
320
+ mimeType: string;
321
+ byteLength: number;
322
+ width?: number | undefined;
323
+ height?: number | undefined;
324
+ } | undefined;
325
+ operations?: string[] | undefined;
326
+ cacheKey?: string | undefined;
327
+ }, {
328
+ sourceCategory: "vision" | "none" | "native-text" | "layout-ocr";
329
+ cacheStatus: "skipped" | "unavailable" | "hit" | "miss" | "stored";
330
+ output?: {
331
+ mimeType: string;
332
+ byteLength: number;
333
+ width?: number | undefined;
334
+ height?: number | undefined;
335
+ } | undefined;
336
+ schemaVersion?: number | undefined;
337
+ quality?: {
338
+ warnings: string[];
339
+ score: number;
340
+ contentCoverageRatio: number;
341
+ darkPixelRatio: number;
342
+ regionCoverageRatio: number;
343
+ regionCount: number;
344
+ cropAssetCount: number;
345
+ deskew: {
346
+ method: "projection-profile";
347
+ confidence: number;
348
+ applied: boolean;
349
+ angleDeg: number;
350
+ };
351
+ } | undefined;
352
+ regionCount?: number | undefined;
353
+ transformed?: boolean | undefined;
354
+ fileHash?: string | undefined;
355
+ pageHash?: string | undefined;
356
+ modelVersion?: string | undefined;
357
+ preprocessingVersion?: string | undefined;
358
+ pipelineVersion?: string | undefined;
359
+ policy?: "none" | "ocr-optimized" | undefined;
360
+ input?: {
361
+ mimeType: string;
362
+ byteLength: number;
363
+ width?: number | undefined;
364
+ height?: number | undefined;
365
+ } | undefined;
366
+ operations?: string[] | undefined;
367
+ cacheKey?: string | undefined;
368
+ }>>;
369
+ regions: z.ZodOptional<z.ZodArray<z.ZodObject<{
370
+ id: z.ZodString;
371
+ source: z.ZodEnum<["layout-ocr", "preprocessing"]>;
372
+ label: z.ZodString;
373
+ pageNumber: z.ZodNumber;
374
+ bbox2d: z.ZodOptional<z.ZodNullable<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
375
+ coverageRatio: z.ZodOptional<z.ZodNumber>;
376
+ quality: z.ZodOptional<z.ZodObject<{
377
+ score: z.ZodNumber;
378
+ darkPixelRatio: z.ZodNumber;
379
+ lineDensity: z.ZodNumber;
380
+ coverageRatio: z.ZodNumber;
381
+ warnings: z.ZodArray<z.ZodString, "many">;
382
+ }, "strip", z.ZodTypeAny, {
383
+ warnings: string[];
384
+ score: number;
385
+ darkPixelRatio: number;
386
+ coverageRatio: number;
387
+ lineDensity: number;
388
+ }, {
389
+ warnings: string[];
390
+ score: number;
391
+ darkPixelRatio: number;
392
+ coverageRatio: number;
393
+ lineDensity: number;
394
+ }>>;
395
+ textLength: z.ZodNumber;
396
+ hasText: z.ZodBoolean;
397
+ asset: z.ZodOptional<z.ZodObject<{
398
+ mimeType: z.ZodString;
399
+ byteLength: z.ZodNumber;
400
+ sha256: z.ZodString;
401
+ width: z.ZodOptional<z.ZodNumber>;
402
+ height: z.ZodOptional<z.ZodNumber>;
403
+ normalized: z.ZodOptional<z.ZodBoolean>;
404
+ cacheRelativePath: z.ZodOptional<z.ZodString>;
405
+ }, "strip", z.ZodTypeAny, {
406
+ mimeType: string;
407
+ byteLength: number;
408
+ sha256: string;
409
+ width?: number | undefined;
410
+ height?: number | undefined;
411
+ normalized?: boolean | undefined;
412
+ cacheRelativePath?: string | undefined;
413
+ }, {
414
+ mimeType: string;
415
+ byteLength: number;
416
+ sha256: string;
417
+ width?: number | undefined;
418
+ height?: number | undefined;
419
+ normalized?: boolean | undefined;
420
+ cacheRelativePath?: string | undefined;
421
+ }>>;
422
+ }, "strip", z.ZodTypeAny, {
423
+ source: "preprocessing" | "layout-ocr";
424
+ label: string;
425
+ id: string;
426
+ pageNumber: number;
427
+ textLength: number;
428
+ hasText: boolean;
429
+ quality?: {
430
+ warnings: string[];
431
+ score: number;
432
+ darkPixelRatio: number;
433
+ coverageRatio: number;
434
+ lineDensity: number;
435
+ } | undefined;
436
+ asset?: {
437
+ mimeType: string;
438
+ byteLength: number;
439
+ sha256: string;
440
+ width?: number | undefined;
441
+ height?: number | undefined;
442
+ normalized?: boolean | undefined;
443
+ cacheRelativePath?: string | undefined;
444
+ } | undefined;
445
+ bbox2d?: [number, number, number, number] | null | undefined;
446
+ coverageRatio?: number | undefined;
447
+ }, {
448
+ source: "preprocessing" | "layout-ocr";
449
+ label: string;
450
+ id: string;
451
+ pageNumber: number;
452
+ textLength: number;
453
+ hasText: boolean;
454
+ quality?: {
455
+ warnings: string[];
456
+ score: number;
457
+ darkPixelRatio: number;
458
+ coverageRatio: number;
459
+ lineDensity: number;
460
+ } | undefined;
461
+ asset?: {
462
+ mimeType: string;
463
+ byteLength: number;
464
+ sha256: string;
465
+ width?: number | undefined;
466
+ height?: number | undefined;
467
+ normalized?: boolean | undefined;
468
+ cacheRelativePath?: string | undefined;
469
+ } | undefined;
470
+ bbox2d?: [number, number, number, number] | null | undefined;
471
+ coverageRatio?: number | undefined;
472
+ }>, "many">>;
187
473
  counts: z.ZodObject<{
188
474
  materials: z.ZodNumber;
189
475
  classifications: z.ZodNumber;
@@ -213,6 +499,74 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
213
499
  parameters: number;
214
500
  classifications: number;
215
501
  };
502
+ preprocessing?: {
503
+ sourceCategory: "vision" | "none" | "native-text" | "layout-ocr";
504
+ cacheStatus: "skipped" | "unavailable" | "hit" | "miss" | "stored";
505
+ output?: {
506
+ mimeType: string;
507
+ byteLength: number;
508
+ width?: number | undefined;
509
+ height?: number | undefined;
510
+ } | undefined;
511
+ schemaVersion?: number | undefined;
512
+ quality?: {
513
+ warnings: string[];
514
+ score: number;
515
+ contentCoverageRatio: number;
516
+ darkPixelRatio: number;
517
+ regionCoverageRatio: number;
518
+ regionCount: number;
519
+ cropAssetCount: number;
520
+ deskew: {
521
+ method: "projection-profile";
522
+ confidence: number;
523
+ applied: boolean;
524
+ angleDeg: number;
525
+ };
526
+ } | undefined;
527
+ regionCount?: number | undefined;
528
+ transformed?: boolean | undefined;
529
+ fileHash?: string | undefined;
530
+ pageHash?: string | undefined;
531
+ modelVersion?: string | undefined;
532
+ preprocessingVersion?: string | undefined;
533
+ pipelineVersion?: string | undefined;
534
+ policy?: "none" | "ocr-optimized" | undefined;
535
+ input?: {
536
+ mimeType: string;
537
+ byteLength: number;
538
+ width?: number | undefined;
539
+ height?: number | undefined;
540
+ } | undefined;
541
+ operations?: string[] | undefined;
542
+ cacheKey?: string | undefined;
543
+ } | undefined;
544
+ regions?: {
545
+ source: "preprocessing" | "layout-ocr";
546
+ label: string;
547
+ id: string;
548
+ pageNumber: number;
549
+ textLength: number;
550
+ hasText: boolean;
551
+ quality?: {
552
+ warnings: string[];
553
+ score: number;
554
+ darkPixelRatio: number;
555
+ coverageRatio: number;
556
+ lineDensity: number;
557
+ } | undefined;
558
+ asset?: {
559
+ mimeType: string;
560
+ byteLength: number;
561
+ sha256: string;
562
+ width?: number | undefined;
563
+ height?: number | undefined;
564
+ normalized?: boolean | undefined;
565
+ cacheRelativePath?: string | undefined;
566
+ } | undefined;
567
+ bbox2d?: [number, number, number, number] | null | undefined;
568
+ coverageRatio?: number | undefined;
569
+ }[] | undefined;
216
570
  cacheEntryId?: string | undefined;
217
571
  }, {
218
572
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
@@ -229,6 +583,74 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
229
583
  parameters: number;
230
584
  classifications: number;
231
585
  };
586
+ preprocessing?: {
587
+ sourceCategory: "vision" | "none" | "native-text" | "layout-ocr";
588
+ cacheStatus: "skipped" | "unavailable" | "hit" | "miss" | "stored";
589
+ output?: {
590
+ mimeType: string;
591
+ byteLength: number;
592
+ width?: number | undefined;
593
+ height?: number | undefined;
594
+ } | undefined;
595
+ schemaVersion?: number | undefined;
596
+ quality?: {
597
+ warnings: string[];
598
+ score: number;
599
+ contentCoverageRatio: number;
600
+ darkPixelRatio: number;
601
+ regionCoverageRatio: number;
602
+ regionCount: number;
603
+ cropAssetCount: number;
604
+ deskew: {
605
+ method: "projection-profile";
606
+ confidence: number;
607
+ applied: boolean;
608
+ angleDeg: number;
609
+ };
610
+ } | undefined;
611
+ regionCount?: number | undefined;
612
+ transformed?: boolean | undefined;
613
+ fileHash?: string | undefined;
614
+ pageHash?: string | undefined;
615
+ modelVersion?: string | undefined;
616
+ preprocessingVersion?: string | undefined;
617
+ pipelineVersion?: string | undefined;
618
+ policy?: "none" | "ocr-optimized" | undefined;
619
+ input?: {
620
+ mimeType: string;
621
+ byteLength: number;
622
+ width?: number | undefined;
623
+ height?: number | undefined;
624
+ } | undefined;
625
+ operations?: string[] | undefined;
626
+ cacheKey?: string | undefined;
627
+ } | undefined;
628
+ regions?: {
629
+ source: "preprocessing" | "layout-ocr";
630
+ label: string;
631
+ id: string;
632
+ pageNumber: number;
633
+ textLength: number;
634
+ hasText: boolean;
635
+ quality?: {
636
+ warnings: string[];
637
+ score: number;
638
+ darkPixelRatio: number;
639
+ coverageRatio: number;
640
+ lineDensity: number;
641
+ } | undefined;
642
+ asset?: {
643
+ mimeType: string;
644
+ byteLength: number;
645
+ sha256: string;
646
+ width?: number | undefined;
647
+ height?: number | undefined;
648
+ normalized?: boolean | undefined;
649
+ cacheRelativePath?: string | undefined;
650
+ } | undefined;
651
+ bbox2d?: [number, number, number, number] | null | undefined;
652
+ coverageRatio?: number | undefined;
653
+ }[] | undefined;
232
654
  cacheEntryId?: string | undefined;
233
655
  }>, "many">;
234
656
  observations: z.ZodObject<{
@@ -247,13 +669,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
247
669
  reviewStatus: z.ZodEnum<["verified", "needs_review", "missing", "uncertain"]>;
248
670
  warnings: z.ZodArray<z.ZodString, "many">;
249
671
  }, "strip", z.ZodTypeAny, {
250
- type: "classification" | "parameter" | "material";
672
+ type: "parameter" | "material" | "classification";
251
673
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
252
674
  value: string | number | boolean | null;
253
675
  confidence: number;
676
+ label: string;
254
677
  id: string;
255
678
  warnings: string[];
256
- label: string;
257
679
  sourcePages: number[];
258
680
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
259
681
  unit?: string | null | undefined;
@@ -261,13 +683,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
261
683
  context?: string | null | undefined;
262
684
  numericValue?: number | null | undefined;
263
685
  }, {
264
- type: "classification" | "parameter" | "material";
686
+ type: "parameter" | "material" | "classification";
265
687
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
266
688
  value: string | number | boolean | null;
267
689
  confidence: number;
690
+ label: string;
268
691
  id: string;
269
692
  warnings: string[];
270
- label: string;
271
693
  sourcePages: number[];
272
694
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
273
695
  unit?: string | null | undefined;
@@ -290,13 +712,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
290
712
  reviewStatus: z.ZodEnum<["verified", "needs_review", "missing", "uncertain"]>;
291
713
  warnings: z.ZodArray<z.ZodString, "many">;
292
714
  }, "strip", z.ZodTypeAny, {
293
- type: "classification" | "parameter" | "material";
715
+ type: "parameter" | "material" | "classification";
294
716
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
295
717
  value: string | number | boolean | null;
296
718
  confidence: number;
719
+ label: string;
297
720
  id: string;
298
721
  warnings: string[];
299
- label: string;
300
722
  sourcePages: number[];
301
723
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
302
724
  unit?: string | null | undefined;
@@ -304,13 +726,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
304
726
  context?: string | null | undefined;
305
727
  numericValue?: number | null | undefined;
306
728
  }, {
307
- type: "classification" | "parameter" | "material";
729
+ type: "parameter" | "material" | "classification";
308
730
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
309
731
  value: string | number | boolean | null;
310
732
  confidence: number;
733
+ label: string;
311
734
  id: string;
312
735
  warnings: string[];
313
- label: string;
314
736
  sourcePages: number[];
315
737
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
316
738
  unit?: string | null | undefined;
@@ -333,13 +755,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
333
755
  reviewStatus: z.ZodEnum<["verified", "needs_review", "missing", "uncertain"]>;
334
756
  warnings: z.ZodArray<z.ZodString, "many">;
335
757
  }, "strip", z.ZodTypeAny, {
336
- type: "classification" | "parameter" | "material";
758
+ type: "parameter" | "material" | "classification";
337
759
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
338
760
  value: string | number | boolean | null;
339
761
  confidence: number;
762
+ label: string;
340
763
  id: string;
341
764
  warnings: string[];
342
- label: string;
343
765
  sourcePages: number[];
344
766
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
345
767
  unit?: string | null | undefined;
@@ -347,13 +769,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
347
769
  context?: string | null | undefined;
348
770
  numericValue?: number | null | undefined;
349
771
  }, {
350
- type: "classification" | "parameter" | "material";
772
+ type: "parameter" | "material" | "classification";
351
773
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
352
774
  value: string | number | boolean | null;
353
775
  confidence: number;
776
+ label: string;
354
777
  id: string;
355
778
  warnings: string[];
356
- label: string;
357
779
  sourcePages: number[];
358
780
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
359
781
  unit?: string | null | undefined;
@@ -363,13 +785,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
363
785
  }>, "many">;
364
786
  }, "strip", z.ZodTypeAny, {
365
787
  materials: {
366
- type: "classification" | "parameter" | "material";
788
+ type: "parameter" | "material" | "classification";
367
789
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
368
790
  value: string | number | boolean | null;
369
791
  confidence: number;
792
+ label: string;
370
793
  id: string;
371
794
  warnings: string[];
372
- label: string;
373
795
  sourcePages: number[];
374
796
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
375
797
  unit?: string | null | undefined;
@@ -378,13 +800,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
378
800
  numericValue?: number | null | undefined;
379
801
  }[];
380
802
  parameters: {
381
- type: "classification" | "parameter" | "material";
803
+ type: "parameter" | "material" | "classification";
382
804
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
383
805
  value: string | number | boolean | null;
384
806
  confidence: number;
807
+ label: string;
385
808
  id: string;
386
809
  warnings: string[];
387
- label: string;
388
810
  sourcePages: number[];
389
811
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
390
812
  unit?: string | null | undefined;
@@ -393,13 +815,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
393
815
  numericValue?: number | null | undefined;
394
816
  }[];
395
817
  classifications: {
396
- type: "classification" | "parameter" | "material";
818
+ type: "parameter" | "material" | "classification";
397
819
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
398
820
  value: string | number | boolean | null;
399
821
  confidence: number;
822
+ label: string;
400
823
  id: string;
401
824
  warnings: string[];
402
- label: string;
403
825
  sourcePages: number[];
404
826
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
405
827
  unit?: string | null | undefined;
@@ -409,13 +831,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
409
831
  }[];
410
832
  }, {
411
833
  materials: {
412
- type: "classification" | "parameter" | "material";
834
+ type: "parameter" | "material" | "classification";
413
835
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
414
836
  value: string | number | boolean | null;
415
837
  confidence: number;
838
+ label: string;
416
839
  id: string;
417
840
  warnings: string[];
418
- label: string;
419
841
  sourcePages: number[];
420
842
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
421
843
  unit?: string | null | undefined;
@@ -424,13 +846,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
424
846
  numericValue?: number | null | undefined;
425
847
  }[];
426
848
  parameters: {
427
- type: "classification" | "parameter" | "material";
849
+ type: "parameter" | "material" | "classification";
428
850
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
429
851
  value: string | number | boolean | null;
430
852
  confidence: number;
853
+ label: string;
431
854
  id: string;
432
855
  warnings: string[];
433
- label: string;
434
856
  sourcePages: number[];
435
857
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
436
858
  unit?: string | null | undefined;
@@ -439,13 +861,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
439
861
  numericValue?: number | null | undefined;
440
862
  }[];
441
863
  classifications: {
442
- type: "classification" | "parameter" | "material";
864
+ type: "parameter" | "material" | "classification";
443
865
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
444
866
  value: string | number | boolean | null;
445
867
  confidence: number;
868
+ label: string;
446
869
  id: string;
447
870
  warnings: string[];
448
- label: string;
449
871
  sourcePages: number[];
450
872
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
451
873
  unit?: string | null | undefined;
@@ -642,14 +1064,82 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
642
1064
  parameters: number;
643
1065
  classifications: number;
644
1066
  };
1067
+ preprocessing?: {
1068
+ sourceCategory: "vision" | "none" | "native-text" | "layout-ocr";
1069
+ cacheStatus: "skipped" | "unavailable" | "hit" | "miss" | "stored";
1070
+ output?: {
1071
+ mimeType: string;
1072
+ byteLength: number;
1073
+ width?: number | undefined;
1074
+ height?: number | undefined;
1075
+ } | undefined;
1076
+ schemaVersion?: number | undefined;
1077
+ quality?: {
1078
+ warnings: string[];
1079
+ score: number;
1080
+ contentCoverageRatio: number;
1081
+ darkPixelRatio: number;
1082
+ regionCoverageRatio: number;
1083
+ regionCount: number;
1084
+ cropAssetCount: number;
1085
+ deskew: {
1086
+ method: "projection-profile";
1087
+ confidence: number;
1088
+ applied: boolean;
1089
+ angleDeg: number;
1090
+ };
1091
+ } | undefined;
1092
+ regionCount?: number | undefined;
1093
+ transformed?: boolean | undefined;
1094
+ fileHash?: string | undefined;
1095
+ pageHash?: string | undefined;
1096
+ modelVersion?: string | undefined;
1097
+ preprocessingVersion?: string | undefined;
1098
+ pipelineVersion?: string | undefined;
1099
+ policy?: "none" | "ocr-optimized" | undefined;
1100
+ input?: {
1101
+ mimeType: string;
1102
+ byteLength: number;
1103
+ width?: number | undefined;
1104
+ height?: number | undefined;
1105
+ } | undefined;
1106
+ operations?: string[] | undefined;
1107
+ cacheKey?: string | undefined;
1108
+ } | undefined;
1109
+ regions?: {
1110
+ source: "preprocessing" | "layout-ocr";
1111
+ label: string;
1112
+ id: string;
1113
+ pageNumber: number;
1114
+ textLength: number;
1115
+ hasText: boolean;
1116
+ quality?: {
1117
+ warnings: string[];
1118
+ score: number;
1119
+ darkPixelRatio: number;
1120
+ coverageRatio: number;
1121
+ lineDensity: number;
1122
+ } | undefined;
1123
+ asset?: {
1124
+ mimeType: string;
1125
+ byteLength: number;
1126
+ sha256: string;
1127
+ width?: number | undefined;
1128
+ height?: number | undefined;
1129
+ normalized?: boolean | undefined;
1130
+ cacheRelativePath?: string | undefined;
1131
+ } | undefined;
1132
+ bbox2d?: [number, number, number, number] | null | undefined;
1133
+ coverageRatio?: number | undefined;
1134
+ }[] | undefined;
645
1135
  cacheEntryId?: string | undefined;
646
1136
  }[];
647
1137
  document: {
648
1138
  confidence: number;
1139
+ reviewRequired: boolean;
649
1140
  title: string | null;
650
1141
  parseStatus: "failed" | "partial" | "parsed";
651
1142
  canAutoProceed: boolean;
652
- reviewRequired: boolean;
653
1143
  documentClass: string | null;
654
1144
  confidenceBreakdown?: {
655
1145
  schemaVersion: 1;
@@ -674,18 +1164,18 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
674
1164
  providerContract: {
675
1165
  reviewGates: string[];
676
1166
  providerNeutral: true;
677
- purpose: "byok-document-understanding";
1167
+ purpose: "document-evidence-contract";
678
1168
  normalizedMethods: ("none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid")[];
679
1169
  };
680
1170
  observations: {
681
1171
  materials: {
682
- type: "classification" | "parameter" | "material";
1172
+ type: "parameter" | "material" | "classification";
683
1173
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
684
1174
  value: string | number | boolean | null;
685
1175
  confidence: number;
1176
+ label: string;
686
1177
  id: string;
687
1178
  warnings: string[];
688
- label: string;
689
1179
  sourcePages: number[];
690
1180
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
691
1181
  unit?: string | null | undefined;
@@ -694,13 +1184,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
694
1184
  numericValue?: number | null | undefined;
695
1185
  }[];
696
1186
  parameters: {
697
- type: "classification" | "parameter" | "material";
1187
+ type: "parameter" | "material" | "classification";
698
1188
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
699
1189
  value: string | number | boolean | null;
700
1190
  confidence: number;
1191
+ label: string;
701
1192
  id: string;
702
1193
  warnings: string[];
703
- label: string;
704
1194
  sourcePages: number[];
705
1195
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
706
1196
  unit?: string | null | undefined;
@@ -709,13 +1199,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
709
1199
  numericValue?: number | null | undefined;
710
1200
  }[];
711
1201
  classifications: {
712
- type: "classification" | "parameter" | "material";
1202
+ type: "parameter" | "material" | "classification";
713
1203
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
714
1204
  value: string | number | boolean | null;
715
1205
  confidence: number;
1206
+ label: string;
716
1207
  id: string;
717
1208
  warnings: string[];
718
- label: string;
719
1209
  sourcePages: number[];
720
1210
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
721
1211
  unit?: string | null | undefined;
@@ -800,14 +1290,82 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
800
1290
  parameters: number;
801
1291
  classifications: number;
802
1292
  };
1293
+ preprocessing?: {
1294
+ sourceCategory: "vision" | "none" | "native-text" | "layout-ocr";
1295
+ cacheStatus: "skipped" | "unavailable" | "hit" | "miss" | "stored";
1296
+ output?: {
1297
+ mimeType: string;
1298
+ byteLength: number;
1299
+ width?: number | undefined;
1300
+ height?: number | undefined;
1301
+ } | undefined;
1302
+ schemaVersion?: number | undefined;
1303
+ quality?: {
1304
+ warnings: string[];
1305
+ score: number;
1306
+ contentCoverageRatio: number;
1307
+ darkPixelRatio: number;
1308
+ regionCoverageRatio: number;
1309
+ regionCount: number;
1310
+ cropAssetCount: number;
1311
+ deskew: {
1312
+ method: "projection-profile";
1313
+ confidence: number;
1314
+ applied: boolean;
1315
+ angleDeg: number;
1316
+ };
1317
+ } | undefined;
1318
+ regionCount?: number | undefined;
1319
+ transformed?: boolean | undefined;
1320
+ fileHash?: string | undefined;
1321
+ pageHash?: string | undefined;
1322
+ modelVersion?: string | undefined;
1323
+ preprocessingVersion?: string | undefined;
1324
+ pipelineVersion?: string | undefined;
1325
+ policy?: "none" | "ocr-optimized" | undefined;
1326
+ input?: {
1327
+ mimeType: string;
1328
+ byteLength: number;
1329
+ width?: number | undefined;
1330
+ height?: number | undefined;
1331
+ } | undefined;
1332
+ operations?: string[] | undefined;
1333
+ cacheKey?: string | undefined;
1334
+ } | undefined;
1335
+ regions?: {
1336
+ source: "preprocessing" | "layout-ocr";
1337
+ label: string;
1338
+ id: string;
1339
+ pageNumber: number;
1340
+ textLength: number;
1341
+ hasText: boolean;
1342
+ quality?: {
1343
+ warnings: string[];
1344
+ score: number;
1345
+ darkPixelRatio: number;
1346
+ coverageRatio: number;
1347
+ lineDensity: number;
1348
+ } | undefined;
1349
+ asset?: {
1350
+ mimeType: string;
1351
+ byteLength: number;
1352
+ sha256: string;
1353
+ width?: number | undefined;
1354
+ height?: number | undefined;
1355
+ normalized?: boolean | undefined;
1356
+ cacheRelativePath?: string | undefined;
1357
+ } | undefined;
1358
+ bbox2d?: [number, number, number, number] | null | undefined;
1359
+ coverageRatio?: number | undefined;
1360
+ }[] | undefined;
803
1361
  cacheEntryId?: string | undefined;
804
1362
  }[];
805
1363
  document: {
806
1364
  confidence: number;
1365
+ reviewRequired: boolean;
807
1366
  title: string | null;
808
1367
  parseStatus: "failed" | "partial" | "parsed";
809
1368
  canAutoProceed: boolean;
810
- reviewRequired: boolean;
811
1369
  documentClass: string | null;
812
1370
  confidenceBreakdown?: {
813
1371
  schemaVersion: 1;
@@ -832,18 +1390,18 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
832
1390
  providerContract: {
833
1391
  reviewGates: string[];
834
1392
  providerNeutral: true;
835
- purpose: "byok-document-understanding";
1393
+ purpose: "document-evidence-contract";
836
1394
  normalizedMethods: ("none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid")[];
837
1395
  };
838
1396
  observations: {
839
1397
  materials: {
840
- type: "classification" | "parameter" | "material";
1398
+ type: "parameter" | "material" | "classification";
841
1399
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
842
1400
  value: string | number | boolean | null;
843
1401
  confidence: number;
1402
+ label: string;
844
1403
  id: string;
845
1404
  warnings: string[];
846
- label: string;
847
1405
  sourcePages: number[];
848
1406
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
849
1407
  unit?: string | null | undefined;
@@ -852,13 +1410,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
852
1410
  numericValue?: number | null | undefined;
853
1411
  }[];
854
1412
  parameters: {
855
- type: "classification" | "parameter" | "material";
1413
+ type: "parameter" | "material" | "classification";
856
1414
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
857
1415
  value: string | number | boolean | null;
858
1416
  confidence: number;
1417
+ label: string;
859
1418
  id: string;
860
1419
  warnings: string[];
861
- label: string;
862
1420
  sourcePages: number[];
863
1421
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
864
1422
  unit?: string | null | undefined;
@@ -867,13 +1425,13 @@ export declare const DocumentEvidencePacketSchema: z.ZodObject<{
867
1425
  numericValue?: number | null | undefined;
868
1426
  }[];
869
1427
  classifications: {
870
- type: "classification" | "parameter" | "material";
1428
+ type: "parameter" | "material" | "classification";
871
1429
  method: "none" | "native-pdf-text" | "layout-ocr" | "visual-reasoning" | "hybrid";
872
1430
  value: string | number | boolean | null;
873
1431
  confidence: number;
1432
+ label: string;
874
1433
  id: string;
875
1434
  warnings: string[];
876
- label: string;
877
1435
  sourcePages: number[];
878
1436
  reviewStatus: "missing" | "verified" | "needs_review" | "uncertain";
879
1437
  unit?: string | null | undefined;