@1claw/openapi-spec 0.61.59 → 0.61.61

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/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "1Claw API",
5
- "version": "0.61.59",
5
+ "version": "0.61.61",
6
6
  "description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging. Automations (workflow_spec,\nwebhook tokens, event triggers, Assist), cloud runtimes with\ninteractive shell sessions, agent memory, and discovery.\n\n## Domains\n\n`api.1claw.co` is canonical: it is the OIDC issuer, the `aud` the API\nmints, and the first entry in `servers` — a generated client takes its\nbase URL from there, and the previous ordering pointed every SDK at the\ndomain the issuer had already left. `api.1claw.xyz` still answers and is\nstill accepted on token validation, because tokens minted before the\nmove carry it; it is never minted now.\n\nOne deliberate exception: the Shroud attestation identity token is\nrequested from GCP with `audience: https://api.1claw.xyz`, so\n`/v1/shroud/attestation` reports that as its `expected_audience`. That\nis accurate rather than stale — the audience is a verification contract\nwith anyone already checking the token, and moving it is a breaking\nchange for them, not a rename.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
7
7
  "contact": {
8
8
  "email": "ops@1claw.co"
@@ -5952,7 +5952,7 @@
5952
5952
  "$ref": "#/components/responses/BadRequest"
5953
5953
  },
