@empressaio/atom-contract 1.8.0 → 1.10.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 (39) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +39 -0
  3. package/dist/conformance/common.d.ts +5 -0
  4. package/dist/conformance/common.d.ts.map +1 -1
  5. package/dist/conformance/common.js +4 -0
  6. package/dist/conformance/common.js.map +1 -1
  7. package/dist/conformance/index.d.ts +1 -1
  8. package/dist/conformance/index.d.ts.map +1 -1
  9. package/dist/conformance/index.js +1 -1
  10. package/dist/conformance/index.js.map +1 -1
  11. package/dist/property/buildable-envelope.d.ts +464 -0
  12. package/dist/property/buildable-envelope.d.ts.map +1 -0
  13. package/dist/property/buildable-envelope.js +63 -0
  14. package/dist/property/buildable-envelope.js.map +1 -0
  15. package/dist/property/common.d.ts +513 -0
  16. package/dist/property/common.d.ts.map +1 -0
  17. package/dist/property/common.js +66 -0
  18. package/dist/property/common.js.map +1 -0
  19. package/dist/property/fixtures.d.ts +141 -0
  20. package/dist/property/fixtures.d.ts.map +1 -0
  21. package/dist/property/fixtures.js +438 -0
  22. package/dist/property/fixtures.js.map +1 -0
  23. package/dist/property/index.d.ts +24 -0
  24. package/dist/property/index.d.ts.map +1 -0
  25. package/dist/property/index.js +20 -0
  26. package/dist/property/index.js.map +1 -0
  27. package/dist/property/parcel-terrain-model.d.ts +922 -0
  28. package/dist/property/parcel-terrain-model.d.ts.map +1 -0
  29. package/dist/property/parcel-terrain-model.js +117 -0
  30. package/dist/property/parcel-terrain-model.js.map +1 -0
  31. package/dist/property/setback-rule.d.ts +887 -0
  32. package/dist/property/setback-rule.d.ts.map +1 -0
  33. package/dist/property/setback-rule.js +53 -0
  34. package/dist/property/setback-rule.js.map +1 -0
  35. package/dist/property/zoning-fact.d.ts +538 -0
  36. package/dist/property/zoning-fact.d.ts.map +1 -0
  37. package/dist/property/zoning-fact.js +48 -0
  38. package/dist/property/zoning-fact.js.map +1 -0
  39. package/package.json +5 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,77 @@
2
2
 
3
3
  All notable changes to `@empressaio/atom-contract` (formerly `@hauska/atom-contract`) are documented here.
4
4
 
