verdifax 0.2.0
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/LICENSE +21 -0
- package/README.md +108 -0
- package/dist/index.d.mts +414 -0
- package/dist/index.d.ts +414 -0
- package/dist/index.js +461 -0
- package/dist/index.mjs +426 -0
- package/package.json +58 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for the Verdifax orchestrator REST API.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the canonical schemas from the OpenAPI spec at
|
|
5
|
+
* `verdifax-orchestrator/openapi/verdifax.yaml`. When the spec
|
|
6
|
+
* adds a new field, update this file alongside the OpenAPI to
|
|
7
|
+
* keep the SDK's surface in sync.
|
|
8
|
+
*/
|
|
9
|
+
/** A 64-character lowercase hex string — the canonical §0
|
|
10
|
+
* SHA-256 encoding. Aliased rather than newtyped so callers
|
|
11
|
+
* pass plain strings without ceremony. */
|
|
12
|
+
type Hex64 = string;
|
|
13
|
+
interface Health {
|
|
14
|
+
ok: boolean;
|
|
15
|
+
service: string;
|
|
16
|
+
version: string;
|
|
17
|
+
orchestrator_version?: string;
|
|
18
|
+
orchestrator_git_sha?: string;
|
|
19
|
+
time: string;
|
|
20
|
+
}
|
|
21
|
+
interface FormulaEra {
|
|
22
|
+
era: string;
|
|
23
|
+
label: string;
|
|
24
|
+
}
|
|
25
|
+
interface VerdifaxVersion {
|
|
26
|
+
service: string;
|
|
27
|
+
api_contract_version?: string;
|
|
28
|
+
orchestrator_version?: string;
|
|
29
|
+
orchestrator_git_sha?: string;
|
|
30
|
+
formula_version?: string;
|
|
31
|
+
formula_eras?: FormulaEra[];
|
|
32
|
+
kernel_versions?: Record<string, string>;
|
|
33
|
+
engine_versions?: Record<string, string>;
|
|
34
|
+
aivp_t4_mode?: string;
|
|
35
|
+
region?: string;
|
|
36
|
+
instance?: string;
|
|
37
|
+
time: string;
|
|
38
|
+
}
|
|
39
|
+
interface ExecuteRequest {
|
|
40
|
+
/** Base64-encoded payload bytes. Mutually exclusive with payload_text. */
|
|
41
|
+
payload?: string;
|
|
42
|
+
/** Plain-text payload. Mutually exclusive with payload. */
|
|
43
|
+
payload_text?: string;
|
|
44
|
+
program_id: Hex64;
|
|
45
|
+
route_id: string;
|
|
46
|
+
registry_record_hash: Hex64;
|
|
47
|
+
/** When non-empty, opts the request into the AIVP-T4 governance pipeline. */
|
|
48
|
+
ai_output_text?: string;
|
|
49
|
+
/** Caller-attested actor + decision metadata; open schema. */
|
|
50
|
+
attested_context?: Record<string, unknown>;
|
|
51
|
+
}
|
|
52
|
+
interface ExecuteResponse {
|
|
53
|
+
ok: boolean;
|
|
54
|
+
run_id: number;
|
|
55
|
+
manifest: ExecutionManifest;
|
|
56
|
+
duration_ms: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Sealed manifest. Field names match the orchestrator's Go-default
|
|
60
|
+
* JSON encoding (CapitalCamelCase).
|
|
61
|
+
*
|
|
62
|
+
* Subset of the canonical fields — see the orchestrator's
|
|
63
|
+
* `internal/pipeline/types.go` for the full struct. The fields
|
|
64
|
+
* listed here are the ones every Track-2 / Track-3 / Track-5
|
|
65
|
+
* surface depends on.
|
|
66
|
+
*/
|
|
67
|
+
interface ExecutionManifest {
|
|
68
|
+
EnvelopeID: string;
|
|
69
|
+
EnvelopeHash: Hex64;
|
|
70
|
+
ManifestHash: Hex64;
|
|
71
|
+
DseCommitmentHash?: Hex64;
|
|
72
|
+
TokOrderingHash?: Hex64;
|
|
73
|
+
DscFinalStateHash?: Hex64;
|
|
74
|
+
NrepActorID?: string;
|
|
75
|
+
NrepActorPublicKey?: string;
|
|
76
|
+
NrepSignature?: string;
|
|
77
|
+
AivpOutcome?: string;
|
|
78
|
+
AivpPiaHash?: Hex64;
|
|
79
|
+
AivpAdapterID?: string;
|
|
80
|
+
AivpDecision?: string;
|
|
81
|
+
/** Phase-17 (CRES) sealed-at-write erasure state. */
|
|
82
|
+
EraseStatus?: "intact" | "shredded" | "tombstone" | "";
|
|
83
|
+
ExecutionRegion?: string;
|
|
84
|
+
FormalVerifierStatus?: string;
|
|
85
|
+
HardwareAttestationHash?: Hex64;
|
|
86
|
+
LedgerBackend?: string;
|
|
87
|
+
LedgerLeafHash?: Hex64;
|
|
88
|
+
LedgerProofHash?: Hex64;
|
|
89
|
+
LogEntryID?: string;
|
|
90
|
+
}
|
|
91
|
+
interface Run {
|
|
92
|
+
ok: boolean;
|
|
93
|
+
id: number;
|
|
94
|
+
created_at: string;
|
|
95
|
+
payload_hash: Hex64;
|
|
96
|
+
program_id: Hex64;
|
|
97
|
+
route_id: string;
|
|
98
|
+
manifest_hash: Hex64;
|
|
99
|
+
duration_ms: number;
|
|
100
|
+
status: "ok" | "pepg_deny" | "ccv_halt" | "macc_halt" | "stage_error";
|
|
101
|
+
error_stage?: string;
|
|
102
|
+
error_message?: string;
|
|
103
|
+
manifest: ExecutionManifest;
|
|
104
|
+
}
|
|
105
|
+
interface VerifyResponse {
|
|
106
|
+
ok: boolean;
|
|
107
|
+
verified: boolean;
|
|
108
|
+
manifest_hash: Hex64;
|
|
109
|
+
recomputed_hash: Hex64;
|
|
110
|
+
formula_version: string;
|
|
111
|
+
verification_at: string;
|
|
112
|
+
verification_kind: string;
|
|
113
|
+
dcae_engine_hint?: {
|
|
114
|
+
available_at: string;
|
|
115
|
+
engine_version: string;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
interface ClientConfig {
|
|
119
|
+
/** Orchestrator endpoint. Trailing slash optional. Defaults to https://api.verdifax.com. */
|
|
120
|
+
baseURL?: string;
|
|
121
|
+
/** X-Verdifax-Key value. Required for every endpoint except /health, /version, /dcae/verify. */
|
|
122
|
+
apiKey?: string;
|
|
123
|
+
/** Per-request timeout in ms. Defaults to 30000. */
|
|
124
|
+
timeoutMs?: number;
|
|
125
|
+
/** Override the default User-Agent. Useful for telemetry attribution. */
|
|
126
|
+
userAgent?: string;
|
|
127
|
+
/** Retry budget for idempotent GET/HEAD/OPTIONS that fail with a
|
|
128
|
+
* transient error (502/503/504/429 or network failure).
|
|
129
|
+
* Defaults to 3. Set to 0 to disable retries entirely. */
|
|
130
|
+
maxRetries?: number;
|
|
131
|
+
/** First inter-retry sleep in ms. The retry middleware doubles
|
|
132
|
+
* it on each subsequent retry (exponential backoff with full
|
|
133
|
+
* jitter). Defaults to 200ms. */
|
|
134
|
+
retryBaseDelayMs?: number;
|
|
135
|
+
}
|
|
136
|
+
/** Friendly shape for {@link VerdifaxClient.attest}. Mirrors the
|
|
137
|
+
* Python SDK's `attest()` signature so polyglot teams have parity. */
|
|
138
|
+
interface AttestRequest {
|
|
139
|
+
/** Raw bytes — auto-base64-encoded before sending. Mutually
|
|
140
|
+
* exclusive with `payload_text`. */
|
|
141
|
+
payload?: Buffer | Uint8Array;
|
|
142
|
+
/** Plain-text payload — sent as-is. Mutually exclusive with
|
|
143
|
+
* `payload`. */
|
|
144
|
+
payload_text?: string;
|
|
145
|
+
program_id: Hex64;
|
|
146
|
+
route_id: string;
|
|
147
|
+
registry_record_hash: Hex64;
|
|
148
|
+
ai_output_text?: string;
|
|
149
|
+
attested_context?: Record<string, unknown>;
|
|
150
|
+
}
|
|
151
|
+
/** Optional filters for {@link VerdifaxClient.listRuns}. */
|
|
152
|
+
interface ListRunsParams {
|
|
153
|
+
limit?: number;
|
|
154
|
+
offset?: number;
|
|
155
|
+
}
|
|
156
|
+
/** Lightweight projection used in `/runs` and `/runs/search`
|
|
157
|
+
* responses. Excludes the heavy ManifestJSON; call `getRun(id)`
|
|
158
|
+
* for the full sealed manifest. */
|
|
159
|
+
interface RunSummary {
|
|
160
|
+
id: number;
|
|
161
|
+
created_at: string;
|
|
162
|
+
program_id: Hex64;
|
|
163
|
+
route_id: string;
|
|
164
|
+
manifest_hash: Hex64;
|
|
165
|
+
status: "ok" | "pepg_deny" | "ccv_halt" | "macc_halt" | "stage_error";
|
|
166
|
+
outcome_kind?: string;
|
|
167
|
+
}
|
|
168
|
+
/** Audit-PDF format selector. */
|
|
169
|
+
type PDFFormat = "brief" | "auditor" | "legal" | "comprehensive";
|
|
170
|
+
/** Body shape for {@link VerdifaxClient.adminErase}. */
|
|
171
|
+
interface AdminEraseRequest {
|
|
172
|
+
run_id: number;
|
|
173
|
+
field_path: string;
|
|
174
|
+
/** SHA-256 hex of the ciphertext that was sealed for this field
|
|
175
|
+
* at encryption time. Caller looks this up in their own records. */
|
|
176
|
+
ciphertext_hash: Hex64;
|
|
177
|
+
/** Optional opaque reference for the originating DSAR / RTBF /
|
|
178
|
+
* HIPAA-authorization. */
|
|
179
|
+
dsar_reference?: string;
|
|
180
|
+
}
|
|
181
|
+
/** A sealed CRES DeletionReceipt. Mirrors the orchestrator's
|
|
182
|
+
* `cres.DeletionReceipt` shape with snake_case JSON keys. */
|
|
183
|
+
interface DeletionReceipt {
|
|
184
|
+
preimage_version: string;
|
|
185
|
+
envelope_id: string;
|
|
186
|
+
field_path: string;
|
|
187
|
+
deletion_clock: string;
|
|
188
|
+
actor_id: string;
|
|
189
|
+
ciphertext_hash_at_shred: Hex64;
|
|
190
|
+
dsar_reference?: string;
|
|
191
|
+
engine_version: string;
|
|
192
|
+
receipt_hash: Hex64;
|
|
193
|
+
id?: number;
|
|
194
|
+
}
|
|
195
|
+
/** Input shape for {@link VerdifaxClient.dcaeVerify}. */
|
|
196
|
+
interface DCAEProofBundle {
|
|
197
|
+
preimage_version?: string;
|
|
198
|
+
envelope_id: string;
|
|
199
|
+
envelope_hash: Hex64;
|
|
200
|
+
aer_hash: Hex64;
|
|
201
|
+
zksp_binding_hash: Hex64;
|
|
202
|
+
formal_verifier_status: string;
|
|
203
|
+
manifest_hash: Hex64;
|
|
204
|
+
canonical_manifest_preimage?: string;
|
|
205
|
+
}
|
|
206
|
+
/** Output shape for {@link VerdifaxClient.dcaeVerify}. */
|
|
207
|
+
interface DCAEVerdict {
|
|
208
|
+
verified: boolean;
|
|
209
|
+
failure_reason?: string;
|
|
210
|
+
verified_closure_hash?: Hex64;
|
|
211
|
+
engine_version: string;
|
|
212
|
+
}
|
|
213
|
+
/** Body returned by `POST /admin/keys`. The `secret` field is
|
|
214
|
+
* shown ONCE — store it immediately. */
|
|
215
|
+
interface AdminCreateKeyResponse {
|
|
216
|
+
ok: boolean;
|
|
217
|
+
id: number;
|
|
218
|
+
name: string;
|
|
219
|
+
secret: string;
|
|
220
|
+
hint: string;
|
|
221
|
+
}
|
|
222
|
+
/** Projection returned by {@link VerdifaxClient.adminListKeys}.
|
|
223
|
+
* Secrets are NEVER surfaced — only metadata. */
|
|
224
|
+
interface AdminAPIKey {
|
|
225
|
+
id: number;
|
|
226
|
+
name: string;
|
|
227
|
+
created_at: string;
|
|
228
|
+
last_used_at?: string;
|
|
229
|
+
run_count: number;
|
|
230
|
+
revoked: boolean;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* The Verdifax SDK client.
|
|
235
|
+
*
|
|
236
|
+
* Carries Python-parity surface coverage:
|
|
237
|
+
*
|
|
238
|
+
* | Method | HTTP | Auth |
|
|
239
|
+
* | --- | --- | --- |
|
|
240
|
+
* | `health()` | GET /health | none |
|
|
241
|
+
* | `version()` | GET /version | none |
|
|
242
|
+
* | `execute(req)` | POST /execute | required |
|
|
243
|
+
* | `attest(req)` | POST /execute (helper) | required |
|
|
244
|
+
* | `getRun(id)` | GET /runs/{id} | required |
|
|
245
|
+
* | `verifyRun(id)` | GET /runs/{id}/verify | required |
|
|
246
|
+
* | `listRuns(params)` | GET /runs | required |
|
|
247
|
+
* | `downloadAuditPDF(id, format)` | GET /runs/{id}/report.pdf | required |
|
|
248
|
+
* | `getAllowToken(id)` | GET /runs/{id}/allow-token | required |
|
|
249
|
+
* | `getDenyReceipt(id)` | GET /runs/{id}/deny-receipt | required |
|
|
250
|
+
* | `getCCVHaltReceipt(id)` | GET /runs/{id}/ccv-halt-receipt | required |
|
|
251
|
+
* | `getMACCHaltReceipt(id)` | GET /runs/{id}/macc-halt-receipt | required |
|
|
252
|
+
* | `getAivpT4HaltReceipt(id)` | GET /runs/{id}/aivp-t4-halt-receipt | required |
|
|
253
|
+
* | `listDeletionReceipts(id)` | GET /runs/{id}/deletion-receipts | required |
|
|
254
|
+
* | `adminErase(req)` | POST /admin/erase | required |
|
|
255
|
+
* | `dcaeVerify(bundle)` | POST /dcae/verify | none |
|
|
256
|
+
* | `adminCreateKey(name)` | POST /admin/keys | required |
|
|
257
|
+
* | `adminListKeys()` | GET /admin/keys | required |
|
|
258
|
+
* | `adminRevokeKey(id)` | DELETE /admin/keys/{id} | required |
|
|
259
|
+
* | `attestClaudeResponse(...)` | POST /execute (helper) | required |
|
|
260
|
+
* | `attestOpenAIResponse(...)` | POST /execute (helper) | required |
|
|
261
|
+
*
|
|
262
|
+
* Idempotent GETs that hit a transient failure (502/503/504/429)
|
|
263
|
+
* are retried with exponential backoff + full jitter. Non-
|
|
264
|
+
* idempotent methods (POST, PUT, DELETE) are NOT retried — replay
|
|
265
|
+
* is the caller's responsibility.
|
|
266
|
+
*/
|
|
267
|
+
declare class VerdifaxClient {
|
|
268
|
+
private readonly baseURL;
|
|
269
|
+
private readonly apiKey;
|
|
270
|
+
private readonly timeoutMs;
|
|
271
|
+
private readonly userAgent;
|
|
272
|
+
private readonly maxRetries;
|
|
273
|
+
private readonly retryBaseDelayMs;
|
|
274
|
+
constructor(config?: ClientConfig);
|
|
275
|
+
health(): Promise<Health>;
|
|
276
|
+
version(): Promise<VerdifaxVersion>;
|
|
277
|
+
execute(req: ExecuteRequest): Promise<ExecuteResponse>;
|
|
278
|
+
/** High-level convenience wrapper around `execute()`. Accepts
|
|
279
|
+
* either a Buffer (for binary payloads — auto-base64) or a
|
|
280
|
+
* string (for plain text). Validates the hex fields and
|
|
281
|
+
* routes the call through to the canonical /execute. */
|
|
282
|
+
attest(req: AttestRequest): Promise<ExecuteResponse>;
|
|
283
|
+
getRun(runId: number): Promise<Run>;
|
|
284
|
+
verifyRun(runId: number): Promise<VerifyResponse>;
|
|
285
|
+
listRuns(params?: ListRunsParams): Promise<{
|
|
286
|
+
runs: RunSummary[];
|
|
287
|
+
total: number;
|
|
288
|
+
}>;
|
|
289
|
+
getAllowToken(runId: number): Promise<Record<string, unknown>>;
|
|
290
|
+
getDenyReceipt(runId: number): Promise<Record<string, unknown>>;
|
|
291
|
+
getCCVHaltReceipt(runId: number): Promise<Record<string, unknown>>;
|
|
292
|
+
getMACCHaltReceipt(runId: number): Promise<Record<string, unknown>>;
|
|
293
|
+
getAivpT4HaltReceipt(runId: number): Promise<Record<string, unknown>>;
|
|
294
|
+
private getRunArtifact;
|
|
295
|
+
/** Streams the audit PDF bytes as a Buffer. Format defaults to
|
|
296
|
+
* "comprehensive" when not specified. */
|
|
297
|
+
downloadAuditPDF(runId: number, format?: PDFFormat): Promise<Buffer>;
|
|
298
|
+
listDeletionReceipts(runId: number): Promise<DeletionReceipt[]>;
|
|
299
|
+
adminErase(req: AdminEraseRequest): Promise<DeletionReceipt>;
|
|
300
|
+
dcaeVerify(bundle: DCAEProofBundle): Promise<DCAEVerdict>;
|
|
301
|
+
adminCreateKey(name: string): Promise<AdminCreateKeyResponse>;
|
|
302
|
+
adminListKeys(): Promise<AdminAPIKey[]>;
|
|
303
|
+
adminRevokeKey(keyId: number): Promise<void>;
|
|
304
|
+
/** Convenience for attesting an Anthropic Claude API response.
|
|
305
|
+
* Wires the response text into the AIVP-T4 governance pipeline
|
|
306
|
+
* by setting `ai_output_text`. */
|
|
307
|
+
attestClaudeResponse(args: {
|
|
308
|
+
program_id: Hex64;
|
|
309
|
+
route_id: string;
|
|
310
|
+
registry_record_hash: Hex64;
|
|
311
|
+
prompt: string;
|
|
312
|
+
response: string;
|
|
313
|
+
}): Promise<ExecuteResponse>;
|
|
314
|
+
/** Convenience for attesting an OpenAI API response. */
|
|
315
|
+
attestOpenAIResponse(args: {
|
|
316
|
+
program_id: Hex64;
|
|
317
|
+
route_id: string;
|
|
318
|
+
registry_record_hash: Hex64;
|
|
319
|
+
prompt: string;
|
|
320
|
+
response: string;
|
|
321
|
+
}): Promise<ExecuteResponse>;
|
|
322
|
+
private attestProviderResponse;
|
|
323
|
+
private request;
|
|
324
|
+
private requireAPIKey;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Environment-variable constructor — mirrors the Python SDK's
|
|
329
|
+
* `from_env()` and the Go SDK's `FromEnv()` for polyglot parity.
|
|
330
|
+
*
|
|
331
|
+
* Variables consumed (identical names across SDKs):
|
|
332
|
+
*
|
|
333
|
+
* VERDIFAX_BASE_URL base URL (defaults to https://api.verdifax.com)
|
|
334
|
+
* VERDIFAX_API_KEY X-Verdifax-Key value
|
|
335
|
+
* VERDIFAX_TIMEOUT_MS per-request timeout in ms (defaults to 30000)
|
|
336
|
+
* VERDIFAX_USER_AGENT override the default User-Agent
|
|
337
|
+
* VERDIFAX_MAX_RETRIES retry budget for idempotent GETs (defaults to 3)
|
|
338
|
+
*/
|
|
339
|
+
|
|
340
|
+
declare function fromEnv(): VerdifaxClient;
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Input-validation helpers — mirrors the Python SDK's
|
|
344
|
+
* `_validation.py` and the Go SDK's `validation.go` for
|
|
345
|
+
* cross-language parity.
|
|
346
|
+
*
|
|
347
|
+
* Every helper throws (rather than returning a boolean) so the
|
|
348
|
+
* SDK's type system surfaces the failure as a typed error.
|
|
349
|
+
*/
|
|
350
|
+
/** Throws unless `value` is exactly 64 lowercase hex characters —
|
|
351
|
+
* the §0-canonical SHA-256 encoding the orchestrator expects for
|
|
352
|
+
* program_id, registry_record_hash, manifest_hash, and
|
|
353
|
+
* ciphertext_hash. */
|
|
354
|
+
declare function validateHex64(value: string, fieldName: string): void;
|
|
355
|
+
/** Throws unless `value` is a non-empty, printable-ASCII route
|
|
356
|
+
* identifier of bounded length (≤ 256). The orchestrator accepts
|
|
357
|
+
* a wider character set, but the SDK enforces the conservative
|
|
358
|
+
* subset by default to catch typos early. */
|
|
359
|
+
declare function validateRouteId(value: string): void;
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Typed errors returned by the Verdifax SDK.
|
|
363
|
+
*
|
|
364
|
+
* Callers can use `instanceof` to discriminate:
|
|
365
|
+
*
|
|
366
|
+
* ```typescript
|
|
367
|
+
* try {
|
|
368
|
+
* await client.getRun(142);
|
|
369
|
+
* } catch (err) {
|
|
370
|
+
* if (err instanceof NotFoundError) {
|
|
371
|
+
* // run doesn't exist (or belongs to a different key)
|
|
372
|
+
* } else if (err instanceof AuthError) {
|
|
373
|
+
* // missing or invalid API key
|
|
374
|
+
* } else if (err instanceof APIError) {
|
|
375
|
+
* // every other non-2xx
|
|
376
|
+
* }
|
|
377
|
+
* }
|
|
378
|
+
* ```
|
|
379
|
+
*/
|
|
380
|
+
declare class VerdifaxError extends Error {
|
|
381
|
+
readonly name: string;
|
|
382
|
+
}
|
|
383
|
+
/** HTTP 401 — missing or invalid API key. */
|
|
384
|
+
declare class AuthError extends VerdifaxError {
|
|
385
|
+
readonly status: number;
|
|
386
|
+
readonly message: string;
|
|
387
|
+
readonly name: string;
|
|
388
|
+
constructor(status: number, message: string);
|
|
389
|
+
}
|
|
390
|
+
/** HTTP 404 — resource not found. Carries the path that 404'd
|
|
391
|
+
* for easier diagnosis. */
|
|
392
|
+
declare class NotFoundError extends VerdifaxError {
|
|
393
|
+
readonly path: string;
|
|
394
|
+
readonly message: string;
|
|
395
|
+
readonly name: string;
|
|
396
|
+
constructor(path: string, message: string);
|
|
397
|
+
}
|
|
398
|
+
/** Every other non-2xx response. Carries the HTTP status and
|
|
399
|
+
* the path so callers can switch on either dimension. */
|
|
400
|
+
declare class APIError extends VerdifaxError {
|
|
401
|
+
readonly status: number;
|
|
402
|
+
readonly path: string;
|
|
403
|
+
readonly message: string;
|
|
404
|
+
readonly name: string;
|
|
405
|
+
constructor(status: number, path: string, message: string);
|
|
406
|
+
}
|
|
407
|
+
/** Returned when an authenticated method is called on a client
|
|
408
|
+
* constructed without an apiKey. */
|
|
409
|
+
declare class APIKeyRequiredError extends VerdifaxError {
|
|
410
|
+
readonly name: string;
|
|
411
|
+
constructor();
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
export { APIError, APIKeyRequiredError, type AdminAPIKey, type AdminCreateKeyResponse, type AdminEraseRequest, type AttestRequest, AuthError, type ClientConfig, type DCAEProofBundle, type DCAEVerdict, type DeletionReceipt, type ExecuteRequest, type ExecuteResponse, type ExecutionManifest, type FormulaEra, type Health, type Hex64, type ListRunsParams, NotFoundError, type PDFFormat, type Run, type RunSummary, VerdifaxClient, VerdifaxError, type VerdifaxVersion, type VerifyResponse, fromEnv, validateHex64, validateRouteId };
|