@1claw/openapi-spec 0.39.1 → 0.40.1

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 +738 -17
  2. package/openapi.yaml +440 -1
  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": "2.25.0",
5
+ "version": "2.27.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": {
@@ -3829,33 +3833,443 @@
3829
3833
  "operationId": "signIntent",
3830
3834
  "parameters": [
3831
3835
  {
3832
- "$ref": "#/components/parameters/AgentId"
3833
- }
3834
- ],
3835
- "requestBody": {
3836
- "required": true,
3837
- "content": {
3838
- "application/json": {
3839
- "schema": {
3840
- "$ref": "#/components/schemas/SignIntentRequest"
3841
- }
3836
+ "$ref": "#/components/parameters/AgentId"
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}/bindings/{binding_id}/rotate-credential": {
4120
+ "post": {
4121
+ "tags": [
4122
+ "Execution Intents"
4123
+ ],
4124
+ "summary": "Rotate a binding credential",
4125
+ "description": "Overwrite the stored credential for a binding without touching its config or guardrails. Human-only. The credential value is never returned.",
4126
+ "operationId": "rotateBindingCredential",
4127
+ "parameters": [
4128
+ {
4129
+ "$ref": "#/components/parameters/AgentId"
4130
+ },
4131
+ {
4132
+ "name": "binding_id",
4133
+ "in": "path",
4134
+ "required": true,
4135
+ "schema": {
4136
+ "type": "string",
4137
+ "format": "uuid"
4138
+ }
4139
+ }
4140
+ ],
4141
+ "requestBody": {
4142
+ "required": true,
4143
+ "content": {
4144
+ "application/json": {
4145
+ "schema": {
4146
+ "type": "object",
4147
+ "required": [
4148
+ "credential"
4149
+ ],
4150
+ "properties": {
4151
+ "credential": {
4152
+ "description": "New credential material (object or string). Stored server-side."
4153
+ }
4154
+ }
4155
+ }
4156
+ }
4157
+ }
4158
+ },
4159
+ "responses": {
4160
+ "200": {
4161
+ "description": "Updated binding",
4162
+ "content": {
4163
+ "application/json": {
4164
+ "schema": {
4165
+ "$ref": "#/components/schemas/BindingResponse"
4166
+ }
4167
+ }
4168
+ }
4169
+ },
4170
+ "403": {
4171
+ "$ref": "#/components/responses/Forbidden"
4172
+ },
4173
+ "404": {
4174
+ "$ref": "#/components/responses/NotFound"
4175
+ }
4176
+ }
4177
+ }
4178
+ },
4179
+ "/v1/agents/{agent_id}/execute": {
4180
+ "post": {
4181
+ "tags": [
4182
+ "Execution Intents"
4183
+ ],
4184
+ "summary": "Execute an intent",
4185
+ "operationId": "executeIntent",
4186
+ "parameters": [
4187
+ {
4188
+ "$ref": "#/components/parameters/AgentId"
4189
+ }
4190
+ ],
4191
+ "requestBody": {
4192
+ "required": true,
4193
+ "content": {
4194
+ "application/json": {
4195
+ "schema": {
4196
+ "$ref": "#/components/schemas/ExecuteRequest"
4197
+ }
4198
+ }
4199
+ }
4200
+ },
4201
+ "responses": {
4202
+ "200": {
4203
+ "description": "Execution result",
4204
+ "content": {
4205
+ "application/json": {
4206
+ "schema": {
4207
+ "$ref": "#/components/schemas/ExecuteResponse"
4208
+ }
4209
+ }
4210
+ }
4211
+ },
4212
+ "400": {
4213
+ "$ref": "#/components/responses/BadRequest"
4214
+ },
4215
+ "403": {
4216
+ "$ref": "#/components/responses/Forbidden"
4217
+ }
4218
+ }
4219
+ }
4220
+ },
4221
+ "/v1/agents/{agent_id}/executions": {
4222
+ "get": {
4223
+ "tags": [
4224
+ "Execution Intents"
4225
+ ],
4226
+ "summary": "List execution events",
4227
+ "operationId": "listExecutions",
4228
+ "parameters": [
4229
+ {
4230
+ "$ref": "#/components/parameters/AgentId"
4231
+ },
4232
+ {
4233
+ "name": "limit",
4234
+ "in": "query",
4235
+ "required": false,
4236
+ "schema": {
4237
+ "type": "integer",
4238
+ "default": 50
4239
+ }
4240
+ },
4241
+ {
4242
+ "name": "offset",
4243
+ "in": "query",
4244
+ "required": false,
4245
+ "schema": {
4246
+ "type": "integer",
4247
+ "default": 0
3842
4248
  }
3843
4249
  }
3844
- },
4250
+ ],
3845
4251
  "responses": {
3846
4252
  "200": {
3847
- "description": "Signed result",
4253
+ "description": "Execution event list",
3848
4254
  "content": {
3849
4255
  "application/json": {
3850
4256
  "schema": {
3851
- "$ref": "#/components/schemas/SignIntentResponse"
4257
+ "type": "object",
4258
+ "required": [
4259
+ "events"
4260
+ ],
4261
+ "properties": {
4262
+ "events": {
4263
+ "type": "array",
4264
+ "items": {
4265
+ "$ref": "#/components/schemas/ExecutionEventResponse"
4266
+ }
4267
+ }
4268
+ }
3852
4269
  }
3853
4270
  }
3854
4271
  }
3855
4272
  },
3856
- "400": {
3857
- "$ref": "#/components/responses/BadRequest"
3858
- },
3859
4273
  "403": {
3860
4274
  "$ref": "#/components/responses/Forbidden"
3861
4275
  }
@@ -10949,6 +11363,16 @@
10949
11363
  "shroud_config": {
10950
11364
  "$ref": "#/components/schemas/ShroudConfig"
10951
11365
  },
11366
+ "execution_intents_enabled": {
11367
+ "type": "boolean",
11368
+ "default": false,
11369
+ "description": "Enable Execution Intents (bindings and execute endpoint) for this agent"
11370
+ },
11371
+ "execution_guardrails": {
11372
+ "type": "object",
11373
+ "additionalProperties": true,
11374
+ "description": "Guardrails applied to all execution intents for this agent"
11375
+ },
10952
11376
  "tx_token_allowlist": {
10953
11377
  "type": "array",
10954
11378
  "items": {
@@ -11051,6 +11475,15 @@
11051
11475
  "shroud_config": {
11052
11476
  "$ref": "#/components/schemas/ShroudConfig"
11053
11477
  },
11478
+ "execution_intents_enabled": {
11479
+ "type": "boolean",
11480
+ "description": "Enable/disable Execution Intents for this agent"
11481
+ },
11482
+ "execution_guardrails": {
11483
+ "type": "object",
11484
+ "additionalProperties": true,
11485
+ "description": "Guardrails applied to all execution intents for this agent"
11486
+ },
11054
11487
  "federation_enabled": {
11055
11488
  "type": "boolean",
11056
11489
  "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"
@@ -11221,6 +11654,15 @@
11221
11654
  "shroud_config": {
11222
11655
  "$ref": "#/components/schemas/ShroudConfig"
11223
11656
  },
11657
+ "execution_intents_enabled": {
11658
+ "type": "boolean",
11659
+ "description": "Whether Execution Intents (bindings and execute endpoint) are enabled for this agent"
11660
+ },
11661
+ "execution_guardrails": {
11662
+ "type": "object",
11663
+ "additionalProperties": true,
11664
+ "description": "Guardrails applied to all execution intents for this agent"
11665
+ },
11224
11666
  "federation_enabled": {
11225
11667
  "type": "boolean",
11226
11668
  "description": "Whether this agent may mint OIDC federation tokens via\nPOST /v1/auth/federated-token. False by default.\n"
@@ -16655,6 +17097,285 @@
16655
17097
  }
16656
17098
  }
16657
17099
  }
17100
+ },
17101
+ "CreateBindingRequest": {
17102
+ "type": "object",
17103
+ "required": [
17104
+ "name",
17105
+ "binding_type"
17106
+ ],
17107
+ "properties": {
17108
+ "name": {
17109
+ "type": "string"
17110
+ },
17111
+ "binding_type": {
17112
+ "type": "string",
17113
+ "enum": [
17114
+ "http",
17115
+ "graphql",
17116
+ "postgres",
17117
+ "mysql",
17118
+ "redis",
17119
+ "grpc",
17120
+ "smtp",
17121
+ "cloud_sdk",
17122
+ "s3",
17123
+ "custom"
17124
+ ]
17125
+ },
17126
+ "config": {
17127
+ "type": "object",
17128
+ "additionalProperties": true
17129
+ },
17130
+ "guardrails": {
17131
+ "type": "object",
17132
+ "additionalProperties": true
17133
+ },
17134
+ "credential": {
17135
+ "type": "object",
17136
+ "additionalProperties": true
17137
+ }
17138
+ }
17139
+ },
17140
+ "UpdateBindingRequest": {
17141
+ "type": "object",
17142
+ "properties": {
17143
+ "config": {
17144
+ "type": "object",
17145
+ "additionalProperties": true
17146
+ },
17147
+ "guardrails": {
17148
+ "type": "object",
17149
+ "additionalProperties": true
17150
+ },
17151
+ "is_active": {
17152
+ "type": "boolean"
17153
+ },
17154
+ "credential": {
17155
+ "type": "object",
17156
+ "additionalProperties": true
17157
+ }
17158
+ }
17159
+ },
17160
+ "BindingResponse": {
17161
+ "type": "object",
17162
+ "required": [
17163
+ "id",
17164
+ "agent_id",
17165
+ "binding_type",
17166
+ "name",
17167
+ "is_active",
17168
+ "created_at",
17169
+ "updated_at"
17170
+ ],
17171
+ "properties": {
17172
+ "id": {
17173
+ "type": "string",
17174
+ "format": "uuid"
17175
+ },
17176
+ "agent_id": {
17177
+ "type": "string",
17178
+ "format": "uuid"
17179
+ },
17180
+ "binding_type": {
17181
+ "type": "string",
17182
+ "enum": [
17183
+ "http",
17184
+ "graphql",
17185
+ "postgres",
17186
+ "mysql",
17187
+ "redis",
17188
+ "grpc",
17189
+ "smtp",
17190
+ "cloud_sdk",
17191
+ "s3",
17192
+ "custom"
17193
+ ]
17194
+ },
17195
+ "name": {
17196
+ "type": "string"
17197
+ },
17198
+ "config": {
17199
+ "type": "object",
17200
+ "additionalProperties": true
17201
+ },
17202
+ "guardrails": {
17203
+ "type": "object",
17204
+ "additionalProperties": true
17205
+ },
17206
+ "is_active": {
17207
+ "type": "boolean"
17208
+ },
17209
+ "credential_set": {
17210
+ "type": "boolean",
17211
+ "description": "Whether a credential is stored for this binding. The value itself is never returned."
17212
+ },
17213
+ "created_at": {
17214
+ "type": "string",
17215
+ "format": "date-time"
17216
+ },
17217
+ "updated_at": {
17218
+ "type": "string",
17219
+ "format": "date-time"
17220
+ }
17221
+ }
17222
+ },
17223
+ "TestBindingResponse": {
17224
+ "type": "object",
17225
+ "required": [
17226
+ "success",
17227
+ "latency_ms"
17228
+ ],
17229
+ "properties": {
17230
+ "success": {
17231
+ "type": "boolean"
17232
+ },
17233
+ "latency_ms": {
17234
+ "type": "integer"
17235
+ },
17236
+ "error": {
17237
+ "type": "string",
17238
+ "nullable": true
17239
+ }
17240
+ }
17241
+ },
17242
+ "ExecuteRequest": {
17243
+ "type": "object",
17244
+ "required": [
17245
+ "binding",
17246
+ "intent_type",
17247
+ "params"
17248
+ ],
17249
+ "properties": {
17250
+ "binding": {
17251
+ "type": "string",
17252
+ "description": "Binding name or ID to execute against"
17253
+ },
17254
+ "intent_type": {
17255
+ "type": "string",
17256
+ "description": "Type of execution intent (e.g. http_request, graphql_query)"
17257
+ },
17258
+ "execution_mode": {
17259
+ "type": "string",
17260
+ "enum": [
17261
+ "vault",
17262
+ "tee"
17263
+ ],
17264
+ "default": "vault",
17265
+ "description": "Where execution runs (vault = server-side, tee = Shroud TEE)"
17266
+ },
17267
+ "params": {
17268
+ "type": "object",
17269
+ "additionalProperties": true,
17270
+ "description": "Intent-specific parameters"
17271
+ }
17272
+ }
17273
+ },
17274
+ "ExecuteResponse": {
17275
+ "type": "object",
17276
+ "required": [
17277
+ "execution_id",
17278
+ "status",
17279
+ "duration_ms",
17280
+ "redactions_applied"
17281
+ ],
17282
+ "properties": {
17283
+ "execution_id": {
17284
+ "type": "string",
17285
+ "format": "uuid"
17286
+ },
17287
+ "status": {
17288
+ "type": "string"
17289
+ },
17290
+ "result": {
17291
+ "type": "object",
17292
+ "additionalProperties": true,
17293
+ "nullable": true
17294
+ },
17295
+ "error": {
17296
+ "type": "string",
17297
+ "nullable": true
17298
+ },
17299
+ "duration_ms": {
17300
+ "type": "integer"
17301
+ },
17302
+ "redactions_applied": {
17303
+ "type": "integer"
17304
+ },
17305
+ "execution_surface": {
17306
+ "type": "string",
17307
+ "enum": [
17308
+ "vault",
17309
+ "tee"
17310
+ ],
17311
+ "description": "Where the intent actually ran. Reported truthfully — never claims TEE when it ran in the Vault."
17312
+ }
17313
+ }
17314
+ },
17315
+ "ExecutionEventResponse": {
17316
+ "type": "object",
17317
+ "required": [
17318
+ "id",
17319
+ "agent_id",
17320
+ "binding_id",
17321
+ "intent_type",
17322
+ "execution_mode",
17323
+ "status",
17324
+ "duration_ms",
17325
+ "redactions_applied",
17326
+ "created_at"
17327
+ ],
17328
+ "properties": {
17329
+ "id": {
17330
+ "type": "string",
17331
+ "format": "uuid"
17332
+ },
17333
+ "agent_id": {
17334
+ "type": "string",
17335
+ "format": "uuid"
17336
+ },
17337
+ "binding_id": {
17338
+ "type": "string",
17339
+ "format": "uuid"
17340
+ },
17341
+ "intent_type": {
17342
+ "type": "string"
17343
+ },
17344
+ "execution_mode": {
17345
+ "type": "string"
17346
+ },
17347
+ "status": {
17348
+ "type": "string"
17349
+ },
17350
+ "request_summary": {
17351
+ "type": "object",
17352
+ "additionalProperties": true,
17353
+ "nullable": true
17354
+ },
17355
+ "result_summary": {
17356
+ "type": "object",
17357
+ "additionalProperties": true,
17358
+ "nullable": true
17359
+ },
17360
+ "error_message": {
17361
+ "type": "string",
17362
+ "nullable": true
17363
+ },
17364
+ "duration_ms": {
17365
+ "type": "integer"
17366
+ },
17367
+ "cost_cents": {
17368
+ "type": "integer",
17369
+ "nullable": true
17370
+ },
17371
+ "redactions_applied": {
17372
+ "type": "integer"
17373
+ },
17374
+ "created_at": {
17375
+ "type": "string",
17376
+ "format": "date-time"
17377
+ }
17378
+ }
16658
17379
  }
16659
17380
  }
16660
17381
  }
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.27.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
@@ -2535,6 +2537,254 @@ paths:
2535
2537
  "403":
2536
2538
  $ref: "#/components/responses/Forbidden"
2537
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}/bindings/{binding_id}/rotate-credential:
2693
+ post:
2694
+ tags: [Execution Intents]
2695
+ summary: Rotate a binding credential
2696
+ description: Overwrite the stored credential for a binding without touching its config or guardrails. Human-only. The credential value is never returned.
2697
+ operationId: rotateBindingCredential
2698
+ parameters:
2699
+ - $ref: "#/components/parameters/AgentId"
2700
+ - name: binding_id
2701
+ in: path
2702
+ required: true
2703
+ schema:
2704
+ type: string
2705
+ format: uuid
2706
+ requestBody:
2707
+ required: true
2708
+ content:
2709
+ application/json:
2710
+ schema:
2711
+ type: object
2712
+ required: [credential]
2713
+ properties:
2714
+ credential:
2715
+ description: New credential material (object or string). Stored server-side.
2716
+ responses:
2717
+ "200":
2718
+ description: Updated binding
2719
+ content:
2720
+ application/json:
2721
+ schema:
2722
+ $ref: "#/components/schemas/BindingResponse"
2723
+ "403":
2724
+ $ref: "#/components/responses/Forbidden"
2725
+ "404":
2726
+ $ref: "#/components/responses/NotFound"
2727
+
2728
+ /v1/agents/{agent_id}/execute:
2729
+ post:
2730
+ tags: [Execution Intents]
2731
+ summary: Execute an intent
2732
+ operationId: executeIntent
2733
+ parameters:
2734
+ - $ref: "#/components/parameters/AgentId"
2735
+ requestBody:
2736
+ required: true
2737
+ content:
2738
+ application/json:
2739
+ schema:
2740
+ $ref: "#/components/schemas/ExecuteRequest"
2741
+ responses:
2742
+ "200":
2743
+ description: Execution result
2744
+ content:
2745
+ application/json:
2746
+ schema:
2747
+ $ref: "#/components/schemas/ExecuteResponse"
2748
+ "400":
2749
+ $ref: "#/components/responses/BadRequest"
2750
+ "403":
2751
+ $ref: "#/components/responses/Forbidden"
2752
+
2753
+ /v1/agents/{agent_id}/executions:
2754
+ get:
2755
+ tags: [Execution Intents]
2756
+ summary: List execution events
2757
+ operationId: listExecutions
2758
+ parameters:
2759
+ - $ref: "#/components/parameters/AgentId"
2760
+ - name: limit
2761
+ in: query
2762
+ required: false
2763
+ schema:
2764
+ type: integer
2765
+ default: 50
2766
+ - name: offset
2767
+ in: query
2768
+ required: false
2769
+ schema:
2770
+ type: integer
2771
+ default: 0
2772
+ responses:
2773
+ "200":
2774
+ description: Execution event list
2775
+ content:
2776
+ application/json:
2777
+ schema:
2778
+ type: object
2779
+ required: [events]
2780
+ properties:
2781
+ events:
2782
+ type: array
2783
+ items:
2784
+ $ref: "#/components/schemas/ExecutionEventResponse"
2785
+ "403":
2786
+ $ref: "#/components/responses/Forbidden"
2787
+
2538
2788
  # ---------------------------------------------------------------------------
2539
2789
  # Chains
2540
2790
  # ---------------------------------------------------------------------------
@@ -7074,6 +7324,14 @@ components:
7074
7324
  description: Enable Shroud LLM Proxy for this agent
7075
7325
  shroud_config:
7076
7326
  $ref: "#/components/schemas/ShroudConfig"
7327
+ execution_intents_enabled:
7328
+ type: boolean
7329
+ default: false
7330
+ description: Enable Execution Intents (bindings and execute endpoint) for this agent
7331
+ execution_guardrails:
7332
+ type: object
7333
+ additionalProperties: true
7334
+ description: Guardrails applied to all execution intents for this agent
7077
7335
  tx_token_allowlist:
7078
7336
  type: array
7079
7337
  items:
@@ -7152,6 +7410,13 @@ components:
7152
7410
  description: Enable/disable Shroud LLM Proxy
7153
7411
  shroud_config:
7154
7412
  $ref: "#/components/schemas/ShroudConfig"
7413
+ execution_intents_enabled:
7414
+ type: boolean
7415
+ description: Enable/disable Execution Intents for this agent
7416
+ execution_guardrails:
7417
+ type: object
7418
+ additionalProperties: true
7419
+ description: Guardrails applied to all execution intents for this agent
7155
7420
  federation_enabled:
7156
7421
  type: boolean
7157
7422
  description: |
@@ -7291,6 +7556,13 @@ components:
7291
7556
  description: Whether this agent routes LLM traffic through the Shroud TEE proxy
7292
7557
  shroud_config:
7293
7558
  $ref: "#/components/schemas/ShroudConfig"
7559
+ execution_intents_enabled:
7560
+ type: boolean
7561
+ description: Whether Execution Intents (bindings and execute endpoint) are enabled for this agent
7562
+ execution_guardrails:
7563
+ type: object
7564
+ additionalProperties: true
7565
+ description: Guardrails applied to all execution intents for this agent
7294
7566
  federation_enabled:
7295
7567
  type: boolean
7296
7568
  description: |
@@ -11025,3 +11297,170 @@ components:
11025
11297
  type: array
11026
11298
  items:
11027
11299
  $ref: "#/components/schemas/Honeytoken"
11300
+
11301
+ # --- Execution Intents ---
11302
+
11303
+ CreateBindingRequest:
11304
+ type: object
11305
+ required: [name, binding_type]
11306
+ properties:
11307
+ name:
11308
+ type: string
11309
+ binding_type:
11310
+ type: string
11311
+ enum: [http, graphql, postgres, mysql, redis, grpc, smtp, cloud_sdk, s3, custom]
11312
+ config:
11313
+ type: object
11314
+ additionalProperties: true
11315
+ guardrails:
11316
+ type: object
11317
+ additionalProperties: true
11318
+ credential:
11319
+ type: object
11320
+ additionalProperties: true
11321
+
11322
+ UpdateBindingRequest:
11323
+ type: object
11324
+ properties:
11325
+ config:
11326
+ type: object
11327
+ additionalProperties: true
11328
+ guardrails:
11329
+ type: object
11330
+ additionalProperties: true
11331
+ is_active:
11332
+ type: boolean
11333
+ credential:
11334
+ type: object
11335
+ additionalProperties: true
11336
+
11337
+ BindingResponse:
11338
+ type: object
11339
+ required: [id, agent_id, binding_type, name, is_active, created_at, updated_at]
11340
+ properties:
11341
+ id:
11342
+ type: string
11343
+ format: uuid
11344
+ agent_id:
11345
+ type: string
11346
+ format: uuid
11347
+ binding_type:
11348
+ type: string
11349
+ enum: [http, graphql, postgres, mysql, redis, grpc, smtp, cloud_sdk, s3, custom]
11350
+ name:
11351
+ type: string
11352
+ config:
11353
+ type: object
11354
+ additionalProperties: true
11355
+ guardrails:
11356
+ type: object
11357
+ additionalProperties: true
11358
+ is_active:
11359
+ type: boolean
11360
+ credential_set:
11361
+ type: boolean
11362
+ description: Whether a credential is stored for this binding. The value itself is never returned.
11363
+ created_at:
11364
+ type: string
11365
+ format: date-time
11366
+ updated_at:
11367
+ type: string
11368
+ format: date-time
11369
+
11370
+ TestBindingResponse:
11371
+ type: object
11372
+ required: [success, latency_ms]
11373
+ properties:
11374
+ success:
11375
+ type: boolean
11376
+ latency_ms:
11377
+ type: integer
11378
+ error:
11379
+ type: string
11380
+ nullable: true
11381
+
11382
+ ExecuteRequest:
11383
+ type: object
11384
+ required: [binding, intent_type, params]
11385
+ properties:
11386
+ binding:
11387
+ type: string
11388
+ description: Binding name or ID to execute against
11389
+ intent_type:
11390
+ type: string
11391
+ description: Type of execution intent (e.g. http_request, graphql_query)
11392
+ execution_mode:
11393
+ type: string
11394
+ enum: [vault, tee]
11395
+ default: vault
11396
+ description: Where execution runs (vault = server-side, tee = Shroud TEE)
11397
+ params:
11398
+ type: object
11399
+ additionalProperties: true
11400
+ description: Intent-specific parameters
11401
+
11402
+ ExecuteResponse:
11403
+ type: object
11404
+ required: [execution_id, status, duration_ms, redactions_applied]
11405
+ properties:
11406
+ execution_id:
11407
+ type: string
11408
+ format: uuid
11409
+ status:
11410
+ type: string
11411
+ result:
11412
+ type: object
11413
+ additionalProperties: true
11414
+ nullable: true
11415
+ error:
11416
+ type: string
11417
+ nullable: true
11418
+ duration_ms:
11419
+ type: integer
11420
+ redactions_applied:
11421
+ type: integer
11422
+ execution_surface:
11423
+ type: string
11424
+ enum: [vault, tee]
11425
+ description: Where the intent actually ran. Reported truthfully — never claims TEE when it ran in the Vault.
11426
+
11427
+ ExecutionEventResponse:
11428
+ type: object
11429
+ required: [id, agent_id, binding_id, intent_type, execution_mode, status, duration_ms, redactions_applied, created_at]
11430
+ properties:
11431
+ id:
11432
+ type: string
11433
+ format: uuid
11434
+ agent_id:
11435
+ type: string
11436
+ format: uuid
11437
+ binding_id:
11438
+ type: string
11439
+ format: uuid
11440
+ intent_type:
11441
+ type: string
11442
+ execution_mode:
11443
+ type: string
11444
+ status:
11445
+ type: string
11446
+ request_summary:
11447
+ type: object
11448
+ additionalProperties: true
11449
+ nullable: true
11450
+ result_summary:
11451
+ type: object
11452
+ additionalProperties: true
11453
+ nullable: true
11454
+ error_message:
11455
+ type: string
11456
+ nullable: true
11457
+ duration_ms:
11458
+ type: integer
11459
+ cost_cents:
11460
+ type: integer
11461
+ nullable: true
11462
+ redactions_applied:
11463
+ type: integer
11464
+ created_at:
11465
+ type: string
11466
+ format: date-time
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.39.1",
3
+ "version": "0.40.1",
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": {