@empressaio/atom-contract 1.7.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.
- package/CHANGELOG.md +360 -0
- package/README.md +379 -0
- package/dist/composition.d.ts +112 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +80 -0
- package/dist/composition.js.map +1 -0
- package/dist/conformance/common.d.ts +21 -0
- package/dist/conformance/common.d.ts.map +1 -0
- package/dist/conformance/common.js +29 -0
- package/dist/conformance/common.js.map +1 -0
- package/dist/conformance/fixtures.d.ts +13 -0
- package/dist/conformance/fixtures.d.ts.map +1 -0
- package/dist/conformance/fixtures.js +63 -0
- package/dist/conformance/fixtures.js.map +1 -0
- package/dist/conformance/index.d.ts +11 -0
- package/dist/conformance/index.d.ts.map +1 -0
- package/dist/conformance/index.js +11 -0
- package/dist/conformance/index.js.map +1 -0
- package/dist/conformance/validate.d.ts +49 -0
- package/dist/conformance/validate.d.ts.map +1 -0
- package/dist/conformance/validate.js +138 -0
- package/dist/conformance/validate.js.map +1 -0
- package/dist/conformance/verify-chain.d.ts +25 -0
- package/dist/conformance/verify-chain.d.ts.map +1 -0
- package/dist/conformance/verify-chain.js +76 -0
- package/dist/conformance/verify-chain.js.map +1 -0
- package/dist/context.d.ts +134 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +110 -0
- package/dist/context.js.map +1 -0
- package/dist/encumbrances/administrative-rule.d.ts +128 -0
- package/dist/encumbrances/administrative-rule.d.ts.map +1 -0
- package/dist/encumbrances/administrative-rule.js +18 -0
- package/dist/encumbrances/administrative-rule.js.map +1 -0
- package/dist/encumbrances/common.d.ts +153 -0
- package/dist/encumbrances/common.d.ts.map +1 -0
- package/dist/encumbrances/common.js +124 -0
- package/dist/encumbrances/common.js.map +1 -0
- package/dist/encumbrances/constraint-resolution.d.ts +169 -0
- package/dist/encumbrances/constraint-resolution.d.ts.map +1 -0
- package/dist/encumbrances/constraint-resolution.js +41 -0
- package/dist/encumbrances/constraint-resolution.js.map +1 -0
- package/dist/encumbrances/fixtures.d.ts +16 -0
- package/dist/encumbrances/fixtures.d.ts.map +1 -0
- package/dist/encumbrances/fixtures.js +107 -0
- package/dist/encumbrances/fixtures.js.map +1 -0
- package/dist/encumbrances/index.d.ts +15 -0
- package/dist/encumbrances/index.d.ts.map +1 -0
- package/dist/encumbrances/index.js +15 -0
- package/dist/encumbrances/index.js.map +1 -0
- package/dist/encumbrances/recorded-instrument.d.ts +131 -0
- package/dist/encumbrances/recorded-instrument.d.ts.map +1 -0
- package/dist/encumbrances/recorded-instrument.js +19 -0
- package/dist/encumbrances/recorded-instrument.js.map +1 -0
- package/dist/encumbrances/restriction-clause.d.ts +120 -0
- package/dist/encumbrances/restriction-clause.d.ts.map +1 -0
- package/dist/encumbrances/restriction-clause.js +17 -0
- package/dist/encumbrances/restriction-clause.js.map +1 -0
- package/dist/encumbrances/restriction-corpus.d.ts +44 -0
- package/dist/encumbrances/restriction-corpus.d.ts.map +1 -0
- package/dist/encumbrances/restriction-corpus.js +14 -0
- package/dist/encumbrances/restriction-corpus.js.map +1 -0
- package/dist/export/downloadable-atom.d.ts +133 -0
- package/dist/export/downloadable-atom.d.ts.map +1 -0
- package/dist/export/downloadable-atom.js +115 -0
- package/dist/export/downloadable-atom.js.map +1 -0
- package/dist/export/index.d.ts +6 -0
- package/dist/export/index.d.ts.map +1 -0
- package/dist/export/index.js +6 -0
- package/dist/export/index.js.map +1 -0
- package/dist/history.d.ts +124 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +170 -0
- package/dist/history.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/inline-reference.d.ts +60 -0
- package/dist/inline-reference.d.ts.map +1 -0
- package/dist/inline-reference.js +73 -0
- package/dist/inline-reference.js.map +1 -0
- package/dist/obligation.d.ts +131 -0
- package/dist/obligation.d.ts.map +1 -0
- package/dist/obligation.js +55 -0
- package/dist/obligation.js.map +1 -0
- package/dist/og/common.d.ts +253 -0
- package/dist/og/common.d.ts.map +1 -0
- package/dist/og/common.js +195 -0
- package/dist/og/common.js.map +1 -0
- package/dist/og/completion.d.ts +70 -0
- package/dist/og/completion.d.ts.map +1 -0
- package/dist/og/completion.js +22 -0
- package/dist/og/completion.js.map +1 -0
- package/dist/og/equipment-state.d.ts +55 -0
- package/dist/og/equipment-state.d.ts.map +1 -0
- package/dist/og/equipment-state.js +25 -0
- package/dist/og/equipment-state.js.map +1 -0
- package/dist/og/fixtures.d.ts +40 -0
- package/dist/og/fixtures.d.ts.map +1 -0
- package/dist/og/fixtures.js +255 -0
- package/dist/og/fixtures.js.map +1 -0
- package/dist/og/index.d.ts +23 -0
- package/dist/og/index.d.ts.map +1 -0
- package/dist/og/index.js +23 -0
- package/dist/og/index.js.map +1 -0
- package/dist/og/mineral-lease.d.ts +150 -0
- package/dist/og/mineral-lease.d.ts.map +1 -0
- package/dist/og/mineral-lease.js +24 -0
- package/dist/og/mineral-lease.js.map +1 -0
- package/dist/og/ownership-interest.d.ts +163 -0
- package/dist/og/ownership-interest.d.ts.map +1 -0
- package/dist/og/ownership-interest.js +36 -0
- package/dist/og/ownership-interest.js.map +1 -0
- package/dist/og/pad.d.ts +101 -0
- package/dist/og/pad.d.ts.map +1 -0
- package/dist/og/pad.js +19 -0
- package/dist/og/pad.js.map +1 -0
- package/dist/og/production-timeseries.d.ts +154 -0
- package/dist/og/production-timeseries.d.ts.map +1 -0
- package/dist/og/production-timeseries.js +37 -0
- package/dist/og/production-timeseries.js.map +1 -0
- package/dist/og/revenue-allocation-unit.d.ts +762 -0
- package/dist/og/revenue-allocation-unit.d.ts.map +1 -0
- package/dist/og/revenue-allocation-unit.js +105 -0
- package/dist/og/revenue-allocation-unit.js.map +1 -0
- package/dist/og/rrc-lease.d.ts +124 -0
- package/dist/og/rrc-lease.d.ts.map +1 -0
- package/dist/og/rrc-lease.js +29 -0
- package/dist/og/rrc-lease.js.map +1 -0
- package/dist/og/tract.d.ts +88 -0
- package/dist/og/tract.d.ts.map +1 -0
- package/dist/og/tract.js +30 -0
- package/dist/og/tract.js.map +1 -0
- package/dist/og/well.d.ts +201 -0
- package/dist/og/well.d.ts.map +1 -0
- package/dist/og/well.js +40 -0
- package/dist/og/well.js.map +1 -0
- package/dist/og/wellbore.d.ts +61 -0
- package/dist/og/wellbore.d.ts.map +1 -0
- package/dist/og/wellbore.js +25 -0
- package/dist/og/wellbore.js.map +1 -0
- package/dist/og/zone.d.ts +45 -0
- package/dist/og/zone.d.ts.map +1 -0
- package/dist/og/zone.js +16 -0
- package/dist/og/zone.js.map +1 -0
- package/dist/read-contract/common.d.ts +74 -0
- package/dist/read-contract/common.d.ts.map +1 -0
- package/dist/read-contract/common.js +54 -0
- package/dist/read-contract/common.js.map +1 -0
- package/dist/read-contract/consequence.d.ts +99 -0
- package/dist/read-contract/consequence.d.ts.map +1 -0
- package/dist/read-contract/consequence.js +46 -0
- package/dist/read-contract/consequence.js.map +1 -0
- package/dist/read-contract/fixtures.d.ts +8 -0
- package/dist/read-contract/fixtures.d.ts.map +1 -0
- package/dist/read-contract/fixtures.js +44 -0
- package/dist/read-contract/fixtures.js.map +1 -0
- package/dist/read-contract/index.d.ts +14 -0
- package/dist/read-contract/index.d.ts.map +1 -0
- package/dist/read-contract/index.js +14 -0
- package/dist/read-contract/index.js.map +1 -0
- package/dist/read-contract/model-attribution.d.ts +85 -0
- package/dist/read-contract/model-attribution.d.ts.map +1 -0
- package/dist/read-contract/model-attribution.js +30 -0
- package/dist/read-contract/model-attribution.js.map +1 -0
- package/dist/read-contract/read-contract.d.ts +455 -0
- package/dist/read-contract/read-contract.d.ts.map +1 -0
- package/dist/read-contract/read-contract.js +46 -0
- package/dist/read-contract/read-contract.js.map +1 -0
- package/dist/registration.d.ts +192 -0
- package/dist/registration.d.ts.map +1 -0
- package/dist/registration.js +15 -0
- package/dist/registration.js.map +1 -0
- package/dist/registry.d.ts +128 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +122 -0
- package/dist/registry.js.map +1 -0
- package/dist/render.d.ts +30 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +44 -0
- package/dist/render.js.map +1 -0
- package/dist/scope.d.ts +46 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +17 -0
- package/dist/scope.js.map +1 -0
- package/dist/temporal/anticipatory-atom.d.ts +123 -0
- package/dist/temporal/anticipatory-atom.d.ts.map +1 -0
- package/dist/temporal/anticipatory-atom.js +124 -0
- package/dist/temporal/anticipatory-atom.js.map +1 -0
- package/dist/temporal/common.d.ts +47 -0
- package/dist/temporal/common.d.ts.map +1 -0
- package/dist/temporal/common.js +100 -0
- package/dist/temporal/common.js.map +1 -0
- package/dist/temporal/fixtures.d.ts +7 -0
- package/dist/temporal/fixtures.d.ts.map +1 -0
- package/dist/temporal/fixtures.js +21 -0
- package/dist/temporal/fixtures.js.map +1 -0
- package/dist/temporal/index.d.ts +13 -0
- package/dist/temporal/index.d.ts.map +1 -0
- package/dist/temporal/index.js +13 -0
- package/dist/temporal/index.js.map +1 -0
- package/dist/temporal/interval-query.d.ts +42 -0
- package/dist/temporal/interval-query.d.ts.map +1 -0
- package/dist/temporal/interval-query.js +49 -0
- package/dist/temporal/interval-query.js.map +1 -0
- package/dist/temporal/node-id.d.ts +112 -0
- package/dist/temporal/node-id.d.ts.map +1 -0
- package/dist/temporal/node-id.js +208 -0
- package/dist/temporal/node-id.js.map +1 -0
- package/dist/temporal/would-affect-edge.d.ts +66 -0
- package/dist/temporal/would-affect-edge.d.ts.map +1 -0
- package/dist/temporal/would-affect-edge.js +113 -0
- package/dist/temporal/would-affect-edge.js.map +1 -0
- package/dist/testing/index.d.ts +98 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +225 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/vda.d.ts +46 -0
- package/dist/vda.d.ts.map +1 -0
- package/dist/vda.js +42 -0
- package/dist/vda.js.map +1 -0
- package/dist/workspace/brief-run.d.ts +104 -0
- package/dist/workspace/brief-run.d.ts.map +1 -0
- package/dist/workspace/brief-run.js +32 -0
- package/dist/workspace/brief-run.js.map +1 -0
- package/dist/workspace/common.d.ts +42 -0
- package/dist/workspace/common.d.ts.map +1 -0
- package/dist/workspace/common.js +26 -0
- package/dist/workspace/common.js.map +1 -0
- package/dist/workspace/fixtures.d.ts +10 -0
- package/dist/workspace/fixtures.d.ts.map +1 -0
- package/dist/workspace/fixtures.js +93 -0
- package/dist/workspace/fixtures.js.map +1 -0
- package/dist/workspace/index.d.ts +13 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +13 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/property-workspace.d.ts +148 -0
- package/dist/workspace/property-workspace.d.ts.map +1 -0
- package/dist/workspace/property-workspace.js +21 -0
- package/dist/workspace/property-workspace.js.map +1 -0
- package/dist/workspace/workspace-attachment.d.ts +99 -0
- package/dist/workspace/workspace-attachment.d.ts.map +1 -0
- package/dist/workspace/workspace-attachment.js +35 -0
- package/dist/workspace/workspace-attachment.js.map +1 -0
- package/dist/workspace/workspace-share-edge.d.ts +115 -0
- package/dist/workspace/workspace-share-edge.d.ts.map +1 -0
- package/dist/workspace/workspace-share-edge.js +22 -0
- package/dist/workspace/workspace-share-edge.js.map +1 -0
- package/package.json +107 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@empressaio/atom-contract` (formerly `@hauska/atom-contract`) are documented here.
|
|
4
|
+
|
|
5
|
+
## [1.7.0] - 2026-07-06
|
|
6
|
+
|
|
7
|
+
O&G ontology module (ADR-025) and package rename to Empressa branding. Additive
|
|
8
|
+
minor — no changes to existing unions, required fields, or exports. Consumers on
|
|
9
|
+
`^1.6` are unaffected until they import `./og` or adopt the new package name.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `@empressaio/atom-contract/og` subpath — O&G atom types per ADR-025:
|
|
14
|
+
- **Asset spine (operations lens):** `well`, `wellbore`, `completion`, `zone`,
|
|
15
|
+
`pad` with node prefixes `well_`, `wbore_`, `cmpl_`, `zone_`, `pad_`.
|
|
16
|
+
Legible-DID exception: `well_<api14>` embeds API-14 identity rather than
|
|
17
|
+
hashing.
|
|
18
|
+
- **Production:** `production-timeseries` (`prodts_` prefix) models the
|
|
19
|
+
reporting split (Texas oil at RRC lease level, gas at well level). Public
|
|
20
|
+
regulatory streams are `public-free`; operator telemetry streams are
|
|
21
|
+
`tenant-private`. `equipment-state` (`equip_` prefix) is operator-overlay
|
|
22
|
+
data (`tenant-private` by default).
|
|
23
|
+
- **Land leg:** `mineral-lease` (`mlease_` prefix), `rrc-lease` (`rrclease_`
|
|
24
|
+
prefix with legible DID `rrclease_<district>-<leaseNo>`), `tract`
|
|
25
|
+
(`tract_<county>-<abstract>` where abstract-keyed), `ownership-interest`
|
|
26
|
+
(`intr_` prefix, discriminated type with `interestType` field). Reconciles
|
|
27
|
+
with ADR-020: `mineral-lease.evidencedByInstrumentDids` links to
|
|
28
|
+
`recorded-instrument` atoms.
|
|
29
|
+
- **Revenue allocation (C1b, Herbert review applied 2026-07-06):**
|
|
30
|
+
`revenue-allocation-unit` (`unit_` prefix) — first-class object with two
|
|
31
|
+
source adapters (pooled-unit from recorded instruments, allocation-well
|
|
32
|
+
from RRC plat), discriminated by `basis` field. Tract participations carry
|
|
33
|
+
operator-asserted factors tagged with `allocationMethod` (stated-fraction,
|
|
34
|
+
acreage, lateral-length, take-points, acre-feet, oil-in-place, other) and
|
|
35
|
+
source — schema enforces no bare factors without method + source. Pooled
|
|
36
|
+
units carry sourceInstrumentDids, ratificationInstrumentDids, and per-tract
|
|
37
|
+
ratificationGaps (Opiela evidentiary pattern). Allocation wells carry
|
|
38
|
+
sourcePlatCid with per-tract take points and productive lateral footage.
|
|
39
|
+
DOI is derived (engine run); obtained operator DOIs linked by
|
|
40
|
+
`reconciles-with` edge.
|
|
41
|
+
- Zod schemas, TypeScript interfaces, sample fixtures, and recommended
|
|
42
|
+
render-mode/access-policy constants for all twelve types.
|
|
43
|
+
- **Core `obligation` type** (ships in main contract module, not `./og`):
|
|
44
|
+
domain-neutral from birth (Mox and O&G consume the same shape). Node prefix
|
|
45
|
+
`oblg_` registers with core prefix set. Status is engine-derived, never
|
|
46
|
+
hand-asserted; each derivation is a `procedure-execution` atom (ADR-013).
|
|
47
|
+
`./og` re-exports `obligation` for convenience.
|
|
48
|
+
- **Additive INSTRUMENT_TYPES extension** in `./encumbrances`: `oil-gas-lease`,
|
|
49
|
+
`mineral-deed`, `assignment`, `division-order` added to the ADR-020 union;
|
|
50
|
+
**recorded unit family (C1b)** added: `unit-designation`,
|
|
51
|
+
`declaration-of-pooling`, `ratification-of-unit`,
|
|
52
|
+
`amendment-of-unit-designation`, `release-of-unit`. Per ADR-025
|
|
53
|
+
reconciliation: the recorded mineral lease instrument is a
|
|
54
|
+
`recorded-instrument`, not a new recording type. Ratifications are
|
|
55
|
+
load-bearing (pooling often not binding until ratified).
|
|
56
|
+
- **Link vocabulary extension (C1b):** `reconciles-with` semantic edge
|
|
57
|
+
documented in `./og/common.ts` — links computed DOI decimals to obtained
|
|
58
|
+
operator DOI / signed division orders. Discrepancies surface as disputes,
|
|
59
|
+
never silent overwrites. Per ADR-025 Herbert review: "The DOI is derived,
|
|
60
|
+
never source."
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
|
|
64
|
+
- **Package renamed:** `@hauska/atom-contract` → `@empressaio/atom-contract`.
|
|
65
|
+
Branding decision per `_decisions/2026-07-06_branding_hauska_sdk_only.md`.
|
|
66
|
+
Existing `@hauska/atom-contract@^1.6` consumers stay green on the old name;
|
|
67
|
+
consumers adopt 1.7.0 by changing the package name alongside the version bump
|
|
68
|
+
they already need to import `./og`.
|
|
69
|
+
- README title and branding updated to Empressa throughout.
|
|
70
|
+
|
|
71
|
+
### Consumer migration notes
|
|
72
|
+
|
|
73
|
+
- Pin `@empressaio/atom-contract@^1.7.0` and change package name in dependencies
|
|
74
|
+
when adopting O&G types.
|
|
75
|
+
- Import O&G contracts from `@empressaio/atom-contract/og`; main barrel and
|
|
76
|
+
other subpaths unchanged.
|
|
77
|
+
- `obligation` is exported from the main barrel (`@empressaio/atom-contract`)
|
|
78
|
+
as a core type; `./og` re-exports it for O&G consumers' convenience.
|
|
79
|
+
- Every O&G atom carries `WidthedConfidence`, `sourceCitation`, `extractedAt`,
|
|
80
|
+
`asOf?`, and `accessPolicy` per ADR-025's quality-gate discipline. At
|
|
81
|
+
activation the entire domain is uncalibrated (`provenance: "asserted"`).
|
|
82
|
+
- No publish to npm is included in this release; publish is staged for operator
|
|
83
|
+
manual execution.
|
|
84
|
+
|
|
85
|
+
## [1.6.1] - 2026-07-05
|
|
86
|
+
|
|
87
|
+
Restores git provenance for the conformance + export modules (shipped in the
|
|
88
|
+
1.5.0 tarball but untracked in git until PR #3); carries the 1.6.0
|
|
89
|
+
anticipatory-atom / would_affect / evt_ features. No API changes versus the
|
|
90
|
+
1.5.0 tarball plus 1.6.0 temporal additions; provenance-only republish so
|
|
91
|
+
published tree equals git HEAD.
|
|
92
|
+
|
|
93
|
+
## [1.6.0] - 2026-06-30
|
|
94
|
+
|
|
95
|
+
Temporal-Context Engine substrate (anticipatory atoms, would_affect edges,
|
|
96
|
+
evt_ node prefix). Additive release — no changes to `accessPolicy` or other
|
|
97
|
+
existing unions.
|
|
98
|
+
|
|
99
|
+
### Added
|
|
100
|
+
|
|
101
|
+
- `@hauska/atom-contract/temporal` subpath:
|
|
102
|
+
- **Anticipatory event atoms** — `claim_type` prefix `anticipatory.<kind>`
|
|
103
|
+
(open sub-kind; unknown kinds fall back to base event-family behavior).
|
|
104
|
+
`valid_from` MAY be in the future (only atom type where this is
|
|
105
|
+
semantically correct). New deposits require `confidence.basis: "asserted"`.
|
|
106
|
+
`warnFutureValidFromOnNonAnticipatory()` flags future `valid_from` on
|
|
107
|
+
other claim types as a data-quality warning.
|
|
108
|
+
- **`WouldAffectEdge`** — structural `would_affect` edge from `evt_`
|
|
109
|
+
source to subject node (`parcel_`, `jurisdiction_`, etc.) with required
|
|
110
|
+
ISO 8601 `effectiveDate` and `immutable: true` discriminant. Effect
|
|
111
|
+
probability is not on this edge (derived atom, re-estimated over time).
|
|
112
|
+
- **`evt_` node-type prefix** — added to `NodeTypePrefix` registry.
|
|
113
|
+
`deriveEvtNodeId(source, externalId)` and `validateEvtNodeAnchor()`
|
|
114
|
+
enforce stable-ID discipline; unanchored manual IDs are rejected.
|
|
115
|
+
- **Interval query helpers** — `isAtomVisibleAtAsOf()` /
|
|
116
|
+
`filterAtomsForAsOf()` with explicit `includeAnticipatory` opt-in so
|
|
117
|
+
future-dated anticipatory atoms are not silently excluded.
|
|
118
|
+
|
|
119
|
+
### Consumer migration notes
|
|
120
|
+
|
|
121
|
+
- Pin `@hauska/atom-contract@^1.6.0` when adopting TCE types (cc-agent-C,
|
|
122
|
+
cc-agent-E co-bump window).
|
|
123
|
+
- Import from `@hauska/atom-contract/temporal`; main barrel unchanged.
|
|
124
|
+
|
|
125
|
+
## [1.5.0] - 2026-06-21
|
|
126
|
+
|
|
127
|
+
Calibrated Spine Wave 2 — migrate legacy scalar confidence on
|
|
128
|
+
`./encumbrances` and `./workspace` subpaths to `WidthedConfidence`.
|
|
129
|
+
|
|
130
|
+
### Changed (breaking on subpaths)
|
|
131
|
+
|
|
132
|
+
- `./encumbrances` `QUALITY_GATE_FIELDS.confidence` — `number` →
|
|
133
|
+
`WidthedConfidence` (Zod: `WIDTHED_CONFIDENCE_SCHEMA`).
|
|
134
|
+
- `./encumbrances` atom instances (`restriction-clause`,
|
|
135
|
+
`administrative-rule`) and `constraint-resolution.rules[].confidence`
|
|
136
|
+
— same widthed shape; bare scalars fail schema validation.
|
|
137
|
+
- `./workspace` `BriefRun.confidence` — `number` → `WidthedConfidence`.
|
|
138
|
+
|
|
139
|
+
### Added
|
|
140
|
+
|
|
141
|
+
- `createEncumbranceQualityConfidence()` — asserted quality-gate helper
|
|
142
|
+
for encumbrance extract deposits (`n: 0`, `intervalWidth: 1`,
|
|
143
|
+
`provenance: "asserted"`).
|
|
144
|
+
- `createBriefRunAssertedConfidence()` — same pattern for brief-run
|
|
145
|
+
deposits.
|
|
146
|
+
- Schema tests rejecting bare scalar confidence on encumbrance and
|
|
147
|
+
brief-run payloads.
|
|
148
|
+
|
|
149
|
+
### Consumer migration notes
|
|
150
|
+
|
|
151
|
+
- Pin `@hauska/atom-contract@^1.5.0` when adopting widthed encumbrance
|
|
152
|
+
or workspace confidence fields.
|
|
153
|
+
- Replace `confidence: 0.92` with
|
|
154
|
+
`confidence: createEncumbranceQualityConfidence(0.92)` (or full
|
|
155
|
+
`createWidthedConfidence()` when `n`, width, and provenance are known).
|
|
156
|
+
- Co-bump with cortex-api encumbrance and brokerage workspace paths
|
|
157
|
+
(cc-agent-C) in the same release window.
|
|
158
|
+
|
|
159
|
+
## [1.4.0] - 2026-06-21
|
|
160
|
+
|
|
161
|
+
Calibrated Spine Wave 1 read-contract substrate (F4 / F6 / K6).
|
|
162
|
+
Contract-only: types, Zod schemas, branded constructors, and fixtures.
|
|
163
|
+
No derived numbers are stored; consumers derive agreement and posteriors
|
|
164
|
+
at read time.
|
|
165
|
+
|
|
166
|
+
### Added
|
|
167
|
+
|
|
168
|
+
- `@hauska/atom-contract/read-contract` subpath with:
|
|
169
|
+
- `WidthedConfidence` — estimate + `n` + `intervalWidth` +
|
|
170
|
+
`CalibrationProvenance` as one inseparable object; estimate is a
|
|
171
|
+
branded nominal type with no exported scalar confidence alias.
|
|
172
|
+
- `ThreeAxisConfidence` — `calibratedConfidence` (accuracy, earned),
|
|
173
|
+
`assertedConfidence` (source-quality, asserted), `consequence`
|
|
174
|
+
(severity stratum from ASCE 7 / IBC classification inputs).
|
|
175
|
+
- `ReadContract` — three-axis object plus optional
|
|
176
|
+
`ModelAttributionStamp` for ledger deposit provenance.
|
|
177
|
+
- `CalibrationProvenance` union: `asserted` | `backtest` | `seed` |
|
|
178
|
+
`live` (K6).
|
|
179
|
+
- `ModelAttributionStamp` — model id/version, prompt and context
|
|
180
|
+
template versions, sampling params, retrieved atom-set id (F3
|
|
181
|
+
ledger stamp shape; not persisted derived quantities).
|
|
182
|
+
- `LegacyEngineEnvelopeConfidence` — documented migration source
|
|
183
|
+
only; not a valid emission shape once F4 propagation lands.
|
|
184
|
+
- Zod schemas, `create*` factories, sample fixtures, and type-level
|
|
185
|
+
tests enforcing the no-scalar-accessor contract.
|
|
186
|
+
|
|
187
|
+
### Consumer migration notes
|
|
188
|
+
|
|
189
|
+
- Pin `@hauska/atom-contract@^1.4.0` and import from
|
|
190
|
+
`@hauska/atom-contract/read-contract`.
|
|
191
|
+
- Replace bare `{ value, kind }` confidence emissions with
|
|
192
|
+
`ReadContract` / `ThreeAxisConfidence`; use
|
|
193
|
+
`createWidthedConfidence` — raw numbers fail the branded estimate
|
|
194
|
+
type.
|
|
195
|
+
- Co-bump required across MCP server, cortex-api, Cortex, extension,
|
|
196
|
+
and map once each surface is migrated (Wave 2 propagation).
|
|
197
|
+
- Main barrel unchanged; existing v1.3.0 consumers are unaffected
|
|
198
|
+
until they opt into the subpath.
|
|
199
|
+
|
|
200
|
+
## [1.3.0] - 2026-05-28
|
|
201
|
+
|
|
202
|
+
Adds brokerage workspace packaging contracts for Property Workspace V1.
|
|
203
|
+
This release is contract-only: schemas, exported types, and fixtures for
|
|
204
|
+
downstream engine and legacy-design-tools integration.
|
|
205
|
+
|
|
206
|
+
### Added
|
|
207
|
+
|
|
208
|
+
- `@hauska/atom-contract/workspace` subpath with Zod schemas, TS types,
|
|
209
|
+
and validators for `property-workspace`, `brief-run`,
|
|
210
|
+
`workspace-attachment`, and `workspace-share-edge`.
|
|
211
|
+
- Shared metadata schema (`did`, `createdAt`, `updatedAt`, `accessPolicy`)
|
|
212
|
+
and common user-reference schema for workspace payloads.
|
|
213
|
+
- Validation fixtures and schema conformance tests for all four new
|
|
214
|
+
contract entities.
|
|
215
|
+
|
|
216
|
+
### Consumer migration notes
|
|
217
|
+
|
|
218
|
+
- Update dependency to `@hauska/atom-contract@^1.3.0`.
|
|
219
|
+
- Import workspace contracts from `@hauska/atom-contract/workspace`.
|
|
220
|
+
- Validate outbound/inbound workspace payloads against the new schemas
|
|
221
|
+
before passing entities to engine ingestion or legacy-design-tools APIs.
|
|
222
|
+
- Preserve the common metadata fields on all four entities. Existing
|
|
223
|
+
payloads missing `did`, `createdAt`, `updatedAt`, or `accessPolicy`
|
|
224
|
+
must be backfilled by consumers before validation succeeds.
|
|
225
|
+
- `workspace-attachment` now enforces kind-specific payload shape:
|
|
226
|
+
`note` requires `body`; `link|image|pdf` require `uri`.
|
|
227
|
+
|
|
228
|
+
## [1.2.0] - 2026-05-26
|
|
229
|
+
|
|
230
|
+
Recorded private encumbrance atom types per ADR-020 and
|
|
231
|
+
`constraint-resolution` per ADR-021. Unblocks Cortex Phase 1
|
|
232
|
+
(cc-agent-C) and engine registry registration (cc-agent-E).
|
|
233
|
+
|
|
234
|
+
### Added
|
|
235
|
+
|
|
236
|
+
- `@hauska/atom-contract/encumbrances` subpath — Zod schemas, TS
|
|
237
|
+
interfaces, sample fixtures, and recommended render-mode constants
|
|
238
|
+
for: `recorded-instrument`, `restriction-clause`, `restriction-corpus`,
|
|
239
|
+
`administrative-rule`, `constraint-resolution`.
|
|
240
|
+
- `ENCUMBRANCE_RENDER_MODES` / `ENCUMBRANCE_DEFAULT_RENDER_MODE` —
|
|
241
|
+
documents `focus` as the default for `restriction-clause` citation
|
|
242
|
+
surfaces.
|
|
243
|
+
- `ENCUMBRANCE_DEFAULT_ACCESS_POLICY` — atom-type defaults; all
|
|
244
|
+
encumbrance payloads reject `public-free` at validation time.
|
|
245
|
+
|
|
246
|
+
### Changed
|
|
247
|
+
|
|
248
|
+
- `AccessPolicy` union gains `tenant-shared` (ADR-017; required by
|
|
249
|
+
ADR-020 `restriction-corpus` and HOA packs).
|
|
250
|
+
- `zod@^3.24.1` added as a direct dependency (schemas only; main barrel
|
|
251
|
+
unchanged).
|
|
252
|
+
|
|
253
|
+
### Consumer impact
|
|
254
|
+
|
|
255
|
+
Non-breaking for existing v1.1.0 consumers on the main import path.
|
|
256
|
+
Encumbrance consumers pin `^1.2.0` and import
|
|
257
|
+
`@hauska/atom-contract/encumbrances`. Engine atom-registry registration
|
|
258
|
+
is a separate `@hauska-engine/atoms` bump (cc-agent-E dispatch).
|
|
259
|
+
|
|
260
|
+
## [1.1.0] - 2026-05-19
|
|
261
|
+
|
|
262
|
+
Visibility partitioning. Wires the ADR-017 `accessPolicy` tier into
|
|
263
|
+
the contract so catalog and MCP surfaces can gate visibility without
|
|
264
|
+
inventing their own tagging scheme. Driver: the 2026-05-19 sprint's
|
|
265
|
+
partnership-first sourcing constraint — Smithville, Elgin, and Bastrop
|
|
266
|
+
County need to ingest as platform-internal until Sylvia closes
|
|
267
|
+
partnership, while Bastrop UDC ships public.
|
|
268
|
+
|
|
269
|
+
### Shape decision
|
|
270
|
+
|
|
271
|
+
The dispatch offered two paths: reuse the ADR-017 `accessPolicy` model
|
|
272
|
+
or add a fresh boolean-ish `visibility` field. **Chose ADR-017**: the
|
|
273
|
+
four-value union (`public-free` / `public-paid` / `platform-internal`
|
|
274
|
+
/ `tenant-private`) is documented, covers anticipated tenant- and
|
|
275
|
+
paid-tier cases without a second migration, and avoids ending up with
|
|
276
|
+
two overlapping concepts after ADR-017 lands properly.
|
|
277
|
+
|
|
278
|
+
### Added
|
|
279
|
+
|
|
280
|
+
- `AccessPolicy` type — the four-value ADR-017 union — exported from
|
|
281
|
+
the package barrel.
|
|
282
|
+
- `AtomRegistration.accessPolicy?: AccessPolicy` — atom-type default
|
|
283
|
+
tier. Undeclared = `"public-free"`.
|
|
284
|
+
- `ContextSummary.accessPolicy?: AccessPolicy` — per-instance override.
|
|
285
|
+
Lets a mostly-public atom (e.g. `jurisdiction-corpus`) mark
|
|
286
|
+
individual instances `"platform-internal"` until partnership closes.
|
|
287
|
+
Per-instance value wins when both are present; otherwise fall back
|
|
288
|
+
to the registration default, then `"public-free"`.
|
|
289
|
+
- `AtomPromptDescription.accessPolicy: AccessPolicy` —
|
|
290
|
+
`registry.describeForPrompt()` normalizes the registration's
|
|
291
|
+
undeclared field to `"public-free"` so downstream visibility filters
|
|
292
|
+
can branch without nullish guards.
|
|
293
|
+
- `httpContextSummary` passes `accessPolicy` through from the server
|
|
294
|
+
response verbatim. Absent → `undefined`, so the per-instance /
|
|
295
|
+
registration / `"public-free"` fallback chain is preserved.
|
|
296
|
+
|
|
297
|
+
### Consumer impact
|
|
298
|
+
|
|
299
|
+
No breaking changes. Existing v1.0.0 consumers pin `^1.0.0` and pick
|
|
300
|
+
up v1.1.0 automatically. Registrations that omit `accessPolicy`
|
|
301
|
+
continue to behave as before; downstream surfaces that do not consult
|
|
302
|
+
the field are unaffected.
|
|
303
|
+
|
|
304
|
+
### Not changed
|
|
305
|
+
|
|
306
|
+
Render-mode stubs (per-mode React components) live in a sibling
|
|
307
|
+
package — this contract package ships the AtomMode union only, so
|
|
308
|
+
there are no render-mode stubs to update in this repo. The dispatch's
|
|
309
|
+
"flag in expanded mode for operator inspection" expectation belongs
|
|
310
|
+
on the eventual `<AtomShell>` consumer.
|
|
311
|
+
|
|
312
|
+
## [1.0.0] - 2026-05-18
|
|
313
|
+
|
|
314
|
+
Initial public release. M2-C extraction of the workspace-private
|
|
315
|
+
`@workspace/empressa-atom` framework that lived at
|
|
316
|
+
`legacy-design-tools/lib/empressa-atom/`.
|
|
317
|
+
|
|
318
|
+
### Added
|
|
319
|
+
|
|
320
|
+
- Atom registration contract (`AtomRegistration<TType, TSupported>`)
|
|
321
|
+
with literal-narrowed `entityType` and compile-time
|
|
322
|
+
`defaultMode ⊂ supportedModes` enforcement.
|
|
323
|
+
- Five-mode render union: `inline`, `compact`, `card`, `expanded`,
|
|
324
|
+
`focus`.
|
|
325
|
+
- `createAtomRegistry()` with `register`, `registerAny`, `resolve`,
|
|
326
|
+
`list`, `listByDomain`, `validate`, `describeForPrompt`.
|
|
327
|
+
- Multi-child composition declaration with `forwardRef` opt-out and
|
|
328
|
+
`resolveComposition` resolver.
|
|
329
|
+
- `ContextSummary` four-layer shape (`prose`, `typed`, `keyMetrics`,
|
|
330
|
+
`relatedAtoms`) plus `historyProvenance` and `scopeFiltered`.
|
|
331
|
+
- `Scope` object passed at the `contextSummary` call site
|
|
332
|
+
(`audience`, `requestor`, `asOf`, `permissions`).
|
|
333
|
+
- `httpContextSummary` helper: fetch-backed context loader with
|
|
334
|
+
scope-keyed TTL cache and `invalidate` / `clear` hooks.
|
|
335
|
+
- `EventAnchoringService` interface plus `PostgresEventAnchoringService`
|
|
336
|
+
with deterministic SHA-256 chain hash and per-entity advisory lock.
|
|
337
|
+
- `wrapForStorage` / `unwrapFromStorage` no-op envelope (VDA placeholder).
|
|
338
|
+
- Inline reference syntax `{{atom|type|id|label}}` with
|
|
339
|
+
`parseInlineReferences` and `serializeInlineReference`.
|
|
340
|
+
- `./testing` subpath: `createTestRegistry`, `createInMemoryEventService`,
|
|
341
|
+
`runAtomContractTests`.
|
|
342
|
+
|
|
343
|
+
### Lineage
|
|
344
|
+
|
|
345
|
+
Substrate placement per doc_repo ADR-018 (atom contract substrate layer
|
|
346
|
+
placement and Hauska namespace, accepted 2026-05-18). Peer to
|
|
347
|
+
`@hauska-sdk/*` and `hauska-engine`; not part of Empressa product
|
|
348
|
+
surface area.
|
|
349
|
+
|
|
350
|
+
The package extracts the workspace-private framework verbatim. No
|
|
351
|
+
behavioral changes from the staged version; only:
|
|
352
|
+
|
|
353
|
+
- Package renamed from `@workspace/empressa-atom` to
|
|
354
|
+
`@hauska/atom-contract`.
|
|
355
|
+
- `@workspace/db` test-time dependency dropped (consumers inject their
|
|
356
|
+
own database).
|
|
357
|
+
- Postgres-backed integration tests refactored to the in-memory
|
|
358
|
+
`createInMemoryEventService` so the package's CI is self-contained;
|
|
359
|
+
postgres exercise of `PostgresEventAnchoringService` lives in
|
|
360
|
+
consumer packages.
|