autobyteus 1.1.9__tar.gz → 1.2.0__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 (505) hide show
  1. {autobyteus-1.1.9 → autobyteus-1.2.0}/PKG-INFO +3 -2
  2. autobyteus-1.2.0/autobyteus/clients/__init__.py +10 -0
  3. autobyteus-1.2.0/autobyteus/clients/autobyteus_client.py +318 -0
  4. autobyteus-1.2.0/autobyteus/clients/cert_utils.py +105 -0
  5. autobyteus-1.2.0/autobyteus/clients/certificates/cert.pem +34 -0
  6. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/autobyteus_llm.py +1 -1
  7. autobyteus-1.2.0/autobyteus/llm/api/zhipu_llm.py +26 -0
  8. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/autobyteus_provider.py +1 -1
  9. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/llm_factory.py +23 -0
  10. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/ollama_provider_resolver.py +1 -0
  11. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/providers.py +1 -0
  12. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/token_counter_factory.py +3 -0
  13. autobyteus-1.2.0/autobyteus/llm/token_counter/zhipu_token_counter.py +24 -0
  14. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/api/autobyteus_audio_client.py +1 -1
  15. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/autobyteus_audio_provider.py +1 -1
  16. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/api/autobyteus_image_client.py +1 -1
  17. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/autobyteus_image_provider.py +1 -1
  18. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/__init__.py +2 -1
  19. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/schemas/task_definition.py +1 -1
  20. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/schemas/task_status_report.py +1 -1
  21. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/tools/__init__.py +2 -0
  22. autobyteus-1.2.0/autobyteus/task_management/tools/assign_task_to.py +125 -0
  23. autobyteus-1.2.0/autobyteus/tools/__init__.py +118 -0
  24. autobyteus-1.2.0/autobyteus/tools/download_media_tool.py +136 -0
  25. autobyteus-1.2.0/autobyteus/tools/file/file_editor.py +200 -0
  26. autobyteus-1.2.0/autobyteus/tools/usage/parsers/_string_decoders.py +18 -0
  27. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/default_json_tool_usage_parser.py +9 -1
  28. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py +15 -1
  29. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/gemini_json_tool_usage_parser.py +4 -1
  30. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/openai_json_tool_usage_parser.py +4 -1
  31. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus.egg-info/PKG-INFO +3 -2
  32. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus.egg-info/SOURCES.txt +10 -2
  33. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus.egg-info/requires.txt +2 -1
  34. {autobyteus-1.1.9 → autobyteus-1.2.0}/setup.py +4 -3
  35. autobyteus-1.1.9/autobyteus/tools/__init__.py +0 -82
  36. autobyteus-1.1.9/autobyteus/tools/image_downloader.py +0 -99
  37. autobyteus-1.1.9/autobyteus/tools/pdf_downloader.py +0 -89
  38. {autobyteus-1.1.9 → autobyteus-1.2.0}/LICENSE +0 -0
  39. {autobyteus-1.1.9 → autobyteus-1.2.0}/README.md +0 -0
  40. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/__init__.py +0 -0
  41. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/__init__.py +0 -0
  42. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/agent.py +0 -0
  43. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/bootstrap_steps/__init__.py +0 -0
  44. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/bootstrap_steps/agent_bootstrapper.py +0 -0
  45. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/bootstrap_steps/agent_runtime_queue_initialization_step.py +0 -0
  46. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/bootstrap_steps/base_bootstrap_step.py +0 -0
  47. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/bootstrap_steps/mcp_server_prewarming_step.py +0 -0
  48. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/bootstrap_steps/system_prompt_processing_step.py +0 -0
  49. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/bootstrap_steps/workspace_context_initialization_step.py +0 -0
  50. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/context/__init__.py +0 -0
  51. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/context/agent_config.py +0 -0
  52. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/context/agent_context.py +0 -0
  53. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/context/agent_context_registry.py +0 -0
  54. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/context/agent_runtime_state.py +0 -0
  55. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/events/__init__.py +0 -0
  56. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/events/agent_events.py +0 -0
  57. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/events/agent_input_event_queue_manager.py +0 -0
  58. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/events/notifiers.py +0 -0
  59. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/events/worker_event_dispatcher.py +0 -0
  60. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/exceptions.py +0 -0
  61. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/factory/__init__.py +0 -0
  62. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/factory/agent_factory.py +0 -0
  63. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/__init__.py +0 -0
  64. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/approved_tool_invocation_event_handler.py +0 -0
  65. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/base_event_handler.py +0 -0
  66. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/event_handler_registry.py +0 -0
  67. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/generic_event_handler.py +0 -0
  68. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/inter_agent_message_event_handler.py +0 -0
  69. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/lifecycle_event_logger.py +0 -0
  70. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/llm_complete_response_received_event_handler.py +0 -0
  71. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/llm_user_message_ready_event_handler.py +0 -0
  72. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/tool_execution_approval_event_handler.py +0 -0
  73. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/tool_invocation_request_event_handler.py +0 -0
  74. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/tool_result_event_handler.py +0 -0
  75. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/handlers/user_input_message_event_handler.py +0 -0
  76. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/hooks/__init__.py +0 -0
  77. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/hooks/base_phase_hook.py +0 -0
  78. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/hooks/hook_definition.py +0 -0
  79. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/hooks/hook_meta.py +0 -0
  80. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/hooks/hook_registry.py +0 -0
  81. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/input_processor/__init__.py +0 -0
  82. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/input_processor/base_user_input_processor.py +0 -0
  83. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/input_processor/processor_definition.py +0 -0
  84. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/input_processor/processor_meta.py +0 -0
  85. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/input_processor/processor_registry.py +0 -0
  86. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/llm_response_processor/__init__.py +0 -0
  87. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/llm_response_processor/base_processor.py +0 -0
  88. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/llm_response_processor/processor_definition.py +0 -0
  89. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/llm_response_processor/processor_meta.py +0 -0
  90. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/llm_response_processor/processor_registry.py +0 -0
  91. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py +0 -0
  92. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/__init__.py +0 -0
  93. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/agent_input_user_message.py +0 -0
  94. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/context_file.py +0 -0
  95. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/context_file_type.py +0 -0
  96. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/inter_agent_message.py +0 -0
  97. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/inter_agent_message_type.py +0 -0
  98. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/multimodal_message_builder.py +0 -0
  99. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/message/send_message_to.py +0 -0
  100. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/phases/__init__.py +0 -0
  101. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/phases/discover.py +0 -0
  102. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/phases/manager.py +0 -0
  103. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/phases/phase_enum.py +0 -0
  104. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/phases/transition_decorator.py +0 -0
  105. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/phases/transition_info.py +0 -0
  106. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/processor_option.py +0 -0
  107. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/remote_agent.py +0 -0
  108. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/runtime/__init__.py +0 -0
  109. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/runtime/agent_runtime.py +0 -0
  110. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/runtime/agent_thread_pool_manager.py +0 -0
  111. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/runtime/agent_worker.py +0 -0
  112. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/sender_type.py +0 -0
  113. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/shutdown_steps/__init__.py +0 -0
  114. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/shutdown_steps/agent_shutdown_orchestrator.py +0 -0
  115. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/shutdown_steps/base_shutdown_step.py +0 -0
  116. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/shutdown_steps/llm_instance_cleanup_step.py +0 -0
  117. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/shutdown_steps/mcp_server_cleanup_step.py +0 -0
  118. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/streaming/__init__.py +0 -0
  119. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/streaming/agent_event_stream.py +0 -0
  120. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/streaming/queue_streamer.py +0 -0
  121. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/streaming/stream_event_payloads.py +0 -0
  122. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/streaming/stream_events.py +0 -0
  123. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/system_prompt_processor/__init__.py +0 -0
  124. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/system_prompt_processor/base_processor.py +0 -0
  125. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/system_prompt_processor/processor_definition.py +0 -0
  126. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/system_prompt_processor/processor_meta.py +0 -0
  127. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/system_prompt_processor/processor_registry.py +0 -0
  128. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/system_prompt_processor/tool_manifest_injector_processor.py +0 -0
  129. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/tool_execution_result_processor/__init__.py +0 -0
  130. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/tool_execution_result_processor/base_processor.py +0 -0
  131. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/tool_execution_result_processor/processor_definition.py +0 -0
  132. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/tool_execution_result_processor/processor_meta.py +0 -0
  133. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/tool_execution_result_processor/processor_registry.py +0 -0
  134. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/tool_invocation.py +0 -0
  135. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/utils/__init__.py +0 -0
  136. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/utils/wait_for_idle.py +0 -0
  137. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/workspace/__init__.py +0 -0
  138. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/workspace/base_workspace.py +0 -0
  139. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/workspace/workspace_config.py +0 -0
  140. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/workspace/workspace_definition.py +0 -0
  141. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/workspace/workspace_meta.py +0 -0
  142. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent/workspace/workspace_registry.py +0 -0
  143. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/__init__.py +0 -0
  144. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/agent_team.py +0 -0
  145. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/agent_team_builder.py +0 -0
  146. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/base_agent_team.py +0 -0
  147. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/__init__.py +0 -0
  148. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/agent_configuration_preparation_step.py +0 -0
  149. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/agent_team_bootstrapper.py +0 -0
  150. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/agent_team_runtime_queue_initialization_step.py +0 -0
  151. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/base_agent_team_bootstrap_step.py +0 -0
  152. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/coordinator_initialization_step.py +0 -0
  153. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/coordinator_prompt_preparation_step.py +0 -0
  154. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/task_notifier_initialization_step.py +0 -0
  155. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/bootstrap_steps/team_context_initialization_step.py +0 -0
  156. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/context/__init__.py +0 -0
  157. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/context/agent_team_config.py +0 -0
  158. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/context/agent_team_context.py +0 -0
  159. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/context/agent_team_runtime_state.py +0 -0
  160. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/context/team_manager.py +0 -0
  161. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/context/team_node_config.py +0 -0
  162. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/events/__init__.py +0 -0
  163. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/events/agent_team_event_dispatcher.py +0 -0
  164. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/events/agent_team_events.py +0 -0
  165. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/events/agent_team_input_event_queue_manager.py +0 -0
  166. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/exceptions.py +0 -0
  167. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/factory/__init__.py +0 -0
  168. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/factory/agent_team_factory.py +0 -0
  169. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/handlers/__init__.py +0 -0
  170. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/handlers/agent_team_event_handler_registry.py +0 -0
  171. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/handlers/base_agent_team_event_handler.py +0 -0
  172. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/handlers/inter_agent_message_request_event_handler.py +0 -0
  173. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/handlers/lifecycle_agent_team_event_handler.py +0 -0
  174. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/handlers/process_user_message_event_handler.py +0 -0
  175. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/handlers/tool_approval_team_event_handler.py +0 -0
  176. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/phases/__init__.py +0 -0
  177. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/phases/agent_team_operational_phase.py +0 -0
  178. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/phases/agent_team_phase_manager.py +0 -0
  179. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/runtime/__init__.py +0 -0
  180. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/runtime/agent_team_runtime.py +0 -0
  181. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/runtime/agent_team_worker.py +0 -0
  182. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/shutdown_steps/__init__.py +0 -0
  183. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_orchestrator.py +0 -0
  184. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/shutdown_steps/agent_team_shutdown_step.py +0 -0
  185. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/shutdown_steps/base_agent_team_shutdown_step.py +0 -0
  186. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/shutdown_steps/bridge_cleanup_step.py +0 -0
  187. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/shutdown_steps/sub_team_shutdown_step.py +0 -0
  188. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/__init__.py +0 -0
  189. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/agent_event_bridge.py +0 -0
  190. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/agent_event_multiplexer.py +0 -0
  191. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/agent_team_event_notifier.py +0 -0
  192. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/agent_team_event_stream.py +0 -0
  193. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/agent_team_stream_event_payloads.py +0 -0
  194. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/agent_team_stream_events.py +0 -0
  195. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/streaming/team_event_bridge.py +0 -0
  196. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/task_notification/__init__.py +0 -0
  197. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/task_notification/activation_policy.py +0 -0
  198. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/task_notification/system_event_driven_agent_task_notifier.py +0 -0
  199. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/task_notification/task_activator.py +0 -0
  200. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/task_notification/task_notification_mode.py +0 -0
  201. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/utils/__init__.py +0 -0
  202. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/agent_team/utils/wait_for_idle.py +0 -0
  203. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/check_requirements.py +0 -0
  204. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/__init__.py +0 -0
  205. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_cli.py +0 -0
  206. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/__init__.py +0 -0
  207. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/app.py +0 -0
  208. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/state.py +0 -0
  209. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/__init__.py +0 -0
  210. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/agent_list_sidebar.py +0 -0
  211. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/focus_pane.py +0 -0
  212. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/logo.py +0 -0
  213. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/renderables.py +0 -0
  214. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/shared.py +0 -0
  215. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/status_bar.py +0 -0
  216. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/agent_team_tui/widgets/task_board_panel.py +0 -0
  217. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/cli_display.py +0 -0
  218. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/__init__.py +0 -0
  219. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/app.py +0 -0
  220. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/state.py +0 -0
  221. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/widgets/__init__.py +0 -0
  222. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/widgets/agent_list_sidebar.py +0 -0
  223. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/widgets/focus_pane.py +0 -0
  224. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/widgets/logo.py +0 -0
  225. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/widgets/renderables.py +0 -0
  226. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/widgets/shared.py +0 -0
  227. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/cli/workflow_tui/widgets/status_bar.py +0 -0
  228. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/events/__init__.py +0 -0
  229. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/events/event_emitter.py +0 -0
  230. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/events/event_manager.py +0 -0
  231. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/events/event_types.py +0 -0
  232. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/__init__.py +0 -0
  233. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/__init__.py +0 -0
  234. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/bedrock_llm.py +0 -0
  235. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/claude_llm.py +0 -0
  236. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/deepseek_llm.py +0 -0
  237. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/gemini_llm.py +0 -0
  238. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/grok_llm.py +0 -0
  239. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/groq_llm.py +0 -0
  240. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/kimi_llm.py +0 -0
  241. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/lmstudio_llm.py +0 -0
  242. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/mistral_llm.py +0 -0
  243. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/nvidia_llm.py +0 -0
  244. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/ollama_llm.py +0 -0
  245. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/openai_compatible_llm.py +0 -0
  246. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/openai_llm.py +0 -0
  247. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/api/qwen_llm.py +0 -0
  248. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/base_llm.py +0 -0
  249. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/extensions/__init__.py +0 -0
  250. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/extensions/base_extension.py +0 -0
  251. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/extensions/extension_registry.py +0 -0
  252. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/extensions/token_usage_tracking_extension.py +0 -0
  253. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/lmstudio_provider.py +0 -0
  254. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/models.py +0 -0
  255. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/ollama_provider.py +0 -0
  256. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/runtimes.py +0 -0
  257. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/__init__.py +0 -0
  258. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/base_token_counter.py +0 -0
  259. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/claude_token_counter.py +0 -0
  260. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/deepseek_token_counter.py +0 -0
  261. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/kimi_token_counter.py +0 -0
  262. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/mistral_token_counter.py +0 -0
  263. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/token_counter/openai_token_counter.py +0 -0
  264. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/user_message.py +0 -0
  265. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/__init__.py +0 -0
  266. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/llm_config.py +0 -0
  267. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/media_payload_formatter.py +0 -0
  268. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/messages.py +0 -0
  269. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/rate_limiter.py +0 -0
  270. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/response_types.py +0 -0
  271. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/token_pricing_config.py +0 -0
  272. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/token_usage.py +0 -0
  273. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/llm/utils/token_usage_tracker.py +0 -0
  274. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/__init__.py +0 -0
  275. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/__init__.py +0 -0
  276. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/api/__init__.py +0 -0
  277. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/api/gemini_audio_client.py +0 -0
  278. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/audio_client_factory.py +0 -0
  279. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/audio_model.py +0 -0
  280. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/audio/base_audio_client.py +0 -0
  281. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/__init__.py +0 -0
  282. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/api/__init__.py +0 -0
  283. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/api/gemini_image_client.py +0 -0
  284. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/api/openai_image_client.py +0 -0
  285. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/base_image_client.py +0 -0
  286. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/image_client_factory.py +0 -0
  287. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/image/image_model.py +0 -0
  288. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/providers.py +0 -0
  289. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/runtimes.py +0 -0
  290. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/utils/__init__.py +0 -0
  291. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/utils/api_utils.py +0 -0
  292. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/utils/multimedia_config.py +0 -0
  293. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/multimedia/utils/response_types.py +0 -0
  294. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/person/__init__.py +0 -0
  295. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/person/examples/__init__.py +0 -0
  296. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/person/examples/sample_persons.py +0 -0
  297. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/person/examples/sample_roles.py +0 -0
  298. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/person/person.py +0 -0
  299. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/person/role.py +0 -0
  300. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/prompt/__init__.py +0 -0
  301. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/prompt/prompt_builder.py +0 -0
  302. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/prompt/prompt_template.py +0 -0
  303. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/__init__.py +0 -0
  304. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/client/__init__.py +0 -0
  305. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/client/abstract_client_connection.py +0 -0
  306. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/client/client_connection_manager.py +0 -0
  307. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/client/sse_client_connection.py +0 -0
  308. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/client/stdio_client_connection.py +0 -0
  309. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/config/__init__.py +0 -0
  310. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/config/agent_server_config.py +0 -0
  311. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/config/agent_server_registry.py +0 -0
  312. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/hosting.py +0 -0
  313. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/protocol.py +0 -0
  314. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/server/__init__.py +0 -0
  315. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/server/agent_server_endpoint.py +0 -0
  316. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/server/base_method_handler.py +0 -0
  317. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/server/method_handlers.py +0 -0
  318. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/server/sse_server_handler.py +0 -0
  319. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/server/stdio_server_handler.py +0 -0
  320. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/server_main.py +0 -0
  321. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/rpc/transport_type.py +0 -0
  322. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/base_task_board.py +0 -0
  323. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/converters/__init__.py +0 -0
  324. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/converters/task_board_converter.py +0 -0
  325. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/deliverable.py +0 -0
  326. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/deliverables/__init__.py +0 -0
  327. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/deliverables/file_deliverable.py +0 -0
  328. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/events.py +0 -0
  329. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/in_memory_task_board.py +0 -0
  330. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/schemas/__init__.py +0 -0
  331. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/schemas/deliverable_schema.py +0 -0
  332. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/task.py +0 -0
  333. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/tools/get_my_tasks.py +0 -0
  334. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/tools/get_task_board_status.py +0 -0
  335. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/tools/publish_task.py +0 -0
  336. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/tools/publish_tasks.py +0 -0
  337. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/task_management/tools/update_task_status.py +0 -0
  338. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/base_tool.py +0 -0
  339. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/bash/__init__.py +0 -0
  340. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/bash/bash_executor.py +0 -0
  341. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/__init__.py +0 -0
  342. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/__init__.py +0 -0
  343. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/browser_session_aware_navigate_to.py +0 -0
  344. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/browser_session_aware_tool.py +0 -0
  345. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/browser_session_aware_web_element_trigger.py +0 -0
  346. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_reader.py +0 -0
  347. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/browser_session_aware_webpage_screenshot_taker.py +0 -0
  348. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/factory/__init__.py +0 -0
  349. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_web_element_trigger_factory.py +0 -0
  350. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_reader_factory.py +0 -0
  351. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_screenshot_taker_factory.py +0 -0
  352. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/shared_browser_session.py +0 -0
  353. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/shared_browser_session_manager.py +0 -0
  354. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/session_aware/web_element_action.py +0 -0
  355. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/__init__.py +0 -0
  356. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/factory/__init__.py +0 -0
  357. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/factory/webpage_reader_factory.py +0 -0
  358. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/factory/webpage_screenshot_taker_factory.py +0 -0
  359. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/navigate_to.py +0 -0
  360. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/web_page_pdf_generator.py +0 -0
  361. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/webpage_image_downloader.py +0 -0
  362. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/webpage_reader.py +0 -0
  363. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/browser/standalone/webpage_screenshot_taker.py +0 -0
  364. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/factory/__init__.py +0 -0
  365. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/factory/tool_factory.py +0 -0
  366. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/file/__init__.py +0 -0
  367. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/file/file_reader.py +0 -0
  368. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/file/file_writer.py +0 -0
  369. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/functional_tool.py +0 -0
  370. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/google_search.py +0 -0
  371. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/handlers/__init__.py +0 -0
  372. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/handlers/shell_handler.py +0 -0
  373. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/__init__.py +0 -0
  374. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/config_service.py +0 -0
  375. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/factory.py +0 -0
  376. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/schema_mapper.py +0 -0
  377. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/server/__init__.py +0 -0
  378. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/server/base_managed_mcp_server.py +0 -0
  379. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/server/http_managed_mcp_server.py +0 -0
  380. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/server/proxy.py +0 -0
  381. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/server/stdio_managed_mcp_server.py +0 -0
  382. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/server_instance_manager.py +0 -0
  383. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/tool.py +0 -0
  384. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/tool_registrar.py +0 -0
  385. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/mcp/types.py +0 -0
  386. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/multimedia/__init__.py +0 -0
  387. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/multimedia/audio_tools.py +0 -0
  388. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/multimedia/image_tools.py +0 -0
  389. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/multimedia/media_reader_tool.py +0 -0
  390. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/operation/__init__.py +0 -0
  391. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/operation/file_operation.py +0 -0
  392. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/operation/file_rename_operation.py +0 -0
  393. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/operation/operation.py +0 -0
  394. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/operation/shell_operation.py +0 -0
  395. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/pydantic_schema_converter.py +0 -0
  396. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/registry/__init__.py +0 -0
  397. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/registry/tool_definition.py +0 -0
  398. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/registry/tool_registry.py +0 -0
  399. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/timer.py +0 -0
  400. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/tool_category.py +0 -0
  401. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/tool_config.py +0 -0
  402. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/tool_meta.py +0 -0
  403. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/tool_origin.py +0 -0
  404. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/tool_state.py +0 -0
  405. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/__init__.py +0 -0
  406. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/__init__.py +0 -0
  407. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/anthropic_json_example_formatter.py +0 -0
  408. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/anthropic_json_schema_formatter.py +0 -0
  409. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/base_formatter.py +0 -0
  410. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/default_json_example_formatter.py +0 -0
  411. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/default_json_schema_formatter.py +0 -0
  412. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/default_xml_example_formatter.py +0 -0
  413. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/default_xml_schema_formatter.py +0 -0
  414. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/gemini_json_example_formatter.py +0 -0
  415. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/gemini_json_schema_formatter.py +0 -0
  416. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/google_json_example_formatter.py +0 -0
  417. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/google_json_schema_formatter.py +0 -0
  418. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/openai_json_example_formatter.py +0 -0
  419. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/formatters/openai_json_schema_formatter.py +0 -0
  420. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/__init__.py +0 -0
  421. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/_json_extractor.py +0 -0
  422. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/anthropic_xml_tool_usage_parser.py +0 -0
  423. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/base_parser.py +0 -0
  424. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/exceptions.py +0 -0
  425. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/parsers/provider_aware_tool_usage_parser.py +0 -0
  426. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/providers/__init__.py +0 -0
  427. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/providers/tool_manifest_provider.py +0 -0
  428. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/registries/__init__.py +0 -0
  429. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/registries/tool_formatter_pair.py +0 -0
  430. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/registries/tool_formatting_registry.py +0 -0
  431. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/usage/registries/tool_usage_parser_registry.py +0 -0
  432. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/tools/utils.py +0 -0
  433. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/utils/__init__.py +0 -0
  434. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/utils/dynamic_enum.py +0 -0
  435. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/utils/file_utils.py +0 -0
  436. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/utils/html_cleaner.py +0 -0
  437. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/utils/parameter_schema.py +0 -0
  438. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/utils/singleton.py +0 -0
  439. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/__init__.py +0 -0
  440. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/agentic_workflow.py +0 -0
  441. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/base_agentic_workflow.py +0 -0
  442. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/bootstrap_steps/__init__.py +0 -0
  443. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/bootstrap_steps/agent_tool_injection_step.py +0 -0
  444. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/bootstrap_steps/base_workflow_bootstrap_step.py +0 -0
  445. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/bootstrap_steps/coordinator_initialization_step.py +0 -0
  446. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/bootstrap_steps/coordinator_prompt_preparation_step.py +0 -0
  447. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/bootstrap_steps/workflow_bootstrapper.py +0 -0
  448. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/bootstrap_steps/workflow_runtime_queue_initialization_step.py +0 -0
  449. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/context/__init__.py +0 -0
  450. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/context/team_manager.py +0 -0
  451. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/context/workflow_config.py +0 -0
  452. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/context/workflow_context.py +0 -0
  453. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/context/workflow_node_config.py +0 -0
  454. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/context/workflow_runtime_state.py +0 -0
  455. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/events/__init__.py +0 -0
  456. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/events/workflow_event_dispatcher.py +0 -0
  457. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/events/workflow_events.py +0 -0
  458. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/events/workflow_input_event_queue_manager.py +0 -0
  459. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/exceptions.py +0 -0
  460. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/factory/__init__.py +0 -0
  461. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/factory/workflow_factory.py +0 -0
  462. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/handlers/__init__.py +0 -0
  463. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/handlers/base_workflow_event_handler.py +0 -0
  464. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/handlers/inter_agent_message_request_event_handler.py +0 -0
  465. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/handlers/lifecycle_workflow_event_handler.py +0 -0
  466. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/handlers/process_user_message_event_handler.py +0 -0
  467. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/handlers/tool_approval_workflow_event_handler.py +0 -0
  468. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/handlers/workflow_event_handler_registry.py +0 -0
  469. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/phases/__init__.py +0 -0
  470. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/phases/workflow_operational_phase.py +0 -0
  471. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/phases/workflow_phase_manager.py +0 -0
  472. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/runtime/__init__.py +0 -0
  473. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/runtime/workflow_runtime.py +0 -0
  474. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/runtime/workflow_worker.py +0 -0
  475. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/shutdown_steps/__init__.py +0 -0
  476. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/shutdown_steps/agent_team_shutdown_step.py +0 -0
  477. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/shutdown_steps/base_workflow_shutdown_step.py +0 -0
  478. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/shutdown_steps/bridge_cleanup_step.py +0 -0
  479. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/shutdown_steps/sub_workflow_shutdown_step.py +0 -0
  480. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/shutdown_steps/workflow_shutdown_orchestrator.py +0 -0
  481. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/__init__.py +0 -0
  482. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/agent_event_bridge.py +0 -0
  483. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/agent_event_multiplexer.py +0 -0
  484. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/workflow_event_bridge.py +0 -0
  485. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/workflow_event_notifier.py +0 -0
  486. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/workflow_event_stream.py +0 -0
  487. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/workflow_stream_event_payloads.py +0 -0
  488. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/streaming/workflow_stream_events.py +0 -0
  489. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/utils/__init__.py +0 -0
  490. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/utils/wait_for_idle.py +0 -0
  491. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus/workflow/workflow_builder.py +0 -0
  492. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus.egg-info/dependency_links.txt +0 -0
  493. {autobyteus-1.1.9 → autobyteus-1.2.0}/autobyteus.egg-info/top_level.txt +0 -0
  494. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/__init__.py +0 -0
  495. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/agent_team/__init__.py +0 -0
  496. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/discover_phase_transitions.py +0 -0
  497. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/run_browser_agent.py +0 -0
  498. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/run_google_slides_agent.py +0 -0
  499. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/run_mcp_browser_client.py +0 -0
  500. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/run_mcp_google_slides_client.py +0 -0
  501. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/run_mcp_list_tools.py +0 -0
  502. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/run_poem_writer.py +0 -0
  503. {autobyteus-1.1.9 → autobyteus-1.2.0}/examples/run_sqlite_agent.py +0 -0
  504. {autobyteus-1.1.9 → autobyteus-1.2.0}/pyproject.toml +0 -0
  505. {autobyteus-1.1.9 → autobyteus-1.2.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autobyteus
3
- Version: 1.1.9
3
+ Version: 1.2.0
4
4
  Summary: Multi-Agent framework
5
5
  Home-page: https://github.com/AutoByteus/autobyteus
6
6
  Author: Ryan Zheng
@@ -16,14 +16,15 @@ Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Requires-Dist: aiohttp
18
18
  Requires-Dist: anthropic
19
- Requires-Dist: autobyteus-llm-client==1.1.3
20
19
  Requires-Dist: beautifulsoup4
21
20
  Requires-Dist: boto3
22
21
  Requires-Dist: botocore
23
22
  Requires-Dist: brui-core==1.0.9
24
23
  Requires-Dist: certifi==2025.4.26
24
+ Requires-Dist: cryptography
25
25
  Requires-Dist: google-api-python-client
26
26
  Requires-Dist: google-genai==1.38.0
27
+ Requires-Dist: httpx
27
28
  Requires-Dist: Jinja2
28
29
  Requires-Dist: mcp[cli]
29
30
  Requires-Dist: mistral_common
@@ -0,0 +1,10 @@
1
+ """
2
+ Client utilities for communicating with the Autobyteus LLM server.
3
+
4
+ Consolidates the previously standalone autobyteus-llm-client package so the
5
+ HTTP client can evolve alongside the rest of the framework.
6
+ """
7
+
8
+ from .autobyteus_client import AutobyteusClient, CertificateError
9
+
10
+ __all__ = ["AutobyteusClient", "CertificateError"]
@@ -0,0 +1,318 @@
1
+ import json
2
+ import logging
3
+ import os
4
+ from pathlib import Path
5
+ from typing import Any, AsyncGenerator, Dict, List, Optional, Union
6
+ from urllib.parse import urljoin
7
+
8
+ import httpx
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class CertificateError(Exception):
14
+ """Custom exception for certificate-related errors."""
15
+
16
+
17
+ class AutobyteusClient:
18
+ """Async + sync HTTP client for talking to an Autobyteus LLM server."""
19
+
20
+ DEFAULT_SERVER_URL = "https://api.autobyteus.com"
21
+ API_KEY_HEADER = "AUTOBYTEUS_API_KEY"
22
+ API_KEY_ENV_VAR = "AUTOBYTEUS_API_KEY"
23
+ SSL_CERT_FILE_ENV_VAR = "AUTOBYTEUS_SSL_CERT_FILE"
24
+
25
+ def __init__(self, server_url: Optional[str] = None):
26
+ """
27
+ Initialize the client.
28
+
29
+ Args:
30
+ server_url: Explicit server URL. Takes precedence over env vars.
31
+ """
32
+ self.server_url = server_url or os.getenv(
33
+ "AUTOBYTEUS_LLM_SERVER_URL", self.DEFAULT_SERVER_URL
34
+ )
35
+ self.api_key = os.getenv(self.API_KEY_ENV_VAR)
36
+
37
+ if not self.api_key:
38
+ raise ValueError(
39
+ f"{self.API_KEY_ENV_VAR} environment variable is required. "
40
+ "Please set it before initializing the client."
41
+ )
42
+
43
+ custom_cert_path_str = os.getenv(self.SSL_CERT_FILE_ENV_VAR)
44
+ verify_param: Union[str, bool, Path]
45
+
46
+ if custom_cert_path_str:
47
+ custom_cert_path = Path(custom_cert_path_str)
48
+ if not custom_cert_path.exists():
49
+ raise CertificateError(
50
+ f"Custom SSL certificate file specified via {self.SSL_CERT_FILE_ENV_VAR} "
51
+ f"not found at: {custom_cert_path}"
52
+ )
53
+ if not custom_cert_path.is_file():
54
+ raise CertificateError(
55
+ f"Custom SSL certificate path specified via {self.SSL_CERT_FILE_ENV_VAR} "
56
+ f"is not a file: {custom_cert_path}"
57
+ )
58
+ verify_param = str(custom_cert_path)
59
+ logger.info(
60
+ "Using custom SSL certificate file for TLS verification: %s. "
61
+ "This is the recommended secure method for servers with self-signed or "
62
+ "private CA certificates.",
63
+ verify_param,
64
+ )
65
+ else:
66
+ verify_param = False
67
+ logger.warning(
68
+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
69
+ "SECURITY WARNING: SSL certificate verification is DISABLED because the \n"
70
+ f"'{self.SSL_CERT_FILE_ENV_VAR}' environment variable is not set.\n"
71
+ "This configuration is INSECURE and makes the client vulnerable to \n"
72
+ "Man-in-the-Middle (MitM) attacks. It should ONLY be used for development \n"
73
+ "or testing in trusted environments with self-signed certificates if \n"
74
+ "providing the certificate path is not possible.\n"
75
+ "FOR PRODUCTION or secure environments with self-signed certificates, \n"
76
+ f"it is STRONGLY RECOMMENDED to set the '{self.SSL_CERT_FILE_ENV_VAR}' \n"
77
+ "environment variable to the path of the server's certificate (.pem file) \n"
78
+ "to enable proper TLS verification.\n"
79
+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
80
+ )
81
+
82
+ timeout_config = httpx.Timeout(connect=10.0, read=None, write=None, pool=None)
83
+
84
+ try:
85
+ self.async_client = httpx.AsyncClient(
86
+ verify=verify_param,
87
+ headers={self.API_KEY_HEADER: self.api_key},
88
+ timeout=timeout_config,
89
+ )
90
+ self.sync_client = httpx.Client(
91
+ verify=verify_param,
92
+ headers={self.API_KEY_HEADER: self.api_key},
93
+ timeout=timeout_config,
94
+ )
95
+ except Exception as exc:
96
+ logger.error(
97
+ "Failed to initialize httpx client with SSL configuration (verify='%s'): %s",
98
+ verify_param,
99
+ exc,
100
+ )
101
+ raise RuntimeError(f"HTTP client initialization failed: {exc}") from exc
102
+
103
+ logger.info("Initialized Autobyteus client with server URL: %s", self.server_url)
104
+
105
+ async def get_available_llm_models(self) -> Dict[str, Any]:
106
+ """Async discovery of available LLM models."""
107
+ try:
108
+ response = await self.async_client.get(
109
+ urljoin(self.server_url, "/models/llm")
110
+ )
111
+ response.raise_for_status()
112
+ return response.json()
113
+ except httpx.HTTPError as exc:
114
+ logger.error("Async LLM model fetch error: %s", exc)
115
+ raise RuntimeError(str(exc)) from exc
116
+
117
+ def get_available_llm_models_sync(self) -> Dict[str, Any]:
118
+ """Synchronous discovery of available LLM models."""
119
+ try:
120
+ response = self.sync_client.get(urljoin(self.server_url, "/models/llm"))
121
+ response.raise_for_status()
122
+ return response.json()
123
+ except httpx.HTTPError as exc:
124
+ logger.error("Sync LLM model fetch error: %s", exc)
125
+ raise RuntimeError(str(exc)) from exc
126
+
127
+ async def get_available_image_models(self) -> Dict[str, Any]:
128
+ """Async discovery of available image models."""
129
+ try:
130
+ response = await self.async_client.get(
131
+ urljoin(self.server_url, "/models/image")
132
+ )
133
+ response.raise_for_status()
134
+ return response.json()
135
+ except httpx.HTTPError as exc:
136
+ logger.error("Async image model fetch error: %s", exc)
137
+ raise RuntimeError(str(exc)) from exc
138
+
139
+ def get_available_image_models_sync(self) -> Dict[str, Any]:
140
+ """Synchronous discovery of available image models."""
141
+ try:
142
+ response = self.sync_client.get(
143
+ urljoin(self.server_url, "/models/image")
144
+ )
145
+ response.raise_for_status()
146
+ return response.json()
147
+ except httpx.HTTPError as exc:
148
+ logger.error("Sync image model fetch error: %s", exc)
149
+ raise RuntimeError(str(exc)) from exc
150
+
151
+ async def get_available_audio_models(self) -> Dict[str, Any]:
152
+ """Async discovery of available audio models."""
153
+ try:
154
+ response = await self.async_client.get(
155
+ urljoin(self.server_url, "/models/audio")
156
+ )
157
+ response.raise_for_status()
158
+ return response.json()
159
+ except httpx.HTTPError as exc:
160
+ logger.error("Async audio model fetch error: %s", exc)
161
+ raise RuntimeError(str(exc)) from exc
162
+
163
+ def get_available_audio_models_sync(self) -> Dict[str, Any]:
164
+ """Synchronous discovery of available audio models."""
165
+ try:
166
+ response = self.sync_client.get(
167
+ urljoin(self.server_url, "/models/audio")
168
+ )
169
+ response.raise_for_status()
170
+ return response.json()
171
+ except httpx.HTTPError as exc:
172
+ logger.error("Sync audio model fetch error: %s", exc)
173
+ raise RuntimeError(str(exc)) from exc
174
+
175
+ async def send_message(
176
+ self,
177
+ conversation_id: str,
178
+ model_name: str,
179
+ user_message: str,
180
+ image_urls: Optional[List[str]] = None,
181
+ audio_urls: Optional[List[str]] = None,
182
+ video_urls: Optional[List[str]] = None,
183
+ ) -> Dict[str, Any]:
184
+ """Send a message and get a response."""
185
+ try:
186
+ data = {
187
+ "conversation_id": conversation_id,
188
+ "model_name": model_name,
189
+ "user_message": user_message,
190
+ "image_urls": image_urls or [],
191
+ "audio_urls": audio_urls or [],
192
+ "video_urls": video_urls or [],
193
+ }
194
+ response = await self.async_client.post(
195
+ urljoin(self.server_url, "/send-message"),
196
+ json=data,
197
+ )
198
+ response.raise_for_status()
199
+ return response.json()
200
+ except httpx.HTTPError as exc:
201
+ logger.error("Error sending message: %s", exc)
202
+ raise RuntimeError(str(exc)) from exc
203
+
204
+ async def stream_message(
205
+ self,
206
+ conversation_id: str,
207
+ model_name: str,
208
+ user_message: str,
209
+ image_urls: Optional[List[str]] = None,
210
+ audio_urls: Optional[List[str]] = None,
211
+ video_urls: Optional[List[str]] = None,
212
+ ) -> AsyncGenerator[Dict[str, Any], None]:
213
+ """Stream a message and get responses."""
214
+ try:
215
+ data = {
216
+ "conversation_id": conversation_id,
217
+ "model_name": model_name,
218
+ "user_message": user_message,
219
+ "image_urls": image_urls or [],
220
+ "audio_urls": audio_urls or [],
221
+ "video_urls": video_urls or [],
222
+ }
223
+
224
+ async with self.async_client.stream(
225
+ "POST",
226
+ urljoin(self.server_url, "/stream-message"),
227
+ json=data,
228
+ ) as response:
229
+ response.raise_for_status()
230
+
231
+ async for line in response.aiter_lines():
232
+ if line.startswith("data: "):
233
+ try:
234
+ chunk = json.loads(line[6:])
235
+ if "error" in chunk:
236
+ raise RuntimeError(chunk["error"])
237
+ yield chunk
238
+ except json.JSONDecodeError as exc:
239
+ logger.error("Failed to parse stream chunk: %s", exc)
240
+ raise RuntimeError("Invalid stream response format") from exc
241
+
242
+ except httpx.HTTPError as exc:
243
+ logger.error("Stream error: %s", exc)
244
+ raise RuntimeError(str(exc)) from exc
245
+
246
+ async def generate_image(
247
+ self,
248
+ model_name: str,
249
+ prompt: str,
250
+ input_image_urls: Optional[List[str]] = None,
251
+ mask_url: Optional[str] = None,
252
+ generation_config: Optional[Dict[str, Any]] = None,
253
+ ) -> Dict[str, Any]:
254
+ """Generate or edit an image and return the server response."""
255
+ try:
256
+ data = {
257
+ "model_name": model_name,
258
+ "prompt": prompt,
259
+ "input_image_urls": input_image_urls or [],
260
+ "mask_url": mask_url,
261
+ "generation_config": generation_config or {},
262
+ }
263
+ response = await self.async_client.post(
264
+ urljoin(self.server_url, "/generate-image"),
265
+ json=data,
266
+ )
267
+ response.raise_for_status()
268
+ return response.json()
269
+ except httpx.HTTPError as exc:
270
+ logger.error("Error generating image: %s", exc)
271
+ raise RuntimeError(str(exc)) from exc
272
+
273
+ async def generate_speech(
274
+ self,
275
+ model_name: str,
276
+ prompt: str,
277
+ generation_config: Optional[Dict[str, Any]] = None,
278
+ ) -> Dict[str, Any]:
279
+ """Generate speech from text and return the server response."""
280
+ try:
281
+ data = {
282
+ "model_name": model_name,
283
+ "prompt": prompt,
284
+ "generation_config": generation_config or {},
285
+ }
286
+ response = await self.async_client.post(
287
+ urljoin(self.server_url, "/generate-speech"),
288
+ json=data,
289
+ )
290
+ response.raise_for_status()
291
+ return response.json()
292
+ except httpx.HTTPError as exc:
293
+ logger.error("Error generating speech: %s", exc)
294
+ raise RuntimeError(str(exc)) from exc
295
+
296
+ async def cleanup(self, conversation_id: str) -> Dict[str, Any]:
297
+ """Clean up a conversation."""
298
+ try:
299
+ response = await self.async_client.post(
300
+ urljoin(self.server_url, "/cleanup"),
301
+ json={"conversation_id": conversation_id},
302
+ )
303
+ response.raise_for_status()
304
+ return response.json()
305
+ except httpx.HTTPError as exc:
306
+ logger.error("Cleanup error: %s", exc)
307
+ raise RuntimeError(str(exc)) from exc
308
+
309
+ async def close(self) -> None:
310
+ """Close both HTTP clients."""
311
+ await self.async_client.aclose()
312
+ self.sync_client.close()
313
+
314
+ async def __aenter__(self) -> "AutobyteusClient":
315
+ return self
316
+
317
+ async def __aexit__(self, exc_type, exc, tb) -> None: # type: ignore[override]
318
+ await self.close()
@@ -0,0 +1,105 @@
1
+ import logging
2
+ from datetime import datetime
3
+ from pathlib import Path
4
+ from typing import Dict, Optional, Union
5
+
6
+ from cryptography import x509
7
+ from cryptography.hazmat.backends import default_backend
8
+ from cryptography.hazmat.primitives import hashes
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class CertificateError(Exception):
14
+ """Custom exception for certificate-related errors."""
15
+
16
+
17
+ def get_certificate_info(cert_path: Union[str, Path]) -> Dict[str, object]:
18
+ """
19
+ Retrieve certificate information including fingerprint and validity window.
20
+ """
21
+ try:
22
+ cert_path = Path(cert_path)
23
+ cert_data = cert_path.read_bytes()
24
+ cert = x509.load_pem_x509_certificate(cert_data, default_backend())
25
+
26
+ cert_der = cert.fingerprint(hashes.SHA256())
27
+ fingerprint = ":".join(f"{byte:02X}" for byte in cert_der)
28
+
29
+ now = datetime.utcnow()
30
+ days_until_expiry = (cert.not_valid_after - now).days
31
+
32
+ return {
33
+ "subject": cert.subject.get_attributes_for_oid(x509.NameOID.COMMON_NAME)[
34
+ 0
35
+ ].value,
36
+ "issuer": cert.issuer.get_attributes_for_oid(x509.NameOID.COMMON_NAME)[
37
+ 0
38
+ ].value,
39
+ "valid_from": cert.not_valid_before,
40
+ "valid_until": cert.not_valid_after,
41
+ "fingerprint": fingerprint,
42
+ "is_valid": cert.not_valid_before < now < cert.not_valid_after,
43
+ "days_until_expiry": days_until_expiry,
44
+ "cert_data": cert_data,
45
+ "cert": cert,
46
+ }
47
+ except Exception as exc: # pragma: no cover - defensive logging
48
+ raise CertificateError(f"Failed to get certificate info: {exc}") from exc
49
+
50
+
51
+ def verify_certificate(
52
+ cert_path: Union[str, Path],
53
+ expected_fingerprint: Optional[str] = None,
54
+ warn_expiry_days: int = 30,
55
+ ) -> Dict[str, object]:
56
+ """
57
+ Verify the certificate's validity and optional fingerprint match.
58
+ """
59
+ try:
60
+ info = get_certificate_info(cert_path)
61
+
62
+ if not info["is_valid"]:
63
+ if datetime.utcnow() < info["valid_from"]:
64
+ raise CertificateError("Certificate is not yet valid")
65
+ raise CertificateError(
66
+ f"Certificate has expired on {info['valid_until'].strftime('%Y-%m-%d')}"
67
+ )
68
+
69
+ if expected_fingerprint:
70
+ expected = expected_fingerprint.replace(" ", "").upper()
71
+ actual = str(info["fingerprint"]).replace(" ", "")
72
+ if actual != expected:
73
+ raise CertificateError(
74
+ "Certificate fingerprint mismatch. "
75
+ f"Expected: {expected}\nGot: {actual}"
76
+ )
77
+ logger.info("Certificate fingerprint verified successfully")
78
+ else:
79
+ logger.warning(
80
+ "Certificate fingerprint verification skipped. "
81
+ "Set AUTOBYTEUS_CERT_FINGERPRINT to enable this security feature. "
82
+ "Current certificate fingerprint: %s",
83
+ info["fingerprint"],
84
+ )
85
+
86
+ logger.info(
87
+ "Certificate valid from %s to %s",
88
+ info["valid_from"],
89
+ info["valid_until"],
90
+ )
91
+ logger.info("Certificate fingerprint (SHA256): %s", info["fingerprint"])
92
+ logger.info("Certificate subject: %s", info["subject"])
93
+
94
+ if info["days_until_expiry"] <= warn_expiry_days:
95
+ logger.warning(
96
+ "Certificate will expire in %s days on %s",
97
+ info["days_until_expiry"],
98
+ info["valid_until"].strftime("%Y-%m-%d"),
99
+ )
100
+
101
+ return info
102
+ except CertificateError:
103
+ raise
104
+ except Exception as exc: # pragma: no cover - defensive logging
105
+ raise CertificateError(f"Certificate verification failed: {exc}") from exc
@@ -0,0 +1,34 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIF4TCCA8mgAwIBAgIUeyxZ82RF2o2HFOrxZXBmqo5DBUwwDQYJKoZIhvcNAQEL
3
+ BQAwdTELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
4
+ MRMwEQYDVQQKDApBdXRvYnl0ZXVzMRUwEwYDVQQLDAxBUEkgU2VydmljZXMxGzAZ
5
+ BgNVBAMMEmFwaS5hdXRvYnl0ZXVzLmNvbTAeFw0yNTAxMjUxNjUyMjhaFw0yNjAx
6
+ MjUxNjUyMjhaMHUxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVTdGF0ZTENMAsGA1UE
7
+ BwwEQ2l0eTETMBEGA1UECgwKQXV0b2J5dGV1czEVMBMGA1UECwwMQVBJIFNlcnZp
8
+ Y2VzMRswGQYDVQQDDBJhcGkuYXV0b2J5dGV1cy5jb20wggIiMA0GCSqGSIb3DQEB
9
+ AQUAA4ICDwAwggIKAoICAQDXIlOVOkioEVpq7q+TY7/CUsraIYMy+liXM0ef+oJh
10
+ qV7hBRJPgW79ZJIsBNWlGKSB3DRe5mSET/CmeOeGxpH6LJZxMbXfJOHNHtnZnpNV
11
+ 6k/EhrjRMSavMwNvMo4d8NkmH+K/aBJ5sNprkxF9sh3drxod+Cw2Z1tKIdMOuNmx
12
+ clVnQy2CEiVyBKLxqLP4e6D3boIXbu2k8HcZWtNNzhDuJxAj0qyGpZawb4Ey6U2t
13
+ CBHjX/7sw9/YW7F13cXM2jSeRLkefO/LIcZ0iFM4psEr9pO7dbctrbNZlXyeBEDB
14
+ +jTZ6IefHPH31ZwGGPJTL+3mWWP4SDySvcJlr/YYpQ/siP07WAUA5bKEDC2SJCX8
15
+ 1xcc7TphD1jsdtgH80q+gG9gE5lGVShVTvJXhRigBNVqCslcRAqoUuMXqo5BNBBB
16
+ DYljsaWsxUeA8Y5rhRKL9OapqHTcX7FrgUC4j42zwb5jMhmK2unYW+khyuewFcyS
17
+ Dfne32Tp2SoE4drFIDcCQkxcOLREm5Lr1HnJwsaLHgNaHXriWThwOoqxRdF9M++A
18
+ a3njvOEDuOaE4c6yg7nvAXMyOgoIbiwqAGWpxmVV3EI2VQX9Jvmnah7Uw7RVdNlx
19
+ JQpVBdPjUq2prwB+lCfCFPPOwRDP5vnNuGtvbNxhxNEGDcsqnbsVJYm+75+gP/bx
20
+ xQIDAQABo2kwZzAuBgNVHREEJzAlghJhcGkuYXV0b2J5dGV1cy5jb22CCWxvY2Fs
21
+ aG9zdIcEfwAAATAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAdBgNVHQ4EFgQUcD2a
22
+ 4/EZkZpiRjr4U9WXl04i3GQwDQYJKoZIhvcNAQELBQADggIBAD8LzFt358VVK0w9
23
+ g8MebSpJdNQwkfkg7AllFLCzAQ/5dQ/Zti5sjJ5xSQSeu4heZGThX5rt3XWYUr1H
24
+ 6eT5UcuqpEkkRERzdM5PzmWjPk0bdPO8I0phtOaWUWPhR/tLqWeF4vEJrDJxPONr
25
+ AL54wX4tnTAdDi7F4A9z5LtAiEmwWvufhde0etqOhSGYjjk/T/YjlaSSX3WmesLD
26
+ zUHajumZkZ7xbTIoD7iehaixE93Gc2L6J5/obFemjG0P37bfGprM7HY2h6i07333
27
+ 5YwUSuq51sVUmj7lDPsx/bdzhzask2zOS40598QmAfSFGuxmxZ23omDxJg3859R3
28
+ KoMVNR/DMHTNHJGOHjDWANChE+4C8dAXgwwnGpAg1VWTZPQ1LK4n6+SAenbtAUMw
29
+ gXeYiLnVPEFCY6olImmKYvTR8pH8BPrkZgPW4di/aOaTj21oTYShS13xkc8LHoeW
30
+ sBQ8/afZOAPp7XrhYqxS6fgS+nWVq2QBdt7G9poQ/Z5agH5F3TXeAmJLUBqxpUX/
31
+ xx+a0h3yWdE+/eW343A41lO+1kOkBu9Ehqk0i0Y1Ut8EsD2tdTfl7Ywa4k8sq9xr
32
+ f1tm2ebBmHY+ZQvCTARScT/IVOvHpDs0ln1ailIt+P5Qs7V3Hgpftr4Y+fh1gmh7
33
+ m0StS7OaDEX18yPCiIz9DxVKlsPN
34
+ -----END CERTIFICATE-----
@@ -5,7 +5,7 @@ from autobyteus.llm.utils.llm_config import LLMConfig
5
5
  from autobyteus.llm.utils.token_usage import TokenUsage
6
6
  from autobyteus.llm.utils.response_types import CompleteResponse, ChunkResponse
7
7
  from autobyteus.llm.user_message import LLMUserMessage
8
- from autobyteus_llm_client.client import AutobyteusClient
8
+ from autobyteus.clients import AutobyteusClient
9
9
  import logging
10
10
  import uuid
11
11
 
@@ -0,0 +1,26 @@
1
+ import logging
2
+ from typing import Optional
3
+ from autobyteus.llm.models import LLMModel
4
+ from autobyteus.llm.utils.llm_config import LLMConfig
5
+ from autobyteus.llm.api.openai_compatible_llm import OpenAICompatibleLLM
6
+
7
+ logger = logging.getLogger(__name__)
8
+
9
+ class ZhipuLLM(OpenAICompatibleLLM):
10
+ def __init__(self, model: LLMModel = None, llm_config: LLMConfig = None):
11
+ # Provide defaults if not specified
12
+ if model is None:
13
+ model = LLMModel['glm-4.6']
14
+ if llm_config is None:
15
+ llm_config = LLMConfig()
16
+
17
+ super().__init__(
18
+ model=model,
19
+ llm_config=llm_config,
20
+ api_key_env_var="ZHIPU_API_KEY",
21
+ base_url="https://open.bigmodel.cn/api/paas/v4/"
22
+ )
23
+ logger.info(f"ZhipuLLM initialized with model: {self.model}")
24
+
25
+ async def cleanup(self):
26
+ await super().cleanup()
@@ -7,7 +7,7 @@ from typing import Dict, Any, TYPE_CHECKING, List, Optional
7
7
  import os
8
8
  import logging
9
9
  from urllib.parse import urlparse
10
- from autobyteus_llm_client import AutobyteusClient
10
+ from autobyteus.clients import AutobyteusClient
11
11
 
12
12
  if TYPE_CHECKING:
13
13
  from autobyteus.llm.llm_factory import LLMFactory
@@ -18,6 +18,7 @@ from autobyteus.llm.api.gemini_llm import GeminiLLM
18
18
  from autobyteus.llm.api.grok_llm import GrokLLM
19
19
  from autobyteus.llm.api.kimi_llm import KimiLLM
20
20
  from autobyteus.llm.api.qwen_llm import QwenLLM
21
+ from autobyteus.llm.api.zhipu_llm import ZhipuLLM
21
22
  from autobyteus.llm.ollama_provider import OllamaModelProvider
22
23
  from autobyteus.llm.lmstudio_provider import LMStudioModelProvider
23
24
  from autobyteus.utils.singleton import SingletonMeta
@@ -360,6 +361,28 @@ class LLMFactory(metaclass=SingletonMeta):
360
361
  )
361
362
  )
362
363
  ),
364
+ # ZHIPU Provider Models
365
+ LLMModel(
366
+ name="glm-4.6",
367
+ value="glm-4.6",
368
+ provider=LLMProvider.ZHIPU,
369
+ llm_class=ZhipuLLM,
370
+ canonical_name="glm-4.6",
371
+ default_config=LLMConfig(
372
+ pricing_config=TokenPricingConfig(13.8, 13.8)
373
+ )
374
+ ),
375
+ LLMModel(
376
+ name="glm-4.6-thinking",
377
+ value="glm-4.6",
378
+ provider=LLMProvider.ZHIPU,
379
+ llm_class=ZhipuLLM,
380
+ canonical_name="glm-4.6-thinking",
381
+ default_config=LLMConfig(
382
+ pricing_config=TokenPricingConfig(13.8, 13.8),
383
+ extra_params={ "extra_body": { "thinking": { "type": "enabled" } } }
384
+ )
385
+ ),
363
386
  ]
364
387
  for model in supported_models:
365
388
  LLMFactory.register_model(model)
@@ -19,6 +19,7 @@ class OllamaProviderResolver:
19
19
  (['mistral'], LLMProvider.MISTRAL),
20
20
  (['deepseek'], LLMProvider.DEEPSEEK),
