autobyteus 1.1.6__py3-none-any.whl → 1.1.8__py3-none-any.whl

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 (43) hide show
  1. autobyteus/agent/context/agent_runtime_state.py +7 -1
  2. autobyteus/agent/handlers/tool_result_event_handler.py +121 -89
  3. autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py +7 -1
  4. autobyteus/agent/tool_invocation.py +25 -1
  5. autobyteus/agent_team/agent_team_builder.py +22 -1
  6. autobyteus/agent_team/context/agent_team_runtime_state.py +0 -2
  7. autobyteus/llm/llm_factory.py +25 -57
  8. autobyteus/llm/ollama_provider_resolver.py +1 -0
  9. autobyteus/llm/providers.py +1 -0
  10. autobyteus/llm/token_counter/token_counter_factory.py +2 -0
  11. autobyteus/multimedia/audio/audio_model.py +2 -1
  12. autobyteus/multimedia/image/image_model.py +2 -1
  13. autobyteus/task_management/tools/publish_task_plan.py +4 -16
  14. autobyteus/task_management/tools/update_task_status.py +4 -19
  15. autobyteus/tools/__init__.py +2 -4
  16. autobyteus/tools/base_tool.py +98 -29
  17. autobyteus/tools/browser/standalone/__init__.py +0 -1
  18. autobyteus/tools/google_search.py +149 -0
  19. autobyteus/tools/mcp/schema_mapper.py +29 -71
  20. autobyteus/tools/multimedia/audio_tools.py +3 -3
  21. autobyteus/tools/multimedia/image_tools.py +5 -5
  22. autobyteus/tools/parameter_schema.py +82 -89
  23. autobyteus/tools/pydantic_schema_converter.py +81 -0
  24. autobyteus/tools/usage/formatters/default_json_example_formatter.py +89 -20
  25. autobyteus/tools/usage/formatters/default_xml_example_formatter.py +115 -41
  26. autobyteus/tools/usage/formatters/default_xml_schema_formatter.py +50 -20
  27. autobyteus/tools/usage/formatters/gemini_json_example_formatter.py +55 -22
  28. autobyteus/tools/usage/formatters/google_json_example_formatter.py +54 -21
  29. autobyteus/tools/usage/formatters/openai_json_example_formatter.py +53 -23
  30. autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py +270 -94
  31. autobyteus/tools/usage/providers/tool_manifest_provider.py +39 -14
  32. autobyteus-1.1.8.dist-info/METADATA +204 -0
  33. {autobyteus-1.1.6.dist-info → autobyteus-1.1.8.dist-info}/RECORD +39 -40
  34. examples/run_google_slides_agent.py +2 -2
  35. examples/run_mcp_google_slides_client.py +1 -1
  36. examples/run_sqlite_agent.py +1 -1
  37. autobyteus/tools/ask_user_input.py +0 -40
  38. autobyteus/tools/browser/standalone/factory/google_search_factory.py +0 -25
  39. autobyteus/tools/browser/standalone/google_search_ui.py +0 -126
  40. autobyteus-1.1.6.dist-info/METADATA +0 -161
  41. {autobyteus-1.1.6.dist-info → autobyteus-1.1.8.dist-info}/WHEEL +0 -0
  42. {autobyteus-1.1.6.dist-info → autobyteus-1.1.8.dist-info}/licenses/LICENSE +0 -0
  43. {autobyteus-1.1.6.dist-info → autobyteus-1.1.8.dist-info}/top_level.txt +0 -0
@@ -16,14 +16,36 @@ class ToolManifestProvider:
16
16
  """
17
17
  Generates a complete tool manifest string, which includes the schema
18
18
  and an example for each provided tool. This is suitable for injection
19
+
19
20
  into a system prompt. It uses the central ToolFormattingRegistry to get
20
21
  the correct formatters for the specified provider.
21
22
  """
22
- SCHEMA_HEADER = "## Tool Definition:"
23
- EXAMPLE_HEADER = "## Example Usage:"
24
- # UPDATED: Changed the header to be more descriptive as requested.
23
+ # --- XML Specific Headers and Guidelines ---
24
+ XML_SCHEMA_HEADER = "## Tool Definition:"
25
+ XML_EXAMPLE_HEADER = "## Tool Usage Examples and Guidelines:"
26
+ XML_GENERAL_GUIDELINES = (
27
+ "To use this tool, you must construct an XML block exactly like the examples below. "
28
+ "Ensure all tags are correctly named and nested. Pay close attention to how arguments, "
29
+ "especially complex ones like lists and objects, are formatted."
30
+ )
31
+ XML_ARRAY_GUIDELINES = (
32
+ "Formatting Lists/Arrays: For any argument that is a list (an array), you MUST wrap each "
33
+ "individual value in its own `<item>` tag. Do not use comma-separated strings or JSON-style `[...]` arrays within a single tag.\n\n"
34
+ "Correct:\n"
35
+ '<arg name="dependencies">\n'
36
+ ' <item>task_1</item>\n'
37
+ ' <item>task_2</item>\n'
38
+ '</arg>\n\n'
39
+ "Incorrect:\n"
40
+ '<arg name="dependencies">[task_1, task_2]</arg>\n'
41
+ '<arg name="dependencies">task_1, task_2</arg>'
42
+ )
43
+
44
+ # --- JSON Specific Headers ---
45
+ JSON_SCHEMA_HEADER = "## Tool Definition:"
25
46
  JSON_EXAMPLE_HEADER = "Example: To use this tool, you could provide the following JSON object as a tool call:"
26
47
 
48
+
27
49
  def __init__(self):
28
50
  self._formatting_registry = ToolFormattingRegistry()
29
51
  logger.debug("ToolManifestProvider initialized.")
@@ -45,33 +67,36 @@ class ToolManifestProvider:
45
67
  """
46
68
  tool_blocks = []
47
69
 
48
- # Get the correct formatting pair from the registry, passing the override flag.
49
70
  formatter_pair = self._formatting_registry.get_formatter_pair(provider, use_xml_tool_format=use_xml_tool_format)
50
71
  schema_formatter = formatter_pair.schema_formatter
51
72
  example_formatter = formatter_pair.example_formatter
52
73
 
53
- # Determine if the chosen formatter is XML-based. This determines the final assembly format.
54
74
  is_xml_format = isinstance(schema_formatter, DefaultXmlSchemaFormatter)
55
75
 
56
76
  for td in tool_definitions:
57
77
  try:
58
78
  schema = schema_formatter.provide(td)
59
- example = example_formatter.provide(td)
79
+ example = example_formatter.provide(td) # This is now a pre-formatted string for both XML and JSON
60
80
 
61
81
  if schema and example:
62
82
  if is_xml_format:
63
- tool_blocks.append(f"{self.SCHEMA_HEADER}\n{schema}\n\n{self.EXAMPLE_HEADER}\n{example}")
64
- else: # JSON format
65
- # UPDATED: Removed the redundant {"tool": schema} wrapper.
83
+ tool_blocks.append(f"{self.XML_SCHEMA_HEADER}\n{schema}\n\n{self.XML_EXAMPLE_HEADER}\n{example}")
84
+ else:
85
+ # For JSON, the schema is a dict, but the example is now a pre-formatted string.
66
86
  schema_str = json.dumps(schema, indent=2)
67
- example_str = json.dumps(example, indent=2)
68
- tool_blocks.append(f"{self.SCHEMA_HEADER}\n{schema_str}\n\n{self.JSON_EXAMPLE_HEADER}\n{example_str}")
87
+ # FIX: Do NOT call json.dumps() on the 'example' variable, as it is already a string.
88
+ tool_blocks.append(f"{self.JSON_SCHEMA_HEADER}\n{schema_str}\n\n{self.JSON_EXAMPLE_HEADER}\n{example}")
69
89
  else:
70
90
  logger.warning(f"Could not generate schema or example for tool '{td.name}' using format {'XML' if is_xml_format else 'JSON'}.")
71
91
 
72
92
  except Exception as e:
73
93
  logger.error(f"Failed to generate manifest block for tool '{td.name}': {e}", exc_info=True)
74
94
 
75
- # UPDATED: Unify the return for all formats to provide a consistent structure
76
- # without the incorrect '[]' wrapper for JSON.
77
- return "\n\n---\n\n".join(tool_blocks)
95
+ # Assemble the final manifest string
96
+ manifest_content = "\n\n---\n\n".join(tool_blocks)
97
+
98
+ if is_xml_format and manifest_content:
99
+ # Prepend the general guidelines for XML format
100
+ return f"{self.XML_GENERAL_GUIDELINES}\n\n{self.XML_ARRAY_GUIDELINES}\n\n---\n\n{manifest_content}"
101
+
102
+ return manifest_content
@@ -0,0 +1,204 @@
1
+ Metadata-Version: 2.4
2
+ Name: autobyteus
3
+ Version: 1.1.8
4
+ Summary: Multi-Agent framework
5
+ Home-page: https://github.com/AutoByteus/autobyteus
6
+ Author: Ryan Zheng
7
+ Author-email: ryan.zheng.work@gmail.com
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3.8
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Requires-Python: >=3.8
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: aiohttp
18
+ Requires-Dist: anthropic
19
+ Requires-Dist: autobyteus-llm-client==1.1.3
20
+ Requires-Dist: beautifulsoup4
21
+ Requires-Dist: boto3
22
+ Requires-Dist: botocore
23
+ Requires-Dist: brui-core==1.0.9
24
+ Requires-Dist: certifi==2025.4.26
25
+ Requires-Dist: google-api-python-client
26
+ Requires-Dist: google-generativeai
27
+ Requires-Dist: Jinja2
28
+ Requires-Dist: mcp[cli]
29
+ Requires-Dist: mistral_common
30
+ Requires-Dist: mistralai
31
+ Requires-Dist: numpy
32
+ Requires-Dist: ollama
33
+ Requires-Dist: openai
34
+ Requires-Dist: requests
35
+ Requires-Dist: rich
36
+ Requires-Dist: textual
37
+ Requires-Dist: tiktoken
38
+ Requires-Dist: tokenizers
39
+ Provides-Extra: dev
40
+ Requires-Dist: coverage; extra == "dev"
41
+ Requires-Dist: flake8; extra == "dev"
42
+ Requires-Dist: numpy; extra == "dev"
43
+ Requires-Dist: pre-commit; extra == "dev"
44
+ Requires-Dist: black; extra == "dev"
45
+ Requires-Dist: isort; extra == "dev"
46
+ Requires-Dist: gitpython==3.1.31; extra == "dev"
47
+ Requires-Dist: auto-gpt-plugin-template; extra == "dev"
48
+ Requires-Dist: mkdocs; extra == "dev"
49
+ Requires-Dist: pytest; extra == "dev"
50
+ Requires-Dist: asynctest; extra == "dev"
51
+ Requires-Dist: pytest-asyncio; extra == "dev"
52
+ Requires-Dist: pytest-benchmark; extra == "dev"
53
+ Requires-Dist: pytest-cov; extra == "dev"
54
+ Requires-Dist: pytest-integration; extra == "dev"
55
+ Requires-Dist: pytest-mock; extra == "dev"
56
+ Requires-Dist: vcrpy; extra == "dev"
57
+ Requires-Dist: pytest-vcr; extra == "dev"
58
+ Requires-Dist: load_dotenv; extra == "dev"
59
+ Dynamic: author
60
+ Dynamic: author-email
61
+ Dynamic: classifier
62
+ Dynamic: description
63
+ Dynamic: description-content-type
64
+ Dynamic: home-page
65
+ Dynamic: license-file
66
+ Dynamic: provides-extra
67
+ Dynamic: requires-dist
68
+ Dynamic: requires-python
69
+ Dynamic: summary
70
+
71
+ # Autobyteus
72
+
73
+ Autobyteus is an open-source, application-first agentic framework for Python. It is designed to help developers build, test, and deploy complex, stateful, and extensible AI agents by providing a robust architecture and a powerful set of tools.
74
+
75
+ ![Autobyteus TUI Dashboard](docs/images/image_1.png)
76
+
77
+ ## Architecture
78
+
79
+ Autobyteus is built with a modular, event-driven architecture designed for extensibility and clear separation of concerns. The key components are:
80
+
81
+ - **Agent Core**: The heart of the system. Each agent is a stateful, autonomous entity that runs as a background process in its own thread, managed by a dedicated `AgentWorker`. This design makes every agent a truly independent entity capable of handling long-running tasks.
82
+ - **Agent Teams**: The framework provides powerful constructs for building hierarchical multi-agent systems. The `AgentTeam` module allows you to compose teams of individual agents and even nest teams within other teams, enabling sophisticated, real-world organizational structures and delegation patterns.
83
+ - **Context & Configuration**: Agent behavior is defined through a static configuration (`AgentConfig`) and its dynamic state is managed in `AgentRuntimeState`. These are bundled into a comprehensive `AgentContext` that is passed to all components, providing a single source of truth.
84
+ - **Event-Driven System**: Agents operate on an internal `asyncio` event loop. User messages, tool results, and internal signals are handled as events, which are processed by dedicated `EventHandlers`. This decouples logic and makes the system highly extensible.
85
+ - **Pluggable Processors & Hooks**: The framework provides a chain of extension points to inject custom logic at every major step of an agent's reasoning loop. This architecture powers features like flexible tool format parsing. You can customize behavior by implementing:
86
+ - **`InputProcessors`**: To modify or enrich user messages *before* they are sent to the LLM.
87
+ - **`LLMResponseProcessors`**: To parse the LLM's raw output and extract structured actions, such as tool calls.
88
+ - **`ToolExecutionResultProcessors`**: To modify the result from a tool *before* it is sent back to the LLM for the next step of reasoning.
89
+ - **`PhaseHooks`**: To run custom code on specific agent lifecycle transitions (e.g., when an agent becomes `IDLE`).
90
+ - **Context-Aware Tooling**: Tools are first-class citizens that receive the agent's full `AgentContext` during execution. This allows tools to be deeply integrated with the agent's state, configuration, and workspace, enabling more intelligent and powerful actions.
91
+ - **Tool Approval Flow**: The framework has native support for human-in-the-loop workflows. By setting `auto_execute_tools=False` in the agent's configuration, the agent will pause before executing a tool, emit an event requesting permission, and wait for external approval before proceeding.
92
+ - **MCP Integration**: The framework has native support for the Model Context Protocol (MCP). This allows agents to discover and use tools from external, language-agnostic tool servers, making the ecosystem extremely flexible and ready for enterprise integration.
93
+
94
+ ## Key Features
95
+
96
+ #### 📊 Interactive TUI Dashboard
97
+ Launch and monitor your agent teams with our built-in Textual-based TUI.
98
+ - **Hierarchical View**: See the structure of your team, including sub-teams and their agents.
99
+ - **Real-Time Status**: Agent and team statuses are updated live, showing you who is idle, thinking, or executing a tool.
100
+ - **Detailed Logs**: Select any agent to view a detailed, streaming log of their thoughts, actions, and tool interactions.
101
+ - **Live Task Board**: Watch your team's `TaskBoard` update in real-time as the coordinator publishes a plan and agents complete their tasks.
102
+
103
+ | TUI - Detailed Agent Log | TUI - Task Board with Completed Task |
104
+ | :---: | :---: |
105
+ | ![Autobyteus Agent Log](docs/images/image_4.png) | ![Autobyteus Task Board](docs/images/image_3.png) |
106
+
107
+ #### 🏗️ Fluent Team Building
108
+ Define complex agent and team structures with an intuitive, fluent API. The `AgentTeamBuilder` makes composing your team simple and readable.
109
+
110
+ ```python
111
+ # --- From the Multi-Researcher Team Example ---
112
+ research_team = (
113
+ AgentTeamBuilder(
114
+ name="MultiSpecialistResearchTeam",
115
+ description="A team for delegating to multiple specialists."
116
+ )
117
+ .set_coordinator(coordinator_config)
118
+ .add_agent_node(researcher_web_config)
119
+ .add_agent_node(researcher_db_config)
120
+ .build()
121
+ )
122
+ ```
123
+
124
+ #### 🔁 Flexible Tool Formatting (JSON & XML)
125
+ Autobyteus intelligently handles tool communication with LLMs while giving you full control.
126
+ - **Provider-Aware by Default**: The framework automatically generates tool manifests and parses responses in the optimal format for the selected LLM provider (e.g., JSON for OpenAI/Gemini, XML for Anthropic).
127
+ - **XML Override for Efficiency**: You can set `use_xml_tool_format=True` on an `AgentConfig` or `AgentTeamBuilder` to force the use of XML for tool calls, which can be more efficient and reliable than JSON for complex tool schemas.
128
+
129
+ #### 📈 Flexible Communication Protocols
130
+ Choose the collaboration pattern that best fits your use case with configurable `TaskNotificationMode`s.
131
+ - **`AGENT_MANUAL_NOTIFICATION` (Default)**: A traditional approach where a coordinator agent is responsible for creating a plan and then explicitly notifying other agents to begin their work via messages.
132
+ - **`SYSTEM_EVENT_DRIVEN`**: A more automated approach where the coordinator's only job is to publish a plan to the `TaskBoard`. The framework then monitors the board and automatically notifies agents when their tasks become unblocked, enabling parallel execution and reducing coordinator overhead.
133
+
134
+ ## Requirements
135
+
136
+ - **Python Version**: Python 3.11 is the recommended and tested version for this project. Using newer versions of Python may result in dependency conflicts when installing the required packages. For a stable and tested environment, please use Python 3.11.
137
+
138
+ ## Getting Started
139
+
140
+ ### Installation
141
+
142
+ 1. **Clone the repository:**
143
+ ```bash
144
+ git clone https://github.com/your-username/autobyteus.git
145
+ cd autobyteus
146
+ ```
147
+
148
+ 2. **For users:**
149
+ To install Autobyteus and its core dependencies:
150
+ ```bash
151
+ pip install .
152
+ ```
153
+
154
+ 3. **For developers:**
155
+ To install Autobyteus with all development and example dependencies (including the TUI):
156
+ ```bash
157
+ pip install -r requirements-dev.txt
158
+ ```
159
+
160
+ 4. **Set up Environment Variables:**
161
+ Create a `.env` file in the root of the project and add your LLM provider API keys:
162
+ ```
163
+ # .env
164
+ OPENAI_API_KEY="sk-..."
165
+ KIMI_API_KEY="your-kimi-api-key"
166
+ # etc.
167
+ ```
168
+
169
+ ### Running the Examples
170
+
171
+ The best way to experience Autobyteus is to run one of the included examples. The event-driven software engineering team is a great showcase of the framework's capabilities.
172
+
173
+ ```bash
174
+ # Run the event-driven software engineering team example
175
+ python autobyteus/examples/agent_team/event_driven/run_software_engineering_team.py --llm-model gpt-4o
176
+
177
+ # Run the hierarchical debate team example
178
+ python autobyteus/examples/agent_team/manual_notification/run_debate_team.py --llm-model gpt-4-turbo
179
+ ```
180
+ You can see all available models and their identifiers by running an example with the `--help-models` flag.
181
+
182
+ ### Building the Library
183
+
184
+ To build Autobyteus as a distributable package, follow these steps:
185
+
186
+ 1. Ensure you have the latest version of `setuptools` and `wheel` installed:
187
+ ```
188
+ pip install --upgrade setuptools wheel
189
+ ```
190
+
191
+ 2. Build the distribution packages:
192
+ ```
193
+ python setup.py sdist bdist_wheel
194
+ ```
195
+
196
+ This will create a `dist` directory containing the built `sdist` and `wheel` distributions.
197
+
198
+ ## Contributing
199
+
200
+ (Add guidelines for contributing to the project)
201
+
202
+ ## License
203
+
204
+ This project is licensed under the MIT License.
@@ -5,7 +5,7 @@ autobyteus/agent/agent.py,sha256=OLHU73lGlfbrwqke3cpnY8HE5zZEvYb0Cqqsxu_LKD0,492
5
5
  autobyteus/agent/exceptions.py,sha256=tfXvey5SkT70X6kcu29o8YO91KB0hI9_uLrba91_G2s,237
6
6
  autobyteus/agent/remote_agent.py,sha256=DPhAWobptj82HZaACbtLkXQBYIotgr3yZ6u4D9TJmeE,14458
7
7
  autobyteus/agent/sender_type.py,sha256=Qlj2GBGVHXCRAKj7CMkd416bO_qcudoY730iM-LfJfM,559
8
- autobyteus/agent/tool_invocation.py,sha256=XP909Q5nDY_KK8jQvqhAvciNoW81hcPUPSWRNPyUJGc,2414
8
+ autobyteus/agent/tool_invocation.py,sha256=oEtzk5g2T2mRLatebkSYcUbyz1JwF2ybBxd92yTKb28,3217
9
9
  autobyteus/agent/bootstrap_steps/__init__.py,sha256=k3_J4MXu7PaTuUXK-D2Uax8kh4BnSNm22sDlQw6GFA4,906
10
10
  autobyteus/agent/bootstrap_steps/agent_bootstrapper.py,sha256=tPxD4yQ_i3-rl9XOGaKrLMdpymBqrzHkkkzRW0xhPBw,4336
11
11
  autobyteus/agent/bootstrap_steps/agent_runtime_queue_initialization_step.py,sha256=wulFdVAwR4jTZtJgHwLYf07r76KKCKpwa1Cho2AqjSw,3265
@@ -17,7 +17,7 @@ autobyteus/agent/context/__init__.py,sha256=1an2L4sKJ1tYbJKAhCLSw-oYzt5_lmUwh1SY
17
17
  autobyteus/agent/context/agent_config.py,sha256=q04ohaBP8Wq2V0nK96YngFSLWCX7R02aAYfbIMRzAJc,6726
18
18
  autobyteus/agent/context/agent_context.py,sha256=3Vd1c4EF6JY7rOKar7TQSXNNSNnpB-hYuhGqVQdi52g,5726
19
19
  autobyteus/agent/context/agent_context_registry.py,sha256=GqwKn0EKKTRv6Vwwrb5kMRrwD9uH5NCh_Nvtmw82QTo,2748
20
- autobyteus/agent/context/agent_runtime_state.py,sha256=CIoOJwGR9-H-vYBfq-4eQRP5uSoBcmlAFUGSru8xZ7A,5125
20
+ autobyteus/agent/context/agent_runtime_state.py,sha256=H4b3gGJkPW7DUgtFrnRcnp8yIg1HkzzHx5U5HQ6ddJ4,5523
21
21
  autobyteus/agent/events/__init__.py,sha256=8AL83PBRLkEptTzPznn_XpGXq2-S56Yxx3WarNcsc3U,1507
22
22
  autobyteus/agent/events/agent_events.py,sha256=plrBY3Cr_nUhrwvkpED_2qyPq2Slc0ciiupsWdPvmwo,3821
23
23
  autobyteus/agent/events/agent_input_event_queue_manager.py,sha256=VfynrdVSPkKEH94yg9p1WBOoV52JQX8MRJhJ-GU7fcY,10461
@@ -36,7 +36,7 @@ autobyteus/agent/handlers/llm_complete_response_received_event_handler.py,sha256
36
36
  autobyteus/agent/handlers/llm_user_message_ready_event_handler.py,sha256=4WgDXUY4rmjpP44X2THKMAt2NpAZ5GukPqVNmLt6XJM,9064
37
37
  autobyteus/agent/handlers/tool_execution_approval_event_handler.py,sha256=Tda_LrlIPbEwVzf1I6u4Vb9sPmAbGQRqT_2-Q9ukLhw,4489
38
38
  autobyteus/agent/handlers/tool_invocation_request_event_handler.py,sha256=AjNGQgRCQkjXvYThd_AaPj0Lzh1adEkhYJO83alxVAY,10957
39
- autobyteus/agent/handlers/tool_result_event_handler.py,sha256=CXsEHVWJ9PJCD8d1E7ytTzQCnApJxk9bj3j6OfEvQ_A,7341
39
+ autobyteus/agent/handlers/tool_result_event_handler.py,sha256=wecvtww_MuS1ekv_WexWGlR11bP96N46dK6uoWkXpHo,8370
40
40
  autobyteus/agent/handlers/user_input_message_event_handler.py,sha256=WBV_yFILqEEGbwhzPxKRKdTZcbJosvRIXAs8m1jOHi4,4937
41
41
  autobyteus/agent/hooks/__init__.py,sha256=a1do0Ribb2Hpf9t0Xqxhf3Ls7R6EQuWJtfTGQK7VjUM,495
42
42
  autobyteus/agent/hooks/base_phase_hook.py,sha256=7JU3FgPzX06Yg6eJgB4GXzXcaWTpOcEMmyw5Ku0mwJk,2040
@@ -53,7 +53,7 @@ autobyteus/agent/llm_response_processor/base_processor.py,sha256=U9oKMwbz_oYYw__
53
53
  autobyteus/agent/llm_response_processor/processor_definition.py,sha256=AMLmiL8dMlTpmBKmQrqrfNTfwJLyL6kLHYGqJ-Ly8bE,1464
54
54
  autobyteus/agent/llm_response_processor/processor_meta.py,sha256=RC32R5SVTSpBEOdexVh_SOTIydv0_ElWGP7PsXB-q_Q,1813
55
55
  autobyteus/agent/llm_response_processor/processor_registry.py,sha256=K31pYAujCqnuVXLd_c7gekJfczkagfLC2nI6TciWKBU,4768
56
- autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py,sha256=VMFhhZu-39xaZs3AWfPc_JIMjLNvIpjtv0GajigZlyw,3644
56
+ autobyteus/agent/llm_response_processor/provider_aware_tool_usage_processor.py,sha256=2IedGKFQ3Km5bsTWS9QVLya8x8aLV3RCH3Uv8jzAwUE,4049
57
57
  autobyteus/agent/message/__init__.py,sha256=vIgKdHwCaRsaJNdi9jmGnenUZjrOhHq8hO0eZsi48hE,759
58
58
  autobyteus/agent/message/agent_input_user_message.py,sha256=atIxZxWtqyePyqFfK8EszWIt9ny6G1AEs3hdfIaFQv0,4032
59
59
  autobyteus/agent/message/context_file.py,sha256=161HOu_m7923GU9kI_EDEWtVckb2nuTyqDunBq8H2kg,3311
@@ -103,7 +103,7 @@ autobyteus/agent/workspace/workspace_meta.py,sha256=xuw1-lYQiK5YyyDDc_5uT3uOGL0F
103
103
  autobyteus/agent/workspace/workspace_registry.py,sha256=A_wADwvZOm1XutBgkn_-FBkqb4tS1fRtALrKe2XRDhw,3182
104
104
  autobyteus/agent_team/__init__.py,sha256=JzL7W4KLKQdFpV3WLAZJp0dM5DQWgD3xAqLr-iRoEas,53
105
105
  autobyteus/agent_team/agent_team.py,sha256=M3GNiBgCTiYbbaGB4VquRHhPoLN8D9Hladv6hLJ_IrA,3722
106
- autobyteus/agent_team/agent_team_builder.py,sha256=-vX53032tc312wtBVs0UqO02K-g_wLN97v8nEvo6tgc,8453
106
+ autobyteus/agent_team/agent_team_builder.py,sha256=E4zDq9ZozHVwcm_ZXZQY0F5GcfXI9sMVrd0CL5RdQj0,9275
107
107
  autobyteus/agent_team/base_agent_team.py,sha256=AtTCt0upZjbV5Jj-2wFI54lzUsYHkstErttIZXQOJL0,3199
108
108
  autobyteus/agent_team/exceptions.py,sha256=24kOHkJoyW1AKF7KQPuy8HIEpqzcYm3N_kl7W5CluSc,389
109
109
  autobyteus/agent_team/bootstrap_steps/__init__.py,sha256=Gw7ohC8lTB1h2IMKZkxn2Sp7eEjmr_BC0kwpIjn-xKg,1398
@@ -118,7 +118,7 @@ autobyteus/agent_team/bootstrap_steps/team_context_initialization_step.py,sha256
118
118
  autobyteus/agent_team/context/__init__.py,sha256=drrtG4m5HFNxJgtpucBmTA81TlbQaSgNXww38ChgwzE,667
119
119
  autobyteus/agent_team/context/agent_team_config.py,sha256=kA7BTHiPeM9iyN1Gg6acZP9WBhb7VHOvBnaCDA8juaY,1589
120
120
  autobyteus/agent_team/context/agent_team_context.py,sha256=_QC-JyvH6Ld2Ysm-EubxbjqzJ1LLvrUkNAfUWKnulmo,2682
121
- autobyteus/agent_team/context/agent_team_runtime_state.py,sha256=ioXgFIQkTwHS4nzuw567JWwnyGi9p7UoUR3TV8O5FJ8,2983
121
+ autobyteus/agent_team/context/agent_team_runtime_state.py,sha256=aYI4_J0km9g1YVWVA7EzhU-M_B89lqclJVZf-hhg3wY,2812
122
122
  autobyteus/agent_team/context/team_manager.py,sha256=m5_cjIwznicSHTq0HHquZrsn14DmvrTR94xzuaaC7NM,7287
123
123
  autobyteus/agent_team/context/team_node_config.py,sha256=V_Ng_YoOcAXkujW6Y1STg39YKzcmMrZvgAgBDORO38Y,3186
124
124
  autobyteus/agent_team/events/__init__.py,sha256=H2JMNRxeEmzIpbUFWmNR2IaIPXgcz301UIEQ8Yn0AuY,971
@@ -190,12 +190,12 @@ autobyteus/events/event_types.py,sha256=yFfCwSAWth-LCULklW2wjNp2pfZjjEow-_PMIcBa
190
190
  autobyteus/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
191
  autobyteus/llm/autobyteus_provider.py,sha256=SQ_RsGVc1ElHQNLebxMG_8Ohm7ff5Y2cLlGbROTcOmI,8242
192
192
  autobyteus/llm/base_llm.py,sha256=OCiInGSNApZ-bcrdEMt3siOFwNkB9UwFGfqVNYImzEo,8036
193
- autobyteus/llm/llm_factory.py,sha256=k3ghTV97IRc9icMn7nglh7E7mpCYPX_FtBj4GEk1gLY,19728
193
+ autobyteus/llm/llm_factory.py,sha256=jeRIZoA5QArtNzQKC6VVWEVcHy2-z4evRiIL2_Qicxs,18601
194
194
  autobyteus/llm/lmstudio_provider.py,sha256=RkM_drORSZ2zcSxN2Th5Upiva2oesIPw-6viqe2w9dY,4315
195
195
  autobyteus/llm/models.py,sha256=ownBklNZrtJ_HWeMexa2T3s9TjWG0xggOt7wYrRs2l4,6963
196
196
  autobyteus/llm/ollama_provider.py,sha256=CfcgC-DEWULjTwJiWazB5IXjErEyy1zZ41glrWhpj0g,4427
197
- autobyteus/llm/ollama_provider_resolver.py,sha256=chGoQ7SvGJ68lv0Vv3AEd-b177Evu-iIcrtvwkUSbBg,1813
198
- autobyteus/llm/providers.py,sha256=rIepOS3mNnd-BWf_cbrrJUf7cllcOUCQ-j4IIFoiLts,354
197
+ autobyteus/llm/ollama_provider_resolver.py,sha256=EI0lTqhejSeuFkJCLF0cPQ2PSmCjXjcXNSryvwvNBYg,1851
198
+ autobyteus/llm/providers.py,sha256=7Dm9JQpwMZHV__sYNGuLzQfK3ZaW0AAbryKDl26V8ys,372
199
199
  autobyteus/llm/runtimes.py,sha256=MzFNo3R1U3uWYAkuk-uuaba01Y0dDKQgVY_ElH_0dxU,315
200
200
  autobyteus/llm/user_message.py,sha256=2hmICY_W7lwjYco3qT4zY1ELsBkpyxR2CjOgh33NMq0,3546
201
201
  autobyteus/llm/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -224,7 +224,7 @@ autobyteus/llm/token_counter/deepseek_token_counter.py,sha256=YWCng71H6h5ZQX0Drj
224
224
  autobyteus/llm/token_counter/kimi_token_counter.py,sha256=KuzgcbSWiqybCKHaukd-n917zEgUFebGXMAxlkZxue8,854
225
225
  autobyteus/llm/token_counter/mistral_token_counter.py,sha256=YAUPqksnonTQRd1C7NjjFUPsjEDq_AKWxTc5GNTVGqU,4760
226
226
  autobyteus/llm/token_counter/openai_token_counter.py,sha256=hGpKSo52NjtLKU8ZMHr76243wglFkfM9-ycSXJW-cwE,2811
227
- autobyteus/llm/token_counter/token_counter_factory.py,sha256=x2KCz3qWMDg8NDNqCO1-NcwvlhKN8UWkGa4yTPqF5JA,2102
227
+ autobyteus/llm/token_counter/token_counter_factory.py,sha256=1xYYJoX7DyOgQz54a8_P24I8NHgKNsa8WZ7bLQEHRFQ,2193
228
228
  autobyteus/llm/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
229
  autobyteus/llm/utils/llm_config.py,sha256=yzRlUmeyGkKvb-jfywGaR3tWGeQ2l6f8GZ8KdFzHNDk,9911
230
230
  autobyteus/llm/utils/media_payload_formatter.py,sha256=S-pZxIlGHuKzzrHbqv7SUx99BfYlZ7dVUGcUrGDShF0,3676
@@ -239,7 +239,7 @@ autobyteus/multimedia/providers.py,sha256=onG9G_NuzhWe0Fg9N73aXls0D081lvP0-RVEBC
239
239
  autobyteus/multimedia/runtimes.py,sha256=mgmA06Ng7Gh6UW6YNi0O5CmwV6oDw3kX2qxLssUqG0o,180
240
240
  autobyteus/multimedia/audio/__init__.py,sha256=RsUo63rEz8_HLJ7RonaSrYkoDKwhBmHomeseTnBX-Hg,287
241
241
  autobyteus/multimedia/audio/audio_client_factory.py,sha256=v8iPQmXB0NR18Rvh2rnHTlKRgWeVWQHJE7F1zrwjCT4,5356
242
- autobyteus/multimedia/audio/audio_model.py,sha256=ik8quUt17tsBdZHIWB3ZNOVizcfyP9LhkN15D8bz850,3627
242
+ autobyteus/multimedia/audio/audio_model.py,sha256=bhBovsaw9yAYZNlpB3-gObtRoClzoQUaxwGInHt0iVM,3745
243
243
  autobyteus/multimedia/audio/autobyteus_audio_provider.py,sha256=wjtkVuma0QzTlAnpHJ-k1_8hewcbhuPw2zxDcx2o_dw,4761
244
244
  autobyteus/multimedia/audio/base_audio_client.py,sha256=Y0iquuQgfhpipgAg8svm27psLs3pdEJOH4yqme-y7Dk,1410
245
245
  autobyteus/multimedia/audio/api/__init__.py,sha256=_LHCfFqfwvbr0qSTLlioTcnb_EnfZtY1usY6nHegr1k,168
@@ -249,7 +249,7 @@ autobyteus/multimedia/image/__init__.py,sha256=YWwPtRgbTtPoZBgAmjt87P-pTREOZEpJz
249
249
  autobyteus/multimedia/image/autobyteus_image_provider.py,sha256=JBQS36ZZFZ62EIEWeapSe93q6jUYotcxm1bCsPLT2UI,4871
250
250
  autobyteus/multimedia/image/base_image_client.py,sha256=CAqr1YdpLpd7LiJocQtUFYlykkygPa4ls6i-CAmUkBY,2643
251
251
  autobyteus/multimedia/image/image_client_factory.py,sha256=hOldDy5phvTKM8-dVSVP35eI8GwRld7bSLEp1GRZfuU,5453
252
- autobyteus/multimedia/image/image_model.py,sha256=xbsc9TCNGz7_drVNRYyfiRWGSno7v7vhLDWZgHxo94A,3627
252
+ autobyteus/multimedia/image/image_model.py,sha256=_Cb7up7zumdHa9F09D1VqEHmySn6vhUFTyo6rcwfy54,3745
253
253
  autobyteus/multimedia/image/api/__init__.py,sha256=Vh_FC_6rxcPhJqFpAvgv3yBqHYVmxrzjyVSSrCM7rww,255
254
254
  autobyteus/multimedia/image/api/autobyteus_image_client.py,sha256=XsYINBbW8oUktP6YTWHRIl0bbC8vUc8MJVzTQQh1ZRI,3901
255
255
  autobyteus/multimedia/image/api/gemini_image_client.py,sha256=O-WrUoUuBTMLB17shqoX202aNzA0RdzCsDY4Kdu76lA,7663
@@ -303,15 +303,16 @@ autobyteus/task_management/schemas/plan_definition.py,sha256=oaudmKfkNK8foWVa0zd
303
303
  autobyteus/task_management/schemas/task_status_report.py,sha256=TSWGmbue3-ag0bZziB5PWao5burcvZYa2wJpNaMseF8,1676
304
304
  autobyteus/task_management/tools/__init__.py,sha256=oKb6MLdUrD6h-oCnaZiQqlEvPwp91wRoQG8cg4lYsig,415
305
305
  autobyteus/task_management/tools/get_task_board_status.py,sha256=UX2d376GXF6v0KQNowuItbIR7mcSG6qmIGpf0VRyDbQ,2767
306
- autobyteus/task_management/tools/publish_task_plan.py,sha256=40c9jfjJRbiSyjFCpcVYchMeB38ie8idTukZwtjYAeg,5435
307
- autobyteus/task_management/tools/update_task_status.py,sha256=k44dr4IMNHDwUO_rhUcnWmXD5m-d72__3fam9iC_Vhw,6469
308
- autobyteus/tools/__init__.py,sha256=ht-UEhHyC2lWZBhj5ud1IH56m_QnL3SONgzXUCpqP_U,3119
309
- autobyteus/tools/ask_user_input.py,sha256=2KHv7kRR9yyd5VKLgW-vJiE4HiYiFozHsVN4_5NhhdE,1649
310
- autobyteus/tools/base_tool.py,sha256=x8Hjth7koJ6Brgi70phlm46K5SC9ofH4qokl4QqM9JQ,5159
306
+ autobyteus/task_management/tools/publish_task_plan.py,sha256=7Bcfh0pF3KI-CasXT2DDd8rG0xPVL0Vut-tARAGXtf8,4785
307
+ autobyteus/task_management/tools/update_task_status.py,sha256=HCaO1qQhnSd3H5dG7RHkW1D42vMV4-hBS7a5hx_C-IQ,5943
308
+ autobyteus/tools/__init__.py,sha256=HfSOKfTtOyXMIY8VnVC_dgTKKWq4ueoxN1IJAAniNOk,3033
309
+ autobyteus/tools/base_tool.py,sha256=sRrfbvaw7bFUC_GKYrJyKnBr9nnmzrfInUto09lkmLY,8706
311
310
  autobyteus/tools/functional_tool.py,sha256=_WBv_mZCTIaekBwlOLiV8A7nLZhJiR-HYG6WJDij-eg,10393
311
+ autobyteus/tools/google_search.py,sha256=OLY_pBc3_SEs69ELyq4DDvB8txOUxF7QV6rJCKu6tAA,5890
312
312
  autobyteus/tools/image_downloader.py,sha256=IQ-P1IBwLvbp8jyhtxLu54acWldJ6miFYkVIz7tHCMQ,4868
313
- autobyteus/tools/parameter_schema.py,sha256=rRqhx0uwzr7-uPYIdZqEaxZ0bPJpX9GlHhipKXATwIU,11107
313
+ autobyteus/tools/parameter_schema.py,sha256=-eXYYmP01_XBycF35FFKk87YIzzdFpqZ3dSV_xTF-Kc,13010
314
314
  autobyteus/tools/pdf_downloader.py,sha256=0WeznZhkYvXvgU2CH21q6LSVEQm8S1mAm7gtw_CjsJM,3927
315
+ autobyteus/tools/pydantic_schema_converter.py,sha256=E4WIQnPG37l3_niu2XZRx43eGOSynfFuRNpxeXKRVOA,3402
315
316
  autobyteus/tools/timer.py,sha256=hPei4QONtpdQrSS72_SNw6-j-gVd5NT2RScAhqMhRSY,7384
316
317
  autobyteus/tools/tool_category.py,sha256=pSf3C4kDc5ZGRYLmlGaU0th9YgdI-3TSS_yOdqbEzLU,740
317
318
  autobyteus/tools/tool_config.py,sha256=gnzGweccECNmCeufkzbskHeFOt3f0431DyAmMhqNVn4,3564
@@ -335,15 +336,13 @@ autobyteus/tools/browser/session_aware/factory/__init__.py,sha256=47DEQpj8HBSa-_
335
336
  autobyteus/tools/browser/session_aware/factory/browser_session_aware_web_element_trigger_factory.py,sha256=PsRjQMScKF3ceMEEFvlfr20OQ-sKdbQ6YWRrQffZF80,687
336
337
  autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_reader_factory.py,sha256=WmW9yU_KVjvDNSlxWPkdXljM9h4-zZRoZH7GP6sQndA,1335
337
338
  autobyteus/tools/browser/session_aware/factory/browser_session_aware_webpage_screenshot_taker_factory.py,sha256=uxv7cLtlXg9Vdl82_r1K-wEHKfXzrmngGwT8rd5u4JQ,717
338
- autobyteus/tools/browser/standalone/__init__.py,sha256=68N5TpeIyKMW4Y8b7kIO0lyUYIcNPBwZoTg_W9lMfpM,369
339
- autobyteus/tools/browser/standalone/google_search_ui.py,sha256=9tHusVs5jM2Zu1W48_YxAsePZJp9Z8-dOZptl7WURpM,5388
339
+ autobyteus/tools/browser/standalone/__init__.py,sha256=0J-_GM5vmp3iaHBDZXXRaj5gB3EGE0cRHJyJ3N-RDQg,324
340
340
  autobyteus/tools/browser/standalone/navigate_to.py,sha256=Z_V0DRzu-1zwYXTVMaCbCl9ltuEAPqoz7wGvq2IVaoQ,3458
341
341
  autobyteus/tools/browser/standalone/web_page_pdf_generator.py,sha256=UvRrUjJMVyBrG1JqTg67DCrOGboI44Hvard2UO_k9WM,4041
342
342
  autobyteus/tools/browser/standalone/webpage_image_downloader.py,sha256=oH4dnEQBx8DVhitP4tozoHRVO9ue-rGA_ZSJJyJotUI,7159
343
343
  autobyteus/tools/browser/standalone/webpage_reader.py,sha256=9N_NlbB7YnrT_MpkP_nLzWKYopMLM6eWJJ2wQmuGgVI,4254
344
344
  autobyteus/tools/browser/standalone/webpage_screenshot_taker.py,sha256=iy9qwl2zLaHxlc4kuZuLo3Q3tJfWGmiSekXZJzHDOJU,4424
345
345
  autobyteus/tools/browser/standalone/factory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
- autobyteus/tools/browser/standalone/factory/google_search_factory.py,sha256=bgsRr7gix1L96sVwAF19pbQklPPYNEhz2Et6JdIViwE,1120
347
346
  autobyteus/tools/browser/standalone/factory/webpage_reader_factory.py,sha256=R9PJPf7MF3cP8q8ffMKU5-ihPJWHJkVDYXZswZNdGS0,1131
348
347
  autobyteus/tools/browser/standalone/factory/webpage_screenshot_taker_factory.py,sha256=NMS2laBlZAJiXPPub4YRhz1pXtZkfAeMhfRcSAfqu4M,597
349
348
  autobyteus/tools/factory/__init__.py,sha256=EQXbTH6BcqK2SM3JEq2PkLwzZSczExv3KDvlhWHlsGQ,275
@@ -356,7 +355,7 @@ autobyteus/tools/handlers/shell_handler.py,sha256=ClTXqFR45iyD0gcoOPpKRX5p6g_6BI
356
355
  autobyteus/tools/mcp/__init__.py,sha256=gwT34UgJe2rU5y4bYNOLI-PyAmRQTMWKz_WC4f2LcyE,1553
357
356
  autobyteus/tools/mcp/config_service.py,sha256=7OoqZGVxBob4IeeBjChFCpwyI9IJIxlOQDh-OjCffrY,11466
358
357
  autobyteus/tools/mcp/factory.py,sha256=SmPR6mgmwLEfzfole-zKuptKnSyeZEBi1t9gBbwCtZY,2204
359
- autobyteus/tools/mcp/schema_mapper.py,sha256=PJGEAlqCgkoCThLzmkG3jXOXYk6fR1ogjSpOiCuFKsc,7502
358
+ autobyteus/tools/mcp/schema_mapper.py,sha256=9lqT3_dgPf70arknDEccP0y-0Z8sb3bvl6nnW9t2N20,4413
360
359
  autobyteus/tools/mcp/server_instance_manager.py,sha256=pGZZCH9Qp7n6jefwyDsvoo0Pxe7AWCcqIqnXgWt8hyg,6289
361
360
  autobyteus/tools/mcp/tool.py,sha256=HpXSjvQjwwDzGGww1Cz3j4yCCLDiCYEv0RG-q-2BU4o,3380
362
361
  autobyteus/tools/mcp/tool_registrar.py,sha256=RugX4TdiD6IfXF8S6cy2Ae-ZobT6RdRKdx7NLbcBMyI,11028
@@ -367,8 +366,8 @@ autobyteus/tools/mcp/server/http_managed_mcp_server.py,sha256=Kit7zcJxaRXfAXMxYq
367
366
  autobyteus/tools/mcp/server/proxy.py,sha256=08F3m1I_IH2wrRXK29R_NPDB6ITHpo982Mq9G53hbUo,1660
368
367
  autobyteus/tools/mcp/server/stdio_managed_mcp_server.py,sha256=a84GOnhWLg4vx6yo5dI8BlqUA_fdi0M5eNo2a-tGWwM,2085
369
368
  autobyteus/tools/multimedia/__init__.py,sha256=RFmeHDRBJWk8Kn0uzR5m9MbIU1ggc1P0ZoDMKzK54c4,189
370
- autobyteus/tools/multimedia/audio_tools.py,sha256=qtrc-o3PckBzgrIBQUp0lAKjjMRCoLboYTabm0Wcn3Q,4696
371
- autobyteus/tools/multimedia/image_tools.py,sha256=Fqo8VbrzHb9_4jPL8t_j0XOot9Wc653XS4HD8ngeKmw,7712
369
+ autobyteus/tools/multimedia/audio_tools.py,sha256=Nx2ALQH7Yga02ZGjanQ5bNPQhseoHBugVr5I86KvN0c,4621
370
+ autobyteus/tools/multimedia/image_tools.py,sha256=CapwBvNgKBdu4RN6DhCuCeNlZhUweEeIrLqAyVSWYBk,7625
372
371
  autobyteus/tools/operation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
373
372
  autobyteus/tools/operation/file_operation.py,sha256=bAehQ9PfHoCDpk9Wa7vx9h3ohzVuaGzzBUogxleTwq8,2375
374
373
  autobyteus/tools/operation/file_rename_operation.py,sha256=pExiC69HUzYbKihlVumlGHMGxmmrsKQB0JfAM5x4JH0,1710
@@ -382,28 +381,28 @@ autobyteus/tools/usage/formatters/__init__.py,sha256=BThdI_R8Dkda1eHJFr1cQ7nLCgf
382
381
  autobyteus/tools/usage/formatters/anthropic_json_example_formatter.py,sha256=EVVPZ7e1tG3QRcEPjdOC0yTvnGisubfUm9geWbd9r2g,792
383
382
  autobyteus/tools/usage/formatters/anthropic_json_schema_formatter.py,sha256=Cwd4teoZcs64q1xemVYIW9lviH7A0t2jmg3W7TYv_Rs,869
384
383
  autobyteus/tools/usage/formatters/base_formatter.py,sha256=15YQHEV-uHREoi5INA6KWVrniatMbBPIGz82bVkZos8,1283
385
- autobyteus/tools/usage/formatters/default_json_example_formatter.py,sha256=SmMFPYr4mRmuVmwuTjOZxXOqhLBjt1XUpmD0i3VEAXE,5351
384
+ autobyteus/tools/usage/formatters/default_json_example_formatter.py,sha256=6U0Yf9j-5ZNdGNN2hwOv4PbnaJTvgdRKQcW2N8d-HM4,9069
386
385
  autobyteus/tools/usage/formatters/default_json_schema_formatter.py,sha256=mZuHp_irHco3_S-VotSBvv5BRFDlTsmdmSIH3Ut71jY,958
387
- autobyteus/tools/usage/formatters/default_xml_example_formatter.py,sha256=i22vnjOIWO3mLxUoyN7lEwE1oSZ6ATMQW9wC-svThvs,3605
388
- autobyteus/tools/usage/formatters/default_xml_schema_formatter.py,sha256=ZhLhISZSxNxZaexcn73H5yv81qEMxQgBUpZP_84-SBM,2109
389
- autobyteus/tools/usage/formatters/gemini_json_example_formatter.py,sha256=Afuqza-2goEOTwbH3w_W-6PF3pJ2NWW5YJ22NVfIMIw,2184
386
+ autobyteus/tools/usage/formatters/default_xml_example_formatter.py,sha256=vGw6_vZTtcpamDOYykntz_-sYWTMLoXfPNN3WxuUDXc,7185
387
+ autobyteus/tools/usage/formatters/default_xml_schema_formatter.py,sha256=b27dLKG1MQo8SMxagJULEZQZ6zj0CwYm0ExjG2GwwjA,3698
388
+ autobyteus/tools/usage/formatters/gemini_json_example_formatter.py,sha256=sTlhoIwoW8jmvjIki3BVTzAIArk10jQabzndiv_mrs0,3866
390
389
  autobyteus/tools/usage/formatters/gemini_json_schema_formatter.py,sha256=za6FhkrbDUcezc9-u4w4_ytQAQyR8OpKypC_CCTYlBY,875
391
- autobyteus/tools/usage/formatters/google_json_example_formatter.py,sha256=U1ovG6HPG3Eyavey0f1yB970lKqX8pMPfsM5Mzfv9xA,2211
390
+ autobyteus/tools/usage/formatters/google_json_example_formatter.py,sha256=WCs_JS7JuJcVAdgIeuNM2nBl6_mxatTAWTduE1r5Lww,3908
392
391
  autobyteus/tools/usage/formatters/google_json_schema_formatter.py,sha256=gKeuR_QhiebFGja303rg9q9CxgynJxIoCd4SrXuXRUU,868
393
- autobyteus/tools/usage/formatters/openai_json_example_formatter.py,sha256=xvDurFOxAVxzWO4GJPAVeuqUwkhpFokMyzUNlJ-foeg,2411
392
+ autobyteus/tools/usage/formatters/openai_json_example_formatter.py,sha256=s_dSjtG7eF08PDJv2o8zfkilSJ2IzkyqI4yKFF9NwEo,4131
394
393
  autobyteus/tools/usage/formatters/openai_json_schema_formatter.py,sha256=3pN4CnmWiBJaZMhV7qnWcSKPpyZ2cEdiU-FVMRfPT1w,948
395
394
  autobyteus/tools/usage/parsers/__init__.py,sha256=4y235cYvUm60v30m4KCwQ4g9x9yP81QYBhSkUmjFWAU,915
396
395
  autobyteus/tools/usage/parsers/_json_extractor.py,sha256=Q7BJsEcFkEZJ8q-ifIl-7t4FXZgFoFEwFXAGvKFYhCk,3601
397
396
  autobyteus/tools/usage/parsers/anthropic_xml_tool_usage_parser.py,sha256=xAVq7bPlyfZK5YBVsNlXyyc-1J4kyVr4-wDNI0ekl_o,433
398
397
  autobyteus/tools/usage/parsers/base_parser.py,sha256=iNHVUXMzAydnhYeEBgcXU0g8L_H9KTMavOEd-iwDLbk,1366
399
398
  autobyteus/tools/usage/parsers/default_json_tool_usage_parser.py,sha256=jl-VKMubpgI15TuX7tyKmu_4WHb2YUVw5Yz2fy7GXkY,3480
400
- autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py,sha256=FtC_szwfQDCORHSp6XG4omCsQTwyBr2AZCNEX90dFV0,5829
399
+ autobyteus/tools/usage/parsers/default_xml_tool_usage_parser.py,sha256=CQjOS1wkvl_BdRCqJlPYYMjqOh9x3C0WiPR_kUVgyI8,11778
401
400
  autobyteus/tools/usage/parsers/exceptions.py,sha256=CncCSH4IJUYPaCTilj1oPgfZWdCycIxQBrWiSKuWXtc,468
402
401
  autobyteus/tools/usage/parsers/gemini_json_tool_usage_parser.py,sha256=t0vQWhmf4t6-tGq6OeH4o-1w_3eeUxQjHDYNpQ5g6R4,3502
403
402
  autobyteus/tools/usage/parsers/openai_json_tool_usage_parser.py,sha256=wQXe4HAYsvfuLG6Ffv_Rk38ZAN5c1NlaEb7lFq7xbVs,6916
404
403
  autobyteus/tools/usage/parsers/provider_aware_tool_usage_parser.py,sha256=OVPQpNlDCvAIKE5kKXFUIMdaTTK3pyJW2oCQ_bkOPBk,2829
405
404
  autobyteus/tools/usage/providers/__init__.py,sha256=C8GmfzYwzSS2OGv7MbvxtRe0OsIALvkC7rN7OWvA5p4,445
406
- autobyteus/tools/usage/providers/tool_manifest_provider.py,sha256=UVc6LQE10K6UtEI7IYsjhIYWjeMBSGUtaHltMop9wrM,3598
405
+ autobyteus/tools/usage/providers/tool_manifest_provider.py,sha256=r-q9YkNYXEbNApAjufvxGuU4JPiu78x6u60wjTZcnfM,4668
407
406
  autobyteus/tools/usage/registries/__init__.py,sha256=S1jYYPqAjvD1rY0b8zkffBnKz8-_ptftfbgr1lqb7I8,547
408
407
  autobyteus/tools/usage/registries/tool_formatter_pair.py,sha256=Deki2aAEsFY0OSrMQf-4wZcyIInGI7EKQ2ZKenaFtMU,593
409
408
  autobyteus/tools/usage/registries/tool_formatting_registry.py,sha256=zKUDxsoo7X3fw783lpJIzETzTlkXJGoHYmO2rXU1efI,3337
@@ -466,18 +465,18 @@ autobyteus/workflow/streaming/workflow_stream_event_payloads.py,sha256=jv1bVYg-7
466
465
  autobyteus/workflow/streaming/workflow_stream_events.py,sha256=75P29jNgcL7Go7D9wVz236KTwPfmqc5K7hUvVnc94K0,2221
467
466
  autobyteus/workflow/utils/__init__.py,sha256=SzaMZHnJBIJKcT_r-HOeyIcuxzRu2bGeFkOcMLJaalk,222
468
467
  autobyteus/workflow/utils/wait_for_idle.py,sha256=FgHtz59DN0eg8Na1PkkVR55Ihdd2e5Gn_mr7RVHl4qI,2001
469
- autobyteus-1.1.6.dist-info/licenses/LICENSE,sha256=Ompok_c8HRsXRwmax-pGR9OZRRxZC9RPp4JB6eTJd0M,1360
468
+ autobyteus-1.1.8.dist-info/licenses/LICENSE,sha256=Ompok_c8HRsXRwmax-pGR9OZRRxZC9RPp4JB6eTJd0M,1360
470
469
  examples/__init__.py,sha256=BtTQJ6yeHyksK5GC3kfN6RFR6Gcrwq1TBmp6FIIj3Z8,40
471
470
  examples/discover_phase_transitions.py,sha256=NiFK_XzDCpWwmNsQqf0Ou2w6L5bofKIKODq7sH5uPzk,3679
472
471
  examples/run_browser_agent.py,sha256=tpBJGIYYvVsNZAUo_WsZbhV_8fdeORUoHlQ8uQvnXPM,11737
473
- examples/run_google_slides_agent.py,sha256=mNyIk2sWqbL9Yxa8_tX3xhecFZYwHtU0bdYo_53nMu8,13102
472
+ examples/run_google_slides_agent.py,sha256=R3skoCO7gxNKCdqm_Px3YVlzSh5WzJc7KAxqO-x7sJc,13105
474
473
  examples/run_mcp_browser_client.py,sha256=6vEBxGtAuGffkFk-gr3NvqetO84IdhNzip5Jp7V1tSc,6772
475
- examples/run_mcp_google_slides_client.py,sha256=EMG7nG3df3fCrOX_iIncDWSqDdBrifm7gGYWUnkCJ_c,11826
474
+ examples/run_mcp_google_slides_client.py,sha256=l5B4sgDyyVEfL52WUiZw9mJjL5vOuD5ZJlnzIJbA-iw,11824
476
475
  examples/run_mcp_list_tools.py,sha256=-dOM-7xyyDM2gp5e_8KZVGbX5ZxWqFQB9l-fHfR8XxY,7367
477
476
  examples/run_poem_writer.py,sha256=wJsT4ZHwXw3MbPAESwyCkAMWWYt7KH5BLhEDQxA06XM,13145
478
- examples/run_sqlite_agent.py,sha256=c0ktqJ9tExMBgHSzA12Ys9x96ZqS2RBy0iDPFWstUJE,13161
477
+ examples/run_sqlite_agent.py,sha256=wy1Mp_F7RR0WmvfmxsPLG9JFPi6SpTVd0x_Ep76bUQ8,13159
479
478
  examples/agent_team/__init__.py,sha256=WIg0HENp1TUClJ3p2gIRn0C-VW9Qr7Ttqtedr4xQ3Jo,51
480
- autobyteus-1.1.6.dist-info/METADATA,sha256=P2HlIHZPsdW6YSasbdS7y0MG73tt0U4fZpdUHltiyQw,6897
481
- autobyteus-1.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
482
- autobyteus-1.1.6.dist-info/top_level.txt,sha256=vNmK1Y8Irbc0iDPdRtr9gIx5eLM-c2v1ntItkzICzHU,20
483
- autobyteus-1.1.6.dist-info/RECORD,,
479
+ autobyteus-1.1.8.dist-info/METADATA,sha256=cvBLfLpv5ukmQrFsn7HL9P13ZIOoUNzhpeOXfRZMC0g,10173
480
+ autobyteus-1.1.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
481
+ autobyteus-1.1.8.dist-info/top_level.txt,sha256=vNmK1Y8Irbc0iDPdRtr9gIx5eLM-c2v1ntItkzICzHU,20
482
+ autobyteus-1.1.8.dist-info/RECORD,,
@@ -181,7 +181,7 @@ async def main(args: argparse.Namespace):
181
181
  # 3. Discover and register tools by passing the config dictionary directly.
182
182
  # The registrar will handle parsing, validation, and storage.
183
183
  logger.info(f"Performing targeted discovery for remote Google Slides tools from server: '{server_id}'...")
184
- await registrar.discover_and_register_tools(mcp_config=google_slides_mcp_config_dict)
184
+ await registrar.load_and_register_server(config_dict=google_slides_mcp_config_dict)
185
185
  logger.info("Remote tool registration complete.")
186
186
 
187
187
  # 4. Create tool instances from the registry for our agent.
@@ -251,7 +251,7 @@ async def main(args: argparse.Namespace):
251
251
 
252
252
  if __name__ == "__main__":
253
253
  parser = argparse.ArgumentParser(description="Run the GoogleSlidesAgent interactively.")
254
- parser.add_argument("--llm-model", type=str, default="gpt-4o", help=f"The LLM model identifier to use. Call --help-models for list.")
254
+ parser.add_argument("--llm-model", type=str, default="kimi-latest", help=f"The LLM model identifier to use. Call --help-models for list.")
255
255
  parser.add_argument("--help-models", action="store_true", help="Display available LLM models and exit.")
256
256
  parser.add_argument("--debug", action="store_true", help="Enable debug logging.")
257
257
  parser.add_argument("--agent-log-file", type=str, default="./agent_logs_gslides.txt",
@@ -177,7 +177,7 @@ async def main():
177
177
  try:
178
178
  # 3. Discover and register tools by passing the config dictionary directly.
179
179
  logger.info(f"Performing targeted discovery for remote tools from server '{server_id}'...")
180
- await registrar.discover_and_register_tools(mcp_config=google_slides_mcp_config_dict)
180
+ await registrar.load_and_register_server(config_dict=google_slides_mcp_config_dict)
181
181
  # Use the ToolRegistry to get tools by their source server ID.
182
182
  registered_tool_defs = tool_registry.get_tools_by_mcp_server(server_id)
183
183
  logger.info(f"Tool registration complete. Discovered tools: {[t.name for t in registered_tool_defs]}")
@@ -189,7 +189,7 @@ async def main(args: argparse.Namespace):
189
189
  try:
190
190
  # 3. Discover and register tools by passing the config dictionary directly.
191
191
  logger.info(f"Performing targeted discovery for remote SQLite tools from server: '{server_id}'...")
192
- await registrar.discover_and_register_tools(mcp_config=sqlite_mcp_config_dict)
192
+ await registrar.load_and_register_server(config_dict=sqlite_mcp_config_dict)
193
193
  logger.info("Remote tool registration complete.")
194
194
 
195
195
  # 4. Create tool instances from the registry for our agent.
@@ -1,40 +0,0 @@
1
- import asyncio
2
- import logging
3
- from typing import TYPE_CHECKING
4
-
5
- from autobyteus.tools import tool # Main @tool decorator
6
- from autobyteus.tools.tool_category import ToolCategory
7
-
8
- if TYPE_CHECKING:
9
- from autobyteus.agent.context import AgentContext
10
-
11
- logger = logging.getLogger(__name__)
12
-
13
- @tool(name="AskUserInput", category=ToolCategory.USER_INTERACTION)
14
- async def ask_user_input(context: 'AgentContext', request: str) -> str: # Function name can be ask_user_input
15
- """
16
- Requests input from the user based on a given prompt and returns the user's textual response.
17
- 'request' is the prompt or question to present to the user.
18
- """
19
- logger.info(f"Functional AskUserInput tool (agent {context.agent_id}) requesting user input: {request}")
20
-
21
- try:
22
- loop = asyncio.get_event_loop()
23
- user_input_str = await loop.run_in_executor(
24
- None,
25
- lambda: input(f"LLM Agent ({context.agent_id}): {request}\nUser: ")
26
- )
27
-
28
- logger.info(f"User input received for agent {context.agent_id}: '{user_input_str[:50]}...'")
29
- return user_input_str
30
-
31
- except KeyboardInterrupt:
32
- logger.warning(f"User interrupted input process for agent {context.agent_id}.")
33
- return "[Input process interrupted by user]"
34
- except EOFError:
35
- logger.warning(f"EOF error during input for agent {context.agent_id}.")
36
- return "[EOF error occurred during input]"
37
- except Exception as e:
38
- error_message = f"An error occurred while getting user input: {str(e)}"
39
- logger.error(error_message, exc_info=True)
40
- return f"[Error getting user input: {error_message}]"
@@ -1,25 +0,0 @@
1
- from autobyteus.tools.factory.tool_factory import ToolFactory
2
- from autobyteus.tools.browser.standalone.google_search_ui import GoogleSearch
3
- from autobyteus.utils.html_cleaner import CleaningMode
4
- from typing import Optional, TYPE_CHECKING
5
-
6
- if TYPE_CHECKING:
7
- from autobyteus.tools.tool_config import ToolConfig
8
-
9
- class GoogleSearchFactory(ToolFactory):
10
- def __init__(self, cleaning_mode: CleaningMode = CleaningMode.THOROUGH):
11
- self.cleaning_mode = cleaning_mode
12
-
13
- def create_tool(self, config: Optional['ToolConfig'] = None) -> GoogleSearch:
14
- """
15
- Creates an instance of GoogleSearch.
16
- The 'config' parameter is ignored; configuration is set during factory initialization.
17
- """
18
- # This factory passes its own configuration to the tool's constructor.
19
- # The tool's constructor expects a ToolConfig object.
20
- from autobyteus.tools.tool_config import ToolConfig as ConcreteToolConfig
21
-
22
- tool_creation_config = ConcreteToolConfig(
23
- params={"cleaning_mode": self.cleaning_mode}
24
- )
25
- return GoogleSearch(config=tool_creation_config)