codai-sdk 0.71.0__tar.gz → 0.72.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/CHANGELOG.md +12 -0
  2. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/PKG-INFO +1 -1
  3. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/pyproject.toml +1 -1
  4. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/__init__.py +1 -1
  5. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/_operations.py +24 -0
  6. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/_types.py +357 -0
  7. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/vault.py +214 -1
  8. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_resources.py +1 -1
  9. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_vault.py +109 -0
  10. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  11. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  12. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/.github/dependabot.yml +0 -0
  13. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/.github/pull_request_template.md +0 -0
  14. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/.github/workflows/publish.yml +0 -0
  15. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/.gitignore +0 -0
  16. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/CODE_OF_CONDUCT.md +0 -0
  17. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/CONTRIBUTING.md +0 -0
  18. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/LICENSE +0 -0
  19. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/README.md +0 -0
  20. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/SECURITY.md +0 -0
  21. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/examples/agent.py +0 -0
  22. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/examples/chat.py +0 -0
  23. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/examples/feedback.py +0 -0
  24. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/examples/streaming.py +0 -0
  25. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/scripts/gen-types.py +0 -0
  26. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/scripts/smoke_local.py +0 -0
  27. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/_http.py +0 -0
  28. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/_resolve_types.py +0 -0
  29. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/__init__.py +0 -0
  30. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/_base.py +0 -0
  31. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/abuse_reports.py +0 -0
  32. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/agents.py +0 -0
  33. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/batches.py +0 -0
  34. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/billing.py +0 -0
  35. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/brand_kits.py +0 -0
  36. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/cards.py +0 -0
  37. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/chat.py +0 -0
  38. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/core.py +0 -0
  39. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/creatives.py +0 -0
  40. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/environments.py +0 -0
  41. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/exports.py +0 -0
  42. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/lists.py +0 -0
  43. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/lyrics.py +0 -0
  44. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/media_ops.py +0 -0
  45. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/memory.py +0 -0
  46. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/messages.py +0 -0
  47. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/music_room.py +0 -0
  48. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/platform.py +0 -0
  49. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/productions.py +0 -0
  50. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/prompts.py +0 -0
  51. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/provenance.py +0 -0
  52. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/referrals.py +0 -0
  53. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/research.py +0 -0
  54. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/resolve.py +0 -0
  55. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/responses.py +0 -0
  56. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/sandboxes.py +0 -0
  57. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/schedules.py +0 -0
  58. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/sessions.py +0 -0
  59. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/shares.py +0 -0
  60. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/templates.py +0 -0
  61. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/transcripts.py +0 -0
  62. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/triggers.py +0 -0
  63. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/usage_keys.py +0 -0
  64. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/voice_revocations.py +0 -0
  65. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/src/codai/resources/voices.py +0 -0
  66. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/conftest.py +0 -0
  67. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_abuse_reports.py +0 -0
  68. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_batches.py +0 -0
  69. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_billing_referrals.py +0 -0
  70. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_brand_kits.py +0 -0
  71. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_cards.py +0 -0
  72. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_creatives.py +0 -0
  73. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_creatives_cx07.py +0 -0
  74. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_creatives_documents.py +0 -0
  75. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_creatives_e11.py +0 -0
  76. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_creatives_e11b.py +0 -0
  77. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_environments_exec.py +0 -0
  78. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_exports.py +0 -0
  79. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_http.py +0 -0
  80. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_lists.py +0 -0
  81. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_lyrics.py +0 -0
  82. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_media_ops.py +0 -0
  83. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_memory.py +0 -0
  84. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_music_room.py +0 -0
  85. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_os_gate.py +0 -0
  86. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_parity.py +0 -0
  87. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_productions.py +0 -0
  88. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_prompts.py +0 -0
  89. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_provenance.py +0 -0
  90. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_research.py +0 -0
  91. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_resolve.py +0 -0
  92. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_sandboxes.py +0 -0
  93. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_settings.py +0 -0
  94. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_shares_e12a.py +0 -0
  95. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_templates.py +0 -0
  96. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_transcripts.py +0 -0
  97. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_voice_revocations.py +0 -0
  98. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/tests/test_voices.py +0 -0
  99. {codai_sdk-0.71.0 → codai_sdk-0.72.0}/uv.lock +0 -0
