fastworkflow 2.15.2__tar.gz → 2.15.4__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 (174) hide show
  1. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/PKG-INFO +1 -1
  2. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/wildcard.py +1 -0
  3. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/chat_session.py +59 -17
  4. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/get_user_details.py +1 -0
  5. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/workflow_agent.py +14 -8
  6. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/pyproject.toml +1 -1
  7. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/LICENSE +0 -0
  8. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/README.md +0 -0
  9. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/.DS_Store +0 -0
  10. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/__init__.py +0 -0
  11. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_commands/.gitkeep +0 -0
  12. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/__init__.py +0 -0
  13. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/__init__.py +0 -0
  14. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/abort.py +0 -0
  15. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/you_misunderstood.py +0 -0
  16. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/go_up.py +0 -0
  17. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/reset_context.py +0 -0
  18. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_can_i_do.py +0 -0
  19. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_is_current_context.py +0 -0
  20. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/__init__.py +0 -0
  21. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/_workflows/command_metadata_extraction/command_context_model.json +0 -0
  22. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/__main__.py +0 -0
  23. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/ast_class_extractor.py +0 -0
  24. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/class_analysis_structures.py +0 -0
  25. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/cli_specification.md +0 -0
  26. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/command_dependency_resolver.py +0 -0
  27. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/command_file_generator.py +0 -0
  28. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/command_file_template.py +0 -0
  29. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/command_import_utils.py +0 -0
  30. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/command_stub_generator.py +0 -0
  31. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/context_folder_generator.py +0 -0
  32. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/context_model_generator.py +0 -0
  33. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/dependency_manager.py +0 -0
  34. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/dir_scanner.py +0 -0
  35. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/documentation_generator.py +0 -0
  36. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/genai_postprocessor.py +0 -0
  37. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/inheritance_block_regenerator.py +0 -0
  38. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/libcst_transformers.py +0 -0
  39. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/navigator_stub_generator.py +0 -0
  40. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/pydantic_model_generator.py +0 -0
  41. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/build/utterance_generator.py +0 -0
  42. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/cache_matching.py +0 -0
  43. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/cli.py +0 -0
  44. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/command_context_model.py +0 -0
  45. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/command_directory.py +0 -0
  46. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/command_executor.py +0 -0
  47. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/command_interfaces.py +0 -0
  48. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/command_metadata_api.py +0 -0
  49. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/command_routing.py +0 -0
  50. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/docs/context_modules_prd.txt +0 -0
  51. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/extended_workflow_example/README.md +0 -0
  52. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/extended_workflow_example/_commands/WorkItem/get_status.py +0 -0
  53. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/extended_workflow_example/_commands/generate_report.py +0 -0
  54. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/extended_workflow_example/_commands/startup.py +0 -0
  55. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/extended_workflow_example/simple_workflow_template.json +0 -0
  56. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/extended_workflow_example/workflow_inheritance_model.json +0 -0
  57. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/fastworkflow.env +0 -0
  58. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/fastworkflow.passwords.env +0 -0
  59. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/hello_world/_commands/README.md +0 -0
  60. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/hello_world/_commands/add_two_numbers.py +0 -0
  61. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/hello_world/_commands/context_inheritance_model.json +0 -0
  62. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/hello_world/application/add_two_numbers.py +0 -0
  63. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_1/_commands/context_inheritance_model.json +0 -0
  64. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_1/_commands/send_message.py +0 -0
  65. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_1/application/send_message.py +0 -0
  66. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_2/_commands/User/send_message.py +0 -0
  67. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_2/_commands/context_inheritance_model.json +0 -0
  68. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_2/_commands/startup.py +0 -0
  69. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_2/application/user.py +0 -0
  70. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_3/_commands/PremiumUser/send_priority_message.py +0 -0
  71. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_3/_commands/User/send_message.py +0 -0
  72. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_3/_commands/context_inheritance_model.json +0 -0
  73. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_3/_commands/initialize_user.py +0 -0
  74. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_3/application/user.py +0 -0
  75. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/_ChatRoom.py +0 -0
  76. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/add_user.py +0 -0
  77. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/broadcast_message.py +0 -0
  78. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/get_current_user.py +0 -0
  79. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/list_users.py +0 -0
  80. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/set_current_user.py +0 -0
  81. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/_PremiumUser.py +0 -0
  82. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/send_priority_message.py +0 -0
  83. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/User/_User.py +0 -0
  84. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/User/send_message.py +0 -0
  85. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/context_inheritance_model.json +0 -0
  86. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/_commands/set_root_context.py +0 -0
  87. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/application/chatroom.py +0 -0
  88. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/application/user.py +0 -0
  89. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/context_hierarchy_model.json +0 -0
  90. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/messaging_app_4/startup_action.json +0 -0
  91. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/calculate.py +0 -0
  92. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/cancel_pending_order.py +0 -0
  93. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/exchange_delivered_order_items.py +0 -0
  94. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_email.py +0 -0
  95. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_name_zip.py +0 -0
  96. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/get_order_details.py +0 -0
  97. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/get_product_details.py +0 -0
  98. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/list_all_product_types.py +0 -0
  99. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_address.py +0 -0
  100. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_items.py +0 -0
  101. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_payment.py +0 -0
  102. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/modify_user_address.py +0 -0
  103. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/return_delivered_order_items.py +0 -0
  104. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/_commands/transfer_to_human_agents.py +0 -0
  105. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/context_inheritance_model.json +0 -0
  106. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/retail_data/__init__.py +0 -0
  107. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/retail_data/orders.json +0 -0
  108. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/retail_data/products.json +0 -0
  109. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/retail_data/users.json +0 -0
  110. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/calculate.py +0 -0
  111. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/cancel_pending_order.py +0 -0
  112. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/exchange_delivered_order_items.py +0 -0
  113. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_email.py +0 -0
  114. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_name_zip.py +0 -0
  115. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/get_order_details.py +0 -0
  116. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/get_product_details.py +0 -0
  117. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/get_user_details.py +0 -0
  118. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/list_all_product_types.py +0 -0
  119. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_address.py +0 -0
  120. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_items.py +0 -0
  121. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_payment.py +0 -0
  122. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/modify_user_address.py +0 -0
  123. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/return_delivered_order_items.py +0 -0
  124. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/think.py +0 -0
  125. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/tool.py +0 -0
  126. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/tools/transfer_to_human_agents.py +0 -0
  127. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/retail_workflow/workflow_description.txt +0 -0
  128. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/__init__.py +0 -0
  129. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/_WorkItem.py +0 -0
  130. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/add_child_workitem.py +0 -0
  131. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/get_status.py +0 -0
  132. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/go_to_workitem.py +0 -0
  133. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/mark_as_complete.py +0 -0
  134. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_first_child_workitem.py +0 -0
  135. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_last_child_workitem.py +0 -0
  136. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_next_workitem.py +0 -0
  137. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_previous_workitem.py +0 -0
  138. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_all_child_workitems.py +0 -0
  139. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_child_workitem.py +0 -0
  140. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/show_schema.py +0 -0
  141. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/_commands/startup.py +0 -0
  142. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/application/__init__.py +0 -0
  143. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/application/workitem.py +0 -0
  144. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/simple_workflow_template.json +0 -0
  145. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/examples/simple_workflow_template/startup_action.json +0 -0
  146. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/mcp_server.py +0 -0
  147. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/model_pipeline_training.py +0 -0
  148. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/refine/__main__.py +0 -0
  149. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/run/__init__.py +0 -0
  150. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/run/__main__.py +0 -0
  151. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/run_agent/__init__.py +0 -0
  152. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/run_agent/__main__.py +0 -0
  153. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/run_agent/agent_module.py +0 -0
  154. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/train/__init__.py +0 -0
  155. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/train/__main__.py +0 -0
  156. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/train/generate_synthetic.py +0 -0
  157. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/user_message_queues.py +0 -0
  158. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/__init__.py +0 -0
  159. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/command_dependency_graph.py +0 -0
  160. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/context_utils.py +0 -0
  161. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/dspy_cache_utils.py +0 -0
  162. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/dspy_logger.py +0 -0
  163. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/dspy_utils.py +0 -0
  164. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/env.py +0 -0
  165. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/fuzzy_match.py +0 -0
  166. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/generate_param_examples.py +0 -0
  167. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/logging.py +0 -0
  168. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/parameterize_func_decorator.py +0 -0
  169. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/pydantic_model_2_dspy_signature_class.py +0 -0
  170. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/python_utils.py +0 -0
  171. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/signatures.py +0 -0
  172. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/utils/startup_progress.py +0 -0
  173. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/workflow.py +0 -0
  174. {fastworkflow-2.15.2 → fastworkflow-2.15.4}/fastworkflow/workflow_inheritance_model.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastworkflow
3
- Version: 2.15.2
3
+ Version: 2.15.4
4
4
  Summary: A framework for rapidly building large-scale, deterministic, interactive workflows with a fault-tolerant, conversational UX
5
5
  License: Apache-2.0
6
6
  Keywords: fastworkflow,ai,workflow,llm,openai
@@ -602,6 +602,7 @@ class ResponseGenerator:
602
602
  if cnp_output.error_msg:
603
603
  workflow_context = workflow.context
604
604
  workflow_context["NLU_Pipeline_Stage"] = NLUPipelineStage.INTENT_AMBIGUITY_CLARIFICATION
605
+ workflow_context["command"] = command
605
606
  workflow.context = workflow_context
606
607
  return CommandOutput(
607
608
  command_responses=[
@@ -424,14 +424,25 @@ class ChatSession:
424
424
  if os.path.exists("action.json"):
425
425
  os.remove("action.json")
426
426
 
427
- refined_message = f'messsage\n{self._think_and_plan(message)}'
427
+ refined_message = f'messsage\n{self._think_and_plan(message, self.conversation_history)}'
428
428
 
429
429
  lm = dspy_utils.get_lm("LLM_AGENT", "LITELLM_API_KEY_AGENT")
430
- with dspy.context(lm=lm):
431
- agent_result = self._workflow_tool_agent(
432
- user_query=refined_message,
433
- conversation_history=self.conversation_history
434
- )
430
+ from dspy.utils.exceptions import AdapterParseError
431
+ # Retry logic for AdapterParseError
432
+ max_retries = 2
433
+ for attempt in range(max_retries):
434
+ try:
435
+ with dspy.context(lm=lm, adapter=dspy.ChatAdapter()):
436
+ agent_result = self._workflow_tool_agent(
437
+ user_query=refined_message,
438
+ conversation_history=self.conversation_history
439
+ )
440
+ break # Success, exit retry loop
441
+ except AdapterParseError as _:
442
+ if attempt == max_retries - 1: # Last attempt
443
+ raise # Re-raise the exception if all retries failed
444
+ # Continue to next attempt
445
+
435
446
  # dspy.inspect_history(n=1)
436
447
 
437
448
  # Extract the final result from the agent
@@ -441,18 +452,21 @@ class ChatSession:
441
452
  else str(agent_result)
442
453
  )
443
454
 
444
- self.conversation_history.messages.append(
445
- {"user_query": message,
446
- "agent_response": result_text}
447
- )
448
-
449
455
  # Create CommandOutput with the agent's response
450
456
  command_response = fastworkflow.CommandResponse(response=result_text)
457
+
458
+ user_instructions_summary = message
451
459
  # Attach actions captured during agent execution as artifacts if available
452
460
  if os.path.exists("action.json"):
453
461
  with open("action.json", "r", encoding="utf-8") as f:
454
462
  actions = [json.loads(line) for line in f if line.strip()]
455
- command_response.artifacts["extracted_actions"] = actions
463
+ user_instructions_summary = self._extract_user_instructions(message, actions)
464
+ command_response.artifacts["user_instructions_summary"] = user_instructions_summary
465
+
466
+ self.conversation_history.messages.append(
467
+ {"user_instructions": user_instructions_summary,
468
+ "agent_response": result_text}
469
+ )
456
470
 
457
471
  command_output = fastworkflow.CommandOutput(
458
472
  command_responses=[command_response]
@@ -588,16 +602,17 @@ class ChatSession:
588
602
 
589
603
  return command_output
590
604
 
591
- def _think_and_plan(self, user_query: str) -> str:
605
+ def _think_and_plan(self, user_query: str, conversation_history: dspy.History) -> str:
592
606
  """
593
- Returns a refined plan by breaking down a user_query into simpler tasks based only on available commands and returns a todo list.
607
+ Returns a refined plan by breaking down a user_query into simpler tasks.
594
608
  """
595
609
  class TaskPlannerSignature(dspy.Signature):
596
610
  """
597
- Break down a user_query into simpler tasks based only on available commands and return a todo list.
611
+ Break down a user_query into simpler tasks based only on available commands and conversation_history.
598
612
  If user_query is simple, return a single todo that is the user_query as-is
599
613
  """
600
614
  user_query: str = dspy.InputField()
615
+ conversation_history: dspy.History = dspy.InputField()
601
616
  available_commands: list[str] = dspy.InputField()
602
617
  todo_list: list[str] = dspy.OutputField(desc="task descriptions as short sentences")
603
618
 
@@ -611,9 +626,36 @@ class ChatSession:
611
626
  planner_lm = dspy_utils.get_lm("LLM_PLANNER", "LITELLM_API_KEY_PLANNER")
612
627
  with dspy.context(lm=planner_lm):
613
628
  task_planner_func = dspy.ChainOfThought(TaskPlannerSignature)
614
- prediction = task_planner_func(user_query=user_query, available_commands=available_commands)
629
+ prediction = task_planner_func(
630
+ user_query=user_query,
631
+ conversation_history=conversation_history,
632
+ available_commands=available_commands)
615
633
 
616
634
  if not prediction.todo_list or (len(prediction.todo_list) == 1 and prediction.todo_list[0] == user_query):
617
635
  return user_query
618
636
 
619
- return f"{user_query}\nNext steps:\n{'\n'.join([f'{i + 1}. {task}' for i, task in enumerate(prediction.todo_list)])}"
637
+ steps_list = '\n'.join([f'{i + 1}. {task}' for i, task in enumerate(prediction.todo_list)])
638
+ return f"{user_query}\nNext steps:\n{steps_list}"
639
+
640
+
641
+ def _extract_user_instructions(self,
642
+ user_query: str, workflow_actions: list[dict[str, str]]) -> str:
643
+ """
644
+ Summarizes user instructions based on original user query and subsequent user feedback in workflow actions.
645
+ """
646
+ class UserInstructionCompilerSignature(dspy.Signature):
647
+ """
648
+ Concise summary of user instructions based on their commands to the workflow.
649
+ Include parameter values passed in commands in the summary.
650
+ """
651
+ commands_list: list[str] = dspy.InputField()
652
+ user_instructions_summary: str = dspy.OutputField(desc="A single paragraph summary")
653
+
654
+ commands_list: list[str] = [user_query]
655
+ commands_list.extend([wf_action['command'] for wf_action in workflow_actions if 'command' in wf_action])
656
+
657
+ planner_lm = dspy_utils.get_lm("LLM_PLANNER", "LITELLM_API_KEY_PLANNER")
658
+ with dspy.context(lm=planner_lm):
659
+ uic_func = dspy.ChainOfThought(UserInstructionCompilerSignature)
660
+ prediction = uic_func(commands_list=commands_list)
661
+ return prediction.user_instructions_summary
@@ -50,6 +50,7 @@ class Signature:
50
50
  "What details do you have on my user account?",
51
51
  "Can you show me everything tied to my profile?",
52
52
  "I'd like to review my account and recent activity.",
53
+ "retrieve user details"
53
54
  ]
54
55
  template_utterances: List[str] = []
55
56
 
@@ -14,7 +14,7 @@ from fastworkflow.mcp_server import FastWorkflowMCPServer
14
14
 
15
15
  class WorkflowAgentSignature(dspy.Signature):
16
16
  """
17
- Carefully review the user request and execute the todo list using available tools for building the final answer.
17
+ Carefully review the user request and conversation_history, then execute the todo list using available tools for building the final answer.
18
18
  All the tasks in the todo list must be completed before returning the final answer.
19
19
  """
20
20
  user_query = dspy.InputField(desc="The natural language user query.")
@@ -75,7 +75,7 @@ def _execute_workflow_query(command: str, chat_session_obj: fastworkflow.ChatSes
75
75
  """
76
76
  Executes the command and returns either a response, or a clarification request.
77
77
  Use the "what_can_i_do" tool to get details on available commands, including their names and parameters. Fyi, values in the 'examples' field are fake and for illustration purposes only.
78
- Commands must be formatted as follows: command_name <param1_name>param1_value</param1_name> <param2_name>param2_value</param2_name> ...
78
+ Commands must be formatted using plain text for command name followed by XML tags enclosing parameter values (if any) as follows: command_name <param1_name>param1_value</param1_name> <param2_name>param2_value</param2_name> ...
79
79
  Don't use this tool to respond to a clarification requests in PARAMETER EXTRACTION ERROR state
80
80
  """
81
81
  # Directly invoke the command without going through queues
@@ -185,12 +185,18 @@ def initialize_workflow_tool_agent(mcp_server: FastWorkflowMCPServer, max_iters:
185
185
  Commands must be formatted using plain text for command name followed by XML tags enclosing parameter values (if any) as follows: command_name <param1_name>param1_value</param1_name> <param2_name>param2_value</param2_name> ...
186
186
  Don't use this tool to respond to a clarification requests in PARAMETER EXTRACTION ERROR state
187
187
  """
188
- try:
189
- return _execute_workflow_query(command, chat_session_obj=chat_session_obj)
190
- except Exception as e:
191
- message = f"Terminate immediately! Exception processing {command}: {str(e)}"
192
- logger.critical(message)
193
- return message
188
+ # Retry logic for workflow execution
189
+ max_retries = 2
190
+ for attempt in range(max_retries):
191
+ try:
192
+ return _execute_workflow_query(command, chat_session_obj=chat_session_obj)
193
+ except Exception as e:
194
+ if attempt == max_retries - 1: # Last attempt
195
+ message = f"Terminate immediately! Exception processing {command}: {str(e)}"
196
+ logger.critical(message)
197
+ return message
198
+ # Continue to next attempt
199
+ logger.warning(f"Attempt {attempt + 1} failed for command '{command}': {str(e)}")
194
200
 
195
201
  def missing_information_guidance(how_to_find_request: str) -> str:
196
202
  """
@@ -9,7 +9,7 @@ repository = "https://github.com/radiantlogicinc/fastworkflow"
9
9
 
10
10
  [tool.poetry]
11
11
  name = "fastworkflow"
12
- version = "2.15.2"
12
+ version = "2.15.4"
13
13
  description = "A framework for rapidly building large-scale, deterministic, interactive workflows with a fault-tolerant, conversational UX"
14
14
  authors = ["Dhar Rawal <drawal@radiantlogic.com>"]
15
15
  license = "Apache-2.0"
File without changes
File without changes