@1claw/openapi-spec 0.44.3 → 0.46.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/openapi.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.1.0
2
2
 
3
3
  info:
4
4
  title: 1Claw API
5
- version: 2.33.0
5
+ version: 2.35.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,
@@ -96,6 +96,8 @@ tags:
96
96
  description: External messaging channels (Telegram, WhatsApp, Discord)
97
97
  - name: OAuth Connect
98
98
  description: OAuth connected accounts for agents (provider registry, connect flows, app credentials)
99
+ - name: Delegations
100
+ description: Agent-to-agent delegation management (human-controlled authorization)
99
101
 
100
102
  # =============================================================================
101
103
  # PATHS
@@ -2526,6 +2528,154 @@ paths:
2526
2528
  "404":
2527
2529
  $ref: "#/components/responses/NotFound"
2528
2530
 
2531
+ # ---------------------------------------------------------------------------
2532
+ # Agent Delegations
2533
+ # ---------------------------------------------------------------------------
2534
+
2535
+ /v1/agents/{agent_id}/delegations:
2536
+ post:
2537
+ tags: [Delegations]
2538
+ summary: Create a delegation
2539
+ description: |
2540
+ Grant an agent (delegator) permission to delegate tasks to another agent (delegate).
2541
+ Human-only — agents cannot create their own delegations.
2542
+ operationId: createDelegation
2543
+ parameters:
2544
+ - $ref: "#/components/parameters/AgentId"
2545
+ requestBody:
2546
+ required: true
2547
+ content:
2548
+ application/json:
2549
+ schema:
2550
+ $ref: "#/components/schemas/CreateDelegationRequest"
2551
+ responses:
2552
+ "201":
2553
+ description: Delegation created
2554
+ content:
2555
+ application/json:
2556
+ schema:
2557
+ $ref: "#/components/schemas/DelegationResponse"
2558
+ "400":
2559
+ $ref: "#/components/responses/BadRequest"
2560
+ "403":
2561
+ $ref: "#/components/responses/Forbidden"
2562
+ "409":
2563
+ description: Delegation already exists for this delegator/delegate pair
2564
+ content:
2565
+ application/json:
2566
+ schema:
2567
+ $ref: "#/components/schemas/ProblemDetails"
2568
+ get:
2569
+ tags: [Delegations]
2570
+ summary: List delegations for an agent
2571
+ description: |
2572
+ List all delegations where this agent is the delegator.
2573
+ operationId: listDelegations
2574
+ parameters:
2575
+ - $ref: "#/components/parameters/AgentId"
2576
+ responses:
2577
+ "200":
2578
+ description: List of delegations
2579
+ content:
2580
+ application/json:
2581
+ schema:
2582
+ $ref: "#/components/schemas/DelegationListResponse"
2583
+ "404":
2584
+ $ref: "#/components/responses/NotFound"
2585
+
2586
+ /v1/agents/{agent_id}/delegations/effective:
2587
+ get:
2588
+ tags: [Delegations]
2589
+ summary: Get effective delegations
2590
+ description: |
2591
+ Get the effective delegations for an agent, including daily usage statistics.
2592
+ Agents can call this on their own ID to discover what they are authorized to delegate to.
2593
+ operationId: getEffectiveDelegations
2594
+ parameters:
2595
+ - $ref: "#/components/parameters/AgentId"
2596
+ responses:
2597
+ "200":
2598
+ description: Effective delegations with usage stats
2599
+ content:
2600
+ application/json:
2601
+ schema:
2602
+ $ref: "#/components/schemas/DelegationListResponse"
2603
+ "404":
2604
+ $ref: "#/components/responses/NotFound"
2605
+
2606
+ /v1/agents/{agent_id}/delegations/{delegation_id}:
2607
+ get:
2608
+ tags: [Delegations]
2609
+ summary: Get a specific delegation
2610
+ operationId: getDelegation
2611
+ parameters:
2612
+ - $ref: "#/components/parameters/AgentId"
2613
+ - name: delegation_id
2614
+ in: path
2615
+ required: true
2616
+ schema:
2617
+ type: string
2618
+ format: uuid
2619
+ responses:
2620
+ "200":
2621
+ description: Delegation details
2622
+ content:
2623
+ application/json:
2624
+ schema:
2625
+ $ref: "#/components/schemas/DelegationResponse"
2626
+ "404":
2627
+ $ref: "#/components/responses/NotFound"
2628
+ patch:
2629
+ tags: [Delegations]
2630
+ summary: Update a delegation
2631
+ description: |
2632
+ Update delegation tools, limits, mode, or active status. Human-only.
2633
+ operationId: updateDelegation
2634
+ parameters:
2635
+ - $ref: "#/components/parameters/AgentId"
2636
+ - name: delegation_id
2637
+ in: path
2638
+ required: true
2639
+ schema:
2640
+ type: string
2641
+ format: uuid
2642
+ requestBody:
2643
+ required: true
2644
+ content:
2645
+ application/json:
2646
+ schema:
2647
+ $ref: "#/components/schemas/UpdateDelegationRequest"
2648
+ responses:
2649
+ "200":
2650
+ description: Delegation updated
2651
+ content:
2652
+ application/json:
2653
+ schema:
2654
+ $ref: "#/components/schemas/DelegationResponse"
2655
+ "400":
2656
+ $ref: "#/components/responses/BadRequest"
2657
+ "403":
2658
+ $ref: "#/components/responses/Forbidden"
2659
+ "404":
2660
+ $ref: "#/components/responses/NotFound"
2661
+ delete:
2662
+ tags: [Delegations]
2663
+ summary: Revoke a delegation
2664
+ operationId: revokeDelegation
2665
+ parameters:
2666
+ - $ref: "#/components/parameters/AgentId"
2667
+ - name: delegation_id
2668
+ in: path
2669
+ required: true
2670
+ schema:
2671
+ type: string
2672
+ format: uuid
2673
+ responses:
2674
+ "204":
2675
+ description: Delegation revoked
2676
+ "404":
2677
+ $ref: "#/components/responses/NotFound"
2678
+
2529
2679
  # ---------------------------------------------------------------------------
2530
2680
  # Unified Signing Intent
2531
2681
  # ---------------------------------------------------------------------------
@@ -4981,6 +5131,67 @@ paths:
4981
5131
  "403":
4982
5132
  description: Only human users can rotate platform keys
4983
5133
 
5134
+ /v1/platform/apps/{appId}/stats:
5135
+ get:
5136
+ tags: [Platform]
5137
+ summary: Get platform app statistics
5138
+ description: Returns aggregate statistics about a platform app's connected users, bootstraps, and grants.
5139
+ operationId: getPlatformAppStats
5140
+ security:
5141
+ - BearerAuth: []
5142
+ parameters:
5143
+ - name: appId
5144
+ in: path
5145
+ required: true
5146
+ schema:
5147
+ type: string
5148
+ format: uuid
5149
+ responses:
5150
+ "200":
5151
+ description: App statistics
5152
+ content:
5153
+ application/json:
5154
+ schema:
5155
+ $ref: "#/components/schemas/PlatformAppStatsResponse"
5156
+ "401":
5157
+ $ref: "#/components/responses/Unauthorized"
5158
+ "404":
5159
+ $ref: "#/components/responses/NotFound"
5160
+
5161
+ /v1/platform/apps/{appId}/rotate-webhook-secret:
5162
+ post:
5163
+ tags: [Platform]
5164
+ summary: Rotate webhook secret
5165
+ description: Generate a new webhook signing secret for the platform app. The old secret is immediately invalidated. Returns the new secret (one-time).
5166
+ operationId: rotatePlatformWebhookSecret
5167
+ security:
5168
+ - BearerAuth: []
5169
+ parameters:
5170
+ - name: appId
5171
+ in: path
5172
+ required: true
5173
+ schema:
5174
+ type: string
5175
+ format: uuid
5176
+ responses:
5177
+ "200":
5178
+ description: New webhook secret generated
5179
+ content:
5180
+ application/json:
5181
+ schema:
5182
+ type: object
5183
+ required: [webhook_secret]
5184
+ properties:
5185
+ webhook_secret:
5186
+ type: string
5187
+ description: The new webhook signing secret (shown once)
5188
+ "401":
5189
+ $ref: "#/components/responses/Unauthorized"
5190
+ "403":
5191
+ description: Only human users can rotate webhook secrets
5192
+ "404":
5193
+ $ref: "#/components/responses/NotFound"
5194
+
4984
5195
  /v1/platform/apps/{appId}/templates:
4985
5196
  post:
4986
5197
  tags: [Platform]
@@ -6310,6 +6521,79 @@ paths:
6310
6521
  "401":
6311
6522
  $ref: "#/components/responses/Unauthorized"
6312
6523
 
6524
+ /v1/oauth/revoke:
6525
+ post:
6526
+ tags: [OAuth]
6527
+ summary: Revoke an OAuth token (RFC 7009)
6528
+ description: |
6529
+ Revokes an access token or refresh token. The authorization server
6530
+ invalidates the token so it can no longer be used. Follows RFC 7009.
6531
+ operationId: revokeOAuthToken
6532
+ security: []
6533
+ requestBody:
6534
+ required: true
6535
+ content:
6536
+ application/json:
6537
+ schema:
6538
+ type: object
6539
+ required: [token]
6540
+ properties:
6541
+ token:
6542
+ type: string
6543
+ description: The token to revoke (access_token or refresh_token)
6544
+ token_type_hint:
6545
+ type: string
6546
+ enum: [access_token, refresh_token]
6547
+ description: Hint about the type of token being revoked
6548
+ responses:
6549
+ "200":
6550
+ description: Token revoked successfully (or was already invalid)
6551
+ content:
6552
+ application/json:
6553
+ schema:
6554
+ type: object
6555
+ properties:
6556
+ revoked:
6557
+ type: boolean
6558
+ example: true
6559
+
6560
+ /v1/oauth/consents/{app_id}:
6561
+ delete:
6562
+ tags: [OAuth]
6563
+ summary: Revoke consent for a platform app
6564
+ description: |
6565
+ Revokes the user's previously granted OAuth consent for a specific platform app.
6566
+ All active tokens issued to the app are invalidated and the consent record is deleted.
6567
+ operationId: revokeOAuthConsent
6568
+ security:
6569
+ - BearerAuth: []
6570
+ parameters:
6571
+ - name: app_id
6572
+ in: path
6573
+ required: true
6574
+ schema:
6575
+ type: string
6576
+ format: uuid
6577
+ description: The platform app ID whose consent to revoke
6578
+ responses:
6579
+ "200":
6580
+ description: Consent revoked
6581
+ content:
6582
+ application/json:
6583
+ schema:
6584
+ type: object
6585
+ properties:
6586
+ revoked:
6587
+ type: boolean
6588
+ example: true
6589
+ app_id:
6590
+ type: string
6591
+ format: uuid
6592
+ "401":
6593
+ $ref: "#/components/responses/Unauthorized"
6594
+ "404":
6595
+ $ref: "#/components/responses/NotFound"
6596
+
6313
6597
  # ---------------------------------------------------------------------------
6314
6598
  # Risk Engine
6315
6599
  # ---------------------------------------------------------------------------
@@ -7772,9 +8056,9 @@ paths:
7772
8056
 
7773
8057
  /v1/platform/marketplace:
7774
8058
  get:
7775
- tags: [Discovery]
8059
+ tags: [Platform, Discovery]
7776
8060
  summary: Public marketplace
