@1claw/sdk 0.56.3 → 0.58.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.
@@ -535,6 +535,10 @@ export interface paths {
535
535
  * @description Disabling `require_passkey_for_vaults` requires `X-Auth-Confirm`
536
536
  * (purpose `security.vault_passkey.disable`) with a passkey or TOTP
537
537
  * when either is enrolled.
538
+ *
539
+ * Disabling `require_passkey_for_mfa` requires `X-Auth-Confirm`
540
+ * (purpose `security.mfa_passkey.disable`) with a passkey or TOTP
541
+ * when either is enrolled.
538
542
  */
539
543
  patch: operations["updateSecuritySettings"];
540
544
  trace?: never;
@@ -629,6 +633,40 @@ export interface paths {
629
633
  patch?: never;
630
634
  trace?: never;
631
635
  };
636
+ "/v1/auth/mfa/passkey/begin": {
637
+ parameters: {
638
+ query?: never;
639
+ header?: never;
640
+ path?: never;
641
+ cookie?: never;
642
+ };
643
+ get?: never;
644
+ put?: never;
645
+ /** Begin passkey MFA verification during login */
646
+ post: operations["mfaPasskeyBegin"];
647
+ delete?: never;
648
+ options?: never;
649
+ head?: never;
650
+ patch?: never;
651
+ trace?: never;
652
+ };
653
+ "/v1/auth/mfa/passkey/complete": {
654
+ parameters: {
655
+ query?: never;
656
+ header?: never;
657
+ path?: never;
658
+ cookie?: never;
659
+ };
660
+ get?: never;
661
+ put?: never;
662
+ /** Complete passkey MFA verification during login */
663
+ post: operations["mfaPasskeyComplete"];
664
+ delete?: never;
665
+ options?: never;
666
+ head?: never;
667
+ patch?: never;
668
+ trace?: never;
669
+ };
632
670
  "/v1/auth/mfa": {
633
671
  parameters: {
634
672
  query?: never;
@@ -3295,6 +3333,27 @@ export interface paths {
3295
3333
  patch?: never;
3296
3334
  trace?: never;
3297
3335
  };
3336
+ "/v1/treasury/wallets/inference-budget": {
3337
+ parameters: {
3338
+ query?: never;
3339
+ header?: never;
3340
+ path?: never;
3341
+ cookie?: never;
3342
+ };
3343
+ /**
3344
+ * Get inference budget for current user
3345
+ * @description Returns the user's remaining LLM inference allowance when connected via a platform app.
3346
+ * Includes allowance, spent, remaining USD, per-request cap, and billing period end.
3347
+ */
3348
+ get: operations["getUserInferenceBudget"];
3349
+ put?: never;
3350
+ post?: never;
3351
+ delete?: never;
3352
+ options?: never;
3353
+ head?: never;
3354
+ patch?: never;
3355
+ trace?: never;
3356
+ };
3298
3357
  "/v1/webhooks": {
3299
3358
  parameters: {
3300
3359
  query?: never;
@@ -3838,12 +3897,14 @@ export interface paths {
3838
3897
  };
3839
3898
  requestBody?: never;
3840
3899
  responses: {
3841
- /** @description Deleted */
3842
- 204: {
3900
+ /** @description Soft-deleted; slug released for reuse within the org */
3901
+ 200: {
3843
3902
  headers: {
3844
3903
  [name: string]: unknown;
3845
3904
  };
3846
- content?: never;
3905
+ content: {
3906
+ "application/json": components["schemas"]["PlatformAppDeleteResponse"];
3907
+ };
3847
3908
  };
3848
3909
  /** @description Only human users can delete platform apps */
3849
3910
  403: {
@@ -3885,6 +3946,29 @@ export interface paths {
3885
3946
  };
3886
3947
  trace?: never;
3887
3948
  };
3949
+ "/v1/platform/apps/{appId}/transfer-ownership": {
3950
+ parameters: {
3951
+ query?: never;
3952
+ header?: never;
3953
+ path?: never;
3954
+ cookie?: never;
3955
+ };
3956
+ get?: never;
3957
+ put?: never;
3958
+ /**
3959
+ * Transfer platform app to another organization
3960
+ * @description Moves the platform app record to another organization. Requires org
3961
+ * owner/admin in the source org and step-up auth (`X-Auth-Confirm`,
3962
+ * purpose `platform.app.transfer`). End-user connections and provisioned
3963
+ * resources remain in their original organizations.
3964
+ */
3965
+ post: operations["transferPlatformAppOwnership"];
3966
+ delete?: never;
3967
+ options?: never;
3968
+ head?: never;
3969
+ patch?: never;
3970
+ trace?: never;
3971
+ };
3888
3972
  "/v1/platform/apps/{appId}/rotate-key": {
3889
3973
  parameters: {
3890
3974
  query?: never;
@@ -4077,6 +4161,54 @@ export interface paths {
4077
4161
  patch: operations["updatePlatformTemplate"];
4078
4162
  trace?: never;
4079
4163
  };
4164
+ "/v1/platform/apps/{appId}/templates/{template_id}/preview": {
4165
+ parameters: {
4166
+ query?: never;
4167
+ header?: never;
4168
+ path?: never;
4169
+ cookie?: never;
4170
+ };
4171
+ get?: never;
4172
+ put?: never;
4173
+ /**
4174
+ * Preview resolved template spec
4175
+ * @description Resolves `{{params.*}}` and `{{subject.*}}` placeholders in a template spec
4176
+ * without provisioning resources. Useful for validating parameterized bootstrap templates.
4177
+ */
4178
+ post: {
4179
+ parameters: {
4180
+ query?: never;
4181
+ header?: never;
4182
+ path: {
4183
+ appId: string;
4184
+ template_id: string;
4185
+ };
4186
+ cookie?: never;
4187
+ };
4188
+ requestBody?: {
4189
+ content: {
4190
+ "application/json": components["schemas"]["TemplatePreviewRequest"];
4191
+ };
4192
+ };
4193
+ responses: {
4194
+ /** @description Resolved template spec */
4195
+ 200: {
4196
+ headers: {
4197
+ [name: string]: unknown;
4198
+ };
4199
+ content: {
4200
+ "application/json": components["schemas"]["TemplatePreviewResponse"];
4201
+ };
4202
+ };
4203
+ 404: components["responses"]["NotFound"];
4204
+ };
4205
+ };
4206
+ delete?: never;
4207
+ options?: never;
4208
+ head?: never;
4209
+ patch?: never;
4210
+ trace?: never;
4211
+ };
4080
4212
  "/v1/platform/users/upsert": {
4081
4213
  parameters: {
4082
4214
  query?: never;
@@ -4138,6 +4270,57 @@ export interface paths {
4138
4270
  patch?: never;
4139
4271
  trace?: never;
4140
4272
  };
4273
+ "/v1/platform/siwe/challenge": {
4274
+ parameters: {
4275
+ query?: never;
4276
+ header?: never;
4277
+ path?: never;
4278
+ cookie?: never;
4279
+ };
4280
+ get?: never;
4281
+ put?: never;
4282
+ /**
4283
+ * Issue SIWE nonce
4284
+ * @description Creates a one-time nonce for Sign-In With Ethereum user provisioning.
4285
+ * Requires platform (`plt_`) authentication. The nonce expires in 5 minutes.
4286
+ */
4287
+ post: {
4288
+ parameters: {
4289
+ query?: never;
4290
+ header?: never;
4291
+ path?: never;
4292
+ cookie?: never;
4293
+ };
4294
+ requestBody?: {
4295
+ content: {
4296
+ "application/json": components["schemas"]["SiweChallengeRequest"];
4297
+ };
4298
+ };
4299
+ responses: {
4300
+ /** @description Nonce issued */
4301
+ 200: {
4302
+ headers: {
4303
+ [name: string]: unknown;
4304
+ };
4305
+ content: {
4306
+ "application/json": components["schemas"]["SiweChallengeResponse"];
4307
+ };
4308
+ };
4309
+ /** @description SIWE domain not configured */
4310
+ 400: {
4311
+ headers: {
4312
+ [name: string]: unknown;
4313
+ };
4314
+ content?: never;
4315
+ };
4316
+ };
4317
+ };
4318
+ delete?: never;
4319
+ options?: never;
4320
+ head?: never;
4321
+ patch?: never;
4322
+ trace?: never;
4323
+ };
4141
4324
  "/v1/platform/apps/{appId}/users": {
4142
4325
  parameters: {
4143
4326
  query?: never;
@@ -4293,6 +4476,173 @@ export interface paths {
4293
4476
  patch?: never;
4294
4477
  trace?: never;
4295
4478
  };
4479
+ "/v1/platform/connections/{connectionId}": {
4480
+ parameters: {
4481
+ query?: never;
4482
+ header?: never;
4483
+ path?: never;
4484
+ cookie?: never;
4485
+ };
4486
+ /**
4487
+ * Get connection details
4488
+ * @description Returns connection status, claim state, wallet address, and provisioned resource IDs.
4489
+ * Use for polling the claim loop after bootstrap.
4490
+ */
4491
+ get: {
4492
+ parameters: {
4493
+ query?: never;
4494
+ header?: never;
4495
+ path: {
4496
+ connectionId: string;
4497
+ };
4498
+ cookie?: never;
4499
+ };
4500
+ requestBody?: never;
4501
+ responses: {
4502
+ /** @description Connection details */
4503
+ 200: {
4504
+ headers: {
4505
+ [name: string]: unknown;
4506
+ };
4507
+ content: {
4508
+ "application/json": components["schemas"]["ConnectionDetailResponse"];
4509
+ };
4510
+ };
4511
+ 404: components["responses"]["NotFound"];
4512
+ };
4513
+ };
4514
+ put?: never;
4515
+ post?: never;
4516
+ delete?: never;
4517
+ options?: never;
4518
+ head?: never;
4519
+ patch?: never;
4520
+ trace?: never;
4521
+ };
4522
+ "/v1/platform/connections/{connectionId}/usage": {
4523
+ parameters: {
4524
+ query?: never;
4525
+ header?: never;
4526
+ path?: never;
4527
+ cookie?: never;
4528
+ };
4529
+ /**
4530
+ * Get per-connection usage
4531
+ * @description Returns inference spend for the current UTC month for this connection.
4532
+ */
4533
+ get: {
4534
+ parameters: {
4535
+ query?: never;
4536
+ header?: never;
4537
+ path: {
4538
+ connectionId: string;
4539
+ };
4540
+ cookie?: never;
4541
+ };
4542
+ requestBody?: never;
4543
+ responses: {
4544
+ /** @description Usage summary */
4545
+ 200: {
4546
+ headers: {
4547
+ [name: string]: unknown;
4548
+ };
4549
+ content: {
4550
+ "application/json": components["schemas"]["ConnectionUsageResponse"];
4551
+ };
4552
+ };
4553
+ 404: components["responses"]["NotFound"];
4554
+ };
4555
+ };
4556
+ put?: never;
4557
+ post?: never;
4558
+ delete?: never;
4559
+ options?: never;
4560
+ head?: never;
4561
+ patch?: never;
4562
+ trace?: never;
4563
+ };
4564
+ "/v1/platform/connections/{connectionId}/entitlements": {
4565
+ parameters: {
4566
+ query?: never;
4567
+ header?: never;
4568
+ path?: never;
4569
+ cookie?: never;
4570
+ };
4571
+ /**
4572
+ * List entitlement evaluations
4573
+ * @description Returns on-chain entitlement watch status for the connection.
4574
+ */
4575
+ get: {
4576
+ parameters: {
4577
+ query?: never;
4578
+ header?: never;
4579
+ path: {
4580
+ connectionId: string;
4581
+ };
4582
+ cookie?: never;
4583
+ };
4584
+ requestBody?: never;
4585
+ responses: {
4586
+ /** @description Entitlement watches */
4587
+ 200: {
4588
+ headers: {
4589
+ [name: string]: unknown;
4590
+ };
4591
+ content: {
4592
+ "application/json": components["schemas"]["EntitlementsListResponse"];
4593
+ };
4594
+ };
4595
+ 404: components["responses"]["NotFound"];
4596
+ };
4597
+ };
4598
+ put?: never;
4599
+ post?: never;
4600
+ delete?: never;
4601
+ options?: never;
4602
+ head?: never;
4603
+ patch?: never;
4604
+ trace?: never;
4605
+ };
4606
+ "/v1/platform/connections/{connectionId}/entitlements/refresh": {
4607
+ parameters: {
4608
+ query?: never;
4609
+ header?: never;
4610
+ path?: never;
4611
+ cookie?: never;
4612
+ };
4613
+ get?: never;
4614
+ put?: never;
4615
+ /**
4616
+ * Refresh entitlement evaluations
4617
+ * @description Triggers an immediate entitlement monitor cycle for this connection's org.
4618
+ */
4619
+ post: {
4620
+ parameters: {
4621
+ query?: never;
4622
+ header?: never;
4623
+ path: {
4624
+ connectionId: string;
4625
+ };
4626
+ cookie?: never;
4627
+ };
4628
+ requestBody?: never;
4629
+ responses: {
4630
+ /** @description Refresh accepted */
4631
+ 202: {
4632
+ headers: {
4633
+ [name: string]: unknown;
4634
+ };
4635
+ content?: never;
4636
+ };
4637
+ 404: components["responses"]["NotFound"];
4638
+ };
4639
+ };
4640
+ delete?: never;
4641
+ options?: never;
4642
+ head?: never;
4643
+ patch?: never;
4644
+ trace?: never;
4645
+ };
4296
4646
  "/v1/platform/apps/{appId}/audit": {
4297
4647
  parameters: {
4298
4648
  query?: never;
@@ -4744,7 +5094,8 @@ export interface paths {
4744
5094
  path?: never;
4745
5095
  cookie?: never;
4746
5096
  };
4747
- get?: never;
5097
+ /** Get a spend policy by ID */
5098
+ get: operations["getSpendPolicy"];
4748
5099
  put?: never;
4749
5100
  post?: never;
4750
5101
  /** Delete a spend policy */
@@ -4761,7 +5112,12 @@ export interface paths {
4761
5112
  path?: never;
4762
5113
  cookie?: never;
4763
5114
  };
4764
- get?: never;
5115
+ /**
5116
+ * Get effective spend policy for a connection
5117
+ * @description Returns the effective spend policy for the connected user, resolving
5118
+ * per-user overrides before app-level defaults. Requires plt_ platform auth.
5119
+ */
5120
+ get: operations["getConnectionSpendPolicy"];
4765
5121
  /**
4766
5122
  * Set per-user spend policy override
4767
5123
  * @description Override the app-wide spend policy for a specific connected user. This
@@ -4776,6 +5132,66 @@ export interface paths {
4776
5132
  patch?: never;
4777
5133
  trace?: never;
4778
5134
  };
5135
+ "/v1/platform/connections/{connectionId}/approvals": {
5136
+ parameters: {
5137
+ query?: never;
5138
+ header?: never;
5139
+ path?: never;
5140
+ cookie?: never;
5141
+ };
5142
+ /**
5143
+ * List approvals for a platform connection
5144
+ * @description Returns approvals assigned to the connection's user, filtered to agents
5145
+ * provisioned on the connection. Requires plt_ platform auth.
5146
+ */
5147
+ get: operations["listConnectionApprovals"];
5148
+ put?: never;
5149
+ post?: never;
5150
+ delete?: never;
5151
+ options?: never;
5152
+ head?: never;
5153
+ patch?: never;
5154
+ trace?: never;
5155
+ };
5156
+ "/v1/platform/connections/{connectionId}/approvals/{approvalId}": {
5157
+ parameters: {
5158
+ query?: never;
5159
+ header?: never;
5160
+ path?: never;
5161
+ cookie?: never;
5162
+ };
5163
+ /** Get a connection-scoped approval */
5164
+ get: operations["getConnectionApproval"];
5165
+ put?: never;
5166
+ post?: never;
5167
+ delete?: never;
5168
+ options?: never;
5169
+ head?: never;
5170
+ patch?: never;
5171
+ trace?: never;
5172
+ };
5173
+ "/v1/platform/connections/{connectionId}/pending-approvals": {
5174
+ parameters: {
5175
+ query?: never;
5176
+ header?: never;
5177
+ path?: never;
5178
+ cookie?: never;
5179
+ };
5180
+ /**
5181
+ * List pending consensus approvals for a connection
5182
+ * @description Returns pending approvals for agents provisioned on the connection,
5183
+ * including `action_payload` and `payload_hash` for consensus UX.
5184
+ * Requires plt_ platform auth.
5185
+ */
5186
+ get: operations["listConnectionPendingApprovals"];
5187
+ put?: never;
5188
+ post?: never;
5189
+ delete?: never;
5190
+ options?: never;
5191
+ head?: never;
5192
+ patch?: never;
5193
+ trace?: never;
5194
+ };
4779
5195
  "/v1/approvals": {
4780
5196
  parameters: {
4781
5197
  query?: never;
@@ -5938,7 +6354,7 @@ export interface paths {
5938
6354
  /**
5939
6355
  * Chat with a running runtime agent
5940
6356
  * @description Human-only. Proxies to the runtime container's OpenAI-compatible
5941
- * `POST /v1/chat/completions` (hermes / openclaw / openclaude chat bridge).
6357
+ * `POST /v1/chat/completions` (hermes / openclaw / openclaude / opencode chat bridge).
5942
6358
  * Starts the runtime if stopped. Streams SSE when `Accept: text/event-stream`
5943
6359
  * or `stream: true`. Conversation history is ephemeral (pass `messages`).
5944
6360
  * Requires a public URL (shell access, Shroud sidecar, or HTTP hosting).
@@ -7442,12 +7858,21 @@ export interface components {
7442
7858
  refresh_token?: string;
7443
7859
  mfa_required?: boolean;
7444
7860
  mfa_token?: string;
7861
+ /**
7862
+ * @description When MFA is required, which second factor to collect
7863
+ * @enum {string}
7864
+ */
7865
+ mfa_method?: "totp" | "passkey";
7445
7866
  };
7446
7867
  TokenResponse: {
7447
7868
  access_token: string;
7448
7869
  token_type: string;
7449
7870
  expires_in?: number;
7450
7871
  refresh_token?: string;
7872
+ mfa_required?: boolean;
7873
+ mfa_token?: string;
7874
+ /** @enum {string} */
7875
+ mfa_method?: "totp" | "passkey";
7451
7876
  };
7452
7877
  AgentTokenRequest: {
7453
7878
  /**
@@ -7537,6 +7962,9 @@ export interface components {
7537
7962
  };
7538
7963
  MfaStatusResponse: {
7539
7964
  enabled?: boolean;
7965
+ eligible?: boolean;
7966
+ totp_enabled?: boolean;
7967
+ passkey_mfa_enabled?: boolean;
7540
7968
  };
7541
7969
  MfaSetupResponse: {
7542
7970
  otpauth_uri?: string;
@@ -10132,6 +10560,28 @@ export interface components {
10132
10560
  */
10133
10561
  api_key_expires_at?: string | null;
10134
10562
  };
10563
+ PlatformAppDeleteResponse: {
10564
+ deleted: boolean;
10565
+ soft_delete: boolean;
10566
+ slug_released: boolean;
10567
+ former_slug: string;
10568
+ };
10569
+ /** @description Provide `target_org_id` or `target_user_email` (owner/admin in destination org). */
10570
+ TransferPlatformAppOwnershipRequest: {
10571
+ /** Format: uuid */
10572
+ target_org_id?: string;
10573
+ /** Format: email */
10574
+ target_user_email?: string;
10575
+ };
10576
+ TransferPlatformAppOwnershipResponse: {
10577
+ /** Format: uuid */
10578
+ app_id: string;
10579
+ /** Format: uuid */
10580
+ former_org_id: string;
10581
+ /** Format: uuid */
10582
+ new_org_id: string;
10583
+ message: string;
10584
+ };
10135
10585
  PlatformAppResponse: {
10136
10586
  /** Format: uuid */
10137
10587
  id?: string;
@@ -10202,7 +10652,11 @@ export interface components {
10202
10652
  UpsertPlatformUserRequest: {
10203
10653
  /** @description OIDC JWT from the platform's IdP (verified against JWKS) */
10204
10654
  subject_token?: string;
10205
- /** @default urn:ietf:params:oauth:token-type:jwt */
10655
+ /**
10656
+ * @description Token type for subject_token. Use `urn:1claw:params:oauth:token-type:siwe`
10657
+ * with `siwe_message` and `siwe_signature` for wallet-based provisioning.
10658
+ * @default urn:ietf:params:oauth:token-type:jwt
10659
+ */
10206
10660
  subject_token_type: string;
10207
10661
  /**
10208
10662
  * Format: email
@@ -10210,6 +10664,20 @@ export interface components {
10210
10664
  */
10211
10665
  email?: string;
10212
10666
  display_name?: string;
10667
+ /** @description EIP-4361 Sign-In With Ethereum message (required for SIWE upsert) */
10668
+ siwe_message?: string;
10669
+ /** @description Hex-encoded SIWE signature (required for SIWE upsert) */
10670
+ siwe_signature?: string;
10671
+ /**
10672
+ * Format: uri
10673
+ * @description Redirect URL after cross-org link consent
10674
+ */
10675
+ return_to?: string;
10676
+ /**
10677
+ * @description When true, creates a sub-org under the platform app's org
10678
+ * @default false
10679
+ */
10680
+ create_sub_org: boolean;
10213
10681
  };
10214
10682
  PlatformUserResponse: {
10215
10683
  /** Format: uuid */
@@ -10263,6 +10731,13 @@ export interface components {
10263
10731
  * @description URL to redirect the user to after claiming resources.
10264
10732
  */
10265
10733
  return_to?: string;
10734
+ /**
10735
+ * @description Template parameters substituted as `{{params.*}}` during bootstrap.
10736
+ * Combined with `Idempotency-Key` header for params-aware idempotent replay.
10737
+ */
10738
+ parameters?: {
10739
+ [key: string]: unknown;
10740
+ };
10266
10741
  };
10267
10742
  BootstrapResponse: {
10268
10743
  /** Format: uri */
@@ -10501,6 +10976,10 @@ export interface components {
10501
10976
  /** Format: date-time */
10502
10977
  created_at: string;
10503
10978
  };
10979
+ ApprovalListResponse: {
10980
+ approvals: components["schemas"]["ApprovalResponse"][];
10981
+ total: number;
10982
+ };
10504
10983
  ApprovalStatusResponse: {
10505
10984
  /** @enum {string} */
10506
10985
  status: "pending" | "approved" | "rejected" | "expired";
@@ -10593,6 +11072,25 @@ export interface components {
10593
11072
  allowed_tokens?: string[];
10594
11073
  /** @description Maximum number of transactions per 24h window */
10595
11074
  max_transactions_per_day?: number;
11075
+ /** @description Monthly LLM inference allowance in USD (decimal string) */
11076
+ inference_allowance_usd?: string;
11077
+ /**
11078
+ * @description Percent of allowance held in reserve (not spendable)
11079
+ * @default 25
11080
+ */
11081
+ inference_reserved_pct: number;
11082
+ /**
11083
+ * @description When true, block inference when allowance is exhausted
11084
+ * @default true
11085
+ */
11086
+ inference_hard_stop: boolean;
11087
+ /**
11088
+ * @default policy
11089
+ * @enum {string}
11090
+ */
11091
+ inference_allowance_mode: "policy" | "credits";
11092
+ /** @description Maximum estimated cost per LLM request in USD */
11093
+ max_request_cost_usd?: string;
10596
11094
  /**
10597
11095
  * @description Human factor auth requirements for send/swap/export.
10598
11096
  * Fields: send, swap, export (password_or_passkey | passkey_only | passkey_required | password_only | reauth_token_only),
@@ -10602,6 +11100,88 @@ export interface components {
10602
11100
  [key: string]: unknown;
10603
11101
  };
10604
11102
  };
11103
+ SiweChallengeRequest: {
11104
+ /** @description Optional SIWE domain override (defaults to platform app's siwe_domain) */
11105
+ domain?: string;
11106
+ };
11107
+ SiweChallengeResponse: {
11108
+ nonce: string;
11109
+ /** @description Seconds until nonce expiry */
11110
+ expires_in: number;
11111
+ domain: string;
11112
+ };
11113
+ ConnectionDetailResponse: {
11114
+ /** Format: uuid */
11115
+ connection_id: string;
11116
+ /** Format: uuid */
11117
+ user_id: string;
11118
+ status: string;
11119
+ entitlement_status: string;
11120
+ wallet_address?: string | null;
11121
+ vault_ids: string[];
11122
+ agent_ids: string[];
11123
+ /** Format: date-time */
11124
+ claimed_at?: string | null;
11125
+ claim: components["schemas"]["ClaimStatusResponse"];
11126
+ };
11127
+ ClaimStatusResponse: {
11128
+ /** @enum {string} */
11129
+ status: "pending" | "active" | "claimed";
11130
+ /** Format: date-time */
11131
+ redeemed_at?: string | null;
11132
+ };
11133
+ ConnectionUsageResponse: {
11134
+ /** Format: uuid */
11135
+ connection_id: string;
11136
+ /** @description UTC month (YYYY-MM) */
11137
+ period: string;
11138
+ inference_spent_usd: string;
11139
+ };
11140
+ EntitlementsListResponse: {
11141
+ evaluations: components["schemas"]["EntitlementEvaluationResponse"][];
11142
+ };
11143
+ EntitlementEvaluationResponse: {
11144
+ id: string;
11145
+ status: string;
11146
+ watch_kind: string;
11147
+ chain: string;
11148
+ holder_address: string;
11149
+ last_value_raw?: string | null;
11150
+ /** Format: date-time */
11151
+ last_checked_at?: string | null;
11152
+ };
11153
+ TemplatePreviewRequest: {
11154
+ parameters?: {
11155
+ [key: string]: unknown;
11156
+ };
11157
+ subject?: {
11158
+ user_id?: string;
11159
+ external_subject?: string;
11160
+ wallet_address?: string;
11161
+ email?: string;
11162
+ };
11163
+ };
11164
+ TemplatePreviewResponse: {
11165
+ resolved_spec: {
11166
+ [key: string]: unknown;
11167
+ };
11168
+ };
11169
+ InferenceBudgetResponse: {
11170
+ allowance_usd: string;
11171
+ spent_usd: string;
11172
+ remaining_usd: string;
11173
+ reserved_pct: number;
11174
+ max_request_cost_usd: string;
11175
+ /** Format: date-time */
11176
+ period_end: string;
11177
+ /** Format: uuid */
11178
+ connection_id?: string | null;
11179
+ };
11180
+ InferenceBudgetUnconfiguredResponse: {
11181
+ allowance_usd?: string | null;
11182
+ remaining_usd?: unknown;
11183
+ message?: string;
11184
+ };
10605
11185
  SpendPolicyResponse: {
10606
11186
  /** Format: uuid */
10607
11187
  id: string;
@@ -10616,6 +11196,11 @@ export interface components {
10616
11196
  allowed_chains?: string[];
10617
11197
  allowed_tokens?: string[];
10618
11198
  max_transactions_per_day?: number | null;
11199
+ inference_allowance_usd?: string | null;
11200
+ inference_reserved_pct?: number | null;
11201
+ inference_hard_stop?: boolean | null;
11202
+ inference_allowance_mode?: string | null;
11203
+ max_request_cost_usd?: string | null;
10619
11204
  human_factor_auth?: {
10620
11205
  [key: string]: unknown;
10621
11206
  } | null;
@@ -10672,6 +11257,13 @@ export interface components {
10672
11257
  type: "public-key";
10673
11258
  transports?: string[];
10674
11259
  };
11260
+ MfaPasskeyCompleteRequest: {
11261
+ mfa_token: string;
11262
+ credential_id: string;
11263
+ authenticator_data: string;
11264
+ client_data_json: string;
11265
+ signature: string;
11266
+ };
10675
11267
  GuardrailWideningQueuedResponse: {
10676
11268
  /** @enum {string} */
10677
11269
  status: "awaiting_approval";
@@ -13437,6 +14029,7 @@ export interface operations {
13437
14029
  content: {
13438
14030
  "application/json": {
13439
14031
  require_passkey_for_vaults?: boolean;
14032
+ require_passkey_for_mfa?: boolean;
13440
14033
  passkey_count?: number;
13441
14034
  };
13442
14035
  };
@@ -13456,6 +14049,7 @@ export interface operations {
13456
14049
  content: {
13457
14050
  "application/json": {
13458
14051
  require_passkey_for_vaults?: boolean;
14052
+ require_passkey_for_mfa?: boolean;
13459
14053
  };
13460
14054
  };
13461
14055
  };
@@ -13606,6 +14200,58 @@ export interface operations {
13606
14200
  401: components["responses"]["Unauthorized"];
13607
14201
  };
13608
14202
  };
14203
+ mfaPasskeyBegin: {
14204
+ parameters: {
14205
+ query?: never;
14206
+ header?: never;
14207
+ path?: never;
14208
+ cookie?: never;
14209
+ };
14210
+ requestBody: {
14211
+ content: {
14212
+ "application/json": {
14213
+ mfa_token: string;
14214
+ };
14215
+ };
14216
+ };
14217
+ responses: {
14218
+ /** @description WebAuthn challenge */
14219
+ 200: {
14220
+ headers: {
14221
+ [name: string]: unknown;
14222
+ };
14223
+ content: {
14224
+ "application/json": components["schemas"]["PasskeyAssertBeginResponse"];
14225
+ };
14226
+ };
14227
+ 400: components["responses"]["BadRequest"];
14228
+ };
14229
+ };
14230
+ mfaPasskeyComplete: {
14231
+ parameters: {
14232
+ query?: never;
14233
+ header?: never;
14234
+ path?: never;
14235
+ cookie?: never;
14236
+ };
14237
+ requestBody: {
14238
+ content: {
14239
+ "application/json": components["schemas"]["MfaPasskeyCompleteRequest"];
14240
+ };
14241
+ };
14242
+ responses: {
14243
+ /** @description MFA verified, JWT issued */
14244
+ 200: {
14245
+ headers: {
14246
+ [name: string]: unknown;
14247
+ };
14248
+ content: {
14249
+ "application/json": components["schemas"]["TokenResponse"];
14250
+ };
14251
+ };
14252
+ 401: components["responses"]["Unauthorized"];
14253
+ };
14254
+ };
13609
14255
  mfaDisable: {
13610
14256
  parameters: {
13611
14257
  query?: never;
@@ -18194,6 +18840,27 @@ export interface operations {
18194
18840
  401: components["responses"]["Unauthorized"];
18195
18841
  };
18196
18842
  };
18843
+ getUserInferenceBudget: {
18844
+ parameters: {
18845
+ query?: never;
18846
+ header?: never;
18847
+ path?: never;
18848
+ cookie?: never;
18849
+ };
18850
+ requestBody?: never;
18851
+ responses: {
18852
+ /** @description Inference budget (or unconfigured message) */
18853
+ 200: {
18854
+ headers: {
18855
+ [name: string]: unknown;
18856
+ };
18857
+ content: {
18858
+ "application/json": components["schemas"]["InferenceBudgetResponse"] | components["schemas"]["InferenceBudgetUnconfiguredResponse"];
18859
+ };
18860
+ };
18861
+ 403: components["responses"]["Forbidden"];
18862
+ };
18863
+ };
18197
18864
  listWebhooks: {
18198
18865
  parameters: {
18199
18866
  query?: never;
@@ -18651,6 +19318,37 @@ export interface operations {
18651
19318
  };
18652
19319
  };
18653
19320
  };
19321
+ transferPlatformAppOwnership: {
19322
+ parameters: {
19323
+ query?: never;
19324
+ header: {
19325
+ "X-Auth-Confirm": string;
19326
+ };
19327
+ path: {
19328
+ appId: string;
19329
+ };
19330
+ cookie?: never;
19331
+ };
19332
+ requestBody: {
19333
+ content: {
19334
+ "application/json": components["schemas"]["TransferPlatformAppOwnershipRequest"];
19335
+ };
19336
+ };
19337
+ responses: {
19338
+ /** @description Ownership transferred */
19339
+ 200: {
19340
+ headers: {
19341
+ [name: string]: unknown;
19342
+ };
19343
+ content: {
19344
+ "application/json": components["schemas"]["TransferPlatformAppOwnershipResponse"];
19345
+ };
19346
+ };
19347
+ 400: components["responses"]["BadRequest"];
19348
+ 403: components["responses"]["Forbidden"];
19349
+ 404: components["responses"]["NotFound"];
19350
+ };
19351
+ };
18654
19352
  getPlatformAppStats: {
18655
19353
  parameters: {
18656
19354
  query?: never;
@@ -18890,6 +19588,30 @@ export interface operations {
18890
19588
  403: components["responses"]["Forbidden"];
18891
19589
  };
18892
19590
  };
19591
+ getSpendPolicy: {
19592
+ parameters: {
19593
+ query?: never;
19594
+ header?: never;
19595
+ path: {
19596
+ appId: string;
19597
+ policyId: string;
19598
+ };
19599
+ cookie?: never;
19600
+ };
19601
+ requestBody?: never;
19602
+ responses: {
19603
+ /** @description Spend policy */
19604
+ 200: {
19605
+ headers: {
19606
+ [name: string]: unknown;
19607
+ };
19608
+ content: {
19609
+ "application/json": components["schemas"]["SpendPolicyResponse"];
19610
+ };
19611
+ };
19612
+ 404: components["responses"]["NotFound"];
19613
+ };
19614
+ };
18893
19615
  deleteSpendPolicy: {
18894
19616
  parameters: {
18895
19617
  query?: never;
@@ -18912,7 +19634,7 @@ export interface operations {
18912
19634
  404: components["responses"]["NotFound"];
18913
19635
  };
18914
19636
  };
18915
- setUserSpendPolicy: {
19637
+ getConnectionSpendPolicy: {
18916
19638
  parameters: {
18917
19639
  query?: never;
18918
19640
  header?: never;
@@ -18921,13 +19643,41 @@ export interface operations {
18921
19643
  };
18922
19644
  cookie?: never;
18923
19645
  };
19646
+ requestBody?: never;
19647
+ responses: {
19648
+ /** @description Effective spend policy (or null) */
19649
+ 200: {
19650
+ headers: {
19651
+ [name: string]: unknown;
19652
+ };
19653
+ content: {
19654
+ "application/json": {
19655
+ policy?: components["schemas"]["SpendPolicyResponse"] | null;
19656
+ };
19657
+ };
19658
+ };
19659
+ 404: components["responses"]["NotFound"];
19660
+ };
19661
+ };
19662
+ setUserSpendPolicy: {
19663
+ parameters: {
19664
+ query?: never;
19665
+ header?: {
19666
+ /** @description Optional replay protection; same key + body returns cached response (409 on body mismatch). */
19667
+ "Idempotency-Key"?: string;
19668
+ };
19669
+ path: {
19670
+ connectionId: string;
19671
+ };
19672
+ cookie?: never;
19673
+ };
18924
19674
  requestBody: {
18925
19675
  content: {
18926
19676
  "application/json": components["schemas"]["CreateSpendPolicyRequest"];
18927
19677
  };
18928
19678
  };
18929
19679
  responses: {
18930
- /** @description Spend policy set */
19680
+ /** @description Spend policy set (or idempotent replay) */
18931
19681
  200: {
18932
19682
  headers: {
18933
19683
  [name: string]: unknown;
@@ -18936,8 +19686,104 @@ export interface operations {
18936
19686
  "application/json": components["schemas"]["SpendPolicyResponse"];
18937
19687
  };
18938
19688
  };
19689
+ /** @description Spend policy created */
19690
+ 201: {
19691
+ headers: {
19692
+ [name: string]: unknown;
19693
+ };
19694
+ content: {
19695
+ "application/json": components["schemas"]["SpendPolicyResponse"];
19696
+ };
19697
+ };
18939
19698
  400: components["responses"]["BadRequest"];
18940
19699
  403: components["responses"]["Forbidden"];
19700
+ 404: components["responses"]["NotFound"];
19701
+ /** @description Idempotency-Key reused with different body */
19702
+ 409: {
19703
+ headers: {
19704
+ [name: string]: unknown;
19705
+ };
19706
+ content?: never;
19707
+ };
19708
+ };
19709
+ };
19710
+ listConnectionApprovals: {
19711
+ parameters: {
19712
+ query?: {
19713
+ status?: string;
19714
+ risk_tier?: number;
19715
+ limit?: number;
19716
+ offset?: number;
19717
+ };
19718
+ header?: never;
19719
+ path: {
19720
+ connectionId: string;
19721
+ };
19722
+ cookie?: never;
19723
+ };
19724
+ requestBody?: never;
19725
+ responses: {
19726
+ /** @description Connection-scoped approvals */
19727
+ 200: {
19728
+ headers: {
19729
+ [name: string]: unknown;
19730
+ };
19731
+ content: {
19732
+ "application/json": components["schemas"]["ApprovalListResponse"];
19733
+ };
19734
+ };
19735
+ 404: components["responses"]["NotFound"];
19736
+ };
19737
+ };
19738
+ getConnectionApproval: {
19739
+ parameters: {
19740
+ query?: never;
19741
+ header?: never;
19742
+ path: {
19743
+ connectionId: string;
19744
+ approvalId: string;
19745
+ };
19746
+ cookie?: never;
19747
+ };
19748
+ requestBody?: never;
19749
+ responses: {
19750
+ /** @description Approval detail */
19751
+ 200: {
19752
+ headers: {
19753
+ [name: string]: unknown;
19754
+ };
19755
+ content: {
19756
+ "application/json": components["schemas"]["ApprovalResponse"];
19757
+ };
19758
+ };
19759
+ 404: components["responses"]["NotFound"];
19760
+ };
19761
+ };
19762
+ listConnectionPendingApprovals: {
19763
+ parameters: {
19764
+ query?: {
19765
+ status?: string;
19766
+ limit?: number;
19767
+ offset?: number;
19768
+ };
19769
+ header?: never;
19770
+ path: {
19771
+ connectionId: string;
19772
+ };
19773
+ cookie?: never;
19774
+ };
19775
+ requestBody?: never;
19776
+ responses: {
19777
+ /** @description Pending approvals list */
19778
+ 200: {
19779
+ headers: {
19780
+ [name: string]: unknown;
19781
+ };
19782
+ content: {
19783
+ "application/json": components["schemas"]["PendingApprovalListResponse"];
19784
+ };
19785
+ };
19786
+ 404: components["responses"]["NotFound"];
18941
19787
  };
18942
19788
  };
18943
19789
  listApprovals: {