@agenticprimitives/ontology 1.0.0-alpha.45 → 1.0.0-alpha.47

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 (51) hide show
  1. package/cbox/controlled-vocabularies.ttl +10 -6
  2. package/cbox/interaction-shapes.shacl.ttl +22 -5
  3. package/cbox/naming-registry-shapes.shacl.ttl +38 -6
  4. package/cbox/run-provenance-shapes.shacl.ttl +10 -4
  5. package/cbox/value-rail-shapes.shacl.ttl +60 -0
  6. package/dist/artifacts.d.ts +2 -2
  7. package/dist/artifacts.d.ts.map +1 -1
  8. package/dist/artifacts.js +19 -0
  9. package/dist/artifacts.js.map +1 -1
  10. package/dist/household.d.ts.map +1 -1
  11. package/dist/household.js +7 -3
  12. package/dist/household.js.map +1 -1
  13. package/dist/index.d.ts +13 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +13 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/party-roles.d.ts.map +1 -1
  18. package/dist/party-roles.js +6 -3
  19. package/dist/party-roles.js.map +1 -1
  20. package/dist/stewardship.d.ts +34 -0
  21. package/dist/stewardship.d.ts.map +1 -0
  22. package/dist/stewardship.js +38 -0
  23. package/dist/stewardship.js.map +1 -0
  24. package/dist/transitions.d.ts +10 -1
  25. package/dist/transitions.d.ts.map +1 -1
  26. package/dist/transitions.js +12 -2
  27. package/dist/transitions.js.map +1 -1
  28. package/dist/vault-records.d.ts +33 -5
  29. package/dist/vault-records.d.ts.map +1 -1
  30. package/dist/vault-records.js +123 -96
  31. package/dist/vault-records.js.map +1 -1
  32. package/dist/versions.generated.d.ts +34 -34
  33. package/dist/versions.generated.js +33 -33
  34. package/dist/versions.generated.js.map +1 -1
  35. package/package.json +3 -3
  36. package/tbox/actor-context.ttl +1 -0
  37. package/tbox/content.ttl +5 -0
  38. package/tbox/core.ttl +34 -4
  39. package/tbox/estate.ttl +7 -1
  40. package/tbox/geo.ttl +6 -0
  41. package/tbox/household.ttl +5 -3
  42. package/tbox/identity.ttl +12 -1
  43. package/tbox/inference.ttl +7 -2
  44. package/tbox/naming.ttl +2 -2
  45. package/tbox/payload.ttl +35 -31
  46. package/tbox/payment.ttl +10 -6
  47. package/tbox/privacy-credential.ttl +21 -1
  48. package/tbox/skills.ttl +5 -0
  49. package/tbox/transition.ttl +60 -3
  50. package/tbox/values.ttl +2 -1
  51. package/versions.adoption.json +18 -0
@@ -18,7 +18,7 @@
18
18
  # ─── agentKind — 3 values, on-chain-bound (ADR-0009 enum / types.AgentType) ──
19
19
  ap:agentKind a skos:ConceptScheme ;
20
20
  rdfs:label "agentKind" ;
21
- rdfs:comment "The 3-value on-chain-bound ROOT kind (person/org/service) carried on the NAME node; 'service' names the ap:ApplicationAgent root (ADR-0046 amendment). Distinct from profileType (8 values; agent-profile/HCS-11) and from ap:agentTypeScheme (the 7 DERIVED types on the SA subject; spec 346 §2.3). treasury is NOT an agentKind — it is a profileType ⊂ service (ap:Treasury rdfs:subClassOf ap:ServiceAgent; tbox/core); team and alliance are NOT agentKinds — they are profileTypes ⊂ org (ap:TeamAgent / ap:AllianceAgent rdfs:subClassOf ap:OrganizationAgent; spec 344 §4.4). Never new agentKinds." ;
21
+ rdfs:comment "The 3-value on-chain-bound ROOT kind (person/org/service) carried on the NAME node; 'service' names the ap:ApplicationAgent root (ADR-0046 amendment). Distinct from profileType (8 values; agent-profile/HCS-11) and from ap:agentTypeScheme (the 10 DERIVED types on the SA subject; spec 346 §2.3). treasury is NOT an agentKind — it is a profileType ⊂ service (ap:Treasury rdfs:subClassOf ap:ServiceAgent; tbox/core); team and alliance are NOT agentKinds — they are profileTypes ⊂ org (ap:TeamAgent / ap:AllianceAgent rdfs:subClassOf ap:OrganizationAgent; spec 344 §4.4). Never new agentKinds." ;
22
22
  skos:hasTopConcept ap:Person, ap:OrgKind, ap:Service .
23
23
  ap:Person a skos:Concept ; skos:inScheme ap:agentKind ; skos:prefLabel "person" .
24
24
  ap:OrgKind a skos:Concept ; skos:inScheme ap:agentKind ; skos:prefLabel "org" .
@@ -59,15 +59,15 @@ ap:Custodied a skos:Concept ; skos:inScheme ap:controlStatusScheme ; skos:p
59
59
  ap:IdentifierOnly a skos:Concept ; skos:inScheme ap:controlStatusScheme ; skos:prefLabel "identifier-only" ;
60
60
  rdfs:comment "hedera:* / solana:* — addressable, not custodied by this stack." .
61
61
 
62
- # ─── agentType — the 7 DERIVED types, on-chain-bound (spec 346 §2; ADR-0061) ─
62
+ # ─── agentType — the 10 DERIVED types, on-chain-bound (spec 346 §2; ADR-0061; spec 368 adds household) ─
63
63
  # AGENT_TYPE_ENUM / types.DerivedAgentType. Person and Organization are their own derived type (the
64
64
  # trivial specialization) so every agent has exactly one. rootClassFor: team→org;
65
65
  # service|workspace|treasury|registry→service. The 3-value ap:agentKind scheme above
66
66
  # is UNCHANGED — nothing is ever added to the root trichotomy.
67
67
  ap:agentTypeScheme a skos:ConceptScheme ;
68
68
  rdfs:label "agentType" ;
