soprano-sdk 0.2.21__py3-none-any.whl → 0.2.22__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.
soprano_sdk/tools.py CHANGED
@@ -169,7 +169,8 @@ class WorkflowTool:
169
169
  initial_context: Optional[Dict[str, Any]]
170
170
  ) -> Dict[str, Any]:
171
171
  """
172
- Filter initial_context to exclude fields that have already been collected.
172
+ Filter initial_context to exclude fields that have already been collected
173
+ or are currently being collected.
173
174
 
174
175
  Args:
175
176
  current_state: Current workflow state
@@ -193,6 +194,20 @@ class WorkflowTool:
193
194
  if executed_node_id in node_to_field_map:
194
195
  collected_fields.add(node_to_field_map[executed_node_id])
195
196
 
197
+ # Also exclude fields that are currently being collected (actively collecting)
198
+ # This prevents initial_context from overriding user input
199
+ current_status = current_state.get(WorkflowKeys.STATUS, "")
200
+ if "collecting" in current_status:
201
+ # Status format: "node_id_collecting" (e.g., "get_name_collecting")
202
+ for node_id, field in node_to_field_map.items():
203
+ if f"{node_id}_collecting" == current_status:
204
+ collected_fields.add(field)
205
+ logger.info(
206
+ f"[WorkflowTool] Field '{field}' is currently being collected. "
207
+ f"Excluding from initial_context to preserve user input."
208
+ )
209
+ break
210
+
196
211
  # Filter initial_context to exclude already-collected fields
197
212
  filtered_context = {
198
213
  field: value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: soprano-sdk
3
- Version: 0.2.21
3
+ Version: 0.2.22
4
4
  Summary: YAML-driven workflow engine with AI agent integration for building conversational SOPs
5
5
  Author: Arvind Thangamani
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  soprano_sdk/__init__.py,sha256=YZVl_SwQ0C-E_5_f1AwUe_hPcbgCt8k7k4_WAHM8vjE,243
2
2
  soprano_sdk/engine.py,sha256=EFK91iTHjp72otLN6Kg-yeLye2J3CAKN0QH4FI2taL8,14838
3
- soprano_sdk/tools.py,sha256=D2EGT513OGjAA5h0RSy79OA34jgM30S8d49AG4JdL4M,13653
3
+ soprano_sdk/tools.py,sha256=8SdORsy2jdG3OL_dU3Mc7yEwYK1FRTWuJZtsnZmqctw,14463
4
4
  soprano_sdk/agents/__init__.py,sha256=Yzbtv6iP_ABRgZo0IUjy9vDofEvLFbOjuABw758176A,636
5
5
  soprano_sdk/agents/adaptor.py,sha256=5y9e2F_ZILOPrkunvv0GhjVdniAnOOTaD4j3Ig-xd3c,5041
6
6
  soprano_sdk/agents/factory.py,sha256=CvXhpvtjf_Hb4Ce8WKAa0FzyY5Jm6lssvIIfSXu7jPY,9788
@@ -30,7 +30,7 @@ soprano_sdk/utils/tracing.py,sha256=gSHeBDLe-MbAZ9rkzpCoGFveeMdR9KLaA6tteB0IWjk,
30
30
  soprano_sdk/validation/__init__.py,sha256=ImChmO86jYHU90xzTttto2-LmOUOmvY_ibOQaLRz5BA,262
31
31
  soprano_sdk/validation/schema.py,sha256=NGnxP3TKcB-cylVcdOkxYhTPBbHnbmKTG_EamfA1VdY,17682
32
32
  soprano_sdk/validation/validator.py,sha256=f-e2MMRL70asOIXr_0Fsd5CgGKVRiQp7AaYsHA45Km0,8792
33
- soprano_sdk-0.2.21.dist-info/METADATA,sha256=YalPq6Je3QAYK_JW5cJrDnVkF9iBgqYcctM93OZXMaE,20410
34
- soprano_sdk-0.2.21.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
35
- soprano_sdk-0.2.21.dist-info/licenses/LICENSE,sha256=A1aBauSjPNtVehOXJe3WuvdU2xvM9H8XmigFMm6665s,1073
36
- soprano_sdk-0.2.21.dist-info/RECORD,,
33
+ soprano_sdk-0.2.22.dist-info/METADATA,sha256=_D5cUQSQUT4e6uH3UYIfsMCFimVN_dmcy6fy4alJyhQ,20410
34
+ soprano_sdk-0.2.22.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
35
+ soprano_sdk-0.2.22.dist-info/licenses/LICENSE,sha256=A1aBauSjPNtVehOXJe3WuvdU2xvM9H8XmigFMm6665s,1073
36
+ soprano_sdk-0.2.22.dist-info/RECORD,,