erdo 0.1.7__py3-none-any.whl → 0.1.8__py3-none-any.whl

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.

Potentially problematic release.


This version of erdo might be problematic. Click here for more details.

erdo/__init__.py CHANGED
@@ -4,27 +4,21 @@
4
4
 
5
5
  # Import all condition functions from generated condition module
6
6
  from ._generated.condition import * # noqa: F403,F401
7
+ from ._generated.condition import __all__ as condition_all
7
8
 
8
9
  # Import all generated types automatically
9
10
  from ._generated.types import * # noqa: F403,F401
11
+ from ._generated.types import __all__ as generated_all
10
12
 
11
13
  # Import state object for template support
12
14
  from .state import state # noqa: F401
13
15
 
14
16
  # Import all handwritten SDK classes automatically
15
17
  from .types import * # noqa: F403,F401
18
+ from .types import __all__ as handwritten_all
16
19
 
17
20
  __version__ = "0.1.0"
18
21
 
19
- # Add all condition functions automatically
20
- from ._generated.condition import __all__ as condition_all # noqa: E402
21
-
22
- # Add all generated types automatically
23
- from ._generated.types import __all__ as generated_all # noqa: E402
24
-
25
- # Add handwritten SDK classes
26
- from .types import __all__ as handwritten_all # noqa: E402
27
-
28
22
  # Build __all__ dynamically by combining all available types
29
23
  __all__ = []
30
24
  __all__.extend(handwritten_all)
@@ -8,7 +8,7 @@ Actual execution happens in the Go backend after syncing.
8
8
 
9
9
  from typing import Any, Optional, Union
10
10
 
11
- from pydantic import BaseModel
11
+ from pydantic import BaseModel, Field
12
12
 
13
13
  from erdo.template import TemplateString
14
14
 
@@ -94,7 +94,9 @@ class ParseFileAsJsonResult(BaseModel):
94
94
  Result schema for codeexec.parse_file_as_json action.
