@1claw/openapi-spec 0.20.2 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -50,6 +50,8 @@ import spec from "@1claw/openapi-spec/openapi.json";
50
50
  - **Vaults** — CRUD, CMEK enable/disable, key rotation with job tracking, MPC enable/disable (`POST /v1/vaults/{id}/mpc`, `DELETE /v1/vaults/{id}/mpc`)
51
51
  - **Secrets** — CRUD, versioning, CMEK-encrypted flag, `client_share` in responses (MPC vaults)
52
52
  - **Agents** — CRUD with `auth_method` (api_key, mtls, oidc_client_credentials), auto-generated SSH keypairs, `token_ttl_seconds`, `vault_ids`, Intents API, transaction guardrails (`tx_to_allowlist`, `tx_max_value_eth`, `tx_daily_limit_eth`, `tx_allowed_chains`), **OIDC federation knobs** (`federation_enabled`, `federation_audiences`, `federated_token_ttl_seconds`); **`GET /v1/agents/{id}`** includes **`tx_spent_today_eth`** (rolling UTC-day spend from recorded txs) for clients such as **Shroud** that enforce the daily cap alongside per-tx limits
53
+ - **Signing Keys** — Multi-chain key management: `POST /v1/agents/{id}/signing-keys` (provision), `GET .../signing-keys` (list), `POST .../signing-keys/{chain}/rotate`, `DELETE .../signing-keys/{chain}` (deactivate). Supports ethereum, bitcoin, solana, xrp, cardano, tron
54
+ - **Unified Signing** — `POST /v1/agents/{id}/sign` — single endpoint for EIP-191 personal_sign, EIP-712 typed_data, and EIP-2718 transaction types (legacy, EIP-1559, EIP-4844, EIP-7702)
53
55
  - **Policies** — Glob-based access control
54
56
  - **Sharing** — Links, user/agent shares, accept/decline
55
57
  - **Billing** — Subscriptions, credits, x402, LLM token billing (see above)
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.10.1",
5
+ "version": "2.11.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"
@@ -2646,6 +2646,181 @@
2646
2646
  }
2647
2647
  }
2648
2648
  },