21
21
  (['qwen'], LLMProvider.QWEN),
22
+ (['glm'], LLMProvider.ZHIPU),
22
23
  ]
23
24
 
24
25
  @staticmethod
@@ -15,3 +15,4 @@ class LLMProvider(Enum):
15
15
  KIMI = "KIMI"
16
16
  QWEN = "QWEN"
17
17
  LMSTUDIO = "LMSTUDIO"
18
+ ZHIPU = "ZHIPU"
@@ -4,6 +4,7 @@ from autobyteus.llm.token_counter.claude_token_counter import ClaudeTokenCounter
4
4
  from autobyteus.llm.token_counter.mistral_token_counter import MistralTokenCounter
5
5
  from autobyteus.llm.token_counter.deepseek_token_counter import DeepSeekTokenCounter
6
6
  from autobyteus.llm.token_counter.kimi_token_counter import KimiTokenCounter
7
+ from autobyteus.llm.token_counter.zhipu_token_counter import ZhipuTokenCounter
7
8
  from autobyteus.llm.token_counter.base_token_counter import BaseTokenCounter
8
9
  from autobyteus.llm.models import LLMModel
9
10
  from autobyteus.llm.providers import LLMProvider
@@ -42,6 +43,8 @@ def get_token_counter(model: LLMModel, llm: 'BaseLLM') -> BaseTokenCounter:
42
43
  return OpenAITokenCounter(model, llm)
43
44
  elif model.provider == LLMProvider.GEMINI:
44
45
  return OpenAITokenCounter(model, llm)
46
+ elif model.provider == LLMProvider.ZHIPU:
47
+ return ZhipuTokenCounter(model, llm)
45
48
  else:
46
49
  # For models that do not have a specialized counter, raise a NotImplementedError
47
50
  raise NotImplementedError(f"No token counter available for model {model.value}")
@@ -0,0 +1,24 @@
1
+ from typing import TYPE_CHECKING
2
+ from autobyteus.llm.token_counter.openai_token_counter import OpenAITokenCounter
3
+ from autobyteus.llm.models import LLMModel
4
+
5
+ if TYPE_CHECKING:
6
+ from autobyteus.llm.base_llm import BaseLLM
7
+
8
+ class ZhipuTokenCounter(OpenAITokenCounter):
9
+ """
10
+ Token counter for Zhipu models. Uses the same token counting implementation as OpenAI.
11
+
12
+ This implementation inherits from OpenAITokenCounter as Zhipu uses a similar tokenization
13
+ approach as OpenAI's models.
14
+ """
15
+
16
+ def __init__(self, model: LLMModel, llm: 'BaseLLM' = None):
17
+ """
18
+ Initialize the Zhipu token counter.
19
+
20
+ Args:
21
+ model (LLMModel): The Zhipu model to count tokens for.
22
+ llm (BaseLLM, optional): The LLM instance. Defaults to None.
23
+ """
24
+ super().__init__(model, llm)
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from typing import Optional, List, Dict, Any, TYPE_CHECKING
3
- from autobyteus_llm_client import AutobyteusClient
3
+ from autobyteus.clients import AutobyteusClient
4
4
  from autobyteus.multimedia.audio.base_audio_client import BaseAudioClient
