@openvtc/trust-tasks 0.26.20 → 0.26.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +75 -0
- package/dist/_shared/components.d.ts +327 -16
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.d.ts +4 -4
- package/dist/device/list/0.2/payload.d.ts.map +1 -1
- package/dist/device/list/0.2/payload.js +4 -2
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.2/payload.d.ts +4 -4
- package/dist/device/register/0.2/payload.d.ts.map +1 -1
- package/dist/device/register/0.2/payload.js +4 -2
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -1
- package/dist/voting/_shared/0.1/voting.d.ts +16 -0
- package/dist/voting/_shared/0.1/voting.d.ts.map +1 -0
- package/dist/voting/_shared/0.1/voting.js +6 -0
- package/dist/voting/_shared/0.1/voting.js.map +1 -0
- package/dist/voting/ballot/cast/0.1/payload.d.ts +887 -0
- package/dist/voting/ballot/cast/0.1/payload.d.ts.map +1 -0
- package/dist/voting/ballot/cast/0.1/payload.js +506 -0
- package/dist/voting/ballot/cast/0.1/payload.js.map +1 -0
- package/dist/voting/board/consistency/0.1/payload.d.ts +389 -0
- package/dist/voting/board/consistency/0.1/payload.d.ts.map +1 -0
- package/dist/voting/board/consistency/0.1/payload.js +218 -0
- package/dist/voting/board/consistency/0.1/payload.js.map +1 -0
- package/dist/voting/board/head/0.1/payload.d.ts +380 -0
- package/dist/voting/board/head/0.1/payload.d.ts.map +1 -0
- package/dist/voting/board/head/0.1/payload.js +224 -0
- package/dist/voting/board/head/0.1/payload.js.map +1 -0
- package/dist/voting/board/inclusion/0.1/payload.d.ts +449 -0
- package/dist/voting/board/inclusion/0.1/payload.d.ts.map +1 -0
- package/dist/voting/board/inclusion/0.1/payload.js +246 -0
- package/dist/voting/board/inclusion/0.1/payload.js.map +1 -0
- package/dist/voting/board/read/0.1/payload.d.ts +1596 -0
- package/dist/voting/board/read/0.1/payload.d.ts.map +1 -0
- package/dist/voting/board/read/0.1/payload.js +920 -0
- package/dist/voting/board/read/0.1/payload.js.map +1 -0
- package/dist/voting/election/cancel/0.1/payload.d.ts +540 -0
- package/dist/voting/election/cancel/0.1/payload.d.ts.map +1 -0
- package/dist/voting/election/cancel/0.1/payload.js +331 -0
- package/dist/voting/election/cancel/0.1/payload.js.map +1 -0
- package/dist/voting/election/close/0.1/payload.d.ts +540 -0
- package/dist/voting/election/close/0.1/payload.d.ts.map +1 -0
- package/dist/voting/election/close/0.1/payload.js +330 -0
- package/dist/voting/election/close/0.1/payload.js.map +1 -0
- package/dist/voting/election/register/0.1/payload.d.ts +1920 -0
- package/dist/voting/election/register/0.1/payload.d.ts.map +1 -0
- package/dist/voting/election/register/0.1/payload.js +1166 -0
- package/dist/voting/election/register/0.1/payload.js.map +1 -0
- package/dist/voting/election/show/0.1/payload.d.ts +1824 -0
- package/dist/voting/election/show/0.1/payload.d.ts.map +1 -0
- package/dist/voting/election/show/0.1/payload.js +1112 -0
- package/dist/voting/election/show/0.1/payload.js.map +1 -0
- package/dist/voting/result/show/0.1/payload.d.ts +849 -0
- package/dist/voting/result/show/0.1/payload.d.ts.map +1 -0
- package/dist/voting/result/show/0.1/payload.js +498 -0
- package/dist/voting/result/show/0.1/payload.js.map +1 -0
- package/dist/vta/_shared/0.1/app-state-record.d.ts +1 -1
- package/dist/vta/_shared/0.1/app-state-record.d.ts.map +1 -1
- package/dist/vta/_shared/0.4/pcs-engine.d.ts +1 -1
- package/dist/vta/_shared/0.4/pcs-engine.d.ts.map +1 -1
- package/dist/vta/app-state/delete/1.0/payload.d.ts +1 -1
- package/dist/vta/app-state/delete/1.0/payload.d.ts.map +1 -1
- package/dist/vta/app-state/get/1.0/payload.d.ts +1 -1
- package/dist/vta/app-state/get/1.0/payload.d.ts.map +1 -1
- package/dist/vta/app-state/get-many/1.0/payload.d.ts +1 -1
- package/dist/vta/app-state/get-many/1.0/payload.d.ts.map +1 -1
- package/dist/vta/app-state/list/1.0/payload.d.ts +1 -1
- package/dist/vta/app-state/list/1.0/payload.d.ts.map +1 -1
- package/dist/vta/app-state/put/1.0/payload.d.ts +1 -1
- package/dist/vta/app-state/put/1.0/payload.d.ts.map +1 -1
- package/dist/vta/app-state/put-many/1.0/payload.d.ts +1 -1
- package/dist/vta/app-state/put-many/1.0/payload.d.ts.map +1 -1
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/attest/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/attest/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/prove/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/prove/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts +1 -1
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts.map +1 -1
- package/dist/vta/pcs/vote/0.1/payload.d.ts +2208 -0
- package/dist/vta/pcs/vote/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/vote/0.1/payload.js +1282 -0
- package/dist/vta/pcs/vote/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/voter/accept/0.1/payload.d.ts +450 -0
- package/dist/vta/pcs/voter/accept/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/voter/accept/0.1/payload.js +247 -0
- package/dist/vta/pcs/voter/accept/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/voter/receipt/0.1/payload.d.ts +531 -0
- package/dist/vta/pcs/voter/receipt/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/voter/receipt/0.1/payload.js +301 -0
- package/dist/vta/pcs/voter/receipt/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/voter/register/0.1/payload.d.ts +1934 -0
- package/dist/vta/pcs/voter/register/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/voter/register/0.1/payload.js +1133 -0
- package/dist/vta/pcs/voter/register/0.1/payload.js.map +1 -0
- package/dist/vtc/directory/card/present/0.1/payload.d.ts +2 -2
- package/dist/vtc/directory/card/present/0.1/payload.js +1 -1
- package/dist/vtc/directory/card/present/0.1/payload.js.map +1 -1
- package/dist/vtc/elections/cancel/0.1/payload.d.ts +301 -0
- package/dist/vtc/elections/cancel/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/cancel/0.1/payload.js +183 -0
- package/dist/vtc/elections/cancel/0.1/payload.js.map +1 -0
- package/dist/vtc/elections/certify/0.1/payload.d.ts +914 -0
- package/dist/vtc/elections/certify/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/certify/0.1/payload.js +512 -0
- package/dist/vtc/elections/certify/0.1/payload.js.map +1 -0
- package/dist/vtc/elections/close/0.1/payload.d.ts +301 -0
- package/dist/vtc/elections/close/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/close/0.1/payload.js +182 -0
- package/dist/vtc/elections/close/0.1/payload.js.map +1 -0
- package/dist/vtc/elections/create/0.1/payload.d.ts +1656 -0
- package/dist/vtc/elections/create/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/create/0.1/payload.js +994 -0
- package/dist/vtc/elections/create/0.1/payload.js.map +1 -0
- package/dist/vtc/elections/list/0.1/payload.d.ts +521 -0
- package/dist/vtc/elections/list/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/list/0.1/payload.js +290 -0
- package/dist/vtc/elections/list/0.1/payload.js.map +1 -0
- package/dist/vtc/elections/show/0.1/payload.d.ts +2688 -0
- package/dist/vtc/elections/show/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/show/0.1/payload.js +1581 -0
- package/dist/vtc/elections/show/0.1/payload.js.map +1 -0
- package/dist/vtc/elections/tickets/issue/0.1/payload.d.ts +597 -0
- package/dist/vtc/elections/tickets/issue/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/elections/tickets/issue/0.1/payload.js +318 -0
- package/dist/vtc/elections/tickets/issue/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/create/0.1/payload.d.ts +4 -4
- package/dist/vtc/groups/create/0.1/payload.js +2 -2
- package/dist/vtc/groups/create/0.1/payload.js.map +1 -1
- package/dist/vtc/groups/list/0.1/payload.d.ts +4 -4
- package/dist/vtc/groups/list/0.1/payload.js +2 -2
- package/dist/vtc/groups/list/0.1/payload.js.map +1 -1
- package/dist/vtc/groups/managers/add/0.1/payload.d.ts +337 -0
- package/dist/vtc/groups/managers/add/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/managers/add/0.1/payload.js +184 -0
- package/dist/vtc/groups/managers/add/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/managers/remove/0.1/payload.d.ts +337 -0
- package/dist/vtc/groups/managers/remove/0.1/payload.d.ts.map +1 -0
- package/dist/vtc/groups/managers/remove/0.1/payload.js +184 -0
- package/dist/vtc/groups/managers/remove/0.1/payload.js.map +1 -0
- package/dist/vtc/groups/show/0.1/payload.d.ts +4 -4
- package/dist/vtc/groups/show/0.1/payload.js +2 -2
- package/dist/vtc/groups/show/0.1/payload.js.map +1 -1
- package/dist/vtc/groups/update/0.1/payload.d.ts +4 -4
- package/dist/vtc/groups/update/0.1/payload.js +2 -2
- package/dist/vtc/groups/update/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +330 -16
- package/src/device/list/0.2/payload.ts +4 -2
- package/src/device/register/0.2/payload.ts +4 -2
- package/src/index.ts +24 -0
- package/src/voting/_shared/0.1/voting.ts +17 -0
- package/src/voting/ballot/cast/0.1/payload.ts +560 -0
- package/src/voting/board/consistency/0.1/payload.ts +264 -0
- package/src/voting/board/head/0.1/payload.ts +257 -0
- package/src/voting/board/inclusion/0.1/payload.ts +300 -0
- package/src/voting/board/read/0.1/payload.ts +981 -0
- package/src/voting/election/cancel/0.1/payload.ts +368 -0
- package/src/voting/election/close/0.1/payload.ts +367 -0
- package/src/voting/election/register/0.1/payload.ts +1207 -0
- package/src/voting/election/show/0.1/payload.ts +1149 -0
- package/src/voting/result/show/0.1/payload.ts +536 -0
- package/src/vta/_shared/0.1/app-state-record.ts +1 -1
- package/src/vta/_shared/0.4/pcs-engine.ts +1 -1
- package/src/vta/app-state/delete/1.0/payload.ts +1 -1
- package/src/vta/app-state/get/1.0/payload.ts +1 -1
- package/src/vta/app-state/get-many/1.0/payload.ts +1 -1
- package/src/vta/app-state/list/1.0/payload.ts +1 -1
- package/src/vta/app-state/put/1.0/payload.ts +1 -1
- package/src/vta/app-state/put-many/1.0/payload.ts +1 -1
- package/src/vta/pcs/applications/create/0.1/payload.ts +1 -1
- package/src/vta/pcs/applications/show/0.1/payload.ts +1 -1
- package/src/vta/pcs/attest/0.1/payload.ts +1 -1
- package/src/vta/pcs/prove/0.1/payload.ts +1 -1
- package/src/vta/pcs/root-accept/0.1/payload.ts +1 -1
- package/src/vta/pcs/tokens/abandon/0.1/payload.ts +1 -1
- package/src/vta/pcs/tokens/accept/0.1/payload.ts +1 -1
- package/src/vta/pcs/verify-attestation/0.1/payload.ts +1 -1
- package/src/vta/pcs/vetter/show/0.1/payload.ts +1 -1
- package/src/vta/pcs/vote/0.1/payload.ts +1365 -0
- package/src/vta/pcs/voter/accept/0.1/payload.ts +306 -0
- package/src/vta/pcs/voter/receipt/0.1/payload.ts +367 -0
- package/src/vta/pcs/voter/register/0.1/payload.ts +1211 -0
- package/src/vtc/directory/card/present/0.1/payload.ts +1 -1
- package/src/vtc/elections/cancel/0.1/payload.ts +223 -0
- package/src/vtc/elections/certify/0.1/payload.ts +565 -0
- package/src/vtc/elections/close/0.1/payload.ts +222 -0
- package/src/vtc/elections/create/0.1/payload.ts +1041 -0
- package/src/vtc/elections/list/0.1/payload.ts +371 -0
- package/src/vtc/elections/show/0.1/payload.ts +1671 -0
- package/src/vtc/elections/tickets/issue/0.1/payload.ts +394 -0
- package/src/vtc/groups/create/0.1/payload.ts +2 -2
- package/src/vtc/groups/list/0.1/payload.ts +2 -2
- package/src/vtc/groups/managers/add/0.1/payload.ts +230 -0
- package/src/vtc/groups/managers/remove/0.1/payload.ts +230 -0
- package/src/vtc/groups/show/0.1/payload.ts +2 -2
- package/src/vtc/groups/update/0.1/payload.ts +2 -2
|
@@ -419,6 +419,14 @@ export type BindingSpec = RoomBindingSpec | GrantsBindingSpec | RoleBindingSpec;
|
|
|
419
419
|
* The name of one blob: the digest of its BlobManifest, taken over the manifest's RFC 8785 (JCS) canonicalization. sha2-256 is RECOMMENDED and MUST be implemented. Content addressing over ciphertext, never plaintext, so a BlobRef says nothing about what the file contains, and two uploads of one file have different BlobRefs (a fresh `fileId` gives a different key, and so different ciphertext). Rooms cannot be correlated by the files they share. Compared as decoded multihash bytes, never as encoded strings. A BlobRef is defined over the manifest's JSON, as this schema states it and RFC 8785 canonicalizes it, never over any binding's generated type: two bindings that model the manifest as distinct types still compute the same BlobRef from the same JSON.
|
|
420
420
|
*/
|
|
421
421
|
export type BlobRef = DigestMultibase;
|
|
422
|
+
/**
|
|
423
|
+
* One leaf of a board. A leaf's hash is the RFC 9162 leaf hash of the JCS canonicalization of this object. Entries carry no time of arrival: the order is the board's, and a timestamp would hand anyone who reads the board the timing the registrar's log would need to pair a ticket with its cast.
|
|
424
|
+
*/
|
|
425
|
+
export type BoardEntry = CastEntry | ReplacementEntry | LifecycleEntry | ResultEntry;
|
|
426
|
+
/**
|
|
427
|
+
* `public`: anyone reads the board. `private`: the community, the auditors the manifest names and, for one cast's inclusion, the holder of its receipt (VTI-VOT-052).
|
|
428
|
+
*/
|
|
429
|
+
export type BoardVisibility = "public" | "private";
|
|
422
430
|
/**
|
|
423
431
|
* The control-plane account of a bundle transfer: which algorithm, on what terms, until when. Exactly one of the two shapes — they are mutually exclusive, since StreamDescriptor requires `transportUrl` and `transportToken` and forbids `chunks`, and ChunkedDescriptor requires `chunks` and forbids both.
|
|
424
432
|
*/
|
|
@@ -494,7 +502,8 @@ export type Capability_DeviceV0_2 =
|
|
|
494
502
|
| "externalAuthUse"
|
|
495
503
|
| "pcsVetter"
|
|
496
504
|
| "pcsApplicant"
|
|
497
|
-
| "witnessRequest"
|
|
505
|
+
| "witnessRequest"
|
|
506
|
+
| "pcsVoter";
|
|
498
507
|
/**
|
|
499
508
|
* Number of chunks in the bundle, equal to ceil(expectedSizeBytes / chunkSize). Bounded at 4096 so that the manifest itself — one digest per chunk — fits in the single document that carries it under the same message-size reasoning as a chunk.
|
|
500
509
|
*/
|
|
@@ -669,6 +678,11 @@ export type Duration = string;
|
|
|
669
678
|
* Whether the subject is permitted. The ABSENCE of any grant is treated as `deny` (default-deny).
|
|
670
679
|
*/
|
|
671
680
|
export type Effect_ConsentV0_1 = "allow" | "deny";
|
|
681
|
+
/**
|
|
682
|
+
* An election's identifier, unique within its community. A closed alphabet: it appears in the ticket class label `voter/<electionId>` and is framed into every hash a cast is bound to.
|
|
683
|
+
*/
|
|
684
|
+
export type ElectionId = string;
|
|
685
|
+
export type ElectionState = "registered" | "registration" | "voting" | "closed" | "tallied" | "cancelled";
|
|
672
686
|
/**
|
|
673
687
|
* The three rights that carry authority over other people's rights: `git.ns.admin`, `git.repo.create` (which makes its holder the owner of every repository they create) and `git.repo.own`. Separation of duties applies to these: nobody grants one to themselves through git-ns/right/grant, or records one for themselves through any other task that grants on the actor's own authority. The explicit self-grant is git-ns/right/break-glass. `git.repo.maintain` and `git.commit.sign` are not elevated.
|
|
674
688
|
*/
|
|
@@ -863,10 +877,6 @@ export type JoinRequestId = string;
|
|
|
863
877
|
* An optional note from the member to the group's managers. Plain text.
|
|
864
878
|
*/
|
|
865
879
|
export type JoinRequestMessage = string;
|
|
866
|
-
/**
|
|
867
|
-
* Application-chosen identifier for a record within a namespace. Opaque to the maintainer: it MUST NOT be parsed, normalized, or case-folded, and prefix matching in `list` is a byte-prefix comparison over the UTF-8 encoding. Applications SHOULD use `/`-delimited hierarchical keys (`community/acme`, `contact/z6Mk…`) so that `prefix` can address a record family, but the delimiter is a convention between an application and itself — the maintainer attaches no meaning to it.
|
|
868
|
-
*/
|
|
869
|
-
export type Key = string;
|
|
870
880
|
/**
|
|
871
881
|
* Where the private key came from. `derived` means the maintainer generated it from a seed it holds and can reproduce it from `derivationPath`; `imported` means it arrived from outside and exists only as stored material; `internal` means the maintainer generated it from a CSPRNG and it is reproducible from nothing at all. The distinction is operationally load-bearing: a `derived` key survives a seed restore, an `imported` one is lost unless it was backed up separately, and an `internal` one cannot be recovered by any means once the maintainer's storage is gone. This member is also the only way a consumer can confirm that a `keys/create` request for an `internal` key was honoured rather than silently downgraded to a derived one — see that specification's `internal` member.
|
|
872
882
|
*/
|
|
@@ -895,6 +905,14 @@ export type KeyStatus = "active" | "revoked";
|
|
|
895
905
|
* Cryptographic algorithm the key material belongs to. `ed25519` signs (EdDSA), `x25519` performs key agreement and never signs, `p256` signs (ES256), and `mldsa44` and `mldsa65` sign with the post-quantum ML-DSA scheme of US NIST FIPS 204. The set is expected to grow as algorithms are standardised, and growing it is a MINOR change under SPEC.md §5.2: `keyType` selects no schema branch, so adding a value relaxes a constraint rather than narrowing one, and the generated libraries mark this enumeration non-exhaustive so that a consumer absorbs a new value rather than failing to compile. Two ML-DSA parameter sets are carried because two specifications require different ones — W3C Quantum-Resistant Cryptosuites defines Data Integrity suites only for ML-DSA-44, while Trust Spanning Protocol Rev 3 §8.1 mandates ML-DSA-65 — so the parameter set is chosen by whatever consumes the key and the two are not redundant. A consumer that does not implement a value it receives MUST refuse the document rather than substitute one it does support.
|
|
896
906
|
*/
|
|
897
907
|
export type KeyType = "ed25519" | "x25519" | "p256" | "mldsa44" | "mldsa65";
|
|
908
|
+
/**
|
|
909
|
+
* A question or option key, unique within its manifest or question.
|
|
910
|
+
*/
|
|
911
|
+
export type Key_VotingV0_1 = string;
|
|
912
|
+
/**
|
|
913
|
+
* Application-chosen identifier for a record within a namespace. Opaque to the maintainer: it MUST NOT be parsed, normalized, or case-folded, and prefix matching in `list` is a byte-prefix comparison over the UTF-8 encoding. Applications SHOULD use `/`-delimited hierarchical keys (`community/acme`, `contact/z6Mk…`) so that `prefix` can address a record family, but the delimiter is a convention between an application and itself — the maintainer attaches no meaning to it.
|
|
914
|
+
*/
|
|
915
|
+
export type Key_VtaV0_1 = string;
|
|
898
916
|
/**
|
|
899
917
|
* The interaction kind: a 1:1 direct message, a multi-party group, or a broadcast channel.
|
|
900
918
|
*/
|
|
@@ -961,14 +979,24 @@ export type MemberState = "offered" | "admitted" | "removed";
|
|
|
961
979
|
* How the member came to be in the group. `added`: by a manager. `joined`: they joined an open group. `requestApproved`: a manager approved their request. `rule`: a dynamic group's rule admits them.
|
|
962
980
|
*/
|
|
963
981
|
export type MembershipSource = "added" | "joined" | "requestApproved" | "rule";
|
|
982
|
+
/**
|
|
983
|
+
* An RFC 9162 audit or consistency path: the node hashes, in the order §2.1.3 / §2.1.4 define.
|
|
984
|
+
*
|
|
985
|
+
* @maxItems 64
|
|
986
|
+
*/
|
|
987
|
+
export type MerklePath = DigestMultibase[];
|
|
964
988
|
/**
|
|
965
989
|
* How the request reaches the approver. A CLOSED list. Version 0.1 defines `scan`: the starter shows a trigger link (as a QR code that is also a clickable link, TRIGGER-LINK.md) and the approver's wallet reads it. `code` (a typed code of at least 8 characters, under strict rate limits) and `push` (sent to the approver's enrolled devices) are reserved names.
|
|
966
990
|
*/
|
|
967
991
|
export type Mode = "scan";
|
|
992
|
+
/**
|
|
993
|
+
* A binary value, multibase base58btc over the suite's canonical (compressed) encoding.
|
|
994
|
+
*/
|
|
995
|
+
export type Multibase_VotingV0_1 = string;
|
|
968
996
|
/**
|
|
969
997
|
* A binary value, multibase base58btc over the suite's canonical encoding.
|
|
970
998
|
*/
|
|
971
|
-
export type
|
|
999
|
+
export type Multibase_VtaV0_4 = string;
|
|
972
1000
|
/**
|
|
973
1001
|
* Scopes one application's records within a context, so several tools can share a context without colliding — `openvtc`, `cnm`, an agent runtime. The maintainer MUST NOT interpret the value; it is an opaque partition name. Namespaces are first-come and unreserved, so an application SHOULD pick a stable, specific one: a future per-namespace ACL would grant on this exact string, which makes renaming a namespace a migration rather than an edit.
|
|
974
1002
|
*/
|
|
@@ -1300,6 +1328,10 @@ export type Purpose = "login";
|
|
|
1300
1328
|
* A device's platform push channel — the body the device registers with its push GATEWAY (push wake-up binding, https://trusttasks.org/binding/push/0.1; modeled on Aries RFC 0699/0734). The gateway holds this token and returns an opaque WakeHandle in exchange; the token is held by the gateway ONLY, never by the mediator or the maintainer/VTA. The gateway uses it to send a contentless wake-up when an authorized trigger asks — the push payload never carries Trust Task content. Tagged union over the discriminator `platform`.
|
|
1301
1329
|
*/
|
|
1302
1330
|
export type PushRegistration = Apns | Fcm | WebPush;
|
|
1331
|
+
/**
|
|
1332
|
+
* One question. Tagged union over `type`.
|
|
1333
|
+
*/
|
|
1334
|
+
export type Question = ChoiceQuestion | RankingQuestion | ScoreQuestion | TextQuestion;
|
|
1303
1335
|
/**
|
|
1304
1336
|
* Which of an account's two queues. `receive` holds messages addressed to the account awaiting its pickup. `send` holds messages the account sent that are still held against it until their recipient deletes them — so a stalled recipient fills its senders' send queues.
|
|
1305
1337
|
*/
|
|
@@ -1408,6 +1440,10 @@ export type RetentionPolicy = "chained" | "fromJoin";
|
|
|
1408
1440
|
* **Tiers.** On a `private` room a host MUST refuse a list carrying a `credential` or `subject` entry: a presentation there withholds the credential and its subject, so such an entry is one the host cannot apply and a disclosure of who was in the room. Only `room` entries are permitted, and a host serving a `private` room MUST refuse any presentation for which it cannot establish that no credential in it has a `validFrom` earlier than the latest `room` entry's `revokedAt`.
|
|
1409
1441
|
*/
|
|
1410
1442
|
export type RevocationEntry = CredentialRevocation | SubjectRevocation | RoomRevocation;
|
|
1443
|
+
/**
|
|
1444
|
+
* What a later, different ballot under one ticket does: `replace` the earlier one, or be refused (`refuse`) (VTI-VOT-041).
|
|
1445
|
+
*/
|
|
1446
|
+
export type Revote = "replace" | "refuse";
|
|
1411
1447
|
/**
|
|
1412
1448
|
* One of the five git rights. Each string is also the TRQP `action` the VTC publishes the right under in its Trust Registry, so it is carried verbatim. `git.ns.admin` and `git.repo.create` apply to a namespace resource; `git.repo.own` and `git.repo.maintain` to a repository resource; `git.commit.sign` to either.
|
|
1413
1449
|
*/
|
|
@@ -1501,6 +1537,10 @@ export type SealedEnvelope_VaultV0_2 =
|
|
|
1501
1537
|
* A sealed-transfer bundle: OpenPGP-style ASCII armor around an HPKE-sealed `SealedPayloadV1` (base mode, X25519-HKDF-SHA256 KEM, HKDF-SHA256 KDF, ChaCha20-Poly1305 AEAD, info string `vta-sealed-transfer/v1`), with a producer assertion and Bundle-Id, Chunk and Digest-Algo headers bound into the associated data. Each task states the key it is sealed to: a single-use wrapping key from keys/import-wrapping-key for external/accounts/secret/set, and the caller's key-agreement key for external/credentials/issue. Its cleartext is an ExternalSecretPayload, an ExternalCredentialPayload or, from external/credentials/issue 0.2 for `s3-static-presign`, a PresignedRequestSet. The only form in which secret material crosses the wire in this family, in either direction: the seal is what keeps a terminating proxy, a relay, a request log or a debug dump of "the response" from ever holding a usable secret, whatever transport carried the document.
|
|
1502
1538
|
*/
|
|
1503
1539
|
export type SealedTransferBundle = string;
|
|
1540
|
+
/**
|
|
1541
|
+
* `open`: ballots are recorded on the board as cast. `sealed`: ballots are encrypted to a jointly generated election key and decrypted after voting closes. `talliedEncrypted`: ballots are encrypted and only the totals are ever decrypted (VTI-VOT-060). Version 0.1 of the voting tasks carries open ballots only; a ballot box refuses to register any other level with `voting/election/register:unsupportedSecrecy` until the trustee tasks are specified.
|
|
1542
|
+
*/
|
|
1543
|
+
export type SecrecyLevel = "open" | "sealed" | "talliedEncrypted";
|
|
1504
1544
|
/**
|
|
1505
1545
|
* Which secret is set, without being a way to test guesses at it. `hmacsha256:` followed by the base64url encoding, without padding, of the first 16 bytes of HMAC-SHA256 over the secret's bytes under a fingerprint key the custodian holds and never discloses. Comparable only between fingerprints made by the same custodian: a re-entered value can be confirmed, while the same secret at two custodians gives unrelated fingerprints. Never a bare hash of the secret, which would let anyone who reads it run a dictionary against it offline; and deliberately not a DigestMultibase, since multihash has no code for a keyed digest.
|
|
1506
1546
|
*/
|
|
@@ -4238,6 +4278,19 @@ export interface AgentNameEntry {
|
|
|
4238
4278
|
createdAt?: number;
|
|
4239
4279
|
ext?: Ext;
|
|
4240
4280
|
}
|
|
4281
|
+
/**
|
|
4282
|
+
* The answer to one question. Exactly one member besides `question` is present, matching the question's type, or `abstain` for an optional question left unanswered.
|
|
4283
|
+
*/
|
|
4284
|
+
export interface Answer {
|
|
4285
|
+
question: Key_VotingV0_1;
|
|
4286
|
+
choice?: Key_VotingV0_1[];
|
|
4287
|
+
ranking?: Key_VotingV0_1[];
|
|
4288
|
+
scores?: {
|
|
4289
|
+
[k: string]: number | undefined;
|
|
4290
|
+
};
|
|
4291
|
+
text?: string;
|
|
4292
|
+
abstain?: true;
|
|
4293
|
+
}
|
|
4241
4294
|
/**
|
|
4242
4295
|
* A record as the maintainer holds it. `value` is absent in three distinct situations and a consumer MUST NOT conflate them: the record is a tombstone (`deleted` is true); the caller asked for a metadata-only view (`list` without `includeValues`); or the value genuinely is the JSON literal `null`, in which case `value` is PRESENT and null. This is why `deleted` is required rather than defaulted — a consumer that has to infer deletion from an absent value gets the tombstone case wrong exactly when convergence depends on it.
|
|
4243
4296
|
*/
|
|
@@ -4247,7 +4300,7 @@ export interface AppStateRecord {
|
|
|
4247
4300
|
*/
|
|
4248
4301
|
contextId: string;
|
|
4249
4302
|
namespace: Namespace;
|
|
4250
|
-
key:
|
|
4303
|
+
key: Key_VtaV0_1;
|
|
4251
4304
|
/**
|
|
4252
4305
|
* The namespace counter value this record's most recent write took. Supply it as `expectedVersion` on the next write to make that write conditional on nothing having changed in between.
|
|
4253
4306
|
*/
|
|
@@ -4303,7 +4356,7 @@ export interface ApplicationSummary {
|
|
|
4303
4356
|
/**
|
|
4304
4357
|
* The applicant's PCS identifier: what a vetter attests to, carried in a vetting/request's `ext`.
|
|
4305
4358
|
*/
|
|
4306
|
-
id:
|
|
4359
|
+
id: Multibase_VtaV0_4;
|
|
4307
4360
|
/**
|
|
4308
4361
|
* The metadata of each attestation held, in the order received. Metadata names no vetter.
|
|
4309
4362
|
*/
|
|
@@ -4426,7 +4479,7 @@ export interface Attestation {
|
|
|
4426
4479
|
/**
|
|
4427
4480
|
* The attestation: a tag, a shown class credential and a proof. It names no vetter.
|
|
4428
4481
|
*/
|
|
4429
|
-
attestation:
|
|
4482
|
+
attestation: Multibase_VtaV0_4;
|
|
4430
4483
|
meta: StatementMeta;
|
|
4431
4484
|
token: AttestationToken;
|
|
4432
4485
|
}
|
|
@@ -4441,11 +4494,11 @@ export interface AttestationToken {
|
|
|
4441
4494
|
/**
|
|
4442
4495
|
* The serial revealed by the spend.
|
|
4443
4496
|
*/
|
|
4444
|
-
serial:
|
|
4497
|
+
serial: Multibase_VtaV0_4;
|
|
4445
4498
|
/**
|
|
4446
4499
|
* The re-randomised token signature, verifiable under the published token key.
|
|
4447
4500
|
*/
|
|
4448
|
-
shown:
|
|
4501
|
+
shown: Multibase_VtaV0_4;
|
|
4449
4502
|
}
|
|
4450
4503
|
/**
|
|
4451
4504
|
* One atomic fact a holder keeps about themselves. Several attributes MAY share a `type` — three phone numbers, a legal name and a preferred name — which is why `attributeId` is the identity of a fact and `type` is not. The pool is flat and unordered; ordering is a profile's concern.
|
|
@@ -4741,6 +4794,18 @@ export interface BackupEnvelope {
|
|
|
4741
4794
|
*/
|
|
4742
4795
|
ciphertext: string;
|
|
4743
4796
|
}
|
|
4797
|
+
/**
|
|
4798
|
+
* An open ballot: one answer per question of the manifest, in any order. The bytes a cast's proof binds are the RFC 8785 (JCS) canonicalization of this object as received.
|
|
4799
|
+
*/
|
|
4800
|
+
export interface Ballot {
|
|
4801
|
+
electionId: ElectionId;
|
|
4802
|
+
manifestDigest: DigestMultibase;
|
|
4803
|
+
/**
|
|
4804
|
+
* @minItems 1
|
|
4805
|
+
* @maxItems 128
|
|
4806
|
+
*/
|
|
4807
|
+
answers: [Answer, ...Answer[]];
|
|
4808
|
+
}
|
|
4744
4809
|
/**
|
|
4745
4810
|
* The ciphertext manifest of one blob, committed by the uploader before any byte moves. Its digest is the BlobRef. Every chunk is checked against `chunks.chunkDigests` on arrival and the reassembled blob against `digest`, so a host can neither accept nor serve bytes the uploader did not commit to. The manifest also appears, by its BlobRef, inside the sealed FileManifest the author signs; a reader who opens the record therefore knows which ciphertext its author meant, and a host cannot substitute a different blob under the same record.
|
|
4746
4811
|
*
|
|
@@ -4759,6 +4824,39 @@ export interface BlobManifest {
|
|
|
4759
4824
|
*/
|
|
4760
4825
|
digest: DigestMultibase;
|
|
4761
4826
|
}
|
|
4827
|
+
export interface CastEntry {
|
|
4828
|
+
kind: "cast";
|
|
4829
|
+
cast: Cast;
|
|
4830
|
+
}
|
|
4831
|
+
/**
|
|
4832
|
+
* The cast at `replaces` is no longer counted: a later cast under the same tag is.
|
|
4833
|
+
*/
|
|
4834
|
+
export interface ReplacementEntry {
|
|
4835
|
+
kind: "replaced";
|
|
4836
|
+
tag: Multibase_VotingV0_1;
|
|
4837
|
+
replaces: number;
|
|
4838
|
+
by: number;
|
|
4839
|
+
}
|
|
4840
|
+
export interface LifecycleEntry {
|
|
4841
|
+
kind: "opened" | "closed" | "closedEarly" | "cancelled";
|
|
4842
|
+
at: string;
|
|
4843
|
+
}
|
|
4844
|
+
export interface ResultEntry {
|
|
4845
|
+
kind: "result";
|
|
4846
|
+
result: ElectionResult;
|
|
4847
|
+
}
|
|
4848
|
+
/**
|
|
4849
|
+
* A board's tree head (RFC 9162 §2.1). A head is signed by being carried in a document the ballot box signs; whoever keeps a head keeps that whole document.
|
|
4850
|
+
*/
|
|
4851
|
+
export interface BoardHead {
|
|
4852
|
+
electionId: ElectionId;
|
|
4853
|
+
treeSize: number;
|
|
4854
|
+
/**
|
|
4855
|
+
* The RFC 9162 Merkle tree hash (SHA-256) of the first `treeSize` entries, as a multihash.
|
|
4856
|
+
*/
|
|
4857
|
+
rootHash: DigestMultibase;
|
|
4858
|
+
issuedAt: string;
|
|
4859
|
+
}
|
|
4762
4860
|
/**
|
|
4763
4861
|
* Whether each step that turns commit trust on for a repository is in place, as last reported. A step that this forge's plan does not need reads `true`.
|
|
4764
4862
|
*/
|
|
@@ -4968,6 +5066,14 @@ export interface CardValues {
|
|
|
4968
5066
|
* A whole Trust Task document — `id`, `type`, `payload` and every other member, `proof` included — carried between the VTA and the witness by the client: one the VTA built and signed for the client to send, or one the witness returned for the client to hand back. Typed as an open object so every member survives a round trip: carried exactly as built or received, never re-serialised, because its proof is over itself. Its envelope is checked by the VTA against the session record (CONVENTIONS.md §3), not by this schema.
|
|
4969
5067
|
*/
|
|
4970
5068
|
export interface CarriedDocument {}
|
|
5069
|
+
/**
|
|
5070
|
+
* A ballot and the PCS attestation that admits it (VTI-VOT-030). `attestation` is the suite's canonical encoding of the attestation made for the election point with the ballot context bound in (CONVENTIONS §3); `tag` repeats its tag so a ballot box can refuse a duplicate before the pairing check.
|
|
5071
|
+
*/
|
|
5072
|
+
export interface Cast {
|
|
5073
|
+
ballot: Ballot;
|
|
5074
|
+
tag: Multibase_VotingV0_1;
|
|
5075
|
+
attestation: Multibase_VotingV0_1;
|
|
5076
|
+
}
|
|
4971
5077
|
/**
|
|
4972
5078
|
* The terms of a `chunkedTrustTask` transfer, committed before any chunk moves. On export the recipient states them in the descriptor; on import the producer pre-commits them in the request and the recipient echoes them. Either way the manifest arrives in a document whose proof is REQUIRED, so the per-chunk digests are authenticated by the party that computed them and each chunk can be verified — and a single bad chunk re-fetched or refused — on arrival rather than only after reassembly.
|
|
4973
5079
|
*
|
|
@@ -6233,6 +6339,31 @@ export interface DisclosedField {
|
|
|
6233
6339
|
*/
|
|
6234
6340
|
facet?: boolean;
|
|
6235
6341
|
}
|
|
6342
|
+
/**
|
|
6343
|
+
* The statement a community publishes, and shows a member before they request a ticket, about how one election is run (VTI-VOT-090). Generated from the election's manifest and the community's configuration, never written by hand.
|
|
6344
|
+
*/
|
|
6345
|
+
export interface Disclosure {
|
|
6346
|
+
/**
|
|
6347
|
+
* The ballot box's DID.
|
|
6348
|
+
*/
|
|
6349
|
+
ballotBox: string;
|
|
6350
|
+
/**
|
|
6351
|
+
* Who operates the ballot box, as the community names them.
|
|
6352
|
+
*/
|
|
6353
|
+
ballotBoxOperator: string;
|
|
6354
|
+
/**
|
|
6355
|
+
* Whether the party operating the community's VTC also operates the ballot box.
|
|
6356
|
+
*/
|
|
6357
|
+
sameOperator: boolean;
|
|
6358
|
+
trustees?: Trustees;
|
|
6359
|
+
boardVisibility: BoardVisibility;
|
|
6360
|
+
auditors: string[];
|
|
6361
|
+
revote: Revote;
|
|
6362
|
+
/**
|
|
6363
|
+
* Always false: a voter can prove how they voted, so the community cannot protect a member against being made to vote a certain way.
|
|
6364
|
+
*/
|
|
6365
|
+
coercionResistance: false;
|
|
6366
|
+
}
|
|
6236
6367
|
/**
|
|
6237
6368
|
* The member's three discoverability decisions, made separately.
|
|
6238
6369
|
*/
|
|
@@ -6514,6 +6645,33 @@ export interface EffectiveLimits {
|
|
|
6514
6645
|
*/
|
|
6515
6646
|
hostCeilingBytes?: number;
|
|
6516
6647
|
}
|
|
6648
|
+
/**
|
|
6649
|
+
* An election's result, computable by anyone who can read its board from the board and the registration alone (VTI-VOT-070).
|
|
6650
|
+
*/
|
|
6651
|
+
export interface ElectionResult {
|
|
6652
|
+
electionId: ElectionId;
|
|
6653
|
+
manifestDigest: DigestMultibase;
|
|
6654
|
+
ballotsCounted: number;
|
|
6655
|
+
questions: QuestionResult[];
|
|
6656
|
+
/**
|
|
6657
|
+
* The head of the board as it stood at close: the result counts exactly its entries.
|
|
6658
|
+
*/
|
|
6659
|
+
head: BoardHead;
|
|
6660
|
+
}
|
|
6661
|
+
/**
|
|
6662
|
+
* A ballot box's view of one election.
|
|
6663
|
+
*/
|
|
6664
|
+
export interface ElectionSummary {
|
|
6665
|
+
electionId: ElectionId;
|
|
6666
|
+
community: string;
|
|
6667
|
+
manifestDigest: DigestMultibase;
|
|
6668
|
+
state: ElectionState;
|
|
6669
|
+
/**
|
|
6670
|
+
* Distinct tags with a counted ballot.
|
|
6671
|
+
*/
|
|
6672
|
+
ballotsAdmitted: number;
|
|
6673
|
+
head: BoardHead;
|
|
6674
|
+
}
|
|
6517
6675
|
export interface EncryptionParams {
|
|
6518
6676
|
/**
|
|
6519
6677
|
* AEAD identifier, e.g. `aes-256-gcm`.
|
|
@@ -6986,7 +7144,7 @@ export interface Group {
|
|
|
6986
7144
|
*/
|
|
6987
7145
|
memberCount?: number;
|
|
6988
7146
|
/**
|
|
6989
|
-
* Entries holding `vtc.groups.manage` qualified to this group, read from the access-control list. Informational: managers are appointed by an access-control grant, never by this record.
|
|
7147
|
+
* Entries holding `vtc.groups.manage` qualified to this group, read from the access-control list. Informational: managers are appointed by an access-control grant (vtc/groups/managers/add), never by this record.
|
|
6990
7148
|
*
|
|
6991
7149
|
* @maxItems 256
|
|
6992
7150
|
*/
|
|
@@ -7070,7 +7228,7 @@ export interface HiddenVettingSubmission {
|
|
|
7070
7228
|
/**
|
|
7071
7229
|
* The applicant's PCS identifier for this application.
|
|
7072
7230
|
*/
|
|
7073
|
-
id:
|
|
7231
|
+
id: Multibase_VtaV0_4;
|
|
7074
7232
|
/**
|
|
7075
7233
|
* The DID the applicant joins as. Bound to `id` by `idBinding`.
|
|
7076
7234
|
*/
|
|
@@ -7092,7 +7250,7 @@ export interface HiddenVettingSubmission {
|
|
|
7092
7250
|
/**
|
|
7093
7251
|
* The issuance proof, which carries the attestations.
|
|
7094
7252
|
*/
|
|
7095
|
-
proof:
|
|
7253
|
+
proof: Multibase_VtaV0_4;
|
|
7096
7254
|
}
|
|
7097
7255
|
/**
|
|
7098
7256
|
* One histogram's distribution, in the Prometheus cumulative-bucket convention: each bucket's `count` includes every observation at or below its `le`.
|
|
@@ -7555,6 +7713,51 @@ export interface LocalSettings {
|
|
|
7555
7713
|
*/
|
|
7556
7714
|
root: string;
|
|
7557
7715
|
}
|
|
7716
|
+
/**
|
|
7717
|
+
* What an election asks and how it is decided (VTI-VOT-010). Its digest (`manifestDigest`) is the SHA-256 multihash of its RFC 8785 (JCS) canonicalization, and every cast is bound to it (VTI-VOT-011).
|
|
7718
|
+
*/
|
|
7719
|
+
export interface Manifest {
|
|
7720
|
+
electionId: ElectionId;
|
|
7721
|
+
/**
|
|
7722
|
+
* The community's DID.
|
|
7723
|
+
*/
|
|
7724
|
+
community: string;
|
|
7725
|
+
title?: string;
|
|
7726
|
+
description?: string;
|
|
7727
|
+
/**
|
|
7728
|
+
* @minItems 1
|
|
7729
|
+
* @maxItems 128
|
|
7730
|
+
*/
|
|
7731
|
+
questions: [Question, ...Question[]];
|
|
7732
|
+
secrecy: SecrecyLevel;
|
|
7733
|
+
roll: RollRule;
|
|
7734
|
+
registrationOpens: string;
|
|
7735
|
+
votingOpens: string;
|
|
7736
|
+
votingCloses: string;
|
|
7737
|
+
revote: Revote;
|
|
7738
|
+
board: {
|
|
7739
|
+
visibility: BoardVisibility;
|
|
7740
|
+
auditors: string[];
|
|
7741
|
+
};
|
|
7742
|
+
/**
|
|
7743
|
+
* The DID of the voting service that holds the board.
|
|
7744
|
+
*/
|
|
7745
|
+
ballotBox: string;
|
|
7746
|
+
trustees?: Trustees;
|
|
7747
|
+
/**
|
|
7748
|
+
* Whether the community treats the result as deciding something; creating a binding election takes another administrator's consent (VTI-VOT-081).
|
|
7749
|
+
*/
|
|
7750
|
+
binding: boolean;
|
|
7751
|
+
allowEarlyClose: boolean;
|
|
7752
|
+
/**
|
|
7753
|
+
* Open elections only: whether running totals may be read while voting is open (VTI-VOT-061).
|
|
7754
|
+
*/
|
|
7755
|
+
resultsBeforeClose: boolean;
|
|
7756
|
+
/**
|
|
7757
|
+
* Counted ballots required before any text answer is disclosed (VTI-VOT-065).
|
|
7758
|
+
*/
|
|
7759
|
+
textReleaseThreshold: number;
|
|
7760
|
+
}
|
|
7558
7761
|
/**
|
|
7559
7762
|
* The mediator's per-account access-control capability set, expressed as named booleans (the transport-agnostic form of the mediator's internal capability flags). On a set request, members omitted are left unchanged; a get/response carries the full realized set.
|
|
7560
7763
|
*/
|
|
@@ -8587,6 +8790,93 @@ export interface QueryContext {
|
|
|
8587
8790
|
locator?: string;
|
|
8588
8791
|
[k: string]: string | undefined;
|
|
8589
8792
|
}
|
|
8793
|
+
/**
|
|
8794
|
+
* Select between `minSelections` and `maxSelections` of `options`. A yes/no/abstain motion is a choice of exactly one of three.
|
|
8795
|
+
*/
|
|
8796
|
+
export interface ChoiceQuestion {
|
|
8797
|
+
key: Key_VotingV0_1;
|
|
8798
|
+
type: "choice";
|
|
8799
|
+
text?: string;
|
|
8800
|
+
/**
|
|
8801
|
+
* @minItems 2
|
|
8802
|
+
* @maxItems 256
|
|
8803
|
+
*/
|
|
8804
|
+
options: [QuestionOption, QuestionOption, ...QuestionOption[]];
|
|
8805
|
+
minSelections: number;
|
|
8806
|
+
maxSelections: number;
|
|
8807
|
+
optional: boolean;
|
|
8808
|
+
}
|
|
8809
|
+
/**
|
|
8810
|
+
* Order `options`; a ballot ranks every option or, when `partial` is true, a prefix of them.
|
|
8811
|
+
*/
|
|
8812
|
+
export interface RankingQuestion {
|
|
8813
|
+
key: Key_VotingV0_1;
|
|
8814
|
+
type: "ranking";
|
|
8815
|
+
text?: string;
|
|
8816
|
+
/**
|
|
8817
|
+
* @minItems 2
|
|
8818
|
+
* @maxItems 64
|
|
8819
|
+
*/
|
|
8820
|
+
options: [QuestionOption, QuestionOption, ...QuestionOption[]];
|
|
8821
|
+
partial: boolean;
|
|
8822
|
+
optional: boolean;
|
|
8823
|
+
}
|
|
8824
|
+
/**
|
|
8825
|
+
* Give each option an integer score within [min, max].
|
|
8826
|
+
*/
|
|
8827
|
+
export interface ScoreQuestion {
|
|
8828
|
+
key: Key_VotingV0_1;
|
|
8829
|
+
type: "score";
|
|
8830
|
+
text?: string;
|
|
8831
|
+
/**
|
|
8832
|
+
* @minItems 1
|
|
8833
|
+
* @maxItems 256
|
|
8834
|
+
*/
|
|
8835
|
+
options: [QuestionOption, ...QuestionOption[]];
|
|
8836
|
+
min: number;
|
|
8837
|
+
max: number;
|
|
8838
|
+
optional: boolean;
|
|
8839
|
+
}
|
|
8840
|
+
/**
|
|
8841
|
+
* Free text of at most `maxLength` characters.
|
|
8842
|
+
*/
|
|
8843
|
+
export interface TextQuestion {
|
|
8844
|
+
key: Key_VotingV0_1;
|
|
8845
|
+
type: "text";
|
|
8846
|
+
text?: string;
|
|
8847
|
+
maxLength: number;
|
|
8848
|
+
optional: boolean;
|
|
8849
|
+
}
|
|
8850
|
+
export interface QuestionOption {
|
|
8851
|
+
key: Key_VotingV0_1;
|
|
8852
|
+
/**
|
|
8853
|
+
* Display text. Absent from a manifest registered with a ballot box that holds no question text (VTI-VOT-014).
|
|
8854
|
+
*/
|
|
8855
|
+
label?: string;
|
|
8856
|
+
}
|
|
8857
|
+
/**
|
|
8858
|
+
* One question's totals. `choice`: selections per option. `ranking`: per option, how many ballots placed it at each position (index 0 = first). `score`: per option, the sum and the number of ballots that scored it. `text`: the answers, in board order, withheld (`withheld: true`) below the manifest's `textReleaseThreshold`. `abstained` counts ballots that left the question unanswered.
|
|
8859
|
+
*/
|
|
8860
|
+
export interface QuestionResult {
|
|
8861
|
+
question: Key_VotingV0_1;
|
|
8862
|
+
abstained: number;
|
|
8863
|
+
choice?: {
|
|
8864
|
+
[k: string]: number | undefined;
|
|
8865
|
+
};
|
|
8866
|
+
ranking?: {
|
|
8867
|
+
[k: string]: number[] | undefined;
|
|
8868
|
+
};
|
|
8869
|
+
score?: {
|
|
8870
|
+
[k: string]:
|
|
8871
|
+
| {
|
|
8872
|
+
sum: number;
|
|
8873
|
+
count: number;
|
|
8874
|
+
}
|
|
8875
|
+
| undefined;
|
|
8876
|
+
};
|
|
8877
|
+
text?: string[];
|
|
8878
|
+
withheld?: boolean;
|
|
8879
|
+
}
|
|
8590
8880
|
/**
|
|
8591
8881
|
* The depth of one queue and its effective limit.
|
|
8592
8882
|
*/
|
|
@@ -9239,6 +9529,13 @@ export interface RoleSummary {
|
|
|
9239
9529
|
*/
|
|
9240
9530
|
preRotationCommitments?: number;
|
|
9241
9531
|
}
|
|
9532
|
+
/**
|
|
9533
|
+
* Who may be issued a ticket (VTI-VOT-021): the community's active members, its active members and the parties `listed` names, or only the parties `listed` names.
|
|
9534
|
+
*/
|
|
9535
|
+
export interface RollRule {
|
|
9536
|
+
rule: "members" | "membersAndListed" | "listed";
|
|
9537
|
+
listed?: string[];
|
|
9538
|
+
}
|
|
9242
9539
|
/**
|
|
9243
9540
|
* The outcome of a rollback. Distinct from ServiceMutationResult because a rollback can legitimately publish nothing: if the previous state already equals the current one there is no change to write, and `kind: "noOp"` says so with `logEntryVersionId` absent. Treating that as a failure would be wrong — the requested state holds — and treating it as an ordinary success would report a log entry that does not exist.
|
|
9244
9541
|
*/
|
|
@@ -10401,6 +10698,16 @@ export interface TrustRecord {
|
|
|
10401
10698
|
};
|
|
10402
10699
|
record_type: RecordType;
|
|
10403
10700
|
}
|
|
10701
|
+
/**
|
|
10702
|
+
* The trustees of a sealed or tallied-encrypted election and the number of them decryption needs (VTI-VOT-062). Neither the community nor the ballot box may be one.
|
|
10703
|
+
*/
|
|
10704
|
+
export interface Trustees {
|
|
10705
|
+
/**
|
|
10706
|
+
* @minItems 2
|
|
10707
|
+
*/
|
|
10708
|
+
dids: [string, string, ...string[]];
|
|
10709
|
+
threshold: number;
|
|
10710
|
+
}
|
|
10404
10711
|
/**
|
|
10405
10712
|
* Trust Spanning Protocol message (https://trustoverip.github.io/tswg-tsp-specification/). Reserved variant; no OpenVTC component reads or emits this today. Listed in the union so implementations can declare intent to use TSP in discovery and so consumers reject `tsp-message` envelopes explicitly (`envelopeUnsupported`) until they're wired up — rather than silently failing in DIDComm parsing.
|
|
10406
10713
|
*/
|
|
@@ -10861,7 +11168,7 @@ export interface VetterSummary {
|
|
|
10861
11168
|
/**
|
|
10862
11169
|
* The vetter's PCS identifier for this community.
|
|
10863
11170
|
*/
|
|
10864
|
-
id:
|
|
11171
|
+
id: Multibase_VtaV0_4;
|
|
10865
11172
|
/**
|
|
10866
11173
|
* Class labels this vetter holds a credential under, newest first.
|
|
10867
11174
|
*/
|
|
@@ -11040,6 +11347,13 @@ export interface VettingRequirements {
|
|
|
11040
11347
|
extCritical?: ExtCritical;
|
|
11041
11348
|
[k: string]: unknown | undefined;
|
|
11042
11349
|
}
|
|
11350
|
+
/**
|
|
11351
|
+
* The community's published voting parameters: the PCS suite and the voting verification key tickets are issued under (VTI-VOT-020). Distinct from its hidden-vetting helper key.
|
|
11352
|
+
*/
|
|
11353
|
+
export interface VotingParameters {
|
|
11354
|
+
suite: "ps-ddh-bls12381";
|
|
11355
|
+
votingKey: Multibase_VotingV0_1;
|
|
11356
|
+
}
|
|
11043
11357
|
/**
|
|
11044
11358
|
* An opaque, gateway-issued reference to a device's push channel (push wake-up binding, https://trusttasks.org/binding/push/0.1). The push gateway returns it to the device at registration; the device conveys it to its VTA (device/set-wake), and the VTA provisions it to authorized triggers (its mediator and/or itself). The raw platform push token (APNs/FCM/WebPush) is held ONLY by the gateway and is never represented here — the handle abstracts the platform, so adding new push methods (e.g. PWA Web Push) needs no change to triggers or VTA config. A handle is a bearer capability to *request* a wake (subject to the gateway's allowlist), never to read the channel.
|
|
11045
11359
|
*/
|
|
@@ -11165,7 +11479,7 @@ export interface WitnessKey {
|
|
|
11165
11479
|
* The outcome of one write within a `vta/app-state/put-many` batch. Per-record rather than per-batch, because the default batch mode applies each write on its own merits: a caller flushing ten unrelated edits needs to know which one conflicted, not merely that something did.
|
|
11166
11480
|
*/
|
|
11167
11481
|
export interface WriteResult {
|
|
11168
|
-
key:
|
|
11482
|
+
key: Key_VtaV0_1;
|
|
11169
11483
|
/**
|
|
11170
11484
|
* `written`: applied, and `version` carries the new value. `conflict`: `expectedVersion` did not match; `currentVersion`, `currentValue` and `currentDeleted` carry the maintainer's view so the caller can resolve without a re-read. `tooLarge`: the value exceeded the per-record cap; `limitBytes` and `actualBytes` say by how much. `notFound`: a `mergePatch` write named an address with no live record. `skipped`: atomic mode only — this write was not attempted because another in the batch failed.
|
|
11171
11485
|
*/
|
|
@@ -257,7 +257,8 @@ export const PAYLOAD_SCHEMA = {
|
|
|
257
257
|
"externalAuthUse",
|
|
258
258
|
"pcsVetter",
|
|
259
259
|
"pcsApplicant",
|
|
260
|
-
"witnessRequest"
|
|
260
|
+
"witnessRequest",
|
|
261
|
+
"pcsVoter"
|
|
261
262
|
],
|
|
262
263
|
"description": "Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything."
|
|
263
264
|
},
|
|
@@ -605,7 +606,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
605
606
|
"externalAuthUse",
|
|
606
607
|
"pcsVetter",
|
|
607
608
|
"pcsApplicant",
|
|
608
|
-
"witnessRequest"
|
|
609
|
+
"witnessRequest",
|
|
610
|
+
"pcsVoter"
|
|
609
611
|
],
|
|
610
612
|
"description": "Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything."
|
|
611
613
|
},
|
|
@@ -225,7 +225,8 @@ export const PAYLOAD_SCHEMA = {
|
|
|
225
225
|
"externalAuthUse",
|
|
226
226
|
"pcsVetter",
|
|
227
227
|
"pcsApplicant",
|
|
228
|
-
"witnessRequest"
|
|
228
|
+
"witnessRequest",
|
|
229
|
+
"pcsVoter"
|
|
229
230
|
],
|
|
230
231
|
"description": "Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything."
|
|
231
232
|
},
|
|
@@ -563,7 +564,8 @@ export const RESPONSE_PAYLOAD_SCHEMA = {
|
|
|
563
564
|
"externalAuthUse",
|
|
564
565
|
"pcsVetter",
|
|
565
566
|
"pcsApplicant",
|
|
566
|
-
"witnessRequest"
|
|
567
|
+
"witnessRequest",
|
|
568
|
+
"pcsVoter"
|
|
567
569
|
],
|
|
568
570
|
"description": "Fine-grained capability flag scoped to the device's allowed contexts. See SPEC.md for the full semantics of each. Capability values are additive: a consumer MUST ignore a value it does not recognise rather than reject the binding, and MUST NOT treat an unrecognised value as conferring anything."
|
|
569
571
|
},
|
package/src/index.ts
CHANGED
|
@@ -584,6 +584,17 @@ export * as VettingAttestation_v0_1 from "./vetting/attestation/0.1/payload.js";
|
|
|
584
584
|
export * as VettingDecline_v0_1 from "./vetting/decline/0.1/payload.js";
|
|
585
585
|
export * as VettingRequest_v0_1 from "./vetting/request/0.1/payload.js";
|
|
586
586
|
export * as VettingSession_v0_1 from "./vetting/session/0.1/payload.js";
|
|
587
|
+
export * as VotingShared_v0_1 from "./voting/_shared/0.1/voting.js";
|
|
588
|
+
export * as VotingBallotCast_v0_1 from "./voting/ballot/cast/0.1/payload.js";
|
|
589
|
+
export * as VotingBoardConsistency_v0_1 from "./voting/board/consistency/0.1/payload.js";
|
|
590
|
+
export * as VotingBoardHead_v0_1 from "./voting/board/head/0.1/payload.js";
|
|
591
|
+
export * as VotingBoardInclusion_v0_1 from "./voting/board/inclusion/0.1/payload.js";
|
|
592
|
+
export * as VotingBoardRead_v0_1 from "./voting/board/read/0.1/payload.js";
|
|
593
|
+
export * as VotingElectionCancel_v0_1 from "./voting/election/cancel/0.1/payload.js";
|
|
594
|
+
export * as VotingElectionClose_v0_1 from "./voting/election/close/0.1/payload.js";
|
|
595
|
+
export * as VotingElectionRegister_v0_1 from "./voting/election/register/0.1/payload.js";
|
|
596
|
+
export * as VotingElectionShow_v0_1 from "./voting/election/show/0.1/payload.js";
|
|
597
|
+
export * as VotingResultShow_v0_1 from "./voting/result/show/0.1/payload.js";
|
|
587
598
|
export * as VrcRelationshipsIssue_v0_1 from "./vrc/relationships/issue/0.1/payload.js";
|
|
588
599
|
export * as VrcRelationshipsPropose_v0_1 from "./vrc/relationships/propose/0.1/payload.js";
|
|
589
600
|
export * as AppStateRecordShared_v0_1 from "./vta/_shared/0.1/app-state-record.js";
|
|
@@ -676,6 +687,10 @@ export * as VtaPcsTokensAccept_v0_1 from "./vta/pcs/tokens/accept/0.1/payload.js
|
|
|
676
687
|
export * as VtaPcsTokensRequest_v0_1 from "./vta/pcs/tokens/request/0.1/payload.js";
|
|
677
688
|
export * as VtaPcsVerifyAttestation_v0_1 from "./vta/pcs/verify-attestation/0.1/payload.js";
|
|
678
689
|
export * as VtaPcsVetterShow_v0_1 from "./vta/pcs/vetter/show/0.1/payload.js";
|
|
690
|
+
export * as VtaPcsVote_v0_1 from "./vta/pcs/vote/0.1/payload.js";
|
|
691
|
+
export * as VtaPcsVoterAccept_v0_1 from "./vta/pcs/voter/accept/0.1/payload.js";
|
|
692
|
+
export * as VtaPcsVoterReceipt_v0_1 from "./vta/pcs/voter/receipt/0.1/payload.js";
|
|
693
|
+
export * as VtaPcsVoterRegister_v0_1 from "./vta/pcs/voter/register/0.1/payload.js";
|
|
679
694
|
export * as VtaRestoreStatus_v0_1 from "./vta/restore/status/0.1/payload.js";
|
|
680
695
|
export * as VtaServicesDisable_v1_0 from "./vta/services/disable/1.0/payload.js";
|
|
681
696
|
export * as VtaServicesDrainCancel_v1_0 from "./vta/services/drain/cancel/1.0/payload.js";
|
|
@@ -812,6 +827,13 @@ export * as VtcDirectoryNotesAppend_v0_1 from "./vtc/directory/notes/append/0.1/
|
|
|
812
827
|
export * as VtcDirectoryNotesExport_v0_1 from "./vtc/directory/notes/export/0.1/payload.js";
|
|
813
828
|
export * as VtcDirectoryNotesList_v0_1 from "./vtc/directory/notes/list/0.1/payload.js";
|
|
814
829
|
export * as VtcDirectoryQuery_v0_1 from "./vtc/directory/query/0.1/payload.js";
|
|
830
|
+
export * as VtcElectionsCancel_v0_1 from "./vtc/elections/cancel/0.1/payload.js";
|
|
831
|
+
export * as VtcElectionsCertify_v0_1 from "./vtc/elections/certify/0.1/payload.js";
|
|
832
|
+
export * as VtcElectionsClose_v0_1 from "./vtc/elections/close/0.1/payload.js";
|
|
833
|
+
export * as VtcElectionsCreate_v0_1 from "./vtc/elections/create/0.1/payload.js";
|
|
834
|
+
export * as VtcElectionsList_v0_1 from "./vtc/elections/list/0.1/payload.js";
|
|
835
|
+
export * as VtcElectionsShow_v0_1 from "./vtc/elections/show/0.1/payload.js";
|
|
836
|
+
export * as VtcElectionsTicketsIssue_v0_1 from "./vtc/elections/tickets/issue/0.1/payload.js";
|
|
815
837
|
export * as VtcEndorsementTypesDelete_v0_1 from "./vtc/endorsement-types/delete/0.1/payload.js";
|
|
816
838
|
export * as VtcEndorsementTypesList_v0_1 from "./vtc/endorsement-types/list/0.1/payload.js";
|
|
817
839
|
export * as VtcEndorsementTypesRegister_v0_1 from "./vtc/endorsement-types/register/0.1/payload.js";
|
|
@@ -828,6 +850,8 @@ export * as VtcGroupsDelete_v0_1 from "./vtc/groups/delete/0.1/payload.js";
|
|
|
828
850
|
export * as VtcGroupsJoin_v0_1 from "./vtc/groups/join/0.1/payload.js";
|
|
829
851
|
export * as VtcGroupsLeave_v0_1 from "./vtc/groups/leave/0.1/payload.js";
|
|
830
852
|
export * as VtcGroupsList_v0_1 from "./vtc/groups/list/0.1/payload.js";
|
|
853
|
+
export * as VtcGroupsManagersAdd_v0_1 from "./vtc/groups/managers/add/0.1/payload.js";
|
|
854
|
+
export * as VtcGroupsManagersRemove_v0_1 from "./vtc/groups/managers/remove/0.1/payload.js";
|
|
831
855
|
export * as VtcGroupsMembersAdd_v0_1 from "./vtc/groups/members/add/0.1/payload.js";
|
|
832
856
|
export * as VtcGroupsMembersList_v0_1 from "./vtc/groups/members/list/0.1/payload.js";
|
|
833
857
|
export * as VtcGroupsMembersRemove_v0_1 from "./vtc/groups/members/remove/0.1/payload.js";
|