7777
- description: Browse the public platform marketplace of agents and apps.
8061
+ description: Browse the public platform marketplace of listed apps and agents. Returns approved platform apps with category, tags, pricing summaries, and screenshots.
7778
8062
  operationId: listMarketplace
7779
8063
  security: []
7780
8064
  parameters:
@@ -7793,13 +8077,18 @@ paths:
7793
8077
  schema:
7794
8078
  type: string
7795
8079
  description: Search query
8080
+ - name: category
8081
+ in: query
8082
+ schema:
8083
+ type: string
8084
+ description: Filter by app category
7796
8085
  responses:
7797
8086
  "200":
7798
8087
  description: Marketplace listing
7799
8088
  content:
7800
8089
  application/json:
7801
8090
  schema:
7802
- $ref: "#/components/schemas/DirectoryResponse"
8091
+ $ref: "#/components/schemas/MarketplaceResponse"
7803
8092
 
7804
8093
  # ---------------------------------------------------------------------------
7805
8094
  # Agent Chat
@@ -10878,6 +11167,136 @@ components:
10878
11167
  items:
10879
11168
  $ref: "#/components/schemas/BankrKeyLeaseResponse"
10880
11169
 
11170
+ # Agent Delegations
11171
+ CreateDelegationRequest:
11172
+ type: object
11173
+ required: [delegate_id]
11174
+ properties:
11175
+ delegate_id:
11176
+ type: string
11177
+ format: uuid
11178
+ description: The agent ID to delegate to.
11179
+ allowed_tools:
11180
+ type: array
11181
+ items:
11182
+ type: string
11183
+ description: Tool names the delegate may use. Empty means all tools allowed.
11184
+ blocked_tools:
11185
+ type: array
11186
+ items:
11187
+ type: string
11188
+ description: Tool names the delegate may NOT use.
11189
+ max_daily_delegations:
11190
+ type: integer
11191
+ description: Maximum delegation calls per UTC day. NULL means unlimited.
11192
+ max_depth:
11193
+ type: integer
11194
+ description: Maximum delegation chain depth (default 3).
11195
+ default: 3
11196
+ guardrails:
11197
+ type: object
11198
+ description: Additional guardrail constraints for this delegation.
11199
+ delegation_mode:
11200
+ type: string
11201
+ enum: [caller, target, both]
11202
+ description: "Execution mode: caller (use delegator's creds), target (use delegate's config), or both."
11203
+ default: caller
11204
+ expires_at:
11205
+ type: string
11206
+ format: date-time
11207
+ description: Optional expiration timestamp.
11208
+
11209
+ UpdateDelegationRequest:
11210
+ type: object
11211
+ properties:
11212
+ allowed_tools:
11213
+ type: array
11214
+ items:
11215
+ type: string
11216
+ blocked_tools:
11217
+ type: array
11218
+ items:
11219
+ type: string
11220
+ max_daily_delegations:
11221
+ type: integer
11222
+ max_depth:
11223
+ type: integer
11224
+ guardrails:
11225
+ type: object
11226
+ delegation_mode:
11227
+ type: string
11228
+ enum: [caller, target, both]
11229
+ is_active:
11230
+ type: boolean
11231
+ expires_at:
11232
+ type: string
11233
+ format: date-time
11234
+ nullable: true
11235
+
11236
+ DelegationResponse:
11237
+ type: object
11238
+ properties:
11239
+ id:
11240
+ type: string
11241
+ format: uuid
11242
+ org_id:
11243
+ type: string
11244
+ format: uuid
11245
+ delegator_id:
11246
+ type: string
11247
+ format: uuid
11248
+ delegate_id:
11249
+ type: string
11250
+ format: uuid
11251
+ delegator_name:
11252
+ type: string
11253
+ delegate_name:
11254
+ type: string
11255
+ allowed_tools:
11256
+ type: array
11257
+ items:
11258
+ type: string
11259
+ blocked_tools:
11260
+ type: array
11261
+ items:
11262
+ type: string
11263
+ max_daily_delegations:
11264
+ type: integer
11265
+ nullable: true
11266
+ max_depth:
11267
+ type: integer
11268
+ guardrails:
11269
+ type: object
11270
+ delegation_mode:
11271
+ type: string
11272
+ enum: [caller, target, both]
11273
+ is_active:
11274
+ type: boolean
11275
+ created_by:
11276
+ type: string
11277
+ format: uuid
11278
+ expires_at:
11279
+ type: string
11280
+ format: date-time
11281
+ nullable: true
11282
+ created_at:
11283
+ type: string
11284
+ format: date-time
11285
+ updated_at:
11286
+ type: string
11287
+ format: date-time
11288
+ delegations_today:
11289
+ type: integer
11290
+ description: Number of delegations used today (present in effective endpoint).
11291
+
11292
+ DelegationListResponse:
11293
+ type: object
11294
+ properties:
11295
+ delegations:
11296
+ type: array
11297
+ items:
11298
+ $ref: "#/components/schemas/DelegationResponse"
11299
+
10881
11300
  # Unified Signing Intent
