fastworkflow 2.15.0__tar.gz → 2.15.2__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.0 → fastworkflow-2.15.2}/PKG-INFO +1 -1
  2. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/chat_session.py +16 -1
  3. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/command_executor.py +2 -2
  4. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/workflow_agent.py +34 -7
  5. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/pyproject.toml +1 -1
  6. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/LICENSE +0 -0
  7. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/README.md +0 -0
  8. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/.DS_Store +0 -0
  9. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/__init__.py +0 -0
  10. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_commands/.gitkeep +0 -0
  11. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/__init__.py +0 -0
  12. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/__init__.py +0 -0
  13. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/abort.py +0 -0
  14. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/you_misunderstood.py +0 -0
  15. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/go_up.py +0 -0
  16. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/reset_context.py +0 -0
  17. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_can_i_do.py +0 -0
  18. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_is_current_context.py +0 -0
  19. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/__init__.py +0 -0
  20. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/_commands/wildcard.py +0 -0
  21. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/_workflows/command_metadata_extraction/command_context_model.json +0 -0
  22. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/__main__.py +0 -0
  23. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/ast_class_extractor.py +0 -0
  24. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/class_analysis_structures.py +0 -0
  25. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/cli_specification.md +0 -0
  26. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/command_dependency_resolver.py +0 -0
  27. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/command_file_generator.py +0 -0
  28. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/command_file_template.py +0 -0
  29. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/command_import_utils.py +0 -0
  30. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/command_stub_generator.py +0 -0
  31. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/context_folder_generator.py +0 -0
  32. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/context_model_generator.py +0 -0
  33. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/dependency_manager.py +0 -0
  34. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/dir_scanner.py +0 -0
  35. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/documentation_generator.py +0 -0
  36. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/genai_postprocessor.py +0 -0
  37. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/inheritance_block_regenerator.py +0 -0
  38. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/libcst_transformers.py +0 -0
  39. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/navigator_stub_generator.py +0 -0
  40. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/pydantic_model_generator.py +0 -0
  41. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/build/utterance_generator.py +0 -0
  42. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/cache_matching.py +0 -0
  43. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/cli.py +0 -0
  44. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/command_context_model.py +0 -0
  45. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/command_directory.py +0 -0
  46. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/command_interfaces.py +0 -0
  47. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/command_metadata_api.py +0 -0
  48. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/command_routing.py +0 -0
  49. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/docs/context_modules_prd.txt +0 -0
  50. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/extended_workflow_example/README.md +0 -0
  51. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/extended_workflow_example/_commands/WorkItem/get_status.py +0 -0
  52. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/extended_workflow_example/_commands/generate_report.py +0 -0
  53. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/extended_workflow_example/_commands/startup.py +0 -0
  54. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/extended_workflow_example/simple_workflow_template.json +0 -0
  55. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/extended_workflow_example/workflow_inheritance_model.json +0 -0
  56. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/fastworkflow.env +0 -0
  57. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/fastworkflow.passwords.env +0 -0
  58. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/hello_world/_commands/README.md +0 -0
  59. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/hello_world/_commands/add_two_numbers.py +0 -0
  60. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/hello_world/_commands/context_inheritance_model.json +0 -0
  61. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/hello_world/application/add_two_numbers.py +0 -0
  62. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_1/_commands/context_inheritance_model.json +0 -0
  63. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_1/_commands/send_message.py +0 -0
  64. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_1/application/send_message.py +0 -0
  65. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_2/_commands/User/send_message.py +0 -0
  66. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_2/_commands/context_inheritance_model.json +0 -0
  67. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_2/_commands/startup.py +0 -0
  68. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_2/application/user.py +0 -0
  69. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_3/_commands/PremiumUser/send_priority_message.py +0 -0
  70. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_3/_commands/User/send_message.py +0 -0
  71. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_3/_commands/context_inheritance_model.json +0 -0
  72. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_3/_commands/initialize_user.py +0 -0
  73. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_3/application/user.py +0 -0
  74. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/_ChatRoom.py +0 -0
  75. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/add_user.py +0 -0
  76. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/broadcast_message.py +0 -0
  77. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/get_current_user.py +0 -0
  78. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/list_users.py +0 -0
  79. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/set_current_user.py +0 -0
  80. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/_PremiumUser.py +0 -0
  81. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/send_priority_message.py +0 -0
  82. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/User/_User.py +0 -0
  83. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/User/send_message.py +0 -0
  84. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/context_inheritance_model.json +0 -0
  85. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/_commands/set_root_context.py +0 -0
  86. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/application/chatroom.py +0 -0
  87. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/application/user.py +0 -0
  88. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/context_hierarchy_model.json +0 -0
  89. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/messaging_app_4/startup_action.json +0 -0
  90. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/calculate.py +0 -0
  91. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/cancel_pending_order.py +0 -0
  92. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/exchange_delivered_order_items.py +0 -0
  93. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_email.py +0 -0
  94. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_name_zip.py +0 -0
  95. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/get_order_details.py +0 -0
  96. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/get_product_details.py +0 -0
  97. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/get_user_details.py +0 -0
  98. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/list_all_product_types.py +0 -0
  99. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_address.py +0 -0
  100. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_items.py +0 -0
  101. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_payment.py +0 -0
  102. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/modify_user_address.py +0 -0
  103. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/return_delivered_order_items.py +0 -0
  104. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/_commands/transfer_to_human_agents.py +0 -0
  105. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/context_inheritance_model.json +0 -0
  106. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/retail_data/__init__.py +0 -0
  107. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/retail_data/orders.json +0 -0
  108. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/retail_data/products.json +0 -0
  109. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/retail_data/users.json +0 -0
  110. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/calculate.py +0 -0
  111. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/cancel_pending_order.py +0 -0
  112. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/exchange_delivered_order_items.py +0 -0
  113. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_email.py +0 -0
  114. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_name_zip.py +0 -0
  115. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/get_order_details.py +0 -0
  116. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/get_product_details.py +0 -0
  117. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/get_user_details.py +0 -0
  118. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/list_all_product_types.py +0 -0
  119. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_address.py +0 -0
  120. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_items.py +0 -0
  121. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_payment.py +0 -0
  122. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/modify_user_address.py +0 -0
  123. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/return_delivered_order_items.py +0 -0
  124. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/think.py +0 -0
  125. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/tool.py +0 -0
  126. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/tools/transfer_to_human_agents.py +0 -0
  127. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/retail_workflow/workflow_description.txt +0 -0
  128. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/__init__.py +0 -0
  129. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/_WorkItem.py +0 -0
  130. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/add_child_workitem.py +0 -0
  131. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/get_status.py +0 -0
  132. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/go_to_workitem.py +0 -0
  133. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/mark_as_complete.py +0 -0
  134. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_first_child_workitem.py +0 -0
  135. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_last_child_workitem.py +0 -0
  136. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_next_workitem.py +0 -0
  137. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_previous_workitem.py +0 -0
  138. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_all_child_workitems.py +0 -0
  139. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_child_workitem.py +0 -0
  140. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/show_schema.py +0 -0
  141. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/_commands/startup.py +0 -0
  142. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/application/__init__.py +0 -0
  143. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/application/workitem.py +0 -0
  144. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/simple_workflow_template.json +0 -0
  145. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/examples/simple_workflow_template/startup_action.json +0 -0
  146. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/mcp_server.py +0 -0
  147. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/model_pipeline_training.py +0 -0
  148. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/refine/__main__.py +0 -0
  149. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/run/__init__.py +0 -0
  150. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/run/__main__.py +0 -0
  151. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/run_agent/__init__.py +0 -0
  152. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/run_agent/__main__.py +0 -0
  153. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/run_agent/agent_module.py +0 -0
  154. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/train/__init__.py +0 -0
  155. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/train/__main__.py +0 -0
  156. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/train/generate_synthetic.py +0 -0
  157. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/user_message_queues.py +0 -0
  158. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/__init__.py +0 -0
  159. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/command_dependency_graph.py +0 -0
  160. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/context_utils.py +0 -0
  161. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/dspy_cache_utils.py +0 -0
  162. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/dspy_logger.py +0 -0
  163. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/dspy_utils.py +0 -0
  164. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/env.py +0 -0
  165. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/fuzzy_match.py +0 -0
  166. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/generate_param_examples.py +0 -0
  167. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/logging.py +0 -0
  168. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/parameterize_func_decorator.py +0 -0
  169. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/pydantic_model_2_dspy_signature_class.py +0 -0
  170. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/python_utils.py +0 -0
  171. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/signatures.py +0 -0
  172. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/utils/startup_progress.py +0 -0
  173. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/fastworkflow/workflow.py +0 -0
  174. {fastworkflow-2.15.0 → fastworkflow-2.15.2}/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.0
