codai-sdk 0.72.0 → 0.74.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/dist/index.d.ts CHANGED
@@ -6099,8 +6099,26 @@ type paths$1 = {
6099
6099
  readonly get?: never;
6100
6100
  readonly put?: never;
6101
6101
  /**
6102
- * Create a production (brief → video)
6103
- * @description One brief becomes a finished promo video, server-side: ONE model turn storyboards it on a built-in video starter
6102
+ * Create a production (brief → finished output)
6103
+ * @description One brief becomes a finished output of one of 8 kinds (`kind`, default `video`), server-side. Every kind runs one
6104
+ * bounded plan turn (`codai::production-storyboard`), generates its images or music under one wallet hold, saves an
6105
+ * editable creative and builds the output with the regular Studio builders:
6106
+ *
6107
+ * | kind | plan | output (`outputs[].role` → format) |
6108
+ * |---|---|---|
6109
+ * | `video` | storyboard on a starter | MP4 render (`render_id`), vision review + one repair |
6110
+ * | `image` | headline, subline, image prompt, format (1:1, 4:5 or 9:16) | `image` → PNG |
6111
+ * | `deck` | title + 4–8 slides | `document` → PPTX (16:9) |
6112
+ * | `doc` | title + 4–8 sections | `document` → DOCX (A4) |
6113
+ * | `sheet` | title + columns + 5–20 rows | `document` → XLSX |
6114
+ * | `carousel` | 4–8 slides (4:5) | `pages` → ZIP of PNGs, `cover` → PNG |
6115
+ * | `print` | poster or flyer, A4 or A5 | `pdf` → PDF |
6116
+ * | `audio` | jingle or song, ≤ 60 s (Lyria 3 Clip, not available on EU data-residency keys) | `audio` → MP3 |
6117
+ *
6118
+ * `starter`, `voice`, `narration` and `aspect_ratio` apply to `video` only (`starter` with another kind is a 400).
6119
+ * Non-video kinds have no review/repair step and return `kind`, `output_asset_id` and `outputs`; video responses are
6120
+ * unchanged. For `video`:
6121
+ * one brief becomes a finished promo video: ONE model turn storyboards it on a built-in video starter
6104
6122
  * (copy vars, one image prompt and one narration line per scene), every scene gets a codai-image still and a
6105
6123
  * narration line (in parallel, billed once each under one wallet hold), the result is saved as an editable creative
6106
6124
  * and a draft render is queued. When the render is ready a vision review of one frame per scene may fix text once
@@ -7482,6 +7500,90 @@ type paths$1 = {
7482
7500
  readonly patch?: never;
7483
7501
  readonly trace?: never;
7484
7502
  };
7503
+ readonly '/v1/vault/add-requests': {
7504
+ readonly parameters: {
7505
+ readonly query?: never;
7506
+ readonly header?: never;
7507
+ readonly path?: never;
7508
+ readonly cookie?: never;
7509
+ };
7510
+ readonly get?: never;
7511
+ readonly put?: never;
7512
+ /**
7513
+ * Ask the user to add a secret
7514
+ * @description An agent asks you to add a missing credential. Answers a hub link (`url`) the agent shows you; you add the item in the hub and the request completes. No secret passes through this route. An equivalent pending request is reused (`url` null). Always 201.
7515
+ */
7516
+ readonly post: operations$1['createVaultAddRequest'];
7517
+ readonly delete?: never;
7518
+ readonly options?: never;
7519
+ readonly head?: never;
7520
+ readonly patch?: never;
7521
+ readonly trace?: never;
7522
+ };
7523
+ readonly '/v1/vault/add-requests/{id}': {
7524
+ readonly parameters: {
7525
+ readonly query?: never;
7526
+ readonly header?: never;
7527
+ readonly path?: never;
7528
+ readonly cookie?: never;
7529
+ };
7530
+ /**
7531
+ * Add request status
7532
+ * @description Agents poll this: once `completed`, `handle` is the new `{{vault:<slug>}}`.
7533
+ */
7534
+ readonly get: operations$1['getVaultAddRequest'];
7535
+ readonly put?: never;
7536
+ readonly post?: never;
7537
+ /**
7538
+ * Cancel an add request
7539
+ * @description Marks a pending request `cancelled`.
7540
+ */
7541
+ readonly delete: operations$1['cancelVaultAddRequest'];
7542
+ readonly options?: never;
7543
+ readonly head?: never;
7544
+ readonly patch?: never;
7545
+ readonly trace?: never;
7546
+ };
7547
+ readonly '/v1/vault/add-requests/{id}/complete': {
7548
+ readonly parameters: {
7549
+ readonly query?: never;
7550
+ readonly header?: never;
7551
+ readonly path?: never;
7552
+ readonly cookie?: never;
7553
+ };
7554
+ readonly get?: never;
7555
+ readonly put?: never;
7556
+ /**
7557
+ * Complete an add request
7558
+ * @description Links the item you added (it must be in one of your vaults). Idempotent for the same item; another item answers 409 `add_request_completed`, a closed request 409 `add_request_closed`.
7559
+ */
7560
+ readonly post: operations$1['completeVaultAddRequest'];
7561
+ readonly delete?: never;
7562
+ readonly options?: never;
7563
+ readonly head?: never;
7564
+ readonly patch?: never;
7565
+ readonly trace?: never;
7566
+ };
7567
+ readonly '/v1/vault/add-requests/lookup': {
7568
+ readonly parameters: {
7569
+ readonly query?: never;
7570
+ readonly header?: never;
7571
+ readonly path?: never;
7572
+ readonly cookie?: never;
7573
+ };
7574
+ readonly get?: never;
7575
+ readonly put?: never;
7576
+ /**
7577
+ * Look up an add request by link token
7578
+ * @description For the hub deep link: the full request, only for the signed-in owner; anyone else gets 404.
7579
+ */
7580
+ readonly post: operations$1['lookupVaultAddRequest'];
7581
+ readonly delete?: never;
7582
+ readonly options?: never;
7583
+ readonly head?: never;
7584
+ readonly patch?: never;
7585
+ readonly trace?: never;
7586
+ };
7485
7587
  readonly '/v1/vault/approvals': {
7486
7588
  readonly parameters: {
7487
7589
  readonly query?: never;
@@ -7562,6 +7664,46 @@ type paths$1 = {
7562
7664
  readonly patch?: never;
7563
7665
  readonly trace?: never;
7564
7666
  };
7667
+ readonly '/v1/vault/derive': {
7668
+ readonly parameters: {
7669
+ readonly query?: never;
7670
+ readonly header?: never;
7671
+ readonly path?: never;
7672
+ readonly cookie?: never;
7673
+ };
7674
+ readonly get?: never;
7675
+ readonly put?: never;
7676
+ /**
7677
+ * Derive a short-lived credential
7678
+ * @description For codai brokers only (`x-codai-agent: codaid…` or `desktop…`). Same device proof (over `handles = [handle]`) and env-mode policy as `POST /v1/vault/resolve`; then mints a credential from the root item through its deriver, valid `min(ttl_s, max_ttl_s)`. 202 = approval required; 409 `not_cloud_usable` or `no_deriver`; 502 `derive_failed` (upstream error, sanitised).
7679
+ */
7680
+ readonly post: operations$1['deriveVaultCredential'];
7681
+ readonly delete?: never;
7682
+ readonly options?: never;
7683
+ readonly head?: never;
7684
+ readonly patch?: never;
7685
+ readonly trace?: never;
7686
+ };
7687
+ readonly '/v1/vault/derivers': {
7688
+ readonly parameters: {
7689
+ readonly query?: never;
7690
+ readonly header?: never;
7691
+ readonly path?: never;
7692
+ readonly cookie?: never;
7693
+ };
7694
+ /**
7695
+ * List credential derivers
7696
+ * @description Derivers configured on items in your vaults (provider, config, max TTL). Never secret values.
7697
+ */
7698
+ readonly get: operations$1['listVaultDerivers'];
7699
+ readonly put?: never;
7700
+ readonly post?: never;
7701
+ readonly delete?: never;
7702
+ readonly options?: never;
7703
+ readonly head?: never;
7704
+ readonly patch?: never;
7705
+ readonly trace?: never;
7706
+ };
7565
7707
  readonly '/v1/vault/devices': {
7566
7708
  readonly parameters: {
7567
7709
  readonly query?: never;
@@ -7630,6 +7772,174 @@ type paths$1 = {
7630
7772
  readonly patch?: never;
7631
7773
  readonly trace?: never;
7632
7774
  };
7775
+ readonly '/v1/vault/emergency': {
7776
+ readonly parameters: {
7777
+ readonly query?: never;
7778
+ readonly header?: never;
7779
+ readonly path?: never;
7780
+ readonly cookie?: never;
7781
+ };
7782
+ /**
7783
+ * List emergency contacts
7784
+ * @description Contacts you invited (`outgoing`) and people who named you (`incoming`); revoked ones are omitted.
7785
+ */
7786
+ readonly get: operations$1['listVaultEmergency'];
7787
+ readonly put?: never;
7788
+ /**
7789
+ * Invite an emergency contact
7790
+ * @description Emails an invitation. Always 202 with an id, whether or not the address has a codai account (enumeration-safe); inviting the same address again returns the existing id.
7791
+ */
7792
+ readonly post: operations$1['inviteVaultEmergency'];
7793
+ readonly delete?: never;
7794
+ readonly options?: never;
7795
+ readonly head?: never;
7796
+ readonly patch?: never;
7797
+ readonly trace?: never;
7798
+ };
7799
+ readonly '/v1/vault/emergency/{id}': {
7800
+ readonly parameters: {
7801
+ readonly query?: never;
7802
+ readonly header?: never;
7803
+ readonly path?: never;
7804
+ readonly cookie?: never;
7805
+ };
7806
+ readonly get?: never;
7807
+ readonly put?: never;
7808
+ readonly post?: never;
7809
+ /**
7810
+ * Revoke or decline
7811
+ * @description The grantor revokes the contact or the contact declines; sealed keys are dropped and any access ends at once.
7812
+ */
7813
+ readonly delete: operations$1['revokeVaultEmergency'];
7814
+ readonly options?: never;
7815
+ readonly head?: never;
7816
+ /**
7817
+ * Change an emergency contact
7818
+ * @description Grantor: change the wait and/or the covered vaults (send at least one). Changing the vaults returns a sealed contact to `accepted`, so the keys must be sealed again.
7819
+ */
7820
+ readonly patch: operations$1['updateVaultEmergency'];
7821
+ readonly trace?: never;
7822
+ };
7823
+ readonly '/v1/vault/emergency/{id}/approve': {
7824
+ readonly parameters: {
7825
+ readonly query?: never;
7826
+ readonly header?: never;
7827
+ readonly path?: never;
7828
+ readonly cookie?: never;
7829
+ };
7830
+ readonly get?: never;
7831
+ readonly put?: never;
7832
+ /**
7833
+ * Approve an access request now
7834
+ * @description Grantor: grants a pending request immediately instead of waiting for `release_at`.
7835
+ */
7836
+ readonly post: operations$1['approveVaultEmergency'];
7837
+ readonly delete?: never;
7838
+ readonly options?: never;
7839
+ readonly head?: never;
7840
+ readonly patch?: never;
7841
+ readonly trace?: never;
7842
+ };
7843
+ readonly '/v1/vault/emergency/{id}/deny': {
7844
+ readonly parameters: {
7845
+ readonly query?: never;
7846
+ readonly header?: never;
7847
+ readonly path?: never;
7848
+ readonly cookie?: never;
7849
+ };
7850
+ readonly get?: never;
7851
+ readonly put?: never;
7852
+ /**
7853
+ * Deny an access request
7854
+ * @description Grantor: denies a pending request; the contact returns to `sealed` and may ask again later.
7855
+ */
7856
+ readonly post: operations$1['denyVaultEmergency'];
7857
+ readonly delete?: never;
7858
+ readonly options?: never;
7859
+ readonly head?: never;
7860
+ readonly patch?: never;
7861
+ readonly trace?: never;
7862
+ };
7863
+ readonly '/v1/vault/emergency/{id}/request': {
7864
+ readonly parameters: {
7865
+ readonly query?: never;
7866
+ readonly header?: never;
7867
+ readonly path?: never;
7868
+ readonly cookie?: never;
7869
+ };
7870
+ readonly get?: never;
7871
+ readonly put?: never;
7872
+ /**
7873
+ * Request emergency access
7874
+ * @description Contact: starts the wait (`delay_hours`); the grantor is notified and can deny. Without a denial access is granted at `release_at`. The body is optional.
7875
+ */
7876
+ readonly post: operations$1['requestVaultEmergency'];
7877
+ readonly delete?: never;
7878
+ readonly options?: never;
7879
+ readonly head?: never;
7880
+ readonly patch?: never;
7881
+ readonly trace?: never;
7882
+ };
7883
+ readonly '/v1/vault/emergency/{id}/seal': {
7884
+ readonly parameters: {
7885
+ readonly query?: never;
7886
+ readonly header?: never;
7887
+ readonly path?: never;
7888
+ readonly cookie?: never;
7889
+ };
7890
+ readonly get?: never;
7891
+ /**
7892
+ * Seal vault keys to the contact
7893
+ * @description Grantor: uploads each covered vault key sealed client-side to the contact public keys, with the fingerprint you compared. The server never sees a vault key.
7894
+ */
7895
+ readonly put: operations$1['sealVaultEmergency'];
7896
+ readonly post?: never;
7897
+ readonly delete?: never;
7898
+ readonly options?: never;
7899
+ readonly head?: never;
7900
+ readonly patch?: never;
7901
+ readonly trace?: never;
7902
+ };
7903
+ readonly '/v1/vault/emergency/{id}/vault-data': {
7904
+ readonly parameters: {
7905
+ readonly query?: never;
7906
+ readonly header?: never;
7907
+ readonly path?: never;
7908
+ readonly cookie?: never;
7909
+ };
7910
+ /**
7911
+ * Read the granted vaults
7912
+ * @description Contact, status `granted`: the covered vaults (vault keys sealed to you) and their item envelopes. Ciphertext only; decrypt client-side with your vault account.
7913
+ */
7914
+ readonly get: operations$1['getVaultEmergencyData'];
7915
+ readonly put?: never;
7916
+ readonly post?: never;
7917
+ readonly delete?: never;
7918
+ readonly options?: never;
7919
+ readonly head?: never;
7920
+ readonly patch?: never;
7921
+ readonly trace?: never;
7922
+ };
7923
+ readonly '/v1/vault/emergency/accept': {
7924
+ readonly parameters: {
7925
+ readonly query?: never;
7926
+ readonly header?: never;
7927
+ readonly path?: never;
7928
+ readonly cookie?: never;
7929
+ };
7930
+ readonly get?: never;
7931
+ readonly put?: never;
7932
+ /**
7933
+ * Accept an emergency invitation
7934
+ * @description The contact accepts with the token from the email; needs a vault account (404 `vault_not_setup`). The grantor then seals the vault keys to the contact.
7935
+ */
7936
+ readonly post: operations$1['acceptVaultEmergency'];
7937
+ readonly delete?: never;
7938
+ readonly options?: never;
7939
+ readonly head?: never;
7940
+ readonly patch?: never;
7941
+ readonly trace?: never;
7942
+ };
7633
7943
  readonly '/v1/vault/events': {
7634
7944
  readonly parameters: {
7635
7945
  readonly query?: never;
@@ -7710,6 +8020,26 @@ type paths$1 = {
7710
8020
  readonly patch?: never;
7711
8021
  readonly trace?: never;
7712
8022
  };
8023
+ readonly '/v1/vault/hibp/range/{prefix}': {
8024
+ readonly parameters: {
8025
+ readonly query?: never;
8026
+ readonly header?: never;
8027
+ readonly path?: never;
8028
+ readonly cookie?: never;
8029
+ };
8030
+ /**
8031
+ * Breach check range (k-anonymity)
8032
+ * @description Proxies the Have I Been Pwned range API with padding: send the first 5 hex characters of a SHA-1, compare the returned `SUFFIX:COUNT` lines locally. The password and its full hash never leave the client. Cached 24 h; 300 calls per user per hour (429 with `Retry-After`).
8033
+ */
8034
+ readonly get: operations$1['getVaultHibpRange'];
8035
+ readonly put?: never;
8036
+ readonly post?: never;
8037
+ readonly delete?: never;
8038
+ readonly options?: never;
8039
+ readonly head?: never;
8040
+ readonly patch?: never;
8041
+ readonly trace?: never;
8042
+ };
7713
8043
  readonly '/v1/vault/http': {
7714
8044
  readonly parameters: {
7715
8045
  readonly query?: never;
@@ -7794,6 +8124,30 @@ type paths$1 = {
7794
8124
  readonly patch?: never;
7795
8125
  readonly trace?: never;
7796
8126
  };
8127
+ readonly '/v1/vault/items/{id}/deriver': {
8128
+ readonly parameters: {
8129
+ readonly query?: never;
8130
+ readonly header?: never;
8131
+ readonly path?: never;
8132
+ readonly cookie?: never;
8133
+ };
8134
+ readonly get?: never;
8135
+ /**
8136
+ * Set a credential deriver
8137
+ * @description Owner only. Turns a cloud-usable root item into a source of short-lived credentials (`aws_sts`, `gcp_sa`, `cloudflare`, `github_app`). The config is validated per provider (400 with the first issues).
8138
+ */
8139
+ readonly put: operations$1['setVaultItemDeriver'];
8140
+ readonly post?: never;
8141
+ /**
8142
+ * Remove a credential deriver
8143
+ * @description Owner only. 404 when the item has no deriver.
8144
+ */
8145
+ readonly delete: operations$1['deleteVaultItemDeriver'];
8146
+ readonly options?: never;
8147
+ readonly head?: never;
8148
+ readonly patch?: never;
8149
+ readonly trace?: never;
8150
+ };
7797
8151
  readonly '/v1/vault/items/{id}/limits': {
7798
8152
  readonly parameters: {
7799
8153
  readonly query?: never;
@@ -7814,6 +8168,46 @@ type paths$1 = {
7814
8168
  readonly patch?: never;
7815
8169
  readonly trace?: never;
7816
8170
  };
8171
+ readonly '/v1/vault/items/{id}/rotated': {
8172
+ readonly parameters: {
8173
+ readonly query?: never;
8174
+ readonly header?: never;
8175
+ readonly path?: never;
8176
+ readonly cookie?: never;
8177
+ };
8178
+ readonly get?: never;
8179
+ readonly put?: never;
8180
+ /**
8181
+ * Mark an item rotated
8182
+ * @description Editor or above: sets `rotated_at` to now and clears the breach flag.
8183
+ */
8184
+ readonly post: operations$1['markVaultItemRotated'];
8185
+ readonly delete?: never;
8186
+ readonly options?: never;
8187
+ readonly head?: never;
8188
+ readonly patch?: never;
8189
+ readonly trace?: never;
8190
+ };
8191
+ readonly '/v1/vault/items/{id}/rotation': {
8192
+ readonly parameters: {
8193
+ readonly query?: never;
8194
+ readonly header?: never;
8195
+ readonly path?: never;
8196
+ readonly cookie?: never;
8197
+ };
8198
+ readonly get?: never;
8199
+ /**
8200
+ * Set the rotation schedule
8201
+ * @description Editor or above. Send any of `interval_days` (1-730), `provider`, `snoozed_until`; null clears a value.
8202
+ */
8203
+ readonly put: operations$1['setVaultItemRotation'];
8204
+ readonly post?: never;
8205
+ readonly delete?: never;
8206
+ readonly options?: never;
8207
+ readonly head?: never;
8208
+ readonly patch?: never;
8209
+ readonly trace?: never;
8210
+ };
7817
8211
  readonly '/v1/vault/limits': {
7818
8212
  readonly parameters: {
7819
8213
  readonly query?: never;
@@ -7894,6 +8288,46 @@ type paths$1 = {
7894
8288
  readonly patch?: never;
7895
8289
  readonly trace?: never;
7896
8290
  };
8291
+ readonly '/v1/vault/rotation': {
8292
+ readonly parameters: {
8293
+ readonly query?: never;
8294
+ readonly header?: never;
8295
+ readonly path?: never;
8296
+ readonly cookie?: never;
8297
+ };
8298
+ /**
8299
+ * Rotation queue
8300
+ * @description Items in your vaults with their rotation state: breached first, then overdue, then soonest due; unscheduled last.
8301
+ */
8302
+ readonly get: operations$1['listVaultRotation'];
8303
+ readonly put?: never;
8304
+ readonly post?: never;
8305
+ readonly delete?: never;
8306
+ readonly options?: never;
8307
+ readonly head?: never;
8308
+ readonly patch?: never;
8309
+ readonly trace?: never;
8310
+ };
8311
+ readonly '/v1/vault/rotation/breach-report': {
8312
+ readonly parameters: {
8313
+ readonly query?: never;
8314
+ readonly header?: never;
8315
+ readonly path?: never;
8316
+ readonly cookie?: never;
8317
+ };
8318
+ readonly get?: never;
8319
+ readonly put?: never;
8320
+ /**
8321
+ * Report breach check results
8322
+ * @description The client reports what its local HIBP check found (count 0 = clean), up to 500 items; items outside your vaults are ignored. Newly breached items notify you.
8323
+ */
8324
+ readonly post: operations$1['reportVaultBreaches'];
8325
+ readonly delete?: never;
8326
+ readonly options?: never;
8327
+ readonly head?: never;
8328
+ readonly patch?: never;
8329
+ readonly trace?: never;
8330
+ };
7897
8331
  readonly '/v1/vault/rules': {
7898
8332
  readonly parameters: {
7899
8333
  readonly query?: never;
@@ -8225,7 +8659,7 @@ type components$1 = {
8225
8659
  * @description Outcome of `referral_code`; `null` when not sent.
8226
8660
  * @enum {string|null}
8227
8661
  */
8228
- readonly referral_result: 'window_closed' | 'none' | 'invalid_code' | 'self' | 'already_referred' | 'flagged' | 'granted' | 'cap_reached' | null;
8662
+ readonly referral_result: 'window_closed' | 'none' | 'invalid_code' | 'self' | 'already_referred' | 'flagged' | 'pending_payment' | 'granted' | 'cap_reached' | null;
8229
8663
  readonly training_opt_out: boolean;
8230
8664
  /** Format: uuid */
8231
8665
  readonly user_id: string;
@@ -16748,14 +17182,22 @@ type components$1 = {
16748
17182
  /** Format: date-time */
16749
17183
  readonly created_at: string;
16750
17184
  readonly creative_id: string | null;
17185
+ /** @description Requested length in seconds (video productions); null when none was requested. */
17186
+ readonly duration_s?: number | null;
16751
17187
  readonly error: string | null;
16752
17188
  readonly first_render_id: string | null;
16753
17189
  /** Format: uuid */
16754
17190
  readonly id: string;
17191
+ /** @description Present only for non-video productions. */
17192
+ readonly kind?: components$1['schemas']['StudioProductionKind'];
16755
17193
  /** @enum {string} */
16756
17194
  readonly language: 'en' | 'ro';
16757
17195
  /** @enum {string} */
16758
17196
  readonly object: 'studio.production';
17197
+ /** @description The primary output (`outputs[0].asset_id`), `null` until `status` is `succeeded`. Present only for non-video productions. */
17198
+ readonly output_asset_id?: string | null;
17199
+ /** @description The built outputs (empty until `status` is `succeeded`). Present only for non-video productions. */
17200
+ readonly outputs?: readonly components$1['schemas']['StudioProductionOutput'][];
16759
17201
  /**
16760
17202
  * @description storyboard → assets → render → qa → repair (at most once) → ready | failed.
16761
17203
  * @enum {string}
@@ -16782,15 +17224,18 @@ type components$1 = {
16782
17224
  /** Studio production request */
16783
17225
  readonly StudioProductionCreate: {
16784
17226
  /**
16785
- * @description Output format.
17227
+ * @description Output format (`video` only; the other kinds pick their own format).
16786
17228
  * @default 16:9
16787
17229
  * @enum {string}
16788
17230
  */
16789
17231
  readonly aspect_ratio?: '16:9' | '9:16' | '1:1';
16790
- /** @description What the video should say: product, audience, tone, call to action (10–2,000 characters). */
17232
+ /** @description What the output should say: product, audience, tone, call to action (10–2,000 characters). */
16791
17233
  readonly brief: string;
16792
17234
  /** @description Spending cap for the whole production in micro-USD (default 3,000,000, max 20,000,000). */
16793
17235
  readonly budget_micro_usd?: number;
17236
+ /** @description Target length in seconds (`video` only). The storyboard and voice-over are planned for it and the scenes stretch to reach it; default: the starter's natural length (about 15–30 s). With another kind it is a 400. */
17237
+ readonly duration_s?: number;
17238
+ readonly kind?: components$1['schemas']['StudioProductionKind'];
16794
17239
  /**
16795
17240
  * @description Language of the copy and the voice-over (and of the starters the model chooses from).
16796
17241
  * @default ro
@@ -16798,17 +17243,35 @@ type components$1 = {
16798
17243
  */
16799
17244
  readonly language?: 'en' | 'ro';
16800
17245
  /**
16801
- * @description Add a voice-over (one line per scene).
17246
+ * @description Add a voice-over (one line per scene). `video` only.
16802
17247
  * @default true
16803
17248
  */
16804
17249
  readonly narration?: boolean;
16805
- /** @description Optional video starter to use (`starter:<slug>:<language>`); default: the model picks one. */
17250
+ /** @description Optional video starter to use (`starter:<slug>:<language>`); default: the model picks one. `video` only. */
16806
17251
  readonly starter?: string;
16807
17252
  /** @description Optional title (default: the storyboard title). */
16808
17253
  readonly title?: string;
16809
17254
  /** @description Optional narration voice (a Cloud TTS voice name or `custom:<uuid>`). */
16810
17255
  readonly voice?: string;
16811
17256
  };
17257
+ /**
17258
+ * Studio production kind
17259
+ * @description What the production builds: `video` (MP4), `image` (PNG), `deck` (PPTX), `doc` (DOCX), `sheet` (XLSX), `audio` (MP3 jingle or song), `carousel` (PNG slides in a ZIP + cover) or `print` (A4/A5 PDF poster or flyer).
17260
+ * @default video
17261
+ * @enum {string}
17262
+ */
17263
+ readonly StudioProductionKind: 'video' | 'image' | 'deck' | 'doc' | 'sheet' | 'audio' | 'carousel' | 'print';
17264
+ /**
17265
+ * Studio production output
17266
+ * @description A built output of a non-video production: the regular Studio asset plus its `role`. `url` is a 1 h signed GET, `null` while not ready.
17267
+ */
17268
+ readonly StudioProductionOutput: components$1['schemas']['AssetDto'] & {
17269
+ /**
17270
+ * @description What the asset is: `image` (PNG), `cover` (carousel cover PNG), `document` (PPTX, DOCX or XLSX), `pages` (ZIP of carousel PNGs), `pdf` or `audio` (MP3).
17271
+ * @enum {string}
17272
+ */
17273
+ readonly role: 'image' | 'cover' | 'document' | 'pages' | 'pdf' | 'audio';
17274
+ };
16812
17275
  /** Review decision */
16813
17276
  readonly StudioPublicDecisionRequest: {
16814
17277
  /** @enum {string} */
@@ -18656,6 +19119,78 @@ type components$1 = {
18656
19119
  readonly locked_at?: string | null;
18657
19120
  readonly revision: number;
18658
19121
  };
19122
+ readonly VaultAddRequest: {
19123
+ readonly agent: string;
19124
+ /** Format: date-time */
19125
+ readonly completed_at: string | null;
19126
+ /** Format: date-time */
19127
+ readonly created_at: string;
19128
+ readonly env_var: string | null;
19129
+ /** Format: date-time */
19130
+ readonly expires_at: string;
19131
+ readonly fields: readonly string[];
19132
+ readonly handle: string | null;
19133
+ readonly hosts: readonly string[];
19134
+ /** Format: uuid */
19135
+ readonly id: string;
19136
+ /** Format: uuid */
19137
+ readonly item_id: string | null;
19138
+ /** @enum {string} */
19139
+ readonly kind: 'login' | 'api_key' | 'env' | 'ssh_key' | 'oauth_token' | 'note' | 'card' | 'identity' | 'passkey';
19140
+ readonly purpose: string;
19141
+ readonly slug: string | null;
19142
+ /**
19143
+ * @description A pending request past its expiry reads as `expired`.
19144
+ * @enum {string}
19145
+ */
19146
+ readonly status: 'pending' | 'completed' | 'cancelled' | 'expired';
19147
+ readonly task: string | null;
19148
+ readonly title: string;
19149
+ };
19150
+ readonly VaultAddRequestCreate: {
19151
+ readonly env_var?: string;
19152
+ /** @description Field names the user should fill in. */
19153
+ readonly fields?: readonly string[];
19154
+ /** @description Hosts the secret should be bound to. */
19155
+ readonly hosts?: readonly string[];
19156
+ /** @enum {string} */
19157
+ readonly kind: 'login' | 'api_key' | 'env' | 'ssh_key' | 'oauth_token' | 'note' | 'card' | 'identity' | 'passkey';
19158
+ /** @description Why the agent needs this secret; shown to the user. */
19159
+ readonly purpose: string;
19160
+ /** @description Suggested handle slug (the user may change it). */
19161
+ readonly slug?: string;
19162
+ readonly task?: string;
19163
+ readonly title: string;
19164
+ };
19165
+ readonly VaultAddRequestCreated: {
19166
+ /** Format: date-time */
19167
+ readonly expires_at: string;
19168
+ /** Format: uuid */
19169
+ readonly id: string;
19170
+ /**
19171
+ * @description A pending request past its expiry reads as `expired`.
19172
+ * @enum {string}
19173
+ */
19174
+ readonly status: 'pending' | 'completed' | 'cancelled' | 'expired';
19175
+ /** @description Hub link the user opens to add the secret. Null when an equivalent pending request was reused (the link token is not stored). */
19176
+ readonly url: string | null;
19177
+ };
19178
+ readonly VaultAddRequestStatus: {
19179
+ /** Format: date-time */
19180
+ readonly expires_at: string;
19181
+ /** @description `{{vault:<slug>}}` once completed. */
19182
+ readonly handle: string | null;
19183
+ /** Format: uuid */
19184
+ readonly id: string;
19185
+ /** Format: uuid */
19186
+ readonly item_id: string | null;
19187
+ readonly slug: string | null;
19188
+ /**
19189
+ * @description A pending request past its expiry reads as `expired`.
19190
+ * @enum {string}
19191
+ */
19192
+ readonly status: 'pending' | 'completed' | 'cancelled' | 'expired';
19193
+ };
18659
19194
  /** @description Proven step-up for a decision. `device`: an enrolled device key signs `codai-vault/approve/v2|<approval_id>|<action_hash>|<decision>|<scope>|<device_id>`. `passkey`: a WebAuthn assertion whose challenge is base64url(SHA-256(the same message with device id `passkey`)). With `match_number` the message is v3: `codai-vault/approve/v3|<approval_id>|<action_hash>|<decision>|<scope>|<device_id>|<preview_digest>|<match_number>`, where `preview_digest` = base64url(SHA-256(the canonical text of `request.preview`)). */
18660
19195
  readonly VaultApprovalProof: {
18661
19196
  readonly device_id: string;
@@ -18670,6 +19205,33 @@ type components$1 = {
18670
19205
  /** @enum {string} */
18671
19206
  readonly type: 'passkey';
18672
19207
  };
19208
+ readonly VaultDerived: {
19209
+ /** @description The same values keyed by environment variable name. */
19210
+ readonly env: {
19211
+ readonly [key: string]: string;
19212
+ };
19213
+ /** Format: date-time */
19214
+ readonly expires_at: string;
19215
+ /** @enum {string} */
19216
+ readonly provider: 'aws_sts' | 'gcp_sa' | 'cloudflare' | 'github_app';
19217
+ /** @description Short-lived credential fields. For the broker only: inject and redact, never pass to a model. */
19218
+ readonly values: {
19219
+ readonly [key: string]: string;
19220
+ };
19221
+ };
19222
+ readonly VaultDeriver: {
19223
+ /** @description Provider configuration (role ARN, scopes, permissions…). Never secret values: the root credential stays in the item. */
19224
+ readonly config: {
19225
+ readonly [key: string]: unknown;
19226
+ };
19227
+ /** Format: uuid */
19228
+ readonly item_id: string;
19229
+ readonly max_ttl_s: number;
19230
+ /** @enum {string} */
19231
+ readonly provider: 'aws_sts' | 'gcp_sa' | 'cloudflare' | 'github_app';
19232
+ /** Format: date-time */
19233
+ readonly updated_at: string;
19234
+ };
18673
19235
  readonly VaultDeviceChallenge: {
18674
19236
  /**
18675
19237
  * Format: date-time
@@ -18733,6 +19295,74 @@ type components$1 = {
18733
19295
  /** @enum {string} */
18734
19296
  readonly surface: 'phone' | 'wear' | 'desktop' | 'cli';
18735
19297
  };
19298
+ readonly VaultEmergencyContact: {
19299
+ /** Format: date-time */
19300
+ readonly created_at: string;
19301
+ /**
19302
+ * @description Hours between an access request and automatic release, unless the grantor denies it.
19303
+ * @enum {integer}
19304
+ */
19305
+ readonly delay_hours: 24 | 48 | 72;
19306
+ /** Format: date-time */
19307
+ readonly denied_at: string | null;
19308
+ /** @description The invited email (grantor view). */
19309
+ readonly email: string | null;
19310
+ /** Format: date-time */
19311
+ readonly granted_at: string | null;
19312
+ /** @description Fingerprint of the contact public keys the grantor sealed to. */
19313
+ readonly grantee_fingerprint: string | null;
19314
+ /** @description Contact public keys (grantor view, after acceptance) to seal the vault keys to. */
19315
+ readonly grantee_public_keys: {
19316
+ readonly [key: string]: unknown;
19317
+ } | null;
19318
+ /** Format: uuid */
19319
+ readonly id: string;
19320
+ /** @description Display name of the other party. */
19321
+ readonly other_name: string | null;
19322
+ /**
19323
+ * Format: date-time
19324
+ * @description When a pending request is released automatically.
19325
+ */
19326
+ readonly release_at: string | null;
19327
+ readonly request_reason: string | null;
19328
+ /** Format: date-time */
19329
+ readonly requested_at: string | null;
19330
+ /**
19331
+ * @description Your side of the relationship.
19332
+ * @enum {string}
19333
+ */
19334
+ readonly role: 'grantor' | 'grantee';
19335
+ /**
19336
+ * @description `invited` → `accepted` (the contact has a vault account) → `sealed` (the grantor sealed the vault keys to the contact) → `requested` → `granted` (approved, or the wait elapsed with no denial). A denial returns to `sealed`.
19337
+ * @enum {string}
19338
+ */
19339
+ readonly status: 'invited' | 'accepted' | 'sealed' | 'requested' | 'granted' | 'revoked';
19340
+ readonly vault_ids: readonly string[];
19341
+ };
19342
+ readonly VaultEmergencyData: {
19343
+ readonly items: readonly {
19344
+ /** @description Public catalogue entry, as on the item. */
19345
+ readonly agent_meta: unknown;
19346
+ readonly ciphertext: string;
19347
+ /** Format: uuid */
19348
+ readonly id: string;
19349
+ readonly kind: string;
19350
+ readonly revision: number;
19351
+ readonly slug: string | null;
19352
+ /** Format: uuid */
19353
+ readonly vault_id: string;
19354
+ readonly wrapped_key: string;
19355
+ }[];
19356
+ readonly vaults: readonly {
19357
+ readonly encrypted_meta: string;
19358
+ /** Format: uuid */
19359
+ readonly id: string;
19360
+ /** @description The vault key sealed to the contact (X-Wing). */
19361
+ readonly sealed_key: {
19362
+ readonly [key: string]: unknown;
19363
+ };
19364
+ }[];
19365
+ };
18736
19366
  readonly VaultGuards: {
18737
19367
  /** @description Agent requests for one item within `burst_window_s` that count as a burst (`anomaly:burst`); 0 = off. */
18738
19368
  readonly burst_max: number;
@@ -18802,6 +19432,31 @@ type components$1 = {
18802
19432
  /** @description Device-key signature, base64url, over `codai-vault/resolve/v1|<challenge>|<device_id>|<digest>` where `digest` = base64url_nopad(SHA-256(UTF-8(handles joined by `\n` + `\n\n` + action))), with `handles` and `action` exactly as sent. */
18803
19433
  readonly signature: string;
18804
19434
  };
19435
+ readonly VaultRotationEntry: {
19436
+ /** Format: date-time */
19437
+ readonly breach_checked_at: string | null;
19438
+ readonly breach_count: number;
19439
+ /** @description The last client breach check found the password in a known breach. */
19440
+ readonly breached: boolean;
19441
+ /** @description Where to create a replacement key at the provider. */
19442
+ readonly create_url: string | null;
19443
+ /** Format: date-time */
19444
+ readonly due_at: string | null;
19445
+ /** @description Effective interval: the item setting, else 90 days for `api_key`, `oauth_token` and `env`, else null (unscheduled). */
19446
+ readonly interval_days: number | null;
19447
+ /** Format: uuid */
19448
+ readonly item_id: string;
19449
+ readonly kind: string;
19450
+ readonly overdue: boolean;
19451
+ /** @enum {string|null} */
19452
+ readonly provider: 'stripe' | 'github_pat' | 'openai' | 'google_api_key' | 'other' | null;
19453
+ /** Format: date-time */
19454
+ readonly rotated_at: string | null;
19455
+ readonly slug: string | null;
19456
+ /** Format: date-time */
19457
+ readonly snoozed_until: string | null;
19458
+ readonly title: string | null;
19459
+ };
18805
19460
  readonly VaultUnlockChallenge: {
18806
19461
  /** @description 32 random bytes, base64url. Single use. */
18807
19462
  readonly challenge: string;
@@ -34388,6 +35043,168 @@ interface operations$1 {
34388
35043
  };
34389
35044
  };
34390
35045
  };
35046
+ readonly createVaultAddRequest: {
35047
+ readonly parameters: {
35048
+ readonly query?: never;
35049
+ readonly header?: never;
35050
+ readonly path?: never;
35051
+ readonly cookie?: never;
35052
+ };
35053
+ readonly requestBody: {
35054
+ readonly content: {
35055
+ readonly 'application/json': components$1['schemas']['VaultAddRequestCreate'];
35056
+ };
35057
+ };
35058
+ readonly responses: {
35059
+ /** @description Created or reused. */
35060
+ readonly 201: {
35061
+ headers: {
35062
+ readonly [name: string]: unknown;
35063
+ };
35064
+ content: {
35065
+ readonly 'application/json': components$1['schemas']['VaultAddRequestCreated'];
35066
+ };
35067
+ };
35068
+ readonly 400: components$1['responses']['BadRequest'];
35069
+ readonly 401: components$1['responses']['Unauthorized'];
35070
+ };
35071
+ };
35072
+ readonly getVaultAddRequest: {
35073
+ readonly parameters: {
35074
+ readonly query?: never;
35075
+ readonly header?: never;
35076
+ readonly path: {
35077
+ /** @description Resource id (uuid). */
35078
+ readonly id: string;
35079
+ };
35080
+ readonly cookie?: never;
35081
+ };
35082
+ readonly requestBody?: never;
35083
+ readonly responses: {
35084
+ /** @description OK. */
35085
+ readonly 200: {
35086
+ headers: {
35087
+ readonly [name: string]: unknown;
35088
+ };
35089
+ content: {
35090
+ readonly 'application/json': components$1['schemas']['VaultAddRequestStatus'];
35091
+ };
35092
+ };
35093
+ readonly 400: components$1['responses']['BadRequest'];
35094
+ readonly 401: components$1['responses']['Unauthorized'];
35095
+ readonly 404: components$1['responses']['NotFound'];
35096
+ };
35097
+ };
35098
+ readonly cancelVaultAddRequest: {
35099
+ readonly parameters: {
35100
+ readonly query?: never;
35101
+ readonly header?: never;
35102
+ readonly path: {
35103
+ /** @description Resource id (uuid). */
35104
+ readonly id: string;
35105
+ };
35106
+ readonly cookie?: never;
35107
+ };
35108
+ readonly requestBody?: never;
35109
+ readonly responses: {
35110
+ /** @description Cancelled. */
35111
+ readonly 200: {
35112
+ headers: {
35113
+ readonly [name: string]: unknown;
35114
+ };
35115
+ content: {
35116
+ readonly 'application/json': components$1['schemas']['VaultAddRequestStatus'];
35117
+ };
35118
+ };
35119
+ readonly 400: components$1['responses']['BadRequest'];
35120
+ readonly 401: components$1['responses']['Unauthorized'];
35121
+ readonly 404: components$1['responses']['NotFound'];
35122
+ /** @description The request is already closed. */
35123
+ readonly 409: {
35124
+ headers: {
35125
+ readonly [name: string]: unknown;
35126
+ };
35127
+ content: {
35128
+ readonly 'application/json': {
35129
+ readonly [key: string]: unknown;
35130
+ };
35131
+ };
35132
+ };
35133
+ };
35134
+ };
35135
+ readonly completeVaultAddRequest: {
35136
+ readonly parameters: {
35137
+ readonly query?: never;
35138
+ readonly header?: never;
35139
+ readonly path: {
35140
+ /** @description Resource id (uuid). */
35141
+ readonly id: string;
35142
+ };
35143
+ readonly cookie?: never;
35144
+ };
35145
+ readonly requestBody: {
35146
+ readonly content: {
35147
+ readonly 'application/json': {
35148
+ /** Format: uuid */
35149
+ readonly item_id: string;
35150
+ };
35151
+ };
35152
+ };
35153
+ readonly responses: {
35154
+ /** @description Completed. */
35155
+ readonly 200: {
35156
+ headers: {
35157
+ readonly [name: string]: unknown;
35158
+ };
35159
+ content: {
35160
+ readonly 'application/json': components$1['schemas']['VaultAddRequestStatus'];
35161
+ };
35162
+ };
35163
+ readonly 400: components$1['responses']['BadRequest'];
35164
+ readonly 401: components$1['responses']['Unauthorized'];
35165
+ readonly 404: components$1['responses']['NotFound'];
35166
+ /** @description `add_request_completed` or `add_request_closed`. */
35167
+ readonly 409: {
35168
+ headers: {
35169
+ readonly [name: string]: unknown;
35170
+ };
35171
+ content: {
35172
+ readonly 'application/json': {
35173
+ readonly [key: string]: unknown;
35174
+ };
35175
+ };
35176
+ };
35177
+ };
35178
+ };
35179
+ readonly lookupVaultAddRequest: {
35180
+ readonly parameters: {
35181
+ readonly query?: never;
35182
+ readonly header?: never;
35183
+ readonly path?: never;
35184
+ readonly cookie?: never;
35185
+ };
35186
+ readonly requestBody: {
35187
+ readonly content: {
35188
+ readonly 'application/json': {
35189
+ readonly token: string;
35190
+ };
35191
+ };
35192
+ };
35193
+ readonly responses: {
35194
+ /** @description OK. */
35195
+ readonly 200: {
35196
+ headers: {
35197
+ readonly [name: string]: unknown;
35198
+ };
35199
+ content: {
35200
+ readonly 'application/json': components$1['schemas']['VaultAddRequest'];
35201
+ };
35202
+ };
35203
+ readonly 400: components$1['responses']['BadRequest'];
35204
+ readonly 401: components$1['responses']['Unauthorized'];
35205
+ readonly 404: components$1['responses']['NotFound'];
35206
+ };
35207
+ };
34391
35208
  readonly listVaultApprovals: {
34392
35209
  readonly parameters: {
34393
35210
  readonly query?: never;
@@ -34524,6 +35341,117 @@ interface operations$1 {
34524
35341
  readonly 401: components$1['responses']['Unauthorized'];
34525
35342
  };
34526
35343
  };
35344
+ readonly deriveVaultCredential: {
35345
+ readonly parameters: {
35346
+ readonly query?: never;
35347
+ readonly header?: never;
35348
+ readonly path?: never;
35349
+ readonly cookie?: never;
35350
+ };
35351
+ readonly requestBody: {
35352
+ readonly content: {
35353
+ readonly 'application/json': {
35354
+ readonly action: string;
35355
+ readonly chain?: readonly string[];
35356
+ readonly handle: string;
35357
+ readonly proof: components$1['schemas']['VaultResolveProof'];
35358
+ /** @enum {string} */
35359
+ readonly provenance?: 'user' | 'agent' | 'untrusted';
35360
+ readonly purpose?: string;
35361
+ readonly task?: string | null;
35362
+ readonly ttl_s?: number;
35363
+ };
35364
+ };
35365
+ };
35366
+ readonly responses: {
35367
+ /** @description Credential. */
35368
+ readonly 200: {
35369
+ headers: {
35370
+ readonly [name: string]: unknown;
35371
+ };
35372
+ content: {
35373
+ readonly 'application/json': components$1['schemas']['VaultDerived'];
35374
+ };
35375
+ };
35376
+ /** @description Approval required. */
35377
+ readonly 202: {
35378
+ headers: {
35379
+ readonly [name: string]: unknown;
35380
+ };
35381
+ content: {
35382
+ readonly 'application/json': {
35383
+ /** Format: uuid */
35384
+ readonly approval_id: string;
35385
+ readonly match_number: string | null;
35386
+ readonly reasons: readonly string[];
35387
+ /** @enum {string} */
35388
+ readonly status: 'approval_required';
35389
+ readonly tier: string;
35390
+ };
35391
+ };
35392
+ };
35393
+ readonly 400: components$1['responses']['BadRequest'];
35394
+ readonly 401: components$1['responses']['Unauthorized'];
35395
+ /** @description `broker_only`, `invalid_device_proof` or `vault_denied`. */
35396
+ readonly 403: {
35397
+ headers: {
35398
+ readonly [name: string]: unknown;
35399
+ };
35400
+ content: {
35401
+ readonly 'application/json': {
35402
+ readonly [key: string]: unknown;
35403
+ };
35404
+ };
35405
+ };
35406
+ readonly 404: components$1['responses']['NotFound'];
35407
+ /** @description `not_cloud_usable` or `no_deriver`. */
35408
+ readonly 409: {
35409
+ headers: {
35410
+ readonly [name: string]: unknown;
35411
+ };
35412
+ content: {
35413
+ readonly 'application/json': {
35414
+ readonly [key: string]: unknown;
35415
+ };
35416
+ };
35417
+ };
35418
+ /** @description `derive_failed`. */
35419
+ readonly 502: {
35420
+ headers: {
35421
+ readonly [name: string]: unknown;
35422
+ };
35423
+ content: {
35424
+ readonly 'application/json': {
35425
+ readonly [key: string]: unknown;
35426
+ };
35427
+ };
35428
+ };
35429
+ };
35430
+ };
35431
+ readonly listVaultDerivers: {
35432
+ readonly parameters: {
35433
+ readonly query?: never;
35434
+ readonly header?: never;
35435
+ readonly path?: never;
35436
+ readonly cookie?: never;
35437
+ };
35438
+ readonly requestBody?: never;
35439
+ readonly responses: {
35440
+ /** @description OK. */
35441
+ readonly 200: {
35442
+ headers: {
35443
+ readonly [name: string]: unknown;
35444
+ };
35445
+ content: {
35446
+ readonly 'application/json': {
35447
+ readonly derivers: readonly components$1['schemas']['VaultDeriver'][];
35448
+ };
35449
+ };
35450
+ };
35451
+ readonly 400: components$1['responses']['BadRequest'];
35452
+ readonly 401: components$1['responses']['Unauthorized'];
35453
+ };
35454
+ };
34527
35455
  readonly listVaultDevices: {
34528
35456
  readonly parameters: {
34529
35457
  readonly query?: never;
@@ -34693,6 +35621,397 @@ interface operations$1 {
34693
35621
  readonly 401: components$1['responses']['Unauthorized'];
34694
35622
  };
34695
35623
  };
35624
+ readonly listVaultEmergency: {
35625
+ readonly parameters: {
35626
+ readonly query?: never;
35627
+ readonly header?: never;
35628
+ readonly path?: never;
35629
+ readonly cookie?: never;
35630
+ };
35631
+ readonly requestBody?: never;
35632
+ readonly responses: {
35633
+ /** @description OK. */
35634
+ readonly 200: {
35635
+ headers: {
35636
+ readonly [name: string]: unknown;
35637
+ };
35638
+ content: {
35639
+ readonly 'application/json': {
35640
+ readonly incoming: readonly components$1['schemas']['VaultEmergencyContact'][];
35641
+ readonly outgoing: readonly components$1['schemas']['VaultEmergencyContact'][];
35642
+ };
35643
+ };
35644
+ };
35645
+ readonly 400: components$1['responses']['BadRequest'];
35646
+ readonly 401: components$1['responses']['Unauthorized'];
35647
+ };
35648
+ };
35649
+ readonly inviteVaultEmergency: {
35650
+ readonly parameters: {
35651
+ readonly query?: never;
35652
+ readonly header?: never;
35653
+ readonly path?: never;
35654
+ readonly cookie?: never;
35655
+ };
35656
+ readonly requestBody: {
35657
+ readonly content: {
35658
+ readonly 'application/json': {
35659
+ /**
35660
+ * @description Hours between an access request and automatic release, unless the grantor denies it.
35661
+ * @enum {integer}
35662
+ */
35663
+ readonly delay_hours: 24 | 48 | 72;
35664
+ /** Format: email */
35665
+ readonly email: string;
35666
+ /** @description Vaults covered; omitted = every vault you own. */
35667
+ readonly vault_ids?: readonly string[];
35668
+ };
35669
+ };
35670
+ };
35671
+ readonly responses: {
35672
+ /** @description Invited. */
35673
+ readonly 202: {
35674
+ headers: {
35675
+ readonly [name: string]: unknown;
35676
+ };
35677
+ content: {
35678
+ readonly 'application/json': {
35679
+ /** Format: uuid */
35680
+ readonly id: string;
35681
+ };
35682
+ };
35683
+ };
35684
+ readonly 400: components$1['responses']['BadRequest'];
35685
+ readonly 401: components$1['responses']['Unauthorized'];
35686
+ readonly 404: components$1['responses']['NotFound'];
35687
+ };
35688
+ };
35689
+ readonly revokeVaultEmergency: {
35690
+ readonly parameters: {
35691
+ readonly query?: never;
35692
+ readonly header?: never;
35693
+ readonly path: {
35694
+ /** @description Resource id (uuid). */
35695
+ readonly id: string;
35696
+ };
35697
+ readonly cookie?: never;
35698
+ };
35699
+ readonly requestBody?: never;
35700
+ readonly responses: {
35701
+ /** @description Revoked. */
35702
+ readonly 200: {
35703
+ headers: {
35704
+ readonly [name: string]: unknown;
35705
+ };
35706
+ content: {
35707
+ readonly 'application/json': {
35708
+ /** Format: uuid */
35709
+ readonly id: string;
35710
+ /** @enum {string} */
35711
+ readonly status: 'revoked';
35712
+ };
35713
+ };
35714
+ };
35715
+ readonly 400: components$1['responses']['BadRequest'];
35716
+ readonly 401: components$1['responses']['Unauthorized'];
35717
+ readonly 404: components$1['responses']['NotFound'];
35718
+ };
35719
+ };
35720
+ readonly updateVaultEmergency: {
35721
+ readonly parameters: {
35722
+ readonly query?: never;
35723
+ readonly header?: never;
35724
+ readonly path: {
35725
+ /** @description Resource id (uuid). */
35726
+ readonly id: string;
35727
+ };
35728
+ readonly cookie?: never;
35729
+ };
35730
+ readonly requestBody: {
35731
+ readonly content: {
35732
+ readonly 'application/json': {
35733
+ /**
35734
+ * @description Hours between an access request and automatic release, unless the grantor denies it.
35735
+ * @enum {integer}
35736
+ */
35737
+ readonly delay_hours?: 24 | 48 | 72;
35738
+ /** @description Vaults covered; omitted = every vault you own. */
35739
+ readonly vault_ids?: readonly string[];
35740
+ };
35741
+ };
35742
+ };
35743
+ readonly responses: {
35744
+ /** @description Updated. */
35745
+ readonly 200: {
35746
+ headers: {
35747
+ readonly [name: string]: unknown;
35748
+ };
35749
+ content: {
35750
+ readonly 'application/json': components$1['schemas']['VaultEmergencyContact'];
35751
+ };
35752
+ };
35753
+ readonly 400: components$1['responses']['BadRequest'];
35754
+ readonly 401: components$1['responses']['Unauthorized'];
35755
+ readonly 404: components$1['responses']['NotFound'];
35756
+ /** @description Wrong state for this action (`emergency_state`). */
35757
+ readonly 409: {
35758
+ headers: {
35759
+ readonly [name: string]: unknown;
35760
+ };
35761
+ content: {
35762
+ readonly 'application/json': {
35763
+ readonly [key: string]: unknown;
35764
+ };
35765
+ };
35766
+ };
35767
+ };
35768
+ };
35769
+ readonly approveVaultEmergency: {
35770
+ readonly parameters: {
35771
+ readonly query?: never;
35772
+ readonly header?: never;
35773
+ readonly path: {
35774
+ /** @description Resource id (uuid). */
35775
+ readonly id: string;
35776
+ };
35777
+ readonly cookie?: never;
35778
+ };
35779
+ readonly requestBody?: never;
35780
+ readonly responses: {
35781
+ /** @description Granted. */
35782
+ readonly 200: {
35783
+ headers: {
35784
+ readonly [name: string]: unknown;
35785
+ };
35786
+ content: {
35787
+ readonly 'application/json': components$1['schemas']['VaultEmergencyContact'];
35788
+ };
35789
+ };
35790
+ readonly 400: components$1['responses']['BadRequest'];
35791
+ readonly 401: components$1['responses']['Unauthorized'];
35792
+ readonly 404: components$1['responses']['NotFound'];
35793
+ /** @description Wrong state for this action (`emergency_state`). */
35794
+ readonly 409: {
35795
+ headers: {
35796
+ readonly [name: string]: unknown;
35797
+ };
35798
+ content: {
35799
+ readonly 'application/json': {
35800
+ readonly [key: string]: unknown;
35801
+ };
35802
+ };
35803
+ };
35804
+ };
35805
+ };
35806
+ readonly denyVaultEmergency: {
35807
+ readonly parameters: {
35808
+ readonly query?: never;
35809
+ readonly header?: never;
35810
+ readonly path: {
35811
+ /** @description Resource id (uuid). */
35812
+ readonly id: string;
35813
+ };
35814
+ readonly cookie?: never;
35815
+ };
35816
+ readonly requestBody?: never;
35817
+ readonly responses: {
35818
+ /** @description Denied. */
35819
+ readonly 200: {
35820
+ headers: {
35821
+ readonly [name: string]: unknown;
35822
+ };
35823
+ content: {
35824
+ readonly 'application/json': components$1['schemas']['VaultEmergencyContact'];
35825
+ };
35826
+ };
35827
+ readonly 400: components$1['responses']['BadRequest'];
35828
+ readonly 401: components$1['responses']['Unauthorized'];
35829
+ readonly 404: components$1['responses']['NotFound'];
35830
+ /** @description Wrong state for this action (`emergency_state`). */
35831
+ readonly 409: {
35832
+ headers: {
35833
+ readonly [name: string]: unknown;
35834
+ };
35835
+ content: {
35836
+ readonly 'application/json': {
35837
+ readonly [key: string]: unknown;
35838
+ };
35839
+ };
35840
+ };
35841
+ };
35842
+ };
35843
+ readonly requestVaultEmergency: {
35844
+ readonly parameters: {
35845
+ readonly query?: never;
35846
+ readonly header?: never;
35847
+ readonly path: {
35848
+ /** @description Resource id (uuid). */
35849
+ readonly id: string;
35850
+ };
35851
+ readonly cookie?: never;
35852
+ };
35853
+ readonly requestBody?: {
35854
+ readonly content: {
35855
+ readonly 'application/json': {
35856
+ readonly reason?: string;
35857
+ };
35858
+ };
35859
+ };
35860
+ readonly responses: {
35861
+ /** @description Requested. */
35862
+ readonly 200: {
35863
+ headers: {
35864
+ readonly [name: string]: unknown;
35865
+ };
35866
+ content: {
35867
+ readonly 'application/json': components$1['schemas']['VaultEmergencyContact'];
35868
+ };
35869
+ };
35870
+ readonly 400: components$1['responses']['BadRequest'];
35871
+ readonly 401: components$1['responses']['Unauthorized'];
35872
+ readonly 404: components$1['responses']['NotFound'];
35873
+ /** @description Wrong state for this action (`emergency_state`). */
35874
+ readonly 409: {
35875
+ headers: {
35876
+ readonly [name: string]: unknown;
35877
+ };
35878
+ content: {
35879
+ readonly 'application/json': {
35880
+ readonly [key: string]: unknown;
35881
+ };
35882
+ };
35883
+ };
35884
+ };
35885
+ };
35886
+ readonly sealVaultEmergency: {
35887
+ readonly parameters: {
35888
+ readonly query?: never;
35889
+ readonly header?: never;
35890
+ readonly path: {
35891
+ /** @description Resource id (uuid). */
35892
+ readonly id: string;
35893
+ };
35894
+ readonly cookie?: never;
35895
+ };
35896
+ readonly requestBody: {
35897
+ readonly content: {
35898
+ readonly 'application/json': {
35899
+ readonly grantee_fingerprint: string;
35900
+ /** @description Vault id → vault key sealed to the contact. */
35901
+ readonly sealed_keys: {
35902
+ readonly [key: string]: {
35903
+ /** @enum {string} */
35904
+ readonly alg: 'xwing-hkdf-xchacha20poly1305';
35905
+ readonly ct: string;
35906
+ readonly wrapped: string;
35907
+ };
35908
+ };
35909
+ };
35910
+ };
35911
+ };
35912
+ readonly responses: {
35913
+ /** @description Sealed. */
35914
+ readonly 200: {
35915
+ headers: {
35916
+ readonly [name: string]: unknown;
35917
+ };
35918
+ content: {
35919
+ readonly 'application/json': components$1['schemas']['VaultEmergencyContact'];
35920
+ };
35921
+ };
35922
+ readonly 400: components$1['responses']['BadRequest'];
35923
+ readonly 401: components$1['responses']['Unauthorized'];
35924
+ readonly 404: components$1['responses']['NotFound'];
35925
+ /** @description Wrong state for this action (`emergency_state`). */
35926
+ readonly 409: {
35927
+ headers: {
35928
+ readonly [name: string]: unknown;
35929
+ };
35930
+ content: {
35931
+ readonly 'application/json': {
35932
+ readonly [key: string]: unknown;
35933
+ };
35934
+ };
35935
+ };
35936
+ };
35937
+ };
35938
+ readonly getVaultEmergencyData: {
35939
+ readonly parameters: {
35940
+ readonly query?: never;
35941
+ readonly header?: never;
35942
+ readonly path: {
35943
+ /** @description Resource id (uuid). */
35944
+ readonly id: string;
35945
+ };
35946
+ readonly cookie?: never;
35947
+ };
35948
+ readonly requestBody?: never;
35949
+ readonly responses: {
35950
+ /** @description OK. */
35951
+ readonly 200: {
35952
+ headers: {
35953
+ readonly [name: string]: unknown;
35954
+ };
35955
+ content: {
35956
+ readonly 'application/json': components$1['schemas']['VaultEmergencyData'];
35957
+ };
35958
+ };
35959
+ readonly 400: components$1['responses']['BadRequest'];
35960
+ readonly 401: components$1['responses']['Unauthorized'];
35961
+ readonly 404: components$1['responses']['NotFound'];
35962
+ /** @description Access not granted (`emergency_state`). */
35963
+ readonly 409: {
35964
+ headers: {
35965
+ readonly [name: string]: unknown;
35966
+ };
35967
+ content: {
35968
+ readonly 'application/json': {
35969
+ readonly [key: string]: unknown;
35970
+ };
35971
+ };
35972
+ };
35973
+ };
35974
+ };
35975
+ readonly acceptVaultEmergency: {
35976
+ readonly parameters: {
35977
+ readonly query?: never;
35978
+ readonly header?: never;
35979
+ readonly path?: never;
35980
+ readonly cookie?: never;
35981
+ };
35982
+ readonly requestBody: {
35983
+ readonly content: {
35984
+ readonly 'application/json': {
35985
+ readonly token: string;
35986
+ };
35987
+ };
35988
+ };
35989
+ readonly responses: {
35990
+ /** @description Accepted. */
35991
+ readonly 200: {
35992
+ headers: {
35993
+ readonly [name: string]: unknown;
35994
+ };
35995
+ content: {
35996
+ readonly 'application/json': components$1['schemas']['VaultEmergencyContact'];
35997
+ };
35998
+ };
35999
+ readonly 400: components$1['responses']['BadRequest'];
36000
+ readonly 401: components$1['responses']['Unauthorized'];
36001
+ readonly 404: components$1['responses']['NotFound'];
36002
+ /** @description Wrong state for this action (`emergency_state`). */
36003
+ readonly 409: {
36004
+ headers: {
36005
+ readonly [name: string]: unknown;
36006
+ };
36007
+ content: {
36008
+ readonly 'application/json': {
36009
+ readonly [key: string]: unknown;
36010
+ };
36011
+ };
36012
+ };
36013
+ };
36014
+ };
34696
36015
  readonly listVaultEvents: {
34697
36016
  readonly parameters: {
34698
36017
  readonly query?: {
@@ -34744,7 +36063,214 @@ interface operations$1 {
34744
36063
  readonly 401: components$1['responses']['Unauthorized'];
34745
36064
  };
34746
36065
  };
34747
- readonly revokeVaultGrant: {
36066
+ readonly revokeVaultGrant: {
36067
+ readonly parameters: {
36068
+ readonly query?: never;
36069
+ readonly header?: never;
36070
+ readonly path: {
36071
+ /** @description Resource id (uuid). */
36072
+ readonly id: string;
36073
+ };
36074
+ readonly cookie?: never;
36075
+ };
36076
+ readonly requestBody?: never;
36077
+ readonly responses: {
36078
+ /** @description Revoked. */
36079
+ readonly 200: {
36080
+ headers: {
36081
+ readonly [name: string]: unknown;
36082
+ };
36083
+ content: {
36084
+ readonly 'application/json': {
36085
+ readonly [key: string]: unknown;
36086
+ };
36087
+ };
36088
+ };
36089
+ readonly 400: components$1['responses']['BadRequest'];
36090
+ readonly 401: components$1['responses']['Unauthorized'];
36091
+ readonly 404: components$1['responses']['NotFound'];
36092
+ };
36093
+ };
36094
+ readonly revokeVaultTaskGrants: {
36095
+ readonly parameters: {
36096
+ readonly query?: never;
36097
+ readonly header?: never;
36098
+ readonly path?: never;
36099
+ readonly cookie?: never;
36100
+ };
36101
+ readonly requestBody: {
36102
+ readonly content: {
36103
+ readonly 'application/json': {
36104
+ readonly task: string;
36105
+ };
36106
+ };
36107
+ };
36108
+ readonly responses: {
36109
+ /** @description OK. */
36110
+ readonly 200: {
36111
+ headers: {
36112
+ readonly [name: string]: unknown;
36113
+ };
36114
+ content: {
36115
+ readonly 'application/json': {
36116
+ readonly revoked: number;
36117
+ };
36118
+ };
36119
+ };
36120
+ readonly 400: components$1['responses']['BadRequest'];
36121
+ readonly 401: components$1['responses']['Unauthorized'];
36122
+ };
36123
+ };
36124
+ readonly getVaultHibpRange: {
36125
+ readonly parameters: {
36126
+ readonly query?: never;
36127
+ readonly header?: never;
36128
+ readonly path: {
36129
+ /** @description First 5 hex characters of the SHA-1 of the password (k-anonymity). */
36130
+ readonly prefix: string;
36131
+ };
36132
+ readonly cookie?: never;
36133
+ };
36134
+ readonly requestBody?: never;
36135
+ readonly responses: {
36136
+ /** @description `SUFFIX:COUNT` lines (padded). */
36137
+ readonly 200: {
36138
+ headers: {
36139
+ readonly [name: string]: unknown;
36140
+ };
36141
+ content: {
36142
+ readonly 'text/plain': string;
36143
+ };
36144
+ };
36145
+ readonly 400: components$1['responses']['BadRequest'];
36146
+ readonly 401: components$1['responses']['Unauthorized'];
36147
+ /** @description Hourly limit reached. */
36148
+ readonly 429: {
36149
+ headers: {
36150
+ readonly [name: string]: unknown;
36151
+ };
36152
+ content: {
36153
+ readonly 'application/json': components$1['schemas']['Error'];
36154
+ };
36155
+ };
36156
+ /** @description `hibp_unavailable`; retry later. */
36157
+ readonly 503: {
36158
+ headers: {
36159
+ readonly [name: string]: unknown;
36160
+ };
36161
+ content: {
36162
+ readonly 'application/json': {
36163
+ readonly [key: string]: unknown;
36164
+ };
36165
+ };
36166
+ };
36167
+ };
36168
+ };
36169
+ readonly vaultHttp: {
36170
+ readonly parameters: {
36171
+ readonly query?: never;
36172
+ readonly header?: never;
36173
+ readonly path?: never;
36174
+ readonly cookie?: never;
36175
+ };
36176
+ readonly requestBody: {
36177
+ readonly content: {
36178
+ readonly 'application/json': {
36179
+ readonly body?: string | null;
36180
+ readonly chain?: readonly string[];
36181
+ readonly handle: string;
36182
+ readonly headers?: {
36183
+ readonly [key: string]: string;
36184
+ };
36185
+ /** @enum {string} */
36186
+ readonly method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD';
36187
+ /** @enum {string} */
36188
+ readonly provenance?: 'user' | 'agent' | 'untrusted';
36189
+ readonly purpose?: string;
36190
+ readonly task?: string | null;
36191
+ /** Format: uri */
36192
+ readonly url: string;
36193
+ };
36194
+ };
36195
+ };
36196
+ readonly responses: {
36197
+ /** @description Upstream response (redacted). */
36198
+ readonly 200: {
36199
+ headers: {
36200
+ readonly [name: string]: unknown;
36201
+ };
36202
+ content: {
36203
+ readonly 'application/json': {
36204
+ readonly [key: string]: unknown;
36205
+ };
36206
+ };
36207
+ };
36208
+ /** @description Approval required. */
36209
+ readonly 202: {
36210
+ headers: {
36211
+ readonly [name: string]: unknown;
36212
+ };
36213
+ content: {
36214
+ readonly 'application/json': {
36215
+ readonly [key: string]: unknown;
36216
+ };
36217
+ };
36218
+ };
36219
+ readonly 400: components$1['responses']['BadRequest'];
36220
+ readonly 401: components$1['responses']['Unauthorized'];
36221
+ /** @description Denied by policy (`vault_denied`; reasons include `vault_locked` while the vault is locked). */
36222
+ readonly 403: {
36223
+ headers: {
36224
+ readonly [name: string]: unknown;
36225
+ };
36226
+ content: {
36227
+ readonly 'application/json': {
36228
+ readonly [key: string]: unknown;
36229
+ };
36230
+ };
36231
+ };
36232
+ readonly 404: components$1['responses']['NotFound'];
36233
+ /** @description `vault_rate_limited`: a per-handle limit is reached (`PUT /v1/vault/items/{id}/limits`). Read `Retry-After` (60 s for the per-minute cap, 3600 s for the daily caps). */
36234
+ readonly 429: {
36235
+ headers: {
36236
+ /** @description Seconds to wait before retrying. */
36237
+ readonly 'Retry-After'?: number;
36238
+ readonly [name: string]: unknown;
36239
+ };
36240
+ content: {
36241
+ readonly 'application/json': components$1['schemas']['Error'];
36242
+ };
36243
+ };
36244
+ };
36245
+ };
36246
+ readonly listVaultItems: {
36247
+ readonly parameters: {
36248
+ readonly query?: {
36249
+ /** @description Only changes after this ISO time. */
36250
+ readonly since?: string;
36251
+ };
36252
+ readonly header?: never;
36253
+ readonly path?: never;
36254
+ readonly cookie?: never;
36255
+ };
36256
+ readonly requestBody?: never;
36257
+ readonly responses: {
36258
+ /** @description OK. */
36259
+ readonly 200: {
36260
+ headers: {
36261
+ readonly [name: string]: unknown;
36262
+ };
36263
+ content: {
36264
+ readonly 'application/json': {
36265
+ readonly [key: string]: unknown;
36266
+ };
36267
+ };
36268
+ };
36269
+ readonly 400: components$1['responses']['BadRequest'];
36270
+ readonly 401: components$1['responses']['Unauthorized'];
36271
+ };
36272
+ };
36273
+ readonly putVaultItem: {
34748
36274
  readonly parameters: {
34749
36275
  readonly query?: never;
34750
36276
  readonly header?: never;
@@ -34754,9 +36280,13 @@ interface operations$1 {
34754
36280
  };
34755
36281
  readonly cookie?: never;
34756
36282
  };
34757
- readonly requestBody?: never;
36283
+ readonly requestBody: {
36284
+ readonly content: {
36285
+ readonly 'application/json': components$1['schemas']['VaultItemEnvelope'];
36286
+ };
36287
+ };
34758
36288
  readonly responses: {
34759
- /** @description Revoked. */
36289
+ /** @description Updated. */
34760
36290
  readonly 200: {
34761
36291
  headers: {
34762
36292
  readonly [name: string]: unknown;
@@ -34767,70 +36297,82 @@ interface operations$1 {
34767
36297
  };
34768
36298
  };
34769
36299
  };
36300
+ /** @description Created. */
36301
+ readonly 201: {
36302
+ headers: {
36303
+ readonly [name: string]: unknown;
36304
+ };
36305
+ content: {
36306
+ readonly 'application/json': {
36307
+ readonly [key: string]: unknown;
36308
+ };
36309
+ };
36310
+ };
34770
36311
  readonly 400: components$1['responses']['BadRequest'];
34771
36312
  readonly 401: components$1['responses']['Unauthorized'];
34772
36313
  readonly 404: components$1['responses']['NotFound'];
36314
+ /** @description Revision conflict. */
36315
+ readonly 409: {
36316
+ headers: {
36317
+ readonly [name: string]: unknown;
36318
+ };
36319
+ content: {
36320
+ readonly 'application/json': {
36321
+ readonly [key: string]: unknown;
36322
+ };
36323
+ };
36324
+ };
34773
36325
  };
34774
36326
  };
34775
- readonly revokeVaultTaskGrants: {
36327
+ readonly deleteVaultItem: {
34776
36328
  readonly parameters: {
34777
36329
  readonly query?: never;
34778
36330
  readonly header?: never;
34779
- readonly path?: never;
34780
- readonly cookie?: never;
34781
- };
34782
- readonly requestBody: {
34783
- readonly content: {
34784
- readonly 'application/json': {
34785
- readonly task: string;
34786
- };
36331
+ readonly path: {
36332
+ /** @description Resource id (uuid). */
36333
+ readonly id: string;
34787
36334
  };
36335
+ readonly cookie?: never;
34788
36336
  };
36337
+ readonly requestBody?: never;
34789
36338
  readonly responses: {
34790
- /** @description OK. */
36339
+ /** @description Deleted. */
34791
36340
  readonly 200: {
34792
36341
  headers: {
34793
36342
  readonly [name: string]: unknown;
34794
36343
  };
34795
36344
  content: {
34796
36345
  readonly 'application/json': {
34797
- readonly revoked: number;
36346
+ readonly [key: string]: unknown;
34798
36347
  };
34799
36348
  };
34800
36349
  };
34801
36350
  readonly 400: components$1['responses']['BadRequest'];
34802
36351
  readonly 401: components$1['responses']['Unauthorized'];
36352
+ readonly 404: components$1['responses']['NotFound'];
34803
36353
  };
34804
36354
  };
34805
- readonly vaultHttp: {
36355
+ readonly setVaultItemCloud: {
34806
36356
  readonly parameters: {
34807
36357
  readonly query?: never;
34808
36358
  readonly header?: never;
34809
- readonly path?: never;
36359
+ readonly path: {
36360
+ /** @description Resource id (uuid). */
36361
+ readonly id: string;
36362
+ };
34810
36363
  readonly cookie?: never;
34811
36364
  };
34812
36365
  readonly requestBody: {
34813
36366
  readonly content: {
34814
36367
  readonly 'application/json': {
34815
- readonly body?: string | null;
34816
- readonly chain?: readonly string[];
34817
- readonly handle: string;
34818
- readonly headers?: {
34819
- readonly [key: string]: string;
34820
- };
34821
- /** @enum {string} */
34822
- readonly method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD';
34823
- /** @enum {string} */
34824
- readonly provenance?: 'user' | 'agent' | 'untrusted';
34825
- readonly purpose?: string;
34826
- readonly task?: string | null;
34827
- /** Format: uri */
34828
- readonly url: string;
36368
+ readonly item: {
36369
+ readonly [key: string]: unknown;
36370
+ } | null;
34829
36371
  };
34830
36372
  };
34831
36373
  };
34832
36374
  readonly responses: {
34833
- /** @description Upstream response (redacted). */
36375
+ /** @description OK. */
34834
36376
  readonly 200: {
34835
36377
  headers: {
34836
36378
  readonly [name: string]: unknown;
@@ -34841,55 +36383,33 @@ interface operations$1 {
34841
36383
  };
34842
36384
  };
34843
36385
  };
34844
- /** @description Approval required. */
34845
- readonly 202: {
34846
- headers: {
34847
- readonly [name: string]: unknown;
34848
- };
34849
- content: {
34850
- readonly 'application/json': {
34851
- readonly [key: string]: unknown;
34852
- };
34853
- };
34854
- };
34855
36386
  readonly 400: components$1['responses']['BadRequest'];
34856
36387
  readonly 401: components$1['responses']['Unauthorized'];
34857
- /** @description Denied by policy (`vault_denied`; reasons include `vault_locked` while the vault is locked). */
34858
- readonly 403: {
34859
- headers: {
34860
- readonly [name: string]: unknown;
34861
- };
34862
- content: {
34863
- readonly 'application/json': {
34864
- readonly [key: string]: unknown;
34865
- };
34866
- };
34867
- };
34868
36388
  readonly 404: components$1['responses']['NotFound'];
34869
- /** @description `vault_rate_limited`: a per-handle limit is reached (`PUT /v1/vault/items/{id}/limits`). Read `Retry-After` (60 s for the per-minute cap, 3600 s for the daily caps). */
34870
- readonly 429: {
34871
- headers: {
34872
- /** @description Seconds to wait before retrying. */
34873
- readonly 'Retry-After'?: number;
34874
- readonly [name: string]: unknown;
34875
- };
34876
- content: {
34877
- readonly 'application/json': components$1['schemas']['Error'];
34878
- };
34879
- };
34880
36389
  };
34881
36390
  };
34882
- readonly listVaultItems: {
36391
+ readonly setVaultItemDeriver: {
34883
36392
  readonly parameters: {
34884
- readonly query?: {
34885
- /** @description Only changes after this ISO time. */
34886
- readonly since?: string;
34887
- };
36393
+ readonly query?: never;
34888
36394
  readonly header?: never;
34889
- readonly path?: never;
36395
+ readonly path: {
36396
+ /** @description Resource id (uuid). */
36397
+ readonly id: string;
36398
+ };
34890
36399
  readonly cookie?: never;
34891
36400
  };
34892
- readonly requestBody?: never;
36401
+ readonly requestBody: {
36402
+ readonly content: {
36403
+ readonly 'application/json': {
36404
+ readonly config: {
36405
+ readonly [key: string]: unknown;
36406
+ };
36407
+ readonly max_ttl_s: number;
36408
+ /** @enum {string} */
36409
+ readonly provider: 'aws_sts' | 'gcp_sa' | 'cloudflare' | 'github_app';
36410
+ };
36411
+ };
36412
+ };
34893
36413
  readonly responses: {
34894
36414
  /** @description OK. */
34895
36415
  readonly 200: {
@@ -34898,15 +36418,16 @@ interface operations$1 {
34898
36418
  };
34899
36419
  content: {
34900
36420
  readonly 'application/json': {
34901
- readonly [key: string]: unknown;
36421
+ readonly deriver: components$1['schemas']['VaultDeriver'];
34902
36422
  };
34903
36423
  };
34904
36424
  };
34905
36425
  readonly 400: components$1['responses']['BadRequest'];
34906
36426
  readonly 401: components$1['responses']['Unauthorized'];
36427
+ readonly 404: components$1['responses']['NotFound'];
34907
36428
  };
34908
36429
  };
34909
- readonly putVaultItem: {
36430
+ readonly deleteVaultItemDeriver: {
34910
36431
  readonly parameters: {
34911
36432
  readonly query?: never;
34912
36433
  readonly header?: never;
@@ -34916,51 +36437,25 @@ interface operations$1 {
34916
36437
  };
34917
36438
  readonly cookie?: never;
34918
36439
  };
34919
- readonly requestBody: {
34920
- readonly content: {
34921
- readonly 'application/json': components$1['schemas']['VaultItemEnvelope'];
34922
- };
34923
- };
36440
+ readonly requestBody?: never;
34924
36441
  readonly responses: {
34925
- /** @description Updated. */
36442
+ /** @description Deleted. */
34926
36443
  readonly 200: {
34927
36444
  headers: {
34928
36445
  readonly [name: string]: unknown;
34929
36446
  };
34930
36447
  content: {
34931
36448
  readonly 'application/json': {
34932
- readonly [key: string]: unknown;
34933
- };
34934
- };
34935
- };
34936
- /** @description Created. */
34937
- readonly 201: {
34938
- headers: {
34939
- readonly [name: string]: unknown;
34940
- };
34941
- content: {
34942
- readonly 'application/json': {
34943
- readonly [key: string]: unknown;
36449
+ readonly deleted: boolean;
34944
36450
  };
34945
36451
  };
34946
36452
  };
34947
36453
  readonly 400: components$1['responses']['BadRequest'];
34948
36454
  readonly 401: components$1['responses']['Unauthorized'];
34949
36455
  readonly 404: components$1['responses']['NotFound'];
34950
- /** @description Revision conflict. */
34951
- readonly 409: {
34952
- headers: {
34953
- readonly [name: string]: unknown;
34954
- };
34955
- content: {
34956
- readonly 'application/json': {
34957
- readonly [key: string]: unknown;
34958
- };
34959
- };
34960
- };
34961
36456
  };
34962
36457
  };
34963
- readonly deleteVaultItem: {
36458
+ readonly setVaultItemLimits: {
34964
36459
  readonly parameters: {
34965
36460
  readonly query?: never;
34966
36461
  readonly header?: never;
@@ -34970,16 +36465,24 @@ interface operations$1 {
34970
36465
  };
34971
36466
  readonly cookie?: never;
34972
36467
  };
34973
- readonly requestBody?: never;
36468
+ readonly requestBody: {
36469
+ readonly content: {
36470
+ readonly 'application/json': {
36471
+ readonly per_day: number | null;
36472
+ readonly per_minute: number | null;
36473
+ readonly units_per_day: number | null;
36474
+ };
36475
+ };
36476
+ };
34974
36477
  readonly responses: {
34975
- /** @description Deleted. */
36478
+ /** @description OK; `limits` is null when removed. */
34976
36479
  readonly 200: {
34977
36480
  headers: {
34978
36481
  readonly [name: string]: unknown;
34979
36482
  };
34980
36483
  content: {
34981
36484
  readonly 'application/json': {
34982
- readonly [key: string]: unknown;
36485
+ readonly limits: components$1['schemas']['VaultItemLimits'];
34983
36486
  };
34984
36487
  };
34985
36488
  };
@@ -34988,7 +36491,7 @@ interface operations$1 {
34988
36491
  readonly 404: components$1['responses']['NotFound'];
34989
36492
  };
34990
36493
  };
34991
- readonly setVaultItemCloud: {
36494
+ readonly markVaultItemRotated: {
34992
36495
  readonly parameters: {
34993
36496
  readonly query?: never;
34994
36497
  readonly header?: never;
@@ -34998,15 +36501,7 @@ interface operations$1 {
34998
36501
  };
34999
36502
  readonly cookie?: never;
35000
36503
  };
35001
- readonly requestBody: {
35002
- readonly content: {
35003
- readonly 'application/json': {
35004
- readonly item: {
35005
- readonly [key: string]: unknown;
35006
- } | null;
35007
- };
35008
- };
35009
- };
36504
+ readonly requestBody?: never;
35010
36505
  readonly responses: {
35011
36506
  /** @description OK. */
35012
36507
  readonly 200: {
@@ -35015,7 +36510,10 @@ interface operations$1 {
35015
36510
  };
35016
36511
  content: {
35017
36512
  readonly 'application/json': {
35018
- readonly [key: string]: unknown;
36513
+ /** Format: uuid */
36514
+ readonly item_id: string;
36515
+ /** Format: date-time */
36516
+ readonly rotated_at: string | null;
35019
36517
  };
35020
36518
  };
35021
36519
  };
@@ -35024,7 +36522,7 @@ interface operations$1 {
35024
36522
  readonly 404: components$1['responses']['NotFound'];
35025
36523
  };
35026
36524
  };
35027
- readonly setVaultItemLimits: {
36525
+ readonly setVaultItemRotation: {
35028
36526
  readonly parameters: {
35029
36527
  readonly query?: never;
35030
36528
  readonly header?: never;
@@ -35037,21 +36535,29 @@ interface operations$1 {
35037
36535
  readonly requestBody: {
35038
36536
  readonly content: {
35039
36537
  readonly 'application/json': {
35040
- readonly per_day: number | null;
35041
- readonly per_minute: number | null;
35042
- readonly units_per_day: number | null;
36538
+ readonly interval_days?: number | null;
36539
+ /** @enum {string|null} */
36540
+ readonly provider?: 'stripe' | 'github_pat' | 'openai' | 'google_api_key' | 'other' | null;
36541
+ /** Format: date-time */
36542
+ readonly snoozed_until?: string | null;
35043
36543
  };
35044
36544
  };
35045
36545
  };
35046
36546
  readonly responses: {
35047
- /** @description OK; `limits` is null when removed. */
36547
+ /** @description OK. */
35048
36548
  readonly 200: {
35049
36549
  headers: {
35050
36550
  readonly [name: string]: unknown;
35051
36551
  };
35052
36552
  content: {
35053
36553
  readonly 'application/json': {
35054
- readonly limits: components$1['schemas']['VaultItemLimits'];
36554
+ readonly interval_days: number | null;
36555
+ /** Format: uuid */
36556
+ readonly item_id: string;
36557
+ /** @enum {string|null} */
36558
+ readonly provider: 'stripe' | 'github_pat' | 'openai' | 'google_api_key' | 'other' | null;
36559
+ /** Format: date-time */
36560
+ readonly snoozed_until: string | null;
35055
36561
  };
35056
36562
  };
35057
36563
  };
@@ -35229,6 +36735,65 @@ interface operations$1 {
35229
36735
  };
35230
36736
  };
35231
36737
  };
36738
+ readonly listVaultRotation: {
36739
+ readonly parameters: {
36740
+ readonly query?: never;
36741
+ readonly header?: never;
36742
+ readonly path?: never;
36743
+ readonly cookie?: never;
36744
+ };
36745
+ readonly requestBody?: never;
36746
+ readonly responses: {
36747
+ /** @description OK. */
36748
+ readonly 200: {
36749
+ headers: {
36750
+ readonly [name: string]: unknown;
36751
+ };
36752
+ content: {
36753
+ readonly 'application/json': {
36754
+ readonly items: readonly components$1['schemas']['VaultRotationEntry'][];
36755
+ };
36756
+ };
36757
+ };
36758
+ readonly 400: components$1['responses']['BadRequest'];
36759
+ readonly 401: components$1['responses']['Unauthorized'];
36760
+ };
36761
+ };
36762
+ readonly reportVaultBreaches: {
36763
+ readonly parameters: {
36764
+ readonly query?: never;
36765
+ readonly header?: never;
36766
+ readonly path?: never;
36767
+ readonly cookie?: never;
36768
+ };
36769
+ readonly requestBody: {
36770
+ readonly content: {
36771
+ readonly 'application/json': {
36772
+ readonly results: readonly {
36773
+ readonly count: number;
36774
+ /** Format: uuid */
36775
+ readonly item_id: string;
36776
+ }[];
36777
+ };
36778
+ };
36779
+ };
36780
+ readonly responses: {
36781
+ /** @description OK. */
36782
+ readonly 200: {
36783
+ headers: {
36784
+ readonly [name: string]: unknown;
36785
+ };
36786
+ content: {
36787
+ readonly 'application/json': {
36788
+ readonly newly_breached: number;
36789
+ readonly recorded: number;
36790
+ };
36791
+ };
36792
+ };
36793
+ readonly 400: components$1['responses']['BadRequest'];
36794
+ readonly 401: components$1['responses']['Unauthorized'];
36795
+ };
36796
+ };
35232
36797
  readonly listVaultRules: {
35233
36798
  readonly parameters: {
35234
36799
  readonly query?: never;
@@ -37879,6 +39444,8 @@ export declare class Templates {
37879
39444
  }
37880
39445
  export type StudioProductionCreate = Mutable<Body<'createStudioProduction'>>;
37881
39446
  export type StudioProduction = Schema<'StudioProduction'>;
39447
+ export type StudioProductionKind = Schema<'StudioProductionKind'>;
39448
+ export type StudioProductionOutput = Schema<'StudioProductionOutput'>;
37882
39449
  type CallOpts$27 = {
37883
39450
  ext?: CodaiRequestExtensions;
37884
39451
  signal?: AbortSignal;
@@ -38487,6 +40054,31 @@ export type VaultItemLimits = Schema<'VaultItemLimits'>;
38487
40054
  export type VaultItemLimitsInput = Mutable<Body<'setVaultItemLimits'>>;
38488
40055
  /** Where a lock/unlock was triggered from. */
38489
40056
  export type VaultVia = 'hub' | 'desktop' | 'phone' | 'wear' | 'extension';
40057
+ /** V-17: an agent asks the user to add a missing secret (no secret ever passes through these calls). */
40058
+ export type VaultAddRequestCreate = Mutable<Schema<'VaultAddRequestCreate'>>;
40059
+ export type VaultAddRequestCreated = Schema<'VaultAddRequestCreated'>;
40060
+ export type VaultAddRequestStatus = Schema<'VaultAddRequestStatus'>;
40061
+ export type VaultAddRequest = Schema<'VaultAddRequest'>;
40062
+ /** V-23 emergency access: contacts, sealed vault keys, wait-then-release. */
40063
+ export type VaultEmergencyContact = Schema<'VaultEmergencyContact'>;
40064
+ export type VaultEmergencyList = Reply<'listVaultEmergency'>;
40065
+ export type VaultEmergencyInvite = Mutable<Body<'inviteVaultEmergency'>>;
40066
+ export type VaultEmergencySeal = Mutable<Body<'sealVaultEmergency'>>;
40067
+ export type VaultEmergencyUpdate = Mutable<Body<'updateVaultEmergency'>>;
40068
+ export type VaultEmergencyData = Schema<'VaultEmergencyData'>;
40069
+ /** V-15 rotation queue entry (breach state is client-reported via HIBP k-anonymity). */
40070
+ export type VaultRotationEntry = Schema<'VaultRotationEntry'>;
40071
+ export type VaultRotationPatch = Mutable<Body<'setVaultItemRotation'>>;
40072
+ export type VaultRotationSetting = Reply<'setVaultItemRotation'>;
40073
+ export type VaultBreachResult = Mutable<Body<'reportVaultBreaches'>>['results'][number];
40074
+ /** V-20 JIT derivers: short-lived credentials minted from a cloud-usable root item. */
40075
+ export type VaultDeriver = Schema<'VaultDeriver'>;
40076
+ export type VaultDeriverInput = Mutable<Body<'setVaultItemDeriver'>>;
40077
+ /** Requires `proof` over `handles = [handle]` (same as {@link VaultResolveRequest}). */
40078
+ export type VaultDeriveRequest = Mutable<Body<'deriveVaultCredential'>>;
40079
+ export type VaultDerived = Schema<'VaultDerived'>;
40080
+ /** 202 from `derive`: approval needed first. */
40081
+ export type VaultDeriveApproval = Reply<'deriveVaultCredential', 202>;
38490
40082
  /** The UTF-8 message an unlock proof covers: `codai-vault/unlock/v1|<challenge>|<device_id or "passkey">`. */
38491
40083
  export declare function vaultUnlockMessage(challenge: string, deviceIdOrPasskey: string): string;
38492
40084
  /**
@@ -38518,9 +40110,54 @@ export declare class VaultDevices {
38518
40110
  /** `DELETE /v1/vault/devices/{id}` — revoke at once; later proofs answer 403 `device_revoked`. */
38519
40111
  revoke(id: string, opts?: CallOpts$21): Promise<Reply<'revokeVaultDevice'>>;
38520
40112
  }
40113
+ /** `/v1/vault/add-requests/*` — an agent asks the user to add a missing secret (V-17). */
40114
+ export declare class VaultAddRequests {
40115
+ private readonly http;
40116
+ constructor(http: HttpClient);
40117
+ /** `POST /v1/vault/add-requests` — answers a hub `url` to show the user (null when a pending request was reused). */
40118
+ create(body: VaultAddRequestCreate, opts?: CallOpts$21): Promise<VaultAddRequestCreated>;
40119
+ /** `GET /v1/vault/add-requests/{id}` — poll; once `completed`, `handle` is the new `{{vault:<slug>}}`. */
40120
+ get(id: string, opts?: CallOpts$21): Promise<VaultAddRequestStatus>;
40121
+ /** `DELETE /v1/vault/add-requests/{id}` — cancel a pending request. */
40122
+ cancel(id: string, opts?: CallOpts$21): Promise<VaultAddRequestStatus>;
40123
+ /** `POST /v1/vault/add-requests/lookup` — full request by link token, signed-in owner only (404 otherwise). */
40124
+ lookup(token: string, opts?: CallOpts$21): Promise<VaultAddRequest>;
40125
+ /** `POST /v1/vault/add-requests/{id}/complete` — link the item you added; idempotent for the same item. */
40126
+ complete(id: string, itemId: string, opts?: CallOpts$21): Promise<VaultAddRequestStatus>;
40127
+ }
40128
+ /** `/v1/vault/emergency/*` — emergency access (V-23): invite, seal vault keys, request, wait, release. */
40129
+ export declare class VaultEmergency {
40130
+ private readonly http;
40131
+ constructor(http: HttpClient);
40132
+ private post;
40133
+ /** `GET /v1/vault/emergency` — `{ outgoing, incoming }` (revoked omitted). */
40134
+ list(opts?: CallOpts$21): Promise<VaultEmergencyList>;
40135
+ /** `POST /v1/vault/emergency` — always 202 `{ id }` (enumeration-safe). */
40136
+ invite(body: VaultEmergencyInvite, opts?: CallOpts$21): Promise<Reply<'inviteVaultEmergency', 202>>;
40137
+ /** `POST /v1/vault/emergency/accept` — the contact accepts with the emailed token (needs a vault account). */
40138
+ accept(token: string, opts?: CallOpts$21): Promise<VaultEmergencyContact>;
40139
+ /** `PUT /v1/vault/emergency/{id}/seal` — grantor uploads vault keys sealed client-side to the contact. */
40140
+ seal(id: string, body: VaultEmergencySeal, opts?: CallOpts$21): Promise<VaultEmergencyContact>;
40141
+ /** `PATCH /v1/vault/emergency/{id}` — change `delay_hours` and/or `vault_ids` (vaults change → re-seal). */
40142
+ update(id: string, body: VaultEmergencyUpdate, opts?: CallOpts$21): Promise<VaultEmergencyContact>;
40143
+ /** `DELETE /v1/vault/emergency/{id}` — grantor revokes or the contact declines. */
40144
+ revoke(id: string, opts?: CallOpts$21): Promise<Reply<'revokeVaultEmergency'>>;
40145
+ /** `POST /v1/vault/emergency/{id}/request` — contact starts the wait; released at `release_at` unless denied. */
40146
+ request(id: string, params?: {
40147
+ reason?: string;
40148
+ }, opts?: CallOpts$21): Promise<VaultEmergencyContact>;
40149
+ /** `POST /v1/vault/emergency/{id}/deny` — grantor denies a pending request (back to `sealed`). */
40150
+ deny(id: string, opts?: CallOpts$21): Promise<VaultEmergencyContact>;
40151
+ /** `POST /v1/vault/emergency/{id}/approve` — grantor grants a pending request now. */
40152
+ approve(id: string, opts?: CallOpts$21): Promise<VaultEmergencyContact>;
40153
+ /** `GET /v1/vault/emergency/{id}/vault-data` — contact, status `granted`: sealed vault keys + item envelopes. */
40154
+ vaultData(id: string, opts?: CallOpts$21): Promise<VaultEmergencyData>;
40155
+ }
38521
40156
  export declare class Vault {
38522
40157
  private readonly http;
38523
40158
  readonly devices: VaultDevices;
40159
+ readonly addRequests: VaultAddRequests;
40160
+ readonly emergency: VaultEmergency;
38524
40161
  constructor(http: HttpClient);
38525
40162
  private get;
38526
40163
  private send;
@@ -38604,6 +40241,30 @@ export declare class Vault {
38604
40241
  * `body.proof` is required: 400 `proof_required` / `invalid_challenge`, 403 `invalid_device_proof`.
38605
40242
  */
38606
40243
  resolve(body: VaultResolveRequest, opts?: CallOpts$21): Promise<VaultObject>;
40244
+ /**
40245
+ * `GET /v1/vault/hibp/range/{prefix}` — padded HIBP range (`SUFFIX:COUNT` lines, text) for the first 5 hex chars of
40246
+ * a SHA-1; compare locally, the password never leaves the client. 300 calls per user per hour.
40247
+ */
40248
+ hibpRange(prefix: string, opts?: CallOpts$21): Promise<string>;
40249
+ /** `GET /v1/vault/rotation` — rotation queue: breached, overdue, soonest due; unscheduled last. */
40250
+ rotation(opts?: CallOpts$21): Promise<VaultRotationEntry[]>;
40251
+ /** `PUT /v1/vault/items/{id}/rotation` — any of `interval_days`, `provider`, `snoozed_until`; `null` clears one. */
40252
+ setRotation(id: string, patch: VaultRotationPatch, opts?: CallOpts$21): Promise<VaultRotationSetting>;
40253
+ /** `POST /v1/vault/items/{id}/rotated` — `rotated_at` = now, breach flag cleared. */
40254
+ markRotated(id: string, opts?: CallOpts$21): Promise<Reply<'markVaultItemRotated'>>;
40255
+ /** `POST /v1/vault/rotation/breach-report` — local HIBP results (`count` 0 = clean), up to 500 per call. */
40256
+ reportBreaches(results: VaultBreachResult[], opts?: CallOpts$21): Promise<Reply<'reportVaultBreaches'>>;
40257
+ /** `GET /v1/vault/derivers` — derivers on items in your vaults (config only, never values). */
40258
+ derivers(opts?: CallOpts$21): Promise<VaultDeriver[]>;
40259
+ /** `PUT /v1/vault/items/{id}/deriver` — owner only; config validated per provider. */
40260
+ setDeriver(id: string, body: VaultDeriverInput, opts?: CallOpts$21): Promise<VaultDeriver>;
40261
+ /** `DELETE /v1/vault/items/{id}/deriver` — owner only; 404 when there is none. */
40262
+ deleteDeriver(id: string, opts?: CallOpts$21): Promise<Reply<'deleteVaultItemDeriver'>>;
40263
+ /**
40264
+ * `POST /v1/vault/derive` — codai local brokers only: a short-lived credential from a root item's deriver. Same
40265
+ * `proof` as {@link resolve} over `handles = [handle]`. A 202 (approval required) is returned, not thrown.
40266
+ */
40267
+ derive(body: VaultDeriveRequest, opts?: CallOpts$21): Promise<VaultDerived | VaultDeriveApproval>;
38607
40268
  }
38608
40269
  /** `share_token`, `surface`, `category`, `explanation`, `reporter_name`, `reporter_email`, `good_faith: true`. */
38609
40270
  export type StudioAbuseReportRequest = Mutable<Schema<'StudioAbuseReportRequest'>>;