telnyx 5.63.0 → 5.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/models/ai/assistant_create_params.rb +8 -1
  5. data/lib/telnyx/models/ai/assistant_update_params.rb +8 -1
  6. data/lib/telnyx/models/ai/assistants/tool_add_params.rb +30 -0
  7. data/lib/telnyx/models/ai/assistants/tool_add_response.rb +12 -0
  8. data/lib/telnyx/models/ai/assistants/tool_remove_params.rb +30 -0
  9. data/lib/telnyx/models/ai/assistants/tool_remove_response.rb +12 -0
  10. data/lib/telnyx/models/ai/assistants/update_assistant.rb +8 -1
  11. data/lib/telnyx/models/ai/inference_embedding_webhook_tool_params.rb +36 -1
  12. data/lib/telnyx/models/ai/tool_create_params.rb +64 -0
  13. data/lib/telnyx/models/ai/tool_create_response.rb +48 -0
  14. data/lib/telnyx/models/ai/tool_delete_params.rb +22 -0
  15. data/lib/telnyx/models/ai/tool_delete_response.rb +10 -0
  16. data/lib/telnyx/models/ai/tool_list_params.rb +40 -0
  17. data/lib/telnyx/models/ai/tool_list_response.rb +48 -0
  18. data/lib/telnyx/models/ai/tool_retrieve_params.rb +22 -0
  19. data/lib/telnyx/models/ai/tool_retrieve_response.rb +48 -0
  20. data/lib/telnyx/models/ai/tool_update_params.rb +70 -0
  21. data/lib/telnyx/models/ai/tool_update_response.rb +48 -0
  22. data/lib/telnyx/resources/ai/assistants/tools.rb +50 -0
  23. data/lib/telnyx/resources/ai/assistants/versions.rb +3 -1
  24. data/lib/telnyx/resources/ai/assistants.rb +6 -2
  25. data/lib/telnyx/resources/ai/tools.rb +143 -0
  26. data/lib/telnyx/resources/ai.rb +5 -0
  27. data/lib/telnyx/version.rb +1 -1
  28. data/lib/telnyx.rb +15 -0
  29. data/rbi/telnyx/models/ai/assistant_create_params.rbi +9 -0
  30. data/rbi/telnyx/models/ai/assistant_update_params.rbi +9 -0
  31. data/rbi/telnyx/models/ai/assistants/tool_add_params.rbi +50 -0
  32. data/rbi/telnyx/models/ai/assistants/tool_add_response.rbi +11 -0
  33. data/rbi/telnyx/models/ai/assistants/tool_remove_params.rbi +50 -0
  34. data/rbi/telnyx/models/ai/assistants/tool_remove_response.rbi +12 -0
  35. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +9 -0
  36. data/rbi/telnyx/models/ai/inference_embedding_webhook_tool_params.rbi +71 -0
  37. data/rbi/telnyx/models/ai/tool_create_params.rbi +103 -0
  38. data/rbi/telnyx/models/ai/tool_create_response.rbi +79 -0
  39. data/rbi/telnyx/models/ai/tool_delete_params.rbi +37 -0
  40. data/rbi/telnyx/models/ai/tool_delete_response.rbi +9 -0
  41. data/rbi/telnyx/models/ai/tool_list_params.rbi +73 -0
  42. data/rbi/telnyx/models/ai/tool_list_response.rbi +79 -0
  43. data/rbi/telnyx/models/ai/tool_retrieve_params.rbi +37 -0
  44. data/rbi/telnyx/models/ai/tool_retrieve_response.rbi +79 -0
  45. data/rbi/telnyx/models/ai/tool_update_params.rbi +115 -0
  46. data/rbi/telnyx/models/ai/tool_update_response.rbi +79 -0
  47. data/rbi/telnyx/resources/ai/assistants/tools.rbi +22 -0
  48. data/rbi/telnyx/resources/ai/assistants/versions.rbi +3 -0
  49. data/rbi/telnyx/resources/ai/assistants.rbi +4 -0
  50. data/rbi/telnyx/resources/ai/tools.rbi +114 -0
  51. data/rbi/telnyx/resources/ai.rbi +4 -0
  52. data/sig/telnyx/models/ai/assistant_create_params.rbs +7 -0
  53. data/sig/telnyx/models/ai/assistant_update_params.rbs +7 -0
  54. data/sig/telnyx/models/ai/assistants/tool_add_params.rbs +32 -0
  55. data/sig/telnyx/models/ai/assistants/tool_add_response.rbs +9 -0
  56. data/sig/telnyx/models/ai/assistants/tool_remove_params.rbs +32 -0
  57. data/sig/telnyx/models/ai/assistants/tool_remove_response.rbs +9 -0
  58. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +7 -0
  59. data/sig/telnyx/models/ai/inference_embedding_webhook_tool_params.rbs +21 -0
  60. data/sig/telnyx/models/ai/tool_create_params.rbs +75 -0
  61. data/sig/telnyx/models/ai/tool_create_response.rbs +53 -0
  62. data/sig/telnyx/models/ai/tool_delete_params.rbs +25 -0
  63. data/sig/telnyx/models/ai/tool_delete_response.rbs +7 -0
  64. data/sig/telnyx/models/ai/tool_list_params.rbs +51 -0
  65. data/sig/telnyx/models/ai/tool_list_response.rbs +53 -0
  66. data/sig/telnyx/models/ai/tool_retrieve_params.rbs +25 -0
  67. data/sig/telnyx/models/ai/tool_retrieve_response.rbs +53 -0
  68. data/sig/telnyx/models/ai/tool_update_params.rbs +84 -0
  69. data/sig/telnyx/models/ai/tool_update_response.rbs +53 -0
  70. data/sig/telnyx/resources/ai/assistants/tools.rbs +12 -0
  71. data/sig/telnyx/resources/ai/assistants/versions.rbs +1 -0
  72. data/sig/telnyx/resources/ai/assistants.rbs +2 -0
  73. data/sig/telnyx/resources/ai/tools.rbs +52 -0
  74. data/sig/telnyx/resources/ai.rbs +2 -0
  75. metadata +46 -1
