@1claw/sdk 0.61.13 → 0.61.14
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/README.md +4 -5
- package/dist/generated/api-types.d.ts +268 -0
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -419,7 +419,7 @@ Key properties:
|
|
|
419
419
|
|
|
420
420
|
### TEE Enforcement (Pro+)
|
|
421
421
|
|
|
422
|
-
Lock down agents so signing and execution
|
|
422
|
+
Lock down agents so signing and execution **must** happen in the hardware enclave (Shroud TEE). The vault enforces it by forwarding to Shroud, not by rejecting you.
|
|
423
423
|
|
|
424
424
|
```typescript
|
|
425
425
|
await client.agents.update(agentId, {
|
|
@@ -429,13 +429,12 @@ await client.agents.update(agentId, {
|
|
|
429
429
|
```
|
|
430
430
|
|
|
431
431
|
When `intents_require_tee` is true:
|
|
432
|
-
- Transaction submit/sign requests
|
|
433
|
-
-
|
|
432
|
+
- Transaction submit/sign requests are signed inside Shroud's TEE whichever host you call — the vault forwards a request that arrives at `api.1claw.co` to Shroud on the agent's behalf (vault ≥ 0.61.19), so the SDK needs no special `baseUrl`
|
|
433
|
+
- Direct calls to `shroud.1claw.co` still work and are required for DPoP-bound tokens
|
|
434
434
|
|
|
435
435
|
When `execution_require_tee` is true:
|
|
436
|
-
- Execute requests
|
|
436
|
+
- Execute requests run on Shroud's TEE execution surface — forced by the vault, no client routing needed
|
|
437
437
|
- All direct secret reads by the agent are blocked — forces use of Execution Intent bindings
|
|
438
|
-
- Agents must route through `shroud.1claw.co`
|
|
439
438
|
|
|
440
439
|
Both require `intents_api_enabled` / `execution_intents_enabled` to be on first.
|
|
441
440
|
|
|
@@ -3241,6 +3241,92 @@ export interface paths {
|
|
|
3241
3241
|
patch?: never;
|
|
3242
3242
|
trace?: never;
|
|
3243
3243
|
};
|
|
3244
|
+
"/v1/keys/{key_id}/client-share": {
|
|
3245
|
+
parameters: {
|
|
3246
|
+
query?: never;
|
|
3247
|
+
header?: never;
|
|
3248
|
+
path: {
|
|
3249
|
+
/** @description A treasury wallet id or an agent signing key id owned by the caller's org */
|
|
3250
|
+
key_id: string;
|
|
3251
|
+
};
|
|
3252
|
+
cookie?: never;
|
|
3253
|
+
};
|
|
3254
|
+
/**
|
|
3255
|
+
* List the caller's wrapped shares for a key
|
|
3256
|
+
* @description Returns every wrap on file for this key, unopened, to the user who
|
|
3257
|
+
* stored them. `custody` tells you whether the key is `server` (1claw
|
|
3258
|
+
* holds the whole private key) or `client_tss` (threshold; neither party
|
|
3259
|
+
* can sign alone). Funding a `client_tss` wallet needs at least two wraps.
|
|
3260
|
+
*/
|
|
3261
|
+
get: operations["listClientKeyShares"];
|
|
3262
|
+
/**
|
|
3263
|
+
* Store the customer's wrapped share of a threshold key
|
|
3264
|
+
* @description Stores ciphertext the vault cannot open: the customer's share of a
|
|
3265
|
+
* 2-party threshold signing key, wrapped in the browser under the
|
|
3266
|
+
* passkey's WebAuthn PRF output (`passkey_prf`, one wrap per credential)
|
|
3267
|
+
* or under a recovery code (`recovery_code`, one per key). The vault
|
|
3268
|
+
* keeps the blob and its salt and returns them only to the owning user.
|
|
3269
|
+
* Human users only; the passkey must have reported PRF support at
|
|
3270
|
+
* registration. Idempotent per (key, credential).
|
|
3271
|
+
*/
|
|
3272
|
+
put: operations["putClientKeyShare"];
|
|
3273
|
+
post?: never;
|
|
3274
|
+
delete?: never;
|
|
3275
|
+
options?: never;
|
|
3276
|
+
head?: never;
|
|
3277
|
+
patch?: never;
|
|
3278
|
+
trace?: never;
|
|
3279
|
+
};
|
|
3280
|
+
"/v1/keys/{key_id}/client-share/rewrap": {
|
|
3281
|
+
parameters: {
|
|
3282
|
+
query?: never;
|
|
3283
|
+
header?: never;
|
|
3284
|
+
path: {
|
|
3285
|
+
key_id: string;
|
|
3286
|
+
};
|
|
3287
|
+
cookie?: never;
|
|
3288
|
+
};
|
|
3289
|
+
get?: never;
|
|
3290
|
+
put?: never;
|
|
3291
|
+
/**
|
|
3292
|
+
* Add a wrap for another credential or the recovery code
|
|
3293
|
+
* @description Same write as `PUT …/client-share`, for a key that already has at
|
|
3294
|
+
* least one wrap: the browser, holding the share in memory during a
|
|
3295
|
+
* passkey session, re-wraps it under a newly added passkey's PRF
|
|
3296
|
+
* output or under the recovery code. 409 if no wrap exists yet.
|
|
3297
|
+
*/
|
|
3298
|
+
post: operations["rewrapClientKeyShare"];
|
|
3299
|
+
delete?: never;
|
|
3300
|
+
options?: never;
|
|
3301
|
+
head?: never;
|
|
3302
|
+
patch?: never;
|
|
3303
|
+
trace?: never;
|
|
3304
|
+
};
|
|
3305
|
+
"/v1/keys/{key_id}/client-share/{share_id}": {
|
|
3306
|
+
parameters: {
|
|
3307
|
+
query?: never;
|
|
3308
|
+
header?: never;
|
|
3309
|
+
path: {
|
|
3310
|
+
key_id: string;
|
|
3311
|
+
share_id: string;
|
|
3312
|
+
};
|
|
3313
|
+
cookie?: never;
|
|
3314
|
+
};
|
|
3315
|
+
get?: never;
|
|
3316
|
+
put?: never;
|
|
3317
|
+
post?: never;
|
|
3318
|
+
/**
|
|
3319
|
+
* Remove one wrap
|
|
3320
|
+
* @description Deletes a single wrap. Wraps tied to a passkey are also removed when
|
|
3321
|
+
* that passkey is deleted. Removing the last wrap of a `client_tss` key
|
|
3322
|
+
* makes the key unrecoverable — the vault holds only its own share.
|
|
3323
|
+
*/
|
|
3324
|
+
delete: operations["deleteClientKeyShare"];
|
|
3325
|
+
options?: never;
|
|
3326
|
+
head?: never;
|
|
3327
|
+
patch?: never;
|
|
3328
|
+
trace?: never;
|
|
3329
|
+
};
|
|
3244
3330
|
"/v1/treasury/wallets/generate": {
|
|
3245
3331
|
parameters: {
|
|
3246
3332
|
query?: never;
|
|
@@ -13087,6 +13173,12 @@ export interface components {
|
|
|
13087
13173
|
created_at?: string;
|
|
13088
13174
|
/** Format: date-time */
|
|
13089
13175
|
rotated_at?: string | null;
|
|
13176
|
+
/**
|
|
13177
|
+
* @description `server` — 1claw holds the whole private key and can sign alone.
|
|
13178
|
+
* `client_tss` — 2-party threshold key; the customer's passkey share is required.
|
|
13179
|
+
* @enum {string}
|
|
13180
|
+
*/
|
|
13181
|
+
custody?: "server" | "client_tss";
|
|
13090
13182
|
};
|
|
13091
13183
|
SigningKeyListResponse: {
|
|
13092
13184
|
keys?: components["schemas"]["SigningKeyResponse"][];
|
|
@@ -14025,6 +14117,12 @@ export interface components {
|
|
|
14025
14117
|
is_active?: boolean;
|
|
14026
14118
|
/** Format: date-time */
|
|
14027
14119
|
created_at?: string;
|
|
14120
|
+
/**
|
|
14121
|
+
* @description `server` — 1claw holds the whole private key and can sign alone.
|
|
14122
|
+
* `client_tss` — 2-party threshold key; the customer's passkey share is required.
|
|
14123
|
+
* @enum {string}
|
|
14124
|
+
*/
|
|
14125
|
+
custody?: "server" | "client_tss";
|
|
14028
14126
|
};
|
|
14029
14127
|
TreasuryWalletListResponse: {
|
|
14030
14128
|
wallets?: components["schemas"]["TreasuryWalletResponse"][];
|
|
@@ -15357,6 +15455,58 @@ export interface components {
|
|
|
15357
15455
|
client_data_json: string;
|
|
15358
15456
|
transports?: string[];
|
|
15359
15457
|
name?: string;
|
|
15458
|
+
/**
|
|
15459
|
+
* @description `prf.enabled` from `credential.getClientExtensionResults()` —
|
|
15460
|
+
* whether this authenticator can derive the secret that wraps a
|
|
15461
|
+
* wallet share. Omit if the client did not request the extension.
|
|
15462
|
+
*/
|
|
15463
|
+
prf_supported?: boolean | null;
|
|
15464
|
+
};
|
|
15465
|
+
PutClientShareRequest: {
|
|
15466
|
+
/** @enum {string} */
|
|
15467
|
+
wrap_kind: "passkey_prf" | "recovery_code";
|
|
15468
|
+
/**
|
|
15469
|
+
* Format: uuid
|
|
15470
|
+
* @description Required for `passkey_prf`; the passkey id from `GET /v1/auth/passkeys`.
|
|
15471
|
+
*/
|
|
15472
|
+
credential_id?: string | null;
|
|
15473
|
+
/** @description Base64 ciphertext (≤ 4 KiB). Opaque to the vault. */
|
|
15474
|
+
wrapped_share: string;
|
|
15475
|
+
/** @description Base64 PRF salt, 16–64 random bytes, one per key. */
|
|
15476
|
+
salt: string;
|
|
15477
|
+
};
|
|
15478
|
+
ClientShareResponse: {
|
|
15479
|
+
/** Format: uuid */
|
|
15480
|
+
id?: string;
|
|
15481
|
+
/** Format: uuid */
|
|
15482
|
+
key_id?: string;
|
|
15483
|
+
/** @enum {string} */
|
|
15484
|
+
key_kind?: "agent_signing_key" | "treasury_wallet";
|
|
15485
|
+
/** @enum {string} */
|
|
15486
|
+
wrap_kind?: "passkey_prf" | "recovery_code";
|
|
15487
|
+
/** Format: uuid */
|
|
15488
|
+
credential_id?: string | null;
|
|
15489
|
+
/** @description Base64, exactly as stored. */
|
|
15490
|
+
wrapped_share?: string;
|
|
15491
|
+
/** @description Base64. */
|
|
15492
|
+
salt?: string;
|
|
15493
|
+
/** Format: date-time */
|
|
15494
|
+
created_at?: string;
|
|
15495
|
+
/** Format: date-time */
|
|
15496
|
+
updated_at?: string;
|
|
15497
|
+
};
|
|
15498
|
+
ClientShareListResponse: {
|
|
15499
|
+
/** Format: uuid */
|
|
15500
|
+
key_id?: string;
|
|
15501
|
+
/** @enum {string} */
|
|
15502
|
+
key_kind?: "agent_signing_key" | "treasury_wallet";
|
|
15503
|
+
/**
|
|
15504
|
+
* @description `server` — 1claw holds the whole private key and can sign alone.
|
|
15505
|
+
* `client_tss` — 2-party threshold key; the customer's share is required.
|
|
15506
|
+
* @enum {string}
|
|
15507
|
+
*/
|
|
15508
|
+
custody?: "server" | "client_tss";
|
|
15509
|
+
shares?: components["schemas"]["ClientShareResponse"][];
|
|
15360
15510
|
};
|
|
15361
15511
|
PasskeyRegisterCompleteResponse: {
|
|
15362
15512
|
/** Format: uuid */
|
|
@@ -18108,6 +18258,12 @@ export interface operations {
|
|
|
18108
18258
|
name?: string;
|
|
18109
18259
|
last_used_at?: string;
|
|
18110
18260
|
created_at?: string;
|
|
18261
|
+
/**
|
|
18262
|
+
* @description `true` — can hold a wallet share (WebAuthn PRF).
|
|
18263
|
+
* `false` — cannot. `null` — registered before this
|
|
18264
|
+
* was captured.
|
|
18265
|
+
*/
|
|
18266
|
+
prf_supported?: boolean | null;
|
|
18111
18267
|
}[];
|
|
18112
18268
|
};
|
|
18113
18269
|
};
|
|
@@ -23023,6 +23179,118 @@ export interface operations {
|
|
|
23023
23179
|
404: components["responses"]["NotFound"];
|
|
23024
23180
|
};
|
|
23025
23181
|
};
|
|
23182
|
+
listClientKeyShares: {
|
|
23183
|
+
parameters: {
|
|
23184
|
+
query?: never;
|
|
23185
|
+
header?: never;
|
|
23186
|
+
path: {
|
|
23187
|
+
/** @description A treasury wallet id or an agent signing key id owned by the caller's org */
|
|
23188
|
+
key_id: string;
|
|
23189
|
+
};
|
|
23190
|
+
cookie?: never;
|
|
23191
|
+
};
|
|
23192
|
+
requestBody?: never;
|
|
23193
|
+
responses: {
|
|
23194
|
+
/** @description Wraps on file */
|
|
23195
|
+
200: {
|
|
23196
|
+
headers: {
|
|
23197
|
+
[name: string]: unknown;
|
|
23198
|
+
};
|
|
23199
|
+
content: {
|
|
23200
|
+
"application/json": components["schemas"]["ClientShareListResponse"];
|
|
23201
|
+
};
|
|
23202
|
+
};
|
|
23203
|
+
401: components["responses"]["Unauthorized"];
|
|
23204
|
+
403: components["responses"]["Forbidden"];
|
|
23205
|
+
404: components["responses"]["NotFound"];
|
|
23206
|
+
};
|
|
23207
|
+
};
|
|
23208
|
+
putClientKeyShare: {
|
|
23209
|
+
parameters: {
|
|
23210
|
+
query?: never;
|
|
23211
|
+
header?: never;
|
|
23212
|
+
path: {
|
|
23213
|
+
/** @description A treasury wallet id or an agent signing key id owned by the caller's org */
|
|
23214
|
+
key_id: string;
|
|
23215
|
+
};
|
|
23216
|
+
cookie?: never;
|
|
23217
|
+
};
|
|
23218
|
+
requestBody: {
|
|
23219
|
+
content: {
|
|
23220
|
+
"application/json": components["schemas"]["PutClientShareRequest"];
|
|
23221
|
+
};
|
|
23222
|
+
};
|
|
23223
|
+
responses: {
|
|
23224
|
+
/** @description Share stored */
|
|
23225
|
+
201: {
|
|
23226
|
+
headers: {
|
|
23227
|
+
[name: string]: unknown;
|
|
23228
|
+
};
|
|
23229
|
+
content: {
|
|
23230
|
+
"application/json": components["schemas"]["ClientShareResponse"];
|
|
23231
|
+
};
|
|
23232
|
+
};
|
|
23233
|
+
400: components["responses"]["BadRequest"];
|
|
23234
|
+
401: components["responses"]["Unauthorized"];
|
|
23235
|
+
403: components["responses"]["Forbidden"];
|
|
23236
|
+
404: components["responses"]["NotFound"];
|
|
23237
|
+
};
|
|
23238
|
+
};
|
|
23239
|
+
rewrapClientKeyShare: {
|
|
23240
|
+
parameters: {
|
|
23241
|
+
query?: never;
|
|
23242
|
+
header?: never;
|
|
23243
|
+
path: {
|
|
23244
|
+
key_id: string;
|
|
23245
|
+
};
|
|
23246
|
+
cookie?: never;
|
|
23247
|
+
};
|
|
23248
|
+
requestBody: {
|
|
23249
|
+
content: {
|
|
23250
|
+
"application/json": components["schemas"]["PutClientShareRequest"];
|
|
23251
|
+
};
|
|
23252
|
+
};
|
|
23253
|
+
responses: {
|
|
23254
|
+
/** @description Wrap added */
|
|
23255
|
+
201: {
|
|
23256
|
+
headers: {
|
|
23257
|
+
[name: string]: unknown;
|
|
23258
|
+
};
|
|
23259
|
+
content: {
|
|
23260
|
+
"application/json": components["schemas"]["ClientShareResponse"];
|
|
23261
|
+
};
|
|
23262
|
+
};
|
|
23263
|
+
400: components["responses"]["BadRequest"];
|
|
23264
|
+
401: components["responses"]["Unauthorized"];
|
|
23265
|
+
403: components["responses"]["Forbidden"];
|
|
23266
|
+
404: components["responses"]["NotFound"];
|
|
23267
|
+
409: components["responses"]["Conflict"];
|
|
23268
|
+
};
|
|
23269
|
+
};
|
|
23270
|
+
deleteClientKeyShare: {
|
|
23271
|
+
parameters: {
|
|
23272
|
+
query?: never;
|
|
23273
|
+
header?: never;
|
|
23274
|
+
path: {
|
|
23275
|
+
key_id: string;
|
|
23276
|
+
share_id: string;
|
|
23277
|
+
};
|
|
23278
|
+
cookie?: never;
|
|
23279
|
+
};
|
|
23280
|
+
requestBody?: never;
|
|
23281
|
+
responses: {
|
|
23282
|
+
/** @description Wrap removed */
|
|
23283
|
+
204: {
|
|
23284
|
+
headers: {
|
|
23285
|
+
[name: string]: unknown;
|
|
23286
|
+
};
|
|
23287
|
+
content?: never;
|
|
23288
|
+
};
|
|
23289
|
+
401: components["responses"]["Unauthorized"];
|
|
23290
|
+
403: components["responses"]["Forbidden"];
|
|
23291
|
+
404: components["responses"]["NotFound"];
|
|
23292
|
+
};
|
|
23293
|
+
};
|
|
23026
23294
|
generateTreasuryWallets: {
|
|
23027
23295
|
parameters: {
|
|
23028
23296
|
query?: never;
|