@1claw/openapi-spec 0.61.11 → 0.61.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/openapi.json +262 -1
- package/openapi.yaml +136 -1
- 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.61.
|
|
5
|
+
"version": "0.61.13",
|
|
6
6
|
"description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging. Automations (workflow_spec,\nwebhook tokens, event triggers, Assist), cloud runtimes with\ninteractive shell sessions, agent memory, and discovery.\n\n## Domains\n\n`api.1claw.co` is canonical: it is the OIDC issuer, the `aud` the API\nmints, and the first entry in `servers` — a generated client takes its\nbase URL from there, and the previous ordering pointed every SDK at the\ndomain the issuer had already left. `api.1claw.xyz` still answers and is\nstill accepted on token validation, because tokens minted before the\nmove carry it; it is never minted now.\n\nOne deliberate exception: the Shroud attestation identity token is\nrequested from GCP with `audience: https://api.1claw.xyz`, so\n`/v1/shroud/attestation` reports that as its `expected_audience`. That\nis accurate rather than stale — the audience is a verification contract\nwith anyone already checking the token, and moving it is a breaking\nchange for them, not a rename.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
|
|
7
7
|
"contact": {
|
|
8
8
|
"email": "ops@1claw.co"
|
|
@@ -5886,6 +5886,184 @@
|
|
|
5886
5886
|
}
|
|
5887
5887
|
}
|
|
5888
5888
|
},
|
|
5889
|
+
"/v1/admin/agents/{agent_id}/reports/dismiss": {
|
|
5890
|
+
"post": {
|
|
5891
|
+
"tags": [
|
|
5892
|
+
"Admin"
|
|
5893
|
+
],
|
|
5894
|
+
"summary": "Dismiss every open report on a directory listing",
|
|
5895
|
+
"description": "Platform admins only. Clears the listing's report flag and recounts. The review queue is a platform function — an org dismissing reports against its own agent is the abuse the queue exists to catch.\n",
|
|
5896
|
+
"operationId": "adminDismissAgentReports",
|
|
5897
|
+
"parameters": [
|
|
5898
|
+
{
|
|
5899
|
+
"name": "agent_id",
|
|
5900
|
+
"in": "path",
|
|
5901
|
+
"required": true,
|
|
5902
|
+
"schema": {
|
|
5903
|
+
"type": "string",
|
|
5904
|
+
"format": "uuid"
|
|
5905
|
+
}
|
|
5906
|
+
}
|
|
5907
|
+
],
|
|
5908
|
+
"responses": {
|
|
5909
|
+
"200": {
|
|
5910
|
+
"description": "Reports dismissed",
|
|
5911
|
+
"content": {
|
|
5912
|
+
"application/json": {
|
|
5913
|
+
"schema": {
|
|
5914
|
+
"type": "object",
|
|
5915
|
+
"properties": {
|
|
5916
|
+
"agent_id": {
|
|
5917
|
+
"type": "string",
|
|
5918
|
+
"format": "uuid"
|
|
5919
|
+
},
|
|
5920
|
+
"dismissed": {
|
|
5921
|
+
"type": "integer"
|
|
5922
|
+
}
|
|
5923
|
+
}
|
|
5924
|
+
}
|
|
5925
|
+
}
|
|
5926
|
+
}
|
|
5927
|
+
},
|
|
5928
|
+
"403": {
|
|
5929
|
+
"description": "Not a platform admin"
|
|
5930
|
+
},
|
|
5931
|
+
"404": {
|
|
5932
|
+
"description": "Agent not found"
|
|
5933
|
+
}
|
|
5934
|
+
}
|
|
5935
|
+
}
|
|
5936
|
+
},
|
|
5937
|
+
"/v1/admin/agents/{agent_id}/verification-tier": {
|
|
5938
|
+
"put": {
|
|
5939
|
+
"tags": [
|
|
5940
|
+
"Admin"
|
|
5941
|
+
],
|
|
5942
|
+
"summary": "Set a directory listing's verification tier",
|
|
5943
|
+
"description": "Platform admins only. Unknown tiers are refused rather than demoted to `unverified`.",
|
|
5944
|
+
"operationId": "adminSetAgentVerificationTier",
|
|
5945
|
+
"parameters": [
|
|
5946
|
+
{
|
|
5947
|
+
"name": "agent_id",
|
|
5948
|
+
"in": "path",
|
|
5949
|
+
"required": true,
|
|
5950
|
+
"schema": {
|
|
5951
|
+
"type": "string",
|
|
5952
|
+
"format": "uuid"
|
|
5953
|
+
}
|
|
5954
|
+
}
|
|
5955
|
+
],
|
|
5956
|
+
"requestBody": {
|
|
5957
|
+
"required": true,
|
|
5958
|
+
"content": {
|
|
5959
|
+
"application/json": {
|
|
5960
|
+
"schema": {
|
|
5961
|
+
"type": "object",
|
|
5962
|
+
"required": [
|
|
5963
|
+
"tier"
|
|
5964
|
+
],
|
|
5965
|
+
"properties": {
|
|
5966
|
+
"tier": {
|
|
5967
|
+
"type": "string",
|
|
5968
|
+
"enum": [
|
|
5969
|
+
"unverified",
|
|
5970
|
+
"platform_reviewed",
|
|
5971
|
+
"identity_verified",
|
|
5972
|
+
"enterprise"
|
|
5973
|
+
]
|
|
5974
|
+
},
|
|
5975
|
+
"notes": {
|
|
5976
|
+
"type": "string",
|
|
5977
|
+
"nullable": true,
|
|
5978
|
+
"description": "Internal review notes",
|
|
5979
|
+
"never public": null
|
|
5980
|
+
}
|
|
5981
|
+
}
|
|
5982
|
+
}
|
|
5983
|
+
}
|
|
5984
|
+
}
|
|
5985
|
+
},
|
|
5986
|
+
"responses": {
|
|
5987
|
+
"200": {
|
|
5988
|
+
"description": "Tier set",
|
|
5989
|
+
"content": {
|
|
5990
|
+
"application/json": {
|
|
5991
|
+
"schema": {
|
|
5992
|
+
"type": "object",
|
|
5993
|
+
"properties": {
|
|
5994
|
+
"agent_id": {
|
|
5995
|
+
"type": "string",
|
|
5996
|
+
"format": "uuid"
|
|
5997
|
+
},
|
|
5998
|
+
"tier": {
|
|
5999
|
+
"type": "string"
|
|
6000
|
+
}
|
|
6001
|
+
}
|
|
6002
|
+
}
|
|
6003
|
+
}
|
|
6004
|
+
}
|
|
6005
|
+
},
|
|
6006
|
+
"400": {
|
|
6007
|
+
"description": "Unknown tier"
|
|
6008
|
+
},
|
|
6009
|
+
"403": {
|
|
6010
|
+
"description": "Not a platform admin"
|
|
6011
|
+
},
|
|
6012
|
+
"404": {
|
|
6013
|
+
"description": "Agent not found"
|
|
6014
|
+
}
|
|
6015
|
+
}
|
|
6016
|
+
}
|
|
6017
|
+
},
|
|
6018
|
+
"/v1/admin/kms/relevel": {
|
|
6019
|
+
"post": {
|
|
6020
|
+
"tags": [
|
|
6021
|
+
"Admin"
|
|
6022
|
+
],
|
|
6023
|
+
"summary": "Move orgs onto the KEK protection level their tier and payment call for",
|
|
6024
|
+
"description": "Platform admins only. Examines up to `limit` orgs whose stored KEK level disagrees with the target (Pro earns HSM only with an active subscription; Team, Business and Enterprise keep HSM; the platform org is always software) and starts a migration for each: a new key at the right level, every secret and every org-scoped row re-wrapped, the old key released from the keep set 30 days after completion. The nightly consolidation job runs the same pass, 25 orgs at a time.",
|
|
6025
|
+
"operationId": "adminKmsRelevel",
|
|
6026
|
+
"parameters": [
|
|
6027
|
+
{
|
|
6028
|
+
"name": "limit",
|
|
6029
|
+
"in": "query",
|
|
6030
|
+
"required": false,
|
|
6031
|
+
"schema": {
|
|
6032
|
+
"type": "integer",
|
|
6033
|
+
"minimum": 1,
|
|
6034
|
+
"maximum": 500,
|
|
6035
|
+
"default": 25
|
|
6036
|
+
}
|
|
6037
|
+
}
|
|
6038
|
+
],
|
|
6039
|
+
"responses": {
|
|
6040
|
+
"200": {
|
|
6041
|
+
"description": "Orgs examined and migrations started",
|
|
6042
|
+
"content": {
|
|
6043
|
+
"application/json": {
|
|
6044
|
+
"schema": {
|
|
6045
|
+
"type": "object",
|
|
6046
|
+
"properties": {
|
|
6047
|
+
"examined": {
|
|
6048
|
+
"type": "integer"
|
|
6049
|
+
},
|
|
6050
|
+
"migrations_started": {
|
|
6051
|
+
"type": "integer"
|
|
6052
|
+
},
|
|
6053
|
+
"limit": {
|
|
6054
|
+
"type": "integer"
|
|
6055
|
+
}
|
|
6056
|
+
}
|
|
6057
|
+
}
|
|
6058
|
+
}
|
|
6059
|
+
}
|
|
6060
|
+
},
|
|
6061
|
+
"403": {
|
|
6062
|
+
"description": "Not a platform admin"
|
|
6063
|
+
}
|
|
6064
|
+
}
|
|
6065
|
+
}
|
|
6066
|
+
},
|
|
5889
6067
|
"/v1/admin/chains": {
|
|
5890
6068
|
"get": {
|
|
5891
6069
|
"tags": [
|
|
@@ -15471,6 +15649,89 @@
|
|
|
15471
15649
|
}
|
|
15472
15650
|
}
|
|
15473
15651
|
},
|
|
15652
|
+
"/v1/agents/{agent_id}/pay/grants/prepare": {
|
|
15653
|
+
"post": {
|
|
15654
|
+
"tags": [
|
|
15655
|
+
"Pay"
|
|
15656
|
+
],
|
|
15657
|
+
"summary": "Prepare a spending grant (step one of two)",
|
|
15658
|
+
"description": "Fixes the grant terms and a server-side nonce and returns the `grant_digest` the person must assert over with a passkey (`action=x402_grant`). Then call `POST .../pay/grants` with the same terms, the digest, and the passkey token. Preparations are single-use, bound to the caller and agent, and expire after ten minutes. The nonce never leaves the server, so the digest cannot be recomputed for different terms. Human callers only; terms are validated against the agent's maximum cap and window here as well.\n",
|
|
15659
|
+
"operationId": "preparePayGrant",
|
|
15660
|
+
"parameters": [
|
|
15661
|
+
{
|
|
15662
|
+
"$ref": "#/components/parameters/AgentId"
|
|
15663
|
+
}
|
|
15664
|
+
],
|
|
15665
|
+
"requestBody": {
|
|
15666
|
+
"required": true,
|
|
15667
|
+
"content": {
|
|
15668
|
+
"application/json": {
|
|
15669
|
+
"schema": {
|
|
15670
|
+
"type": "object",
|
|
15671
|
+
"required": [
|
|
15672
|
+
"cap_usd",
|
|
15673
|
+
"ttl_secs"
|
|
15674
|
+
],
|
|
15675
|
+
"properties": {
|
|
15676
|
+
"cap_usd": {
|
|
15677
|
+
"type": "string"
|
|
15678
|
+
},
|
|
15679
|
+
"ttl_secs": {
|
|
15680
|
+
"type": "integer"
|
|
15681
|
+
},
|
|
15682
|
+
"allowed_paytos": {
|
|
15683
|
+
"type": "array",
|
|
15684
|
+
"items": {
|
|
15685
|
+
"type": "string"
|
|
15686
|
+
},
|
|
15687
|
+
"nullable": true
|
|
15688
|
+
}
|
|
15689
|
+
}
|
|
15690
|
+
}
|
|
15691
|
+
}
|
|
15692
|
+
}
|
|
15693
|
+
},
|
|
15694
|
+
"responses": {
|
|
15695
|
+
"200": {
|
|
15696
|
+
"description": "The digest to assert over",
|
|
15697
|
+
"content": {
|
|
15698
|
+
"application/json": {
|
|
15699
|
+
"schema": {
|
|
15700
|
+
"type": "object",
|
|
15701
|
+
"required": [
|
|
15702
|
+
"grant_digest",
|
|
15703
|
+
"action",
|
|
15704
|
+
"expires_in_secs"
|
|
15705
|
+
],
|
|
15706
|
+
"properties": {
|
|
15707
|
+
"grant_digest": {
|
|
15708
|
+
"type": "string"
|
|
15709
|
+
},
|
|
15710
|
+
"action": {
|
|
15711
|
+
"type": "string",
|
|
15712
|
+
"enum": [
|
|
15713
|
+
"x402_grant"
|
|
15714
|
+
]
|
|
15715
|
+
},
|
|
15716
|
+
"expires_in_secs": {
|
|
15717
|
+
"type": "integer"
|
|
15718
|
+
}
|
|
15719
|
+
}
|
|
15720
|
+
}
|
|
15721
|
+
}
|
|
15722
|
+
}
|
|
15723
|
+
},
|
|
15724
|
+
"400": {
|
|
15725
|
+
"description": "Invalid terms"
|
|
15726
|
+
},
|
|
15727
|
+
"403": {
|
|
15728
|
+
"description": "Not a human caller",
|
|
15729
|
+
"grant mode disabled": null,
|
|
15730
|
+
"or over the agent's maximum": null
|
|
15731
|
+
}
|
|
15732
|
+
}
|
|
15733
|
+
}
|
|
15734
|
+
},
|
|
15474
15735
|
"/v1/agents/{agent_id}/pay/grants": {
|
|
15475
15736
|
"post": {
|
|
15476
15737
|
"tags": [
|
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: "0.61.
|
|
5
|
+
version: "0.61.13"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -3846,6 +3846,97 @@ paths:
|
|
|
3846
3846
|
"404":
|
|
3847
3847
|
$ref: "#/components/responses/NotFound"
|
|
3848
3848
|
|
|
3849
|
+
/v1/admin/agents/{agent_id}/reports/dismiss:
|
|
3850
|
+
post:
|
|
3851
|
+
tags: [Admin]
|
|
3852
|
+
summary: Dismiss every open report on a directory listing
|
|
3853
|
+
description: >
|
|
3854
|
+
Platform admins only. Clears the listing's report flag and
|
|
3855
|
+
recounts. The review queue is a platform function — an org
|
|
3856
|
+
dismissing reports against its own agent is the abuse the queue
|
|
3857
|
+
exists to catch.
|
|
3858
|
+
operationId: adminDismissAgentReports
|
|
3859
|
+
parameters:
|
|
3860
|
+
- name: agent_id
|
|
3861
|
+
in: path
|
|
3862
|
+
required: true
|
|
3863
|
+
schema: { type: string, format: uuid }
|
|
3864
|
+
responses:
|
|
3865
|
+
'200':
|
|
3866
|
+
description: Reports dismissed
|
|
3867
|
+
content:
|
|
3868
|
+
application/json:
|
|
3869
|
+
schema:
|
|
3870
|
+
type: object
|
|
3871
|
+
properties:
|
|
3872
|
+
agent_id: { type: string, format: uuid }
|
|
3873
|
+
dismissed: { type: integer }
|
|
3874
|
+
'403': { description: Not a platform admin }
|
|
3875
|
+
'404': { description: Agent not found }
|
|
3876
|
+
/v1/admin/agents/{agent_id}/verification-tier:
|
|
3877
|
+
put:
|
|
3878
|
+
tags: [Admin]
|
|
3879
|
+
summary: Set a directory listing's verification tier
|
|
3880
|
+
description: Platform admins only. Unknown tiers are refused rather than demoted to `unverified`.
|
|
3881
|
+
operationId: adminSetAgentVerificationTier
|
|
3882
|
+
parameters:
|
|
3883
|
+
- name: agent_id
|
|
3884
|
+
in: path
|
|
3885
|
+
required: true
|
|
3886
|
+
schema: { type: string, format: uuid }
|
|
3887
|
+
requestBody:
|
|
3888
|
+
required: true
|
|
3889
|
+
content:
|
|
3890
|
+
application/json:
|
|
3891
|
+
schema:
|
|
3892
|
+
type: object
|
|
3893
|
+
required: [tier]
|
|
3894
|
+
properties:
|
|
3895
|
+
tier: { type: string, enum: [unverified, platform_reviewed, identity_verified, enterprise] }
|
|
3896
|
+
notes: { type: string, nullable: true, description: Internal review notes, never public }
|
|
3897
|
+
responses:
|
|
3898
|
+
'200':
|
|
3899
|
+
description: Tier set
|
|
3900
|
+
content:
|
|
3901
|
+
application/json:
|
|
3902
|
+
schema:
|
|
3903
|
+
type: object
|
|
3904
|
+
properties:
|
|
3905
|
+
agent_id: { type: string, format: uuid }
|
|
3906
|
+
tier: { type: string }
|
|
3907
|
+
'400': { description: Unknown tier }
|
|
3908
|
+
'403': { description: Not a platform admin }
|
|
3909
|
+
'404': { description: Agent not found }
|
|
3910
|
+
/v1/admin/kms/relevel:
|
|
3911
|
+
post:
|
|
3912
|
+
tags: [Admin]
|
|
3913
|
+
summary: Move orgs onto the KEK protection level their tier and payment call for
|
|
3914
|
+
description: >-
|
|
3915
|
+
Platform admins only. Examines up to `limit` orgs whose stored KEK
|
|
3916
|
+
level disagrees with the target (Pro earns HSM only with an active
|
|
3917
|
+
subscription; Team, Business and Enterprise keep HSM; the platform
|
|
3918
|
+
org is always software) and starts a migration for each: a new key
|
|
3919
|
+
at the right level, every secret and every org-scoped row re-wrapped,
|
|
3920
|
+
the old key released from the keep set 30 days after completion.
|
|
3921
|
+
The nightly consolidation job runs the same pass, 25 orgs at a time.
|
|
3922
|
+
operationId: adminKmsRelevel
|
|
3923
|
+
parameters:
|
|
3924
|
+
- name: limit
|
|
3925
|
+
in: query
|
|
3926
|
+
required: false
|
|
3927
|
+
schema: { type: integer, minimum: 1, maximum: 500, default: 25 }
|
|
3928
|
+
responses:
|
|
3929
|
+
'200':
|
|
3930
|
+
description: Orgs examined and migrations started
|
|
3931
|
+
content:
|
|
3932
|
+
application/json:
|
|
3933
|
+
schema:
|
|
3934
|
+
type: object
|
|
3935
|
+
properties:
|
|
3936
|
+
examined: { type: integer }
|
|
3937
|
+
migrations_started: { type: integer }
|
|
3938
|
+
limit: { type: integer }
|
|
3939
|
+
'403': { description: Not a platform admin }
|
|
3849
3940
|
/v1/admin/chains:
|
|
3850
3941
|
get:
|
|
3851
3942
|
tags: [Chains]
|
|
@@ -9989,6 +10080,50 @@ paths:
|
|
|
9989
10080
|
ChallengeExpired. Re-fetch the resource for a fresh 402 and
|
|
9990
10081
|
prepare again — re-preparing from the stored bytes would
|
|
9991
10082
|
reproduce the same expired window.
|
|
10083
|
+
/v1/agents/{agent_id}/pay/grants/prepare:
|
|
10084
|
+
post:
|
|
10085
|
+
tags: [Pay]
|
|
10086
|
+
summary: Prepare a spending grant (step one of two)
|
|
10087
|
+
description: >
|
|
10088
|
+
Fixes the grant terms and a server-side nonce and returns the
|
|
10089
|
+
`grant_digest` the person must assert over with a passkey
|
|
10090
|
+
(`action=x402_grant`). Then call `POST .../pay/grants` with the
|
|
10091
|
+
same terms, the digest, and the passkey token. Preparations are
|
|
10092
|
+
single-use, bound to the caller and agent, and expire after ten
|
|
10093
|
+
minutes. The nonce never leaves the server, so the digest cannot
|
|
10094
|
+
be recomputed for different terms. Human callers only; terms are
|
|
10095
|
+
validated against the agent's maximum cap and window here as well.
|
|
10096
|
+
operationId: preparePayGrant
|
|
10097
|
+
parameters:
|
|
10098
|
+
- $ref: "#/components/parameters/AgentId"
|
|
10099
|
+
requestBody:
|
|
10100
|
+
required: true
|
|
10101
|
+
content:
|
|
10102
|
+
application/json:
|
|
10103
|
+
schema:
|
|
10104
|
+
type: object
|
|
10105
|
+
required: [cap_usd, ttl_secs]
|
|
10106
|
+
properties:
|
|
10107
|
+
cap_usd: { type: string }
|
|
10108
|
+
ttl_secs: { type: integer }
|
|
10109
|
+
allowed_paytos:
|
|
10110
|
+
type: array
|
|
10111
|
+
items: { type: string }
|
|
10112
|
+
nullable: true
|
|
10113
|
+
responses:
|
|
10114
|
+
'200':
|
|
10115
|
+
description: The digest to assert over
|
|
10116
|
+
content:
|
|
10117
|
+
application/json:
|
|
10118
|
+
schema:
|
|
10119
|
+
type: object
|
|
10120
|
+
required: [grant_digest, action, expires_in_secs]
|
|
10121
|
+
properties:
|
|
10122
|
+
grant_digest: { type: string }
|
|
10123
|
+
action: { type: string, enum: [x402_grant] }
|
|
10124
|
+
expires_in_secs: { type: integer }
|
|
10125
|
+
'400': { description: Invalid terms }
|
|
10126
|
+
'403': { description: Not a human caller, grant mode disabled, or over the agent's maximum }
|
|
9992
10127
|
/v1/agents/{agent_id}/pay/grants:
|
|
9993
10128
|
post:
|
|
9994
10129
|
tags: [Pay]
|