@@ -221,6 +221,30 @@ module Telnyx
221
221
  end
222
222
  attr_writer :query_parameters
223
223
 
224
+ # A list of mappings that extract values from the webhook response and store them
225
+ # as dynamic variables. Each mapping specifies a dynamic variable name and a
226
+ # dot-notation path to the value in the response body.
227
+ sig do
228
+ returns(
229
+ T.nilable(
230
+ T::Array[
231
+ Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::StoreFieldsAsVariable
232
+ ]
233
+ )
234
+ )
235
+ end
236
+ attr_reader :store_fields_as_variables
237
+
238
+ sig do
239
+ params(
240
+ store_fields_as_variables:
241
+ T::Array[
242
+ Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::StoreFieldsAsVariable::OrHash
243
+ ]
244
+ ).void
245
+ end
246
+ attr_writer :store_fields_as_variables
247
+
224
248
  # The maximum number of milliseconds to wait for the webhook to respond. Only
225
249
  # applicable when async is false.
226
250
  sig { returns(T.nilable(Integer)) }
@@ -247,6 +271,10 @@ module Telnyx
247
271
  Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::PathParameters::OrHash,
248
272
  query_parameters:
249
273
  Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::QueryParameters::OrHash,
274
+ store_fields_as_variables:
275
+ T::Array[
276
+ Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::StoreFieldsAsVariable::OrHash
277
+ ],
250
278
  timeout_ms: Integer
251
279
  ).returns(T.attached_class)
252
280
  end
@@ -284,6 +312,10 @@ module Telnyx
284
312
  # [JSON Schema reference](https://json-schema.org/understanding-json-schema) for