69
- rdfs:comment "9 values, on-chain-bound (AGENT_TYPE_ENUM / types.DerivedAgentType): person org team service workspace treasury registry church circle. rootClassFor: team→org; service|workspace|treasury|registry→service. Each concept rdfs:seeAlso the OWL class it projects (tbox/core)." ;
70
- skos:hasTopConcept ap:PersonType, ap:OrgType, ap:TeamType, ap:ServiceType, ap:WorkspaceType, ap:TreasuryType, ap:RegistryType, ap:ChurchType, ap:CircleType .
69
+ rdfs:comment "10 values, on-chain-bound (AGENT_TYPE_ENUM / types.DerivedAgentType): person org team service workspace treasury registry church circle household. rootClassFor: team|church|circle|household→org; service|workspace|treasury|registry→service. Each concept rdfs:seeAlso the OWL class it projects (tbox/core)." ;
70
+ skos:hasTopConcept ap:PersonType, ap:OrgType, ap:TeamType, ap:ServiceType, ap:WorkspaceType, ap:TreasuryType, ap:RegistryType, ap:ChurchType, ap:CircleType, ap:HouseholdType .
71
71
  ap:PersonType a skos:Concept ; skos:inScheme ap:agentTypeScheme ; skos:prefLabel "person" ; rdfs:seeAlso ap:PersonAgent .
72
72
  ap:OrgType a skos:Concept ; skos:inScheme ap:agentTypeScheme ; skos:prefLabel "org" ; rdfs:seeAlso ap:OrganizationAgent .
73
73
  ap:TeamType a skos:Concept ; skos:inScheme ap:agentTypeScheme ; skos:prefLabel "team" ; rdfs:seeAlso ap:TeamAgent .
@@ -77,6 +77,9 @@ ap:TreasuryType a skos:Concept ; skos:inScheme ap:agentTypeScheme ;
77
77
  ap:RegistryType a skos:Concept ; skos:inScheme ap:agentTypeScheme ; skos:prefLabel "registry" ; rdfs:seeAlso ap:RegistryAgent .
78
78
  ap:ChurchType a skos:Concept ; skos:inScheme ap:agentTypeScheme ; skos:prefLabel "church" ; rdfs:seeAlso ap:ChurchAgent .
79
79
  ap:CircleType a skos:Concept ; skos:inScheme ap:agentTypeScheme ; skos:prefLabel "circle" ; rdfs:seeAlso ap:CircleAgent .
80
+ # Spec 368 / ADR-0061 amendment 2026-09-07 — `.household` is a Ring-0 derived type (live on faithchain); it was in
81
+ # AGENT_TLDS and CLASS_FOR_SUFFIX but in no codelist until ONT-3 (2026-11-10 review).
82
+ ap:HouseholdType a skos:Concept ; skos:inScheme ap:agentTypeScheme ; skos:prefLabel "household" ; rdfs:seeAlso ap:HouseholdAgent .
80
83
 
81
84
  # ─── tld — the typed name suffixes (spec 346 §3.1; ADR-0061 §3) ──────────
82
85
  # A suffix NAMES a derived type — never the inheritance structure, a root, a role, or a technology.
@@ -85,10 +88,11 @@ ap:CircleType a skos:Concept ; skos:inScheme ap:agentTypeScheme ;
85
88
  # and `.agent` are reserved/inactive and deliberately NOT concepts here; `.ws` is an alias, not a tld.
86
89
  apnam:tldScheme a skos:ConceptScheme ;
87
90
  rdfs:label "tld" ;
88
- rdfs:comment "The 7 active typed suffixes: me org team svc workspace treasury registry. Each names exactly one ap:agentTypeScheme concept (apnam:namesDerivedType)." ;
89
- skos:hasTopConcept apnam:MeTld, apnam:OrgTld, apnam:TeamTld, apnam:SvcTld, apnam:WorkspaceTld, apnam:TreasuryTld, apnam:RegistryTld, apnam:ChurchTld, apnam:CircleTld .
91
+ rdfs:comment "The 10 active typed suffixes: me org team svc workspace treasury registry church circle household. Each names exactly one ap:agentTypeScheme concept (apnam:namesDerivedType). THE ONE LIST: apnam:TypedAgentNameShape reads this scheme (apnam:TldFromSchemeShape) instead of carrying its own copy, so a suffix added here is valid there with no second edit (ONT-3, 2026-11-10 review — the shape's inline list had drifted to seven)." ;
92
+ skos:hasTopConcept apnam:MeTld, apnam:OrgTld, apnam:TeamTld, apnam:SvcTld, apnam:WorkspaceTld, apnam:TreasuryTld, apnam:RegistryTld, apnam:ChurchTld, apnam:CircleTld, apnam:HouseholdTld .
90
93
  apnam:ChurchTld a skos:Concept ; skos:inScheme apnam:tldScheme ; skos:prefLabel "church" ; apnam:namesDerivedType ap:ChurchType .
91
94
  apnam:CircleTld a skos:Concept ; skos:inScheme apnam:tldScheme ; skos:prefLabel "circle" ; apnam:namesDerivedType ap:CircleType .
95
+ apnam:HouseholdTld a skos:Concept ; skos:inScheme apnam:tldScheme ; skos:prefLabel "household" ; apnam:namesDerivedType ap:HouseholdType .
92
96
  apnam:MeTld a skos:Concept ; skos:inScheme apnam:tldScheme ; skos:prefLabel "me" ; apnam:namesDerivedType ap:PersonType .
93
97
  apnam:OrgTld a skos:Concept ; skos:inScheme apnam:tldScheme ; skos:prefLabel "org" ; apnam:namesDerivedType ap:OrgType .
94
98
  apnam:TeamTld a skos:Concept ; skos:inScheme apnam:tldScheme ; skos:prefLabel "team" ; apnam:namesDerivedType ap:TeamType .
@@ -60,6 +60,13 @@ apix:InteractionProfileShape a sh:NodeShape ;
60
60
  sh:path apix:profileVersion ;
61
61
  sh:minCount 1 ; sh:maxCount 1 ; sh:datatype xsd:string ;
62
62
  sh:message "An InteractionProfile MUST carry an exact version — it is pinned into every Exchange to make downgrade detectable (ADR-0058)." ;
63
+ ] ;
64
+
65
+ # ONT-1 (2026-11-10 review): a profile whose own version is a floating word cannot be pinned exactly.
66
+ sh:property [
67
+ sh:path apix:profileVersion ;
68
+ sh:not [ sh:pattern "^(current|latest|head|main|tip|now)$" ; sh:flags "i" ] ;
69
+ sh:message "An InteractionProfile's version MUST be exact — `current`/`latest`/`HEAD` name whatever exists today, which is no version at all (ADR-0058)." ;
63
70
  ] .
64
71
 