95
95
  """
96
96
 
97
- json: Any
97
+ model_config = {"populate_by_name": True} # Allow both field names and aliases
98
+
99
+ json_data: Any = Field(alias="json")
98
100
 
99
101
 
100
102
  def execute(
@@ -133,47 +133,72 @@ class _BaseCondition:
133
133
  return _NotCondition(self)
134
134
 
135
135
 
136
- class IsErrorInfoNeeded(_BaseCondition):
137
- def __init__(self) -> None:
138
- pass
136
+ class AndCondition(_BaseCondition):
137
+ def __init__(self, conditions: Any = None) -> None:
138
+ self.conditions = conditions
139
139
 
140
140
  def to_dict(self) -> Dict[str, Any]:
141
141
  """Convert to dict format expected by backend."""
142
- return {"type": "IsErrorInfoNeeded", "leaf": {}}
142
+ result: Dict[str, Any] = {}
143
+ result["type"] = "AndCondition"
143
144
 
145
+ # Add field values to leaf object (backend expects leaf format)
146
+ leaf: Dict[str, Any] = {}
147
+ if self.conditions is not None:
148
+ leaf["conditions"] = self.conditions
144
149
 
145
- class IsErrorTerminated(_BaseCondition):
146
- def __init__(self) -> None:
147
- pass
150
+ if leaf:
151
+ result["leaf"] = leaf
152
+
153
+ return result
154
+
155
+
156
+ class EarlierThan(_BaseCondition):
157
+ def __init__(self, time: Any = None, value: Any = None) -> None:
158
+ self.time = time
159
+ self.value = value
148
160
 
149
161
  def to_dict(self) -> Dict[str, Any]:
150
162
  """Convert to dict format expected by backend."""
151
- return {"type": "IsErrorTerminated", "leaf": {}}
163
+ result: Dict[str, Any] = {}
164
+ result["type"] = "EarlierThan"
152
165
 
166
+ # Add field values to leaf object (backend expects leaf format)
167
+ leaf: Dict[str, Any] = {}
168
+ if self.time is not None:
169
+ leaf["time"] = self.time
170
+ if self.value is not None:
171
+ leaf["value"] = self.value
153
172
 
154
- class IsFormattedError(_BaseCondition):
173
+ if leaf:
174
+ result["leaf"] = leaf
175
+
176
+ return result
177
+
178
+
179
+ class FalseCondition(_BaseCondition):
155
180
  def __init__(self) -> None:
156
181
  pass
157
182
 
158
183
  def to_dict(self) -> Dict[str, Any]:
159
184
  """Convert to dict format expected by backend."""
160
- return {"type": "IsFormattedError", "leaf": {}}
185
+ return {"type": "FalseCondition", "leaf": {}}
161
186
 
162
187
 
163
- class TextEndsWith(_BaseCondition):
164
- def __init__(self, text: Any = None, value: Any = None) -> None:
165
- self.text = text
188
+ class GreaterThan(_BaseCondition):
189
+ def __init__(self, number: Any = None, value: Any = None) -> None:
190
+ self.number = number
166
191
  self.value = value
167
192
 
168
193
  def to_dict(self) -> Dict[str, Any]:
169
194
  """Convert to dict format expected by backend."""
170
195
  result: Dict[str, Any] = {}
171
- result["type"] = "TextEndsWith"
196
+ result["type"] = "GreaterThan"
172
197
 
173
198
  # Add field values to leaf object (backend expects leaf format)
174
199
  leaf: Dict[str, Any] = {}
175
- if self.text is not None:
176
- leaf["text"] = self.text
200
+ if self.number is not None:
201
+ leaf["number"] = self.number
177
202
  if self.value is not None:
178
203
  leaf["value"] = self.value
179
204
 
@@ -206,6 +231,15 @@ class IsAny(_BaseCondition):
206
231
  return result
207
232
 
208
233
 
234
+ class IsError(_BaseCondition):
235
+ def __init__(self) -> None:
236
+ pass
237
+
238
+ def to_dict(self) -> Dict[str, Any]:
239
+ """Convert to dict format expected by backend."""
240
+ return {"type": "IsError", "leaf": {}}
241
+
242
+
209
243
  class IsErrorActionNotFound(_BaseCondition):
210
244
  def __init__(self) -> None:
211
245
  pass
@@ -215,6 +249,15 @@ class IsErrorActionNotFound(_BaseCondition):
215
249
  return {"type": "IsErrorActionNotFound", "leaf": {}}
216
250
 
217
251
 
252
+ class IsErrorInfoNeeded(_BaseCondition):
253
+ def __init__(self) -> None:
254
+ pass
255
+
256
+ def to_dict(self) -> Dict[str, Any]:
257
+ """Convert to dict format expected by backend."""
258
+ return {"type": "IsErrorInfoNeeded", "leaf": {}}
259
+
260
+
218
261
  class IsErrorInternalError(_BaseCondition):
219
262
  def __init__(self) -> None:
220
263
  pass
@@ -224,45 +267,46 @@ class IsErrorInternalError(_BaseCondition):
224
267
  return {"type": "IsErrorInternalError", "leaf": {}}
225
268
 
226
269
 
227
- class LessThan(_BaseCondition):
228
- def __init__(self, number: Any = None, value: Any = None) -> None:
229
- self.number = number
230
- self.value = value
270
+ class IsErrorTerminated(_BaseCondition):
271
+ def __init__(self) -> None:
272
+ pass
231
273
 
232
274
  def to_dict(self) -> Dict[str, Any]:
233
275
  """Convert to dict format expected by backend."""
234
- result: Dict[str, Any] = {}
235
- result["type"] = "LessThan"
276
+ return {"type": "IsErrorTerminated", "leaf": {}}
236
277
 
237
- # Add field values to leaf object (backend expects leaf format)
238
- leaf: Dict[str, Any] = {}
239
- if self.number is not None:
240
- leaf["number"] = self.number
241
- if self.value is not None:
242
- leaf["value"] = self.value
243
278
 
244
- if leaf:
245
- result["leaf"] = leaf
279
+ class IsErrorTimeout(_BaseCondition):
280
+ def __init__(self) -> None:
281
+ pass
246
282
 
247
- return result
283
+ def to_dict(self) -> Dict[str, Any]:
284
+ """Convert to dict format expected by backend."""
285
+ return {"type": "IsErrorTimeout", "leaf": {}}
248
286
 
249
287
 
250
- class EarlierThan(_BaseCondition):
251
- def __init__(self, time: Any = None, value: Any = None) -> None:
252
- self.time = time
253
- self.value = value
288
+ class IsFormattedError(_BaseCondition):
289
+ def __init__(self) -> None:
290
+ pass
291
+
292
+ def to_dict(self) -> Dict[str, Any]:
293
+ """Convert to dict format expected by backend."""
294
+ return {"type": "IsFormattedError", "leaf": {}}
295
+
296
+
297
+ class IsNull(_BaseCondition):
298
+ def __init__(self, key: Any = None) -> None:
299
+ self.key = key
254
300
 
255
301
  def to_dict(self) -> Dict[str, Any]:
256
302
  """Convert to dict format expected by backend."""
257
303
  result: Dict[str, Any] = {}
258
- result["type"] = "EarlierThan"
304
+ result["type"] = "IsNull"
259
305
 
260
306
  # Add field values to leaf object (backend expects leaf format)
261
307
  leaf: Dict[str, Any] = {}
262
- if self.time is not None:
263
- leaf["time"] = self.time
264
- if self.value is not None:
265
- leaf["value"] = self.value
308
+ if self.key is not None:
309
+ leaf["key"] = self.key
266
310
 
267
311
  if leaf:
268
312
  result["leaf"] = leaf
@@ -270,16 +314,16 @@ class EarlierThan(_BaseCondition):
270
314
  return result
271
315
 
272
316
 
273
- class FalseCondition(_BaseCondition):
317
+ class IsSuccess(_BaseCondition):
274
318
  def __init__(self) -> None:
275
319
  pass
276
320
 
277
321
  def to_dict(self) -> Dict[str, Any]:
278
322
  """Convert to dict format expected by backend."""
279
- return {"type": "FalseCondition", "leaf": {}}
323
+ return {"type": "IsSuccess", "leaf": {}}
280
324
 
281
325
 
282
- class GreaterThan(_BaseCondition):
326
+ class LessThan(_BaseCondition):
283
327
  def __init__(self, number: Any = None, value: Any = None) -> None:
284
328
  self.number = number
285
329
  self.value = value
@@ -287,7 +331,7 @@ class GreaterThan(_BaseCondition):
287
331
  def to_dict(self) -> Dict[str, Any]:
288
332
  """Convert to dict format expected by backend."""
289
333
  result: Dict[str, Any] = {}
290
- result["type"] = "GreaterThan"
334
+ result["type"] = "LessThan"
291
335
 
292
336
  # Add field values to leaf object (backend expects leaf format)
293
337
  leaf: Dict[str, Any] = {}
@@ -302,31 +346,19 @@ class GreaterThan(_BaseCondition):
302
346
  return result
303
347
 
304
348
 
305
- class IsErrorTimeout(_BaseCondition):
306
- def __init__(self) -> None:
307
- pass
308
-
309
- def to_dict(self) -> Dict[str, Any]:
310
- """Convert to dict format expected by backend."""
311
- return {"type": "IsErrorTimeout", "leaf": {}}
312
-
313
-
314
- class TextContains(_BaseCondition):
315
- def __init__(self, text: Any = None, value: Any = None) -> None:
316
- self.text = text
317
- self.value = value
349
+ class NotCondition(_BaseCondition):
350
+ def __init__(self, condition: Any = None) -> None:
351
+ self.condition = condition
318
352
 
319
353
  def to_dict(self) -> Dict[str, Any]:
320
354
  """Convert to dict format expected by backend."""
321
355
  result: Dict[str, Any] = {}
322
- result["type"] = "TextContains"
356
+ result["type"] = "NotCondition"
323
357
 
324
358
  # Add field values to leaf object (backend expects leaf format)
325
359
  leaf: Dict[str, Any] = {}
326
- if self.text is not None:
327
- leaf["text"] = self.text
328
- if self.value is not None:
329
- leaf["value"] = self.value
360
+ if self.condition is not None:
361
+ leaf["condition"] = self.condition
330
362
 
331
363
  if leaf:
332
364
  result["leaf"] = leaf
@@ -334,22 +366,19 @@ class TextContains(_BaseCondition):
334
366
  return result
335
367
 
336
368
 
337
- class TextEquals(_BaseCondition):
338
- def __init__(self, text: Any = None, value: Any = None) -> None:
339
- self.text = text
340
- self.value = value
369
+ class OrCondition(_BaseCondition):
370
+ def __init__(self, conditions: Any = None) -> None:
371
+ self.conditions = conditions
341
372
 
342
373
  def to_dict(self) -> Dict[str, Any]:
343
374
  """Convert to dict format expected by backend."""
344
375
  result: Dict[str, Any] = {}
345
- result["type"] = "TextEquals"
376
+ result["type"] = "OrCondition"
346
377
 
347
378
  # Add field values to leaf object (backend expects leaf format)
348
379
  leaf: Dict[str, Any] = {}
349
- if self.text is not None:
350
- leaf["text"] = self.text
351
- if self.value is not None:
352
- leaf["value"] = self.value
380
+ if self.conditions is not None:
381
+ leaf["conditions"] = self.conditions
353
382
 
354
383
  if leaf:
355
384
  result["leaf"] = leaf
@@ -357,7 +386,7 @@ class TextEquals(_BaseCondition):
357
386
  return result
358
387
 
359
388
 
360
- class TextStartsWith(_BaseCondition):
389
+ class TextContains(_BaseCondition):
361
390
  def __init__(self, text: Any = None, value: Any = None) -> None:
362
391
  self.text = text
363
392
  self.value = value
@@ -365,7 +394,7 @@ class TextStartsWith(_BaseCondition):
365
394
  def to_dict(self) -> Dict[str, Any]:
366
395
  """Convert to dict format expected by backend."""
367
396
  result: Dict[str, Any] = {}
368
- result["type"] = "TextStartsWith"
397
+ result["type"] = "TextContains"
369
398
 
370
399
  # Add field values to leaf object (backend expects leaf format)
371
400
  leaf: Dict[str, Any] = {}
@@ -380,37 +409,22 @@ class TextStartsWith(_BaseCondition):
380
409
  return result
381
410
 
382
411
 
383
- class TrueCondition(_BaseCondition):
384
- def __init__(self) -> None:
385
- pass
386
-
387
- def to_dict(self) -> Dict[str, Any]:
388
- """Convert to dict format expected by backend."""
389
- return {"type": "TrueCondition", "leaf": {}}
390
-
391
-
392
- class IsError(_BaseCondition):
393
- def __init__(self) -> None:
394
- pass
395
-
396
- def to_dict(self) -> Dict[str, Any]:
397
- """Convert to dict format expected by backend."""
398
- return {"type": "IsError", "leaf": {}}
399
-
400
-
401
- class IsNull(_BaseCondition):
402
- def __init__(self, key: Any = None) -> None:
403
- self.key = key
412
+ class TextEndsWith(_BaseCondition):
413
+ def __init__(self, text: Any = None, value: Any = None) -> None:
414
+ self.text = text
415
+ self.value = value
404
416
 
405
417
  def to_dict(self) -> Dict[str, Any]:
406
418
  """Convert to dict format expected by backend."""
407
419
  result: Dict[str, Any] = {}
408
- result["type"] = "IsNull"
420
+ result["type"] = "TextEndsWith"
409
421
 
410
422
  # Add field values to leaf object (backend expects leaf format)
411
423
  leaf: Dict[str, Any] = {}
412
- if self.key is not None:
413
- leaf["key"] = self.key
424
+ if self.text is not None:
425
+ leaf["text"] = self.text
426
+ if self.value is not None:
427
+ leaf["value"] = self.value
414
428
 
415
429
  if leaf:
416
430
  result["leaf"] = leaf
@@ -418,28 +432,22 @@ class IsNull(_BaseCondition):
418
432
  return result
419
433
 
420
434
 
421
- class IsSuccess(_BaseCondition):
422
- def __init__(self) -> None:
423
- pass
424
-
425
- def to_dict(self) -> Dict[str, Any]:
426
- """Convert to dict format expected by backend."""
427
- return {"type": "IsSuccess", "leaf": {}}
428
-
429
-
430
- class AndCondition(_BaseCondition):
431
- def __init__(self, conditions: Any = None) -> None:
432
- self.conditions = conditions
435
+ class TextEquals(_BaseCondition):
436
+ def __init__(self, text: Any = None, value: Any = None) -> None:
437
+ self.text = text
438
+ self.value = value
433
439
 
434
440
  def to_dict(self) -> Dict[str, Any]:
435
441
  """Convert to dict format expected by backend."""
436
442
  result: Dict[str, Any] = {}
437
- result["type"] = "AndCondition"
443
+ result["type"] = "TextEquals"
438
444
 
439
445
  # Add field values to leaf object (backend expects leaf format)
440
446
  leaf: Dict[str, Any] = {}
441
- if self.conditions is not None:
442
- leaf["conditions"] = self.conditions
447
+ if self.text is not None:
448
+ leaf["text"] = self.text
449
+ if self.value is not None:
450
+ leaf["value"] = self.value
443
451
 
444
452
  if leaf:
445
453
  result["leaf"] = leaf
@@ -447,19 +455,22 @@ class AndCondition(_BaseCondition):
447
455
  return result
448
456
 
449
457
 
450
- class OrCondition(_BaseCondition):
451
- def __init__(self, conditions: Any = None) -> None:
452
- self.conditions = conditions
458
+ class TextStartsWith(_BaseCondition):
459
+ def __init__(self, text: Any = None, value: Any = None) -> None:
460
+ self.text = text
461
+ self.value = value
453
462
 
454
463
  def to_dict(self) -> Dict[str, Any]:
455
464
  """Convert to dict format expected by backend."""
456
465
  result: Dict[str, Any] = {}
457
- result["type"] = "OrCondition"
466
+ result["type"] = "TextStartsWith"
458
467
 
459
468
  # Add field values to leaf object (backend expects leaf format)
460
469
  leaf: Dict[str, Any] = {}
461
- if self.conditions is not None:
462
- leaf["conditions"] = self.conditions
470
+ if self.text is not None:
471
+ leaf["text"] = self.text
472
+ if self.value is not None:
473
+ leaf["value"] = self.value
463
474
 
464
475
  if leaf:
465
476
  result["leaf"] = leaf
@@ -467,48 +478,37 @@ class OrCondition(_BaseCondition):
467
478
  return result
468
479
 
469
480
 
470
- class NotCondition(_BaseCondition):
471
- def __init__(self, condition: Any = None) -> None:
472
- self.condition = condition
481
+ class TrueCondition(_BaseCondition):
482
+ def __init__(self) -> None:
483
+ pass
473
484
 
474
485
  def to_dict(self) -> Dict[str, Any]:
475
486
  """Convert to dict format expected by backend."""
476
- result: Dict[str, Any] = {}
477
- result["type"] = "NotCondition"
478
-
479
- # Add field values to leaf object (backend expects leaf format)
480
- leaf: Dict[str, Any] = {}
481
- if self.condition is not None:
482
- leaf["condition"] = self.condition
483
-
484
- if leaf:
485
- result["leaf"] = leaf
486
-
487
- return result
487
+ return {"type": "TrueCondition", "leaf": {}}
488
488
 
489
489
 
490
490
  # Auto-generated __all__ list for import *
491
491
  __all__ = [
492
492
  "And",
493
- "Or",
494
493
  "Not",
494
+ "Or",
495
495
  "EarlierThan",
496
496
  "FalseCondition",
497
497
  "GreaterThan",
498
- "IsErrorTimeout",
499
- "TextContains",
500
- "TextEquals",
501
- "TextStartsWith",
502
- "TrueCondition",
498
+ "IsAny",
503
499
  "IsError",
504
- "IsNull",
505
- "IsSuccess",
500
+ "IsErrorActionNotFound",
506
501
  "IsErrorInfoNeeded",
502
+ "IsErrorInternalError",
507
503
  "IsErrorTerminated",
504
+ "IsErrorTimeout",
508
505
  "IsFormattedError",
509
- "TextEndsWith",
510
- "IsAny",
511
- "IsErrorActionNotFound",
512
- "IsErrorInternalError",
506
+ "IsNull",
507
+ "IsSuccess",
513
508
  "LessThan",
509
+ "TextContains",
510
+ "TextEndsWith",
511
+ "TextEquals",
512
+ "TextStartsWith",
513
+ "TrueCondition",
514
514
  ]
erdo/_generated/types.py CHANGED
@@ -2375,91 +2375,91 @@ class ExportIntegrationsResponse:
2375
2375
 
2376
2376
  # Auto-generated __all__ list for import *
2377
2377
  __all__ = [
2378
- "ParameterType",
2379
- "ParameterHydrationBehaviour",
2380
- "OutputVisibility",
2381
- "OutputContentType",
2382
- "HandlerType",
2383
- "ExecutionModeType",
2384
- "LlmModel",
2385
- "OutputBehaviorType",
2386
- "CredentialSource",
2387
- "SensitivityLevel",
2388
- "JSONSchemaType",
2389
- "InvocationEventType",
2390
- "Status",
2391
- "Error",
2392
- "DatasetType",
2393
- "IntegrationType",
2378
+ "APIConditionDefinition",
2379
+ "APIExecutionMode",
2380
+ "APIParameterDefinition",
2381
+ "APIParameterInterpreter",
2382
+ "APIParameterValueSource",
2383
+ "APIParameterValueSourceHandler",
2384
+ "APIResultHandler",
2385
+ "APIStep",
2386
+ "APIStepWithHandlers",
2387
+ "APITool",
2388
+ "ActionDefinition",
2389
+ "AgentDiscovery",
2390
+ "AnalysisDetails",
2394
2391
  "AuthType",
2395
- "IntegrationStatus",
2396
- "SegmentSelectionType",
2397
- "ExpiryType",
2398
- "ResourceType",
2399
- "ResourceState",
2400
- "ResourceRelationshipType",
2401
- "ResourceAttachType",
2402
2392
  "Bot",
2403
- "ParameterDefinition",
2404
- "ParameterValueSource",
2405
- "ParameterValueSourceHandler",
2406
- "ParameterInterpreter",
2407
- "AgentDiscovery",
2408
- "ExecutionModeConfig",
2409
- "UpsertBotRequest",
2393
+ "BotResource",
2410
2394
  "BotsResponse",
2411
- "StepsResponse",
2412
- "ServiceDefinition",
2413
- "ActionDefinition",
2414
- "ResultSchema",
2415
- "PropertySchema",
2416
- "IntegrationSchema",
2417
2395
  "CodegenDetails",
2418
- "AnalysisDetails",
2419
- "CredentialSchema",
2420
- "ExportActionsResponse",
2421
2396
  "ConditionDefinition",
2422
- "TempCondition",
2423
- "StepWithHandlers",
2424
- "ResultHandler",
2425
- "JSONSchemaProperty",
2426
- "JSONSchema",
2427
- "Tool",
2428
- "Message",
2429
- "SystemParameters",
2430
- "Result",
2431
- "APIStep",
2432
- "APIParameterValueSource",
2433
- "APIParameterValueSourceHandler",
2434
- "APIParameterInterpreter",
2435
- "APIExecutionMode",
2436
- "APIConditionDefinition",
2437
- "APITool",
2438
- "APIResultHandler",
2439
- "APIParameterDefinition",
2440
- "APIStepWithHandlers",
2397
+ "CredentialSchema",
2398
+ "CredentialSource",
2441
2399
  "Dataset",
2442
- "BotResource",
2443
- "UIConfigIcon",
2444
- "UIConfig",
2445
- "ErrorHandlingConfig",
2446
- "SegmentLevel",
2447
- "SegmentConfig",
2448
- "ResourceTypeConfig",
2449
2400
  "DatasetResourceDiscoveryConfig",
2401
+ "DatasetType",
2402
+ "Error",
2403
+ "ErrorHandlingConfig",
2404
+ "ExecutionModeConfig",
2405
+ "ExecutionModeType",
2450
2406
  "ExpiryConfig",
2451
- "SegmentOption",
2452
- "IntegrationDefinition",
2407
+ "ExpiryType",
2408
+ "ExportActionsResponse",
2409
+ "ExportIntegrationsResponse",
2410
+ "HandlerType",
2453
2411
  "IntegrationConfig",
2454
- "PythonIntegrationInstance",
2412
+ "IntegrationDefinition",
2455
2413
  "IntegrationDiscovery",
2456
- "UpsertIntegrationRequest",
2457
- "UpsertIntegrationResponse",
2414
+ "IntegrationSchema",
2415
+ "IntegrationStatus",
2416
+ "IntegrationType",
2417
+ "InvocationEventType",
2418
+ "JSONSchema",
2419
+ "JSONSchemaProperty",
2420
+ "JSONSchemaType",
2458
2421
  "ListIntegrationsResponse",
2459
- "ExportIntegrationsResponse",
2422
+ "LlmModel",
2460
2423
  "Memory",
2461
- "ResourceAnalysis",
2424
+ "Message",
2425
+ "OutputBehaviorType",
2426
+ "OutputContentType",
2427
+ "OutputVisibility",
2428
+ "ParameterDefinition",
2429
+ "ParameterHydrationBehaviour",
2430
+ "ParameterInterpreter",
2431
+ "ParameterType",
2432
+ "ParameterValueSource",
2433
+ "ParameterValueSourceHandler",
2434
+ "PropertySchema",
2435
+ "PythonIntegrationInstance",
2462
2436
  "Resource",
2437
+ "ResourceAnalysis",
2438
+ "ResourceAttachType",
2439
+ "ResourceRelationshipType",
2440
+ "ResourceState",
2441
+ "ResourceType",
2442
+ "ResourceTypeConfig",
2443
+ "Result",
2444
+ "ResultHandler",
2445
+ "ResultSchema",
2446
+ "SegmentConfig",
2447
+ "SegmentLevel",
2448
+ "SegmentOption",
2449
+ "SegmentSelectionType",
2450
+ "SensitivityLevel",
2451
+ "ServiceDefinition",
2452
+ "Status",
2453
+ "StepWithHandlers",
2454
+ "StepsResponse",
2455
+ "SystemParameters",
2456
+ "TempCondition",
2457
+ "Tool",
2458
+ "UIConfig",
2459
+ "UIConfigIcon",
2460
+ "UpsertBotRequest",
2461
+ "UpsertIntegrationRequest",
2462
+ "UpsertIntegrationResponse",
2463
2463
  ]
2464
2464
 
2465
2465
 
erdo/actions/__init__.py CHANGED
@@ -25,16 +25,16 @@ from .._generated.internal_actions import refresh_resource # noqa: F401
25
25
 
26
26
  # Make all services available for import
27
27
  __all__ = [
28
- "checkpoint_attempt",
29
- "refresh_resource",
30
28
  "analysis",
31
29
  "bot",
32
- "webparser",
33
- "websearch",
30
+ "checkpoint_attempt",
34
31
  "codeexec",
35
32
  "llm",
36
33
  "memory",
34
+ "refresh_resource",
37
35
  "resource_definitions",
38
36
  "sqlexec",
39
37
  "utils",
38
+ "webparser",
39
+ "websearch",
40
40
  ]
erdo/sync/extractor.py CHANGED
@@ -70,6 +70,12 @@ def transform_dict_recursively(obj: Any) -> Any:
70
70
  return [transform_dict_recursively(item) for item in obj]
71
71
  elif isinstance(obj, str):
72
72
  return transform_string_value(obj)
73
+ elif hasattr(obj, "__class__") and hasattr(obj.__class__, "__mro__"):
74
+ # Handle enums by converting to their value
75
+ for base in obj.__class__.__mro__:
76
+ if "Enum" in str(base):
77
+ return obj.value if hasattr(obj, "value") else str(obj)
78
+ return obj
73
79
  else:
74
80
  return obj
75
81
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: erdo
3
- Version: 0.1.7
3
+ Version: 0.1.8
4
4
  Summary: Python SDK for building workflow automation agents with Erdo
5
5
  Project-URL: Homepage, https://erdo.ai
6
6
  Project-URL: Documentation, https://docs.erdo.ai
@@ -1,4 +1,4 @@
1
- erdo/__init__.py,sha256=DhDXlZHGo9UoWZtjHzHILk8kK_DfMy9bjLHpNuj16Wg,1111
1
+ erdo/__init__.py,sha256=gg-frEZXTdpawdIdEOpSJuHDG6w7OM-Fu-QhHmcSK7Y,952
2
2
  erdo/bot_permissions.py,sha256=NZSjjGURORpq3hRqv0tA0YvkxcTZ9MQqtmzrlmof29c,8261
3
3
  erdo/cli_entry.py,sha256=jz18bWz-D09rmkEvwLTAbcK1shHUqFCpiU7U7czEltY,2057
4
4
  erdo/install_cli.py,sha256=jgRoSm-MIbLHW0Sr5m78q3htRwIh7JXo_wNmpVsiAcM,4454
@@ -13,11 +13,11 @@ erdo/_generated/internal_actions.py,sha256=dbZgHNF5RQhjyB8VAJ-4eaV2XUlqHKv99m-Dt
13
13
  erdo/_generated/parameters.py,sha256=QC-_75fQg_iFu-dvI9ce4yHP9UnFItDWe6sBfzfXaig,472
14
14
  erdo/_generated/secrets.py,sha256=F2xBkFsiYXOJnZ5Tcrc9uiaakyirHlKFkYCFxZKANtw,454
15
15
  erdo/_generated/template_functions.py,sha256=mgFqsXxL36dMNptzDaGvNEjoA76nFf4k9ZRz-J4Ozdc,1174
16
- erdo/_generated/types.py,sha256=XPG0hBqo1kUg75b5XI8pq8RtIuz2TkgbBp69tcKq3fM,81094
16
+ erdo/_generated/types.py,sha256=heiWWVNnCDqO8a99emh1XTtqRHIQEHKugWUoJUKq5Og,81094
17
17
  erdo/_generated/actions/__init__.py,sha256=L5YKDEe1RikpvtkWxmTAThVLa-HxGfur3kcO-S7RB_w,1223
18
18
  erdo/_generated/actions/analysis.py,sha256=xuDxpd4NiS4bW_JAAQEhQa4Impmq_sBfSaUt3SYhf0g,5483
19
19
  erdo/_generated/actions/bot.py,sha256=5rQxG2GgU8V_sjLN6QIMTPZN5e5omURRLUppuNQegXM,6291
20
- erdo/_generated/actions/codeexec.py,sha256=XDbBG66ozPrav-HMHif1walqbuOMD3CA-1BUp8CkEAw,6579
20
+ erdo/_generated/actions/codeexec.py,sha256=31cZWnFHSAsYeu_y_gLlhcoKVpSl-C701OvilKb_qo4,6698
21
21
  erdo/_generated/actions/llm.py,sha256=HvCXnnUadJnM4P3zrcQ2KIWyhqACAX4x0zw6VO6N3XI,5142
22
22
  erdo/_generated/actions/memory.py,sha256=cSzlVrR2tMobaO4VBGtRPmBv5NGpUHq36nAG3yQQFVg,16321
23
23
  erdo/_generated/actions/pdfextractor.py,sha256=UQ10OQ3K3FNKkqx18aG67Xbqd3GjB0nNh7DA6mpNs2g,3535
@@ -26,8 +26,8 @@ erdo/_generated/actions/sqlexec.py,sha256=z6SzgryI19wLhg-t_INqdG7n82lFGM4rfWvXEB
26
26
  erdo/_generated/actions/utils.py,sha256=rLvks2e3FJT5IjaV3hQygC-jijS8yBkL37QPgsyopik,16135
27
27
  erdo/_generated/actions/webparser.py,sha256=TonVmfVvnUPthvAT2rC_l8hvO25rCPhtYVR36pNPNQI,4184
28
28
  erdo/_generated/actions/websearch.py,sha256=KGKeJwZDBUXg-fPkq8oe7vw1zsspSNJ_Ei-BhSLi3zg,2715
29
- erdo/_generated/condition/__init__.py,sha256=ONWEhJu6CxQM2RTpsGq5w-5i4mzwujZoR1ErAqn7NBo,14808
30
- erdo/actions/__init__.py,sha256=9vn7-8u9xifdlExyeu4Rc0DAH_J6grhZc6AZNrW-IYs,1311
29
+ erdo/_generated/condition/__init__.py,sha256=tWS9LUWbMy8Q4yYG2ZHJuQibNbmACAEupe1f9PPQ11c,14808
30
+ erdo/actions/__init__.py,sha256=kb9vGSmhSGwxKNGacUCquu6z3d8u972uIw9x13aCrp0,1311
31
31
  erdo/conditions/__init__.py,sha256=xN7MS1aj4lh65CrE-94yFQXnQV8v8VjdEXMzPLTK0CU,394
32
32
  erdo/config/__init__.py,sha256=qUkApXToTQC88f5n6FDIuAfDM6na7ydOiKT1M5enbNo,121
33
33
  erdo/config/config.py,sha256=BSerQVQdbbp1KuARpIuKp6bM1M4Cqr-Bsf0nQJJTND8,4279
@@ -36,10 +36,10 @@ erdo/invoke/client.py,sha256=h88WB5OQukt9KKQzGavmp_-A9o5R4ZvA49TffG1Xa2w,7582
36
36
  erdo/invoke/invoke.py,sha256=yMD65tQiBzrYw_Z_lKdxW2C0lyut9N4n_OmKDp0c6k8,8166
37
37
  erdo/sync/__init__.py,sha256=f-7-9cYngOiLrTDAng3JxMC86JIE6jFk6-Vjz_dMybs,311
38
38
  erdo/sync/client.py,sha256=LrcyrsapuyrqmuPh-UwbocL7WUhHZ9zkDItXzon_AUs,3022
39
- erdo/sync/extractor.py,sha256=rhZlGLYAUvc04Liso05GjODC_lXbKw0nmx2o-z2cHXc,16921
39
+ erdo/sync/extractor.py,sha256=iAIlRJqHr4e69XYnir2mZ6F6cUjnXp0P_EKsG1jdDLc,17217
40
40
  erdo/sync/sync.py,sha256=KzuChW5ramY8rX6QM3emRda928A09CQzFLmLJ5PLztg,10421
41
- erdo-0.1.7.dist-info/METADATA,sha256=cR5nAYYrNvtN0kRwpntD6dE_GsMPNBuTIPBjFbLy5s4,9127
42
- erdo-0.1.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
43
- erdo-0.1.7.dist-info/entry_points.txt,sha256=KFGSp8-6IE3-8dSr-3Djqye3IdEY65Y4E8fABoFUCHg,45
44
- erdo-0.1.7.dist-info/licenses/LICENSE,sha256=9pdgUAuBAumY5tewMdJnx2Ozj8dS6gGKsSiY-SVInu4,1034
45
- erdo-0.1.7.dist-info/RECORD,,
41
+ erdo-0.1.8.dist-info/METADATA,sha256=2gBPUH8bkBcY_RB9ohlnPWAdRqIr7WgSMyHsxgy0KJE,9127
42
+ erdo-0.1.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
43
+ erdo-0.1.8.dist-info/entry_points.txt,sha256=KFGSp8-6IE3-8dSr-3Djqye3IdEY65Y4E8fABoFUCHg,45
44
+ erdo-0.1.8.dist-info/licenses/LICENSE,sha256=9pdgUAuBAumY5tewMdJnx2Ozj8dS6gGKsSiY-SVInu4,1034
45
+ erdo-0.1.8.dist-info/RECORD,,
File without changes