retell-sdk 6.0.1 → 6.1.1

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 (96) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/client.d.mts +2 -2
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +2 -2
  5. package/client.d.ts.map +1 -1
  6. package/client.js.map +1 -1
  7. package/client.mjs.map +1 -1
  8. package/package.json +1 -1
  9. package/resources/agent.d.mts +3222 -526
  10. package/resources/agent.d.mts.map +1 -1
  11. package/resources/agent.d.ts +3222 -526
  12. package/resources/agent.d.ts.map +1 -1
  13. package/resources/app.d.mts +122 -5
  14. package/resources/app.d.mts.map +1 -1
  15. package/resources/app.d.ts +122 -5
  16. package/resources/app.d.ts.map +1 -1
  17. package/resources/app.js +17 -1
  18. package/resources/app.js.map +1 -1
  19. package/resources/app.mjs +17 -1
  20. package/resources/app.mjs.map +1 -1
  21. package/resources/batch-call.d.mts +912 -13
  22. package/resources/batch-call.d.mts.map +1 -1
  23. package/resources/batch-call.d.ts +912 -13
  24. package/resources/batch-call.d.ts.map +1 -1
  25. package/resources/call.d.mts +7843 -3792
  26. package/resources/call.d.mts.map +1 -1
  27. package/resources/call.d.ts +7843 -3792
  28. package/resources/call.d.ts.map +1 -1
  29. package/resources/call.js +1 -1
  30. package/resources/call.mjs +1 -1
  31. package/resources/chat-agent.d.mts +3125 -453
  32. package/resources/chat-agent.d.mts.map +1 -1
  33. package/resources/chat-agent.d.ts +3125 -453
  34. package/resources/chat-agent.d.ts.map +1 -1
  35. package/resources/chat.d.mts +892 -26
  36. package/resources/chat.d.mts.map +1 -1
  37. package/resources/chat.d.ts +892 -26
  38. package/resources/chat.d.ts.map +1 -1
  39. package/resources/contact.d.mts +162 -20
  40. package/resources/contact.d.mts.map +1 -1
  41. package/resources/contact.d.ts +162 -20
  42. package/resources/contact.d.ts.map +1 -1
  43. package/resources/contact.js +98 -4
  44. package/resources/contact.js.map +1 -1
  45. package/resources/contact.mjs +98 -4
  46. package/resources/contact.mjs.map +1 -1
  47. package/resources/conversation-flow-component.d.mts +3282 -243
  48. package/resources/conversation-flow-component.d.mts.map +1 -1
  49. package/resources/conversation-flow-component.d.ts +3282 -243
  50. package/resources/conversation-flow-component.d.ts.map +1 -1
  51. package/resources/conversation-flow.d.mts +7347 -1269
  52. package/resources/conversation-flow.d.mts.map +1 -1
  53. package/resources/conversation-flow.d.ts +7347 -1269
  54. package/resources/conversation-flow.d.ts.map +1 -1
  55. package/resources/crm.d.mts +37 -5
  56. package/resources/crm.d.mts.map +1 -1
  57. package/resources/crm.d.ts +37 -5
  58. package/resources/crm.d.ts.map +1 -1
  59. package/resources/identity.d.mts +4 -0
  60. package/resources/identity.d.mts.map +1 -1
  61. package/resources/identity.d.ts +4 -0
  62. package/resources/identity.d.ts.map +1 -1
  63. package/resources/index.d.mts +1 -1
  64. package/resources/index.d.mts.map +1 -1
  65. package/resources/index.d.ts +1 -1
  66. package/resources/index.d.ts.map +1 -1
  67. package/resources/index.js.map +1 -1
  68. package/resources/index.mjs.map +1 -1
  69. package/resources/llm.d.mts +867 -9
  70. package/resources/llm.d.mts.map +1 -1
  71. package/resources/llm.d.ts +867 -9
  72. package/resources/llm.d.ts.map +1 -1
  73. package/resources/tests.d.mts +3 -3
  74. package/resources/tests.d.mts.map +1 -1
  75. package/resources/tests.d.ts +3 -3
  76. package/resources/tests.d.ts.map +1 -1
  77. package/src/client.ts +4 -0
  78. package/src/resources/agent.ts +4786 -1504
  79. package/src/resources/app.ts +144 -4
  80. package/src/resources/batch-call.ts +1115 -10
  81. package/src/resources/call.ts +9825 -4806
  82. package/src/resources/chat-agent.ts +3958 -698
  83. package/src/resources/chat.ts +1133 -50
  84. package/src/resources/contact.ts +168 -20
  85. package/src/resources/conversation-flow-component.ts +4466 -191
  86. package/src/resources/conversation-flow.ts +9084 -525
  87. package/src/resources/crm.ts +44 -5
  88. package/src/resources/identity.ts +5 -0
  89. package/src/resources/index.ts +2 -0
  90. package/src/resources/llm.ts +1045 -46
  91. package/src/resources/tests.ts +21 -0
  92. package/src/version.ts +1 -1
  93. package/version.d.mts +1 -1
  94. package/version.d.ts +1 -1
  95. package/version.js +1 -1
  96. package/version.mjs +1 -1
