@1claw/openapi-spec 0.57.0 → 0.58.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.
Files changed (3) hide show
  1. package/openapi.json +470 -5
  2. package/openapi.yaml +301 -5
  3. package/package.json +1 -1
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.57.0",
5
+ "version": "0.58.0",
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\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
7
7
  "contact": {
8
8
  "email": "ops@1claw.xyz"
@@ -9648,8 +9648,15 @@
9648
9648
  }
9649
9649
  ],
9650
9650
  "responses": {
9651
- "204": {
9652
- "description": "Deleted"
9651
+ "200": {
9652
+ "description": "Soft-deleted; slug released for reuse within the org",
9653
+ "content": {
9654
+ "application/json": {
9655
+ "schema": {
9656
+ "$ref": "#/components/schemas/PlatformAppDeleteResponse"
9657
+ }
9658
+ }
9659
+ }
9653
9660
  },
9654
9661
  "403": {
9655
9662
  "description": "Only human users can delete platform apps"
@@ -9657,6 +9664,71 @@
9657
9664
  }
9658
9665
  }
9659
9666
  },
9667
+ "/v1/platform/apps/{appId}/transfer-ownership": {
9668
+ "post": {
9669
+ "tags": [
9670
+ "Platform"
9671
+ ],
9672
+ "summary": "Transfer platform app to another organization",
9673
+ "description": "Moves the platform app record to another organization. Requires org\nowner/admin in the source org and step-up auth (`X-Auth-Confirm`,\npurpose `platform.app.transfer`). End-user connections and provisioned\nresources remain in their original organizations.\n",
9674
+ "operationId": "transferPlatformAppOwnership",
9675
+ "security": [
9676
+ {
9677
+ "BearerAuth": []
9678
+ }
9679
+ ],
9680
+ "parameters": [
9681
+ {
9682
+ "in": "path",
9683
+ "name": "appId",
9684
+ "required": true,
9685
+ "schema": {
9686
+ "type": "string",
9687
+ "format": "uuid"
9688
+ }
9689
+ },
9690
+ {
9691
+ "in": "header",
9692
+ "name": "X-Auth-Confirm",
9693
+ "required": true,
9694
+ "schema": {
9695
+ "type": "string"
9696
+ }
9697
+ }
9698
+ ],
9699
+ "requestBody": {
9700
+ "required": true,
9701
+ "content": {
9702
+ "application/json": {
9703
+ "schema": {
9704
+ "$ref": "#/components/schemas/TransferPlatformAppOwnershipRequest"
9705
+ }
9706
+ }
9707
+ }
9708
+ },
9709
+ "responses": {
9710
+ "200": {
9711
+ "description": "Ownership transferred",
9712
+ "content": {
9713
+ "application/json": {
9714
+ "schema": {
9715
+ "$ref": "#/components/schemas/TransferPlatformAppOwnershipResponse"
9716
+ }
9717
+ }
9718
+ }
9719
+ },
9720
+ "400": {
9721
+ "$ref": "#/components/responses/BadRequest"
9722
+ },
9723
+ "403": {
9724
+ "$ref": "#/components/responses/Forbidden"
9725
+ },
9726
+ "404": {
9727
+ "$ref": "#/components/responses/NotFound"
9728
+ }
9729
+ }
9730
+ }
9731
+ },
9660
9732
  "/v1/platform/apps/{appId}/rotate-key": {
9661
9733
  "post": {
9662
9734
  "tags": [
@@ -11085,6 +11157,53 @@
11085
11157
  }
11086
11158
  },
11087
11159
  "/v1/platform/apps/{appId}/spend-policies/{policyId}": {
11160
+ "get": {
11161
+ "tags": [
11162
+ "Platform"
11163
+ ],
11164
+ "summary": "Get a spend policy by ID",
11165
+ "operationId": "getSpendPolicy",
11166
+ "security": [
11167
+ {
11168
+ "BearerAuth": []
11169
+ }
11170
+ ],
11171
+ "parameters": [
11172
+ {
11173
+ "in": "path",
11174
+ "name": "appId",
11175
+ "required": true,
11176
+ "schema": {
11177
+ "type": "string",
11178
+ "format": "uuid"
11179
+ }
11180
+ },
11181
+ {
11182
+ "in": "path",
11183
+ "name": "policyId",
11184
+ "required": true,
11185
+ "schema": {
11186
+ "type": "string",
11187
+ "format": "uuid"
11188
+ }
11189
+ }
11190
+ ],
11191
+ "responses": {
11192
+ "200": {
11193
+ "description": "Spend policy",
11194
+ "content": {
11195
+ "application/json": {
11196
+ "schema": {
11197
+ "$ref": "#/components/schemas/SpendPolicyResponse"
11198
+ }
11199
+ }
11200
+ }
11201
+ },
11202
+ "404": {
11203
+ "$ref": "#/components/responses/NotFound"
11204
+ }
11205
+ }
11206
+ },
11088
11207
  "delete": {
11089
11208
  "tags": [
11090
11209
  "Platform"
@@ -11127,6 +11246,57 @@
11127
11246
  }
11128
11247
  },
11129
11248
  "/v1/platform/connections/{connectionId}/spend-policy": {
11249
+ "get": {
11250
+ "tags": [
11251
+ "Platform"
11252
+ ],
11253
+ "summary": "Get effective spend policy for a connection",
11254
+ "description": "Returns the effective spend policy for the connected user, resolving\nper-user overrides before app-level defaults. Requires plt_ platform auth.\n",
11255
+ "operationId": "getConnectionSpendPolicy",
11256
+ "security": [
11257
+ {
11258
+ "BearerAuth": []
11259
+ }
11260
+ ],
11261
+ "parameters": [
11262
+ {
11263
+ "in": "path",
11264
+ "name": "connectionId",
11265
+ "required": true,
11266
+ "schema": {
11267
+ "type": "string",
11268
+ "format": "uuid"
11269
+ }
11270
+ }
11271
+ ],
11272
+ "responses": {
11273
+ "200": {
11274
+ "description": "Effective spend policy (or null)",
11275
+ "content": {
11276
+ "application/json": {
11277
+ "schema": {
11278
+ "type": "object",
11279
+ "properties": {
11280
+ "policy": {
11281
+ "oneOf": [
11282
+ {
11283
+ "$ref": "#/components/schemas/SpendPolicyResponse"
11284
+ },
11285
+ {
11286
+ "type": "null"
11287
+ }
11288
+ ]
11289
+ }
11290
+ }
11291
+ }
11292
+ }
11293
+ }
11294
+ },
11295
+ "404": {
11296
+ "$ref": "#/components/responses/NotFound"
11297
+ }
11298
+ }
11299
+ },
11130
11300
  "put": {
11131
11301
  "tags": [
11132
11302
  "Platform"
@@ -11148,6 +11318,15 @@
11148
11318
  "type": "string",
11149
11319
  "format": "uuid"
11150
11320
  }
11321
+ },
11322
+ {
11323
+ "in": "header",
11324
+ "name": "Idempotency-Key",
11325
+ "required": false,
11326
+ "schema": {
11327
+ "type": "string"
11328
+ },
11329
+ "description": "Optional replay protection; same key + body returns cached response (409 on body mismatch)."
11151
11330
  }
11152
11331
  ],
11153
11332
  "requestBody": {
@@ -11162,7 +11341,17 @@
11162
11341
  },
11163
11342
  "responses": {
11164
11343
  "200": {
11165
- "description": "Spend policy set",
11344
+ "description": "Spend policy set (or idempotent replay)",
11345
+ "content": {
11346
+ "application/json": {
11347
+ "schema": {
11348
+ "$ref": "#/components/schemas/SpendPolicyResponse"
11349
+ }
11350
+ }
11351
+ }
11352
+ },
11353
+ "201": {
11354
+ "description": "Spend policy created",
11166
11355
  "content": {
11167
11356
  "application/json": {
11168
11357
  "schema": {
@@ -11176,6 +11365,201 @@
11176
11365
  },
11177
11366
  "403": {
11178
11367
  "$ref": "#/components/responses/Forbidden"
11368
+ },
11369
+ "404": {
11370
+ "$ref": "#/components/responses/NotFound"
11371
+ },
11372
+ "409": {
11373
+ "description": "Idempotency-Key reused with different body"
11374
+ }
11375
+ }
11376
+ }
11377
+ },
11378
+ "/v1/platform/connections/{connectionId}/approvals": {
11379
+ "get": {
11380
+ "tags": [
11381
+ "Platform"
11382
+ ],
11383
+ "summary": "List approvals for a platform connection",
11384
+ "description": "Returns approvals assigned to the connection's user, filtered to agents\nprovisioned on the connection. Requires plt_ platform auth.\n",
11385
+ "operationId": "listConnectionApprovals",
11386
+ "security": [
11387
+ {
11388
+ "BearerAuth": []
11389
+ }
11390
+ ],
11391
+ "parameters": [
11392
+ {
11393
+ "in": "path",
11394
+ "name": "connectionId",
11395
+ "required": true,
11396
+ "schema": {
11397
+ "type": "string",
11398
+ "format": "uuid"
11399
+ }
11400
+ },
11401
+ {
11402
+ "name": "status",
11403
+ "in": "query",
11404
+ "required": false,
11405
+ "schema": {
11406
+ "type": "string"
11407
+ }
11408
+ },
11409
+ {
11410
+ "name": "risk_tier",
11411
+ "in": "query",
11412
+ "required": false,
11413
+ "schema": {
11414
+ "type": "integer"
11415
+ }
11416
+ },
11417
+ {
11418
+ "name": "limit",
11419
+ "in": "query",
11420
+ "required": false,
11421
+ "schema": {
11422
+ "type": "integer",
11423
+ "default": 50
11424
+ }
11425
+ },
11426
+ {
11427
+ "name": "offset",
11428
+ "in": "query",
11429
+ "required": false,
11430
+ "schema": {
11431
+ "type": "integer",
11432
+ "default": 0
11433
+ }
11434
+ }
11435
+ ],
11436
+ "responses": {
11437
+ "200": {
11438
+ "description": "Connection-scoped approvals",
11439
+ "content": {
11440
+ "application/json": {
11441
+ "schema": {
11442
+ "$ref": "#/components/schemas/ApprovalListResponse"
11443
+ }
11444
+ }
11445
+ }
11446
+ },
11447
+ "404": {
11448
+ "$ref": "#/components/responses/NotFound"
11449
+ }
11450
+ }
11451
+ }
11452
+ },
11453
+ "/v1/platform/connections/{connectionId}/approvals/{approvalId}": {
11454
+ "get": {
11455
+ "tags": [
11456
+ "Platform"
11457
+ ],
11458
+ "summary": "Get a connection-scoped approval",
11459
+ "operationId": "getConnectionApproval",
11460
+ "security": [
11461
+ {
11462
+ "BearerAuth": []
11463
+ }
11464
+ ],
11465
+ "parameters": [
11466
+ {
11467
+ "in": "path",
11468
+ "name": "connectionId",
11469
+ "required": true,
11470
+ "schema": {
11471
+ "type": "string",
11472
+ "format": "uuid"
11473
+ }
11474
+ },
11475
+ {
11476
+ "in": "path",
11477
+ "name": "approvalId",
11478
+ "required": true,
11479
+ "schema": {
11480
+ "type": "string",
11481
+ "format": "uuid"
11482
+ }
11483
+ }
11484
+ ],
11485
+ "responses": {
11486
+ "200": {
11487
+ "description": "Approval detail",
11488
+ "content": {
11489
+ "application/json": {
11490
+ "schema": {
11491
+ "$ref": "#/components/schemas/ApprovalResponse"
11492
+ }
11493
+ }
11494
+ }
11495
+ },
11496
+ "404": {
11497
+ "$ref": "#/components/responses/NotFound"
11498
+ }
11499
+ }
11500
+ }
11501
+ },
11502
+ "/v1/platform/connections/{connectionId}/pending-approvals": {
11503
+ "get": {
11504
+ "tags": [
11505
+ "Platform"
11506
+ ],
11507
+ "summary": "List pending consensus approvals for a connection",
11508
+ "description": "Returns pending approvals for agents provisioned on the connection,\nincluding `action_payload` and `payload_hash` for consensus UX.\nRequires plt_ platform auth.\n",
11509
+ "operationId": "listConnectionPendingApprovals",
11510
+ "security": [
11511
+ {
11512
+ "BearerAuth": []
11513
+ }
11514
+ ],
11515
+ "parameters": [
11516
+ {
11517
+ "in": "path",
11518
+ "name": "connectionId",
11519
+ "required": true,
11520
+ "schema": {
11521
+ "type": "string",
11522
+ "format": "uuid"
11523
+ }
11524
+ },
11525
+ {
11526
+ "name": "status",
11527
+ "in": "query",
11528
+ "schema": {
11529
+ "type": "string",
11530
+ "default": "pending"
11531
+ }
11532
+ },
11533
+ {
11534
+ "name": "limit",
11535
+ "in": "query",
11536
+ "schema": {
11537
+ "type": "integer",
11538
+ "default": 50
11539
+ }
11540
+ },
11541
+ {
11542
+ "name": "offset",
11543
+ "in": "query",
11544
+ "schema": {
11545
+ "type": "integer",
11546
+ "default": 0
11547
+ }
11548
+ }
11549
+ ],
11550
+ "responses": {
11551
+ "200": {
11552
+ "description": "Pending approvals list",
11553
+ "content": {
11554
+ "application/json": {
11555
+ "schema": {
11556
+ "$ref": "#/components/schemas/PendingApprovalListResponse"
11557
+ }
11558
+ }
11559
+ }
11560
+ },
11561
+ "404": {
11562
+ "$ref": "#/components/responses/NotFound"
11179
11563
  }
11180
11564
  }
11181
11565
  }
@@ -14199,7 +14583,7 @@
14199
14583
  "Runtimes"
14200
14584
  ],
14201
14585
  "summary": "Chat with a running runtime agent",
14202
- "description": "Human-only. Proxies to the runtime container's OpenAI-compatible\n`POST /v1/chat/completions` (hermes / openclaw / openclaude chat bridge).\nStarts the runtime if stopped. Streams SSE when `Accept: text/event-stream`\nor `stream: true`. Conversation history is ephemeral (pass `messages`).\nRequires a public URL (shell access, Shroud sidecar, or HTTP hosting).\n",
14586
+ "description": "Human-only. Proxies to the runtime container's OpenAI-compatible\n`POST /v1/chat/completions` (hermes / openclaw / openclaude / opencode chat bridge).\nStarts the runtime if stopped. Streams SSE when `Accept: text/event-stream`\nor `stream: true`. Conversation history is ephemeral (pass `messages`).\nRequires a public URL (shell access, Shroud sidecar, or HTTP hosting).\n",
14203
14587
  "operationId": "runtimeChat",
14204
14588
  "parameters": [
14205
14589
  {
@@ -24898,6 +25282,69 @@
24898
25282
  }
24899
25283
  }
24900
25284
  },
25285
+ "PlatformAppDeleteResponse": {
25286
+ "type": "object",
25287
+ "required": [
25288
+ "deleted",
25289
+ "soft_delete",
25290
+ "slug_released",
25291
+ "former_slug"
25292
+ ],
25293
+ "properties": {
25294
+ "deleted": {
25295
+ "type": "boolean"
25296
+ },
25297
+ "soft_delete": {
25298
+ "type": "boolean"
25299
+ },
25300
+ "slug_released": {
25301
+ "type": "boolean"
25302
+ },
25303
+ "former_slug": {
25304
+ "type": "string"
25305
+ }
25306
+ }
25307
+ },
25308
+ "TransferPlatformAppOwnershipRequest": {
25309
+ "type": "object",
25310
+ "properties": {
25311
+ "target_org_id": {
25312
+ "type": "string",
25313
+ "format": "uuid"
25314
+ },
25315
+ "target_user_email": {
25316
+ "type": "string",
25317
+ "format": "email"
25318
+ }
25319
+ },
25320
+ "description": "Provide `target_org_id` or `target_user_email` (owner/admin in destination org)."
25321
+ },
25322
+ "TransferPlatformAppOwnershipResponse": {
25323
+ "type": "object",
25324
+ "required": [
25325
+ "app_id",
25326
+ "former_org_id",
25327
+ "new_org_id",
25328
+ "message"
25329
+ ],
25330
+ "properties": {
25331
+ "app_id": {
25332
+ "type": "string",
25333
+ "format": "uuid"
25334
+ },
25335
+ "former_org_id": {
25336
+ "type": "string",
25337
+ "format": "uuid"
25338
+ },
25339
+ "new_org_id": {
25340
+ "type": "string",
25341
+ "format": "uuid"
25342
+ },
25343
+ "message": {
25344
+ "type": "string"
25345
+ }
25346
+ }
25347
+ },
24901
25348
  "PlatformAppResponse": {
24902
25349
  "type": "object",
24903
25350
  "properties": {
@@ -25944,6 +26391,24 @@
25944
26391
  }
25945
26392
  }
25946
26393
  },
26394
+ "ApprovalListResponse": {
26395
+ "type": "object",
26396
+ "required": [
26397
+ "approvals",
26398
+ "total"
26399
+ ],
26400
+ "properties": {
26401
+ "approvals": {
26402
+ "type": "array",
26403
+ "items": {
26404
+ "$ref": "#/components/schemas/ApprovalResponse"
26405
+ }
26406
+ },
26407
+ "total": {
26408
+ "type": "integer"
26409
+ }
26410
+ }
26411
+ },
25947
26412
  "ApprovalStatusResponse": {
25948
26413
  "type": "object",
25949
26414
  "required": [
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.57.0
5
+ version: 0.58.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,
@@ -6216,11 +6216,59 @@ paths:
6216
6216
  type: string
6217
6217
  format: uuid
6218
6218
  responses:
6219
- "204":
6220
- description: Deleted
6219
+ "200":
6220
+ description: Soft-deleted; slug released for reuse within the org
6221
+ content:
6222
+ application/json:
6223
+ schema:
6224
+ $ref: "#/components/schemas/PlatformAppDeleteResponse"
6221
6225
  "403":
6222
6226
  description: Only human users can delete platform apps
6223
6227
 
6228
+ /v1/platform/apps/{appId}/transfer-ownership:
6229
+ post:
6230
+ tags: [Platform]
6231
+ summary: Transfer platform app to another organization
6232
+ description: |
6233
+ Moves the platform app record to another organization. Requires org
6234
+ owner/admin in the source org and step-up auth (`X-Auth-Confirm`,
6235
+ purpose `platform.app.transfer`). End-user connections and provisioned
6236
+ resources remain in their original organizations.
6237
+ operationId: transferPlatformAppOwnership
6238
+ security:
6239
+ - BearerAuth: []
6240
+ parameters:
6241
+ - in: path
6242
+ name: appId
6243
+ required: true
6244
+ schema:
6245
+ type: string
6246
+ format: uuid
6247
+ - in: header
6248
+ name: X-Auth-Confirm
6249
+ required: true
6250
+ schema:
6251
+ type: string
6252
+ requestBody:
6253
+ required: true
6254
+ content:
6255
+ application/json:
6256
+ schema:
6257
+ $ref: "#/components/schemas/TransferPlatformAppOwnershipRequest"
6258
+ responses:
6259
+ "200":
6260
+ description: Ownership transferred
6261
+ content:
6262
+ application/json:
6263
+ schema:
6264
+ $ref: "#/components/schemas/TransferPlatformAppOwnershipResponse"
6265
+ "400":
6266
+ $ref: "#/components/responses/BadRequest"
6267
+ "403":
6268
+ $ref: "#/components/responses/Forbidden"
6269
+ "404":
6270
+ $ref: "#/components/responses/NotFound"
6271
+
6224
6272
  /v1/platform/apps/{appId}/rotate-key:
6225
6273
  post:
6226
6274
  tags: [Platform]
@@ -7110,6 +7158,34 @@ paths:
7110
7158
  $ref: "#/components/schemas/SpendPolicyResponse"
7111
7159
 
7112
7160
  /v1/platform/apps/{appId}/spend-policies/{policyId}:
7161
+ get:
7162
+ tags: [Platform]
7163
+ summary: Get a spend policy by ID
7164
+ operationId: getSpendPolicy
7165
+ security:
7166
+ - BearerAuth: []
7167
+ parameters:
7168
+ - in: path
7169
+ name: appId
7170
+ required: true
7171
+ schema:
7172
+ type: string
7173
+ format: uuid
7174
+ - in: path
7175
+ name: policyId
7176
+ required: true
7177
+ schema:
7178
+ type: string
7179
+ format: uuid
7180
+ responses:
7181
+ "200":
7182
+ description: Spend policy
7183
+ content:
7184
+ application/json:
7185
+ schema:
7186
+ $ref: "#/components/schemas/SpendPolicyResponse"
7187
+ "404":
7188
+ $ref: "#/components/responses/NotFound"
7113
7189
  delete:
7114
7190
  tags: [Platform]
7115
7191
  summary: Delete a spend policy
@@ -7136,6 +7212,36 @@ paths:
7136
7212
  $ref: "#/components/responses/NotFound"
7137
7213
 
7138
7214
  /v1/platform/connections/{connectionId}/spend-policy:
7215
+ get:
7216
+ tags: [Platform]
7217
+ summary: Get effective spend policy for a connection
7218
+ description: |
7219
+ Returns the effective spend policy for the connected user, resolving
7220
+ per-user overrides before app-level defaults. Requires plt_ platform auth.
7221
+ operationId: getConnectionSpendPolicy
7222
+ security:
7223
+ - BearerAuth: []
7224
+ parameters:
7225
+ - in: path
7226
+ name: connectionId
7227
+ required: true
7228
+ schema:
7229
+ type: string
7230
+ format: uuid
7231
+ responses:
7232
+ "200":
7233
+ description: Effective spend policy (or null)
7234
+ content:
7235
+ application/json:
7236
+ schema:
7237
+ type: object
7238
+ properties:
7239
+ policy:
7240
+ oneOf:
7241
+ - $ref: "#/components/schemas/SpendPolicyResponse"
7242
+ - type: "null"
7243
+ "404":
7244
+ $ref: "#/components/responses/NotFound"
7139
7245
  put:
7140
7246
  tags: [Platform]
7141
7247
  summary: Set per-user spend policy override
@@ -7153,6 +7259,12 @@ paths:
7153
7259
  schema:
7154
7260
  type: string
7155
7261
  format: uuid
7262
+ - in: header
7263
+ name: Idempotency-Key
7264
+ required: false
7265
+ schema:
7266
+ type: string
7267
+ description: Optional replay protection; same key + body returns cached response (409 on body mismatch).
7156
7268
  requestBody:
7157
7269
  required: true
7158
7270
  content:
@@ -7161,16 +7273,149 @@ paths:
7161
7273
  $ref: "#/components/schemas/CreateSpendPolicyRequest"
7162
7274
  responses:
7163
7275
  "200":
7164
- description: Spend policy set
7276
+ description: Spend policy set (or idempotent replay)
7277
+ content:
7278
+ application/json:
7279
+ schema:
7280
+ $ref: "#/components/schemas/SpendPolicyResponse"
7281
+ "201":
7282
+ description: Spend policy created
7165
7283
  content:
7166
7284
  application/json:
7167
7285
  schema:
7168
7286
  $ref: "#/components/schemas/SpendPolicyResponse"
7287
+ "409":
7288
+ description: Idempotency-Key reused with different body
7169
7289
  "400":
7170
7290
  $ref: "#/components/responses/BadRequest"
7171
7291
  "403":
7172
7292
  $ref: "#/components/responses/Forbidden"
7173
7293
 
7294
+ "404":
7295
+ $ref: "#/components/responses/NotFound"
7296
+
7297
+ /v1/platform/connections/{connectionId}/approvals:
7298
+ get:
7299
+ tags: [Platform]
7300
+ summary: List approvals for a platform connection
7301
+ description: |
7302
+ Returns approvals assigned to the connection's user, filtered to agents
7303
+ provisioned on the connection. Requires plt_ platform auth.
7304
+ operationId: listConnectionApprovals
7305
+ security:
7306
+ - BearerAuth: []
7307
+ parameters:
7308
+ - in: path
7309
+ name: connectionId
7310
+ required: true
7311
+ schema:
7312
+ type: string
7313
+ format: uuid
7314
+ - name: status
7315
+ in: query
7316
+ required: false
7317
+ schema:
7318
+ type: string
7319
+ - name: risk_tier
7320
+ in: query
7321
+ required: false
7322
+ schema:
7323
+ type: integer
7324
+ - name: limit
7325
+ in: query
7326
+ required: false
7327
+ schema:
7328
+ type: integer
7329
+ default: 50
7330
+ - name: offset
7331
+ in: query
7332
+ required: false
7333
+ schema:
7334
+ type: integer
7335
+ default: 0
7336
+ responses:
7337
+ "200":
7338
+ description: Connection-scoped approvals
7339
+ content:
7340
+ application/json:
7341
+ schema:
7342
+ $ref: "#/components/schemas/ApprovalListResponse"
7343
+ "404":
7344
+ $ref: "#/components/responses/NotFound"
7345
+
7346
+ /v1/platform/connections/{connectionId}/approvals/{approvalId}:
7347
+ get:
7348
+ tags: [Platform]
7349
+ summary: Get a connection-scoped approval
7350
+ operationId: getConnectionApproval
7351
+ security:
7352
+ - BearerAuth: []
7353
+ parameters:
7354
+ - in: path
7355
+ name: connectionId
7356
+ required: true
7357
+ schema:
7358
+ type: string
7359
+ format: uuid
7360
+ - in: path
7361
+ name: approvalId
7362
+ required: true
7363
+ schema:
7364
+ type: string
7365
+ format: uuid
7366
+ responses:
7367
+ "200":
7368
+ description: Approval detail
7369
+ content:
7370
+ application/json:
7371
+ schema:
7372
+ $ref: "#/components/schemas/ApprovalResponse"
7373
+ "404":
7374
+ $ref: "#/components/responses/NotFound"
7375
+
7376
+ /v1/platform/connections/{connectionId}/pending-approvals:
7377
+ get:
7378
+ tags: [Platform]
7379
+ summary: List pending consensus approvals for a connection
7380
+ description: |
7381
+ Returns pending approvals for agents provisioned on the connection,
7382
+ including `action_payload` and `payload_hash` for consensus UX.
7383
+ Requires plt_ platform auth.
7384
+ operationId: listConnectionPendingApprovals
7385
+ security:
7386
+ - BearerAuth: []
7387
+ parameters:
7388
+ - in: path
7389
+ name: connectionId
7390
+ required: true
7391
+ schema:
7392
+ type: string
7393
+ format: uuid
7394
+ - name: status
7395
+ in: query
7396
+ schema:
7397
+ type: string
7398
+ default: pending
7399
+ - name: limit
7400
+ in: query
7401
+ schema:
7402
+ type: integer
7403
+ default: 50
7404
+ - name: offset
7405
+ in: query
7406
+ schema:
7407
+ type: integer
7408
+ default: 0
7409
+ responses:
7410
+ "200":
7411
+ description: Pending approvals list
7412
+ content:
7413
+ application/json:
7414
+ schema:
7415
+ $ref: "#/components/schemas/PendingApprovalListResponse"
7416
+ "404":
7417
+ $ref: "#/components/responses/NotFound"
7418
+
7174
7419
  # --- Approvals ---
7175
7420
 
7176
7421
  /v1/approvals:
@@ -9053,7 +9298,7 @@ paths:
9053
9298
  summary: Chat with a running runtime agent
9054
9299
  description: |
9055
9300
  Human-only. Proxies to the runtime container's OpenAI-compatible
9056
- `POST /v1/chat/completions` (hermes / openclaw / openclaude chat bridge).
9301
+ `POST /v1/chat/completions` (hermes / openclaw / openclaude / opencode chat bridge).
9057
9302
  Starts the runtime if stopped. Streams SSE when `Accept: text/event-stream`
9058
9303
  or `stream: true`. Conversation history is ephemeral (pass `messages`).
9059
9304
  Requires a public URL (shell access, Shroud sidecar, or HTTP hosting).
@@ -16353,6 +16598,46 @@ components:
16353
16598
  nullable: true
16354
16599
  description: Optional expiration time for the platform API key. Set to null to clear.
16355
16600
 
16601
+ PlatformAppDeleteResponse:
16602
+ type: object
16603
+ required: [deleted, soft_delete, slug_released, former_slug]
16604
+ properties:
16605
+ deleted:
16606
+ type: boolean
16607
+ soft_delete:
16608
+ type: boolean
16609
+ slug_released:
16610
+ type: boolean
16611
+ former_slug:
16612
+ type: string
16613
+
16614
+ TransferPlatformAppOwnershipRequest:
16615
+ type: object
16616
+ properties:
16617
+ target_org_id:
16618
+ type: string
16619
+ format: uuid
16620
+ target_user_email:
16621
+ type: string
16622
+ format: email
16623
+ description: Provide `target_org_id` or `target_user_email` (owner/admin in destination org).
16624
+
16625
+ TransferPlatformAppOwnershipResponse:
16626
+ type: object
16627
+ required: [app_id, former_org_id, new_org_id, message]
16628
+ properties:
16629
+ app_id:
16630
+ type: string
16631
+ format: uuid
16632
+ former_org_id:
16633
+ type: string
16634
+ format: uuid
16635
+ new_org_id:
16636
+ type: string
16637
+ format: uuid
16638
+ message:
16639
+ type: string
16640
+
16356
16641
  PlatformAppResponse:
16357
16642
  type: object
16358
16643
  properties:
@@ -17080,6 +17365,17 @@ components:
17080
17365
  type: string
17081
17366
  format: date-time
17082
17367
 
17368
+ ApprovalListResponse:
17369
+ type: object
17370
+ required: [approvals, total]
17371
+ properties:
17372
+ approvals:
17373
+ type: array
17374
+ items:
17375
+ $ref: "#/components/schemas/ApprovalResponse"
17376
+ total:
17377
+ type: integer
17378
+
17083
17379
  ApprovalStatusResponse:
17084
17380
  type: object
17085
17381
  required: [status]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.57.0",
3
+ "version": "0.58.0",
4
4
  "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API — generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {