@empressaio/atom-contract 1.30.0 → 1.31.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,802 @@
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 RoadClassification } from "./road-node.js";
7
+ /** `{county_fips}:{prop_id}:boundary:{edgeIndex}` (27f S2-U2 / WDLL 4-5). */
8
+ export declare const BOUNDARY_EDGE_ID_PATTERN: RegExp;
9
+ export type BoundaryEdgeRole = "front" | "side" | "rear" | "side_corner";
10
+ export declare const BOUNDARY_EDGE_ROLE_VALUES: ReadonlyArray<BoundaryEdgeRole>;
11
+ export declare const BOUNDARY_EDGE_ROLE_SCHEMA: z.ZodEnum<["front", "side", "rear", "side_corner"]>;
12
+ export type BoundaryAdjacencyKind = "ROW" | "alley" | "neighbor-parcel" | "unmapped";
13
+ export declare const BOUNDARY_ADJACENCY_KIND_VALUES: ReadonlyArray<BoundaryAdjacencyKind>;
14
+ export declare const BOUNDARY_ADJACENCY_KIND_SCHEMA: z.ZodEnum<["ROW", "alley", "neighbor-parcel", "unmapped"]>;
15
+ /**
16
+ * How the front role was chosen (honesty requirement — surfaces cite it):
17
+ * - "situs-street-match": parcel situs street name matched exactly one
18
+ * road-adjacent edge's road displayName.
19
+ * - "adjacency-heuristic": road-proximity heuristic (no situs / no match /
20
+ * ambiguous match).
21
+ */
22
+ export type BoundaryFrontBasis = "situs-street-match" | "adjacency-heuristic";
23
+ export declare const BOUNDARY_FRONT_BASIS_SCHEMA: z.ZodEnum<["situs-street-match", "adjacency-heuristic"]>;
24
+ export declare const BOUNDARY_FACING_ROAD_SCHEMA: z.ZodObject<{
25
+ roadNodeId: z.ZodString;
26
+ classification: z.ZodEnum<["highway", "major_collector", "minor_collector", "residential", "alley", "gravel", "unclassified"]>;
27
+ provenance: z.ZodString;
28
+ osmHighwayTag: z.ZodOptional<z.ZodString>;
29
+ /** Mirrors road-node isPedestrianWay when known (same engine denylist). */
30
+ isPedestrianWay: z.ZodOptional<z.ZodBoolean>;
31
+ }, "strict", z.ZodTypeAny, {
32
+ provenance: string;
33
+ roadNodeId: string;
34
+ classification: "highway" | "major_collector" | "minor_collector" | "residential" | "alley" | "gravel" | "unclassified";
35
+ osmHighwayTag?: string | undefined;
36
+ isPedestrianWay?: boolean | undefined;
37
+ }, {
38
+ provenance: string;
39
+ roadNodeId: string;
40
+ classification: "highway" | "major_collector" | "minor_collector" | "residential" | "alley" | "gravel" | "unclassified";
41
+ osmHighwayTag?: string | undefined;
42
+ isPedestrianWay?: boolean | undefined;
43
+ }>;
44
+ export interface BoundaryFacingRoad {
45
+ roadNodeId: string;
46
+ classification: RoadClassification;
47
+ provenance: string;
48
+ osmHighwayTag?: string;
49
+ isPedestrianWay?: boolean;
50
+ }
51
+ export declare const BOUNDARY_RESOLVED_SETBACK_SCHEMA: z.ZodObject<{
52
+ feet: z.ZodNumber;
53
+ provenance: z.ZodString;
54
+ atomCitation: z.ZodOptional<z.ZodString>;
55
+ }, "strict", z.ZodTypeAny, {
56
+ provenance: string;
57
+ feet: number;
58
+ atomCitation?: string | undefined;
59
+ }, {
60
+ provenance: string;
61
+ feet: number;
62
+ atomCitation?: string | undefined;
63
+ }>;
64
+ export type BoundaryResolvedSetback = z.infer<typeof BOUNDARY_RESOLVED_SETBACK_SCHEMA>;
65
+ /**
66
+ * "not-applicable": no zoning ordinance exists to derive a setback from
67
+ * (unincorporated land). Distinct from "no-setback-row" (a genuinely missing
68
+ * ordinance-chart row for a KNOWN zoned district — a real gap, not an
69
+ * absence of zoning itself).
70
+ */
71
+ export declare const BOUNDARY_SETBACK_ABSENCE_KINDS: readonly ["no-setback-row", "unmapped-adjacency", "not-applicable"];
72
+ export type BoundarySetbackAbsenceKind = (typeof BOUNDARY_SETBACK_ABSENCE_KINDS)[number];
73
+ export declare const BOUNDARY_SETBACK_ABSENCE_SCHEMA: z.ZodObject<{
74
+ kind: z.ZodEnum<["no-setback-row", "unmapped-adjacency", "not-applicable"]>;
75
+ reason: z.ZodString;
76
+ }, "strict", z.ZodTypeAny, {
77
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
78
+ reason: string;
79
+ }, {
80
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
81
+ reason: string;
82
+ }>;
83
+ export type BoundarySetbackAbsence = z.infer<typeof BOUNDARY_SETBACK_ABSENCE_SCHEMA>;
84
+ export declare const BOUNDARY_SETBACK_SCHEMA: z.ZodUnion<[z.ZodObject<{
85
+ feet: z.ZodNumber;
86
+ provenance: z.ZodString;
87
+ atomCitation: z.ZodOptional<z.ZodString>;
88
+ }, "strict", z.ZodTypeAny, {
89
+ provenance: string;
90
+ feet: number;
91
+ atomCitation?: string | undefined;
92
+ }, {
93
+ provenance: string;
94
+ feet: number;
95
+ atomCitation?: string | undefined;
96
+ }>, z.ZodObject<{
97
+ kind: z.ZodEnum<["no-setback-row", "unmapped-adjacency", "not-applicable"]>;
98
+ reason: z.ZodString;
99
+ }, "strict", z.ZodTypeAny, {
100
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
101
+ reason: string;
102
+ }, {
103
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
104
+ reason: string;
105
+ }>]>;
106
+ export type BoundarySetback = BoundaryResolvedSetback | BoundarySetbackAbsence;
107
+ /**
108
+ * GIS-approximate interior frame (local-ENU metres from depth-warm
109
+ * projectRing: centroid origin, +X east, +Y north) — NOT raw WGS84 lng/lat.
110
+ * Used for GIS property-line-tags.
111
+ */
112
+ export declare const BOUNDARY_INTERIOR_FRAME_SCHEMA: z.ZodObject<{
113
+ ringCcw: z.ZodBoolean;
114
+ centroidInside: z.ZodBoolean;
115
+ inwardNormal: z.ZodObject<{
116
+ x: z.ZodNumber;
117
+ y: z.ZodNumber;
118
+ }, "strict", z.ZodTypeAny, {
119
+ x: number;
120
+ y: number;
121
+ }, {
122
+ x: number;
123
+ y: number;
124
+ }>;
125
+ edgeEndpoints: z.ZodTuple<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>], null>;
126
+ }, "strict", z.ZodTypeAny, {
127
+ ringCcw: boolean;
128
+ centroidInside: boolean;
129
+ inwardNormal: {
130
+ x: number;
131
+ y: number;
132
+ };
133
+ edgeEndpoints: [[number, number], [number, number]];
134
+ }, {
135
+ ringCcw: boolean;
136
+ centroidInside: boolean;
137
+ inwardNormal: {
138
+ x: number;
139
+ y: number;
140
+ };
141
+ edgeEndpoints: [[number, number], [number, number]];
142
+ }>;
143
+ export interface BoundaryInteriorFrame {
144
+ ringCcw: boolean;
145
+ centroidInside: boolean;
146
+ inwardNormal: {
147
+ x: number;
148
+ y: number;
149
+ };
150
+ edgeEndpoints: [[number, number], [number, number]];
151
+ }
152
+ /**
153
+ * GIS-approximate bearing + distance on a boundary edge (never survey-grade).
154
+ * Honesty string must stay machine-checkable (WDLL anti-fabrication).
155
+ */
156
+ export declare const BOUNDARY_PROPERTY_LINE_TAGS_SCHEMA: z.ZodObject<{
157
+ bearing: z.ZodString;
158
+ distanceFeet: z.ZodNumber;
159
+ provenance: z.ZodObject<{
160
+ kind: z.ZodLiteral<"gis-approximate">;
161
+ honesty: z.ZodString;
162
+ source: z.ZodString;
163
+ }, "strict", z.ZodTypeAny, {
164
+ kind: "gis-approximate";
165
+ source: string;
166
+ honesty: string;
167
+ }, {
168
+ kind: "gis-approximate";
169
+ source: string;
170
+ honesty: string;
171
+ }>;
172
+ }, "strict", z.ZodTypeAny, {
173
+ provenance: {
174
+ kind: "gis-approximate";
175
+ source: string;
176
+ honesty: string;
177
+ };
178
+ bearing: string;
179
+ distanceFeet: number;
180
+ }, {
181
+ provenance: {
182
+ kind: "gis-approximate";
183
+ source: string;
184
+ honesty: string;
185
+ };
186
+ bearing: string;
187
+ distanceFeet: number;
188
+ }>;
189
+ export type BoundaryPropertyLineTags = z.infer<typeof BOUNDARY_PROPERTY_LINE_TAGS_SCHEMA>;
190
+ /**
191
+ * Property boundary edge atom — per-parcel edge with role, adjacency,
192
+ * resolved setback, and interior-frame geometry (27f S2-U2 / WDLL 4-5).
193
+ *
194
+ * Stable id `{county_fips}:{prop_id}:boundary:{edgeIndex}`. A parcel
195
+ * normally carries several of these (one per boundary side), unlike most
196
+ * other property atom kinds which are one-per-parcel.
197
+ */
198
+ export interface BoundaryEdgeAtomInstance {
199
+ entityType: "property-boundary-edge";
200
+ atomDid: string;
201
+ boundaryEdgeId: string;
202
+ parcelNodeId: string;
203
+ countyFips: string;
204
+ propId: string;
205
+ edgeIndex: number;
206
+ role: BoundaryEdgeRole;
207
+ /** Present on the front edge only: which rule assigned the front role. */
208
+ frontBasis?: BoundaryFrontBasis;
209
+ adjacencyKind: BoundaryAdjacencyKind;
210
+ parcelNeighborPropId: string | null;
211
+ facingRoad: BoundaryFacingRoad | null;
212
+ setback: BoundarySetback;
213
+ interior: BoundaryInteriorFrame;
214
+ /** GIS-approx from ring endpoints; optional until backfill lands. */
215
+ propertyLineTags?: BoundaryPropertyLineTags;
216
+ effectiveDate: string;
217
+ status: "active" | "retired";
218
+ supersedesEntityId: string | null;
219
+ reasoningChain: Extract<ReasoningChain, {
220
+ reasoningKind: "observed";
221
+ }>;
222
+ accessPolicy: AccessPolicy;
223
+ sourceCitation: string;
224
+ extractedAt: string;
225
+ asOf?: string;
226
+ atomTier: AtomTier;
227
+ readContract?: ReasoningReadContract;
228
+ }
229
+ export declare const BOUNDARY_EDGE_SCHEMA: z.ZodObject<{
230
+ atomTier: z.ZodLiteral<AtomTier>;
231
+ readContract: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
232
+ axes: z.ZodReadonly<z.ZodObject<{
233
+ calibratedConfidence: z.ZodReadonly<z.ZodObject<{
234
+ readonly estimate: z.ZodNumber;
235
+ readonly n: z.ZodNumber;
236
+ readonly intervalWidth: z.ZodNumber;
237
+ readonly provenance: z.ZodEnum<["asserted", "backtest", "seed", "live"]>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ estimate: number;
240
+ n: number;
241
+ intervalWidth: number;
242
+ provenance: "asserted" | "backtest" | "seed" | "live";
243
+ }, {
244
+ estimate: number;
245
+ n: number;
246
+ intervalWidth: number;
247
+ provenance: "asserted" | "backtest" | "seed" | "live";
248
+ }>>;
249
+ assertedConfidence: z.ZodReadonly<z.ZodObject<{
250
+ readonly estimate: z.ZodNumber;
251
+ readonly n: z.ZodNumber;
252
+ readonly intervalWidth: z.ZodNumber;
253
+ readonly provenance: z.ZodEnum<["asserted", "backtest", "seed", "live"]>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ estimate: number;
256
+ n: number;
257
+ intervalWidth: number;
258
+ provenance: "asserted" | "backtest" | "seed" | "live";
259
+ }, {
260
+ estimate: number;
261
+ n: number;
262
+ intervalWidth: number;
263
+ provenance: "asserted" | "backtest" | "seed" | "live";
264
+ }>>;
265
+ consequence: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
266
+ kind: z.ZodLiteral<"property-risk">;
267
+ stratum: z.ZodEnum<[import("../read-contract/reasoning-axes.js").PropertyRiskStratum, ...import("../read-contract/reasoning-axes.js").PropertyRiskStratum[]]>;
268
+ basis: z.ZodString;
269
+ assertedAt: z.ZodString;
270
+ auditRef: z.ZodOptional<z.ZodString>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ kind: "property-risk";
273
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
274
+ assertedAt: string;
275
+ basis: string;
276
+ auditRef?: string | undefined;
277
+ }, {
278
+ kind: "property-risk";
279
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
280
+ assertedAt: string;
281
+ basis: string;
282
+ auditRef?: string | undefined;
283
+ }>, z.ZodObject<{
284
+ kind: z.ZodLiteral<"not-applicable">;
285
+ reason: z.ZodString;
286
+ assertedAt: z.ZodString;
287
+ }, "strip", z.ZodTypeAny, {
288
+ kind: "not-applicable";
289
+ assertedAt: string;
290
+ reason: string;
291
+ }, {
292
+ kind: "not-applicable";
293
+ assertedAt: string;
294
+ reason: string;
295
+ }>]>;
296
+ }, "strip", z.ZodTypeAny, {
297
+ calibratedConfidence: Readonly<{
298
+ estimate: number;
299
+ n: number;
300
+ intervalWidth: number;
301
+ provenance: "asserted" | "backtest" | "seed" | "live";
302
+ }>;
303
+ assertedConfidence: Readonly<{
304
+ estimate: number;
305
+ n: number;
306
+ intervalWidth: number;
307
+ provenance: "asserted" | "backtest" | "seed" | "live";
308
+ }>;
309
+ consequence: {
310
+ kind: "property-risk";
311
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
312
+ assertedAt: string;
313
+ basis: string;
314
+ auditRef?: string | undefined;
315
+ } | {
316
+ kind: "not-applicable";
317
+ assertedAt: string;
318
+ reason: string;
319
+ };
320
+ }, {
321
+ calibratedConfidence: Readonly<{
322
+ estimate: number;
323
+ n: number;
324
+ intervalWidth: number;
325
+ provenance: "asserted" | "backtest" | "seed" | "live";
326
+ }>;
327
+ assertedConfidence: Readonly<{
328
+ estimate: number;
329
+ n: number;
330
+ intervalWidth: number;
331
+ provenance: "asserted" | "backtest" | "seed" | "live";
332
+ }>;
333
+ consequence: {
334
+ kind: "property-risk";
335
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
336
+ assertedAt: string;
337
+ basis: string;
338
+ auditRef?: string | undefined;
339
+ } | {
340
+ kind: "not-applicable";
341
+ assertedAt: string;
342
+ reason: string;
343
+ };
344
+ }>>;
345
+ assembledAt: z.ZodString;
346
+ modelAttribution: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
347
+ modelId: z.ZodString;
348
+ modelVersion: z.ZodString;
349
+ promptTemplateVersion: z.ZodString;
350
+ contextTemplateVersion: z.ZodString;
351
+ samplingParams: z.ZodReadonly<z.ZodObject<{
352
+ temperature: z.ZodOptional<z.ZodNumber>;
353
+ topP: z.ZodOptional<z.ZodNumber>;
354
+ maxTokens: z.ZodOptional<z.ZodNumber>;
355
+ seed: z.ZodOptional<z.ZodNumber>;
356
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
357
+ temperature: z.ZodOptional<z.ZodNumber>;
358
+ topP: z.ZodOptional<z.ZodNumber>;
359
+ maxTokens: z.ZodOptional<z.ZodNumber>;
360
+ seed: z.ZodOptional<z.ZodNumber>;
361
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
362
+ temperature: z.ZodOptional<z.ZodNumber>;
363
+ topP: z.ZodOptional<z.ZodNumber>;
364
+ maxTokens: z.ZodOptional<z.ZodNumber>;
365
+ seed: z.ZodOptional<z.ZodNumber>;
366
+ }, z.ZodUnknown, "strip">>>;
367
+ retrievedAtomSetId: z.ZodString;
368
+ }, "strip", z.ZodTypeAny, {
369
+ modelId: string;
370
+ modelVersion: string;
371
+ promptTemplateVersion: string;
372
+ contextTemplateVersion: string;
373
+ samplingParams: Readonly<z.objectOutputType<{
374
+ temperature: z.ZodOptional<z.ZodNumber>;
375
+ topP: z.ZodOptional<z.ZodNumber>;
376
+ maxTokens: z.ZodOptional<z.ZodNumber>;
377
+ seed: z.ZodOptional<z.ZodNumber>;
378
+ }, z.ZodUnknown, "strip">>;
379
+ retrievedAtomSetId: string;
380
+ }, {
381
+ modelId: string;
382
+ modelVersion: string;
383
+ promptTemplateVersion: string;
384
+ contextTemplateVersion: string;
385
+ samplingParams: Readonly<z.objectInputType<{
386
+ temperature: z.ZodOptional<z.ZodNumber>;
387
+ topP: z.ZodOptional<z.ZodNumber>;
388
+ maxTokens: z.ZodOptional<z.ZodNumber>;
389
+ seed: z.ZodOptional<z.ZodNumber>;
390
+ }, z.ZodUnknown, "strip">>;
391
+ retrievedAtomSetId: string;
392
+ }>>>;
393
+ }, "strip", z.ZodTypeAny, {
394
+ axes: Readonly<{
395
+ calibratedConfidence: Readonly<{
396
+ estimate: number;
397
+ n: number;
398
+ intervalWidth: number;
399
+ provenance: "asserted" | "backtest" | "seed" | "live";
400
+ }>;
401
+ assertedConfidence: Readonly<{
402
+ estimate: number;
403
+ n: number;
404
+ intervalWidth: number;
405
+ provenance: "asserted" | "backtest" | "seed" | "live";
406
+ }>;
407
+ consequence: {
408
+ kind: "property-risk";
409
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
410
+ assertedAt: string;
411
+ basis: string;
412
+ auditRef?: string | undefined;
413
+ } | {
414
+ kind: "not-applicable";
415
+ assertedAt: string;
416
+ reason: string;
417
+ };
418
+ }>;
419
+ assembledAt: string;
420
+ modelAttribution?: Readonly<{
421
+ modelId: string;
422
+ modelVersion: string;
423
+ promptTemplateVersion: string;
424
+ contextTemplateVersion: string;
425
+ samplingParams: Readonly<z.objectOutputType<{
426
+ temperature: z.ZodOptional<z.ZodNumber>;
427
+ topP: z.ZodOptional<z.ZodNumber>;
428
+ maxTokens: z.ZodOptional<z.ZodNumber>;
429
+ seed: z.ZodOptional<z.ZodNumber>;
430
+ }, z.ZodUnknown, "strip">>;
431
+ retrievedAtomSetId: string;
432
+ }> | undefined;
433
+ }, {
434
+ axes: Readonly<{
435
+ calibratedConfidence: Readonly<{
436
+ estimate: number;
437
+ n: number;
438
+ intervalWidth: number;
439
+ provenance: "asserted" | "backtest" | "seed" | "live";
440
+ }>;
441
+ assertedConfidence: Readonly<{
442
+ estimate: number;
443
+ n: number;
444
+ intervalWidth: number;
445
+ provenance: "asserted" | "backtest" | "seed" | "live";
446
+ }>;
447
+ consequence: {
448
+ kind: "property-risk";
449
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
450
+ assertedAt: string;
451
+ basis: string;
452
+ auditRef?: string | undefined;
453
+ } | {
454
+ kind: "not-applicable";
455
+ assertedAt: string;
456
+ reason: string;
457
+ };
458
+ }>;
459
+ assembledAt: string;
460
+ modelAttribution?: Readonly<{
461
+ modelId: string;
462
+ modelVersion: string;
463
+ promptTemplateVersion: string;
464
+ contextTemplateVersion: string;
465
+ samplingParams: Readonly<z.objectInputType<{
466
+ temperature: z.ZodOptional<z.ZodNumber>;
467
+ topP: z.ZodOptional<z.ZodNumber>;
468
+ maxTokens: z.ZodOptional<z.ZodNumber>;
469
+ seed: z.ZodOptional<z.ZodNumber>;
470
+ }, z.ZodUnknown, "strip">>;
471
+ retrievedAtomSetId: string;
472
+ }> | undefined;
473
+ }>>>;
474
+ sourceCitation: z.ZodString;
475
+ extractedAt: z.ZodString;
476
+ asOf: z.ZodOptional<z.ZodString>;
477
+ entityType: z.ZodLiteral<"property-boundary-edge">;
478
+ atomDid: z.ZodEffects<z.ZodString, string, string>;
479
+ boundaryEdgeId: z.ZodEffects<z.ZodString, string, string>;
480
+ parcelNodeId: z.ZodEffects<z.ZodString, string, string>;
481
+ countyFips: z.ZodString;
482
+ propId: z.ZodString;
483
+ edgeIndex: z.ZodNumber;
484
+ role: z.ZodEnum<["front", "side", "rear", "side_corner"]>;
485
+ frontBasis: z.ZodOptional<z.ZodEnum<["situs-street-match", "adjacency-heuristic"]>>;
486
+ adjacencyKind: z.ZodEnum<["ROW", "alley", "neighbor-parcel", "unmapped"]>;
487
+ parcelNeighborPropId: z.ZodNullable<z.ZodString>;
488
+ facingRoad: z.ZodNullable<z.ZodObject<{
489
+ roadNodeId: z.ZodString;
490
+ classification: z.ZodEnum<["highway", "major_collector", "minor_collector", "residential", "alley", "gravel", "unclassified"]>;
491
+ provenance: z.ZodString;
492
+ osmHighwayTag: z.ZodOptional<z.ZodString>;
493
+ /** Mirrors road-node isPedestrianWay when known (same engine denylist). */
494
+ isPedestrianWay: z.ZodOptional<z.ZodBoolean>;
495
+ }, "strict", z.ZodTypeAny, {
496
+ provenance: string;
497
+ roadNodeId: string;
498
+ classification: "highway" | "major_collector" | "minor_collector" | "residential" | "alley" | "gravel" | "unclassified";
499
+ osmHighwayTag?: string | undefined;
500
+ isPedestrianWay?: boolean | undefined;
501
+ }, {
502
+ provenance: string;
503
+ roadNodeId: string;
504
+ classification: "highway" | "major_collector" | "minor_collector" | "residential" | "alley" | "gravel" | "unclassified";
505
+ osmHighwayTag?: string | undefined;
506
+ isPedestrianWay?: boolean | undefined;
507
+ }>>;
508
+ setback: z.ZodUnion<[z.ZodObject<{
509
+ feet: z.ZodNumber;
510
+ provenance: z.ZodString;
511
+ atomCitation: z.ZodOptional<z.ZodString>;
512
+ }, "strict", z.ZodTypeAny, {
513
+ provenance: string;
514
+ feet: number;
515
+ atomCitation?: string | undefined;
516
+ }, {
517
+ provenance: string;
518
+ feet: number;
519
+ atomCitation?: string | undefined;
520
+ }>, z.ZodObject<{
521
+ kind: z.ZodEnum<["no-setback-row", "unmapped-adjacency", "not-applicable"]>;
522
+ reason: z.ZodString;
523
+ }, "strict", z.ZodTypeAny, {
524
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
525
+ reason: string;
526
+ }, {
527
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
528
+ reason: string;
529
+ }>]>;
530
+ interior: z.ZodObject<{
531
+ ringCcw: z.ZodBoolean;
532
+ centroidInside: z.ZodBoolean;
533
+ inwardNormal: z.ZodObject<{
534
+ x: z.ZodNumber;
535
+ y: z.ZodNumber;
536
+ }, "strict", z.ZodTypeAny, {
537
+ x: number;
538
+ y: number;
539
+ }, {
540
+ x: number;
541
+ y: number;
542
+ }>;
543
+ edgeEndpoints: z.ZodTuple<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>], null>;
544
+ }, "strict", z.ZodTypeAny, {
545
+ ringCcw: boolean;
546
+ centroidInside: boolean;
547
+ inwardNormal: {
548
+ x: number;
549
+ y: number;
550
+ };
551
+ edgeEndpoints: [[number, number], [number, number]];
552
+ }, {
553
+ ringCcw: boolean;
554
+ centroidInside: boolean;
555
+ inwardNormal: {
556
+ x: number;
557
+ y: number;
558
+ };
559
+ edgeEndpoints: [[number, number], [number, number]];
560
+ }>;
561
+ propertyLineTags: z.ZodOptional<z.ZodObject<{
562
+ bearing: z.ZodString;
563
+ distanceFeet: z.ZodNumber;
564
+ provenance: z.ZodObject<{
565
+ kind: z.ZodLiteral<"gis-approximate">;
566
+ honesty: z.ZodString;
567
+ source: z.ZodString;
568
+ }, "strict", z.ZodTypeAny, {
569
+ kind: "gis-approximate";
570
+ source: string;
571
+ honesty: string;
572
+ }, {
573
+ kind: "gis-approximate";
574
+ source: string;
575
+ honesty: string;
576
+ }>;
577
+ }, "strict", z.ZodTypeAny, {
578
+ provenance: {
579
+ kind: "gis-approximate";
580
+ source: string;
581
+ honesty: string;
582
+ };
583
+ bearing: string;
584
+ distanceFeet: number;
585
+ }, {
586
+ provenance: {
587
+ kind: "gis-approximate";
588
+ source: string;
589
+ honesty: string;
590
+ };
591
+ bearing: string;
592
+ distanceFeet: number;
593
+ }>>;
594
+ effectiveDate: z.ZodString;
595
+ status: z.ZodEnum<["active", "retired"]>;
596
+ supersedesEntityId: z.ZodNullable<z.ZodString>;
597
+ reasoningChain: z.ZodObject<{
598
+ reasoningKind: z.ZodLiteral<"observed">;
599
+ }, "strip", z.ZodTypeAny, {
600
+ reasoningKind: "observed";
601
+ }, {
602
+ reasoningKind: "observed";
603
+ }>;
604
+ accessPolicy: z.ZodEnum<["public-free", "public-paid", "platform-internal", "tenant-private", "tenant-shared"]>;
605
+ }, "strip", z.ZodTypeAny, {
606
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
607
+ status: "active" | "retired";
608
+ entityType: "property-boundary-edge";
609
+ sourceCitation: string;
610
+ extractedAt: string;
611
+ atomDid: string;
612
+ role: "front" | "side" | "rear" | "side_corner";
613
+ effectiveDate: string;
614
+ countyFips: string;
615
+ propId: string;
616
+ reasoningChain: {
617
+ reasoningKind: "observed";
618
+ };
619
+ atomTier: AtomTier;
620
+ boundaryEdgeId: string;
621
+ parcelNodeId: string;
622
+ edgeIndex: number;
623
+ adjacencyKind: "alley" | "ROW" | "neighbor-parcel" | "unmapped";
624
+ parcelNeighborPropId: string | null;
625
+ facingRoad: {
626
+ provenance: string;
627
+ roadNodeId: string;
628
+ classification: "highway" | "major_collector" | "minor_collector" | "residential" | "alley" | "gravel" | "unclassified";
629
+ osmHighwayTag?: string | undefined;
630
+ isPedestrianWay?: boolean | undefined;
631
+ } | null;
632
+ setback: {
633
+ provenance: string;
634
+ feet: number;
635
+ atomCitation?: string | undefined;
636
+ } | {
637
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
638
+ reason: string;
639
+ };
640
+ interior: {
641
+ ringCcw: boolean;
642
+ centroidInside: boolean;
643
+ inwardNormal: {
644
+ x: number;
645
+ y: number;
646
+ };
647
+ edgeEndpoints: [[number, number], [number, number]];
648
+ };
649
+ supersedesEntityId: string | null;
650
+ asOf?: string | undefined;
651
+ readContract?: Readonly<{
652
+ axes: Readonly<{
653
+ calibratedConfidence: Readonly<{
654
+ estimate: number;
655
+ n: number;
656
+ intervalWidth: number;
657
+ provenance: "asserted" | "backtest" | "seed" | "live";
658
+ }>;
659
+ assertedConfidence: Readonly<{
660
+ estimate: number;
661
+ n: number;
662
+ intervalWidth: number;
663
+ provenance: "asserted" | "backtest" | "seed" | "live";
664
+ }>;
665
+ consequence: {
666
+ kind: "property-risk";
667
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
668
+ assertedAt: string;
669
+ basis: string;
670
+ auditRef?: string | undefined;
671
+ } | {
672
+ kind: "not-applicable";
673
+ assertedAt: string;
674
+ reason: string;
675
+ };
676
+ }>;
677
+ assembledAt: string;
678
+ modelAttribution?: Readonly<{
679
+ modelId: string;
680
+ modelVersion: string;
681
+ promptTemplateVersion: string;
682
+ contextTemplateVersion: string;
683
+ samplingParams: Readonly<z.objectOutputType<{
684
+ temperature: z.ZodOptional<z.ZodNumber>;
685
+ topP: z.ZodOptional<z.ZodNumber>;
686
+ maxTokens: z.ZodOptional<z.ZodNumber>;
687
+ seed: z.ZodOptional<z.ZodNumber>;
688
+ }, z.ZodUnknown, "strip">>;
689
+ retrievedAtomSetId: string;
690
+ }> | undefined;
691
+ }> | undefined;
692
+ frontBasis?: "situs-street-match" | "adjacency-heuristic" | undefined;
693
+ propertyLineTags?: {
694
+ provenance: {
695
+ kind: "gis-approximate";
696
+ source: string;
697
+ honesty: string;
698
+ };
699
+ bearing: string;
700
+ distanceFeet: number;
701
+ } | undefined;
702
+ }, {
703
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
704
+ status: "active" | "retired";
705
+ entityType: "property-boundary-edge";
706
+ sourceCitation: string;
707
+ extractedAt: string;
708
+ atomDid: string;
709
+ role: "front" | "side" | "rear" | "side_corner";
710
+ effectiveDate: string;
711
+ countyFips: string;
712
+ propId: string;
713
+ reasoningChain: {
714
+ reasoningKind: "observed";
715
+ };
716
+ atomTier: AtomTier;
717
+ boundaryEdgeId: string;
718
+ parcelNodeId: string;
719
+ edgeIndex: number;
720
+ adjacencyKind: "alley" | "ROW" | "neighbor-parcel" | "unmapped";
721
+ parcelNeighborPropId: string | null;
722
+ facingRoad: {
723
+ provenance: string;
724
+ roadNodeId: string;
725
+ classification: "highway" | "major_collector" | "minor_collector" | "residential" | "alley" | "gravel" | "unclassified";
726
+ osmHighwayTag?: string | undefined;
727
+ isPedestrianWay?: boolean | undefined;
728
+ } | null;
729
+ setback: {
730
+ provenance: string;
731
+ feet: number;
732
+ atomCitation?: string | undefined;
733
+ } | {
734
+ kind: "not-applicable" | "no-setback-row" | "unmapped-adjacency";
735
+ reason: string;
736
+ };
737
+ interior: {
738
+ ringCcw: boolean;
739
+ centroidInside: boolean;
740
+ inwardNormal: {
741
+ x: number;
742
+ y: number;
743
+ };
744
+ edgeEndpoints: [[number, number], [number, number]];
745
+ };
746
+ supersedesEntityId: string | null;
747
+ asOf?: string | undefined;
748
+ readContract?: Readonly<{
749
+ axes: Readonly<{
750
+ calibratedConfidence: Readonly<{
751
+ estimate: number;
752
+ n: number;
753
+ intervalWidth: number;
754
+ provenance: "asserted" | "backtest" | "seed" | "live";
755
+ }>;
756
+ assertedConfidence: Readonly<{
757
+ estimate: number;
758
+ n: number;
759
+ intervalWidth: number;
760
+ provenance: "asserted" | "backtest" | "seed" | "live";
761
+ }>;
762
+ consequence: {
763
+ kind: "property-risk";
764
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
765
+ assertedAt: string;
766
+ basis: string;
767
+ auditRef?: string | undefined;
768
+ } | {
769
+ kind: "not-applicable";
770
+ assertedAt: string;
771
+ reason: string;
772
+ };
773
+ }>;
774
+ assembledAt: string;
775
+ modelAttribution?: Readonly<{
776
+ modelId: string;
777
+ modelVersion: string;
778
+ promptTemplateVersion: string;
779
+ contextTemplateVersion: string;
780
+ samplingParams: Readonly<z.objectInputType<{
781
+ temperature: z.ZodOptional<z.ZodNumber>;
782
+ topP: z.ZodOptional<z.ZodNumber>;
783
+ maxTokens: z.ZodOptional<z.ZodNumber>;
784
+ seed: z.ZodOptional<z.ZodNumber>;
785
+ }, z.ZodUnknown, "strip">>;
786
+ retrievedAtomSetId: string;
787
+ }> | undefined;
788
+ }> | undefined;
789
+ frontBasis?: "situs-street-match" | "adjacency-heuristic" | undefined;
790
+ propertyLineTags?: {
791
+ provenance: {
792
+ kind: "gis-approximate";
793
+ source: string;
794
+ honesty: string;
795
+ };
796
+ bearing: string;
797
+ distanceFeet: number;
798
+ } | undefined;
799
+ }>;
800
+ export declare function createBoundaryEdge(input: z.input<typeof BOUNDARY_EDGE_SCHEMA>): BoundaryEdgeAtomInstance;
801
+ export declare function boundaryEdgeIdFromParts(countyFips: string, propId: string, edgeIndex: number): string;
802
+ //# sourceMappingURL=boundary-edge.d.ts.map