@@ -6,6 +6,18 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.72.0] - 2026-10-24
10
+
11
+ - Vault wave 2 (ADR `docs/decisions/2026-10-24-vault-wave2.md`), mirroring `codai-sdk` 0.73.0:
12
+ - `vault.add_requests.create / get / cancel / lookup / complete` (`/v1/vault/add-requests*`): an agent asks the
13
+ user to add a missing secret and polls until `handle` is set. No secret passes through these calls.
14
+ - `vault.emergency.list / invite / accept / seal / update / revoke / request / deny / approve / vault_data`
15
+ (`/v1/vault/emergency*`): emergency contacts with vault keys sealed client-side and a 24/48/72 h wait.
16
+ - `vault.hibp_range(prefix)` (text, k-anonymity), `vault.rotation()`, `vault.set_rotation(item_id, ...)`,
17
+ `vault.mark_rotated(item_id)`, `vault.report_breaches(results)`: rotation queue and client-side breach checks.
18
+ - `vault.derivers()`, `vault.set_deriver(...)`, `vault.delete_deriver(item_id)`, `vault.derive(body)`: short-lived
19
+ credentials for codai brokers; HTTP 202 (approval required) is returned, not raised.
20
+
9
21
  ## [0.71.0] - 2026-10-24
10
22
 