5
5
  from autobyteus.multimedia.utils.response_types import SpeechGenerationResponse
6
6
 
@@ -3,7 +3,7 @@ from typing import List
3
3
  import os
4
4
  from urllib.parse import urlparse
5
5
 
6
- from autobyteus_llm_client import AutobyteusClient
6
+ from autobyteus.clients import AutobyteusClient
7
7
  from autobyteus.multimedia.audio.api.autobyteus_audio_client import AutobyteusAudioClient
8
8
  from autobyteus.multimedia.audio.audio_model import AudioModel
9
9
  from autobyteus.multimedia.providers import MultimediaProvider
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from typing import Optional, List, Dict, Any, TYPE_CHECKING
3
- from autobyteus_llm_client import AutobyteusClient
3
+ from autobyteus.clients import AutobyteusClient
4
4
  from autobyteus.multimedia.image.base_image_client import BaseImageClient
5
5
  from autobyteus.multimedia.utils.response_types import ImageGenerationResponse
6
6
 
@@ -3,7 +3,7 @@ from typing import Dict, Any, List
3
3
  import os
4
4
  from urllib.parse import urlparse
5
5
 
6
- from autobyteus_llm_client import AutobyteusClient
6
+ from autobyteus.clients import AutobyteusClient
7
7
  from autobyteus.multimedia.image.api.autobyteus_image_client import AutobyteusImageClient
8
8
  from autobyteus.multimedia.image.image_model import ImageModel
9
9
  from autobyteus.multimedia.providers import MultimediaProvider