@1claw/openapi-spec 0.61.31 → 0.61.35

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 +730 -6
  2. package/openapi.yaml +484 -3
  3. package/package.json +1 -1
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.31"
5
+ version: "0.61.35"
6
6
  description: |
7
7
  Secure secret management for AI agents. Provides vaults, secrets,
8
8
  policy-based access control, agent identity, Intents API,
@@ -10956,6 +10956,64 @@ paths:
10956
10956
  "400":
10957
10957
  description: Invalid request
10958
10958
 
10959
+ /v1/x402/topup:
10960
+ post:
10961
+ tags: [Billing]
10962
+ summary: x402 ledger top-up (agent door)
10963
+ description: |
10964
+ The wallet rail for Shroud (Shroud AI plan). Without `X-PAYMENT` the response is a
10965
+ **402** quote (`x402Version`, `accepts[]` with `payTo`, `maxAmountRequired`, `resource`)
10966
+ for `amount_usd` (default $1) of USDC on Base. With a signed EIP-3009 `X-PAYMENT`
10967
+ the facilitator verifies it, the proof is claimed once, the payer wallet's org
10968
+ ledger is credited in micro-USD, and the facilitator settles.
10969
+
10970
+ **Payment is the account.** An unknown wallet's first settled top-up provisions a
10971
+ shadow org, one Shroud-enabled agent and one `sk-shroud-v1` router key keyed on the
10972
+ wallet (returned once as `router_key`), after screening the wallet against the OFAC
10973
+ SDN list (fails closed when the list is missing or stale) and the caller's region
10974
+ against the custody geofence. Same wallet = same org on every later top-up. The
10975
+ response always carries a ≤60 s `access_token` for the wallet's agent so the
10976
+ gateway can serve the paid request immediately. The Shroud gateway drives this for
10977
+ `Authorization: Bearer x402` requests and relays the quote or the result.
10978
+ operationId: x402Topup
10979
+ security: []
10980
+ parameters:
10981
+ - name: X-PAYMENT
10982
+ in: header
10983
+ required: false
10984
+ schema: { type: string }
10985
+ description: Base64 x402 payment payload (EIP-3009 USDC authorization on Base)
10986
+ requestBody:
10987
+ required: false
10988
+ content:
10989
+ application/json:
10990
+ schema:
10991
+ type: object
10992
+ additionalProperties: false
10993
+ properties:
10994
+ amount_usd:
10995
+ type: integer
10996
+ minimum: 1
10997
+ maximum: 100
10998
+ description: Whole dollars to add to the ledger (default 1)
10999
+ responses:
11000
+ "200":
11001
+ description: Credited
11002
+ content:
11003
+ application/json:
11004
+ schema:
11005
+ $ref: "#/components/schemas/X402TopupResponse"
11006
+ "402":
11007
+ description: Payment required — the quote to sign, or why the payment was refused
11008
+ content:
11009
+ application/json:
11010
+ schema:
11011
+ $ref: "#/components/schemas/PaymentRequirement"
11012
+ "403":
11013
+ description: The wallet is sanctioned or the region is fenced; no account is opened
11014
+ "503":
11015
+ description: The sanctions list is unavailable (fails closed)
11016
+
10959
11017
  /v1/oauth/token:
10960
11018
  post:
10961
11019
  tags: [OAuth]
@@ -11931,6 +11989,10 @@ paths:
11931
11989
  tags: [Automations]
11932
11990
  summary: Trigger automation
11933
11991
  operationId: triggerAutomation
11992
+ description: |
11993
+ Start a run now. With an `idempotency_key` (body or `Idempotency-Key` header) the
11994
+ same key returns the run already started for it (200) rather than a second run
11995
+ (201). `input` is exposed to steps as `{{trigger.*}}`.
11934
11996
  parameters:
11935
11997
  - name: automationId
11936
11998
  in: path
@@ -11938,9 +12000,21 @@ paths:
11938
12000
  schema:
11939
12001
  type: string
11940
12002
  format: uuid
12003
+ requestBody:
12004
+ required: false
12005
+ content:
12006
+ application/json:
12007
+ schema:
12008
+ $ref: "#/components/schemas/TriggerAutomationRequest"
11941
12009
  responses:
12010
+ "201":
12011
+ description: Run started
12012
+ content:
12013
+ application/json:
12014
+ schema:
12015
+ $ref: "#/components/schemas/AutomationRunResponse"
11942
12016
  "200":
11943
- description: Automation triggered
12017
+ description: An earlier run with the same idempotency key
11944
12018
  content:
11945
12019
  application/json:
11946
12020
  schema:
@@ -12214,6 +12288,126 @@ paths:
12214
12288
  "404":
12215
12289
  $ref: "#/components/responses/NotFound"
12216
12290
 
12291
+ /v1/automations/{automationId}/runs/{runId}/callback/{token}:
12292
+ post:
12293
+ tags: [Automations]
12294
+ summary: Continue a run parked on awaiting_callback
12295
+ operationId: automationRunCallback
12296
+ security: []
12297
+ description: |
12298
+ Public, authenticated by the per-run token. A spec with an `awaiting_callback`
12299
+ step gets the token at run start as `{{run.callback_url}}` / `{{run.callback_token}}`;
12300
+ an earlier step hands the URL to the external system, the step parks the run
12301
+ (`awaiting_callback`, up to its `timeout_secs`), and this POST continues it. The
12302
+ JSON body becomes `{{resume.*}}`. 409 when the run is not (yet) parked on a
12303
+ callback; 401 for a wrong token.
12304
+ parameters:
12305
+ - name: automationId
12306
+ in: path
12307
+ required: true
12308
+ schema:
12309
+ type: string
12310
+ format: uuid
12311
+ - name: runId
12312
+ in: path
12313
+ required: true
12314
+ schema:
12315
+ type: string
12316
+ format: uuid
12317
+ - name: token
12318
+ in: path
12319
+ required: true
12320
+ schema:
12321
+ type: string
12322
+ requestBody:
12323
+ required: false
12324
+ content:
12325
+ application/json:
12326
+ schema:
12327
+ type: object
12328
+ additionalProperties: true
12329
+ responses:
12330
+ "202":
12331
+ description: The run, continuing
12332
+ content:
12333
+ application/json:
12334
+ schema:
12335
+ $ref: "#/components/schemas/AutomationRunResponse"
12336
+ "401":
12337
+ $ref: "#/components/responses/Unauthorized"
12338
+ "409":
12339
+ $ref: "#/components/responses/Conflict"
12340
+
12341
+ /v1/automations/{automationId}/versions:
12342
+ get:
12343
+ tags: [Automations]
12344
+ summary: List spec versions
12345
+ operationId: listAutomationVersions
12346
+ description: |
12347
+ Every `workflow_spec` the automation has had, newest first. Version 1 is the
12348
+ spec it was created with; every update that changes the spec publishes the
12349
+ next one. Runs record the version they executed.
12350
+ parameters:
12351
+ - name: automationId
12352
+ in: path
12353
+ required: true
12354
+ schema:
12355
+ type: string
12356
+ format: uuid
12357
+ responses:
12358
+ "200":
12359
+ description: Versions
12360
+ content:
12361
+ application/json:
12362
+ schema:
12363
+ $ref: "#/components/schemas/AutomationVersionListResponse"
12364
+ "401":
12365
+ $ref: "#/components/responses/Unauthorized"
12366
+ "404":
12367
+ $ref: "#/components/responses/NotFound"
12368
+
12369
+ /v1/automations/{automationId}/versions/{version}/rollback:
12370
+ post:
12371
+ tags: [Automations]
12372
+ summary: Roll back to an earlier spec version
12373
+ operationId: rollbackAutomationVersion
12374
+ description: |
12375
+ Publishes the chosen version's spec as a new version and makes it current.
12376
+ Human-only. A rollback that widens what the automation can do relative to the
12377
+ live spec goes through the `automation.widen` control-plane consensus gate,
12378
+ like an edit would.
12379
+ parameters:
12380
+ - name: automationId
12381
+ in: path
12382
+ required: true
12383
+ schema:
12384
+ type: string
12385
+ format: uuid
12386
+ - name: version
12387
+ in: path
12388
+ required: true
12389
+ schema:
12390
+ type: integer
12391
+ requestBody:
12392
+ required: false
12393
+ content:
12394
+ application/json:
12395
+ schema:
12396
+ $ref: "#/components/schemas/RollbackAutomationRequest"
12397
+ responses:
12398
+ "200":
12399
+ description: The automation with the rolled-back spec current
12400
+ content:
12401
+ application/json:
12402
+ schema:
12403
+ $ref: "#/components/schemas/AutomationResponse"
12404
+ "401":
12405
+ $ref: "#/components/responses/Unauthorized"
12406
+ "403":
12407
+ $ref: "#/components/responses/Forbidden"
12408
+ "404":
12409
+ $ref: "#/components/responses/NotFound"
12410
+
12217
12411
  /v1/automations/presets:
12218
12412
  get:
12219
12413
  tags: [Automations]
@@ -15270,6 +15464,86 @@ paths:
15270
15464
  "404":
15271
15465
  $ref: "#/components/responses/NotFound"
15272
15466
 
15467
+ /v1/agents/{agent_id}/tool-bindings:
15468
+ post:
15469
+ tags: [Agents]
15470
+ summary: Create a secret → tool binding (rehydration policy)
15471
+ description: |
15472
+ Authorises the enclave to rehydrate the `⟦sk:…⟧` placeholder for `secret_path`
15473
+ into `tool_name` at `arg_path` — and only when the call's destination host is one
15474
+ of `destination_hosts`. Redaction replaces vault secrets in prompts with
15475
+ deterministic placeholders the model can place but never read; a placeholder is
15476
+ substituted back only inside an authorised tool-call argument, at the moment the
15477
+ enclave performs the call (`execution_mode: "tee"`). No binding, wrong argument,
15478
+ wrong host, bad checksum or an unknown tag is a 403 at execution time. Human users
15479
+ only; up to 200 per agent.
15480
+ operationId: createToolBinding
15481
+ parameters:
15482
+ - $ref: "#/components/parameters/AgentId"
15483
+ requestBody:
15484
+ required: true
15485
+ content:
15486
+ application/json:
15487
+ schema:
15488
+ $ref: "#/components/schemas/CreateToolBindingRequest"
15489
+ responses:
15490
+ "201":
15491
+ description: Created
15492
+ content:
15493
+ application/json:
15494
+ schema:
15495
+ $ref: "#/components/schemas/SecretToolBinding"
15496
+ "400":
15497
+ $ref: "#/components/responses/BadRequest"
15498
+ "403":
15499
+ $ref: "#/components/responses/Forbidden"
15500
+ "404":
15501
+ $ref: "#/components/responses/NotFound"
15502
+ "409":
15503
+ description: A binding for this secret, tool and argument already exists
15504
+ get:
15505
+ tags: [Agents]
15506
+ summary: List secret → tool bindings
15507
+ operationId: listToolBindings
15508
+ parameters:
15509
+ - $ref: "#/components/parameters/AgentId"
15510
+ responses:
15511
+ "200":
15512
+ description: Bindings
15513
+ content:
15514
+ application/json:
15515
+ schema:
15516
+ type: object
15517
+ required: [bindings]
15518
+ properties:
15519
+ bindings:
15520
+ type: array
15521
+ items:
15522
+ $ref: "#/components/schemas/SecretToolBinding"
15523
+ "403":
15524
+ $ref: "#/components/responses/Forbidden"
15525
+ "404":
15526
+ $ref: "#/components/responses/NotFound"
15527
+
15528
+ /v1/agents/{agent_id}/tool-bindings/{binding_id}:
15529
+ delete:
15530
+ tags: [Agents]
15531
+ summary: Delete a secret → tool binding
15532
+ operationId: deleteToolBinding
15533
+ parameters:
15534
+ - $ref: "#/components/parameters/AgentId"
15535
+ - name: binding_id
15536
+ in: path
15537
+ required: true
15538
+ schema: { type: string, format: uuid }
15539
+ responses:
15540
+ "204":
15541
+ description: Deleted
15542
+ "403":
15543
+ $ref: "#/components/responses/Forbidden"
15544
+ "404":
15545
+ $ref: "#/components/responses/NotFound"
15546
+
15273
15547
  /v1/agents/{agent_id}/oauth/connections:
15274
15548
  get:
15275
15549
  tags: [OAuth Connect]
@@ -23430,6 +23704,11 @@ components:
23430
23704
  type: string
23431
23705
  credit_balance_cents:
23432
23706
  type: integer
23707
+ description: Derived (rounded down); the ledger unit is micro-USD
23708
+ credit_balance_micro_usd:
23709
+ type: integer
23710
+ format: int64
23711
+ description: The ledger value. One inspected Shroud request costs 5,000 micro-USD ($0.005).
23433
23712
  credit_balance_usd:
23434
23713
  type: string
23435
23714
  overage_method:
@@ -23586,8 +23865,14 @@ components:
23586
23865
  properties:
23587
23866
  balance_cents:
23588
23867
  type: integer
23868
+ description: Derived (rounded down); the ledger unit is micro-USD
23869
+ balance_micro_usd:
23870
+ type: integer
23871
+ format: int64
23872
+ description: The ledger value (1 = $0.000001)
23589
23873
  balance_usd:
23590
23874
  type: string
23875
+ description: Dollars at the ledger's precision (e.g. "4.995"), never fewer than two decimals
23591
23876
  expiring_within_90_days:
23592
23877
  type: object
23593
23878
  properties:
@@ -25982,6 +26267,63 @@ components:
25982
26267
  description: The Shroud gateway to point the SDK at
25983
26268
  example: https://shroud.1claw.co
25984
26269
 
26270
+ CreateToolBindingRequest:
26271
+ type: object
26272
+ additionalProperties: false
26273
+ required: [secret_path, tool_name, destination_hosts]
26274
+ properties:
26275
+ secret_path:
26276
+ type: string
26277
+ description: Vault path of the secret the placeholder stands for
26278
+ tool_name:
26279
+ type: string
26280
+ description: Tool the binding applies to (`http_request`, `run_sql`, …) or `*`
26281
+ arg_path:
26282
+ type: string
26283
+ description: JSON pointer into the tool's arguments (`/headers/Authorization`, `/body/*`) or `*` (default)
26284
+ destination_hosts:
26285
+ type: array
26286
+ minItems: 1
26287
+ maxItems: 32
26288
+ items: { type: string }
26289
+ description: Hosts the rehydrated call may reach (`api.stripe.com`, `*.googleapis.com`); required
26290
+
26291
+ SecretToolBinding:
26292
+ type: object
26293
+ required: [id, org_id, agent_id, secret_path, tool_name, arg_path, destination_hosts, created_at]
26294
+ properties:
26295
+ id: { type: string, format: uuid }
26296
+ org_id: { type: string, format: uuid }
26297
+ agent_id: { type: string, format: uuid }
26298
+ secret_path: { type: string }
26299
+ tool_name: { type: string }
26300
+ arg_path: { type: string }
26301
+ destination_hosts:
26302
+ type: array
26303
+ items: { type: string }
26304
+ created_by: { type: string, format: uuid, nullable: true }
26305
+ created_at: { type: string, format: date-time }
26306
+
26307
+ X402TopupResponse:
26308
+ type: object
26309
+ required: [wallet, org_id, agent_id, credited_micro_usd, balance_micro_usd, balance_usd, access_token, expires_in, base_url, provisioned]
26310
+ properties:
26311
+ wallet: { type: string, description: Payer address (lower-case) }
26312
+ org_id: { type: string, format: uuid }
26313
+ agent_id: { type: string, format: uuid }
26314
+ credited_micro_usd: { type: integer, format: int64 }
26315
+ balance_micro_usd: { type: integer, format: int64 }
26316
+ balance_usd: { type: string }
26317
+ router_key:
26318
+ type: string
26319
+ description: Present only on the top-up that provisioned the account (or re-minted a lost key). Shown once.
26320
+ access_token:
26321
+ type: string
26322
+ description: A ≤60 s agent token for the wallet's agent (carries the `router_key` claim)
26323
+ expires_in: { type: integer }
26324
+ base_url: { type: string, description: The Shroud gateway }
26325
+ provisioned: { type: boolean, description: True when this top-up created the account }
26326
+
25985
26327
  EventSubscription:
25986
26328
  type: object
25987
26329
  required: [id, agent_id, binding_id, event_type, interval_secs, is_active, primed, next_poll_at, consecutive_errors, events_emitted, created_at]
@@ -27529,6 +27871,104 @@ components:
27529
27871
  additionalProperties: true
27530
27872
  is_active:
27531
27873
  type: boolean
