@1claw/openapi-spec 0.61.24 → 0.61.25

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.24",
5
+ "version": "0.61.25",
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"
@@ -15947,8 +15947,8 @@
15947
15947
  "tags": [
15948
15948
  "Approvals"
15949
15949
  ],
15950
- "summary": "List pending approvals",
15951
- "description": "Returns approvals for the authenticated user's organization.\nHuman-only. Supports filtering by status and pagination.\n",
15950
+ "summary": "List approvals",
15951
+ "description": "Humans get their own approval queue. An agent caller gets only the\napprovals it created (`agent_id` = caller) — enough to recover one whose\nid was lost across a restart, never the organization's queue. Supports\nfiltering by status and pagination.\n",
15952
15952
  "operationId": "listApprovals",
15953
15953
  "parameters": [
15954
15954
  {
@@ -15961,7 +15961,8 @@
15961
15961
  "pending",
15962
15962
  "approved",
15963
15963
  "rejected",
15964
- "expired"
15964
+ "expired",
15965
+ "cancelled"
15965
15966
  ]
15966
15967
  },
15967
15968
  "description": "Filter by approval status"
@@ -16046,6 +16047,61 @@
16046
16047
  }
16047
16048
  }
16048
16049
  },
16050
+ "/v1/approvals/{approval_id}/cancel": {
16051
+ "post": {
16052
+ "tags": [
16053
+ "Approvals"
16054
+ ],
16055
+ "summary": "Cancel a pending approval (requester)",
16056
+ "description": "Withdraws a pending approval. Callable by the agent that requested it or\nthe human it was addressed to. First answer wins: if the approval was\nalready decided or expired, the existing record is returned unchanged\n(200) rather than an error — the caller's next question is what the\nanswer was. A cancellation is delivered to webhook subscribers as\n`approval.decided` with `decision: \"cancelled\"`, and audited as\n`approval.cancelled`.\n",
16057
+ "operationId": "cancelApproval",
16058
+ "parameters": [
16059
+ {
16060
+ "name": "approval_id",
16061
+ "in": "path",
16062
+ "required": true,
16063
+ "schema": {
16064
+ "type": "string",
16065
+ "format": "uuid"
16066
+ }
16067
+ }
16068
+ ],
16069
+ "requestBody": {
16070
+ "required": false,
16071
+ "content": {
16072
+ "application/json": {
16073
+ "schema": {
16074
+ "type": "object",
16075
+ "properties": {
16076
+ "reason": {
16077
+ "type": "string",
16078
+ "maxLength": 500
16079
+ }
16080
+ }
16081
+ }
16082
+ }
16083
+ }
16084
+ },
16085
+ "responses": {
16086
+ "200": {
16087
+ "description": "The approval — `cancelled`, or the decision that landed first",
16088
+ "content": {
16089
+ "application/json": {
16090
+ "schema": {
16091
+ "$ref": "#/components/schemas/ApprovalResponse"
16092
+ }
16093
+ }
16094
+ }
16095
+ },
16096
+ "403": {
16097
+ "$ref": "#/components/responses/Forbidden"
16098
+ },
16099
+ "404": {
16100
+ "$ref": "#/components/responses/NotFound"
16101
+ }
16102
+ }
16103
+ }
16104
+ },
16049
16105
  "/v1/approvals/{approval_id}/status": {
16050
16106
  "get": {
16051
16107
  "tags": [
@@ -39388,7 +39444,8 @@
39388
39444
  "pending",
39389
39445
  "approved",
39390
39446
  "rejected",
39391
- "expired"
39447
+ "expired",
39448
+ "cancelled"
39392
39449
  ]
39393
39450
  },
39394
39451
  "summary": {
@@ -39454,7 +39511,8 @@
39454
39511
  "pending",
39455
39512
  "approved",
39456
39513
  "rejected",
39457
- "expired"
39514
+ "expired",
39515
+ "cancelled"
39458
39516
  ]
39459
39517
  },
39460
39518
  "expires_at": {
@@ -42311,6 +42369,19 @@
42311
42369
  "type": "number",
42312
42370
  "nullable": true
42313
42371
  },
42372
+ "has_paid_addon": {
42373
+ "type": "boolean",
42374
+ "description": "Whether this runtime has a paid Stripe add-on (unlimited hours)."
42375
+ },
42376
+ "billing_kind": {
42377
+ "type": "string",
42378
+ "enum": [
42379
+ "pool",
42380
+ "included",
42381
+ "addon"
42382
+ ],
42383
+ "description": "`pool` — counts against the plan's monthly runtime hours. `included` — the plan's\nfree runtime (every plan from Pro up includes one small or medium runtime, no hour\ncap, no charge). `addon` — paid Stripe subscription item (no hour cap).\n"
42384
+ },
42314
42385
  "created_at": {
42315
42386
  "type": "string",
42316
42387
  "format": "date-time"
@@ -42332,6 +42403,27 @@
42332
42403
  "items": {
42333
42404
  "$ref": "#/components/schemas/RuntimeResponse"
42334
42405
  }
42406
+ },
42407
+ "included_runtime": {
42408
+ "type": "object",
42409
+ "description": "The plan's included-runtime allowance (human callers only).",
42410
+ "properties": {
42411
+ "allowance": {
42412
+ "type": "integer",
42413
+ "description": "Runtimes the plan includes at no charge."
42414
+ },
42415
+ "used": {
42416
+ "type": "integer",
42417
+ "description": "Included slots currently in use."
42418
+ },
42419
+ "presets": {
42420
+ "type": "array",
42421
+ "items": {
42422
+ "type": "string"
42423
+ },
42424
+ "description": "Presets an included runtime may use (up to 1 vCPU / 2 GB)."
42425
+ }
42426
+ }
42335
42427
  }
