@empressaio/atom-contract 1.15.0 → 1.16.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,698 @@
1
+ import { z } from "zod";
2
+ import type { AccessPolicy } from "../registration.js";
3
+ import type { AtomTier } from "../conformance/common.js";
4
+ import type { ReasoningChain } from "../reasoning-chain.js";
5
+ import type { ReasoningReadContract } from "../read-contract/reasoning-axes.js";
6
+ import { type CadRollSourceTier, type OwnerFactAbsence, type SiteLayerVerifiedAbsence } from "./common.js";
7
+ /**
8
+ * Owner FACT atom — CAD `owner_name` + mailing address, or honest absence.
9
+ *
10
+ * THE POLICY CAME FIRST AND THE CARRIER CAME LAST. Owner was ruled
11
+ * `public-paid` at the atom level long before any owner atom existed, so the
12
+ * county manifest's OWN rail has been reading `NO ATOM` over a store that
13
+ * already holds 4.5M owner rows (`cad_property.owner_name`, 98.4% populated
14
+ * across 15 counties as of 2026-08-09). This type is the carrier that ruling
15
+ * always presumed. See doc_repo `90_operations/OPS-15_owner_and_rrc_rail_gap_
16
+ * analysis.md`.
17
+ *
18
+ * WHY THIS IS THE ONLY `public-paid` PROPERTY ATOM. Every sibling in this
19
+ * module pins `public-free` in its superRefine. Owner is the deliberate
20
+ * exception and the schema enforces it in the same shape: an owner-fact that
21
+ * tries to ship `public-free` fails to parse. The policy therefore cannot be
22
+ * lost by a careless writer — it is structural, not conventional.
23
+ *
24
+ * PRIVACY POSTURE (doc_repo OPS-15 R4). Owner name plus mailing address on
25
+ * Texas parcels is public record and lawful to serve, but it is the most
26
+ * privacy-sensitive facet in the catalog. Two deliberate constraints:
27
+ *
28
+ * 1. `exemptionFlags` carries BOOLEAN FLAGS, never raw exemption codes.
29
+ * Homestead and over-65/disability exemption codes imply occupancy and
30
+ * household composition; a flag answers the underwriting question
31
+ * ("is this owner-occupied?") without republishing the code that
32
+ * implies who lives there.
33
+ * 2. `ownerMailingAddress` is optional and independently omittable, so a
34
+ * serving tier can carry the name without the mailing address.
35
+ *
36
+ * Cotality is extinguished — owner data comes from the CAD roll only. Never
37
+ * add a cotality sourceTier.
38
+ */
39
+ export interface OwnerFactAtomInstance {
40
+ entityType: "owner-fact";
41
+ atomDid: string;
42
+ parcelNodeId: string;
43
+ taxYear: number;
44
+ reasoningChain: Extract<ReasoningChain, {
45
+ reasoningKind: "observed";
46
+ }>;
47
+ sourceTier: CadRollSourceTier;
48
+ ownerName?: string;
49
+ ownerMailingAddress?: string;
50
+ /**
51
+ * Boolean flags derived from CAD `exemption_codes`, never the raw codes.
52
+ * Absent when the roll carries no exemption data for the parcel.
53
+ */
54
+ exemptionFlags?: OwnerExemptionFlags;
55
+ absence?: OwnerFactAbsence;
56
+ verifiedAbsence?: SiteLayerVerifiedAbsence;
57
+ accessPolicy: AccessPolicy;
58
+ sourceCitation: string;
59
+ extractedAt: string;
60
+ asOf?: string;
61
+ sourceVintage?: string;
62
+ verificationStatus: "machine" | "human" | "unsurveyed";
63
+ sourceAdapter: string;
64
+ evaluatedAt: string;
65
+ atomTier: AtomTier;
66
+ readContract?: ReasoningReadContract;
67
+ }
68
+ export declare const OWNER_EXEMPTION_FLAGS_SCHEMA: z.ZodObject<{
69
+ /** Any homestead exemption present — implies owner-occupied. */
70
+ homestead: z.ZodBoolean;
71
+ /** Over-65 or disability exemption present. */
72
+ seniorOrDisability: z.ZodBoolean;
73
+ /** Agricultural / open-space / timber valuation present. */
74
+ agricultural: z.ZodBoolean;
75
+ /** Veteran exemption present. */
76
+ veteran: z.ZodBoolean;
77
+ }, "strict", z.ZodTypeAny, {
78
+ homestead: boolean;
79
+ seniorOrDisability: boolean;
80
+ agricultural: boolean;
81
+ veteran: boolean;
82
+ }, {
83
+ homestead: boolean;
84
+ seniorOrDisability: boolean;
85
+ agricultural: boolean;
86
+ veteran: boolean;
87
+ }>;
88
+ export type OwnerExemptionFlags = z.infer<typeof OWNER_EXEMPTION_FLAGS_SCHEMA>;
89
+ export declare const OWNER_FACT_SCHEMA: z.ZodEffects<z.ZodObject<{
90
+ atomTier: z.ZodLiteral<AtomTier>;
91
+ readContract: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
92
+ axes: z.ZodReadonly<z.ZodObject<{
93
+ calibratedConfidence: z.ZodReadonly<z.ZodObject<{
94
+ readonly estimate: z.ZodNumber;
95
+ readonly n: z.ZodNumber;
96
+ readonly intervalWidth: z.ZodNumber;
97
+ readonly provenance: z.ZodEnum<["asserted", "backtest", "seed", "live"]>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ estimate: number;
100
+ n: number;
101
+ intervalWidth: number;
102
+ provenance: "asserted" | "backtest" | "seed" | "live";
103
+ }, {
104
+ estimate: number;
105
+ n: number;
106
+ intervalWidth: number;
107
+ provenance: "asserted" | "backtest" | "seed" | "live";
108
+ }>>;
109
+ assertedConfidence: z.ZodReadonly<z.ZodObject<{
110
+ readonly estimate: z.ZodNumber;
111
+ readonly n: z.ZodNumber;
112
+ readonly intervalWidth: z.ZodNumber;
113
+ readonly provenance: z.ZodEnum<["asserted", "backtest", "seed", "live"]>;
114
+ }, "strip", z.ZodTypeAny, {
115
+ estimate: number;
116
+ n: number;
117
+ intervalWidth: number;
118
+ provenance: "asserted" | "backtest" | "seed" | "live";
119
+ }, {
120
+ estimate: number;
121
+ n: number;
122
+ intervalWidth: number;
123
+ provenance: "asserted" | "backtest" | "seed" | "live";
124
+ }>>;
125
+ consequence: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
126
+ kind: z.ZodLiteral<"property-risk">;
127
+ stratum: z.ZodEnum<[import("../read-contract/reasoning-axes.js").PropertyRiskStratum, ...import("../read-contract/reasoning-axes.js").PropertyRiskStratum[]]>;
128
+ basis: z.ZodString;
129
+ assertedAt: z.ZodString;
130
+ auditRef: z.ZodOptional<z.ZodString>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
133
+ assertedAt: string;
134
+ kind: "property-risk";
135
+ basis: string;
136
+ auditRef?: string | undefined;
137
+ }, {
138
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
139
+ assertedAt: string;
140
+ kind: "property-risk";
141
+ basis: string;
142
+ auditRef?: string | undefined;
143
+ }>, z.ZodObject<{
144
+ kind: z.ZodLiteral<"not-applicable">;
145
+ reason: z.ZodString;
146
+ assertedAt: z.ZodString;
147
+ }, "strip", z.ZodTypeAny, {
148
+ assertedAt: string;
149
+ kind: "not-applicable";
150
+ reason: string;
151
+ }, {
152
+ assertedAt: string;
153
+ kind: "not-applicable";
154
+ reason: string;
155
+ }>]>;
156
+ }, "strip", z.ZodTypeAny, {
157
+ calibratedConfidence: Readonly<{
158
+ estimate: number;
159
+ n: number;
160
+ intervalWidth: number;
161
+ provenance: "asserted" | "backtest" | "seed" | "live";
162
+ }>;
163
+ assertedConfidence: Readonly<{
164
+ estimate: number;
165
+ n: number;
166
+ intervalWidth: number;
167
+ provenance: "asserted" | "backtest" | "seed" | "live";
168
+ }>;
169
+ consequence: {
170
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
171
+ assertedAt: string;
172
+ kind: "property-risk";
173
+ basis: string;
174
+ auditRef?: string | undefined;
175
+ } | {
176
+ assertedAt: string;
177
+ kind: "not-applicable";
178
+ reason: string;
179
+ };
180
+ }, {
181
+ calibratedConfidence: Readonly<{
182
+ estimate: number;
183
+ n: number;
184
+ intervalWidth: number;
185
+ provenance: "asserted" | "backtest" | "seed" | "live";
186
+ }>;
187
+ assertedConfidence: Readonly<{
188
+ estimate: number;
189
+ n: number;
190
+ intervalWidth: number;
191
+ provenance: "asserted" | "backtest" | "seed" | "live";
192
+ }>;
193
+ consequence: {
194
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
195
+ assertedAt: string;
196
+ kind: "property-risk";
197
+ basis: string;
198
+ auditRef?: string | undefined;
199
+ } | {
200
+ assertedAt: string;
201
+ kind: "not-applicable";
202
+ reason: string;
203
+ };
204
+ }>>;
205
+ assembledAt: z.ZodString;
206
+ modelAttribution: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
207
+ modelId: z.ZodString;
208
+ modelVersion: z.ZodString;
209
+ promptTemplateVersion: z.ZodString;
210
+ contextTemplateVersion: z.ZodString;
211
+ samplingParams: z.ZodReadonly<z.ZodObject<{
212
+ temperature: z.ZodOptional<z.ZodNumber>;
213
+ topP: z.ZodOptional<z.ZodNumber>;
214
+ maxTokens: z.ZodOptional<z.ZodNumber>;
215
+ seed: z.ZodOptional<z.ZodNumber>;
216
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
217
+ temperature: z.ZodOptional<z.ZodNumber>;
218
+ topP: z.ZodOptional<z.ZodNumber>;
219
+ maxTokens: z.ZodOptional<z.ZodNumber>;
220
+ seed: z.ZodOptional<z.ZodNumber>;
221
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
222
+ temperature: z.ZodOptional<z.ZodNumber>;
223
+ topP: z.ZodOptional<z.ZodNumber>;
224
+ maxTokens: z.ZodOptional<z.ZodNumber>;
225
+ seed: z.ZodOptional<z.ZodNumber>;
226
+ }, z.ZodUnknown, "strip">>>;
227
+ retrievedAtomSetId: z.ZodString;
228
+ }, "strip", z.ZodTypeAny, {
229
+ modelId: string;
230
+ modelVersion: string;
231
+ promptTemplateVersion: string;
232
+ contextTemplateVersion: string;
233
+ samplingParams: Readonly<z.objectOutputType<{
234
+ temperature: z.ZodOptional<z.ZodNumber>;
235
+ topP: z.ZodOptional<z.ZodNumber>;
236
+ maxTokens: z.ZodOptional<z.ZodNumber>;
237
+ seed: z.ZodOptional<z.ZodNumber>;
238
+ }, z.ZodUnknown, "strip">>;
239
+ retrievedAtomSetId: string;
240
+ }, {
241
+ modelId: string;
242
+ modelVersion: string;
243
+ promptTemplateVersion: string;
244
+ contextTemplateVersion: string;
245
+ samplingParams: Readonly<z.objectInputType<{
246
+ temperature: z.ZodOptional<z.ZodNumber>;
247
+ topP: z.ZodOptional<z.ZodNumber>;
248
+ maxTokens: z.ZodOptional<z.ZodNumber>;
249
+ seed: z.ZodOptional<z.ZodNumber>;
250
+ }, z.ZodUnknown, "strip">>;
251
+ retrievedAtomSetId: string;
252
+ }>>>;
253
+ }, "strip", z.ZodTypeAny, {
254
+ axes: Readonly<{
255
+ calibratedConfidence: Readonly<{
256
+ estimate: number;
257
+ n: number;
258
+ intervalWidth: number;
259
+ provenance: "asserted" | "backtest" | "seed" | "live";
260
+ }>;
261
+ assertedConfidence: Readonly<{
262
+ estimate: number;
263
+ n: number;
264
+ intervalWidth: number;
265
+ provenance: "asserted" | "backtest" | "seed" | "live";
266
+ }>;
267
+ consequence: {
268
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
269
+ assertedAt: string;
270
+ kind: "property-risk";
271
+ basis: string;
272
+ auditRef?: string | undefined;
273
+ } | {
274
+ assertedAt: string;
275
+ kind: "not-applicable";
276
+ reason: string;
277
+ };
278
+ }>;
279
+ assembledAt: string;
280
+ modelAttribution?: Readonly<{
281
+ modelId: string;
282
+ modelVersion: string;
283
+ promptTemplateVersion: string;
284
+ contextTemplateVersion: string;
285
+ samplingParams: Readonly<z.objectOutputType<{
286
+ temperature: z.ZodOptional<z.ZodNumber>;
287
+ topP: z.ZodOptional<z.ZodNumber>;
288
+ maxTokens: z.ZodOptional<z.ZodNumber>;
289
+ seed: z.ZodOptional<z.ZodNumber>;
290
+ }, z.ZodUnknown, "strip">>;
291
+ retrievedAtomSetId: string;
292
+ }> | undefined;
293
+ }, {
294
+ axes: Readonly<{
295
+ calibratedConfidence: Readonly<{
296
+ estimate: number;
297
+ n: number;
298
+ intervalWidth: number;
299
+ provenance: "asserted" | "backtest" | "seed" | "live";
300
+ }>;
301
+ assertedConfidence: Readonly<{
302
+ estimate: number;
303
+ n: number;
304
+ intervalWidth: number;
305
+ provenance: "asserted" | "backtest" | "seed" | "live";
306
+ }>;
307
+ consequence: {
308
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
309
+ assertedAt: string;
310
+ kind: "property-risk";
311
+ basis: string;
312
+ auditRef?: string | undefined;
313
+ } | {
314
+ assertedAt: string;
315
+ kind: "not-applicable";
316
+ reason: string;
317
+ };
318
+ }>;
319
+ assembledAt: string;
320
+ modelAttribution?: Readonly<{
321
+ modelId: string;
322
+ modelVersion: string;
323
+ promptTemplateVersion: string;
324
+ contextTemplateVersion: string;
325
+ samplingParams: Readonly<z.objectInputType<{
326
+ temperature: z.ZodOptional<z.ZodNumber>;
327
+ topP: z.ZodOptional<z.ZodNumber>;
328
+ maxTokens: z.ZodOptional<z.ZodNumber>;
329
+ seed: z.ZodOptional<z.ZodNumber>;
330
+ }, z.ZodUnknown, "strip">>;
331
+ retrievedAtomSetId: string;
332
+ }> | undefined;
333
+ }>>>;
334
+ sourceVintage: z.ZodOptional<z.ZodString>;
335
+ verificationStatus: z.ZodEnum<["machine", "human", "unsurveyed"]>;
336
+ sourceAdapter: z.ZodString;
337
+ evaluatedAt: z.ZodString;
338
+ sourceCitation: z.ZodString;
339
+ extractedAt: z.ZodString;
340
+ asOf: z.ZodOptional<z.ZodString>;
341
+ entityType: z.ZodLiteral<"owner-fact">;
342
+ atomDid: z.ZodEffects<z.ZodString, string, string>;
343
+ parcelNodeId: z.ZodEffects<z.ZodString, string, string>;
344
+ taxYear: z.ZodNumber;
345
+ reasoningChain: z.ZodObject<{
346
+ reasoningKind: z.ZodLiteral<"observed">;
347
+ }, "strip", z.ZodTypeAny, {
348
+ reasoningKind: "observed";
349
+ }, {
350
+ reasoningKind: "observed";
351
+ }>;
352
+ sourceTier: z.ZodEnum<["cad-authoritative", "absent"]>;
353
+ ownerName: z.ZodOptional<z.ZodString>;
354
+ ownerMailingAddress: z.ZodOptional<z.ZodString>;
355
+ exemptionFlags: z.ZodOptional<z.ZodObject<{
356
+ /** Any homestead exemption present — implies owner-occupied. */
357
+ homestead: z.ZodBoolean;
358
+ /** Over-65 or disability exemption present. */
359
+ seniorOrDisability: z.ZodBoolean;
360
+ /** Agricultural / open-space / timber valuation present. */
361
+ agricultural: z.ZodBoolean;
362
+ /** Veteran exemption present. */
363
+ veteran: z.ZodBoolean;
364
+ }, "strict", z.ZodTypeAny, {
365
+ homestead: boolean;
366
+ seniorOrDisability: boolean;
367
+ agricultural: boolean;
368
+ veteran: boolean;
369
+ }, {
370
+ homestead: boolean;
371
+ seniorOrDisability: boolean;
372
+ agricultural: boolean;
373
+ veteran: boolean;
374
+ }>>;
375
+ absence: z.ZodOptional<z.ZodObject<{
376
+ kind: z.ZodEnum<["no-owner-name", "owner-withheld", "no-cad-row", "join-hold"]>;
377
+ reason: z.ZodString;
378
+ }, "strict", z.ZodTypeAny, {
379
+ kind: "no-cad-row" | "join-hold" | "no-owner-name" | "owner-withheld";
380
+ reason: string;
381
+ }, {
382
+ kind: "no-cad-row" | "join-hold" | "no-owner-name" | "owner-withheld";
383
+ reason: string;
384
+ }>>;
385
+ verifiedAbsence: z.ZodOptional<z.ZodObject<{
386
+ evaluated: z.ZodLiteral<true>;
387
+ provenanceScope: z.ZodArray<z.ZodString, "many">;
388
+ }, "strict", z.ZodTypeAny, {
389
+ evaluated: true;
390
+ provenanceScope: string[];
391
+ }, {
392
+ evaluated: true;
393
+ provenanceScope: string[];
394
+ }>>;
395
+ accessPolicy: z.ZodEnum<["public-free", "public-paid", "platform-internal", "tenant-private", "tenant-shared"]>;
396
+ }, "strip", z.ZodTypeAny, {
397
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
398
+ entityType: "owner-fact";
399
+ sourceCitation: string;
400
+ extractedAt: string;
401
+ atomDid: string;
402
+ evaluatedAt: string;
403
+ verificationStatus: "machine" | "human" | "unsurveyed";
404
+ sourceAdapter: string;
405
+ parcelNodeId: string;
406
+ reasoningChain: {
407
+ reasoningKind: "observed";
408
+ };
409
+ atomTier: AtomTier;
410
+ sourceTier: "cad-authoritative" | "absent";
411
+ taxYear: number;
412
+ asOf?: string | undefined;
413
+ readContract?: Readonly<{
414
+ axes: Readonly<{
415
+ calibratedConfidence: Readonly<{
416
+ estimate: number;
417
+ n: number;
418
+ intervalWidth: number;
419
+ provenance: "asserted" | "backtest" | "seed" | "live";
420
+ }>;
421
+ assertedConfidence: Readonly<{
422
+ estimate: number;
423
+ n: number;
424
+ intervalWidth: number;
425
+ provenance: "asserted" | "backtest" | "seed" | "live";
426
+ }>;
427
+ consequence: {
428
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
429
+ assertedAt: string;
430
+ kind: "property-risk";
431
+ basis: string;
432
+ auditRef?: string | undefined;
433
+ } | {
434
+ assertedAt: string;
435
+ kind: "not-applicable";
436
+ reason: string;
437
+ };
438
+ }>;
439
+ assembledAt: string;
440
+ modelAttribution?: Readonly<{
441
+ modelId: string;
442
+ modelVersion: string;
443
+ promptTemplateVersion: string;
444
+ contextTemplateVersion: string;
445
+ samplingParams: Readonly<z.objectOutputType<{
446
+ temperature: z.ZodOptional<z.ZodNumber>;
447
+ topP: z.ZodOptional<z.ZodNumber>;
448
+ maxTokens: z.ZodOptional<z.ZodNumber>;
449
+ seed: z.ZodOptional<z.ZodNumber>;
450
+ }, z.ZodUnknown, "strip">>;
451
+ retrievedAtomSetId: string;
452
+ }> | undefined;
453
+ }> | undefined;
454
+ absence?: {
455
+ kind: "no-cad-row" | "join-hold" | "no-owner-name" | "owner-withheld";
456
+ reason: string;
457
+ } | undefined;
458
+ verifiedAbsence?: {
459
+ evaluated: true;
460
+ provenanceScope: string[];
461
+ } | undefined;
462
+ sourceVintage?: string | undefined;
463
+ ownerName?: string | undefined;
464
+ ownerMailingAddress?: string | undefined;
465
+ exemptionFlags?: {
466
+ homestead: boolean;
467
+ seniorOrDisability: boolean;
468
+ agricultural: boolean;
469
+ veteran: boolean;
470
+ } | undefined;
471
+ }, {
472
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
473
+ entityType: "owner-fact";
474
+ sourceCitation: string;
475
+ extractedAt: string;
476
+ atomDid: string;
477
+ evaluatedAt: string;
478
+ verificationStatus: "machine" | "human" | "unsurveyed";
479
+ sourceAdapter: string;
480
+ parcelNodeId: string;
481
+ reasoningChain: {
482
+ reasoningKind: "observed";
483
+ };
484
+ atomTier: AtomTier;
485
+ sourceTier: "cad-authoritative" | "absent";
486
+ taxYear: number;
487
+ asOf?: string | undefined;
488
+ readContract?: Readonly<{
489
+ axes: Readonly<{
490
+ calibratedConfidence: Readonly<{
491
+ estimate: number;
492
+ n: number;
493
+ intervalWidth: number;
494
+ provenance: "asserted" | "backtest" | "seed" | "live";
495
+ }>;
496
+ assertedConfidence: Readonly<{
497
+ estimate: number;
498
+ n: number;
499
+ intervalWidth: number;
500
+ provenance: "asserted" | "backtest" | "seed" | "live";
501
+ }>;
502
+ consequence: {
503
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
504
+ assertedAt: string;
505
+ kind: "property-risk";
506
+ basis: string;
507
+ auditRef?: string | undefined;
508
+ } | {
509
+ assertedAt: string;
510
+ kind: "not-applicable";
511
+ reason: string;
512
+ };
513
+ }>;
514
+ assembledAt: string;
515
+ modelAttribution?: Readonly<{
516
+ modelId: string;
517
+ modelVersion: string;
518
+ promptTemplateVersion: string;
519
+ contextTemplateVersion: string;
520
+ samplingParams: Readonly<z.objectInputType<{
521
+ temperature: z.ZodOptional<z.ZodNumber>;
522
+ topP: z.ZodOptional<z.ZodNumber>;
523
+ maxTokens: z.ZodOptional<z.ZodNumber>;
524
+ seed: z.ZodOptional<z.ZodNumber>;
525
+ }, z.ZodUnknown, "strip">>;
526
+ retrievedAtomSetId: string;
527
+ }> | undefined;
528
+ }> | undefined;
529
+ absence?: {
530
+ kind: "no-cad-row" | "join-hold" | "no-owner-name" | "owner-withheld";
531
+ reason: string;
532
+ } | undefined;
533
+ verifiedAbsence?: {
534
+ evaluated: true;
535
+ provenanceScope: string[];
536
+ } | undefined;
537
+ sourceVintage?: string | undefined;
538
+ ownerName?: string | undefined;
539
+ ownerMailingAddress?: string | undefined;
540
+ exemptionFlags?: {
541
+ homestead: boolean;
542
+ seniorOrDisability: boolean;
543
+ agricultural: boolean;
544
+ veteran: boolean;
545
+ } | undefined;
546
+ }>, {
547
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
548
+ entityType: "owner-fact";
549
+ sourceCitation: string;
550
+ extractedAt: string;
551
+ atomDid: string;
552
+ evaluatedAt: string;
553
+ verificationStatus: "machine" | "human" | "unsurveyed";
554
+ sourceAdapter: string;
555
+ parcelNodeId: string;
556
+ reasoningChain: {
557
+ reasoningKind: "observed";
558
+ };
559
+ atomTier: AtomTier;
560
+ sourceTier: "cad-authoritative" | "absent";
561
+ taxYear: number;
562
+ asOf?: string | undefined;
563
+ readContract?: Readonly<{
564
+ axes: Readonly<{
565
+ calibratedConfidence: Readonly<{
566
+ estimate: number;
567
+ n: number;
568
+ intervalWidth: number;
569
+ provenance: "asserted" | "backtest" | "seed" | "live";
570
+ }>;
571
+ assertedConfidence: Readonly<{
572
+ estimate: number;
573
+ n: number;
574
+ intervalWidth: number;
575
+ provenance: "asserted" | "backtest" | "seed" | "live";
576
+ }>;
577
+ consequence: {
578
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
579
+ assertedAt: string;
580
+ kind: "property-risk";
581
+ basis: string;
582
+ auditRef?: string | undefined;
583
+ } | {
584
+ assertedAt: string;
585
+ kind: "not-applicable";
586
+ reason: string;
587
+ };
588
+ }>;
589
+ assembledAt: string;
590
+ modelAttribution?: Readonly<{
591
+ modelId: string;
592
+ modelVersion: string;
593
+ promptTemplateVersion: string;
594
+ contextTemplateVersion: string;
595
+ samplingParams: Readonly<z.objectOutputType<{
596
+ temperature: z.ZodOptional<z.ZodNumber>;
597
+ topP: z.ZodOptional<z.ZodNumber>;
598
+ maxTokens: z.ZodOptional<z.ZodNumber>;
599
+ seed: z.ZodOptional<z.ZodNumber>;
600
+ }, z.ZodUnknown, "strip">>;
601
+ retrievedAtomSetId: string;
602
+ }> | undefined;
603
+ }> | undefined;
604
+ absence?: {
605
+ kind: "no-cad-row" | "join-hold" | "no-owner-name" | "owner-withheld";
606
+ reason: string;
607
+ } | undefined;
608
+ verifiedAbsence?: {
609
+ evaluated: true;
610
+ provenanceScope: string[];
611
+ } | undefined;
612
+ sourceVintage?: string | undefined;
613
+ ownerName?: string | undefined;
614
+ ownerMailingAddress?: string | undefined;
615
+ exemptionFlags?: {
616
+ homestead: boolean;
617
+ seniorOrDisability: boolean;
618
+ agricultural: boolean;
619
+ veteran: boolean;
620
+ } | undefined;
621
+ }, {
622
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
623
+ entityType: "owner-fact";
624
+ sourceCitation: string;
625
+ extractedAt: string;
626
+ atomDid: string;
627
+ evaluatedAt: string;
628
+ verificationStatus: "machine" | "human" | "unsurveyed";
629
+ sourceAdapter: string;
630
+ parcelNodeId: string;
631
+ reasoningChain: {
632
+ reasoningKind: "observed";
633
+ };
634
+ atomTier: AtomTier;
635
+ sourceTier: "cad-authoritative" | "absent";
636
+ taxYear: number;
637
+ asOf?: string | undefined;
638
+ readContract?: Readonly<{
639
+ axes: Readonly<{
640
+ calibratedConfidence: Readonly<{
641
+ estimate: number;
642
+ n: number;
643
+ intervalWidth: number;
644
+ provenance: "asserted" | "backtest" | "seed" | "live";
645
+ }>;
646
+ assertedConfidence: Readonly<{
647
+ estimate: number;
648
+ n: number;
649
+ intervalWidth: number;
650
+ provenance: "asserted" | "backtest" | "seed" | "live";
651
+ }>;
652
+ consequence: {
653
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
654
+ assertedAt: string;
655
+ kind: "property-risk";
656
+ basis: string;
657
+ auditRef?: string | undefined;
658
+ } | {
659
+ assertedAt: string;
660
+ kind: "not-applicable";
661
+ reason: string;
662
+ };
663
+ }>;
664
+ assembledAt: string;
665
+ modelAttribution?: Readonly<{
666
+ modelId: string;
667
+ modelVersion: string;
668
+ promptTemplateVersion: string;
669
+ contextTemplateVersion: string;
670
+ samplingParams: Readonly<z.objectInputType<{
671
+ temperature: z.ZodOptional<z.ZodNumber>;
672
+ topP: z.ZodOptional<z.ZodNumber>;
673
+ maxTokens: z.ZodOptional<z.ZodNumber>;
674
+ seed: z.ZodOptional<z.ZodNumber>;
675
+ }, z.ZodUnknown, "strip">>;
676
+ retrievedAtomSetId: string;
677
+ }> | undefined;
678
+ }> | undefined;
679
+ absence?: {
680
+ kind: "no-cad-row" | "join-hold" | "no-owner-name" | "owner-withheld";
681
+ reason: string;
682
+ } | undefined;
683
+ verifiedAbsence?: {
684
+ evaluated: true;
685
+ provenanceScope: string[];
686
+ } | undefined;
687
+ sourceVintage?: string | undefined;
688
+ ownerName?: string | undefined;
689
+ ownerMailingAddress?: string | undefined;
690
+ exemptionFlags?: {
691
+ homestead: boolean;
692
+ seniorOrDisability: boolean;
693
+ agricultural: boolean;
694
+ veteran: boolean;
695
+ } | undefined;
696
+ }>;
697
+ export declare function createOwnerFact(input: z.input<typeof OWNER_FACT_SCHEMA>): OwnerFactAtomInstance;
698
+ //# sourceMappingURL=owner-fact.d.ts.map