@1claw/openapi-spec 0.39.0 → 0.40.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 +683 -16
  2. package/openapi.yaml +409 -1
  3. package/package.json +2 -2
package/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "1Claw API",
5
- "version": "2.25.0",
5
+ "version": "2.26.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.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
7
7
  "contact": {
8
8
  "email": "ops@1claw.xyz"
@@ -126,6 +126,10 @@
126
126
  {
127
127
  "name": "Tokens",
128
128
  "description": "Known token registry for guardrail enforcement"
129
+ },
130
+ {
131
+ "name": "Execution Intents",
132
+ "description": "Execute HTTP calls, queries, and more through pre-configured bindings"
129
133
  }
130
134
  ],
131
135
  "paths": {
@@ -1160,6 +1164,15 @@
1160
1164
  "responses": {
1161
1165
  "202": {
1162
1166
  "description": "Approval request created",
1167
+ "headers": {
1168
+ "Location": {
1169
+ "description": "URL to poll for approval status",
1170
+ "schema": {
1171
+ "type": "string",
1172
+ "example": "/v1/approvals/{id}"
1173
+ }
1174
+ }
1175
+ },
1163
1176
  "content": {
1164
1177
  "application/json": {
1165
1178
  "schema": {
@@ -2260,6 +2273,15 @@
2260
2273
  "responses": {
2261
2274
  "202": {
2262
2275
  "description": "Rotation job started",
2276
+ "headers": {
2277
+ "Location": {
2278
+ "description": "URL to poll for rotation job status",
2279
+ "schema": {
2280
+ "type": "string",
2281
+ "example": "/v1/vaults/{vault_id}/cmek-rotate/{job_id}"
2282
+ }
2283
+ }
2284
+ },
2263
2285
  "content": {
2264
2286
  "application/json": {
2265
2287
  "schema": {
@@ -3812,32 +3834,382 @@
3812
3834
  "parameters": [
3813
3835
  {
3814
3836
  "$ref": "#/components/parameters/AgentId"
3815
- }
3816
- ],
3817
- "requestBody": {
3818
- "required": true,
3819
- "content": {
3820
- "application/json": {
3821
- "schema": {
3822
- "$ref": "#/components/schemas/SignIntentRequest"
3823
- }
3837
+ }
3838
+ ],
3839
+ "requestBody": {
3840
+ "required": true,
3841
+ "content": {
3842
+ "application/json": {
3843
+ "schema": {
3844
+ "$ref": "#/components/schemas/SignIntentRequest"
3845
+ }
3846
+ }
3847
+ }
3848
+ },
3849
+ "responses": {
3850
+ "200": {
3851
+ "description": "Signed result",
3852
+ "content": {
3853
+ "application/json": {
3854
+ "schema": {
3855
+ "$ref": "#/components/schemas/SignIntentResponse"
3856
+ }
3857
+ }
3858
+ }
3859
+ },
3860
+ "400": {
3861
+ "$ref": "#/components/responses/BadRequest"
3862
+ },
3863
+ "403": {
3864
+ "$ref": "#/components/responses/Forbidden"
3865
+ }
3866
+ }
3867
+ }
3868
+ },
3869
+ "/v1/agents/{agent_id}/bindings": {
3870
+ "post": {
3871
+ "tags": [
3872
+ "Execution Intents"
3873
+ ],
3874
+ "summary": "Create a binding",
3875
+ "operationId": "createBinding",
3876
+ "parameters": [
3877
+ {
3878
+ "$ref": "#/components/parameters/AgentId"
3879
+ }
3880
+ ],
3881
+ "requestBody": {
3882
+ "required": true,
3883
+ "content": {
3884
+ "application/json": {
3885
+ "schema": {
3886
+ "$ref": "#/components/schemas/CreateBindingRequest"
3887
+ }
3888
+ }
3889
+ }
3890
+ },
3891
+ "responses": {
3892
+ "201": {
3893
+ "description": "Binding created",
3894
+ "content": {
3895
+ "application/json": {
3896
+ "schema": {
3897
+ "$ref": "#/components/schemas/BindingResponse"
3898
+ }
3899
+ }
3900
+ }
3901
+ },
3902
+ "400": {
3903
+ "$ref": "#/components/responses/BadRequest"
3904
+ },
3905
+ "403": {
3906
+ "$ref": "#/components/responses/Forbidden"
3907
+ }
3908
+ }
3909
+ },
3910
+ "get": {
3911
+ "tags": [
3912
+ "Execution Intents"
3913
+ ],
3914
+ "summary": "List bindings",
3915
+ "operationId": "listBindings",
3916
+ "parameters": [
3917
+ {
3918
+ "$ref": "#/components/parameters/AgentId"
3919
+ }
3920
+ ],
3921
+ "responses": {
3922
+ "200": {
3923
+ "description": "Binding list",
3924
+ "content": {
3925
+ "application/json": {
3926
+ "schema": {
3927
+ "type": "object",
3928
+ "required": [
3929
+ "bindings"
3930
+ ],
3931
+ "properties": {
3932
+ "bindings": {
3933
+ "type": "array",
3934
+ "items": {
3935
+ "$ref": "#/components/schemas/BindingResponse"
3936
+ }
3937
+ }
3938
+ }
3939
+ }
3940
+ }
3941
+ }
3942
+ },
3943
+ "403": {
3944
+ "$ref": "#/components/responses/Forbidden"
3945
+ }
3946
+ }
3947
+ }
3948
+ },
3949
+ "/v1/agents/{agent_id}/bindings/{binding_id}": {
3950
+ "get": {
3951
+ "tags": [
3952
+ "Execution Intents"
3953
+ ],
3954
+ "summary": "Get binding",
3955
+ "operationId": "getBinding",
3956
+ "parameters": [
3957
+ {
3958
+ "$ref": "#/components/parameters/AgentId"
3959
+ },
3960
+ {
3961
+ "name": "binding_id",
3962
+ "in": "path",
3963
+ "required": true,
3964
+ "schema": {
3965
+ "type": "string",
3966
+ "format": "uuid"
3967
+ }
3968
+ }
3969
+ ],
3970
+ "responses": {
3971
+ "200": {
3972
+ "description": "Binding details",
3973
+ "content": {
3974
+ "application/json": {
3975
+ "schema": {
3976
+ "$ref": "#/components/schemas/BindingResponse"
3977
+ }
3978
+ }
3979
+ }
3980
+ },
3981
+ "404": {
3982
+ "$ref": "#/components/responses/NotFound"
3983
+ }
3984
+ }
3985
+ },
3986
+ "patch": {
3987
+ "tags": [
3988
+ "Execution Intents"
3989
+ ],
3990
+ "summary": "Update binding",
3991
+ "operationId": "updateBinding",
3992
+ "parameters": [
3993
+ {
3994
+ "$ref": "#/components/parameters/AgentId"
3995
+ },
3996
+ {
3997
+ "name": "binding_id",
3998
+ "in": "path",
3999
+ "required": true,
4000
+ "schema": {
4001
+ "type": "string",
4002
+ "format": "uuid"
4003
+ }
4004
+ }
4005
+ ],
4006
+ "requestBody": {
4007
+ "required": true,
4008
+ "content": {
4009
+ "application/json": {
4010
+ "schema": {
4011
+ "$ref": "#/components/schemas/UpdateBindingRequest"
4012
+ }
4013
+ }
4014
+ }
4015
+ },
4016
+ "responses": {
4017
+ "200": {
4018
+ "description": "Binding updated",
4019
+ "content": {
4020
+ "application/json": {
4021
+ "schema": {
4022
+ "$ref": "#/components/schemas/BindingResponse"
4023
+ }
4024
+ }
4025
+ }
4026
+ },
4027
+ "400": {
4028
+ "$ref": "#/components/responses/BadRequest"
4029
+ },
4030
+ "404": {
4031
+ "$ref": "#/components/responses/NotFound"
4032
+ }
4033
+ }
4034
+ },
4035
+ "delete": {
4036
+ "tags": [
4037
+ "Execution Intents"
4038
+ ],
4039
+ "summary": "Delete binding",
4040
+ "operationId": "deleteBinding",
4041
+ "parameters": [
4042
+ {
4043
+ "$ref": "#/components/parameters/AgentId"
4044
+ },
4045
+ {
4046
+ "name": "binding_id",
4047
+ "in": "path",
4048
+ "required": true,
4049
+ "schema": {
4050
+ "type": "string",
4051
+ "format": "uuid"
4052
+ }
4053
+ }
4054
+ ],
4055
+ "responses": {
4056
+ "204": {
4057
+ "description": "Binding deleted"
4058
+ },
4059
+ "404": {
4060
+ "$ref": "#/components/responses/NotFound"
4061
+ }
4062
+ }
4063
+ }
4064
+ },
4065
+ "/v1/agents/{agent_id}/bindings/{binding_id}/test": {
4066
+ "post": {
4067
+ "tags": [
4068
+ "Execution Intents"
4069
+ ],
4070
+ "summary": "Test binding connectivity",
4071
+ "operationId": "testBinding",
4072
+ "parameters": [
4073
+ {
4074
+ "$ref": "#/components/parameters/AgentId"
4075
+ },
4076
+ {
4077
+ "name": "binding_id",
4078
+ "in": "path",
4079
+ "required": true,
4080
+ "schema": {
4081
+ "type": "string",
4082
+ "format": "uuid"
4083
+ }
4084
+ }
4085
+ ],
4086
+ "requestBody": {
4087
+ "required": false,
4088
+ "content": {
4089
+ "application/json": {
4090
+ "schema": {
4091
+ "type": "object",
4092
+ "properties": {
4093
+ "timeout_ms": {
4094
+ "type": "integer",
4095
+ "description": "Connection test timeout in milliseconds"
4096
+ }
4097
+ }
4098
+ }
4099
+ }
4100
+ }
4101
+ },
4102
+ "responses": {
4103
+ "200": {
4104
+ "description": "Test result",
4105
+ "content": {
4106
+ "application/json": {
4107
+ "schema": {
4108
+ "$ref": "#/components/schemas/TestBindingResponse"
4109
+ }
4110
+ }
4111
+ }
4112
+ },
4113
+ "404": {
4114
+ "$ref": "#/components/responses/NotFound"
4115
+ }
4116
+ }
4117
+ }
4118
+ },
4119
+ "/v1/agents/{agent_id}/execute": {
4120
+ "post": {
4121
+ "tags": [
4122
+ "Execution Intents"
4123
+ ],
4124
+ "summary": "Execute an intent",
4125
+ "operationId": "executeIntent",
4126
+ "parameters": [
4127
+ {
4128
+ "$ref": "#/components/parameters/AgentId"
4129
+ }
4130
+ ],
4131
+ "requestBody": {
4132
+ "required": true,
4133
+ "content": {
4134
+ "application/json": {
4135
+ "schema": {
4136
+ "$ref": "#/components/schemas/ExecuteRequest"
4137
+ }
4138
+ }
4139
+ }
4140
+ },
4141
+ "responses": {
4142
+ "200": {
4143
+ "description": "Execution result",
4144
+ "content": {
4145
+ "application/json": {
4146
+ "schema": {
4147
+ "$ref": "#/components/schemas/ExecuteResponse"
4148
+ }
4149
+ }
4150
+ }
4151
+ },
4152
+ "400": {
4153
+ "$ref": "#/components/responses/BadRequest"
4154
+ },
4155
+ "403": {
4156
+ "$ref": "#/components/responses/Forbidden"
4157
+ }
4158
+ }
4159
+ }
4160
+ },
4161
+ "/v1/agents/{agent_id}/executions": {
4162
+ "get": {
4163
+ "tags": [
4164
+ "Execution Intents"
4165
+ ],
4166
+ "summary": "List execution events",
4167
+ "operationId": "listExecutions",
4168
+ "parameters": [
4169
+ {
4170
+ "$ref": "#/components/parameters/AgentId"
4171
+ },
4172
+ {
4173
+ "name": "limit",
4174
+ "in": "query",
4175
+ "required": false,
4176
+ "schema": {
4177
+ "type": "integer",
4178
+ "default": 50
4179
+ }
4180
+ },
4181
+ {
4182
+ "name": "offset",
4183
+ "in": "query",
4184
+ "required": false,
4185
+ "schema": {
4186
+ "type": "integer",
4187
+ "default": 0
3824
4188
  }
3825
4189
  }
3826
- },
4190
+ ],
3827
4191
  "responses": {
3828
4192
  "200": {
3829
- "description": "Signed result",
4193
+ "description": "Execution event list",
3830
4194
  "content": {
3831
4195
  "application/json": {
3832
4196
  "schema": {
3833
- "$ref": "#/components/schemas/SignIntentResponse"
4197
+ "type": "object",
4198
+ "required": [
4199
+ "events"
4200
+ ],
4201
+ "properties": {
4202
+ "events": {
4203
+ "type": "array",
4204
+ "items": {
4205
+ "$ref": "#/components/schemas/ExecutionEventResponse"
4206
+ }
4207
+ }
4208
+ }
3834
4209
  }
3835
4210
  }
3836
4211
  }
3837
4212
  },
3838
- "400": {
3839
- "$ref": "#/components/responses/BadRequest"
3840
- },
3841
4213
  "403": {
3842
4214
  "$ref": "#/components/responses/Forbidden"
3843
4215
  }
@@ -10931,6 +11303,16 @@
10931
11303
  "shroud_config": {
10932
11304
  "$ref": "#/components/schemas/ShroudConfig"
10933
11305
  },
11306
+ "execution_intents_enabled": {
11307
+ "type": "boolean",
11308
+ "default": false,
11309
+ "description": "Enable Execution Intents (bindings and execute endpoint) for this agent"
11310
+ },
11311
+ "execution_guardrails": {
11312
+ "type": "object",
11313
+ "additionalProperties": true,
11314
+ "description": "Guardrails applied to all execution intents for this agent"
11315
+ },
10934
11316
  "tx_token_allowlist": {
10935
11317
  "type": "array",
10936
11318
  "items": {
@@ -11033,6 +11415,15 @@
11033
11415
  "shroud_config": {
11034
11416
  "$ref": "#/components/schemas/ShroudConfig"
11035
11417
  },
11418
+ "execution_intents_enabled": {
11419
+ "type": "boolean",
11420
+ "description": "Enable/disable Execution Intents for this agent"
11421
+ },
11422
+ "execution_guardrails": {
11423
+ "type": "object",
11424
+ "additionalProperties": true,
11425
+ "description": "Guardrails applied to all execution intents for this agent"
11426
+ },
11036
11427
  "federation_enabled": {
11037
11428
  "type": "boolean",
11038
11429
  "description": "Enable OIDC federation (RFC 8693 token-exchange) for this agent.\nWhen true, the agent may call POST /v1/auth/federated-token to mint\nfederation tokens for the audiences listed in `federation_audiences`.\n"
@@ -11203,6 +11594,15 @@
11203
11594
  "shroud_config": {
11204
11595
  "$ref": "#/components/schemas/ShroudConfig"
11205
11596
  },
11597
+ "execution_intents_enabled": {
11598
+ "type": "boolean",
11599
+ "description": "Whether Execution Intents (bindings and execute endpoint) are enabled for this agent"
11600
+ },
11601
+ "execution_guardrails": {
11602
+ "type": "object",
11603
+ "additionalProperties": true,
11604
+ "description": "Guardrails applied to all execution intents for this agent"
11605
+ },
11206
11606
  "federation_enabled": {
11207
11607
  "type": "boolean",
11208
11608
  "description": "Whether this agent may mint OIDC federation tokens via\nPOST /v1/auth/federated-token. False by default.\n"
@@ -16637,6 +17037,273 @@
16637
17037
  }
16638
17038
  }
16639
17039
  }
17040
+ },
17041
+ "CreateBindingRequest": {
17042
+ "type": "object",
17043
+ "required": [
17044
+ "name",
17045
+ "binding_type"
17046
+ ],
17047
+ "properties": {
17048
+ "name": {
17049
+ "type": "string"
17050
+ },
17051
+ "binding_type": {
17052
+ "type": "string",
17053
+ "enum": [
17054
+ "http",
17055
+ "graphql",
17056
+ "postgres",
17057
+ "mysql",
17058
+ "redis",
17059
+ "grpc",
17060
+ "smtp",
17061
+ "cloud_sdk",
17062
+ "s3",
17063
+ "custom"
17064
+ ]
17065
+ },
17066
+ "config": {
17067
+ "type": "object",
17068
+ "additionalProperties": true
17069
+ },
17070
+ "guardrails": {
17071
+ "type": "object",
17072
+ "additionalProperties": true
17073
+ },
17074
+ "credential": {
17075
+ "type": "object",
17076
+ "additionalProperties": true
17077
+ }
17078
+ }
17079
+ },
17080
+ "UpdateBindingRequest": {
17081
+ "type": "object",
17082
+ "properties": {
17083
+ "config": {
17084
+ "type": "object",
17085
+ "additionalProperties": true
17086
+ },
17087
+ "guardrails": {
17088
+ "type": "object",
17089
+ "additionalProperties": true
17090
+ },
17091
+ "is_active": {
17092
+ "type": "boolean"
17093
+ },
17094
+ "credential": {
17095
+ "type": "object",
17096
+ "additionalProperties": true
17097
+ }
17098
+ }
17099
+ },
17100
+ "BindingResponse": {
17101
+ "type": "object",
17102
+ "required": [
17103
+ "id",
17104
+ "agent_id",
17105
+ "binding_type",
17106
+ "name",
17107
+ "is_active",
17108
+ "created_at",
17109
+ "updated_at"
17110
+ ],
17111
+ "properties": {
17112
+ "id": {
17113
+ "type": "string",
17114
+ "format": "uuid"
17115
+ },
17116
+ "agent_id": {
17117
+ "type": "string",
17118
+ "format": "uuid"
17119
+ },
17120
+ "binding_type": {
17121
+ "type": "string",
17122
+ "enum": [
17123
+ "http",
17124
+ "graphql",
17125
+ "postgres",
17126
+ "mysql",
17127
+ "redis",
17128
+ "grpc",
17129
+ "smtp",
17130
+ "cloud_sdk",
17131
+ "s3",
17132
+ "custom"
17133
+ ]
17134
+ },
17135
+ "name": {
17136
+ "type": "string"
17137
+ },
17138
+ "config": {
17139
+ "type": "object",
17140
+ "additionalProperties": true
17141
+ },
17142
+ "guardrails": {
17143
+ "type": "object",
17144
+ "additionalProperties": true
17145
+ },
17146
+ "is_active": {
17147
+ "type": "boolean"
17148
+ },
17149
+ "created_at": {
17150
+ "type": "string",
17151
+ "format": "date-time"
17152
+ },
17153
+ "updated_at": {
17154
+ "type": "string",
17155
+ "format": "date-time"
17156
+ }
17157
+ }
17158
+ },
17159
+ "TestBindingResponse": {
17160
+ "type": "object",
17161
+ "required": [
17162
+ "success",
17163
+ "latency_ms"
17164
+ ],
17165
+ "properties": {
17166
+ "success": {
17167
+ "type": "boolean"
17168
+ },
17169
+ "latency_ms": {
17170
+ "type": "integer"
17171
+ },
17172
+ "error": {
17173
+ "type": "string",
17174
+ "nullable": true
17175
+ }
17176
+ }
17177
+ },
17178
+ "ExecuteRequest": {
17179
+ "type": "object",
17180
+ "required": [
17181
+ "binding",
17182
+ "intent_type",
17183
+ "params"
17184
+ ],
17185
+ "properties": {
17186
+ "binding": {
17187
+ "type": "string",
17188
+ "description": "Binding name or ID to execute against"
17189
+ },
17190
+ "intent_type": {
17191
+ "type": "string",
17192
+ "description": "Type of execution intent (e.g. http_request, graphql_query)"
17193
+ },
17194
+ "execution_mode": {
17195
+ "type": "string",
17196
+ "enum": [
17197
+ "vault",
17198
+ "tee"
17199
+ ],
17200
+ "default": "vault",
17201
+ "description": "Where execution runs (vault = server-side, tee = Shroud TEE)"
17202
+ },
17203
+ "params": {
17204
+ "type": "object",
17205
+ "additionalProperties": true,
17206
+ "description": "Intent-specific parameters"
17207
+ }
17208
+ }
17209
+ },
17210
+ "ExecuteResponse": {
17211
+ "type": "object",
17212
+ "required": [
17213
+ "execution_id",
17214
+ "status",
17215
+ "duration_ms",
17216
+ "redactions_applied"
17217
+ ],
17218
+ "properties": {
17219
+ "execution_id": {
17220
+ "type": "string",
17221
+ "format": "uuid"
17222
+ },
17223
+ "status": {
17224
+ "type": "string"
17225
+ },
17226
+ "result": {
17227
+ "type": "object",
17228
+ "additionalProperties": true,
17229
+ "nullable": true
17230
+ },
17231
+ "error": {
17232
+ "type": "string",
17233
+ "nullable": true
17234
+ },
17235
+ "duration_ms": {
17236
+ "type": "integer"
17237
+ },
17238
+ "redactions_applied": {
17239
+ "type": "integer"
17240
+ }
17241
+ }
17242
+ },
17243
+ "ExecutionEventResponse": {
17244
+ "type": "object",
17245
+ "required": [
17246
+ "id",
17247
+ "agent_id",
17248
+ "binding_id",
17249
+ "intent_type",
17250
+ "execution_mode",
17251
+ "status",
17252
+ "duration_ms",
17253
+ "redactions_applied",
17254
+ "created_at"
17255
+ ],
17256
+ "properties": {
17257
+ "id": {
17258
+ "type": "string",
17259
+ "format": "uuid"
17260
+ },
17261
+ "agent_id": {
17262
+ "type": "string",
17263
+ "format": "uuid"
17264
+ },
17265
+ "binding_id": {
17266
+ "type": "string",
17267
+ "format": "uuid"
17268
+ },
17269
+ "intent_type": {
17270
+ "type": "string"
17271
+ },
17272
+ "execution_mode": {
17273
+ "type": "string"
17274
+ },
17275
+ "status": {
17276
+ "type": "string"
17277
+ },
17278
+ "request_summary": {
17279
+ "type": "object",
17280
+ "additionalProperties": true,
17281
+ "nullable": true
17282
+ },
17283
+ "result_summary": {
17284
+ "type": "object",
17285
+ "additionalProperties": true,
17286
+ "nullable": true
17287
+ },
17288
+ "error_message": {
17289
+ "type": "string",
17290
+ "nullable": true
17291
+ },
17292
+ "duration_ms": {
17293
+ "type": "integer"
17294
+ },
17295
+ "cost_cents": {
17296
+ "type": "integer",
17297
+ "nullable": true
17298
+ },
17299
+ "redactions_applied": {
17300
+ "type": "integer"
17301
+ },
17302
+ "created_at": {
17303
+ "type": "string",
17304
+ "format": "date-time"
17305
+ }
17306
+ }
16640
17307
  }
16641
17308
  }
16642
17309
  }
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.25.0
5
+ version: 2.26.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,
@@ -76,6 +76,8 @@ tags:
76
76
  description: Risk events, verdicts, and honeytoken management
77
77
  - name: Tokens
78
78
  description: Known token registry for guardrail enforcement
79
+ - name: Execution Intents
80
+ description: Execute HTTP calls, queries, and more through pre-configured bindings
79
81
 
80
82
  # =============================================================================
81
83
  # PATHS
@@ -779,6 +781,12 @@ paths:
779
781
  responses:
780
782
  "202":
781
783
  description: Approval request created
784
+ headers:
785
+ Location:
786
+ description: URL to poll for approval status
787
+ schema:
788
+ type: string
789
+ example: /v1/approvals/{id}
782
790
  content:
783
791
  application/json:
784
792
  schema:
@@ -1508,6 +1516,12 @@ paths:
1508
1516
  responses:
1509
1517
  "202":
1510
1518
  description: Rotation job started
1519
+ headers:
1520
+ Location:
1521
+ description: URL to poll for rotation job status
1522
+ schema:
1523
+ type: string
1524
+ example: /v1/vaults/{vault_id}/cmek-rotate/{job_id}
1511
1525
  content:
1512
1526
  application/json:
1513
1527
  schema:
@@ -2523,6 +2537,218 @@ paths:
2523
2537
  "403":
2524
2538
  $ref: "#/components/responses/Forbidden"
2525
2539
 
2540
+ # ---------------------------------------------------------------------------
2541
+ # Execution Intents
2542
+ # ---------------------------------------------------------------------------
2543
+
2544
+ /v1/agents/{agent_id}/bindings:
2545
+ post:
2546
+ tags: [Execution Intents]
2547
+ summary: Create a binding
2548
+ operationId: createBinding
2549
+ parameters:
2550
+ - $ref: "#/components/parameters/AgentId"
2551
+ requestBody:
2552
+ required: true
2553
+ content:
2554
+ application/json:
2555
+ schema:
2556
+ $ref: "#/components/schemas/CreateBindingRequest"
2557
+ responses:
2558
+ "201":
2559
+ description: Binding created
2560
+ content:
2561
+ application/json:
2562
+ schema:
2563
+ $ref: "#/components/schemas/BindingResponse"
2564
+ "400":
2565
+ $ref: "#/components/responses/BadRequest"
2566
+ "403":
2567
+ $ref: "#/components/responses/Forbidden"
2568
+ get:
2569
+ tags: [Execution Intents]
2570
+ summary: List bindings
2571
+ operationId: listBindings
2572
+ parameters:
2573
+ - $ref: "#/components/parameters/AgentId"
2574
+ responses:
2575
+ "200":
2576
+ description: Binding list
2577
+ content:
2578
+ application/json:
2579
+ schema:
2580
+ type: object
2581
+ required: [bindings]
2582
+ properties:
2583
+ bindings:
2584
+ type: array
2585
+ items:
2586
+ $ref: "#/components/schemas/BindingResponse"
2587
+ "403":
2588
+ $ref: "#/components/responses/Forbidden"
2589
+
2590
+ /v1/agents/{agent_id}/bindings/{binding_id}:
2591
+ get:
2592
+ tags: [Execution Intents]
2593
+ summary: Get binding
2594
+ operationId: getBinding
2595
+ parameters:
2596
+ - $ref: "#/components/parameters/AgentId"
2597
+ - name: binding_id
2598
+ in: path
2599
+ required: true
2600
+ schema:
2601
+ type: string
2602
+ format: uuid
2603
+ responses:
2604
+ "200":
2605
+ description: Binding details
2606
+ content:
2607
+ application/json:
2608
+ schema:
2609
+ $ref: "#/components/schemas/BindingResponse"
2610
+ "404":
2611
+ $ref: "#/components/responses/NotFound"
2612
+ patch:
2613
+ tags: [Execution Intents]
2614
+ summary: Update binding
2615
+ operationId: updateBinding
2616
+ parameters:
2617
+ - $ref: "#/components/parameters/AgentId"
2618
+ - name: binding_id
2619
+ in: path
2620
+ required: true
2621
+ schema:
2622
+ type: string
2623
+ format: uuid
2624
+ requestBody:
2625
+ required: true
2626
+ content:
2627
+ application/json:
2628
+ schema:
2629
+ $ref: "#/components/schemas/UpdateBindingRequest"
2630
+ responses:
2631
+ "200":
2632
+ description: Binding updated
2633
+ content:
2634
+ application/json:
2635
+ schema:
2636
+ $ref: "#/components/schemas/BindingResponse"
2637
+ "400":
2638
+ $ref: "#/components/responses/BadRequest"
2639
+ "404":
2640
+ $ref: "#/components/responses/NotFound"
2641
+ delete:
2642
+ tags: [Execution Intents]
2643
+ summary: Delete binding
2644
+ operationId: deleteBinding
2645
+ parameters:
2646
+ - $ref: "#/components/parameters/AgentId"
2647
+ - name: binding_id
2648
+ in: path
2649
+ required: true
2650
+ schema:
2651
+ type: string
2652
+ format: uuid
2653
+ responses:
2654
+ "204":
2655
+ description: Binding deleted
2656
+ "404":
2657
+ $ref: "#/components/responses/NotFound"
2658
+
2659
+ /v1/agents/{agent_id}/bindings/{binding_id}/test:
2660
+ post:
2661
+ tags: [Execution Intents]
2662
+ summary: Test binding connectivity
2663
+ operationId: testBinding
2664
+ parameters:
2665
+ - $ref: "#/components/parameters/AgentId"
2666
+ - name: binding_id
2667
+ in: path
2668
+ required: true
2669
+ schema:
2670
+ type: string
2671
+ format: uuid
2672
+ requestBody:
2673
+ required: false
2674
+ content:
2675
+ application/json:
2676
+ schema:
2677
+ type: object
2678
+ properties:
2679
+ timeout_ms:
2680
+ type: integer
2681
+ description: Connection test timeout in milliseconds
2682
+ responses:
2683
+ "200":
2684
+ description: Test result
2685
+ content:
2686
+ application/json:
2687
+ schema:
2688
+ $ref: "#/components/schemas/TestBindingResponse"
2689
+ "404":
2690
+ $ref: "#/components/responses/NotFound"
2691
+
2692
+ /v1/agents/{agent_id}/execute:
2693
+ post:
2694
+ tags: [Execution Intents]
2695
+ summary: Execute an intent
2696
+ operationId: executeIntent
2697
+ parameters:
2698
+ - $ref: "#/components/parameters/AgentId"
2699
+ requestBody:
2700
+ required: true
2701
+ content:
2702
+ application/json:
2703
+ schema:
2704
+ $ref: "#/components/schemas/ExecuteRequest"
2705
+ responses:
2706
+ "200":
2707
+ description: Execution result
2708
+ content:
2709
+ application/json:
2710
+ schema:
2711
+ $ref: "#/components/schemas/ExecuteResponse"
2712
+ "400":
2713
+ $ref: "#/components/responses/BadRequest"
2714
+ "403":
2715
+ $ref: "#/components/responses/Forbidden"
2716
+
2717
+ /v1/agents/{agent_id}/executions:
2718
+ get:
2719
+ tags: [Execution Intents]
2720
+ summary: List execution events
2721
+ operationId: listExecutions
2722
+ parameters:
2723
+ - $ref: "#/components/parameters/AgentId"
2724
+ - name: limit
2725
+ in: query
2726
+ required: false
2727
+ schema:
2728
+ type: integer
2729
+ default: 50
2730
+ - name: offset
2731
+ in: query
2732
+ required: false
2733
+ schema:
2734
+ type: integer
2735
+ default: 0
2736
+ responses:
2737
+ "200":
2738
+ description: Execution event list
2739
+ content:
2740
+ application/json:
2741
+ schema:
2742
+ type: object
2743
+ required: [events]
2744
+ properties:
2745
+ events:
2746
+ type: array
2747
+ items:
2748
+ $ref: "#/components/schemas/ExecutionEventResponse"
2749
+ "403":
2750
+ $ref: "#/components/responses/Forbidden"
2751
+
2526
2752
  # ---------------------------------------------------------------------------
2527
2753
  # Chains
2528
2754
  # ---------------------------------------------------------------------------
@@ -7062,6 +7288,14 @@ components:
7062
7288
  description: Enable Shroud LLM Proxy for this agent
7063
7289
  shroud_config:
7064
7290
  $ref: "#/components/schemas/ShroudConfig"
7291
+ execution_intents_enabled:
7292
+ type: boolean
7293
+ default: false
7294
+ description: Enable Execution Intents (bindings and execute endpoint) for this agent
7295
+ execution_guardrails:
7296
+ type: object
7297
+ additionalProperties: true
7298
+ description: Guardrails applied to all execution intents for this agent
7065
7299
  tx_token_allowlist:
7066
7300
  type: array
7067
7301
  items:
@@ -7140,6 +7374,13 @@ components:
7140
7374
  description: Enable/disable Shroud LLM Proxy
7141
7375
  shroud_config:
7142
7376
  $ref: "#/components/schemas/ShroudConfig"
7377
+ execution_intents_enabled:
7378
+ type: boolean
7379
+ description: Enable/disable Execution Intents for this agent
7380
+ execution_guardrails:
7381
+ type: object
7382
+ additionalProperties: true
7383
+ description: Guardrails applied to all execution intents for this agent
7143
7384
  federation_enabled:
7144
7385
  type: boolean
7145
7386
  description: |
@@ -7279,6 +7520,13 @@ components:
7279
7520
  description: Whether this agent routes LLM traffic through the Shroud TEE proxy
7280
7521
  shroud_config:
7281
7522
  $ref: "#/components/schemas/ShroudConfig"
7523
+ execution_intents_enabled:
7524
+ type: boolean
7525
+ description: Whether Execution Intents (bindings and execute endpoint) are enabled for this agent
7526
+ execution_guardrails:
7527
+ type: object
7528
+ additionalProperties: true
7529
+ description: Guardrails applied to all execution intents for this agent
7282
7530
  federation_enabled:
7283
7531
  type: boolean
7284
7532
  description: |
@@ -11013,3 +11261,163 @@ components:
11013
11261
  type: array
11014
11262
  items:
11015
11263
  $ref: "#/components/schemas/Honeytoken"
11264
+
11265
+ # --- Execution Intents ---
11266
+
11267
+ CreateBindingRequest:
11268
+ type: object
11269
+ required: [name, binding_type]
11270
+ properties:
11271
+ name:
11272
+ type: string
11273
+ binding_type:
11274
+ type: string
11275
+ enum: [http, graphql, postgres, mysql, redis, grpc, smtp, cloud_sdk, s3, custom]
11276
+ config:
11277
+ type: object
11278
+ additionalProperties: true
11279
+ guardrails:
11280
+ type: object
11281
+ additionalProperties: true
11282
+ credential:
11283
+ type: object
11284
+ additionalProperties: true
11285
+
11286
+ UpdateBindingRequest:
11287
+ type: object
11288
+ properties:
11289
+ config:
11290
+ type: object
11291
+ additionalProperties: true
11292
+ guardrails:
11293
+ type: object
11294
+ additionalProperties: true
11295
+ is_active:
11296
+ type: boolean
11297
+ credential:
11298
+ type: object
11299
+ additionalProperties: true
11300
+
11301
+ BindingResponse:
11302
+ type: object
11303
+ required: [id, agent_id, binding_type, name, is_active, created_at, updated_at]
11304
+ properties:
11305
+ id:
11306
+ type: string
11307
+ format: uuid
11308
+ agent_id:
11309
+ type: string
11310
+ format: uuid
11311
+ binding_type:
11312
+ type: string
11313
+ enum: [http, graphql, postgres, mysql, redis, grpc, smtp, cloud_sdk, s3, custom]
11314
+ name:
11315
+ type: string
11316
+ config:
11317
+ type: object
11318
+ additionalProperties: true
11319
+ guardrails:
11320
+ type: object
11321
+ additionalProperties: true
11322
+ is_active:
11323
+ type: boolean
11324
+ created_at:
11325
+ type: string
11326
+ format: date-time
11327
+ updated_at:
11328
+ type: string
11329
+ format: date-time
11330
+
11331
+ TestBindingResponse:
11332
+ type: object
11333
+ required: [success, latency_ms]
11334
+ properties:
11335
+ success:
11336
+ type: boolean
11337
+ latency_ms:
11338
+ type: integer
11339
+ error:
11340
+ type: string
11341
+ nullable: true
11342
+
11343
+ ExecuteRequest:
11344
+ type: object
11345
+ required: [binding, intent_type, params]
11346
+ properties:
11347
+ binding:
11348
+ type: string
11349
+ description: Binding name or ID to execute against
11350
+ intent_type:
11351
+ type: string
11352
+ description: Type of execution intent (e.g. http_request, graphql_query)
11353
+ execution_mode:
11354
+ type: string
11355
+ enum: [vault, tee]
11356
+ default: vault
11357
+ description: Where execution runs (vault = server-side, tee = Shroud TEE)
11358
+ params:
11359
+ type: object
11360
+ additionalProperties: true
11361
+ description: Intent-specific parameters
11362
+
11363
+ ExecuteResponse:
11364
+ type: object
11365
+ required: [execution_id, status, duration_ms, redactions_applied]
11366
+ properties:
11367
+ execution_id:
11368
+ type: string
11369
+ format: uuid
11370
+ status:
11371
+ type: string
11372
+ result:
11373
+ type: object
11374
+ additionalProperties: true
11375
+ nullable: true
11376
+ error:
11377
+ type: string
11378
+ nullable: true
11379
+ duration_ms:
11380
+ type: integer
11381
+ redactions_applied:
11382
+ type: integer
11383
+
11384
+ ExecutionEventResponse:
11385
+ type: object
11386
+ required: [id, agent_id, binding_id, intent_type, execution_mode, status, duration_ms, redactions_applied, created_at]
11387
+ properties:
11388
+ id:
11389
+ type: string
11390
+ format: uuid
11391
+ agent_id:
11392
+ type: string
11393
+ format: uuid
11394
+ binding_id:
11395
+ type: string
11396
+ format: uuid
11397
+ intent_type:
11398
+ type: string
11399
+ execution_mode:
11400
+ type: string
11401
+ status:
11402
+ type: string
11403
+ request_summary:
11404
+ type: object
11405
+ additionalProperties: true
11406
+ nullable: true
11407
+ result_summary:
11408
+ type: object
11409
+ additionalProperties: true
11410
+ nullable: true
11411
+ error_message:
11412
+ type: string
11413
+ nullable: true
11414
+ duration_ms:
11415
+ type: integer
11416
+ cost_cents:
11417
+ type: integer
11418
+ nullable: true
11419
+ redactions_applied:
11420
+ type: integer
11421
+ created_at:
11422
+ type: string
11423
+ format: date-time
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.39.0",
4
- "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API \u2014 generate clients in any language",
3
+ "version": "0.40.0",
4
+ "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",