42336
42428
  }
42337
42429
  },
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.24"
5
+ version: "0.61.25"
6
6
  description: |
7
7
  Secure secret management for AI agents. Provides vaults, secrets,
8
8
  policy-based access control, agent identity, Intents API,
@@ -10184,10 +10184,12 @@ paths:
10184
10184
  /v1/approvals:
10185
10185
  get:
10186
10186
  tags: [Approvals]
10187
- summary: List pending approvals
10187
+ summary: List approvals
10188
10188
  description: |
10189
- Returns approvals for the authenticated user's organization.
10190
- Human-only. Supports filtering by status and pagination.
10189
+ Humans get their own approval queue. An agent caller gets only the
10190
+ approvals it created (`agent_id` = caller) — enough to recover one whose
10191
+ id was lost across a restart, never the organization's queue. Supports
10192
+ filtering by status and pagination.
10191
10193
  operationId: listApprovals
10192
10194
  parameters:
10193
10195
  - name: status
@@ -10195,7 +10197,7 @@ paths:
10195
10197
  required: false
10196
10198
  schema:
10197
10199
  type: string
10198
- enum: [pending, approved, rejected, expired]
10200
+ enum: [pending, approved, rejected, expired, cancelled]
10199
10201
  description: Filter by approval status
10200
10202
  - name: limit
10201
10203
  in: query
@@ -10246,6 +10248,46 @@ paths:
10246
10248
  "404":
10247
10249
  $ref: "#/components/responses/NotFound"
10248
10250
 
10251
+ /v1/approvals/{approval_id}/cancel:
10252
+ post:
10253
+ tags: [Approvals]
10254
+ summary: Cancel a pending approval (requester)
10255
+ description: |
10256
+ Withdraws a pending approval. Callable by the agent that requested it or
10257
+ the human it was addressed to. First answer wins: if the approval was
10258
+ already decided or expired, the existing record is returned unchanged
10259
+ (200) rather than an error — the caller's next question is what the
10260
+ answer was. A cancellation is delivered to webhook subscribers as
10261
+ `approval.decided` with `decision: "cancelled"`, and audited as
10262
+ `approval.cancelled`.
10263
+ operationId: cancelApproval
10264
+ parameters:
10265
+ - name: approval_id
10266
+ in: path
10267
+ required: true
10268
+ schema:
10269
+ type: string
10270
+ format: uuid
10271
+ requestBody:
10272
+ required: false
10273
+ content:
10274
+ application/json:
10275
+ schema:
10276
+ type: object
10277
+ properties:
10278
+ reason: { type: string, maxLength: 500 }
10279
+ responses:
10280
+ "200":
10281
+ description: The approval — `cancelled`, or the decision that landed first
10282
+ content:
10283
+ application/json:
10284
+ schema:
10285
+ $ref: "#/components/schemas/ApprovalResponse"
10286
+ "403":
10287
+ $ref: "#/components/responses/Forbidden"
10288
+ "404":
10289
+ $ref: "#/components/responses/NotFound"
10290
+
10249
10291
  /v1/approvals/{approval_id}/status:
10250
10292
  get:
10251
10293
  tags: [Approvals]
@@ -25532,7 +25574,7 @@ components:
25532
25574
  description: "What the action will do, as submitted."
25533
25575
  status:
25534
25576
  type: string
25535
- enum: [pending, approved, rejected, expired]
25577
+ enum: [pending, approved, rejected, expired, cancelled]
25536
25578
  summary:
25537
25579
  type: object
25538
25580
  description: Structured summary of the action requiring approval
@@ -25575,7 +25617,7 @@ components:
25575
25617
  properties:
25576
25618
  status:
25577
25619
  type: string
25578
- enum: [pending, approved, rejected, expired]
25620
+ enum: [pending, approved, rejected, expired, cancelled]
25579
25621
  expires_at:
25580
25622
  type: string
25581
25623
  format: date-time
@@ -27373,6 +27415,16 @@ components:
27373
27415
  monthly_hours_used:
27374
27416
  type: number
27375
27417
  nullable: true
27418
+ has_paid_addon:
27419
+ type: boolean
27420
+ description: Whether this runtime has a paid Stripe add-on (unlimited hours).
27421
+ billing_kind:
27422
+ type: string
27423
+ enum: [pool, included, addon]
27424
+ description: |
27425
+ `pool` — counts against the plan's monthly runtime hours. `included` — the plan's
27426
+ free runtime (every plan from Pro up includes one small or medium runtime, no hour
27427
+ cap, no charge). `addon` — paid Stripe subscription item (no hour cap).
27376
27428
  created_at:
27377
27429
  type: string
27378
27430
  format: date-time
@@ -27388,6 +27440,16 @@ components:
27388
27440
  type: array
27389
27441
  items:
27390
27442
  $ref: "#/components/schemas/RuntimeResponse"
27443
+ included_runtime:
27444
+ type: object
27445
+ description: The plan's included-runtime allowance (human callers only).
27446
+ properties:
27447
+ allowance: { type: integer, description: Runtimes the plan includes at no charge. }
27448
+ used: { type: integer, description: Included slots currently in use. }
27449
+ presets:
27450
+ type: array
27451
+ items: { type: string }
27452
+ description: Presets an included runtime may use (up to 1 vCPU / 2 GB).
27391
27453
 
27392
27454
  SlugCheckResponse:
27393
27455
  type: object
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.61.24",
3
+ "version": "0.61.25",
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": {