@empressaio/atom-contract 1.30.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +33 -0
  3. package/dist/display/buildable.d.ts +74 -0
  4. package/dist/display/buildable.d.ts.map +1 -0
  5. package/dist/display/buildable.js +227 -0
  6. package/dist/display/buildable.js.map +1 -0
  7. package/dist/display/index.d.ts +17 -0
  8. package/dist/display/index.d.ts.map +1 -0
  9. package/dist/display/index.js +17 -0
  10. package/dist/display/index.js.map +1 -0
  11. package/dist/display/wire.d.ts +110 -0
  12. package/dist/display/wire.d.ts.map +1 -0
  13. package/dist/display/wire.js +341 -0
  14. package/dist/display/wire.js.map +1 -0
  15. package/dist/property/boundary-edge.d.ts +802 -0
  16. package/dist/property/boundary-edge.d.ts.map +1 -0
  17. package/dist/property/boundary-edge.js +145 -0
  18. package/dist/property/boundary-edge.js.map +1 -0
  19. package/dist/property/buildable-envelope.d.ts +4 -4
  20. package/dist/property/building-footprint.d.ts +8 -8
  21. package/dist/property/cad-parcel-roll.d.ts +8 -8
  22. package/dist/property/fixtures.d.ts +13 -0
  23. package/dist/property/fixtures.d.ts.map +1 -1
  24. package/dist/property/fixtures.js +96 -0
  25. package/dist/property/fixtures.js.map +1 -1
  26. package/dist/property/flood-hazard-fact.d.ts +4 -4
  27. package/dist/property/index.d.ts +1 -0
  28. package/dist/property/index.d.ts.map +1 -1
  29. package/dist/property/index.js +1 -0
  30. package/dist/property/index.js.map +1 -1
  31. package/dist/property/land-use-fact.d.ts +8 -8
  32. package/dist/property/owner-fact.d.ts +8 -8
  33. package/dist/property/parcel-node.d.ts +4 -4
  34. package/dist/property/parcel-terrain-model.d.ts +4 -4
  35. package/dist/property/rail-corridor-fact.d.ts +4 -4
  36. package/dist/property/road-node.d.ts +10 -10
  37. package/dist/property/rrc-pipeline-fact.d.ts +4 -4
  38. package/dist/property/setback-rule.d.ts +4 -4
  39. package/dist/property/special-district-fact.d.ts +4 -4
  40. package/dist/property/utility-easement.d.ts +4 -4
  41. package/dist/property/well-fact.d.ts +4 -4
  42. package/dist/property/zoning-fact.d.ts +4 -4
  43. package/package.json +5 -1
@@ -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: "alley" | "highway" | "major_collector" | "minor_collector" | "residential" | "gravel" | "unclassified";
35
+ osmHighwayTag?: string | undefined;
36
+ isPedestrianWay?: boolean | undefined;
37
+ }, {
38
+ provenance: string;
39
+ roadNodeId: string;
40
+ classification: "alley" | "highway" | "major_collector" | "minor_collector" | "residential" | "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: "alley" | "highway" | "major_collector" | "minor_collector" | "residential" | "gravel" | "unclassified";
499
+ osmHighwayTag?: string | undefined;
500
+ isPedestrianWay?: boolean | undefined;
501
+ }, {
502
+ provenance: string;
503
+ roadNodeId: string;
504
+ classification: "alley" | "highway" | "major_collector" | "minor_collector" | "residential" | "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: "alley" | "highway" | "major_collector" | "minor_collector" | "residential" | "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: "alley" | "highway" | "major_collector" | "minor_collector" | "residential" | "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