telnyx 5.124.0 → 5.126.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/telnyx/models/ai/assistant_create_params.rb +142 -6
- data/lib/telnyx/models/ai/assistant_tool.rb +13 -1
- data/lib/telnyx/models/ai/assistant_update_params.rb +142 -6
- data/lib/telnyx/models/ai/assistants/update_assistant.rb +144 -6
- data/lib/telnyx/models/ai/inference_embedding.rb +132 -6
- data/lib/telnyx/version.rb +1 -1
- data/rbi/telnyx/models/ai/assistant_create_params.rbi +232 -8
- data/rbi/telnyx/models/ai/assistant_tool.rbi +19 -0
- data/rbi/telnyx/models/ai/assistant_update_params.rbi +232 -8
- data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +232 -8
- data/rbi/telnyx/models/ai/inference_embedding.rbi +219 -4
- data/sig/telnyx/models/ai/assistant_create_params.rbs +81 -0
- data/sig/telnyx/models/ai/assistant_tool.rbs +7 -0
- data/sig/telnyx/models/ai/assistant_update_params.rbs +81 -0
- data/sig/telnyx/models/ai/assistants/update_assistant.rbs +81 -0
- data/sig/telnyx/models/ai/inference_embedding.rbs +81 -0
- metadata +2 -2
|
@@ -542,7 +542,8 @@ module Telnyx
|
|
|
542
542
|
T::Array[
|
|
543
543
|
T.any(
|
|
544
544
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Prompt,
|
|
545
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool
|
|
545
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool,
|
|
546
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak
|
|
546
547
|
)
|
|
547
548
|
]
|
|
548
549
|
)
|
|
@@ -586,7 +587,8 @@ module Telnyx
|
|
|
586
587
|
T::Array[
|
|
587
588
|
T.any(
|
|
588
589
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Prompt::OrHash,
|
|
589
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool::OrHash
|
|
590
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool::OrHash,
|
|
591
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::OrHash
|
|
590
592
|
)
|
|
591
593
|
],
|
|
592
594
|
start_node_id: String,
|
|
@@ -614,7 +616,8 @@ module Telnyx
|
|
|
614
616
|
T::Array[
|
|
615
617
|
T.any(
|
|
616
618
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Prompt,
|
|
617
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool
|
|
619
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool,
|
|
620
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak
|
|
618
621
|
)
|
|
619
622
|
],
|
|
620
623
|
start_node_id: String,
|
|
@@ -639,7 +642,8 @@ module Telnyx
|
|
|
639
642
|
T.type_alias do
|
|
640
643
|
T.any(
|
|
641
644
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Prompt,
|
|
642
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool
|
|
645
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool,
|
|
646
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak
|
|
643
647
|
)
|
|
644
648
|
end
|
|
645
649
|
|
|
@@ -1234,6 +1238,192 @@ module Telnyx
|
|
|
1234
1238
|
end
|
|
1235
1239
|
end
|
|
1236
1240
|
|
|
1241
|
+
class Speak < Telnyx::Internal::Type::BaseModel
|
|
1242
|
+
OrHash =
|
|
1243
|
+
T.type_alias do
|
|
1244
|
+
T.any(
|
|
1245
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak,
|
|
1246
|
+
Telnyx::Internal::AnyHash
|
|
1247
|
+
)
|
|
1248
|
+
end
|
|
1249
|
+
|
|
1250
|
+
# Caller-supplied unique identifier for this node within the flow.
|
|
1251
|
+
sig { returns(String) }
|
|
1252
|
+
attr_accessor :id
|
|
1253
|
+
|
|
1254
|
+
# Message delivered to the user verbatim when the flow reaches this node. No LLM
|
|
1255
|
+
# turn — the text is spoken/sent exactly as written. `{{variable}}` placeholders
|
|
1256
|
+
# are interpolated from the conversation's dynamic variables; an unresolved
|
|
1257
|
+
# placeholder renders as an empty string. After delivering, the flow routes via
|
|
1258
|
+
# the node's outgoing `llm` / `expression` edges (commonly a single unconditional
|
|
1259
|
+
# edge).
|
|
1260
|
+
sig { returns(String) }
|
|
1261
|
+
attr_accessor :message
|
|
1262
|
+
|
|
1263
|
+
# Optional human-readable label, displayed in authoring UIs.
|
|
1264
|
+
sig { returns(T.nilable(String)) }
|
|
1265
|
+
attr_reader :name
|
|
1266
|
+
|
|
1267
|
+
sig { params(name: String).void }
|
|
1268
|
+
attr_writer :name
|
|
1269
|
+
|
|
1270
|
+
# Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
|
|
1271
|
+
# by the runtime; round-trips so frontends can persist graph layout across
|
|
1272
|
+
# reloads.
|
|
1273
|
+
sig do
|
|
1274
|
+
returns(
|
|
1275
|
+
T.nilable(
|
|
1276
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position
|
|
1277
|
+
)
|
|
1278
|
+
)
|
|
1279
|
+
end
|
|
1280
|
+
attr_reader :position
|
|
1281
|
+
|
|
1282
|
+
sig do
|
|
1283
|
+
params(
|
|
1284
|
+
position:
|
|
1285
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position::OrHash
|
|
1286
|
+
).void
|
|
1287
|
+
end
|
|
1288
|
+
attr_writer :position
|
|
1289
|
+
|
|
1290
|
+
# Node kind discriminator. Always `speak` for a speak node.
|
|
1291
|
+
sig do
|
|
1292
|
+
returns(
|
|
1293
|
+
T.nilable(
|
|
1294
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1295
|
+
)
|
|
1296
|
+
)
|
|
1297
|
+
end
|
|
1298
|
+
attr_reader :type
|
|
1299
|
+
|
|
1300
|
+
sig do
|
|
1301
|
+
params(
|
|
1302
|
+
type:
|
|
1303
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1304
|
+
).void
|
|
1305
|
+
end
|
|
1306
|
+
attr_writer :type
|
|
1307
|
+
|
|
1308
|
+
# A standalone scripted-message step in a flow, as supplied by clients.
|
|
1309
|
+
#
|
|
1310
|
+
# Unlike a prompt node, a speak node has no instructions or model — it isn't an
|
|
1311
|
+
# LLM turn. Reaching it delivers `message` to the user verbatim (with
|
|
1312
|
+
# `{{variable}}` interpolation), then routes via outgoing `llm` / `expression`
|
|
1313
|
+
# edges.
|
|
1314
|
+
sig do
|
|
1315
|
+
params(
|
|
1316
|
+
id: String,
|
|
1317
|
+
message: String,
|
|
1318
|
+
name: String,
|
|
1319
|
+
position:
|
|
1320
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position::OrHash,
|
|
1321
|
+
type:
|
|
1322
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1323
|
+
).returns(T.attached_class)
|
|
1324
|
+
end
|
|
1325
|
+
def self.new(
|
|
1326
|
+
# Caller-supplied unique identifier for this node within the flow.
|
|
1327
|
+
id:,
|
|
1328
|
+
# Message delivered to the user verbatim when the flow reaches this node. No LLM
|
|
1329
|
+
# turn — the text is spoken/sent exactly as written. `{{variable}}` placeholders
|
|
1330
|
+
# are interpolated from the conversation's dynamic variables; an unresolved
|
|
1331
|
+
# placeholder renders as an empty string. After delivering, the flow routes via
|
|
1332
|
+
# the node's outgoing `llm` / `expression` edges (commonly a single unconditional
|
|
1333
|
+
# edge).
|
|
1334
|
+
message:,
|
|
1335
|
+
# Optional human-readable label, displayed in authoring UIs.
|
|
1336
|
+
name: nil,
|
|
1337
|
+
# Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
|
|
1338
|
+
# by the runtime; round-trips so frontends can persist graph layout across
|
|
1339
|
+
# reloads.
|
|
1340
|
+
position: nil,
|
|
1341
|
+
# Node kind discriminator. Always `speak` for a speak node.
|
|
1342
|
+
type: nil
|
|
1343
|
+
)
|
|
1344
|
+
end
|
|
1345
|
+
|
|
1346
|
+
sig do
|
|
1347
|
+
override.returns(
|
|
1348
|
+
{
|
|
1349
|
+
id: String,
|
|
1350
|
+
message: String,
|
|
1351
|
+
name: String,
|
|
1352
|
+
position:
|
|
1353
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position,
|
|
1354
|
+
type:
|
|
1355
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1356
|
+
}
|
|
1357
|
+
)
|
|
1358
|
+
end
|
|
1359
|
+
def to_hash
|
|
1360
|
+
end
|
|
1361
|
+
|
|
1362
|
+
class Position < Telnyx::Internal::Type::BaseModel
|
|
1363
|
+
OrHash =
|
|
1364
|
+
T.type_alias do
|
|
1365
|
+
T.any(
|
|
1366
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position,
|
|
1367
|
+
Telnyx::Internal::AnyHash
|
|
1368
|
+
)
|
|
1369
|
+
end
|
|
1370
|
+
|
|
1371
|
+
# Horizontal coordinate in the authoring canvas.
|
|
1372
|
+
sig { returns(Float) }
|
|
1373
|
+
attr_accessor :x
|
|
1374
|
+
|
|
1375
|
+
# Vertical coordinate in the authoring canvas.
|
|
1376
|
+
sig { returns(Float) }
|
|
1377
|
+
attr_accessor :y_
|
|
1378
|
+
|
|
1379
|
+
# Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
|
|
1380
|
+
# by the runtime; round-trips so frontends can persist graph layout across
|
|
1381
|
+
# reloads.
|
|
1382
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
1383
|
+
def self.new(
|
|
1384
|
+
# Horizontal coordinate in the authoring canvas.
|
|
1385
|
+
x:,
|
|
1386
|
+
# Vertical coordinate in the authoring canvas.
|
|
1387
|
+
y_:
|
|
1388
|
+
)
|
|
1389
|
+
end
|
|
1390
|
+
|
|
1391
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
1392
|
+
def to_hash
|
|
1393
|
+
end
|
|
1394
|
+
end
|
|
1395
|
+
|
|
1396
|
+
# Node kind discriminator. Always `speak` for a speak node.
|
|
1397
|
+
module Type
|
|
1398
|
+
extend Telnyx::Internal::Type::Enum
|
|
1399
|
+
|
|
1400
|
+
TaggedSymbol =
|
|
1401
|
+
T.type_alias do
|
|
1402
|
+
T.all(
|
|
1403
|
+
Symbol,
|
|
1404
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type
|
|
1405
|
+
)
|
|
1406
|
+
end
|
|
1407
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1408
|
+
|
|
1409
|
+
SPEAK =
|
|
1410
|
+
T.let(
|
|
1411
|
+
:speak,
|
|
1412
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type::TaggedSymbol
|
|
1413
|
+
)
|
|
1414
|
+
|
|
1415
|
+
sig do
|
|
1416
|
+
override.returns(
|
|
1417
|
+
T::Array[
|
|
1418
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type::TaggedSymbol
|
|
1419
|
+
]
|
|
1420
|
+
)
|
|
1421
|
+
end
|
|
1422
|
+
def self.values
|
|
1423
|
+
end
|
|
1424
|
+
end
|
|
1425
|
+
end
|
|
1426
|
+
|
|
1237
1427
|
sig do
|
|
1238
1428
|
override.returns(
|
|
1239
1429
|
T::Array[
|
|
@@ -1264,7 +1454,8 @@ module Telnyx
|
|
|
1264
1454
|
returns(
|
|
1265
1455
|
T.any(
|
|
1266
1456
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm,
|
|
1267
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression
|
|
1457
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression,
|
|
1458
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default
|
|
1268
1459
|
)
|
|
1269
1460
|
)
|
|
1270
1461
|
end
|
|
@@ -1298,7 +1489,8 @@ module Telnyx
|
|
|
1298
1489
|
condition:
|
|
1299
1490
|
T.any(
|
|
1300
1491
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm::OrHash,
|
|
1301
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression::OrHash
|
|
1492
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression::OrHash,
|
|
1493
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default::OrHash
|
|
1302
1494
|
),
|
|
1303
1495
|
start_node_id: String,
|
|
1304
1496
|
target:
|
|
@@ -1329,7 +1521,8 @@ module Telnyx
|
|
|
1329
1521
|
condition:
|
|
1330
1522
|
T.any(
|
|
1331
1523
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm,
|
|
1332
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression
|
|
1524
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression,
|
|
1525
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default
|
|
1333
1526
|
),
|
|
1334
1527
|
start_node_id: String,
|
|
1335
1528
|
target:
|
|
@@ -1352,7 +1545,8 @@ module Telnyx
|
|
|
1352
1545
|
T.type_alias do
|
|
1353
1546
|
T.any(
|
|
1354
1547
|
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm,
|
|
1355
|
-
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression
|
|
1548
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression,
|
|
1549
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default
|
|
1356
1550
|
)
|
|
1357
1551
|
end
|
|
1358
1552
|
|
|
@@ -1647,6 +1841,36 @@ module Telnyx
|
|
|
1647
1841
|
end
|
|
1648
1842
|
end
|
|
1649
1843
|
|
|
1844
|
+
class Default < Telnyx::Internal::Type::BaseModel
|
|
1845
|
+
OrHash =
|
|
1846
|
+
T.type_alias do
|
|
1847
|
+
T.any(
|
|
1848
|
+
Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default,
|
|
1849
|
+
Telnyx::Internal::AnyHash
|
|
1850
|
+
)
|
|
1851
|
+
end
|
|
1852
|
+
|
|
1853
|
+
sig { returns(Symbol) }
|
|
1854
|
+
attr_accessor :type
|
|
1855
|
+
|
|
1856
|
+
# Fallback edge condition: fires only when no other edge's condition is true.
|
|
1857
|
+
#
|
|
1858
|
+
# Evaluated after every conditioned (`llm` / `expression`) edge regardless of
|
|
1859
|
+
# declaration order, so it routes the flow whenever none of the node's other
|
|
1860
|
+
# outgoing edges match. Valid **only** on edges leaving a `tool` or `speak` node,
|
|
1861
|
+
# where the deterministic step auto-advances and must always have somewhere to go.
|
|
1862
|
+
# A tool/speak node with any outgoing edge is required to carry exactly one
|
|
1863
|
+
# `default` edge so it never dead-ends; a tool/speak node with no outgoing edges
|
|
1864
|
+
# is a valid terminal step. Carries no parameters.
|
|
1865
|
+
sig { params(type: Symbol).returns(T.attached_class) }
|
|
1866
|
+
def self.new(type: :default)
|
|
1867
|
+
end
|
|
1868
|
+
|
|
1869
|
+
sig { override.returns({ type: Symbol }) }
|
|
1870
|
+
def to_hash
|
|
1871
|
+
end
|
|
1872
|
+
end
|
|
1873
|
+
|
|
1650
1874
|
sig do
|
|
1651
1875
|
override.returns(
|
|
1652
1876
|
T::Array[
|
|
@@ -305,6 +305,17 @@ module Telnyx
|
|
|
305
305
|
end
|
|
306
306
|
attr_writer :custom_headers
|
|
307
307
|
|
|
308
|
+
# A description of the transfer tool. By default, Telnyx generates this
|
|
309
|
+
# automatically based on the configured targets. Typically only set when importing
|
|
310
|
+
# an assistant from another provider that allowed a custom description; in that
|
|
311
|
+
# case the provided value is preserved. Most users should leave this empty and let
|
|
312
|
+
# Telnyx manage it.
|
|
313
|
+
sig { returns(T.nilable(String)) }
|
|
314
|
+
attr_reader :description
|
|
315
|
+
|
|
316
|
+
sig { params(description: String).void }
|
|
317
|
+
attr_writer :description
|
|
318
|
+
|
|
308
319
|
# Configuration for voicemail detection (AMD - Answering Machine Detection) on the
|
|
309
320
|
# transferred call. Allows the assistant to detect when a voicemail system answers
|
|
310
321
|
# the transferred call and take appropriate action.
|
|
@@ -349,6 +360,7 @@ module Telnyx
|
|
|
349
360
|
T::Array[
|
|
350
361
|
Telnyx::AI::AssistantTool::Transfer::Transfer::CustomHeader::OrHash
|
|
351
362
|
],
|
|
363
|
+
description: String,
|
|
352
364
|
voicemail_detection:
|
|
353
365
|
Telnyx::AI::AssistantTool::Transfer::Transfer::VoicemailDetection::OrHash,
|
|
354
366
|
warm_message_delay_ms: T.nilable(Integer),
|
|
@@ -365,6 +377,12 @@ module Telnyx
|
|
|
365
377
|
targets:,
|
|
366
378
|
# Custom headers to be added to the SIP INVITE for the transfer command.
|
|
367
379
|
custom_headers: nil,
|
|
380
|
+
# A description of the transfer tool. By default, Telnyx generates this
|
|
381
|
+
# automatically based on the configured targets. Typically only set when importing
|
|
382
|
+
# an assistant from another provider that allowed a custom description; in that
|
|
383
|
+
# case the provided value is preserved. Most users should leave this empty and let
|
|
384
|
+
# Telnyx manage it.
|
|
385
|
+
description: nil,
|
|
368
386
|
# Configuration for voicemail detection (AMD - Answering Machine Detection) on the
|
|
369
387
|
# transferred call. Allows the assistant to detect when a voicemail system answers
|
|
370
388
|
# the transferred call and take appropriate action.
|
|
@@ -390,6 +408,7 @@ module Telnyx
|
|
|
390
408
|
T::Array[
|
|
391
409
|
Telnyx::AI::AssistantTool::Transfer::Transfer::CustomHeader
|
|
392
410
|
],
|
|
411
|
+
description: String,
|
|
393
412
|
voicemail_detection:
|
|
394
413
|
Telnyx::AI::AssistantTool::Transfer::Transfer::VoicemailDetection,
|
|
395
414
|
warm_message_delay_ms: T.nilable(Integer),
|
|
@@ -578,7 +578,8 @@ module Telnyx
|
|
|
578
578
|
T::Array[
|
|
579
579
|
T.any(
|
|
580
580
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt,
|
|
581
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool
|
|
581
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool,
|
|
582
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak
|
|
582
583
|
)
|
|
583
584
|
]
|
|
584
585
|
)
|
|
@@ -622,7 +623,8 @@ module Telnyx
|
|
|
622
623
|
T::Array[
|
|
623
624
|
T.any(
|
|
624
625
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt::OrHash,
|
|
625
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool::OrHash
|
|
626
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool::OrHash,
|
|
627
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::OrHash
|
|
626
628
|
)
|
|
627
629
|
],
|
|
628
630
|
start_node_id: String,
|
|
@@ -650,7 +652,8 @@ module Telnyx
|
|
|
650
652
|
T::Array[
|
|
651
653
|
T.any(
|
|
652
654
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt,
|
|
653
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool
|
|
655
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool,
|
|
656
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak
|
|
654
657
|
)
|
|
655
658
|
],
|
|
656
659
|
start_node_id: String,
|
|
@@ -675,7 +678,8 @@ module Telnyx
|
|
|
675
678
|
T.type_alias do
|
|
676
679
|
T.any(
|
|
677
680
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt,
|
|
678
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool
|
|
681
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool,
|
|
682
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak
|
|
679
683
|
)
|
|
680
684
|
end
|
|
681
685
|
|
|
@@ -1270,6 +1274,192 @@ module Telnyx
|
|
|
1270
1274
|
end
|
|
1271
1275
|
end
|
|
1272
1276
|
|
|
1277
|
+
class Speak < Telnyx::Internal::Type::BaseModel
|
|
1278
|
+
OrHash =
|
|
1279
|
+
T.type_alias do
|
|
1280
|
+
T.any(
|
|
1281
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak,
|
|
1282
|
+
Telnyx::Internal::AnyHash
|
|
1283
|
+
)
|
|
1284
|
+
end
|
|
1285
|
+
|
|
1286
|
+
# Caller-supplied unique identifier for this node within the flow.
|
|
1287
|
+
sig { returns(String) }
|
|
1288
|
+
attr_accessor :id
|
|
1289
|
+
|
|
1290
|
+
# Message delivered to the user verbatim when the flow reaches this node. No LLM
|
|
1291
|
+
# turn — the text is spoken/sent exactly as written. `{{variable}}` placeholders
|
|
1292
|
+
# are interpolated from the conversation's dynamic variables; an unresolved
|
|
1293
|
+
# placeholder renders as an empty string. After delivering, the flow routes via
|
|
1294
|
+
# the node's outgoing `llm` / `expression` edges (commonly a single unconditional
|
|
1295
|
+
# edge).
|
|
1296
|
+
sig { returns(String) }
|
|
1297
|
+
attr_accessor :message
|
|
1298
|
+
|
|
1299
|
+
# Optional human-readable label, displayed in authoring UIs.
|
|
1300
|
+
sig { returns(T.nilable(String)) }
|
|
1301
|
+
attr_reader :name
|
|
1302
|
+
|
|
1303
|
+
sig { params(name: String).void }
|
|
1304
|
+
attr_writer :name
|
|
1305
|
+
|
|
1306
|
+
# Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
|
|
1307
|
+
# by the runtime; round-trips so frontends can persist graph layout across
|
|
1308
|
+
# reloads.
|
|
1309
|
+
sig do
|
|
1310
|
+
returns(
|
|
1311
|
+
T.nilable(
|
|
1312
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position
|
|
1313
|
+
)
|
|
1314
|
+
)
|
|
1315
|
+
end
|
|
1316
|
+
attr_reader :position
|
|
1317
|
+
|
|
1318
|
+
sig do
|
|
1319
|
+
params(
|
|
1320
|
+
position:
|
|
1321
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position::OrHash
|
|
1322
|
+
).void
|
|
1323
|
+
end
|
|
1324
|
+
attr_writer :position
|
|
1325
|
+
|
|
1326
|
+
# Node kind discriminator. Always `speak` for a speak node.
|
|
1327
|
+
sig do
|
|
1328
|
+
returns(
|
|
1329
|
+
T.nilable(
|
|
1330
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1331
|
+
)
|
|
1332
|
+
)
|
|
1333
|
+
end
|
|
1334
|
+
attr_reader :type
|
|
1335
|
+
|
|
1336
|
+
sig do
|
|
1337
|
+
params(
|
|
1338
|
+
type:
|
|
1339
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1340
|
+
).void
|
|
1341
|
+
end
|
|
1342
|
+
attr_writer :type
|
|
1343
|
+
|
|
1344
|
+
# A standalone scripted-message step in a flow, as supplied by clients.
|
|
1345
|
+
#
|
|
1346
|
+
# Unlike a prompt node, a speak node has no instructions or model — it isn't an
|
|
1347
|
+
# LLM turn. Reaching it delivers `message` to the user verbatim (with
|
|
1348
|
+
# `{{variable}}` interpolation), then routes via outgoing `llm` / `expression`
|
|
1349
|
+
# edges.
|
|
1350
|
+
sig do
|
|
1351
|
+
params(
|
|
1352
|
+
id: String,
|
|
1353
|
+
message: String,
|
|
1354
|
+
name: String,
|
|
1355
|
+
position:
|
|
1356
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position::OrHash,
|
|
1357
|
+
type:
|
|
1358
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1359
|
+
).returns(T.attached_class)
|
|
1360
|
+
end
|
|
1361
|
+
def self.new(
|
|
1362
|
+
# Caller-supplied unique identifier for this node within the flow.
|
|
1363
|
+
id:,
|
|
1364
|
+
# Message delivered to the user verbatim when the flow reaches this node. No LLM
|
|
1365
|
+
# turn — the text is spoken/sent exactly as written. `{{variable}}` placeholders
|
|
1366
|
+
# are interpolated from the conversation's dynamic variables; an unresolved
|
|
1367
|
+
# placeholder renders as an empty string. After delivering, the flow routes via
|
|
1368
|
+
# the node's outgoing `llm` / `expression` edges (commonly a single unconditional
|
|
1369
|
+
# edge).
|
|
1370
|
+
message:,
|
|
1371
|
+
# Optional human-readable label, displayed in authoring UIs.
|
|
1372
|
+
name: nil,
|
|
1373
|
+
# Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
|
|
1374
|
+
# by the runtime; round-trips so frontends can persist graph layout across
|
|
1375
|
+
# reloads.
|
|
1376
|
+
position: nil,
|
|
1377
|
+
# Node kind discriminator. Always `speak` for a speak node.
|
|
1378
|
+
type: nil
|
|
1379
|
+
)
|
|
1380
|
+
end
|
|
1381
|
+
|
|
1382
|
+
sig do
|
|
1383
|
+
override.returns(
|
|
1384
|
+
{
|
|
1385
|
+
id: String,
|
|
1386
|
+
message: String,
|
|
1387
|
+
name: String,
|
|
1388
|
+
position:
|
|
1389
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position,
|
|
1390
|
+
type:
|
|
1391
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type::OrSymbol
|
|
1392
|
+
}
|
|
1393
|
+
)
|
|
1394
|
+
end
|
|
1395
|
+
def to_hash
|
|
1396
|
+
end
|
|
1397
|
+
|
|
1398
|
+
class Position < Telnyx::Internal::Type::BaseModel
|
|
1399
|
+
OrHash =
|
|
1400
|
+
T.type_alias do
|
|
1401
|
+
T.any(
|
|
1402
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position,
|
|
1403
|
+
Telnyx::Internal::AnyHash
|
|
1404
|
+
)
|
|
1405
|
+
end
|
|
1406
|
+
|
|
1407
|
+
# Horizontal coordinate in the authoring canvas.
|
|
1408
|
+
sig { returns(Float) }
|
|
1409
|
+
attr_accessor :x
|
|
1410
|
+
|
|
1411
|
+
# Vertical coordinate in the authoring canvas.
|
|
1412
|
+
sig { returns(Float) }
|
|
1413
|
+
attr_accessor :y_
|
|
1414
|
+
|
|
1415
|
+
# Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
|
|
1416
|
+
# by the runtime; round-trips so frontends can persist graph layout across
|
|
1417
|
+
# reloads.
|
|
1418
|
+
sig { params(x: Float, y_: Float).returns(T.attached_class) }
|
|
1419
|
+
def self.new(
|
|
1420
|
+
# Horizontal coordinate in the authoring canvas.
|
|
1421
|
+
x:,
|
|
1422
|
+
# Vertical coordinate in the authoring canvas.
|
|
1423
|
+
y_:
|
|
1424
|
+
)
|
|
1425
|
+
end
|
|
1426
|
+
|
|
1427
|
+
sig { override.returns({ x: Float, y_: Float }) }
|
|
1428
|
+
def to_hash
|
|
1429
|
+
end
|
|
1430
|
+
end
|
|
1431
|
+
|
|
1432
|
+
# Node kind discriminator. Always `speak` for a speak node.
|
|
1433
|
+
module Type
|
|
1434
|
+
extend Telnyx::Internal::Type::Enum
|
|
1435
|
+
|
|
1436
|
+
TaggedSymbol =
|
|
1437
|
+
T.type_alias do
|
|
1438
|
+
T.all(
|
|
1439
|
+
Symbol,
|
|
1440
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type
|
|
1441
|
+
)
|
|
1442
|
+
end
|
|
1443
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1444
|
+
|
|
1445
|
+
SPEAK =
|
|
1446
|
+
T.let(
|
|
1447
|
+
:speak,
|
|
1448
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type::TaggedSymbol
|
|
1449
|
+
)
|
|
1450
|
+
|
|
1451
|
+
sig do
|
|
1452
|
+
override.returns(
|
|
1453
|
+
T::Array[
|
|
1454
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type::TaggedSymbol
|
|
1455
|
+
]
|
|
1456
|
+
)
|
|
1457
|
+
end
|
|
1458
|
+
def self.values
|
|
1459
|
+
end
|
|
1460
|
+
end
|
|
1461
|
+
end
|
|
1462
|
+
|
|
1273
1463
|
sig do
|
|
1274
1464
|
override.returns(
|
|
1275
1465
|
T::Array[
|
|
@@ -1300,7 +1490,8 @@ module Telnyx
|
|
|
1300
1490
|
returns(
|
|
1301
1491
|
T.any(
|
|
1302
1492
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm,
|
|
1303
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression
|
|
1493
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression,
|
|
1494
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default
|
|
1304
1495
|
)
|
|
1305
1496
|
)
|
|
1306
1497
|
end
|
|
@@ -1334,7 +1525,8 @@ module Telnyx
|
|
|
1334
1525
|
condition:
|
|
1335
1526
|
T.any(
|
|
1336
1527
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm::OrHash,
|
|
1337
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression::OrHash
|
|
1528
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression::OrHash,
|
|
1529
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default::OrHash
|
|
1338
1530
|
),
|
|
1339
1531
|
start_node_id: String,
|
|
1340
1532
|
target:
|
|
@@ -1365,7 +1557,8 @@ module Telnyx
|
|
|
1365
1557
|
condition:
|
|
1366
1558
|
T.any(
|
|
1367
1559
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm,
|
|
1368
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression
|
|
1560
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression,
|
|
1561
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default
|
|
1369
1562
|
),
|
|
1370
1563
|
start_node_id: String,
|
|
1371
1564
|
target:
|
|
@@ -1388,7 +1581,8 @@ module Telnyx
|
|
|
1388
1581
|
T.type_alias do
|
|
1389
1582
|
T.any(
|
|
1390
1583
|
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm,
|
|
1391
|
-
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression
|
|
1584
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression,
|
|
1585
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default
|
|
1392
1586
|
)
|
|
1393
1587
|
end
|
|
1394
1588
|
|
|
@@ -1683,6 +1877,36 @@ module Telnyx
|
|
|
1683
1877
|
end
|
|
1684
1878
|
end
|
|
1685
1879
|
|
|
1880
|
+
class Default < Telnyx::Internal::Type::BaseModel
|
|
1881
|
+
OrHash =
|
|
1882
|
+
T.type_alias do
|
|
1883
|
+
T.any(
|
|
1884
|
+
Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default,
|
|
1885
|
+
Telnyx::Internal::AnyHash
|
|
1886
|
+
)
|
|
1887
|
+
end
|
|
1888
|
+
|
|
1889
|
+
sig { returns(Symbol) }
|
|
1890
|
+
attr_accessor :type
|
|
1891
|
+
|
|
1892
|
+
# Fallback edge condition: fires only when no other edge's condition is true.
|
|
1893
|
+
#
|
|
1894
|
+
# Evaluated after every conditioned (`llm` / `expression`) edge regardless of
|
|
1895
|
+
# declaration order, so it routes the flow whenever none of the node's other
|
|
1896
|
+
# outgoing edges match. Valid **only** on edges leaving a `tool` or `speak` node,
|
|
1897
|
+
# where the deterministic step auto-advances and must always have somewhere to go.
|
|
1898
|
+
# A tool/speak node with any outgoing edge is required to carry exactly one
|
|
1899
|
+
# `default` edge so it never dead-ends; a tool/speak node with no outgoing edges
|
|
1900
|
+
# is a valid terminal step. Carries no parameters.
|
|
1901
|
+
sig { params(type: Symbol).returns(T.attached_class) }
|
|
1902
|
+
def self.new(type: :default)
|
|
1903
|
+
end
|
|
1904
|
+
|
|
1905
|
+
sig { override.returns({ type: Symbol }) }
|
|
1906
|
+
def to_hash
|
|
1907
|
+
end
|
|
1908
|
+
end
|
|
1909
|
+
|
|
1686
1910
|
sig do
|
|
1687
1911
|
override.returns(
|
|
1688
1912
|
T::Array[
|