autobyteus 1.1.3__tar.gz → 1.1.5__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.3 → autobyteus-1.1.5}/PKG-INFO +16 -14
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/agent.py +1 -1
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/bootstrap_steps/system_prompt_processing_step.py +4 -2
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/context/__init__.py +4 -2
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/context/agent_config.py +35 -8
- autobyteus-1.1.5/autobyteus/agent/context/agent_context_registry.py +73 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/events/notifiers.py +4 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/events/worker_event_dispatcher.py +1 -2
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/inter_agent_message_event_handler.py +8 -3
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/llm_complete_response_received_event_handler.py +19 -19
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/llm_user_message_ready_event_handler.py +2 -2
- autobyteus-1.1.5/autobyteus/agent/handlers/tool_result_event_handler.py +129 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/user_input_message_event_handler.py +16 -1
- autobyteus-1.1.5/autobyteus/agent/input_processor/__init__.py +12 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/message/context_file_type.py +6 -0
- autobyteus-1.1.5/autobyteus/agent/message/send_message_to.py +125 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/phases/discover.py +2 -1
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/runtime/agent_runtime.py +10 -2
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/runtime/agent_worker.py +1 -0
- autobyteus-1.1.5/autobyteus/agent/sender_type.py +15 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/streaming/agent_event_stream.py +6 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/streaming/stream_event_payloads.py +12 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/streaming/stream_events.py +3 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/system_prompt_processor/tool_manifest_injector_processor.py +7 -4
- autobyteus-1.1.5/autobyteus/agent/tool_execution_result_processor/__init__.py +9 -0
- autobyteus-1.1.5/autobyteus/agent/tool_execution_result_processor/base_processor.py +46 -0
- autobyteus-1.1.5/autobyteus/agent/tool_execution_result_processor/processor_definition.py +36 -0
- autobyteus-1.1.5/autobyteus/agent/tool_execution_result_processor/processor_meta.py +36 -0
- autobyteus-1.1.5/autobyteus/agent/tool_execution_result_processor/processor_registry.py +70 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/workspace/base_workspace.py +17 -2
- autobyteus-1.1.5/autobyteus/agent_team/__init__.py +1 -0
- autobyteus-1.1.5/autobyteus/agent_team/agent_team.py +93 -0
- autobyteus-1.1.5/autobyteus/agent_team/agent_team_builder.py +184 -0
- autobyteus-1.1.5/autobyteus/agent_team/base_agent_team.py +86 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/__init__.py +24 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/agent_configuration_preparation_step.py +73 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/agent_team_bootstrapper.py +54 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/agent_team_runtime_queue_initialization_step.py +25 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/base_agent_team_bootstrap_step.py +23 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/coordinator_initialization_step.py +41 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/coordinator_prompt_preparation_step.py +85 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/task_notifier_initialization_step.py +51 -0
- autobyteus-1.1.5/autobyteus/agent_team/bootstrap_steps/team_context_initialization_step.py +45 -0
- autobyteus-1.1.5/autobyteus/agent_team/context/__init__.py +17 -0
- autobyteus-1.1.5/autobyteus/agent_team/context/agent_team_config.py +33 -0
- autobyteus-1.1.5/autobyteus/agent_team/context/agent_team_context.py +61 -0
- autobyteus-1.1.5/autobyteus/agent_team/context/agent_team_runtime_state.py +56 -0
- autobyteus-1.1.5/autobyteus/agent_team/context/team_manager.py +147 -0
- autobyteus-1.1.5/autobyteus/agent_team/context/team_node_config.py +76 -0
- autobyteus-1.1.5/autobyteus/agent_team/events/__init__.py +29 -0
- autobyteus-1.1.5/autobyteus/agent_team/events/agent_team_event_dispatcher.py +39 -0
- autobyteus-1.1.5/autobyteus/agent_team/events/agent_team_events.py +53 -0
- autobyteus-1.1.5/autobyteus/agent_team/events/agent_team_input_event_queue_manager.py +21 -0
- autobyteus-1.1.5/autobyteus/agent_team/exceptions.py +8 -0
- autobyteus-1.1.5/autobyteus/agent_team/factory/__init__.py +9 -0
- autobyteus-1.1.5/autobyteus/agent_team/factory/agent_team_factory.py +99 -0
- autobyteus-1.1.5/autobyteus/agent_team/handlers/__init__.py +19 -0
- autobyteus-1.1.5/autobyteus/agent_team/handlers/agent_team_event_handler_registry.py +23 -0
- autobyteus-1.1.5/autobyteus/agent_team/handlers/base_agent_team_event_handler.py +16 -0
- autobyteus-1.1.5/autobyteus/agent_team/handlers/inter_agent_message_request_event_handler.py +61 -0
- autobyteus-1.1.5/autobyteus/agent_team/handlers/lifecycle_agent_team_event_handler.py +27 -0
- autobyteus-1.1.5/autobyteus/agent_team/handlers/process_user_message_event_handler.py +46 -0
- autobyteus-1.1.5/autobyteus/agent_team/handlers/tool_approval_team_event_handler.py +48 -0
- autobyteus-1.1.5/autobyteus/agent_team/phases/__init__.py +11 -0
- autobyteus-1.1.5/autobyteus/agent_team/phases/agent_team_operational_phase.py +19 -0
- autobyteus-1.1.5/autobyteus/agent_team/phases/agent_team_phase_manager.py +48 -0
- autobyteus-1.1.5/autobyteus/agent_team/runtime/__init__.py +13 -0
- autobyteus-1.1.5/autobyteus/agent_team/runtime/agent_team_runtime.py +82 -0
- autobyteus-1.1.5/autobyteus/agent_team/runtime/agent_team_worker.py +117 -0
- autobyteus-1.1.5/autobyteus/agent_team/shutdown_steps/__init__.py +17 -0
- autobyteus-1.1.5/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_orchestrator.py +35 -0
- autobyteus-1.1.5/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_step.py +42 -0
- autobyteus-1.1.5/autobyteus/agent_team/shutdown_steps/base_agent_team_shutdown_step.py +16 -0
- autobyteus-1.1.5/autobyteus/agent_team/shutdown_steps/bridge_cleanup_step.py +28 -0
- autobyteus-1.1.5/autobyteus/agent_team/shutdown_steps/sub_team_shutdown_step.py +41 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/__init__.py +26 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/agent_event_bridge.py +48 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/agent_event_multiplexer.py +70 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/agent_team_event_notifier.py +64 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/agent_team_event_stream.py +33 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/agent_team_stream_event_payloads.py +32 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/agent_team_stream_events.py +56 -0
- autobyteus-1.1.5/autobyteus/agent_team/streaming/team_event_bridge.py +50 -0
- autobyteus-1.1.5/autobyteus/agent_team/task_notification/__init__.py +11 -0
- autobyteus-1.1.5/autobyteus/agent_team/task_notification/system_event_driven_agent_task_notifier.py +164 -0
- autobyteus-1.1.5/autobyteus/agent_team/task_notification/task_notification_mode.py +24 -0
- autobyteus-1.1.5/autobyteus/agent_team/utils/__init__.py +9 -0
- autobyteus-1.1.5/autobyteus/agent_team/utils/wait_for_idle.py +46 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/cli/__init__.py +1 -1
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/__init__.py +4 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/app.py +210 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/state.py +180 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/__init__.py +6 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/agent_list_sidebar.py +149 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/focus_pane.py +320 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/logo.py +20 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/renderables.py +77 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/shared.py +60 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/status_bar.py +14 -0
- autobyteus-1.1.5/autobyteus/cli/agent_team_tui/widgets/task_board_panel.py +82 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/cli/cli_display.py +1 -1
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/__init__.py +4 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/app.py +210 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/state.py +189 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/widgets/__init__.py +6 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/widgets/agent_list_sidebar.py +149 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/widgets/focus_pane.py +335 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/widgets/logo.py +27 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/widgets/renderables.py +70 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/widgets/shared.py +51 -0
- autobyteus-1.1.5/autobyteus/cli/workflow_tui/widgets/status_bar.py +14 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/events/event_types.py +8 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/autobyteus_llm.py +11 -12
- autobyteus-1.1.5/autobyteus/llm/api/lmstudio_llm.py +34 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/ollama_llm.py +8 -13
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/openai_compatible_llm.py +20 -3
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/autobyteus_provider.py +73 -46
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/llm_factory.py +103 -139
- autobyteus-1.1.5/autobyteus/llm/lmstudio_provider.py +104 -0
- autobyteus-1.1.5/autobyteus/llm/models.py +190 -0
- autobyteus-1.1.5/autobyteus/llm/ollama_provider.py +111 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/ollama_provider_resolver.py +1 -0
- autobyteus-1.1.5/autobyteus/llm/providers.py +16 -0
- autobyteus-1.1.5/autobyteus/llm/runtimes.py +11 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/token_counter/token_counter_factory.py +2 -0
- autobyteus-1.1.5/autobyteus/task_management/__init__.py +43 -0
- autobyteus-1.1.5/autobyteus/task_management/base_task_board.py +68 -0
- autobyteus-1.1.5/autobyteus/task_management/converters/__init__.py +11 -0
- autobyteus-1.1.5/autobyteus/task_management/converters/task_board_converter.py +64 -0
- autobyteus-1.1.5/autobyteus/task_management/converters/task_plan_converter.py +48 -0
- autobyteus-1.1.5/autobyteus/task_management/deliverable.py +16 -0
- autobyteus-1.1.5/autobyteus/task_management/deliverables/__init__.py +8 -0
- autobyteus-1.1.5/autobyteus/task_management/deliverables/file_deliverable.py +15 -0
- autobyteus-1.1.5/autobyteus/task_management/events.py +27 -0
- autobyteus-1.1.5/autobyteus/task_management/in_memory_task_board.py +126 -0
- autobyteus-1.1.5/autobyteus/task_management/schemas/__init__.py +15 -0
- autobyteus-1.1.5/autobyteus/task_management/schemas/deliverable_schema.py +13 -0
- autobyteus-1.1.5/autobyteus/task_management/schemas/plan_definition.py +35 -0
- autobyteus-1.1.5/autobyteus/task_management/schemas/task_status_report.py +27 -0
- autobyteus-1.1.5/autobyteus/task_management/task_plan.py +110 -0
- autobyteus-1.1.5/autobyteus/task_management/tools/__init__.py +14 -0
- autobyteus-1.1.5/autobyteus/task_management/tools/get_task_board_status.py +68 -0
- autobyteus-1.1.5/autobyteus/task_management/tools/publish_task_plan.py +113 -0
- autobyteus-1.1.5/autobyteus/task_management/tools/update_task_status.py +135 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/__init__.py +2 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/ask_user_input.py +2 -1
- autobyteus-1.1.5/autobyteus/tools/bash/bash_executor.py +100 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/browser_session_aware_navigate_to.py +2 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/browser_session_aware_web_element_trigger.py +3 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_reader.py +3 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_screenshot_taker.py +3 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/google_search_ui.py +2 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/navigate_to.py +2 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/web_page_pdf_generator.py +3 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/webpage_image_downloader.py +3 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/webpage_reader.py +2 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/webpage_screenshot_taker.py +3 -0
- autobyteus-1.1.5/autobyteus/tools/file/file_reader.py +56 -0
- autobyteus-1.1.5/autobyteus/tools/file/file_writer.py +59 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/functional_tool.py +5 -4
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/image_downloader.py +2 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/config_service.py +63 -58
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/server/http_managed_mcp_server.py +14 -2
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/server/stdio_managed_mcp_server.py +14 -2
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/server_instance_manager.py +30 -4
- autobyteus-1.1.5/autobyteus/tools/mcp/tool_registrar.py +232 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/parameter_schema.py +17 -11
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/pdf_downloader.py +2 -1
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/registry/tool_definition.py +36 -37
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/registry/tool_registry.py +50 -2
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/timer.py +2 -0
- autobyteus-1.1.5/autobyteus/tools/tool_category.py +22 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/tool_meta.py +6 -1
- autobyteus-1.1.5/autobyteus/tools/tool_origin.py +10 -0
- autobyteus-1.1.5/autobyteus/tools/usage/formatters/default_json_example_formatter.py +117 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/default_xml_example_formatter.py +23 -3
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/gemini_json_example_formatter.py +6 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/google_json_example_formatter.py +7 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/openai_json_example_formatter.py +6 -4
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/gemini_json_tool_usage_parser.py +23 -7
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/provider_aware_tool_usage_parser.py +14 -25
- autobyteus-1.1.5/autobyteus/tools/usage/providers/__init__.py +12 -0
- autobyteus-1.1.5/autobyteus/tools/usage/providers/tool_manifest_provider.py +75 -0
- autobyteus-1.1.5/autobyteus/tools/usage/registries/__init__.py +15 -0
- autobyteus-1.1.5/autobyteus/tools/usage/registries/tool_formatter_pair.py +15 -0
- autobyteus-1.1.5/autobyteus/tools/usage/registries/tool_formatting_registry.py +58 -0
- autobyteus-1.1.5/autobyteus/tools/usage/registries/tool_usage_parser_registry.py +55 -0
- autobyteus-1.1.5/autobyteus/workflow/agentic_workflow.py +93 -0
- {autobyteus-1.1.3/autobyteus/agent → autobyteus-1.1.5/autobyteus}/workflow/base_agentic_workflow.py +19 -27
- autobyteus-1.1.5/autobyteus/workflow/bootstrap_steps/__init__.py +20 -0
- autobyteus-1.1.5/autobyteus/workflow/bootstrap_steps/agent_tool_injection_step.py +34 -0
- autobyteus-1.1.5/autobyteus/workflow/bootstrap_steps/base_workflow_bootstrap_step.py +23 -0
- autobyteus-1.1.5/autobyteus/workflow/bootstrap_steps/coordinator_initialization_step.py +41 -0
- autobyteus-1.1.5/autobyteus/workflow/bootstrap_steps/coordinator_prompt_preparation_step.py +108 -0
- autobyteus-1.1.5/autobyteus/workflow/bootstrap_steps/workflow_bootstrapper.py +50 -0
- autobyteus-1.1.5/autobyteus/workflow/bootstrap_steps/workflow_runtime_queue_initialization_step.py +25 -0
- autobyteus-1.1.5/autobyteus/workflow/context/__init__.py +17 -0
- autobyteus-1.1.5/autobyteus/workflow/context/team_manager.py +147 -0
- autobyteus-1.1.5/autobyteus/workflow/context/workflow_config.py +30 -0
- autobyteus-1.1.5/autobyteus/workflow/context/workflow_context.py +61 -0
- autobyteus-1.1.5/autobyteus/workflow/context/workflow_node_config.py +76 -0
- autobyteus-1.1.5/autobyteus/workflow/context/workflow_runtime_state.py +53 -0
- autobyteus-1.1.5/autobyteus/workflow/events/__init__.py +29 -0
- autobyteus-1.1.5/autobyteus/workflow/events/workflow_event_dispatcher.py +39 -0
- autobyteus-1.1.5/autobyteus/workflow/events/workflow_events.py +53 -0
- autobyteus-1.1.5/autobyteus/workflow/events/workflow_input_event_queue_manager.py +21 -0
- autobyteus-1.1.5/autobyteus/workflow/exceptions.py +8 -0
- autobyteus-1.1.5/autobyteus/workflow/factory/__init__.py +9 -0
- autobyteus-1.1.5/autobyteus/workflow/factory/workflow_factory.py +99 -0
- autobyteus-1.1.5/autobyteus/workflow/handlers/__init__.py +19 -0
- autobyteus-1.1.5/autobyteus/workflow/handlers/base_workflow_event_handler.py +16 -0
- autobyteus-1.1.5/autobyteus/workflow/handlers/inter_agent_message_request_event_handler.py +61 -0
- autobyteus-1.1.5/autobyteus/workflow/handlers/lifecycle_workflow_event_handler.py +27 -0
- autobyteus-1.1.5/autobyteus/workflow/handlers/process_user_message_event_handler.py +46 -0
- autobyteus-1.1.5/autobyteus/workflow/handlers/tool_approval_workflow_event_handler.py +39 -0
- autobyteus-1.1.5/autobyteus/workflow/handlers/workflow_event_handler_registry.py +23 -0
- autobyteus-1.1.5/autobyteus/workflow/phases/__init__.py +11 -0
- autobyteus-1.1.5/autobyteus/workflow/phases/workflow_operational_phase.py +19 -0
- autobyteus-1.1.5/autobyteus/workflow/phases/workflow_phase_manager.py +48 -0
- autobyteus-1.1.5/autobyteus/workflow/runtime/__init__.py +13 -0
- autobyteus-1.1.5/autobyteus/workflow/runtime/workflow_runtime.py +82 -0
- autobyteus-1.1.5/autobyteus/workflow/runtime/workflow_worker.py +117 -0
- autobyteus-1.1.5/autobyteus/workflow/shutdown_steps/__init__.py +17 -0
- autobyteus-1.1.5/autobyteus/workflow/shutdown_steps/agent_team_shutdown_step.py +42 -0
- autobyteus-1.1.5/autobyteus/workflow/shutdown_steps/base_workflow_shutdown_step.py +16 -0
- autobyteus-1.1.5/autobyteus/workflow/shutdown_steps/bridge_cleanup_step.py +28 -0
- autobyteus-1.1.5/autobyteus/workflow/shutdown_steps/sub_workflow_shutdown_step.py +41 -0
- autobyteus-1.1.5/autobyteus/workflow/shutdown_steps/workflow_shutdown_orchestrator.py +35 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/__init__.py +26 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/agent_event_bridge.py +48 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/agent_event_multiplexer.py +70 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/workflow_event_bridge.py +50 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/workflow_event_notifier.py +83 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/workflow_event_stream.py +33 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/workflow_stream_event_payloads.py +28 -0
- autobyteus-1.1.5/autobyteus/workflow/streaming/workflow_stream_events.py +45 -0
- autobyteus-1.1.5/autobyteus/workflow/utils/__init__.py +9 -0
- autobyteus-1.1.5/autobyteus/workflow/utils/wait_for_idle.py +46 -0
- autobyteus-1.1.5/autobyteus/workflow/workflow_builder.py +151 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus.egg-info/PKG-INFO +16 -14
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus.egg-info/SOURCES.txt +174 -31
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus.egg-info/requires.txt +15 -13
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus.egg-info/top_level.txt +1 -0
- autobyteus-1.1.5/examples/__init__.py +1 -0
- autobyteus-1.1.5/examples/agent_team/__init__.py +1 -0
- autobyteus-1.1.5/examples/discover_phase_transitions.py +104 -0
- autobyteus-1.1.5/examples/run_browser_agent.py +262 -0
- autobyteus-1.1.5/examples/run_google_slides_agent.py +287 -0
- autobyteus-1.1.5/examples/run_mcp_browser_client.py +174 -0
- autobyteus-1.1.5/examples/run_mcp_google_slides_client.py +270 -0
- autobyteus-1.1.5/examples/run_mcp_list_tools.py +189 -0
- autobyteus-1.1.5/examples/run_poem_writer.py +284 -0
- autobyteus-1.1.5/examples/run_sqlite_agent.py +295 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/setup.py +16 -14
- autobyteus-1.1.3/autobyteus/agent/context/agent_phase_manager.py +0 -264
- autobyteus-1.1.3/autobyteus/agent/context/phases.py +0 -49
- autobyteus-1.1.3/autobyteus/agent/group/agent_group.py +0 -164
- autobyteus-1.1.3/autobyteus/agent/group/agent_group_context.py +0 -81
- autobyteus-1.1.3/autobyteus/agent/handlers/tool_result_event_handler.py +0 -101
- autobyteus-1.1.3/autobyteus/agent/input_processor/__init__.py +0 -18
- autobyteus-1.1.3/autobyteus/agent/input_processor/content_prefixing_input_processor.py +0 -41
- autobyteus-1.1.3/autobyteus/agent/input_processor/metadata_appending_input_processor.py +0 -34
- autobyteus-1.1.3/autobyteus/agent/input_processor/passthrough_input_processor.py +0 -33
- autobyteus-1.1.3/autobyteus/agent/message/send_message_to.py +0 -150
- autobyteus-1.1.3/autobyteus/agent/workflow/__init__.py +0 -11
- autobyteus-1.1.3/autobyteus/agent/workflow/agentic_workflow.py +0 -89
- autobyteus-1.1.3/autobyteus/llm/models.py +0 -160
- autobyteus-1.1.3/autobyteus/llm/ollama_provider.py +0 -103
- autobyteus-1.1.3/autobyteus/llm/providers.py +0 -15
- autobyteus-1.1.3/autobyteus/tools/bash/bash_executor.py +0 -54
- autobyteus-1.1.3/autobyteus/tools/file/file_reader.py +0 -29
- autobyteus-1.1.3/autobyteus/tools/file/file_writer.py +0 -31
- autobyteus-1.1.3/autobyteus/tools/mcp/call_handlers/__init__.py +0 -16
- autobyteus-1.1.3/autobyteus/tools/mcp/call_handlers/base_handler.py +0 -40
- autobyteus-1.1.3/autobyteus/tools/mcp/call_handlers/stdio_handler.py +0 -76
- autobyteus-1.1.3/autobyteus/tools/mcp/call_handlers/streamable_http_handler.py +0 -55
- autobyteus-1.1.3/autobyteus/tools/mcp/registrar.py +0 -202
- autobyteus-1.1.3/autobyteus/tools/mcp/tool_registrar.py +0 -177
- autobyteus-1.1.3/autobyteus/tools/tool_category.py +0 -11
- autobyteus-1.1.3/autobyteus/tools/usage/formatters/default_json_example_formatter.py +0 -42
- autobyteus-1.1.3/autobyteus/tools/usage/providers/__init__.py +0 -22
- autobyteus-1.1.3/autobyteus/tools/usage/providers/json_example_provider.py +0 -32
- autobyteus-1.1.3/autobyteus/tools/usage/providers/json_schema_provider.py +0 -35
- autobyteus-1.1.3/autobyteus/tools/usage/providers/json_tool_usage_parser_provider.py +0 -28
- autobyteus-1.1.3/autobyteus/tools/usage/providers/tool_manifest_provider.py +0 -68
- autobyteus-1.1.3/autobyteus/tools/usage/providers/xml_example_provider.py +0 -28
- autobyteus-1.1.3/autobyteus/tools/usage/providers/xml_schema_provider.py +0 -29
- autobyteus-1.1.3/autobyteus/tools/usage/providers/xml_tool_usage_parser_provider.py +0 -26
- autobyteus-1.1.3/autobyteus/tools/usage/registries/__init__.py +0 -20
- autobyteus-1.1.3/autobyteus/tools/usage/registries/json_example_formatter_registry.py +0 -51
- autobyteus-1.1.3/autobyteus/tools/usage/registries/json_schema_formatter_registry.py +0 -51
- autobyteus-1.1.3/autobyteus/tools/usage/registries/json_tool_usage_parser_registry.py +0 -42
- autobyteus-1.1.3/autobyteus/tools/usage/registries/xml_example_formatter_registry.py +0 -30
- autobyteus-1.1.3/autobyteus/tools/usage/registries/xml_schema_formatter_registry.py +0 -33
- autobyteus-1.1.3/autobyteus/tools/usage/registries/xml_tool_usage_parser_registry.py +0 -30
- autobyteus-1.1.3/autobyteus/workflow/__init__.py +0 -0
- autobyteus-1.1.3/autobyteus/workflow/simple_task.py +0 -98
- autobyteus-1.1.3/autobyteus/workflow/task.py +0 -147
- autobyteus-1.1.3/autobyteus/workflow/workflow.py +0 -49
- {autobyteus-1.1.3 → autobyteus-1.1.5}/LICENSE +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/README.md +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/bootstrap_steps/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/bootstrap_steps/agent_bootstrapper.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/bootstrap_steps/agent_runtime_queue_initialization_step.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/bootstrap_steps/base_bootstrap_step.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/bootstrap_steps/mcp_server_prewarming_step.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/bootstrap_steps/workspace_context_initialization_step.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/context/agent_context.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/context/agent_runtime_state.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/events/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/events/agent_events.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/events/agent_input_event_queue_manager.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/exceptions.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/factory/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/factory/agent_factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/approved_tool_invocation_event_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/base_event_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/event_handler_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/generic_event_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/lifecycle_event_logger.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/tool_execution_approval_event_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/tool_invocation_request_event_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/hooks/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/hooks/base_phase_hook.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/hooks/hook_definition.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/hooks/hook_meta.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/hooks/hook_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/input_processor/base_user_input_processor.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/input_processor/processor_definition.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/input_processor/processor_meta.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/input_processor/processor_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/llm_response_processor/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/llm_response_processor/base_processor.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/llm_response_processor/processor_definition.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/llm_response_processor/processor_meta.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/llm_response_processor/processor_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/message/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/message/agent_input_user_message.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/message/context_file.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/message/inter_agent_message.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/message/inter_agent_message_type.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/phases/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/phases/manager.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/phases/phase_enum.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/phases/transition_decorator.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/phases/transition_info.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/remote_agent.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/runtime/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/runtime/agent_thread_pool_manager.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/shutdown_steps/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/shutdown_steps/agent_shutdown_orchestrator.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/shutdown_steps/base_shutdown_step.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/shutdown_steps/llm_instance_cleanup_step.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/shutdown_steps/mcp_server_cleanup_step.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/streaming/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/streaming/queue_streamer.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/system_prompt_processor/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/system_prompt_processor/base_processor.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/system_prompt_processor/processor_definition.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/system_prompt_processor/processor_meta.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/system_prompt_processor/processor_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/tool_invocation.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/utils/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/utils/wait_for_idle.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/workspace/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/workspace/workspace_config.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/workspace/workspace_definition.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/workspace/workspace_meta.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/workspace/workspace_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/check_requirements.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/cli/agent_cli.py +0 -0
- {autobyteus-1.1.3/autobyteus/agent/group → autobyteus-1.1.5/autobyteus/events}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/events/event_emitter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/events/event_manager.py +0 -0
- {autobyteus-1.1.3/autobyteus/events → autobyteus-1.1.5/autobyteus/llm}/__init__.py +0 -0
- {autobyteus-1.1.3/autobyteus/llm → autobyteus-1.1.5/autobyteus/llm/api}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/bedrock_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/claude_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/deepseek_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/gemini_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/grok_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/groq_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/kimi_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/mistral_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/nvidia_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/api/openai_llm.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/base_llm.py +0 -0
- {autobyteus-1.1.3/autobyteus/llm/api → autobyteus-1.1.5/autobyteus/llm/extensions}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/extensions/base_extension.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/extensions/extension_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/extensions/token_usage_tracking_extension.py +0 -0
- {autobyteus-1.1.3/autobyteus/llm/extensions → autobyteus-1.1.5/autobyteus/llm/token_counter}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/token_counter/base_token_counter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/token_counter/claude_token_counter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/token_counter/deepseek_token_counter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/token_counter/kimi_token_counter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/token_counter/mistral_token_counter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/token_counter/openai_token_counter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/user_message.py +0 -0
- {autobyteus-1.1.3/autobyteus/llm/token_counter → autobyteus-1.1.5/autobyteus/llm/utils}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/image_payload_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/llm_config.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/messages.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/rate_limiter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/response_types.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/token_pricing_config.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/token_usage.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/llm/utils/token_usage_tracker.py +0 -0
- {autobyteus-1.1.3/autobyteus/llm/utils → autobyteus-1.1.5/autobyteus/person}/__init__.py +0 -0
- {autobyteus-1.1.3/autobyteus/person → autobyteus-1.1.5/autobyteus/person/examples}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/person/examples/sample_persons.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/person/examples/sample_roles.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/person/person.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/person/role.py +0 -0
- {autobyteus-1.1.3/autobyteus/person/examples → autobyteus-1.1.5/autobyteus/prompt}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/prompt/prompt_builder.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/prompt/prompt_template.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/client/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/client/abstract_client_connection.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/client/client_connection_manager.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/client/sse_client_connection.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/client/stdio_client_connection.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/config/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/config/agent_server_config.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/config/agent_server_registry.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/hosting.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/protocol.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/server/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/server/agent_server_endpoint.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/server/base_method_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/server/method_handlers.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/server/sse_server_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/server/stdio_server_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/server_main.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/rpc/transport_type.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/base_tool.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/bash/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/__init__.py +0 -0
- {autobyteus-1.1.3/autobyteus/prompt → autobyteus-1.1.5/autobyteus/tools/browser/session_aware}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/browser_session_aware_tool.py +0 -0
- {autobyteus-1.1.3/autobyteus/tools/browser/session_aware → autobyteus-1.1.5/autobyteus/tools/browser/session_aware/factory}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_web_element_trigger_factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_reader_factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_screenshot_taker_factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/shared_browser_session.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/shared_browser_session_manager.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/session_aware/web_element_action.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/__init__.py +0 -0
- {autobyteus-1.1.3/autobyteus/tools/browser/session_aware → autobyteus-1.1.5/autobyteus/tools/browser/standalone}/factory/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/factory/google_search_factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/factory/webpage_reader_factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/browser/standalone/factory/webpage_screenshot_taker_factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/factory/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/factory/tool_factory.py +0 -0
- {autobyteus-1.1.3/autobyteus/tools/browser/standalone/factory → autobyteus-1.1.5/autobyteus/tools/file}/__init__.py +0 -0
- {autobyteus-1.1.3/autobyteus/tools/file → autobyteus-1.1.5/autobyteus/tools/handlers}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/handlers/shell_handler.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/factory.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/schema_mapper.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/server/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/server/base_managed_mcp_server.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/server/proxy.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/tool.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/mcp/types.py +0 -0
- {autobyteus-1.1.3/autobyteus/tools/handlers → autobyteus-1.1.5/autobyteus/tools/operation}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/operation/file_operation.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/operation/file_rename_operation.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/operation/operation.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/operation/shell_operation.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/registry/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/tool_config.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/tool_state.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/anthropic_json_example_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/anthropic_json_schema_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/base_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/default_json_schema_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/default_xml_schema_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/gemini_json_schema_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/google_json_schema_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/formatters/openai_json_schema_formatter.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/_json_extractor.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/anthropic_xml_tool_usage_parser.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/base_parser.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/default_json_tool_usage_parser.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/exceptions.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/usage/parsers/openai_json_tool_usage_parser.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/tools/utils.py +0 -0
- {autobyteus-1.1.3/autobyteus/tools/operation → autobyteus-1.1.5/autobyteus/utils}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/utils/dynamic_enum.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/utils/file_utils.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/utils/html_cleaner.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/utils/singleton.py +0 -0
- {autobyteus-1.1.3/autobyteus/utils → autobyteus-1.1.5/autobyteus/workflow}/__init__.py +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus.egg-info/dependency_links.txt +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/pyproject.toml +0 -0
- {autobyteus-1.1.3 → autobyteus-1.1.5}/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.5
|
|
4
4
|
Summary: Multi-Agent framework
|
|
5
5
|
Home-page: https://github.com/AutoByteus/autobyteus
|
|
6
6
|
Author: Ryan Zheng
|
|
@@ -14,26 +14,28 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
14
14
|
Requires-Python: >=3.8
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
+
Requires-Dist: aiohttp
|
|
18
|
+
Requires-Dist: anthropic==0.37.1
|
|
19
|
+
Requires-Dist: autobyteus-llm-client==1.1.2
|
|
17
20
|
Requires-Dist: beautifulsoup4>=4.12.2
|
|
18
|
-
Requires-Dist: openai
|
|
19
|
-
Requires-Dist: requests
|
|
20
|
-
Requires-Dist: tiktoken==0.7.0
|
|
21
|
-
Requires-Dist: google-api-python-client
|
|
22
|
-
Requires-Dist: google-generativeai
|
|
23
|
-
Requires-Dist: mistralai
|
|
24
21
|
Requires-Dist: boto3
|
|
25
22
|
Requires-Dist: botocore
|
|
26
|
-
Requires-Dist:
|
|
23
|
+
Requires-Dist: brui-core==1.0.9
|
|
24
|
+
Requires-Dist: certifi==2025.4.26
|
|
25
|
+
Requires-Dist: google-api-python-client
|
|
26
|
+
Requires-Dist: google-generativeai
|
|
27
27
|
Requires-Dist: Jinja2
|
|
28
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: mcp[cli]==1.9.1
|
|
29
29
|
Requires-Dist: mistral_common==1.6.3
|
|
30
|
+
Requires-Dist: mistralai
|
|
30
31
|
Requires-Dist: mistralai==1.5.2
|
|
31
|
-
Requires-Dist: certifi==2025.4.26
|
|
32
32
|
Requires-Dist: numpy==2.2.5
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist:
|
|
36
|
-
Requires-Dist:
|
|
33
|
+
Requires-Dist: ollama
|
|
34
|
+
Requires-Dist: openai
|
|
35
|
+
Requires-Dist: requests
|
|
36
|
+
Requires-Dist: rich
|
|
37
|
+
Requires-Dist: textual
|
|
38
|
+
Requires-Dist: tiktoken==0.7.0
|
|
37
39
|
Provides-Extra: dev
|
|
38
40
|
Requires-Dist: coverage; extra == "dev"
|
|
39
41
|
Requires-Dist: flake8; extra == "dev"
|
|
@@ -4,7 +4,7 @@ import logging
|
|
|
4
4
|
from typing import AsyncIterator, Optional, List, Any, Dict, TYPE_CHECKING
|
|
5
5
|
|
|
6
6
|
from autobyteus.agent.runtime.agent_runtime import AgentRuntime
|
|
7
|
-
from autobyteus.agent.
|
|
7
|
+
from autobyteus.agent.phases.phase_enum import AgentOperationalPhase
|
|
8
8
|
from autobyteus.agent.message.agent_input_user_message import AgentInputUserMessage
|
|
9
9
|
from autobyteus.agent.message.inter_agent_message import InterAgentMessage
|
|
10
10
|
from autobyteus.agent.events import UserMessageReceivedEvent, InterAgentMessageReceivedEvent, ToolExecutionApprovalEvent, BaseEvent
|
|
@@ -34,8 +34,10 @@ class SystemPromptProcessingStep(BaseBootstrapStep):
|
|
|
34
34
|
if not llm_instance:
|
|
35
35
|
raise ValueError("LLM instance not found in agent state. It must be provided in AgentConfig.")
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
# If a specific system_prompt is not provided in AgentConfig, fall back
|
|
38
|
+
# to the default system_message from the LLM's own configuration.
|
|
39
|
+
current_system_prompt = context.config.system_prompt or llm_instance.config.system_message
|
|
40
|
+
logger.debug(f"Agent '{agent_id}': Retrieved base system prompt.")
|
|
39
41
|
|
|
40
42
|
processor_instances = context.config.system_prompt_processors
|
|
41
43
|
tool_instances_for_processor = context.tool_instances
|
|
@@ -4,10 +4,12 @@ Components related to the agent's runtime context, state, config, and status man
|
|
|
4
4
|
"""
|
|
5
5
|
from .agent_config import AgentConfig
|
|
6
6
|
from .agent_runtime_state import AgentRuntimeState
|
|
7
|
-
from .agent_context import AgentContext
|
|
7
|
+
from .agent_context import AgentContext
|
|
8
|
+
from .agent_context_registry import AgentContextRegistry
|
|
8
9
|
|
|
9
10
|
__all__ = [
|
|
10
11
|
"AgentContext",
|
|
11
12
|
"AgentConfig",
|
|
12
|
-
"AgentRuntimeState",
|
|
13
|
+
"AgentRuntimeState",
|
|
14
|
+
"AgentContextRegistry",
|
|
13
15
|
]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# file: autobyteus/autobyteus/agent/context/agent_config.py
|
|
2
2
|
import logging
|
|
3
|
+
import copy
|
|
3
4
|
from typing import List, Optional, Union, Tuple, TYPE_CHECKING, Dict, Any
|
|
4
5
|
|
|
5
6
|
# Correctly import the new master processor and the base class
|
|
@@ -10,6 +11,7 @@ from autobyteus.agent.llm_response_processor import ProviderAwareToolUsageProces
|
|
|
10
11
|
if TYPE_CHECKING:
|
|
11
12
|
from autobyteus.tools.base_tool import BaseTool
|
|
12
13
|
from autobyteus.agent.input_processor import BaseAgentUserInputMessageProcessor
|
|
14
|
+
from autobyteus.agent.tool_execution_result_processor import BaseToolExecutionResultProcessor
|
|
13
15
|
from autobyteus.llm.base_llm import BaseLLM
|
|
14
16
|
from autobyteus.agent.workspace.base_workspace import BaseAgentWorkspace
|
|
15
17
|
from autobyteus.agent.hooks.base_phase_hook import BasePhaseHook
|
|
@@ -32,13 +34,13 @@ class AgentConfig:
|
|
|
32
34
|
role: str,
|
|
33
35
|
description: str,
|
|
34
36
|
llm_instance: 'BaseLLM',
|
|
35
|
-
system_prompt: str,
|
|
36
|
-
tools: List['BaseTool'],
|
|
37
|
+
system_prompt: Optional[str] = None,
|
|
38
|
+
tools: Optional[List['BaseTool']] = None,
|
|
37
39
|
auto_execute_tools: bool = True,
|
|
38
|
-
use_xml_tool_format: bool = True,
|
|
39
40
|
input_processors: Optional[List['BaseAgentUserInputMessageProcessor']] = None,
|
|
40
41
|
llm_response_processors: Optional[List['BaseLLMResponseProcessor']] = None,
|
|
41
42
|
system_prompt_processors: Optional[List['BaseSystemPromptProcessor']] = None,
|
|
43
|
+
tool_execution_result_processors: Optional[List['BaseToolExecutionResultProcessor']] = None,
|
|
42
44
|
workspace: Optional['BaseAgentWorkspace'] = None,
|
|
43
45
|
phase_hooks: Optional[List['BasePhaseHook']] = None,
|
|
44
46
|
initial_custom_data: Optional[Dict[str, Any]] = None):
|
|
@@ -51,13 +53,14 @@ class AgentConfig:
|
|
|
51
53
|
description: A description of the agent.
|
|
52
54
|
llm_instance: A pre-initialized LLM instance (subclass of BaseLLM).
|
|
53
55
|
The user is responsible for creating and configuring this instance.
|
|
54
|
-
system_prompt: The base system prompt.
|
|
55
|
-
|
|
56
|
+
system_prompt: The base system prompt. If None, the system_message from the
|
|
57
|
+
llm_instance's config will be used as the base.
|
|
58
|
+
tools: An optional list of pre-initialized tool instances (subclasses of BaseTool).
|
|
56
59
|
auto_execute_tools: If True, the agent will execute tools without approval.
|
|
57
|
-
use_xml_tool_format: Whether to use XML for tool descriptions and examples.
|
|
58
60
|
input_processors: A list of input processor instances.
|
|
59
61
|
llm_response_processors: A list of LLM response processor instances.
|
|
60
62
|
system_prompt_processors: A list of system prompt processor instances.
|
|
63
|
+
tool_execution_result_processors: A list of tool execution result processor instances.
|
|
61
64
|
workspace: An optional pre-initialized workspace instance for the agent.
|
|
62
65
|
phase_hooks: An optional list of phase transition hook instances.
|
|
63
66
|
initial_custom_data: An optional dictionary of data to pre-populate
|
|
@@ -68,17 +71,41 @@ class AgentConfig:
|
|
|
68
71
|
self.description = description
|
|
69
72
|
self.llm_instance = llm_instance
|
|
70
73
|
self.system_prompt = system_prompt
|
|
71
|
-
self.tools = tools
|
|
74
|
+
self.tools = tools or []
|
|
72
75
|
self.workspace = workspace
|
|
73
76
|
self.auto_execute_tools = auto_execute_tools
|
|
74
|
-
self.use_xml_tool_format = use_xml_tool_format
|
|
75
77
|
self.input_processors = input_processors or []
|
|
76
78
|
self.llm_response_processors = llm_response_processors if llm_response_processors is not None else list(self.DEFAULT_LLM_RESPONSE_PROCESSORS)
|
|
77
79
|
self.system_prompt_processors = system_prompt_processors if system_prompt_processors is not None else list(self.DEFAULT_SYSTEM_PROMPT_PROCESSORS)
|
|
80
|
+
self.tool_execution_result_processors = tool_execution_result_processors or []
|
|
78
81
|
self.phase_hooks = phase_hooks or []
|
|
79
82
|
self.initial_custom_data = initial_custom_data
|
|
80
83
|
|
|
81
84
|
logger.debug(f"AgentConfig created for name '{self.name}', role '{self.role}'.")
|
|
82
85
|
|
|
86
|
+
def copy(self) -> 'AgentConfig':
|
|
87
|
+
"""
|
|
88
|
+
Creates a copy of this AgentConfig. It avoids deep-copying complex objects
|
|
89
|
+
like tools, workspaces, and processors that may contain un-pickleable state.
|
|
90
|
+
Instead, it creates shallow copies of the lists, allowing the lists themselves
|
|
91
|
+
to be modified independently while sharing the object instances within them.
|
|
92
|
+
"""
|
|
93
|
+
return AgentConfig(
|
|
94
|
+
name=self.name,
|
|
95
|
+
role=self.role,
|
|
96
|
+
description=self.description,
|
|
97
|
+
llm_instance=self.llm_instance, # Keep reference, do not copy
|
|
98
|
+
system_prompt=self.system_prompt,
|
|
99
|
+
tools=self.tools.copy(), # Shallow copy the list, but reference the original tool instances
|
|
100
|
+
auto_execute_tools=self.auto_execute_tools,
|
|
101
|
+
input_processors=self.input_processors.copy(), # Shallow copy the list
|
|
102
|
+
llm_response_processors=self.llm_response_processors.copy(), # Shallow copy the list
|
|
103
|
+
system_prompt_processors=self.system_prompt_processors.copy(), # Shallow copy the list
|
|
104
|
+
tool_execution_result_processors=self.tool_execution_result_processors.copy(), # Shallow copy the list
|
|
105
|
+
workspace=self.workspace, # Pass by reference, do not copy
|
|
106
|
+
phase_hooks=self.phase_hooks.copy(), # Shallow copy the list
|
|
107
|
+
initial_custom_data=copy.deepcopy(self.initial_custom_data) # Deep copy for simple data
|
|
108
|
+
)
|
|
109
|
+
|
|
83
110
|
def __repr__(self) -> str:
|
|
84
111
|
return (f"AgentConfig(name='{self.name}', role='{self.role}', llm_instance='{self.llm_instance.__class__.__name__}', workspace_configured={self.workspace is not None})")
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# file: autobyteus/autobyteus/agent/context/agent_context_registry.py
|
|
2
|
+
import logging
|
|
3
|
+
from typing import Dict, Optional, TYPE_CHECKING
|
|
4
|
+
import weakref
|
|
5
|
+
|
|
6
|
+
from autobyteus.utils.singleton import SingletonMeta
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from .agent_context import AgentContext
|
|
10
|
+
|
|
11
|
+
logger = logging.getLogger(__name__)
|
|
12
|
+
|
|
13
|
+
class AgentContextRegistry(metaclass=SingletonMeta):
|
|
14
|
+
"""
|
|
15
|
+
A singleton registry that holds weak references to active AgentContext objects,
|
|
16
|
+
keyed by their agent_id.
|
|
17
|
+
|
|
18
|
+
This allows other services to look up an agent's context without creating
|
|
19
|
+
tight coupling or preventing garbage collection.
|
|
20
|
+
"""
|
|
21
|
+
def __init__(self):
|
|
22
|
+
self._contexts: Dict[str, weakref.ReferenceType['AgentContext']] = {}
|
|
23
|
+
logger.info("AgentContextRegistry (Singleton) initialized.")
|
|
24
|
+
|
|
25
|
+
def register_context(self, context: 'AgentContext'):
|
|
26
|
+
"""
|
|
27
|
+
Registers an agent's context. A weak reference is stored to prevent
|
|
28
|
+
circular references and allow for proper garbage collection.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
context: The AgentContext instance to register.
|
|
32
|
+
"""
|
|
33
|
+
agent_id = context.agent_id
|
|
34
|
+
if agent_id in self._contexts and self._contexts[agent_id]() is not None:
|
|
35
|
+
logger.warning(f"AgentContext for agent_id '{agent_id}' is already registered. Overwriting.")
|
|
36
|
+
|
|
37
|
+
self._contexts[agent_id] = weakref.ref(context)
|
|
38
|
+
logger.info(f"Registered AgentContext for agent_id '{agent_id}'. Total registered contexts: {len(self._contexts)}")
|
|
39
|
+
|
|
40
|
+
def unregister_context(self, agent_id: str):
|
|
41
|
+
"""
|
|
42
|
+
Unregisters an agent's context, typically on agent shutdown.
|
|
43
|
+
|
|
44
|
+
Args:
|
|
45
|
+
agent_id: The ID of the agent whose context should be removed.
|
|
46
|
+
"""
|
|
47
|
+
if agent_id in self._contexts:
|
|
48
|
+
del self._contexts[agent_id]
|
|
49
|
+
logger.info(f"Unregistered AgentContext for agent_id '{agent_id}'.")
|
|
50
|
+
else:
|
|
51
|
+
logger.warning(f"Attempted to unregister a non-existent AgentContext for agent_id '{agent_id}'.")
|
|
52
|
+
|
|
53
|
+
def get_context(self, agent_id: str) -> Optional['AgentContext']:
|
|
54
|
+
"""
|
|
55
|
+
Retrieves an active agent's context by its ID.
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
agent_id: The ID of the agent.
|
|
59
|
+
|
|
60
|
+
Returns:
|
|
61
|
+
The AgentContext instance if found and still alive, otherwise None.
|
|
62
|
+
"""
|
|
63
|
+
context_ref = self._contexts.get(agent_id)
|
|
64
|
+
if context_ref:
|
|
65
|
+
context = context_ref()
|
|
66
|
+
if context:
|
|
67
|
+
return context
|
|
68
|
+
else:
|
|
69
|
+
# The weak reference is dead, so we can clean it up.
|
|
70
|
+
logger.debug(f"Cleaning up dead weak reference for agent_id '{agent_id}'.")
|
|
71
|
+
del self._contexts[agent_id]
|
|
72
|
+
|
|
73
|
+
return None
|
|
@@ -112,6 +112,10 @@ class AgentExternalEventNotifier(EventEmitter):
|
|
|
112
112
|
def notify_agent_tool_invocation_auto_executing(self, auto_exec_data: Dict[str, Any]):
|
|
113
113
|
"""Notifies that a tool is being automatically executed."""
|
|
114
114
|
self._emit_event(EventType.AGENT_TOOL_INVOCATION_AUTO_EXECUTING, payload_content=auto_exec_data)
|
|
115
|
+
|
|
116
|
+
def notify_agent_data_system_task_notification_received(self, notification_data: Dict[str, Any]):
|
|
117
|
+
"""Notifies that the agent has received a system-generated task notification."""
|
|
118
|
+
self._emit_event(EventType.AGENT_DATA_SYSTEM_TASK_NOTIFICATION_RECEIVED, payload_content=notification_data)
|
|
115
119
|
|
|
116
120
|
def notify_agent_error_output_generation(self, error_source: str, error_message: str, error_details: Optional[str] = None):
|
|
117
121
|
payload_dict = {
|
|
@@ -21,8 +21,7 @@ from autobyteus.agent.events.agent_events import ( # Updated relative import pat
|
|
|
21
21
|
if TYPE_CHECKING:
|
|
22
22
|
from autobyteus.agent.context import AgentContext
|
|
23
23
|
from autobyteus.agent.handlers import EventHandlerRegistry
|
|
24
|
-
from autobyteus.agent.
|
|
25
|
-
|
|
24
|
+
from autobyteus.agent.phases import AgentPhaseManager
|
|
26
25
|
logger = logging.getLogger(__name__)
|
|
27
26
|
|
|
28
27
|
class WorkerEventDispatcher:
|
{autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/inter_agent_message_event_handler.py
RENAMED
|
@@ -6,9 +6,11 @@ from autobyteus.agent.handlers.base_event_handler import AgentEventHandler
|
|
|
6
6
|
from autobyteus.agent.events import InterAgentMessageReceivedEvent, LLMUserMessageReadyEvent
|
|
7
7
|
from autobyteus.agent.message.inter_agent_message import InterAgentMessage
|
|
8
8
|
from autobyteus.llm.user_message import LLMUserMessage
|
|
9
|
+
from autobyteus.agent.sender_type import TASK_NOTIFIER_SENDER_ID # New import
|
|
9
10
|
|
|
10
11
|
if TYPE_CHECKING:
|
|
11
12
|
from autobyteus.agent.context import AgentContext
|
|
13
|
+
from autobyteus.agent.events.notifiers import AgentExternalEventNotifier
|
|
12
14
|
|
|
13
15
|
logger = logging.getLogger(__name__)
|
|
14
16
|
|
|
@@ -43,9 +45,13 @@ class InterAgentMessageReceivedEventHandler(AgentEventHandler):
|
|
|
43
45
|
logger.info(
|
|
44
46
|
f"Agent '{context.agent_id}' handling InterAgentMessageReceivedEvent from sender "
|
|
45
47
|
f"'{inter_agent_msg.sender_agent_id}', type '{inter_agent_msg.message_type.value}'. "
|
|
46
|
-
f"Content: '{inter_agent_msg.content
|
|
48
|
+
f"Content: '{inter_agent_msg.content}'"
|
|
47
49
|
)
|
|
48
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
|
+
|
|
49
55
|
content_for_llm = (
|
|
50
56
|
f"You have received a message from another agent.\n"
|
|
51
57
|
f"Sender Agent ID: {inter_agent_msg.sender_agent_id}\n"
|
|
@@ -54,7 +60,7 @@ class InterAgentMessageReceivedEventHandler(AgentEventHandler):
|
|
|
54
60
|
f"--- Message Content ---\n"
|
|
55
61
|
f"{inter_agent_msg.content}\n"
|
|
56
62
|
f"--- End of Message Content ---\n"
|
|
57
|
-
f"Please process this information and
|
|
63
|
+
f"Please process this information and act accordingly."
|
|
58
64
|
)
|
|
59
65
|
|
|
60
66
|
context.state.add_message_to_history({
|
|
@@ -67,7 +73,6 @@ class InterAgentMessageReceivedEventHandler(AgentEventHandler):
|
|
|
67
73
|
llm_user_message = LLMUserMessage(content=content_for_llm)
|
|
68
74
|
|
|
69
75
|
llm_user_message_ready_event = LLMUserMessageReadyEvent(llm_user_message=llm_user_message)
|
|
70
|
-
# MODIFIED: Use context.input_event_queues and not context.state.queues
|
|
71
76
|
await context.input_event_queues.enqueue_internal_system_event(llm_user_message_ready_event)
|
|
72
77
|
|
|
73
78
|
logger.info(
|
|
@@ -86,10 +86,8 @@ class LLMCompleteResponseReceivedEventHandler(AgentEventHandler):
|
|
|
86
86
|
any_processor_took_action = True
|
|
87
87
|
logger.info(
|
|
88
88
|
f"Agent '{agent_id}': LLMResponseProcessor '{processor_name_for_log}' "
|
|
89
|
-
f"handled the response.
|
|
90
|
-
f"will not be emitted as a complete response by this handler instance."
|
|
89
|
+
f"handled the response."
|
|
91
90
|
)
|
|
92
|
-
break
|
|
93
91
|
else:
|
|
94
92
|
logger.debug(f"Agent '{agent_id}': LLMResponseProcessor '{processor_name_for_log}' did not handle the response.")
|
|
95
93
|
|
|
@@ -102,8 +100,7 @@ class LLMCompleteResponseReceivedEventHandler(AgentEventHandler):
|
|
|
102
100
|
error_message="The model's response contained a malformed tool call that could not be understood.",
|
|
103
101
|
error_details=str(e_parse)
|
|
104
102
|
)
|
|
105
|
-
|
|
106
|
-
break
|
|
103
|
+
# A parsing failure should not prevent other processors from running.
|
|
107
104
|
|
|
108
105
|
except Exception as e: # pragma: no cover
|
|
109
106
|
logger.error(f"Agent '{agent_id}': Error while using LLMResponseProcessor '{processor_name_for_log}': {e}. This processor is skipped.", exc_info=True)
|
|
@@ -118,21 +115,24 @@ class LLMCompleteResponseReceivedEventHandler(AgentEventHandler):
|
|
|
118
115
|
f"Skipping LLMResponseProcessor attempts."
|
|
119
116
|
)
|
|
120
117
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
118
|
+
# Always notify that the LLM's response is complete, regardless of processor actions.
|
|
119
|
+
# This serves as a critical signal to the frontend that the stream for this turn has ended.
|
|
120
|
+
if notifier:
|
|
121
|
+
if any_processor_took_action:
|
|
122
|
+
log_message = (
|
|
123
|
+
f"Agent '{agent_id}': One or more LLMResponseProcessors handled the response. "
|
|
124
|
+
f"Now emitting AGENT_DATA_ASSISTANT_COMPLETE_RESPONSE as a completion signal."
|
|
125
125
|
)
|
|
126
126
|
else:
|
|
127
|
-
|
|
127
|
+
log_message = (
|
|
128
128
|
f"Agent '{agent_id}': No LLMResponseProcessor handled the response. "
|
|
129
|
-
f"Emitting the
|
|
129
|
+
f"Emitting the full LLM response as a final answer and completion signal."
|
|
130
130
|
)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
131
|
+
logger.info(log_message)
|
|
132
|
+
|
|
133
|
+
try:
|
|
134
|
+
# The complete_response object now contains both content and reasoning
|
|
135
|
+
notifier.notify_agent_data_assistant_complete_response(complete_response)
|
|
136
|
+
logger.debug(f"Agent '{agent_id}' emitted AGENT_DATA_ASSISTANT_COMPLETE_RESPONSE event successfully.")
|
|
137
|
+
except Exception as e_notify: # pragma: no cover
|
|
138
|
+
logger.error(f"Agent '{agent_id}': Error emitting AGENT_DATA_ASSISTANT_COMPLETE_RESPONSE: {e_notify}", exc_info=True)
|
|
@@ -45,7 +45,7 @@ class LLMUserMessageReadyEventHandler(AgentEventHandler):
|
|
|
45
45
|
raise RuntimeError(error_msg)
|
|
46
46
|
|
|
47
47
|
llm_user_message: LLMUserMessage = event.llm_user_message
|
|
48
|
-
logger.info(f"Agent '{agent_id}' handling LLMUserMessageReadyEvent: '{llm_user_message.content
|
|
48
|
+
logger.info(f"Agent '{agent_id}' handling LLMUserMessageReadyEvent: '{llm_user_message.content}'")
|
|
49
49
|
logger.debug(f"Agent '{agent_id}' preparing to send full message to LLM:\n---\n{llm_user_message.content}\n---")
|
|
50
50
|
|
|
51
51
|
context.state.add_message_to_history({"role": "user", "content": llm_user_message.content})
|
|
@@ -137,4 +137,4 @@ class LLMUserMessageReadyEventHandler(AgentEventHandler):
|
|
|
137
137
|
complete_response=complete_response_obj
|
|
138
138
|
)
|
|
139
139
|
await context.input_event_queues.enqueue_internal_system_event(llm_complete_event)
|
|
140
|
-
logger.info(f"Agent '{agent_id}' enqueued LLMCompleteResponseReceivedEvent from LLMUserMessageReadyEventHandler.")
|
|
140
|
+
logger.info(f"Agent '{agent_id}' enqueued LLMCompleteResponseReceivedEvent from LLMUserMessageReadyEventHandler.")
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# file: autobyteus/autobyteus/agent/handlers/tool_result_event_handler.py
|
|
2
|
+
import logging
|
|
3
|
+
import json
|
|
4
|
+
from typing import TYPE_CHECKING, Optional
|
|
5
|
+
|
|
6
|
+
from autobyteus.agent.handlers.base_event_handler import AgentEventHandler
|
|
7
|
+
from autobyteus.agent.events import ToolResultEvent, LLMUserMessageReadyEvent
|
|
8
|
+
from autobyteus.llm.user_message import LLMUserMessage
|
|
9
|
+
from autobyteus.agent.tool_execution_result_processor import BaseToolExecutionResultProcessor
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from autobyteus.agent.context import AgentContext
|
|
13
|
+
from autobyteus.agent.events.notifiers import AgentExternalEventNotifier
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
class ToolResultEventHandler(AgentEventHandler):
|
|
18
|
+
"""
|
|
19
|
+
Handles ToolResultEvents by formatting the tool's output (or error)
|
|
20
|
+
as a new LLMUserMessage, emitting AGENT_DATA_TOOL_LOG event for this outcome,
|
|
21
|
+
and enqueuing an LLMUserMessageReadyEvent for further LLM processing.
|
|
22
|
+
"""
|
|
23
|
+
def __init__(self):
|
|
24
|
+
logger.info("ToolResultEventHandler initialized.")
|
|
25
|
+
|
|
26
|
+
async def handle(self,
|
|
27
|
+
event: ToolResultEvent,
|
|
28
|
+
context: 'AgentContext') -> None:
|
|
29
|
+
if not isinstance(event, ToolResultEvent):
|
|
30
|
+
logger.warning(f"ToolResultEventHandler received non-ToolResultEvent: {type(event)}. Skipping.")
|
|
31
|
+
return
|
|
32
|
+
|
|
33
|
+
agent_id = context.agent_id
|
|
34
|
+
processed_event = event
|
|
35
|
+
|
|
36
|
+
# --- New: Apply Tool Execution Result Processors ---
|
|
37
|
+
processor_instances = context.config.tool_execution_result_processors
|
|
38
|
+
if processor_instances:
|
|
39
|
+
processor_names = [p.get_name() for p in processor_instances]
|
|
40
|
+
logger.debug(f"Agent '{agent_id}': Applying tool execution result processors: {processor_names}")
|
|
41
|
+
for processor_instance in processor_instances:
|
|
42
|
+
processor_name_for_log = "unknown"
|
|
43
|
+
try:
|
|
44
|
+
if not isinstance(processor_instance, BaseToolExecutionResultProcessor):
|
|
45
|
+
logger.error(f"Agent '{agent_id}': Invalid tool result processor type: {type(processor_instance)}. Skipping.")
|
|
46
|
+
continue
|
|
47
|
+
|
|
48
|
+
processor_name_for_log = processor_instance.get_name()
|
|
49
|
+
logger.debug(f"Agent '{agent_id}': Applying tool result processor '{processor_name_for_log}'.")
|
|
50
|
+
|
|
51
|
+
event_before_proc = processed_event
|
|
52
|
+
processed_event = await processor_instance.process(event_before_proc, context)
|
|
53
|
+
logger.info(f"Agent '{agent_id}': Tool result processor '{processor_name_for_log}' applied successfully.")
|
|
54
|
+
|
|
55
|
+
except Exception as e:
|
|
56
|
+
logger.error(f"Agent '{agent_id}': Error applying tool result processor '{processor_name_for_log}': {e}. "
|
|
57
|
+
f"Skipping and continuing with result from before this processor.", exc_info=True)
|
|
58
|
+
processed_event = event_before_proc
|
|
59
|
+
# --- End New ---
|
|
60
|
+
|
|
61
|
+
tool_invocation_id = processed_event.tool_invocation_id if processed_event.tool_invocation_id else 'N/A'
|
|
62
|
+
|
|
63
|
+
logger.info(f"Agent '{agent_id}' handling processed ToolResultEvent from tool: '{processed_event.tool_name}' (Invocation ID: {tool_invocation_id}). Error: {processed_event.error is not None}")
|
|
64
|
+
|
|
65
|
+
notifier: Optional['AgentExternalEventNotifier'] = None
|
|
66
|
+
if context.phase_manager:
|
|
67
|
+
notifier = context.phase_manager.notifier
|
|
68
|
+
|
|
69
|
+
if not notifier: # pragma: no cover
|
|
70
|
+
logger.error(f"Agent '{agent_id}': Notifier not available in ToolResultEventHandler. Tool result processing logs will not be emitted.")
|
|
71
|
+
|
|
72
|
+
if processed_event.error:
|
|
73
|
+
logger.debug(f"Agent '{agent_id}' tool '{processed_event.tool_name}' (ID: {tool_invocation_id}) raw error details: {processed_event.error}")
|
|
74
|
+
else:
|
|
75
|
+
try:
|
|
76
|
+
raw_result_str_for_debug_log = json.dumps(processed_event.result, indent=2)
|
|
77
|
+
except TypeError: # pragma: no cover
|
|
78
|
+
raw_result_str_for_debug_log = str(processed_event.result)
|
|
79
|
+
logger.debug(f"Agent '{agent_id}' tool '{processed_event.tool_name}' (ID: {tool_invocation_id}) raw result:\n---\n{raw_result_str_for_debug_log}\n---")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
content_for_llm: str
|
|
83
|
+
if processed_event.error:
|
|
84
|
+
content_for_llm = (
|
|
85
|
+
f"The tool '{processed_event.tool_name}' (invocation ID: {tool_invocation_id}) encountered an error.\n"
|
|
86
|
+
f"Error details: {processed_event.error}\n"
|
|
87
|
+
f"Please analyze this error and decide the next course of action."
|
|
88
|
+
)
|
|
89
|
+
log_msg_error_processed = f"[TOOL_RESULT_ERROR_PROCESSED] Agent_ID: {agent_id}, Tool: {processed_event.tool_name}, Invocation_ID: {tool_invocation_id}, Error: {processed_event.error}"
|
|
90
|
+
if notifier:
|
|
91
|
+
try:
|
|
92
|
+
log_data = {
|
|
93
|
+
"log_entry": log_msg_error_processed,
|
|
94
|
+
"tool_invocation_id": tool_invocation_id,
|
|
95
|
+
"tool_name": processed_event.tool_name,
|
|
96
|
+
}
|
|
97
|
+
notifier.notify_agent_data_tool_log(log_data)
|
|
98
|
+
except Exception as e_notify:
|
|
99
|
+
logger.error(f"Agent '{agent_id}': Error notifying tool result error log: {e_notify}", exc_info=True)
|
|
100
|
+
else:
|
|
101
|
+
try:
|
|
102
|
+
result_str_for_llm = json.dumps(processed_event.result, indent=2) if not isinstance(processed_event.result, str) else processed_event.result
|
|
103
|
+
except TypeError: # pragma: no cover
|
|
104
|
+
result_str_for_llm = str(processed_event.result)
|
|
105
|
+
|
|
106
|
+
content_for_llm = (
|
|
107
|
+
f"The tool '{processed_event.tool_name}' (invocation ID: {tool_invocation_id}) has executed.\n"
|
|
108
|
+
f"Result:\n{result_str_for_llm}\n"
|
|
109
|
+
f"Based on this result, what is the next step or final answer?"
|
|
110
|
+
)
|
|
111
|
+
log_msg_success_processed = f"[TOOL_RESULT_SUCCESS_PROCESSED] Agent_ID: {agent_id}, Tool: {processed_event.tool_name}, Invocation_ID: {tool_invocation_id}, Result: {str(processed_event.result)}"
|
|
112
|
+
if notifier:
|
|
113
|
+
try:
|
|
114
|
+
log_data = {
|
|
115
|
+
"log_entry": log_msg_success_processed,
|
|
116
|
+
"tool_invocation_id": tool_invocation_id,
|
|
117
|
+
"tool_name": processed_event.tool_name,
|
|
118
|
+
}
|
|
119
|
+
notifier.notify_agent_data_tool_log(log_data)
|
|
120
|
+
except Exception as e_notify:
|
|
121
|
+
logger.error(f"Agent '{agent_id}': Error notifying tool result success log: {e_notify}", exc_info=True)
|
|
122
|
+
|
|
123
|
+
logger.debug(f"Agent '{agent_id}' preparing message for LLM based on tool '{processed_event.tool_name}' (ID: {tool_invocation_id}) result:\n---\n{content_for_llm}\n---")
|
|
124
|
+
llm_user_message = LLMUserMessage(content=content_for_llm)
|
|
125
|
+
|
|
126
|
+
next_event = LLMUserMessageReadyEvent(llm_user_message=llm_user_message)
|
|
127
|
+
await context.input_event_queues.enqueue_internal_system_event(next_event)
|
|
128
|
+
|
|
129
|
+
logger.info(f"Agent '{agent_id}' enqueued LLMUserMessageReadyEvent for LLM based on tool '{processed_event.tool_name}' (ID: {tool_invocation_id}) result summary.")
|
{autobyteus-1.1.3 → autobyteus-1.1.5}/autobyteus/agent/handlers/user_input_message_event_handler.py
RENAMED
|
@@ -11,6 +11,7 @@ from autobyteus.llm.user_message import LLMUserMessage
|
|
|
11
11
|
|
|
12
12
|
if TYPE_CHECKING:
|
|
13
13
|
from autobyteus.agent.context import AgentContext
|
|
14
|
+
from autobyteus.agent.events.notifiers import AgentExternalEventNotifier
|
|
14
15
|
|
|
15
16
|
logger = logging.getLogger(__name__)
|
|
16
17
|
|
|
@@ -20,6 +21,7 @@ class UserInputMessageEventHandler(AgentEventHandler):
|
|
|
20
21
|
AgentUserInputMessageProcessors (provided as instances) to the AgentInputUserMessage,
|
|
21
22
|
then converting the processed message into an LLMUserMessage, and finally
|
|
22
23
|
enqueuing an LLMUserMessageReadyEvent for further processing by the LLM.
|
|
24
|
+
It also checks for metadata to emit special notifications for system-generated tasks.
|
|
23
25
|
"""
|
|
24
26
|
|
|
25
27
|
def __init__(self):
|
|
@@ -33,9 +35,22 @@ class UserInputMessageEventHandler(AgentEventHandler):
|
|
|
33
35
|
return
|
|
34
36
|
|
|
35
37
|
original_agent_input_user_msg: AgentInputUserMessage = event.agent_input_user_message
|
|
38
|
+
|
|
39
|
+
# --- NEW LOGIC: Check metadata for system-generated tasks and notify TUI ---
|
|
40
|
+
if original_agent_input_user_msg.metadata.get('source') == 'system_task_notifier':
|
|
41
|
+
if context.phase_manager:
|
|
42
|
+
notifier: 'AgentExternalEventNotifier' = context.phase_manager.notifier
|
|
43
|
+
notification_data = {
|
|
44
|
+
"sender_id": "system.task_notifier",
|
|
45
|
+
"content": original_agent_input_user_msg.content,
|
|
46
|
+
}
|
|
47
|
+
notifier.notify_agent_data_system_task_notification_received(notification_data)
|
|
48
|
+
logger.info(f"Agent '{context.agent_id}' emitted system task notification for TUI.")
|
|
49
|
+
# --- END NEW LOGIC ---
|
|
50
|
+
|
|
36
51
|
processed_agent_input_user_msg: AgentInputUserMessage = original_agent_input_user_msg
|
|
37
52
|
|
|
38
|
-
logger.info(f"Agent '{context.agent_id}' handling UserMessageReceivedEvent: '{original_agent_input_user_msg.content
|
|
53
|
+
logger.info(f"Agent '{context.agent_id}' handling UserMessageReceivedEvent: '{original_agent_input_user_msg.content}'")
|
|
39
54
|
|
|
40
55
|
processor_instances = context.config.input_processors
|
|
41
56
|
if processor_instances:
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# file: autobyteus/autobyteus/agent/input_processor/__init__.py
|
|
2
|
+
"""
|
|
3
|
+
Components for pre-processing AgentUserMessage objects.
|
|
4
|
+
"""
|
|
5
|
+
from .base_user_input_processor import BaseAgentUserInputMessageProcessor
|
|
6
|
+
|
|
7
|
+
# Concrete processors have been removed. Users can define their own.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"BaseAgentUserInputMessageProcessor",
|
|
12
|
+
]
|
|
@@ -17,6 +17,8 @@ class ContextFileType(str, Enum):
|
|
|
17
17
|
HTML = "html" # .html, .htm
|
|
18
18
|
PYTHON = "python" # .py
|
|
19
19
|
JAVASCRIPT = "javascript" # .js
|
|
20
|
+
AUDIO = "audio" # .mp3, .wav, .m4a, .flac, .ogg
|
|
21
|
+
VIDEO = "video" # .mp4, .mov, .avi, .mkv, .webm
|
|
20
22
|
IMAGE = "image" # .png, .jpg, .jpeg, .gif, .webp (when image is for contextual analysis, not direct LLM vision input)
|
|
21
23
|
UNKNOWN = "unknown" # Fallback for unrecognized types
|
|
22
24
|
|
|
@@ -54,6 +56,10 @@ class ContextFileType(str, Enum):
|
|
|
54
56
|
return cls.PYTHON
|
|
55
57
|
elif extension == ".js":
|
|
56
58
|
return cls.JAVASCRIPT
|
|
59
|
+
elif extension in [".mp3", ".wav", ".m4a", ".flac", ".ogg"]:
|
|
60
|
+
return cls.AUDIO
|
|
61
|
+
elif extension in [".mp4", ".mov", ".avi", ".mkv", ".webm"]:
|
|
62
|
+
return cls.VIDEO
|
|
57
63
|
elif extension in [".png", ".jpg", ".jpeg", ".gif", ".webp"]:
|
|
58
64
|
return cls.IMAGE
|
|
59
65
|
else:
|