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