@openvtc/trust-tasks 0.21.5 → 0.21.6

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.
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/keys/import-wrapping-key/0.1/payload.schema.json
4
+ */
5
+ /** Trust Task type URI. */
6
+ export const TYPE_URI = "https://trusttasks.org/spec/keys/import-wrapping-key/0.1";
7
+ /** Trust Task response type URI (request type URI + "#response"). */
8
+ export const RESPONSE_TYPE_URI = "https://trusttasks.org/spec/keys/import-wrapping-key/0.1#response";
9
+ /**
10
+ * This specification's payload schema, as a value.
11
+ *
12
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
13
+ * rather than only as a `.json` file because TypeScript types are erased
14
+ * at runtime: without a schema a consumer has nothing to validate, and
15
+ * every REQUIRED payload member is optional in practice. Cross-file
16
+ * `$ref`s are already inlined, so it needs no resolver.
17
+ */
18
+ export const PAYLOAD_SCHEMA = {
19
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
20
+ "$id": "https://trusttasks.org/spec/keys/import-wrapping-key/0.1",
21
+ "title": "Keys — Import Wrapping Key — payload",
22
+ "description": "Asks a key custodian for a fresh, short-lived, single-use public key to seal a private key to before sending it in a keys/import request's `privateKeySealed` carrier. The request carries nothing. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.",
23
+ "type": "object",
24
+ "additionalProperties": false,
25
+ "properties": {
26
+ "ext": {
27
+ "$ref": "#/$defs/Ext",
28
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
29
+ }
30
+ },
31
+ "$defs": {
32
+ "Response": {
33
+ "$anchor": "response",
34
+ "title": "Keys — Import Wrapping Key — response payload",
35
+ "description": "The wrapping key the custodian has just generated, carried in a Trust Task document whose type is https://trusttasks.org/spec/keys/import-wrapping-key/0.1#response. Failures use trust-task-error, not this shape.",
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "required": [
39
+ "wrappingKey",
40
+ "keyId",
41
+ "expiresAt"
42
+ ],
43
+ "properties": {
44
+ "wrappingKey": {
45
+ "type": "string",
46
+ "pattern": "^did:key:z6Mk[1-9A-HJ-NP-Za-km-z]+$",
47
+ "maxLength": 128,
48
+ "description": "The wrapping key as an Ed25519 did:key. A producer seals to its X25519 counterpart (the birational map of RFC 7748 §4.1 applied to the Ed25519 public key), exactly as the sealed-transfer recipient of vta/attestation/mnemonic-export is addressed. Generated for this response alone: the custodian MUST NOT return the same key twice."
49
+ },
50
+ "keyId": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "maxLength": 128,
54
+ "description": "The custodian's opaque handle for this wrapping key. A `privateKeyJwe` carrier names it as its JWE `kid`. A `privateKeySealed` carrier does not need it: the custodian finds the key by trying the bundle against its unexpired, unused wrapping keys. Carries no meaning to the producer beyond equality."
55
+ },
56
+ "expiresAt": {
57
+ "type": "string",
58
+ "format": "date-time",
59
+ "description": "The instant after which the custodian will no longer open anything sealed to this key. RFC 3339 with an explicit offset. A producer that cannot complete keys/import before it asks for a new wrapping key rather than sending a bundle it knows will be refused."
60
+ },
61
+ "ext": {
62
+ "$ref": "#/$defs/Ext",
63
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
64
+ }
65
+ }
66
+ },
67
+ "Ext": {
68
+ "title": "Ext",
69
+ "description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
70
+ "type": "object",
71
+ "minProperties": 1,
72
+ "additionalProperties": true,
73
+ "propertyNames": {
74
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
75
+ }
76
+ }
77
+ }
78
+ };
79
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
80
+ export const RESPONSE_PAYLOAD_SCHEMA = {
81
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
82
+ "$ref": "#/$defs/Response",
83
+ "$defs": {
84
+ "Response": {
85
+ "$anchor": "response",
86
+ "title": "Keys — Import Wrapping Key — response payload",
87
+ "description": "The wrapping key the custodian has just generated, carried in a Trust Task document whose type is https://trusttasks.org/spec/keys/import-wrapping-key/0.1#response. Failures use trust-task-error, not this shape.",
88
+ "type": "object",
89
+ "additionalProperties": false,
90
+ "required": [
91
+ "wrappingKey",
92
+ "keyId",
93
+ "expiresAt"
94
+ ],
95
+ "properties": {
96
+ "wrappingKey": {
97
+ "type": "string",
98
+ "pattern": "^did:key:z6Mk[1-9A-HJ-NP-Za-km-z]+$",
99
+ "maxLength": 128,
100
+ "description": "The wrapping key as an Ed25519 did:key. A producer seals to its X25519 counterpart (the birational map of RFC 7748 §4.1 applied to the Ed25519 public key), exactly as the sealed-transfer recipient of vta/attestation/mnemonic-export is addressed. Generated for this response alone: the custodian MUST NOT return the same key twice."
101
+ },
102
+ "keyId": {
103
+ "type": "string",
104
+ "minLength": 1,
105
+ "maxLength": 128,
106
+ "description": "The custodian's opaque handle for this wrapping key. A `privateKeyJwe` carrier names it as its JWE `kid`. A `privateKeySealed` carrier does not need it: the custodian finds the key by trying the bundle against its unexpired, unused wrapping keys. Carries no meaning to the producer beyond equality."
107
+ },
108
+ "expiresAt": {
109
+ "type": "string",
110
+ "format": "date-time",
111
+ "description": "The instant after which the custodian will no longer open anything sealed to this key. RFC 3339 with an explicit offset. A producer that cannot complete keys/import before it asks for a new wrapping key rather than sending a bundle it knows will be refused."
112
+ },
113
+ "ext": {
114
+ "$ref": "#/$defs/Ext",
115
+ "description": "Ecosystem-defined extension members per SPEC.md §4.5.1."
116
+ }
117
+ }
118
+ },
119
+ "Ext": {
120
+ "title": "Ext",
121
+ "description": "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.",
122
+ "type": "object",
123
+ "minProperties": 1,
124
+ "additionalProperties": true,
125
+ "propertyNames": {
126
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$"
127
+ }
128
+ }
129
+ }
130
+ };
131
+ /**
132
+ * SPEC.md §7.2 policy for the request variant, from this specification's
133
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
134
+ * per-specification and cannot be derived from the document alone, and
135
+ * item 2 needs the schema this carries.
136
+ */
137
+ export const SPEC = {
138
+ typeUri: TYPE_URI,
139
+ isBearer: false,
140
+ isProofRequired: false,
141
+ isRecipientRequired: true,
142
+ isIssuedAtRequired: false,
143
+ payloadSchema: PAYLOAD_SCHEMA,
144
+ };
145
+ /**
146
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
147
+ * tracks the *issuer* party's requirement because a response swaps the
148
+ * parties (§7.3 item 5).
149
+ */
150
+ export const RESPONSE_SPEC = {
151
+ typeUri: RESPONSE_TYPE_URI,
152
+ isBearer: false,
153
+ isProofRequired: true,
154
+ isRecipientRequired: true,
155
+ isIssuedAtRequired: false,
156
+ payloadSchema: RESPONSE_PAYLOAD_SCHEMA,
157
+ };
158
+ //# sourceMappingURL=payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../../src/keys/import-wrapping-key/0.1/payload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,479 @@
1
+ /**
2
+ * Generated by scripts/build-ts-bindings.mjs — DO NOT EDIT BY HAND.
3
+ * Source: specs/vta/health/details/0.1/payload.schema.json
4
+ */
5
+ import type { Ext } from "../../../../_shared/components.js";
6
+ /**
7
+ * Asks a Verifiable Trust Agent for its public health flags: messaging configuration, seal and storage-encryption state, trusted-execution status and transport advertisement. Deliberately carries neither the software version nor the restore record — see vta/restore/status. The payload carries nothing. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.
8
+ */
9
+ export interface VTAHealthDetailsPayload {
10
+ /**
11
+ * Ecosystem-defined extension members per SPEC.md §4.5.1.
12
+ */
13
+ ext?: Ext;
14
+ }
15
+ /**
16
+ * The agent's public report on its own deployment, carried in a Trust Task document whose type is https://trusttasks.org/spec/vta/health/details/0.1#response. Fixed for every asker. It MUST NOT carry the software version or the restore record, and additionalProperties: false means it cannot: those are served only by vta/restore/status. Failures use trust-task-error, not this shape.
17
+ */
18
+ export interface VTAHealthDetailsResponsePayload {
19
+ /**
20
+ * The agent's overall health. `ok` is the only value this version defines: an agent able to answer is serving.
21
+ */
22
+ status: "ok";
23
+ /**
24
+ * The endpoint of the mediator the agent's messaging routes through. Absent when the agent has no messaging configured.
25
+ */
26
+ mediatorUrl?: string;
27
+ /**
28
+ * The DID of that mediator — the one DIDComm and TSP share. Absent when the agent has no messaging configured.
29
+ */
30
+ mediatorDid?: string;
31
+ teeStatus?: TeeStatus;
32
+ /**
33
+ * Whether the agent is sealed: offline, host-side commands that would change its access control, keys or configuration, or export secrets, are refused, so it is managed only through authenticated tasks.
34
+ */
35
+ sealed: boolean;
36
+ /**
37
+ * Whether the agent's key store is encrypted at rest.
38
+ */
39
+ storageEncrypted: boolean;
40
+ /**
41
+ * Whether the agent advertises the Trust Spanning Protocol as a transport. TSP routes through the same mediator as DIDComm (mediatorDid), so no separate endpoint is reported.
42
+ */
43
+ tspEnabled: boolean;
44
+ /**
45
+ * Ecosystem-defined extension members per SPEC.md §4.5.1.
46
+ */
47
+ ext?: Ext;
48
+ }
49
+ /**
50
+ * The trusted execution environment the agent detected at boot. Absent when the agent has no attestation provider.
51
+ */
52
+ export interface TeeStatus {
53
+ /**
54
+ * nitro (AWS Nitro Enclaves), sev-snp (AMD SEV-SNP), or simulated (a development build whose evidence no verifier should accept).
55
+ */
56
+ teeType: "nitro" | "sev-snp" | "simulated";
57
+ /**
58
+ * Whether the agent found the platform at boot. False means it was configured for one it did not find.
59
+ */
60
+ detected: boolean;
61
+ /**
62
+ * The platform's own version string, when it reports one. Informational.
63
+ */
64
+ platformVersion?: string;
65
+ }
66
+ /** Shared definitions this specification references, re-exported under the names it used to declare them with. */
67
+ export type { Ext };
68
+ /** Trust Task type URI. */
69
+ export declare const TYPE_URI: "https://trusttasks.org/spec/vta/health/details/0.1";
70
+ /** Stable alias for this specification's request payload shape. */
71
+ export type Payload = VTAHealthDetailsPayload;
72
+ /** Trust Task response type URI (request type URI + "#response"). */
73
+ export declare const RESPONSE_TYPE_URI: "https://trusttasks.org/spec/vta/health/details/0.1#response";
74
+ /** Stable alias for this specification's success-response payload shape. */
75
+ export type Response = VTAHealthDetailsResponsePayload;
76
+ /**
77
+ * This specification's payload schema, as a value.
78
+ *
79
+ * SPEC.md §7.2 item 2 is performed against this. It is shipped as data
80
+ * rather than only as a `.json` file because TypeScript types are erased
81
+ * at runtime: without a schema a consumer has nothing to validate, and
82
+ * every REQUIRED payload member is optional in practice. Cross-file
83
+ * `$ref`s are already inlined, so it needs no resolver.
84
+ */
85
+ export declare const PAYLOAD_SCHEMA: {
86
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
87
+ readonly $id: "https://trusttasks.org/spec/vta/health/details/0.1";
88
+ readonly title: "VTA Health — Details — payload";
89
+ readonly description: "Asks a Verifiable Trust Agent for its public health flags: messaging configuration, seal and storage-encryption state, trusted-execution status and transport advertisement. Deliberately carries neither the software version nor the restore record — see vta/restore/status. The payload carries nothing. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
90
+ readonly type: "object";
91
+ readonly additionalProperties: false;
92
+ readonly properties: {
93
+ readonly ext: {
94
+ readonly $ref: "#/$defs/Ext";
95
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
96
+ };
97
+ };
98
+ readonly $defs: {
99
+ readonly TeeStatus: {
100
+ readonly title: "TeeStatus";
101
+ readonly description: "The trusted execution environment the agent detected at boot. Mirrors the response of vta/attestation/status/0.1 member for member, so a verifier reading either sees the same claim. A claim, not evidence: only vta/attestation/report proves what code runs.";
102
+ readonly type: "object";
103
+ readonly additionalProperties: false;
104
+ readonly required: readonly ["teeType", "detected"];
105
+ readonly properties: {
106
+ readonly teeType: {
107
+ readonly type: "string";
108
+ readonly enum: readonly ["nitro", "sev-snp", "simulated"];
109
+ readonly description: "nitro (AWS Nitro Enclaves), sev-snp (AMD SEV-SNP), or simulated (a development build whose evidence no verifier should accept).";
110
+ };
111
+ readonly detected: {
112
+ readonly type: "boolean";
113
+ readonly description: "Whether the agent found the platform at boot. False means it was configured for one it did not find.";
114
+ };
115
+ readonly platformVersion: {
116
+ readonly type: "string";
117
+ readonly minLength: 1;
118
+ readonly maxLength: 256;
119
+ readonly description: "The platform's own version string, when it reports one. Informational.";
120
+ };
121
+ };
122
+ };
123
+ readonly Response: {
124
+ readonly $anchor: "response";
125
+ readonly title: "VTA Health Details — response payload";
126
+ readonly description: "The agent's public report on its own deployment, carried in a Trust Task document whose type is https://trusttasks.org/spec/vta/health/details/0.1#response. Fixed for every asker. It MUST NOT carry the software version or the restore record, and additionalProperties: false means it cannot: those are served only by vta/restore/status. Failures use trust-task-error, not this shape.";
127
+ readonly type: "object";
128
+ readonly additionalProperties: false;
129
+ readonly required: readonly ["status", "sealed", "storageEncrypted", "tspEnabled"];
130
+ readonly properties: {
131
+ readonly status: {
132
+ readonly type: "string";
133
+ readonly enum: readonly ["ok"];
134
+ readonly description: "The agent's overall health. `ok` is the only value this version defines: an agent able to answer is serving.";
135
+ };
136
+ readonly mediatorUrl: {
137
+ readonly type: "string";
138
+ readonly format: "uri";
139
+ readonly maxLength: 2048;
140
+ readonly description: "The endpoint of the mediator the agent's messaging routes through. Absent when the agent has no messaging configured.";
141
+ };
142
+ readonly mediatorDid: {
143
+ readonly type: "string";
144
+ readonly pattern: "^did:";
145
+ readonly maxLength: 2048;
146
+ readonly description: "The DID of that mediator — the one DIDComm and TSP share. Absent when the agent has no messaging configured.";
147
+ };
148
+ readonly teeStatus: {
149
+ readonly $ref: "#/$defs/TeeStatus";
150
+ readonly description: "The trusted execution environment the agent detected at boot. Absent when the agent has no attestation provider.";
151
+ };
152
+ readonly sealed: {
153
+ readonly type: "boolean";
154
+ readonly description: "Whether the agent is sealed: offline, host-side commands that would change its access control, keys or configuration, or export secrets, are refused, so it is managed only through authenticated tasks.";
155
+ };
156
+ readonly storageEncrypted: {
157
+ readonly type: "boolean";
158
+ readonly description: "Whether the agent's key store is encrypted at rest.";
159
+ };
160
+ readonly tspEnabled: {
161
+ readonly type: "boolean";
162
+ readonly description: "Whether the agent advertises the Trust Spanning Protocol as a transport. TSP routes through the same mediator as DIDComm (mediatorDid), so no separate endpoint is reported.";
163
+ };
164
+ readonly ext: {
165
+ readonly $ref: "#/$defs/Ext";
166
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
167
+ };
168
+ };
169
+ };
170
+ readonly Ext: {
171
+ readonly title: "Ext";
172
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
173
+ readonly type: "object";
174
+ readonly minProperties: 1;
175
+ readonly additionalProperties: true;
176
+ readonly propertyNames: {
177
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
178
+ };
179
+ };
180
+ };
181
+ };
182
+ /** As {@link PAYLOAD_SCHEMA}, for the success-response variant. */
183
+ export declare const RESPONSE_PAYLOAD_SCHEMA: {
184
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
185
+ readonly $ref: "#/$defs/Response";
186
+ readonly $defs: {
187
+ readonly TeeStatus: {
188
+ readonly title: "TeeStatus";
189
+ readonly description: "The trusted execution environment the agent detected at boot. Mirrors the response of vta/attestation/status/0.1 member for member, so a verifier reading either sees the same claim. A claim, not evidence: only vta/attestation/report proves what code runs.";
190
+ readonly type: "object";
191
+ readonly additionalProperties: false;
192
+ readonly required: readonly ["teeType", "detected"];
193
+ readonly properties: {
194
+ readonly teeType: {
195
+ readonly type: "string";
196
+ readonly enum: readonly ["nitro", "sev-snp", "simulated"];
197
+ readonly description: "nitro (AWS Nitro Enclaves), sev-snp (AMD SEV-SNP), or simulated (a development build whose evidence no verifier should accept).";
198
+ };
199
+ readonly detected: {
200
+ readonly type: "boolean";
201
+ readonly description: "Whether the agent found the platform at boot. False means it was configured for one it did not find.";
202
+ };
203
+ readonly platformVersion: {
204
+ readonly type: "string";
205
+ readonly minLength: 1;
206
+ readonly maxLength: 256;
207
+ readonly description: "The platform's own version string, when it reports one. Informational.";
208
+ };
209
+ };
210
+ };
211
+ readonly Response: {
212
+ readonly $anchor: "response";
213
+ readonly title: "VTA Health Details — response payload";
214
+ readonly description: "The agent's public report on its own deployment, carried in a Trust Task document whose type is https://trusttasks.org/spec/vta/health/details/0.1#response. Fixed for every asker. It MUST NOT carry the software version or the restore record, and additionalProperties: false means it cannot: those are served only by vta/restore/status. Failures use trust-task-error, not this shape.";
215
+ readonly type: "object";
216
+ readonly additionalProperties: false;
217
+ readonly required: readonly ["status", "sealed", "storageEncrypted", "tspEnabled"];
218
+ readonly properties: {
219
+ readonly status: {
220
+ readonly type: "string";
221
+ readonly enum: readonly ["ok"];
222
+ readonly description: "The agent's overall health. `ok` is the only value this version defines: an agent able to answer is serving.";
223
+ };
224
+ readonly mediatorUrl: {
225
+ readonly type: "string";
226
+ readonly format: "uri";
227
+ readonly maxLength: 2048;
228
+ readonly description: "The endpoint of the mediator the agent's messaging routes through. Absent when the agent has no messaging configured.";
229
+ };
230
+ readonly mediatorDid: {
231
+ readonly type: "string";
232
+ readonly pattern: "^did:";
233
+ readonly maxLength: 2048;
234
+ readonly description: "The DID of that mediator — the one DIDComm and TSP share. Absent when the agent has no messaging configured.";
235
+ };
236
+ readonly teeStatus: {
237
+ readonly $ref: "#/$defs/TeeStatus";
238
+ readonly description: "The trusted execution environment the agent detected at boot. Absent when the agent has no attestation provider.";
239
+ };
240
+ readonly sealed: {
241
+ readonly type: "boolean";
242
+ readonly description: "Whether the agent is sealed: offline, host-side commands that would change its access control, keys or configuration, or export secrets, are refused, so it is managed only through authenticated tasks.";
243
+ };
244
+ readonly storageEncrypted: {
245
+ readonly type: "boolean";
246
+ readonly description: "Whether the agent's key store is encrypted at rest.";
247
+ };
248
+ readonly tspEnabled: {
249
+ readonly type: "boolean";
250
+ readonly description: "Whether the agent advertises the Trust Spanning Protocol as a transport. TSP routes through the same mediator as DIDComm (mediatorDid), so no separate endpoint is reported.";
251
+ };
252
+ readonly ext: {
253
+ readonly $ref: "#/$defs/Ext";
254
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
255
+ };
256
+ };
257
+ };
258
+ readonly Ext: {
259
+ readonly title: "Ext";
260
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
261
+ readonly type: "object";
262
+ readonly minProperties: 1;
263
+ readonly additionalProperties: true;
264
+ readonly propertyNames: {
265
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
266
+ };
267
+ };
268
+ };
269
+ };
270
+ /**
271
+ * SPEC.md §7.2 policy for the request variant, from this specification's
272
+ * front matter. Pass to `consumeInbound` — items 5b, 7 and 8 are
273
+ * per-specification and cannot be derived from the document alone, and
274
+ * item 2 needs the schema this carries.
275
+ */
276
+ export declare const SPEC: {
277
+ readonly typeUri: "https://trusttasks.org/spec/vta/health/details/0.1";
278
+ readonly isBearer: false;
279
+ readonly isProofRequired: false;
280
+ readonly isRecipientRequired: true;
281
+ readonly isIssuedAtRequired: false;
282
+ readonly payloadSchema: {
283
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
284
+ readonly $id: "https://trusttasks.org/spec/vta/health/details/0.1";
285
+ readonly title: "VTA Health — Details — payload";
286
+ readonly description: "Asks a Verifiable Trust Agent for its public health flags: messaging configuration, seal and storage-encryption state, trusted-execution status and transport advertisement. Deliberately carries neither the software version nor the restore record — see vta/restore/status. The payload carries nothing. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.";
287
+ readonly type: "object";
288
+ readonly additionalProperties: false;
289
+ readonly properties: {
290
+ readonly ext: {
291
+ readonly $ref: "#/$defs/Ext";
292
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
293
+ };
294
+ };
295
+ readonly $defs: {
296
+ readonly TeeStatus: {
297
+ readonly title: "TeeStatus";
298
+ readonly description: "The trusted execution environment the agent detected at boot. Mirrors the response of vta/attestation/status/0.1 member for member, so a verifier reading either sees the same claim. A claim, not evidence: only vta/attestation/report proves what code runs.";
299
+ readonly type: "object";
300
+ readonly additionalProperties: false;
301
+ readonly required: readonly ["teeType", "detected"];
302
+ readonly properties: {
303
+ readonly teeType: {
304
+ readonly type: "string";
305
+ readonly enum: readonly ["nitro", "sev-snp", "simulated"];
306
+ readonly description: "nitro (AWS Nitro Enclaves), sev-snp (AMD SEV-SNP), or simulated (a development build whose evidence no verifier should accept).";
307
+ };
308
+ readonly detected: {
309
+ readonly type: "boolean";
310
+ readonly description: "Whether the agent found the platform at boot. False means it was configured for one it did not find.";
311
+ };
312
+ readonly platformVersion: {
313
+ readonly type: "string";
314
+ readonly minLength: 1;
315
+ readonly maxLength: 256;
316
+ readonly description: "The platform's own version string, when it reports one. Informational.";
317
+ };
318
+ };
319
+ };
320
+ readonly Response: {
321
+ readonly $anchor: "response";
322
+ readonly title: "VTA Health Details — response payload";
323
+ readonly description: "The agent's public report on its own deployment, carried in a Trust Task document whose type is https://trusttasks.org/spec/vta/health/details/0.1#response. Fixed for every asker. It MUST NOT carry the software version or the restore record, and additionalProperties: false means it cannot: those are served only by vta/restore/status. Failures use trust-task-error, not this shape.";
324
+ readonly type: "object";
325
+ readonly additionalProperties: false;
326
+ readonly required: readonly ["status", "sealed", "storageEncrypted", "tspEnabled"];
327
+ readonly properties: {
328
+ readonly status: {
329
+ readonly type: "string";
330
+ readonly enum: readonly ["ok"];
331
+ readonly description: "The agent's overall health. `ok` is the only value this version defines: an agent able to answer is serving.";
332
+ };
333
+ readonly mediatorUrl: {
334
+ readonly type: "string";
335
+ readonly format: "uri";
336
+ readonly maxLength: 2048;
337
+ readonly description: "The endpoint of the mediator the agent's messaging routes through. Absent when the agent has no messaging configured.";
338
+ };
339
+ readonly mediatorDid: {
340
+ readonly type: "string";
341
+ readonly pattern: "^did:";
342
+ readonly maxLength: 2048;
343
+ readonly description: "The DID of that mediator — the one DIDComm and TSP share. Absent when the agent has no messaging configured.";
344
+ };
345
+ readonly teeStatus: {
346
+ readonly $ref: "#/$defs/TeeStatus";
347
+ readonly description: "The trusted execution environment the agent detected at boot. Absent when the agent has no attestation provider.";
348
+ };
349
+ readonly sealed: {
350
+ readonly type: "boolean";
351
+ readonly description: "Whether the agent is sealed: offline, host-side commands that would change its access control, keys or configuration, or export secrets, are refused, so it is managed only through authenticated tasks.";
352
+ };
353
+ readonly storageEncrypted: {
354
+ readonly type: "boolean";
355
+ readonly description: "Whether the agent's key store is encrypted at rest.";
356
+ };
357
+ readonly tspEnabled: {
358
+ readonly type: "boolean";
359
+ readonly description: "Whether the agent advertises the Trust Spanning Protocol as a transport. TSP routes through the same mediator as DIDComm (mediatorDid), so no separate endpoint is reported.";
360
+ };
361
+ readonly ext: {
362
+ readonly $ref: "#/$defs/Ext";
363
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
364
+ };
365
+ };
366
+ };
367
+ readonly Ext: {
368
+ readonly title: "Ext";
369
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
370
+ readonly type: "object";
371
+ readonly minProperties: 1;
372
+ readonly additionalProperties: true;
373
+ readonly propertyNames: {
374
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
375
+ };
376
+ };
377
+ };
378
+ };
379
+ };
380
+ /**
381
+ * SPEC.md §7.2 policy for the success-response variant. `isRecipientRequired`
382
+ * tracks the *issuer* party's requirement because a response swaps the
383
+ * parties (§7.3 item 5).
384
+ */
385
+ export declare const RESPONSE_SPEC: {
386
+ readonly typeUri: "https://trusttasks.org/spec/vta/health/details/0.1#response";
387
+ readonly isBearer: false;
388
+ readonly isProofRequired: true;
389
+ readonly isRecipientRequired: true;
390
+ readonly isIssuedAtRequired: false;
391
+ readonly payloadSchema: {
392
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
393
+ readonly $ref: "#/$defs/Response";
394
+ readonly $defs: {
395
+ readonly TeeStatus: {
396
+ readonly title: "TeeStatus";
397
+ readonly description: "The trusted execution environment the agent detected at boot. Mirrors the response of vta/attestation/status/0.1 member for member, so a verifier reading either sees the same claim. A claim, not evidence: only vta/attestation/report proves what code runs.";
398
+ readonly type: "object";
399
+ readonly additionalProperties: false;
400
+ readonly required: readonly ["teeType", "detected"];
401
+ readonly properties: {
402
+ readonly teeType: {
403
+ readonly type: "string";
404
+ readonly enum: readonly ["nitro", "sev-snp", "simulated"];
405
+ readonly description: "nitro (AWS Nitro Enclaves), sev-snp (AMD SEV-SNP), or simulated (a development build whose evidence no verifier should accept).";
406
+ };
407
+ readonly detected: {
408
+ readonly type: "boolean";
409
+ readonly description: "Whether the agent found the platform at boot. False means it was configured for one it did not find.";
410
+ };
411
+ readonly platformVersion: {
412
+ readonly type: "string";
413
+ readonly minLength: 1;
414
+ readonly maxLength: 256;
415
+ readonly description: "The platform's own version string, when it reports one. Informational.";
416
+ };
417
+ };
418
+ };
419
+ readonly Response: {
420
+ readonly $anchor: "response";
421
+ readonly title: "VTA Health Details — response payload";
422
+ readonly description: "The agent's public report on its own deployment, carried in a Trust Task document whose type is https://trusttasks.org/spec/vta/health/details/0.1#response. Fixed for every asker. It MUST NOT carry the software version or the restore record, and additionalProperties: false means it cannot: those are served only by vta/restore/status. Failures use trust-task-error, not this shape.";
423
+ readonly type: "object";
424
+ readonly additionalProperties: false;
425
+ readonly required: readonly ["status", "sealed", "storageEncrypted", "tspEnabled"];
426
+ readonly properties: {
427
+ readonly status: {
428
+ readonly type: "string";
429
+ readonly enum: readonly ["ok"];
430
+ readonly description: "The agent's overall health. `ok` is the only value this version defines: an agent able to answer is serving.";
431
+ };
432
+ readonly mediatorUrl: {
433
+ readonly type: "string";
434
+ readonly format: "uri";
435
+ readonly maxLength: 2048;
436
+ readonly description: "The endpoint of the mediator the agent's messaging routes through. Absent when the agent has no messaging configured.";
437
+ };
438
+ readonly mediatorDid: {
439
+ readonly type: "string";
440
+ readonly pattern: "^did:";
441
+ readonly maxLength: 2048;
442
+ readonly description: "The DID of that mediator — the one DIDComm and TSP share. Absent when the agent has no messaging configured.";
443
+ };
444
+ readonly teeStatus: {
445
+ readonly $ref: "#/$defs/TeeStatus";
446
+ readonly description: "The trusted execution environment the agent detected at boot. Absent when the agent has no attestation provider.";
447
+ };
448
+ readonly sealed: {
449
+ readonly type: "boolean";
450
+ readonly description: "Whether the agent is sealed: offline, host-side commands that would change its access control, keys or configuration, or export secrets, are refused, so it is managed only through authenticated tasks.";
451
+ };
452
+ readonly storageEncrypted: {
453
+ readonly type: "boolean";
454
+ readonly description: "Whether the agent's key store is encrypted at rest.";
455
+ };
456
+ readonly tspEnabled: {
457
+ readonly type: "boolean";
458
+ readonly description: "Whether the agent advertises the Trust Spanning Protocol as a transport. TSP routes through the same mediator as DIDComm (mediatorDid), so no separate endpoint is reported.";
459
+ };
460
+ readonly ext: {
461
+ readonly $ref: "#/$defs/Ext";
462
+ readonly description: "Ecosystem-defined extension members per SPEC.md §4.5.1.";
463
+ };
464
+ };
465
+ };
466
+ readonly Ext: {
467
+ readonly title: "Ext";
468
+ readonly description: "Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.";
469
+ readonly type: "object";
470
+ readonly minProperties: 1;
471
+ readonly additionalProperties: true;
472
+ readonly propertyNames: {
473
+ readonly pattern: "^[a-z][a-z0-9-]*(\\.[a-z0-9-]+)+$";
474
+ };
475
+ };
476
+ };
477
+ };
478
+ };
479
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../../../src/vta/health/details/0.1/payload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAG7D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,MAAM,EAAE,IAAI,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;IAC3C;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,kHAAkH;AAClH,YAAY,EAAE,GAAG,EAAE,CAAC;AAEpB,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,EAAG,oDAA6D,CAAC;AAEtF,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG,uBAAuB,CAAC;AAE9C,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAG,6DAAsE,CAAC;AAExG,4EAA4E;AAC5E,MAAM,MAAM,QAAQ,GAAG,+BAA+B,CAAC;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GjB,CAAC;AAEX,mEAAmE;AACnE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoG1B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOP,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOhB,CAAC"}