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.
Files changed (525) hide show
  1. {autobyteus-1.1.4 → autobyteus-1.1.6}/PKG-INFO +10 -10
  2. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/__init__.py +4 -2
  3. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/agent_config.py +4 -3
  4. autobyteus-1.1.6/autobyteus/agent/context/agent_context_registry.py +73 -0
  5. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/notifiers.py +4 -0
  6. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/inter_agent_message_event_handler.py +7 -2
  7. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/llm_complete_response_received_event_handler.py +19 -19
  8. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/llm_user_message_ready_event_handler.py +30 -7
  9. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/user_input_message_event_handler.py +34 -22
  10. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/__init__.py +7 -5
  11. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/agent_input_user_message.py +6 -16
  12. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/context_file.py +24 -24
  13. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/context_file_type.py +29 -8
  14. autobyteus-1.1.6/autobyteus/agent/message/multimodal_message_builder.py +47 -0
  15. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/send_message_to.py +29 -23
  16. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/agent_runtime.py +10 -2
  17. autobyteus-1.1.6/autobyteus/agent/sender_type.py +15 -0
  18. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/agent_event_stream.py +6 -0
  19. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/stream_event_payloads.py +35 -4
  20. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/stream_events.py +3 -0
  21. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/tool_manifest_injector_processor.py +12 -5
  22. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_invocation.py +2 -1
  23. autobyteus-1.1.6/autobyteus/agent_team/__init__.py +1 -0
  24. autobyteus-1.1.6/autobyteus/agent_team/agent_team.py +93 -0
  25. autobyteus-1.1.6/autobyteus/agent_team/agent_team_builder.py +184 -0
  26. autobyteus-1.1.6/autobyteus/agent_team/base_agent_team.py +86 -0
  27. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/__init__.py +24 -0
  28. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/agent_configuration_preparation_step.py +80 -0
  29. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/agent_team_bootstrapper.py +54 -0
  30. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/agent_team_runtime_queue_initialization_step.py +25 -0
  31. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/base_agent_team_bootstrap_step.py +23 -0
  32. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/coordinator_initialization_step.py +41 -0
  33. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/coordinator_prompt_preparation_step.py +85 -0
  34. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/task_notifier_initialization_step.py +51 -0
  35. autobyteus-1.1.6/autobyteus/agent_team/bootstrap_steps/team_context_initialization_step.py +45 -0
  36. autobyteus-1.1.6/autobyteus/agent_team/context/__init__.py +17 -0
  37. autobyteus-1.1.6/autobyteus/agent_team/context/agent_team_config.py +34 -0
  38. autobyteus-1.1.6/autobyteus/agent_team/context/agent_team_context.py +61 -0
  39. autobyteus-1.1.6/autobyteus/agent_team/context/agent_team_runtime_state.py +56 -0
  40. autobyteus-1.1.6/autobyteus/agent_team/context/team_manager.py +147 -0
  41. autobyteus-1.1.6/autobyteus/agent_team/context/team_node_config.py +76 -0
  42. autobyteus-1.1.6/autobyteus/agent_team/events/__init__.py +29 -0
  43. autobyteus-1.1.6/autobyteus/agent_team/events/agent_team_event_dispatcher.py +39 -0
  44. autobyteus-1.1.6/autobyteus/agent_team/events/agent_team_events.py +53 -0
  45. autobyteus-1.1.6/autobyteus/agent_team/events/agent_team_input_event_queue_manager.py +21 -0
  46. autobyteus-1.1.6/autobyteus/agent_team/exceptions.py +8 -0
  47. autobyteus-1.1.6/autobyteus/agent_team/factory/__init__.py +9 -0
  48. autobyteus-1.1.6/autobyteus/agent_team/factory/agent_team_factory.py +99 -0
  49. autobyteus-1.1.6/autobyteus/agent_team/handlers/__init__.py +19 -0
  50. autobyteus-1.1.6/autobyteus/agent_team/handlers/agent_team_event_handler_registry.py +23 -0
  51. autobyteus-1.1.6/autobyteus/agent_team/handlers/base_agent_team_event_handler.py +16 -0
  52. autobyteus-1.1.6/autobyteus/agent_team/handlers/inter_agent_message_request_event_handler.py +61 -0
  53. autobyteus-1.1.6/autobyteus/agent_team/handlers/lifecycle_agent_team_event_handler.py +27 -0
  54. autobyteus-1.1.6/autobyteus/agent_team/handlers/process_user_message_event_handler.py +46 -0
  55. autobyteus-1.1.6/autobyteus/agent_team/handlers/tool_approval_team_event_handler.py +48 -0
  56. autobyteus-1.1.6/autobyteus/agent_team/phases/__init__.py +11 -0
  57. autobyteus-1.1.6/autobyteus/agent_team/phases/agent_team_operational_phase.py +19 -0
  58. autobyteus-1.1.6/autobyteus/agent_team/phases/agent_team_phase_manager.py +48 -0
  59. autobyteus-1.1.6/autobyteus/agent_team/runtime/__init__.py +13 -0
  60. autobyteus-1.1.6/autobyteus/agent_team/runtime/agent_team_runtime.py +82 -0
  61. autobyteus-1.1.6/autobyteus/agent_team/runtime/agent_team_worker.py +117 -0
  62. autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/__init__.py +17 -0
  63. autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_orchestrator.py +35 -0
  64. autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_step.py +42 -0
  65. autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/base_agent_team_shutdown_step.py +16 -0
  66. autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/bridge_cleanup_step.py +28 -0
  67. autobyteus-1.1.6/autobyteus/agent_team/shutdown_steps/sub_team_shutdown_step.py +41 -0
  68. autobyteus-1.1.6/autobyteus/agent_team/streaming/__init__.py +26 -0
  69. autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_event_bridge.py +48 -0
  70. autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_event_multiplexer.py +70 -0
  71. autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_event_notifier.py +64 -0
  72. autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_event_stream.py +33 -0
  73. autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_stream_event_payloads.py +32 -0
  74. autobyteus-1.1.6/autobyteus/agent_team/streaming/agent_team_stream_events.py +56 -0
  75. autobyteus-1.1.6/autobyteus/agent_team/streaming/team_event_bridge.py +50 -0
  76. autobyteus-1.1.6/autobyteus/agent_team/task_notification/__init__.py +11 -0
  77. autobyteus-1.1.6/autobyteus/agent_team/task_notification/system_event_driven_agent_task_notifier.py +164 -0
  78. autobyteus-1.1.6/autobyteus/agent_team/task_notification/task_notification_mode.py +24 -0
  79. autobyteus-1.1.6/autobyteus/agent_team/utils/__init__.py +9 -0
  80. autobyteus-1.1.6/autobyteus/agent_team/utils/wait_for_idle.py +46 -0
  81. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/__init__.py +4 -0
  82. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/app.py +210 -0
  83. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/state.py +180 -0
  84. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/__init__.py +6 -0
  85. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/agent_list_sidebar.py +149 -0
  86. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/focus_pane.py +320 -0
  87. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/logo.py +20 -0
  88. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/renderables.py +77 -0
  89. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/shared.py +60 -0
  90. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/status_bar.py +14 -0
  91. autobyteus-1.1.6/autobyteus/cli/agent_team_tui/widgets/task_board_panel.py +82 -0
  92. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/event_types.py +7 -2
  93. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/autobyteus_llm.py +38 -39
  94. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/bedrock_llm.py +13 -5
  95. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/claude_llm.py +13 -27
  96. autobyteus-1.1.6/autobyteus/llm/api/gemini_llm.py +151 -0
  97. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/groq_llm.py +4 -3
  98. autobyteus-1.1.6/autobyteus/llm/api/lmstudio_llm.py +34 -0
  99. autobyteus-1.1.6/autobyteus/llm/api/mistral_llm.py +171 -0
  100. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/nvidia_llm.py +6 -5
  101. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/ollama_llm.py +44 -24
  102. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/openai_compatible_llm.py +91 -91
  103. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/autobyteus_provider.py +73 -46
  104. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/base_llm.py +42 -139
  105. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/base_extension.py +6 -6
  106. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/token_usage_tracking_extension.py +3 -2
  107. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/llm_factory.py +208 -144
  108. autobyteus-1.1.6/autobyteus/llm/lmstudio_provider.py +104 -0
  109. autobyteus-1.1.6/autobyteus/llm/models.py +190 -0
  110. autobyteus-1.1.6/autobyteus/llm/ollama_provider.py +111 -0
  111. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/ollama_provider_resolver.py +1 -0
  112. autobyteus-1.1.6/autobyteus/llm/providers.py +16 -0
  113. autobyteus-1.1.6/autobyteus/llm/runtimes.py +11 -0
  114. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/token_counter_factory.py +1 -1
  115. autobyteus-1.1.6/autobyteus/llm/user_message.py +81 -0
  116. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/llm_config.py +34 -18
  117. autobyteus-1.1.6/autobyteus/llm/utils/media_payload_formatter.py +99 -0
  118. autobyteus-1.1.6/autobyteus/llm/utils/messages.py +47 -0
  119. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/response_types.py +9 -3
  120. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/token_usage.py +6 -5
  121. autobyteus-1.1.6/autobyteus/multimedia/__init__.py +31 -0
  122. autobyteus-1.1.6/autobyteus/multimedia/audio/__init__.py +11 -0
  123. autobyteus-1.1.6/autobyteus/multimedia/audio/api/__init__.py +4 -0
  124. autobyteus-1.1.6/autobyteus/multimedia/audio/api/autobyteus_audio_client.py +59 -0
  125. autobyteus-1.1.6/autobyteus/multimedia/audio/api/gemini_audio_client.py +219 -0
  126. autobyteus-1.1.6/autobyteus/multimedia/audio/audio_client_factory.py +120 -0
  127. autobyteus-1.1.6/autobyteus/multimedia/audio/audio_model.py +96 -0
  128. autobyteus-1.1.6/autobyteus/multimedia/audio/autobyteus_audio_provider.py +108 -0
  129. autobyteus-1.1.6/autobyteus/multimedia/audio/base_audio_client.py +40 -0
  130. autobyteus-1.1.6/autobyteus/multimedia/image/__init__.py +11 -0
  131. autobyteus-1.1.6/autobyteus/multimedia/image/api/__init__.py +9 -0
  132. autobyteus-1.1.6/autobyteus/multimedia/image/api/autobyteus_image_client.py +97 -0
  133. autobyteus-1.1.6/autobyteus/multimedia/image/api/gemini_image_client.py +188 -0
  134. autobyteus-1.1.6/autobyteus/multimedia/image/api/openai_image_client.py +142 -0
  135. autobyteus-1.1.6/autobyteus/multimedia/image/autobyteus_image_provider.py +109 -0
  136. autobyteus-1.1.6/autobyteus/multimedia/image/base_image_client.py +67 -0
  137. autobyteus-1.1.6/autobyteus/multimedia/image/image_client_factory.py +118 -0
  138. autobyteus-1.1.6/autobyteus/multimedia/image/image_model.py +96 -0
  139. autobyteus-1.1.6/autobyteus/multimedia/providers.py +5 -0
  140. autobyteus-1.1.6/autobyteus/multimedia/runtimes.py +8 -0
  141. autobyteus-1.1.6/autobyteus/multimedia/utils/__init__.py +10 -0
  142. autobyteus-1.1.6/autobyteus/multimedia/utils/api_utils.py +19 -0
  143. autobyteus-1.1.6/autobyteus/multimedia/utils/multimedia_config.py +29 -0
  144. autobyteus-1.1.6/autobyteus/multimedia/utils/response_types.py +13 -0
  145. autobyteus-1.1.6/autobyteus/task_management/__init__.py +43 -0
  146. autobyteus-1.1.6/autobyteus/task_management/base_task_board.py +68 -0
  147. autobyteus-1.1.6/autobyteus/task_management/converters/__init__.py +11 -0
  148. autobyteus-1.1.6/autobyteus/task_management/converters/task_board_converter.py +64 -0
  149. autobyteus-1.1.6/autobyteus/task_management/converters/task_plan_converter.py +48 -0
  150. autobyteus-1.1.6/autobyteus/task_management/deliverable.py +16 -0
  151. autobyteus-1.1.6/autobyteus/task_management/deliverables/__init__.py +8 -0
  152. autobyteus-1.1.6/autobyteus/task_management/deliverables/file_deliverable.py +15 -0
  153. autobyteus-1.1.6/autobyteus/task_management/events.py +27 -0
  154. autobyteus-1.1.6/autobyteus/task_management/in_memory_task_board.py +126 -0
  155. autobyteus-1.1.6/autobyteus/task_management/schemas/__init__.py +15 -0
  156. autobyteus-1.1.6/autobyteus/task_management/schemas/deliverable_schema.py +13 -0
  157. autobyteus-1.1.6/autobyteus/task_management/schemas/plan_definition.py +35 -0
  158. autobyteus-1.1.6/autobyteus/task_management/schemas/task_status_report.py +27 -0
  159. autobyteus-1.1.6/autobyteus/task_management/task_plan.py +110 -0
  160. autobyteus-1.1.6/autobyteus/task_management/tools/__init__.py +14 -0
  161. autobyteus-1.1.6/autobyteus/task_management/tools/get_task_board_status.py +68 -0
  162. autobyteus-1.1.6/autobyteus/task_management/tools/publish_task_plan.py +113 -0
  163. autobyteus-1.1.6/autobyteus/task_management/tools/update_task_status.py +135 -0
  164. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/__init__.py +3 -0
  165. autobyteus-1.1.6/autobyteus/tools/bash/bash_executor.py +100 -0
  166. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/config_service.py +63 -58
  167. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/http_managed_mcp_server.py +14 -2
  168. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/stdio_managed_mcp_server.py +14 -2
  169. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server_instance_manager.py +30 -4
  170. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/tool_registrar.py +103 -50
  171. autobyteus-1.1.6/autobyteus/tools/multimedia/__init__.py +8 -0
  172. autobyteus-1.1.6/autobyteus/tools/multimedia/audio_tools.py +116 -0
  173. autobyteus-1.1.6/autobyteus/tools/multimedia/image_tools.py +186 -0
  174. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/parameter_schema.py +17 -11
  175. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/registry/tool_definition.py +24 -29
  176. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_category.py +2 -0
  177. autobyteus-1.1.6/autobyteus/tools/usage/formatters/default_json_example_formatter.py +117 -0
  178. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/default_xml_example_formatter.py +23 -3
  179. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/gemini_json_example_formatter.py +6 -0
  180. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/google_json_example_formatter.py +7 -0
  181. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/openai_json_example_formatter.py +6 -4
  182. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/gemini_json_tool_usage_parser.py +23 -7
  183. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/provider_aware_tool_usage_parser.py +16 -24
  184. autobyteus-1.1.6/autobyteus/tools/usage/providers/__init__.py +12 -0
  185. autobyteus-1.1.6/autobyteus/tools/usage/providers/tool_manifest_provider.py +77 -0
  186. autobyteus-1.1.6/autobyteus/tools/usage/registries/__init__.py +15 -0
  187. autobyteus-1.1.6/autobyteus/tools/usage/registries/tool_formatter_pair.py +15 -0
  188. autobyteus-1.1.6/autobyteus/tools/usage/registries/tool_formatting_registry.py +65 -0
  189. autobyteus-1.1.6/autobyteus/tools/usage/registries/tool_usage_parser_registry.py +62 -0
  190. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/PKG-INFO +10 -10
  191. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/SOURCES.txt +124 -22
  192. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/requires.txt +9 -9
  193. autobyteus-1.1.6/examples/agent_team/__init__.py +1 -0
  194. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_browser_agent.py +17 -15
  195. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_google_slides_agent.py +17 -16
  196. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_poem_writer.py +22 -12
  197. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_sqlite_agent.py +17 -15
  198. {autobyteus-1.1.4 → autobyteus-1.1.6}/setup.py +10 -10
  199. autobyteus-1.1.4/autobyteus/llm/api/gemini_llm.py +0 -85
  200. autobyteus-1.1.4/autobyteus/llm/api/lmstudio_llm.py +0 -37
  201. autobyteus-1.1.4/autobyteus/llm/api/mistral_llm.py +0 -125
  202. autobyteus-1.1.4/autobyteus/llm/lmstudio_provider.py +0 -89
  203. autobyteus-1.1.4/autobyteus/llm/models.py +0 -160
  204. autobyteus-1.1.4/autobyteus/llm/ollama_provider.py +0 -103
  205. autobyteus-1.1.4/autobyteus/llm/providers.py +0 -16
  206. autobyteus-1.1.4/autobyteus/llm/user_message.py +0 -73
  207. autobyteus-1.1.4/autobyteus/llm/utils/image_payload_formatter.py +0 -89
  208. autobyteus-1.1.4/autobyteus/llm/utils/messages.py +0 -40
  209. autobyteus-1.1.4/autobyteus/tools/bash/bash_executor.py +0 -55
  210. autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/__init__.py +0 -16
  211. autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/base_handler.py +0 -40
  212. autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/stdio_handler.py +0 -76
  213. autobyteus-1.1.4/autobyteus/tools/mcp/call_handlers/streamable_http_handler.py +0 -55
  214. autobyteus-1.1.4/autobyteus/tools/usage/formatters/default_json_example_formatter.py +0 -42
  215. autobyteus-1.1.4/autobyteus/tools/usage/providers/__init__.py +0 -22
  216. autobyteus-1.1.4/autobyteus/tools/usage/providers/json_example_provider.py +0 -32
  217. autobyteus-1.1.4/autobyteus/tools/usage/providers/json_schema_provider.py +0 -35
  218. autobyteus-1.1.4/autobyteus/tools/usage/providers/json_tool_usage_parser_provider.py +0 -28
  219. autobyteus-1.1.4/autobyteus/tools/usage/providers/tool_manifest_provider.py +0 -68
  220. autobyteus-1.1.4/autobyteus/tools/usage/providers/xml_example_provider.py +0 -28
  221. autobyteus-1.1.4/autobyteus/tools/usage/providers/xml_schema_provider.py +0 -29
  222. autobyteus-1.1.4/autobyteus/tools/usage/providers/xml_tool_usage_parser_provider.py +0 -26
  223. autobyteus-1.1.4/autobyteus/tools/usage/registries/__init__.py +0 -20
  224. autobyteus-1.1.4/autobyteus/tools/usage/registries/json_example_formatter_registry.py +0 -51
  225. autobyteus-1.1.4/autobyteus/tools/usage/registries/json_schema_formatter_registry.py +0 -51
  226. autobyteus-1.1.4/autobyteus/tools/usage/registries/json_tool_usage_parser_registry.py +0 -42
  227. autobyteus-1.1.4/autobyteus/tools/usage/registries/xml_example_formatter_registry.py +0 -30
  228. autobyteus-1.1.4/autobyteus/tools/usage/registries/xml_schema_formatter_registry.py +0 -33
  229. autobyteus-1.1.4/autobyteus/tools/usage/registries/xml_tool_usage_parser_registry.py +0 -30
  230. autobyteus-1.1.4/examples/workflow/__init__.py +0 -1
  231. autobyteus-1.1.4/examples/workflow/run_basic_research_workflow.py +0 -189
  232. autobyteus-1.1.4/examples/workflow/run_code_review_workflow.py +0 -269
  233. autobyteus-1.1.4/examples/workflow/run_debate_workflow.py +0 -212
  234. autobyteus-1.1.4/examples/workflow/run_workflow_with_tui.py +0 -153
  235. {autobyteus-1.1.4 → autobyteus-1.1.6}/LICENSE +0 -0
  236. {autobyteus-1.1.4 → autobyteus-1.1.6}/README.md +0 -0
  237. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/__init__.py +0 -0
  238. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/__init__.py +0 -0
  239. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/agent.py +0 -0
  240. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/__init__.py +0 -0
  241. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/agent_bootstrapper.py +0 -0
  242. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/agent_runtime_queue_initialization_step.py +0 -0
  243. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/base_bootstrap_step.py +0 -0
  244. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/mcp_server_prewarming_step.py +0 -0
  245. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/system_prompt_processing_step.py +0 -0
  246. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/bootstrap_steps/workspace_context_initialization_step.py +0 -0
  247. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/agent_context.py +0 -0
  248. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/context/agent_runtime_state.py +0 -0
  249. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/__init__.py +0 -0
  250. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/agent_events.py +0 -0
  251. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/agent_input_event_queue_manager.py +0 -0
  252. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/events/worker_event_dispatcher.py +0 -0
  253. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/exceptions.py +0 -0
  254. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/factory/__init__.py +0 -0
  255. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/factory/agent_factory.py +0 -0
  256. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/__init__.py +0 -0
  257. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/approved_tool_invocation_event_handler.py +0 -0
  258. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/base_event_handler.py +0 -0
  259. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/event_handler_registry.py +0 -0
  260. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/generic_event_handler.py +0 -0
  261. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/lifecycle_event_logger.py +0 -0
  262. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/tool_execution_approval_event_handler.py +0 -0
  263. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/tool_invocation_request_event_handler.py +0 -0
  264. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/handlers/tool_result_event_handler.py +0 -0
  265. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/__init__.py +0 -0
  266. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/base_phase_hook.py +0 -0
  267. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/hook_definition.py +0 -0
  268. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/hook_meta.py +0 -0
  269. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/hooks/hook_registry.py +0 -0
  270. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/__init__.py +0 -0
  271. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/base_user_input_processor.py +0 -0
  272. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/processor_definition.py +0 -0
  273. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/processor_meta.py +0 -0
  274. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/input_processor/processor_registry.py +0 -0
  275. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/__init__.py +0 -0
  276. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/base_processor.py +0 -0
  277. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/processor_definition.py +0 -0
  278. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/processor_meta.py +0 -0
  279. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/processor_registry.py +0 -0
  280. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py +0 -0
  281. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/inter_agent_message.py +0 -0
  282. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/message/inter_agent_message_type.py +0 -0
  283. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/__init__.py +0 -0
  284. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/discover.py +0 -0
  285. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/manager.py +0 -0
  286. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/phase_enum.py +0 -0
  287. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/transition_decorator.py +0 -0
  288. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/phases/transition_info.py +0 -0
  289. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/remote_agent.py +0 -0
  290. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/__init__.py +0 -0
  291. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/agent_thread_pool_manager.py +0 -0
  292. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/runtime/agent_worker.py +0 -0
  293. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/__init__.py +0 -0
  294. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/agent_shutdown_orchestrator.py +0 -0
  295. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/base_shutdown_step.py +0 -0
  296. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/llm_instance_cleanup_step.py +0 -0
  297. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/shutdown_steps/mcp_server_cleanup_step.py +0 -0
  298. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/__init__.py +0 -0
  299. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/streaming/queue_streamer.py +0 -0
  300. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/__init__.py +0 -0
  301. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/base_processor.py +0 -0
  302. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/processor_definition.py +0 -0
  303. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/processor_meta.py +0 -0
  304. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/system_prompt_processor/processor_registry.py +0 -0
  305. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/__init__.py +0 -0
  306. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/base_processor.py +0 -0
  307. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/processor_definition.py +0 -0
  308. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/processor_meta.py +0 -0
  309. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/tool_execution_result_processor/processor_registry.py +0 -0
  310. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/utils/__init__.py +0 -0
  311. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/utils/wait_for_idle.py +0 -0
  312. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/__init__.py +0 -0
  313. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/base_workspace.py +0 -0
  314. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_config.py +0 -0
  315. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_definition.py +0 -0
  316. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_meta.py +0 -0
  317. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/agent/workspace/workspace_registry.py +0 -0
  318. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/check_requirements.py +0 -0
  319. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/__init__.py +0 -0
  320. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/agent_cli.py +0 -0
  321. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/cli_display.py +0 -0
  322. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/__init__.py +0 -0
  323. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/app.py +0 -0
  324. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/state.py +0 -0
  325. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/__init__.py +0 -0
  326. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/agent_list_sidebar.py +0 -0
  327. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/focus_pane.py +0 -0
  328. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/logo.py +0 -0
  329. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/renderables.py +0 -0
  330. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/shared.py +0 -0
  331. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/cli/workflow_tui/widgets/status_bar.py +0 -0
  332. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/__init__.py +0 -0
  333. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/event_emitter.py +0 -0
  334. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/events/event_manager.py +0 -0
  335. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/__init__.py +0 -0
  336. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/__init__.py +0 -0
  337. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/deepseek_llm.py +0 -0
  338. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/grok_llm.py +0 -0
  339. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/kimi_llm.py +0 -0
  340. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/api/openai_llm.py +0 -0
  341. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/__init__.py +0 -0
  342. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/extensions/extension_registry.py +0 -0
  343. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/__init__.py +0 -0
  344. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/base_token_counter.py +0 -0
  345. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/claude_token_counter.py +0 -0
  346. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/deepseek_token_counter.py +0 -0
  347. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/kimi_token_counter.py +0 -0
  348. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/mistral_token_counter.py +0 -0
  349. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/token_counter/openai_token_counter.py +0 -0
  350. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/__init__.py +0 -0
  351. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/rate_limiter.py +0 -0
  352. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/token_pricing_config.py +0 -0
  353. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/llm/utils/token_usage_tracker.py +0 -0
  354. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/__init__.py +0 -0
  355. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/examples/__init__.py +0 -0
  356. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/examples/sample_persons.py +0 -0
  357. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/examples/sample_roles.py +0 -0
  358. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/person.py +0 -0
  359. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/person/role.py +0 -0
  360. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/prompt/__init__.py +0 -0
  361. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/prompt/prompt_builder.py +0 -0
  362. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/prompt/prompt_template.py +0 -0
  363. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/__init__.py +0 -0
  364. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/__init__.py +0 -0
  365. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/abstract_client_connection.py +0 -0
  366. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/client_connection_manager.py +0 -0
  367. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/sse_client_connection.py +0 -0
  368. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/client/stdio_client_connection.py +0 -0
  369. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/config/__init__.py +0 -0
  370. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/config/agent_server_config.py +0 -0
  371. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/config/agent_server_registry.py +0 -0
  372. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/hosting.py +0 -0
  373. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/protocol.py +0 -0
  374. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/__init__.py +0 -0
  375. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/agent_server_endpoint.py +0 -0
  376. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/base_method_handler.py +0 -0
  377. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/method_handlers.py +0 -0
  378. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/sse_server_handler.py +0 -0
  379. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server/stdio_server_handler.py +0 -0
  380. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/server_main.py +0 -0
  381. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/rpc/transport_type.py +0 -0
  382. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/ask_user_input.py +0 -0
  383. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/base_tool.py +0 -0
  384. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/bash/__init__.py +0 -0
  385. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/__init__.py +0 -0
  386. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/__init__.py +0 -0
  387. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_navigate_to.py +0 -0
  388. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_tool.py +0 -0
  389. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_web_element_trigger.py +0 -0
  390. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_reader.py +0 -0
  391. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_screenshot_taker.py +0 -0
  392. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/__init__.py +0 -0
  393. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_web_element_trigger_factory.py +0 -0
  394. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_reader_factory.py +0 -0
  395. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_screenshot_taker_factory.py +0 -0
  396. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/shared_browser_session.py +0 -0
  397. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/shared_browser_session_manager.py +0 -0
  398. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/session_aware/web_element_action.py +0 -0
  399. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/__init__.py +0 -0
  400. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/__init__.py +0 -0
  401. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/google_search_factory.py +0 -0
  402. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/webpage_reader_factory.py +0 -0
  403. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/factory/webpage_screenshot_taker_factory.py +0 -0
  404. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/google_search_ui.py +0 -0
  405. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/navigate_to.py +0 -0
  406. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/web_page_pdf_generator.py +0 -0
  407. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/webpage_image_downloader.py +0 -0
  408. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/webpage_reader.py +0 -0
  409. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/browser/standalone/webpage_screenshot_taker.py +0 -0
  410. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/factory/__init__.py +0 -0
  411. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/factory/tool_factory.py +0 -0
  412. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/file/__init__.py +0 -0
  413. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/file/file_reader.py +0 -0
  414. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/file/file_writer.py +0 -0
  415. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/functional_tool.py +0 -0
  416. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/handlers/__init__.py +0 -0
  417. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/handlers/shell_handler.py +0 -0
  418. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/image_downloader.py +0 -0
  419. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/__init__.py +0 -0
  420. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/factory.py +0 -0
  421. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/schema_mapper.py +0 -0
  422. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/__init__.py +0 -0
  423. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/base_managed_mcp_server.py +0 -0
  424. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/server/proxy.py +0 -0
  425. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/tool.py +0 -0
  426. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/mcp/types.py +0 -0
  427. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/__init__.py +0 -0
  428. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/file_operation.py +0 -0
  429. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/file_rename_operation.py +0 -0
  430. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/operation.py +0 -0
  431. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/operation/shell_operation.py +0 -0
  432. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/pdf_downloader.py +0 -0
  433. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/registry/__init__.py +0 -0
  434. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/registry/tool_registry.py +0 -0
  435. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/timer.py +0 -0
  436. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_config.py +0 -0
  437. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_meta.py +0 -0
  438. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_origin.py +0 -0
  439. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/tool_state.py +0 -0
  440. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/__init__.py +0 -0
  441. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/__init__.py +0 -0
  442. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/anthropic_json_example_formatter.py +0 -0
  443. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/anthropic_json_schema_formatter.py +0 -0
  444. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/base_formatter.py +0 -0
  445. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/default_json_schema_formatter.py +0 -0
  446. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/default_xml_schema_formatter.py +0 -0
  447. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/gemini_json_schema_formatter.py +0 -0
  448. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/google_json_schema_formatter.py +0 -0
  449. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/formatters/openai_json_schema_formatter.py +0 -0
  450. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/__init__.py +0 -0
  451. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/_json_extractor.py +0 -0
  452. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/anthropic_xml_tool_usage_parser.py +0 -0
  453. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/base_parser.py +0 -0
  454. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/default_json_tool_usage_parser.py +0 -0
  455. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py +0 -0
  456. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/exceptions.py +0 -0
  457. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/usage/parsers/openai_json_tool_usage_parser.py +0 -0
  458. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/tools/utils.py +0 -0
  459. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/__init__.py +0 -0
  460. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/dynamic_enum.py +0 -0
  461. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/file_utils.py +0 -0
  462. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/html_cleaner.py +0 -0
  463. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/utils/singleton.py +0 -0
  464. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/__init__.py +0 -0
  465. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/agentic_workflow.py +0 -0
  466. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/base_agentic_workflow.py +0 -0
  467. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/__init__.py +0 -0
  468. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/agent_tool_injection_step.py +0 -0
  469. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/base_workflow_bootstrap_step.py +0 -0
  470. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/coordinator_initialization_step.py +0 -0
  471. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/coordinator_prompt_preparation_step.py +0 -0
  472. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/workflow_bootstrapper.py +0 -0
  473. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/bootstrap_steps/workflow_runtime_queue_initialization_step.py +0 -0
  474. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/__init__.py +0 -0
  475. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/team_manager.py +0 -0
  476. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_config.py +0 -0
  477. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_context.py +0 -0
  478. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_node_config.py +0 -0
  479. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/context/workflow_runtime_state.py +0 -0
  480. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/__init__.py +0 -0
  481. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/workflow_event_dispatcher.py +0 -0
  482. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/workflow_events.py +0 -0
  483. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/events/workflow_input_event_queue_manager.py +0 -0
  484. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/exceptions.py +0 -0
  485. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/factory/__init__.py +0 -0
  486. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/factory/workflow_factory.py +0 -0
  487. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/__init__.py +0 -0
  488. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/base_workflow_event_handler.py +0 -0
  489. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/inter_agent_message_request_event_handler.py +0 -0
  490. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/lifecycle_workflow_event_handler.py +0 -0
  491. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/process_user_message_event_handler.py +0 -0
  492. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/tool_approval_workflow_event_handler.py +0 -0
  493. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/handlers/workflow_event_handler_registry.py +0 -0
  494. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/phases/__init__.py +0 -0
  495. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/phases/workflow_operational_phase.py +0 -0
  496. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/phases/workflow_phase_manager.py +0 -0
  497. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/runtime/__init__.py +0 -0
  498. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/runtime/workflow_runtime.py +0 -0
  499. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/runtime/workflow_worker.py +0 -0
  500. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/__init__.py +0 -0
  501. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/agent_team_shutdown_step.py +0 -0
  502. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/base_workflow_shutdown_step.py +0 -0
  503. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/bridge_cleanup_step.py +0 -0
  504. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/sub_workflow_shutdown_step.py +0 -0
  505. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/shutdown_steps/workflow_shutdown_orchestrator.py +0 -0
  506. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/__init__.py +0 -0
  507. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/agent_event_bridge.py +0 -0
  508. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/agent_event_multiplexer.py +0 -0
  509. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_event_bridge.py +0 -0
  510. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_event_notifier.py +0 -0
  511. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_event_stream.py +0 -0
  512. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_stream_event_payloads.py +0 -0
  513. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/streaming/workflow_stream_events.py +0 -0
  514. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/utils/__init__.py +0 -0
  515. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/utils/wait_for_idle.py +0 -0
  516. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus/workflow/workflow_builder.py +0 -0
  517. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/dependency_links.txt +0 -0
  518. {autobyteus-1.1.4 → autobyteus-1.1.6}/autobyteus.egg-info/top_level.txt +0 -0
  519. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/__init__.py +0 -0
  520. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/discover_phase_transitions.py +0 -0
  521. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_mcp_browser_client.py +0 -0
  522. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_mcp_google_slides_client.py +0 -0
  523. {autobyteus-1.1.4 → autobyteus-1.1.6}/examples/run_mcp_list_tools.py +0 -0
  524. {autobyteus-1.1.4 → autobyteus-1.1.6}/pyproject.toml +0 -0
  525. {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.4
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==0.37.1
19
- Requires-Dist: autobyteus-llm-client==1.1.1
20
- Requires-Dist: beautifulsoup4>=4.12.2
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.8
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]==1.9.1
29
- Requires-Dist: mistral_common==1.6.3
28
+ Requires-Dist: mcp[cli]
29
+ Requires-Dist: mistral_common
30
30
  Requires-Dist: mistralai
31
- Requires-Dist: mistralai==1.5.2
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==0.7.0
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 = True,
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: Whether to use XML for tool descriptions and examples.
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 = {
@@ -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 respond or act accordingly."
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. This LLM 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
- any_processor_took_action = True # Mark as handled to prevent printing raw response
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
- if not any_processor_took_action:
122
- if is_error_response:
123
- logger.info(
124
- f"Agent '{agent_id}' emitting a received error message as a complete response: '{complete_response_text[:100]}...'"
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
- logger.info(
127
+ log_message = (
128
128
  f"Agent '{agent_id}': No LLMResponseProcessor handled the response. "
129
- f"Emitting the current LLM response as a complete response for this leg."
129
+ f"Emitting the full LLM response as a final answer and completion signal."
130
130
  )
131
-
132
- if notifier:
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.")
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)
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 and chunk_response.usage:
76
- token_usage = chunk_response.usage
77
- logger.debug(f"Agent '{agent_id}' received final chunk with token usage: {token_usage}")
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
+
@@ -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.llm.user_message import LLMUserMessage
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 (provided as instances) to the AgentInputUserMessage,
21
- then converting the processed message into an LLMUserMessage, and finally
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
- processed_agent_input_user_msg: AgentInputUserMessage = original_agent_input_user_msg
37
-
38
- logger.info(f"Agent '{context.agent_id}' handling UserMessageReceivedEvent: '{original_agent_input_user_msg.content}'")
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
- llm_user_message = LLMUserMessage(
70
- content=processed_agent_input_user_msg.content,
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"Image URLs: {self.image_urls}, Num ContextFiles: {num_context_files}, "
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"{images_repr}{context_repr}{meta_repr})")
86
+ f"{context_repr}{meta_repr})")