2649
+ "/v1/agents/{agent_id}/signing-keys": {
2650
+ "post": {
2651
+ "tags": [
2652
+ "Signing Keys"
2653
+ ],
2654
+ "summary": "Provision a signing key for a chain",
2655
+ "operationId": "createSigningKey",
2656
+ "parameters": [
2657
+ {
2658
+ "$ref": "#/components/parameters/AgentId"
2659
+ }
2660
+ ],
2661
+ "requestBody": {
2662
+ "required": true,
2663
+ "content": {
2664
+ "application/json": {
2665
+ "schema": {
2666
+ "$ref": "#/components/schemas/CreateSigningKeyRequest"
2667
+ }
2668
+ }
2669
+ }
2670
+ },
2671
+ "responses": {
2672
+ "201": {
2673
+ "description": "Signing key created",
2674
+ "content": {
2675
+ "application/json": {
2676
+ "schema": {
2677
+ "$ref": "#/components/schemas/SigningKeyResponse"
2678
+ }
2679
+ }
2680
+ }
2681
+ },
2682
+ "400": {
2683
+ "$ref": "#/components/responses/BadRequest"
2684
+ },
2685
+ "409": {
2686
+ "$ref": "#/components/responses/Conflict"
2687
+ }
2688
+ }
2689
+ },
2690
+ "get": {
2691
+ "tags": [
2692
+ "Signing Keys"
2693
+ ],
2694
+ "summary": "List signing keys for an agent",
2695
+ "operationId": "listSigningKeys",
2696
+ "parameters": [
2697
+ {
2698
+ "$ref": "#/components/parameters/AgentId"
2699
+ }
2700
+ ],
2701
+ "responses": {
2702
+ "200": {
2703
+ "description": "Signing keys list",
2704
+ "content": {
2705
+ "application/json": {
2706
+ "schema": {
2707
+ "$ref": "#/components/schemas/SigningKeyListResponse"
2708
+ }
2709
+ }
2710
+ }
2711
+ }
2712
+ }
2713
+ }
2714
+ },
2715
+ "/v1/agents/{agent_id}/signing-keys/{chain}/rotate": {
2716
+ "post": {
2717
+ "tags": [
2718
+ "Signing Keys"
2719
+ ],
2720
+ "summary": "Rotate a signing key for a chain",
2721
+ "operationId": "rotateSigningKey",
2722
+ "parameters": [
2723
+ {
2724
+ "$ref": "#/components/parameters/AgentId"
2725
+ },
2726
+ {
2727
+ "name": "chain",
2728
+ "in": "path",
2729
+ "required": true,
2730
+ "schema": {
2731
+ "type": "string"
2732
+ }
2733
+ }
2734
+ ],
2735
+ "responses": {
2736
+ "200": {
2737
+ "description": "Rotated signing key",
2738
+ "content": {
2739
+ "application/json": {
2740
+ "schema": {
2741
+ "$ref": "#/components/schemas/SigningKeyResponse"
2742
+ }
2743
+ }
2744
+ }
2745
+ },
2746
+ "404": {
2747
+ "$ref": "#/components/responses/NotFound"
2748
+ }
2749
+ }
2750
+ }
2751
+ },
2752
+ "/v1/agents/{agent_id}/signing-keys/{chain}": {
2753
+ "delete": {
2754
+ "tags": [
2755
+ "Signing Keys"
2756
+ ],
2757
+ "summary": "Deactivate a signing key for a chain",
2758
+ "operationId": "deactivateSigningKey",
2759
+ "parameters": [
2760
+ {
2761
+ "$ref": "#/components/parameters/AgentId"
2762
+ },
2763
+ {
2764
+ "name": "chain",
2765
+ "in": "path",
2766
+ "required": true,
2767
+ "schema": {
2768
+ "type": "string"
2769
+ }
2770
+ }
2771
+ ],
2772
+ "responses": {
2773
+ "204": {
2774
+ "description": "Key deactivated"
2775
+ },
2776
+ "404": {
2777
+ "$ref": "#/components/responses/NotFound"
2778
+ }
2779
+ }
2780
+ }
2781
+ },
2782
+ "/v1/agents/{agent_id}/sign": {
2783
+ "post": {
2784
+ "tags": [
2785
+ "Signing"
2786
+ ],
2787
+ "summary": "Unified signing intent (EIP-191, EIP-712, EIP-2718 types 0-4)",
2788
+ "operationId": "signIntent",
2789
+ "parameters": [
2790
+ {
2791
+ "$ref": "#/components/parameters/AgentId"
2792
+ }
2793
+ ],
2794
+ "requestBody": {
2795
+ "required": true,
2796
+ "content": {
2797
+ "application/json": {
2798
+ "schema": {
2799
+ "$ref": "#/components/schemas/SignIntentRequest"
2800
+ }
2801
+ }
2802
+ }
2803
+ },
2804
+ "responses": {
2805
+ "200": {
2806
+ "description": "Signed result",
2807
+ "content": {
2808
+ "application/json": {
2809
+ "schema": {
2810
+ "$ref": "#/components/schemas/SignIntentResponse"
2811
+ }
2812
+ }
2813
+ }
2814
+ },
2815
+ "400": {
2816
+ "$ref": "#/components/responses/BadRequest"
2817
+ },
2818
+ "403": {
2819
+ "$ref": "#/components/responses/Forbidden"
2820
+ }
2821
+ }
2822
+ }
2823
+ },
2649
2824
  "/v1/chains": {
2650
2825
  "get": {
2651
2826
  "tags": [
@@ -4808,6 +4983,16 @@
4808
4983
  }
4809
4984
  }
4810
4985
  }
4986
+ },
4987
+ "Conflict": {
4988
+ "description": "Resource already exists or conflict",
4989
+ "content": {
4990
+ "application/json": {
4991
+ "schema": {
4992
+ "$ref": "#/components/schemas/ProblemDetails"
4993
+ }
4994
+ }
4995
+ }
4811
4996
  }
4812
4997
  },
