@openvtc/trust-tasks 0.25.0 → 0.25.2
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 +29 -0
- package/dist/_shared/components.d.ts +308 -2
- package/dist/_shared/components.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.d.ts +4 -4
- package/dist/device/list/0.1/payload.d.ts.map +1 -1
- package/dist/device/list/0.1/payload.js +6 -2
- package/dist/device/list/0.1/payload.js.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 +6 -2
- package/dist/device/list/0.2/payload.js.map +1 -1
- package/dist/device/register/0.1/payload.d.ts +4 -4
- package/dist/device/register/0.1/payload.d.ts.map +1 -1
- package/dist/device/register/0.1/payload.js +6 -2
- package/dist/device/register/0.1/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 +6 -2
- package/dist/device/register/0.2/payload.js.map +1 -1
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/dist/provision/vta/_shared/0.1/vta.d.ts +16 -0
- package/dist/provision/vta/_shared/0.1/vta.d.ts.map +1 -0
- package/dist/provision/vta/_shared/0.1/vta.js +6 -0
- package/dist/provision/vta/_shared/0.1/vta.js.map +1 -0
- package/dist/provision/vta/claim/0.1/payload.d.ts +115 -0
- package/dist/provision/vta/claim/0.1/payload.d.ts.map +1 -0
- package/dist/provision/vta/claim/0.1/payload.js +69 -0
- package/dist/provision/vta/claim/0.1/payload.js.map +1 -0
- package/dist/provision/vta/redeem/0.1/payload.d.ts +371 -0
- package/dist/provision/vta/redeem/0.1/payload.d.ts.map +1 -0
- package/dist/provision/vta/redeem/0.1/payload.js +207 -0
- package/dist/provision/vta/redeem/0.1/payload.js.map +1 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.d.ts +16 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.d.ts.map +1 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.js +6 -0
- package/dist/vetting/_shared/0.1/hidden-vetting.js.map +1 -0
- package/dist/vetting/attestation/0.1/payload.d.ts +94 -146
- package/dist/vetting/attestation/0.1/payload.d.ts.map +1 -1
- package/dist/vetting/attestation/0.1/payload.js +43 -43
- package/dist/vetting/attestation/0.1/payload.js.map +1 -1
- package/dist/vta/_shared/0.4/pcs-engine.d.ts +16 -0
- package/dist/vta/_shared/0.4/pcs-engine.d.ts.map +1 -0
- package/dist/vta/_shared/0.4/pcs-engine.js +6 -0
- package/dist/vta/_shared/0.4/pcs-engine.js.map +1 -0
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts +1215 -0
- package/dist/vta/pcs/applications/create/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/create/0.1/payload.js +724 -0
- package/dist/vta/pcs/applications/create/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.d.ts +253 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.js +146 -0
- package/dist/vta/pcs/applications/delete/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts +733 -0
- package/dist/vta/pcs/applications/show/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/applications/show/0.1/payload.js +450 -0
- package/dist/vta/pcs/applications/show/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/attest/0.1/payload.d.ts +1456 -0
- package/dist/vta/pcs/attest/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/attest/0.1/payload.js +876 -0
- package/dist/vta/pcs/attest/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/prove/0.1/payload.d.ts +1348 -0
- package/dist/vta/pcs/prove/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/prove/0.1/payload.js +804 -0
- package/dist/vta/pcs/prove/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts +1100 -0
- package/dist/vta/pcs/root-accept/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/root-accept/0.1/payload.js +634 -0
- package/dist/vta/pcs/root-accept/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/root-request/0.1/payload.d.ts +880 -0
- package/dist/vta/pcs/root-request/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/root-request/0.1/payload.js +496 -0
- package/dist/vta/pcs/root-request/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts +612 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.js +355 -0
- package/dist/vta/pcs/tokens/abandon/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts +1149 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.js +657 -0
- package/dist/vta/pcs/tokens/accept/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.d.ts +908 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.js +508 -0
- package/dist/vta/pcs/tokens/request/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts +1423 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.js +850 -0
- package/dist/vta/pcs/verify-attestation/0.1/payload.js.map +1 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts +605 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.d.ts.map +1 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.js +351 -0
- package/dist/vta/pcs/vetter/show/0.1/payload.js.map +1 -0
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts +403 -486
- package/dist/vtc/vetting/hidden/publish/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js +240 -240
- package/dist/vtc/vetting/hidden/publish/0.1/payload.js.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts +482 -565
- package/dist/vtc/vetting/hidden/show/0.1/payload.d.ts.map +1 -1
- package/dist/vtc/vetting/hidden/show/0.1/payload.js +294 -294
- package/dist/vtc/vetting/hidden/show/0.1/payload.js.map +1 -1
- package/package.json +1 -1
- package/src/_shared/components.ts +312 -2
- package/src/device/list/0.1/payload.ts +6 -2
- package/src/device/list/0.2/payload.ts +6 -2
- package/src/device/register/0.1/payload.ts +6 -2
- package/src/device/register/0.2/payload.ts +6 -2
- package/src/index.ts +17 -0
- package/src/provision/vta/_shared/0.1/vta.ts +17 -0
- package/src/provision/vta/claim/0.1/payload.ts +88 -0
- package/src/provision/vta/redeem/0.1/payload.ts +255 -0
- package/src/vetting/_shared/0.1/hidden-vetting.ts +17 -0
- package/src/vetting/attestation/0.1/payload.ts +49 -101
- package/src/vta/_shared/0.4/pcs-engine.ts +17 -0
- package/src/vta/pcs/applications/create/0.1/payload.ts +768 -0
- package/src/vta/pcs/applications/delete/0.1/payload.ts +182 -0
- package/src/vta/pcs/applications/show/0.1/payload.ts +482 -0
- package/src/vta/pcs/attest/0.1/payload.ts +943 -0
- package/src/vta/pcs/prove/0.1/payload.ts +845 -0
- package/src/vta/pcs/root-accept/0.1/payload.ts +681 -0
- package/src/vta/pcs/root-request/0.1/payload.ts +559 -0
- package/src/vta/pcs/tokens/abandon/0.1/payload.ts +392 -0
- package/src/vta/pcs/tokens/accept/0.1/payload.ts +713 -0
- package/src/vta/pcs/tokens/request/0.1/payload.ts +581 -0
- package/src/vta/pcs/verify-attestation/0.1/payload.ts +888 -0
- package/src/vta/pcs/vetter/show/0.1/payload.ts +387 -0
- package/src/vtc/vetting/hidden/publish/0.1/payload.ts +247 -331
- package/src/vtc/vetting/hidden/show/0.1/payload.ts +295 -379
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,35 @@ The package versions over **its own API** — what a consumer compiles against
|
|
|
11
11
|
not over `SPEC.md`. Below 1.0 a breaking change bumps the leading non-zero
|
|
12
12
|
component.
|
|
13
13
|
|
|
14
|
+
## 0.25.2 — 2026-10-13
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **vta/pcs**: The VTA as hidden-vetting (PCS) engine — applicant and vetter tasks (#756)
|
|
20
|
+
|
|
21
|
+
* feat(vta/pcs): the VTA as hidden-vetting (PCS) engine — applicant and vetter tasks
|
|
22
|
+
|
|
23
|
+
A community that runs hidden vetting admits an applicant on a zero-knowledge
|
|
24
|
+
proof that enough distinct eligible vetters vetted them. Every vetter and
|
|
25
|
+
applicant holds a PCS secret key, and until now the member side ran only in a
|
|
26
|
+
client that links the PCS library — so a wallet with no PCS implementation
|
|
27
|
+
(a mobile app) could not take part at all.
|
|
28
|
+
|
|
29
|
+
This adds the vta/pcs/* family: the VTA holds the PCS keys and runs every
|
|
30
|
+
member-side operation; the client carries messages and never holds a key.
|
|
31
|
+
|
|
32
|
+
## 0.25.1 — 2026-10-12
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **provision/vta**: Add the VTA Farm claim and redeem tasks for the vta-claim trigger-link flow (#753)
|
|
38
|
+
|
|
39
|
+
* feat(provision/vta/claim): add the VTA Farm claim task for the vta-claim trigger-link flow
|
|
40
|
+
|
|
41
|
+
The first request of the vta-claim flow (VTI-LNK-110 to 117): a wallet claims a reserved VTA from a Farm with a fresh Ed25519 did:key that becomes the VTA's administrator, and the Farm answers with the VTA DID, the operation and whether it holds the VTA for the claim check. Patterned on auth/oob/claim; bindings regenerated for Rust, TypeScript, Go and Dart.
|
|
42
|
+
|
|
14
43
|
## 0.25.0 — 2026-10-11
|
|
15
44
|
|
|
16
45
|
|
|
@@ -349,6 +349,10 @@ export type ApproverDid = string;
|
|
|
349
349
|
* A human-readable name for where the approver lives — e.g. `Browser plugin — work laptop`. Chosen by the subject (or suggested by an inviter), untrusted, and attributed to its author wherever it is rendered. Absent rather than invented when none was chosen.
|
|
350
350
|
*/
|
|
351
351
|
export type ApproverLabel = string;
|
|
352
|
+
/**
|
|
353
|
+
* The metadata of one attestation: what a Vetting Statement would have said, minus its issuer, as vetting/attestation/0.1 defines it.
|
|
354
|
+
*/
|
|
355
|
+
export type AttestationMeta = StatementMeta;
|
|
352
356
|
/**
|
|
353
357
|
* The kind of privileged change recorded in the audit log.
|
|
354
358
|
*/
|
|
@@ -392,11 +396,11 @@ export type Capability_AclV0_2 = string;
|
|
|
392
396
|
/**
|
|
393
397
|
* 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.
|
|
394
398
|
*/
|
|
395
|
-
export type Capability_DeviceV0_1 = "vault-read" | "vault-write" | "proxy-login" | "fill-release" | "policy-admin" | "device-admin" | "sign" | "key-mint" | "sign-trust-task" | "credential-write" | "memory-read" | "memory-write" | "room-present" | "room-open" | "key-export" | "sign-sshsig" | "sign-jws" | "sign-csr" | "external-accounts-manage" | "external-auth-use";
|
|
399
|
+
export type Capability_DeviceV0_1 = "vault-read" | "vault-write" | "proxy-login" | "fill-release" | "policy-admin" | "device-admin" | "sign" | "key-mint" | "sign-trust-task" | "credential-write" | "memory-read" | "memory-write" | "room-present" | "room-open" | "key-export" | "sign-sshsig" | "sign-jws" | "sign-csr" | "external-accounts-manage" | "external-auth-use" | "pcs-vetter" | "pcs-applicant";
|
|
396
400
|
/**
|
|
397
401
|
* 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.
|
|
398
402
|
*/
|
|
399
|
-
export type Capability_DeviceV0_2 = "vaultRead" | "vaultWrite" | "proxyLogin" | "fillRelease" | "policyAdmin" | "deviceAdmin" | "sign" | "keyMint" | "signTrustTask" | "credentialWrite" | "memoryRead" | "memoryWrite" | "roomPresent" | "roomOpen" | "keyExport" | "signSshsig" | "signJws" | "signCsr" | "externalAccountsManage" | "externalAuthUse";
|
|
403
|
+
export type Capability_DeviceV0_2 = "vaultRead" | "vaultWrite" | "proxyLogin" | "fillRelease" | "policyAdmin" | "deviceAdmin" | "sign" | "keyMint" | "signTrustTask" | "credentialWrite" | "memoryRead" | "memoryWrite" | "roomPresent" | "roomOpen" | "keyExport" | "signSshsig" | "signJws" | "signCsr" | "externalAccountsManage" | "externalAuthUse" | "pcsVetter" | "pcsApplicant";
|
|
400
404
|
/**
|
|
401
405
|
* 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.
|
|
402
406
|
*/
|
|
@@ -421,6 +425,10 @@ export type ChunkSize = number;
|
|
|
421
425
|
* The `x:` prefix is an open extension namespace and is not decoration. The closest prior art — Windows CardSpace's self-issued card — supported exactly fifteen predefined claim types with no extensibility, and that is the specific way it failed the requirement a holder actually has. An `x:` attribute stores, composes, binds and discloses exactly like a known one; it renders generically and matches only an explicit query.
|
|
422
426
|
*/
|
|
423
427
|
export type ClaimType = string;
|
|
428
|
+
/**
|
|
429
|
+
* The community's hidden-vetting parameters exactly as its join manifest publishes them, under the criterion's `vetting.ext`. The caller copies them in verbatim on every call that needs them, because the community rotates labels and the engine keeps no copy of its own: a stale copy costs the caller a refused proof, never a mistaken one.
|
|
430
|
+
*/
|
|
431
|
+
export type CommunityParameters = PublishedConfig;
|
|
424
432
|
/**
|
|
425
433
|
* `active`: accepts new rooms and new uploads. `draining`: retired by an administrator while blobs still name it — refuses new rooms and new uploads, keeps serving reads, and becomes `retired` when a migration has emptied it. `retired`: refuses new rooms and new uploads and holds no blob. A config is never deleted while a blob names it.
|
|
426
434
|
*/
|
|
@@ -619,6 +627,10 @@ export type ForgeId = string;
|
|
|
619
627
|
* Validity of a grant the sweep issues, in seconds: between one day and two years, the bounds vtc/vetting/vetters/grant applies to an administrator's grants.
|
|
620
628
|
*/
|
|
621
629
|
export type GrantValiditySeconds = number;
|
|
630
|
+
/**
|
|
631
|
+
* The Farm-generated handle of one reservation: 16 to 32 bytes from a cryptographically secure random source, written as unpadded base64url (22 to 43 characters; 16 bytes, 22 characters, is what VTI-LNK-116 recommends). It is the `_id` of the trigger link (VTI-LNK-033) and is compared as a string. In a claim it MUST equal the document's `parentThreadId`. It confers no authority on its holder beyond the right to make one claim.
|
|
632
|
+
*/
|
|
633
|
+
export type Handle = string;
|
|
622
634
|
/**
|
|
623
635
|
* The highest version among the records `DataCommitment` covers. `0` for a room that holds none.
|
|
624
636
|
*
|
|
@@ -695,6 +707,10 @@ export type MatchNumber = string;
|
|
|
695
707
|
* 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.
|
|
696
708
|
*/
|
|
697
709
|
export type Mode = "scan";
|
|
710
|
+
/**
|
|
711
|
+
* A binary value, multibase base58btc over the suite's canonical encoding.
|
|
712
|
+
*/
|
|
713
|
+
export type Multibase = string;
|
|
698
714
|
/**
|
|
699
715
|
* 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.
|
|
700
716
|
*/
|
|
@@ -1105,6 +1121,10 @@ export type StorageSettings = LocalSettings | S3Settings | GcsSettings | WalrusS
|
|
|
1105
1121
|
export type SweepMinutes = number;
|
|
1106
1122
|
export type SyncEvent_SyncV0_1 = VaultUpsertedEvent_SyncV0_1 | VaultDeletedEvent_SyncV0_1 | AclChangedEvent_SyncV0_1 | PolicyChangedEvent_SyncV0_1;
|
|
1107
1123
|
export type SyncEvent_SyncV0_2 = VaultUpsertedEvent_SyncV0_2 | VaultDeletedEvent_SyncV0_2 | AclChangedEvent_SyncV0_2 | PolicyChangedEvent_SyncV0_2;
|
|
1124
|
+
/**
|
|
1125
|
+
* The length of one tick of the drip, as an ISO 8601 duration in days and/or hours — at least `PT1H`. A label's tick `t` is the window starting `t` tick lengths after the label's start (`vtc/vetting/vetters/pcs-tokens`).
|
|
1126
|
+
*/
|
|
1127
|
+
export type TickLength = string;
|
|
1108
1128
|
/**
|
|
1109
1129
|
* One kind of change a console can be told about. A closed set: a topic not listed here is a new MINOR version of this component, not an `ext` member, because each topic is bound to the read that authorizes it.
|
|
1110
1130
|
*/
|
|
@@ -3532,6 +3552,37 @@ export interface AppStateRecord {
|
|
|
3532
3552
|
*/
|
|
3533
3553
|
deletedAt?: string;
|
|
3534
3554
|
}
|
|
3555
|
+
/**
|
|
3556
|
+
* An applicant engine as the VTA holds it, without its key.
|
|
3557
|
+
*/
|
|
3558
|
+
export interface ApplicationSummary {
|
|
3559
|
+
/**
|
|
3560
|
+
* The VTA's handle for this application. Opaque; never sent to the community.
|
|
3561
|
+
*/
|
|
3562
|
+
applicationId: string;
|
|
3563
|
+
/**
|
|
3564
|
+
* The context the application's key is derived in.
|
|
3565
|
+
*/
|
|
3566
|
+
contextId: string;
|
|
3567
|
+
/**
|
|
3568
|
+
* The community's DID.
|
|
3569
|
+
*/
|
|
3570
|
+
community: string;
|
|
3571
|
+
/**
|
|
3572
|
+
* The DID the application joins as.
|
|
3573
|
+
*/
|
|
3574
|
+
joinDid: string;
|
|
3575
|
+
suite: string;
|
|
3576
|
+
/**
|
|
3577
|
+
* The applicant's PCS identifier: what a vetter attests to, carried in a vetting/request's `ext`.
|
|
3578
|
+
*/
|
|
3579
|
+
id: Multibase;
|
|
3580
|
+
/**
|
|
3581
|
+
* The metadata of each attestation held, in the order received. Metadata names no vetter.
|
|
3582
|
+
*/
|
|
3583
|
+
attestations: StatementMeta[];
|
|
3584
|
+
createdAt: string;
|
|
3585
|
+
}
|
|
3535
3586
|
/**
|
|
3536
3587
|
* Exactly the listed capabilities, intersected with the role's approve ceiling where the maintainer's roles define one.
|
|
3537
3588
|
*/
|
|
@@ -3638,6 +3689,38 @@ export interface AttachmentRef_VaultV0_3 {
|
|
|
3638
3689
|
*/
|
|
3639
3690
|
export interface AttestStatement {
|
|
3640
3691
|
}
|
|
3692
|
+
/**
|
|
3693
|
+
* An attestation as a vetter hands it to an applicant: the payload of vetting/attestation/0.1, without its `ext`. The engine produces it from vta/pcs/attest and takes it into vta/pcs/verify-attestation.
|
|
3694
|
+
*/
|
|
3695
|
+
export interface Attestation {
|
|
3696
|
+
/**
|
|
3697
|
+
* The suite the attestation was made under, as the community publishes it.
|
|
3698
|
+
*/
|
|
3699
|
+
suite: string;
|
|
3700
|
+
/**
|
|
3701
|
+
* The attestation: a tag, a shown class credential and a proof. It names no vetter.
|
|
3702
|
+
*/
|
|
3703
|
+
attestation: Multibase;
|
|
3704
|
+
meta: StatementMeta;
|
|
3705
|
+
token: AttestationToken;
|
|
3706
|
+
}
|
|
3707
|
+
/**
|
|
3708
|
+
* The attestation token spent on one attestation: the label it was drawn under, the serial its spend reveals, and its re-randomised signature. The same members as `token` in vetting/attestation/0.1.
|
|
3709
|
+
*/
|
|
3710
|
+
export interface AttestationToken {
|
|
3711
|
+
/**
|
|
3712
|
+
* The token label spent under.
|
|
3713
|
+
*/
|
|
3714
|
+
label: string;
|
|
3715
|
+
/**
|
|
3716
|
+
* The serial revealed by the spend.
|
|
3717
|
+
*/
|
|
3718
|
+
serial: Multibase;
|
|
3719
|
+
/**
|
|
3720
|
+
* The re-randomised token signature, verifiable under the published token key.
|
|
3721
|
+
*/
|
|
3722
|
+
shown: Multibase;
|
|
3723
|
+
}
|
|
3641
3724
|
/**
|
|
3642
3725
|
* 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.
|
|
3643
3726
|
*/
|
|
@@ -5506,6 +5589,41 @@ export interface GitNamespace {
|
|
|
5506
5589
|
*/
|
|
5507
5590
|
state: "pending" | "bound";
|
|
5508
5591
|
}
|
|
5592
|
+
/**
|
|
5593
|
+
* The applicant's proof that distinct eligible vetters of the community vetted it, as a join submission carries it under `extensions.hiddenVetting`. Built by vta/pcs/prove, verified by the community.
|
|
5594
|
+
*/
|
|
5595
|
+
export interface HiddenVettingSubmission {
|
|
5596
|
+
/**
|
|
5597
|
+
* The suite the proof is built in.
|
|
5598
|
+
*/
|
|
5599
|
+
suite: string;
|
|
5600
|
+
/**
|
|
5601
|
+
* The applicant's PCS identifier for this application.
|
|
5602
|
+
*/
|
|
5603
|
+
id: Multibase;
|
|
5604
|
+
/**
|
|
5605
|
+
* The DID the applicant joins as. Bound to `id` by `idBinding`.
|
|
5606
|
+
*/
|
|
5607
|
+
joinDid: string;
|
|
5608
|
+
/**
|
|
5609
|
+
* The binding of `id` to `joinDid`, the community and the requirements digest, so a proof cannot be carried to another join: lowercase hex of a SHA-256 over the four values, each length-prefixed. The proof commits to it, and the community recomputes it.
|
|
5610
|
+
*/
|
|
5611
|
+
idBinding: string;
|
|
5612
|
+
/**
|
|
5613
|
+
* The community's single-use challenge, as vtc/vetting/pcs-challenge issued it.
|
|
5614
|
+
*/
|
|
5615
|
+
challenge: string;
|
|
5616
|
+
/**
|
|
5617
|
+
* One entry per attestation the proof carries, in the proof's order.
|
|
5618
|
+
*
|
|
5619
|
+
* @minItems 1
|
|
5620
|
+
*/
|
|
5621
|
+
statements: [SubmittedStatement, ...SubmittedStatement[]];
|
|
5622
|
+
/**
|
|
5623
|
+
* The issuance proof, which carries the attestations.
|
|
5624
|
+
*/
|
|
5625
|
+
proof: Multibase;
|
|
5626
|
+
}
|
|
5509
5627
|
/**
|
|
5510
5628
|
* One histogram's distribution, in the Prometheus cumulative-bucket convention: each bucket's `count` includes every observation at or below its `le`.
|
|
5511
5629
|
*/
|
|
@@ -6748,6 +6866,38 @@ export interface PublicKeyCredentialRequestOptions {
|
|
|
6748
6866
|
allowCredentials?: PublicKeyCredentialDescriptor[];
|
|
6749
6867
|
userVerification?: "discouraged" | "preferred" | "required";
|
|
6750
6868
|
}
|
|
6869
|
+
/**
|
|
6870
|
+
* The parameters exactly as they now appear in this community's join manifest, under vetting.ext. What an applicant and a vetter read.
|
|
6871
|
+
*/
|
|
6872
|
+
export interface PublishedConfig {
|
|
6873
|
+
suite: string;
|
|
6874
|
+
/**
|
|
6875
|
+
* The helper verification key, multibase — named for its role on the wire rather than for hvk.
|
|
6876
|
+
*/
|
|
6877
|
+
helperKey: string;
|
|
6878
|
+
/**
|
|
6879
|
+
* The token verification key, multibase — named for its role on the wire rather than for tvk.
|
|
6880
|
+
*/
|
|
6881
|
+
tokenKey: string;
|
|
6882
|
+
/**
|
|
6883
|
+
* Class labels published whole, e.g. vetter/2026-09 — a request names one of these, not the bare period.
|
|
6884
|
+
*/
|
|
6885
|
+
vetterLabels: string[];
|
|
6886
|
+
tokenLabels: string[];
|
|
6887
|
+
dripPerTick: number;
|
|
6888
|
+
tickLength: TickLength;
|
|
6889
|
+
events: PublishedEvent[];
|
|
6890
|
+
}
|
|
6891
|
+
/**
|
|
6892
|
+
* The published shape drops approvedBy and graceDays: who approved is the community's own record, and a vetter is told closesAfter when its request is approved rather than being handed the raw grace period here.
|
|
6893
|
+
*/
|
|
6894
|
+
export interface PublishedEvent {
|
|
6895
|
+
eventId: string;
|
|
6896
|
+
startDate: string;
|
|
6897
|
+
endDate: string;
|
|
6898
|
+
groupFloor: number;
|
|
6899
|
+
tiers: Tier[];
|
|
6900
|
+
}
|
|
6751
6901
|
export interface Apns {
|
|
6752
6902
|
platform: "apns";
|
|
6753
6903
|
/**
|
|
@@ -7985,6 +8135,61 @@ export interface StatePin {
|
|
|
7985
8135
|
*/
|
|
7986
8136
|
version: string;
|
|
7987
8137
|
}
|
|
8138
|
+
/**
|
|
8139
|
+
* What a Vetting Statement would have said, minus its issuer.
|
|
8140
|
+
*/
|
|
8141
|
+
export interface StatementMeta {
|
|
8142
|
+
/**
|
|
8143
|
+
* The community this attestation is for. An attestation is not portable between communities.
|
|
8144
|
+
*/
|
|
8145
|
+
community: string;
|
|
8146
|
+
/**
|
|
8147
|
+
* The digest of the criterion's requirements as the vetter read them.
|
|
8148
|
+
*/
|
|
8149
|
+
requirementsDigest: string;
|
|
8150
|
+
/**
|
|
8151
|
+
* How the vetter met the applicant.
|
|
8152
|
+
*/
|
|
8153
|
+
method: "inPerson" | "video" | "priorAcquaintance";
|
|
8154
|
+
/**
|
|
8155
|
+
* The claim types the vetter checked.
|
|
8156
|
+
*
|
|
8157
|
+
* @minItems 1
|
|
8158
|
+
*/
|
|
8159
|
+
claimsVerified: [string, ...string[]];
|
|
8160
|
+
/**
|
|
8161
|
+
* Whether the vetter confirmed a live person.
|
|
8162
|
+
*/
|
|
8163
|
+
livenessConfirmed: boolean;
|
|
8164
|
+
/**
|
|
8165
|
+
* The relationship the vetter declared, which the community's independence rules count.
|
|
8166
|
+
*/
|
|
8167
|
+
declaredRelationship: "none" | "family" | "sameEmployer" | "closeFriend" | "other";
|
|
8168
|
+
/**
|
|
8169
|
+
* The commitment on the Vetting Card the applicant showed. Consistency across attestations is what stops two applicants pooling them.
|
|
8170
|
+
*/
|
|
8171
|
+
identityCommitment: string;
|
|
8172
|
+
/**
|
|
8173
|
+
* Digest of that card, as the vetter verified it.
|
|
8174
|
+
*/
|
|
8175
|
+
cardDigestMultibase: string;
|
|
8176
|
+
/**
|
|
8177
|
+
* A DATE, never a timestamp: an exact time would let a community line an attestation up with a vetter's activity, which undoes the proof without touching it.
|
|
8178
|
+
*/
|
|
8179
|
+
validFrom: string;
|
|
8180
|
+
/**
|
|
8181
|
+
* A date, for the same reason.
|
|
8182
|
+
*/
|
|
8183
|
+
validUntil: string;
|
|
8184
|
+
/**
|
|
8185
|
+
* The token label spent, repeated inside the bound facts so it cannot be swapped in transit.
|
|
8186
|
+
*/
|
|
8187
|
+
tokenLabel: string;
|
|
8188
|
+
/**
|
|
8189
|
+
* The token serial spent, likewise bound.
|
|
8190
|
+
*/
|
|
8191
|
+
tokenSerial: string;
|
|
8192
|
+
}
|
|
7988
8193
|
export interface StepUpProof_VaultV0_1 {
|
|
7989
8194
|
kind: "webauthn-uv" | "push-approval" | "totp";
|
|
7990
8195
|
/**
|
|
@@ -8084,6 +8289,43 @@ export interface StorageHealth {
|
|
|
8084
8289
|
*/
|
|
8085
8290
|
lastDeleteAt?: string;
|
|
8086
8291
|
}
|
|
8292
|
+
/**
|
|
8293
|
+
* The parameters exactly as the community stores them, including the helper key it never publishes.
|
|
8294
|
+
*/
|
|
8295
|
+
export interface StoredConfig {
|
|
8296
|
+
/**
|
|
8297
|
+
* The blind-signature suite in force, e.g. ps-ddh-bls12381.
|
|
8298
|
+
*/
|
|
8299
|
+
suite: string;
|
|
8300
|
+
/**
|
|
8301
|
+
* The helper verification key, multibase. A public value, published as helperKey.
|
|
8302
|
+
*/
|
|
8303
|
+
hvk: string;
|
|
8304
|
+
/**
|
|
8305
|
+
* The token verification key, multibase. Never the same key as hvk.
|
|
8306
|
+
*/
|
|
8307
|
+
tvk: string;
|
|
8308
|
+
/**
|
|
8309
|
+
* Live vetter class periods, current first, stored as the bare YYYY-MM period.
|
|
8310
|
+
*/
|
|
8311
|
+
livePeriods: string[];
|
|
8312
|
+
liveTokenLabels: string[];
|
|
8313
|
+
dripPerTick: number;
|
|
8314
|
+
tickLength: TickLength;
|
|
8315
|
+
events: StoredEvent[];
|
|
8316
|
+
}
|
|
8317
|
+
export interface StoredEvent {
|
|
8318
|
+
eventId: string;
|
|
8319
|
+
startDate: string;
|
|
8320
|
+
endDate: string;
|
|
8321
|
+
graceDays: number;
|
|
8322
|
+
groupFloor: number;
|
|
8323
|
+
tiers: Tier[];
|
|
8324
|
+
/**
|
|
8325
|
+
* Who approved the event, or null when nobody has. Recorded in storage only — dropped from the published shape (see published.events).
|
|
8326
|
+
*/
|
|
8327
|
+
approvedBy?: string | null;
|
|
8328
|
+
}
|
|
8087
8329
|
/**
|
|
8088
8330
|
* A descriptor for a transfer that happens outside Trust Task documents, at an address the recipient publishes — the `stream` algorithm, and any other algorithm a recipient offers that is shaped as an address plus a bearer credential. Identical in members to the `vta/backup/* /1.0` descriptor.
|
|
8089
8331
|
*/
|
|
@@ -8105,6 +8347,13 @@ export interface StreamDescriptor {
|
|
|
8105
8347
|
expectedSizeBytes: ExpectedSizeBytes;
|
|
8106
8348
|
expiresAt: ExpiresAt;
|
|
8107
8349
|
}
|
|
8350
|
+
/**
|
|
8351
|
+
* One attestation as a submission carries it: its metadata and its token. The attestation itself is inside the submission's `proof`, in the same order.
|
|
8352
|
+
*/
|
|
8353
|
+
export interface SubmittedStatement {
|
|
8354
|
+
meta: StatementMeta;
|
|
8355
|
+
token: AttestationToken;
|
|
8356
|
+
}
|
|
8108
8357
|
/**
|
|
8109
8358
|
* One Move function an account's transactions may call.
|
|
8110
8359
|
*/
|
|
@@ -8180,6 +8429,16 @@ export interface SyncUpdate {
|
|
|
8180
8429
|
disabled: boolean;
|
|
8181
8430
|
ext?: Ext;
|
|
8182
8431
|
}
|
|
8432
|
+
export interface Tier {
|
|
8433
|
+
/**
|
|
8434
|
+
* How the menu names it: desk, busy-desk.
|
|
8435
|
+
*/
|
|
8436
|
+
name: string;
|
|
8437
|
+
/**
|
|
8438
|
+
* How many tokens a tick under this tier yields.
|
|
8439
|
+
*/
|
|
8440
|
+
dripPerTick: number;
|
|
8441
|
+
}
|
|
8183
8442
|
/**
|
|
8184
8443
|
* An access token (typically short-lived JWT) paired with an optional refresh token (typically long-lived opaque string). The shapes follow OAuth 2.0 (RFC 6749 §5.1) conventions but are not coupled to any particular OAuth profile.
|
|
8185
8444
|
*/
|
|
@@ -8213,6 +8472,13 @@ export interface TokenBundle {
|
|
|
8213
8472
|
*/
|
|
8214
8473
|
ext?: Ext;
|
|
8215
8474
|
}
|
|
8475
|
+
/**
|
|
8476
|
+
* One draw of the token drip: a label and a tick.
|
|
8477
|
+
*/
|
|
8478
|
+
export interface TokenDraw {
|
|
8479
|
+
label: string;
|
|
8480
|
+
tick: number;
|
|
8481
|
+
}
|
|
8216
8482
|
/**
|
|
8217
8483
|
* Why a frame was refused or failed.
|
|
8218
8484
|
*/
|
|
@@ -8675,6 +8941,46 @@ export interface VetterLocation {
|
|
|
8675
8941
|
region?: PlaceName;
|
|
8676
8942
|
city?: PlaceName;
|
|
8677
8943
|
}
|
|
8944
|
+
/**
|
|
8945
|
+
* A vetter engine as the VTA holds it, without its key, its credentials or its tokens.
|
|
8946
|
+
*/
|
|
8947
|
+
export interface VetterSummary {
|
|
8948
|
+
contextId: string;
|
|
8949
|
+
community: string;
|
|
8950
|
+
/**
|
|
8951
|
+
* The member DID the engine draws tokens as. Bound into every token request.
|
|
8952
|
+
*/
|
|
8953
|
+
memberDid: string;
|
|
8954
|
+
suite: string;
|
|
8955
|
+
/**
|
|
8956
|
+
* The vetter's PCS identifier for this community.
|
|
8957
|
+
*/
|
|
8958
|
+
id: Multibase;
|
|
8959
|
+
/**
|
|
8960
|
+
* Class labels this vetter holds a credential under, newest first.
|
|
8961
|
+
*/
|
|
8962
|
+
enrolledLabels: string[];
|
|
8963
|
+
/**
|
|
8964
|
+
* Class labels requested and not yet accepted.
|
|
8965
|
+
*/
|
|
8966
|
+
pendingLabels: string[];
|
|
8967
|
+
/**
|
|
8968
|
+
* Tokens held and not reserved.
|
|
8969
|
+
*/
|
|
8970
|
+
tokensFree: number;
|
|
8971
|
+
/**
|
|
8972
|
+
* Tokens held in all.
|
|
8973
|
+
*/
|
|
8974
|
+
tokensHeld: number;
|
|
8975
|
+
/**
|
|
8976
|
+
* Draws requested and not yet accepted or abandoned.
|
|
8977
|
+
*/
|
|
8978
|
+
drawsInFlight: TokenDraw[];
|
|
8979
|
+
/**
|
|
8980
|
+
* Attestations made through this engine.
|
|
8981
|
+
*/
|
|
8982
|
+
attested: number;
|
|
8983
|
+
}
|
|
8678
8984
|
export interface VettingCard {
|
|
8679
8985
|
/**
|
|
8680
8986
|
* Exactly `VerifiableDataStructure`, `RelationshipCard` and `VettingCard`, in any order.
|