285
313
  # documentation about the format
286
314
  query_parameters: nil,
315
+ # A list of mappings that extract values from the webhook response and store them
316
+ # as dynamic variables. Each mapping specifies a dynamic variable name and a
317
+ # dot-notation path to the value in the response body.
318
+ store_fields_as_variables: nil,
287
319
  # The maximum number of milliseconds to wait for the webhook to respond. Only
288
320
  # applicable when async is false.
289
321
  timeout_ms: nil
@@ -309,6 +341,10 @@ module Telnyx
309
341
  Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::PathParameters,
310
342
  query_parameters:
311
343
  Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::QueryParameters,
344
+ store_fields_as_variables:
345
+ T::Array[
346
+ Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::StoreFieldsAsVariable
347
+ ],
312
348
  timeout_ms: Integer
313
349
  }
314
350
  )
@@ -726,6 +762,41 @@ module Telnyx
726
762
  end
727
763
  end
728
764
  end
765
+
766
+ class StoreFieldsAsVariable < Telnyx::Internal::Type::BaseModel
767
+ OrHash =
768
+ T.type_alias do
769
+ T.any(
770
+ Telnyx::AI::InferenceEmbeddingWebhookToolParams::Webhook::StoreFieldsAsVariable,
771
+ Telnyx::Internal::AnyHash
772
+ )
773
+ end
774
+
775
+ # The name of the dynamic variable to store the extracted value in.
776
+ sig { returns(String) }
777
+ attr_accessor :name
778
+
779
+ # A dot-notation path to the value in the webhook response body (e.g.
780
+ # 'customer.name' or 'id').
781
+ sig { returns(String) }
782
+ attr_accessor :value_path
783
+
784
+ sig do
785
+ params(name: String, value_path: String).returns(T.attached_class)
786
+ end
787
+ def self.new(
788
+ # The name of the dynamic variable to store the extracted value in.
789
+ name:,
790
+ # A dot-notation path to the value in the webhook response body (e.g.
791
+ # 'customer.name' or 'id').
792
+ value_path:
793
+ )
794
+ end
795
+
796
+ sig { override.returns({ name: String, value_path: String }) }
797
+ def to_hash
798
+ end
799
+ end
729
800
  end
730
801
  end
731
802
  end
@@ -0,0 +1,103 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ class ToolCreateParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(Telnyx::AI::ToolCreateParams, Telnyx::Internal::AnyHash)
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :display_name
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :type
20
+
21
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
22
+ attr_reader :function
23
+
24
+ sig { params(function: T::Hash[Symbol, T.anything]).void }
25
+ attr_writer :function
26
+
27
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
28
+ attr_reader :handoff
29
+
30
+ sig { params(handoff: T::Hash[Symbol, T.anything]).void }
31
+ attr_writer :handoff
32
+
33
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
34
+ attr_reader :invite
35
+
36
+ sig { params(invite: T::Hash[Symbol, T.anything]).void }
37
+ attr_writer :invite
38
+
39
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
40
+ attr_reader :retrieval
41
+
42
+ sig { params(retrieval: T::Hash[Symbol, T.anything]).void }
43
+ attr_writer :retrieval
44
+
45
+ sig { returns(T.nilable(Integer)) }
46
+ attr_reader :timeout_ms
47
+
48
+ sig { params(timeout_ms: Integer).void }
49
+ attr_writer :timeout_ms
50
+
51
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
52
+ attr_reader :webhook
53
+
54
+ sig { params(webhook: T::Hash[Symbol, T.anything]).void }
55
+ attr_writer :webhook
56
+
57
+ sig do
58
+ params(
59
+ display_name: String,
60
+ type: String,
61
+ function: T::Hash[Symbol, T.anything],
62
+ handoff: T::Hash[Symbol, T.anything],
63
+ invite: T::Hash[Symbol, T.anything],
64
+ retrieval: T::Hash[Symbol, T.anything],
65
+ timeout_ms: Integer,
66
+ webhook: T::Hash[Symbol, T.anything],
67
+ request_options: Telnyx::RequestOptions::OrHash
68
+ ).returns(T.attached_class)
69
+ end
70
+ def self.new(
71
+ display_name:,
72
+ type:,
73
+ function: nil,
74
+ handoff: nil,
75
+ invite: nil,
76
+ retrieval: nil,
77
+ timeout_ms: nil,
78
+ webhook: nil,
79
+ request_options: {}
80
+ )
81
+ end
82
+
83
+ sig do
84
+ override.returns(
85
+ {
86
+ display_name: String,
87
+ type: String,
88
+ function: T::Hash[Symbol, T.anything],
89
+ handoff: T::Hash[Symbol, T.anything],
90
+ invite: T::Hash[Symbol, T.anything],
91
+ retrieval: T::Hash[Symbol, T.anything],
92
+ timeout_ms: Integer,
93
+ webhook: T::Hash[Symbol, T.anything],
94
+ request_options: Telnyx::RequestOptions
95
+ }
96
+ )
97
+ end
98
+ def to_hash
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,79 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ class ToolCreateResponse < Telnyx::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Telnyx::Models::AI::ToolCreateResponse,
11
+ Telnyx::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ sig { returns(T::Hash[Symbol, T.anything]) }
19
+ attr_accessor :tool_definition
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :type
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :created_at
26
+
27
+ sig { params(created_at: String).void }
28
+ attr_writer :created_at
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :display_name
32
+
33
+ sig { params(display_name: String).void }
34
+ attr_writer :display_name
35
+
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :timeout_ms
38
+
39
+ sig { params(timeout_ms: Integer).void }
40
+ attr_writer :timeout_ms
41
+
42
+ sig do
43
+ params(
44
+ id: String,
45
+ tool_definition: T::Hash[Symbol, T.anything],
46
+ type: String,
47
+ created_at: String,
48
+ display_name: String,
49
+ timeout_ms: Integer
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ id:,
54
+ tool_definition:,
55
+ type:,
56
+ created_at: nil,
57
+ display_name: nil,
58
+ timeout_ms: nil
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ id: String,
66
+ tool_definition: T::Hash[Symbol, T.anything],
67
+ type: String,
68
+ created_at: String,
69
+ display_name: String,
70
+ timeout_ms: Integer
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ class ToolDeleteParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(Telnyx::AI::ToolDeleteParams, Telnyx::Internal::AnyHash)
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :tool_id
17
+
18
+ sig do
19
+ params(
20
+ tool_id: String,
21
+ request_options: Telnyx::RequestOptions::OrHash
22
+ ).returns(T.attached_class)
23
+ end
24
+ def self.new(tool_id:, request_options: {})
25
+ end
26
+
27
+ sig do
28
+ override.returns(
29
+ { tool_id: String, request_options: Telnyx::RequestOptions }
30
+ )
31
+ end
32
+ def to_hash
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,9 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ ToolDeleteResponse = T.let(T.anything, Telnyx::Internal::Type::Converter)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,73 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ class ToolListParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(Telnyx::AI::ToolListParams, Telnyx::Internal::AnyHash)
13
+ end
14
+
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :filter_name
17
+
18
+ sig { params(filter_name: String).void }
19
+ attr_writer :filter_name
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :filter_type
23
+
24
+ sig { params(filter_type: String).void }
25
+ attr_writer :filter_type
26
+
27
+ sig { returns(T.nilable(Integer)) }
28
+ attr_reader :page_number
29
+
30
+ sig { params(page_number: Integer).void }
31
+ attr_writer :page_number
32
+
33
+ sig { returns(T.nilable(Integer)) }
34
+ attr_reader :page_size
35
+
36
+ sig { params(page_size: Integer).void }
37
+ attr_writer :page_size
38
+
39
+ sig do
40
+ params(
41
+ filter_name: String,
42
+ filter_type: String,
43
+ page_number: Integer,
44
+ page_size: Integer,
45
+ request_options: Telnyx::RequestOptions::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ filter_name: nil,
50
+ filter_type: nil,
51
+ page_number: nil,
52
+ page_size: nil,
53
+ request_options: {}
54
+ )
55
+ end
56
+
57
+ sig do
58
+ override.returns(
59
+ {
60
+ filter_name: String,
61
+ filter_type: String,
62
+ page_number: Integer,
63
+ page_size: Integer,
64
+ request_options: Telnyx::RequestOptions
65
+ }
66
+ )
67
+ end
68
+ def to_hash
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,79 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ class ToolListResponse < Telnyx::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Telnyx::Models::AI::ToolListResponse,
11
+ Telnyx::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ sig { returns(T::Hash[Symbol, T.anything]) }
19
+ attr_accessor :tool_definition
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :type
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :created_at
26
+
27
+ sig { params(created_at: String).void }
28
+ attr_writer :created_at
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :display_name
32
+
33
+ sig { params(display_name: String).void }
34
+ attr_writer :display_name
35
+
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :timeout_ms
38
+
39
+ sig { params(timeout_ms: Integer).void }
40
+ attr_writer :timeout_ms
41
+
42
+ sig do
43
+ params(
44
+ id: String,
45
+ tool_definition: T::Hash[Symbol, T.anything],
46
+ type: String,
47
+ created_at: String,
48
+ display_name: String,
49
+ timeout_ms: Integer
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ id:,
54
+ tool_definition:,
55
+ type:,
56
+ created_at: nil,
57
+ display_name: nil,
58
+ timeout_ms: nil
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ id: String,
66
+ tool_definition: T::Hash[Symbol, T.anything],
67
+ type: String,
68
+ created_at: String,
69
+ display_name: String,
70
+ timeout_ms: Integer
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ class ToolRetrieveParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(Telnyx::AI::ToolRetrieveParams, Telnyx::Internal::AnyHash)
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :tool_id
17
+
18
+ sig do
19
+ params(
20
+ tool_id: String,
21
+ request_options: Telnyx::RequestOptions::OrHash
22
+ ).returns(T.attached_class)
23
+ end
24
+ def self.new(tool_id:, request_options: {})
25
+ end
26
+
27
+ sig do
28
+ override.returns(
29
+ { tool_id: String, request_options: Telnyx::RequestOptions }
30
+ )
31
+ end
32
+ def to_hash
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,79 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ class ToolRetrieveResponse < Telnyx::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Telnyx::Models::AI::ToolRetrieveResponse,
11
+ Telnyx::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ sig { returns(T::Hash[Symbol, T.anything]) }
19
+ attr_accessor :tool_definition
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :type
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :created_at
26
+
27
+ sig { params(created_at: String).void }
28
+ attr_writer :created_at
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :display_name
32
+
33
+ sig { params(display_name: String).void }
34
+ attr_writer :display_name
35
+
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :timeout_ms
38
+
39
+ sig { params(timeout_ms: Integer).void }
40
+ attr_writer :timeout_ms
41
+
42
+ sig do
43
+ params(
44
+ id: String,
45
+ tool_definition: T::Hash[Symbol, T.anything],
46
+ type: String,
47
+ created_at: String,
48
+ display_name: String,
49
+ timeout_ms: Integer
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ id:,
54
+ tool_definition:,
55
+ type:,
56
+ created_at: nil,
57
+ display_name: nil,
58
+ timeout_ms: nil
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ id: String,
66
+ tool_definition: T::Hash[Symbol, T.anything],
67
+ type: String,
68
+ created_at: String,
69
+ display_name: String,
70
+ timeout_ms: Integer
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end