3
+ Version: 2.15.2
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
@@ -121,6 +121,8 @@ class ChatSession:
121
121
  self._command_output_queue = Queue()
122
122
  self._status = SessionStatus.STOPPED
123
123
  self._chat_worker = None
124
+
125
+ self._conversation_history = dspy.History(messages=[])
124
126
 
125
127
  # Import here to avoid circular imports
126
128
  from fastworkflow.command_executor import CommandExecutor
@@ -297,6 +299,11 @@ class ChatSession:
297
299
  def workflow_is_complete(self, value: bool) -> None:
298
300
  if workflow := ChatSession.get_active_workflow():
299
301
  workflow.is_complete = value
302
+
303
+ @property
304
+ def conversation_history(self) -> dspy.History:
305
+ """Return the conversation history."""
306
+ return self._conversation_history
300
307
 
301
308
 
302
309
  def _run_workflow_loop(self) -> Optional[fastworkflow.CommandOutput]:
@@ -421,7 +428,10 @@ class ChatSession:
421
428
 
422
429
  lm = dspy_utils.get_lm("LLM_AGENT", "LITELLM_API_KEY_AGENT")
423
430
  with dspy.context(lm=lm):
424
- agent_result = self._workflow_tool_agent(user_query=refined_message)
431
+ agent_result = self._workflow_tool_agent(
432
+ user_query=refined_message,
433
+ conversation_history=self.conversation_history
434
+ )
425
435
  # dspy.inspect_history(n=1)
