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