fastworkflow 2.17.2__tar.gz → 2.17.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.

Potentially problematic release.


This version of fastworkflow might be problematic. Click here for more details.

Files changed (182) hide show
  1. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/PKG-INFO +5 -1
  2. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/cli.py +84 -0
  3. fastworkflow-2.17.2/fastworkflow/run_fastapi_mcp/main.py → fastworkflow-2.17.4/fastworkflow/run_fastapi_mcp/__main__.py +9 -1
  4. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/pyproject.toml +6 -8
  5. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/LICENSE +0 -0
  6. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/README.md +0 -0
  7. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/.DS_Store +0 -0
  8. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/__init__.py +0 -0
  9. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_commands/.gitkeep +0 -0
  10. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/__init__.py +0 -0
  11. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/__init__.py +0 -0
  12. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/abort.py +0 -0
  13. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/you_misunderstood.py +0 -0
  14. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/go_up.py +0 -0
  15. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/reset_context.py +0 -0
  16. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_can_i_do.py +0 -0
  17. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_is_current_context.py +0 -0
  18. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/__init__.py +0 -0
  19. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/wildcard.py +0 -0
  20. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/command_context_model.json +0 -0
  21. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/intent_detection.py +0 -0
  22. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/parameter_extraction.py +0 -0
  23. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/__main__.py +0 -0
  24. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/ast_class_extractor.py +0 -0
  25. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/class_analysis_structures.py +0 -0
  26. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/cli_specification.md +0 -0
  27. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_dependency_resolver.py +0 -0
  28. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_file_generator.py +0 -0
  29. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_file_template.py +0 -0
  30. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_import_utils.py +0 -0
  31. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_stub_generator.py +0 -0
  32. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/context_folder_generator.py +0 -0
  33. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/context_model_generator.py +0 -0
  34. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/dependency_manager.py +0 -0
  35. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/dir_scanner.py +0 -0
  36. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/documentation_generator.py +0 -0
  37. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/genai_postprocessor.py +0 -0
  38. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/inheritance_block_regenerator.py +0 -0
  39. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/libcst_transformers.py +0 -0
  40. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/navigator_stub_generator.py +0 -0
  41. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/pydantic_model_generator.py +0 -0
  42. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/utterance_generator.py +0 -0
  43. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/cache_matching.py +0 -0
  44. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/chat_session.py +0 -0
  45. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_context_model.py +0 -0
  46. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_directory.py +0 -0
  47. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_executor.py +0 -0
  48. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_interfaces.py +0 -0
  49. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_metadata_api.py +0 -0
  50. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_routing.py +0 -0
  51. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/docs/context_modules_prd.txt +0 -0
  52. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/README.md +0 -0
  53. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/_commands/WorkItem/get_status.py +0 -0
  54. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/_commands/generate_report.py +0 -0
  55. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/_commands/startup.py +0 -0
  56. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/simple_workflow_template.json +0 -0
  57. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/workflow_inheritance_model.json +0 -0
  58. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/fastworkflow.env +0 -0
  59. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/fastworkflow.passwords.env +0 -0
  60. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/_commands/README.md +0 -0
  61. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/_commands/add_two_numbers.py +0 -0
  62. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/_commands/context_inheritance_model.json +0 -0
  63. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/application/add_two_numbers.py +0 -0
  64. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_1/_commands/context_inheritance_model.json +0 -0
  65. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_1/_commands/send_message.py +0 -0
  66. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_1/application/send_message.py +0 -0
  67. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/_commands/User/send_message.py +0 -0
  68. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/_commands/context_inheritance_model.json +0 -0
  69. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/_commands/startup.py +0 -0
  70. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/application/user.py +0 -0
  71. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/PremiumUser/send_priority_message.py +0 -0
  72. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/User/send_message.py +0 -0
  73. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/context_inheritance_model.json +0 -0
  74. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/initialize_user.py +0 -0
  75. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/application/user.py +0 -0
  76. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/_ChatRoom.py +0 -0
  77. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/add_user.py +0 -0
  78. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/broadcast_message.py +0 -0
  79. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/get_current_user.py +0 -0
  80. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/list_users.py +0 -0
  81. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/set_current_user.py +0 -0
  82. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/_PremiumUser.py +0 -0
  83. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/send_priority_message.py +0 -0
  84. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/User/_User.py +0 -0
  85. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/User/send_message.py +0 -0
  86. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/context_inheritance_model.json +0 -0
  87. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/set_root_context.py +0 -0
  88. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/application/chatroom.py +0 -0
  89. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/application/user.py +0 -0
  90. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/context_hierarchy_model.json +0 -0
  91. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/startup_action.json +0 -0
  92. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/calculate.py +0 -0
  93. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/cancel_pending_order.py +0 -0
  94. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/exchange_delivered_order_items.py +0 -0
  95. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_email.py +0 -0
  96. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_name_zip.py +0 -0
  97. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/get_order_details.py +0 -0
  98. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/get_product_details.py +0 -0
  99. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/get_user_details.py +0 -0
  100. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/list_all_product_types.py +0 -0
  101. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_address.py +0 -0
  102. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_items.py +0 -0
  103. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_payment.py +0 -0
  104. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_user_address.py +0 -0
  105. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/return_delivered_order_items.py +0 -0
  106. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/transfer_to_human_agents.py +0 -0
  107. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/context_inheritance_model.json +0 -0
  108. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/__init__.py +0 -0
  109. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/orders.json +0 -0
  110. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/products.json +0 -0
  111. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/users.json +0 -0
  112. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/calculate.py +0 -0
  113. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/cancel_pending_order.py +0 -0
  114. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/exchange_delivered_order_items.py +0 -0
  115. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_email.py +0 -0
  116. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_name_zip.py +0 -0
  117. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/get_order_details.py +0 -0
  118. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/get_product_details.py +0 -0
  119. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/get_user_details.py +0 -0
  120. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/list_all_product_types.py +0 -0
  121. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_address.py +0 -0
  122. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_items.py +0 -0
  123. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_payment.py +0 -0
  124. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_user_address.py +0 -0
  125. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/return_delivered_order_items.py +0 -0
  126. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/think.py +0 -0
  127. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/tool.py +0 -0
  128. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/transfer_to_human_agents.py +0 -0
  129. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/workflow_description.txt +0 -0
  130. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/__init__.py +0 -0
  131. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/_WorkItem.py +0 -0
  132. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/add_child_workitem.py +0 -0
  133. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/get_status.py +0 -0
  134. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/go_to_workitem.py +0 -0
  135. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/mark_as_complete.py +0 -0
  136. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_first_child_workitem.py +0 -0
  137. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_last_child_workitem.py +0 -0
  138. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_next_workitem.py +0 -0
  139. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_previous_workitem.py +0 -0
  140. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_all_child_workitems.py +0 -0
  141. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_child_workitem.py +0 -0
  142. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/show_schema.py +0 -0
  143. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/startup.py +0 -0
  144. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/application/__init__.py +0 -0
  145. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/application/workitem.py +0 -0
  146. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/simple_workflow_template.json +0 -0
  147. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/startup_action.json +0 -0
  148. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/mcp_server.py +0 -0
  149. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/model_pipeline_training.py +0 -0
  150. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/refine/__main__.py +0 -0
  151. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run/__init__.py +0 -0
  152. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run/__main__.py +0 -0
  153. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/README.md +0 -0
  154. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/__init__.py +0 -0
  155. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/conversation_store.py +0 -0
  156. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/jwt_manager.py +0 -0
  157. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/mcp_specific.py +0 -0
  158. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/redoc_2_standalone_html.py +0 -0
  159. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/utils.py +0 -0
  160. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/train/__init__.py +0 -0
  161. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/train/__main__.py +0 -0
  162. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/train/generate_synthetic.py +0 -0
  163. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/user_message_queues.py +0 -0
  164. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/__init__.py +0 -0
  165. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/command_dependency_graph.py +0 -0
  166. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/context_utils.py +0 -0
  167. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/dspy_cache_utils.py +0 -0
  168. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/dspy_logger.py +0 -0
  169. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/dspy_utils.py +0 -0
  170. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/env.py +0 -0
  171. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/fuzzy_match.py +0 -0
  172. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/generate_param_examples.py +0 -0
  173. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/logging.py +0 -0
  174. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/parameterize_func_decorator.py +0 -0
  175. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/pydantic_model_2_dspy_signature_class.py +0 -0
  176. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/python_utils.py +0 -0
  177. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/react.py +0 -0
  178. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/signatures.py +0 -0
  179. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/startup_progress.py +0 -0
  180. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/workflow.py +0 -0
  181. {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/workflow_agent.py +0 -0
  182. {fastworkflow-2.17.2 → fastworkflow-2.17.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.17.2
3
+ Version: 2.17.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
@@ -15,6 +15,8 @@ Provides-Extra: fastapi
15
15
  Requires-Dist: colorama (>=0.4.6,<0.5.0)
16
16
  Requires-Dist: datasets (>=4.0.0,<5.0.0)
17
17
  Requires-Dist: dspy (>=3.0.1,<4.0.0)
18
+ Requires-Dist: fastapi (>=0.115.5,<0.116.0) ; extra == "fastapi"
19
+ Requires-Dist: fastapi-mcp (>=0.4.0,<0.5.0) ; extra == "fastapi"
18
20
  Requires-Dist: libcst (>=1.8.2,<2.0.0)
19
21
  Requires-Dist: litellm[proxy] (>=1.75.8,<2.0.0)
20
22
  Requires-Dist: mmh3 (>=5.1.0,<6.0.0)
@@ -22,12 +24,14 @@ Requires-Dist: openai (>=1.99.5,<1.100.0)
22
24
  Requires-Dist: prompt_toolkit (>=3.0.43,<4.0.0)
23
25
  Requires-Dist: pydantic (>=2.9.2,<3.0.0)
24
26
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
27
+ Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0) ; extra == "fastapi"
25
28
  Requires-Dist: python-levenshtein (>=0.27.1,<0.28.0)
26
29
  Requires-Dist: scikit-learn (>=1.6.1,<2.0.0)
27
30
  Requires-Dist: sentence-transformers (>=3.4.1,<4.0.0)
28
31
  Requires-Dist: speedict (>=0.3.12,<0.4.0)
29
32
  Requires-Dist: torch (>=2.7.1,<3.0.0)
30
33
  Requires-Dist: transformers (>=4.48.2,<5.0.0)
34
+ Requires-Dist: uvicorn (>=0.29.0,<0.30.0) ; extra == "fastapi"
31
35
  Project-URL: homepage, https://github.com/radiantlogicinc/fastworkflow
32
36
  Project-URL: repository, https://github.com/radiantlogicinc/fastworkflow
33
37
  Description-Content-Type: text/markdown
@@ -273,6 +273,32 @@ def add_run_parser(subparsers):
273
273
  parser_run.add_argument("--project_folderpath", help="Optional path to project folder containing application code", default=None)
274
274
  parser_run.set_defaults(func=lambda args: run_with_defaults(args))
275
275
 
276
+ def add_run_fastapi_mcp_parser(subparsers):
277
+ """Add subparser for the 'run_fastapi_mcp' command."""
278
+ parser_run_fastapi_mcp = subparsers.add_parser("run_fastapi_mcp", help="Run a workflow as a FastAPI server with MCP support.")
279
+ parser_run_fastapi_mcp.add_argument("workflow_path", help="Path to the workflow folder")
280
+
281
+ # Default env files will be determined at runtime based on the workflow path
282
+ parser_run_fastapi_mcp.add_argument(
283
+ "env_file_path",
284
+ nargs='?',
285
+ default=None,
286
+ help="Path to the environment file (default: .env in current directory, or bundled env file for examples)",
287
+ )
288
+ parser_run_fastapi_mcp.add_argument(
289
+ "passwords_file_path",
290
+ nargs='?',
291
+ default=None,
292
+ help="Path to the passwords file (default: passwords.env in current directory, or bundled env file for examples)",
293
+ )
294
+ parser_run_fastapi_mcp.add_argument("--context", help="Optional context (JSON string)", default=None)
295
+ parser_run_fastapi_mcp.add_argument("--startup_command", help="Optional startup command", default=None)
296
+ parser_run_fastapi_mcp.add_argument("--startup_action", help="Optional startup action (JSON string)", default=None)
297
+ parser_run_fastapi_mcp.add_argument("--project_folderpath", help="Optional path to project folder containing application code", default=None)
298
+ parser_run_fastapi_mcp.add_argument("--port", type=int, default=8000, help="Port to run the FastAPI server on (default: 8000)")
299
+ parser_run_fastapi_mcp.add_argument("--host", default="0.0.0.0", help="Host to bind the FastAPI server to (default: 0.0.0.0)")
300
+ parser_run_fastapi_mcp.set_defaults(func=lambda args: run_fastapi_mcp_with_defaults(args))
301
+
276
302
  def train_with_defaults(args): # sourcery skip: extract-duplicate-method
277
303
  """Wrapper for train_main that sets default env file paths based on context."""
278
304
  if args.env_file_path is None or args.passwords_file_path is None:
@@ -353,6 +379,63 @@ def run_with_defaults(args): # sourcery skip: extract-duplicate-method
353
379
  from .run.__main__ import run_main as _run_main
354
380
  return _run_main(args)
355
381
 
382
+ def run_fastapi_mcp_with_defaults(args): # sourcery skip: extract-duplicate-method
383
+ """Wrapper for fastapi mcp server that sets default env file paths based on context."""
384
+ if args.env_file_path is None or args.passwords_file_path is None:
385
+ default_env, default_passwords = find_default_env_files(args.workflow_path)
386
+ if args.env_file_path is None:
387
+ args.env_file_path = default_env
388
+ if args.passwords_file_path is None:
389
+ args.passwords_file_path = default_passwords
390
+
391
+ # Check if the files exist and provide helpful error messages
392
+ if not os.path.exists(args.env_file_path):
393
+ print(f"Error: Environment file not found at: {args.env_file_path}", file=sys.stderr)
394
+ # Check if this is an example workflow
395
+ if "/examples/" in str(args.workflow_path) or "\\examples\\" in str(args.workflow_path):
396
+ example_name = os.path.basename(args.workflow_path)
397
+ print("\nThis appears to be an example workflow. Please run:")
398
+ print(f" fastworkflow examples fetch {example_name}")
399
+ print(f" fastworkflow run_fastapi_mcp ./examples/{example_name} ./examples/fastworkflow.env ./examples/fastworkflow.passwords.env")
400
+ else:
401
+ print("\nPlease ensure this file exists with required environment variables.")
402
+ print("You can create a basic .env file in your current directory.")
403
+ sys.exit(1)
404
+
405
+ if not os.path.exists(args.passwords_file_path):
406
+ print(f"Error: Passwords file not found at: {args.passwords_file_path}", file=sys.stderr)
407
+ # Check if this is an example workflow
408
+ if "/examples/" in str(args.workflow_path) or "\\examples\\" in str(args.workflow_path):
409
+ example_name = os.path.basename(args.workflow_path)
410
+ print("\nThis appears to be an example workflow. Please run:")
411
+ print(f" fastworkflow examples fetch {example_name}")
412
+ print(f" fastworkflow run_fastapi_mcp ./examples/{example_name} ./examples/fastworkflow.env ./examples/fastworkflow.passwords.env")
413
+ else:
414
+ print("\nPlease ensure this file exists with required API keys.")
415
+ print("You can create a basic passwords.env file in your current directory.")
416
+ sys.exit(1)
417
+
418
+ # Use subprocess to run python -m fastworkflow.run_fastapi_mcp with the correct arguments
419
+ cmd = [
420
+ sys.executable, '-m', 'fastworkflow.run_fastapi_mcp',
421
+ '--workflow_path', args.workflow_path,
422
+ '--env_file_path', args.env_file_path,
423
+ '--passwords_file_path', args.passwords_file_path,
424
+ '--port', str(args.port),
425
+ '--host', args.host,
426
+ ]
427
+ if args.context:
428
+ cmd.extend(['--context', args.context])
429
+ if args.startup_command:
430
+ cmd.extend(['--startup_command', args.startup_command])
431
+ if args.startup_action:
432
+ cmd.extend(['--startup_action', args.startup_action])
433
+ if args.project_folderpath:
434
+ cmd.extend(['--project_folderpath', args.project_folderpath])
435
+
436
+ # Run the subprocess
437
+ return subprocess.run(cmd).returncode
438
+
356
439
  def main():
357
440
  """Main function for the fastworkflow CLI."""
358
441
 
@@ -380,6 +463,7 @@ def main():
380
463
  add_refine_parser(subparsers)
381
464
  add_train_parser(subparsers)
382
465
  add_run_parser(subparsers)
466
+ add_run_fastapi_mcp_parser(subparsers)
383
467
 
384
468
  try:
385
469
  args = parser.parse_args()
@@ -217,6 +217,8 @@ def load_args():
217
217
  parser.add_argument("--startup_command", required=False)
218
218
  parser.add_argument("--startup_action", required=False) # JSON string
219
219
  parser.add_argument("--project_folderpath", required=False)
220
+ parser.add_argument("--port", type=int, default=8000, help="Port to run the server on (default: 8000)")
221
+ parser.add_argument("--host", default="0.0.0.0", help="Host to bind the server to (default: 0.0.0.0)")
220
222
  return parser.parse_args()
221
223
 
222
224
  ARGS = load_args()
@@ -1202,5 +1204,11 @@ setup_mcp(
1202
1204
  # Main
1203
1205
  # ============================================================================
1204
1206
 
1207
+ def main():
1208
+ """Entry point for the FastAPI MCP server."""
1209
+ host = ARGS.host if hasattr(ARGS, 'host') else "0.0.0.0"
1210
+ port = ARGS.port if hasattr(ARGS, 'port') else 8000
1211
+ uvicorn.run(app, host=host, port=port)
1212
+
1205
1213
  if __name__ == "__main__":
1206
- uvicorn.run(app, host="0.0.0.0", port=8000)
1214
+ main()
@@ -9,7 +9,7 @@ repository = "https://github.com/radiantlogicinc/fastworkflow"
9
9
 
10
10
  [tool.poetry]
11
11
  name = "fastworkflow"
12
- version = "2.17.2"
12
+ version = "2.17.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"
@@ -48,6 +48,10 @@ libcst = "^1.8.2"
48
48
  datasets = "^4.0.0"
49
49
  openai = ">=1.99.5,<1.100.0"
50
50
  litellm = {extras = ["proxy"], version = "^1.75.8"}
51
+ uvicorn = {version = "^0.29.0", optional = true}
52
+ fastapi = {version = ">=0.115.5,<0.116.0", optional = true}
53
+ fastapi-mcp = {version = "^0.4.0", optional = true}
54
+ python-jose = {extras = ["cryptography"], version = "^3.3.0", optional = true}
51
55
 
52
56
  [tool.poetry.group.dev.dependencies]
53
57
  isort = "^5.13.2"
@@ -67,10 +71,4 @@ pytest-cov = "^6.2.1"
67
71
  boto3 = {version = "1.36.0", optional = true}
68
72
 
69
73
  [tool.poetry.extras]
70
- fastapi = ["fastapi", "fastapi-mcp", "python-jose"]
71
-
72
- [tool.poetry.group.fastapi.dependencies]
73
- fastapi = ">=0.115.5,<0.116.0"
74
- fastapi-mcp = "^0.4.0"
75
- python-jose = {extras = ["cryptography"], version = "^3.3.0"}
76
-
74
+ fastapi = ["uvicorn", "fastapi", "fastapi-mcp", "python-jose"]
File without changes
File without changes