@agenticprimitives/ontology 1.0.0-alpha.24 → 1.0.0-alpha.26
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- 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 +8 -0
- package/dist/party-roles.d.ts.map +1 -1
- package/dist/party-roles.js +21 -1
- package/dist/party-roles.js.map +1 -1
- package/dist/vault-records.d.ts.map +1 -1
- package/dist/vault-records.js +130 -0
- package/dist/vault-records.js.map +1 -1
- package/package.json +20 -7
- package/tbox/context.ttl +249 -0
- package/tbox/core.ttl +70 -0
- package/tbox/execution.ttl +71 -0
- package/tbox/org.ttl +46 -0
package/tbox/core.ttl
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# The on-chain OntologyTermRegistry / ShapeRegistry (ADR-0009) instantiate
|
|
4
4
|
# this vocabulary; off-chain TTL is the source of truth for the IRIs.
|
|
5
5
|
|
|
6
|
+
@prefix apsit: <https://agenticprimitives.dev/ns/situation#> .
|
|
6
7
|
@prefix ap: <https://agenticprimitives.dev/ns/core#> .
|
|
7
8
|
@prefix apid: <https://agenticprimitives.dev/ns/identity#> .
|
|
8
9
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
@@ -236,6 +237,30 @@ ap:charteredUnder a owl:ObjectProperty ;
|
|
|
236
237
|
# `check:ontology-bindings` exists to stop. Naming it fixes that, and the comment is the point of the
|
|
237
238
|
# class: the word "Member" in it means a member of a CUSTODY SET, and nothing else.
|
|
238
239
|
|
|
240
|
+
# ─── Stewardship — the relation the WORD "steward" names (agent-vocabulary.md R.2, §5) ─────────────
|
|
241
|
+
# A person stewards an organization or a service: she oversees it and may act for it, on the strength of the OVERSIGHT
|
|
242
|
+
# DELEGATION the agent signed to her at birth (spec 246) — the same artifact the Home's related-orgs link records as
|
|
243
|
+
# `relationship: steward`. It is NOT custody (custody is a KEY's relation to an address — ap:CustodyMember — and on a
|
|
244
|
+
# KMS-custodied home the key is one the person has never seen), and it is NOT membership (a steward need not be a
|
|
245
|
+
# member; a member does not steward). Until this class existed the relation lived only in app code, and the Home's
|
|
246
|
+
# switcher called it "acting as custodian" — the wrong word, for the lack of a right one to bind to.
|
|
247
|
+
ap:Stewardship a owl:Class ;
|
|
248
|
+
rdfs:subClassOf apsit:Situation ;
|
|
249
|
+
rdfs:label "Stewardship" ;
|
|
250
|
+
rdfs:comment "A person's oversight of an organization or a service she can act for, evidenced by the agent's oversight delegation to her (its digest is the record). Standing, never authority: what she MAY do as it is what its grants say." .
|
|
251
|
+
ap:steward a owl:ObjectProperty ;
|
|
252
|
+
rdfs:domain ap:Stewardship ; rdfs:range ap:PersonAgent ;
|
|
253
|
+
rdfs:label "steward" ;
|
|
254
|
+
rdfs:comment "The person who stewards." .
|
|
255
|
+
ap:stewarded a owl:ObjectProperty ;
|
|
256
|
+
rdfs:domain ap:Stewardship ; rdfs:range ap:Agent ;
|
|
257
|
+
rdfs:label "stewarded" ;
|
|
258
|
+
rdfs:comment "The organization-class or service-class agent stewarded (never a person — a person is not stewarded, she is)." .
|
|
259
|
+
ap:stewardshipDelegation a owl:DatatypeProperty ;
|
|
260
|
+
rdfs:domain ap:Stewardship ; rdfs:range xsd:string ;
|
|
261
|
+
rdfs:label "stewardshipDelegation" ;
|
|
262
|
+
rdfs:comment "The digest of the oversight delegation that evidences the stewardship (spec 246) — the record, not the authority." .
|
|
263
|
+
|
|
239
264
|
ap:CustodyMember a owl:Class ;
|
|
240
265
|
rdfs:label "CustodyMember" ;
|
|
241
266
|
rdfs:comment """One opaque, public, chain-reproducible token standing for the fact that a credential
|
|
@@ -296,6 +321,51 @@ ap:primaryPayer a owl:ObjectProperty ;
|
|
|
296
321
|
its owner publishes. Both are roles on the same public ap:charteredUnder edge, so an agent kept
|
|
297
322
|
unlisted carries neither — for those the owner names the account in the request.""" .
|
|
298
323
|
|
|
324
|
+
# ─── Which of my people am I? (the custodian's own choice over the agents they custody) ───────────
|
|
325
|
+
# A CUSTODIAN IS NOT LIMITED TO ONE PERSON. Somebody walks a long trail and is known on it as Summit;
|
|
326
|
+
# somebody writes under another name; somebody plays a part in a game for six evenings and wants what that
|
|
327
|
+
# character learned kept in its own vault rather than muddled into theirs. Each is a person-shaped agent of
|
|
328
|
+
# its own — its own name, its own card, its own memory of the people it has met under that name — and all of
|
|
329
|
+
# them are custodied by the same human, who can move between them.
|
|
330
|
+
#
|
|
331
|
+
# Until this existed nothing could answer "which of these is you". The Home resolved whichever agent was
|
|
332
|
+
# linked to the credential FIRST, which is an accident of enrolment order rather than an answer, and every
|
|
333
|
+
# surface that had to choose either guessed or asked. Guessing about identity is the one place a system must
|
|
334
|
+
# not.
|
|
335
|
+
#
|
|
336
|
+
# WHY IT HANGS OFF ap:CustodyMember. The choice is not a fact about an agent in the abstract — an agent is
|
|
337
|
+
# nobody's default, it is THIS credential's default. The pair (credential, agent) already has a public,
|
|
338
|
+
# chain-reproducible name in this ontology, and that pair is exactly what is being chosen between. The choice
|
|
339
|
+
# is modelled as a SITUATION of its own rather than a property ON that token, because CustodyMember answers
|
|
340
|
+
# exactly one question by design and must go on answering only that one.
|
|
341
|
+
ap:DefaultPersonChoice a owl:Class ;
|
|
342
|
+
rdfs:subClassOf apsit:Situation ;
|
|
343
|
+
rdfs:label "DefaultPersonChoice" ;
|
|
344
|
+
rdfs:comment """Of the person agents one credential custodies, the one that credential's Home opens as.
|
|
345
|
+
|
|
346
|
+
A PREFERENCE, never authority. Moving to another of your people is a change of CONTEXT, not of power:
|
|
347
|
+
every act still runs under a mandate signed for that request, by that agent, and no verifier reads
|
|
348
|
+
this. What it removes is a question only the custodian can answer, asked on every connection.
|
|
349
|
+
|
|
350
|
+
AT MOST ONE PER CREDENTIAL, and a reader that finds none falls back to however the credential resolved
|
|
351
|
+
before rather than inventing an answer — the absence of a choice is not a choice.
|
|
352
|
+
|
|
353
|
+
IT SAYS NOTHING ABOUT THE AGENTS THEMSELVES. A person agent that is somebody's default is not thereby
|
|
354
|
+
more real, more authoritative or more them than the others; the others are equally theirs, equally
|
|
355
|
+
person-shaped, and equally able to hold an organization, a service or a vault of their own.""" .
|
|
356
|
+
ap:choiceOfCustody a owl:ObjectProperty ;
|
|
357
|
+
rdfs:domain ap:DefaultPersonChoice ; rdfs:range ap:CustodyMember ;
|
|
358
|
+
rdfs:label "choiceOfCustody" ;
|
|
359
|
+
rdfs:comment "The (credential, agent) pair chosen — the custody token, which is the only public, chain-reproducible name the relation has." .
|
|
360
|
+
ap:choiceOfPerson a owl:ObjectProperty ;
|
|
361
|
+
rdfs:domain ap:DefaultPersonChoice ; rdfs:range ap:PersonAgent ;
|
|
362
|
+
rdfs:label "choiceOfPerson" ;
|
|
363
|
+
rdfs:comment "The person agent chosen, named directly so a reader does not have to reverse a hash to know who was meant." .
|
|
364
|
+
ap:chosenAt a owl:DatatypeProperty ;
|
|
365
|
+
rdfs:domain ap:DefaultPersonChoice ; rdfs:range xsd:dateTime ;
|
|
366
|
+
rdfs:label "chosenAt" ;
|
|
367
|
+
rdfs:comment "When the custodian last chose. A later choice supersedes an earlier one; nothing is deleted, because which person somebody presented as at a given time is a fact about the past." .
|
|
368
|
+
|
|
299
369
|
ap:charters a owl:ObjectProperty ;
|
|
300
370
|
rdfs:label "charters" ;
|
|
301
371
|
rdfs:domain ap:Agent ;
|
package/tbox/execution.ttl
CHANGED
|
@@ -297,3 +297,74 @@ apexec:artifactDigest a owl:DatatypeProperty ;
|
|
|
297
297
|
rdfs:domain apexec:RunArtifact ; rdfs:range xsd:string ;
|
|
298
298
|
rdfs:label "artifactDigest" ;
|
|
299
299
|
rdfs:comment "sha256 of the canonical JSON of the body. The same bytes the step receipt's outputDigest commits to, so the graph, the receipt and the vault record agree on what was produced." .
|
|
300
|
+
|
|
301
|
+
# ═══ Build artifacts — spec 398 §9 (ap-build B3) ═══
|
|
302
|
+
|
|
303
|
+
apexec:BuildArtifact a owl:Class ;
|
|
304
|
+
rdfs:subClassOf prov:Entity ;
|
|
305
|
+
rdfs:label "BuildArtifact" ;
|
|
306
|
+
rdfs:comment "What ONE build run left, kept as its own record in the WORKSPACE's vault (`build.run:<runId>`; spec 398 §9.2 / §7.2): the repository and base it was built from, the task in the asker's words, the files the model wrote (whole content), and the test evidence AS RECORDED — the command, its exit code and the tail of its output (T28: never an assertion that tests passed). The build service produced it in a sandbox and returned it; the runtime's step prov:generated the record under the workspace's mandate. NOT a deployment (T29 — promotion is its own act) and NOT a pull request: a branch pushed from it is a submission (spec 367 §6) made by `github.pr.open`, whose receipt names this record. Distinct from apexec:RunArtifact (a step's raw body offloaded for size) and from apful:Artifact (a deliverable a fulfillment promised)." .
|
|
307
|
+
|
|
308
|
+
apexec:buildRepository a owl:DatatypeProperty ;
|
|
309
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:string ;
|
|
310
|
+
rdfs:label "buildRepository" ;
|
|
311
|
+
rdfs:comment "The repository the run built in, `owner/name`, with `buildBase` the branch it started from." .
|
|
312
|
+
|
|
313
|
+
apexec:buildBase a owl:DatatypeProperty ;
|
|
314
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:string ;
|
|
315
|
+
rdfs:label "buildBase" .
|
|
316
|
+
|
|
317
|
+
apexec:buildTask a owl:DatatypeProperty ;
|
|
318
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:string ;
|
|
319
|
+
rdfs:label "buildTask" ;
|
|
320
|
+
rdfs:comment "The task as the asker said it — what the model was given, never what it claims to have done (that is `buildSummary`, the model's own sentence, rendered as the model's)." .
|
|
321
|
+
|
|
322
|
+
apexec:buildSummary a owl:DatatypeProperty ;
|
|
323
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:string ;
|
|
324
|
+
rdfs:label "buildSummary" .
|
|
325
|
+
|
|
326
|
+
apexec:testCommand a owl:DatatypeProperty ;
|
|
327
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:string ;
|
|
328
|
+
rdfs:label "testCommand" ;
|
|
329
|
+
rdfs:comment "What was RUN in the sandbox after the files were written — the repository's own test script when it has one, else a syntax check of what changed. With `testExitCode` and `testOutputTail`, the recorded evidence." .
|
|
330
|
+
|
|
331
|
+
apexec:testExitCode a owl:DatatypeProperty ;
|
|
332
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:integer ;
|
|
333
|
+
rdfs:label "testExitCode" .
|
|
334
|
+
|
|
335
|
+
apexec:testOutputTail a owl:DatatypeProperty ;
|
|
336
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:string ;
|
|
337
|
+
rdfs:label "testOutputTail" .
|
|
338
|
+
|
|
339
|
+
apexec:buildModel a owl:DatatypeProperty ;
|
|
340
|
+
rdfs:domain apexec:BuildArtifact ; rdfs:range xsd:string ;
|
|
341
|
+
rdfs:label "buildModel" ;
|
|
342
|
+
rdfs:comment "The model that wrote the files (`provider/model`) — recorded because a reader judging the change wants to know who wrote it; it is not an author with authority." .
|
|
343
|
+
|
|
344
|
+
apexec:BuildPromotion a owl:Class ;
|
|
345
|
+
rdfs:subClassOf prov:Entity ;
|
|
346
|
+
rdfs:label "BuildPromotion" ;
|
|
347
|
+
rdfs:comment "What ONE promotion did (spec 398 §9.4, T29; `build.promotion:<runId>` in the WORKSPACE's vault): the exact tuple the steward's signature was over — the commit, the configuration digest (the artifact's files), the environment reached (a branch today), the permitted migration (none) — and what the forge did (the pull request merged, the merge commit). A promotion is the act that reaches an environment; a build never is. Any change to the tuple voids the signature: a promotion of another commit is another act." .
|
|
348
|
+
|
|
349
|
+
apexec:promotedCommit a owl:DatatypeProperty ;
|
|
350
|
+
rdfs:domain apexec:BuildPromotion ; rdfs:range xsd:string ;
|
|
351
|
+
rdfs:label "promotedCommit" .
|
|
352
|
+
|
|
353
|
+
apexec:promotedConfigDigest a owl:DatatypeProperty ;
|
|
354
|
+
rdfs:domain apexec:BuildPromotion ; rdfs:range xsd:string ;
|
|
355
|
+
rdfs:label "promotedConfigDigest" ;
|
|
356
|
+
rdfs:comment "The digest of the build artifact's files (`apexec:artifactDigest` of the build run) — the configuration the signature bound." .
|
|
357
|
+
|
|
358
|
+
apexec:promotedEnvironment a owl:DatatypeProperty ;
|
|
359
|
+
rdfs:domain apexec:BuildPromotion ; rdfs:range xsd:string ;
|
|
360
|
+
rdfs:label "promotedEnvironment" ;
|
|
361
|
+
rdfs:comment "The environment reached — `branch:<name>` until a deployment target is attached to the workspace." .
|
|
362
|
+
|
|
363
|
+
apexec:permittedMigration a owl:DatatypeProperty ;
|
|
364
|
+
rdfs:domain apexec:BuildPromotion ; rdfs:range xsd:string ;
|
|
365
|
+
rdfs:label "permittedMigration" .
|
|
366
|
+
|
|
367
|
+
apexec:promotedUnder a owl:DatatypeProperty ;
|
|
368
|
+
rdfs:domain apexec:BuildPromotion ; rdfs:range xsd:string ;
|
|
369
|
+
rdfs:label "promotedUnder" ;
|
|
370
|
+
rdfs:comment "The intent digest the promotion's mandate was bound to — the ask that named the run and the commit." .
|
package/tbox/org.ttl
CHANGED
|
@@ -47,6 +47,52 @@ aporg:memberOf a owl:ObjectProperty ;
|
|
|
47
47
|
rdfs:label "memberOf" ;
|
|
48
48
|
rdfs:comment "DERIVED: true iff active, valid, disclosable OrganizationMembership exists. Never asserted globally." .
|
|
49
49
|
|
|
50
|
+
# ─── Contacts — membership on the PERSON agent (spec 401) ─────────────────────────────────────────────
|
|
51
|
+
# A contact is an agent a person has let in — a friend, a coach service, an outside runtime, an assistant —
|
|
52
|
+
# admitted by the person with a scoped access grant and recorded in the person's own vault, as an
|
|
53
|
+
# organization records a member. What it IS: the same shape as OrganizationMembership with a PERSON where the
|
|
54
|
+
# organization stands (aporg:contactOf · aporg:contactAgent). What it is NOT: public (ADR-0025 — a contact
|
|
55
|
+
# list is a private link), a class of agent (a contact is a role a relation carries), or authority (the grant
|
|
56
|
+
# is; the role — friend, family, coach, assistant, runtime — authorizes nothing, like a household's kinship).
|
|
57
|
+
|
|
58
|
+
aporg:Contact a owl:Class ;
|
|
59
|
+
rdfs:subClassOf apsit:Situation ;
|
|
60
|
+
rdfs:label "Contact" ;
|
|
61
|
+
rdfs:comment "Private-by-default Situation: exactly one contactAgent + one personAgent (the person who let them in), under the person's own access grant. Membership on a person; never public." .
|
|
62
|
+
|
|
63
|
+
aporg:contactAgent a owl:ObjectProperty ;
|
|
64
|
+
rdfs:domain aporg:Contact ; rdfs:range ap:Agent ;
|
|
65
|
+
rdfs:label "contactAgent" ;
|
|
66
|
+
rdfs:comment "The agent let in — a person, a service (a coach, an outside runtime), an assistant. Never an organization: one belongs to an organization or not." .
|
|
67
|
+
|
|
68
|
+
aporg:contactOf a owl:ObjectProperty ;
|
|
69
|
+
rdfs:domain aporg:Contact ; rdfs:range ap:PersonAgent ;
|
|
70
|
+
rdfs:label "contactOf" ;
|
|
71
|
+
rdfs:comment "The person whose contact this is — the principal of the record, the issuer of the grant." .
|
|
72
|
+
|
|
73
|
+
aporg:contactRole a owl:DatatypeProperty ;
|
|
74
|
+
rdfs:domain aporg:Contact ; rdfs:range xsd:string ;
|
|
75
|
+
rdfs:label "contactRole" ;
|
|
76
|
+
rdfs:comment "Declarative: friend · family · coach · assistant · runtime · other. Authorizes nothing (spec 368's kinship facets are the precedent)." .
|
|
77
|
+
|
|
78
|
+
# ─── Contact roles — the five words a person has for what a contact is TO THEM ───────────────────
|
|
79
|
+
# Individuals, so a role is a fact the ontology names rather than a string a picker owns (agent-vocabulary.md §5).
|
|
80
|
+
# A role is DECLARATIVE: it authorizes nothing; the contact's grant does. A coach is a contact with role coach —
|
|
81
|
+
# there is no Coach class, as there is no Runtime class: both are ap:ServiceAgent with a role.
|
|
82
|
+
aporg:ContactRole a owl:Class ;
|
|
83
|
+
rdfs:label "ContactRole" ;
|
|
84
|
+
rdfs:comment "What a contact is to the person who let them in. Closed set of individuals; declarative; never a basis." .
|
|
85
|
+
aporg:contactRoleOf a owl:ObjectProperty ;
|
|
86
|
+
rdfs:domain aporg:Contact ; rdfs:range aporg:ContactRole ;
|
|
87
|
+
rdfs:label "contactRoleOf" ;
|
|
88
|
+
rdfs:comment "The role as an individual — the object form of aporg:contactRole (the string form is kept for the wire)." .
|
|
89
|
+
aporg:role-friend a aporg:ContactRole ; rdfs:label "friend" ; rdfs:comment "A person you know; becomes mutual when they add you back." .
|
|
90
|
+
aporg:role-family a aporg:ContactRole ; rdfs:label "family" ; rdfs:comment "A person of your household or kin (the household's kinship facet is the precedent, spec 368)." .
|
|
91
|
+
aporg:role-coach a aporg:ContactRole ; rdfs:label "coach" ; rdfs:comment "A SERVICE you consult under a study grant (a canasta coach, a holdem coach). One-way." .
|
|
92
|
+
aporg:role-assistant a aporg:ContactRole ; rdfs:label "assistant" ; rdfs:comment "A SERVICE that acts for you or answers you — an assistant app, an assistant service. One-way." .
|
|
93
|
+
aporg:role-runtime a aporg:ContactRole ; rdfs:label "runtime" ; rdfs:comment "A SERVICE that is your own runtime — Claude Code, goose — paired at your Home (spec 400 W1b). One-way." .
|
|
94
|
+
aporg:role-other a aporg:ContactRole ; rdfs:label "other" ; rdfs:comment "A contact with no role named." .
|
|
95
|
+
|
|
50
96
|
# ─── Roles ────────────────────────────────────────────────────────────
|
|
51
97
|
|
|
52
98
|
aporg:OrganizationRoleDefinition a owl:Class ;
|