@amigo-ai/platform-sdk 0.81.0 → 0.83.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.
Files changed (37) hide show
  1. package/api.md +1 -9
  2. package/dist/index.cjs +22 -73
  3. package/dist/index.cjs.map +4 -4
  4. package/dist/index.js +0 -5
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +22 -73
  7. package/dist/index.mjs.map +4 -4
  8. package/dist/resources/sessions.js +18 -1
  9. package/dist/resources/sessions.js.map +1 -1
  10. package/dist/types/generated/api.d.ts +538 -958
  11. package/dist/types/generated/api.d.ts.map +1 -1
  12. package/dist/types/index.d.cts +0 -4
  13. package/dist/types/index.d.cts.map +1 -1
  14. package/dist/types/index.d.ts +0 -4
  15. package/dist/types/index.d.ts.map +1 -1
  16. package/dist/types/resources/external-integrations.d.ts.map +1 -1
  17. package/dist/types/resources/intake.d.ts.map +1 -1
  18. package/dist/types/resources/integrations.d.ts.map +1 -1
  19. package/dist/types/resources/metrics.d.ts.map +1 -1
  20. package/dist/types/resources/operators.d.ts.map +1 -1
  21. package/dist/types/resources/services.d.ts.map +1 -1
  22. package/dist/types/resources/sessions.d.ts +26 -0
  23. package/dist/types/resources/sessions.d.ts.map +1 -1
  24. package/dist/types/resources/settings.d.ts.map +1 -1
  25. package/dist/types/resources/surfaces.d.ts.map +1 -1
  26. package/dist/types/resources/triggers.d.ts +36 -12
  27. package/dist/types/resources/triggers.d.ts.map +1 -1
  28. package/dist/types/resources/world.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/resources/channels/index.js +0 -27
  31. package/dist/resources/channels/index.js.map +0 -1
  32. package/dist/resources/channels/ses-setup.js +0 -62
  33. package/dist/resources/channels/ses-setup.js.map +0 -1
  34. package/dist/types/resources/channels/index.d.ts +0 -26
  35. package/dist/types/resources/channels/index.d.ts.map +0 -1
  36. package/dist/types/resources/channels/ses-setup.d.ts +0 -49
  37. package/dist/types/resources/channels/ses-setup.d.ts.map +0 -1
@@ -1763,122 +1763,6 @@ export interface paths {
1763
1763
  patch?: never;
1764
1764
  trace?: never;
1765
1765
  };
