@agenticprimitives/ontology 1.0.0-alpha.4 → 1.0.0-alpha.40
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/README.md +59 -21
- package/cbox/agent-facet-shapes.shacl.ttl +130 -0
- package/cbox/capability-catalog-shapes.shacl.ttl +284 -0
- package/cbox/card-projection-shapes.shacl.ttl +216 -0
- package/cbox/consultation-shapes.shacl.ttl +85 -0
- package/cbox/content-vocabulary.ttl +52 -0
- package/cbox/controlled-vocabularies.ttl +224 -4
- package/cbox/discovery-graph-shapes.shacl.ttl +284 -0
- package/cbox/familyoffice-shapes.shacl.ttl +92 -0
- package/cbox/familyoffice-vocabulary.ttl +48 -0
- package/cbox/geo-vocabulary.ttl +36 -0
- package/cbox/guidance-vocabulary.ttl +22 -0
- package/cbox/interaction-shapes.shacl.ttl +218 -0
- package/cbox/interaction-vocabulary.ttl +159 -0
- package/cbox/judgment-shapes.shacl.ttl +83 -0
- package/cbox/naming-registry-shapes.shacl.ttl +272 -0
- package/cbox/org-team-shapes.shacl.ttl +184 -0
- package/cbox/privacy-credential-shapes.shacl.ttl +187 -0
- package/cbox/profile-facet-vocabulary.ttl +50 -0
- package/cbox/registry-vocabulary.ttl +86 -0
- package/cbox/run-measures-shapes.shacl.ttl +59 -0
- package/cbox/run-provenance-shapes.shacl.ttl +264 -0
- package/cbox/scope-vocabulary.ttl +112 -0
- package/cbox/skill-grounding-vocabulary.ttl +18 -0
- package/cbox/skill-vocabulary.ttl +50 -0
- package/context.jsonld +37 -1
- package/dist/arg-types.d.ts +60 -0
- package/dist/arg-types.d.ts.map +1 -0
- package/dist/arg-types.js +143 -0
- package/dist/arg-types.js.map +1 -0
- package/dist/artifacts.d.ts +9 -2
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +153 -2
- package/dist/artifacts.js.map +1 -1
- package/dist/contact-fields.d.ts +28 -0
- package/dist/contact-fields.d.ts.map +1 -0
- package/dist/contact-fields.js +38 -0
- package/dist/contact-fields.js.map +1 -0
- package/dist/decisions.d.ts +69 -0
- package/dist/decisions.d.ts.map +1 -0
- package/dist/decisions.js +98 -0
- package/dist/decisions.js.map +1 -0
- package/dist/evaluation-context.d.ts +134 -0
- package/dist/evaluation-context.d.ts.map +1 -0
- package/dist/evaluation-context.js +136 -0
- package/dist/evaluation-context.js.map +1 -0
- package/dist/governance.d.ts +84 -0
- package/dist/governance.d.ts.map +1 -0
- package/dist/governance.js +88 -0
- package/dist/governance.js.map +1 -0
- package/dist/grounded-vocabulary.d.ts +29 -0
- package/dist/grounded-vocabulary.d.ts.map +1 -0
- package/dist/grounded-vocabulary.js +110 -0
- package/dist/grounded-vocabulary.js.map +1 -0
- package/dist/household.d.ts +19 -0
- package/dist/household.d.ts.map +1 -0
- package/dist/household.js +41 -0
- package/dist/household.js.map +1 -0
- package/dist/index.d.ts +1091 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1323 -5
- package/dist/index.js.map +1 -1
- package/dist/outcomes.d.ts +47 -0
- package/dist/outcomes.d.ts.map +1 -0
- package/dist/outcomes.js +40 -0
- package/dist/outcomes.js.map +1 -0
- package/dist/participant-vocabulary.d.ts +57 -0
- package/dist/participant-vocabulary.d.ts.map +1 -0
- package/dist/participant-vocabulary.js +66 -0
- package/dist/participant-vocabulary.js.map +1 -0
- package/dist/party-roles.d.ts +115 -0
- package/dist/party-roles.d.ts.map +1 -0
- package/dist/party-roles.js +343 -0
- package/dist/party-roles.js.map +1 -0
- package/dist/payload-classes.d.ts +22 -0
- package/dist/payload-classes.d.ts.map +1 -0
- package/dist/payload-classes.js +30 -0
- package/dist/payload-classes.js.map +1 -0
- package/dist/plan-shapes.d.ts +18 -0
- package/dist/plan-shapes.d.ts.map +1 -0
- package/dist/plan-shapes.js +38 -0
- package/dist/plan-shapes.js.map +1 -0
- package/dist/principles.generated.d.ts +11 -0
- package/dist/principles.generated.d.ts.map +1 -0
- package/dist/principles.generated.js +293 -0
- package/dist/principles.generated.js.map +1 -0
- package/dist/published-works.d.ts +13 -0
- package/dist/published-works.d.ts.map +1 -0
- package/dist/published-works.js +18 -0
- package/dist/published-works.js.map +1 -0
- package/dist/relations.d.ts +44 -0
- package/dist/relations.d.ts.map +1 -0
- package/dist/relations.js +104 -0
- package/dist/relations.js.map +1 -0
- package/dist/run-measures-context.d.ts +74 -0
- package/dist/run-measures-context.d.ts.map +1 -0
- package/dist/run-measures-context.js +77 -0
- package/dist/run-measures-context.js.map +1 -0
- package/dist/run-provenance-context.d.ts +315 -0
- package/dist/run-provenance-context.d.ts.map +1 -0
- package/dist/run-provenance-context.js +323 -0
- package/dist/run-provenance-context.js.map +1 -0
- package/dist/transitions.d.ts +42 -0
- package/dist/transitions.d.ts.map +1 -0
- package/dist/transitions.js +100 -0
- package/dist/transitions.js.map +1 -0
- package/dist/vault-records.d.ts +74 -0
- package/dist/vault-records.d.ts.map +1 -0
- package/dist/vault-records.js +777 -0
- package/dist/vault-records.js.map +1 -0
- package/dist/versions.generated.d.ts +262 -0
- package/dist/versions.generated.d.ts.map +1 -0
- package/dist/versions.generated.js +318 -0
- package/dist/versions.generated.js.map +1 -0
- package/evaluation.jsonld +133 -0
- package/mappings/actor-context-standards.ttl +89 -0
- package/mappings/agent-discovery-standards.ttl +127 -0
- package/mappings/collaboration-crosswalk-actors.ttl +30 -0
- package/mappings/collaboration-crosswalk-authority.ttl +31 -0
- package/mappings/collaboration-crosswalk-guidance.ttl +29 -0
- package/mappings/collaboration-crosswalk-intent.ttl +29 -0
- package/mappings/collaboration-crosswalk-messaging.ttl +37 -0
- package/mappings/collaboration-crosswalk-organization.ttl +66 -0
- package/mappings/collaboration-crosswalk-protocols.ttl +49 -0
- package/mappings/collaboration-crosswalk-skills.ttl +50 -0
- package/mappings/collaboration-profile.ttl +82 -0
- package/mappings/commerce-engagement-crosswalk.ttl +83 -0
- package/mappings/spine-standards.ttl +83 -0
- package/package.json +31 -9
- package/run-measures.jsonld +34 -0
- package/run-provenance.jsonld +314 -0
- package/tbox/actor-context.ttl +145 -0
- package/tbox/agent-resolution.ttl +308 -0
- package/tbox/agreement.ttl +77 -0
- package/tbox/attestation.ttl +156 -0
- package/tbox/card-projection.ttl +350 -0
- package/tbox/constraints.ttl +150 -0
- package/tbox/contact.ttl +61 -0
- package/tbox/content.ttl +76 -0
- package/tbox/context.ttl +508 -0
- package/tbox/coordination.ttl +263 -0
- package/tbox/core.ttl +325 -7
- package/tbox/dcat-imports.ttl +19 -0
- package/tbox/discovery.ttl +273 -0
- package/tbox/dqv-imports.ttl +29 -0
- package/tbox/earl-imports.ttl +32 -0
- package/tbox/engagement.ttl +349 -0
- package/tbox/entitlement.ttl +41 -0
- package/tbox/estate.ttl +78 -0
- package/tbox/evaluation.ttl +330 -0
- package/tbox/execution.ttl +720 -0
- package/tbox/familyoffice.ttl +87 -0
- package/tbox/fulfillment.ttl +140 -0
- package/tbox/geo.ttl +28 -0
- package/tbox/governance.ttl +67 -0
- package/tbox/guidance.ttl +40 -0
- package/tbox/household.ttl +142 -0
- package/tbox/identity.ttl +133 -6
- package/tbox/inference.ttl +177 -0
- package/tbox/intents.ttl +241 -0
- package/tbox/interaction.ttl +297 -0
- package/tbox/messaging.ttl +244 -0
- package/tbox/naming.ttl +114 -0
- package/tbox/org.ttl +410 -0
- package/tbox/payload.ttl +94 -0
- package/tbox/payment.ttl +124 -0
- package/tbox/plan.ttl +169 -0
- package/tbox/principles.ttl +212 -0
- package/tbox/privacy-credential.ttl +436 -0
- package/tbox/profile.ttl +107 -0
- package/tbox/prov-imports.ttl +73 -0
- package/tbox/registry.ttl +382 -0
- package/tbox/resolution.ttl +108 -0
- package/tbox/scope.ttl +59 -0
- package/tbox/security-exposure.ttl +102 -0
- package/tbox/situation.ttl +56 -0
- package/tbox/skills.ttl +316 -0
- package/tbox/skos-imports.ttl +54 -0
- package/tbox/transition.ttl +63 -0
- package/tbox/trust.ttl +210 -0
- package/tbox/values.ttl +81 -0
- package/tbox/verification-receipt.ttl +134 -0
- package/versions.adoption.json +173 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
export const DOMAIN_PRINCIPLES = [
|
|
2
|
+
{
|
|
3
|
+
"iri": "https://agenticprimitives.dev/ns/principles#assetsOnlyInTreasuries",
|
|
4
|
+
"id": "assetsOnlyInTreasuries",
|
|
5
|
+
"area": "value",
|
|
6
|
+
"statement": "Assets live only in treasuries. A person or organization agent never holds value; a balance found on one is ignored, never reported or spent.",
|
|
7
|
+
"governs": [
|
|
8
|
+
"https://agenticprimitives.dev/ns/core#Treasury",
|
|
9
|
+
"https://agenticprimitives.dev/ns/core#PersonAgent",
|
|
10
|
+
"https://agenticprimitives.dev/ns/core#OrganizationAgent"
|
|
11
|
+
],
|
|
12
|
+
"enforcedBy": [
|
|
13
|
+
"VALUE_HOLDING_CLASSES",
|
|
14
|
+
"balanceReadInvoker"
|
|
15
|
+
],
|
|
16
|
+
"violation": "a balance reported for a person or organization agent"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"iri": "https://agenticprimitives.dev/ns/principles#valueMovesBetweenTreasuries",
|
|
20
|
+
"id": "valueMovesBetweenTreasuries",
|
|
21
|
+
"area": "value",
|
|
22
|
+
"statement": "Money moves only from a treasury to a treasury. A person is who a payment is for; a treasury is where it goes.",
|
|
23
|
+
"governs": [
|
|
24
|
+
"https://agenticprimitives.dev/ns/core#Treasury",
|
|
25
|
+
"https://agenticprimitives.dev/ns/core#PersonAgent",
|
|
26
|
+
"https://agenticprimitives.dev/ns/core#OrganizationAgent"
|
|
27
|
+
],
|
|
28
|
+
"enforcedBy": [
|
|
29
|
+
"refuseUnlessTreasury",
|
|
30
|
+
"movesValue: true"
|
|
31
|
+
],
|
|
32
|
+
"violation": "a payment from or to a person or organization agent"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"iri": "https://agenticprimitives.dev/ns/principles#ownersPayThroughTheirTreasury",
|
|
36
|
+
"id": "ownersPayThroughTheirTreasury",
|
|
37
|
+
"area": "value",
|
|
38
|
+
"statement": "Naming an owner as payer or payee means the treasury it charters; with several, the one it marked, else a question; with none, a question — never the owner itself.",
|
|
39
|
+
"governs": [
|
|
40
|
+
"https://agenticprimitives.dev/ns/core#Treasury"
|
|
41
|
+
],
|
|
42
|
+
"enforcedBy": [
|
|
43
|
+
"charteredAgentsReader",
|
|
44
|
+
"traverse: AGENT_RELATION.charters"
|
|
45
|
+
],
|
|
46
|
+
"violation": "an owner paid or charged directly instead of through its chartered treasury"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"iri": "https://agenticprimitives.dev/ns/principles#amountIsTheirs",
|
|
50
|
+
"id": "amountIsTheirs",
|
|
51
|
+
"area": "value",
|
|
52
|
+
"statement": "An act carries only the numbers the person said; a missing amount is asked for, never supplied.",
|
|
53
|
+
"governs": [
|
|
54
|
+
"https://agenticprimitives.dev/ns/core#Treasury"
|
|
55
|
+
],
|
|
56
|
+
"enforcedBy": [
|
|
57
|
+
"numbersFromTheWords"
|
|
58
|
+
],
|
|
59
|
+
"violation": "a mandate requested for an amount the person never said"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"iri": "https://agenticprimitives.dev/ns/principles#payingAccountIsTheirs",
|
|
63
|
+
"id": "payingAccountIsTheirs",
|
|
64
|
+
"area": "value",
|
|
65
|
+
"statement": "The paying account is the one the person named, else the one their declared default chooses, cited with its reason — never one a planner supplied.",
|
|
66
|
+
"governs": [
|
|
67
|
+
"https://agenticprimitives.dev/ns/core#Treasury"
|
|
68
|
+
],
|
|
69
|
+
"enforcedBy": [
|
|
70
|
+
"actingPartyFromTheWords",
|
|
71
|
+
"partiesDistinct",
|
|
72
|
+
"PAYMENT_SOURCE_ACCOUNT"
|
|
73
|
+
],
|
|
74
|
+
"violation": "a payment parked on an account the person did not name and no declared default chose"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"iri": "https://agenticprimitives.dev/ns/principles#landingIsAPreference",
|
|
78
|
+
"id": "landingIsAPreference",
|
|
79
|
+
"area": "value",
|
|
80
|
+
"statement": "Marking where money sent to someone lands (primary payee) is a preference: it lets nobody spend and is never read as authority.",
|
|
81
|
+
"governs": [
|
|
82
|
+
"https://agenticprimitives.dev/ns/core#Treasury"
|
|
83
|
+
],
|
|
84
|
+
"enforcedBy": [
|
|
85
|
+
"PRIMARY_PAYEE_CAPABILITY"
|
|
86
|
+
],
|
|
87
|
+
"violation": "a primary-payee mark treated as permission to spend"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"iri": "https://agenticprimitives.dev/ns/principles#householdIsAPrivateNote",
|
|
91
|
+
"id": "householdIsAPrivateNote",
|
|
92
|
+
"area": "household",
|
|
93
|
+
"statement": "A household is the person's own private note of who they live with — roles and kin as they recorded them; it is published nowhere and grants nobody anything.",
|
|
94
|
+
"governs": [
|
|
95
|
+
"https://agenticprimitives.dev/ns/household#Household",
|
|
96
|
+
"https://agenticprimitives.dev/ns/household#HouseholdMembership"
|
|
97
|
+
],
|
|
98
|
+
"enforcedBy": [
|
|
99
|
+
"HOUSEHOLD_READ_CAPABILITY",
|
|
100
|
+
"HOUSEHOLD_RECORD_CAPABILITY"
|
|
101
|
+
],
|
|
102
|
+
"violation": "the household shown to anyone but its keeper, or read as authority"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"iri": "https://agenticprimitives.dev/ns/principles#relativesArePaidAtTheirTreasury",
|
|
106
|
+
"id": "relativesArePaidAtTheirTreasury",
|
|
107
|
+
"area": "household",
|
|
108
|
+
"statement": "Paying a relative means the treasury they marked to be paid into; if none is marked, it is a question — never their person agent.",
|
|
109
|
+
"governs": [
|
|
110
|
+
"https://agenticprimitives.dev/ns/household#HouseholdMembership",
|
|
111
|
+
"https://agenticprimitives.dev/ns/core#Treasury"
|
|
112
|
+
],
|
|
113
|
+
"enforcedBy": [
|
|
114
|
+
"has not marked an account to be paid into"
|
|
115
|
+
],
|
|
116
|
+
"violation": "a payment to a relative's person agent"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"iri": "https://agenticprimitives.dev/ns/principles#invitationIsNotMembership",
|
|
120
|
+
"id": "invitationIsNotMembership",
|
|
121
|
+
"area": "membership",
|
|
122
|
+
"statement": "An invitation is not membership. The organization invites; the invitee accepts; membership is the countersigned relationship, and until then the invitee is not a member.",
|
|
123
|
+
"governs": [
|
|
124
|
+
"https://agenticprimitives.dev/ns/org#MembershipInvitation",
|
|
125
|
+
"https://agenticprimitives.dev/ns/org#OrganizationMembership"
|
|
126
|
+
],
|
|
127
|
+
"enforcedBy": [
|
|
128
|
+
"countersignRelationship",
|
|
129
|
+
"submitted and recorded — the outcome is not established until the other party acts"
|
|
130
|
+
],
|
|
131
|
+
"violation": "an invited person counted or told as a member"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"iri": "https://agenticprimitives.dev/ns/principles#organizationInvitesUnderItsAuthority",
|
|
135
|
+
"id": "organizationInvitesUnderItsAuthority",
|
|
136
|
+
"area": "membership",
|
|
137
|
+
"statement": "An invitation into an organization spends the organization's authority, signed by its steward — never the steward's own.",
|
|
138
|
+
"governs": [
|
|
139
|
+
"https://agenticprimitives.dev/ns/core#OrganizationAgent",
|
|
140
|
+
"https://agenticprimitives.dev/ns/org#MembershipInvitation"
|
|
141
|
+
],
|
|
142
|
+
"enforcedBy": [
|
|
143
|
+
"ORG_INVITE_CAPABILITY"
|
|
144
|
+
],
|
|
145
|
+
"violation": "an invitation parked on the steward's own authority"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"iri": "https://agenticprimitives.dev/ns/principles#rosterIsForItsPeople",
|
|
149
|
+
"id": "rosterIsForItsPeople",
|
|
150
|
+
"area": "membership",
|
|
151
|
+
"statement": "Who belongs to an organization is private: shown to the organization itself, its stewards and its members, and to nobody else.",
|
|
152
|
+
"governs": [
|
|
153
|
+
"https://agenticprimitives.dev/ns/org#OrganizationMembership"
|
|
154
|
+
],
|
|
155
|
+
"enforcedBy": [
|
|
156
|
+
"membershipListInvoker",
|
|
157
|
+
"deriveStanding"
|
|
158
|
+
],
|
|
159
|
+
"violation": "a roster shown to someone outside the organization"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"iri": "https://agenticprimitives.dev/ns/principles#kindNamedIsKindChartered",
|
|
163
|
+
"id": "kindNamedIsKindChartered",
|
|
164
|
+
"area": "charter",
|
|
165
|
+
"statement": "The kind of agent the person names is the kind chartered; if nothing here charters that kind, say so — never charter the nearest one.",
|
|
166
|
+
"governs": [
|
|
167
|
+
"https://agenticprimitives.dev/ns/core#OrganizationAgent",
|
|
168
|
+
"https://agenticprimitives.dev/ns/core#TeamAgent",
|
|
169
|
+
"https://agenticprimitives.dev/ns/core#Treasury",
|
|
170
|
+
"https://agenticprimitives.dev/ns/core#HouseholdAgent"
|
|
171
|
+
],
|
|
172
|
+
"enforcedBy": [
|
|
173
|
+
"kindNamedIsChartered"
|
|
174
|
+
],
|
|
175
|
+
"violation": "a team requested and an organization chartered"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"iri": "https://agenticprimitives.dev/ns/principles#holdingsAreTheRecord",
|
|
179
|
+
"id": "holdingsAreTheRecord",
|
|
180
|
+
"area": "charter",
|
|
181
|
+
"statement": "What an agent holds is the public chartered-under record; a partial read is said as partial, never as none.",
|
|
182
|
+
"governs": [
|
|
183
|
+
"https://agenticprimitives.dev/ns/core#Agent"
|
|
184
|
+
],
|
|
185
|
+
"enforcedBy": [
|
|
186
|
+
"holdingsReadInvoker"
|
|
187
|
+
],
|
|
188
|
+
"violation": "a balance given for 'what does it hold', or 'none' over a partial read"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"iri": "https://agenticprimitives.dev/ns/principles#weIsTheRoom",
|
|
192
|
+
"id": "weIsTheRoom",
|
|
193
|
+
"area": "room",
|
|
194
|
+
"statement": "Asked at an organization, 'us', 'we' and 'this organization' mean that organization — for the party whose authority or context the act is in; never for the counterparty, never at one's own agent.",
|
|
195
|
+
"governs": [
|
|
196
|
+
"https://agenticprimitives.dev/ns/core#OrganizationAgent"
|
|
197
|
+
],
|
|
198
|
+
"enforcedBy": [
|
|
199
|
+
"the agent you are asking"
|
|
200
|
+
],
|
|
201
|
+
"violation": "a steward asked which organization 'us' means, at that organization"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"iri": "https://agenticprimitives.dev/ns/principles#readsRunAtTheirSubject",
|
|
205
|
+
"id": "readsRunAtTheirSubject",
|
|
206
|
+
"area": "room",
|
|
207
|
+
"statement": "A question about an agent is answered from that agent's records, under the asker's standing there — never from the asker's own records.",
|
|
208
|
+
"governs": [
|
|
209
|
+
"https://agenticprimitives.dev/ns/core#Agent"
|
|
210
|
+
],
|
|
211
|
+
"enforcedBy": [
|
|
212
|
+
"subjectOfRead"
|
|
213
|
+
],
|
|
214
|
+
"violation": "the asker's own links reported as the organization's"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"iri": "https://agenticprimitives.dev/ns/principles#refusalIsSaid",
|
|
218
|
+
"id": "refusalIsSaid",
|
|
219
|
+
"area": "truth",
|
|
220
|
+
"statement": "An act that did nothing is said to have done nothing, in the tool's own words — never reported as done.",
|
|
221
|
+
"governs": [
|
|
222
|
+
"https://agenticprimitives.dev/ns/core#Agent"
|
|
223
|
+
],
|
|
224
|
+
"enforcedBy": [
|
|
225
|
+
"Nothing was changed: "
|
|
226
|
+
],
|
|
227
|
+
"violation": "'Done' reported for an act that refused"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"iri": "https://agenticprimitives.dev/ns/principles#memoryIsTheirWords",
|
|
231
|
+
"id": "memoryIsTheirWords",
|
|
232
|
+
"area": "truth",
|
|
233
|
+
"statement": "A remembered fact is written only on the person's own turn, in their words, and is memory — never truth about the world.",
|
|
234
|
+
"governs": [
|
|
235
|
+
"https://agenticprimitives.dev/ns/core#PersonAgent"
|
|
236
|
+
],
|
|
237
|
+
"enforcedBy": [
|
|
238
|
+
"requirePersonsTurn"
|
|
239
|
+
],
|
|
240
|
+
"violation": "a fact remembered from words the person did not say"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"iri": "https://agenticprimitives.dev/ns/principles#othersWordsAreNotHerInstruction",
|
|
244
|
+
"id": "othersWordsAreNotHerInstruction",
|
|
245
|
+
"area": "truth",
|
|
246
|
+
"statement": "Another person's words — a message, a post, a page, a published work — are data her agent may quote and act on where she asks; they are never an instruction. An act whose party or content comes only from them is not planned from them, and a write of her own records after reading them is read back to her first.",
|
|
247
|
+
"governs": [
|
|
248
|
+
"https://agenticprimitives.dev/ns/core#PersonAgent"
|
|
249
|
+
],
|
|
250
|
+
"enforcedBy": [
|
|
251
|
+
"renderContinuation",
|
|
252
|
+
"requirePersonsTurn"
|
|
253
|
+
],
|
|
254
|
+
"violation": "an act planned from an instruction inside someone else's message"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"iri": "https://agenticprimitives.dev/ns/principles#namesResolveInContext",
|
|
258
|
+
"id": "namesResolveInContext",
|
|
259
|
+
"area": "context",
|
|
260
|
+
"statement": "A bare name means the person nearest to the asker in the context they are standing in: the room's own people first, then their household, then a context they share (a team or organization both belong to), then the people they deal with most, then their other links — one at the nearest level is the answer, cited by that context; several at the same level is a question; a public directory hit is never evidence the asker means that person.",
|
|
261
|
+
"governs": [
|
|
262
|
+
"https://agenticprimitives.dev/ns/core#PersonAgent",
|
|
263
|
+
"https://agenticprimitives.dev/ns/org#OrganizationMembership",
|
|
264
|
+
"https://agenticprimitives.dev/ns/household#HouseholdMembership"
|
|
265
|
+
],
|
|
266
|
+
"enforcedBy": [
|
|
267
|
+
"rosterProvider",
|
|
268
|
+
"householdMembers",
|
|
269
|
+
"relationshipsProvider",
|
|
270
|
+
"recentParties",
|
|
271
|
+
"preferredChoice"
|
|
272
|
+
],
|
|
273
|
+
"violation": "a name resolved to a stranger from the public directory, or to a distant link while the room's own person answers to it"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"iri": "https://agenticprimitives.dev/ns/principles#disclosureFollowsProximity",
|
|
277
|
+
"id": "disclosureFollowsProximity",
|
|
278
|
+
"area": "context",
|
|
279
|
+
"statement": "What an agent says about a person follows the asker's distance from them: within a shared context, under a delegation, entitlement or grant, the fine-grained record; beyond it only attestations and signals the person chose to publish or countersign (a listing, a card, a public chartered-under edge) — never the record itself.",
|
|
280
|
+
"governs": [
|
|
281
|
+
"https://agenticprimitives.dev/ns/core#PersonAgent",
|
|
282
|
+
"https://agenticprimitives.dev/ns/core#OrganizationAgent",
|
|
283
|
+
"https://agenticprimitives.dev/ns/core#RelationshipCredential"
|
|
284
|
+
],
|
|
285
|
+
"enforcedBy": [
|
|
286
|
+
"deriveStanding",
|
|
287
|
+
"subjectOfRead",
|
|
288
|
+
"tier: 'private'"
|
|
289
|
+
],
|
|
290
|
+
"violation": "a person's private record described to someone outside every context they share with them"
|
|
291
|
+
}
|
|
292
|
+
];
|
|
293
|
+
//# sourceMappingURL=principles.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principles.generated.js","sourceRoot":"","sources":["../src/principles.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const PUBLISHED_WORK_TERMS: {
|
|
2
|
+
readonly PublishedWork: "https://agenticprimitives.dev/ns/content#PublishedWork";
|
|
3
|
+
readonly publisher: "https://agenticprimitives.dev/ns/content#publisher";
|
|
4
|
+
readonly title: "https://agenticprimitives.dev/ns/content#title";
|
|
5
|
+
readonly releaseId: "https://agenticprimitives.dev/ns/content#releaseId";
|
|
6
|
+
readonly contentCommitment: "https://agenticprimitives.dev/ns/content#contentCommitment";
|
|
7
|
+
readonly sourceEndpoint: "https://agenticprimitives.dev/ns/content#sourceEndpoint";
|
|
8
|
+
readonly observedAt: "https://agenticprimitives.dev/ns/content#observedAt";
|
|
9
|
+
readonly vectorId: "https://agenticprimitives.dev/ns/content#vectorId";
|
|
10
|
+
};
|
|
11
|
+
/** The named graph the shelf projection lives in — queryable by `kb.question` beside the A-box, never the custody graph. */
|
|
12
|
+
export declare const SHELF_GRAPH: "urn:ap:shelf";
|
|
13
|
+
//# sourceMappingURL=published-works.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"published-works.d.ts","sourceRoot":"","sources":["../src/published-works.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB;;;;;;;;;CASvB,CAAC;AAEX,4HAA4H;AAC5H,eAAO,MAAM,WAAW,EAAG,cAAuB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// A PUBLISHED WORK in the discovery knowledge base — spec 413, bound by IRI to `tbox/content.ttl` and checked by
|
|
2
|
+
// `check:ontology-bindings`. The indexer writes these into the `urn:ap:shelf` graph ONLY for a Library document its owner
|
|
3
|
+
// made public AND released with her signature, after verifying both (ADR-0040 amendment 2026-09-24). A cache of an
|
|
4
|
+
// owner-published artifact, never the record and never authority.
|
|
5
|
+
const APCNT = 'https://agenticprimitives.dev/ns/content#';
|
|
6
|
+
export const PUBLISHED_WORK_TERMS = {
|
|
7
|
+
PublishedWork: `${APCNT}PublishedWork`,
|
|
8
|
+
publisher: `${APCNT}publisher`,
|
|
9
|
+
title: `${APCNT}title`,
|
|
10
|
+
releaseId: `${APCNT}releaseId`,
|
|
11
|
+
contentCommitment: `${APCNT}contentCommitment`,
|
|
12
|
+
sourceEndpoint: `${APCNT}sourceEndpoint`,
|
|
13
|
+
observedAt: `${APCNT}observedAt`,
|
|
14
|
+
vectorId: `${APCNT}vectorId`,
|
|
15
|
+
};
|
|
16
|
+
/** The named graph the shelf projection lives in — queryable by `kb.question` beside the A-box, never the custody graph. */
|
|
17
|
+
export const SHELF_GRAPH = 'urn:ap:shelf';
|
|
18
|
+
//# sourceMappingURL=published-works.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"published-works.js","sourceRoot":"","sources":["../src/published-works.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,0HAA0H;AAC1H,mHAAmH;AACnH,kEAAkE;AAClE,MAAM,KAAK,GAAG,2CAA2C,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,aAAa,EAAE,GAAG,KAAK,eAAe;IACtC,SAAS,EAAE,GAAG,KAAK,WAAW;IAC9B,KAAK,EAAE,GAAG,KAAK,OAAO;IACtB,SAAS,EAAE,GAAG,KAAK,WAAW;IAC9B,iBAAiB,EAAE,GAAG,KAAK,mBAAmB;IAC9C,cAAc,EAAE,GAAG,KAAK,gBAAgB;IACxC,UAAU,EAAE,GAAG,KAAK,YAAY;IAChC,QAAQ,EAAE,GAAG,KAAK,UAAU;CACpB,CAAC;AAEX,4HAA4H;AAC5H,MAAM,CAAC,MAAM,WAAW,GAAG,cAAuB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type RelationIri = string;
|
|
2
|
+
export interface RelationAxiomV1 {
|
|
3
|
+
/** The relation, by IRI — the T-box must declare it as a property. */
|
|
4
|
+
iri: RelationIri;
|
|
5
|
+
/** Its inverse, when it has one. Declared `owl:inverseOf` in the T-box; both directions appear here
|
|
6
|
+
* because a resolver walks whichever way the question is asked. */
|
|
7
|
+
inverseOf?: RelationIri;
|
|
8
|
+
/**
|
|
9
|
+
* The links this relation IS, in order, when it is a composition (`owl:propertyChainAxiom`).
|
|
10
|
+
*
|
|
11
|
+
* A chain is walked by following each link in turn. It is not a query language and will not become
|
|
12
|
+
* one: two links is what the domain has needed, the walker refuses a longer one than the axiom
|
|
13
|
+
* declares, and a relation that needs branching is a capability, not a cleverer chain.
|
|
14
|
+
*/
|
|
15
|
+
chain?: readonly RelationIri[];
|
|
16
|
+
/** What the relation means in one line — for a person reading a trace, not for a reasoner. */
|
|
17
|
+
says: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Every relation a resolver may traverse.
|
|
21
|
+
*
|
|
22
|
+
* ONLY WHAT IS ACTUALLY WALKED. This is not a mirror of the ontology's properties — most of them are
|
|
23
|
+
* facts nobody follows at request time. A relation earns a row here when some capability's resolution
|
|
24
|
+
* depends on following it, which is also what makes the gate's demand reasonable.
|
|
25
|
+
*/
|
|
26
|
+
export declare const RELATION_AXIOMS: readonly RelationAxiomV1[];
|
|
27
|
+
export declare function relationAxiom(iri: RelationIri): RelationAxiomV1 | undefined;
|
|
28
|
+
/** The inverse of a relation, or undefined — undefined means "one direction only", not "unknown". */
|
|
29
|
+
export declare function inverseOf(iri: RelationIri): RelationIri | undefined;
|
|
30
|
+
/** The links a composed relation is, or null when it is primitive (which is most of them). */
|
|
31
|
+
export declare function chainOf(iri: RelationIri): readonly RelationIri[] | null;
|
|
32
|
+
/**
|
|
33
|
+
* Walk a declared chain from a subject, using a caller-supplied reader for each link.
|
|
34
|
+
*
|
|
35
|
+
* THE CALLER READS, THIS COMPOSES — the same split the decision plane uses. Only the caller knows where
|
|
36
|
+
* a link lives (a chain role, a vault record, a contract edge); only the axiom knows which links a
|
|
37
|
+
* relation is and in what order, and keeping that here is what stops a second capability writing its own
|
|
38
|
+
* two-step by hand.
|
|
39
|
+
*
|
|
40
|
+
* FAIL-CLOSED: a relation with no declared chain returns nothing rather than falling back to "just follow
|
|
41
|
+
* something" — an undeclared traversal is exactly the guess this table exists to remove.
|
|
42
|
+
*/
|
|
43
|
+
export declare function walkChain(iri: RelationIri, subject: string, follow: (link: RelationIri, from: string) => Promise<readonly string[]>): Promise<string[]>;
|
|
44
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,GAAG,EAAE,WAAW,CAAC;IACjB;wEACoE;IACpE,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,8FAA8F;IAC9F,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,eAAe,EAoCrD,CAAC;AAEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,CAE3E;AAED,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAEnE;AAED,8FAA8F;AAC9F,wBAAgB,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,IAAI,CAGvE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,GACtE,OAAO,CAAC,MAAM,EAAE,CAAC,CAUnB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// THE R-BOX, COMPILED — spec 363 W3.
|
|
2
|
+
//
|
|
3
|
+
// The T-box says what things ARE. The R-BOX says how relations COMPOSE: which one is the inverse of
|
|
4
|
+
// which, and which two links make a third. Those are ENTAILMENTS — always true, no exceptions — which is
|
|
5
|
+
// why they belong in OWL beside the terms, and why this file is a projection of them rather than a
|
|
6
|
+
// second opinion.
|
|
7
|
+
//
|
|
8
|
+
// WHY IT NEEDED COMPILING AT ALL. A resolver runs inside a request and cannot query a triple store
|
|
9
|
+
// (spec 355 §1), so the axioms are read here as a table — the same arrangement `party-roles` has, with
|
|
10
|
+
// the same gate keeping it honest. `check:ontology-bindings` refuses a relation whose IRI the T-box does
|
|
11
|
+
// not declare, refuses an inverse that is not declared as one, and refuses a `PARTY_ROLES.traverse`
|
|
12
|
+
// naming a relation this table does not know how to walk.
|
|
13
|
+
//
|
|
14
|
+
// WHAT IT REPLACES: thirty-five T-box files held SEVEN axioms, and every traversal a capability needed
|
|
15
|
+
// was hand-listed on its party role instead — so "follow the ownership link" was written once per
|
|
16
|
+
// capability, and adding a household meant editing tables rather than declaring one chain.
|
|
17
|
+
//
|
|
18
|
+
// IT COMPOSES PREFERENCES AND BELONGING, NEVER PERMISSION. `charteredUnder` is belonging (ADR-0010) and
|
|
19
|
+
// `primaryPayee` is a preference; a chain of the two says where money would LAND, never that anybody may
|
|
20
|
+
// send it. No verifier reads this file.
|
|
21
|
+
const AP = 'https://agenticprimitives.dev/ns/core#';
|
|
22
|
+
const AP_HH = 'https://agenticprimitives.dev/ns/household#';
|
|
23
|
+
const AP_ORG = 'https://agenticprimitives.dev/ns/org#';
|
|
24
|
+
/**
|
|
25
|
+
* Every relation a resolver may traverse.
|
|
26
|
+
*
|
|
27
|
+
* ONLY WHAT IS ACTUALLY WALKED. This is not a mirror of the ontology's properties — most of them are
|
|
28
|
+
* facts nobody follows at request time. A relation earns a row here when some capability's resolution
|
|
29
|
+
* depends on following it, which is also what makes the gate's demand reasonable.
|
|
30
|
+
*/
|
|
31
|
+
export const RELATION_AXIOMS = [
|
|
32
|
+
{
|
|
33
|
+
iri: `${AP}charteredUnder`, inverseOf: `${AP}charters`,
|
|
34
|
+
says: 'the agent this one was created under and belongs to — never authority over it',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
iri: `${AP}charters`, inverseOf: `${AP}charteredUnder`,
|
|
38
|
+
says: 'the agents created under this one — the direction "what does alice hold" traverses',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
iri: `${AP}primaryPayee`,
|
|
42
|
+
says: 'the account its owner wants paid into — a preference, and the reason a payer stops asking',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
iri: `${AP}primaryPayer`,
|
|
46
|
+
says: 'the account its owner usually pays from — the mirror, and deliberately not the same account',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
iri: `${AP_HH}memberOfHousehold`, inverseOf: `${AP_HH}householdMember`,
|
|
50
|
+
says: 'the households this agent belongs to, as a member recorded them — private tier, never published',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
iri: `${AP_HH}householdMember`, inverseOf: `${AP_HH}memberOfHousehold`,
|
|
54
|
+
says: 'the agents in this household — the direction "who do I live with" traverses',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
// THE CHAIN THAT PAYS FOR THE R-BOX. "Send my daughter her allowance" is two links: the household
|
|
58
|
+
// says who she is, her own mark says where her money goes. One axiom answers it; written in code,
|
|
59
|
+
// every capability that needs it grows a table and they drift.
|
|
60
|
+
iri: `${AP_HH}householdPayee`, chain: [`${AP_HH}householdMember`, `${AP}primaryPayee`],
|
|
61
|
+
says: "a household member's own chosen account — where money sent to them would land",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
iri: `${AP_ORG}memberAgent`,
|
|
65
|
+
says: 'the agent a membership is of — a Situation, never a delegation and never a directory row',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
export function relationAxiom(iri) {
|
|
69
|
+
return RELATION_AXIOMS.find((r) => r.iri === iri);
|
|
70
|
+
}
|
|
71
|
+
/** The inverse of a relation, or undefined — undefined means "one direction only", not "unknown". */
|
|
72
|
+
export function inverseOf(iri) {
|
|
73
|
+
return relationAxiom(iri)?.inverseOf;
|
|
74
|
+
}
|
|
75
|
+
/** The links a composed relation is, or null when it is primitive (which is most of them). */
|
|
76
|
+
export function chainOf(iri) {
|
|
77
|
+
const c = relationAxiom(iri)?.chain;
|
|
78
|
+
return c && c.length ? c : null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Walk a declared chain from a subject, using a caller-supplied reader for each link.
|
|
82
|
+
*
|
|
83
|
+
* THE CALLER READS, THIS COMPOSES — the same split the decision plane uses. Only the caller knows where
|
|
84
|
+
* a link lives (a chain role, a vault record, a contract edge); only the axiom knows which links a
|
|
85
|
+
* relation is and in what order, and keeping that here is what stops a second capability writing its own
|
|
86
|
+
* two-step by hand.
|
|
87
|
+
*
|
|
88
|
+
* FAIL-CLOSED: a relation with no declared chain returns nothing rather than falling back to "just follow
|
|
89
|
+
* something" — an undeclared traversal is exactly the guess this table exists to remove.
|
|
90
|
+
*/
|
|
91
|
+
export async function walkChain(iri, subject, follow) {
|
|
92
|
+
const chain = chainOf(iri);
|
|
93
|
+
if (!chain)
|
|
94
|
+
return [];
|
|
95
|
+
let frontier = [subject];
|
|
96
|
+
for (const link of chain) {
|
|
97
|
+
const next = await Promise.all(frontier.map((f) => follow(link, f)));
|
|
98
|
+
frontier = [...new Set(next.flat().filter(Boolean))];
|
|
99
|
+
if (!frontier.length)
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
return frontier;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=relations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,EAAE;AACF,oGAAoG;AACpG,yGAAyG;AACzG,mGAAmG;AACnG,kBAAkB;AAClB,EAAE;AACF,mGAAmG;AACnG,uGAAuG;AACvG,yGAAyG;AACzG,oGAAoG;AACpG,0DAA0D;AAC1D,EAAE;AACF,uGAAuG;AACvG,kGAAkG;AAClG,2FAA2F;AAC3F,EAAE;AACF,wGAAwG;AACxG,yGAAyG;AACzG,wCAAwC;AAExC,MAAM,EAAE,GAAG,wCAAwC,CAAC;AACpD,MAAM,KAAK,GAAG,6CAA6C,CAAC;AAC5D,MAAM,MAAM,GAAG,uCAAuC,CAAC;AAsBvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD;QACE,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU;QACtD,IAAI,EAAE,+EAA+E;KACtF;IACD;QACE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB;QACtD,IAAI,EAAE,oFAAoF;KAC3F;IACD;QACE,GAAG,EAAE,GAAG,EAAE,cAAc;QACxB,IAAI,EAAE,2FAA2F;KAClG;IACD;QACE,GAAG,EAAE,GAAG,EAAE,cAAc;QACxB,IAAI,EAAE,6FAA6F;KACpG;IACD;QACE,GAAG,EAAE,GAAG,KAAK,mBAAmB,EAAE,SAAS,EAAE,GAAG,KAAK,iBAAiB;QACtE,IAAI,EAAE,iGAAiG;KACxG;IACD;QACE,GAAG,EAAE,GAAG,KAAK,iBAAiB,EAAE,SAAS,EAAE,GAAG,KAAK,mBAAmB;QACtE,IAAI,EAAE,6EAA6E;KACpF;IACD;QACE,kGAAkG;QAClG,kGAAkG;QAClG,+DAA+D;QAC/D,GAAG,EAAE,GAAG,KAAK,gBAAgB,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,iBAAiB,EAAE,GAAG,EAAE,cAAc,CAAC;QACtF,IAAI,EAAE,+EAA+E;KACtF;IACD;QACE,GAAG,EAAE,GAAG,MAAM,aAAa;QAC3B,IAAI,EAAE,0FAA0F;KACjG;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,GAAgB;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,SAAS,CAAC,GAAgB;IACxC,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;AACvC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,OAAO,CAAC,GAAgB;IACtC,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAgB,EAChB,OAAe,EACf,MAAuE;IAEvE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export declare const RUN_MEASURES_CONTEXT: {
|
|
2
|
+
readonly "@context": {
|
|
3
|
+
readonly "@version": 1.1;
|
|
4
|
+
readonly "@base": "urn:ap:prov:";
|
|
5
|
+
readonly prov: "http://www.w3.org/ns/prov#";
|
|
6
|
+
readonly dqv: "http://www.w3.org/ns/dqv#";
|
|
7
|
+
readonly apeval: "https://agenticprimitives.dev/ns/evaluation#";
|
|
8
|
+
readonly xsd: "http://www.w3.org/2001/XMLSchema#";
|
|
9
|
+
readonly id: "@id";
|
|
10
|
+
readonly type: "@type";
|
|
11
|
+
readonly graph: "@graph";
|
|
12
|
+
readonly used: {
|
|
13
|
+
readonly "@id": "prov:used";
|
|
14
|
+
readonly "@type": "@id";
|
|
15
|
+
readonly "@container": "@set";
|
|
16
|
+
};
|
|
17
|
+
readonly generated: {
|
|
18
|
+
readonly "@id": "prov:generated";
|
|
19
|
+
readonly "@type": "@id";
|
|
20
|
+
readonly "@container": "@set";
|
|
21
|
+
};
|
|
22
|
+
readonly wasAssociatedWith: {
|
|
23
|
+
readonly "@id": "prov:wasAssociatedWith";
|
|
24
|
+
readonly "@type": "@id";
|
|
25
|
+
};
|
|
26
|
+
readonly wasAttributedTo: {
|
|
27
|
+
readonly "@id": "prov:wasAttributedTo";
|
|
28
|
+
readonly "@type": "@id";
|
|
29
|
+
};
|
|
30
|
+
readonly wasDerivedFrom: {
|
|
31
|
+
readonly "@id": "prov:wasDerivedFrom";
|
|
32
|
+
readonly "@type": "@id";
|
|
33
|
+
};
|
|
34
|
+
readonly wasGeneratedBy: {
|
|
35
|
+
readonly "@id": "prov:wasGeneratedBy";
|
|
36
|
+
readonly "@type": "@id";
|
|
37
|
+
};
|
|
38
|
+
readonly startedAtTime: {
|
|
39
|
+
readonly "@id": "prov:startedAtTime";
|
|
40
|
+
readonly "@type": "xsd:dateTime";
|
|
41
|
+
};
|
|
42
|
+
readonly endedAtTime: {
|
|
43
|
+
readonly "@id": "prov:endedAtTime";
|
|
44
|
+
readonly "@type": "xsd:dateTime";
|
|
45
|
+
};
|
|
46
|
+
readonly computedOn: {
|
|
47
|
+
readonly "@id": "dqv:computedOn";
|
|
48
|
+
readonly "@type": "@id";
|
|
49
|
+
};
|
|
50
|
+
readonly isMeasurementOf: {
|
|
51
|
+
readonly "@id": "dqv:isMeasurementOf";
|
|
52
|
+
readonly "@type": "@id";
|
|
53
|
+
};
|
|
54
|
+
readonly value: {
|
|
55
|
+
readonly "@id": "dqv:value";
|
|
56
|
+
readonly "@type": "xsd:decimal";
|
|
57
|
+
};
|
|
58
|
+
readonly unit: "apeval:unit";
|
|
59
|
+
readonly hasMeasurement: {
|
|
60
|
+
readonly "@id": "apeval:hasMeasurement";
|
|
61
|
+
readonly "@type": "@id";
|
|
62
|
+
readonly "@container": "@set";
|
|
63
|
+
};
|
|
64
|
+
readonly Entity: "prov:Entity";
|
|
65
|
+
readonly Activity: "prov:Activity";
|
|
66
|
+
readonly Bundle: "prov:Bundle";
|
|
67
|
+
readonly QualityMeasurement: "dqv:QualityMeasurement";
|
|
68
|
+
readonly QualityMeasurementDataset: "dqv:QualityMeasurementDataset";
|
|
69
|
+
readonly RunMeasures: "apeval:RunMeasures";
|
|
70
|
+
readonly RunMeasurement: "apeval:RunMeasurement";
|
|
71
|
+
readonly Measuring: "apeval:Measuring";
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=run-measures-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-measures-context.d.ts","sourceRoot":"","sources":["../src/run-measures-context.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEvB,CAAC"}
|