65
72
  # ─── The unit that crosses the boundary ─────────────────────────────────────
@@ -100,6 +107,15 @@ apix:ExchangeShape a sh:NodeShape ;
100
107
  sh:message "An Exchange MUST record the exact profile version it was made under, on itself — reading it off the live Interaction lets a Negotiation be reread as a Conversation after the fact (ADR-0058)." ;
101
108
  ] ;
102
109
 
110
+ # The floating-pointer ban, where the pin LIVES (ONT-1, 2026-11-10 review). It used to sit on the
111
+ # ContextSnapshot shape, where `pinsProfileVersion` never appears (its domain is apix:Exchange), so an
112
+ # Exchange pinned to "latest" conformed. This is STRUCTURE — the form of the pin — not permission.
113
+ sh:property [
114
+ sh:path apix:pinsProfileVersion ;
115
+ sh:not [ sh:pattern "^(current|latest|head|main|tip|now)$" ; sh:flags "i" ] ;
116
+ sh:message "`current`/`latest`/`HEAD` are FORBIDDEN as an Exchange's profile pin — a floating version makes the Exchange unreplayable and its profile downgradable (ADR-0058)." ;
117
+ ] ;
118
+
103
119
  sh:property [
104
120
  sh:path apix:realizesAct ;
105
121
  sh:minCount 1 ;
@@ -185,12 +201,13 @@ apix:ContextSnapshotShape a sh:NodeShape ;
185
201
  sh:message "A ContextSnapshot MUST carry its digest — it is addressed BY content, never by a name that could later point elsewhere." ;
186
202
  ] ;
187
203
 
188
- # The floating-pointer ban, made checkable. A historical record that resolves to whatever exists
189
- # today says nothing about the moment it was made.
204
+ # The floating-pointer ban, made checkable on the snapshot's own pin. A historical record that resolves
205
+ # to whatever exists today says nothing about the moment it was made. (The profile-version half of the
206
+ # ban lives on ExchangeShape, where `pinsProfileVersion` is used — ONT-1.)
190
207
  sh:property [
191
- sh:path apix:pinsProfileVersion ;
192
- sh:not [ sh:in ( "current" "latest" "HEAD" ) ] ;
193
- sh:message "`current`/`latest`/`HEAD` are FORBIDDEN inside a historical record — a floating version makes the Exchange unreplayable (ADR-0058)." ;
208
+ sh:path apix:contextDigest ;
209
+ sh:not [ sh:pattern "^(current|latest|head|main|tip|now)$" ; sh:flags "i" ] ;
210
+ sh:message "`current`/`latest`/`HEAD` are FORBIDDEN as a ContextSnapshot's digest — a floating pointer makes the Exchange that pins it unreplayable (ADR-0058)." ;
194
211
  ] .
195
212
 
196
213
  # ─── Typed evidence ─────────────────────────────────────────────────────────
@@ -29,7 +29,7 @@
29
29
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
30
30
 
31
31
  # ─── Typed names (§3.1, §2.3) ───────────────────────────────────────────────
32
- # Targets names that CARRY a tld. Legacy roots (.agent / .impact) carry none and are exempt — they
32
+ # Targets names that CARRY a tld. The legacy root (.agent) carries none and is exempt — they
33
33
  # keep resolving as legacy throughout (spec 346 §3.5); a shape that failed them would be a migration.
34
34
 
35
35
  apnam:TypedAgentNameShape a sh:NodeShape ;
@@ -39,9 +39,13 @@ apnam:TypedAgentNameShape a sh:NodeShape ;
39
39
  sh:property [
40
40
  sh:path apnam:tld ;
41
41
  sh:maxCount 1 ; sh:datatype xsd:string ;
42
- sh:in ( "me" "org" "team" "svc" "workspace" "treasury" "registry" ) ;
43
- sh:message "Exactly one canonical tld from apnam:tldScheme: me | org | team | svc | workspace | treasury | registry. 'ws' is an alias resolved before storage; .alliance and .agent are reserved/inactive." ;
42
+ sh:message "Exactly one tld, a string." ;
44
43
  ] ;
44
+ # The suffix list is NOT written here (ONT-3, 2026-11-10 review): an inline sh:in had drifted to seven
45
+ # values while the scheme carried nine and the contracts issued ten, so live `.church`/`.circle`/
46
+ # `.household` names were shape-invalid. The one list is apnam:tldScheme (cbox/controlled-vocabularies.ttl);
47
+ # TldFromSchemeShape reads it. (A separate node shape because shacl-engine compiles one sh:sparql per
48
+ # NodeShape — see the package CLAUDE.md — targeting the same subjects, so its own message is reported.)
45
49
  sh:property [
46
50
  sh:path apnam:resolvesTo ;
47
51
  sh:minCount 1 ; sh:maxCount 1 ; sh:class ap:Agent ;
@@ -64,6 +68,25 @@ apnam:TypedAgentNameShape a sh:NodeShape ;
64
68
  """ ;
65
69
  ] .
66
70
 
71
+ # The tld must be the prefLabel of a concept in apnam:tldScheme. Requires the codelist in the data graph,
72
+ # exactly as the suffix-vs-record check above does. 'ws' is an alias resolved before storage (skos:altLabel,
73
+ # deliberately not matched); .alliance and .agent are reserved/inactive and are not concepts.
74
+ apnam:TldFromSchemeShape a sh:NodeShape ;
75
+ rdfs:label "Tld-from-scheme shape" ;
76
+ sh:targetSubjectsOf apnam:tld ;
77
+ sh:sparql [
78
+ sh:message "Exactly one canonical tld from apnam:tldScheme (cbox/controlled-vocabularies.ttl). 'ws' is an alias resolved before storage; .alliance and .agent are reserved/inactive." ;
79
+ sh:select """
80
+ SELECT $this ?value WHERE {
81
+ $this <https://agenticprimitives.dev/ns/naming#tld> ?value .
82
+ FILTER NOT EXISTS {
83
+ ?concept <http://www.w3.org/2004/02/skos/core#inScheme> <https://agenticprimitives.dev/ns/naming#tldScheme> ;
84
+ <http://www.w3.org/2004/02/skos/core#prefLabel> ?value .
85
+ }
86
+ }
87
+ """ ;
88
+ ] .
89
+
67
90
  # ─── Contextual issuance (§3.2, §9) ─────────────────────────────────────────
68
91
 
69
92
  apnam:ContextualNameIssuanceShape a sh:NodeShape ;
@@ -81,10 +104,15 @@ apnam:ContextualNameIssuanceShape a sh:NodeShape ;
81
104
  sh:minCount 1 ; sh:maxCount 1 ; sh:class ap:Agent ;
82
105
  sh:message "Exactly one issuedFor — the canonical subject the contextual name refers to." ;
83
106
  ] ;
107
+ # STRUCTURE ONLY (ONT-11, 2026-11-10 review): the basis must be NAMED, once, as a Delegation — the presence and form
108
+ # of the field. Whether that delegation is live, signed by the issuing context and of a kind valid for this issuance
109
+ # — whether the issuance was AUTHORIZED — is decided in code and never here: agent-naming `validateContextualIssuance`
110
+ # (basis kind per issuance kind), registry-resolution `resolve` (the issuer's signature over the body, NAME-14; a
111
+ # basis not current ⇒ `basis_not_current`). An issuance over a dead or forged basis stays recordable as evidence.
84
112
  sh:property [
85
113
  sh:path apnam:issuanceBasis ;
86
114
  sh:minCount 1 ; sh:maxCount 1 ; sh:class apdel:Delegation ;
87
- sh:message "Exactly one issuanceBasis — the Delegation whose liveness makes the name CURRENT. No basis, no name: a contextual name is a reference over a live delegation, never an identity (ADR-0061 §6)." ;
115
+ sh:message "Exactly one issuanceBasis, naming a Delegation — the record of WHAT the name stands on. Whether it is live and the issuer's is decided by the resolver, not this shape (ADR-0061 §6)." ;
88
116
  ] ;
89
117
  sh:property [
90
118
  sh:path apnam:issuanceKind ;
@@ -162,10 +190,14 @@ apreg:RegistrationReceiptShape a sh:NodeShape ;
162
190
  sh:node [ sh:property [ sh:path skos:inScheme ; sh:hasValue ap:agentTypeScheme ] ] ;
163
191
  sh:message "subjectType is exactly one ap:agentTypeScheme concept — the derived type the admission checked." ;
164
192
  ] ;
193
+ # STRUCTURE ONLY (ONT-11, 2026-11-10 review): the signer must be NAMED, once, as a node. Whether it is the registry's
194
+ # operator agent is whether the receipt is AUTHENTIC — decided by registry-kit `verifyReceipt` (expectedOperator
195
+ # must equal proof.signer, NAME-13), never here. This said `sh:class ap:RegistryAgent`, which made a receipt signed
196
+ # by the wrong party invalid instead of recorded as a bad receipt — and a bad receipt is the evidence (ADR-0058).
165
197
  sh:property [
166
198
  sh:path apreg:receiptSigner ;
167
- sh:minCount 1 ; sh:maxCount 1 ; sh:class ap:RegistryAgent ;
168
- sh:message "A receipt is signed by exactly one RegistryAgent — the operator SA; an unsigned receipt is a claim by nobody." ;
199
+ sh:minCount 1 ; sh:maxCount 1 ; sh:nodeKind sh:IRI ;
200
+ sh:message "A receipt names exactly one signer; an unsigned receipt is a claim by nobody. Whether the signer is the registry's operator is verifyReceipt's decision (NAME-13)." ;
169
201
  ] ;
170
202
  sh:property [
171
203
  sh:path apreg:admittedAt ;
@@ -80,10 +80,10 @@ apexec:StepUsageResolvableShape a sh:NodeShape ;
80
80
  """ ;
81
81
  ] .
82
82
 
83
- # ─── R3 · a completed capability step ran under a mandate that allowed it ────
83
+ # ─── R3 · a completed capability step names its mandate and records its verdict ────
84
84
 
85
85
  apexec:CapabilityStepMandateShape a sh:NodeShape ;