426
436
 
427
437
  # Extract the final result from the agent
@@ -431,6 +441,11 @@ class ChatSession:
431
441
  else str(agent_result)
432
442
  )
433
443
 
444
+ self.conversation_history.messages.append(
445
+ {"user_query": message,
446
+ "agent_response": result_text}
447
+ )
448
+
434
449
  # Create CommandOutput with the agent's response
435
450
  command_response = fastworkflow.CommandResponse(response=result_text)
436
451
  # Attach actions captured during agent execution as artifacts if available
@@ -52,7 +52,7 @@ class CommandExecutor(CommandExecutorInterface):
52
52
  record = {
53
53
  "command" if command_output.success else "failing command": command,
54
54
  "command_name": command_output.command_name,
55
- "parameters": command_output.command_parametersr.model_dump(),
55
+ "parameters": command_output.command_parameters.model_dump() if command_output.command_parameters else None,
56
56
  "response": command_output.command_responses[0].response if command_output.success else ''}
57
57
  with open("action.json", "a", encoding="utf-8") as f:
58
58
  f.write(json.dumps(record, ensure_ascii=False) + "\n")
@@ -99,7 +99,7 @@ class CommandExecutor(CommandExecutorInterface):
99
99
  record = {
100
100
  "command": command,
101
101
  "command_name": command_name,
102
- "parameters": input_obj.model_dump(),
102
+ "parameters": input_obj.model_dump() if input_obj else None,
103
103
  "response": command_output.command_responses[0].response}
104
104
  with open("action.json", "a", encoding="utf-8") as f:
105
105
  f.write(json.dumps(record, ensure_ascii=False) + "\n")
@@ -18,6 +18,7 @@ class WorkflowAgentSignature(dspy.Signature):
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.")
21
+ conversation_history: dspy.History = dspy.InputField()
21
22
  final_answer = dspy.OutputField(desc="Comprehensive final answer with supporting evidence to demonstrate that all the tasks in the todo list have been completed.")
