@1claw/openapi-spec 0.20.0 → 0.21.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/README.md +7 -4
- package/openapi.json +681 -9
- package/openapi.yaml +522 -9
- package/package.json +1 -1
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: 2.
|
|
5
|
+
version: 2.11.0
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -192,6 +192,12 @@ paths:
|
|
|
192
192
|
Returns the Ed25519 public key used to sign JWTs.
|
|
193
193
|
Use this to verify tokens independently (e.g. in a TEE proxy or
|
|
194
194
|
gateway). No authentication required.
|
|
195
|
+
|
|
196
|
+
For OIDC-compliant relying parties (Anthropic Workload Identity
|
|
197
|
+
Federation, etc.) prefer the JWKS endpoint at
|
|
198
|
+
`/.well-known/jwks.json` together with the discovery document
|
|
199
|
+
at `/.well-known/openid-configuration` — those advertise both
|
|
200
|
+
Ed25519 and RS256 keys keyed by `kid` and survive key rotation.
|
|
195
201
|
operationId: getJwtPublicKey
|
|
196
202
|
security: []
|
|
197
203
|
responses:
|
|
@@ -210,6 +216,100 @@ paths:
|
|
|
210
216
|
type: string
|
|
211
217
|
description: Base64-encoded Ed25519 public key
|
|
212
218
|
|
|
219
|
+
/v1/auth/federated-token:
|
|
220
|
+
post:
|
|
221
|
+
tags: [Authentication]
|
|
222
|
+
summary: Exchange a 1claw token for an OIDC federation token (RFC 8693)
|
|
223
|
+
description: |
|
|
224
|
+
Mints a short-lived RS256-signed JWT targeted at an external
|
|
225
|
+
relying party (e.g. Anthropic Workload Identity Federation).
|
|
226
|
+
The relying party validates the token via this issuer's JWKS
|
|
227
|
+
URL (`/.well-known/jwks.json`) and exchanges it for its own
|
|
228
|
+
short-lived service credentials.
|
|
229
|
+
|
|
230
|
+
Requirements:
|
|
231
|
+
- The agent that owns the `subject_token` must have
|
|
232
|
+
`federation_enabled = true` and the requested `audience`
|
|
233
|
+
must appear in `federation_audiences`.
|
|
234
|
+
- The `subject_token` must be a valid 1claw agent JWT or
|
|
235
|
+
`ocv_` API key.
|
|
236
|
+
- Optional `scope` narrows the agent's existing scopes — it
|
|
237
|
+
cannot escalate.
|
|
238
|
+
|
|
239
|
+
Returns 503 when `ONECLAW_JWT_RS256_SIGNING_KEY_ID` is not
|
|
240
|
+
configured on the server.
|
|
241
|
+
operationId: exchangeFederatedToken
|
|
242
|
+
security: []
|
|
243
|
+
requestBody:
|
|
244
|
+
required: true
|
|
245
|
+
content:
|
|
246
|
+
application/json:
|
|
247
|
+
schema:
|
|
248
|
+
$ref: "#/components/schemas/TokenExchangeRequest"
|
|
249
|
+
application/x-www-form-urlencoded:
|
|
250
|
+
schema:
|
|
251
|
+
$ref: "#/components/schemas/TokenExchangeRequest"
|
|
252
|
+
responses:
|
|
253
|
+
"200":
|
|
254
|
+
description: Federation token issued
|
|
255
|
+
content:
|
|
256
|
+
application/json:
|
|
257
|
+
schema:
|
|
258
|
+
$ref: "#/components/schemas/TokenExchangeResponse"
|
|
259
|
+
"400":
|
|
260
|
+
$ref: "#/components/responses/BadRequest"
|
|
261
|
+
"401":
|
|
262
|
+
$ref: "#/components/responses/Unauthorized"
|
|
263
|
+
"403":
|
|
264
|
+
$ref: "#/components/responses/Forbidden"
|
|
265
|
+
"503":
|
|
266
|
+
description: RS256 signing key not configured
|
|
267
|
+
|
|
268
|
+
/.well-known/openid-configuration:
|
|
269
|
+
get:
|
|
270
|
+
tags: [Authentication]
|
|
271
|
+
summary: OIDC discovery document
|
|
272
|
+
description: |
|
|
273
|
+
Standard OpenID Connect discovery document advertising the
|
|
274
|
+
issuer URL, JWKS URL, supported algorithms (`EdDSA`, `RS256`),
|
|
275
|
+
and the RFC 8693 token-exchange endpoint. External IdPs
|
|
276
|
+
(Anthropic WIF, Okta, Auth0, etc.) read this URL to learn
|
|
277
|
+
where 1claw publishes its JWKS.
|
|
278
|
+
operationId: openidConfiguration
|
|
279
|
+
security: []
|
|
280
|
+
responses:
|
|
281
|
+
"200":
|
|
282
|
+
description: Discovery document
|
|
283
|
+
content:
|
|
284
|
+
application/json:
|
|
285
|
+
schema:
|
|
286
|
+
type: object
|
|
287
|
+
|
|
288
|
+
/.well-known/jwks.json:
|
|
289
|
+
get:
|
|
290
|
+
tags: [Authentication]
|
|
291
|
+
summary: JSON Web Key Set
|
|
292
|
+
description: |
|
|
293
|
+
Public keys for every active version of every JWT signing
|
|
294
|
+
key (Ed25519 + RSA-2048). Each entry includes a `kid` so
|
|
295
|
+
consumers can validate tokens issued before the most recent
|
|
296
|
+
key rotation. Cached for 5 minutes via `Cache-Control` and
|
|
297
|
+
CORS-permissive for browser-based IdP consoles.
|
|
298
|
+
operationId: jwks
|
|
299
|
+
security: []
|
|
300
|
+
responses:
|
|
301
|
+
"200":
|
|
302
|
+
description: JWK Set
|
|
303
|
+
content:
|
|
304
|
+
application/jwk-set+json:
|
|
305
|
+
schema:
|
|
306
|
+
type: object
|
|
307
|
+
properties:
|
|
308
|
+
keys:
|
|
309
|
+
type: array
|
|
310
|
+
items:
|
|
311
|
+
type: object
|
|
312
|
+
|
|
213
313
|
/v1/auth/signup:
|
|
214
314
|
post:
|
|
215
315
|
tags: [Authentication]
|
|
@@ -1121,7 +1221,7 @@ paths:
|
|
|
1121
1221
|
"410":
|
|
1122
1222
|
description: Version has been disabled or expired
|
|
1123
1223
|
|
|
1124
|
-
/v1/vaults/{vault_id}/secret-version/{path}/{version}
|
|
1224
|
+
/v1/vaults/{vault_id}/secret-version-disable/{path}/{version}:
|
|
1125
1225
|
post:
|
|
1126
1226
|
tags: [Secrets]
|
|
1127
1227
|
summary: Disable a specific secret version
|
|
@@ -1258,9 +1358,17 @@ paths:
|
|
|
1258
1358
|
summary: Self-enroll an agent
|
|
1259
1359
|
operationId: enrollAgent
|
|
1260
1360
|
description: |
|
|
1261
|
-
Public endpoint (no auth required).
|
|
1262
|
-
|
|
1263
|
-
|
|
1361
|
+
Public endpoint (no auth required).
|
|
1362
|
+
|
|
1363
|
+
**With `human_email`:** Creates a pending enrollment for that account's org,
|
|
1364
|
+
emails Allow/Deny links, and returns `approval_url` in the JSON body (use if email
|
|
1365
|
+
is delayed). The API key is NOT returned until the human approves.
|
|
1366
|
+
|
|
1367
|
+
**Name only (omit `human_email`):** Creates a link-only pending enrollment.
|
|
1368
|
+
The response includes `approval_url`; the human opens it while signed in to
|
|
1369
|
+
approve the agent into their org.
|
|
1370
|
+
|
|
1371
|
+
Anti-spam: IP rate limiting, per-email cooldown, caps on pending rows.
|
|
1264
1372
|
requestBody:
|
|
1265
1373
|
required: true
|
|
1266
1374
|
content:
|
|
@@ -1651,6 +1759,117 @@ paths:
|
|
|
1651
1759
|
"402":
|
|
1652
1760
|
$ref: "#/components/responses/PaymentRequired"
|
|
1653
1761
|
|
|
1762
|
+
# ---------------------------------------------------------------------------
|
|
1763
|
+
# Agent Signing Keys (Multi-Chain)
|
|
1764
|
+
# ---------------------------------------------------------------------------
|
|
1765
|
+
|
|
1766
|
+
/v1/agents/{agent_id}/signing-keys:
|
|
1767
|
+
post:
|
|
1768
|
+
tags: [Signing Keys]
|
|
1769
|
+
summary: Provision a signing key for a chain
|
|
1770
|
+
operationId: createSigningKey
|
|
1771
|
+
parameters:
|
|
1772
|
+
- $ref: "#/components/parameters/AgentId"
|
|
1773
|
+
requestBody:
|
|
1774
|
+
required: true
|
|
1775
|
+
content:
|
|
1776
|
+
application/json:
|
|
1777
|
+
schema:
|
|
1778
|
+
$ref: "#/components/schemas/CreateSigningKeyRequest"
|
|
1779
|
+
responses:
|
|
1780
|
+
"201":
|
|
1781
|
+
description: Signing key created
|
|
1782
|
+
content:
|
|
1783
|
+
application/json:
|
|
1784
|
+
schema:
|
|
1785
|
+
$ref: "#/components/schemas/SigningKeyResponse"
|
|
1786
|
+
"400":
|
|
1787
|
+
$ref: "#/components/responses/BadRequest"
|
|
1788
|
+
"409":
|
|
1789
|
+
$ref: "#/components/responses/Conflict"
|
|
1790
|
+
get:
|
|
1791
|
+
tags: [Signing Keys]
|
|
1792
|
+
summary: List signing keys for an agent
|
|
1793
|
+
operationId: listSigningKeys
|
|
1794
|
+
parameters:
|
|
1795
|
+
- $ref: "#/components/parameters/AgentId"
|
|
1796
|
+
responses:
|
|
1797
|
+
"200":
|
|
1798
|
+
description: Signing keys list
|
|
1799
|
+
content:
|
|
1800
|
+
application/json:
|
|
1801
|
+
schema:
|
|
1802
|
+
$ref: "#/components/schemas/SigningKeyListResponse"
|
|
1803
|
+
|
|
1804
|
+
/v1/agents/{agent_id}/signing-keys/{chain}/rotate:
|
|
1805
|
+
post:
|
|
1806
|
+
tags: [Signing Keys]
|
|
1807
|
+
summary: Rotate a signing key for a chain
|
|
1808
|
+
operationId: rotateSigningKey
|
|
1809
|
+
parameters:
|
|
1810
|
+
- $ref: "#/components/parameters/AgentId"
|
|
1811
|
+
- name: chain
|
|
1812
|
+
in: path
|
|
1813
|
+
required: true
|
|
1814
|
+
schema:
|
|
1815
|
+
type: string
|
|
1816
|
+
responses:
|
|
1817
|
+
"200":
|
|
1818
|
+
description: Rotated signing key
|
|
1819
|
+
content:
|
|
1820
|
+
application/json:
|
|
1821
|
+
schema:
|
|
1822
|
+
$ref: "#/components/schemas/SigningKeyResponse"
|
|
1823
|
+
"404":
|
|
1824
|
+
$ref: "#/components/responses/NotFound"
|
|
1825
|
+
|
|
1826
|
+
/v1/agents/{agent_id}/signing-keys/{chain}:
|
|
1827
|
+
delete:
|
|
1828
|
+
tags: [Signing Keys]
|
|
1829
|
+
summary: Deactivate a signing key for a chain
|
|
1830
|
+
operationId: deactivateSigningKey
|
|
1831
|
+
parameters:
|
|
1832
|
+
- $ref: "#/components/parameters/AgentId"
|
|
1833
|
+
- name: chain
|
|
1834
|
+
in: path
|
|
1835
|
+
required: true
|
|
1836
|
+
schema:
|
|
1837
|
+
type: string
|
|
1838
|
+
responses:
|
|
1839
|
+
"204":
|
|
1840
|
+
description: Key deactivated
|
|
1841
|
+
"404":
|
|
1842
|
+
$ref: "#/components/responses/NotFound"
|
|
1843
|
+
|
|
1844
|
+
# ---------------------------------------------------------------------------
|
|
1845
|
+
# Unified Signing Intent
|
|
1846
|
+
# ---------------------------------------------------------------------------
|
|
1847
|
+
|
|
1848
|
+
/v1/agents/{agent_id}/sign:
|
|
1849
|
+
post:
|
|
1850
|
+
tags: [Signing]
|
|
1851
|
+
summary: Unified signing intent (EIP-191, EIP-712, EIP-2718 types 0-4)
|
|
1852
|
+
operationId: signIntent
|
|
1853
|
+
parameters:
|
|
1854
|
+
- $ref: "#/components/parameters/AgentId"
|
|
1855
|
+
requestBody:
|
|
1856
|
+
required: true
|
|
1857
|
+
content:
|
|
1858
|
+
application/json:
|
|
1859
|
+
schema:
|
|
1860
|
+
$ref: "#/components/schemas/SignIntentRequest"
|
|
1861
|
+
responses:
|
|
1862
|
+
"200":
|
|
1863
|
+
description: Signed result
|
|
1864
|
+
content:
|
|
1865
|
+
application/json:
|
|
1866
|
+
schema:
|
|
1867
|
+
$ref: "#/components/schemas/SignIntentResponse"
|
|
1868
|
+
"400":
|
|
1869
|
+
$ref: "#/components/responses/BadRequest"
|
|
1870
|
+
"403":
|
|
1871
|
+
$ref: "#/components/responses/Forbidden"
|
|
1872
|
+
|
|
1654
1873
|
# ---------------------------------------------------------------------------
|
|
1655
1874
|
# Chains
|
|
1656
1875
|
# ---------------------------------------------------------------------------
|
|
@@ -3057,6 +3276,12 @@ components:
|
|
|
3057
3276
|
application/json:
|
|
3058
3277
|
schema:
|
|
3059
3278
|
$ref: "#/components/schemas/PaymentRequirement"
|
|
3279
|
+
Conflict:
|
|
3280
|
+
description: Resource already exists or conflict
|
|
3281
|
+
content:
|
|
3282
|
+
application/json:
|
|
3283
|
+
schema:
|
|
3284
|
+
$ref: "#/components/schemas/ProblemDetails"
|
|
3060
3285
|
|
|
3061
3286
|
schemas:
|
|
3062
3287
|
ProblemDetails:
|
|
@@ -3168,6 +3393,55 @@ components:
|
|
|
3168
3393
|
api_key:
|
|
3169
3394
|
type: string
|
|
3170
3395
|
|
|
3396
|
+
TokenExchangeRequest:
|
|
3397
|
+
type: object
|
|
3398
|
+
required: [grant_type, subject_token, subject_token_type, audience]
|
|
3399
|
+
description: |
|
|
3400
|
+
RFC 8693 token-exchange request body. `subject_token_type`
|
|
3401
|
+
accepts the standard JWT URI or 1claw's API-key URI:
|
|
3402
|
+
- `urn:ietf:params:oauth:token-type:jwt`
|
|
3403
|
+
- `urn:1claw:params:oauth:token-type:api-key`
|
|
3404
|
+
properties:
|
|
3405
|
+
grant_type:
|
|
3406
|
+
type: string
|
|
3407
|
+
enum:
|
|
3408
|
+
- "urn:ietf:params:oauth:grant-type:token-exchange"
|
|
3409
|
+
subject_token:
|
|
3410
|
+
type: string
|
|
3411
|
+
description: 1claw JWT or `ocv_` API key authorising the exchange.
|
|
3412
|
+
subject_token_type:
|
|
3413
|
+
type: string
|
|
3414
|
+
enum:
|
|
3415
|
+
- "urn:ietf:params:oauth:token-type:jwt"
|
|
3416
|
+
- "urn:1claw:params:oauth:token-type:api-key"
|
|
3417
|
+
audience:
|
|
3418
|
+
type: string
|
|
3419
|
+
format: uri
|
|
3420
|
+
description: Required `aud` claim for the issued federation token (must be in agent's allowlist).
|
|
3421
|
+
example: "https://api.anthropic.com"
|
|
3422
|
+
scope:
|
|
3423
|
+
type: string
|
|
3424
|
+
description: Optional space-separated subset of the agent's existing scopes.
|
|
3425
|
+
requested_token_type:
|
|
3426
|
+
type: string
|
|
3427
|
+
description: Optional. Defaults to `urn:ietf:params:oauth:token-type:jwt`.
|
|
3428
|
+
|
|
3429
|
+
TokenExchangeResponse:
|
|
3430
|
+
type: object
|
|
3431
|
+
required: [access_token, issued_token_type, token_type, expires_in]
|
|
3432
|
+
properties:
|
|
3433
|
+
access_token:
|
|
3434
|
+
type: string
|
|
3435
|
+
description: RS256-signed federation JWT.
|
|
3436
|
+
issued_token_type:
|
|
3437
|
+
type: string
|
|
3438
|
+
token_type:
|
|
3439
|
+
type: string
|
|
3440
|
+
expires_in:
|
|
3441
|
+
type: integer
|
|
3442
|
+
scope:
|
|
3443
|
+
type: string
|
|
3444
|
+
|
|
3171
3445
|
SignupRequest:
|
|
3172
3446
|
type: object
|
|
3173
3447
|
required: [email, password]
|
|
@@ -3792,7 +4066,7 @@ components:
|
|
|
3792
4066
|
|
|
3793
4067
|
EnrollAgentRequest:
|
|
3794
4068
|
type: object
|
|
3795
|
-
required: [name
|
|
4069
|
+
required: [name]
|
|
3796
4070
|
properties:
|
|
3797
4071
|
name:
|
|
3798
4072
|
type: string
|
|
@@ -3800,7 +4074,10 @@ components:
|
|
|
3800
4074
|
human_email:
|
|
3801
4075
|
type: string
|
|
3802
4076
|
format: email
|
|
3803
|
-
description:
|
|
4077
|
+
description: |
|
|
4078
|
+
Optional. If set, pending enrollment is bound to that 1Claw account email
|
|
4079
|
+
and Allow/Deny links are emailed. If omitted, only `approval_url` is used
|
|
4080
|
+
(link-only enrollment; human must open the URL while signed in).
|
|
3804
4081
|
description:
|
|
3805
4082
|
type: string
|
|
3806
4083
|
description: Optional agent description
|
|
@@ -3811,10 +4088,16 @@ components:
|
|
|
3811
4088
|
agent_id:
|
|
3812
4089
|
type: string
|
|
3813
4090
|
format: uuid
|
|
3814
|
-
description: UUID of the created agent (nil UUID
|
|
4091
|
+
description: UUID of the created agent (nil UUID until approved — uniform response)
|
|
3815
4092
|
message:
|
|
3816
4093
|
type: string
|
|
3817
|
-
description: Status message (
|
|
4094
|
+
description: Status message (worded to limit email enumeration where applicable)
|
|
4095
|
+
approval_url:
|
|
4096
|
+
type: string
|
|
4097
|
+
format: uri
|
|
4098
|
+
description: |
|
|
4099
|
+
Present when a pending enrollment was created and the client should show
|
|
4100
|
+
this link (email flow includes it as a fallback; name-only flow requires it).
|
|
3818
4101
|
|
|
3819
4102
|
# --- Agents ---
|
|
3820
4103
|
|
|
@@ -3920,6 +4203,30 @@ components:
|
|
|
3920
4203
|
description: Enable/disable Shroud LLM Proxy
|
|
3921
4204
|
shroud_config:
|
|
3922
4205
|
$ref: "#/components/schemas/ShroudConfig"
|
|
4206
|
+
federation_enabled:
|
|
4207
|
+
type: boolean
|
|
4208
|
+
description: |
|
|
4209
|
+
Enable OIDC federation (RFC 8693 token-exchange) for this agent.
|
|
4210
|
+
When true, the agent may call POST /v1/auth/federated-token to mint
|
|
4211
|
+
federation tokens for the audiences listed in `federation_audiences`.
|
|
4212
|
+
federation_audiences:
|
|
4213
|
+
type: array
|
|
4214
|
+
items:
|
|
4215
|
+
type: string
|
|
4216
|
+
format: uri
|
|
4217
|
+
description: |
|
|
4218
|
+
Allowlist of `aud` values the federation token-exchange may issue
|
|
4219
|
+
tokens for (e.g. `["https://api.anthropic.com"]`). Empty array
|
|
4220
|
+
blocks all federation requests (zero-trust default).
|
|
4221
|
+
federated_token_ttl_seconds:
|
|
4222
|
+
type: integer
|
|
4223
|
+
minimum: 60
|
|
4224
|
+
maximum: 3600
|
|
4225
|
+
nullable: true
|
|
4226
|
+
description: |
|
|
4227
|
+
Per-agent TTL override for federation tokens (seconds). NULL falls
|
|
4228
|
+
back to the global default (`ONECLAW_JWT_FEDERATED_TOKEN_EXPIRY_SECS`).
|
|
4229
|
+
Hard-capped at 3600 seconds.
|
|
3923
4230
|
|
|
3924
4231
|
AgentResponse:
|
|
3925
4232
|
type: object
|
|
@@ -3995,6 +4302,38 @@ components:
|
|
|
3995
4302
|
description: Whether this agent routes LLM traffic through the Shroud TEE proxy
|
|
3996
4303
|
shroud_config:
|
|
3997
4304
|
$ref: "#/components/schemas/ShroudConfig"
|
|
4305
|
+
federation_enabled:
|
|
4306
|
+
type: boolean
|
|
4307
|
+
description: |
|
|
4308
|
+
Whether this agent may mint OIDC federation tokens via
|
|
4309
|
+
POST /v1/auth/federated-token. False by default.
|
|
4310
|
+
federation_audiences:
|
|
4311
|
+
type: array
|
|
4312
|
+
items:
|
|
4313
|
+
type: string
|
|
4314
|
+
format: uri
|
|
4315
|
+
description: Allowlist of audience URIs the agent may federate to.
|
|
4316
|
+
federated_token_ttl_seconds:
|
|
4317
|
+
type: integer
|
|
4318
|
+
nullable: true
|
|
4319
|
+
description: Per-agent TTL override for federation tokens (60..=3600).
|
|
4320
|
+
signing_chains:
|
|
4321
|
+
type: array
|
|
4322
|
+
items:
|
|
4323
|
+
type: string
|
|
4324
|
+
description: Chains for which this agent has provisioned signing keys.
|
|
4325
|
+
eip712_domain_allowlist:
|
|
4326
|
+
type: array
|
|
4327
|
+
items:
|
|
4328
|
+
type: object
|
|
4329
|
+
description: JSON array of allowed EIP-712 domain entries.
|
|
4330
|
+
eip712_default_policy:
|
|
4331
|
+
type: string
|
|
4332
|
+
enum: [deny, allow]
|
|
4333
|
+
description: Default EIP-712 policy (deny blocks all unless allowlisted).
|
|
4334
|
+
message_signing_enabled:
|
|
4335
|
+
type: boolean
|
|
4336
|
+
description: Whether EIP-191 personal_sign is enabled.
|
|
3998
4337
|
created_at:
|
|
3999
4338
|
type: string
|
|
4000
4339
|
format: date-time
|
|
@@ -4616,6 +4955,133 @@ components:
|
|
|
4616
4955
|
items:
|
|
4617
4956
|
$ref: "#/components/schemas/SimulateTransactionRequest"
|
|
4618
4957
|
|
|
4958
|
+
# Signing Keys (Multi-Chain)
|
|
4959
|
+
CreateSigningKeyRequest:
|
|
4960
|
+
type: object
|
|
4961
|
+
required: [chain]
|
|
4962
|
+
properties:
|
|
4963
|
+
chain:
|
|
4964
|
+
type: string
|
|
4965
|
+
enum: [ethereum, bitcoin, solana, xrp, cardano, tron]
|
|
4966
|
+
|
|
4967
|
+
SigningKeyResponse:
|
|
4968
|
+
type: object
|
|
4969
|
+
properties:
|
|
4970
|
+
id:
|
|
4971
|
+
type: string
|
|
4972
|
+
format: uuid
|
|
4973
|
+
agent_id:
|
|
4974
|
+
type: string
|
|
4975
|
+
format: uuid
|
|
4976
|
+
chain:
|
|
4977
|
+
type: string
|
|
4978
|
+
curve:
|
|
4979
|
+
type: string
|
|
4980
|
+
public_key:
|
|
4981
|
+
type: string
|
|
4982
|
+
address:
|
|
4983
|
+
type: string
|
|
4984
|
+
nullable: true
|
|
4985
|
+
key_version:
|
|
4986
|
+
type: integer
|
|
4987
|
+
is_active:
|
|
4988
|
+
type: boolean
|
|
4989
|
+
created_at:
|
|
4990
|
+
type: string
|
|
4991
|
+
format: date-time
|
|
4992
|
+
rotated_at:
|
|
4993
|
+
type: string
|
|
4994
|
+
format: date-time
|
|
4995
|
+
nullable: true
|
|
4996
|
+
|
|
4997
|
+
SigningKeyListResponse:
|
|
4998
|
+
type: object
|
|
4999
|
+
properties:
|
|
5000
|
+
keys:
|
|
5001
|
+
type: array
|
|
5002
|
+
items:
|
|
5003
|
+
$ref: "#/components/schemas/SigningKeyResponse"
|
|
5004
|
+
|
|
5005
|
+
# Unified Signing Intent
|
|
5006
|
+
SignIntentRequest:
|
|
5007
|
+
type: object
|
|
5008
|
+
required: [intent_type, chain]
|
|
5009
|
+
properties:
|
|
5010
|
+
intent_type:
|
|
5011
|
+
type: string
|
|
5012
|
+
enum: [personal_sign, typed_data, transaction]
|
|
5013
|
+
chain:
|
|
5014
|
+
type: string
|
|
5015
|
+
signing_key_path:
|
|
5016
|
+
type: string
|
|
5017
|
+
message:
|
|
5018
|
+
type: string
|
|
5019
|
+
description: Hex-encoded message bytes (for personal_sign)
|
|
5020
|
+
typed_data:
|
|
5021
|
+
type: object
|
|
5022
|
+
description: EIP-712 typed data JSON (for typed_data)
|
|
5023
|
+
tx_type:
|
|
5024
|
+
type: integer
|
|
5025
|
+
description: "EIP-2718 type: 0=legacy, 1=2930, 2=1559, 3=4844, 4=7702"
|
|
5026
|
+
to:
|
|
5027
|
+
type: string
|
|
5028
|
+
value:
|
|
5029
|
+
type: string
|
|
5030
|
+
data:
|
|
5031
|
+
type: string
|
|
5032
|
+
nonce:
|
|
5033
|
+
type: integer
|
|
5034
|
+
gas_limit:
|
|
5035
|
+
type: integer
|
|
5036
|
+
gas_price:
|
|
5037
|
+
type: string
|
|
5038
|
+
max_fee_per_gas:
|
|
5039
|
+
type: string
|
|
5040
|
+
max_priority_fee_per_gas:
|
|
5041
|
+
type: string
|
|
5042
|
+
access_list:
|
|
5043
|
+
type: array
|
|
5044
|
+
items:
|
|
5045
|
+
type: object
|
|
5046
|
+
max_fee_per_blob_gas:
|
|
5047
|
+
type: string
|
|
5048
|
+
blob_versioned_hashes:
|
|
5049
|
+
type: array
|
|
5050
|
+
items:
|
|
5051
|
+
type: string
|
|
5052
|
+
authorization_list:
|
|
5053
|
+
type: array
|
|
5054
|
+
items:
|
|
5055
|
+
type: object
|
|
5056
|
+
|
|
5057
|
+
SignIntentResponse:
|
|
5058
|
+
type: object
|
|
5059
|
+
properties:
|
|
5060
|
+
intent_type:
|
|
5061
|
+
type: string
|
|
5062
|
+
chain:
|
|
5063
|
+
type: string
|
|
5064
|
+
from:
|
|
5065
|
+
type: string
|
|
5066
|
+
signature:
|
|
5067
|
+
type: string
|
|
5068
|
+
nullable: true
|
|
5069
|
+
signed_tx:
|
|
5070
|
+
type: string
|
|
5071
|
+
nullable: true
|
|
5072
|
+
tx_hash:
|
|
5073
|
+
type: string
|
|
5074
|
+
nullable: true
|
|
5075
|
+
message_hash:
|
|
5076
|
+
type: string
|
|
5077
|
+
nullable: true
|
|
5078
|
+
typed_data_hash:
|
|
5079
|
+
type: string
|
|
5080
|
+
nullable: true
|
|
5081
|
+
tx_type:
|
|
5082
|
+
type: integer
|
|
5083
|
+
nullable: true
|
|
5084
|
+
|
|
4619
5085
|
TransactionResponse:
|
|
4620
5086
|
type: object
|
|
4621
5087
|
properties:
|
|
@@ -5643,6 +6109,31 @@ components:
|
|
|
5643
6109
|
type: array
|
|
5644
6110
|
items:
|
|
5645
6111
|
type: string
|
|
6112
|
+
# Response-side inspection signals (Shroud v0.5.0+,
|
|
6113
|
+
# H-RESP-INSPECT). Optional — pre-v0.5.0 events have them
|
|
6114
|
+
# unset; treat as zero / empty.
|
|
6115
|
+
response_injection_score:
|
|
6116
|
+
type: number
|
|
6117
|
+
description: Response-side prompt-injection score (0.0–1.0).
|
|
6118
|
+
response_context_injection_score:
|
|
6119
|
+
type: number
|
|
6120
|
+
description: Response-side context-injection score (0.0–1.0).
|
|
6121
|
+
response_injection_categories:
|
|
6122
|
+
type: array
|
|
6123
|
+
items:
|
|
6124
|
+
type: string
|
|
6125
|
+
description: Category tags emitted by the response-side filters (e.g. `markdown_image_exfil`, `data_uri_blob`, `echoed_instruction`).
|
|
6126
|
+
external_urls_flagged:
|
|
6127
|
+
type: array
|
|
6128
|
+
items:
|
|
6129
|
+
type: string
|
|
6130
|
+
description: URLs emitted by the model that were flagged as potential exfil / callback targets.
|
|
6131
|
+
unexpected_code_blocks:
|
|
6132
|
+
type: integer
|
|
6133
|
+
description: Number of code fences in the response that were not expected for the agent's allowed task set.
|
|
6134
|
+
content_filtered:
|
|
6135
|
+
type: boolean
|
|
6136
|
+
description: True when Shroud rewrote or blocked response content before returning it to the agent.
|
|
5646
6137
|
metadata:
|
|
5647
6138
|
type: object
|
|
5648
6139
|
timestamp:
|
|
@@ -5684,6 +6175,28 @@ components:
|
|
|
5684
6175
|
type: string
|
|
5685
6176
|
metadata:
|
|
5686
6177
|
type: object
|
|
6178
|
+
# Response-side inspection signals (Shroud v0.5.0+,
|
|
6179
|
+
# H-RESP-INSPECT). Optional for backward compatibility.
|
|
6180
|
+
response_injection_score:
|
|
6181
|
+
type: number
|
|
6182
|
+
default: 0
|
|
6183
|
+
response_context_injection_score:
|
|
6184
|
+
type: number
|
|
6185
|
+
default: 0
|
|
6186
|
+
response_injection_categories:
|
|
6187
|
+
type: array
|
|
6188
|
+
items:
|
|
6189
|
+
type: string
|
|
6190
|
+
external_urls_flagged:
|
|
6191
|
+
type: array
|
|
6192
|
+
items:
|
|
6193
|
+
type: string
|
|
6194
|
+
unexpected_code_blocks:
|
|
6195
|
+
type: integer
|
|
6196
|
+
default: 0
|
|
6197
|
+
content_filtered:
|
|
6198
|
+
type: boolean
|
|
6199
|
+
default: false
|
|
5687
6200
|
|
|
5688
6201
|
ShroudThreatSummary:
|
|
5689
6202
|
type: object
|