soe-ai 0.1.1__py3-none-any.whl → 0.1.2__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.
Files changed (134) hide show
  1. soe/builtin_tools/__init__.py +39 -0
  2. soe/builtin_tools/soe_add_signal.py +82 -0
  3. soe/builtin_tools/soe_call_tool.py +111 -0
  4. soe/builtin_tools/soe_copy_context.py +80 -0
  5. soe/builtin_tools/soe_explore_docs.py +290 -0
  6. soe/builtin_tools/soe_get_available_tools.py +42 -0
  7. soe/builtin_tools/soe_get_context.py +50 -0
  8. soe/builtin_tools/soe_get_workflows.py +63 -0
  9. soe/builtin_tools/soe_inject_node.py +86 -0
  10. soe/builtin_tools/soe_inject_workflow.py +105 -0
  11. soe/builtin_tools/soe_list_contexts.py +73 -0
  12. soe/builtin_tools/soe_remove_node.py +72 -0
  13. soe/builtin_tools/soe_remove_workflow.py +62 -0
  14. soe/builtin_tools/soe_update_context.py +54 -0
  15. soe/docs/_config.yml +10 -0
  16. soe/docs/advanced_patterns/guide_fanout_and_aggregations.md +318 -0
  17. soe/docs/advanced_patterns/guide_inheritance.md +435 -0
  18. soe/docs/advanced_patterns/hybrid_intelligence.md +237 -0
  19. soe/docs/advanced_patterns/index.md +49 -0
  20. soe/docs/advanced_patterns/operational.md +781 -0
  21. soe/docs/advanced_patterns/self_evolving_workflows.md +385 -0
  22. soe/docs/advanced_patterns/swarm_intelligence.md +211 -0
  23. soe/docs/builtins/context.md +164 -0
  24. soe/docs/builtins/explore_docs.md +135 -0
  25. soe/docs/builtins/tools.md +164 -0
  26. soe/docs/builtins/workflows.md +199 -0
  27. soe/docs/guide_00_getting_started.md +341 -0
  28. soe/docs/guide_01_tool.md +206 -0
  29. soe/docs/guide_02_llm.md +143 -0
  30. soe/docs/guide_03_router.md +146 -0
  31. soe/docs/guide_04_patterns.md +475 -0
  32. soe/docs/guide_05_agent.md +159 -0
  33. soe/docs/guide_06_schema.md +397 -0
  34. soe/docs/guide_07_identity.md +540 -0
  35. soe/docs/guide_08_child.md +612 -0
  36. soe/docs/guide_09_ecosystem.md +690 -0
  37. soe/docs/guide_10_infrastructure.md +427 -0
  38. soe/docs/guide_11_builtins.md +118 -0
  39. soe/docs/index.md +104 -0
  40. soe/docs/primitives/backends.md +281 -0
  41. soe/docs/primitives/context.md +256 -0
  42. soe/docs/primitives/node_reference.md +259 -0
  43. soe/docs/primitives/primitives.md +331 -0
  44. soe/docs/primitives/signals.md +865 -0
  45. soe/docs_index.py +1 -1
  46. soe/lib/__init__.py +0 -0
  47. soe/lib/child_context.py +46 -0
  48. soe/lib/context_fields.py +51 -0
  49. soe/lib/inheritance.py +172 -0
  50. soe/lib/jinja_render.py +113 -0
  51. soe/lib/operational.py +51 -0
  52. soe/lib/parent_sync.py +71 -0
  53. soe/lib/register_event.py +75 -0
  54. soe/lib/schema_validation.py +134 -0
  55. soe/lib/yaml_parser.py +14 -0
  56. soe/local_backends/__init__.py +18 -0
  57. soe/local_backends/factory.py +124 -0
  58. soe/local_backends/in_memory/context.py +38 -0
  59. soe/local_backends/in_memory/conversation_history.py +60 -0
  60. soe/local_backends/in_memory/identity.py +52 -0
  61. soe/local_backends/in_memory/schema.py +40 -0
  62. soe/local_backends/in_memory/telemetry.py +38 -0
  63. soe/local_backends/in_memory/workflow.py +33 -0
  64. soe/local_backends/storage/context.py +57 -0
  65. soe/local_backends/storage/conversation_history.py +82 -0
  66. soe/local_backends/storage/identity.py +118 -0
  67. soe/local_backends/storage/schema.py +96 -0
  68. soe/local_backends/storage/telemetry.py +72 -0
  69. soe/local_backends/storage/workflow.py +56 -0
  70. soe/nodes/__init__.py +13 -0
  71. soe/nodes/agent/__init__.py +10 -0
  72. soe/nodes/agent/factory.py +134 -0
  73. soe/nodes/agent/lib/loop_handlers.py +150 -0
  74. soe/nodes/agent/lib/loop_state.py +157 -0
  75. soe/nodes/agent/lib/prompts.py +65 -0
  76. soe/nodes/agent/lib/tools.py +35 -0
  77. soe/nodes/agent/stages/__init__.py +12 -0
  78. soe/nodes/agent/stages/parameter.py +37 -0
  79. soe/nodes/agent/stages/response.py +54 -0
  80. soe/nodes/agent/stages/router.py +37 -0
  81. soe/nodes/agent/state.py +111 -0
  82. soe/nodes/agent/types.py +66 -0
  83. soe/nodes/agent/validation/__init__.py +11 -0
  84. soe/nodes/agent/validation/config.py +95 -0
  85. soe/nodes/agent/validation/operational.py +24 -0
  86. soe/nodes/child/__init__.py +3 -0
  87. soe/nodes/child/factory.py +61 -0
  88. soe/nodes/child/state.py +59 -0
  89. soe/nodes/child/validation/__init__.py +11 -0
  90. soe/nodes/child/validation/config.py +126 -0
  91. soe/nodes/child/validation/operational.py +28 -0
  92. soe/nodes/lib/conditions.py +71 -0
  93. soe/nodes/lib/context.py +24 -0
  94. soe/nodes/lib/conversation_history.py +77 -0
  95. soe/nodes/lib/identity.py +64 -0
  96. soe/nodes/lib/llm_resolver.py +142 -0
  97. soe/nodes/lib/output.py +68 -0
  98. soe/nodes/lib/response_builder.py +91 -0
  99. soe/nodes/lib/signal_emission.py +79 -0
  100. soe/nodes/lib/signals.py +54 -0
  101. soe/nodes/lib/tools.py +100 -0
  102. soe/nodes/llm/__init__.py +7 -0
  103. soe/nodes/llm/factory.py +103 -0
  104. soe/nodes/llm/state.py +76 -0
  105. soe/nodes/llm/types.py +12 -0
  106. soe/nodes/llm/validation/__init__.py +11 -0
  107. soe/nodes/llm/validation/config.py +89 -0
  108. soe/nodes/llm/validation/operational.py +23 -0
  109. soe/nodes/router/__init__.py +3 -0
  110. soe/nodes/router/factory.py +37 -0
  111. soe/nodes/router/state.py +32 -0
  112. soe/nodes/router/validation/__init__.py +11 -0
  113. soe/nodes/router/validation/config.py +58 -0
  114. soe/nodes/router/validation/operational.py +16 -0
  115. soe/nodes/tool/factory.py +66 -0
  116. soe/nodes/tool/lib/__init__.py +11 -0
  117. soe/nodes/tool/lib/conditions.py +35 -0
  118. soe/nodes/tool/lib/failure.py +28 -0
  119. soe/nodes/tool/lib/parameters.py +67 -0
  120. soe/nodes/tool/state.py +66 -0
  121. soe/nodes/tool/types.py +27 -0
  122. soe/nodes/tool/validation/__init__.py +15 -0
  123. soe/nodes/tool/validation/config.py +132 -0
  124. soe/nodes/tool/validation/operational.py +16 -0
  125. soe/validation/__init__.py +18 -0
  126. soe/validation/config.py +195 -0
  127. soe/validation/jinja.py +54 -0
  128. soe/validation/operational.py +110 -0
  129. {soe_ai-0.1.1.dist-info → soe_ai-0.1.2.dist-info}/METADATA +4 -4
  130. soe_ai-0.1.2.dist-info/RECORD +137 -0
  131. {soe_ai-0.1.1.dist-info → soe_ai-0.1.2.dist-info}/WHEEL +1 -1
  132. soe_ai-0.1.1.dist-info/RECORD +0 -10
  133. {soe_ai-0.1.1.dist-info → soe_ai-0.1.2.dist-info}/licenses/LICENSE +0 -0
  134. {soe_ai-0.1.1.dist-info → soe_ai-0.1.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,110 @@
1
+ """
2
+ Operational validation - validates runtime state before node execution.
3
+
4
+ This validates that the context and backends are in a valid state
5
+ for node execution. Runs before each node executes so that operational
6
+ code can trust the structure and avoid defensive programming.
7
+
8
+ Fail-fast: If validation fails, raise immediately with clear message.
9
+ """
10
+
11
+ from typing import Dict, Any
12
+
13
+ from ..types import Backends, SoeError
14
+
15
+
16
+ class OperationalValidationError(SoeError):
17
+ """Raised when operational context is invalid."""
18
+ pass
19
+
20
+
21
+ def validate_operational(
22
+ execution_id: str,
23
+ backends: Backends,
24
+ ) -> Dict[str, Any]:
25
+ """
26
+ Validate that operational context exists and has required structure.
27
+
28
+ Call this before any node execution to ensure __operational__ is valid.
29
+ Returns the context so caller doesn't need to fetch it again.
30
+
31
+ Args:
32
+ execution_id: The execution ID
33
+ backends: Backend services
34
+
35
+ Returns:
36
+ The validated context dict
37
+
38
+ Raises:
39
+ OperationalValidationError: If context or __operational__ is invalid
40
+ """
41
+ context = backends.context.get_context(execution_id)
42
+
43
+ if not context:
44
+ raise OperationalValidationError(
45
+ f"No context found for execution_id '{execution_id}'. "
46
+ f"Context must be initialized before node execution."
47
+ )
48
+
49
+ operational = context.get("__operational__")
50
+
51
+ if operational is None:
52
+ raise OperationalValidationError(
53
+ f"Missing '__operational__' in context for execution_id '{execution_id}'. "
54
+ f"Call initialize_operational_context() before node execution."
55
+ )
56
+
57
+ required_fields = ["signals", "nodes", "llm_calls", "tool_calls", "errors", "main_execution_id"]
58
+ missing = [f for f in required_fields if f not in operational]
59
+
60
+ if missing:
61
+ raise OperationalValidationError(
62
+ f"Invalid '__operational__' structure for execution_id '{execution_id}'. "
63
+ f"Missing fields: {missing}"
64
+ )
65
+
66
+ if not isinstance(operational["signals"], list):
67
+ raise OperationalValidationError(
68
+ f"Invalid '__operational__.signals' - must be a list, got {type(operational['signals']).__name__}"
69
+ )
70
+
71
+ if not isinstance(operational["nodes"], dict):
72
+ raise OperationalValidationError(
73
+ f"Invalid '__operational__.nodes' - must be a dict, got {type(operational['nodes']).__name__}"
74
+ )
75
+
76
+ if not isinstance(operational["llm_calls"], int):
77
+ raise OperationalValidationError(
78
+ f"Invalid '__operational__.llm_calls' - must be an int, got {type(operational['llm_calls']).__name__}"
79
+ )
80
+
81
+ if not isinstance(operational["tool_calls"], int):
82
+ raise OperationalValidationError(
83
+ f"Invalid '__operational__.tool_calls' - must be an int, got {type(operational['tool_calls']).__name__}"
84
+ )
85
+
86
+ if not isinstance(operational["errors"], int):
87
+ raise OperationalValidationError(
88
+ f"Invalid '__operational__.errors' - must be an int, got {type(operational['errors']).__name__}"
89
+ )
90
+
91
+ return context
92
+
93
+
94
+ def validate_backends(backends: Backends) -> None:
95
+ """
96
+ Validate that backends has required attributes.
97
+
98
+ Args:
99
+ backends: Backend services
100
+
101
+ Raises:
102
+ OperationalValidationError: If backends is invalid
103
+ """
104
+ required = ["context", "workflow"]
105
+
106
+ for attr in required:
107
+ if not hasattr(backends, attr) or getattr(backends, attr) is None:
108
+ raise OperationalValidationError(
109
+ f"Invalid backends: missing required attribute '{attr}'"
110
+ )
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: soe-ai
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Signal-driven Orchestration Engine - Agent orchestration with event-driven workflow engine
5
- Author-email: Pedro Garcia <pedro@example.com>
5
+ Author-email: Pedro Garcia <pgarcia14180@gmail.com>
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://github.com/pgarcia14180/soe
8
8
  Project-URL: Documentation, https://github.com/pgarcia14180/soe/tree/master/docs
@@ -220,8 +220,8 @@ execution_id = orchestrate(
220
220
 
221
221
  | Audience | Start Here |
222
222
  |----------|------------|
223
- | **Builders** (workflow authors) | [Documentation](docs/index.md) — Step-by-step chapters |
224
- | **Engineers** (infrastructure) | [Infrastructure Guide](docs/guide_10_infrastructure.md) — Backend protocols |
223
+ | **Builders** (workflow authors) | [Documentation](soe/docs/index.md) — Step-by-step chapters |
224
+ | **Engineers** (infrastructure) | [Infrastructure Guide](soe/docs/guide_10_infrastructure.md) — Backend protocols |
225
225
  | **Researchers** (advanced patterns) | [Advanced Patterns](docs/advanced_patterns/) — Swarm, hybrid, self-evolving |
226
226
 
227
227
  ---
@@ -0,0 +1,137 @@
1
+ soe/__init__.py,sha256=4g0b-2C4wlr3Aq9eSmISxEMeWRCI4fim_I1v4nfW_Cs,1131
2
+ soe/broker.py,sha256=F_lKV0uqi9_dY1NIzQnUFJm84r6xd1CmvXjjfgRpwrM,5956
3
+ soe/docs_index.py,sha256=CQZKGozZWB-uovDQxUts-vjIlS5vq6PmH824k8AJNbo,3507566
4
+ soe/init.py,sha256=SdVV1oTmh63BCtJpaYZavyO0ALfffsFgd75Vb8aJmXI,5928
5
+ soe/types.py,sha256=3CERX7rti_xRSliH2knZKeNDWqbetWg0z-tTQaGZODk,5929
6
+ soe/builtin_tools/__init__.py,sha256=DgFnCFYJ0tsyQqIbkiqe-rYjzaFMxKCuhG5X3ws31R0,1739
7
+ soe/builtin_tools/soe_add_signal.py,sha256=G85UkaOzYEtQDX5CcYk1HL8-aBd48mytVsvzC20fm9w,2583
8
+ soe/builtin_tools/soe_call_tool.py,sha256=2aFPIHhKIvQIwtWbKOyvHBn4tMp_75YurgvRhKH-4QA,3370
9
+ soe/builtin_tools/soe_copy_context.py,sha256=kuffSBSd8qgiqQQCzNr2qp9idW-aQMeQou-CXMHR5po,2812
10
+ soe/builtin_tools/soe_explore_docs.py,sha256=yKanIF8XuSHkN9di3cWDBXdByLUz4L4E2VlfATrpZrk,9957
11
+ soe/builtin_tools/soe_get_available_tools.py,sha256=WtE0EpumNfIc-EGQo8uCG87xQhFaShZwmZf_fJOQiUc,1154
12
+ soe/builtin_tools/soe_get_context.py,sha256=wmWsV_lV_fzzjGyUpM2KQ1A6P1s0DqRA32sBU-coaVY,1463
13
+ soe/builtin_tools/soe_get_workflows.py,sha256=l04xLHHq87T69_9GRdQCzZ9eiv3cvFoJRpvZwxy63-M,2223
14
+ soe/builtin_tools/soe_inject_node.py,sha256=0X1GP23Jqjp3Bm-W-TVToI5VSvYZQ0cCgg2jWfiDpEM,2830
15
+ soe/builtin_tools/soe_inject_workflow.py,sha256=VqLcLObBJHNxG_LphzeXp7WK_YLEJukOGY6WUhyqSkY,3859
16
+ soe/builtin_tools/soe_list_contexts.py,sha256=yDZI4feISa0sue_PYIe96De46-NondA9E3J6fur12kU,2290
17
+ soe/builtin_tools/soe_remove_node.py,sha256=rDe8az7K9FaM4L4nTFdWFJRhte2p4eRXha6iv-5DoZg,2197
18
+ soe/builtin_tools/soe_remove_workflow.py,sha256=AlhjPU1xrj6VqKSwAbBVpt1sv1B3gcnWasKcrJvw12w,1848
19
+ soe/builtin_tools/soe_update_context.py,sha256=1gu0dTYtK-EY1n3qysJQeusfZYmxWoXCt3c7nhXTcRY,1547
20
+ soe/docs/_config.yml,sha256=PBTNeE97HoDj80tgMtpfxrAAGQxr0OiCaMZaJF-qVmo,255
21
+ soe/docs/guide_00_getting_started.md,sha256=ULHQfKSyex5I3FVwENVa3AmOQkMMKVKJ8TaVPpYVVXA,11279
22
+ soe/docs/guide_01_tool.md,sha256=twDxHgQhHYgdWDlmoY0v9xnC-5RX_NbOMCRi68l_b_s,6964
23
+ soe/docs/guide_02_llm.md,sha256=2t9td-V37vWdtdxfsPNFIT4y5w0vXZVQtc-gy6A3Jko,4839
24
+ soe/docs/guide_03_router.md,sha256=614FW8jhwJBZ6TBeyhBfRRDyw3xV6_6byZH74hlgO6A,5645
25
+ soe/docs/guide_04_patterns.md,sha256=Yyzhb0yyFuHZSiPam7UCj6HagkTcqrI3K2MJbwA2nQU,15368
26
+ soe/docs/guide_05_agent.md,sha256=eZAYryU1AypunOM3V8i9DOeCDPcvk0FjMg97355DCPw,6075
27
+ soe/docs/guide_06_schema.md,sha256=kxRKErtpwPGiasf7gxuYouHaQFOgg-dz1A77vPJMvjw,11513
28
+ soe/docs/guide_07_identity.md,sha256=s2FGdS5rB5YD9GW64SYontIw-STreGkb0QRNvEkwlUw,17038
29
+ soe/docs/guide_08_child.md,sha256=whBLBmCH9si17lQfoUgN6U9A5Mc71_TywCYq_XQSfeg,17888
30
+ soe/docs/guide_09_ecosystem.md,sha256=rfoKjskQmpOc4Fl1h6HUSqRExMd8DVnvH2rLNhxjVac,20219
31
+ soe/docs/guide_10_infrastructure.md,sha256=oGZWtE-PJ-CpqGOF5aM5hM4CCXRjuMAA-C4IBhK-ZlE,14154
32
+ soe/docs/guide_11_builtins.md,sha256=rxndeJ8INNxH7w7fWDQOfmCsNbpKwha3ZKPrcw4gZEo,4234
33
+ soe/docs/index.md,sha256=kVJsInGngoHGUf0shEIgPKnaRo7BWTtrXSuS2YCOcQU,5084
34
+ soe/docs/advanced_patterns/guide_fanout_and_aggregations.md,sha256=vWs6-sBqczHI4knFBi7EtNUGdYmknb4Pp_vXp8lHMtY,9459
35
+ soe/docs/advanced_patterns/guide_inheritance.md,sha256=xDC0MYn1oGQfiwy-4z01PpwUcpuLMREHqh61H-oCQWg,12212
36
+ soe/docs/advanced_patterns/hybrid_intelligence.md,sha256=BoxK-MN8WRZOckqigWzOtwHsA47SKSAbzO9ekK06lGs,7142
37
+ soe/docs/advanced_patterns/index.md,sha256=MTs60CftW5jIrPCOumaH_QPfd1TE7ClW0Qvl_ybHqEE,2127
38
+ soe/docs/advanced_patterns/operational.md,sha256=uk7r3Uh5yNIanbW6JrKD-_n_VPO5WZE8AKIkqFJkRFU,23707
39
+ soe/docs/advanced_patterns/self_evolving_workflows.md,sha256=HICTmuwIg-zjmiAXdbyPKmgD0hELoBLn9y54bbwYV1w,11072
40
+ soe/docs/advanced_patterns/swarm_intelligence.md,sha256=rGKReC1beiU4x5pnKF9hWEXAmqrntQj9TnQ8KvKv8YY,6210
41
+ soe/docs/builtins/context.md,sha256=l1sc9q2jFHCSm8w4klcZN32LNsq5xiMT6mk09oynMC8,3655
42
+ soe/docs/builtins/explore_docs.md,sha256=XJRDNAGsxi98k9BHSyRHs06av_gqEVLwgaC1YFKG6NE,3646
43
+ soe/docs/builtins/tools.md,sha256=a5QZLEdddK6WZ1jJ1UPxlmTHHOjm4QhQZ8pC2GOEbr0,3753
44
+ soe/docs/builtins/workflows.md,sha256=M1n2tGECcrCUQwZ-OzF-GqVRx-LNUxTvKDxIv41esx4,4774
45
+ soe/docs/primitives/backends.md,sha256=T_6jhjum6af9gPil4vIZdJtX9tgSGCJk6IQUuiISnyo,8209
46
+ soe/docs/primitives/context.md,sha256=FJ5d_7H8hOYJeSQ5MPzsapMS13WZ2f9IJ6of8TvmwdY,5325
47
+ soe/docs/primitives/node_reference.md,sha256=S8Ifwmhtl3PDex5XpzQAgFd-MmbZRg84vIIdGP0b0Gs,8208
48
+ soe/docs/primitives/primitives.md,sha256=LUtIb1h5b2b3QCWSJrPYHUWAwE4KJjagCDCNJjj_UJo,11519
49
+ soe/docs/primitives/signals.md,sha256=1TBzz5hdTVsvSl1tNKwKl-hRJeLiYatyRplxgxx0za0,26287
50
+ soe/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ soe/lib/child_context.py,sha256=qIosNpCjhvEuLpJUHxRkgXjA78FyasnGrsTTcq9DN-4,1431
52
+ soe/lib/context_fields.py,sha256=Fct7JlzWLQ2268pdKHo8P2o2DVhpIDNwVMQ3o5bcqtI,1363
53
+ soe/lib/inheritance.py,sha256=m8BP-G8UIKuDYZBTXOcz1Jbecr1Tjg31GBTtYGA-GwU,5122
54
+ soe/lib/jinja_render.py,sha256=MTWNvv0XU2WmhcTupTfLkp_n348dL9nBlz0J4oDDm4Q,4041
55
+ soe/lib/operational.py,sha256=pgx-nSOhYXD9pj1vlQqyCMloLLfPazL0WYp785K4mjQ,1416
56
+ soe/lib/parent_sync.py,sha256=h5x20aop3zqgtLWaIJ848sd6hkRcEFvVed99JFBTdxQ,2504
57
+ soe/lib/register_event.py,sha256=3j6NbJPevkAHIbYwm7bOBcvS3xk1XG6sLfAE6sK8lsE,2591
58
+ soe/lib/schema_validation.py,sha256=mivLPUCVdo_P4CD4x7ZOk0Ixos2Xj52QiVNFl88Zy_A,4070
59
+ soe/lib/yaml_parser.py,sha256=dZcG1SarrNfRtDTqDcGeCGvyEXtBt2d38v-isepR5KM,408
60
+ soe/local_backends/__init__.py,sha256=GLBYWxu6o4zlp9ejEOzebrwyiwKzQILOIzrVzzwLQ6A,558
61
+ soe/local_backends/factory.py,sha256=WEvTq34qeb2d91uu9Pze4G2KY24L9zeqy7WBUxm3i-o,4594
62
+ soe/local_backends/in_memory/context.py,sha256=M7TMKDn7LPFOJz61_vFcCVRxDmc1VOr5sx_Xs9Tdias,944
63
+ soe/local_backends/in_memory/conversation_history.py,sha256=AzQl1qiEntUKfw20U0FPHK-Jizj7wTP8bwzTTnZVHxM,1635
64
+ soe/local_backends/in_memory/identity.py,sha256=O-QSPX-wajAzaVeaEniLsIIBe5tCrM8FykuC4N0QEto,1774
65
+ soe/local_backends/in_memory/schema.py,sha256=eXOwKFbFDWZfyRCxrBZx2lYABnZeLNzz1zxMOgRn_es,1216
66
+ soe/local_backends/in_memory/telemetry.py,sha256=-krImbIfa183DblbRq1K7785hSGJF5lu49VCQ66vMNI,1020
67
+ soe/local_backends/in_memory/workflow.py,sha256=STujgxyTpgK0giQJcJvYMUKcoKX_6UopnLOQzEb1lPA,1141
68
+ soe/local_backends/storage/context.py,sha256=ufM58u86MN6rMj0ZGjKJ6_tU0mifaT7NAXoCxN7FXtk,1588
69
+ soe/local_backends/storage/conversation_history.py,sha256=-BV8zlD_6CV3q8CnlHJL0dG0e-1E0YSUx2X_V_y6sDI,2638
70
+ soe/local_backends/storage/identity.py,sha256=adm_zA6XjVsjV-6ZdZOFsSV7i1PvCI0unfBxgc4LhXk,3910
71
+ soe/local_backends/storage/schema.py,sha256=slNFDaiae1pY_PbeYsgdzror9xL2vReIo3XcaX6q4dM,3068
72
+ soe/local_backends/storage/telemetry.py,sha256=K6gcpXDsoH9Pll_Lz-27ff_ad48nCNwfHi5gzC5YNKA,2138
73
+ soe/local_backends/storage/workflow.py,sha256=d3DiwfjR1OP4bnhRLgzdTZQ6xYUnwBh5B3sz0W5sH_k,2094
74
+ soe/nodes/__init__.py,sha256=soAkTMdrAuc82la7TRabTtpiQW2kngd8MlWuJuCRCrM,305
75
+ soe/nodes/agent/__init__.py,sha256=SQaDB9TAiMv5ZjGLX4B1nBnOwX_DGUxqzzDJ4BIT534,171
76
+ soe/nodes/agent/factory.py,sha256=skqPpMcfA9qYtcFEJ2FqjRXhVrvn2XgEPg40dt8KnHw,5359
77
+ soe/nodes/agent/state.py,sha256=2fznePHA-0etOlCepMKVnguFDpooYynTBD21VjI_Fgw,3716
78
+ soe/nodes/agent/types.py,sha256=t25gHmsJ_oYxGXWSWvychvXcXcSenbQAMkET1CA-iO4,1837
79
+ soe/nodes/agent/lib/loop_handlers.py,sha256=ndCoW_hQbtEkoj7UYlvXskZxXc-IgTCG3kBQzjJqQUE,4642
80
+ soe/nodes/agent/lib/loop_state.py,sha256=oft2uP5Rrl5iYrKZ31JX9nslKhi6GZRQZFclTU0w6DU,5474
81
+ soe/nodes/agent/lib/prompts.py,sha256=Nk3115Hq7Pa5FX1w_YZel7Yi1BLcMjLGme-p3UgyOxY,2002
82
+ soe/nodes/agent/lib/tools.py,sha256=8XDof2qYnUw8BWC0VXybMaBx-QwzEfZM5fAbA9VMwc0,986
83
+ soe/nodes/agent/stages/__init__.py,sha256=l3jXE7U4B41w7iTvuvgVrymD_BNIQSNA65oWfMRYtgs,330
84
+ soe/nodes/agent/stages/parameter.py,sha256=R6ylX2Lprf24FGiohN9LQk3C6jrQkTtOWdNNQHKST9g,1052
85
+ soe/nodes/agent/stages/response.py,sha256=khoyIr8nX10DLKvw-fNE7NUZh5uB_rpmmKm6pOt0OG0,1671
86
+ soe/nodes/agent/stages/router.py,sha256=AWtcYD8ae25QQFySg7iKyn9kKIq-8LLEZyqBG7XxL4I,1138
87
+ soe/nodes/agent/validation/__init__.py,sha256=ELLoSXqr1NeVwG766QzTuP2Fm3rLMKBXdhsgRUYOy_E,314
88
+ soe/nodes/agent/validation/config.py,sha256=YQABnBSS4bLZvdhl2N5AfSPsZmhVljWS8ibxDxAeyWs,3834
89
+ soe/nodes/agent/validation/operational.py,sha256=yFVD0wadNx5WH981d3NUHGIxkBMlVduE-N8UVlvqxrg,743
90
+ soe/nodes/child/__init__.py,sha256=Ac85rPNGjefXqTc4poyYi6PYuXqUEVThiF9SSSPV0dY,87
91
+ soe/nodes/child/factory.py,sha256=eELq_v7RVhpRyEu4OY4RzcCnd3lepw7O-uqG0weFgkE,2054
92
+ soe/nodes/child/state.py,sha256=QTzXcTd4CstgCww01-nxzbWHf05lNcn4gfHd1lRl_WA,2080
93
+ soe/nodes/child/validation/__init__.py,sha256=TBPmAlQ92wIIYD22yG8YjfYo25tsUDay1amA4cexPi4,314
94
+ soe/nodes/child/validation/config.py,sha256=IF-IdaNRgNbFhPfr-ssTbnTsC9XgjC9DBv1kl_SqRbk,5421
95
+ soe/nodes/child/validation/operational.py,sha256=NPM1exArEbrzNqBN-SY7DXp-zk8tdHpHHDPjKdnNXfI,859
96
+ soe/nodes/lib/conditions.py,sha256=QlVbaG9UF-VACBxw2pukqJWMgpeqx98QpyaDBjT2P4Y,2437
97
+ soe/nodes/lib/context.py,sha256=1gKkCW4B19yt2NTfeJvWn39V1aT1PCYd2mQ2L-HV1iU,798
98
+ soe/nodes/lib/conversation_history.py,sha256=WTQscCSTElWShehij3lEVSWebHtrGpM_s2RbZxfJSx4,2844
99
+ soe/nodes/lib/identity.py,sha256=HxSVJrjPAyAjMujFOgq-uZkGYrSz6sZbjM1VFi2PSVk,1861
100
+ soe/nodes/lib/llm_resolver.py,sha256=KJYh9Rt3T85XDe8wWyf1p-UPPxF6EYqGCdnd87rUk3o,4138
101
+ soe/nodes/lib/output.py,sha256=bfTwwSmSFr8i5_AoKwrPU-bEMqImo8QDd-AWEY9mac4,2231
102
+ soe/nodes/lib/response_builder.py,sha256=xnx7iKGRay3UNAfWRl934kUEmtb3VfxAoLG7aPWUa8o,3078
103
+ soe/nodes/lib/signal_emission.py,sha256=o69AtiUctwP9E8UCKrfKUcFQJ5USlx-nhiY-F2I2Ibg,2773
104
+ soe/nodes/lib/signals.py,sha256=GD5PnwACVNvQ8VnH5o60ixhwZrO6cFlAb0DwEjW06T4,1829
105
+ soe/nodes/lib/tools.py,sha256=2m5kQQWC46zL0wjj7Amo-m4Hzar56UH11q1z8XMlgmo,3105
106
+ soe/nodes/llm/__init__.py,sha256=2iUEslXqRO5izJZLdecLBUZ0cXsQsD0pWg0CaBY13MI,159
107
+ soe/nodes/llm/factory.py,sha256=3wiZxHGDWdTEi-_rZNAoPz_QTKYUurtd3Hd_aR9goCs,3743
108
+ soe/nodes/llm/state.py,sha256=c4x_22SdYTa1NRz5APjex8Ro_l3ISAixg55-rIG6ucQ,2775
109
+ soe/nodes/llm/types.py,sha256=hqUrvnNRCw_vnqJWIvdru9k4sLh6O3Zk9DSY-7jOE7c,223
110
+ soe/nodes/llm/validation/__init__.py,sha256=HAArh6mw4ixTRx4v8CW44BcpIRpU6tLjLGPd06X9m4Y,308
111
+ soe/nodes/llm/validation/config.py,sha256=j1kr3yDBdC95aDpu7Z7nItN55reaOSBWvQkeybvoA8g,3593
112
+ soe/nodes/llm/validation/operational.py,sha256=fyVsVgCLA1FqBvxDyA7SYYp5qI_3evrhooQHDBVH364,672
113
+ soe/nodes/router/__init__.py,sha256=3a4BcgFLGGcO1xdjcbAnxNjGwhvl8NGRLLxTnCqtkjM,67
114
+ soe/nodes/router/factory.py,sha256=37qyLurhjAuGWwGOb6FbpZ6Ef5Hzw2gBd4dQxWTzuy4,1338
115
+ soe/nodes/router/state.py,sha256=vXZWWQ7BJ0SEZayUoAIX3rEkJTARYHwIiJ7O8N1esHg,886
116
+ soe/nodes/router/validation/__init__.py,sha256=DgU37MHrR90GI1VvvfaUltrFtwpVGlGOc9PBGIVUjX0,317
117
+ soe/nodes/router/validation/config.py,sha256=iR07s31GsyJJBInljRu8qh7zMKHKGoYVf2auLb0lSQQ,2195
118
+ soe/nodes/router/validation/operational.py,sha256=Chldb5tpMe1MfFV3ym5XzneIF2OA8cBTvbfdWchX21c,519
119
+ soe/nodes/tool/factory.py,sha256=cWJD-tNsCQnp6vNGtdbdX7pnQWlsCu1RdClKH6q2KSA,2460
120
+ soe/nodes/tool/state.py,sha256=ncJ0huYPwkKqU_2ITEc3hXOnB7S9a4RbLytZKVxs2uQ,2263
121
+ soe/nodes/tool/types.py,sha256=l3ZjXlOReqYEe8jg1ohzmldaPqQGEmZpkgNFCvWejw4,566
122
+ soe/nodes/tool/lib/__init__.py,sha256=KG1pnYuOAdPofsmX9LZgNc61bqagj1SMv-mzw8J5Hvc,201
123
+ soe/nodes/tool/lib/conditions.py,sha256=3xoBEjBeCZQGGjh8cRumH1IGwvZqv3vw_2zk9Ha6AWU,1111
124
+ soe/nodes/tool/lib/failure.py,sha256=miCrV2Mbx8b6sle1WT_zoaAoAyB7tHQhkwcjxgiDmRY,891
125
+ soe/nodes/tool/lib/parameters.py,sha256=q0c7znyqpRY3L0iI8x3WXTWyjSQ-XzDGw6baVJVdvDw,2182
126
+ soe/nodes/tool/validation/__init__.py,sha256=9sdtiYrPZg4zJ3WXAWg6h4c_oS9SIVgL7Oc7JQTiMfI,382
127
+ soe/nodes/tool/validation/config.py,sha256=tI8mHawFjbXLQ6xSMOJ9mnQUirnoqqK5Gfi9kclB3DE,4632
128
+ soe/nodes/tool/validation/operational.py,sha256=5he58ssGzQ_kXfdy26y4kqNEjo_CAVx989JJxNa5fi0,488
129
+ soe/validation/__init__.py,sha256=oZGAT3Mp8Pzu_D_FSObLUEBTf10dk8C-GhM4tipfAxw,523
130
+ soe/validation/config.py,sha256=hB7Gk_bkoqvf0iES9PNmVTcKgyUm_0UgiCSXcc30ztc,6834
131
+ soe/validation/jinja.py,sha256=_Ykj-UT9i3wQRXCyQgja3boCZuI3lrqOnf5C3iB1Kmg,1746
132
+ soe/validation/operational.py,sha256=P5SrE_8345IhHvsXpJ-XDEp1sIQVFhGXDBNQhuh7sTo,3628
133
+ soe_ai-0.1.2.dist-info/licenses/LICENSE,sha256=SvEn330zvSOu83Vi4lDCX2QHgr6bmSSXOV1YClLGk1Y,1069
134
+ soe_ai-0.1.2.dist-info/METADATA,sha256=ro4JH1Nr4YbaGYsgVpq-cz3_sGsKyKOzX4q35aJ4MaQ,8794
135
+ soe_ai-0.1.2.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
136
+ soe_ai-0.1.2.dist-info/top_level.txt,sha256=TUufXyVAQnzN6iT6zRb4dRHdfBSiWXuAL8EoyvugZuY,4
137
+ soe_ai-0.1.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,10 +0,0 @@
1
- soe/__init__.py,sha256=4g0b-2C4wlr3Aq9eSmISxEMeWRCI4fim_I1v4nfW_Cs,1131
2
- soe/broker.py,sha256=F_lKV0uqi9_dY1NIzQnUFJm84r6xd1CmvXjjfgRpwrM,5956
3
- soe/docs_index.py,sha256=L-VkR0rfr9qGbMHIhhc_gAZKToBsFyiAxW42qj1bFag,3425867
4
- soe/init.py,sha256=SdVV1oTmh63BCtJpaYZavyO0ALfffsFgd75Vb8aJmXI,5928
5
- soe/types.py,sha256=3CERX7rti_xRSliH2knZKeNDWqbetWg0z-tTQaGZODk,5929
6
- soe_ai-0.1.1.dist-info/licenses/LICENSE,sha256=SvEn330zvSOu83Vi4lDCX2QHgr6bmSSXOV1YClLGk1Y,1069
7
- soe_ai-0.1.1.dist-info/METADATA,sha256=3i9sm4-lbSA6kKZhHcEeIkkvvPH2gWDrIaAK7wh3Pl8,8781
8
- soe_ai-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
- soe_ai-0.1.1.dist-info/top_level.txt,sha256=TUufXyVAQnzN6iT6zRb4dRHdfBSiWXuAL8EoyvugZuY,4
10
- soe_ai-0.1.1.dist-info/RECORD,,