22
23
 
23
24
  def _what_can_i_do(chat_session_obj: fastworkflow.ChatSession) -> str:
@@ -119,7 +120,8 @@ def _ask_user_tool(clarification_request: str, chat_session_obj: fastworkflow.Ch
119
120
  command_responses=[fastworkflow.CommandResponse(response=clarification_request)]
120
121
  )
121
122
  chat_session_obj.command_output_queue.put(command_output)
122
- return chat_session_obj.user_message_queue.get()
123
+ user_query = chat_session_obj.user_message_queue.get()
124
+ return _think_and_plan(user_query, chat_session_obj)
123
125
 
124
126
  def initialize_workflow_tool_agent(mcp_server: FastWorkflowMCPServer, max_iters: int = 25):
125
127
  """
@@ -133,11 +135,6 @@ def initialize_workflow_tool_agent(mcp_server: FastWorkflowMCPServer, max_iters:
133
135
  Returns:
134
136
  DSPy ReAct agent configured with workflow tools
135
137
  """
136
- # available_tools = mcp_server.list_tools()
137
-
138
- # if not available_tools:
139
- # return None
140
-
141
138
  chat_session_obj = mcp_server.chat_session
142
139
  if not chat_session_obj:
143
140
  return None
@@ -185,7 +182,7 @@ def initialize_workflow_tool_agent(mcp_server: FastWorkflowMCPServer, max_iters:
185
182
  """
186
183
  Executes the command and returns either a response, or a clarification request.
187
184
  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.
188
- Commands must be formatted as follows: command_name <param1_name>param1_value</param1_name> <param2_name>param2_value</param2_name> ...
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> ...
189
186
  Don't use this tool to respond to a clarification requests in PARAMETER EXTRACTION ERROR state
190
187
  """
191
188
  try:
@@ -225,3 +222,33 @@ def initialize_workflow_tool_agent(mcp_server: FastWorkflowMCPServer, max_iters:
225
222
  tools=tools,
226
223
  max_iters=max_iters,
227
224
  )
225
+
226
+ def _think_and_plan(user_query: str, chat_session_obj: fastworkflow.ChatSession) -> str:
227
+ """
228
+ Returns a refined plan by breaking down a user_query into simpler tasks based only on available commands and returns a todo list.
229
+ """
230
+ class TaskPlannerSignature(dspy.Signature):
231
+ """
232
+ Break down a user_query into simpler tasks based only on available commands and return a todo list.
233
+ If user_query is simple, return a single todo that is the user_query as-is
234
+ """
235
+ user_query: str = dspy.InputField()
236
+ available_commands: list[str] = dspy.InputField()
237
+ todo_list: list[str] = dspy.OutputField(desc="task descriptions as short sentences")
238
+
239
+ current_workflow = chat_session_obj.get_active_workflow()
240
+ available_commands = CommandMetadataAPI.get_command_display_text(
241
+ subject_workflow_path=current_workflow.folderpath,
242
+ cme_workflow_path=fastworkflow.get_internal_workflow_path("command_metadata_extraction"),
243
+ active_context_name=current_workflow.current_command_context_name,
244
+ )
245
+
246
+ planner_lm = dspy_utils.get_lm("LLM_PLANNER", "LITELLM_API_KEY_PLANNER")
247
+ with dspy.context(lm=planner_lm):
248
+ task_planner_func = dspy.ChainOfThought(TaskPlannerSignature)
249
+ prediction = task_planner_func(user_query=user_query, available_commands=available_commands)
250
+
251
+ if not prediction.todo_list or (len(prediction.todo_list) == 1 and prediction.todo_list[0] == user_query):
252
+ return user_query
253
+
254
+ return f"{user_query}\nNext steps:\n{'\n'.join([f'{i + 1}. {task}' for i, task in enumerate(prediction.todo_list)])}"
@@ -9,7 +9,7 @@ repository = "https://github.com/radiantlogicinc/fastworkflow"
9
9
 
10
10
  [tool.poetry]
11
11
  name = "fastworkflow"
12
- version = "2.15.0"
12
+ version = "2.15.2"
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