@@ -152,6 +152,7 @@ export interface LlmResponse {
152
152
  | LlmResponse.BridgeTransferTool
153
153
  | LlmResponse.CancelTransferTool
154
154
  | LlmResponse.McpTool
155
+ | LlmResponse.AppTool
155
156
  > | null;
156
157
 
157
158
  /**
@@ -198,9 +199,16 @@ export interface LlmResponse {
198
199
  | 'gpt-5.5'
199
200
  | 'gpt-5.6-terra'
200
201
  | 'gpt-5.6-luna'
202
+ | 'gpt-6-astra'
203
+ | 'gpt-6-sol'
204
+ | 'gpt-6.1-sol'
205
+ | 'gpt-6-luna'
201
206
  | 'claude-4.5-sonnet'
202
207
  | 'claude-4.6-sonnet'
208
+ | 'claude-5-opus'
209
+ | 'claude-5.5-opus'
203
210
  | 'claude-5-sonnet'
211
+ | 'claude-5.5-sonnet'
204
212
  | 'claude-4.5-haiku'
205
213
  | 'gemini-3.0-flash'
206
214
  | 'gemini-3.1-flash-lite'
@@ -283,6 +291,12 @@ export namespace LlmResponse {
283
291
 
284
292
  type: 'end_call';
285
293
 
294
+ /**
295
+ * Custom SIP headers sent on the outgoing BYE when ending the call. Header names
296
+ * must start with X- or x-. Supports dynamic variables.
297
+ */
298
+ custom_sip_headers?: { [key: string]: string };
299
+
286
300
  /**
287
301
  * Describes what the tool does, sometimes can also include information about when
288
302
  * to call the tool.
@@ -726,6 +740,14 @@ export namespace LlmResponse {
726
740
 
727
741
  speak_during_execution?: boolean;
728
742
 
743
+ /**
744
+ * If true, restart the max call duration timer at the swap using the destination
745
+ * agent's max_call_duration_ms, capped so the whole call never exceeds 2 hours.
746
+ * Otherwise, the timer already running is left unchanged. Voice calls only.
747
+ * Defaults to false.
748
+ */
749
+ use_swap_agent_max_duration?: boolean;
750
+
729
751
  /**
730
752
  * Webhook setting for the agent swap, defaults to only source.
731
753
  */
@@ -1362,6 +1384,154 @@ export namespace LlmResponse {
1362
1384
  speak_during_execution?: boolean;
1363
1385
  }
1364
1386
 
1387
+ export interface AppTool {
1388
+ /**
1389
+ * The connection (App) this tool runs against. Must be a connection in the
1390
+ * organization whose provider matches this tool's provider.
1391
+ */
1392
+ app_id: string;
1393
+
1394
+ /**
1395
+ * Name of the catalog template within the provider, as listed by
1396
+ * list-app-templates.
1397
+ */
1398
+ app_tool_template_name: string;
1399
+
1400
+ /**
1401
+ * Name of the tool. Must be unique within the phase's tools; referenced by
1402
+ * depends_on.
1403
+ */
1404
+ name: string;
1405
+
1406
+ /**
1407
+ * Provider of the connection. Must match the connection's provider; supported
1408
+ * providers are listed by list-app-templates.
1409
+ */
1410
+ provider: string;
1411
+
1412
+ type: 'integration_app';
1413
+
1414
+ /**
1415
+ * Only applies to during conversation functions; ignored by the pre/post
1416
+ * conversation. Overrides the catalog template's LLM-facing description.
1417
+ */
1418
+ description?: string;
1419
+
1420
+ /**
1421
+ * Only applies to during conversation functions; ignored by the pre/post
1422
+ * conversation. If true, play a typing sound on the agent audio track while this
1423
+ * tool is executing. Useful when the tool takes a noticeable amount of time to
1424
+ * prevent silence on the call.
1425
+ */
1426
+ enable_typing_sound?: boolean;
1427
+
1428
+ /**
1429
+ * Only applies to during conversation functions; ignored by the pre/post
1430
+ * conversation. The message for the agent to speak when executing the tool. Only
1431
+ * applicable when speak_during_execution is true.
1432
+ */
1433
+ execution_message_description?: string;
1434
+
1435
+ /**
1436
+ * Only applies to during conversation functions; ignored by the pre/post
1437
+ * conversation. Type of execution message. "prompt" means the agent will use
1438
+ * execution_message_description as a prompt to generate the message. "static_text"
1439
+ * means the agent will speak the execution_message_description directly. Defaults
1440
+ * to "prompt".
1441
+ */
1442
+ execution_message_type?: 'prompt' | 'static_text';
1443
+
1444
+ /**
1445
+ * What the agent and the transcript see of the tool's response. Omit to send the
1446
+ * full response. Does not affect response_variables, which are always extracted
1447
+ * from the raw response.
1448
+ */
1449
+ output_selection?: AppTool.UnionMember0 | AppTool.UnionMember1;
1450
+
1451
+ /**
1452
+ * The resolved input parameters, in order. Properties may pin a value with const
1453
+ * (including {{variable}} references) or provide a description for LLM inference.
1454
+ * Each property may also record selected*input_mode, the editor mode the user
1455
+ * selected ("const_enum", "const_boolean", "const_value", "description_custom", or
1456
+ * "description_preset"); it is stored and returned as-is, used only by the tool
1457
+ * config UI. Omit the key when no mode is recorded; when set, const*_ modes
1458
+ * require a non-empty const, and description\__ modes must omit const entirely.
1459
+ * Each parameter's required list must match the schema returned by the
1460
+ * corresponding step of the get-app-tool-schema loop.
1461
+ */
1462
+ parameters?: Array<AppTool.Parameter>;
1463
+
1464
+ /**
1465
+ * Mapping of a dynamic-variable name to the response field (dot-path) it is
1466
+ * populated from. Missing paths are ignored.
1467
+ */
1468
+ response_variables?: { [key: string]: string };
1469
+
1470
+ /**
1471
+ * Only applies to during conversation functions; ignored by the pre/post
1472
+ * conversation. Determines whether the agent would call LLM another time and speak
1473
+ * when the result of the tool is obtained.
1474
+ */
1475
+ speak_after_execution?: boolean;
1476
+
1477
+ /**
1478
+ * Only applies to during conversation functions; ignored by the pre/post
1479
+ * conversation. If true, will speak during execution.
1480
+ */
1481
+ speak_during_execution?: boolean;
1482
+ }
1483
+
1484
+ export namespace AppTool {
1485
+ export interface UnionMember0 {
1486
+ mode: 'all';
1487
+
1488
+ /**
1489
+ * Not used at runtime; stored and returned as-is for the UI.
1490
+ */
1491
+ fields?: Array<string>;
1492
+ }
1493
+
1494
+ export interface UnionMember1 {
1495
+ /**
1496
+ * The only response fields the agent and the transcript see, as dot-paths into the
1497
+ * response schema returned by get-app-tool-schema. Everything else is dropped.
1498
+ * Selecting a parent keeps its whole subtree. A plain segment traverses arrays
1499
+ * element-wise (deals.properties.amount keeps that field on every deal), while
1500
+ * key[n] selects one element (deals[0].id keeps only the first deal's id); paths
1501
+ * that match nothing contribute nothing.
1502
+ */
1503
+ fields: Array<string>;
1504
+
1505
+ mode: 'subset';
1506
+ }
1507
+
1508
+ /**
1509
+ * The parameters the functions accepts, described as a JSON Schema object. See
1510
+ * [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for
1511
+ * documentation about the format. Omitting parameters defines a function with an
1512
+ * empty parameter list.
1513
+ */
1514
+ export interface Parameter {
1515
+ /**
1516
+ * The value of properties is an object, where each key is the name of a property
1517
+ * and each value is a schema used to validate that property.
1518
+ */
1519
+ properties: unknown;
1520
+
1521
+ /**
1522
+ * Type must be "object" for a JSON Schema object.
1523
+ */
1524
+ type: 'object';
1525
+
1526
+ /**
1527
+ * List of names of required property when generating this parameter. LLM will do
1528
+ * its best to generate the required properties in its function arguments. Property
1529
+ * must exist in properties.
1530
+ */
1531
+ required?: Array<string>;
1532
+ }
1533
+ }
1534
+
1365
1535
  /**
1366
1536
  * Knowledge base configuration for RAG retrieval.
1367
1537
  */
@@ -1442,6 +1612,7 @@ export namespace LlmResponse {
1442
1612
  | State.BridgeTransferTool
1443
1613
  | State.CancelTransferTool
1444
1614
  | State.McpTool
1615
+ | State.AppTool
1445
1616
  >;
1446
1617
  }
1447
1618
 
@@ -1513,6 +1684,12 @@ export namespace LlmResponse {
1513
1684
 
1514
1685
  type: 'end_call';
1515
1686
 
1687
+ /**
1688
+ * Custom SIP headers sent on the outgoing BYE when ending the call. Header names
1689
+ * must start with X- or x-. Supports dynamic variables.
1690
+ */
1691
+ custom_sip_headers?: { [key: string]: string };
1692
+
1516
1693
  /**
1517
1694
  * Describes what the tool does, sometimes can also include information about when
1518
1695
  * to call the tool.
@@ -1956,6 +2133,14 @@ export namespace LlmResponse {
1956
2133
 
1957
2134
  speak_during_execution?: boolean;
1958
2135
 
2136
+ /**
2137
+ * If true, restart the max call duration timer at the swap using the destination
2138
+ * agent's max_call_duration_ms, capped so the whole call never exceeds 2 hours.
2139
+ * Otherwise, the timer already running is left unchanged. Voice calls only.
2140
+ * Defaults to false.
2141
+ */
2142
+ use_swap_agent_max_duration?: boolean;
2143
+
1959
2144
  /**
1960
2145
  * Webhook setting for the agent swap, defaults to only source.
1961
2146
  */
@@ -2591,6 +2776,154 @@ export namespace LlmResponse {
2591
2776
  */
2592
2777
  speak_during_execution?: boolean;
2593
2778
  }
2779
+
2780
+ export interface AppTool {
2781
+ /**
2782
+ * The connection (App) this tool runs against. Must be a connection in the
2783
+ * organization whose provider matches this tool's provider.
2784
+ */
2785
+ app_id: string;
2786
+
2787
+ /**
2788
+ * Name of the catalog template within the provider, as listed by
2789
+ * list-app-templates.
2790
+ */
2791
+ app_tool_template_name: string;
2792
+
2793
+ /**
2794
+ * Name of the tool. Must be unique within the phase's tools; referenced by
2795
+ * depends_on.
2796
+ */
2797
+ name: string;
2798
+
2799
+ /**
2800
+ * Provider of the connection. Must match the connection's provider; supported
2801
+ * providers are listed by list-app-templates.
2802
+ */
2803
+ provider: string;
2804
+
2805
+ type: 'integration_app';
2806
+
2807
+ /**
2808
+ * Only applies to during conversation functions; ignored by the pre/post
2809
+ * conversation. Overrides the catalog template's LLM-facing description.
2810
+ */
2811
+ description?: string;
2812
+
2813
+ /**
2814
+ * Only applies to during conversation functions; ignored by the pre/post
2815
+ * conversation. If true, play a typing sound on the agent audio track while this
2816
+ * tool is executing. Useful when the tool takes a noticeable amount of time to
2817
+ * prevent silence on the call.
2818
+ */
2819
+ enable_typing_sound?: boolean;
2820
+
2821
+ /**
2822
+ * Only applies to during conversation functions; ignored by the pre/post
2823
+ * conversation. The message for the agent to speak when executing the tool. Only
2824
+ * applicable when speak_during_execution is true.
2825
+ */
2826
+ execution_message_description?: string;
2827
+
2828
+ /**
2829
+ * Only applies to during conversation functions; ignored by the pre/post
2830
+ * conversation. Type of execution message. "prompt" means the agent will use
2831
+ * execution_message_description as a prompt to generate the message. "static_text"
2832
+ * means the agent will speak the execution_message_description directly. Defaults
2833
+ * to "prompt".
2834
+ */
2835
+ execution_message_type?: 'prompt' | 'static_text';
2836
+
2837
+ /**
2838
+ * What the agent and the transcript see of the tool's response. Omit to send the
2839
+ * full response. Does not affect response_variables, which are always extracted
2840
+ * from the raw response.
2841
+ */
2842
+ output_selection?: AppTool.UnionMember0 | AppTool.UnionMember1;
2843
+
2844
+ /**
2845
+ * The resolved input parameters, in order. Properties may pin a value with const
2846
+ * (including {{variable}} references) or provide a description for LLM inference.
2847
+ * Each property may also record selected*input_mode, the editor mode the user
2848
+ * selected ("const_enum", "const_boolean", "const_value", "description_custom", or
2849
+ * "description_preset"); it is stored and returned as-is, used only by the tool
2850
+ * config UI. Omit the key when no mode is recorded; when set, const*_ modes
2851
+ * require a non-empty const, and description\__ modes must omit const entirely.
2852
+ * Each parameter's required list must match the schema returned by the
2853
+ * corresponding step of the get-app-tool-schema loop.
2854
+ */
2855
+ parameters?: Array<AppTool.Parameter>;
2856
+
2857
+ /**
2858
+ * Mapping of a dynamic-variable name to the response field (dot-path) it is
2859
+ * populated from. Missing paths are ignored.
2860
+ */
2861
+ response_variables?: { [key: string]: string };
2862
+
2863
+ /**
2864
+ * Only applies to during conversation functions; ignored by the pre/post
2865
+ * conversation. Determines whether the agent would call LLM another time and speak
2866
+ * when the result of the tool is obtained.
2867
+ */
2868
+ speak_after_execution?: boolean;
2869
+
2870
+ /**
2871
+ * Only applies to during conversation functions; ignored by the pre/post
2872
+ * conversation. If true, will speak during execution.
2873
+ */
2874
+ speak_during_execution?: boolean;
2875
+ }
2876
+
2877
+ export namespace AppTool {
2878
+ export interface UnionMember0 {
2879
+ mode: 'all';
2880
+
2881
+ /**
2882
+ * Not used at runtime; stored and returned as-is for the UI.
2883
+ */
2884
+ fields?: Array<string>;
2885
+ }
2886
+
2887
+ export interface UnionMember1 {
2888
+ /**
2889
+ * The only response fields the agent and the transcript see, as dot-paths into the
2890
+ * response schema returned by get-app-tool-schema. Everything else is dropped.
2891
+ * Selecting a parent keeps its whole subtree. A plain segment traverses arrays
2892
+ * element-wise (deals.properties.amount keeps that field on every deal), while
2893
+ * key[n] selects one element (deals[0].id keeps only the first deal's id); paths
2894
+ * that match nothing contribute nothing.
2895
+ */
2896
+ fields: Array<string>;
2897
+
2898
+ mode: 'subset';
2899
+ }
2900
+
2901
+ /**
2902
+ * The parameters the functions accepts, described as a JSON Schema object. See
2903
+ * [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for
2904
+ * documentation about the format. Omitting parameters defines a function with an
2905
+ * empty parameter list.
2906
+ */
2907
+ export interface Parameter {
2908
+ /**
2909
+ * The value of properties is an object, where each key is the name of a property
2910
+ * and each value is a schema used to validate that property.
2911
+ */
2912
+ properties: unknown;
2913
+
2914
+ /**
2915
+ * Type must be "object" for a JSON Schema object.
2916
+ */
2917
+ type: 'object';
2918
+
2919
+ /**
2920
+ * List of names of required property when generating this parameter. LLM will do
2921
+ * its best to generate the required properties in its function arguments. Property
2922
+ * must exist in properties.
2923
+ */
2924
+ required?: Array<string>;
2925
+ }
2926
+ }
2594
2927
  }
2595
2928
  }
2596
2929
 
@@ -2658,6 +2991,7 @@ export interface LlmCreateParams {
2658
2991
  | LlmCreateParams.BridgeTransferTool
2659
2992
  | LlmCreateParams.CancelTransferTool
2660
2993
  | LlmCreateParams.McpTool
2994
+ | LlmCreateParams.AppTool
2661
2995
  > | null;
2662
2996
 
2663
2997
  /**
@@ -2699,9 +3033,16 @@ export interface LlmCreateParams {
2699
3033
  | 'gpt-5.5'
2700
3034
  | 'gpt-5.6-terra'
2701
3035
  | 'gpt-5.6-luna'
3036
+ | 'gpt-6-astra'
3037
+ | 'gpt-6-sol'
3038
+ | 'gpt-6.1-sol'
3039
+ | 'gpt-6-luna'
2702
3040
  | 'claude-4.5-sonnet'
2703
3041
  | 'claude-4.6-sonnet'
3042
+ | 'claude-5-opus'
3043
+ | 'claude-5.5-opus'
2704
3044
  | 'claude-5-sonnet'
3045
+ | 'claude-5.5-sonnet'
2705
3046
  | 'claude-4.5-haiku'
2706
3047
  | 'gemini-3.0-flash'
2707
3048
  | 'gemini-3.1-flash-lite'
@@ -2779,6 +3120,12 @@ export namespace LlmCreateParams {
2779
3120
 
2780
3121
  type: 'end_call';
2781
3122
 
3123
+ /**
3124
+ * Custom SIP headers sent on the outgoing BYE when ending the call. Header names
3125
+ * must start with X- or x-. Supports dynamic variables.
3126
+ */
3127
+ custom_sip_headers?: { [key: string]: string };
3128
+
2782
3129
  /**
2783
3130
  * Describes what the tool does, sometimes can also include information about when
2784
3131
  * to call the tool.
@@ -3222,6 +3569,14 @@ export namespace LlmCreateParams {
3222
3569
 
3223
3570
  speak_during_execution?: boolean;
3224
3571
 
3572
+ /**
3573
+ * If true, restart the max call duration timer at the swap using the destination
3574
+ * agent's max_call_duration_ms, capped so the whole call never exceeds 2 hours.
3575
+ * Otherwise, the timer already running is left unchanged. Voice calls only.
3576
+ * Defaults to false.
3577
+ */
3578
+ use_swap_agent_max_duration?: boolean;
3579
+
3225
3580
  /**
3226
3581
  * Webhook setting for the agent swap, defaults to only source.
3227
3582
  */
@@ -3858,86 +4213,235 @@ export namespace LlmCreateParams {
3858
4213
  speak_during_execution?: boolean;
3859
4214
  }
3860
4215
 
3861
- /**
3862
- * Knowledge base configuration for RAG retrieval.
3863
- */
3864
- export interface KBConfig {
4216
+ export interface AppTool {
3865
4217
  /**
3866
- * Similarity threshold for filtering search results
4218
+ * The connection (App) this tool runs against. Must be a connection in the
4219
+ * organization whose provider matches this tool's provider.
3867
4220
  */
3868
- filter_score?: number;
4221
+ app_id: string;
3869
4222
 
3870
4223
  /**
3871
- * Max number of knowledge base chunks to retrieve
4224
+ * Name of the catalog template within the provider, as listed by
4225
+ * list-app-templates.
3872
4226
  */
3873
- top_k?: number;
3874
- }
4227
+ app_tool_template_name: string;
3875
4228
 
3876
- export interface Mcp {
4229
+ /**
4230
+ * Name of the tool. Must be unique within the phase's tools; referenced by
4231
+ * depends_on.
4232
+ */
3877
4233
  name: string;
3878
4234
 
3879
4235
  /**
3880
- * The URL of the MCP server.
4236
+ * Provider of the connection. Must match the connection's provider; supported
4237
+ * providers are listed by list-app-templates.
3881
4238
  */
3882
- url: string;
4239
+ provider: string;
4240
+
4241
+ type: 'integration_app';
3883
4242
 
3884
4243
  /**
3885
- * Headers to add to the MCP connection request.
4244
+ * Only applies to during conversation functions; ignored by the pre/post
4245
+ * conversation. Overrides the catalog template's LLM-facing description.
3886
4246
  */
3887
- headers?: { [key: string]: string };
4247
+ description?: string;
3888
4248
 
3889
4249
  /**
3890
- * Query parameters to append to the MCP connection request URL.
4250
+ * Only applies to during conversation functions; ignored by the pre/post
4251
+ * conversation. If true, play a typing sound on the agent audio track while this
4252
+ * tool is executing. Useful when the tool takes a noticeable amount of time to
4253
+ * prevent silence on the call.
3891
4254
  */
3892
- query_params?: { [key: string]: string };
4255
+ enable_typing_sound?: boolean;
3893
4256
 
3894
4257
  /**
3895
- * Maximum time to wait for a connection to be established (in milliseconds).
3896
- * Default to 120,000 ms (2 minutes).
4258
+ * Only applies to during conversation functions; ignored by the pre/post
4259
+ * conversation. The message for the agent to speak when executing the tool. Only
4260
+ * applicable when speak_during_execution is true.
3897
4261
  */
3898
- timeout_ms?: number;
3899
- }
4262
+ execution_message_description?: string;
3900
4263
 
3901
- export interface State {
3902
4264
  /**
3903
- * Name of the state, must be unique for each state. Must be consisted of a-z, A-Z,
3904
- * 0-9, or contain underscores and dashes, with a maximum length of 64 (no space
3905
- * allowed).
4265
+ * Only applies to during conversation functions; ignored by the pre/post
4266
+ * conversation. Type of execution message. "prompt" means the agent will use
4267
+ * execution_message_description as a prompt to generate the message. "static_text"
4268
+ * means the agent will speak the execution_message_description directly. Defaults
4269
+ * to "prompt".
3906
4270
  */
3907
- name: string;
4271
+ execution_message_type?: 'prompt' | 'static_text';
3908
4272
 
3909
4273
  /**
3910
- * Edges of the state define how and what state can be reached from this state.
4274
+ * What the agent and the transcript see of the tool's response. Omit to send the
4275
+ * full response. Does not affect response_variables, which are always extracted
4276
+ * from the raw response.
3911
4277
  */
3912
- edges?: Array<State.Edge>;
4278
+ output_selection?: AppTool.UnionMember0 | AppTool.UnionMember1;
3913
4279
 
3914
4280
  /**
3915
- * Prompt of the state, will be appended to the system prompt of LLM.
3916
- *
3917
- * - System prompt = general prompt + state prompt.
4281
+ * The resolved input parameters, in order. Properties may pin a value with const
4282
+ * (including {{variable}} references) or provide a description for LLM inference.
4283
+ * Each property may also record selected*input_mode, the editor mode the user
4284
+ * selected ("const_enum", "const_boolean", "const_value", "description_custom", or
4285
+ * "description_preset"); it is stored and returned as-is, used only by the tool
4286
+ * config UI. Omit the key when no mode is recorded; when set, const*_ modes
4287
+ * require a non-empty const, and description\__ modes must omit const entirely.
4288
+ * Each parameter's required list must match the schema returned by the
4289
+ * corresponding step of the get-app-tool-schema loop.
3918
4290
  */
3919
- state_prompt?: string;
4291
+ parameters?: Array<AppTool.Parameter>;
3920
4292
 
3921
4293
  /**
3922
- * A list of tools specific to this state the model may call (to get external
3923
- * knowledge, call API, etc). You can select from some common predefined tools like
3924
- * end call, transfer call, etc; or you can create your own custom tool for the LLM
3925
- * to use.
3926
- *
3927
- * - Tools of LLM = general tools + state tools + state transitions
4294
+ * Mapping of a dynamic-variable name to the response field (dot-path) it is
4295
+ * populated from. Missing paths are ignored.
3928
4296
  */
3929
- tools?: Array<
3930
- | State.EndCallTool
3931
- | State.TransferCallTool
3932
- | State.AgentSwapTool
3933
- | State.PressDigitTool
3934
- | State.SendSMSTool
3935
- | State.CustomTool
3936
- | State.CodeTool
3937
- | State.ExtractDynamicVariableTool
4297
+ response_variables?: { [key: string]: string };
4298
+
4299
+ /**
4300
+ * Only applies to during conversation functions; ignored by the pre/post
4301
+ * conversation. Determines whether the agent would call LLM another time and speak
4302
+ * when the result of the tool is obtained.
4303
+ */
4304
+ speak_after_execution?: boolean;
4305
+
4306
+ /**
4307
+ * Only applies to during conversation functions; ignored by the pre/post
4308
+ * conversation. If true, will speak during execution.
4309
+ */
4310
+ speak_during_execution?: boolean;
4311
+ }
4312
+
4313
+ export namespace AppTool {
4314
+ export interface UnionMember0 {
4315
+ mode: 'all';
4316
+
4317
+ /**
4318
+ * Not used at runtime; stored and returned as-is for the UI.
4319
+ */
4320
+ fields?: Array<string>;
4321
+ }
4322
+
4323
+ export interface UnionMember1 {
4324
+ /**
4325
+ * The only response fields the agent and the transcript see, as dot-paths into the
4326
+ * response schema returned by get-app-tool-schema. Everything else is dropped.
4327
+ * Selecting a parent keeps its whole subtree. A plain segment traverses arrays
4328
+ * element-wise (deals.properties.amount keeps that field on every deal), while
4329
+ * key[n] selects one element (deals[0].id keeps only the first deal's id); paths
4330
+ * that match nothing contribute nothing.
4331
+ */
4332
+ fields: Array<string>;
4333
+
4334
+ mode: 'subset';
4335
+ }
4336
+
4337
+ /**
4338
+ * The parameters the functions accepts, described as a JSON Schema object. See
4339
+ * [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for
4340
+ * documentation about the format. Omitting parameters defines a function with an
4341
+ * empty parameter list.
4342
+ */
4343
+ export interface Parameter {
4344
+ /**
4345
+ * The value of properties is an object, where each key is the name of a property
4346
+ * and each value is a schema used to validate that property.
4347
+ */
4348
+ properties: unknown;
4349
+
4350
+ /**
4351
+ * Type must be "object" for a JSON Schema object.
4352
+ */
4353
+ type: 'object';
4354
+
4355
+ /**
4356
+ * List of names of required property when generating this parameter. LLM will do
4357
+ * its best to generate the required properties in its function arguments. Property
4358
+ * must exist in properties.
4359
+ */
4360
+ required?: Array<string>;
4361
+ }
4362
+ }
4363
+
4364
+ /**
4365
+ * Knowledge base configuration for RAG retrieval.
4366
+ */
4367
+ export interface KBConfig {
4368
+ /**
4369
+ * Similarity threshold for filtering search results
4370
+ */
4371
+ filter_score?: number;
4372
+
4373
+ /**
4374
+ * Max number of knowledge base chunks to retrieve
4375
+ */
4376
+ top_k?: number;
4377
+ }
4378
+
4379
+ export interface Mcp {
4380
+ name: string;
4381
+
4382
+ /**
4383
+ * The URL of the MCP server.
4384
+ */
4385
+ url: string;
4386
+
4387
+ /**
4388
+ * Headers to add to the MCP connection request.
4389
+ */
4390
+ headers?: { [key: string]: string };
4391
+
4392
+ /**
4393
+ * Query parameters to append to the MCP connection request URL.
4394
+ */
4395
+ query_params?: { [key: string]: string };
4396
+
4397
+ /**
4398
+ * Maximum time to wait for a connection to be established (in milliseconds).
4399
+ * Default to 120,000 ms (2 minutes).
4400
+ */
4401
+ timeout_ms?: number;
4402
+ }
4403
+
4404
+ export interface State {
4405
+ /**
4406
+ * Name of the state, must be unique for each state. Must be consisted of a-z, A-Z,
4407
+ * 0-9, or contain underscores and dashes, with a maximum length of 64 (no space
4408
+ * allowed).
4409
+ */
4410
+ name: string;
4411
+
4412
+ /**
4413
+ * Edges of the state define how and what state can be reached from this state.
4414
+ */
4415
+ edges?: Array<State.Edge>;
4416
+
4417
+ /**
4418
+ * Prompt of the state, will be appended to the system prompt of LLM.
4419
+ *
4420
+ * - System prompt = general prompt + state prompt.
4421
+ */
4422
+ state_prompt?: string;
4423
+
4424
+ /**
4425
+ * A list of tools specific to this state the model may call (to get external
4426
+ * knowledge, call API, etc). You can select from some common predefined tools like
4427
+ * end call, transfer call, etc; or you can create your own custom tool for the LLM
4428
+ * to use.
4429
+ *
4430
+ * - Tools of LLM = general tools + state tools + state transitions
4431
+ */
4432
+ tools?: Array<
4433
+ | State.EndCallTool
4434
+ | State.TransferCallTool
4435
+ | State.AgentSwapTool
4436
+ | State.PressDigitTool
4437
+ | State.SendSMSTool
4438
+ | State.CustomTool
4439
+ | State.CodeTool
4440
+ | State.ExtractDynamicVariableTool
3938
4441
  | State.BridgeTransferTool
3939
4442
  | State.CancelTransferTool
3940
4443
  | State.McpTool
4444
+ | State.AppTool
3941
4445
  >;
3942
4446
  }
3943
4447
 
@@ -4009,6 +4513,12 @@ export namespace LlmCreateParams {
4009
4513
 
4010
4514
  type: 'end_call';
4011
4515
 
4516
+ /**
4517
+ * Custom SIP headers sent on the outgoing BYE when ending the call. Header names
4518
+ * must start with X- or x-. Supports dynamic variables.
4519
+ */
4520
+ custom_sip_headers?: { [key: string]: string };
4521
+
4012
4522
  /**
4013
4523
  * Describes what the tool does, sometimes can also include information about when
4014
4524
  * to call the tool.
@@ -4452,6 +4962,14 @@ export namespace LlmCreateParams {
4452
4962
 
4453
4963
  speak_during_execution?: boolean;
4454
4964
 
4965
+ /**
4966
+ * If true, restart the max call duration timer at the swap using the destination
4967
+ * agent's max_call_duration_ms, capped so the whole call never exceeds 2 hours.
4968
+ * Otherwise, the timer already running is left unchanged. Voice calls only.
4969
+ * Defaults to false.
4970
+ */
4971
+ use_swap_agent_max_duration?: boolean;
4972
+
4455
4973
  /**
4456
4974
  * Webhook setting for the agent swap, defaults to only source.
4457
4975
  */
@@ -5087,6 +5605,154 @@ export namespace LlmCreateParams {
5087
5605
  */
5088
5606
  speak_during_execution?: boolean;
5089
5607
  }
5608
+
5609
+ export interface AppTool {
5610
+ /**
5611
+ * The connection (App) this tool runs against. Must be a connection in the
5612
+ * organization whose provider matches this tool's provider.
5613
+ */
5614
+ app_id: string;
5615
+
5616
+ /**
5617
+ * Name of the catalog template within the provider, as listed by
5618
+ * list-app-templates.
5619
+ */
5620
+ app_tool_template_name: string;
5621
+
5622
+ /**
5623
+ * Name of the tool. Must be unique within the phase's tools; referenced by
5624
+ * depends_on.
5625
+ */
5626
+ name: string;
5627
+
5628
+ /**
5629
+ * Provider of the connection. Must match the connection's provider; supported
5630
+ * providers are listed by list-app-templates.
5631
+ */
5632
+ provider: string;
5633
+
5634
+ type: 'integration_app';
5635
+
5636
+ /**
5637
+ * Only applies to during conversation functions; ignored by the pre/post
5638
+ * conversation. Overrides the catalog template's LLM-facing description.
5639
+ */
5640
+ description?: string;
5641
+
5642
+ /**
5643
+ * Only applies to during conversation functions; ignored by the pre/post
5644
+ * conversation. If true, play a typing sound on the agent audio track while this
5645
+ * tool is executing. Useful when the tool takes a noticeable amount of time to
5646
+ * prevent silence on the call.
5647
+ */
5648
+ enable_typing_sound?: boolean;
5649
+
5650
+ /**
5651
+ * Only applies to during conversation functions; ignored by the pre/post
5652
+ * conversation. The message for the agent to speak when executing the tool. Only
5653
+ * applicable when speak_during_execution is true.
5654
+ */
5655
+ execution_message_description?: string;
5656
+
5657
+ /**
5658
+ * Only applies to during conversation functions; ignored by the pre/post
5659
+ * conversation. Type of execution message. "prompt" means the agent will use
5660
+ * execution_message_description as a prompt to generate the message. "static_text"
5661
+ * means the agent will speak the execution_message_description directly. Defaults
5662
+ * to "prompt".
5663
+ */
5664
+ execution_message_type?: 'prompt' | 'static_text';
5665
+
5666
+ /**
5667
+ * What the agent and the transcript see of the tool's response. Omit to send the
5668
+ * full response. Does not affect response_variables, which are always extracted
5669
+ * from the raw response.
5670
+ */
5671
+ output_selection?: AppTool.UnionMember0 | AppTool.UnionMember1;
5672
+
5673
+ /**
5674
+ * The resolved input parameters, in order. Properties may pin a value with const
5675
+ * (including {{variable}} references) or provide a description for LLM inference.
5676
+ * Each property may also record selected*input_mode, the editor mode the user
5677
+ * selected ("const_enum", "const_boolean", "const_value", "description_custom", or
5678
+ * "description_preset"); it is stored and returned as-is, used only by the tool
5679
+ * config UI. Omit the key when no mode is recorded; when set, const*_ modes
5680
+ * require a non-empty const, and description\__ modes must omit const entirely.
5681
+ * Each parameter's required list must match the schema returned by the
5682
+ * corresponding step of the get-app-tool-schema loop.
5683
+ */
5684
+ parameters?: Array<AppTool.Parameter>;
5685
+
5686
+ /**
5687
+ * Mapping of a dynamic-variable name to the response field (dot-path) it is
5688
+ * populated from. Missing paths are ignored.
5689
+ */
5690
+ response_variables?: { [key: string]: string };
5691
+
5692
+ /**
5693
+ * Only applies to during conversation functions; ignored by the pre/post
5694
+ * conversation. Determines whether the agent would call LLM another time and speak
5695
+ * when the result of the tool is obtained.
5696
+ */
5697
+ speak_after_execution?: boolean;
5698
+
5699
+ /**
5700
+ * Only applies to during conversation functions; ignored by the pre/post
5701
+ * conversation. If true, will speak during execution.
5702
+ */
5703
+ speak_during_execution?: boolean;
5704
+ }
5705
+
5706
+ export namespace AppTool {
5707
+ export interface UnionMember0 {
5708
+ mode: 'all';
5709
+
5710
+ /**
5711
+ * Not used at runtime; stored and returned as-is for the UI.
5712
+ */
5713
+ fields?: Array<string>;
5714
+ }
5715
+
5716
+ export interface UnionMember1 {
5717
+ /**
5718
+ * The only response fields the agent and the transcript see, as dot-paths into the
5719
+ * response schema returned by get-app-tool-schema. Everything else is dropped.
5720
+ * Selecting a parent keeps its whole subtree. A plain segment traverses arrays
5721
+ * element-wise (deals.properties.amount keeps that field on every deal), while
5722
+ * key[n] selects one element (deals[0].id keeps only the first deal's id); paths
5723
+ * that match nothing contribute nothing.
5724
+ */
5725
+ fields: Array<string>;
5726
+
5727
+ mode: 'subset';
5728
+ }
5729
+
5730
+ /**
5731
+ * The parameters the functions accepts, described as a JSON Schema object. See
5732
+ * [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for
5733
+ * documentation about the format. Omitting parameters defines a function with an
5734
+ * empty parameter list.
5735
+ */
5736
+ export interface Parameter {
5737
+ /**
5738
+ * The value of properties is an object, where each key is the name of a property
5739
+ * and each value is a schema used to validate that property.
5740
+ */
5741
+ properties: unknown;
5742
+
5743
+ /**
5744
+ * Type must be "object" for a JSON Schema object.
5745
+ */
5746
+ type: 'object';
5747
+
5748
+ /**
5749
+ * List of names of required property when generating this parameter. LLM will do
5750
+ * its best to generate the required properties in its function arguments. Property
5751
+ * must exist in properties.
5752
+ */
5753
+ required?: Array<string>;
5754
+ }
5755
+ }
5090
5756
  }
5091
5757
  }
5092
5758
 
@@ -5155,6 +5821,7 @@ export interface LlmUpdateParams {
5155
5821
  | LlmUpdateParams.BridgeTransferTool
5156
5822
  | LlmUpdateParams.CancelTransferTool
5157
5823
  | LlmUpdateParams.McpTool
5824
+ | LlmUpdateParams.AppTool
5158
5825
  > | null;
5159
5826
 
5160
5827
  /**
@@ -5197,9 +5864,16 @@ export interface LlmUpdateParams {
5197
5864
  | 'gpt-5.5'
5198
5865
  | 'gpt-5.6-terra'
5199
5866
  | 'gpt-5.6-luna'
5867
+ | 'gpt-6-astra'
5868
+ | 'gpt-6-sol'
5869
+ | 'gpt-6.1-sol'
5870
+ | 'gpt-6-luna'
5200
5871
  | 'claude-4.5-sonnet'
5201
5872
  | 'claude-4.6-sonnet'
5873
+ | 'claude-5-opus'
5874
+ | 'claude-5.5-opus'
5202
5875
  | 'claude-5-sonnet'
5876
+ | 'claude-5.5-sonnet'
5203
5877
  | 'claude-4.5-haiku'
5204
5878
  | 'gemini-3.0-flash'
5205
5879
  | 'gemini-3.1-flash-lite'
@@ -5277,6 +5951,12 @@ export namespace LlmUpdateParams {
5277
5951
 
5278
5952
  type: 'end_call';
5279
5953
 
5954
+ /**
5955
+ * Custom SIP headers sent on the outgoing BYE when ending the call. Header names
5956
+ * must start with X- or x-. Supports dynamic variables.
5957
+ */
5958
+ custom_sip_headers?: { [key: string]: string };
5959
+
5280
5960
  /**
5281
5961
  * Describes what the tool does, sometimes can also include information about when
5282
5962
  * to call the tool.
@@ -5720,6 +6400,14 @@ export namespace LlmUpdateParams {
5720
6400
 
5721
6401
  speak_during_execution?: boolean;
5722
6402
 
6403
+ /**
6404
+ * If true, restart the max call duration timer at the swap using the destination
6405
+ * agent's max_call_duration_ms, capped so the whole call never exceeds 2 hours.
6406
+ * Otherwise, the timer already running is left unchanged. Voice calls only.
6407
+ * Defaults to false.
6408
+ */
6409
+ use_swap_agent_max_duration?: boolean;
6410
+
5723
6411
  /**
5724
6412
  * Webhook setting for the agent swap, defaults to only source.
5725
6413
  */
@@ -6356,6 +7044,154 @@ export namespace LlmUpdateParams {
6356
7044
  speak_during_execution?: boolean;
6357
7045
  }
6358
7046
 
7047
+ export interface AppTool {
7048
+ /**
7049
+ * The connection (App) this tool runs against. Must be a connection in the
7050
+ * organization whose provider matches this tool's provider.
7051
+ */
7052
+ app_id: string;
7053
+
7054
+ /**
7055
+ * Name of the catalog template within the provider, as listed by
7056
+ * list-app-templates.
7057
+ */
7058
+ app_tool_template_name: string;
7059
+
7060
+ /**
7061
+ * Name of the tool. Must be unique within the phase's tools; referenced by
7062
+ * depends_on.
7063
+ */
7064
+ name: string;
7065
+
7066
+ /**
7067
+ * Provider of the connection. Must match the connection's provider; supported
7068
+ * providers are listed by list-app-templates.
7069
+ */
7070
+ provider: string;
7071
+
7072
+ type: 'integration_app';
7073
+
7074
+ /**
7075
+ * Only applies to during conversation functions; ignored by the pre/post
7076
+ * conversation. Overrides the catalog template's LLM-facing description.
7077
+ */
7078
+ description?: string;
7079
+
7080
+ /**
7081
+ * Only applies to during conversation functions; ignored by the pre/post
7082
+ * conversation. If true, play a typing sound on the agent audio track while this
7083
+ * tool is executing. Useful when the tool takes a noticeable amount of time to
7084
+ * prevent silence on the call.
7085
+ */
7086
+ enable_typing_sound?: boolean;
7087
+
7088
+ /**
7089
+ * Only applies to during conversation functions; ignored by the pre/post
7090
+ * conversation. The message for the agent to speak when executing the tool. Only
7091
+ * applicable when speak_during_execution is true.
7092
+ */
7093
+ execution_message_description?: string;
7094
+
7095
+ /**
7096
+ * Only applies to during conversation functions; ignored by the pre/post
7097
+ * conversation. Type of execution message. "prompt" means the agent will use
7098
+ * execution_message_description as a prompt to generate the message. "static_text"
7099
+ * means the agent will speak the execution_message_description directly. Defaults
7100
+ * to "prompt".
7101
+ */
7102
+ execution_message_type?: 'prompt' | 'static_text';
7103
+
7104
+ /**
7105
+ * What the agent and the transcript see of the tool's response. Omit to send the
7106
+ * full response. Does not affect response_variables, which are always extracted
7107
+ * from the raw response.
7108
+ */
7109
+ output_selection?: AppTool.UnionMember0 | AppTool.UnionMember1;
7110
+
7111
+ /**
7112
+ * The resolved input parameters, in order. Properties may pin a value with const
7113
+ * (including {{variable}} references) or provide a description for LLM inference.
7114
+ * Each property may also record selected*input_mode, the editor mode the user
7115
+ * selected ("const_enum", "const_boolean", "const_value", "description_custom", or
7116
+ * "description_preset"); it is stored and returned as-is, used only by the tool
7117
+ * config UI. Omit the key when no mode is recorded; when set, const*_ modes
7118
+ * require a non-empty const, and description\__ modes must omit const entirely.
7119
+ * Each parameter's required list must match the schema returned by the
7120
+ * corresponding step of the get-app-tool-schema loop.
7121
+ */
7122
+ parameters?: Array<AppTool.Parameter>;
7123
+
7124
+ /**
7125
+ * Mapping of a dynamic-variable name to the response field (dot-path) it is
7126
+ * populated from. Missing paths are ignored.
7127
+ */
7128
+ response_variables?: { [key: string]: string };
7129
+
7130
+ /**
7131
+ * Only applies to during conversation functions; ignored by the pre/post
7132
+ * conversation. Determines whether the agent would call LLM another time and speak
7133
+ * when the result of the tool is obtained.
7134
+ */
7135
+ speak_after_execution?: boolean;
7136
+
7137
+ /**
7138
+ * Only applies to during conversation functions; ignored by the pre/post
7139
+ * conversation. If true, will speak during execution.
7140
+ */
7141
+ speak_during_execution?: boolean;
7142
+ }
7143
+
7144
+ export namespace AppTool {
7145
+ export interface UnionMember0 {
7146
+ mode: 'all';
7147
+
7148
+ /**
7149
+ * Not used at runtime; stored and returned as-is for the UI.
7150
+ */
7151
+ fields?: Array<string>;
7152
+ }
7153
+
7154
+ export interface UnionMember1 {
7155
+ /**
7156
+ * The only response fields the agent and the transcript see, as dot-paths into the
7157
+ * response schema returned by get-app-tool-schema. Everything else is dropped.
7158
+ * Selecting a parent keeps its whole subtree. A plain segment traverses arrays
7159
+ * element-wise (deals.properties.amount keeps that field on every deal), while
7160
+ * key[n] selects one element (deals[0].id keeps only the first deal's id); paths
7161
+ * that match nothing contribute nothing.
7162
+ */
7163
+ fields: Array<string>;
7164
+
7165
+ mode: 'subset';
7166
+ }
7167
+
7168
+ /**
7169
+ * The parameters the functions accepts, described as a JSON Schema object. See
7170
+ * [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for
7171
+ * documentation about the format. Omitting parameters defines a function with an
7172
+ * empty parameter list.
7173
+ */
7174
+ export interface Parameter {
7175
+ /**
7176
+ * The value of properties is an object, where each key is the name of a property
7177
+ * and each value is a schema used to validate that property.
7178
+ */
7179
+ properties: unknown;
7180
+
7181
+ /**
7182
+ * Type must be "object" for a JSON Schema object.
7183
+ */
7184
+ type: 'object';
7185
+
7186
+ /**
7187
+ * List of names of required property when generating this parameter. LLM will do
7188
+ * its best to generate the required properties in its function arguments. Property
7189
+ * must exist in properties.
7190
+ */
7191
+ required?: Array<string>;
7192
+ }
7193
+ }
7194
+
6359
7195
  /**
6360
7196
  * Knowledge base configuration for RAG retrieval.
6361
7197
  */
@@ -6436,6 +7272,7 @@ export namespace LlmUpdateParams {
6436
7272
  | State.BridgeTransferTool
6437
7273
  | State.CancelTransferTool
6438
7274
  | State.McpTool
7275
+ | State.AppTool
6439
7276
  >;
6440
7277
  }
6441
7278
 
@@ -6507,6 +7344,12 @@ export namespace LlmUpdateParams {
6507
7344
 
6508
7345
  type: 'end_call';
6509
7346
 
7347
+ /**
7348
+ * Custom SIP headers sent on the outgoing BYE when ending the call. Header names
7349
+ * must start with X- or x-. Supports dynamic variables.
7350
+ */
7351
+ custom_sip_headers?: { [key: string]: string };
7352
+
6510
7353
  /**
6511
7354
  * Describes what the tool does, sometimes can also include information about when
6512
7355
  * to call the tool.
@@ -6950,6 +7793,14 @@ export namespace LlmUpdateParams {
6950
7793
 
6951
7794
  speak_during_execution?: boolean;
6952
7795
 
7796
+ /**
7797
+ * If true, restart the max call duration timer at the swap using the destination
7798
+ * agent's max_call_duration_ms, capped so the whole call never exceeds 2 hours.
7799
+ * Otherwise, the timer already running is left unchanged. Voice calls only.
7800
+ * Defaults to false.
7801
+ */
7802
+ use_swap_agent_max_duration?: boolean;
7803
+
6953
7804
  /**
6954
7805
  * Webhook setting for the agent swap, defaults to only source.
6955
7806
  */
@@ -7585,6 +8436,154 @@ export namespace LlmUpdateParams {
7585
8436
  */
7586
8437
  speak_during_execution?: boolean;
7587
8438
  }
8439
+
8440
+ export interface AppTool {
8441
+ /**
8442
+ * The connection (App) this tool runs against. Must be a connection in the
8443
+ * organization whose provider matches this tool's provider.
8444
+ */
8445
+ app_id: string;
8446
+
8447
+ /**
8448
+ * Name of the catalog template within the provider, as listed by
8449
+ * list-app-templates.
8450
+ */
8451
+ app_tool_template_name: string;
8452
+
8453
+ /**
8454
+ * Name of the tool. Must be unique within the phase's tools; referenced by
8455
+ * depends_on.
8456
+ */
8457
+ name: string;
8458
+
8459
+ /**
8460
+ * Provider of the connection. Must match the connection's provider; supported
8461
+ * providers are listed by list-app-templates.
8462
+ */
8463
+ provider: string;
8464
+
8465
+ type: 'integration_app';
8466
+
8467
+ /**
8468
+ * Only applies to during conversation functions; ignored by the pre/post
8469
+ * conversation. Overrides the catalog template's LLM-facing description.
8470
+ */
8471
+ description?: string;
8472
+
8473
+ /**
8474
+ * Only applies to during conversation functions; ignored by the pre/post
8475
+ * conversation. If true, play a typing sound on the agent audio track while this
8476
+ * tool is executing. Useful when the tool takes a noticeable amount of time to
8477
+ * prevent silence on the call.
8478
+ */
8479
+ enable_typing_sound?: boolean;
8480
+
8481
+ /**
8482
+ * Only applies to during conversation functions; ignored by the pre/post
8483
+ * conversation. The message for the agent to speak when executing the tool. Only
8484
+ * applicable when speak_during_execution is true.
8485
+ */
8486
+ execution_message_description?: string;
8487
+
8488
+ /**
8489
+ * Only applies to during conversation functions; ignored by the pre/post
8490
+ * conversation. Type of execution message. "prompt" means the agent will use
8491
+ * execution_message_description as a prompt to generate the message. "static_text"
8492
+ * means the agent will speak the execution_message_description directly. Defaults
8493
+ * to "prompt".
8494
+ */
8495
+ execution_message_type?: 'prompt' | 'static_text';
8496
+
8497
+ /**
8498
+ * What the agent and the transcript see of the tool's response. Omit to send the
8499
+ * full response. Does not affect response_variables, which are always extracted
8500
+ * from the raw response.
8501
+ */
8502
+ output_selection?: AppTool.UnionMember0 | AppTool.UnionMember1;
8503
+
8504
+ /**
8505
+ * The resolved input parameters, in order. Properties may pin a value with const
8506
+ * (including {{variable}} references) or provide a description for LLM inference.
8507
+ * Each property may also record selected*input_mode, the editor mode the user
8508
+ * selected ("const_enum", "const_boolean", "const_value", "description_custom", or
8509
+ * "description_preset"); it is stored and returned as-is, used only by the tool
8510
+ * config UI. Omit the key when no mode is recorded; when set, const*_ modes
8511
+ * require a non-empty const, and description\__ modes must omit const entirely.
8512
+ * Each parameter's required list must match the schema returned by the
8513
+ * corresponding step of the get-app-tool-schema loop.
8514
+ */
8515
+ parameters?: Array<AppTool.Parameter>;
8516
+
8517
+ /**
8518
+ * Mapping of a dynamic-variable name to the response field (dot-path) it is
8519
+ * populated from. Missing paths are ignored.
8520
+ */
8521
+ response_variables?: { [key: string]: string };
8522
+
8523
+ /**
8524
+ * Only applies to during conversation functions; ignored by the pre/post
8525
+ * conversation. Determines whether the agent would call LLM another time and speak
8526
+ * when the result of the tool is obtained.
8527
+ */
8528
+ speak_after_execution?: boolean;
8529
+
8530
+ /**
8531
+ * Only applies to during conversation functions; ignored by the pre/post
8532
+ * conversation. If true, will speak during execution.
8533
+ */
8534
+ speak_during_execution?: boolean;
8535
+ }
8536
+
8537
+ export namespace AppTool {
8538
+ export interface UnionMember0 {
8539
+ mode: 'all';
8540
+
8541
+ /**
8542
+ * Not used at runtime; stored and returned as-is for the UI.
8543
+ */
8544
+ fields?: Array<string>;
8545
+ }
8546
+
8547
+ export interface UnionMember1 {
8548
+ /**
8549
+ * The only response fields the agent and the transcript see, as dot-paths into the
8550
+ * response schema returned by get-app-tool-schema. Everything else is dropped.
8551
+ * Selecting a parent keeps its whole subtree. A plain segment traverses arrays
8552
+ * element-wise (deals.properties.amount keeps that field on every deal), while
8553
+ * key[n] selects one element (deals[0].id keeps only the first deal's id); paths
8554
+ * that match nothing contribute nothing.
8555
+ */
8556
+ fields: Array<string>;
8557
+
8558
+ mode: 'subset';
8559
+ }
8560
+
8561
+ /**
8562
+ * The parameters the functions accepts, described as a JSON Schema object. See
8563
+ * [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for
8564
+ * documentation about the format. Omitting parameters defines a function with an
8565
+ * empty parameter list.
8566
+ */
8567
+ export interface Parameter {
8568
+ /**
8569
+ * The value of properties is an object, where each key is the name of a property
8570
+ * and each value is a schema used to validate that property.
8571
+ */
8572
+ properties: unknown;
8573
+
8574
+ /**
8575
+ * Type must be "object" for a JSON Schema object.
8576
+ */
8577
+ type: 'object';
8578
+
8579
+ /**
8580
+ * List of names of required property when generating this parameter. LLM will do
8581
+ * its best to generate the required properties in its function arguments. Property
8582
+ * must exist in properties.
8583
+ */
8584
+ required?: Array<string>;
8585
+ }
8586
+ }
7588
8587
  }
7589
8588
  }
7590
8589