4813
4998
  "schemas": {
@@ -6264,6 +6449,32 @@
6264
6449
  "nullable": true,
6265
6450
  "description": "Per-agent TTL override for federation tokens (60..=3600)."
6266
6451
  },
6452
+ "signing_chains": {
6453
+ "type": "array",
6454
+ "items": {
6455
+ "type": "string"
6456
+ },
6457
+ "description": "Chains for which this agent has provisioned signing keys."
6458
+ },
6459
+ "eip712_domain_allowlist": {
6460
+ "type": "array",
6461
+ "items": {
6462
+ "type": "object"
6463
+ },
6464
+ "description": "JSON array of allowed EIP-712 domain entries."
6465
+ },
6466
+ "eip712_default_policy": {
6467
+ "type": "string",
6468
+ "enum": [
6469
+ "deny",
6470
+ "allow"
6471
+ ],
6472
+ "description": "Default EIP-712 policy (deny blocks all unless allowlisted)."
6473
+ },
6474
+ "message_signing_enabled": {
6475
+ "type": "boolean",
6476
+ "description": "Whether EIP-191 personal_sign is enabled."
6477
+ },
6267
6478
  "created_at": {
6268
6479
  "type": "string",
6269
6480
  "format": "date-time"
@@ -7181,6 +7392,195 @@
7181
7392
  }
7182
7393
  }
7183
7394
  },
