zavudev 0.5.0 → 0.7.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 +22 -0
- data/README.md +1 -1
- data/lib/zavudev/internal/util.rb +3 -1
- data/lib/zavudev/models/contact.rb +3 -153
- data/lib/zavudev/models/contact_channel.rb +155 -0
- data/lib/zavudev/models/message_send_params.rb +4 -3
- data/lib/zavudev/models/senders/agent/agent_flow.rb +6 -101
- data/lib/zavudev/models/senders/agent/agent_tool.rb +3 -53
- data/lib/zavudev/models/senders/agent/flow_create_params.rb +6 -100
- data/lib/zavudev/models/senders/agent/flow_step.rb +61 -0
- data/lib/zavudev/models/senders/agent/flow_trigger.rb +51 -0
- data/lib/zavudev/models/senders/agent/flow_update_params.rb +6 -100
- data/lib/zavudev/models/senders/agent/tool_create_params.rb +3 -52
- data/lib/zavudev/models/senders/agent/tool_parameters.rb +58 -0
- data/lib/zavudev/models/senders/agent/tool_update_params.rb +3 -52
- data/lib/zavudev/models/template.rb +33 -5
- data/lib/zavudev/models/template_create_params.rb +64 -2
- data/lib/zavudev/models.rb +2 -0
- data/lib/zavudev/resources/messages.rb +1 -1
- data/lib/zavudev/resources/senders/agent/flows.rb +4 -4
- data/lib/zavudev/resources/senders/agent/tools.rb +2 -2
- data/lib/zavudev/resources/templates.rb +14 -2
- data/lib/zavudev/version.rb +1 -1
- data/lib/zavudev.rb +4 -0
- data/rbi/zavudev/models/contact.rbi +4 -235
- data/rbi/zavudev/models/contact_channel.rbi +231 -0
- data/rbi/zavudev/models/message_send_params.rbi +6 -4
- data/rbi/zavudev/models/senders/agent/agent_flow.rbi +7 -233
- data/rbi/zavudev/models/senders/agent/agent_tool.rbi +4 -130
- data/rbi/zavudev/models/senders/agent/flow_create_params.rbi +7 -245
- data/rbi/zavudev/models/senders/agent/flow_step.rbi +115 -0
- data/rbi/zavudev/models/senders/agent/flow_trigger.rbi +108 -0
- data/rbi/zavudev/models/senders/agent/flow_update_params.rbi +8 -255
- data/rbi/zavudev/models/senders/agent/tool_create_params.rbi +4 -132
- data/rbi/zavudev/models/senders/agent/tool_parameters.rbi +124 -0
- data/rbi/zavudev/models/senders/agent/tool_update_params.rbi +4 -136
- data/rbi/zavudev/models/template.rbi +39 -4
- data/rbi/zavudev/models/template_create_params.rbi +105 -0
- data/rbi/zavudev/models.rbi +2 -0
- data/rbi/zavudev/resources/messages.rbi +3 -3
- data/rbi/zavudev/resources/senders/agent/flows.rbi +4 -12
- data/rbi/zavudev/resources/senders/agent/tools.rbi +2 -4
- data/rbi/zavudev/resources/templates.rbi +19 -0
- data/sig/zavudev/models/contact.rbs +6 -153
- data/sig/zavudev/models/contact_channel.rbs +150 -0
- data/sig/zavudev/models/senders/agent/agent_flow.rbs +8 -100
- data/sig/zavudev/models/senders/agent/agent_tool.rbs +4 -57
- data/sig/zavudev/models/senders/agent/flow_create_params.rbs +8 -100
- data/sig/zavudev/models/senders/agent/flow_step.rbs +55 -0
- data/sig/zavudev/models/senders/agent/flow_trigger.rbs +51 -0
- data/sig/zavudev/models/senders/agent/flow_update_params.rbs +12 -104
- data/sig/zavudev/models/senders/agent/tool_create_params.rbs +4 -57
- data/sig/zavudev/models/senders/agent/tool_parameters.rbs +60 -0
- data/sig/zavudev/models/senders/agent/tool_update_params.rbs +6 -59
- data/sig/zavudev/models/template.rbs +21 -0
- data/sig/zavudev/models/template_create_params.rbs +57 -0
- data/sig/zavudev/models.rbs +2 -0
- data/sig/zavudev/resources/senders/agent/flows.rbs +4 -4
- data/sig/zavudev/resources/senders/agent/tools.rbs +2 -2
- data/sig/zavudev/resources/templates.rbs +6 -0
- metadata +14 -2
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Zavudev
|
|
4
|
+
module Models
|
|
5
|
+
class ContactChannel < Zavudev::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Zavudev::ContactChannel, Zavudev::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(String) }
|
|
12
|
+
attr_accessor :id
|
|
13
|
+
|
|
14
|
+
# Channel type.
|
|
15
|
+
sig { returns(Zavudev::ContactChannel::Channel::TaggedSymbol) }
|
|
16
|
+
attr_accessor :channel
|
|
17
|
+
|
|
18
|
+
sig { returns(Time) }
|
|
19
|
+
attr_accessor :created_at
|
|
20
|
+
|
|
21
|
+
# Channel identifier (phone number or email address).
|
|
22
|
+
sig { returns(String) }
|
|
23
|
+
attr_accessor :identifier
|
|
24
|
+
|
|
25
|
+
# Whether this is the primary channel for its type.
|
|
26
|
+
sig { returns(T::Boolean) }
|
|
27
|
+
attr_accessor :is_primary
|
|
28
|
+
|
|
29
|
+
# Whether this channel has been verified.
|
|
30
|
+
sig { returns(T::Boolean) }
|
|
31
|
+
attr_accessor :verified
|
|
32
|
+
|
|
33
|
+
# ISO country code for phone numbers.
|
|
34
|
+
sig { returns(T.nilable(String)) }
|
|
35
|
+
attr_reader :country_code
|
|
36
|
+
|
|
37
|
+
sig { params(country_code: String).void }
|
|
38
|
+
attr_writer :country_code
|
|
39
|
+
|
|
40
|
+
# Optional label for the channel.
|
|
41
|
+
sig { returns(T.nilable(String)) }
|
|
42
|
+
attr_reader :label
|
|
43
|
+
|
|
44
|
+
sig { params(label: String).void }
|
|
45
|
+
attr_writer :label
|
|
46
|
+
|
|
47
|
+
# Last time a message was received on this channel.
|
|
48
|
+
sig { returns(T.nilable(Time)) }
|
|
49
|
+
attr_reader :last_inbound_at
|
|
50
|
+
|
|
51
|
+
sig { params(last_inbound_at: Time).void }
|
|
52
|
+
attr_writer :last_inbound_at
|
|
53
|
+
|
|
54
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
55
|
+
attr_reader :metadata
|
|
56
|
+
|
|
57
|
+
sig { params(metadata: T::Hash[Symbol, String]).void }
|
|
58
|
+
attr_writer :metadata
|
|
59
|
+
|
|
60
|
+
# Delivery metrics for this channel.
|
|
61
|
+
sig { returns(T.nilable(Zavudev::ContactChannel::Metrics)) }
|
|
62
|
+
attr_reader :metrics
|
|
63
|
+
|
|
64
|
+
sig { params(metrics: Zavudev::ContactChannel::Metrics::OrHash).void }
|
|
65
|
+
attr_writer :metrics
|
|
66
|
+
|
|
67
|
+
sig { returns(T.nilable(Time)) }
|
|
68
|
+
attr_reader :updated_at
|
|
69
|
+
|
|
70
|
+
sig { params(updated_at: Time).void }
|
|
71
|
+
attr_writer :updated_at
|
|
72
|
+
|
|
73
|
+
# A communication channel for a contact.
|
|
74
|
+
sig do
|
|
75
|
+
params(
|
|
76
|
+
id: String,
|
|
77
|
+
channel: Zavudev::ContactChannel::Channel::OrSymbol,
|
|
78
|
+
created_at: Time,
|
|
79
|
+
identifier: String,
|
|
80
|
+
is_primary: T::Boolean,
|
|
81
|
+
verified: T::Boolean,
|
|
82
|
+
country_code: String,
|
|
83
|
+
label: String,
|
|
84
|
+
last_inbound_at: Time,
|
|
85
|
+
metadata: T::Hash[Symbol, String],
|
|
86
|
+
metrics: Zavudev::ContactChannel::Metrics::OrHash,
|
|
87
|
+
updated_at: Time
|
|
88
|
+
).returns(T.attached_class)
|
|
89
|
+
end
|
|
90
|
+
def self.new(
|
|
91
|
+
id:,
|
|
92
|
+
# Channel type.
|
|
93
|
+
channel:,
|
|
94
|
+
created_at:,
|
|
95
|
+
# Channel identifier (phone number or email address).
|
|
96
|
+
identifier:,
|
|
97
|
+
# Whether this is the primary channel for its type.
|
|
98
|
+
is_primary:,
|
|
99
|
+
# Whether this channel has been verified.
|
|
100
|
+
verified:,
|
|
101
|
+
# ISO country code for phone numbers.
|
|
102
|
+
country_code: nil,
|
|
103
|
+
# Optional label for the channel.
|
|
104
|
+
label: nil,
|
|
105
|
+
# Last time a message was received on this channel.
|
|
106
|
+
last_inbound_at: nil,
|
|
107
|
+
metadata: nil,
|
|
108
|
+
# Delivery metrics for this channel.
|
|
109
|
+
metrics: nil,
|
|
110
|
+
updated_at: nil
|
|
111
|
+
)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
sig do
|
|
115
|
+
override.returns(
|
|
116
|
+
{
|
|
117
|
+
id: String,
|
|
118
|
+
channel: Zavudev::ContactChannel::Channel::TaggedSymbol,
|
|
119
|
+
created_at: Time,
|
|
120
|
+
identifier: String,
|
|
121
|
+
is_primary: T::Boolean,
|
|
122
|
+
verified: T::Boolean,
|
|
123
|
+
country_code: String,
|
|
124
|
+
label: String,
|
|
125
|
+
last_inbound_at: Time,
|
|
126
|
+
metadata: T::Hash[Symbol, String],
|
|
127
|
+
metrics: Zavudev::ContactChannel::Metrics,
|
|
128
|
+
updated_at: Time
|
|
129
|
+
}
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
def to_hash
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Channel type.
|
|
136
|
+
module Channel
|
|
137
|
+
extend Zavudev::Internal::Type::Enum
|
|
138
|
+
|
|
139
|
+
TaggedSymbol =
|
|
140
|
+
T.type_alias { T.all(Symbol, Zavudev::ContactChannel::Channel) }
|
|
141
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
142
|
+
|
|
143
|
+
SMS = T.let(:sms, Zavudev::ContactChannel::Channel::TaggedSymbol)
|
|
144
|
+
WHATSAPP =
|
|
145
|
+
T.let(:whatsapp, Zavudev::ContactChannel::Channel::TaggedSymbol)
|
|
146
|
+
EMAIL = T.let(:email, Zavudev::ContactChannel::Channel::TaggedSymbol)
|
|
147
|
+
TELEGRAM =
|
|
148
|
+
T.let(:telegram, Zavudev::ContactChannel::Channel::TaggedSymbol)
|
|
149
|
+
VOICE = T.let(:voice, Zavudev::ContactChannel::Channel::TaggedSymbol)
|
|
150
|
+
|
|
151
|
+
sig do
|
|
152
|
+
override.returns(
|
|
153
|
+
T::Array[Zavudev::ContactChannel::Channel::TaggedSymbol]
|
|
154
|
+
)
|
|
155
|
+
end
|
|
156
|
+
def self.values
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
class Metrics < Zavudev::Internal::Type::BaseModel
|
|
161
|
+
OrHash =
|
|
162
|
+
T.type_alias do
|
|
163
|
+
T.any(Zavudev::ContactChannel::Metrics, Zavudev::Internal::AnyHash)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
sig { returns(T.nilable(Float)) }
|
|
167
|
+
attr_reader :avg_delivery_time_ms
|
|
168
|
+
|
|
169
|
+
sig { params(avg_delivery_time_ms: Float).void }
|
|
170
|
+
attr_writer :avg_delivery_time_ms
|
|
171
|
+
|
|
172
|
+
sig { returns(T.nilable(Integer)) }
|
|
173
|
+
attr_reader :failure_count
|
|
174
|
+
|
|
175
|
+
sig { params(failure_count: Integer).void }
|
|
176
|
+
attr_writer :failure_count
|
|
177
|
+
|
|
178
|
+
sig { returns(T.nilable(Time)) }
|
|
179
|
+
attr_reader :last_success_at
|
|
180
|
+
|
|
181
|
+
sig { params(last_success_at: Time).void }
|
|
182
|
+
attr_writer :last_success_at
|
|
183
|
+
|
|
184
|
+
sig { returns(T.nilable(Integer)) }
|
|
185
|
+
attr_reader :success_count
|
|
186
|
+
|
|
187
|
+
sig { params(success_count: Integer).void }
|
|
188
|
+
attr_writer :success_count
|
|
189
|
+
|
|
190
|
+
sig { returns(T.nilable(Integer)) }
|
|
191
|
+
attr_reader :total_attempts
|
|
192
|
+
|
|
193
|
+
sig { params(total_attempts: Integer).void }
|
|
194
|
+
attr_writer :total_attempts
|
|
195
|
+
|
|
196
|
+
# Delivery metrics for this channel.
|
|
197
|
+
sig do
|
|
198
|
+
params(
|
|
199
|
+
avg_delivery_time_ms: Float,
|
|
200
|
+
failure_count: Integer,
|
|
201
|
+
last_success_at: Time,
|
|
202
|
+
success_count: Integer,
|
|
203
|
+
total_attempts: Integer
|
|
204
|
+
).returns(T.attached_class)
|
|
205
|
+
end
|
|
206
|
+
def self.new(
|
|
207
|
+
avg_delivery_time_ms: nil,
|
|
208
|
+
failure_count: nil,
|
|
209
|
+
last_success_at: nil,
|
|
210
|
+
success_count: nil,
|
|
211
|
+
total_attempts: nil
|
|
212
|
+
)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
sig do
|
|
216
|
+
override.returns(
|
|
217
|
+
{
|
|
218
|
+
avg_delivery_time_ms: Float,
|
|
219
|
+
failure_count: Integer,
|
|
220
|
+
last_success_at: Time,
|
|
221
|
+
success_count: Integer,
|
|
222
|
+
total_attempts: Integer
|
|
223
|
+
}
|
|
224
|
+
)
|
|
225
|
+
end
|
|
226
|
+
def to_hash
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
end
|
|
@@ -30,8 +30,9 @@ module Zavudev
|
|
|
30
30
|
end
|
|
31
31
|
attr_writer :attachments
|
|
32
32
|
|
|
33
|
-
# Delivery channel. Use 'auto' for intelligent routing. If omitted
|
|
34
|
-
#
|
|
33
|
+
# Delivery channel. Use 'auto' for intelligent routing. If omitted, channel is
|
|
34
|
+
# auto-selected based on sender capabilities and recipient type. For email
|
|
35
|
+
# recipients, defaults to 'email'.
|
|
35
36
|
sig { returns(T.nilable(Zavudev::Channel::OrSymbol)) }
|
|
36
37
|
attr_reader :channel
|
|
37
38
|
|
|
@@ -143,8 +144,9 @@ module Zavudev
|
|
|
143
144
|
# Email attachments. Only supported when channel is 'email'. Maximum 40MB total
|
|
144
145
|
# size.
|
|
145
146
|
attachments: nil,
|
|
146
|
-
# Delivery channel. Use 'auto' for intelligent routing. If omitted
|
|
147
|
-
#
|
|
147
|
+
# Delivery channel. Use 'auto' for intelligent routing. If omitted, channel is
|
|
148
|
+
# auto-selected based on sender capabilities and recipient type. For email
|
|
149
|
+
# recipients, defaults to 'email'.
|
|
148
150
|
channel: nil,
|
|
149
151
|
# Additional content for non-text message types.
|
|
150
152
|
content: nil,
|
|
@@ -34,16 +34,14 @@ module Zavudev
|
|
|
34
34
|
sig { returns(Integer) }
|
|
35
35
|
attr_accessor :priority
|
|
36
36
|
|
|
37
|
-
sig { returns(T::Array[Zavudev::Senders::Agent::
|
|
37
|
+
sig { returns(T::Array[Zavudev::Senders::Agent::FlowStep]) }
|
|
38
38
|
attr_accessor :steps
|
|
39
39
|
|
|
40
|
-
sig { returns(Zavudev::Senders::Agent::
|
|
40
|
+
sig { returns(Zavudev::Senders::Agent::FlowTrigger) }
|
|
41
41
|
attr_reader :trigger
|
|
42
42
|
|
|
43
43
|
sig do
|
|
44
|
-
params(
|
|
45
|
-
trigger: Zavudev::Senders::Agent::AgentFlow::Trigger::OrHash
|
|
46
|
-
).void
|
|
44
|
+
params(trigger: Zavudev::Senders::Agent::FlowTrigger::OrHash).void
|
|
47
45
|
end
|
|
48
46
|
attr_writer :trigger
|
|
49
47
|
|
|
@@ -61,8 +59,8 @@ module Zavudev
|
|
|
61
59
|
enabled: T::Boolean,
|
|
62
60
|
name: String,
|
|
63
61
|
priority: Integer,
|
|
64
|
-
steps: T::Array[Zavudev::Senders::Agent::
|
|
65
|
-
trigger: Zavudev::Senders::Agent::
|
|
62
|
+
steps: T::Array[Zavudev::Senders::Agent::FlowStep::OrHash],
|
|
63
|
+
trigger: Zavudev::Senders::Agent::FlowTrigger::OrHash,
|
|
66
64
|
updated_at: Time,
|
|
67
65
|
description: T.nilable(String)
|
|
68
66
|
).returns(T.attached_class)
|
|
@@ -91,8 +89,8 @@ module Zavudev
|
|
|
91
89
|
enabled: T::Boolean,
|
|
92
90
|
name: String,
|
|
93
91
|
priority: Integer,
|
|
94
|
-
steps: T::Array[Zavudev::Senders::Agent::
|
|
95
|
-
trigger: Zavudev::Senders::Agent::
|
|
92
|
+
steps: T::Array[Zavudev::Senders::Agent::FlowStep],
|
|
93
|
+
trigger: Zavudev::Senders::Agent::FlowTrigger,
|
|
96
94
|
updated_at: Time,
|
|
97
95
|
description: T.nilable(String)
|
|
98
96
|
}
|
|
@@ -100,230 +98,6 @@ module Zavudev
|
|
|
100
98
|
end
|
|
101
99
|
def to_hash
|
|
102
100
|
end
|
|
103
|
-
|
|
104
|
-
class Step < Zavudev::Internal::Type::BaseModel
|
|
105
|
-
OrHash =
|
|
106
|
-
T.type_alias do
|
|
107
|
-
T.any(
|
|
108
|
-
Zavudev::Senders::Agent::AgentFlow::Step,
|
|
109
|
-
Zavudev::Internal::AnyHash
|
|
110
|
-
)
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
# Unique step identifier.
|
|
114
|
-
sig { returns(String) }
|
|
115
|
-
attr_accessor :id
|
|
116
|
-
|
|
117
|
-
# Step configuration (varies by type).
|
|
118
|
-
sig { returns(T::Hash[Symbol, T.anything]) }
|
|
119
|
-
attr_accessor :config
|
|
120
|
-
|
|
121
|
-
# Type of flow step.
|
|
122
|
-
sig do
|
|
123
|
-
returns(
|
|
124
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
125
|
-
)
|
|
126
|
-
end
|
|
127
|
-
attr_accessor :type
|
|
128
|
-
|
|
129
|
-
# ID of the next step to execute.
|
|
130
|
-
sig { returns(T.nilable(String)) }
|
|
131
|
-
attr_accessor :next_step_id
|
|
132
|
-
|
|
133
|
-
sig do
|
|
134
|
-
params(
|
|
135
|
-
id: String,
|
|
136
|
-
config: T::Hash[Symbol, T.anything],
|
|
137
|
-
type: Zavudev::Senders::Agent::AgentFlow::Step::Type::OrSymbol,
|
|
138
|
-
next_step_id: T.nilable(String)
|
|
139
|
-
).returns(T.attached_class)
|
|
140
|
-
end
|
|
141
|
-
def self.new(
|
|
142
|
-
# Unique step identifier.
|
|
143
|
-
id:,
|
|
144
|
-
# Step configuration (varies by type).
|
|
145
|
-
config:,
|
|
146
|
-
# Type of flow step.
|
|
147
|
-
type:,
|
|
148
|
-
# ID of the next step to execute.
|
|
149
|
-
next_step_id: nil
|
|
150
|
-
)
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
sig do
|
|
154
|
-
override.returns(
|
|
155
|
-
{
|
|
156
|
-
id: String,
|
|
157
|
-
config: T::Hash[Symbol, T.anything],
|
|
158
|
-
type:
|
|
159
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol,
|
|
160
|
-
next_step_id: T.nilable(String)
|
|
161
|
-
}
|
|
162
|
-
)
|
|
163
|
-
end
|
|
164
|
-
def to_hash
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
# Type of flow step.
|
|
168
|
-
module Type
|
|
169
|
-
extend Zavudev::Internal::Type::Enum
|
|
170
|
-
|
|
171
|
-
TaggedSymbol =
|
|
172
|
-
T.type_alias do
|
|
173
|
-
T.all(Symbol, Zavudev::Senders::Agent::AgentFlow::Step::Type)
|
|
174
|
-
end
|
|
175
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
176
|
-
|
|
177
|
-
MESSAGE =
|
|
178
|
-
T.let(
|
|
179
|
-
:message,
|
|
180
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
181
|
-
)
|
|
182
|
-
COLLECT =
|
|
183
|
-
T.let(
|
|
184
|
-
:collect,
|
|
185
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
186
|
-
)
|
|
187
|
-
CONDITION =
|
|
188
|
-
T.let(
|
|
189
|
-
:condition,
|
|
190
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
191
|
-
)
|
|
192
|
-
TOOL =
|
|
193
|
-
T.let(
|
|
194
|
-
:tool,
|
|
195
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
196
|
-
)
|
|
197
|
-
LLM =
|
|
198
|
-
T.let(
|
|
199
|
-
:llm,
|
|
200
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
201
|
-
)
|
|
202
|
-
TRANSFER =
|
|
203
|
-
T.let(
|
|
204
|
-
:transfer,
|
|
205
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
206
|
-
)
|
|
207
|
-
|
|
208
|
-
sig do
|
|
209
|
-
override.returns(
|
|
210
|
-
T::Array[
|
|
211
|
-
Zavudev::Senders::Agent::AgentFlow::Step::Type::TaggedSymbol
|
|
212
|
-
]
|
|
213
|
-
)
|
|
214
|
-
end
|
|
215
|
-
def self.values
|
|
216
|
-
end
|
|
217
|
-
end
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
class Trigger < Zavudev::Internal::Type::BaseModel
|
|
221
|
-
OrHash =
|
|
222
|
-
T.type_alias do
|
|
223
|
-
T.any(
|
|
224
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger,
|
|
225
|
-
Zavudev::Internal::AnyHash
|
|
226
|
-
)
|
|
227
|
-
end
|
|
228
|
-
|
|
229
|
-
# Type of trigger for a flow.
|
|
230
|
-
sig do
|
|
231
|
-
returns(
|
|
232
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::TaggedSymbol
|
|
233
|
-
)
|
|
234
|
-
end
|
|
235
|
-
attr_accessor :type
|
|
236
|
-
|
|
237
|
-
# Intent that triggers the flow (for intent type).
|
|
238
|
-
sig { returns(T.nilable(String)) }
|
|
239
|
-
attr_reader :intent
|
|
240
|
-
|
|
241
|
-
sig { params(intent: String).void }
|
|
242
|
-
attr_writer :intent
|
|
243
|
-
|
|
244
|
-
# Keywords that trigger the flow (for keyword type).
|
|
245
|
-
sig { returns(T.nilable(T::Array[String])) }
|
|
246
|
-
attr_reader :keywords
|
|
247
|
-
|
|
248
|
-
sig { params(keywords: T::Array[String]).void }
|
|
249
|
-
attr_writer :keywords
|
|
250
|
-
|
|
251
|
-
sig do
|
|
252
|
-
params(
|
|
253
|
-
type:
|
|
254
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::OrSymbol,
|
|
255
|
-
intent: String,
|
|
256
|
-
keywords: T::Array[String]
|
|
257
|
-
).returns(T.attached_class)
|
|
258
|
-
end
|
|
259
|
-
def self.new(
|
|
260
|
-
# Type of trigger for a flow.
|
|
261
|
-
type:,
|
|
262
|
-
# Intent that triggers the flow (for intent type).
|
|
263
|
-
intent: nil,
|
|
264
|
-
# Keywords that trigger the flow (for keyword type).
|
|
265
|
-
keywords: nil
|
|
266
|
-
)
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
sig do
|
|
270
|
-
override.returns(
|
|
271
|
-
{
|
|
272
|
-
type:
|
|
273
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::TaggedSymbol,
|
|
274
|
-
intent: String,
|
|
275
|
-
keywords: T::Array[String]
|
|
276
|
-
}
|
|
277
|
-
)
|
|
278
|
-
end
|
|
279
|
-
def to_hash
|
|
280
|
-
end
|
|
281
|
-
|
|
282
|
-
# Type of trigger for a flow.
|
|
283
|
-
module Type
|
|
284
|
-
extend Zavudev::Internal::Type::Enum
|
|
285
|
-
|
|
286
|
-
TaggedSymbol =
|
|
287
|
-
T.type_alias do
|
|
288
|
-
T.all(
|
|
289
|
-
Symbol,
|
|
290
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type
|
|
291
|
-
)
|
|
292
|
-
end
|
|
293
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
294
|
-
|
|
295
|
-
KEYWORD =
|
|
296
|
-
T.let(
|
|
297
|
-
:keyword,
|
|
298
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::TaggedSymbol
|
|
299
|
-
)
|
|
300
|
-
INTENT =
|
|
301
|
-
T.let(
|
|
302
|
-
:intent,
|
|
303
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::TaggedSymbol
|
|
304
|
-
)
|
|
305
|
-
ALWAYS =
|
|
306
|
-
T.let(
|
|
307
|
-
:always,
|
|
308
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::TaggedSymbol
|
|
309
|
-
)
|
|
310
|
-
MANUAL =
|
|
311
|
-
T.let(
|
|
312
|
-
:manual,
|
|
313
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::TaggedSymbol
|
|
314
|
-
)
|
|
315
|
-
|
|
316
|
-
sig do
|
|
317
|
-
override.returns(
|
|
318
|
-
T::Array[
|
|
319
|
-
Zavudev::Senders::Agent::AgentFlow::Trigger::Type::TaggedSymbol
|
|
320
|
-
]
|
|
321
|
-
)
|
|
322
|
-
end
|
|
323
|
-
def self.values
|
|
324
|
-
end
|
|
325
|
-
end
|
|
326
|
-
end
|
|
327
101
|
end
|
|
328
102
|
end
|
|
329
103
|
end
|
|
@@ -34,12 +34,12 @@ module Zavudev
|
|
|
34
34
|
sig { returns(String) }
|
|
35
35
|
attr_accessor :name
|
|
36
36
|
|
|
37
|
-
sig { returns(Zavudev::Senders::Agent::
|
|
37
|
+
sig { returns(Zavudev::Senders::Agent::ToolParameters) }
|
|
38
38
|
attr_reader :parameters
|
|
39
39
|
|
|
40
40
|
sig do
|
|
41
41
|
params(
|
|
42
|
-
parameters: Zavudev::Senders::Agent::
|
|
42
|
+
parameters: Zavudev::Senders::Agent::ToolParameters::OrHash
|
|
43
43
|
).void
|
|
44
44
|
end
|
|
45
45
|
attr_writer :parameters
|
|
@@ -59,8 +59,7 @@ module Zavudev
|
|
|
59
59
|
description: String,
|
|
60
60
|
enabled: T::Boolean,
|
|
61
61
|
name: String,
|
|
62
|
-
parameters:
|
|
63
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::OrHash,
|
|
62
|
+
parameters: Zavudev::Senders::Agent::ToolParameters::OrHash,
|
|
64
63
|
updated_at: Time,
|
|
65
64
|
webhook_url: String
|
|
66
65
|
).returns(T.attached_class)
|
|
@@ -89,7 +88,7 @@ module Zavudev
|
|
|
89
88
|
description: String,
|
|
90
89
|
enabled: T::Boolean,
|
|
91
90
|
name: String,
|
|
92
|
-
parameters: Zavudev::Senders::Agent::
|
|
91
|
+
parameters: Zavudev::Senders::Agent::ToolParameters,
|
|
93
92
|
updated_at: Time,
|
|
94
93
|
webhook_url: String
|
|
95
94
|
}
|
|
@@ -97,131 +96,6 @@ module Zavudev
|
|
|
97
96
|
end
|
|
98
97
|
def to_hash
|
|
99
98
|
end
|
|
100
|
-
|
|
101
|
-
class Parameters < Zavudev::Internal::Type::BaseModel
|
|
102
|
-
OrHash =
|
|
103
|
-
T.type_alias do
|
|
104
|
-
T.any(
|
|
105
|
-
Zavudev::Senders::Agent::AgentTool::Parameters,
|
|
106
|
-
Zavudev::Internal::AnyHash
|
|
107
|
-
)
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
sig do
|
|
111
|
-
returns(
|
|
112
|
-
T::Hash[
|
|
113
|
-
Symbol,
|
|
114
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Property
|
|
115
|
-
]
|
|
116
|
-
)
|
|
117
|
-
end
|
|
118
|
-
attr_accessor :properties
|
|
119
|
-
|
|
120
|
-
sig { returns(T::Array[String]) }
|
|
121
|
-
attr_accessor :required
|
|
122
|
-
|
|
123
|
-
sig do
|
|
124
|
-
returns(
|
|
125
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Type::TaggedSymbol
|
|
126
|
-
)
|
|
127
|
-
end
|
|
128
|
-
attr_accessor :type
|
|
129
|
-
|
|
130
|
-
sig do
|
|
131
|
-
params(
|
|
132
|
-
properties:
|
|
133
|
-
T::Hash[
|
|
134
|
-
Symbol,
|
|
135
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Property::OrHash
|
|
136
|
-
],
|
|
137
|
-
required: T::Array[String],
|
|
138
|
-
type:
|
|
139
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Type::OrSymbol
|
|
140
|
-
).returns(T.attached_class)
|
|
141
|
-
end
|
|
142
|
-
def self.new(properties:, required:, type:)
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
sig do
|
|
146
|
-
override.returns(
|
|
147
|
-
{
|
|
148
|
-
properties:
|
|
149
|
-
T::Hash[
|
|
150
|
-
Symbol,
|
|
151
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Property
|
|
152
|
-
],
|
|
153
|
-
required: T::Array[String],
|
|
154
|
-
type:
|
|
155
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Type::TaggedSymbol
|
|
156
|
-
}
|
|
157
|
-
)
|
|
158
|
-
end
|
|
159
|
-
def to_hash
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
class Property < Zavudev::Internal::Type::BaseModel
|
|
163
|
-
OrHash =
|
|
164
|
-
T.type_alias do
|
|
165
|
-
T.any(
|
|
166
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Property,
|
|
167
|
-
Zavudev::Internal::AnyHash
|
|
168
|
-
)
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
sig { returns(T.nilable(String)) }
|
|
172
|
-
attr_reader :description
|
|
173
|
-
|
|
174
|
-
sig { params(description: String).void }
|
|
175
|
-
attr_writer :description
|
|
176
|
-
|
|
177
|
-
sig { returns(T.nilable(String)) }
|
|
178
|
-
attr_reader :type
|
|
179
|
-
|
|
180
|
-
sig { params(type: String).void }
|
|
181
|
-
attr_writer :type
|
|
182
|
-
|
|
183
|
-
sig do
|
|
184
|
-
params(description: String, type: String).returns(
|
|
185
|
-
T.attached_class
|
|
186
|
-
)
|
|
187
|
-
end
|
|
188
|
-
def self.new(description: nil, type: nil)
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
sig { override.returns({ description: String, type: String }) }
|
|
192
|
-
def to_hash
|
|
193
|
-
end
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
module Type
|
|
197
|
-
extend Zavudev::Internal::Type::Enum
|
|
198
|
-
|
|
199
|
-
TaggedSymbol =
|
|
200
|
-
T.type_alias do
|
|
201
|
-
T.all(
|
|
202
|
-
Symbol,
|
|
203
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Type
|
|
204
|
-
)
|
|
205
|
-
end
|
|
206
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
207
|
-
|
|
208
|
-
OBJECT =
|
|
209
|
-
T.let(
|
|
210
|
-
:object,
|
|
211
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Type::TaggedSymbol
|
|
212
|
-
)
|
|
213
|
-
|
|
214
|
-
sig do
|
|
215
|
-
override.returns(
|
|
216
|
-
T::Array[
|
|
217
|
-
Zavudev::Senders::Agent::AgentTool::Parameters::Type::TaggedSymbol
|
|
218
|
-
]
|
|
219
|
-
)
|
|
220
|
-
end
|
|
221
|
-
def self.values
|
|
222
|
-
end
|
|
223
|
-
end
|
|
224
|
-
end
|
|
225
99
|
end
|
|
226
100
|
end
|
|
227
101
|
end
|