fastworkflow 2.17.12__tar.gz → 2.17.13__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.
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/PKG-INFO +1 -1
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/intent_clarification_agent.py +20 -21
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/workflow_agent.py +25 -70
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/pyproject.toml +1 -1
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/LICENSE +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/README.md +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/.DS_Store +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_commands/.gitkeep +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/abort.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/ErrorCorrection/you_misunderstood.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/go_up.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/reset_context.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_can_i_do.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/IntentDetection/what_is_current_context.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/_commands/wildcard.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/command_context_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/intent_detection.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/_workflows/command_metadata_extraction/parameter_extraction.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/__main__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/ast_class_extractor.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/class_analysis_structures.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/cli_specification.md +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/command_dependency_resolver.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/command_file_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/command_file_template.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/command_import_utils.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/command_stub_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/context_folder_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/context_model_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/dependency_manager.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/dir_scanner.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/documentation_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/genai_postprocessor.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/inheritance_block_regenerator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/libcst_transformers.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/navigator_stub_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/pydantic_model_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/utterance_generator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/cache_matching.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/chat_session.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/cli.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/command_context_model.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/command_directory.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/command_executor.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/command_interfaces.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/command_metadata_api.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/command_routing.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/docs/context_modules_prd.txt +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/extended_workflow_example/README.md +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/extended_workflow_example/_commands/WorkItem/get_status.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/extended_workflow_example/_commands/generate_report.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/extended_workflow_example/_commands/startup.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/extended_workflow_example/simple_workflow_template.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/extended_workflow_example/workflow_inheritance_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/fastworkflow.env +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/fastworkflow.passwords.env +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/hello_world/_commands/README.md +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/hello_world/_commands/add_two_numbers.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/hello_world/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/hello_world/application/add_two_numbers.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_1/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_1/_commands/send_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_1/application/send_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_2/_commands/User/send_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_2/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_2/_commands/startup.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_2/application/user.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_3/_commands/PremiumUser/send_priority_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_3/_commands/User/send_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_3/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_3/_commands/initialize_user.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_3/application/user.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/_ChatRoom.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/add_user.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/broadcast_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/get_current_user.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/list_users.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/ChatRoom/set_current_user.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/_PremiumUser.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/PremiumUser/send_priority_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/User/_User.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/User/send_message.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/_commands/set_root_context.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/application/chatroom.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/application/user.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/context_hierarchy_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/messaging_app_4/startup_action.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/calculate.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/cancel_pending_order.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/exchange_delivered_order_items.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_email.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/find_user_id_by_name_zip.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/get_order_details.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/get_product_details.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/get_user_details.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/list_all_product_types.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_address.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_items.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/modify_pending_order_payment.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/modify_user_address.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/return_delivered_order_items.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/_commands/transfer_to_human_agents.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/context_inheritance_model.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/retail_data/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/retail_data/orders.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/retail_data/products.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/retail_data/users.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/calculate.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/cancel_pending_order.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/exchange_delivered_order_items.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_email.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/find_user_id_by_name_zip.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/get_order_details.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/get_product_details.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/get_user_details.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/list_all_product_types.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_address.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_items.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/modify_pending_order_payment.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/modify_user_address.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/return_delivered_order_items.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/think.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/tool.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/transfer_to_human_agents.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/workflow_description.txt +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/_WorkItem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/add_child_workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/get_status.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/go_to_workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/mark_as_complete.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_first_child_workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_last_child_workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_next_workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/move_to_previous_workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_all_child_workitems.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/remove_child_workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/WorkItem/show_schema.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/_commands/startup.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/application/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/application/workitem.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/simple_workflow_template.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/simple_workflow_template/startup_action.json +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/mcp_server.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/model_pipeline_training.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/refine/__main__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run/__main__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/README.md +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/__main__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/conversation_store.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/jwt_manager.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/mcp_specific.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/redoc_2_standalone_html.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/utils.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/train/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/train/__main__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/train/generate_synthetic.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/user_message_queues.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/__init__.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/chat_adapter.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/command_dependency_graph.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/context_utils.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/dspy_cache_utils.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/dspy_logger.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/dspy_utils.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/env.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/fuzzy_match.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/generate_param_examples.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/logging.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/parameterize_func_decorator.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/pydantic_model_2_dspy_signature_class.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/python_utils.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/react.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/signatures.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/utils/startup_progress.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/workflow.py +0 -0
- {fastworkflow-2.17.12 → fastworkflow-2.17.13}/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.13
|
|
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
|
|
@@ -28,27 +28,26 @@ class IntentClarificationAgentSignature(dspy.Signature):
|
|
|
28
28
|
error_message = dspy.InputField(desc="The intent detection error message from the workflow.")
|
|
29
29
|
agent_inputs = dspy.InputField(desc="The original inputs to the workflow agent.")
|
|
30
30
|
agent_trajectory = dspy.InputField(desc="The workflow agent's trajectory showing all actions taken so far leading to this error.")
|
|
31
|
-
suggested_commands_metadata = dspy.InputField(desc="Metadata for suggested commands (for ambiguity clarification), or empty string (for misunderstanding - use show_available_commands tool instead).")
|
|
32
31
|
clarified_command = dspy.OutputField(desc="The complete command with correct command name AND all original parameters preserved.")
|
|
33
32
|
|
|
34
33
|
|
|
35
|
-
def _show_available_commands(chat_session: fastworkflow.ChatSession) -> str:
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
# def _show_available_commands(chat_session: fastworkflow.ChatSession) -> str:
|
|
35
|
+
# """
|
|
36
|
+
# Show available commands to help resolve intent detection errors.
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
# Args:
|
|
39
|
+
# chat_session: The chat session instance
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
# Returns:
|
|
42
|
+
# List of available commands
|
|
43
|
+
# """
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
# current_workflow = chat_session.get_active_workflow()
|
|
46
|
+
# return CommandMetadataAPI.get_command_display_text(
|
|
47
|
+
# subject_workflow_path=current_workflow.folderpath,
|
|
48
|
+
# cme_workflow_path=fastworkflow.get_internal_workflow_path("command_metadata_extraction"),
|
|
49
|
+
# active_context_name=current_workflow.current_command_context_name,
|
|
50
|
+
# )
|
|
52
51
|
|
|
53
52
|
|
|
54
53
|
def _ask_user_for_clarification(
|
|
@@ -103,11 +102,11 @@ def initialize_intent_clarification_agent(
|
|
|
103
102
|
if not chat_session:
|
|
104
103
|
raise ValueError("chat_session cannot be null")
|
|
105
104
|
|
|
106
|
-
def show_available_commands() -> str:
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
105
|
+
# def show_available_commands() -> str:
|
|
106
|
+
# """
|
|
107
|
+
# Show all available commands to help resolve intent ambiguity.
|
|
108
|
+
# """
|
|
109
|
+
# return _show_available_commands(chat_session)
|
|
111
110
|
|
|
112
111
|
def ask_user(clarification_request: str) -> str:
|
|
113
112
|
"""
|
|
@@ -121,7 +120,7 @@ def initialize_intent_clarification_agent(
|
|
|
121
120
|
|
|
122
121
|
# Limited tool set for intent detection errors
|
|
123
122
|
tools = [
|
|
124
|
-
show_available_commands,
|
|
123
|
+
# show_available_commands,
|
|
125
124
|
ask_user,
|
|
126
125
|
]
|
|
127
126
|
|
|
@@ -33,37 +33,6 @@ def _what_can_i_do(chat_session_obj: fastworkflow.ChatSession) -> str:
|
|
|
33
33
|
active_context_name=current_workflow.current_command_context_name,
|
|
34
34
|
)
|
|
35
35
|
|
|
36
|
-
# def _clarify_ambiguous_intent(
|
|
37
|
-
# correct_command_name: str,
|
|
38
|
-
# chat_session_obj: fastworkflow.ChatSession) -> str:
|
|
39
|
-
# """
|
|
40
|
-
# Call this tool ONLY in the intent detection error state (ambiguous or misunderstood intent) to provide the exact command name.
|
|
41
|
-
# The intent detection error message will list the command names to pick from.
|
|
42
|
-
# """
|
|
43
|
-
# return _execute_workflow_query(correct_command_name, chat_session_obj = chat_session_obj)
|
|
44
|
-
|
|
45
|
-
# def _provide_missing_or_corrected_parameters(
|
|
46
|
-
# missing_or_corrected_parameter_values: list[str|int|float|bool],
|
|
47
|
-
# chat_session_obj: fastworkflow.ChatSession) -> str:
|
|
48
|
-
# """
|
|
49
|
-
# Call this tool ONLY in the parameter extraction error state to provide missing or corrected parameter values.
|
|
50
|
-
# Missing parameter values may be found in the user query, or information already available, or by aborting and executing a different command (refer to the optional 'available_from' hint for guidance on appropriate commands to use to get the information).
|
|
51
|
-
# If the error message indicates parameter values are improperly formatted, correct using your internal knowledge and command metadata information.
|
|
52
|
-
# """
|
|
53
|
-
# if missing_or_corrected_parameter_values:
|
|
54
|
-
# command = ', '.join(missing_or_corrected_parameter_values)
|
|
55
|
-
# else:
|
|
56
|
-
# return "Provide missing or corrected parameter values or abort"
|
|
57
|
-
|
|
58
|
-
# return _execute_workflow_query(command, chat_session_obj = chat_session_obj)
|
|
59
|
-
|
|
60
|
-
# def _abort_current_command_to_exit_parameter_extraction_error_state(
|
|
61
|
-
# chat_session_obj: fastworkflow.ChatSession) -> str:
|
|
62
|
-
# """
|
|
63
|
-
# Call this tool ONLY in the parameter extraction error state when you want to get out of the parameter extraction error state and execute a different command.
|
|
64
|
-
# """
|
|
65
|
-
# return
|
|
66
|
-
|
|
67
36
|
def _intent_misunderstood(
|
|
68
37
|
chat_session_obj: fastworkflow.ChatSession) -> str:
|
|
69
38
|
"""
|
|
@@ -142,6 +111,10 @@ def _execute_workflow_query(command: str, chat_session_obj: fastworkflow.ChatSes
|
|
|
142
111
|
# Handle intent ambiguity clarification state with specialized agent
|
|
143
112
|
if nlu_stage == fastworkflow.NLUPipelineStage.INTENT_AMBIGUITY_CLARIFICATION:
|
|
144
113
|
if intent_agent := chat_session_obj.intent_clarification_agent:
|
|
114
|
+
from fastworkflow.utils.chat_adapter import CommandsSystemPreludeAdapter
|
|
115
|
+
# Use CommandsSystemPreludeAdapter specifically for workflow agent calls
|
|
116
|
+
agent_adapter = CommandsSystemPreludeAdapter()
|
|
117
|
+
|
|
145
118
|
# Get suggested commands from intent detection system
|
|
146
119
|
from fastworkflow._workflows.command_metadata_extraction.intent_detection import CommandNamePrediction
|
|
147
120
|
predictor = CommandNamePrediction(cme_workflow)
|
|
@@ -164,13 +137,13 @@ def _execute_workflow_query(command: str, chat_session_obj: fastworkflow.ChatSes
|
|
|
164
137
|
agent_trajectory = workflow_tool_agent.current_trajectory if workflow_tool_agent else {}
|
|
165
138
|
|
|
166
139
|
lm = dspy_utils.get_lm("LLM_AGENT", "LITELLM_API_KEY_AGENT")
|
|
167
|
-
with dspy.context(lm=lm):
|
|
140
|
+
with dspy.context(lm=lm, adapter=agent_adapter):
|
|
168
141
|
result = intent_agent(
|
|
169
142
|
original_command=command,
|
|
170
143
|
error_message=response_text,
|
|
171
144
|
agent_inputs=agent_inputs,
|
|
172
145
|
agent_trajectory=agent_trajectory,
|
|
173
|
-
|
|
146
|
+
available_commands=suggested_commands_metadata # Note that this is not part of the signature. It is extra metadata that will be picked up by the CommandsSystemPreludeAdapter
|
|
174
147
|
)
|
|
175
148
|
# The clarified command should have the correct name with all original parameters
|
|
176
149
|
clarified_cmd = result.clarified_command if hasattr(result, 'clarified_command') else str(result)
|
|
@@ -196,7 +169,6 @@ def _execute_workflow_query(command: str, chat_session_obj: fastworkflow.ChatSes
|
|
|
196
169
|
error_message=response_text,
|
|
197
170
|
agent_inputs=agent_inputs,
|
|
198
171
|
agent_trajectory=agent_trajectory,
|
|
199
|
-
suggested_commands_metadata=""
|
|
200
172
|
)
|
|
201
173
|
|
|
202
174
|
clarified_cmd = result.clarified_command if hasattr(result, 'clarified_command') else str(result)
|
|
@@ -212,34 +184,13 @@ def _execute_workflow_query(command: str, chat_session_obj: fastworkflow.ChatSes
|
|
|
212
184
|
abort_confirmation = _execute_workflow_query('abort', chat_session_obj=chat_session_obj)
|
|
213
185
|
return f'{response_text}\n{abort_confirmation}'
|
|
214
186
|
|
|
187
|
+
# Clean up the context flag after command execution
|
|
188
|
+
workflow = chat_session_obj.get_active_workflow()
|
|
189
|
+
if workflow and "is_user_command" in workflow.context:
|
|
190
|
+
del workflow.context["is_user_command"]
|
|
191
|
+
|
|
215
192
|
return response_text
|
|
216
193
|
|
|
217
|
-
# def _missing_information_guidance_tool(
|
|
218
|
-
# how_to_find_request: str,
|
|
219
|
-
# chat_session_obj: fastworkflow.ChatSession) -> str:
|
|
220
|
-
# """
|
|
221
|
-
# Request guidance on finding missing information.
|
|
222
|
-
# The how_to_find_request must be plain text without any formatting.
|
|
223
|
-
# """
|
|
224
|
-
# class MissingInfoGuidanceSignature(dspy.Signature):
|
|
225
|
-
# """
|
|
226
|
-
# Carefully review the command info 'available_from' hints to see if the missing information can be found by executing a different command.
|
|
227
|
-
# You may have to walk the graph of commands based on the 'available_from' hints to find the most appropriate command
|
|
228
|
-
# Note that using the wrong command name can produce missing information errors. The requestor should double-check that the command name is correct.
|
|
229
|
-
# """
|
|
230
|
-
# command_info: str = dspy.InputField()
|
|
231
|
-
# missing_information_guidance_request: str = dspy.InputField()
|
|
232
|
-
# guidance: str = dspy.OutputField()
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
# lm = dspy_utils.get_lm("LLM_AGENT", "LITELLM_API_KEY_AGENT")
|
|
236
|
-
# with dspy.context(lm=lm):
|
|
237
|
-
# guidance_func = dspy.ChainOfThought(MissingInfoGuidanceSignature)
|
|
238
|
-
# prediction = guidance_func(
|
|
239
|
-
# command_info=_what_can_i_do(chat_session_obj),
|
|
240
|
-
# missing_information_guidance_request=how_to_find_request)
|
|
241
|
-
# return prediction.guidance
|
|
242
|
-
|
|
243
194
|
def _ask_user_tool(clarification_request: str, chat_session_obj: fastworkflow.ChatSession) -> str:
|
|
244
195
|
"""
|
|
245
196
|
If the missing_information_guidance_tool does not help and only as the last resort, request clarification for missing information from the human user.
|
|
@@ -301,6 +252,13 @@ def initialize_workflow_tool_agent(chat_session: fastworkflow.ChatSession, max_i
|
|
|
301
252
|
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> ...
|
|
302
253
|
Don't use this tool to respond to a clarification requests in PARAMETER EXTRACTION ERROR state
|
|
303
254
|
"""
|
|
255
|
+
# Check if this command originated from user input (iteration_counter == 0)
|
|
256
|
+
# Set flag in workflow context so validate_extracted_parameters can access it
|
|
257
|
+
is_user_command = chat_session_obj.workflow_tool_agent.iteration_counter <= 0
|
|
258
|
+
workflow = chat_session_obj.get_active_workflow()
|
|
259
|
+
if workflow:
|
|
260
|
+
workflow.context["is_user_command"] = is_user_command
|
|
261
|
+
|
|
304
262
|
# Retry logic for workflow execution
|
|
305
263
|
max_retries = 2
|
|
306
264
|
for attempt in range(max_retries):
|
|
@@ -314,20 +272,17 @@ def initialize_workflow_tool_agent(chat_session: fastworkflow.ChatSession, max_i
|
|
|
314
272
|
# Continue to next attempt
|
|
315
273
|
logger.warning(f"Attempt {attempt + 1} failed for command '{command}': {str(e)}")
|
|
316
274
|
|
|
317
|
-
# def missing_information_guidance(how_to_find_request: str) -> str:
|
|
318
|
-
# """
|
|
319
|
-
# Request guidance on finding missing information.
|
|
320
|
-
# The how_to_find_request must be plain text without any formatting.
|
|
321
|
-
# """
|
|
322
|
-
# return _missing_information_guidance_tool(how_to_find_request, chat_session_obj=chat_session_obj)
|
|
323
|
-
|
|
324
275
|
def ask_user(clarification_request: str) -> str:
|
|
325
276
|
"""
|
|
326
277
|
Only as the last resort, request clarification for missing information from the human user.
|
|
327
278
|
The clarification_request must be plain text without any formatting.
|
|
328
279
|
Note that using the wrong command name can produce missing information errors. Double-check with the what_can_i_do tool to verify that the correct command name is being used
|
|
329
280
|
"""
|
|
330
|
-
|
|
281
|
+
# reset iteration counter, everytime we ask the user
|
|
282
|
+
# reset to -1, because we are dual purposing (iteration_counter <= 0) to check
|
|
283
|
+
# if command passed to execute_workflow_query() originated either:
|
|
284
|
+
# externally or inside agent loop immediately after an ask_user()_call
|
|
285
|
+
chat_session_obj.workflow_tool_agent.iteration_counter = -1
|
|
331
286
|
return _ask_user_tool(clarification_request, chat_session_obj=chat_session_obj)
|
|
332
287
|
|
|
333
288
|
tools = [
|
|
@@ -400,9 +355,9 @@ def build_query_with_next_steps(user_query: str,
|
|
|
400
355
|
return user_query
|
|
401
356
|
|
|
402
357
|
steps_list = '\n'.join([f'{i + 1}. {task}' for i, task in enumerate(prediction.next_steps)])
|
|
403
|
-
user_query_and_next_steps = f"{user_query}\n\
|
|
358
|
+
user_query_and_next_steps = f"{user_query}\n\nExecute these next steps:\n{steps_list}"
|
|
404
359
|
return (
|
|
405
|
-
f'
|
|
360
|
+
f'User Query:\n{user_query_and_next_steps}'
|
|
406
361
|
if with_agent_inputs_and_trajectory else
|
|
407
362
|
user_query_and_next_steps
|
|
408
363
|
)
|
|
@@ -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.13"
|
|
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
|
|
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.12 → fastworkflow-2.17.13}/fastworkflow/build/class_analysis_structures.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/command_dependency_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/context_folder_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/inheritance_block_regenerator.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/navigator_stub_generator.py
RENAMED
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/build/pydantic_model_generator.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
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/examples/fastworkflow.passwords.env
RENAMED
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/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
|
|
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.12 → fastworkflow-2.17.13}/fastworkflow/examples/retail_workflow/tools/think.py
RENAMED
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/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
|
|
File without changes
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/fastworkflow/run_fastapi_mcp/conversation_store.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.12 → fastworkflow-2.17.13}/fastworkflow/utils/command_dependency_graph.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
|
{fastworkflow-2.17.12 → fastworkflow-2.17.13}/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
|