7395
+ "CreateSigningKeyRequest": {
7396
+ "type": "object",
7397
+ "required": [
7398
+ "chain"
7399
+ ],
7400
+ "properties": {
7401
+ "chain": {
7402
+ "type": "string",
7403
+ "enum": [
7404
+ "ethereum",
7405
+ "bitcoin",
7406
+ "solana",
7407
+ "xrp",
7408
+ "cardano",
7409
+ "tron"
7410
+ ]
7411
+ }
7412
+ }
7413
+ },
7414
+ "SigningKeyResponse": {
7415
+ "type": "object",
7416
+ "properties": {
7417
+ "id": {
7418
+ "type": "string",
7419
+ "format": "uuid"
7420
+ },
7421
+ "agent_id": {
7422
+ "type": "string",
7423
+ "format": "uuid"
7424
+ },
7425
+ "chain": {
7426
+ "type": "string"
7427
+ },
7428
+ "curve": {
7429
+ "type": "string"
7430
+ },
7431
+ "public_key": {
7432
+ "type": "string"
7433
+ },
7434
+ "address": {
7435
+ "type": "string",
7436
+ "nullable": true
7437
+ },
7438
+ "key_version": {
7439
+ "type": "integer"
7440
+ },
7441
+ "is_active": {
7442
+ "type": "boolean"
7443
+ },
7444
+ "created_at": {
7445
+ "type": "string",
7446
+ "format": "date-time"
7447
+ },
7448
+ "rotated_at": {
7449
+ "type": "string",
7450
+ "format": "date-time",
7451
+ "nullable": true
7452
+ }
7453
+ }
7454
+ },
7455
+ "SigningKeyListResponse": {
7456
+ "type": "object",
7457
+ "properties": {
7458
+ "keys": {
7459
+ "type": "array",
7460
+ "items": {
7461
+ "$ref": "#/components/schemas/SigningKeyResponse"
7462
+ }
7463
+ }
7464
+ }
7465
+ },
7466
+ "SignIntentRequest": {
7467
+ "type": "object",
7468
+ "required": [
7469
+ "intent_type",
7470
+ "chain"
7471
+ ],
7472
+ "properties": {
7473
+ "intent_type": {
7474
+ "type": "string",
7475
+ "enum": [
7476
+ "personal_sign",
7477
+ "typed_data",
7478
+ "transaction"
7479
+ ]
7480
+ },
7481
+ "chain": {
7482
+ "type": "string"
7483
+ },
7484
+ "signing_key_path": {
7485
+ "type": "string"
7486
+ },
7487
+ "message": {
7488
+ "type": "string",
7489
+ "description": "Hex-encoded message bytes (for personal_sign)"
7490
+ },
7491
+ "typed_data": {
7492
+ "type": "object",
7493
+ "description": "EIP-712 typed data JSON (for typed_data)"
7494
+ },
7495
+ "tx_type": {
7496
+ "type": "integer",
7497
+ "description": "EIP-2718 type: 0=legacy, 1=2930, 2=1559, 3=4844, 4=7702"
7498
+ },
7499
+ "to": {
7500
+ "type": "string"
7501
+ },
7502
+ "value": {
7503
+ "type": "string"
7504
+ },
7505
+ "data": {
7506
+ "type": "string"
7507
+ },
7508
+ "nonce": {
7509
+ "type": "integer"
7510
+ },
7511
+ "gas_limit": {
7512
+ "type": "integer"
7513
+ },
7514
+ "gas_price": {
7515
+ "type": "string"
7516
+ },
7517
+ "max_fee_per_gas": {
7518
+ "type": "string"
7519
+ },
7520
+ "max_priority_fee_per_gas": {
7521
+ "type": "string"
7522
+ },
7523
+ "access_list": {
7524
+ "type": "array",
7525
+ "items": {
7526
+ "type": "object"
7527
+ }
7528
+ },
7529
+ "max_fee_per_blob_gas": {
7530
+ "type": "string"
7531
+ },
7532
+ "blob_versioned_hashes": {
7533
+ "type": "array",
7534
+ "items": {
7535
+ "type": "string"
7536
+ }
7537
+ },
7538
+ "authorization_list": {
7539
+ "type": "array",
7540
+ "items": {
7541
+ "type": "object"
7542
+ }
7543
+ }
7544
+ }
7545
+ },
7546
+ "SignIntentResponse": {
7547
+ "type": "object",
7548
+ "properties": {
7549
+ "intent_type": {
7550
+ "type": "string"
7551
+ },
7552
+ "chain": {
7553
+ "type": "string"
7554
+ },
7555
+ "from": {
7556
+ "type": "string"
7557
+ },
7558
+ "signature": {
7559
+ "type": "string",
7560
+ "nullable": true
7561
+ },
7562
+ "signed_tx": {
7563
+ "type": "string",
7564
+ "nullable": true
7565
+ },
7566
+ "tx_hash": {
7567
+ "type": "string",
7568
+ "nullable": true
7569
+ },
7570
+ "message_hash": {
7571
+ "type": "string",
7572
+ "nullable": true
7573
+ },
7574
+ "typed_data_hash": {
7575
+ "type": "string",
7576
+ "nullable": true
7577
+ },
7578
+ "tx_type": {
7579
+ "type": "integer",
7580
+ "nullable": true
7581
+ }
7582
+ }
7583
+ },
7184
7584
  "TransactionResponse": {
7185
7585
  "type": "object",
7186
7586
  "properties": {
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.10.1
5
+ version: 2.11.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,
@@ -1759,6 +1759,117 @@ paths:
1759
1759
  "402":
1760
1760
  $ref: "#/components/responses/PaymentRequired"
1761
1761
 
1762
+ # ---------------------------------------------------------------------------
1763
+ # Agent Signing Keys (Multi-Chain)
1764
+ # ---------------------------------------------------------------------------
1765
+
1766
+ /v1/agents/{agent_id}/signing-keys:
1767
+ post:
1768
+ tags: [Signing Keys]
1769
+ summary: Provision a signing key for a chain
1770
+ operationId: createSigningKey
1771
+ parameters:
1772
+ - $ref: "#/components/parameters/AgentId"
1773
+ requestBody:
1774
+ required: true
1775
+ content:
1776
+ application/json:
1777
+ schema:
1778
+ $ref: "#/components/schemas/CreateSigningKeyRequest"
1779
+ responses:
1780
+ "201":
1781
+ description: Signing key created
1782
+ content:
1783
+ application/json:
1784
+ schema:
1785
+ $ref: "#/components/schemas/SigningKeyResponse"
1786
+ "400":
1787
+ $ref: "#/components/responses/BadRequest"
1788
+ "409":
1789
+ $ref: "#/components/responses/Conflict"
1790
+ get:
1791
+ tags: [Signing Keys]
1792
+ summary: List signing keys for an agent
1793
+ operationId: listSigningKeys
1794
+ parameters:
1795
+ - $ref: "#/components/parameters/AgentId"
1796
+ responses:
1797
+ "200":
1798
+ description: Signing keys list
1799
+ content:
1800
+ application/json:
1801
+ schema:
1802
+ $ref: "#/components/schemas/SigningKeyListResponse"
1803
+
1804
+ /v1/agents/{agent_id}/signing-keys/{chain}/rotate:
1805
+ post:
1806
+ tags: [Signing Keys]
1807
+ summary: Rotate a signing key for a chain
1808
+ operationId: rotateSigningKey
1809
+ parameters:
1810
+ - $ref: "#/components/parameters/AgentId"
1811
+ - name: chain
1812
+ in: path
1813
+ required: true
1814
+ schema:
1815
+ type: string
1816
+ responses:
1817
+ "200":
1818
+ description: Rotated signing key
1819
+ content:
1820
+ application/json:
1821
+ schema:
1822
+ $ref: "#/components/schemas/SigningKeyResponse"
1823
+ "404":
1824
+ $ref: "#/components/responses/NotFound"
1825
+
1826
+ /v1/agents/{agent_id}/signing-keys/{chain}:
1827
+ delete:
1828
+ tags: [Signing Keys]
1829
+ summary: Deactivate a signing key for a chain
1830
+ operationId: deactivateSigningKey
1831
+ parameters:
1832
+ - $ref: "#/components/parameters/AgentId"
1833
+ - name: chain
1834
+ in: path
1835
+ required: true
1836
+ schema:
1837
+ type: string
1838
+ responses:
1839
+ "204":
1840
+ description: Key deactivated
1841
+ "404":
1842
+ $ref: "#/components/responses/NotFound"
1843
+
1844
+ # ---------------------------------------------------------------------------
1845
+ # Unified Signing Intent
1846
+ # ---------------------------------------------------------------------------
1847
+
1848
+ /v1/agents/{agent_id}/sign:
1849
+ post:
1850
+ tags: [Signing]
1851
+ summary: Unified signing intent (EIP-191, EIP-712, EIP-2718 types 0-4)
1852
+ operationId: signIntent
1853
+ parameters:
1854
+ - $ref: "#/components/parameters/AgentId"
1855
+ requestBody:
1856
+ required: true
1857
+ content:
1858
+ application/json:
1859
+ schema:
1860
+ $ref: "#/components/schemas/SignIntentRequest"
1861
+ responses:
1862
+ "200":
1863
+ description: Signed result
1864
+ content:
1865
+ application/json:
1866
+ schema:
1867
+ $ref: "#/components/schemas/SignIntentResponse"
1868
+ "400":
1869
+ $ref: "#/components/responses/BadRequest"
1870
+ "403":
1871
+ $ref: "#/components/responses/Forbidden"
1872
+
1762
1873
  # ---------------------------------------------------------------------------
1763
1874
  # Chains
1764
1875
  # ---------------------------------------------------------------------------
@@ -3165,6 +3276,12 @@ components:
3165
3276
  application/json:
3166
3277
  schema:
3167
3278
  $ref: "#/components/schemas/PaymentRequirement"
3279
+ Conflict:
3280
+ description: Resource already exists or conflict
3281
+ content:
3282
+ application/json:
3283
+ schema:
3284
+ $ref: "#/components/schemas/ProblemDetails"
3168
3285
 
3169
3286
  schemas:
3170
3287
  ProblemDetails:
@@ -4200,6 +4317,23 @@ components:
4200
4317
  type: integer
4201
4318
  nullable: true
4202
4319
  description: Per-agent TTL override for federation tokens (60..=3600).
4320
+ signing_chains:
4321
+ type: array
4322
+ items:
4323
+ type: string
4324
+ description: Chains for which this agent has provisioned signing keys.
4325
+ eip712_domain_allowlist:
4326
+ type: array
4327
+ items:
4328
+ type: object
4329
+ description: JSON array of allowed EIP-712 domain entries.
4330
+ eip712_default_policy:
4331
+ type: string
4332
+ enum: [deny, allow]
4333
+ description: Default EIP-712 policy (deny blocks all unless allowlisted).
4334
+ message_signing_enabled:
4335
+ type: boolean
4336
+ description: Whether EIP-191 personal_sign is enabled.
4203
4337
  created_at:
4204
4338
  type: string
4205
4339
  format: date-time
@@ -4821,6 +4955,133 @@ components:
4821
4955
  items:
4822
4956
  $ref: "#/components/schemas/SimulateTransactionRequest"
4823
4957
 
4958
+ # Signing Keys (Multi-Chain)
4959
+ CreateSigningKeyRequest:
4960
+ type: object
4961
+ required: [chain]
4962
+ properties:
4963
+ chain:
4964
+ type: string
4965
+ enum: [ethereum, bitcoin, solana, xrp, cardano, tron]
4966
+
4967
+ SigningKeyResponse:
4968
+ type: object
4969
+ properties:
4970
+ id:
4971
+ type: string
4972
+ format: uuid
4973
+ agent_id:
4974
+ type: string
4975
+ format: uuid
4976
+ chain:
4977
+ type: string
4978
+ curve:
4979
+ type: string
4980
+ public_key:
4981
+ type: string
4982
+ address:
4983
+ type: string
4984
+ nullable: true
4985
+ key_version:
4986
+ type: integer
4987
+ is_active:
4988
+ type: boolean
4989
+ created_at:
4990
+ type: string
4991
+ format: date-time
4992
+ rotated_at:
4993
+ type: string
4994
+ format: date-time
4995
+ nullable: true
4996
+
4997
+ SigningKeyListResponse:
4998
+ type: object
4999
+ properties:
5000
+ keys:
5001
+ type: array
5002
+ items:
5003
+ $ref: "#/components/schemas/SigningKeyResponse"
5004
+
5005
+ # Unified Signing Intent
5006
+ SignIntentRequest:
5007
+ type: object
5008
+ required: [intent_type, chain]
5009
+ properties:
5010
+ intent_type:
5011
+ type: string
5012
+ enum: [personal_sign, typed_data, transaction]
5013
+ chain:
5014
+ type: string
5015
+ signing_key_path:
5016
+ type: string
5017
+ message:
5018
+ type: string
5019
+ description: Hex-encoded message bytes (for personal_sign)
5020
+ typed_data:
5021
+ type: object
5022
+ description: EIP-712 typed data JSON (for typed_data)
5023
+ tx_type:
5024
+ type: integer
5025
+ description: "EIP-2718 type: 0=legacy, 1=2930, 2=1559, 3=4844, 4=7702"
5026
+ to:
5027
+ type: string
5028
+ value:
5029
+ type: string
5030
+ data:
5031
+ type: string
5032
+ nonce:
5033
+ type: integer
5034
+ gas_limit:
5035
+ type: integer
5036
+ gas_price:
5037
+ type: string
5038
+ max_fee_per_gas:
5039
+ type: string
5040
+ max_priority_fee_per_gas:
5041
+ type: string
5042
+ access_list:
5043
+ type: array
5044
+ items:
5045
+ type: object
5046
+ max_fee_per_blob_gas:
5047
+ type: string
5048
+ blob_versioned_hashes:
5049
+ type: array
5050
+ items:
5051
+ type: string
5052
+ authorization_list:
5053
+ type: array
5054
+ items:
5055
+ type: object
5056
+
5057
+ SignIntentResponse:
5058
+ type: object
5059
+ properties:
5060
+ intent_type:
5061
+ type: string
5062
+ chain:
5063
+ type: string
5064
+ from:
5065
+ type: string
5066
+ signature:
5067
+ type: string
5068
+ nullable: true
5069
+ signed_tx:
5070
+ type: string
5071
+ nullable: true
5072
+ tx_hash:
5073
+ type: string
5074
+ nullable: true
5075
+ message_hash:
5076
+ type: string
5077
+ nullable: true
5078
+ typed_data_hash:
5079
+ type: string
5080
+ nullable: true
5081
+ tx_type:
5082
+ type: integer
5083
+ nullable: true
5084
+
4824
5085
  TransactionResponse:
4825
5086
  type: object
4826
5087
  properties:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.20.2",
3
+ "version": "0.21.0",
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": {