86
- rdfs:label "R3 — a completed capability step presented a mandate and the verdict was allow" ;
86
+ rdfs:label "R3 — a completed capability step names the mandate it presented and records the verdict" ;
87
87
  sh:target [
88
88
  sh:select """
89
89
  SELECT ?this WHERE {
@@ -97,10 +97,16 @@ apexec:CapabilityStepMandateShape a sh:NodeShape ;
97
97
  sh:minCount 1 ; sh:nodeKind sh:IRI ;
98
98
  sh:message "R3: a COMPLETED capability step names no mandate (apvr:usedDelegation) — a consequential act with nothing behind it is a forged record, not a run (spec 389 W2; spec 350: every consequential step presents a mandate)." ;
99
99
  ] ;
100
+ # STRUCTURE ONLY (ONT-11, 2026-11-10 review). The verdict must be RECORDED, as one of the verifier's three words — not
101
+ # be "allow". Whether the step was authorized is the verifier's decision (`verifyMandateForStep`,
102
+ # packages/delegation/src/mandate.ts), made before the act and enforced by the harness, which runs a step only on
103
+ # `allow`. A record of a step that completed under `deny` is EVIDENCE of exactly the fault that matters; refusing it
104
+ # here would delete that evidence (ADR-0058). This shape used to say `sh:in ( "allow" )`.
100
105
  sh:property [
101
106
  sh:path apexec:authorityDecision ;
102
- sh:minCount 1 ; sh:in ( "allow" ) ;
103
- sh:message "R3: a COMPLETED capability step records a verdict other than allow — a step that completed under a deny is a record that contradicts itself (spec 389 W2)." ;
107
+ sh:minCount 1 ; sh:maxCount 1 ; sh:datatype xsd:string ;
108
+ sh:in ( "allow" "approval-required" "deny" ) ;
109
+ sh:message "R3: a COMPLETED capability step records no verdict, or one that is not a verifier decision (allow | approval-required | deny) — the verdict is part of what the step was (spec 389 W2)." ;
104
110
  ] .
105
111
 
106
112
  # ─── R4 · a completed step left its receipt ──────────────────────────────────
@@ -0,0 +1,60 @@
1
+ # C-box — THE VALUE RAIL AS STRUCTURE (ONT-4, 2026-11-10 review; spec 373 / 420).
2
+ #
3
+ # `appr:ValueHolder ≡ ap:Treasury`, disjoint with persons and organizations: assets live only in treasuries. The
4
+ # T-box now makes the ends of a value move treasuries by RANGE (ap:primaryPayee, ap:primaryPayer,
5
+ # aphh:householdPayee, appay:payer, appay:payee); these shapes make that range checkable, because an RDFS range
6
+ # INFERS a type rather than refusing a value, and a resolver that reads a person at the end of `primaryPayee` would
7
+ # otherwise be told she is a treasury.
8
+ #
9
+ # STRUCTURE, NEVER PERMISSION. This says what KIND of node may stand at the end of the property — the same kind of
10
+ # statement as "a typed name resolves to an Agent". It says nothing about who may pay, from where, or how much:
11
+ # that is the mandate (ADR-0041). And it deliberately does NOT constrain evidence: `apix:receiptPayer` /
12
+ # `apix:receiptPayee` keep range prov:Agent, so a receipt recording that money DID reach a person stays
13
+ # shape-valid — refusing to record it would delete the evidence of the very fault (ADR-0058).
14
+
15
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
16
+ @prefix aphh: <https://agenticprimitives.dev/ns/household#> .
17
+ @prefix appay: <https://agenticprimitives.dev/ns/payment#> .
18
+ @prefix sh: <http://www.w3.org/ns/shacl#> .
19
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
20
+
21
+ ap:PrimaryPayeeShape a sh:NodeShape ;
22
+ rdfs:label "primaryPayee is a treasury" ;
23
+ sh:targetSubjectsOf ap:primaryPayee ;
24
+ sh:property [
25
+ sh:path ap:primaryPayee ;
26
+ sh:class ap:Treasury ;
27
+ sh:message "ap:primaryPayee MUST name a treasury — a person or organization is who money is FOR, a treasury is where it GOES (spec 373)." ;
28
+ ] .
29
+
30
+ ap:PrimaryPayerShape a sh:NodeShape ;
31
+ rdfs:label "primaryPayer is a treasury" ;
32
+ sh:targetSubjectsOf ap:primaryPayer ;
33
+ sh:property [
34
+ sh:path ap:primaryPayer ;
35
+ sh:class ap:Treasury ;
36
+ sh:message "ap:primaryPayer MUST name a treasury — an owner pays from the treasury it charters, never from itself (spec 373)." ;
37
+ ] .
38
+
39
+ aphh:HouseholdPayeeShape a sh:NodeShape ;
40
+ rdfs:label "householdPayee is a treasury" ;
41
+ sh:targetSubjectsOf aphh:householdPayee ;
42
+ sh:property [
43
+ sh:path aphh:householdPayee ;
44
+ sh:class ap:Treasury ;
45
+ sh:message "aphh:householdPayee MUST land on a treasury — the chain ends at the account a member marked, never at the member (the 2026-09-08 carol.me payment)." ;
46
+ ] .
47
+
48
+ appay:PaymentMandatePartiesShape a sh:NodeShape ;
49
+ rdfs:label "a payment mandate names treasuries" ;
50
+ sh:targetClass appay:PaymentMandate ;
51
+ sh:property [
52
+ sh:path appay:payer ;
53
+ sh:class ap:Treasury ;
54
+ sh:message "appay:payer MUST be the treasury the funds leave; its owner signs as appay:granter (spec 373)." ;
55
+ ] ;
56
+ sh:property [
57
+ sh:path appay:payee ;
58
+ sh:class ap:Treasury ;
59
+ sh:message "appay:payee MUST be the treasury the funds reach (spec 373)." ;
60
+ ] .
@@ -11,8 +11,8 @@ export declare const ARTIFACTS: {
11
11
  readonly runMeasuresContext: "run-measures.jsonld";
12
12
  /** Spec 415 S0/SEL-1 — replay sets (DCAT) and judgments (EARL). */
13
13
  readonly evaluationContext: "evaluation.jsonld";
14
- readonly tbox: readonly ["tbox/core.ttl", "tbox/identity.ttl", "tbox/contact.ttl", "tbox/naming.ttl", "tbox/intents.ttl", "tbox/constraints.ttl", "tbox/resolution.ttl", "tbox/agreement.ttl", "tbox/payment.ttl", "tbox/fulfillment.ttl", "tbox/attestation.ttl", "tbox/skills.ttl", "tbox/geo.ttl", "tbox/content.ttl", "tbox/registry.ttl", "tbox/discovery.ttl", "tbox/trust.ttl", "tbox/security-exposure.ttl", "tbox/agent-resolution.ttl", "tbox/verification-receipt.ttl", "tbox/scope.ttl", "tbox/situation.ttl", "tbox/org.ttl", "tbox/familyoffice.ttl", "tbox/entitlement.ttl", "tbox/interaction.ttl", "tbox/messaging.ttl", "tbox/guidance.ttl", "tbox/actor-context.ttl", "tbox/context.ttl", "tbox/profile.ttl", "tbox/execution.ttl", "tbox/plan.ttl", "tbox/prov-imports.ttl", "tbox/skos-imports.ttl", "tbox/dqv-imports.ttl", "tbox/earl-imports.ttl", "tbox/dcat-imports.ttl", "tbox/evaluation.ttl", "tbox/coordination.ttl", "tbox/engagement.ttl", "tbox/card-projection.ttl", "tbox/estate.ttl", "tbox/privacy-credential.ttl"];
15
- readonly cbox: readonly ["cbox/canonical-agent-id-shape.shacl.ttl", "cbox/controlled-vocabularies.ttl", "cbox/registry-vocabulary.ttl", "cbox/skill-vocabulary.ttl", "cbox/geo-vocabulary.ttl", "cbox/scope-vocabulary.ttl", "cbox/content-vocabulary.ttl", "cbox/discovery-graph-shapes.shacl.ttl", "cbox/interaction-vocabulary.ttl", "cbox/familyoffice-vocabulary.ttl", "cbox/familyoffice-shapes.shacl.ttl", "cbox/privacy-credential-shapes.shacl.ttl", "cbox/consultation-shapes.shacl.ttl", "cbox/interaction-shapes.shacl.ttl", "cbox/skill-grounding-vocabulary.ttl", "cbox/guidance-vocabulary.ttl", "cbox/profile-facet-vocabulary.ttl", "cbox/agent-facet-shapes.shacl.ttl", "cbox/capability-catalog-shapes.shacl.ttl", "cbox/org-team-shapes.shacl.ttl", "cbox/naming-registry-shapes.shacl.ttl", "cbox/run-provenance-shapes.shacl.ttl", "cbox/run-measures-shapes.shacl.ttl", "cbox/judgment-shapes.shacl.ttl", "cbox/card-projection-shapes.shacl.ttl"];
14
+ readonly tbox: readonly ["tbox/core.ttl", "tbox/identity.ttl", "tbox/contact.ttl", "tbox/naming.ttl", "tbox/intents.ttl", "tbox/constraints.ttl", "tbox/resolution.ttl", "tbox/agreement.ttl", "tbox/payment.ttl", "tbox/fulfillment.ttl", "tbox/attestation.ttl", "tbox/skills.ttl", "tbox/geo.ttl", "tbox/content.ttl", "tbox/registry.ttl", "tbox/discovery.ttl", "tbox/trust.ttl", "tbox/security-exposure.ttl", "tbox/agent-resolution.ttl", "tbox/verification-receipt.ttl", "tbox/scope.ttl", "tbox/situation.ttl", "tbox/org.ttl", "tbox/familyoffice.ttl", "tbox/entitlement.ttl", "tbox/interaction.ttl", "tbox/messaging.ttl", "tbox/guidance.ttl", "tbox/actor-context.ttl", "tbox/context.ttl", "tbox/profile.ttl", "tbox/execution.ttl", "tbox/plan.ttl", "tbox/prov-imports.ttl", "tbox/skos-imports.ttl", "tbox/dqv-imports.ttl", "tbox/earl-imports.ttl", "tbox/dcat-imports.ttl", "tbox/evaluation.ttl", "tbox/coordination.ttl", "tbox/engagement.ttl", "tbox/card-projection.ttl", "tbox/estate.ttl", "tbox/privacy-credential.ttl", "tbox/governance.ttl", "tbox/household.ttl", "tbox/inference.ttl", "tbox/payload.ttl", "tbox/principles.ttl", "tbox/transition.ttl", "tbox/values.ttl"];
15
+ readonly cbox: readonly ["cbox/canonical-agent-id-shape.shacl.ttl", "cbox/controlled-vocabularies.ttl", "cbox/registry-vocabulary.ttl", "cbox/skill-vocabulary.ttl", "cbox/geo-vocabulary.ttl", "cbox/scope-vocabulary.ttl", "cbox/content-vocabulary.ttl", "cbox/discovery-graph-shapes.shacl.ttl", "cbox/interaction-vocabulary.ttl", "cbox/familyoffice-vocabulary.ttl", "cbox/familyoffice-shapes.shacl.ttl", "cbox/privacy-credential-shapes.shacl.ttl", "cbox/consultation-shapes.shacl.ttl", "cbox/interaction-shapes.shacl.ttl", "cbox/skill-grounding-vocabulary.ttl", "cbox/guidance-vocabulary.ttl", "cbox/profile-facet-vocabulary.ttl", "cbox/agent-facet-shapes.shacl.ttl", "cbox/capability-catalog-shapes.shacl.ttl", "cbox/org-team-shapes.shacl.ttl", "cbox/naming-registry-shapes.shacl.ttl", "cbox/run-provenance-shapes.shacl.ttl", "cbox/run-measures-shapes.shacl.ttl", "cbox/judgment-shapes.shacl.ttl", "cbox/card-projection-shapes.shacl.ttl", "cbox/value-rail-shapes.shacl.ttl"];
16
16
  readonly mappings: readonly ["mappings/spine-standards.ttl", "mappings/agent-discovery-standards.ttl", "mappings/collaboration-profile.ttl", "mappings/collaboration-crosswalk-actors.ttl", "mappings/collaboration-crosswalk-organization.ttl", "mappings/collaboration-crosswalk-messaging.ttl", "mappings/collaboration-crosswalk-intent.ttl", "mappings/collaboration-crosswalk-skills.ttl", "mappings/collaboration-crosswalk-authority.ttl", "mappings/collaboration-crosswalk-protocols.ttl", "mappings/collaboration-crosswalk-guidance.ttl", "mappings/actor-context-standards.ttl", "mappings/commerce-engagement-crosswalk.ttl"];
17
17
  };
18
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;IAEpB,6GAA6G;;IAE7G,0GAA0G;;IAE1G,mEAAmE;;;;;CAqJ3D,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;IAEpB,6GAA6G;;IAE7G,0GAA0G;;IAE1G,mEAAmE;;;;;CAwK3D,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD"}
package/dist/artifacts.js CHANGED
@@ -96,6 +96,23 @@ export const ARTIFACTS = {
96
96
  // keeps. Declared because the openings became a vault record and a vault record needs a class.
97
97
  'tbox/estate.ttl',
98
98
  'tbox/privacy-credential.ttl',
99
+ // ONT-5 (2026-11-10 review): these seven were in tbox/ but not declared here, so the SHACL harness
100
+ // closed subclasses without them and a class declared in them was never seen as its superclass.
101
+ // A test (445-ontology-medium.test.ts) now asserts this list equals the directory listing.
102
+ // Governance of the common model (spec 410 §10)
103
+ 'tbox/governance.ttl',
104
+ // The household (spec 363 W4) — private by construction
105
+ 'tbox/household.ttl',
106
+ // The model gateway's records + estate heartbeat (spec 434)
107
+ 'tbox/inference.ttl',
108
+ // What a write carries (spec 410 §7) — `apload:` payload classes (ONT-10)
109
+ 'tbox/payload.ttl',
110
+ // Domain principles as individuals (spec 420)
111
+ 'tbox/principles.ttl',
112
+ // Capabilities as typed transitions between situations (spec 420 §2)
113
+ 'tbox/transition.ttl',
114
+ // What an argument is when it is not a party (spec 363 W2)
115
+ 'tbox/values.ttl',
99
116
  ],
100
117
  cbox: [
101
118
  'cbox/canonical-agent-id-shape.shacl.ttl',
@@ -146,6 +163,8 @@ export const ARTIFACTS = {
146
163
  // Public card metadata, projection provenance (eight digests), external bindings, the
147
164
  // public/private disclosure boundary (spec 347 §11)
148
165
  'cbox/card-projection-shapes.shacl.ttl',
166
+ // The value rail as structure — the ends of a value move are treasuries (ONT-4; spec 373 / 420)
167
+ 'cbox/value-rail-shapes.shacl.ttl',
149
168
  ],
150
169
  mappings: [
151
170
  'mappings/spine-standards.ttl',
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"household.d.ts","sourceRoot":"","sources":["../src/household.ts"],"names":[],"mappings":"AAcA,yDAAyD;AACzD,eAAO,MAAM,SAAS,mDAAoD,CAAC;AAC3E,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,uGAAuG;AACvG,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK1D,CAAC;AAEF,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAEvD;AAED,iFAAiF;AACjF,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,yGAAyG;AACzG,eAAO,MAAM,eAAe,8CAA+C,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAGxE"}
1
+ {"version":3,"file":"household.d.ts","sourceRoot":"","sources":["../src/household.ts"],"names":[],"mappings":"AAcA,yDAAyD;AACzD,eAAO,MAAM,SAAS,mDAAoD,CAAC;AAC3E,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,uGAAuG;AAEvG,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKtB,CAAC;AAEtC,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAKvD;AAED,iFAAiF;AACjF,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,yGAAyG;AACzG,eAAO,MAAM,eAAe,8CAA+C,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAGxE"}
package/dist/household.js CHANGED
@@ -13,15 +13,19 @@ const AP_HH_NS = 'https://agenticprimitives.dev/ns/household#';
13
13
  /** The canonical kin terms (`aphh:*`), by local name. */
14
14
  export const KIN_TERMS = ['spouse', 'child', 'parent', 'sibling'];
15
15
  /** The words people say → the term the T-box declares (its `skos:prefLabel` or an `skos:altLabel`). */
16
- export const KIN_WORD_FOR = {
16
+ // No prototype — a consumer indexing it with a said word must not reach `Object.prototype` (see `kinTermFor`).
17
+ export const KIN_WORD_FOR = Object.freeze(Object.assign(Object.create(null), {
17
18
  spouse: 'spouse', wife: 'spouse', husband: 'spouse', partner: 'spouse',
18
19
  child: 'child', daughter: 'child', son: 'child', kid: 'child',
19
20
  parent: 'parent', mother: 'parent', father: 'parent', mom: 'parent', mum: 'parent', dad: 'parent',
20
21
  sibling: 'sibling', sister: 'sibling', brother: 'sibling',
21
- };
22
+ }));
22
23
  /** The T-box term a said word names, or null — null means "keep their word", never "guess the nearest". */
23
24
  export function kinTermFor(said) {
24
- return KIN_WORD_FOR[said.trim().toLowerCase().replace(/^(my|our)\s+/, '')] ?? null;
25
+ // OWN keys only: the table is a plain object and the word is what somebody SAID — "constructor" indexed it
26
+ // straight into Object.prototype and came back as a function, not null (found 2026-11-10, spec 445).
27
+ const word = said.trim().toLowerCase().replace(/^(my|our)\s+/, '');
28
+ return Object.hasOwn(KIN_WORD_FOR, word) ? KIN_WORD_FOR[word] : null;
25
29
  }
26
30
  /** The IRI of a kin term, for a record that wants to say which term it means. */
27
31
  export function kinIri(term) {
@@ -1 +1 @@
1
- {"version":3,"file":"household.js","sourceRoot":"","sources":["../src/household.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,mGAAmG;AACnG,mGAAmG;AACnG,mGAAmG;AACnG,kGAAkG;AAClG,yEAAyE;AACzE,EAAE;AACF,wGAAwG;AACxG,uGAAuG;AACvG,iGAAiG;AAEjG,MAAM,QAAQ,GAAG,6CAA6C,CAAC;AAE/D,yDAAyD;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAG3E,uGAAuG;AACvG,MAAM,CAAC,MAAM,YAAY,GAAsC;IAC7D,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IACtE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO;IAC7D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ;IACjG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS;CAC1D,CAAC;AAEF,2GAA2G;AAC3G,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AACrF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,MAAM,CAAC,IAAa;IAClC,OAAO,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC;AAG5E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,OAAQ,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"household.js","sourceRoot":"","sources":["../src/household.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,mGAAmG;AACnG,mGAAmG;AACnG,mGAAmG;AACnG,kGAAkG;AAClG,yEAAyE;AACzE,EAAE;AACF,wGAAwG;AACxG,uGAAuG;AACvG,iGAAiG;AAEjG,MAAM,QAAQ,GAAG,6CAA6C,CAAC;AAE/D,yDAAyD;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAG3E,uGAAuG;AACvG,+GAA+G;AAC/G,MAAM,CAAC,MAAM,YAAY,GAAsC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAA4B,EAAE;IACzI,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IACtE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO;IAC7D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ;IACjG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS;CACxB,CAAC,CAAC,CAAC;AAEtC,2GAA2G;AAC3G,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,2GAA2G;IAC3G,qGAAqG;IACrG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,MAAM,CAAC,IAAa;IAClC,OAAO,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC;AAG5E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,OAAQ,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9F,CAAC"}
package/dist/index.d.ts CHANGED
@@ -384,6 +384,8 @@ export declare const CLASS: {
384
384
  readonly FailedActivity: "https://w3id.org/ep-plan#FailedActivity";
385
385
  /** One thing an estate vouches for, WITH its opening — the estate's own record behind a public root. */
386
386
  readonly ProjectionSubmission: "https://agenticprimitives.dev/ns/estate#ProjectionSubmission";
387
+ /** ONT-2 — the estate's held copy WITH the blind (⊑ ProjectionSubmission, ap:HeldSecret). Never told; the commitment is public. */
388
+ readonly HeldProjectionSubmission: "https://agenticprimitives.dev/ns/estate#HeldProjectionSubmission";
387
389
  /** A key an issuing agent (org or service, never a person) signs credentials with; anchored as an attestation. */
388
390
  readonly IssuerKeyFacet: "https://agenticprimitives.dev/ns/privacy-credential#IssuerKeyFacet";
389
391
  /** The issuer's live-credential root on neutral ground — its own, tagged row; revocation is retire + re-anchor. */
@@ -394,6 +396,12 @@ export declare const CLASS: {
394
396
  readonly DeviceKey: "https://agenticprimitives.dev/ns/privacy-credential#DeviceKey";
395
397
  /** The account a verifier sees: one per verifier origin, unlinkable across them; never the person. */
396
398
  readonly PairwiseAccount: "https://agenticprimitives.dev/ns/privacy-credential#PairwiseAccount";
399
+ /** ONT-2 — the secret pairwise accounts derive from (⊑ ap:HeldSecret; disjoint from PairwiseAccount). */
400
+ readonly HolderSecret: "https://agenticprimitives.dev/ns/privacy-credential#HolderSecret";
401
+ /** ONT-2 — a device key's private half held as a vault record (⊑ DeviceKey, ap:HeldSecret). */
402
+ readonly DeviceKeyMaterial: "https://agenticprimitives.dev/ns/privacy-credential#DeviceKeyMaterial";
403
+ /** ONT-2 — the holder's own copy of an anonymous credential, claims included (⊑ AnonymousCredential, ap:HeldSecret). */
404
+ readonly HeldAnonymousCredential: "https://agenticprimitives.dev/ns/privacy-credential#HeldAnonymousCredential";
397
405
  /** What a verifier asks — built from ITS policy and ITS challenge, never from a presentation. */
398
406
  readonly ProofRequest: "https://agenticprimitives.dev/ns/privacy-credential#ProofRequest";
399
407
  /** The statement proved: predicates compiled to canonical form and digested; what a mandate names. */
@@ -418,6 +426,10 @@ export declare const CLASS: {
418
426
  readonly ClientKeyBinding: "https://agenticprimitives.dev/ns/core#ClientKeyBinding";
419
427
  /** What one company calls the person: HKDF over a vault secret, salted by the issuer; no property leads to the person. */
420
428
  readonly PairwiseSubject: "https://agenticprimitives.dev/ns/core#PairwiseSubject";
429
+ /** ONT-2 — the secret pairwise subjects derive from (⊑ ap:HeldSecret; disjoint from PairwiseSubject). */
430
+ readonly PairwiseSecret: "https://agenticprimitives.dev/ns/core#PairwiseSecret";
431
+ /** Material held and never told (REM-2; `role: 'secret'` vault records). Every secret class is under it. */
432
+ readonly HeldSecret: "https://agenticprimitives.dev/ns/core#HeldSecret";
421
433
  /** A company-proposed, revision-pinned set of terms — an INTENT until a mandate binds its digest. Never an approval. */
422
434
  readonly ExternalOperation: "https://agenticprimitives.dev/ns/core#ExternalOperation";
423
435
  /** The person's account at one company and the credentials it left behind; a vault record, listed and revocable. */
@@ -1114,6 +1126,7 @@ export type { GroundedTerm, StandardGrounding } from './grounded-vocabulary.js';
1114
1126
  export { GROUNDED_VOCABULARY, groundedTerm } from './grounded-vocabulary.js';
1115
1127
  export * from './party-roles.js';
1116
1128
  export * from './vault-records.js';
1129
+ export { OVERSIGHT_DELEGATION, oversightCaveatRule, type OversightCaveatKind, type OversightCaveatRule } from './stewardship.js';
1117
1130
  export * from './plan-shapes.js';
1118
1131
  export * from './relations.js';
1119
1132
  export * from './arg-types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -521,6 +521,8 @@ export const CLASS = {
521
521
  // ── Estate projection (tbox/estate.ttl; spec 410 §4) ──
522
522
  /** One thing an estate vouches for, WITH its opening — the estate's own record behind a public root. */
523
523
  ProjectionSubmission: `${NS.apest}ProjectionSubmission`,
524
+ /** ONT-2 — the estate's held copy WITH the blind (⊑ ProjectionSubmission, ap:HeldSecret). Never told; the commitment is public. */
525
+ HeldProjectionSubmission: `${NS.apest}HeldProjectionSubmission`,
524
526
  // ── Anonymous credentials (tbox/privacy-credential.ttl; specs 304 / 305 / 442 §7.2 / 443 W5) ──
525
527
  /** A key an issuing agent (org or service, never a person) signs credentials with; anchored as an attestation. */
526
528
  IssuerKeyFacet: `${NS.appc}IssuerKeyFacet`,
@@ -532,6 +534,12 @@ export const CLASS = {
532
534
  DeviceKey: `${NS.appc}DeviceKey`,
533
535
  /** The account a verifier sees: one per verifier origin, unlinkable across them; never the person. */
534
536
  PairwiseAccount: `${NS.appc}PairwiseAccount`,
537
+ /** ONT-2 — the secret pairwise accounts derive from (⊑ ap:HeldSecret; disjoint from PairwiseAccount). */
538
+ HolderSecret: `${NS.appc}HolderSecret`,
539
+ /** ONT-2 — a device key's private half held as a vault record (⊑ DeviceKey, ap:HeldSecret). */
540
+ DeviceKeyMaterial: `${NS.appc}DeviceKeyMaterial`,
541
+ /** ONT-2 — the holder's own copy of an anonymous credential, claims included (⊑ AnonymousCredential, ap:HeldSecret). */
542
+ HeldAnonymousCredential: `${NS.appc}HeldAnonymousCredential`,
535
543
  /** What a verifier asks — built from ITS policy and ITS challenge, never from a presentation. */
536
544
  ProofRequest: `${NS.appc}ProofRequest`,
537
545
  /** The statement proved: predicates compiled to canonical form and digested; what a mandate names. */
@@ -558,6 +566,10 @@ export const CLASS = {
558
566
  ClientKeyBinding: `${NS.ap}ClientKeyBinding`,
559
567
  /** What one company calls the person: HKDF over a vault secret, salted by the issuer; no property leads to the person. */
560
568
  PairwiseSubject: `${NS.ap}PairwiseSubject`,
569
+ /** ONT-2 — the secret pairwise subjects derive from (⊑ ap:HeldSecret; disjoint from PairwiseSubject). */
570
+ PairwiseSecret: `${NS.ap}PairwiseSecret`,
571
+ /** Material held and never told (REM-2; `role: 'secret'` vault records). Every secret class is under it. */
572
+ HeldSecret: `${NS.ap}HeldSecret`,
561
573
  /** A company-proposed, revision-pinned set of terms — an INTENT until a mandate binds its digest. Never an approval. */
562
574
  ExternalOperation: `${NS.ap}ExternalOperation`,
563
575
  /** The person's account at one company and the credentials it left behind; a vault record, listed and revocable. */
@@ -1351,6 +1363,7 @@ export { GROUNDED_VOCABULARY, groundedTerm } from './grounded-vocabulary.js';
1351
1363
  export * from './party-roles.js';
1352
1364
  // Spec 356 W1 — what a vault record key MEANS, bound by IRI to classes the T-box declares.
1353
1365
  export * from './vault-records.js';
1366
+ export { OVERSIGHT_DELEGATION, oversightCaveatRule } from './stewardship.js';
1354
1367
  // Spec 358 W4 — which relations a plan may enumerate and fan out over. Bound by IRI, fail-closed.
1355
1368
  export * from './plan-shapes.js';
1356
1369
  // Spec 363 W3 — the R-box compiled: which relations are inverses, which are chains, and how to walk one.