5954
5954
  "403": {
5955
- "description": "Guardrail violation or permission denied",
5955
+ "description": "Guardrail violation or permission denied. From 2026-10-11 this also covers a resume_after_approval_id that does not name an approved, agent-bound, unused approval — including one that is still pending, and including a second use of one already spent. Such a request previously executed.\n",
5956
5956
  "content": {
5957
5957
  "application/json": {
5958
5958
  "schema": {
@@ -15881,7 +15881,7 @@
15881
15881
  "Platform"
15882
15882
  ],
15883
15883
  "summary": "Add agents to a bootstrapped connection",
15884
- "description": "Provision additional agents on a connection that has already been\nbootstrapped, from a template belonging to the same app. `plt_` auth only.\n\nBootstrap refuses a second run (409) because it also creates the vault,\nthe policies and the plan tier, none of which should happen twice. This\nroute applies only the agent portion of a template: its `agents`, their\nper-agent `signing_keys`, `eoa` and `runtime`. `vault`, `policies`,\n`automations` and `entitlements` in the spec are ignored, and new agents\nattach to the vault the connection already has.\n\nConfiguration comes from a template rather than from fields on the\nrequest so that the agent portion of a spec has exactly one reader,\nshared with bootstrap.\n\nCapped per connection by `max_agents_per_connection` on the platform app\n(unset means a built-in default, not unlimited: an agent with signing\nkeys costs a KMS key per chain). The whole batch is checked before\nanything is created, so a template that would overshoot is refused\nrather than partly applied.\n",
15884
+ "description": "Provision an additional agent on a connection that has already been\nbootstrapped, from a template belonging to the same app. `plt_` auth only.\n\nOne agent per call. A template declaring more than one agent is refused\nwith 400: each agent's API key is returned once and cannot be re-issued\nto a platform app, so batching them would put several unrecoverable\ncredentials in a single response.\n\nBootstrap refuses a second run (409) because it also creates the vault,\nthe policies and the plan tier, none of which should happen twice. This\nroute applies only the agent portion of a template: its `agents`, their\nper-agent `signing_keys`, `eoa` and `runtime`. `vault`, `policies`,\n`automations` and `entitlements` in the spec are ignored, and new agents\nattach to the vault the connection already has.\n\nConfiguration comes from a template rather than from fields on the\nrequest so that the agent portion of a spec has exactly one reader,\nshared with bootstrap.\n\nCapped per connection by `max_agents_per_connection` on the platform app\n(unset means a built-in default, not unlimited: an agent with signing\nkeys costs a KMS key per chain). The whole batch is checked before\nanything is created, so a template that would overshoot is refused\nrather than partly applied.\n",
15885
15885
  "operationId": "addConnectionAgents",
15886
15886
  "security": [
15887
15887
  {
@@ -26837,7 +26837,7 @@
26837
26837
  "Pending Approvals"
26838
26838
  ],
26839
26839
  "summary": "Execute an approved action",
26840
- "description": "Human-only. Marks the approval as executed after verifying signatures.",
26840
+ "description": "Human-only. Marks the approval as executed after verifying signatures.\n\nExecuting mints the single-use token that satisfies the signing gate, so from 2026-10-11 it requires the same org role the consensus policy requires for approving. Where a policy sets approval.required_roles, a member whose role is not listed now gets 403 where it previously succeeded. Policies that do not set required_roles are unchanged.\n",
26841
26841
  "operationId": "executePendingApproval",
26842
26842
  "security": [
26843
26843
  {
@@ -37484,6 +37484,11 @@
37484
37484
  "format": "uuid",
37485
37485
  "description": "Optional pending approval ID. When consensus policies match, clients resubmit with this field set to bypass the 202 gate after the approval has been executed.\n"
37486
37486
  },
37487
+ "resume_tx_id": {
37488
+ "type": "string",
37489
+ "format": "uuid",
37490
+ "description": "Resume signing a transaction that is already waiting on human approval. Send the transaction_id returned with the 202 awaiting_approval response, after a human has approved it.\n\nDocumented here because it is accepted from the wire and was not in this spec before 2026-10-11. It must reference an approval that a human set to approved, raised for this agent and this transaction, and not already used. Anything else is 403, including an approval that is still pending — which previously succeeded, because the only check was that the transaction row was still awaiting_approval, a state the caller reaches by submitting in the first place.\n\nSingle-use. A second resume of the same approval is 403.\n"
37491
+ },
37487
37492
  "raw_transaction": {
37488
37493
  "type": "string",
37489
37494
  "description": "Pre-built raw transaction as a base64-encoded byte string. When provided, the handler decodes and deep-inspects the transaction for policy evaluation before signing. Supported for non-EVM chains where the client constructs the transaction payload.\n"
@@ -37845,7 +37850,8 @@
37845
37850
  },
37846
37851
  "agent_api_keys": {
37847
37852
  "type": "array",
37848
- "description": "Every agent created by this call, with its one-time API key.\nReturned once and never retrievable again: a platform app\ncannot rotate a key in the end user's org, so a key missed\nhere is gone. The singular `agent_api_key` is the first of\nthese and is kept for compatibility.\n",
37853
+ "maxItems": 1,
37854
+ "description": "The created agent and its one-time API key. Exactly one entry:\nprovisioning is one agent per call, because a key is returned\nonce and cannot be re-issued to a platform app, so a response\ncarrying several would put several unrecoverable credentials in\none payload. A template declaring more than one agent is\nrefused with 400. The singular `agent_api_key` is the same key.\n",
37849
37855
  "items": {
37850
37856
  "type": "object",
37851
37857
  "properties": {
@@ -42329,7 +42335,8 @@
42329
42335
  },
42330
42336
  "agent_api_keys": {
42331
42337
  "type": "array",
42332
- "description": "Every agent created, with its one-time API key. Returned once:\na platform app cannot rotate a key in the end user's org, so a\nmulti-agent template used to strand agents 2..N with\ncredentials nobody could recover.\n",
42338
+ "maxItems": 1,
42339
+ "description": "The created agent and its one-time API key. Exactly one entry:\na template declaring more than one agent is refused with 400,\nbecause a key is returned once and cannot be re-issued to a\nplatform app. Split such a template and bootstrap once per agent.\n",
42333
42340
  "items": {
42334
42341
  "type": "object",
42335
42342
  "properties": {
@@ -46054,7 +46061,7 @@
46054
46061
  "resume_after_approval_id": {
46055
46062
  "type": "string",
46056
46063
  "format": "uuid",
46057
- "description": "Internal — resume execution after human approval (server-injected)."
46064
+ "description": "Resume execution after a human approved it. Send the approval_id returned with the 202 approval_required response.\n\nDescribed here as \"server-injected\" until 2026-10-11, which was not enforced: the field is accepted from the wire and the gate checked only whether it was present, so any UUID skipped the approval requirement. It is now verified against an approved, agent-bound, unused approval and is single-use. Anything else, including a second use of the same approval, is 403.\n"
46058
46065
  }
46059
46066
  }
46060
46067
  },
package/openapi.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.1.0
2
2
 
3
3
  info:
4
4
  title: 1Claw API
5
- version: "0.61.59"
5
+ version: "0.61.61"
6
6
  description: |
7
7
  Secure secret management for AI agents. Provides vaults, secrets,
8
8
  policy-based access control, agent identity, Intents API,
@@ -3877,7 +3877,12 @@ paths:
3877
3877
  "400":
3878
3878
  $ref: "#/components/responses/BadRequest"
3879
3879
  "403":
3880
- description: Guardrail violation or permission denied
3880
+ description: >
3881
+ Guardrail violation or permission denied. From 2026-10-11 this
3882
+ also covers a resume_after_approval_id that does not name an
3883
+ approved, agent-bound, unused approval — including one that is
3884
+ still pending, and including a second use of one already spent.
3885
+ Such a request previously executed.
3881
3886
  content:
3882
3887
  application/json:
3883
3888
  schema:
@@ -10098,9 +10103,14 @@ paths:
10098
10103
  tags: [Platform]
10099
10104
  summary: Add agents to a bootstrapped connection
10100
10105
  description: |
10101
- Provision additional agents on a connection that has already been
10106
+ Provision an additional agent on a connection that has already been
10102
10107
  bootstrapped, from a template belonging to the same app. `plt_` auth only.
10103
10108
 
10109
+ One agent per call. A template declaring more than one agent is refused
10110
+ with 400: each agent's API key is returned once and cannot be re-issued
10111
+ to a platform app, so batching them would put several unrecoverable
10112
+ credentials in a single response.
10113
+
10104
10114
  Bootstrap refuses a second run (409) because it also creates the vault,
10105
10115
  the policies and the plan tier, none of which should happen twice. This
10106
10116
  route applies only the agent portion of a template: its `agents`, their
@@ -17256,7 +17266,15 @@ paths:
17256
17266
  post:
17257
17267
  tags: [Pending Approvals]
17258
17268
  summary: Execute an approved action
17259
- description: Human-only. Marks the approval as executed after verifying signatures.
17269
+ description: >
17270
+ Human-only. Marks the approval as executed after verifying signatures.
17271
+
17272
+
17273
+ Executing mints the single-use token that satisfies the signing gate,
17274
+ so from 2026-10-11 it requires the same org role the consensus policy
17275
+ requires for approving. Where a policy sets approval.required_roles,
17276
+ a member whose role is not listed now gets 403 where it previously
17277
+ succeeded. Policies that do not set required_roles are unchanged.
17260
17278
  operationId: executePendingApproval
17261
17279
  security:
17262
17280
  - BearerAuth: []
@@ -24170,6 +24188,26 @@ components:
24170
24188
  Optional pending approval ID. When consensus policies match,
24171
24189
  clients resubmit with this field set to bypass the 202 gate
24172
24190
  after the approval has been executed.
24191
+ resume_tx_id:
24192
+ type: string
24193
+ format: uuid
24194
+ description: >
24195
+ Resume signing a transaction that is already waiting on human
24196
+ approval. Send the transaction_id returned with the 202
24197
+ awaiting_approval response, after a human has approved it.
24198
+
24199
+
24200
+ Documented here because it is accepted from the wire and was
24201
+ not in this spec before 2026-10-11. It must reference an
24202
+ approval that a human set to approved, raised for this agent
24203
+ and this transaction, and not already used. Anything else is
24204
+ 403, including an approval that is still pending — which
24205
+ previously succeeded, because the only check was that the
24206
+ transaction row was still awaiting_approval, a state the
24207
+ caller reaches by submitting in the first place.
24208
+
24209
+
24210
+ Single-use. A second resume of the same approval is 403.
24173
24211
  raw_transaction:
24174
24212
  type: string
24175
24213
  description: >
@@ -24443,12 +24481,14 @@ components:
24443
24481
  Prefer `agent_api_keys`.
24444
24482
  agent_api_keys:
24445
24483
  type: array
24484
+ maxItems: 1
24446
24485
  description: |
24447
- Every agent created by this call, with its one-time API key.
24448
- Returned once and never retrievable again: a platform app
24449
- cannot rotate a key in the end user's org, so a key missed
24450
- here is gone. The singular `agent_api_key` is the first of
24451
- these and is kept for compatibility.
24486
+ The created agent and its one-time API key. Exactly one entry:
24487
+ provisioning is one agent per call, because a key is returned
24488
+ once and cannot be re-issued to a platform app, so a response
24489
+ carrying several would put several unrecoverable credentials in
24490
+ one payload. A template declaring more than one agent is
24491
+ refused with 400. The singular `agent_api_key` is the same key.
24452
24492
  items:
24453
24493
  type: object
24454
24494
  properties:
@@ -27453,11 +27493,12 @@ components:
27453
27493
  agent the template created.
27454
27494
  agent_api_keys:
27455
27495
  type: array
27496
+ maxItems: 1
27456
27497
  description: |
27457
- Every agent created, with its one-time API key. Returned once:
27458
- a platform app cannot rotate a key in the end user's org, so a
27459
- multi-agent template used to strand agents 2..N with
27460
- credentials nobody could recover.
27498
+ The created agent and its one-time API key. Exactly one entry:
27499
+ a template declaring more than one agent is refused with 400,
27500
+ because a key is returned once and cannot be re-issued to a
27501
+ platform app. Split such a template and bootstrap once per agent.
27461
27502
  items:
27462
27503
  type: object
27463
27504
  properties:
@@ -29477,7 +29518,17 @@ components:
29477
29518
  resume_after_approval_id:
29478
29519
  type: string
29479
29520
  format: uuid
29480
- description: Internal — resume execution after human approval (server-injected).
29521
+ description: >
29522
+ Resume execution after a human approved it. Send the
29523
+ approval_id returned with the 202 approval_required response.
29524
+
29525
+
29526
+ Described here as "server-injected" until 2026-10-11, which was
29527
+ not enforced: the field is accepted from the wire and the gate
29528
+ checked only whether it was present, so any UUID skipped the
29529
+ approval requirement. It is now verified against an approved,
29530
+ agent-bound, unused approval and is single-use. Anything else,
29531
+ including a second use of the same approval, is 403.
29481
29532
 
29482
29533
  ExecutionApprovalRequired:
29483
29534
  type: object
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.61.59",
3
+ "version": "0.61.61",
4
4
  "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API \u2014 generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {