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.
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/PKG-INFO +5 -1
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/cli.py +84 -0
- fastworkflow-2.17.2/fastworkflow/run_fastapi_mcp/main.py → fastworkflow-2.17.4/fastworkflow/run_fastapi_mcp/__main__.py +9 -1
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/pyproject.toml +6 -8
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/LICENSE +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/README.md +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/.DS_Store +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_commands/.gitkeep +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/abort.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/you_misunderstood.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/go_up.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/reset_context.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_can_i_do.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_is_current_context.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/_commands/wildcard.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/command_context_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/intent_detection.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/_workflows/command_metadata_extraction/parameter_extraction.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/__main__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/ast_class_extractor.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/class_analysis_structures.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/cli_specification.md +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_dependency_resolver.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_file_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_file_template.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_import_utils.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_stub_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/context_folder_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/context_model_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/dependency_manager.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/dir_scanner.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/documentation_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/genai_postprocessor.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/inheritance_block_regenerator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/libcst_transformers.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/navigator_stub_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/pydantic_model_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/utterance_generator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/cache_matching.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/chat_session.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_context_model.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_directory.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_executor.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_interfaces.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_metadata_api.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/command_routing.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/docs/context_modules_prd.txt +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/README.md +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/_commands/WorkItem/get_status.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/_commands/generate_report.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/_commands/startup.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/simple_workflow_template.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/extended_workflow_example/workflow_inheritance_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/fastworkflow.env +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/fastworkflow.passwords.env +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/_commands/README.md +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/_commands/add_two_numbers.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/application/add_two_numbers.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_1/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_1/_commands/send_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_1/application/send_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/_commands/User/send_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/_commands/startup.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_2/application/user.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/PremiumUser/send_priority_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/User/send_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/_commands/initialize_user.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_3/application/user.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/_ChatRoom.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/add_user.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/broadcast_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/get_current_user.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/list_users.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/set_current_user.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/_PremiumUser.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/send_priority_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/User/_User.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/User/send_message.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/_commands/set_root_context.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/application/chatroom.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/application/user.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/context_hierarchy_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/messaging_app_4/startup_action.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/calculate.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/cancel_pending_order.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/exchange_delivered_order_items.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_email.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_name_zip.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/get_order_details.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/get_product_details.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/get_user_details.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/list_all_product_types.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_address.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_items.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_payment.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/modify_user_address.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/return_delivered_order_items.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/_commands/transfer_to_human_agents.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/orders.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/products.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/retail_data/users.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/calculate.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/cancel_pending_order.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/exchange_delivered_order_items.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_email.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_name_zip.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/get_order_details.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/get_product_details.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/get_user_details.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/list_all_product_types.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_address.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_items.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_payment.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/modify_user_address.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/return_delivered_order_items.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/think.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/tool.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/transfer_to_human_agents.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/workflow_description.txt +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/_WorkItem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/add_child_workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/get_status.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/go_to_workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/mark_as_complete.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_first_child_workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_last_child_workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_next_workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_previous_workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_all_child_workitems.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_child_workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/show_schema.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/_commands/startup.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/application/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/application/workitem.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/simple_workflow_template.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/simple_workflow_template/startup_action.json +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/mcp_server.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/model_pipeline_training.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/refine/__main__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run/__main__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/README.md +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/conversation_store.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/jwt_manager.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/mcp_specific.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/redoc_2_standalone_html.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/utils.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/train/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/train/__main__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/train/generate_synthetic.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/user_message_queues.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/__init__.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/command_dependency_graph.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/context_utils.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/dspy_cache_utils.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/dspy_logger.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/dspy_utils.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/env.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/fuzzy_match.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/generate_param_examples.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/logging.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/parameterize_func_decorator.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/pydantic_model_2_dspy_signature_class.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/python_utils.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/react.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/signatures.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/startup_progress.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/workflow.py +0 -0
- {fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/workflow_agent.py +0 -0
- {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.
|
|
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
|
-
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/command_dependency_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/build/inheritance_block_regenerator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/fastworkflow.passwords.env
RENAMED
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/hello_world/_commands/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/calculate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/think.py
RENAMED
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/examples/retail_workflow/tools/tool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/conversation_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/run_fastapi_mcp/redoc_2_standalone_html.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.2 → fastworkflow-2.17.4}/fastworkflow/utils/parameterize_func_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|