soprano-sdk 0.2.17__tar.gz → 0.2.18__tar.gz

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 (109) hide show
  1. soprano_sdk-0.2.18/.claude/settings.local.json +7 -0
  2. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/PKG-INFO +1 -1
  3. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/pyproject.toml +1 -1
  4. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/authenticators/mfa.py +1 -1
  5. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_adaptor_logging.py +1 -1
  6. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/.github/workflows/test_build_and_publish.yaml +0 -0
  7. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/.gitignore +0 -0
  8. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/.python-version +0 -0
  9. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/CLAUDE.md +0 -0
  10. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/LICENSE +0 -0
  11. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/README.md +0 -0
  12. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/concert_booking/__init__.py +0 -0
  13. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/concert_booking/booking_helpers.py +0 -0
  14. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/concert_booking/concert_ticket_booking.yaml +0 -0
  15. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/concert_booking/concert_tools.py +0 -0
  16. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/concert_booking/example_runner.py +0 -0
  17. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/concert_booking/tool.py +0 -0
  18. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/framework_example.yaml +0 -0
  19. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/greeting_functions.py +0 -0
  20. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/greeting_workflow.yaml +0 -0
  21. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/main.py +0 -0
  22. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/payment_async_functions.py +0 -0
  23. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/payment_async_workflow.yaml +0 -0
  24. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/persistence/README.md +0 -0
  25. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/persistence/conversation_based.py +0 -0
  26. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/persistence/entity_based.py +0 -0
  27. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/persistence/mongodb_demo.py +0 -0
  28. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/return_functions.py +0 -0
  29. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/return_workflow.yaml +0 -0
  30. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/structured_output_example.yaml +0 -0
  31. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/supervisors/README.md +0 -0
  32. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/supervisors/crewai_supervisor_ui.py +0 -0
  33. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/supervisors/langgraph_supervisor_ui.py +0 -0
  34. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/supervisors/tools/__init__.py +0 -0
  35. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/supervisors/tools/crewai_tools.py +0 -0
  36. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/supervisors/tools/langgraph_tools.py +0 -0
  37. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/supervisors/workflow_tools.py +0 -0
  38. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/test_payment_async.py +0 -0
  39. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/tools/__init__.py +0 -0
  40. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/tools/address.py +0 -0
  41. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/examples/validator.py +0 -0
  42. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/legacy/langgraph_demo.py +0 -0
  43. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/legacy/langgraph_selfloop_demo.py +0 -0
  44. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/legacy/langgraph_v.py +0 -0
  45. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/legacy/main.py +0 -0
  46. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/legacy/return_fsm.excalidraw +0 -0
  47. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/legacy/return_state_machine.png +0 -0
  48. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/legacy/ui.py +0 -0
  49. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/scripts/visualize_workflow.py +0 -0
  50. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/scripts/workflow_demo.py +0 -0
  51. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/scripts/workflow_demo_ui.py +0 -0
  52. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/__init__.py +0 -0
  53. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/agents/__init__.py +0 -0
  54. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/agents/adaptor.py +0 -0
  55. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/agents/factory.py +0 -0
  56. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/agents/structured_output.py +0 -0
  57. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/authenticators/__init__.py +0 -0
  58. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/core/__init__.py +0 -0
  59. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/core/constants.py +0 -0
  60. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/core/engine.py +0 -0
  61. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/core/rollback_strategies.py +0 -0
  62. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/core/state.py +0 -0
  63. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/engine.py +0 -0
  64. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/nodes/__init__.py +0 -0
  65. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/nodes/async_function.py +0 -0
  66. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/nodes/base.py +0 -0
  67. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/nodes/call_function.py +0 -0
  68. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/nodes/collect_input.py +0 -0
  69. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/nodes/factory.py +0 -0
  70. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/routing/__init__.py +0 -0
  71. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/routing/router.py +0 -0
  72. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/tools.py +0 -0
  73. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/utils/__init__.py +0 -0
  74. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/utils/function.py +0 -0
  75. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/utils/logger.py +0 -0
  76. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/utils/template.py +0 -0
  77. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/utils/tool.py +0 -0
  78. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/utils/tracing.py +0 -0
  79. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/validation/__init__.py +0 -0
  80. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/validation/schema.py +0 -0
  81. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/soprano_sdk/validation/validator.py +0 -0
  82. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/debug_jinja2.py +0 -0
  83. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_agent_factory.py +0 -0
  84. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_async_function.py +0 -0
  85. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_collect_input_refactor.py +0 -0
  86. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_external_values.py +0 -0
  87. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_inputs_validation.py +0 -0
  88. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_jinja2_path.py +0 -0
  89. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_jinja2_standalone.py +0 -0
  90. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_mfa_scenarios.py +0 -0
  91. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_persistence.py +0 -0
  92. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_structured_output.py +0 -0
  93. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_transition_routing.py +0 -0
  94. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/tests/test_workflow_tool_context_update.py +0 -0
  95. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/todo.md +0 -0
  96. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/.eslintrc.cjs +0 -0
  97. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/.gitignore +0 -0
  98. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/README.md +0 -0
  99. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/index.html +0 -0
  100. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/package-lock.json +0 -0
  101. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/package.json +0 -0
  102. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/src/App.jsx +0 -0
  103. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/src/CustomNode.jsx +0 -0
  104. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/src/StepDetailsModal.jsx +0 -0
  105. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/src/WorkflowGraph.jsx +0 -0
  106. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/src/WorkflowInfoPanel.jsx +0 -0
  107. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/src/assets/react.svg +0 -0
  108. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/src/main.jsx +0 -0
  109. {soprano_sdk-0.2.17 → soprano_sdk-0.2.18}/workflow-visualizer/vite.config.js +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(uv run pytest:*)"
5
+ ]
6
+ }
7
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: soprano-sdk
3
- Version: 0.2.17
3
+ Version: 0.2.18
4
4
  Summary: YAML-driven workflow engine with AI agent integration for building conversational SOPs
5
5
  Author: Arvind Thangamani
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "soprano-sdk"
7
- version = "0.2.17"
7
+ version = "0.2.18"
8
8
  description = "YAML-driven workflow engine with AI agent integration for building conversational SOPs"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -176,7 +176,7 @@ class MFANodeConfig:
176
176
  """)
177
177
 
178
178
  if mfa_model := mfa_config.get('model'):
179
- agent_config.update(model_name=mfa_model)
179
+ agent_config.update(model=mfa_model)
180
180
 
181
181
  max_attempts = mfa_config.get('max_attempts', 3)
182
182
  on_max_attempts_reached = mfa_config.get('on_max_attempts_reached')
@@ -66,7 +66,7 @@ class TestCrewAIAdapterLogging:
66
66
  adapter.invoke([{"role": "user", "content": "Hello"}])
67
67
 
68
68
  # Verify correct logging
69
- mock_logger.info.assert_called_once_with(
69
+ mock_logger.info.assert_any_call(
70
70
  "Invoking CrewAIAgentAdapter agent with messages"
71
71
  )
72
72
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes