autobyteus 1.1.4__tar.gz → 1.1.6__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.4 → autobyteus-1.1.6}/PKG-INFO +10 -10
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/__init__.py +4 -2
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/agent_config.py +4 -3
- autobyteus-1.1.6/autobyteus/agent/context/agent_context_registry.py +73 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/notifiers.py +4 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/inter_agent_message_event_handler.py +7 -2
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/llm_complete_response_received_event_handler.py +19 -19
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/llm_user_message_ready_event_handler.py +30 -7
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/user_input_message_event_handler.py +34 -22
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/__init__.py +7 -5
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/agent_input_user_message.py +6 -16
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/context_file.py +24 -24
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/context_file_type.py +29 -8
- autobyteus-1.1.6/autobyteus/agent/message/multimodal_message_builder.py +47 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/send_message_to.py +29 -23
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/agent_runtime.py +10 -2
- autobyteus-1.1.6/autobyteus/agent/sender_type.py +15 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/agent_event_stream.py +6 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/stream_event_payloads.py +35 -4
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/stream_events.py +3 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/tool_manifest_injector_processor.py +12 -5
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_invocation.py +2 -1
- autobyteus-1.1.6/autobyteus/agent_team/__init__.py +1 -0
- autobyteus-1.1.6/autobyteus/agent_team/agent_team.py +93 -0
- autobyteus-1.1.6/autobyteus/agent_team/agent_team_builder.py +184 -0
- autobyteus-1.1.6/autobyteus/agent_team/base_agent_team.py +86 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/__init__.py +24 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/agent_configuration_preparation_step.py +80 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/agent_team_bootstrapper.py +54 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/agent_team_runtime_queue_initialization_step.py +25 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/base_agent_team_bootstrap_step.py +23 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/coordinator_initialization_step.py +41 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/coordinator_prompt_preparation_step.py +85 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/task_notifier_initialization_step.py +51 -0
- autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/team_context_initialization_step.py +45 -0
- autobyteus-1.1.6/autobyteus/agent_team/context/__init__.py +17 -0
- autobyteus-1.1.6/autobyteus/agent_team/context/agent_team_config.py +34 -0
- autobyteus-1.1.6/autobyteus/agent_team/context/agent_team_context.py +61 -0
- autobyteus-1.1.6/autobyteus/agent_team/context/agent_team_runtime_state.py +56 -0
- autobyteus-1.1.6/autobyteus/agent_team/context/team_manager.py +147 -0
- autobyteus-1.1.6/autobyteus/agent_team/context/team_node_config.py +76 -0
- autobyteus-1.1.6/autobyteus/agent_team/events/__init__.py +29 -0
- autobyteus-1.1.6/autobyteus/agent_team/events/agent_team_event_dispatcher.py +39 -0
- autobyteus-1.1.6/autobyteus/agent_team/events/agent_team_events.py +53 -0
- autobyteus-1.1.6/autobyteus/agent_team/events/agent_team_input_event_queue_manager.py +21 -0
- autobyteus-1.1.6/autobyteus/agent_team/exceptions.py +8 -0
- autobyteus-1.1.6/autobyteus/agent_team/factory/__init__.py +9 -0
- autobyteus-1.1.6/autobyteus/agent_team/factory/agent_team_factory.py +99 -0
- autobyteus-1.1.6/autobyteus/agent_team/handlers/__init__.py +19 -0
- autobyteus-1.1.6/autobyteus/agent_team/handlers/agent_team_event_handler_registry.py +23 -0
- autobyteus-1.1.6/autobyteus/agent_team/handlers/base_agent_team_event_handler.py +16 -0
- autobyteus-1.1.6/autobyteus/agent_team/handlers/inter_agent_message_request_event_handler.py +61 -0
- autobyteus-1.1.6/autobyteus/agent_team/handlers/lifecycle_agent_team_event_handler.py +27 -0
- autobyteus-1.1.6/autobyteus/agent_team/handlers/process_user_message_event_handler.py +46 -0
- autobyteus-1.1.6/autobyteus/agent_team/handlers/tool_approval_team_event_handler.py +48 -0
- autobyteus-1.1.6/autobyteus/agent_team/phases/__init__.py +11 -0
- autobyteus-1.1.6/autobyteus/agent_team/phases/agent_team_operational_phase.py +19 -0
- autobyteus-1.1.6/autobyteus/agent_team/phases/agent_team_phase_manager.py +48 -0
- autobyteus-1.1.6/autobyteus/agent_team/runtime/__init__.py +13 -0
- autobyteus-1.1.6/autobyteus/agent_team/runtime/agent_team_runtime.py +82 -0
- autobyteus-1.1.6/autobyteus/agent_team/runtime/agent_team_worker.py +117 -0
- autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/__init__.py +17 -0
- autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_orchestrator.py +35 -0
- autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_step.py +42 -0
- autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/base_agent_team_shutdown_step.py +16 -0
- autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/bridge_cleanup_step.py +28 -0
- autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/sub_team_shutdown_step.py +41 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/__init__.py +26 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_event_bridge.py +48 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_event_multiplexer.py +70 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_event_notifier.py +64 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_event_stream.py +33 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_stream_event_payloads.py +32 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_stream_events.py +56 -0
- autobyteus-1.1.6/autobyteus/agent_team/streaming/team_event_bridge.py +50 -0
- autobyteus-1.1.6/autobyteus/agent_team/task_notification/__init__.py +11 -0
- autobyteus-1.1.6/autobyteus/agent_team/task_notification/system_event_driven_agent_task_notifier.py +164 -0
- autobyteus-1.1.6/autobyteus/agent_team/task_notification/task_notification_mode.py +24 -0
- autobyteus-1.1.6/autobyteus/agent_team/utils/__init__.py +9 -0
- autobyteus-1.1.6/autobyteus/agent_team/utils/wait_for_idle.py +46 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/__init__.py +4 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/app.py +210 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/state.py +180 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/__init__.py +6 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/agent_list_sidebar.py +149 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/focus_pane.py +320 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/logo.py +20 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/renderables.py +77 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/shared.py +60 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/status_bar.py +14 -0
- autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/task_board_panel.py +82 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/event_types.py +7 -2
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/autobyteus_llm.py +38 -39
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/bedrock_llm.py +13 -5
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/claude_llm.py +13 -27
- autobyteus-1.1.6/autobyteus/llm/api/gemini_llm.py +151 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/groq_llm.py +4 -3
- autobyteus-1.1.6/autobyteus/llm/api/lmstudio_llm.py +34 -0
- autobyteus-1.1.6/autobyteus/llm/api/mistral_llm.py +171 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/nvidia_llm.py +6 -5
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/ollama_llm.py +44 -24
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/openai_compatible_llm.py +91 -91
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/autobyteus_provider.py +73 -46
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/base_llm.py +42 -139
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/base_extension.py +6 -6
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/token_usage_tracking_extension.py +3 -2
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/llm_factory.py +208 -144
- autobyteus-1.1.6/autobyteus/llm/lmstudio_provider.py +104 -0
- autobyteus-1.1.6/autobyteus/llm/models.py +190 -0
- autobyteus-1.1.6/autobyteus/llm/ollama_provider.py +111 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/ollama_provider_resolver.py +1 -0
- autobyteus-1.1.6/autobyteus/llm/providers.py +16 -0
- autobyteus-1.1.6/autobyteus/llm/runtimes.py +11 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/token_counter_factory.py +1 -1
- autobyteus-1.1.6/autobyteus/llm/user_message.py +81 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/llm_config.py +34 -18
- autobyteus-1.1.6/autobyteus/llm/utils/media_payload_formatter.py +99 -0
- autobyteus-1.1.6/autobyteus/llm/utils/messages.py +47 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/response_types.py +9 -3
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/token_usage.py +6 -5
- autobyteus-1.1.6/autobyteus/multimedia/__init__.py +31 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/__init__.py +11 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/api/__init__.py +4 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/api/autobyteus_audio_client.py +59 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/api/gemini_audio_client.py +219 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/audio_client_factory.py +120 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/audio_model.py +96 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/autobyteus_audio_provider.py +108 -0
- autobyteus-1.1.6/autobyteus/multimedia/audio/base_audio_client.py +40 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/__init__.py +11 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/api/__init__.py +9 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/api/autobyteus_image_client.py +97 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/api/gemini_image_client.py +188 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/api/openai_image_client.py +142 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/autobyteus_image_provider.py +109 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/base_image_client.py +67 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/image_client_factory.py +118 -0
- autobyteus-1.1.6/autobyteus/multimedia/image/image_model.py +96 -0
- autobyteus-1.1.6/autobyteus/multimedia/providers.py +5 -0
- autobyteus-1.1.6/autobyteus/multimedia/runtimes.py +8 -0
- autobyteus-1.1.6/autobyteus/multimedia/utils/__init__.py +10 -0
- autobyteus-1.1.6/autobyteus/multimedia/utils/api_utils.py +19 -0
- autobyteus-1.1.6/autobyteus/multimedia/utils/multimedia_config.py +29 -0
- autobyteus-1.1.6/autobyteus/multimedia/utils/response_types.py +13 -0
- autobyteus-1.1.6/autobyteus/task_management/__init__.py +43 -0
- autobyteus-1.1.6/autobyteus/task_management/base_task_board.py +68 -0
- autobyteus-1.1.6/autobyteus/task_management/converters/__init__.py +11 -0
- autobyteus-1.1.6/autobyteus/task_management/converters/task_board_converter.py +64 -0
- autobyteus-1.1.6/autobyteus/task_management/converters/task_plan_converter.py +48 -0
- autobyteus-1.1.6/autobyteus/task_management/deliverable.py +16 -0
- autobyteus-1.1.6/autobyteus/task_management/deliverables/__init__.py +8 -0
- autobyteus-1.1.6/autobyteus/task_management/deliverables/file_deliverable.py +15 -0
- autobyteus-1.1.6/autobyteus/task_management/events.py +27 -0
- autobyteus-1.1.6/autobyteus/task_management/in_memory_task_board.py +126 -0
- autobyteus-1.1.6/autobyteus/task_management/schemas/__init__.py +15 -0
- autobyteus-1.1.6/autobyteus/task_management/schemas/deliverable_schema.py +13 -0
- autobyteus-1.1.6/autobyteus/task_management/schemas/plan_definition.py +35 -0
- autobyteus-1.1.6/autobyteus/task_management/schemas/task_status_report.py +27 -0
- autobyteus-1.1.6/autobyteus/task_management/task_plan.py +110 -0
- autobyteus-1.1.6/autobyteus/task_management/tools/__init__.py +14 -0
- autobyteus-1.1.6/autobyteus/task_management/tools/get_task_board_status.py +68 -0
- autobyteus-1.1.6/autobyteus/task_management/tools/publish_task_plan.py +113 -0
- autobyteus-1.1.6/autobyteus/task_management/tools/update_task_status.py +135 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/__init__.py +3 -0
- autobyteus-1.1.6/autobyteus/tools/bash/bash_executor.py +100 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/config_service.py +63 -58
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/http_managed_mcp_server.py +14 -2
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/stdio_managed_mcp_server.py +14 -2
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server_instance_manager.py +30 -4
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/tool_registrar.py +103 -50
- autobyteus-1.1.6/autobyteus/tools/multimedia/__init__.py +8 -0
- autobyteus-1.1.6/autobyteus/tools/multimedia/audio_tools.py +116 -0
- autobyteus-1.1.6/autobyteus/tools/multimedia/image_tools.py +186 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/parameter_schema.py +17 -11
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/registry/tool_definition.py +24 -29
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_category.py +2 -0
- autobyteus-1.1.6/autobyteus/tools/usage/formatters/default_json_example_formatter.py +117 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/default_xml_example_formatter.py +23 -3
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/gemini_json_example_formatter.py +6 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/google_json_example_formatter.py +7 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/openai_json_example_formatter.py +6 -4
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/gemini_json_tool_usage_parser.py +23 -7
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/provider_aware_tool_usage_parser.py +16 -24
- autobyteus-1.1.6/autobyteus/tools/usage/providers/__init__.py +12 -0
- autobyteus-1.1.6/autobyteus/tools/usage/providers/tool_manifest_provider.py +77 -0
- autobyteus-1.1.6/autobyteus/tools/usage/registries/__init__.py +15 -0
- autobyteus-1.1.6/autobyteus/tools/usage/registries/tool_formatter_pair.py +15 -0
- autobyteus-1.1.6/autobyteus/tools/usage/registries/tool_formatting_registry.py +65 -0
- autobyteus-1.1.6/autobyteus/tools/usage/registries/tool_usage_parser_registry.py +62 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/PKG-INFO +10 -10
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/SOURCES.txt +124 -22
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/requires.txt +9 -9
- autobyteus-1.1.6/examples/agent_team/__init__.py +1 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_browser_agent.py +17 -15
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_google_slides_agent.py +17 -16
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_poem_writer.py +22 -12
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_sqlite_agent.py +17 -15
- {autobyteus-1.1.4 → autobyteus-1.1.6}/setup.py +10 -10
- autobyteus-1.1.4/autobyteus/llm/api/gemini_llm.py +0 -85
- autobyteus-1.1.4/autobyteus/llm/api/lmstudio_llm.py +0 -37
- autobyteus-1.1.4/autobyteus/llm/api/mistral_llm.py +0 -125
- autobyteus-1.1.4/autobyteus/llm/lmstudio_provider.py +0 -89
- autobyteus-1.1.4/autobyteus/llm/models.py +0 -160
- autobyteus-1.1.4/autobyteus/llm/ollama_provider.py +0 -103
- autobyteus-1.1.4/autobyteus/llm/providers.py +0 -16
- autobyteus-1.1.4/autobyteus/llm/user_message.py +0 -73
- autobyteus-1.1.4/autobyteus/llm/utils/image_payload_formatter.py +0 -89
- autobyteus-1.1.4/autobyteus/llm/utils/messages.py +0 -40
- autobyteus-1.1.4/autobyteus/tools/bash/bash_executor.py +0 -55
- autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/__init__.py +0 -16
- autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/base_handler.py +0 -40
- autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/stdio_handler.py +0 -76
- autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/streamable_http_handler.py +0 -55
- autobyteus-1.1.4/autobyteus/tools/usage/formatters/default_json_example_formatter.py +0 -42
- autobyteus-1.1.4/autobyteus/tools/usage/providers/__init__.py +0 -22
- autobyteus-1.1.4/autobyteus/tools/usage/providers/json_example_provider.py +0 -32
- autobyteus-1.1.4/autobyteus/tools/usage/providers/json_schema_provider.py +0 -35
- autobyteus-1.1.4/autobyteus/tools/usage/providers/json_tool_usage_parser_provider.py +0 -28
- autobyteus-1.1.4/autobyteus/tools/usage/providers/tool_manifest_provider.py +0 -68
- autobyteus-1.1.4/autobyteus/tools/usage/providers/xml_example_provider.py +0 -28
- autobyteus-1.1.4/autobyteus/tools/usage/providers/xml_schema_provider.py +0 -29
- autobyteus-1.1.4/autobyteus/tools/usage/providers/xml_tool_usage_parser_provider.py +0 -26
- autobyteus-1.1.4/autobyteus/tools/usage/registries/__init__.py +0 -20
- autobyteus-1.1.4/autobyteus/tools/usage/registries/json_example_formatter_registry.py +0 -51
- autobyteus-1.1.4/autobyteus/tools/usage/registries/json_schema_formatter_registry.py +0 -51
- autobyteus-1.1.4/autobyteus/tools/usage/registries/json_tool_usage_parser_registry.py +0 -42
- autobyteus-1.1.4/autobyteus/tools/usage/registries/xml_example_formatter_registry.py +0 -30
- autobyteus-1.1.4/autobyteus/tools/usage/registries/xml_schema_formatter_registry.py +0 -33
- autobyteus-1.1.4/autobyteus/tools/usage/registries/xml_tool_usage_parser_registry.py +0 -30
- autobyteus-1.1.4/examples/workflow/__init__.py +0 -1
- autobyteus-1.1.4/examples/workflow/run_basic_research_workflow.py +0 -189
- autobyteus-1.1.4/examples/workflow/run_code_review_workflow.py +0 -269
- autobyteus-1.1.4/examples/workflow/run_debate_workflow.py +0 -212
- autobyteus-1.1.4/examples/workflow/run_workflow_with_tui.py +0 -153
- {autobyteus-1.1.4 → autobyteus-1.1.6}/LICENSE +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/README.md +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/agent.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/agent_bootstrapper.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/agent_runtime_queue_initialization_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/base_bootstrap_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/mcp_server_prewarming_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/system_prompt_processing_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/workspace_context_initialization_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/agent_context.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/agent_runtime_state.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/agent_events.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/agent_input_event_queue_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/worker_event_dispatcher.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/exceptions.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/factory/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/factory/agent_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/approved_tool_invocation_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/base_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/event_handler_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/generic_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/lifecycle_event_logger.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/tool_execution_approval_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/tool_invocation_request_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/tool_result_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/base_phase_hook.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/hook_definition.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/hook_meta.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/hook_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/base_user_input_processor.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/processor_definition.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/processor_meta.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/processor_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/base_processor.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/processor_definition.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/processor_meta.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/processor_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/inter_agent_message.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/inter_agent_message_type.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/discover.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/phase_enum.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/transition_decorator.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/transition_info.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/remote_agent.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/agent_thread_pool_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/agent_worker.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/agent_shutdown_orchestrator.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/base_shutdown_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/llm_instance_cleanup_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/mcp_server_cleanup_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/queue_streamer.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/base_processor.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/processor_definition.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/processor_meta.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/processor_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/base_processor.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/processor_definition.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/processor_meta.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/processor_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/utils/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/utils/wait_for_idle.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/base_workspace.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_config.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_definition.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_meta.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/check_requirements.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/agent_cli.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/cli_display.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/app.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/state.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/agent_list_sidebar.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/focus_pane.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/logo.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/renderables.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/shared.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/status_bar.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/event_emitter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/event_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/deepseek_llm.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/grok_llm.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/kimi_llm.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/openai_llm.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/extension_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/base_token_counter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/claude_token_counter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/deepseek_token_counter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/kimi_token_counter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/mistral_token_counter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/openai_token_counter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/rate_limiter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/token_pricing_config.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/token_usage_tracker.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/examples/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/examples/sample_persons.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/examples/sample_roles.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/person.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/role.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/prompt/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/prompt/prompt_builder.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/prompt/prompt_template.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/abstract_client_connection.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/client_connection_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/sse_client_connection.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/stdio_client_connection.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/config/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/config/agent_server_config.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/config/agent_server_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/hosting.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/protocol.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/agent_server_endpoint.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/base_method_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/method_handlers.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/sse_server_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/stdio_server_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server_main.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/transport_type.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/ask_user_input.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/base_tool.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/bash/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_navigate_to.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_tool.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_web_element_trigger.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_reader.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_screenshot_taker.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_web_element_trigger_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_reader_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_screenshot_taker_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/shared_browser_session.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/shared_browser_session_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/web_element_action.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/google_search_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/webpage_reader_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/webpage_screenshot_taker_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/google_search_ui.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/navigate_to.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/web_page_pdf_generator.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/webpage_image_downloader.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/webpage_reader.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/webpage_screenshot_taker.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/factory/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/factory/tool_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/file/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/file/file_reader.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/file/file_writer.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/functional_tool.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/handlers/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/handlers/shell_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/image_downloader.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/schema_mapper.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/base_managed_mcp_server.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/proxy.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/tool.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/types.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/file_operation.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/file_rename_operation.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/operation.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/shell_operation.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/pdf_downloader.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/registry/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/registry/tool_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/timer.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_config.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_meta.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_origin.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_state.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/anthropic_json_example_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/anthropic_json_schema_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/base_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/default_json_schema_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/default_xml_schema_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/gemini_json_schema_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/google_json_schema_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/openai_json_schema_formatter.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/_json_extractor.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/anthropic_xml_tool_usage_parser.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/base_parser.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/default_json_tool_usage_parser.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/exceptions.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/openai_json_tool_usage_parser.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/utils.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/dynamic_enum.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/file_utils.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/html_cleaner.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/singleton.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/agentic_workflow.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/base_agentic_workflow.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/agent_tool_injection_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/base_workflow_bootstrap_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/coordinator_initialization_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/coordinator_prompt_preparation_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/workflow_bootstrapper.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/workflow_runtime_queue_initialization_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/team_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_config.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_context.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_node_config.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_runtime_state.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/workflow_event_dispatcher.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/workflow_events.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/workflow_input_event_queue_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/exceptions.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/factory/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/factory/workflow_factory.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/base_workflow_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/inter_agent_message_request_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/lifecycle_workflow_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/process_user_message_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/tool_approval_workflow_event_handler.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/workflow_event_handler_registry.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/phases/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/phases/workflow_operational_phase.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/phases/workflow_phase_manager.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/runtime/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/runtime/workflow_runtime.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/runtime/workflow_worker.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/agent_team_shutdown_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/base_workflow_shutdown_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/bridge_cleanup_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/sub_workflow_shutdown_step.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/workflow_shutdown_orchestrator.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/agent_event_bridge.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/agent_event_multiplexer.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_event_bridge.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_event_notifier.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_event_stream.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_stream_event_payloads.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_stream_events.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/utils/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/utils/wait_for_idle.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/workflow_builder.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/dependency_links.txt +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/top_level.txt +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/__init__.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/discover_phase_transitions.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_mcp_browser_client.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_mcp_google_slides_client.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_mcp_list_tools.py +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/pyproject.toml +0 -0
- {autobyteus-1.1.4 → autobyteus-1.1.6}/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.6
|
|
4
4
|
Summary: Multi-Agent framework
|
|
5
5
|
Home-page: https://github.com/AutoByteus/autobyteus
|
|
6
6
|
Author: Ryan Zheng
|
|
@@ -15,27 +15,27 @@ Requires-Python: >=3.8
|
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
17
|
Requires-Dist: aiohttp
|
|
18
|
-
Requires-Dist: anthropic
|
|
19
|
-
Requires-Dist: autobyteus-llm-client==1.1.
|
|
20
|
-
Requires-Dist: beautifulsoup4
|
|
18
|
+
Requires-Dist: anthropic
|
|
19
|
+
Requires-Dist: autobyteus-llm-client==1.1.3
|
|
20
|
+
Requires-Dist: beautifulsoup4
|
|
21
21
|
Requires-Dist: boto3
|
|
22
22
|
Requires-Dist: botocore
|
|
23
|
-
Requires-Dist: brui-core==1.0.
|
|
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
26
|
Requires-Dist: google-generativeai
|
|
27
27
|
Requires-Dist: Jinja2
|
|
28
|
-
Requires-Dist: mcp[cli]
|
|
29
|
-
Requires-Dist: mistral_common
|
|
28
|
+
Requires-Dist: mcp[cli]
|
|
29
|
+
Requires-Dist: mistral_common
|
|
30
30
|
Requires-Dist: mistralai
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
Requires-Dist: numpy==2.2.5
|
|
31
|
+
Requires-Dist: numpy
|
|
33
32
|
Requires-Dist: ollama
|
|
34
33
|
Requires-Dist: openai
|
|
35
34
|
Requires-Dist: requests
|
|
36
35
|
Requires-Dist: rich
|
|
37
36
|
Requires-Dist: textual
|
|
38
|
-
Requires-Dist: tiktoken
|
|
37
|
+
Requires-Dist: tiktoken
|
|
38
|
+
Requires-Dist: tokenizers
|
|
39
39
|
Provides-Extra: dev
|
|
40
40
|
Requires-Dist: coverage; extra == "dev"
|
|
41
41
|
Requires-Dist: flake8; extra == "dev"
|
|
@@ -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
|
]
|
|
@@ -37,7 +37,7 @@ class AgentConfig:
|
|
|
37
37
|
system_prompt: Optional[str] = None,
|
|
38
38
|
tools: Optional[List['BaseTool']] = None,
|
|
39
39
|
auto_execute_tools: bool = True,
|
|
40
|
-
use_xml_tool_format: bool =
|
|
40
|
+
use_xml_tool_format: bool = False,
|
|
41
41
|
input_processors: Optional[List['BaseAgentUserInputMessageProcessor']] = None,
|
|
42
42
|
llm_response_processors: Optional[List['BaseLLMResponseProcessor']] = None,
|
|
43
43
|
system_prompt_processors: Optional[List['BaseSystemPromptProcessor']] = None,
|
|
@@ -58,7 +58,8 @@ class AgentConfig:
|
|
|
58
58
|
llm_instance's config will be used as the base.
|
|
59
59
|
tools: An optional list of pre-initialized tool instances (subclasses of BaseTool).
|
|
60
60
|
auto_execute_tools: If True, the agent will execute tools without approval.
|
|
61
|
-
use_xml_tool_format:
|
|
61
|
+
use_xml_tool_format: If True, forces the agent to use XML format for tool
|
|
62
|
+
definitions and parsing, overriding provider defaults.
|
|
62
63
|
input_processors: A list of input processor instances.
|
|
63
64
|
llm_response_processors: A list of LLM response processor instances.
|
|
64
65
|
system_prompt_processors: A list of system prompt processor instances.
|
|
@@ -84,7 +85,7 @@ class AgentConfig:
|
|
|
84
85
|
self.phase_hooks = phase_hooks or []
|
|
85
86
|
self.initial_custom_data = initial_custom_data
|
|
86
87
|
|
|
87
|
-
logger.debug(f"AgentConfig created for name '{self.name}', role '{self.role}'.")
|
|
88
|
+
logger.debug(f"AgentConfig created for name '{self.name}', role '{self.role}'. XML tool format override: {self.use_xml_tool_format}")
|
|
88
89
|
|
|
89
90
|
def copy(self) -> 'AgentConfig':
|
|
90
91
|
"""
|
|
@@ -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 = {
|
{autobyteus-1.1.4 → autobyteus-1.1.6}/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
|
|
|
@@ -46,6 +48,10 @@ class InterAgentMessageReceivedEventHandler(AgentEventHandler):
|
|
|
46
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)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# file: autobyteus/autobyteus/agent/handlers/llm_user_message_ready_event_handler.py
|
|
2
2
|
import logging
|
|
3
3
|
import traceback
|
|
4
|
-
from typing import TYPE_CHECKING, cast, Optional
|
|
4
|
+
from typing import TYPE_CHECKING, cast, Optional, List
|
|
5
5
|
|
|
6
6
|
from autobyteus.agent.handlers.base_event_handler import AgentEventHandler
|
|
7
7
|
from autobyteus.agent.events import LLMUserMessageReadyEvent, LLMCompleteResponseReceivedEvent
|
|
@@ -53,6 +53,9 @@ class LLMUserMessageReadyEventHandler(AgentEventHandler):
|
|
|
53
53
|
complete_response_text = ""
|
|
54
54
|
complete_reasoning_text = ""
|
|
55
55
|
token_usage: Optional[TokenUsage] = None
|
|
56
|
+
complete_image_urls: List[str] = []
|
|
57
|
+
complete_audio_urls: List[str] = []
|
|
58
|
+
complete_video_urls: List[str] = []
|
|
56
59
|
|
|
57
60
|
notifier: Optional['AgentExternalEventNotifier'] = None
|
|
58
61
|
if context.phase_manager:
|
|
@@ -72,9 +75,19 @@ class LLMUserMessageReadyEventHandler(AgentEventHandler):
|
|
|
72
75
|
if chunk_response.reasoning:
|
|
73
76
|
complete_reasoning_text += chunk_response.reasoning
|
|
74
77
|
|
|
75
|
-
if chunk_response.is_complete
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
if chunk_response.is_complete:
|
|
79
|
+
if chunk_response.usage:
|
|
80
|
+
token_usage = chunk_response.usage
|
|
81
|
+
logger.debug(f"Agent '{agent_id}' received final chunk with token usage: {token_usage}")
|
|
82
|
+
if chunk_response.image_urls:
|
|
83
|
+
complete_image_urls.extend(chunk_response.image_urls)
|
|
84
|
+
logger.debug(f"Agent '{agent_id}' received final chunk with {len(chunk_response.image_urls)} image URLs.")
|
|
85
|
+
if chunk_response.audio_urls:
|
|
86
|
+
complete_audio_urls.extend(chunk_response.audio_urls)
|
|
87
|
+
logger.debug(f"Agent '{agent_id}' received final chunk with {len(chunk_response.audio_urls)} audio URLs.")
|
|
88
|
+
if chunk_response.video_urls:
|
|
89
|
+
complete_video_urls.extend(chunk_response.video_urls)
|
|
90
|
+
logger.debug(f"Agent '{agent_id}' received final chunk with {len(chunk_response.video_urls)} video URLs.")
|
|
78
91
|
|
|
79
92
|
if notifier:
|
|
80
93
|
try:
|
|
@@ -121,20 +134,30 @@ class LLMUserMessageReadyEventHandler(AgentEventHandler):
|
|
|
121
134
|
logger.info(f"Agent '{agent_id}' enqueued LLMCompleteResponseReceivedEvent with error details from LLMUserMessageReadyEventHandler.")
|
|
122
135
|
return
|
|
123
136
|
|
|
124
|
-
# Add message to history with reasoning
|
|
137
|
+
# Add message to history with reasoning and multimodal data
|
|
125
138
|
history_entry = {"role": "assistant", "content": complete_response_text}
|
|
126
139
|
if complete_reasoning_text:
|
|
127
140
|
history_entry["reasoning"] = complete_reasoning_text
|
|
141
|
+
if complete_image_urls:
|
|
142
|
+
history_entry["image_urls"] = complete_image_urls
|
|
143
|
+
if complete_audio_urls:
|
|
144
|
+
history_entry["audio_urls"] = complete_audio_urls
|
|
145
|
+
if complete_video_urls:
|
|
146
|
+
history_entry["video_urls"] = complete_video_urls
|
|
128
147
|
context.state.add_message_to_history(history_entry)
|
|
129
148
|
|
|
130
|
-
# Create complete response with reasoning
|
|
149
|
+
# Create complete response with reasoning and multimodal data
|
|
131
150
|
complete_response_obj = CompleteResponse(
|
|
132
151
|
content=complete_response_text,
|
|
133
152
|
reasoning=complete_reasoning_text,
|
|
134
|
-
usage=token_usage
|
|
153
|
+
usage=token_usage,
|
|
154
|
+
image_urls=complete_image_urls,
|
|
155
|
+
audio_urls=complete_audio_urls,
|
|
156
|
+
video_urls=complete_video_urls
|
|
135
157
|
)
|
|
136
158
|
llm_complete_event = LLMCompleteResponseReceivedEvent(
|
|
137
159
|
complete_response=complete_response_obj
|
|
138
160
|
)
|
|
139
161
|
await context.input_event_queues.enqueue_internal_system_event(llm_complete_event)
|
|
140
162
|
logger.info(f"Agent '{agent_id}' enqueued LLMCompleteResponseReceivedEvent from LLMUserMessageReadyEventHandler.")
|
|
163
|
+
|
{autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/user_input_message_event_handler.py
RENAMED
|
@@ -3,22 +3,23 @@ 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 UserMessageReceivedEvent, LLMUserMessageReadyEvent
|
|
7
|
-
from autobyteus.agent.message.agent_input_user_message import AgentInputUserMessage
|
|
6
|
+
from autobyteus.agent.events import UserMessageReceivedEvent, LLMUserMessageReadyEvent
|
|
7
|
+
from autobyteus.agent.message.agent_input_user_message import AgentInputUserMessage
|
|
8
8
|
from autobyteus.agent.input_processor import BaseAgentUserInputMessageProcessor
|
|
9
|
-
from autobyteus.
|
|
9
|
+
from autobyteus.agent.message.multimodal_message_builder import build_llm_user_message
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
if TYPE_CHECKING:
|
|
13
|
-
from autobyteus.agent.context import AgentContext
|
|
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
|
|
|
17
18
|
class UserInputMessageEventHandler(AgentEventHandler):
|
|
18
19
|
"""
|
|
19
20
|
Handles UserMessageReceivedEvents by first applying any configured
|
|
20
|
-
AgentUserInputMessageProcessors
|
|
21
|
-
|
|
21
|
+
AgentUserInputMessageProcessors, then using the multimodal_message_builder
|
|
22
|
+
to convert the processed message into an LLMUserMessage, and finally
|
|
22
23
|
enqueuing an LLMUserMessageReadyEvent for further processing by the LLM.
|
|
23
24
|
"""
|
|
24
25
|
|
|
@@ -26,17 +27,30 @@ class UserInputMessageEventHandler(AgentEventHandler):
|
|
|
26
27
|
logger.info("UserInputMessageEventHandler initialized.")
|
|
27
28
|
|
|
28
29
|
async def handle(self,
|
|
29
|
-
event: UserMessageReceivedEvent,
|
|
30
|
+
event: UserMessageReceivedEvent,
|
|
30
31
|
context: 'AgentContext') -> None:
|
|
31
|
-
if not isinstance(event, UserMessageReceivedEvent):
|
|
32
|
+
if not isinstance(event, UserMessageReceivedEvent):
|
|
32
33
|
logger.warning(f"UserInputMessageEventHandler received non-UserMessageReceivedEvent: {type(event)}. Skipping.")
|
|
33
34
|
return
|
|
34
35
|
|
|
35
|
-
original_agent_input_user_msg: AgentInputUserMessage = event.agent_input_user_message
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
original_agent_input_user_msg: AgentInputUserMessage = event.agent_input_user_message
|
|
37
|
+
|
|
38
|
+
# --- NEW LOGIC: Check metadata for system-generated tasks and notify TUI ---
|
|
39
|
+
if original_agent_input_user_msg.metadata.get('source') == 'system_task_notifier':
|
|
40
|
+
if context.phase_manager:
|
|
41
|
+
notifier: 'AgentExternalEventNotifier' = context.phase_manager.notifier
|
|
42
|
+
notification_data = {
|
|
43
|
+
"sender_id": "system.task_notifier",
|
|
44
|
+
"content": original_agent_input_user_msg.content,
|
|
45
|
+
}
|
|
46
|
+
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 NEW LOGIC ---
|
|
49
|
+
|
|
50
|
+
processed_agent_input_user_msg: AgentInputUserMessage = original_agent_input_user_msg
|
|
51
|
+
|
|
52
|
+
logger.info(f"Agent '{context.agent_id}' handling UserMessageReceivedEvent: '{original_agent_input_user_msg.content}'")
|
|
53
|
+
|
|
40
54
|
processor_instances = context.config.input_processors
|
|
41
55
|
if processor_instances:
|
|
42
56
|
processor_names = [p.get_name() for p in processor_instances]
|
|
@@ -47,14 +61,14 @@ class UserInputMessageEventHandler(AgentEventHandler):
|
|
|
47
61
|
if not isinstance(processor_instance, BaseAgentUserInputMessageProcessor):
|
|
48
62
|
logger.error(f"Agent '{context.agent_id}': Invalid input processor type in config: {type(processor_instance)}. Skipping.")
|
|
49
63
|
continue
|
|
50
|
-
|
|
64
|
+
|
|
51
65
|
processor_name_for_log = processor_instance.get_name()
|
|
52
66
|
logger.debug(f"Agent '{context.agent_id}': Applying input processor '{processor_name_for_log}'.")
|
|
53
67
|
msg_before_this_processor = processed_agent_input_user_msg
|
|
54
68
|
# Pass the original event to the processor
|
|
55
69
|
processed_agent_input_user_msg = await processor_instance.process(
|
|
56
|
-
message=msg_before_this_processor,
|
|
57
|
-
context=context,
|
|
70
|
+
message=msg_before_this_processor,
|
|
71
|
+
context=context,
|
|
58
72
|
triggering_event=event
|
|
59
73
|
)
|
|
60
74
|
logger.info(f"Agent '{context.agent_id}': Input processor '{processor_name_for_log}' applied successfully.")
|
|
@@ -66,12 +80,10 @@ class UserInputMessageEventHandler(AgentEventHandler):
|
|
|
66
80
|
else:
|
|
67
81
|
logger.debug(f"Agent '{context.agent_id}': No input processors configured in agent config.")
|
|
68
82
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
image_urls=processed_agent_input_user_msg.image_urls
|
|
72
|
-
)
|
|
83
|
+
# --- Refactored: Use the dedicated builder ---
|
|
84
|
+
llm_user_message = build_llm_user_message(processed_agent_input_user_msg)
|
|
73
85
|
|
|
74
|
-
llm_user_message_ready_event = LLMUserMessageReadyEvent(llm_user_message=llm_user_message)
|
|
86
|
+
llm_user_message_ready_event = LLMUserMessageReadyEvent(llm_user_message=llm_user_message)
|
|
75
87
|
await context.input_event_queues.enqueue_internal_system_event(llm_user_message_ready_event)
|
|
76
|
-
|
|
88
|
+
|
|
77
89
|
logger.info(f"Agent '{context.agent_id}' processed AgentInputUserMessage and enqueued LLMUserMessageReadyEvent.")
|
|
@@ -9,12 +9,14 @@ from .agent_input_user_message import AgentInputUserMessage
|
|
|
9
9
|
from .send_message_to import SendMessageTo
|
|
10
10
|
from .context_file import ContextFile
|
|
11
11
|
from .context_file_type import ContextFileType
|
|
12
|
+
from .multimodal_message_builder import build_llm_user_message
|
|
12
13
|
|
|
13
14
|
__all__ = [
|
|
14
|
-
"InterAgentMessage",
|
|
15
|
-
"InterAgentMessageType",
|
|
16
|
-
"AgentInputUserMessage",
|
|
15
|
+
"InterAgentMessage",
|
|
16
|
+
"InterAgentMessageType",
|
|
17
|
+
"AgentInputUserMessage",
|
|
17
18
|
"SendMessageTo",
|
|
18
|
-
"ContextFile",
|
|
19
|
-
"ContextFileType",
|
|
19
|
+
"ContextFile",
|
|
20
|
+
"ContextFileType",
|
|
21
|
+
"build_llm_user_message",
|
|
20
22
|
]
|
|
@@ -8,21 +8,18 @@ from .context_file import ContextFile # Import the new ContextFile dataclass
|
|
|
8
8
|
logger = logging.getLogger(__name__)
|
|
9
9
|
|
|
10
10
|
@dataclass
|
|
11
|
-
class AgentInputUserMessage:
|
|
11
|
+
class AgentInputUserMessage:
|
|
12
12
|
"""
|
|
13
13
|
Represents a message received from an external user interacting with the agent system.
|
|
14
|
-
This is a simple dataclass. It includes support for a list of ContextFile objects,
|
|
15
|
-
allowing users to provide various documents as context.
|
|
14
|
+
This is a simple dataclass. It includes support for a list of ContextFile objects,
|
|
15
|
+
allowing users to provide various documents and media as context via a single list.
|
|
16
16
|
"""
|
|
17
17
|
content: str
|
|
18
|
-
image_urls: Optional[List[str]] = field(default=None) # Basic list of strings
|
|
19
18
|
context_files: Optional[List[ContextFile]] = field(default=None)
|
|
20
19
|
metadata: Dict[str, Any] = field(default_factory=dict)
|
|
21
20
|
|
|
22
21
|
def __post_init__(self):
|
|
23
22
|
# Basic type validation that dataclasses don't do automatically for mutable defaults or complex types
|
|
24
|
-
if self.image_urls is not None and not (isinstance(self.image_urls, list) and all(isinstance(url, str) for url in self.image_urls)):
|
|
25
|
-
raise TypeError("AgentInputUserMessage 'image_urls' must be a list of strings if provided.")
|
|
26
23
|
if self.context_files is not None and not (isinstance(self.context_files, list) and all(isinstance(cf, ContextFile) for cf in self.context_files)):
|
|
27
24
|
raise TypeError("AgentInputUserMessage 'context_files' must be a list of ContextFile objects if provided.")
|
|
28
25
|
if not isinstance(self.metadata, dict): # Should be caught by default_factory, but good practice
|
|
@@ -34,7 +31,7 @@ class AgentInputUserMessage:
|
|
|
34
31
|
num_context_files = len(self.context_files) if self.context_files else 0
|
|
35
32
|
logger.debug(
|
|
36
33
|
f"AgentInputUserMessage initialized. Content: '{self.content[:50]}...', "
|
|
37
|
-
f"
|
|
34
|
+
f"Num ContextFiles: {num_context_files}, "
|
|
38
35
|
f"Metadata keys: {list(self.metadata.keys())}"
|
|
39
36
|
)
|
|
40
37
|
|
|
@@ -47,7 +44,6 @@ class AgentInputUserMessage:
|
|
|
47
44
|
|
|
48
45
|
return {
|
|
49
46
|
"content": self.content,
|
|
50
|
-
"image_urls": self.image_urls,
|
|
51
47
|
"context_files": context_files_dict_list,
|
|
52
48
|
"metadata": self.metadata,
|
|
53
49
|
}
|
|
@@ -59,31 +55,25 @@ class AgentInputUserMessage:
|
|
|
59
55
|
if not isinstance(content, str): # Ensure content is string
|
|
60
56
|
raise ValueError("AgentInputUserMessage 'content' in dictionary must be a string.")
|
|
61
57
|
|
|
62
|
-
image_urls = data.get("image_urls")
|
|
63
|
-
if image_urls is not None and not (isinstance(image_urls, list) and all(isinstance(url, str) for url in image_urls)):
|
|
64
|
-
raise ValueError("AgentInputUserMessage 'image_urls' in dictionary must be a list of strings if provided.")
|
|
65
|
-
|
|
66
58
|
context_files_data = data.get("context_files")
|
|
67
59
|
context_files_list: Optional[List[ContextFile]] = None
|
|
68
60
|
if context_files_data is not None:
|
|
69
61
|
if not isinstance(context_files_data, list):
|
|
70
62
|
raise ValueError("AgentInputUserMessage 'context_files' in dictionary must be a list if provided.")
|
|
71
63
|
context_files_list = [ContextFile.from_dict(cf_data) for cf_data in context_files_data]
|
|
72
|
-
|
|
64
|
+
|
|
73
65
|
metadata = data.get("metadata", {})
|
|
74
66
|
if not isinstance(metadata, dict):
|
|
75
67
|
raise ValueError("AgentInputUserMessage 'metadata' in dictionary must be a dict if provided.")
|
|
76
68
|
|
|
77
69
|
return cls(
|
|
78
70
|
content=content,
|
|
79
|
-
image_urls=image_urls,
|
|
80
71
|
context_files=context_files_list,
|
|
81
72
|
metadata=metadata
|
|
82
73
|
)
|
|
83
74
|
|
|
84
75
|
def __repr__(self) -> str:
|
|
85
76
|
content_preview = f"{self.content[:100]}..." if len(self.content) > 100 else self.content
|
|
86
|
-
images_repr = f", image_urls={self.image_urls}" if self.image_urls else ""
|
|
87
77
|
|
|
88
78
|
if self.context_files:
|
|
89
79
|
context_repr = f", context_files=[{len(self.context_files)} ContextFile(s)]"
|
|
@@ -93,4 +83,4 @@ class AgentInputUserMessage:
|
|
|
93
83
|
meta_repr = f", metadata_keys={list(self.metadata.keys())}" if self.metadata else ""
|
|
94
84
|
|
|
95
85
|
return (f"AgentInputUserMessage(content='{content_preview}'"
|
|
96
|
-
f"{
|
|
86
|
+
f"{context_repr}{meta_repr})")
|