10882
11301
  SignIntentRequest:
10883
11302
  type: object
@@ -12955,6 +13374,12 @@ components:
12955
13374
  type: string
12956
13375
  format: uuid
12957
13376
  nullable: true
13377
+ agent_ids:
13378
+ type: array
13379
+ items:
13380
+ type: string
13381
+ format: uuid
13382
+ description: All agent IDs provisioned by the template (when multiple agents are defined)
12958
13383
  policy_ids:
12959
13384
  type: array
12960
13385
  items:
@@ -13000,6 +13425,61 @@ components:
13000
13425
  format: uuid
13001
13426
  description: IDs of automations provisioned by the template
13002
13427
 
13428
+ PlatformAppStatsResponse:
13429
+ type: object
13430
+ required: [total_connections, active_connections, claimed_connections, total_bootstraps, total_grants]
13431
+ properties:
13432
+ total_connections:
13433
+ type: integer
13434
+ description: Total number of user connections (all statuses)
13435
+ active_connections:
13436
+ type: integer
13437
+ description: Number of active connections
13438
+ claimed_connections:
13439
+ type: integer
13440
+ description: Number of claimed connections
13441
+ total_bootstraps:
13442
+ type: integer
13443
+ description: Total bootstrap operations performed
13444
+ total_grants:
13445
+ type: integer
13446
+ description: Total resource grants issued
13447
+
13448
+ MarketplaceResponse:
13449
+ type: object
13450
+ properties:
13451
+ apps:
13452
+ type: array
13453
+ items:
13454
+ type: object
13455
+ properties:
13456
+ id:
13457
+ type: string
13458
+ format: uuid
13459
+ name:
13460
+ type: string
13461
+ slug:
13462
+ type: string
13463
+ description:
13464
+ type: string
13465
+ logo_url:
13466
+ type: string
13467
+ nullable: true
13468
+ category:
13469
+ type: string
13470
+ nullable: true
13471
+ listing_tags:
13472
+ type: array
13473
+ items:
13474
+ type: string
13475
+ listing_screenshots:
13476
+ type: array
13477
+ items:
13478
+ type: string
13479
+ pricing_summary:
13480
+ type: string
13481
+ nullable: true
13482
+
13003
13483
  ConnectedAppResponse:
13004
13484
  type: object
13005
13485
  properties:
@@ -13412,6 +13892,10 @@ components:
13412
13892
  expires_in:
13413
13893
  type: integer
13414
13894
  description: Token lifetime in seconds
13895
+ refresh_token:
13896
+ type: string
13897
+ nullable: true
13898
+ description: Refresh token for obtaining new access tokens (when offline_access scope was granted)
13415
13899
  id_token:
13416
13900
  type: string
13417
13901
  nullable: true
@@ -14726,6 +15210,24 @@ components:
14726
15210
  Telegram: { bot_token }.