5
+ ## [1.10.0] - 2026-07-23
6
+
7
+ Additive minor — parcel terrain-export derived atom (IFC + CAD formats).
8
+ Consumers on `^1.9.0` stay green until they import the new kind.
9
+
10
+ ### Added
11
+
12
+ - **`parcel-terrain-model`** on `./property` — derived {@link ReasoningChain}
13
+ with `derivationMethod: "parcel-terrain-mesh-ifc-v1"`; DEM/topo as
14
+ `reference-field` input (`citationLabel: usgs-3dep-dem`); format-keyed
15
+ `artifacts` map (`glb` | `ifc` | `dxf-3dface` | `dxf-contour` |
16
+ `landxml-tin`); coverage + asserted {@link WidthedConfidence}; default
17
+ `accessPolicy: public-paid`. One atom, not four — callers select format.
18
+ - Fixture `BASTROP_TERRAIN_EXPORT_FIXTURE` for parcel `48021:27303` with
19
+ shared triangulation counts across face formats; LandXML marked
20
+ honest-deferred.
21
+ - `PROPERTY_CONFORMANCE_TARGET_VERSION = "1.10.0"`.
22
+
23
+ ### Explicitly NOT in 1.10.0
24
+
25
+ - Spine authoring / MCP metering (engine + gate program phases).
26
+ - LandXML TIN emitter runtime (may ship later; contract allows deferred).
27
+
28
+ ## [1.9.0] - 2026-07-23
29
+
30
+ Additive minor — property reasoning atom kinds (master WDLL 3.2–3.6).
31
+ Consumers on `^1.8.0` stay green until they import `./property`.
32
+
33
+ ### Added
34
+
35
+ - **`./property` subpath** — three data-tier atom kinds for the parcel
36
+ reasoning chain:
37
+ - **`zoning-fact`** — observed {@link ReasoningChain}; district value OR
38
+ honest-absence (`absence: { kind: "no-zoning-stamp", reason }`);
39
+ explicit `accessPolicy` (default `public-free`); `sourceCitation` +
40
+ `extractedAt`; optional {@link ReasoningReadContract} asserted snapshot
41
+ at write (calibrated axis resolves at READ via overlay — I-E).
42
+ - **`setback-rule`** — observed rule scalars (`front`/`side`/`rear`);
43
+ typed `sourceCodeAtomRef: AtomInputRef` (role `rule`|`fact`, NOT bare
44
+ string); optional `fieldProvenance` map consuming setback JSON
45
+ `atom_did` + per-field confidence; `matchBasis: exact|prefix|fallback`
46
+ with honest-absence required on fallback; ICC royalties via separate
47
+ {@link ObligationAtomInstance} rows (no SourceAttribution type).
48
+ - **`buildable-envelope`** — derived {@link ReasoningChain} with
49
+ `derivationMethod: "buildable-envelope-inset-v1"`; `inputAtomRefs` to
50
+ zoning-fact + setback-rule + geometry/front-edge reference-fields;
51
+ {@link PropertyConsequence} `not-applicable` for envelope; no
52
+ `labeling x district` multiply field.
53
+ - Central-TX conformance fixtures with named parcel ids (`48209:156346`,
54
+ `48029:410119`, `48091:123456`, etc.).
55
+ - Negative fixtures: bare-string setback citation fails; derived without
56
+ `inputAtomRefs` fails.
57
+ - `PROPERTY_CONFORMANCE_TARGET_VERSION = "1.9.0"` in `./conformance`.
58
+
59
+ ### Explicitly NOT in 1.9.0
60
+
61
+ - Standalone `SourceAttribution` module or parallel source-obligation type.
62
+ - Gate inbound-meter runtime wiring (Phase 1d).
63
+ - StoragePort / spine atom write path (Phase 3.1).
64
+
65
+ ### Consumer migration notes
66
+
67
+ - Pin `@empressaio/atom-contract@^1.9.0` when adopting property atom kinds.
68
+ - Import from `@empressaio/atom-contract/property` (re-exports 1.8.0
69
+ primitives: ReasoningChain, AtomInputRef, PropertyConsequence,
70
+ ReasoningReadContract, ActorRecord, ObligationAtomInstance).
71
+ - **Calibrated confidence at READ:** instance snapshots MAY carry placeholder
72
+ `calibratedConfidence` with `provenance: "asserted"` at write time; at READ
73
+ the calibrated axis resolves through the calibration overlay (migration 0037),
74
+ not a frozen multiply.
75
+
5
76
  ## [1.8.0] - 2026-07-23
6
77
 
7
78
  Additive minor — reasoning-chain primitive, property consequence axes,
package/README.md CHANGED
@@ -276,6 +276,45 @@ import {
276
276
  } from "@empressaio/atom-contract/og";
