@openvtc/trust-tasks 0.25.1 → 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 +18 -0
- package/dist/_shared/components.d.ts +304 -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 +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- 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 +308 -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 +14 -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,24 @@ 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
|
+
|
|
14
32
|
## 0.25.1 — 2026-10-12
|
|
15
33
|
|
|
16
34
|
|
|
@@ -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
|
*/
|
|
@@ -699,6 +707,10 @@ export type MatchNumber = string;
|
|
|
699
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.
|
|
700
708
|
*/
|
|
701
709
|
export type Mode = "scan";
|
|
710
|
+
/**
|
|
711
|
+
* A binary value, multibase base58btc over the suite's canonical encoding.
|
|
712
|
+
*/
|
|
713
|
+
export type Multibase = string;
|
|
702
714
|
/**
|
|
703
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.
|
|
704
716
|
*/
|
|
@@ -1109,6 +1121,10 @@ export type StorageSettings = LocalSettings | S3Settings | GcsSettings | WalrusS
|
|
|
1109
1121
|
export type SweepMinutes = number;
|
|
1110
1122
|
export type SyncEvent_SyncV0_1 = VaultUpsertedEvent_SyncV0_1 | VaultDeletedEvent_SyncV0_1 | AclChangedEvent_SyncV0_1 | PolicyChangedEvent_SyncV0_1;
|
|
1111
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;
|
|
1112
1128
|
/**
|
|
1113
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.
|
|
1114
1130
|
*/
|
|
@@ -3536,6 +3552,37 @@ export interface AppStateRecord {
|
|
|
3536
3552
|
*/
|
|
3537
3553
|
deletedAt?: string;
|
|
3538
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
|
+
}
|
|
3539
3586
|
/**
|
|
3540
3587
|
* Exactly the listed capabilities, intersected with the role's approve ceiling where the maintainer's roles define one.
|
|
3541
3588
|
*/
|
|
@@ -3642,6 +3689,38 @@ export interface AttachmentRef_VaultV0_3 {
|
|
|
3642
3689
|
*/
|
|
3643
3690
|
export interface AttestStatement {
|
|
3644
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
|
+
}
|
|
3645
3724
|
/**
|
|
3646
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.
|
|
3647
3726
|
*/
|
|
@@ -5510,6 +5589,41 @@ export interface GitNamespace {
|
|
|
5510
5589
|
*/
|
|
5511
5590
|
state: "pending" | "bound";
|
|
5512
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
|
+
}
|
|
5513
5627
|
/**
|
|
5514
5628
|
* One histogram's distribution, in the Prometheus cumulative-bucket convention: each bucket's `count` includes every observation at or below its `le`.
|
|
5515
5629
|
*/
|
|
@@ -6752,6 +6866,38 @@ export interface PublicKeyCredentialRequestOptions {
|
|
|
6752
6866
|
allowCredentials?: PublicKeyCredentialDescriptor[];
|
|
6753
6867
|
userVerification?: "discouraged" | "preferred" | "required";
|
|
6754
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
|
+
}
|
|
6755
6901
|
export interface Apns {
|
|
6756
6902
|
platform: "apns";
|
|
6757
6903
|
/**
|
|
@@ -7989,6 +8135,61 @@ export interface StatePin {
|
|
|
7989
8135
|
*/
|
|
7990
8136
|
version: string;
|
|
7991
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
|
+
}
|
|
7992
8193
|
export interface StepUpProof_VaultV0_1 {
|
|
7993
8194
|
kind: "webauthn-uv" | "push-approval" | "totp";
|
|
7994
8195
|
/**
|
|
@@ -8088,6 +8289,43 @@ export interface StorageHealth {
|
|
|
8088
8289
|
*/
|
|
8089
8290
|
lastDeleteAt?: string;
|
|
8090
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
|
+
}
|
|
8091
8329
|
/**
|
|
8092
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.
|
|
8093
8331
|
*/
|
|
@@ -8109,6 +8347,13 @@ export interface StreamDescriptor {
|
|
|
8109
8347
|
expectedSizeBytes: ExpectedSizeBytes;
|
|
8110
8348
|
expiresAt: ExpiresAt;
|
|
8111
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
|
+
}
|
|
8112
8357
|
/**
|
|
8113
8358
|
* One Move function an account's transactions may call.
|
|
8114
8359
|
*/
|
|
@@ -8184,6 +8429,16 @@ export interface SyncUpdate {
|
|
|
8184
8429
|
disabled: boolean;
|
|
8185
8430
|
ext?: Ext;
|
|
8186
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
|
+
}
|
|
8187
8442
|
/**
|
|
8188
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.
|
|
8189
8444
|
*/
|
|
@@ -8217,6 +8472,13 @@ export interface TokenBundle {
|
|
|
8217
8472
|
*/
|
|
8218
8473
|
ext?: Ext;
|
|
8219
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
|
+
}
|
|
8220
8482
|
/**
|
|
8221
8483
|
* Why a frame was refused or failed.
|
|
8222
8484
|
*/
|
|
@@ -8679,6 +8941,46 @@ export interface VetterLocation {
|
|
|
8679
8941
|
region?: PlaceName;
|
|
8680
8942
|
city?: PlaceName;
|
|
8681
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
|
+
}
|
|
8682
8984
|
export interface VettingCard {
|
|
8683
8985
|
/**
|
|
8684
8986
|
* Exactly `VerifiableDataStructure`, `RelationshipCard` and `VettingCard`, in any order.
|