1766
- "/v1/{workspace_id}/channels/email/templates": {
1767
- parameters: {
1768
- query?: never;
1769
- header?: never;
1770
- path?: never;
1771
- cookie?: never;
1772
- };
1773
- /**
1774
- * List email templates for an SES use case
1775
- * @description List the templates of one SES use case bound to this workspace. Unpaginated — templates per use case are a bounded, human-curated catalog. Template bodies are omitted; fetch one template for the full Jinja + required variables. Requires ``Channel.view`` permission.
1776
- */
1777
- get: operations["list-email-templates"];
1778
- put?: never;
1779
- /**
1780
- * Create an email template
1781
- * @description Create a Jinja email template under an SES use case bound to this workspace. Channel-manager validates the Jinja syntax and the unsubscribe-variable gate: the subject may not reference unsubscribe variables, and the body must reference both unsubscribe variables exactly when the use case is unsubscribable (marketing). The response carries the extracted ``required_{subject,body}_variables`` a send-time caller must supply. Requires ``Channel.create`` permission.
1782
- */
1783
- post: operations["create-email-template"];
1784
- delete?: never;
1785
- options?: never;
1786
- head?: never;
1787
- patch?: never;
1788
- trace?: never;
1789
- };
1790
- "/v1/{workspace_id}/channels/email/templates/{email_template_id}": {
1791
- parameters: {
1792
- query?: never;
1793
- header?: never;
1794
- path?: never;
1795
- cookie?: never;
1796
- };
1797
- /**
1798
- * Get an email template
1799
- * @description Full template detail including the Jinja subject/body and the extracted required variables. 404 unless the template's SES use case is bound to this workspace. Requires ``Channel.view`` permission.
1800
- */
1801
- get: operations["get-email-template"];
1802
- /**
1803
- * Update an email template
1804
- * @description Partial update: absent fields are untouched; ``description`` may be explicitly nulled; at least one field is required. Subject/body changes re-run channel-manager's Jinja validation and the unsubscribe-variable gate. 404 unless the template's SES use case is bound to this workspace. Requires ``Channel.create`` permission.
1805
- */
1806
- put: operations["update-email-template"];
1807
- post?: never;
1808
- /**
1809
- * Delete an email template
1810
- * @description Delete a template. 404 unless the template's SES use case is bound to this workspace. Requires ``Channel.delete`` permission.
1811
- */
1812
- delete: operations["delete-email-template"];
1813
- options?: never;
1814
- head?: never;
1815
- patch?: never;
1816
- trace?: never;
1817
- };
1818
- "/v1/{workspace_id}/channels/ses-setup": {
1819
- parameters: {
1820
- query?: never;
1821
- header?: never;
1822
- path?: never;
1823
- cookie?: never;
1824
- };
1825
- get?: never;
1826
- put?: never;
1827
- /**
1828
- * Create an SES setup
1829
- * @description Create an SES tenant + verified email identity. Returns the DNS records the customer must publish (DKIM CNAMEs, MX, DMARC TXT). Subsequent ``GET`` or ``POST /verify`` calls re-run the live DNS lookup and update the per-record ``verified`` flag. The setup is owned by the creating workspace; only that workspace can list, get, verify, or delete it. Requires ``Channel.create`` permission.
1830
- */
1831
- post: operations["create-ses-setup"];
1832
- delete?: never;
1833
- options?: never;
1834
- head?: never;
1835
- patch?: never;
1836
- trace?: never;
1837
- };
1838
- "/v1/{workspace_id}/channels/ses-setup/{setup_id}": {
1839
- parameters: {
1840
- query?: never;
1841
- header?: never;
1842
- path?: never;
1843
- cookie?: never;
1844
- };
1845
- /**
1846
- * Get an SES setup with live DNS refresh
1847
- * @description Returns full SES setup detail including per-record DNS verification status. Channel-manager re-runs ``GetEmailIdentity`` + DMARC/MX resolvers on every call, so each GET is a live check. Requires ``Channel.view`` permission.
1848
- */
1849
- get: operations["get-ses-setup"];
1850
- put?: never;
1851
- post?: never;
1852
- /**
1853
- * Delete an SES setup
1854
- * @description Tear down the upstream SES tenant + identity. Refuses (409) if any use case still references the setup. Requires ``Channel.delete`` permission.
1855
- */
1856
- delete: operations["delete-ses-setup"];
1857
- options?: never;
1858
- head?: never;
1859
- patch?: never;
1860
- trace?: never;
1861
- };
1862
- "/v1/{workspace_id}/channels/ses-setup/{setup_id}/verify": {
1863
- parameters: {
1864
- query?: never;
1865
- header?: never;
1866
- path?: never;
1867
- cookie?: never;
1868
- };
1869
- get?: never;
1870
- put?: never;
1871
- /**
1872
- * Refresh SES DNS verification
1873
- * @description Explicit DNS refresh endpoint. Equivalent to ``GET /ses-setup/{id}`` but exposed as a POST so UI ``Verify now`` actions read as actions rather than reads. Requires ``Channel.view`` permission.
1874
- */
1875
- post: operations["verify-ses-setup-dns"];
1876
- delete?: never;
1877
- options?: never;
1878
- head?: never;
1879
- patch?: never;
1880
- trace?: never;
1881
- };
1882
1766
  "/v1/{workspace_id}/command-center": {
1883
1767
  parameters: {
1884
1768
  query?: never;
@@ -2100,7 +1984,7 @@ export interface paths {
2100
1984
  /** List all conversations (voice + text) */
2101
1985
  get: operations["list_conversations_v1__workspace_id__conversations_get"];
2102
1986
  put?: never;
2103
- /** Create a new text conversation */
1987
+ /** Create or start a conversation (web inbound, or outbound on a channel) */
2104
1988
  post: operations["create_conversation_v1__workspace_id__conversations_post"];
2105
1989
  delete?: never;
2106
1990
  options?: never;
@@ -2146,6 +2030,26 @@ export interface paths {
2146
2030
  patch?: never;
2147
2031
  trace?: never;
2148
2032
  };
2033
+ "/v1/{workspace_id}/conversations/{conversation_id}/channel": {
2034
+ parameters: {
2035
+ query?: never;
2036
+ header?: never;
2037
+ path?: never;
2038
+ cookie?: never;
2039
+ };
2040
+ get?: never;
2041
+ put?: never;
2042
+ /**
2043
+ * Switch a conversation to another channel
2044
+ * @description Move an active conversation onto a different channel (sms/imessage today). The durable conversation id is preserved — the same conversation continues; only its routing changes. Optionally dispatch a first agent turn on the new channel.
2045
+ */
2046
+ post: operations["switch_conversation_channel_v1__workspace_id__conversations__conversation_id__channel_post"];
2047
+ delete?: never;
2048
+ options?: never;
2049
+ head?: never;
2050
+ patch?: never;
2051
+ trace?: never;
2052
+ };
2149
2053
  "/v1/{workspace_id}/conversations/{conversation_id}/turns": {
2150
2054
  parameters: {
2151
2055
  query?: never;
@@ -3478,6 +3382,60 @@ export interface paths {
3478
3382
  patch?: never;
3479
3383
  trace?: never;
3480
3384
  };
3385
+ "/v1/{workspace_id}/intake/materializations": {
3386
+ parameters: {
3387
+ query?: never;
3388
+ header?: never;
3389
+ path?: never;
3390
+ cookie?: never;
3391
+ };
3392
+ /**
3393
+ * List Intake Materializations
3394
+ * @description Per-dataset materialization status for the workspace's Destinations tab.
3395
+ *
3396
+ * Lists each registered dataset alongside its customer-data destination table's
3397
+ * status — ``materialized`` (with row count + last-write time) or
3398
+ * ``not_materialized`` (no table yet). The dataset list + pagination mirror
3399
+ * ``GET /datasets`` (the contracts registry); the destination status is read
3400
+ * from the ``customer_data_<env>`` catalog via the SQL warehouse. Member read.
3401
+ */
3402
+ get: operations["list_intake_materializations_v1__workspace_id__intake_materializations_get"];
3403
+ put?: never;
3404
+ post?: never;
3405
+ delete?: never;
3406
+ options?: never;
3407
+ head?: never;
3408
+ patch?: never;
3409
+ trace?: never;
3410
+ };
3411
+ "/v1/{workspace_id}/intake/materialize": {
3412
+ parameters: {
3413
+ query?: never;
3414
+ header?: never;
3415
+ path?: never;
3416
+ cookie?: never;
3417
+ };
3418
+ get?: never;
3419
+ put?: never;
3420
+ /**
3421
+ * Materialize Intake
3422
+ * @description Trigger the intake → customer-data materializer for this workspace.
3423
+ *
3424
+ * Fires the materializer Databricks job (run-now); it rescans the workspace's
3425
+ * curated intake files and (re)materializes each snapshot dataset into
3426
+ * ``customer_data_<env>.<workspace_id>.<dataset>``. Every write is an idempotent
3427
+ * keyed MERGE / full overwrite, so a re-click is safe. Optionally scope to one
3428
+ * ``dataset``; omit for all curated snapshot datasets. Returns ``202`` with the
3429
+ * job ``run_id`` (``null`` when the job is not configured in this environment).
3430
+ * Same auth gate as ``POST /batches/{batch_id}/process``.
3431
+ */
3432
+ post: operations["materialize_intake_v1__workspace_id__intake_materialize_post"];
3433
+ delete?: never;
3434
+ options?: never;
3435
+ head?: never;
3436
+ patch?: never;
3437
+ trace?: never;
3438
+ };
3481
3439
  "/v1/{workspace_id}/intake/schema/register": {
3482
3440
  parameters: {
3483
3441
  query?: never;
@@ -5569,8 +5527,8 @@ export interface paths {
5569
5527
  cookie?: never;
5570
5528
  };
5571
5529
  /**
5572
- * Voice fleet capacity status
5573
- * @description Live Agones voice-fleet capacity: Ready/Allocated/total GameServers plus headroom against the maxReplicas ceiling. Workspace-GLOBAL — one fleet serves every workspace, so the path workspace_id is only the auth anchor, never a data filter. Operator-only.
5530
+ * Agones fleet capacity status
5531
+ * @description Live Agones fleet capacity: Ready/Allocated/total GameServers plus headroom against the maxReplicas ceiling. `fleet=voice` (default) reads the per-call voice fleet; `fleet=tool-runner` reads the isolated background-tool fleet. Workspace-GLOBAL — one fleet serves every workspace, so the path workspace_id is only the auth anchor, never a data filter. Operator-only.
5574
5532
  */
5575
5533
  get: operations["get_fleet_status_v1__workspace_id__sessions_fleet_status_get"];
5576
5534
  put?: never;
@@ -7113,7 +7071,7 @@ export interface paths {
7113
7071
  };
7114
7072
  /**
7115
7073
  * List trigger execution history
7116
- * @description Execution history from the Lakebase entity-event timeline read model.
7074
+ * @description Execution history from the durable trigger run table.
7117
7075
  */
7118
7076
  get: operations["list-trigger-runs"];
7119
7077
  put?: never;
@@ -7137,32 +7095,56 @@ export interface paths {
7137
7095
  */
7138
7096
  get: operations["list-use-cases"];
7139
7097
  put?: never;
7098
+ post?: never;
7099
+ delete?: never;
7100
+ options?: never;
7101
+ head?: never;
7102
+ patch?: never;
7103
+ trace?: never;
7104
+ };
7105
+ "/v1/{workspace_id}/use-cases/ownership": {
7106
+ parameters: {
7107
+ query?: never;
7108
+ header?: never;
7109
+ path?: never;
7110
+ cookie?: never;
7111
+ };
7140
7112
  /**
7141
- * Create a channel use case
7142
- * @description Create a voice or email use case. Body is a discriminated union on the `channel` field. Requires Channel.create permission.
7113
+ * List use cases this workspace owns
7114
+ * @description Return the ids of the channel-manager use cases this workspace owns. Requires Channel.view permission.
7143
7115
  */
7144
- post: operations["create-use-case"];
7116
+ get: operations["list-owned-use-cases"];
7117
+ put?: never;
7118
+ post?: never;
7145
7119
  delete?: never;
7146
7120
  options?: never;
7147
7121
  head?: never;
7148
7122
  patch?: never;
7149
7123
  trace?: never;
7150
7124
  };
7151
- "/v1/{workspace_id}/use-cases/{use_case_id}": {
7125
+ "/v1/{workspace_id}/use-cases/{use_case_id}/ownership": {
7152
7126
  parameters: {
7153
7127
  query?: never;
7154
7128
  header?: never;
7155
7129
  path?: never;
7156
7130
  cookie?: never;
7157
7131
  };
7158
- get?: never;
7159
- put?: never;
7132
+ /**
7133
+ * Check whether this workspace owns a use case
7134
+ * @description Return the ownership record if the current workspace owns the use case, or 404 if it does not (no existence leak). Requires Channel.view permission.
7135
+ */
7136
+ get: operations["get-use-case-ownership"];
7137
+ /**
7138
+ * Assign ownership of a use case to this workspace
7139
+ * @description Claim ownership of a channel-manager use case for the current workspace. Idempotent — re-assigning an already-owned use case returns 200. 404 if the use case does not exist in channel-manager. 409 if the use case is already owned by another workspace. Requires Channel.ManageOwnership permission (admin tier).
7140
+ */
7141
+ put: operations["assign-use-case-ownership"];
7160
7142
  post?: never;
7161
7143
  /**
7162
- * Delete a channel use case
7163
- * @description Delete a use case. Refuses (409) while any service still binds the use case — call DELETE `/use-cases/{id}/service-binding` first. Also refuses if a Twilio use case still has phone-number assignments. Requires Channel.delete permission.
7144
+ * Release this workspace's ownership of a use case
7145
+ * @description Release the current workspace's ownership of a use case. Refuses (409) while any service still binds the use case — call DELETE `/use-cases/{id}/service-binding` first. 404 if this workspace does not own the use case. Requires Channel.ManageOwnership permission (admin tier).
7164
7146
  */
7165
- delete: operations["delete-use-case"];
7147
+ delete: operations["release-use-case-ownership"];
7166
7148
  options?: never;
7167
7149
  head?: never;
7168
7150
  patch?: never;
@@ -10953,6 +10935,8 @@ export interface components {
10953
10935
  * @default []
10954
10936
  */
10955
10937
  available_actions?: components["schemas"]["ConversationTurnAvailableAction"][];
10938
+ /** @description Channel this turn occurred on. A conversation that switched channels has a self-describing per-turn history; null on turns written before per-turn attribution or on channel-less internal turns. */
10939
+ channel?: components["schemas"]["ChannelKind"] | null;
10956
10940
  /**
10957
10941
  * Content
10958
10942
  * @default []
@@ -11173,13 +11157,24 @@ export interface components {
11173
11157
  };
11174
11158
  /** CreateConversationRequest */
11175
11159
  CreateConversationRequest: {
11160
+ /** @default web */
11161
+ channel?: components["schemas"]["ChannelKind"];
11176
11162
  /** Entity Id */
11177
11163
  entity_id?: string | null;
11164
+ /** @description Optional context steering what the agent opens with on an outbound conversation. */
11165
+ instruction?: components["schemas"]["BackgroundString"] | null;
11166
+ /** @description Destination address for an outbound conversation (E.164 for sms/imessage). Required for non-web. */
11167
+ recipient?: components["schemas"]["PhoneE164"] | null;
11178
11168
  /**
11179
11169
  * Service Id
11180
11170
  * Format: uuid
11181
11171
  */
11182
11172
  service_id: string;
11173
+ /**
11174
+ * Use Case Id
11175
+ * @description Channel-manager use case the outbound conversation is sent through. Required for non-web; channel-manager resolves the sender (FROM) from it (never caller-supplied). Must be owned by this workspace.
11176
+ */
11177
+ use_case_id?: string | null;
11183
11178
  };
11184
11179
  /** CreateCustomerRequest */
11185
11180
  CreateCustomerRequest: {
@@ -11251,39 +11246,6 @@ export interface components {
11251
11246
  */
11252
11247
  sync_strategy?: "manual" | "scheduled" | "webhook" | "continuous";
11253
11248
  };
11254
- /** CreateEmailTemplateRequest */
11255
- CreateEmailTemplateRequest: {
11256
- /**
11257
- * Body Template
11258
- * @description Jinja HTML body. For an unsubscribable (marketing) use case it MUST
11259
- * reference both unsubscribe variables; for a transactional one it must
11260
- * not — channel-manager enforces the gate bidirectionally.
11261
- */
11262
- body_template: string;
11263
- /**
11264
- * Description
11265
- * @description Agent-facing intent description — what the catalog shows an agent
11266
- * picking a template (R3).
11267
- */
11268
- description?: string | null;
11269
- /**
11270
- * Name
11271
- * @description Template name, unique within the SES use case.
11272
- */
11273
- name: string;
11274
- /**
11275
- * Ses Use Case Id
11276
- * Format: uuid
11277
- * @description The email use case the template belongs to. Must be bound to this
11278
- * workspace via its service binding.
11279
- */
11280
- ses_use_case_id: string;
11281
- /**
11282
- * Subject Template
11283
- * @description Jinja subject. May not reference unsubscribe variables.
11284
- */
11285
- subject_template: string;
11286
- };
11287
11249
  /** CreateLinkRequest */
11288
11250
  CreateLinkRequest: {
11289
11251
  customer_slug: components["schemas"]["SlugString"];
@@ -11538,21 +11500,6 @@ export interface components {
11538
11500
  };
11539
11501
  voice_config?: components["schemas"]["ServiceVoiceConfig-Input"] | null;
11540
11502
  };
11541
- /** CreateSesSetupRequest */
11542
- CreateSesSetupRequest: {
11543
- /**
11544
- * Domain Identity
11545
- * @description Domain to verify for both sending and receiving (e.g.
11546
- * ``mail.customer.com``). A single SES identity serves both directions.
11547
- */
11548
- domain_identity: string;
11549
- /**
11550
- * Tenant Name
11551
- * @description Logical SES tenant name (reputation + suppression isolation boundary).
11552
- * Unique within the AWS account. Alphabet ``[A-Za-z0-9_-]``, 1-64 chars.
11553
- */
11554
- tenant_name: string;
11555
- };
11556
11503
  /** CreateSessionRequest */
11557
11504
  CreateSessionRequest: {
11558
11505
  /** Branch Name */
@@ -12843,29 +12790,6 @@ export interface components {
12843
12790
  */
12844
12791
  workspace_id: string;
12845
12792
  };
12846
- /** DnsRecordResponse */
12847
- DnsRecordResponse: {
12848
- /**
12849
- * Address
12850
- * @description Fully-qualified hostname the DNS entry lives under.
12851
- */
12852
- address: string;
12853
- /**
12854
- * Record
12855
- * @description Target value the customer must publish at their DNS provider.
12856
- */
12857
- record: string;
12858
- /**
12859
- * Type
12860
- * @enum {string}
12861
- */
12862
- type: "CNAME" | "MX" | "TXT";
12863
- /**
12864
- * Verified
12865
- * @description Whether the live DNS lookup at the time of the GET found the entry.
12866
- */
12867
- verified: boolean;
12868
- };
12869
12793
  /**
12870
12794
  * DocumentProcessingSpec
12871
12795
  * @description Processing config for a document dataset (``ingestion_mode=document``).
@@ -12946,94 +12870,6 @@ export interface components {
12946
12870
  /** Region */
12947
12871
  region: string;
12948
12872
  };
12949
- /**
12950
- * EmailTemplateListResponse
12951
- * @description Plain (unpaginated) list — templates per use case are a bounded-small,
12952
- * human-curated catalog. Template bodies stay behind the GET-by-id route so
12953
- * a list never ships megabytes of Jinja.
12954
- */
12955
- EmailTemplateListResponse: {
12956
- /** Items */
12957
- items: components["schemas"]["src__routes__channels__email_templates__EmailTemplateListResponse__Item"][];
12958
- };
12959
- /** EmailTemplateResponse */
12960
- EmailTemplateResponse: {
12961
- /** Body Template */
12962
- body_template: string;
12963
- /**
12964
- * Created At
12965
- * Format: date-time
12966
- */
12967
- created_at: string;
12968
- /** Description */
12969
- description: string | null;
12970
- /**
12971
- * Id
12972
- * Format: uuid
12973
- */
12974
- id: string;
12975
- /** Name */
12976
- name: string;
12977
- /** Required Body Variables */
12978
- required_body_variables: string[];
12979
- /**
12980
- * Required Subject Variables
12981
- * @description Jinja variables the subject references — the send-time caller must
12982
- * supply every one via ``template_parameters``.
12983
- */
12984
- required_subject_variables: string[];
12985
- /**
12986
- * Ses Use Case Id
12987
- * Format: uuid
12988
- */
12989
- ses_use_case_id: string;
12990
- /** Subject Template */
12991
- subject_template: string;
12992
- /**
12993
- * Updated At
12994
- * Format: date-time
12995
- */
12996
- updated_at: string;
12997
- };
12998
- /** EmailUseCaseRequest */
12999
- EmailUseCaseRequest: {
13000
- /**
13001
- * Accepts Cold Inbound
13002
- * @description Whether inbound email addressed to sender_email_address that does NOT reply to one of our outbound messages is accepted (after DMARC/spam gates). False = strict thread-only inbox.
13003
- */
13004
- accepts_cold_inbound: boolean;
13005
- /**
13006
- * @description discriminator enum property added by openapi-typescript
13007
- * @enum {string}
13008
- */
13009
- channel: "email";
13010
- /** Description */
13011
- description?: string | null;
13012
- /**
13013
- * Email Type
13014
- * @enum {string}
13015
- */
13016
- email_type: "transactional" | "marketing";
13017
- /** Entity Name */
13018
- entity_name: string;
13019
- /** Name */
13020
- name: string;
13021
- /**
13022
- * Sender Email Address
13023
- * Format: email
13024
- */
13025
- sender_email_address: string;
13026
- /**
13027
- * Setup Id
13028
- * Format: uuid
13029
- */
13030
- setup_id: string;
13031
- /**
13032
- * Unsubscribable
13033
- * @description Whether sends carry RFC 8058 unsubscribe (List-Unsubscribe header + footer links) and honor the per-use-case unsubscribe list. Marketing email_type must be unsubscribable; transactional may opt out for must-send flows.
13034
- */
13035
- unsubscribable: boolean;
13036
- };
13037
12873
  /** EmotionEvent */
13038
12874
  EmotionEvent: {
13039
12875
  /** Arousal */
@@ -15318,12 +15154,13 @@ export interface components {
15318
15154
  };
15319
15155
  /**
15320
15156
  * FleetStatusResponse
15321
- * @description Live voice Agones fleet capacity (workspace-global).
15157
+ * @description Live Agones fleet capacity (workspace-global).
15322
15158
  *
15323
- * ``headroom`` = remaining isolated-call slots (``max_replicas - allocated``);
15159
+ * ``headroom`` = remaining isolated-unit slots (``max_replicas - allocated``);
15324
15160
  * ``max_replicas``/``headroom`` are null when the ceiling isn't configured upstream.
15325
15161
  * The counts span the whole fleet (one fleet serves every workspace) — this is NOT
15326
- * per-workspace.
15162
+ * per-workspace. ``fleet``/``namespace`` echo which fleet was read (voice per-call
15163
+ * fleet, or the tool-runner background-tool fleet via ``?fleet=tool-runner``).
15327
15164
  */
15328
15165
  FleetStatusResponse: {
15329
15166
  /** Allocated */
@@ -17032,6 +16869,35 @@ export interface components {
17032
16869
  */
17033
16870
  workspace_id: string;
17034
16871
  };
16872
+ /**
16873
+ * MaterializationRow
16874
+ * @description Per-dataset status of the customer-data destination table
16875
+ * (``customer_data_<env>.<workspace_id>.<dataset>``).
16876
+ */
16877
+ MaterializationRow: {
16878
+ /** Dataset */
16879
+ dataset: string;
16880
+ /** Ingestion Mode */
16881
+ ingestion_mode: string;
16882
+ /** Last Materialized At */
16883
+ last_materialized_at?: string | null;
16884
+ /** Row Count */
16885
+ row_count?: number | null;
16886
+ /**
16887
+ * Status
16888
+ * @enum {string}
16889
+ */
16890
+ status: "materialized" | "not_materialized";
16891
+ };
16892
+ /** MaterializeRequest */
16893
+ MaterializeRequest: {
16894
+ dataset?: components["schemas"]["_DatasetSlug"] | null;
16895
+ };
16896
+ /** MaterializeResponse */
16897
+ MaterializeResponse: {
16898
+ /** Run Id */
16899
+ run_id?: number | null;
16900
+ };
17035
16901
  /**
17036
16902
  * MediaAttachedEvent
17037
16903
  * @description A media WebSocket actually reached the call's GameServer — the audio-path signal.
@@ -18456,6 +18322,24 @@ export interface components {
18456
18322
  /** Rules */
18457
18323
  rules: components["schemas"]["OutreachRule"][];
18458
18324
  };
18325
+ /** OwnedUseCasesResponse */
18326
+ OwnedUseCasesResponse: {
18327
+ /** Items */
18328
+ items: string[];
18329
+ };
18330
+ /** OwnershipResponse */
18331
+ OwnershipResponse: {
18332
+ /**
18333
+ * Use Case Id
18334
+ * Format: uuid
18335
+ */
18336
+ use_case_id: string;
18337
+ /**
18338
+ * Workspace Id
18339
+ * Format: uuid
18340
+ */
18341
+ workspace_id: string;
18342
+ };
18459
18343
  /** PaginatedResponse[ActiveEscalationItem] */
18460
18344
  PaginatedResponse_ActiveEscalationItem_: {
18461
18345
  /** Continuation Token */
@@ -18643,6 +18527,17 @@ export interface components {
18643
18527
  /** Total */
18644
18528
  total?: number | null;
18645
18529
  };
18530
+ /** PaginatedResponse[MaterializationRow] */
18531
+ PaginatedResponse_MaterializationRow_: {
18532
+ /** Continuation Token */
18533
+ continuation_token?: number | null;
18534
+ /** Has More */
18535
+ has_more: boolean;
18536
+ /** Items */
18537
+ items: components["schemas"]["MaterializationRow"][];
18538
+ /** Total */
18539
+ total?: number | null;
18540
+ };
18646
18541
  /** PaginatedResponse[MeterValueItem] */
18647
18542
  PaginatedResponse_MeterValueItem_: {
18648
18543
  /** Continuation Token */
@@ -21403,29 +21298,6 @@ export interface components {
21403
21298
  /** Tts Provider */
21404
21299
  tts_provider?: ("cartesia" | "elevenlabs" | "groq") | null;
21405
21300
  };
21406
- /** SesSetupDetailResponse */
21407
- SesSetupDetailResponse: {
21408
- /**
21409
- * Created At
21410
- * Format: date-time
21411
- */
21412
- created_at: string;
21413
- /** Dns Checked At */
21414
- dns_checked_at: string | null;
21415
- /** Dns Records */
21416
- dns_records: components["schemas"]["DnsRecordResponse"][];
21417
- /** Domain Identity */
21418
- domain_identity: string;
21419
- /** Id */
21420
- id: string;
21421
- /** Tenant Name */
21422
- tenant_name: string;
21423
- /**
21424
- * Updated At
21425
- * Format: date-time
21426
- */
21427
- updated_at: string;
21428
- };
21429
21301
  /** SessionEndEvent */
21430
21302
  SessionEndEvent: {
21431
21303
  /**
@@ -23761,6 +23633,28 @@ export interface components {
23761
23633
  */
23762
23634
  surface_id: string;
23763
23635
  };
23636
+ /** SwitchChannelRequest */
23637
+ SwitchChannelRequest: {
23638
+ /** @description Target channel to move the conversation to (sms or imessage). */
23639
+ channel: components["schemas"]["ChannelKind"];
23640
+ /**
23641
+ * Dispatch Opener
23642
+ * @description If true, immediately drive one agent turn on the new channel (e.g. 'I'll text you now').
23643
+ * @default false
23644
+ */
23645
+ dispatch_opener?: boolean;
23646
+ /** @description Optional context steering the opener when dispatch_opener=true. */
23647
+ instruction?: components["schemas"]["BackgroundString"] | null;
23648
+ /** @description Why the conversation is being moved (e.g. escalation, customer_request). */
23649
+ reason: components["schemas"]["NameString"];
23650
+ /** @description Recipient address on the new channel (E.164). Required for sms/imessage. */
23651
+ recipient?: components["schemas"]["PhoneE164"] | null;
23652
+ /**
23653
+ * Use Case Id
23654
+ * @description Channel-manager use case for the new channel (resolves the sender). Required for sms/imessage.
23655
+ */
23656
+ use_case_id?: string | null;
23657
+ };
23764
23658
  /**
23765
23659
  * SwitchModeRequest
23766
23660
  * @description Request to toggle operator mode on an active call.
@@ -24109,6 +24003,40 @@ export interface components {
24109
24003
  /** Session Id */
24110
24004
  session_id: string;
24111
24005
  };
24006
+ /**
24007
+ * TextToolStartedEvent
24008
+ * @description A slow text tool *began* running for a web text conversation — pushed live
24009
+ * the instant the tool is dispatched, before the 15s blocking floor elapses, so a
24010
+ * subscribed client shows progress immediately instead of waiting out the floor in
24011
+ * silence (PLA-986). Emitted for tools that route through the background/floor-promoted
24012
+ * dispatch paths (companion skills and ``execution="background"`` tools) — the ones
24013
+ * that can outlast the turn's synchronous response.
24014
+ *
24015
+ * The start/completion pair share one card identity: ``call_id`` is ``bg:<task_id>``,
24016
+ * matching the eventual ``TextBackgroundResultEvent`` (and the next-turn drained card
24017
+ * from ``build_background_completion_effect``), so a client collapses started → result
24018
+ * into one card rather than rendering two. Web-only: ``conversation_id`` is the durable
24019
+ * conversation UUID (non-web channels route by a composite key and deliver via their own
24020
+ * transport).
24021
+ */
24022
+ TextToolStartedEvent: {
24023
+ /** Call Id */
24024
+ call_id: string;
24025
+ /**
24026
+ * Conversation Id
24027
+ * Format: uuid
24028
+ */
24029
+ conversation_id: string;
24030
+ /** Depth */
24031
+ depth: number;
24032
+ /**
24033
+ * @description discriminator enum property added by openapi-typescript
24034
+ * @enum {string}
24035
+ */
24036
+ event_type: "text.tool_started";
24037
+ /** Tool Name */
24038
+ tool_name: string;
24039
+ };
24112
24040
  /**
24113
24041
  * TextTurnRequest
24114
24042
  * @description Request body for ``POST /v1/{ws}/services/{service_id}/text-turn``.
@@ -25068,33 +24996,98 @@ export interface components {
25068
24996
  };
25069
24997
  /** TriggerRunResponse */
25070
24998
  TriggerRunResponse: {
24999
+ /**
25000
+ * Attempt Count
25001
+ * @description Number of claim attempts
25002
+ */
25003
+ attempt_count: number;
25004
+ /**
25005
+ * Claimed At
25006
+ * @description When the run was claimed
25007
+ */
25008
+ claimed_at?: string | null;
25009
+ /**
25010
+ * Claimed By
25011
+ * @description Dispatcher consumer that claimed the run
25012
+ */
25013
+ claimed_by?: string | null;
25071
25014
  /**
25072
25015
  * Created At
25073
- * @description When the run was created
25016
+ * Format: date-time
25017
+ * @description When the run was enqueued
25074
25018
  */
25075
- created_at?: string | null;
25019
+ created_at: string;
25076
25020
  /**
25077
- * Data
25078
- * @description Run result data
25021
+ * Error
25022
+ * @description Failure detail, if any
25079
25023
  */
25080
- data: {
25024
+ error?: string | null;
25025
+ /**
25026
+ * Fired Event Id
25027
+ * Format: uuid
25028
+ */
25029
+ fired_event_id: string;
25030
+ /**
25031
+ * Id
25032
+ * Format: uuid
25033
+ */
25034
+ id: string;
25035
+ /**
25036
+ * Input Override
25037
+ * @description Per-run input overrides
25038
+ */
25039
+ input_override?: {
25081
25040
  [key: string]: unknown;
25082
- };
25041
+ } | null;
25083
25042
  /**
25084
- * Effective At
25085
- * @description When the run took effect
25043
+ * Lease Expires At
25044
+ * @description When the running lease expires
25086
25045
  */
25087
- effective_at?: string | null;
25046
+ lease_expires_at?: string | null;
25088
25047
  /**
25089
- * Event Id
25048
+ * Max Attempts
25049
+ * @description Maximum claim attempts before dead-lettering
25050
+ */
25051
+ max_attempts: number;
25052
+ /**
25053
+ * Next Attempt At
25054
+ * Format: date-time
25055
+ * @description Next eligible claim time
25056
+ */
25057
+ next_attempt_at: string;
25058
+ /**
25059
+ * Result Text
25060
+ * @description Text result emitted by the action
25061
+ */
25062
+ result_text?: string | null;
25063
+ /**
25064
+ * Source
25065
+ * @description Source that fired the trigger
25066
+ * @enum {string}
25067
+ */
25068
+ source: "cron" | "manual" | "webhook" | "event";
25069
+ /**
25070
+ * Status
25071
+ * @description Run status
25072
+ * @enum {string}
25073
+ */
25074
+ status: "queued" | "running" | "succeeded" | "failed" | "dead";
25075
+ /**
25076
+ * Trigger Id
25090
25077
  * Format: uuid
25091
25078
  */
25092
- event_id: string;
25079
+ trigger_id: string;
25093
25080
  /**
25094
- * Event Type
25095
- * @description Event type of the run
25081
+ * Updated At
25082
+ * Format: date-time
25083
+ * @description When the run row last changed
25096
25084
  */
25097
- event_type: string;
25085
+ updated_at: string;
25086
+ /**
25087
+ * Workspace Id
25088
+ * Format: uuid
25089
+ */
25090
+ workspace_id: string;
25098
25091
  };
25099
25092
  /**
25100
25093
  * TriggerSyncConflictDetails
@@ -25403,6 +25396,27 @@ export interface components {
25403
25396
  };
25404
25397
  /** TurnResponse */
25405
25398
  TurnResponse: {
25399
+ /**
25400
+ * Background Pending
25401
+ * @description Whether this turn's ``output`` is the final answer, or only an acknowledgement that
25402
+ * work is still running in the background.
25403
+ *
25404
+ * ``false`` (default): ``output`` is the complete agent response for this turn.
25405
+ *
25406
+ * ``true``: a tool crossed the server's blocking window and was handed to a background
25407
+ * task, so ``output`` is NOT the final answer — the definitive assistant answer is
25408
+ * produced later, out-of-band. It is **durable on the conversation**: drain it by
25409
+ * re-issuing ``POST …/turns`` with ``poll=true`` (a no-message drain-and-report), by
25410
+ * sending the next user turn, or by reading the conversation back
25411
+ * (``GET …/conversations/{id}``). This is the per-conversation delivery contract — see
25412
+ * the web-integration paved path. (The workspace observer bus,
25413
+ * ``GET /v1/{workspace_id}/events/stream``, mirrors this activity as ``text.agent_message``
25414
+ * / ``text.tool_started`` / ``text.background_result`` for *dashboards* watching many
25415
+ * conversations, but is not the per-chat delivery path.) A client that treats a
25416
+ * ``background_pending=true`` turn as complete without draining will miss the final answer.
25417
+ * @default false
25418
+ */
25419
+ background_pending?: boolean;
25406
25420
  conversation: components["schemas"]["TurnConversationSnapshot"];
25407
25421
  input: components["schemas"]["ConversationTurn"];
25408
25422
  /** Output */
@@ -25572,22 +25586,6 @@ export interface components {
25572
25586
  /** Sync Strategy */
25573
25587
  sync_strategy?: ("manual" | "scheduled" | "webhook" | "continuous") | null;
25574
25588
  };
25575
- /**
25576
- * UpdateEmailTemplateRequest
25577
- * @description PATCH-style PUT mirroring channel-manager's update contract: absent
25578
- * fields are untouched (MISSING sentinel), ``description`` may be explicitly
25579
- * nulled, and at least one field must be provided.
25580
- */
25581
- UpdateEmailTemplateRequest: {
25582
- /** Body Template */
25583
- body_template?: string;
25584
- /** Description */
25585
- description?: string | null;
25586
- /** Name */
25587
- name?: string;
25588
- /** Subject Template */
25589
- subject_template?: string;
25590
- };
25591
25589
  /** UpdateOperatorRequest */
25592
25590
  UpdateOperatorRequest: {
25593
25591
  /** Connection Method */
@@ -26457,25 +26455,6 @@ export interface components {
26457
26455
  /** Volume */
26458
26456
  volume: number | null;
26459
26457
  };
26460
- /** VoiceUseCaseRequest */
26461
- VoiceUseCaseRequest: {
26462
- /**
26463
- * @description discriminator enum property added by openapi-typescript
26464
- * @enum {string}
26465
- */
26466
- channel: "inbound_voice" | "outbound_voice" | "ringless_voicemail";
26467
- /** Description */
26468
- description?: string | null;
26469
- /** Entity Name */
26470
- entity_name: string;
26471
- /** Name */
26472
- name: string;
26473
- /**
26474
- * Setup Id
26475
- * Format: uuid
26476
- */
26477
- setup_id: string;
26478
- };
26479
26458
  /**
26480
26459
  * WorkspaceBenchmarks
26481
26460
  * @description Workspace-level call quality benchmarks for contextual comparison.
@@ -26674,7 +26653,7 @@ export interface components {
26674
26653
  */
26675
26654
  updated_at: string;
26676
26655
  };
26677
- WorkspaceSSEEvent: components["schemas"]["CallStartedEvent"] | components["schemas"]["CallEndedEvent"] | components["schemas"]["CallEscalatedEvent"] | components["schemas"]["EncounterUpdatedEvent"] | components["schemas"]["NarrativeUpdatedEvent"] | components["schemas"]["ReviewSubmittedEvent"] | components["schemas"]["SimulationTurnStoredEvent"] | components["schemas"]["SurfaceCreatedEvent"] | components["schemas"]["SurfaceDeliveredEvent"] | components["schemas"]["SurfaceUpdatedEvent"] | components["schemas"]["SurfaceArchivedEvent"] | components["schemas"]["SurfaceReshapedEvent"] | components["schemas"]["SurfaceSubmittedEvent"] | components["schemas"]["SurfaceFieldSavedEvent"] | components["schemas"]["SurfaceOpenedEvent"] | components["schemas"]["SurfacePendingReviewEvent"] | components["schemas"]["SurfaceReviewApprovedEvent"] | components["schemas"]["SurfaceReviewRejectedEvent"] | components["schemas"]["IntegrationApprovalGrantedEvent"] | components["schemas"]["IntegrationApprovalRejectedEvent"] | components["schemas"]["TextStartedEvent"] | components["schemas"]["TextCompletedEvent"] | components["schemas"]["TextBackgroundResultEvent"] | components["schemas"]["TextAgentMessageEvent"] | components["schemas"]["TriggerFiredEvent"] | components["schemas"]["TriggerCompletedEvent"] | components["schemas"]["TriggerFailedEvent"] | components["schemas"]["PipelineSyncCompletedEvent"] | components["schemas"]["PipelineErrorEvent"] | components["schemas"]["OperatorRegisteredEvent"] | components["schemas"]["OperatorStatusChangedEvent"] | components["schemas"]["OperatorProfileUpdatedEvent"] | components["schemas"]["OperatorJoinedCallEvent"] | components["schemas"]["OperatorLeftCallEvent"] | components["schemas"]["OperatorModeChangedEvent"] | components["schemas"]["OperatorWrapUpEvent"] | components["schemas"]["WorkspaceMemberAddedEvent"] | components["schemas"]["WorkspaceMemberRoleUpdatedEvent"] | components["schemas"]["WorkspaceInvitationSentEvent"] | components["schemas"]["WorkspaceInvitationAcceptedEvent"] | components["schemas"]["ChannelEmailDeliveredEvent"] | components["schemas"]["ChannelEmailBouncedEvent"] | components["schemas"]["ChannelEmailComplainedEvent"] | components["schemas"]["ChannelEmailRejectedEvent"] | components["schemas"]["ChannelEmailDelayedEvent"] | components["schemas"]["ChannelEmailOpenedEvent"] | components["schemas"]["ChannelEmailClickedEvent"] | components["schemas"]["ChannelEmailReceivedEvent"] | components["schemas"]["ChannelVoicemailStatusEvent"];
26656
+ WorkspaceSSEEvent: components["schemas"]["CallStartedEvent"] | components["schemas"]["CallEndedEvent"] | components["schemas"]["CallEscalatedEvent"] | components["schemas"]["EncounterUpdatedEvent"] | components["schemas"]["NarrativeUpdatedEvent"] | components["schemas"]["ReviewSubmittedEvent"] | components["schemas"]["SimulationTurnStoredEvent"] | components["schemas"]["SurfaceCreatedEvent"] | components["schemas"]["SurfaceDeliveredEvent"] | components["schemas"]["SurfaceUpdatedEvent"] | components["schemas"]["SurfaceArchivedEvent"] | components["schemas"]["SurfaceReshapedEvent"] | components["schemas"]["SurfaceSubmittedEvent"] | components["schemas"]["SurfaceFieldSavedEvent"] | components["schemas"]["SurfaceOpenedEvent"] | components["schemas"]["SurfacePendingReviewEvent"] | components["schemas"]["SurfaceReviewApprovedEvent"] | components["schemas"]["SurfaceReviewRejectedEvent"] | components["schemas"]["IntegrationApprovalGrantedEvent"] | components["schemas"]["IntegrationApprovalRejectedEvent"] | components["schemas"]["TextStartedEvent"] | components["schemas"]["TextCompletedEvent"] | components["schemas"]["TextToolStartedEvent"] | components["schemas"]["TextBackgroundResultEvent"] | components["schemas"]["TextAgentMessageEvent"] | components["schemas"]["TriggerFiredEvent"] | components["schemas"]["TriggerCompletedEvent"] | components["schemas"]["TriggerFailedEvent"] | components["schemas"]["PipelineSyncCompletedEvent"] | components["schemas"]["PipelineErrorEvent"] | components["schemas"]["OperatorRegisteredEvent"] | components["schemas"]["OperatorStatusChangedEvent"] | components["schemas"]["OperatorProfileUpdatedEvent"] | components["schemas"]["OperatorJoinedCallEvent"] | components["schemas"]["OperatorLeftCallEvent"] | components["schemas"]["OperatorModeChangedEvent"] | components["schemas"]["OperatorWrapUpEvent"] | components["schemas"]["WorkspaceMemberAddedEvent"] | components["schemas"]["WorkspaceMemberRoleUpdatedEvent"] | components["schemas"]["WorkspaceInvitationSentEvent"] | components["schemas"]["WorkspaceInvitationAcceptedEvent"] | components["schemas"]["ChannelEmailDeliveredEvent"] | components["schemas"]["ChannelEmailBouncedEvent"] | components["schemas"]["ChannelEmailComplainedEvent"] | components["schemas"]["ChannelEmailRejectedEvent"] | components["schemas"]["ChannelEmailDelayedEvent"] | components["schemas"]["ChannelEmailOpenedEvent"] | components["schemas"]["ChannelEmailClickedEvent"] | components["schemas"]["ChannelEmailReceivedEvent"] | components["schemas"]["ChannelVoicemailStatusEvent"];
26678
26657
  /** WorldDashboardResponse */
26679
26658
  WorldDashboardResponse: {
26680
26659
  /** Avg Confidence */
@@ -26924,33 +26903,6 @@ export interface components {
26924
26903
  */
26925
26904
  unique_states?: number;
26926
26905
  };
26927
- /** Item */
26928
- src__routes__channels__email_templates__EmailTemplateListResponse__Item: {
26929
- /**
26930
- * Created At
26931
- * Format: date-time
26932
- */
26933
- created_at: string;
26934
- /** Description */
26935
- description: string | null;
26936
- /**
26937
- * Id
26938
- * Format: uuid
26939
- */
26940
- id: string;
26941
- /** Name */
26942
- name: string;
26943
- /**
26944
- * Ses Use Case Id
26945
- * Format: uuid
26946
- */
26947
- ses_use_case_id: string;
26948
- /**
26949
- * Updated At
26950
- * Format: date-time
26951
- */
26952
- updated_at: string;
26953
- };
26954
26906
  /** ConversationSummary */
26955
26907
  src__routes__conversations__ConversationSummary: {
26956
26908
  /** Call Sid */
@@ -31931,540 +31883,6 @@ export interface operations {
31931
31883
  };
31932
31884
  };
31933
31885
  };
31934
- "list-email-templates": {
31935
- parameters: {
31936
- query: {
31937
- ses_use_case_id: string;
31938
- };
31939
- header?: never;
31940
- path: {
31941
- workspace_id: string;
31942
- };
31943
- cookie?: never;
31944
- };
31945
- requestBody?: never;
31946
- responses: {
31947
- /** @description Successful Response */
31948
- 200: {
31949
- headers: {
31950
- [name: string]: unknown;
31951
- };
31952
- content: {
31953
- "application/json": components["schemas"]["EmailTemplateListResponse"];
31954
- };
31955
- };
31956
- /** @description Insufficient permissions. */
31957
- 403: {
31958
- headers: {
31959
- [name: string]: unknown;
31960
- };
31961
- content?: never;
31962
- };
31963
- /** @description SES use case not found or not bound to this workspace. */
31964
- 404: {
31965
- headers: {
31966
- [name: string]: unknown;
31967
- };
31968
- content?: never;
31969
- };
31970
- /** @description Validation Error */
31971
- 422: {
31972
- headers: {
31973
- [name: string]: unknown;
31974
- };
31975
- content: {
31976
- "application/json": components["schemas"]["HTTPValidationError"];
31977
- };
31978
- };
31979
- /** @description Channel manager unavailable. */
31980
- 502: {
31981
- headers: {
31982
- [name: string]: unknown;
31983
- };
31984
- content?: never;
31985
- };
31986
- /** @description Channel manager timed out. */
31987
- 504: {
31988
- headers: {
31989
- [name: string]: unknown;
31990
- };
31991
- content?: never;
31992
- };
31993
- };
31994
- };
31995
- "create-email-template": {
31996
- parameters: {
31997
- query?: never;
31998
- header?: never;
31999
- path: {
32000
- workspace_id: string;
32001
- };
32002
- cookie?: never;
32003
- };
32004
- requestBody: {
32005
- content: {
32006
- "application/json": components["schemas"]["CreateEmailTemplateRequest"];
32007
- };
32008
- };
32009
- responses: {
32010
- /** @description Successful Response */
32011
- 201: {
32012
- headers: {
32013
- [name: string]: unknown;
32014
- };
32015
- content: {
32016
- "application/json": components["schemas"]["EmailTemplateResponse"];
32017
- };
32018
- };
32019
- /** @description Insufficient permissions. */
32020
- 403: {
32021
- headers: {
32022
- [name: string]: unknown;
32023
- };
32024
- content?: never;
32025
- };
32026
- /** @description SES use case not found or not bound to this workspace. */
32027
- 404: {
32028
- headers: {
32029
- [name: string]: unknown;
32030
- };
32031
- content?: never;
32032
- };
32033
- /** @description Template name already exists within the SES use case. */
32034
- 409: {
32035
- headers: {
32036
- [name: string]: unknown;
32037
- };
32038
- content?: never;
32039
- };
32040
- /** @description Jinja syntax error or unsubscribe-variable gate violation. */
32041
- 422: {
32042
- headers: {
32043
- [name: string]: unknown;
32044
- };
32045
- content?: never;
32046
- };
32047
- /** @description Channel manager unavailable. */
32048
- 502: {
32049
- headers: {
32050
- [name: string]: unknown;
32051
- };
32052
- content?: never;
32053
- };
32054
- /** @description Channel manager timed out. */
32055
- 504: {
32056
- headers: {
32057
- [name: string]: unknown;
32058
- };
32059
- content?: never;
32060
- };
32061
- };
32062
- };
32063
- "get-email-template": {
32064
- parameters: {
32065
- query?: never;
32066
- header?: never;
32067
- path: {
32068
- workspace_id: string;
32069
- email_template_id: string;
32070
- };
32071
- cookie?: never;
32072
- };
32073
- requestBody?: never;
32074
- responses: {
32075
- /** @description Successful Response */
32076
- 200: {
32077
- headers: {
32078
- [name: string]: unknown;
32079
- };
32080
- content: {
32081
- "application/json": components["schemas"]["EmailTemplateResponse"];
32082
- };
32083
- };
32084
- /** @description Insufficient permissions. */
32085
- 403: {
32086
- headers: {
32087
- [name: string]: unknown;
32088
- };
32089
- content?: never;
32090
- };
32091
- /** @description Email template not found. */
32092
- 404: {
32093
- headers: {
32094
- [name: string]: unknown;
32095
- };
32096
- content?: never;
32097
- };
32098
- /** @description Validation Error */
32099
- 422: {
32100
- headers: {
32101
- [name: string]: unknown;
32102
- };
32103
- content: {
32104
- "application/json": components["schemas"]["HTTPValidationError"];
32105
- };
32106
- };
32107
- /** @description Channel manager unavailable. */
32108
- 502: {
32109
- headers: {
32110
- [name: string]: unknown;
32111
- };
32112
- content?: never;
32113
- };
32114
- /** @description Channel manager timed out. */
32115
- 504: {
32116
- headers: {
32117
- [name: string]: unknown;
32118
- };
32119
- content?: never;
32120
- };
32121
- };
32122
- };
32123
- "update-email-template": {
32124
- parameters: {
32125
- query?: never;
32126
- header?: never;
32127
- path: {
32128
- workspace_id: string;
32129
- email_template_id: string;
32130
- };
32131
- cookie?: never;
32132
- };
32133
- requestBody: {
32134
- content: {
32135
- "application/json": components["schemas"]["UpdateEmailTemplateRequest"];
32136
- };
32137
- };
32138
- responses: {
32139
- /** @description Successful Response */
32140
- 200: {
32141
- headers: {
32142
- [name: string]: unknown;
32143
- };
32144
- content: {
32145
- "application/json": components["schemas"]["EmailTemplateResponse"];
32146
- };
32147
- };
32148
- /** @description Insufficient permissions. */
32149
- 403: {
32150
- headers: {
32151
- [name: string]: unknown;
32152
- };
32153
- content?: never;
32154
- };
32155
- /** @description Email template not found. */
32156
- 404: {
32157
- headers: {
32158
- [name: string]: unknown;
32159
- };
32160
- content?: never;
32161
- };
32162
- /** @description New template name already exists within the SES use case. */
32163
- 409: {
32164
- headers: {
32165
- [name: string]: unknown;
32166
- };
32167
- content?: never;
32168
- };
32169
- /** @description No fields provided, Jinja syntax error, or unsubscribe-variable gate violation. */
32170
- 422: {
32171
- headers: {
32172
- [name: string]: unknown;
32173
- };
32174
- content?: never;
32175
- };
32176
- /** @description Channel manager unavailable. */
32177
- 502: {
32178
- headers: {
32179
- [name: string]: unknown;
32180
- };
32181
- content?: never;
32182
- };
32183
- /** @description Channel manager timed out. */
32184
- 504: {
32185
- headers: {
32186
- [name: string]: unknown;
32187
- };
32188
- content?: never;
32189
- };
32190
- };
32191
- };
32192
- "delete-email-template": {
32193
- parameters: {
32194
- query?: never;
32195
- header?: never;
32196
- path: {
32197
- workspace_id: string;
32198
- email_template_id: string;
32199
- };
32200
- cookie?: never;
32201
- };
32202
- requestBody?: never;
32203
- responses: {
32204
- /** @description Successful Response */
32205
- 204: {
32206
- headers: {
32207
- [name: string]: unknown;
32208
- };
32209
- content?: never;
32210
- };
32211
- /** @description Insufficient permissions. */
32212
- 403: {
32213
- headers: {
32214
- [name: string]: unknown;
32215
- };
32216
- content?: never;
32217
- };
32218
- /** @description Email template not found. */
32219
- 404: {
32220
- headers: {
32221
- [name: string]: unknown;
32222
- };
32223
- content?: never;
32224
- };
32225
- /** @description Validation Error */
32226
- 422: {
32227
- headers: {
32228
- [name: string]: unknown;
32229
- };
32230
- content: {
32231
- "application/json": components["schemas"]["HTTPValidationError"];
32232
- };
32233
- };
32234
- /** @description Channel manager unavailable. */
32235
- 502: {
32236
- headers: {
32237
- [name: string]: unknown;
32238
- };
32239
- content?: never;
32240
- };
32241
- /** @description Channel manager timed out. */
32242
- 504: {
32243
- headers: {
32244
- [name: string]: unknown;
32245
- };
32246
- content?: never;
32247
- };
32248
- };
32249
- };
32250
- "create-ses-setup": {
32251
- parameters: {
32252
- query?: never;
32253
- header?: never;
32254
- path: {
32255
- workspace_id: string;
32256
- };
32257
- cookie?: never;
32258
- };
32259
- requestBody: {
32260
- content: {
32261
- "application/json": components["schemas"]["CreateSesSetupRequest"];
32262
- };
32263
- };
32264
- responses: {
32265
- /** @description Successful Response */
32266
- 201: {
32267
- headers: {
32268
- [name: string]: unknown;
32269
- };
32270
- content: {
32271
- "application/json": components["schemas"]["SesSetupDetailResponse"];
32272
- };
32273
- };
32274
- /** @description Insufficient permissions. */
32275
- 403: {
32276
- headers: {
32277
- [name: string]: unknown;
32278
- };
32279
- content?: never;
32280
- };
32281
- /** @description Tenant name or domain identity already exists upstream. */
32282
- 409: {
32283
- headers: {
32284
- [name: string]: unknown;
32285
- };
32286
- content?: never;
32287
- };
32288
- /** @description Invalid SES setup configuration. */
32289
- 422: {
32290
- headers: {
32291
- [name: string]: unknown;
32292
- };
32293
- content?: never;
32294
- };
32295
- /** @description Channel manager unavailable. */
32296
- 502: {
32297
- headers: {
32298
- [name: string]: unknown;
32299
- };
32300
- content?: never;
32301
- };
32302
- /** @description Channel manager timed out. */
32303
- 504: {
32304
- headers: {
32305
- [name: string]: unknown;
32306
- };
32307
- content?: never;
32308
- };
32309
- };
32310
- };
32311
- "get-ses-setup": {
32312
- parameters: {
32313
- query?: never;
32314
- header?: never;
32315
- path: {
32316
- workspace_id: string;
32317
- setup_id: string;
32318
- };
32319
- cookie?: never;
32320
- };
32321
- requestBody?: never;
32322
- responses: {
32323
- /** @description Successful Response */
32324
- 200: {
32325
- headers: {
32326
- [name: string]: unknown;
32327
- };
32328
- content: {
32329
- "application/json": components["schemas"]["SesSetupDetailResponse"];
32330
- };
32331
- };
32332
- /** @description Insufficient permissions. */
32333
- 403: {
32334
- headers: {
32335
- [name: string]: unknown;
32336
- };
32337
- content?: never;
32338
- };
32339
- /** @description SES setup not found. */
32340
- 404: {
32341
- headers: {
32342
- [name: string]: unknown;
32343
- };
32344
- content?: never;
32345
- };
32346
- /** @description Validation Error */
32347
- 422: {
32348
- headers: {
32349
- [name: string]: unknown;
32350
- };
32351
- content: {
32352
- "application/json": components["schemas"]["HTTPValidationError"];
32353
- };
32354
- };
32355
- };
32356
- };
32357
- "delete-ses-setup": {
32358
- parameters: {
32359
- query?: never;
32360
- header?: never;
32361
- path: {
32362
- workspace_id: string;
32363
- setup_id: string;
32364
- };
32365
- cookie?: never;
32366
- };
32367
- requestBody?: never;
32368
- responses: {
32369
- /** @description Successful Response */
32370
- 204: {
32371
- headers: {
32372
- [name: string]: unknown;
32373
- };
32374
- content?: never;
32375
- };
32376
- /** @description Insufficient permissions. */
32377
- 403: {
32378
- headers: {
32379
- [name: string]: unknown;
32380
- };
32381
- content?: never;
32382
- };
32383
- /** @description SES setup not found. */
32384
- 404: {
32385
- headers: {
32386
- [name: string]: unknown;
32387
- };
32388
- content?: never;
32389
- };
32390
- /** @description Setup still referenced by live use cases. */
32391
- 409: {
32392
- headers: {
32393
- [name: string]: unknown;
32394
- };
32395
- content?: never;
32396
- };
32397
- /** @description Validation Error */
32398
- 422: {
32399
- headers: {
32400
- [name: string]: unknown;
32401
- };
32402
- content: {
32403
- "application/json": components["schemas"]["HTTPValidationError"];
32404
- };
32405
- };
32406
- /** @description Channel manager unavailable. */
32407
- 502: {
32408
- headers: {
32409
- [name: string]: unknown;
32410
- };
32411
- content?: never;
32412
- };
32413
- /** @description Channel manager timed out. */
32414
- 504: {
32415
- headers: {
32416
- [name: string]: unknown;
32417
- };
32418
- content?: never;
32419
- };
32420
- };
32421
- };
32422
- "verify-ses-setup-dns": {
32423
- parameters: {
32424
- query?: never;
32425
- header?: never;
32426
- path: {
32427
- workspace_id: string;
32428
- setup_id: string;
32429
- };
32430
- cookie?: never;
32431
- };
32432
- requestBody?: never;
32433
- responses: {
32434
- /** @description Successful Response */
32435
- 200: {
32436
- headers: {
32437
- [name: string]: unknown;
32438
- };
32439
- content: {
32440
- "application/json": components["schemas"]["SesSetupDetailResponse"];
32441
- };
32442
- };
32443
- /** @description Insufficient permissions. */
32444
- 403: {
32445
- headers: {
32446
- [name: string]: unknown;
32447
- };
32448
- content?: never;
32449
- };
32450
- /** @description SES setup not found. */
32451
- 404: {
32452
- headers: {
32453
- [name: string]: unknown;
32454
- };
32455
- content?: never;
32456
- };
32457
- /** @description Validation Error */
32458
- 422: {
32459
- headers: {
32460
- [name: string]: unknown;
32461
- };
32462
- content: {
32463
- "application/json": components["schemas"]["HTTPValidationError"];
32464
- };
32465
- };
32466
- };
32467
- };
32468
31886
  "get-command-center": {
32469
31887
  parameters: {
32470
31888
  query?: never;
@@ -33265,6 +32683,42 @@ export interface operations {
33265
32683
  };
33266
32684
  };
33267
32685
  };
32686
+ switch_conversation_channel_v1__workspace_id__conversations__conversation_id__channel_post: {
32687
+ parameters: {
32688
+ query?: never;
32689
+ header?: never;
32690
+ path: {
32691
+ workspace_id: string;
32692
+ conversation_id: string;
32693
+ };
32694
+ cookie?: never;
32695
+ };
32696
+ requestBody: {
32697
+ content: {
32698
+ "application/json": components["schemas"]["SwitchChannelRequest"];
32699
+ };
32700
+ };
32701
+ responses: {
32702
+ /** @description Successful Response */
32703
+ 200: {
32704
+ headers: {
32705
+ [name: string]: unknown;
32706
+ };
32707
+ content: {
32708
+ "application/json": components["schemas"]["ConversationDetail"];
32709
+ };
32710
+ };
32711
+ /** @description Validation Error */
32712
+ 422: {
32713
+ headers: {
32714
+ [name: string]: unknown;
32715
+ };
32716
+ content: {
32717
+ "application/json": components["schemas"]["HTTPValidationError"];
32718
+ };
32719
+ };
32720
+ };
32721
+ };
33268
32722
  create_turn_v1__workspace_id__conversations__conversation_id__turns_post: {
33269
32723
  parameters: {
33270
32724
  query?: {
@@ -36680,6 +36134,77 @@ export interface operations {
36680
36134
  };
36681
36135
  };
36682
36136
  };
36137
+ list_intake_materializations_v1__workspace_id__intake_materializations_get: {
36138
+ parameters: {
36139
+ query?: {
36140
+ limit?: number;
36141
+ continuation_token?: number;
36142
+ sort_by?: string;
36143
+ search?: string | null;
36144
+ };
36145
+ header?: never;
36146
+ path: {
36147
+ workspace_id: string;
36148
+ };
36149
+ cookie?: never;
36150
+ };
36151
+ requestBody?: never;
36152
+ responses: {
36153
+ /** @description Successful Response */
36154
+ 200: {
36155
+ headers: {
36156
+ [name: string]: unknown;
36157
+ };
36158
+ content: {
36159
+ "application/json": components["schemas"]["PaginatedResponse_MaterializationRow_"];
36160
+ };
36161
+ };
36162
+ /** @description Validation Error */
36163
+ 422: {
36164
+ headers: {
36165
+ [name: string]: unknown;
36166
+ };
36167
+ content: {
36168
+ "application/json": components["schemas"]["HTTPValidationError"];
36169
+ };
36170
+ };
36171
+ };
36172
+ };
36173
+ materialize_intake_v1__workspace_id__intake_materialize_post: {
36174
+ parameters: {
36175
+ query?: never;
36176
+ header?: never;
36177
+ path: {
36178
+ workspace_id: string;
36179
+ };
36180
+ cookie?: never;
36181
+ };
36182
+ requestBody?: {
36183
+ content: {
36184
+ "application/json": components["schemas"]["MaterializeRequest"] | null;
36185
+ };
36186
+ };
36187
+ responses: {
36188
+ /** @description Successful Response */
36189
+ 202: {
36190
+ headers: {
36191
+ [name: string]: unknown;
36192
+ };
36193
+ content: {
36194
+ "application/json": components["schemas"]["MaterializeResponse"];
36195
+ };
36196
+ };
36197
+ /** @description Validation Error */
36198
+ 422: {
36199
+ headers: {
36200
+ [name: string]: unknown;
36201
+ };
36202
+ content: {
36203
+ "application/json": components["schemas"]["HTTPValidationError"];
36204
+ };
36205
+ };
36206
+ };
36207
+ };
36683
36208
  register_intake_schema_v1__workspace_id__intake_schema_register_post: {
36684
36209
  parameters: {
36685
36210
  query?: never;
@@ -41704,7 +41229,9 @@ export interface operations {
41704
41229
  };
41705
41230
  get_fleet_status_v1__workspace_id__sessions_fleet_status_get: {
41706
41231
  parameters: {
41707
- query?: never;
41232
+ query?: {
41233
+ fleet?: "voice" | "tool-runner";
41234
+ };
41708
41235
  header?: never;
41709
41236
  path: {
41710
41237
  workspace_id: string;
@@ -41722,6 +41249,15 @@ export interface operations {
41722
41249
  "application/json": components["schemas"]["FleetStatusResponse"];
41723
41250
  };
41724
41251
  };
41252
+ /** @description Validation Error */
41253
+ 422: {
41254
+ headers: {
41255
+ [name: string]: unknown;
41256
+ };
41257
+ content: {
41258
+ "application/json": components["schemas"]["HTTPValidationError"];
41259
+ };
41260
+ };
41725
41261
  };
41726
41262
  };
41727
41263
  start_text_session_v1__workspace_id__sessions_start_post: {
@@ -45610,7 +45146,7 @@ export interface operations {
45610
45146
  };
45611
45147
  };
45612
45148
  };
45613
- "create-use-case": {
45149
+ "list-owned-use-cases": {
45614
45150
  parameters: {
45615
45151
  query?: never;
45616
45152
  header?: never;
@@ -45619,19 +45155,15 @@ export interface operations {
45619
45155
  };
45620
45156
  cookie?: never;
45621
45157
  };
45622
- requestBody: {
45623
- content: {
45624
- "application/json": components["schemas"]["VoiceUseCaseRequest"] | components["schemas"]["EmailUseCaseRequest"];
45625
- };
45626
- };
45158
+ requestBody?: never;
45627
45159
  responses: {
45628
45160
  /** @description Successful Response */
45629
- 201: {
45161
+ 200: {
45630
45162
  headers: {
45631
45163
  [name: string]: unknown;
45632
45164
  };
45633
45165
  content: {
45634
- "application/json": components["schemas"]["UseCaseResponse"];
45166
+ "application/json": components["schemas"]["OwnedUseCasesResponse"];
45635
45167
  };
45636
45168
  };
45637
45169
  /** @description Insufficient permissions. */
@@ -45641,15 +45173,38 @@ export interface operations {
45641
45173
  };
45642
45174
  content?: never;
45643
45175
  };
45644
- /** @description Setup not found. */
45645
- 404: {
45176
+ };
45177
+ };
45178
+ "get-use-case-ownership": {
45179
+ parameters: {
45180
+ query?: never;
45181
+ header?: never;
45182
+ path: {
45183
+ workspace_id: string;
45184
+ use_case_id: string;
45185
+ };
45186
+ cookie?: never;
45187
+ };
45188
+ requestBody?: never;
45189
+ responses: {
45190
+ /** @description Successful Response */
45191
+ 200: {
45192
+ headers: {
45193
+ [name: string]: unknown;
45194
+ };
45195
+ content: {
45196
+ "application/json": components["schemas"]["OwnershipResponse"];
45197
+ };
45198
+ };
45199
+ /** @description Insufficient permissions. */
45200
+ 403: {
45646
45201
  headers: {
45647
45202
  [name: string]: unknown;
45648
45203
  };
45649
45204
  content?: never;
45650
45205
  };
45651
- /** @description Use case already exists or setup not approved. */
45652
- 409: {
45206
+ /** @description Use case not found. */
45207
+ 404: {
45653
45208
  headers: {
45654
45209
  [name: string]: unknown;
45655
45210
  };
@@ -45664,23 +45219,62 @@ export interface operations {
45664
45219
  "application/json": components["schemas"]["HTTPValidationError"];
45665
45220
  };
45666
45221
  };
45667
- /** @description Channel manager unavailable. */
45668
- 502: {
45222
+ };
45223
+ };
45224
+ "assign-use-case-ownership": {
45225
+ parameters: {
45226
+ query?: never;
45227
+ header?: never;
45228
+ path: {
45229
+ workspace_id: string;
45230
+ use_case_id: string;
45231
+ };
45232
+ cookie?: never;
45233
+ };
45234
+ requestBody?: never;
45235
+ responses: {
45236
+ /** @description Successful Response */
45237
+ 200: {
45238
+ headers: {
45239
+ [name: string]: unknown;
45240
+ };
45241
+ content: {
45242
+ "application/json": components["schemas"]["OwnershipResponse"];
45243
+ };
45244
+ };
45245
+ /** @description Insufficient permissions. */
45246
+ 403: {
45669
45247
  headers: {
45670
45248
  [name: string]: unknown;
45671
45249
  };
45672
45250
  content?: never;
45673
45251
  };
45674
- /** @description Channel manager timed out. */
45675
- 504: {
45252
+ /** @description Use case not found. */
45253
+ 404: {
45254
+ headers: {
45255
+ [name: string]: unknown;
45256
+ };
45257
+ content?: never;
45258
+ };
45259
+ /** @description Use case is owned by another workspace. */
45260
+ 409: {
45676
45261
  headers: {
45677
45262
  [name: string]: unknown;
45678
45263
  };
45679
45264
  content?: never;
45680
45265
  };
45266
+ /** @description Validation Error */
45267
+ 422: {
45268
+ headers: {
45269
+ [name: string]: unknown;
45270
+ };
45271
+ content: {
45272
+ "application/json": components["schemas"]["HTTPValidationError"];
45273
+ };
45274
+ };
45681
45275
  };
45682
45276
  };
45683
- "delete-use-case": {
45277
+ "release-use-case-ownership": {
45684
45278
  parameters: {
45685
45279
  query?: never;
45686
45280
  header?: never;
@@ -45713,7 +45307,7 @@ export interface operations {
45713
45307
  };
45714
45308
  content?: never;
45715
45309
  };
45716
- /** @description Use case is bound to a service, or still has active phone assignments. */
45310
+ /** @description Use case is bound to a service; unbind it first. */
45717
45311
  409: {
45718
45312
  headers: {
45719
45313
  [name: string]: unknown;
@@ -45729,20 +45323,6 @@ export interface operations {
45729
45323
  "application/json": components["schemas"]["HTTPValidationError"];
45730
45324
  };
45731
45325
  };
45732
- /** @description Channel manager unavailable. */
45733
- 502: {
45734
- headers: {
45735
- [name: string]: unknown;
45736
- };
45737
- content?: never;
45738
- };
45739
- /** @description Channel manager timed out. */
45740
- 504: {
45741
- headers: {
45742
- [name: string]: unknown;
45743
- };
45744
- content?: never;
45745
- };
45746
45326
  };
45747
45327
  };
45748
45328
  "get-use-case-service-binding": {