14727
15211
  WhatsApp: { phone_number_id, access_token, verify_token }.
14728
15212
  Discord: { bot_token, application_id }.
15213
+ slash_commands_enabled:
15214
+ type: boolean
15215
+ description: |
15216
+ Enable Hermes-compatible slash commands on this channel. When true,
15217
+ messages starting with `/` are handled before the LLM. Commands:
15218
+ /help, /new, /reset, /clear, /model, /mode, /personality, /retry,
15219
+ /undo, /compress, /summarize, /stop, /status, /skills, /usage, /sethome.
15220
+ voice_transcription_enabled:
15221
+ type: boolean
15222
+ description: Enable voice message transcription
15223
+ sender_allowlist:
15224
+ type: array
15225
+ items:
15226
+ type: string
15227
+ description: List of allowed sender IDs
15228
+ auto_respond_enabled:
15229
+ type: boolean
15230
+ description: Enable auto-respond
14729
15231
 
14730
15232
  UpdateChannelRequest:
14731
15233
  type: object
@@ -14738,6 +15240,16 @@ components:
14738
15240
  type: object
14739
15241
  additionalProperties:
14740
15242
  type: string
15243
+ slash_commands_enabled:
15244
+ type: boolean
15245
+ voice_transcription_enabled:
15246
+ type: boolean
15247
+ sender_allowlist:
15248
+ type: array
15249
+ items:
15250
+ type: string
15251
+ auto_respond_enabled:
15252
+ type: boolean
14741
15253
 
14742
15254
  ChannelResponse:
14743
15255
  type: object
@@ -14770,6 +15282,32 @@ components:
14770
15282
  Channel-specific configuration JSON. May include:
14771
15283
  - sender_allowlist (array of strings): restrict which external senders can trigger the agent
14772
15284
  - auto_respond_enabled (boolean): whether the agent auto-responds to inbound messages
15285
+ slash_commands_enabled:
15286
+ type: boolean
15287
+ description: |
15288
+ Whether Hermes-compatible slash commands are enabled for this channel.
15289
+ Commands: /help, /new, /reset, /clear, /model, /mode, /personality, /retry,
15290
+ /undo, /compress, /summarize, /stop, /status, /skills, /usage, /sethome.
15291
+ voice_transcription_enabled:
15292
+ type: boolean
15293
+ description: Whether voice message transcription is enabled
15294
+ unified_conversation_id:
15295
+ type: string
15296
+ format: uuid
15297
+ nullable: true
15298
+ description: ID linking this channel to a unified cross-platform conversation
15299
+ is_home_platform:
15300
+ type: boolean
15301
+ description: Whether this is the agent's home platform channel
15302
+ sender_allowlist:
15303
+ type: array
15304
+ items:
15305
+ type: string
15306
+ nullable: true
15307
+ description: List of allowed sender IDs for auto-respond
15308
+ auto_respond_enabled:
15309
+ type: boolean
15310
+ description: Whether auto-respond is enabled for this channel
14773
15311
  created_at:
14774
15312
  type: string
14775
15313
  format: date-time
@@ -14820,6 +15358,22 @@ components:
14820
15358
  type: string
14821
15359
  media_url:
14822
15360
  type: string
15361
+ is_voice_message:
15362
+ type: boolean
15363
+ description: Whether this message was a voice message
15364
+ voice_file_id:
15365
+ type: string
15366
+ nullable: true
15367
+ description: Telegram voice file ID
15368
+ voice_duration_secs:
15369
+ type: integer
15370
+ nullable: true
15371
+ description: Duration of voice message in seconds
15372
+ transcription_status:
15373
+ type: string
15374
+ nullable: true
15375
+ enum: [pending, completed, failed]
15376
+ description: Status of voice transcription
14823
15377
  created_at:
14824
15378
  type: string
14825
15379
  format: date-time
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.44.3",
3
+ "version": "0.46.0",
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": {