autobyteus 1.1.8__tar.gz → 1.1.9__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.
- {autobyteus-1.1.8 → autobyteus-1.1.9}/PKG-INFO +2 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/bootstrap_steps/system_prompt_processing_step.py +6 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/inter_agent_message_event_handler.py +17 -19
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/llm_complete_response_received_event_handler.py +6 -3
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/tool_result_event_handler.py +61 -18
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/user_input_message_event_handler.py +19 -10
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/hooks/base_phase_hook.py +17 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/hooks/hook_registry.py +15 -27
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/input_processor/base_user_input_processor.py +17 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/input_processor/processor_registry.py +15 -27
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/base_processor.py +17 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/processor_registry.py +15 -24
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py +14 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/agent_input_user_message.py +15 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/send_message_to.py +1 -1
- autobyteus-1.1.9/autobyteus/agent/processor_option.py +17 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/sender_type.py +1 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/system_prompt_processor/base_processor.py +17 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/system_prompt_processor/processor_registry.py +15 -27
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/system_prompt_processor/tool_manifest_injector_processor.py +10 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/tool_execution_result_processor/base_processor.py +17 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/tool_execution_result_processor/processor_registry.py +15 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/workspace/base_workspace.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/workspace/workspace_definition.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/team_context_initialization_step.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/agent_team_stream_event_payloads.py +2 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/task_notification/__init__.py +4 -0
- autobyteus-1.1.9/autobyteus/agent_team/task_notification/activation_policy.py +70 -0
- autobyteus-1.1.9/autobyteus/agent_team/task_notification/system_event_driven_agent_task_notifier.py +98 -0
- autobyteus-1.1.9/autobyteus/agent_team/task_notification/task_activator.py +66 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/state.py +17 -20
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/focus_pane.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/task_board_panel.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/events/event_types.py +2 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/gemini_llm.py +45 -54
- autobyteus-1.1.9/autobyteus/llm/api/qwen_llm.py +25 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/autobyteus_provider.py +8 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/llm_factory.py +16 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/audio/api/autobyteus_audio_client.py +4 -1
- autobyteus-1.1.9/autobyteus/multimedia/audio/api/gemini_audio_client.py +150 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/audio/audio_client_factory.py +47 -22
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/audio/audio_model.py +13 -6
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/audio/autobyteus_audio_provider.py +8 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/audio/base_audio_client.py +3 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/api/autobyteus_image_client.py +12 -5
- autobyteus-1.1.9/autobyteus/multimedia/image/api/gemini_image_client.py +130 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/api/openai_image_client.py +4 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/autobyteus_image_provider.py +8 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/base_image_client.py +6 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/image_client_factory.py +20 -19
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/image_model.py +13 -6
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/providers.py +1 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/__init__.py +9 -10
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/base_task_board.py +14 -6
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/converters/__init__.py +0 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/converters/task_board_converter.py +7 -16
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/events.py +6 -6
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/in_memory_task_board.py +48 -38
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/schemas/__init__.py +2 -2
- autobyteus-1.1.8/autobyteus/task_management/schemas/plan_definition.py → autobyteus-1.1.9/autobyteus/task_management/schemas/task_definition.py +5 -6
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/schemas/task_status_report.py +0 -1
- autobyteus-1.1.9/autobyteus/task_management/task.py +60 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/tools/__init__.py +4 -2
- autobyteus-1.1.9/autobyteus/task_management/tools/get_my_tasks.py +80 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/tools/get_task_board_status.py +3 -3
- autobyteus-1.1.9/autobyteus/task_management/tools/publish_task.py +77 -0
- autobyteus-1.1.9/autobyteus/task_management/tools/publish_tasks.py +74 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/tools/update_task_status.py +5 -5
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/__init__.py +3 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/base_tool.py +4 -4
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/browser_session_aware_navigate_to.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/browser_session_aware_web_element_trigger.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_reader.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_screenshot_taker.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/navigate_to.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/web_page_pdf_generator.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/webpage_image_downloader.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/webpage_reader.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/webpage_screenshot_taker.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/functional_tool.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/google_search.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/image_downloader.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/factory.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/schema_mapper.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/tool.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/multimedia/__init__.py +2 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/multimedia/audio_tools.py +10 -20
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/multimedia/image_tools.py +21 -22
- autobyteus-1.1.9/autobyteus/tools/multimedia/media_reader_tool.py +117 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/pydantic_schema_converter.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/registry/tool_definition.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/timer.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/tool_meta.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/default_json_example_formatter.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/default_xml_example_formatter.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/default_xml_schema_formatter.py +59 -3
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/gemini_json_example_formatter.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/google_json_example_formatter.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/openai_json_example_formatter.py +1 -1
- {autobyteus-1.1.8/autobyteus/tools → autobyteus-1.1.9/autobyteus/utils}/parameter_schema.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus.egg-info/PKG-INFO +2 -2
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus.egg-info/SOURCES.txt +11 -5
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus.egg-info/requires.txt +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/run_poem_writer.py +1 -1
- {autobyteus-1.1.8 → autobyteus-1.1.9}/setup.py +2 -2
- autobyteus-1.1.8/autobyteus/agent_team/task_notification/system_event_driven_agent_task_notifier.py +0 -164
- autobyteus-1.1.8/autobyteus/multimedia/audio/api/gemini_audio_client.py +0 -219
- autobyteus-1.1.8/autobyteus/multimedia/image/api/gemini_image_client.py +0 -188
- autobyteus-1.1.8/autobyteus/task_management/converters/task_plan_converter.py +0 -48
- autobyteus-1.1.8/autobyteus/task_management/task_plan.py +0 -110
- autobyteus-1.1.8/autobyteus/task_management/tools/publish_task_plan.py +0 -101
- {autobyteus-1.1.8 → autobyteus-1.1.9}/LICENSE +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/README.md +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/agent.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/bootstrap_steps/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/bootstrap_steps/agent_bootstrapper.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/bootstrap_steps/agent_runtime_queue_initialization_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/bootstrap_steps/base_bootstrap_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/bootstrap_steps/mcp_server_prewarming_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/bootstrap_steps/workspace_context_initialization_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/context/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/context/agent_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/context/agent_context.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/context/agent_context_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/context/agent_runtime_state.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/events/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/events/agent_events.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/events/agent_input_event_queue_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/events/notifiers.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/events/worker_event_dispatcher.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/exceptions.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/factory/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/factory/agent_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/approved_tool_invocation_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/base_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/event_handler_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/generic_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/lifecycle_event_logger.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/llm_user_message_ready_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/tool_execution_approval_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/tool_invocation_request_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/hooks/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/hooks/hook_definition.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/hooks/hook_meta.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/input_processor/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/input_processor/processor_definition.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/input_processor/processor_meta.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/processor_definition.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/processor_meta.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/context_file.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/context_file_type.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/inter_agent_message.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/inter_agent_message_type.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/message/multimodal_message_builder.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/phases/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/phases/discover.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/phases/manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/phases/phase_enum.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/phases/transition_decorator.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/phases/transition_info.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/remote_agent.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/runtime/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/runtime/agent_runtime.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/runtime/agent_thread_pool_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/runtime/agent_worker.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/shutdown_steps/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/shutdown_steps/agent_shutdown_orchestrator.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/shutdown_steps/base_shutdown_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/shutdown_steps/llm_instance_cleanup_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/shutdown_steps/mcp_server_cleanup_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/streaming/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/streaming/agent_event_stream.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/streaming/queue_streamer.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/streaming/stream_event_payloads.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/streaming/stream_events.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/system_prompt_processor/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/system_prompt_processor/processor_definition.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/system_prompt_processor/processor_meta.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/tool_execution_result_processor/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/tool_execution_result_processor/processor_definition.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/tool_execution_result_processor/processor_meta.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/tool_invocation.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/utils/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/utils/wait_for_idle.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/workspace/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/workspace/workspace_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/workspace/workspace_meta.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/workspace/workspace_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/agent_team.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/agent_team_builder.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/base_agent_team.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/agent_configuration_preparation_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/agent_team_bootstrapper.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/agent_team_runtime_queue_initialization_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/base_agent_team_bootstrap_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/coordinator_initialization_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/coordinator_prompt_preparation_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/bootstrap_steps/task_notifier_initialization_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/context/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/context/agent_team_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/context/agent_team_context.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/context/agent_team_runtime_state.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/context/team_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/context/team_node_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/events/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/events/agent_team_event_dispatcher.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/events/agent_team_events.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/events/agent_team_input_event_queue_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/exceptions.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/factory/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/factory/agent_team_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/handlers/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/handlers/agent_team_event_handler_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/handlers/base_agent_team_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/handlers/inter_agent_message_request_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/handlers/lifecycle_agent_team_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/handlers/process_user_message_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/handlers/tool_approval_team_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/phases/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/phases/agent_team_operational_phase.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/phases/agent_team_phase_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/runtime/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/runtime/agent_team_runtime.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/runtime/agent_team_worker.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/shutdown_steps/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_orchestrator.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/shutdown_steps/base_agent_team_shutdown_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/shutdown_steps/bridge_cleanup_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/shutdown_steps/sub_team_shutdown_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/agent_event_bridge.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/agent_event_multiplexer.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/agent_team_event_notifier.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/agent_team_event_stream.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/agent_team_stream_events.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/streaming/team_event_bridge.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/task_notification/task_notification_mode.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/utils/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent_team/utils/wait_for_idle.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/check_requirements.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_cli.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/app.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/agent_list_sidebar.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/logo.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/renderables.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/shared.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/agent_team_tui/widgets/status_bar.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/cli_display.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/app.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/state.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/widgets/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/widgets/agent_list_sidebar.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/widgets/focus_pane.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/widgets/logo.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/widgets/renderables.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/widgets/shared.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/cli/workflow_tui/widgets/status_bar.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/events/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/events/event_emitter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/events/event_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/autobyteus_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/bedrock_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/claude_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/deepseek_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/grok_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/groq_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/kimi_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/lmstudio_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/mistral_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/nvidia_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/ollama_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/openai_compatible_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/api/openai_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/base_llm.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/extensions/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/extensions/base_extension.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/extensions/extension_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/extensions/token_usage_tracking_extension.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/lmstudio_provider.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/models.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/ollama_provider.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/ollama_provider_resolver.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/providers.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/runtimes.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/base_token_counter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/claude_token_counter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/deepseek_token_counter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/kimi_token_counter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/mistral_token_counter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/openai_token_counter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/token_counter/token_counter_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/user_message.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/llm_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/media_payload_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/messages.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/rate_limiter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/response_types.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/token_pricing_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/token_usage.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/llm/utils/token_usage_tracker.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/audio/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/audio/api/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/image/api/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/runtimes.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/utils/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/utils/api_utils.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/utils/multimedia_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/multimedia/utils/response_types.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/person/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/person/examples/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/person/examples/sample_persons.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/person/examples/sample_roles.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/person/person.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/person/role.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/prompt/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/prompt/prompt_builder.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/prompt/prompt_template.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/client/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/client/abstract_client_connection.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/client/client_connection_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/client/sse_client_connection.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/client/stdio_client_connection.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/config/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/config/agent_server_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/config/agent_server_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/hosting.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/protocol.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/server/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/server/agent_server_endpoint.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/server/base_method_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/server/method_handlers.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/server/sse_server_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/server/stdio_server_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/server_main.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/rpc/transport_type.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/deliverable.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/deliverables/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/deliverables/file_deliverable.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/task_management/schemas/deliverable_schema.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/bash/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/bash/bash_executor.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/browser_session_aware_tool.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/factory/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_web_element_trigger_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_reader_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_screenshot_taker_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/shared_browser_session.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/shared_browser_session_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/session_aware/web_element_action.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/factory/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/factory/webpage_reader_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/browser/standalone/factory/webpage_screenshot_taker_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/factory/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/factory/tool_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/file/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/file/file_reader.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/file/file_writer.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/handlers/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/handlers/shell_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/config_service.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/server/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/server/base_managed_mcp_server.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/server/http_managed_mcp_server.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/server/proxy.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/server/stdio_managed_mcp_server.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/server_instance_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/tool_registrar.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/mcp/types.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/operation/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/operation/file_operation.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/operation/file_rename_operation.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/operation/operation.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/operation/shell_operation.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/pdf_downloader.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/registry/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/registry/tool_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/tool_category.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/tool_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/tool_origin.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/tool_state.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/anthropic_json_example_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/anthropic_json_schema_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/base_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/default_json_schema_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/gemini_json_schema_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/google_json_schema_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/formatters/openai_json_schema_formatter.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/_json_extractor.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/anthropic_xml_tool_usage_parser.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/base_parser.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/default_json_tool_usage_parser.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/exceptions.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/gemini_json_tool_usage_parser.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/openai_json_tool_usage_parser.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/parsers/provider_aware_tool_usage_parser.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/providers/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/providers/tool_manifest_provider.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/registries/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/registries/tool_formatter_pair.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/registries/tool_formatting_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/usage/registries/tool_usage_parser_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/tools/utils.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/utils/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/utils/dynamic_enum.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/utils/file_utils.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/utils/html_cleaner.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/utils/singleton.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/agentic_workflow.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/base_agentic_workflow.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/bootstrap_steps/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/bootstrap_steps/agent_tool_injection_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/bootstrap_steps/base_workflow_bootstrap_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/bootstrap_steps/coordinator_initialization_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/bootstrap_steps/coordinator_prompt_preparation_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/bootstrap_steps/workflow_bootstrapper.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/bootstrap_steps/workflow_runtime_queue_initialization_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/context/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/context/team_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/context/workflow_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/context/workflow_context.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/context/workflow_node_config.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/context/workflow_runtime_state.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/events/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/events/workflow_event_dispatcher.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/events/workflow_events.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/events/workflow_input_event_queue_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/exceptions.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/factory/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/factory/workflow_factory.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/handlers/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/handlers/base_workflow_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/handlers/inter_agent_message_request_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/handlers/lifecycle_workflow_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/handlers/process_user_message_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/handlers/tool_approval_workflow_event_handler.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/handlers/workflow_event_handler_registry.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/phases/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/phases/workflow_operational_phase.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/phases/workflow_phase_manager.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/runtime/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/runtime/workflow_runtime.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/runtime/workflow_worker.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/shutdown_steps/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/shutdown_steps/agent_team_shutdown_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/shutdown_steps/base_workflow_shutdown_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/shutdown_steps/bridge_cleanup_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/shutdown_steps/sub_workflow_shutdown_step.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/shutdown_steps/workflow_shutdown_orchestrator.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/agent_event_bridge.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/agent_event_multiplexer.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/workflow_event_bridge.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/workflow_event_notifier.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/workflow_event_stream.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/workflow_stream_event_payloads.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/streaming/workflow_stream_events.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/utils/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/utils/wait_for_idle.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/workflow/workflow_builder.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus.egg-info/dependency_links.txt +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus.egg-info/top_level.txt +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/agent_team/__init__.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/discover_phase_transitions.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/run_browser_agent.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/run_google_slides_agent.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/run_mcp_browser_client.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/run_mcp_google_slides_client.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/run_mcp_list_tools.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/examples/run_sqlite_agent.py +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/pyproject.toml +0 -0
- {autobyteus-1.1.8 → autobyteus-1.1.9}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autobyteus
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.9
|
|
4
4
|
Summary: Multi-Agent framework
|
|
5
5
|
Home-page: https://github.com/AutoByteus/autobyteus
|
|
6
6
|
Author: Ryan Zheng
|
|
@@ -23,7 +23,7 @@ Requires-Dist: botocore
|
|
|
23
23
|
Requires-Dist: brui-core==1.0.9
|
|
24
24
|
Requires-Dist: certifi==2025.4.26
|
|
25
25
|
Requires-Dist: google-api-python-client
|
|
26
|
-
Requires-Dist: google-
|
|
26
|
+
Requires-Dist: google-genai==1.38.0
|
|
27
27
|
Requires-Dist: Jinja2
|
|
28
28
|
Requires-Dist: mcp[cli]
|
|
29
29
|
Requires-Dist: mistral_common
|
|
@@ -45,8 +45,12 @@ class SystemPromptProcessingStep(BaseBootstrapStep):
|
|
|
45
45
|
if not processor_instances:
|
|
46
46
|
logger.debug(f"Agent '{agent_id}': No system prompt processors configured. Using system prompt as is.")
|
|
47
47
|
else:
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
# Sort processors by their order attribute
|
|
49
|
+
sorted_processors = sorted(processor_instances, key=lambda p: p.get_order())
|
|
50
|
+
processor_names = [p.get_name() for p in sorted_processors]
|
|
51
|
+
logger.debug(f"Agent '{agent_id}': Found {len(sorted_processors)} configured system prompt processors. Applying sequentially in order: {processor_names}")
|
|
52
|
+
|
|
53
|
+
for processor_instance in sorted_processors:
|
|
50
54
|
if not isinstance(processor_instance, BaseSystemPromptProcessor):
|
|
51
55
|
error_message = f"Agent '{agent_id}': Invalid system prompt processor configuration type: {type(processor_instance)}. Expected BaseSystemPromptProcessor."
|
|
52
56
|
logger.error(error_message)
|
{autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/inter_agent_message_event_handler.py
RENAMED
|
@@ -3,10 +3,10 @@ import logging
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
5
|
from autobyteus.agent.handlers.base_event_handler import AgentEventHandler
|
|
6
|
-
from autobyteus.agent.events import InterAgentMessageReceivedEvent,
|
|
6
|
+
from autobyteus.agent.events import InterAgentMessageReceivedEvent, UserMessageReceivedEvent
|
|
7
7
|
from autobyteus.agent.message.inter_agent_message import InterAgentMessage
|
|
8
|
-
from autobyteus.
|
|
9
|
-
from autobyteus.agent.sender_type import
|
|
8
|
+
from autobyteus.agent.message.agent_input_user_message import AgentInputUserMessage
|
|
9
|
+
from autobyteus.agent.sender_type import SenderType
|
|
10
10
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from autobyteus.agent.context import AgentContext
|
|
@@ -17,7 +17,8 @@ logger = logging.getLogger(__name__)
|
|
|
17
17
|
class InterAgentMessageReceivedEventHandler(AgentEventHandler):
|
|
18
18
|
"""
|
|
19
19
|
Handles InterAgentMessageReceivedEvents by formatting the InterAgentMessage
|
|
20
|
-
into an
|
|
20
|
+
into an AgentInputUserMessage and enqueuing a UserMessageReceivedEvent to route
|
|
21
|
+
it through the main input processing pipeline.
|
|
21
22
|
"""
|
|
22
23
|
|
|
23
24
|
def __init__(self):
|
|
@@ -47,10 +48,6 @@ class InterAgentMessageReceivedEventHandler(AgentEventHandler):
|
|
|
47
48
|
f"'{inter_agent_msg.sender_agent_id}', type '{inter_agent_msg.message_type.value}'. "
|
|
48
49
|
f"Content: '{inter_agent_msg.content}'"
|
|
49
50
|
)
|
|
50
|
-
|
|
51
|
-
# This handler now only deals with messages from other agents, not the system notifier.
|
|
52
|
-
# The logic for system task notifications has been moved to UserInputMessageEventHandler
|
|
53
|
-
# by checking the message metadata.
|
|
54
51
|
|
|
55
52
|
content_for_llm = (
|
|
56
53
|
f"You have received a message from another agent.\n"
|
|
@@ -63,19 +60,20 @@ class InterAgentMessageReceivedEventHandler(AgentEventHandler):
|
|
|
63
60
|
f"Please process this information and act accordingly."
|
|
64
61
|
)
|
|
65
62
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
63
|
+
# --- REFACTORED: Route through the main input pipeline ---
|
|
64
|
+
agent_input_user_message = AgentInputUserMessage(
|
|
65
|
+
content=content_for_llm,
|
|
66
|
+
sender_type=SenderType.AGENT,
|
|
67
|
+
metadata={
|
|
68
|
+
"sender_agent_id": inter_agent_msg.sender_agent_id,
|
|
69
|
+
"original_message_type": inter_agent_msg.message_type.value
|
|
70
|
+
}
|
|
71
|
+
)
|
|
74
72
|
|
|
75
|
-
|
|
76
|
-
await context.input_event_queues.
|
|
73
|
+
user_message_received_event = UserMessageReceivedEvent(agent_input_user_message=agent_input_user_message)
|
|
74
|
+
await context.input_event_queues.enqueue_user_message(user_message_received_event)
|
|
77
75
|
|
|
78
76
|
logger.info(
|
|
79
77
|
f"Agent '{context.agent_id}' processed InterAgentMessage from sender '{inter_agent_msg.sender_agent_id}' "
|
|
80
|
-
f"and enqueued
|
|
78
|
+
f"and enqueued UserMessageReceivedEvent to route through input pipeline."
|
|
81
79
|
)
|
|
@@ -63,9 +63,12 @@ class LLMCompleteResponseReceivedEventHandler(AgentEventHandler):
|
|
|
63
63
|
f"Proceeding to treat LLM response as output for this leg."
|
|
64
64
|
)
|
|
65
65
|
else:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
for
|
|
66
|
+
# Sort processors by their order attribute
|
|
67
|
+
sorted_processors = sorted(processor_instances_to_try, key=lambda p: p.get_order())
|
|
68
|
+
processor_names = [p.get_name() for p in sorted_processors]
|
|
69
|
+
logger.debug(f"Agent '{agent_id}': Attempting LLM response processing in order: {processor_names}")
|
|
70
|
+
|
|
71
|
+
for processor_instance in sorted_processors:
|
|
69
72
|
processor_name_for_log: str = "unknown"
|
|
70
73
|
try:
|
|
71
74
|
if not isinstance(processor_instance, BaseLLMResponseProcessor):
|
{autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/tool_result_event_handler.py
RENAMED
|
@@ -4,9 +4,11 @@ import json
|
|
|
4
4
|
from typing import TYPE_CHECKING, Optional, List
|
|
5
5
|
|
|
6
6
|
from autobyteus.agent.handlers.base_event_handler import AgentEventHandler
|
|
7
|
-
from autobyteus.agent.events import ToolResultEvent,
|
|
8
|
-
from autobyteus.llm.user_message import LLMUserMessage
|
|
7
|
+
from autobyteus.agent.events import ToolResultEvent, UserMessageReceivedEvent
|
|
9
8
|
from autobyteus.agent.tool_execution_result_processor import BaseToolExecutionResultProcessor
|
|
9
|
+
from autobyteus.agent.message.context_file import ContextFile
|
|
10
|
+
from autobyteus.agent.message import AgentInputUserMessage
|
|
11
|
+
from autobyteus.agent.sender_type import SenderType
|
|
10
12
|
|
|
11
13
|
if TYPE_CHECKING:
|
|
12
14
|
from autobyteus.agent.context import AgentContext
|
|
@@ -19,31 +21,65 @@ class ToolResultEventHandler(AgentEventHandler):
|
|
|
19
21
|
Handles ToolResultEvents. It processes and notifies for each individual tool
|
|
20
22
|
result as it arrives. If a multi-tool call turn is active, it accumulates
|
|
21
23
|
these results until the turn is complete, re-orders them to match the original
|
|
22
|
-
invocation sequence, and then sends a single aggregated message to the LLM
|
|
24
|
+
invocation sequence, and then sends a single aggregated message to the LLM
|
|
25
|
+
by enqueuing a UserMessageReceivedEvent.
|
|
26
|
+
|
|
27
|
+
This handler is now "media-aware": if a tool's result is a `ContextFile`
|
|
28
|
+
object, it will be added as multimodal context to the next LLM call rather
|
|
29
|
+
than as plain text.
|
|
23
30
|
"""
|
|
24
31
|
def __init__(self):
|
|
25
32
|
logger.info("ToolResultEventHandler initialized.")
|
|
26
33
|
|
|
27
|
-
async def
|
|
34
|
+
async def _dispatch_results_to_input_pipeline(self,
|
|
28
35
|
processed_events: List[ToolResultEvent],
|
|
29
36
|
context: 'AgentContext'):
|
|
30
37
|
"""
|
|
31
38
|
Aggregates a list of PRE-PROCESSED and ORDERED tool results into a single
|
|
32
|
-
|
|
39
|
+
AgentInputUserMessage and dispatches it into the main input processing pipeline
|
|
40
|
+
by enqueuing a UserMessageReceivedEvent.
|
|
33
41
|
"""
|
|
34
42
|
agent_id = context.agent_id
|
|
35
43
|
|
|
36
|
-
# ---
|
|
37
|
-
aggregated_content_parts = []
|
|
44
|
+
# --- NEW: Separate text results from media context results ---
|
|
45
|
+
aggregated_content_parts: List[str] = []
|
|
46
|
+
media_context_files: List[ContextFile] = []
|
|
47
|
+
|
|
38
48
|
for p_event in processed_events:
|
|
39
49
|
tool_invocation_id = p_event.tool_invocation_id if p_event.tool_invocation_id else 'N/A'
|
|
40
|
-
|
|
50
|
+
|
|
51
|
+
# Check if the result is a ContextFile or a list of them
|
|
52
|
+
result_is_media = False
|
|
53
|
+
if isinstance(p_event.result, ContextFile):
|
|
54
|
+
media_context_files.append(p_event.result)
|
|
55
|
+
aggregated_content_parts.append(
|
|
56
|
+
f"Tool: {p_event.tool_name} (ID: {tool_invocation_id})\n"
|
|
57
|
+
f"Status: Success\n"
|
|
58
|
+
f"Result: The file '{p_event.result.file_name}' has been loaded into the context for you to view."
|
|
59
|
+
)
|
|
60
|
+
result_is_media = True
|
|
61
|
+
elif isinstance(p_event.result, list) and all(isinstance(item, ContextFile) for item in p_event.result):
|
|
62
|
+
media_context_files.extend(p_event.result)
|
|
63
|
+
file_names = [cf.file_name for cf in p_event.result if cf.file_name]
|
|
64
|
+
aggregated_content_parts.append(
|
|
65
|
+
f"Tool: {p_event.tool_name} (ID: {tool_invocation_id})\n"
|
|
66
|
+
f"Status: Success\n"
|
|
67
|
+
f"Result: The following files have been loaded into the context for you to view: {file_names}"
|
|
68
|
+
)
|
|
69
|
+
result_is_media = True
|
|
70
|
+
|
|
71
|
+
if result_is_media:
|
|
72
|
+
continue
|
|
73
|
+
|
|
74
|
+
# Handle errors
|
|
41
75
|
if p_event.error:
|
|
42
76
|
content_part = (
|
|
43
77
|
f"Tool: {p_event.tool_name} (ID: {tool_invocation_id})\n"
|
|
44
78
|
f"Status: Error\n"
|
|
45
79
|
f"Details: {p_event.error}"
|
|
46
80
|
)
|
|
81
|
+
aggregated_content_parts.append(content_part)
|
|
82
|
+
# Handle standard text/JSON results
|
|
47
83
|
else:
|
|
48
84
|
try:
|
|
49
85
|
result_str = json.dumps(p_event.result, indent=2) if not isinstance(p_event.result, str) else p_event.result
|
|
@@ -54,20 +90,26 @@ class ToolResultEventHandler(AgentEventHandler):
|
|
|
54
90
|
f"Status: Success\n"
|
|
55
91
|
f"Result:\n{result_str}"
|
|
56
92
|
)
|
|
57
|
-
|
|
93
|
+
aggregated_content_parts.append(content_part)
|
|
58
94
|
|
|
59
95
|
final_content_for_llm = (
|
|
60
96
|
"The following tool executions have completed. Please analyze their results and decide the next course of action.\n\n"
|
|
61
97
|
+ "\n\n---\n\n".join(aggregated_content_parts)
|
|
62
98
|
)
|
|
63
99
|
|
|
64
|
-
logger.debug(f"Agent '{agent_id}' preparing aggregated message for
|
|
65
|
-
llm_user_message = LLMUserMessage(content=final_content_for_llm)
|
|
100
|
+
logger.debug(f"Agent '{agent_id}' preparing aggregated message from tool results for input pipeline:\n---\n{final_content_for_llm}\n---")
|
|
66
101
|
|
|
67
|
-
|
|
68
|
-
|
|
102
|
+
# --- REFACTORED: Create an AgentInputUserMessage and route it through the standard input pipeline ---
|
|
103
|
+
agent_input_user_message = AgentInputUserMessage(
|
|
104
|
+
content=final_content_for_llm,
|
|
105
|
+
sender_type=SenderType.TOOL,
|
|
106
|
+
context_files=media_context_files
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
next_event = UserMessageReceivedEvent(agent_input_user_message=agent_input_user_message)
|
|
110
|
+
await context.input_event_queues.enqueue_user_message(next_event)
|
|
69
111
|
|
|
70
|
-
logger.info(f"Agent '{agent_id}' enqueued
|
|
112
|
+
logger.info(f"Agent '{agent_id}' enqueued UserMessageReceivedEvent with aggregated results from {len(processed_events)} tool(s) and {len(media_context_files)} media file(s).")
|
|
71
113
|
|
|
72
114
|
|
|
73
115
|
async def handle(self,
|
|
@@ -84,7 +126,9 @@ class ToolResultEventHandler(AgentEventHandler):
|
|
|
84
126
|
processed_event = event
|
|
85
127
|
processor_instances = context.config.tool_execution_result_processors
|
|
86
128
|
if processor_instances:
|
|
87
|
-
|
|
129
|
+
# Sort processors by their order attribute
|
|
130
|
+
sorted_processors = sorted(processor_instances, key=lambda p: p.get_order())
|
|
131
|
+
for processor_instance in sorted_processors:
|
|
88
132
|
if not isinstance(processor_instance, BaseToolExecutionResultProcessor):
|
|
89
133
|
logger.error(f"Agent '{agent_id}': Invalid tool result processor type: {type(processor_instance)}. Skipping.")
|
|
90
134
|
continue
|
|
@@ -119,7 +163,7 @@ class ToolResultEventHandler(AgentEventHandler):
|
|
|
119
163
|
# Case 1: Not a multi-tool call turn, dispatch to LLM immediately.
|
|
120
164
|
if not active_turn:
|
|
121
165
|
logger.info(f"Agent '{agent_id}' handling single ToolResultEvent from tool: '{processed_event.tool_name}'.")
|
|
122
|
-
await self.
|
|
166
|
+
await self._dispatch_results_to_input_pipeline([processed_event], context)
|
|
123
167
|
return
|
|
124
168
|
|
|
125
169
|
# Case 2: Multi-tool call turn is active, accumulate results.
|
|
@@ -154,8 +198,7 @@ class ToolResultEventHandler(AgentEventHandler):
|
|
|
154
198
|
tool_invocation_id=original_invocation.id
|
|
155
199
|
))
|
|
156
200
|
|
|
157
|
-
await self.
|
|
201
|
+
await self._dispatch_results_to_input_pipeline(sorted_results, context)
|
|
158
202
|
|
|
159
203
|
context.state.active_multi_tool_call_turn = None
|
|
160
204
|
logger.info(f"Agent '{agent_id}': Multi-tool call turn state has been cleared.")
|
|
161
|
-
|
{autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/handlers/user_input_message_event_handler.py
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# file: autobyteus/autobyteus/agent/handlers/user_input_message_event_handler.py
|
|
2
2
|
import logging
|
|
3
|
+
import copy
|
|
3
4
|
from typing import TYPE_CHECKING
|
|
4
5
|
|
|
5
6
|
from autobyteus.agent.handlers.base_event_handler import AgentEventHandler
|
|
@@ -7,6 +8,7 @@ from autobyteus.agent.events import UserMessageReceivedEvent, LLMUserMessageRead
|
|
|
7
8
|
from autobyteus.agent.message.agent_input_user_message import AgentInputUserMessage
|
|
8
9
|
from autobyteus.agent.input_processor import BaseAgentUserInputMessageProcessor
|
|
9
10
|
from autobyteus.agent.message.multimodal_message_builder import build_llm_user_message
|
|
11
|
+
from autobyteus.agent.sender_type import SenderType
|
|
10
12
|
|
|
11
13
|
|
|
12
14
|
if TYPE_CHECKING:
|
|
@@ -35,27 +37,34 @@ class UserInputMessageEventHandler(AgentEventHandler):
|
|
|
35
37
|
|
|
36
38
|
original_agent_input_user_msg: AgentInputUserMessage = event.agent_input_user_message
|
|
37
39
|
|
|
38
|
-
# ---
|
|
39
|
-
if original_agent_input_user_msg.
|
|
40
|
+
# --- UPDATED LOGIC: Check sender_type for system-generated tasks and notify TUI ---
|
|
41
|
+
if original_agent_input_user_msg.sender_type == SenderType.SYSTEM:
|
|
40
42
|
if context.phase_manager:
|
|
41
43
|
notifier: 'AgentExternalEventNotifier' = context.phase_manager.notifier
|
|
42
44
|
notification_data = {
|
|
43
|
-
"sender_id": "system
|
|
45
|
+
"sender_id": original_agent_input_user_msg.metadata.get("sender_id", "system"),
|
|
44
46
|
"content": original_agent_input_user_msg.content,
|
|
45
47
|
}
|
|
46
48
|
notifier.notify_agent_data_system_task_notification_received(notification_data)
|
|
47
|
-
logger.info(f"Agent '{context.agent_id}' emitted system task notification for TUI.")
|
|
48
|
-
# --- END
|
|
49
|
+
logger.info(f"Agent '{context.agent_id}' emitted system task notification for TUI based on SYSTEM sender_type.")
|
|
50
|
+
# --- END UPDATED LOGIC ---
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
# Create a deep copy of the message to pass through the processor chain.
|
|
53
|
+
# This prevents in-place mutation of the original event's message object,
|
|
54
|
+
# ensuring that processors like UserInputPersistenceProcessor can access
|
|
55
|
+
# the true original content via the triggering_event.
|
|
56
|
+
processed_agent_input_user_msg = copy.deepcopy(original_agent_input_user_msg)
|
|
51
57
|
|
|
52
|
-
logger.info(f"Agent '{context.agent_id}' handling UserMessageReceivedEvent: '{original_agent_input_user_msg.content}'")
|
|
58
|
+
logger.info(f"Agent '{context.agent_id}' handling UserMessageReceivedEvent (type: {original_agent_input_user_msg.sender_type.value}): '{original_agent_input_user_msg.content}'")
|
|
53
59
|
|
|
54
60
|
processor_instances = context.config.input_processors
|
|
55
61
|
if processor_instances:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
for
|
|
62
|
+
# Sort processors by their order attribute
|
|
63
|
+
sorted_processors = sorted(processor_instances, key=lambda p: p.get_order())
|
|
64
|
+
processor_names = [p.get_name() for p in sorted_processors]
|
|
65
|
+
logger.debug(f"Agent '{context.agent_id}': Applying input processors in order: {processor_names}")
|
|
66
|
+
|
|
67
|
+
for processor_instance in sorted_processors:
|
|
59
68
|
processor_name_for_log = "unknown"
|
|
60
69
|
try:
|
|
61
70
|
if not isinstance(processor_instance, BaseAgentUserInputMessageProcessor):
|
|
@@ -29,6 +29,23 @@ class BasePhaseHook(ABC, metaclass=PhaseHookMeta):
|
|
|
29
29
|
"""
|
|
30
30
|
return cls.__name__
|
|
31
31
|
|
|
32
|
+
@classmethod
|
|
33
|
+
def get_order(cls) -> int:
|
|
34
|
+
"""
|
|
35
|
+
Returns the execution order for this hook if multiple hooks are triggered
|
|
36
|
+
on the same transition. Lower numbers execute earlier.
|
|
37
|
+
Defaults to 500 (normal priority).
|
|
38
|
+
"""
|
|
39
|
+
return 500
|
|
40
|
+
|
|
41
|
+
@classmethod
|
|
42
|
+
def is_mandatory(cls) -> bool:
|
|
43
|
+
"""
|
|
44
|
+
Returns True if this hook is mandatory for the agent to function correctly.
|
|
45
|
+
Defaults to False (optional).
|
|
46
|
+
"""
|
|
47
|
+
return False
|
|
48
|
+
|
|
32
49
|
@property
|
|
33
50
|
@abstractmethod
|
|
34
51
|
def source_phase(self) -> AgentOperationalPhase:
|
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
from typing import TYPE_CHECKING, Dict, List, Optional
|
|
4
4
|
|
|
5
5
|
from autobyteus.utils.singleton import SingletonMeta
|
|
6
|
+
from autobyteus.agent.processor_option import HookOption
|
|
6
7
|
from .hook_definition import PhaseHookDefinition
|
|
7
8
|
|
|
8
9
|
if TYPE_CHECKING:
|
|
@@ -24,14 +25,6 @@ class PhaseHookRegistry(metaclass=SingletonMeta):
|
|
|
24
25
|
def register_hook(self, definition: PhaseHookDefinition) -> None:
|
|
25
26
|
"""
|
|
26
27
|
Registers a phase hook definition.
|
|
27
|
-
If a definition with the same name already exists, it will be overwritten,
|
|
28
|
-
and a warning will be logged.
|
|
29
|
-
|
|
30
|
-
Args:
|
|
31
|
-
definition: The PhaseHookDefinition object to register.
|
|
32
|
-
|
|
33
|
-
Raises:
|
|
34
|
-
TypeError: If the definition is not an instance of PhaseHookDefinition.
|
|
35
28
|
"""
|
|
36
29
|
if not isinstance(definition, PhaseHookDefinition):
|
|
37
30
|
raise TypeError(f"Expected PhaseHookDefinition instance, got {type(definition).__name__}.")
|
|
@@ -46,12 +39,6 @@ class PhaseHookRegistry(metaclass=SingletonMeta):
|
|
|
46
39
|
def get_hook_definition(self, name: str) -> Optional[PhaseHookDefinition]:
|
|
47
40
|
"""
|
|
48
41
|
Retrieves a phase hook definition by its name.
|
|
49
|
-
|
|
50
|
-
Args:
|
|
51
|
-
name: The name of the phase hook definition to retrieve.
|
|
52
|
-
|
|
53
|
-
Returns:
|
|
54
|
-
The PhaseHookDefinition object if found, otherwise None.
|
|
55
42
|
"""
|
|
56
43
|
if not isinstance(name, str):
|
|
57
44
|
logger.warning(f"Attempted to retrieve hook definition with non-string name: {type(name).__name__}.")
|
|
@@ -64,12 +51,6 @@ class PhaseHookRegistry(metaclass=SingletonMeta):
|
|
|
64
51
|
def get_hook(self, name: str) -> Optional['BasePhaseHook']:
|
|
65
52
|
"""
|
|
66
53
|
Retrieves an instance of a phase hook by its name.
|
|
67
|
-
|
|
68
|
-
Args:
|
|
69
|
-
name: The name of the phase hook to retrieve.
|
|
70
|
-
|
|
71
|
-
Returns:
|
|
72
|
-
An instance of the BasePhaseHook if found and instantiable, otherwise None.
|
|
73
54
|
"""
|
|
74
55
|
definition = self.get_hook_definition(name)
|
|
75
56
|
if definition:
|
|
@@ -82,19 +63,26 @@ class PhaseHookRegistry(metaclass=SingletonMeta):
|
|
|
82
63
|
|
|
83
64
|
def list_hook_names(self) -> List[str]:
|
|
84
65
|
"""
|
|
85
|
-
Returns
|
|
86
|
-
|
|
87
|
-
Returns:
|
|
88
|
-
A list of strings, where each string is a registered hook name.
|
|
66
|
+
Returns an unordered list of names of all registered phase hook definitions.
|
|
89
67
|
"""
|
|
90
68
|
return list(self._definitions.keys())
|
|
91
69
|
|
|
70
|
+
def get_ordered_hook_options(self) -> List[HookOption]:
|
|
71
|
+
"""
|
|
72
|
+
Returns a list of HookOption objects, sorted by their execution order.
|
|
73
|
+
"""
|
|
74
|
+
definitions = list(self._definitions.values())
|
|
75
|
+
sorted_definitions = sorted(definitions, key=lambda d: d.hook_class.get_order())
|
|
76
|
+
return [
|
|
77
|
+
HookOption(
|
|
78
|
+
name=d.name,
|
|
79
|
+
is_mandatory=d.hook_class.is_mandatory()
|
|
80
|
+
) for d in sorted_definitions
|
|
81
|
+
]
|
|
82
|
+
|
|
92
83
|
def get_all_definitions(self) -> Dict[str, PhaseHookDefinition]:
|
|
93
84
|
"""
|
|
94
85
|
Returns a shallow copy of the dictionary containing all registered phase hook definitions.
|
|
95
|
-
|
|
96
|
-
Returns:
|
|
97
|
-
A dictionary where keys are hook names and values are PhaseHookDefinition objects.
|
|
98
86
|
"""
|
|
99
87
|
return dict(self._definitions)
|
|
100
88
|
|
{autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/input_processor/base_user_input_processor.py
RENAMED
|
@@ -28,6 +28,22 @@ class BaseAgentUserInputMessageProcessor(ABC, metaclass=AgentUserInputMessagePro
|
|
|
28
28
|
"""
|
|
29
29
|
return cls.__name__
|
|
30
30
|
|
|
31
|
+
@classmethod
|
|
32
|
+
def get_order(cls) -> int:
|
|
33
|
+
"""
|
|
34
|
+
Returns the execution order for this processor. Lower numbers execute earlier.
|
|
35
|
+
Defaults to 500 (normal priority).
|
|
36
|
+
"""
|
|
37
|
+
return 500
|
|
38
|
+
|
|
39
|
+
@classmethod
|
|
40
|
+
def is_mandatory(cls) -> bool:
|
|
41
|
+
"""
|
|
42
|
+
Returns True if this processor is mandatory for the agent to function correctly.
|
|
43
|
+
Defaults to False (optional).
|
|
44
|
+
"""
|
|
45
|
+
return False
|
|
46
|
+
|
|
31
47
|
@abstractmethod
|
|
32
48
|
async def process(self,
|
|
33
49
|
message: 'AgentInputUserMessage',
|
|
@@ -51,4 +67,4 @@ class BaseAgentUserInputMessageProcessor(ABC, metaclass=AgentUserInputMessagePro
|
|
|
51
67
|
raise NotImplementedError("Subclasses must implement the 'process' method.")
|
|
52
68
|
|
|
53
69
|
def __repr__(self) -> str:
|
|
54
|
-
return f"
|
|
70
|
+
return f"<{self.__class__.__name__}>"
|
{autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/input_processor/processor_registry.py
RENAMED
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
from typing import TYPE_CHECKING, Dict, List, Optional, Type
|
|
4
4
|
|
|
5
5
|
from autobyteus.utils.singleton import SingletonMeta
|
|
6
|
+
from autobyteus.agent.processor_option import ProcessorOption
|
|
6
7
|
from .processor_definition import AgentUserInputMessageProcessorDefinition
|
|
7
8
|
if TYPE_CHECKING:
|
|
8
9
|
from .base_user_input_processor import BaseAgentUserInputMessageProcessor
|
|
@@ -23,14 +24,6 @@ class AgentUserInputMessageProcessorRegistry(metaclass=SingletonMeta):
|
|
|
23
24
|
def register_processor(self, definition: AgentUserInputMessageProcessorDefinition) -> None:
|
|
24
25
|
"""
|
|
25
26
|
Registers an input processor definition.
|
|
26
|
-
If a definition with the same name already exists, it will be overwritten,
|
|
27
|
-
and a warning will be logged.
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
definition: The AgentUserInputMessageProcessorDefinition object to register.
|
|
31
|
-
|
|
32
|
-
Raises:
|
|
33
|
-
ValueError: If the definition is not an instance of AgentUserInputMessageProcessorDefinition.
|
|
34
27
|
"""
|
|
35
28
|
if not isinstance(definition, AgentUserInputMessageProcessorDefinition):
|
|
36
29
|
raise TypeError(f"Expected AgentUserInputMessageProcessorDefinition instance, got {type(definition).__name__}.")
|
|
@@ -45,12 +38,6 @@ class AgentUserInputMessageProcessorRegistry(metaclass=SingletonMeta):
|
|
|
45
38
|
def get_processor_definition(self, name: str) -> Optional[AgentUserInputMessageProcessorDefinition]:
|
|
46
39
|
"""
|
|
47
40
|
Retrieves an input processor definition by its name.
|
|
48
|
-
|
|
49
|
-
Args:
|
|
50
|
-
name: The name of the input processor definition to retrieve.
|
|
51
|
-
|
|
52
|
-
Returns:
|
|
53
|
-
The AgentUserInputMessageProcessorDefinition object if found, otherwise None.
|
|
54
41
|
"""
|
|
55
42
|
if not isinstance(name, str):
|
|
56
43
|
logger.warning(f"Attempted to retrieve input processor definition with non-string name: {type(name).__name__}.")
|
|
@@ -63,12 +50,6 @@ class AgentUserInputMessageProcessorRegistry(metaclass=SingletonMeta):
|
|
|
63
50
|
def get_processor(self, name: str) -> Optional['BaseAgentUserInputMessageProcessor']:
|
|
64
51
|
"""
|
|
65
52
|
Retrieves an instance of an input processor by its name.
|
|
66
|
-
|
|
67
|
-
Args:
|
|
68
|
-
name: The name of the input processor to retrieve.
|
|
69
|
-
|
|
70
|
-
Returns:
|
|
71
|
-
An instance of the BaseAgentUserInputMessageProcessor if found and instantiable, otherwise None.
|
|
72
53
|
"""
|
|
73
54
|
definition = self.get_processor_definition(name)
|
|
74
55
|
if definition:
|
|
@@ -81,19 +62,26 @@ class AgentUserInputMessageProcessorRegistry(metaclass=SingletonMeta):
|
|
|
81
62
|
|
|
82
63
|
def list_processor_names(self) -> List[str]:
|
|
83
64
|
"""
|
|
84
|
-
Returns
|
|
85
|
-
|
|
86
|
-
Returns:
|
|
87
|
-
A list of strings, where each string is a registered processor name.
|
|
65
|
+
Returns an unordered list of names of all registered input processor definitions.
|
|
88
66
|
"""
|
|
89
67
|
return list(self._definitions.keys())
|
|
90
68
|
|
|
69
|
+
def get_ordered_processor_options(self) -> List[ProcessorOption]:
|
|
70
|
+
"""
|
|
71
|
+
Returns a list of ProcessorOption objects, sorted by their execution order.
|
|
72
|
+
"""
|
|
73
|
+
definitions = list(self._definitions.values())
|
|
74
|
+
sorted_definitions = sorted(definitions, key=lambda d: d.processor_class.get_order())
|
|
75
|
+
return [
|
|
76
|
+
ProcessorOption(
|
|
77
|
+
name=d.name,
|
|
78
|
+
is_mandatory=d.processor_class.is_mandatory()
|
|
79
|
+
) for d in sorted_definitions
|
|
80
|
+
]
|
|
81
|
+
|
|
91
82
|
def get_all_definitions(self) -> Dict[str, AgentUserInputMessageProcessorDefinition]:
|
|
92
83
|
"""
|
|
93
84
|
Returns a shallow copy of the dictionary containing all registered input processor definitions.
|
|
94
|
-
|
|
95
|
-
Returns:
|
|
96
|
-
A dictionary where keys are processor names and values are AgentUserInputMessageProcessorDefinition objects.
|
|
97
85
|
"""
|
|
98
86
|
return dict(self._definitions)
|
|
99
87
|
|
{autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/base_processor.py
RENAMED
|
@@ -30,6 +30,22 @@ class BaseLLMResponseProcessor(ABC, metaclass=LLMResponseProcessorMeta):
|
|
|
30
30
|
"""
|
|
31
31
|
return cls.__name__
|
|
32
32
|
|
|
33
|
+
@classmethod
|
|
34
|
+
def get_order(cls) -> int:
|
|
35
|
+
"""
|
|
36
|
+
Returns the execution order for this processor. Lower numbers execute earlier.
|
|
37
|
+
Defaults to 500 (normal priority).
|
|
38
|
+
"""
|
|
39
|
+
return 500
|
|
40
|
+
|
|
41
|
+
@classmethod
|
|
42
|
+
def is_mandatory(cls) -> bool:
|
|
43
|
+
"""
|
|
44
|
+
Returns True if this processor is mandatory for the agent to function correctly.
|
|
45
|
+
Defaults to False (optional).
|
|
46
|
+
"""
|
|
47
|
+
return False
|
|
48
|
+
|
|
33
49
|
@abstractmethod
|
|
34
50
|
async def process_response(self, response: 'CompleteResponse', context: 'AgentContext', triggering_event: 'LLMCompleteResponseReceivedEvent') -> bool:
|
|
35
51
|
"""
|
|
@@ -50,4 +66,4 @@ class BaseLLMResponseProcessor(ABC, metaclass=LLMResponseProcessorMeta):
|
|
|
50
66
|
raise NotImplementedError("Subclasses must implement the 'process_response' method.")
|
|
51
67
|
|
|
52
68
|
def __repr__(self) -> str:
|
|
53
|
-
return f"
|
|
69
|
+
return f"<{self.__class__.__name__}>"
|
{autobyteus-1.1.8 → autobyteus-1.1.9}/autobyteus/agent/llm_response_processor/processor_registry.py
RENAMED
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
from typing import TYPE_CHECKING, Dict, List, Optional, Type
|
|
4
4
|
|
|
5
5
|
from autobyteus.utils.singleton import SingletonMeta
|
|
6
|
+
from autobyteus.agent.processor_option import ProcessorOption
|
|
6
7
|
from .processor_definition import LLMResponseProcessorDefinition
|
|
7
8
|
if TYPE_CHECKING:
|
|
8
9
|
from .base_processor import BaseLLMResponseProcessor
|
|
@@ -23,14 +24,6 @@ class LLMResponseProcessorRegistry(metaclass=SingletonMeta):
|
|
|
23
24
|
def register_processor(self, definition: LLMResponseProcessorDefinition) -> None:
|
|
24
25
|
"""
|
|
25
26
|
Registers an LLM response processor definition.
|
|
26
|
-
If a definition with the same name already exists, it will be overwritten,
|
|
27
|
-
and a warning will be logged.
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
definition: The LLMResponseProcessorDefinition object to register.
|
|
31
|
-
|
|
32
|
-
Raises:
|
|
33
|
-
TypeError: If the definition is not an instance of LLMResponseProcessorDefinition.
|
|
34
27
|
"""
|
|
35
28
|
if not isinstance(definition, LLMResponseProcessorDefinition):
|
|
36
29
|
raise TypeError(f"Expected LLMResponseProcessorDefinition instance, got {type(definition).__name__}.")
|
|
@@ -45,12 +38,6 @@ class LLMResponseProcessorRegistry(metaclass=SingletonMeta):
|
|
|
45
38
|
def get_processor_definition(self, name: str) -> Optional[LLMResponseProcessorDefinition]:
|
|
46
39
|
"""
|
|
47
40
|
Retrieves an LLM response processor definition by its name.
|
|
48
|
-
|
|
49
|
-
Args:
|
|
50
|
-
name: The name of the LLM response processor definition to retrieve.
|
|
51
|
-
|
|
52
|
-
Returns:
|
|
53
|
-
The LLMResponseProcessorDefinition object if found, otherwise None.
|
|
54
41
|
"""
|
|
55
42
|
if not isinstance(name, str):
|
|
56
43
|
logger.warning(f"Attempted to retrieve LLM response processor definition with non-string name: {type(name).__name__}.")
|
|
@@ -63,12 +50,6 @@ class LLMResponseProcessorRegistry(metaclass=SingletonMeta):
|
|
|
63
50
|
def get_processor(self, name: str) -> Optional['BaseLLMResponseProcessor']:
|
|
64
51
|
"""
|
|
65
52
|
Retrieves an instance of an LLM response processor by its name.
|
|
66
|
-
|
|
67
|
-
Args:
|
|
68
|
-
name: The name of the LLM response processor to retrieve.
|
|
69
|
-
|
|
70
|
-
Returns:
|
|
71
|
-
An instance of the BaseLLMResponseProcessor if found and instantiable, otherwise None.
|
|
72
53
|
"""
|
|
73
54
|
definition = self.get_processor_definition(name)
|
|
74
55
|
if definition:
|
|
@@ -81,13 +62,23 @@ class LLMResponseProcessorRegistry(metaclass=SingletonMeta):
|
|
|
81
62
|
|
|
82
63
|
def list_processor_names(self) -> List[str]:
|
|
83
64
|
"""
|
|
84
|
-
Returns
|
|
85
|
-
|
|
86
|
-
Returns:
|
|
87
|
-
A list of strings, where each string is a registered processor name.
|
|
65
|
+
Returns an unordered list of names of all registered LLM response processor definitions.
|
|
88
66
|
"""
|
|
89
67
|
return list(self._definitions.keys())
|
|
90
68
|
|
|
69
|
+
def get_ordered_processor_options(self) -> List[ProcessorOption]:
|
|
70
|
+
"""
|
|
71
|
+
Returns a list of ProcessorOption objects, sorted by their execution order.
|
|
72
|
+
"""
|
|
73
|
+
definitions = list(self._definitions.values())
|
|
74
|
+
sorted_definitions = sorted(definitions, key=lambda d: d.processor_class.get_order())
|
|
75
|
+
return [
|
|
76
|
+
ProcessorOption(
|
|
77
|
+
name=d.name,
|
|
78
|
+
is_mandatory=d.processor_class.is_mandatory()
|
|
79
|
+
) for d in sorted_definitions
|
|
80
|
+
]
|
|
81
|
+
|
|
91
82
|
def get_all_definitions(self) -> Dict[str, LLMResponseProcessorDefinition]:
|
|
92
83
|
"""
|
|
93
84
|
Returns a shallow copy of the dictionary containing all registered LLM response processor definitions.
|