277
277
  ```
278
278
 
279
+ ## Property reasoning atom kinds (master WDLL 3.2–3.6)
280
+
281
+ Parcel buildable-answer chain atoms ship on the `./property` subpath
282
+ (v1.9.0): `zoning-fact`, `setback-rule`, `buildable-envelope`. All three
283
+ are data-tier (`atomTier: "data"`) and default to `public-free`
284
+ accessPolicy when undeclared on the registration.
285
+
286
+ **Calibrated confidence at READ (I-E):** instances MAY carry a
287
+ `ReasoningReadContract` asserted snapshot at write time, including a
288
+ placeholder `calibratedConfidence` with `provenance: "asserted"`. At READ,
289
+ the calibrated axis resolves through the calibration overlay — it is NOT
290
+ composed-and-frozen on the instance. Do not add a `labeling x district`
291
+ multiply field.
292
+
293
+ ```ts
294
+ import {
295
+ ZONING_FACT_SCHEMA,
296
+ SETBACK_RULE_SCHEMA,
297
+ BUILDABLE_ENVELOPE_SCHEMA,
298
+ HAYS_ZONING_FACT_FIXTURE,
299
+ BEXAR_NULL_ZONING_FACT_FIXTURE,
300
+ HAYS_BUILDABLE_ENVELOPE_FIXTURE,
301
+ type ZoningFactAtomInstance,
302
+ type SetbackRuleAtomInstance,
303
+ type BuildableEnvelopeAtomInstance,
304
+ } from "@empressaio/atom-contract/property";
305
+ ```
306
+
307
+ | `entityType` | `reasoningKind` | Key fields |
308
+ |---|---|---|
309
+ | `zoning-fact` | `observed` | `district` OR `absence.no-zoning-stamp` |
310
+ | `setback-rule` | `observed` | `front`/`side`/`rear`, typed `sourceCodeAtomRef`, `matchBasis` |
311
+ | `buildable-envelope` | `derived` | `buildable-envelope-inset-v1`, input refs to fact + rule + geometry |
312
+
313
+ ICC royalties on code citations accrue via core `ObligationAtomInstance`
314
+ rows — no standalone `SourceAttribution` type.
315
+
316
+ ### Encumbrance render modes
317
+
279
318
  | `entityType` | Purpose | Recommended render modes |
280
319
  |---|---|---|
281
320
  | `recorded-instrument` | Parent instrument; wet PDF via `sourceDocumentCid` | `card`, `compact`, `expanded` |
@@ -19,6 +19,11 @@ export type AtomConformanceTargetVersion = typeof ATOM_CONFORMANCE_TARGET_VERSIO
19
19
  */
20
20
  export declare const REASONING_CONFORMANCE_TARGET_VERSION: "1.8.0";
21
21
  export type ReasoningConformanceTargetVersion = typeof REASONING_CONFORMANCE_TARGET_VERSION;
22
+ /**
23
+ * Pin property atom kind adopters to this semver (master WDLL 3.2–3.6).
24
+ */
25
+ export declare const PROPERTY_CONFORMANCE_TARGET_VERSION: "1.10.0";
26
+ export type PropertyConformanceTargetVersion = typeof PROPERTY_CONFORMANCE_TARGET_VERSION;
22
27
  /** Data-level atoms carry signed history; app-level workflow containers skip it. */
23
28
  export type AtomTier = "data" | "app";
24
29
  export declare const ATOM_TIER_VALUES: ReadonlyArray<AtomTier>;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/conformance/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAG,OAAgB,CAAC;AAEhE,MAAM,MAAM,4BAA4B,GACtC,OAAO,+BAA+B,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,oCAAoC,EAAG,OAAgB,CAAC;AAErE,MAAM,MAAM,iCAAiC,GAC3C,OAAO,oCAAoC,CAAC;AAE9C,oFAAoF;AACpF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAEtC,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAmB,CAAC;AAEzE,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,YAAY,CAM5D,CAAC;AAEF,eAAO,MAAM,oBAAoB,mGAM/B,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/conformance/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAG,OAAgB,CAAC;AAEhE,MAAM,MAAM,4BAA4B,GACtC,OAAO,+BAA+B,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,oCAAoC,EAAG,OAAgB,CAAC;AAErE,MAAM,MAAM,iCAAiC,GAC3C,OAAO,oCAAoC,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAG,QAAiB,CAAC;AAErE,MAAM,MAAM,gCAAgC,GAC1C,OAAO,mCAAmC,CAAC;AAE7C,oFAAoF;AACpF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAEtC,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAmB,CAAC;AAEzE,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,YAAY,CAM5D,CAAC;AAEF,eAAO,MAAM,oBAAoB,mGAM/B,CAAC"}
@@ -16,6 +16,10 @@ export const ATOM_CONFORMANCE_TARGET_VERSION = "1.5.0";
16
16
  * Distinct from {@link ATOM_CONFORMANCE_TARGET_VERSION} until a unified bump.
17
17
  */
18
18
  export const REASONING_CONFORMANCE_TARGET_VERSION = "1.8.0";
19
+ /**
20
+ * Pin property atom kind adopters to this semver (master WDLL 3.2–3.6).
21
+ */
22
+ export const PROPERTY_CONFORMANCE_TARGET_VERSION = "1.10.0";
19
23
  export const ATOM_TIER_VALUES = ["data", "app"];
20
24
  export const ACCESS_POLICY_VALUES = [
21
25
  "public-free",
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/conformance/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAgB,CAAC;AAKhE;;;GAGG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAgB,CAAC;AAQrE,MAAM,CAAC,MAAM,gBAAgB,GAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAAgC;IAC/D,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;CAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/conformance/common.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAgB,CAAC;AAKhE;;;GAGG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAgB,CAAC;AAKrE;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,QAAiB,CAAC;AAQrE,MAAM,CAAC,MAAM,gBAAgB,GAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAAgC;IAC/D,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;CAChB,CAAC,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Import from `@empressaio/atom-contract/conformance`. Validates read-contract,
5
5
  * accessPolicy, and signed-history for data-level atoms.
6
6
  */
7
- export { ATOM_CONFORMANCE_TARGET_VERSION, REASONING_CONFORMANCE_TARGET_VERSION, ACCESS_POLICY_VALUES, ACCESS_POLICY_SCHEMA, ATOM_TIER_VALUES, type AtomConformanceTargetVersion, type ReasoningConformanceTargetVersion, type AtomTier, } from "./common.js";
7
+ export { ATOM_CONFORMANCE_TARGET_VERSION, REASONING_CONFORMANCE_TARGET_VERSION, PROPERTY_CONFORMANCE_TARGET_VERSION, ACCESS_POLICY_VALUES, ACCESS_POLICY_SCHEMA, ATOM_TIER_VALUES, type AtomConformanceTargetVersion, type ReasoningConformanceTargetVersion, type PropertyConformanceTargetVersion, type AtomTier, } from "./common.js";
8
8
  export { verifyEventChain, type VerifyChainError, type VerifyChainErrorKind, type VerifyChainResult, } from "./verify-chain.js";
9
9
  export { validateAtomConformance, type AtomConformanceError, type AtomConformanceErrorCode, type AtomConformanceTarget, type AtomConformanceValidationResult, type ValidateAtomConformanceInput, } from "./validate.js";
10
10
  export { buildValidSignedEventChain, SAMPLE_APP_CONFORMANCE_TARGET, SAMPLE_DATA_CONFORMANCE_EVENTS, SAMPLE_DATA_CONFORMANCE_TARGET, } from "./fixtures.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,GAClC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,GAClC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Import from `@empressaio/atom-contract/conformance`. Validates read-contract,
5
5
  * accessPolicy, and signed-history for data-level atoms.
6
6
  */
7
- export { ATOM_CONFORMANCE_TARGET_VERSION, REASONING_CONFORMANCE_TARGET_VERSION, ACCESS_POLICY_VALUES, ACCESS_POLICY_SCHEMA, ATOM_TIER_VALUES, } from "./common.js";
7
+ export { ATOM_CONFORMANCE_TARGET_VERSION, REASONING_CONFORMANCE_TARGET_VERSION, PROPERTY_CONFORMANCE_TARGET_VERSION, ACCESS_POLICY_VALUES, ACCESS_POLICY_SCHEMA, ATOM_TIER_VALUES, } from "./common.js";
8
8
  export { verifyEventChain, } from "./verify-chain.js";
9
9
  export { validateAtomConformance, } from "./validate.js";
10
10
  export { buildValidSignedEventChain, SAMPLE_APP_CONFORMANCE_TARGET, SAMPLE_DATA_CONFORMANCE_EVENTS, SAMPLE_DATA_CONFORMANCE_TARGET, } from "./fixtures.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GAIjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,GAMxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,GAMxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,464 @@
1
+ import { z } from "zod";
2
+ import type { AccessPolicy } from "../registration.js";
3
+ import type { AtomTier } from "../conformance/common.js";
4
+ import type { AtomInputRef } from "../reasoning-chain.js";
5
+ import type { ReasoningChain } from "../reasoning-chain.js";
6
+ import type { ReasoningReadContract } from "../read-contract/reasoning-axes.js";
7
+ /** Canonical derivation method for buildable envelope inset (master 3.6). */
8
+ export declare const BUILDABLE_ENVELOPE_DERIVATION_METHOD: "buildable-envelope-inset-v1";
9
+ /**
10
+ * Buildable-envelope DERIVED atom — inputs cite fact + rule + reference fields.
11
+ *
12
+ * No `labeling x district` multiply field. `calibratedConfidence` on
13
+ * {@link readContract} may be a placeholder asserted snapshot at write;
14
+ * at READ the calibrated axis resolves via overlay (I-E). Envelope uses
15
+ * {@link PropertyConsequence} `not-applicable`, not life-safety ASCE7 stuffing.
16
+ */
17
+ export interface BuildableEnvelopeAtomInstance {
18
+ entityType: "buildable-envelope";
19
+ atomDid: string;
20
+ parcelNodeId: string;
21
+ reasoningChain: Extract<ReasoningChain, {
22
+ reasoningKind: "derived";
23
+ }> & {
24
+ derivationMethod: typeof BUILDABLE_ENVELOPE_DERIVATION_METHOD;
25
+ inputAtomRefs: AtomInputRef[];
26
+ };
27
+ accessPolicy: AccessPolicy;
28
+ sourceCitation: string;
29
+ extractedAt: string;
30
+ asOf?: string;
31
+ atomTier: AtomTier;
32
+ readContract?: ReasoningReadContract;
33
+ }
34
+ export declare const BUILDABLE_ENVELOPE_SCHEMA: z.ZodObject<{
35
+ atomTier: z.ZodLiteral<AtomTier>;
36
+ readContract: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
37
+ axes: z.ZodReadonly<z.ZodObject<{
38
+ calibratedConfidence: z.ZodReadonly<z.ZodObject<{
39
+ readonly estimate: z.ZodNumber;
40
+ readonly n: z.ZodNumber;
41
+ readonly intervalWidth: z.ZodNumber;
42
+ readonly provenance: z.ZodEnum<["asserted", "backtest", "seed", "live"]>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ estimate: number;
45
+ n: number;
46
+ intervalWidth: number;
47
+ provenance: "asserted" | "backtest" | "seed" | "live";
48
+ }, {
49
+ estimate: number;
50
+ n: number;
51
+ intervalWidth: number;
52
+ provenance: "asserted" | "backtest" | "seed" | "live";
53
+ }>>;
54
+ assertedConfidence: z.ZodReadonly<z.ZodObject<{
55
+ readonly estimate: z.ZodNumber;
56
+ readonly n: z.ZodNumber;
57
+ readonly intervalWidth: z.ZodNumber;
58
+ readonly provenance: z.ZodEnum<["asserted", "backtest", "seed", "live"]>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ estimate: number;
61
+ n: number;
62
+ intervalWidth: number;
63
+ provenance: "asserted" | "backtest" | "seed" | "live";
64
+ }, {
65
+ estimate: number;
66
+ n: number;
67
+ intervalWidth: number;
68
+ provenance: "asserted" | "backtest" | "seed" | "live";
69
+ }>>;
70
+ consequence: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
71
+ kind: z.ZodLiteral<"property-risk">;
72
+ stratum: z.ZodEnum<[import("../read-contract/reasoning-axes.js").PropertyRiskStratum, ...import("../read-contract/reasoning-axes.js").PropertyRiskStratum[]]>;
73
+ basis: z.ZodString;
74
+ assertedAt: z.ZodString;
75
+ auditRef: z.ZodOptional<z.ZodString>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
78
+ assertedAt: string;
79
+ kind: "property-risk";
80
+ basis: string;
81
+ auditRef?: string | undefined;
82
+ }, {
83
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
84
+ assertedAt: string;
85
+ kind: "property-risk";
86
+ basis: string;
87
+ auditRef?: string | undefined;
88
+ }>, z.ZodObject<{
89
+ kind: z.ZodLiteral<"not-applicable">;
90
+ reason: z.ZodString;
91
+ assertedAt: z.ZodString;
92
+ }, "strip", z.ZodTypeAny, {
93
+ assertedAt: string;
94
+ kind: "not-applicable";
95
+ reason: string;
96
+ }, {
97
+ assertedAt: string;
98
+ kind: "not-applicable";
99
+ reason: string;
100
+ }>]>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ calibratedConfidence: Readonly<{
103
+ estimate: number;
104
+ n: number;
105
+ intervalWidth: number;
106
+ provenance: "asserted" | "backtest" | "seed" | "live";
107
+ }>;
108
+ assertedConfidence: Readonly<{
109
+ estimate: number;
110
+ n: number;
111
+ intervalWidth: number;
112
+ provenance: "asserted" | "backtest" | "seed" | "live";
113
+ }>;
114
+ consequence: {
115
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
116
+ assertedAt: string;
117
+ kind: "property-risk";
118
+ basis: string;
119
+ auditRef?: string | undefined;
120
+ } | {
121
+ assertedAt: string;
122
+ kind: "not-applicable";
123
+ reason: string;
124
+ };
125
+ }, {
126
+ calibratedConfidence: Readonly<{
127
+ estimate: number;
128
+ n: number;
129
+ intervalWidth: number;
130
+ provenance: "asserted" | "backtest" | "seed" | "live";
131
+ }>;
132
+ assertedConfidence: Readonly<{
133
+ estimate: number;
134
+ n: number;
135
+ intervalWidth: number;
136
+ provenance: "asserted" | "backtest" | "seed" | "live";
137
+ }>;
138
+ consequence: {
139
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
140
+ assertedAt: string;
141
+ kind: "property-risk";
142
+ basis: string;
143
+ auditRef?: string | undefined;
144
+ } | {
145
+ assertedAt: string;
146
+ kind: "not-applicable";
147
+ reason: string;
148
+ };
149
+ }>>;
150
+ assembledAt: z.ZodString;
151
+ modelAttribution: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
152
+ modelId: z.ZodString;
153
+ modelVersion: z.ZodString;
154
+ promptTemplateVersion: z.ZodString;
155
+ contextTemplateVersion: z.ZodString;
156
+ samplingParams: z.ZodReadonly<z.ZodObject<{
157
+ temperature: z.ZodOptional<z.ZodNumber>;
158
+ topP: z.ZodOptional<z.ZodNumber>;
159
+ maxTokens: z.ZodOptional<z.ZodNumber>;
160
+ seed: z.ZodOptional<z.ZodNumber>;
161
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
162
+ temperature: z.ZodOptional<z.ZodNumber>;
163
+ topP: z.ZodOptional<z.ZodNumber>;
164
+ maxTokens: z.ZodOptional<z.ZodNumber>;
165
+ seed: z.ZodOptional<z.ZodNumber>;
166
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
167
+ temperature: z.ZodOptional<z.ZodNumber>;
168
+ topP: z.ZodOptional<z.ZodNumber>;
169
+ maxTokens: z.ZodOptional<z.ZodNumber>;
170
+ seed: z.ZodOptional<z.ZodNumber>;
171
+ }, z.ZodUnknown, "strip">>>;
172
+ retrievedAtomSetId: z.ZodString;
173
+ }, "strip", z.ZodTypeAny, {
174
+ modelId: string;
175
+ modelVersion: string;
176
+ promptTemplateVersion: string;
177
+ contextTemplateVersion: string;
178
+ samplingParams: Readonly<z.objectOutputType<{
179
+ temperature: z.ZodOptional<z.ZodNumber>;
180
+ topP: z.ZodOptional<z.ZodNumber>;
181
+ maxTokens: z.ZodOptional<z.ZodNumber>;
182
+ seed: z.ZodOptional<z.ZodNumber>;
183
+ }, z.ZodUnknown, "strip">>;
184
+ retrievedAtomSetId: string;
185
+ }, {
186
+ modelId: string;
187
+ modelVersion: string;
188
+ promptTemplateVersion: string;
189
+ contextTemplateVersion: string;
190
+ samplingParams: Readonly<z.objectInputType<{
191
+ temperature: z.ZodOptional<z.ZodNumber>;
192
+ topP: z.ZodOptional<z.ZodNumber>;
193
+ maxTokens: z.ZodOptional<z.ZodNumber>;
194
+ seed: z.ZodOptional<z.ZodNumber>;
195
+ }, z.ZodUnknown, "strip">>;
196
+ retrievedAtomSetId: string;
197
+ }>>>;
198
+ }, "strip", z.ZodTypeAny, {
199
+ axes: Readonly<{
200
+ calibratedConfidence: Readonly<{
201
+ estimate: number;
202
+ n: number;
203
+ intervalWidth: number;
204
+ provenance: "asserted" | "backtest" | "seed" | "live";
205
+ }>;
206
+ assertedConfidence: Readonly<{
207
+ estimate: number;
208
+ n: number;
209
+ intervalWidth: number;
210
+ provenance: "asserted" | "backtest" | "seed" | "live";
211
+ }>;
212
+ consequence: {
213
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
214
+ assertedAt: string;
215
+ kind: "property-risk";
216
+ basis: string;
217
+ auditRef?: string | undefined;
218
+ } | {
219
+ assertedAt: string;
220
+ kind: "not-applicable";
221
+ reason: string;
222
+ };
223
+ }>;
224
+ assembledAt: string;
225
+ modelAttribution?: Readonly<{
226
+ modelId: string;
227
+ modelVersion: string;
228
+ promptTemplateVersion: string;
229
+ contextTemplateVersion: string;
230
+ samplingParams: Readonly<z.objectOutputType<{
231
+ temperature: z.ZodOptional<z.ZodNumber>;
232
+ topP: z.ZodOptional<z.ZodNumber>;
233
+ maxTokens: z.ZodOptional<z.ZodNumber>;
234
+ seed: z.ZodOptional<z.ZodNumber>;
235
+ }, z.ZodUnknown, "strip">>;
236
+ retrievedAtomSetId: string;
237
+ }> | undefined;
238
+ }, {
239
+ axes: Readonly<{
240
+ calibratedConfidence: Readonly<{
241
+ estimate: number;
242
+ n: number;
243
+ intervalWidth: number;
244
+ provenance: "asserted" | "backtest" | "seed" | "live";
245
+ }>;
246
+ assertedConfidence: Readonly<{
247
+ estimate: number;
248
+ n: number;
249
+ intervalWidth: number;
250
+ provenance: "asserted" | "backtest" | "seed" | "live";
251
+ }>;
252
+ consequence: {
253
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
254
+ assertedAt: string;
255
+ kind: "property-risk";
256
+ basis: string;
257
+ auditRef?: string | undefined;
258
+ } | {
259
+ assertedAt: string;
260
+ kind: "not-applicable";
261
+ reason: string;
262
+ };
263
+ }>;
264
+ assembledAt: string;
265
+ modelAttribution?: Readonly<{
266
+ modelId: string;
267
+ modelVersion: string;
268
+ promptTemplateVersion: string;
269
+ contextTemplateVersion: string;
270
+ samplingParams: Readonly<z.objectInputType<{
271
+ temperature: z.ZodOptional<z.ZodNumber>;
272
+ topP: z.ZodOptional<z.ZodNumber>;
273
+ maxTokens: z.ZodOptional<z.ZodNumber>;
274
+ seed: z.ZodOptional<z.ZodNumber>;
275
+ }, z.ZodUnknown, "strip">>;
276
+ retrievedAtomSetId: string;
277
+ }> | undefined;
278
+ }>>>;
279
+ sourceCitation: z.ZodString;
280
+ extractedAt: z.ZodString;
281
+ asOf: z.ZodOptional<z.ZodString>;
282
+ entityType: z.ZodLiteral<"buildable-envelope">;
283
+ atomDid: z.ZodEffects<z.ZodString, string, string>;
284
+ parcelNodeId: z.ZodEffects<z.ZodString, string, string>;
285
+ reasoningChain: z.ZodEffects<z.ZodObject<{
286
+ reasoningKind: z.ZodLiteral<"derived">;
287
+ derivationMethod: z.ZodString;
288
+ inputAtomRefs: z.ZodArray<z.ZodReadonly<z.ZodObject<{
289
+ atomDid: z.ZodString;
290
+ role: z.ZodEnum<[import("../reasoning-chain.js").AtomInputRefRole, ...import("../reasoning-chain.js").AtomInputRefRole[]]>;
291
+ entityType: z.ZodOptional<z.ZodString>;
292
+ citationLabel: z.ZodOptional<z.ZodString>;
293
+ }, "strip", z.ZodTypeAny, {
294
+ atomDid: string;
295
+ role: import("../reasoning-chain.js").AtomInputRefRole;
296
+ entityType?: string | undefined;
297
+ citationLabel?: string | undefined;
298
+ }, {
299
+ atomDid: string;
300
+ role: import("../reasoning-chain.js").AtomInputRefRole;
301
+ entityType?: string | undefined;
302
+ citationLabel?: string | undefined;
303
+ }>>, "many">;
304
+ }, "strip", z.ZodTypeAny, {
305
+ reasoningKind: "derived";
306
+ derivationMethod: string;
307
+ inputAtomRefs: Readonly<{
308
+ atomDid: string;
309
+ role: import("../reasoning-chain.js").AtomInputRefRole;
310
+ entityType?: string | undefined;
311
+ citationLabel?: string | undefined;
312
+ }>[];
313
+ }, {
314
+ reasoningKind: "derived";
315
+ derivationMethod: string;
316
+ inputAtomRefs: Readonly<{
317
+ atomDid: string;
318
+ role: import("../reasoning-chain.js").AtomInputRefRole;
319
+ entityType?: string | undefined;
320
+ citationLabel?: string | undefined;
321
+ }>[];
322
+ }>, {
323
+ reasoningKind: "derived";
324
+ derivationMethod: string;
325
+ inputAtomRefs: Readonly<{
326
+ atomDid: string;
327
+ role: import("../reasoning-chain.js").AtomInputRefRole;
328
+ entityType?: string | undefined;
329
+ citationLabel?: string | undefined;
330
+ }>[];
331
+ }, {
332
+ reasoningKind: "derived";
333
+ derivationMethod: string;
334
+ inputAtomRefs: Readonly<{
335
+ atomDid: string;
336
+ role: import("../reasoning-chain.js").AtomInputRefRole;
337
+ entityType?: string | undefined;
338
+ citationLabel?: string | undefined;
339
+ }>[];
340
+ }>;
341
+ accessPolicy: z.ZodEnum<["public-free", "public-paid", "platform-internal", "tenant-private", "tenant-shared"]>;
342
+ }, "strict", z.ZodTypeAny, {
343
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
344
+ entityType: "buildable-envelope";
345
+ sourceCitation: string;
346
+ extractedAt: string;
347
+ atomDid: string;
348
+ parcelNodeId: string;
349
+ reasoningChain: {
350
+ reasoningKind: "derived";
351
+ derivationMethod: string;
352
+ inputAtomRefs: Readonly<{
353
+ atomDid: string;
354
+ role: import("../reasoning-chain.js").AtomInputRefRole;
355
+ entityType?: string | undefined;
356
+ citationLabel?: string | undefined;
357
+ }>[];
358
+ };
359
+ atomTier: AtomTier;
360
+ asOf?: string | undefined;
361
+ readContract?: Readonly<{
362
+ axes: Readonly<{
363
+ calibratedConfidence: Readonly<{
364
+ estimate: number;
365
+ n: number;
366
+ intervalWidth: number;
367
+ provenance: "asserted" | "backtest" | "seed" | "live";
368
+ }>;
369
+ assertedConfidence: Readonly<{
370
+ estimate: number;
371
+ n: number;
372
+ intervalWidth: number;
373
+ provenance: "asserted" | "backtest" | "seed" | "live";
374
+ }>;
375
+ consequence: {
376
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
377
+ assertedAt: string;
378
+ kind: "property-risk";
379
+ basis: string;
380
+ auditRef?: string | undefined;
381
+ } | {
382
+ assertedAt: string;
383
+ kind: "not-applicable";
384
+ reason: string;
385
+ };
386
+ }>;
387
+ assembledAt: string;
388
+ modelAttribution?: Readonly<{
389
+ modelId: string;
390
+ modelVersion: string;
391
+ promptTemplateVersion: string;
392
+ contextTemplateVersion: string;
393
+ samplingParams: Readonly<z.objectOutputType<{
394
+ temperature: z.ZodOptional<z.ZodNumber>;
395
+ topP: z.ZodOptional<z.ZodNumber>;
396
+ maxTokens: z.ZodOptional<z.ZodNumber>;
397
+ seed: z.ZodOptional<z.ZodNumber>;
398
+ }, z.ZodUnknown, "strip">>;
399
+ retrievedAtomSetId: string;
400
+ }> | undefined;
401
+ }> | undefined;
402
+ }, {
403
+ accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
404
+ entityType: "buildable-envelope";
405
+ sourceCitation: string;
406
+ extractedAt: string;
407
+ atomDid: string;
408
+ parcelNodeId: string;
409
+ reasoningChain: {
410
+ reasoningKind: "derived";
411
+ derivationMethod: string;
412
+ inputAtomRefs: Readonly<{
413
+ atomDid: string;
414
+ role: import("../reasoning-chain.js").AtomInputRefRole;
415
+ entityType?: string | undefined;
416
+ citationLabel?: string | undefined;
417
+ }>[];
418
+ };
419
+ atomTier: AtomTier;
420
+ asOf?: string | undefined;
421
+ readContract?: Readonly<{
422
+ axes: Readonly<{
423
+ calibratedConfidence: Readonly<{
424
+ estimate: number;
425
+ n: number;
426
+ intervalWidth: number;
427
+ provenance: "asserted" | "backtest" | "seed" | "live";
428
+ }>;
429
+ assertedConfidence: Readonly<{
430
+ estimate: number;
431
+ n: number;
432
+ intervalWidth: number;
433
+ provenance: "asserted" | "backtest" | "seed" | "live";
434
+ }>;
435
+ consequence: {
436
+ stratum: import("../read-contract/reasoning-axes.js").PropertyRiskStratum;
437
+ assertedAt: string;
438
+ kind: "property-risk";
439
+ basis: string;
440
+ auditRef?: string | undefined;
441
+ } | {
442
+ assertedAt: string;
443
+ kind: "not-applicable";
444
+ reason: string;
445
+ };
446
+ }>;
447
+ assembledAt: string;
448
+ modelAttribution?: Readonly<{
449
+ modelId: string;
450
+ modelVersion: string;
451
+ promptTemplateVersion: string;
452
+ contextTemplateVersion: string;
453
+ samplingParams: Readonly<z.objectInputType<{
454
+ temperature: z.ZodOptional<z.ZodNumber>;
455
+ topP: z.ZodOptional<z.ZodNumber>;
456
+ maxTokens: z.ZodOptional<z.ZodNumber>;
457
+ seed: z.ZodOptional<z.ZodNumber>;
458
+ }, z.ZodUnknown, "strip">>;
459
+ retrievedAtomSetId: string;
460
+ }> | undefined;
461
+ }> | undefined;
462
+ }>;
463
+ export declare function createBuildableEnvelope(input: z.input<typeof BUILDABLE_ENVELOPE_SCHEMA>): BuildableEnvelopeAtomInstance;
464
+ //# sourceMappingURL=buildable-envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildable-envelope.d.ts","sourceRoot":"","sources":["../../src/property/buildable-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAUhF,6EAA6E;AAC7E,eAAO,MAAM,oCAAoC,EAAG,6BAAsC,CAAC;AAE3F;;;;;;;GAOG;AACH,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,aAAa,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG;QACtE,gBAAgB,EAAE,OAAO,oCAAoC,CAAC;QAC9D,aAAa,EAAE,YAAY,EAAE,CAAC;KAC/B,CAAC;IACF,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACtC;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4D3B,CAAC;AAEZ,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC/C,6BAA6B,CAE/B"}