@amigo-ai/platform-sdk 0.33.0 → 0.37.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.
@@ -1766,6 +1766,74 @@ export interface paths {
1766
1766
  patch?: never;
1767
1767
  trace?: never;
1768
1768
  };
1769
+ "/v1/{workspace_id}/channels/ses-setup": {
1770
+ parameters: {
1771
+ query?: never;
1772
+ header?: never;
1773
+ path?: never;
1774
+ cookie?: never;
1775
+ };
1776
+ /**
1777
+ * List SES setups for this workspace
1778
+ * @description Paginated list of SES setups owned by this workspace. Items carry the cached ``dns_verified`` aggregate; call ``GET /ses-setup/{id}`` for per-record DNS detail. Requires ``Channel.view`` permission.
1779
+ */
1780
+ get: operations["list-ses-setups"];
1781
+ put?: never;
1782
+ /**
1783
+ * Create an SES setup
1784
+ * @description Create an SES tenant + verified email identity for this workspace. 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. Requires ``Channel.create`` permission.
1785
+ */
1786
+ post: operations["create-ses-setup"];
1787
+ delete?: never;
1788
+ options?: never;
1789
+ head?: never;
1790
+ patch?: never;
1791
+ trace?: never;
1792
+ };
1793
+ "/v1/{workspace_id}/channels/ses-setup/{setup_id}": {
1794
+ parameters: {
1795
+ query?: never;
1796
+ header?: never;
1797
+ path?: never;
1798
+ cookie?: never;
1799
+ };
1800
+ /**
1801
+ * Get an SES setup with live DNS refresh
1802
+ * @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.
1803
+ */
1804
+ get: operations["get-ses-setup"];
1805
+ put?: never;
1806
+ post?: never;
1807
+ /**
1808
+ * Delete an SES setup
1809
+ * @description Tear down the upstream SES tenant + identity and soft-delete the workspace binding. Refuses (409) if any use case still references the setup. Requires ``Channel.delete`` permission.
1810
+ */
1811
+ delete: operations["delete-ses-setup"];
1812
+ options?: never;
1813
+ head?: never;
1814
+ patch?: never;
1815
+ trace?: never;
1816
+ };
1817
+ "/v1/{workspace_id}/channels/ses-setup/{setup_id}/verify": {
1818
+ parameters: {
1819
+ query?: never;
1820
+ header?: never;
1821
+ path?: never;
1822
+ cookie?: never;
1823
+ };
1824
+ get?: never;
1825
+ put?: never;
1826
+ /**
1827
+ * Refresh SES DNS verification
1828
+ * @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.
1829
+ */
1830
+ post: operations["verify-ses-setup-dns"];
1831
+ delete?: never;
1832
+ options?: never;
1833
+ head?: never;
1834
+ patch?: never;
1835
+ trace?: never;
1836
+ };
1769
1837
  "/v1/{workspace_id}/command-center": {
1770
1838
  parameters: {
1771
1839
  query?: never;
@@ -3106,6 +3174,33 @@ export interface paths {
3106
3174
  patch?: never;
3107
3175
  trace?: never;
3108
3176
  };
3177
+ "/v1/{workspace_id}/functions/deploy": {
3178
+ parameters: {
3179
+ query?: never;
3180
+ header?: never;
3181
+ path?: never;
3182
+ cookie?: never;
3183
+ };
3184
+ get?: never;
3185
+ put?: never;
3186
+ /**
3187
+ * Deploy (validate + register) a platform function
3188
+ * @description Validate + register a new platform function version.
3189
+ *
3190
+ * Atomic: validation + INSERT + alias rebind happen in one
3191
+ * transaction. The next ``version`` is allocated server-side as
3192
+ * ``max(existing) + 1`` per ``(workspace, name)``; concurrent
3193
+ * deploys race-fail on the UNIQUE constraint and surface as 409.
3194
+ *
3195
+ * Permissions: admin, owner.
3196
+ */
3197
+ post: operations["deploy-function"];
3198
+ delete?: never;
3199
+ options?: never;
3200
+ head?: never;
3201
+ patch?: never;
3202
+ trace?: never;
3203
+ };
3109
3204
  "/v1/{workspace_id}/functions/query": {
3110
3205
  parameters: {
3111
3206
  query?: never;
@@ -3183,6 +3278,86 @@ export interface paths {
3183
3278
  patch?: never;
3184
3279
  trace?: never;
3185
3280
  };
3281
+ "/v1/{workspace_id}/functions/{function_name}/invoke": {
3282
+ parameters: {
3283
+ query?: never;
3284
+ header?: never;
3285
+ path?: never;
3286
+ cookie?: never;
3287
+ };
3288
+ get?: never;
3289
+ put?: never;
3290
+ /**
3291
+ * Execute a registered function
3292
+ * @description Execute a registered function and return its rows.
3293
+ *
3294
+ * Bound parameters are validated against the version's stored
3295
+ * schema; ``ws_id`` is auto-injected from the request context.
3296
+ * Returns the executor's shaped response (``rows`` for
3297
+ * ``returns=table``, scalar value for ``returns=scalar``).
3298
+ *
3299
+ * Permissions: ``Workspace.view`` (read role and above). Read-only
3300
+ * keys are intentionally allowed here — invocation runs a stored,
3301
+ * pre-validated SELECT against catalogs the workspace SP already
3302
+ * has SELECT on; the gate on what can run is the deploy-time
3303
+ * validator (read-only invariant), not the per-call permission.
3304
+ */
3305
+ post: operations["invoke-function"];
3306
+ delete?: never;
3307
+ options?: never;
3308
+ head?: never;
3309
+ patch?: never;
3310
+ trace?: never;
3311
+ };
3312
+ "/v1/{workspace_id}/functions/{function_name}/promote": {
3313
+ parameters: {
3314
+ query?: never;
3315
+ header?: never;
3316
+ path?: never;
3317
+ cookie?: never;
3318
+ };
3319
+ get?: never;
3320
+ put?: never;
3321
+ /**
3322
+ * Rebind an alias to a specific version
3323
+ * @description Rebind an alias to an existing version.
3324
+ *
3325
+ * Verifies the version exists before rebinding.
3326
+ *
3327
+ * Permissions: admin, owner.
3328
+ */
3329
+ post: operations["promote-function"];
3330
+ delete?: never;
3331
+ options?: never;
3332
+ head?: never;
3333
+ patch?: never;
3334
+ trace?: never;
3335
+ };
3336
+ "/v1/{workspace_id}/functions/{function_name}/rollback": {
3337
+ parameters: {
3338
+ query?: never;
3339
+ header?: never;
3340
+ path?: never;
3341
+ cookie?: never;
3342
+ };
3343
+ get?: never;
3344
+ put?: never;
3345
+ /**
3346
+ * Rebind latest + production to a prior version
3347
+ * @description Rebind ``latest`` and ``production`` to a prior version.
3348
+ *
3349
+ * Used when a new deploy was bad. ``staging`` stays untouched so
3350
+ * operator can re-promote independently.
3351
+ *
3352
+ * Permissions: admin, owner.
3353
+ */
3354
+ post: operations["rollback-function"];
3355
+ delete?: never;
3356
+ options?: never;
3357
+ head?: never;
3358
+ patch?: never;
3359
+ trace?: never;
3360
+ };
3186
3361
  "/v1/{workspace_id}/functions/{function_name}/test": {
3187
3362
  parameters: {
3188
3363
  query?: never;
@@ -3207,6 +3382,72 @@ export interface paths {
3207
3382
  patch?: never;
3208
3383
  trace?: never;
3209
3384
  };
3385
+ "/v1/{workspace_id}/functions/{function_name}/v2/test": {
3386
+ parameters: {
3387
+ query?: never;
3388
+ header?: never;
3389
+ path?: never;
3390
+ cookie?: never;
3391
+ };
3392
+ get?: never;
3393
+ put?: never;
3394
+ /**
3395
+ * Test invoke + persist telemetry
3396
+ * @description Test invoke — same as invoke + persists last_test_* on the version row.
3397
+ *
3398
+ * Permissions: admin, owner.
3399
+ */
3400
+ post: operations["test-function-v2"];
3401
+ delete?: never;
3402
+ options?: never;
3403
+ head?: never;
3404
+ patch?: never;
3405
+ trace?: never;
3406
+ };
3407
+ "/v1/{workspace_id}/functions/{function_name}/version": {
3408
+ parameters: {
3409
+ query?: never;
3410
+ header?: never;
3411
+ path?: never;
3412
+ cookie?: never;
3413
+ };
3414
+ /**
3415
+ * Resolve (name, alias) → version row
3416
+ * @description Resolve (function_name, alias) → version row.
3417
+ *
3418
+ * Permissions: ``Workspace.view`` (read role and above).
3419
+ */
3420
+ get: operations["get-function-version"];
3421
+ put?: never;
3422
+ post?: never;
3423
+ delete?: never;
3424
+ options?: never;
3425
+ head?: never;
3426
+ patch?: never;
3427
+ trace?: never;
3428
+ };
3429
+ "/v1/{workspace_id}/functions/{function_name}/versions": {
3430
+ parameters: {
3431
+ query?: never;
3432
+ header?: never;
3433
+ path?: never;
3434
+ cookie?: never;
3435
+ };
3436
+ /**
3437
+ * List all versions of a function
3438
+ * @description List all versions of a registered function, newest first.
3439
+ *
3440
+ * Permissions: ``Workspace.view`` (read role and above).
3441
+ */
3442
+ get: operations["list-function-versions"];
3443
+ put?: never;
3444
+ post?: never;
3445
+ delete?: never;
3446
+ options?: never;
3447
+ head?: never;
3448
+ patch?: never;
3449
+ trace?: never;
3450
+ };
3210
3451
  "/v1/{workspace_id}/hooks/{destination_id}": {
3211
3452
  parameters: {
3212
3453
  query?: never;
@@ -4679,7 +4920,7 @@ export interface paths {
4679
4920
  put?: never;
4680
4921
  /**
4681
4922
  * Bind a channel-manager phone number
4682
- * @description Register a channel-manager-provisioned phone number in this workspace. Looks up the phone from channel-manager by ID and creates the binding with sub_account_sid for credential resolution. Requires PhoneNumber.create permission.
4923
+ * @description Register a channel-manager-provisioned phone number in this workspace. Looks up the phone from channel-manager by ID and persists the local binding row in platform.phone_numbers. Credential resolution at call time flows through ChannelManagerClient (Valkey-cached, see V108). Requires PhoneNumber.create permission.
4683
4924
  */
4684
4925
  post: operations["bind-channel-phone"];
4685
4926
  delete?: never;
@@ -5680,6 +5921,26 @@ export interface paths {
5680
5921
  patch?: never;
5681
5922
  trace?: never;
5682
5923
  };
5924
+ "/v1/{workspace_id}/services/{service_id}/text-turn": {
5925
+ parameters: {
5926
+ query?: never;
5927
+ header?: never;
5928
+ path?: never;
5929
+ cookie?: never;
5930
+ };
5931
+ get?: never;
5932
+ put?: never;
5933
+ /**
5934
+ * Text Turn
5935
+ * @description Run one WhatsApp-style text turn against the service's agent.
5936
+ */
5937
+ post: operations["text-turn"];
5938
+ delete?: never;
5939
+ options?: never;
5940
+ head?: never;
5941
+ patch?: never;
5942
+ trace?: never;
5943
+ };
5683
5944
  "/v1/{workspace_id}/services/{service_id}/tools/resolve": {
5684
5945
  parameters: {
5685
5946
  query?: never;
@@ -10329,6 +10590,7 @@ export interface components {
10329
10590
  /** Total Segments */
10330
10591
  total_segments: number;
10331
10592
  };
10593
+ CanonicalIdLookupString: string;
10332
10594
  CanonicalIdString: string;
10333
10595
  /** CatalogEntry */
10334
10596
  CatalogEntry: {
@@ -12237,12 +12499,13 @@ export interface components {
12237
12499
  * @description World model outbound_task entity ID for completion feedback.
12238
12500
  */
12239
12501
  outbound_task_entity_id?: string | null;
12502
+ /** @description Patient world model canonical_id of the form 'source:resource_type:id' (e.g. 'revolution:Patient:67890'). The structural regex on CanonicalIdString rejects spaces, names, DOBs, and similar regulated content so PHI cannot leak into audit events or pipeline projections. The raw value is deliberately not recorded in the outbound.initiated event — correlation back to the source system is via the resolved entity_id joined to world.entities.canonical_id. Resolved against the SDP-projected world.entities table; an entity created moments ago may not yet be visible if the projection is lagging. Provide either patient_entity_id or patient_canonical_id, not both. */
12503
+ patient_canonical_id?: components["schemas"]["CanonicalIdString"] | null;
12240
12504
  /**
12241
12505
  * Patient Entity Id
12242
- * Format: uuid
12243
- * @description Patient entity in the world model. Must exist in workspace as a person entity.
12506
+ * @description Patient entity UUID in the world model. Must exist in workspace as a person entity. Provide either patient_entity_id or patient_canonical_id.
12244
12507
  */
12245
- patient_entity_id: string;
12508
+ patient_entity_id?: string | null;
12246
12509
  /** @description Caller ID phone number in E.164 format. Must belong to this workspace. */
12247
12510
  phone_from?: components["schemas"]["PhoneE164"] | null;
12248
12511
  /** @description Destination phone number in E.164 format. */
@@ -12328,8 +12591,6 @@ export interface components {
12328
12591
  * ]
12329
12592
  */
12330
12593
  capabilities?: ("inbound" | "outbound")[];
12331
- /** Channel Phone Id */
12332
- channel_phone_id?: string | null;
12333
12594
  /**
12334
12595
  * Display Name
12335
12596
  * @default
@@ -12358,8 +12619,6 @@ export interface components {
12358
12619
  * @enum {string}
12359
12620
  */
12360
12621
  status?: "active" | "inactive";
12361
- /** Sub Account Sid */
12362
- sub_account_sid?: string | null;
12363
12622
  };
12364
12623
  /** CreateRunRequest */
12365
12624
  CreateRunRequest: {
@@ -12449,6 +12708,21 @@ export interface components {
12449
12708
  };
12450
12709
  voice_config?: components["schemas"]["ServiceVoiceConfig"] | null;
12451
12710
  };
12711
+ /** CreateSesSetupRequest */
12712
+ CreateSesSetupRequest: {
12713
+ /**
12714
+ * Domain Identity
12715
+ * @description Domain to verify for both sending and receiving (e.g.
12716
+ * ``mail.customer.com``). A single SES identity serves both directions.
12717
+ */
12718
+ domain_identity: string;
12719
+ /**
12720
+ * Tenant Name
12721
+ * @description Logical SES tenant name (reputation + suppression isolation boundary).
12722
+ * Unique within the AWS account. Alphabet ``[A-Za-z0-9_-]``, 1-64 chars.
12723
+ */
12724
+ tenant_name: string;
12725
+ };
12452
12726
  /** CreateSessionResponse */
12453
12727
  CreateSessionResponse: {
12454
12728
  /** Connected */
@@ -14008,6 +14282,29 @@ export interface components {
14008
14282
  */
14009
14283
  workspace_id: string;
14010
14284
  };
14285
+ /** DnsRecordResponse */
14286
+ DnsRecordResponse: {
14287
+ /**
14288
+ * Address
14289
+ * @description Fully-qualified hostname the DNS entry lives under.
14290
+ */
14291
+ address: string;
14292
+ /**
14293
+ * Record
14294
+ * @description Target value the customer must publish at their DNS provider.
14295
+ */
14296
+ record: string;
14297
+ /**
14298
+ * Type
14299
+ * @enum {string}
14300
+ */
14301
+ type: "CNAME" | "MX" | "TXT";
14302
+ /**
14303
+ * Verified
14304
+ * @description Whether the live DNS lookup at the time of the GET found the entry.
14305
+ */
14306
+ verified: boolean;
14307
+ };
14011
14308
  /**
14012
14309
  * DriverRow
14013
14310
  * @description One SPR row — generic (outcome, feature-tuple) grain.
@@ -14935,7 +15232,7 @@ export interface components {
14935
15232
  */
14936
15233
  EntityResolveRequest: {
14937
15234
  /** @description Canonical/MRN identifier ('charm:Patient:42' or raw MRN). */
14938
- canonical_id?: components["schemas"]["CanonicalIdString"] | null;
15235
+ canonical_id?: components["schemas"]["CanonicalIdLookupString"] | null;
14939
15236
  /**
14940
15237
  * Email
14941
15238
  * @description Primary email (case-insensitive match).
@@ -16636,6 +16933,27 @@ export interface components {
16636
16933
  */
16637
16934
  schema?: string;
16638
16935
  };
16936
+ /**
16937
+ * FunctionExample
16938
+ * @description One example call, surfaced to the LLM and the DC test panel.
16939
+ *
16940
+ * Examples are first-class metadata, not buried in a UC ``COMMENT``
16941
+ * clause the way Databricks' native authoring requires. The DC
16942
+ * tool-picker shows them; the LLM tool spec includes them inline.
16943
+ */
16944
+ FunctionExample: {
16945
+ /**
16946
+ * Description
16947
+ * @default
16948
+ */
16949
+ description?: string;
16950
+ /** Input */
16951
+ input: {
16952
+ [key: string]: unknown;
16953
+ };
16954
+ /** Output */
16955
+ output: unknown;
16956
+ };
16639
16957
  /** FunctionListResponse */
16640
16958
  FunctionListResponse: {
16641
16959
  /** Count */
@@ -16670,6 +16988,72 @@ export interface components {
16670
16988
  /** Result */
16671
16989
  result?: unknown;
16672
16990
  };
16991
+ /** FunctionVersionListResponse */
16992
+ FunctionVersionListResponse: {
16993
+ /** Count */
16994
+ count: number;
16995
+ /** Items */
16996
+ items: components["schemas"]["FunctionVersionResponse"][];
16997
+ };
16998
+ /**
16999
+ * FunctionVersionResponse
17000
+ * @description Single version row from ``platform.functions``.
17001
+ */
17002
+ FunctionVersionResponse: {
17003
+ /** Deployed At */
17004
+ deployed_at?: string | null;
17005
+ /** Deployed By */
17006
+ deployed_by?: string | null;
17007
+ /**
17008
+ * Description
17009
+ * @default
17010
+ */
17011
+ description?: string;
17012
+ /** Examples */
17013
+ examples?: {
17014
+ [key: string]: unknown;
17015
+ }[];
17016
+ /** Function Type */
17017
+ function_type: string;
17018
+ /** Input Schema */
17019
+ input_schema?: {
17020
+ [key: string]: unknown;
17021
+ };
17022
+ /** Last Test At */
17023
+ last_test_at?: string | null;
17024
+ /** Last Test Duration Ms */
17025
+ last_test_duration_ms?: number | null;
17026
+ /** Last Test Error */
17027
+ last_test_error?: string | null;
17028
+ /** Last Test Status */
17029
+ last_test_status?: string | null;
17030
+ /** Name */
17031
+ name: string;
17032
+ /** Parameters */
17033
+ parameters?: {
17034
+ [key: string]: unknown;
17035
+ }[];
17036
+ /** Returns Kind */
17037
+ returns_kind: string;
17038
+ /** Source Hash */
17039
+ source_hash?: string | null;
17040
+ /** Source Path */
17041
+ source_path?: string | null;
17042
+ /** Sql Template */
17043
+ sql_template: string;
17044
+ /**
17045
+ * Timeout Ms
17046
+ * @default 30000
17047
+ */
17048
+ timeout_ms?: number;
17049
+ /** Version */
17050
+ version: number;
17051
+ /**
17052
+ * When To Use
17053
+ * @default
17054
+ */
17055
+ when_to_use?: string;
17056
+ };
16673
17057
  /**
16674
17058
  * GapRequiredField
16675
17059
  * @description A field that must be present in entity state.
@@ -17602,6 +17986,46 @@ export interface components {
17602
17986
  */
17603
17987
  unit_price: string;
17604
17988
  };
17989
+ /**
17990
+ * InvokeRequest
17991
+ * @description Invoke a registered function with caller-supplied args.
17992
+ */
17993
+ InvokeRequest: {
17994
+ /**
17995
+ * Alias
17996
+ * @description Alias to resolve.
17997
+ * @default latest
17998
+ * @enum {string}
17999
+ */
18000
+ alias?: "latest" | "staging" | "production";
18001
+ /**
18002
+ * Input
18003
+ * @description Caller arguments matching input_schema.
18004
+ */
18005
+ input?: {
18006
+ [key: string]: unknown;
18007
+ };
18008
+ };
18009
+ /** InvokeResponse */
18010
+ InvokeResponse: {
18011
+ /**
18012
+ * Duration Ms
18013
+ * @default 0
18014
+ */
18015
+ duration_ms?: number;
18016
+ /** Result */
18017
+ result?: unknown;
18018
+ /**
18019
+ * Row Count
18020
+ * @default 0
18021
+ */
18022
+ row_count?: number;
18023
+ /**
18024
+ * Version
18025
+ * @default 0
18026
+ */
18027
+ version?: number;
18028
+ };
17605
18029
  /**
17606
18030
  * JoinCallRequest
17607
18031
  * @description Request to join an active call as operator.
@@ -19611,6 +20035,17 @@ export interface components {
19611
20035
  /** Total */
19612
20036
  total?: number | null;
19613
20037
  };
20038
+ /** PaginatedResponse[SesSetupListItemResponse] */
20039
+ PaginatedResponse_SesSetupListItemResponse_: {
20040
+ /** Continuation Token */
20041
+ continuation_token?: number | null;
20042
+ /** Has More */
20043
+ has_more: boolean;
20044
+ /** Items */
20045
+ items: components["schemas"]["SesSetupListItemResponse"][];
20046
+ /** Total */
20047
+ total?: number | null;
20048
+ };
19614
20049
  /** PaginatedResponse[SkillResponse] */
19615
20050
  PaginatedResponse_SkillResponse_: {
19616
20051
  /** Continuation Token */
@@ -19722,6 +20157,34 @@ export interface components {
19722
20157
  */
19723
20158
  rows: unknown[][];
19724
20159
  };
20160
+ /**
20161
+ * Parameter
20162
+ * @description Typed declaration of one SQL bind parameter.
20163
+ *
20164
+ * The ``name`` becomes the ``:name`` placeholder in the SQL template.
20165
+ * The ``description`` propagates into the LLM tool spec (this is what
20166
+ * Databricks' Agent Framework reads, and what Anthropic's tool-use
20167
+ * spec exposes to the model). Missing descriptions silently break
20168
+ * tool selection — the registration layer rejects empty strings.
20169
+ */
20170
+ Parameter: {
20171
+ /** Default */
20172
+ default?: string | number | boolean | null;
20173
+ /** Description */
20174
+ description: string;
20175
+ /** Name */
20176
+ name: string;
20177
+ /**
20178
+ * Required
20179
+ * @default true
20180
+ */
20181
+ required?: boolean;
20182
+ /**
20183
+ * Type
20184
+ * @enum {string}
20185
+ */
20186
+ type: "string" | "integer" | "number" | "boolean";
20187
+ };
19725
20188
  /** Participant */
19726
20189
  Participant: {
19727
20190
  /** Display Name */
@@ -20800,6 +21263,25 @@ export interface components {
20800
21263
  /** Trigger Delay Ms */
20801
21264
  trigger_delay_ms?: number | null;
20802
21265
  };
21266
+ /** PromoteRequest */
21267
+ PromoteRequest: {
21268
+ /**
21269
+ * Alias
21270
+ * @enum {string}
21271
+ */
21272
+ alias: "latest" | "staging" | "production";
21273
+ /** Version */
21274
+ version: number;
21275
+ };
21276
+ /** PromoteResponse */
21277
+ PromoteResponse: {
21278
+ /** Alias */
21279
+ alias: string;
21280
+ /** Name */
21281
+ name: string;
21282
+ /** Version */
21283
+ version: number;
21284
+ };
20803
21285
  /**
20804
21286
  * ProviderType
20805
21287
  * @description Messaging provider that implements a channel.
@@ -21158,6 +21640,50 @@ export interface components {
21158
21640
  */
21159
21641
  status?: "available";
21160
21642
  };
21643
+ /**
21644
+ * RegisteredFunction
21645
+ * @description The authored shape of a platform function.
21646
+ *
21647
+ * Identical wire format whether it's authored as a YAML file in the
21648
+ * repo or POSTed to ``/v1/{ws}/functions/deploy``. The deploy
21649
+ * pipeline validates this, derives the JSON Schema for the LLM tool
21650
+ * spec, and INSERTs a row into ``platform.functions`` with the next
21651
+ * monotonic ``version`` per ``(workspace_id, name)``.
21652
+ */
21653
+ RegisteredFunction: {
21654
+ /** Description */
21655
+ description: string;
21656
+ /** Examples */
21657
+ examples?: components["schemas"]["FunctionExample"][];
21658
+ /**
21659
+ * Function Type
21660
+ * @default sql
21661
+ * @enum {string}
21662
+ */
21663
+ function_type?: "sql" | "ai" | "udtf" | "python";
21664
+ /** Name */
21665
+ name: string;
21666
+ /** Parameters */
21667
+ parameters?: components["schemas"]["Parameter"][];
21668
+ /**
21669
+ * Returns
21670
+ * @default table
21671
+ * @enum {string}
21672
+ */
21673
+ returns?: "table" | "scalar";
21674
+ /** Sql */
21675
+ sql: string;
21676
+ /**
21677
+ * Timeout Ms
21678
+ * @default 30000
21679
+ */
21680
+ timeout_ms?: number;
21681
+ /**
21682
+ * When To Use
21683
+ * @default
21684
+ */
21685
+ when_to_use?: string;
21686
+ };
21161
21687
  /** RegulationTemplateResponse */
21162
21688
  RegulationTemplateResponse: {
21163
21689
  /** Category */
@@ -21536,6 +22062,21 @@ export interface components {
21536
22062
  */
21537
22063
  level?: "low" | "medium" | "high" | "critical";
21538
22064
  };
22065
+ /** RollbackRequest */
22066
+ RollbackRequest: {
22067
+ /**
22068
+ * Version
22069
+ * @description Prior version to rebind latest+production to.
22070
+ */
22071
+ version: number;
22072
+ };
22073
+ /** RollbackResponse */
22074
+ RollbackResponse: {
22075
+ /** Name */
22076
+ name: string;
22077
+ /** Rolled Back To Version */
22078
+ rolled_back_to_version: number;
22079
+ };
21539
22080
  /** RotateApiKeyRequest */
21540
22081
  RotateApiKeyRequest: {
21541
22082
  /** Duration Days */
@@ -22429,6 +22970,55 @@ export interface components {
22429
22970
  /** Tts Provider */
22430
22971
  tts_provider?: ("cartesia" | "elevenlabs" | "groq") | null;
22431
22972
  };
22973
+ /** SesSetupDetailResponse */
22974
+ SesSetupDetailResponse: {
22975
+ /**
22976
+ * Created At
22977
+ * Format: date-time
22978
+ */
22979
+ created_at: string;
22980
+ /** Dns Checked At */
22981
+ dns_checked_at: string | null;
22982
+ /** Dns Records */
22983
+ dns_records: components["schemas"]["DnsRecordResponse"][];
22984
+ /** Domain Identity */
22985
+ domain_identity: string;
22986
+ /** Id */
22987
+ id: string;
22988
+ /** Tenant Name */
22989
+ tenant_name: string;
22990
+ /**
22991
+ * Updated At
22992
+ * Format: date-time
22993
+ */
22994
+ updated_at: string;
22995
+ };
22996
+ /** SesSetupListItemResponse */
22997
+ SesSetupListItemResponse: {
22998
+ /**
22999
+ * Created At
23000
+ * Format: date-time
23001
+ */
23002
+ created_at: string;
23003
+ /** Dns Checked At */
23004
+ dns_checked_at: string | null;
23005
+ /**
23006
+ * Dns Verified
23007
+ * @description Aggregate of every DNS record's ``verified`` at the last refresh.
23008
+ */
23009
+ dns_verified: boolean;
23010
+ /** Domain Identity */
23011
+ domain_identity: string;
23012
+ /** Id */
23013
+ id: string;
23014
+ /** Tenant Name */
23015
+ tenant_name: string;
23016
+ /**
23017
+ * Updated At
23018
+ * Format: date-time
23019
+ */
23020
+ updated_at: string;
23021
+ };
22432
23022
  /** SessionEndEvent */
22433
23023
  SessionEndEvent: {
22434
23024
  /**
@@ -23593,6 +24183,8 @@ export interface components {
23593
24183
  };
23594
24184
  /** StartSessionRequest */
23595
24185
  StartSessionRequest: {
24186
+ /** @description World model canonical_id of the form 'source:resource_type:id' (e.g. 'revolution:Patient:67890'). The structural regex on CanonicalIdString blocks spaces, names, DOBs, and similar regulated content. Resolved against the SDP-projected world.entities table; a freshly-created entity may not be visible yet if the projection is lagging. Provide either entity_id or canonical_id, not both. */
24187
+ canonical_id?: components["schemas"]["CanonicalIdString"] | null;
23596
24188
  /**
23597
24189
  * Channel Kind
23598
24190
  * @enum {string}
@@ -23600,9 +24192,9 @@ export interface components {
23600
24192
  channel_kind: "sms" | "whatsapp" | "web";
23601
24193
  /**
23602
24194
  * Entity Id
23603
- * Format: uuid
24195
+ * @description World model entity UUID. Provide either entity_id or canonical_id.
23604
24196
  */
23605
- entity_id: string;
24197
+ entity_id?: string | null;
23606
24198
  /**
23607
24199
  * Greeting
23608
24200
  * @description Custom greeting. Agent auto-greets if omitted.
@@ -24876,6 +25468,26 @@ export interface components {
24876
25468
  /** Session Id */
24877
25469
  session_id: string;
24878
25470
  };
25471
+ /**
25472
+ * TextTurnRequest
25473
+ * @description Request body for ``POST /v1/{ws}/services/{service_id}/text-turn``.
25474
+ */
25475
+ TextTurnRequest: {
25476
+ /** Phone Number */
25477
+ phone_number: string;
25478
+ /** Text */
25479
+ text: string;
25480
+ };
25481
+ /**
25482
+ * TextTurnResponse
25483
+ * @description Response body — the agent's text reply.
25484
+ *
25485
+ * Returned only on 200; 204 indicates the engine elected silence.
25486
+ */
25487
+ TextTurnResponse: {
25488
+ /** Text */
25489
+ text: string;
25490
+ };
24879
25491
  /** ThroughputBucket */
24880
25492
  ThroughputBucket: {
24881
25493
  /** Bucket */
@@ -26367,8 +26979,6 @@ export interface components {
26367
26979
  UpdatePhoneNumberRequest: {
26368
26980
  /** Capabilities */
26369
26981
  capabilities?: ("inbound" | "outbound")[] | null;
26370
- /** Channel Phone Id */
26371
- channel_phone_id?: string | null;
26372
26982
  /** Display Name */
26373
26983
  display_name?: string | null;
26374
26984
  forwarding?: components["schemas"]["ForwardingConfigRequest"] | null;
@@ -26382,8 +26992,6 @@ export interface components {
26382
26992
  provider_phone_sid?: string | null;
26383
26993
  /** Status */
26384
26994
  status?: ("active" | "inactive") | null;
26385
- /** Sub Account Sid */
26386
- sub_account_sid?: string | null;
26387
26995
  };
26388
26996
  /** UpdateSafetyConfigRequest */
26389
26997
  UpdateSafetyConfigRequest: {
@@ -32368,6 +32976,265 @@ export interface operations {
32368
32976
  };
32369
32977
  };
32370
32978
  };
32979
+ "list-ses-setups": {
32980
+ parameters: {
32981
+ query?: {
32982
+ limit?: number;
32983
+ continuation_token?: number;
32984
+ };
32985
+ header?: never;
32986
+ path: {
32987
+ workspace_id: string;
32988
+ };
32989
+ cookie?: never;
32990
+ };
32991
+ requestBody?: never;
32992
+ responses: {
32993
+ /** @description Successful Response */
32994
+ 200: {
32995
+ headers: {
32996
+ [name: string]: unknown;
32997
+ };
32998
+ content: {
32999
+ "application/json": components["schemas"]["PaginatedResponse_SesSetupListItemResponse_"];
33000
+ };
33001
+ };
33002
+ /** @description Insufficient permissions. */
33003
+ 403: {
33004
+ headers: {
33005
+ [name: string]: unknown;
33006
+ };
33007
+ content?: never;
33008
+ };
33009
+ /** @description Validation Error */
33010
+ 422: {
33011
+ headers: {
33012
+ [name: string]: unknown;
33013
+ };
33014
+ content: {
33015
+ "application/json": components["schemas"]["HTTPValidationError"];
33016
+ };
33017
+ };
33018
+ };
33019
+ };
33020
+ "create-ses-setup": {
33021
+ parameters: {
33022
+ query?: never;
33023
+ header?: never;
33024
+ path: {
33025
+ workspace_id: string;
33026
+ };
33027
+ cookie?: never;
33028
+ };
33029
+ requestBody: {
33030
+ content: {
33031
+ "application/json": components["schemas"]["CreateSesSetupRequest"];
33032
+ };
33033
+ };
33034
+ responses: {
33035
+ /** @description Successful Response */
33036
+ 201: {
33037
+ headers: {
33038
+ [name: string]: unknown;
33039
+ };
33040
+ content: {
33041
+ "application/json": components["schemas"]["SesSetupDetailResponse"];
33042
+ };
33043
+ };
33044
+ /** @description Insufficient permissions. */
33045
+ 403: {
33046
+ headers: {
33047
+ [name: string]: unknown;
33048
+ };
33049
+ content?: never;
33050
+ };
33051
+ /** @description Tenant name or domain identity already exists upstream. */
33052
+ 409: {
33053
+ headers: {
33054
+ [name: string]: unknown;
33055
+ };
33056
+ content?: never;
33057
+ };
33058
+ /** @description Invalid SES setup configuration. */
33059
+ 422: {
33060
+ headers: {
33061
+ [name: string]: unknown;
33062
+ };
33063
+ content?: never;
33064
+ };
33065
+ /** @description Channel manager unavailable. */
33066
+ 502: {
33067
+ headers: {
33068
+ [name: string]: unknown;
33069
+ };
33070
+ content?: never;
33071
+ };
33072
+ /** @description Channel manager timed out. */
33073
+ 504: {
33074
+ headers: {
33075
+ [name: string]: unknown;
33076
+ };
33077
+ content?: never;
33078
+ };
33079
+ };
33080
+ };
33081
+ "get-ses-setup": {
33082
+ parameters: {
33083
+ query?: never;
33084
+ header?: never;
33085
+ path: {
33086
+ workspace_id: string;
33087
+ setup_id: string;
33088
+ };
33089
+ cookie?: never;
33090
+ };
33091
+ requestBody?: never;
33092
+ responses: {
33093
+ /** @description Successful Response */
33094
+ 200: {
33095
+ headers: {
33096
+ [name: string]: unknown;
33097
+ };
33098
+ content: {
33099
+ "application/json": components["schemas"]["SesSetupDetailResponse"];
33100
+ };
33101
+ };
33102
+ /** @description Insufficient permissions. */
33103
+ 403: {
33104
+ headers: {
33105
+ [name: string]: unknown;
33106
+ };
33107
+ content?: never;
33108
+ };
33109
+ /** @description SES setup not found in this workspace. */
33110
+ 404: {
33111
+ headers: {
33112
+ [name: string]: unknown;
33113
+ };
33114
+ content?: never;
33115
+ };
33116
+ /** @description Validation Error */
33117
+ 422: {
33118
+ headers: {
33119
+ [name: string]: unknown;
33120
+ };
33121
+ content: {
33122
+ "application/json": components["schemas"]["HTTPValidationError"];
33123
+ };
33124
+ };
33125
+ };
33126
+ };
33127
+ "delete-ses-setup": {
33128
+ parameters: {
33129
+ query?: never;
33130
+ header?: never;
33131
+ path: {
33132
+ workspace_id: string;
33133
+ setup_id: string;
33134
+ };
33135
+ cookie?: never;
33136
+ };
33137
+ requestBody?: never;
33138
+ responses: {
33139
+ /** @description Successful Response */
33140
+ 204: {
33141
+ headers: {
33142
+ [name: string]: unknown;
33143
+ };
33144
+ content?: never;
33145
+ };
33146
+ /** @description Insufficient permissions. */
33147
+ 403: {
33148
+ headers: {
33149
+ [name: string]: unknown;
33150
+ };
33151
+ content?: never;
33152
+ };
33153
+ /** @description SES setup not found in this workspace. */
33154
+ 404: {
33155
+ headers: {
33156
+ [name: string]: unknown;
33157
+ };
33158
+ content?: never;
33159
+ };
33160
+ /** @description Setup still referenced by live use cases. */
33161
+ 409: {
33162
+ headers: {
33163
+ [name: string]: unknown;
33164
+ };
33165
+ content?: never;
33166
+ };
33167
+ /** @description Validation Error */
33168
+ 422: {
33169
+ headers: {
33170
+ [name: string]: unknown;
33171
+ };
33172
+ content: {
33173
+ "application/json": components["schemas"]["HTTPValidationError"];
33174
+ };
33175
+ };
33176
+ /** @description Channel manager unavailable. */
33177
+ 502: {
33178
+ headers: {
33179
+ [name: string]: unknown;
33180
+ };
33181
+ content?: never;
33182
+ };
33183
+ /** @description Channel manager timed out. */
33184
+ 504: {
33185
+ headers: {
33186
+ [name: string]: unknown;
33187
+ };
33188
+ content?: never;
33189
+ };
33190
+ };
33191
+ };
33192
+ "verify-ses-setup-dns": {
33193
+ parameters: {
33194
+ query?: never;
33195
+ header?: never;
33196
+ path: {
33197
+ workspace_id: string;
33198
+ setup_id: string;
33199
+ };
33200
+ cookie?: never;
33201
+ };
33202
+ requestBody?: never;
33203
+ responses: {
33204
+ /** @description Successful Response */
33205
+ 200: {
33206
+ headers: {
33207
+ [name: string]: unknown;
33208
+ };
33209
+ content: {
33210
+ "application/json": components["schemas"]["SesSetupDetailResponse"];
33211
+ };
33212
+ };
33213
+ /** @description Insufficient permissions. */
33214
+ 403: {
33215
+ headers: {
33216
+ [name: string]: unknown;
33217
+ };
33218
+ content?: never;
33219
+ };
33220
+ /** @description SES setup not found in this workspace. */
33221
+ 404: {
33222
+ headers: {
33223
+ [name: string]: unknown;
33224
+ };
33225
+ content?: never;
33226
+ };
33227
+ /** @description Validation Error */
33228
+ 422: {
33229
+ headers: {
33230
+ [name: string]: unknown;
33231
+ };
33232
+ content: {
33233
+ "application/json": components["schemas"]["HTTPValidationError"];
33234
+ };
33235
+ };
33236
+ };
33237
+ };
32371
33238
  "get-command-center": {
32372
33239
  parameters: {
32373
33240
  query?: never;
@@ -35581,6 +36448,53 @@ export interface operations {
35581
36448
  };
35582
36449
  };
35583
36450
  };
36451
+ "deploy-function": {
36452
+ parameters: {
36453
+ query?: never;
36454
+ header?: never;
36455
+ path: {
36456
+ workspace_id: string;
36457
+ };
36458
+ cookie?: never;
36459
+ };
36460
+ requestBody: {
36461
+ content: {
36462
+ "application/json": components["schemas"]["RegisteredFunction"];
36463
+ };
36464
+ };
36465
+ responses: {
36466
+ /** @description Successful Response */
36467
+ 200: {
36468
+ headers: {
36469
+ [name: string]: unknown;
36470
+ };
36471
+ content: {
36472
+ "application/json": components["schemas"]["FunctionVersionResponse"];
36473
+ };
36474
+ };
36475
+ /** @description Concurrent deploy raced at the same version */
36476
+ 409: {
36477
+ headers: {
36478
+ [name: string]: unknown;
36479
+ };
36480
+ content?: never;
36481
+ };
36482
+ /** @description Validation failure (read-only / bind / parity) */
36483
+ 422: {
36484
+ headers: {
36485
+ [name: string]: unknown;
36486
+ };
36487
+ content?: never;
36488
+ };
36489
+ /** @description Rate limited */
36490
+ 429: {
36491
+ headers: {
36492
+ [name: string]: unknown;
36493
+ };
36494
+ content?: never;
36495
+ };
36496
+ };
36497
+ };
35584
36498
  "query-functions": {
35585
36499
  parameters: {
35586
36500
  query?: never;
@@ -35714,6 +36628,161 @@ export interface operations {
35714
36628
  };
35715
36629
  };
35716
36630
  };
36631
+ "invoke-function": {
36632
+ parameters: {
36633
+ query?: never;
36634
+ header?: never;
36635
+ path: {
36636
+ workspace_id: string;
36637
+ function_name: string;
36638
+ };
36639
+ cookie?: never;
36640
+ };
36641
+ requestBody: {
36642
+ content: {
36643
+ "application/json": components["schemas"]["InvokeRequest"];
36644
+ };
36645
+ };
36646
+ responses: {
36647
+ /** @description Successful Response */
36648
+ 200: {
36649
+ headers: {
36650
+ [name: string]: unknown;
36651
+ };
36652
+ content: {
36653
+ "application/json": components["schemas"]["InvokeResponse"];
36654
+ };
36655
+ };
36656
+ /** @description Function not found */
36657
+ 404: {
36658
+ headers: {
36659
+ [name: string]: unknown;
36660
+ };
36661
+ content?: never;
36662
+ };
36663
+ /** @description Bind validation failure */
36664
+ 422: {
36665
+ headers: {
36666
+ [name: string]: unknown;
36667
+ };
36668
+ content?: never;
36669
+ };
36670
+ /** @description Rate limited */
36671
+ 429: {
36672
+ headers: {
36673
+ [name: string]: unknown;
36674
+ };
36675
+ content?: never;
36676
+ };
36677
+ /** @description Databricks SQL client unavailable */
36678
+ 503: {
36679
+ headers: {
36680
+ [name: string]: unknown;
36681
+ };
36682
+ content?: never;
36683
+ };
36684
+ };
36685
+ };
36686
+ "promote-function": {
36687
+ parameters: {
36688
+ query?: never;
36689
+ header?: never;
36690
+ path: {
36691
+ workspace_id: string;
36692
+ function_name: string;
36693
+ };
36694
+ cookie?: never;
36695
+ };
36696
+ requestBody: {
36697
+ content: {
36698
+ "application/json": components["schemas"]["PromoteRequest"];
36699
+ };
36700
+ };
36701
+ responses: {
36702
+ /** @description Successful Response */
36703
+ 200: {
36704
+ headers: {
36705
+ [name: string]: unknown;
36706
+ };
36707
+ content: {
36708
+ "application/json": components["schemas"]["PromoteResponse"];
36709
+ };
36710
+ };
36711
+ /** @description Function or version not found */
36712
+ 404: {
36713
+ headers: {
36714
+ [name: string]: unknown;
36715
+ };
36716
+ content?: never;
36717
+ };
36718
+ /** @description Validation Error */
36719
+ 422: {
36720
+ headers: {
36721
+ [name: string]: unknown;
36722
+ };
36723
+ content: {
36724
+ "application/json": components["schemas"]["HTTPValidationError"];
36725
+ };
36726
+ };
36727
+ /** @description Rate limited */
36728
+ 429: {
36729
+ headers: {
36730
+ [name: string]: unknown;
36731
+ };
36732
+ content?: never;
36733
+ };
36734
+ };
36735
+ };
36736
+ "rollback-function": {
36737
+ parameters: {
36738
+ query?: never;
36739
+ header?: never;
36740
+ path: {
36741
+ workspace_id: string;
36742
+ function_name: string;
36743
+ };
36744
+ cookie?: never;
36745
+ };
36746
+ requestBody: {
36747
+ content: {
36748
+ "application/json": components["schemas"]["RollbackRequest"];
36749
+ };
36750
+ };
36751
+ responses: {
36752
+ /** @description Successful Response */
36753
+ 200: {
36754
+ headers: {
36755
+ [name: string]: unknown;
36756
+ };
36757
+ content: {
36758
+ "application/json": components["schemas"]["RollbackResponse"];
36759
+ };
36760
+ };
36761
+ /** @description Function or version not found */
36762
+ 404: {
36763
+ headers: {
36764
+ [name: string]: unknown;
36765
+ };
36766
+ content?: never;
36767
+ };
36768
+ /** @description Validation Error */
36769
+ 422: {
36770
+ headers: {
36771
+ [name: string]: unknown;
36772
+ };
36773
+ content: {
36774
+ "application/json": components["schemas"]["HTTPValidationError"];
36775
+ };
36776
+ };
36777
+ /** @description Rate limited */
36778
+ 429: {
36779
+ headers: {
36780
+ [name: string]: unknown;
36781
+ };
36782
+ content?: never;
36783
+ };
36784
+ };
36785
+ };
35717
36786
  "test-function": {
35718
36787
  parameters: {
35719
36788
  query?: never;
@@ -35771,6 +36840,157 @@ export interface operations {
35771
36840
  };
35772
36841
  };
35773
36842
  };
36843
+ "test-function-v2": {
36844
+ parameters: {
36845
+ query?: never;
36846
+ header?: never;
36847
+ path: {
36848
+ workspace_id: string;
36849
+ function_name: string;
36850
+ };
36851
+ cookie?: never;
36852
+ };
36853
+ requestBody: {
36854
+ content: {
36855
+ "application/json": components["schemas"]["InvokeRequest"];
36856
+ };
36857
+ };
36858
+ responses: {
36859
+ /** @description Successful Response */
36860
+ 200: {
36861
+ headers: {
36862
+ [name: string]: unknown;
36863
+ };
36864
+ content: {
36865
+ "application/json": components["schemas"]["InvokeResponse"];
36866
+ };
36867
+ };
36868
+ /** @description Function not found */
36869
+ 404: {
36870
+ headers: {
36871
+ [name: string]: unknown;
36872
+ };
36873
+ content?: never;
36874
+ };
36875
+ /** @description Validation Error */
36876
+ 422: {
36877
+ headers: {
36878
+ [name: string]: unknown;
36879
+ };
36880
+ content: {
36881
+ "application/json": components["schemas"]["HTTPValidationError"];
36882
+ };
36883
+ };
36884
+ /** @description Rate limited */
36885
+ 429: {
36886
+ headers: {
36887
+ [name: string]: unknown;
36888
+ };
36889
+ content?: never;
36890
+ };
36891
+ /** @description Databricks SQL client unavailable */
36892
+ 503: {
36893
+ headers: {
36894
+ [name: string]: unknown;
36895
+ };
36896
+ content?: never;
36897
+ };
36898
+ };
36899
+ };
36900
+ "get-function-version": {
36901
+ parameters: {
36902
+ query?: {
36903
+ alias?: "latest" | "staging" | "production";
36904
+ };
36905
+ header?: never;
36906
+ path: {
36907
+ workspace_id: string;
36908
+ function_name: string;
36909
+ };
36910
+ cookie?: never;
36911
+ };
36912
+ requestBody?: never;
36913
+ responses: {
36914
+ /** @description Successful Response */
36915
+ 200: {
36916
+ headers: {
36917
+ [name: string]: unknown;
36918
+ };
36919
+ content: {
36920
+ "application/json": components["schemas"]["FunctionVersionResponse"];
36921
+ };
36922
+ };
36923
+ /** @description Function not found */
36924
+ 404: {
36925
+ headers: {
36926
+ [name: string]: unknown;
36927
+ };
36928
+ content?: never;
36929
+ };
36930
+ /** @description Validation Error */
36931
+ 422: {
36932
+ headers: {
36933
+ [name: string]: unknown;
36934
+ };
36935
+ content: {
36936
+ "application/json": components["schemas"]["HTTPValidationError"];
36937
+ };
36938
+ };
36939
+ /** @description Rate limited */
36940
+ 429: {
36941
+ headers: {
36942
+ [name: string]: unknown;
36943
+ };
36944
+ content?: never;
36945
+ };
36946
+ };
36947
+ };
36948
+ "list-function-versions": {
36949
+ parameters: {
36950
+ query?: never;
36951
+ header?: never;
36952
+ path: {
36953
+ workspace_id: string;
36954
+ function_name: string;
36955
+ };
36956
+ cookie?: never;
36957
+ };
36958
+ requestBody?: never;
36959
+ responses: {
36960
+ /** @description Successful Response */
36961
+ 200: {
36962
+ headers: {
36963
+ [name: string]: unknown;
36964
+ };
36965
+ content: {
36966
+ "application/json": components["schemas"]["FunctionVersionListResponse"];
36967
+ };
36968
+ };
36969
+ /** @description Function not found */
36970
+ 404: {
36971
+ headers: {
36972
+ [name: string]: unknown;
36973
+ };
36974
+ content?: never;
36975
+ };
36976
+ /** @description Validation Error */
36977
+ 422: {
36978
+ headers: {
36979
+ [name: string]: unknown;
36980
+ };
36981
+ content: {
36982
+ "application/json": components["schemas"]["HTTPValidationError"];
36983
+ };
36984
+ };
36985
+ /** @description Rate limited */
36986
+ 429: {
36987
+ headers: {
36988
+ [name: string]: unknown;
36989
+ };
36990
+ content?: never;
36991
+ };
36992
+ };
36993
+ };
35774
36994
  receive_webhook_v1__workspace_id__hooks__destination_id__post: {
35775
36995
  parameters: {
35776
36996
  query?: never;
@@ -41494,6 +42714,56 @@ export interface operations {
41494
42714
  };
41495
42715
  };
41496
42716
  };
42717
+ "text-turn": {
42718
+ parameters: {
42719
+ query?: never;
42720
+ header?: never;
42721
+ path: {
42722
+ workspace_id: string;
42723
+ service_id: string;
42724
+ };
42725
+ cookie?: never;
42726
+ };
42727
+ requestBody: {
42728
+ content: {
42729
+ "application/json": components["schemas"]["TextTurnRequest"];
42730
+ };
42731
+ };
42732
+ responses: {
42733
+ /** @description Agent text reply */
42734
+ 200: {
42735
+ headers: {
42736
+ [name: string]: unknown;
42737
+ };
42738
+ content: {
42739
+ "application/json": components["schemas"]["TextTurnResponse"];
42740
+ };
42741
+ };
42742
+ /** @description Agent elected silence */
42743
+ 204: {
42744
+ headers: {
42745
+ [name: string]: unknown;
42746
+ };
42747
+ content?: never;
42748
+ };
42749
+ /** @description Concurrent text turn in progress for this speaker */
42750
+ 409: {
42751
+ headers: {
42752
+ [name: string]: unknown;
42753
+ };
42754
+ content?: never;
42755
+ };
42756
+ /** @description Validation Error */
42757
+ 422: {
42758
+ headers: {
42759
+ [name: string]: unknown;
42760
+ };
42761
+ content: {
42762
+ "application/json": components["schemas"]["HTTPValidationError"];
42763
+ };
42764
+ };
42765
+ };
42766
+ };
41497
42767
  "resolve-service-tools": {
41498
42768
  parameters: {
41499
42769
  query?: never;