11
23
  - `productions.create(kind=..., duration_s=...)`: 8 production kinds (video, image, deck, doc, sheet, audio,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: codai-sdk
3
- Version: 0.71.0
3
+ Version: 0.72.0
4
4
  Summary: Official Python SDK for the codai AI gateway — chat, messages, responses, streaming, agents, sessions, hosts, tasks, account.
5
5
  Project-URL: Homepage, https://codai.ro
6
6
  Project-URL: Repository, https://github.com/codai-ro/codai-sdk-python
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "codai-sdk"
7
- version = "0.71.0"
7
+ version = "0.72.0"
8
8
  description = "Official Python SDK for the codai AI gateway — chat, messages, responses, streaming, agents, sessions, hosts, tasks, account."
9
9
  readme = "README.md"
10
10
 
@@ -172,7 +172,7 @@ __all__ = [
172
172
  "vault_resolve_message",
173
173
  "vault_unlock_message",
174
174
  ]
175
- __version__ = "0.71.0"
175
+ __version__ = "0.72.0"
176
176
  class _CallableGroup:
177
177
  """A resource group that is also callable — keeps ``client.chat(...)``,
178
178
  ``client.embeddings(...)``, ``client.models()`` and ``client.feedback(...)``
@@ -140,6 +140,30 @@ OPERATION_METHODS: Dict[str, str] = {
140
140
  "vaultHttp": "vault.http_call",
141
141
  "vaultResolve": "vault.resolve",
142
142
  "createVaultResolveChallenge": "vault.resolve_challenge",
143
+ "createVaultAddRequest": "vault.add_requests.create",
144
+ "getVaultAddRequest": "vault.add_requests.get",
145
+ "cancelVaultAddRequest": "vault.add_requests.cancel",
146
+ "lookupVaultAddRequest": "vault.add_requests.lookup",
147
+ "completeVaultAddRequest": "vault.add_requests.complete",
148
+ "listVaultEmergency": "vault.emergency.list",
149
+ "inviteVaultEmergency": "vault.emergency.invite",
150
+ "acceptVaultEmergency": "vault.emergency.accept",
151
+ "sealVaultEmergency": "vault.emergency.seal",
152
+ "updateVaultEmergency": "vault.emergency.update",
153
+ "revokeVaultEmergency": "vault.emergency.revoke",
154
+ "requestVaultEmergency": "vault.emergency.request",
155
+ "denyVaultEmergency": "vault.emergency.deny",
156
+ "approveVaultEmergency": "vault.emergency.approve",
157
+ "getVaultEmergencyData": "vault.emergency.vault_data",
158
+ "getVaultHibpRange": "vault.hibp_range",
159
+ "listVaultRotation": "vault.rotation",
160
+ "setVaultItemRotation": "vault.set_rotation",
161
+ "markVaultItemRotated": "vault.mark_rotated",
162
+ "reportVaultBreaches": "vault.report_breaches",
163
+ "listVaultDerivers": "vault.derivers",
164
+ "setVaultItemDeriver": "vault.set_deriver",
165
+ "deleteVaultItemDeriver": "vault.delete_deriver",
166
+ "deriveVaultCredential": "vault.derive",
143
167
  "createStudioAbuseReport": "abuse_reports.create",
144
168
  "checkProvenance": "provenance.check",
145
169
  "createStudioBatch": "batches.create",
@@ -7190,6 +7190,127 @@ class VaultApprovalProofOption2(TypedDict):
7190
7190
  VaultApprovalProof = Union[VaultApprovalProofOption1, VaultApprovalProofOption2]
7191
7191
 
7192
7192
 
7193
+ class _VaultAddRequestCreateRequired(TypedDict):
7194
+ kind: Literal['login', 'api_key', 'env', 'ssh_key', 'oauth_token', 'note', 'card', 'identity', 'passkey']
7195
+ title: str
7196
+ purpose: str
7197
+
7198
+
7199
+ class VaultAddRequestCreate(_VaultAddRequestCreateRequired, total=False):
7200
+ slug: str
7201
+ hosts: List[str]
7202
+ env_var: str
7203
+ fields: List[str]
7204
+ task: str
7205
+
7206
+
7207
+ class VaultAddRequestCreated(TypedDict):
7208
+ id: str
7209
+ url: Optional[str]
7210
+ status: Literal['pending', 'completed', 'cancelled', 'expired']
7211
+ expires_at: str
7212
+
7213
+
7214
+ class VaultAddRequestStatus(TypedDict):
7215
+ id: str
7216
+ status: Literal['pending', 'completed', 'cancelled', 'expired']
7217
+ slug: Optional[str]
7218
+ handle: Optional[str]
7219
+ item_id: Optional[str]
7220
+ expires_at: str
7221
+
7222
+
7223
+ class VaultAddRequest(TypedDict):
7224
+ id: str
7225
+ status: Literal['pending', 'completed', 'cancelled', 'expired']
7226
+ agent: str
7227
+ kind: Literal['login', 'api_key', 'env', 'ssh_key', 'oauth_token', 'note', 'card', 'identity', 'passkey']
7228
+ title: str
7229
+ slug: Optional[str]
7230
+ hosts: List[str]
7231
+ env_var: Optional[str]
7232
+ fields: List[str]
7233
+ purpose: str
7234
+ task: Optional[str]
7235
+ handle: Optional[str]
7236
+ item_id: Optional[str]
7237
+ expires_at: str
7238
+ completed_at: Optional[str]
7239
+ created_at: str
7240
+
7241
+
7242
+ class VaultEmergencyContact(TypedDict):
7243
+ id: str
7244
+ role: Literal['grantor', 'grantee']
7245
+ email: Optional[str]
7246
+ other_name: Optional[str]
7247
+ status: Literal['invited', 'accepted', 'sealed', 'requested', 'granted', 'revoked']
7248
+ delay_hours: Literal[24, 48, 72]
7249
+ vault_ids: List[str]
7250
+ grantee_fingerprint: Optional[str]
7251
+ grantee_public_keys: Optional[Dict[str, Any]]
7252
+ request_reason: Optional[str]
7253
+ requested_at: Optional[str]
7254
+ release_at: Optional[str]
7255
+ granted_at: Optional[str]
7256
+ denied_at: Optional[str]
7257
+ created_at: str
7258
+
7259
+
7260
+ class VaultEmergencyDataVaultsItem(TypedDict):
7261
+ id: str
7262
+ encrypted_meta: str
7263
+ sealed_key: Dict[str, Any]
7264
+
7265
+
7266
+ class VaultEmergencyDataItemsItem(TypedDict):
7267
+ id: str
7268
+ vault_id: str
7269
+ revision: int
7270
+ wrapped_key: str
7271
+ ciphertext: str
7272
+ kind: str
7273
+ slug: Optional[str]
7274
+ agent_meta: Any
7275
+
7276
+
7277
+ class VaultEmergencyData(TypedDict):
7278
+ vaults: List[VaultEmergencyDataVaultsItem]
7279
+ items: List[VaultEmergencyDataItemsItem]
7280
+
7281
+
7282
+ class VaultRotationEntry(TypedDict):
7283
+ item_id: str
7284
+ slug: Optional[str]
7285
+ title: Optional[str]
7286
+ kind: str
7287
+ interval_days: Optional[int]
7288
+ rotated_at: Optional[str]
7289
+ due_at: Optional[str]
7290
+ overdue: bool
7291
+ breached: bool
7292
+ breach_count: int
7293
+ breach_checked_at: Optional[str]
7294
+ snoozed_until: Optional[str]
7295
+ provider: Optional[Literal['stripe', 'github_pat', 'openai', 'google_api_key', 'other']]
7296
+ create_url: Optional[str]
7297
+
7298
+
7299
+ class VaultDeriver(TypedDict):
7300
+ item_id: str
7301
+ provider: Literal['aws_sts', 'gcp_sa', 'cloudflare', 'github_app']
7302
+ config: Dict[str, Any]
7303
+ max_ttl_s: int
7304
+ updated_at: str
7305
+
7306
+
7307
+ class VaultDerived(TypedDict):
7308
+ provider: Literal['aws_sts', 'gcp_sa', 'cloudflare', 'github_app']
7309
+ values: Dict[str, str]
7310
+ env: Dict[str, str]
7311
+ expires_at: str
7312
+
7313
+
7193
7314
  # POST /v1/chat/completions — request body
7194
7315
  CreateChatCompletionBody = ChatCompletionRequest
7195
7316
 
@@ -9770,8 +9891,197 @@ class VaultResolveBody(_VaultResolveBodyRequired, total=False):
9770
9891
  VaultResolveResponse = Dict[str, Any]
9771
9892
 
9772
9893
 
9894
+ # POST /v1/vault/add-requests — request body
9895
+ CreateVaultAddRequestBody = VaultAddRequestCreate
9896
+
9897
+
9898
+ # POST /v1/vault/add-requests — 201 response
9899
+ CreateVaultAddRequestResponse = VaultAddRequestCreated
9900
+
9901
+
9902
+ class LookupVaultAddRequestBody(TypedDict):
9903
+ token: str
9904
+
9905
+
9906
+ # POST /v1/vault/add-requests/lookup — 200 response
9907
+ LookupVaultAddRequestResponse = VaultAddRequest
9908
+
9909
+
9910
+ # GET /v1/vault/add-requests/{id} — 200 response
9911
+ GetVaultAddRequestResponse = VaultAddRequestStatus
9912
+
9913
+
9914
+ # DELETE /v1/vault/add-requests/{id} — 200 response
9915
+ CancelVaultAddRequestResponse = VaultAddRequestStatus
9916
+
9917
+
9918
+ class CompleteVaultAddRequestBody(TypedDict):
9919
+ item_id: str
9920
+
9921
+
9922
+ # POST /v1/vault/add-requests/{id}/complete — 200 response
9923
+ CompleteVaultAddRequestResponse = VaultAddRequestStatus
9924
+
9925
+
9926
+ class ListVaultEmergencyResponse(TypedDict):
9927
+ outgoing: List[VaultEmergencyContact]
9928
+ incoming: List[VaultEmergencyContact]
9929
+
9930
+
9931
+ class _InviteVaultEmergencyBodyRequired(TypedDict):
9932
+ email: str
9933
+ delay_hours: Literal[24, 48, 72]
9934
+
9935
+
9936
+ class InviteVaultEmergencyBody(_InviteVaultEmergencyBodyRequired, total=False):
9937
+ vault_ids: List[str]
9938
+
9939
+
9940
+ class InviteVaultEmergencyResponse(TypedDict):
9941
+ id: str
9942
+
9943
+
9944
+ class AcceptVaultEmergencyBody(TypedDict):
9945
+ token: str
9946
+
9947
+
9948
+ # POST /v1/vault/emergency/accept — 200 response
9949
+ AcceptVaultEmergencyResponse = VaultEmergencyContact
9950
+
9951
+
9952
+ class SealVaultEmergencyBodySealedKeysValue(TypedDict):
9953
+ alg: Literal['xwing-hkdf-xchacha20poly1305']
9954
+ ct: str
9955
+ wrapped: str
9956
+
9957
+
9958
+ class SealVaultEmergencyBody(TypedDict):
9959
+ grantee_fingerprint: str
9960
+ sealed_keys: Dict[str, SealVaultEmergencyBodySealedKeysValue]
9961
+
9962
+
9963
+ # PUT /v1/vault/emergency/{id}/seal — 200 response
9964
+ SealVaultEmergencyResponse = VaultEmergencyContact
9965
+
9966
+
9967
+ class UpdateVaultEmergencyBody(TypedDict, total=False):
9968
+ delay_hours: Literal[24, 48, 72]
9969
+ vault_ids: List[str]
9970
+
9971
+
9972
+ # PATCH /v1/vault/emergency/{id} — 200 response
9973
+ UpdateVaultEmergencyResponse = VaultEmergencyContact
9974
+
9975
+
9976
+ class RevokeVaultEmergencyResponse(TypedDict):
9977
+ id: str
9978
+ status: Literal['revoked']
9979
+
9980
+
9981
+ class RequestVaultEmergencyBody(TypedDict, total=False):
9982
+ reason: str
9983
+
9984
+
9985
+ # POST /v1/vault/emergency/{id}/request — 200 response
9986
+ RequestVaultEmergencyResponse = VaultEmergencyContact
9987
+
9988
+
9989
+ # POST /v1/vault/emergency/{id}/deny — 200 response
9990
+ DenyVaultEmergencyResponse = VaultEmergencyContact
9991
+
9992
+
9993
+ # POST /v1/vault/emergency/{id}/approve — 200 response
9994
+ ApproveVaultEmergencyResponse = VaultEmergencyContact
9995
+
9996
+
9997
+ # GET /v1/vault/emergency/{id}/vault-data — 200 response
9998
+ GetVaultEmergencyDataResponse = VaultEmergencyData
9999
+
10000
+
10001
+ class ListVaultRotationResponse(TypedDict):
10002
+ items: List[VaultRotationEntry]
10003
+
10004
+
10005
+ class SetVaultItemRotationBody(TypedDict, total=False):
10006
+ interval_days: Optional[int]
10007
+ provider: Optional[Literal['stripe', 'github_pat', 'openai', 'google_api_key', 'other']]
10008
+ snoozed_until: Optional[str]
10009
+
10010
+
10011
+ class SetVaultItemRotationResponse(TypedDict):
10012
+ item_id: str
10013
+ interval_days: Optional[int]
10014
+ provider: Optional[Literal['stripe', 'github_pat', 'openai', 'google_api_key', 'other']]
10015
+ snoozed_until: Optional[str]
10016
+
10017
+
10018
+ class MarkVaultItemRotatedResponse(TypedDict):
10019
+ item_id: str
10020
+ rotated_at: Optional[str]
10021
+
10022
+
10023
+ class ReportVaultBreachesBodyResultsItem(TypedDict):
10024
+ item_id: str
10025
+ count: int
10026
+
10027
+
10028
+ class ReportVaultBreachesBody(TypedDict):
10029
+ results: List[ReportVaultBreachesBodyResultsItem]
10030
+
10031
+
10032
+ class ReportVaultBreachesResponse(TypedDict):
10033
+ recorded: int
10034
+ newly_breached: int
10035
+
10036
+
10037
+ class ListVaultDeriversResponse(TypedDict):
10038
+ derivers: List[VaultDeriver]
10039
+
10040
+
10041
+ class SetVaultItemDeriverBody(TypedDict):
10042
+ provider: Literal['aws_sts', 'gcp_sa', 'cloudflare', 'github_app']
10043
+ config: Dict[str, Any]
10044
+ max_ttl_s: int
10045
+
10046
+
10047
+ class SetVaultItemDeriverResponse(TypedDict):
10048
+ deriver: VaultDeriver
10049
+
10050
+
10051
+ class DeleteVaultItemDeriverResponse(TypedDict):
10052
+ deleted: bool
10053
+
10054
+
10055
+ class _DeriveVaultCredentialBodyRequired(TypedDict):
10056
+ handle: str
10057
+ action: str
10058
+ proof: VaultResolveProof
10059
+
10060
+
10061
+ class DeriveVaultCredentialBody(_DeriveVaultCredentialBodyRequired, total=False):
10062
+ purpose: str
10063
+ provenance: Literal['user', 'agent', 'untrusted']
10064
+ chain: List[str]
10065
+ task: Optional[str]
10066
+ ttl_s: int
10067
+
10068
+
10069
+ # POST /v1/vault/derive — 200 response
10070
+ DeriveVaultCredentialResponse = VaultDerived
10071
+
10072
+
10073
+ class DeriveVaultCredentialResponse202(TypedDict):
10074
+ status: Literal['approval_required']
10075
+ tier: str
10076
+ approval_id: str
10077
+ match_number: Optional[str]
10078
+ reasons: List[str]
10079
+
10080
+
9773
10081
  __all__ = [
9774
10082
  'AcceptTranscriptPromptResponse',
10083
+ 'AcceptVaultEmergencyBody',
10084
+ 'AcceptVaultEmergencyResponse',
9775
10085
  'AccountConsent',
9776
10086
  'AccountFeedbackRequest',
9777
10087
  'AccountGrowth',
@@ -9827,6 +10137,7 @@ __all__ = [
9827
10137
  'ApplyCreativeOpsResponse',
9828
10138
  'ApproveScheduleCommandBody',
9829
10139
  'ApproveScheduleCommandResponse',
10140
+ 'ApproveVaultEmergencyResponse',
9830
10141
  'ArchiveEnvironmentResponse',
9831
10142
  'AskTranscriptsBody',
9832
10143
  'AskTranscriptsResponse',
@@ -9866,6 +10177,7 @@ __all__ = [
9866
10177
  'BulkPromptsResponse',
9867
10178
  'CancelAgentRunResponse',
9868
10179
  'CancelStudioBatchResponse',
10180
+ 'CancelVaultAddRequestResponse',
9869
10181
  'CaptionCreativeBody',
9870
10182
  'CaptionCreativeResponse',
9871
10183
  'CaptionPresetId',
@@ -9922,6 +10234,8 @@ __all__ = [
9922
10234
  'ClaimSessionLeaseResponse',
9923
10235
  'CommentCreativeBody',
9924
10236
  'CommentCreativeResponse',
10237
+ 'CompleteVaultAddRequestBody',
10238
+ 'CompleteVaultAddRequestResponse',
9925
10239
  'ConfirmTaskBody',
9926
10240
  'ConfirmTaskResponse',
9927
10241
  'Control',
@@ -10050,6 +10364,8 @@ __all__ = [
10050
10364
  'CreateTranscriptionResponse',
10051
10365
  'CreateTriggerBody',
10052
10366
  'CreateTriggerResponse',
10367
+ 'CreateVaultAddRequestBody',
10368
+ 'CreateVaultAddRequestResponse',
10053
10369
  'CreateVaultBody',
10054
10370
  'CreateVaultDeviceChallengeResponse',
10055
10371
  'CreateVaultResolveChallengeResponse',
@@ -10203,8 +10519,13 @@ __all__ = [
10203
10519
  'DeleteSessionResponse',
10204
10520
  'DeleteSessionShareResponse',
10205
10521
  'DeleteTriggerResponse',
10522
+ 'DeleteVaultItemDeriverResponse',
10206
10523
  'DeleteVaultItemResponse',
10207
10524
  'DeleteVaultRuleResponse',
10525
+ 'DenyVaultEmergencyResponse',
10526
+ 'DeriveVaultCredentialBody',
10527
+ 'DeriveVaultCredentialResponse',
10528
+ 'DeriveVaultCredentialResponse202',
10208
10529
  'DestroyEnvironmentResponse',
10209
10530
  'DeviceListItem',
10210
10531
  'DevicePatch',
@@ -10370,7 +10691,9 @@ __all__ = [
10370
10691
  'GetTranscriptVocabularyResponse',
10371
10692
  'GetUsageResponse',
10372
10693
  'GetVaultAccountResponse',
10694
+ 'GetVaultAddRequestResponse',
10373
10695
  'GetVaultApprovalResponse',
10696
+ 'GetVaultEmergencyDataResponse',
10374
10697
  'GetVideoResponse',
10375
10698
  'GetVideoResponseDataItemOption1',
10376
10699
  'HeartbeatMonitor',
@@ -10388,6 +10711,8 @@ __all__ = [
10388
10711
  'InsufficientBalanceErrorError',
10389
10712
  'InsufficientFundsError',
10390
10713
  'InsufficientFundsErrorError',
10714
+ 'InviteVaultEmergencyBody',
10715
+ 'InviteVaultEmergencyResponse',
10391
10716
  'IssueMyEnvironmentSshCertBody',
10392
10717
  'IssueMyEnvironmentSshCertResponse',
10393
10718
  'LaunchPromptBody',
@@ -10462,20 +10787,26 @@ __all__ = [
10462
10787
  'ListTriggerEventsResponse',
10463
10788
  'ListTriggersResponse',
10464
10789
  'ListVaultApprovalsResponse',
10790
+ 'ListVaultDeriversResponse',
10465
10791
  'ListVaultDevicesResponse',
10792
+ 'ListVaultEmergencyResponse',
10466
10793
  'ListVaultEventsResponse',
10467
10794
  'ListVaultGrantsResponse',
10468
10795
  'ListVaultItemsResponse',
10469
10796
  'ListVaultLimitsResponse',
10797
+ 'ListVaultRotationResponse',
10470
10798
  'ListVaultRulesResponse',
10471
10799
  'ListVaultsResponse',
10472
10800
  'LocalizeCreativeBody',
10473
10801
  'LocalizeCreativeResponse',
10474
10802
  'LockVaultBody',
10475
10803
  'LockVaultResponse',
10804
+ 'LookupVaultAddRequestBody',
10805
+ 'LookupVaultAddRequestResponse',
10476
10806
  'MarkNotificationsReadBody',
10477
10807
  'MarkNotificationsReadResponse',
10478
10808
  'MarkSessionControlAppliedResponse',
10809
+ 'MarkVaultItemRotatedResponse',
10479
10810
  'MatchPromptBody',
10480
10811
  'MatchPromptResponse',
10481
10812
  'MediaOp',
@@ -10655,6 +10986,11 @@ __all__ = [
10655
10986
  'ReplyPublicReviewThreadResponse',
10656
10987
  'ReportScheduleRunResultBody',
10657
10988
  'ReportScheduleRunResultResponse',
10989
+ 'ReportVaultBreachesBody',
10990
+ 'ReportVaultBreachesBodyResultsItem',
10991
+ 'ReportVaultBreachesResponse',
10992
+ 'RequestVaultEmergencyBody',
10993
+ 'RequestVaultEmergencyResponse',
10658
10994
  'ResearchJob',
10659
10995
  'ResearchJobError',
10660
10996
  'ResearchRequest',
@@ -10676,6 +11012,7 @@ __all__ = [
10676
11012
  'RevertCreativeResponse',
10677
11013
  'RevokeSelfKeyResponse',
10678
11014
  'RevokeVaultDeviceResponse',
11015
+ 'RevokeVaultEmergencyResponse',
10679
11016
  'RevokeVaultGrantResponse',
10680
11017
  'RevokeVaultTaskGrantsBody',
10681
11018
  'RevokeVaultTaskGrantsResponse',
@@ -10737,6 +11074,9 @@ __all__ = [
10737
11074
  'ScheduleInput',
10738
11075
  'ScheduleRun',
10739
11076
  'SchedulerHost',
11077
+ 'SealVaultEmergencyBody',
11078
+ 'SealVaultEmergencyBodySealedKeysValue',
11079
+ 'SealVaultEmergencyResponse',
10740
11080
  'SearchMemoriesResponse',
10741
11081
  'SearchSfxResponse',
10742
11082
  'SearchTranscriptsResponse',
@@ -10783,8 +11123,12 @@ __all__ = [
10783
11123
  'SetTriggerSecretResponse',
10784
11124
  'SetVaultItemCloudBody',
10785
11125
  'SetVaultItemCloudResponse',
11126
+ 'SetVaultItemDeriverBody',
11127
+ 'SetVaultItemDeriverResponse',
10786
11128
  'SetVaultItemLimitsBody',
10787
11129
  'SetVaultItemLimitsResponse',
11130
+ 'SetVaultItemRotationBody',
11131
+ 'SetVaultItemRotationResponse',
10788
11132
  'SettingsConflict',
10789
11133
  'SettingsConflictError',
10790
11134
  'SettingsPatchRequest',
@@ -11044,22 +11388,34 @@ __all__ = [
11044
11388
  'UpdateTranscriptUtteranceResponse',
11045
11389
  'UpdateTriggerBody',
11046
11390
  'UpdateTriggerResponse',
11391
+ 'UpdateVaultEmergencyBody',
11392
+ 'UpdateVaultEmergencyResponse',
11047
11393
  'UsageReport',
11048
11394
  'UsageRow',
11049
11395
  'UserSettings',
11050
11396
  'Utterance',
11051
11397
  'UtteranceWordsItem',
11052
11398
  'VaultAccount',
11399
+ 'VaultAddRequest',
11400
+ 'VaultAddRequestCreate',
11401
+ 'VaultAddRequestCreated',
11402
+ 'VaultAddRequestStatus',
11053
11403
  'VaultApprovalProof',
11054
11404
  'VaultApprovalProofOption1',
11055
11405
  'VaultApprovalProofOption2',
11056
11406
  'VaultCatalogResponse',
11407
+ 'VaultDerived',
11408
+ 'VaultDeriver',
11057
11409
  'VaultDeviceChallenge',
11058
11410
  'VaultDeviceEnroll',
11059
11411
  'VaultDeviceEnrollAttestationOption1',
11060
11412
  'VaultDeviceEnrollAttestationOption2',
11061
11413
  'VaultDeviceEnrollAttestationOption2Tpm',
11062
11414
  'VaultDeviceKey',
11415
+ 'VaultEmergencyContact',
11416
+ 'VaultEmergencyData',
11417
+ 'VaultEmergencyDataItemsItem',
11418
+ 'VaultEmergencyDataVaultsItem',
11063
11419
  'VaultGuards',
11064
11420
  'VaultHttpBody',
11065
11421
  'VaultHttpResponse',
@@ -11070,6 +11426,7 @@ __all__ = [
11070
11426
  'VaultResolveChallenge',
11071
11427
  'VaultResolveProof',
11072
11428
  'VaultResolveResponse',
11429
+ 'VaultRotationEntry',
11073
11430
  'VaultUnlockChallenge',
11074
11431
  'VaultUseBody',
11075
11432
  'VaultUseDecision',