27874
+ approval_id:
27875
+ type: string
27876
+ format: uuid
27877
+ description: |
27878
+ Control-plane approval authorising a widening change (adding a step that
27879
+ moves funds or reaches the network, raising or removing a `budget` cap).
27880
+ Required only when the org's consensus policy gates `automation.widen`.
27881
+ version_note:
27882
+ type: string
27883
+ description: Note recorded on the new spec version.
27884
+ webhook_signature:
27885
+ nullable: true
27886
+ description: |
27887
+ Inbound signature scheme for a webhook-triggered automation. `stripe`
27888
+ (`Stripe-Signature: t=…,v1=…` over `<t>.<body>`), `github`
27889
+ (`X-Hub-Signature-256: sha256=…` over the body) or `hmac_sha256`
27890
+ (`<header>: <hex|base64>` over the body). The secret is stored encrypted
27891
+ and never returned; `null` removes the scheme. With a scheme set, an
27892
+ unsigned or mis-signed delivery starts nothing.
27893
+ type: object
27894
+ properties:
27895
+ scheme:
27896
+ type: string
27897
+ enum: [stripe, github, hmac_sha256]
27898
+ secret:
27899
+ type: string
27900
+ minLength: 8
27901
+ maxLength: 512
27902
+ header:
27903
+ type: string
27904
+ description: Header carrying the signature (defaults per scheme).
27905
+ tolerance_secs:
27906
+ type: integer
27907
+ default: 300
27908
+ description: Timestamp tolerance for schemes that carry one (stripe).
27909
+
27910
+ AutomationVersionResponse:
27911
+ type: object
27912
+ required: [version, spec_hash, workflow_spec, created_by_type, created_at, current]
27913
+ properties:
27914
+ version:
27915
+ type: integer
27916
+ spec_hash:
27917
+ type: string
27918
+ description: SHA-256 of the canonical (sorted-key) JSON of the spec.
27919
+ workflow_spec:
27920
+ oneOf:
27921
+ - type: array
27922
+ items:
27923
+ type: object
27924
+ additionalProperties: true
27925
+ - type: object
27926
+ additionalProperties: true
27927
+ created_by_type:
27928
+ type: string
27929
+ note:
27930
+ type: string
27931
+ nullable: true
27932
+ created_at:
27933
+ type: string
27934
+ format: date-time
27935
+ current:
27936
+ type: boolean
27937
+
27938
+ AutomationVersionListResponse:
27939
+ type: object
27940
+ required: [current_version, versions]
27941
+ properties:
27942
+ current_version:
27943
+ type: integer
27944
+ versions:
27945
+ type: array
27946
+ items:
27947
+ $ref: "#/components/schemas/AutomationVersionResponse"
27948
+
27949
+ RollbackAutomationRequest:
27950
+ type: object
27951
+ properties:
27952
+ note:
27953
+ type: string
27954
+ approval_id:
27955
+ type: string
27956
+ format: uuid
27957
+ description: Control-plane approval when rolling back to a wider spec.
27958
+
27959
+ TriggerAutomationRequest:
27960
+ type: object
27961
+ properties:
27962
+ input:
27963
+ type: object
27964
+ additionalProperties: true
27965
+ description: Exposed to steps as `{{trigger.*}}`.
27966
+ idempotency_key:
27967
+ type: string
27968
+ maxLength: 128
27969
+ description: |
27970
+ Same key twice for one automation returns the existing run (200) instead
27971
+ of starting a second (201). `Idempotency-Key` header is equivalent.
27532
27972
 
27533
27973
  AutomationResponse:
27534
27974
  type: object
@@ -27598,6 +28038,13 @@ components:
27598
28038
  updated_at:
27599
28039
  type: string
27600
28040
  format: date-time
28041
+ spec_version:
28042
+ type: integer
28043
+ description: Current `automation_versions` version.
28044
+ webhook_signature_scheme:
28045
+ type: string
28046
+ nullable: true
28047
+ description: Inbound signature scheme name, never the secret.
27601
28048
 
27602
28049
  AutomationCreatedResponse:
27603
28050
  allOf:
@@ -27676,7 +28123,41 @@ components:
27676
28123
  format: uuid
27677
28124
  status:
27678
28125
  type: string
27679
- enum: [running, success, failed, timed_out, cancelled, awaiting_approval]
28126
+ enum: [running, success, completed_with_skips, failed, timed_out, cancelled, awaiting_approval, waiting, awaiting_callback]
28127
+ description: |
28128
+ `awaiting_approval`, `waiting` (a `wait_until` park) and `awaiting_callback`
28129
+ are parked states: the run's clock is stopped and it continues when the
28130
+ approval is decided, the wake time passes, or the callback URL is posted to.
28131
+ paused_reason:
28132
+ type: string
28133
+ nullable: true
28134
+ enum: [approval, wait_until, callback]
28135
+ paused_at_step:
28136
+ type: integer
28137
+ nullable: true
28138
+ paused_approval_id:
28139
+ type: string
28140
+ format: uuid
28141
+ nullable: true
28142
+ paused_until:
28143
+ type: string
28144
+ format: date-time
28145
+ nullable: true
28146
+ paused_expires_at:
28147
+ type: string
28148
+ format: date-time
28149
+ nullable: true
28150
+ spec_version:
28151
+ type: integer
28152
+ nullable: true
28153
+ idempotency_key:
28154
+ type: string
28155
+ nullable: true
28156
+ parent_run_id:
28157
+ type: string
28158
+ format: uuid
28159
+ nullable: true
28160
+ description: Set when a `call_automation` step started this run.
27680
28161
  step_results:
27681
28162
  nullable: true
27682
28163
  error:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.61.31",
3
+ "version": "0.61.35",
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": {