microsoft-agents-a365-tooling-extensions-googleadk 0.2.1.dev19__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.
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/PKG-INFO +66 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/README.md +33 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365/tooling/extensions/googleadk/__init__.py +27 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365/tooling/extensions/googleadk/services/__init__.py +15 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365/tooling/extensions/googleadk/services/mcp_tool_registration_service.py +173 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/PKG-INFO +66 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/SOURCES.txt +11 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/dependency_links.txt +1 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/requires.txt +14 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/top_level.txt +2 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/pyproject.toml +76 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/setup.cfg +4 -0
- microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/setup.py +27 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: microsoft-agents-a365-tooling-extensions-googleadk
|
|
3
|
+
Version: 0.2.1.dev19
|
|
4
|
+
Summary: Google ADK integration for Agent 365 Tooling SDK
|
|
5
|
+
Author-email: Microsoft <support@microsoft.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/microsoft/Agent365-python
|
|
8
|
+
Project-URL: Repository, https://github.com/microsoft/Agent365-python
|
|
9
|
+
Project-URL: Issues, https://github.com/microsoft/Agent365-python/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/microsoft/Agent365-python/tree/main/libraries/microsoft-agents-a365-tooling-extensions-googleadk
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
Requires-Dist: microsoft-agents-a365-tooling
|
|
22
|
+
Requires-Dist: microsoft-agents-hosting-core
|
|
23
|
+
Requires-Dist: google-adk
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: pytest; extra == "dev"
|
|
26
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
27
|
+
Requires-Dist: ruff; extra == "dev"
|
|
28
|
+
Requires-Dist: black; extra == "dev"
|
|
29
|
+
Requires-Dist: mypy; extra == "dev"
|
|
30
|
+
Provides-Extra: test
|
|
31
|
+
Requires-Dist: pytest; extra == "test"
|
|
32
|
+
Requires-Dist: pytest-asyncio; extra == "test"
|
|
33
|
+
|
|
34
|
+
# microsoft-agents-a365-tooling-extensions-googleadk
|
|
35
|
+
|
|
36
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
|
|
37
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
|
|
38
|
+
|
|
39
|
+
Google ADK (Agent Development Kit) specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Google ADK-based agents.
|
|
40
|
+
|
|
41
|
+
## Installation
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install microsoft-agents-a365-tooling-extensions-googleadk
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
|
|
50
|
+
|
|
51
|
+
## Support
|
|
52
|
+
|
|
53
|
+
For issues, questions, or feedback:
|
|
54
|
+
|
|
55
|
+
- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
|
|
56
|
+
- See the [main documentation](../../README.md) for more information
|
|
57
|
+
|
|
58
|
+
## Trademarks
|
|
59
|
+
|
|
60
|
+
*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.*
|
|
61
|
+
|
|
62
|
+
## License
|
|
63
|
+
|
|
64
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
65
|
+
|
|
66
|
+
Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# microsoft-agents-a365-tooling-extensions-googleadk
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
|
|
4
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
|
|
5
|
+
|
|
6
|
+
Google ADK (Agent Development Kit) specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Google ADK-based agents.
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pip install microsoft-agents-a365-tooling-extensions-googleadk
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
|
|
17
|
+
|
|
18
|
+
## Support
|
|
19
|
+
|
|
20
|
+
For issues, questions, or feedback:
|
|
21
|
+
|
|
22
|
+
- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
|
|
23
|
+
- See the [main documentation](../../README.md) for more information
|
|
24
|
+
|
|
25
|
+
## Trademarks
|
|
26
|
+
|
|
27
|
+
*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.*
|
|
28
|
+
|
|
29
|
+
## License
|
|
30
|
+
|
|
31
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32
|
+
|
|
33
|
+
Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Google ADK extensions for Microsoft Agent 365 Tooling SDK
|
|
6
|
+
|
|
7
|
+
Google ADK (Agent Development Kit) specific tools and services for AI agent development.
|
|
8
|
+
Provides MCP (Model Context Protocol) tool registration service for dynamically
|
|
9
|
+
adding MCP servers to Google ADK-based agents.
|
|
10
|
+
|
|
11
|
+
Main Service:
|
|
12
|
+
- McpToolRegistrationService: Add MCP tool servers to Google ADK agents
|
|
13
|
+
|
|
14
|
+
This module includes implementations for:
|
|
15
|
+
- Google ADK agent creation with MCP (Model Context Protocol) server support
|
|
16
|
+
- MCP tool registration service for dynamically adding MCP servers to agents
|
|
17
|
+
- Authentication and authorization patterns for MCP server discovery
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
__version__ = "1.0.0"
|
|
21
|
+
|
|
22
|
+
# Import services from the services module
|
|
23
|
+
from .services import McpToolRegistrationService
|
|
24
|
+
|
|
25
|
+
__all__ = [
|
|
26
|
+
"McpToolRegistrationService",
|
|
27
|
+
]
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Services module for Google ADK tooling.
|
|
6
|
+
|
|
7
|
+
This package contains service implementations for MCP tool registration
|
|
8
|
+
and management within the Google ADK framework.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from .mcp_tool_registration_service import McpToolRegistrationService
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
"McpToolRegistrationService",
|
|
15
|
+
]
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
MCP Tool Registration Service for Google ADK.
|
|
6
|
+
|
|
7
|
+
This service provides MCP (Model Context Protocol) tool registration
|
|
8
|
+
capabilities for Google ADK-based agents.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
# Standard library imports
|
|
12
|
+
import logging
|
|
13
|
+
from typing import List, Optional
|
|
14
|
+
|
|
15
|
+
# Third-party imports
|
|
16
|
+
from google.adk.agents import Agent
|
|
17
|
+
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset, StreamableHTTPConnectionParams
|
|
18
|
+
|
|
19
|
+
# Local imports
|
|
20
|
+
from microsoft_agents.hosting.core import Authorization, TurnContext
|
|
21
|
+
from microsoft_agents_a365.runtime.utility import Utility
|
|
22
|
+
from microsoft_agents_a365.tooling.models import ToolOptions
|
|
23
|
+
from microsoft_agents_a365.tooling.services.mcp_tool_server_configuration_service import (
|
|
24
|
+
McpToolServerConfigurationService,
|
|
25
|
+
)
|
|
26
|
+
from microsoft_agents_a365.tooling.utils.constants import Constants
|
|
27
|
+
from microsoft_agents_a365.tooling.utils.utility import (
|
|
28
|
+
get_mcp_platform_authentication_scope,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class McpToolRegistrationService:
|
|
33
|
+
"""
|
|
34
|
+
Provides MCP tool registration services for Google ADK agents.
|
|
35
|
+
|
|
36
|
+
This service handles registration and management of MCP (Model Context Protocol)
|
|
37
|
+
tool servers with Google ADK agents.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
_orchestrator_name: str = "GoogleADK"
|
|
41
|
+
|
|
42
|
+
def __init__(self, logger: Optional[logging.Logger] = None):
|
|
43
|
+
"""
|
|
44
|
+
Initialize the MCP Tool Registration Service for Google ADK.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
logger: Logger instance for logging operations.
|
|
48
|
+
"""
|
|
49
|
+
self._logger = logger or logging.getLogger(self.__class__.__name__)
|
|
50
|
+
self._mcp_server_configuration_service = McpToolServerConfigurationService(
|
|
51
|
+
logger=self._logger
|
|
52
|
+
)
|
|
53
|
+
self._connected_servers: List[McpToolset] = []
|
|
54
|
+
|
|
55
|
+
async def add_tool_servers_to_agent(
|
|
56
|
+
self,
|
|
57
|
+
agent: Agent,
|
|
58
|
+
auth: Authorization,
|
|
59
|
+
auth_handler_name: str,
|
|
60
|
+
context: TurnContext,
|
|
61
|
+
auth_token: Optional[str] = None,
|
|
62
|
+
) -> None:
|
|
63
|
+
"""
|
|
64
|
+
Add new MCP servers to the agent from MCP Platform.
|
|
65
|
+
|
|
66
|
+
Note: Modifies the provided agent in place to add new MCP tool servers.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
agent: The existing agent to add servers to.
|
|
70
|
+
auth: Authorization object used to exchange tokens for MCP server access.
|
|
71
|
+
auth_handler_name: Name of the authorization handler.
|
|
72
|
+
context: TurnContext object representing the current turn/session context.
|
|
73
|
+
auth_token: Authentication token to access the MCP servers.
|
|
74
|
+
If not provided, will be obtained using `auth` and `context`.
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
None
|
|
78
|
+
"""
|
|
79
|
+
if not auth_token:
|
|
80
|
+
scopes = get_mcp_platform_authentication_scope()
|
|
81
|
+
auth_token_obj = await auth.exchange_token(context, scopes, auth_handler_name)
|
|
82
|
+
auth_token = auth_token_obj.token
|
|
83
|
+
|
|
84
|
+
agentic_app_id = Utility.resolve_agent_identity(context, auth_token)
|
|
85
|
+
self._logger.info(f"Listing MCP tool servers for agent {agentic_app_id}")
|
|
86
|
+
|
|
87
|
+
options = ToolOptions(orchestrator_name=self._orchestrator_name)
|
|
88
|
+
mcp_server_configs = await self._mcp_server_configuration_service.list_tool_servers(
|
|
89
|
+
agentic_app_id=agentic_app_id,
|
|
90
|
+
auth_token=auth_token,
|
|
91
|
+
options=options,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
self._logger.info(f"Loaded {len(mcp_server_configs)} MCP server configurations")
|
|
95
|
+
|
|
96
|
+
# Collect existing server URLs to prevent duplicates (use set for O(1) lookup)
|
|
97
|
+
existing_server_urls = set()
|
|
98
|
+
for tool in agent.tools:
|
|
99
|
+
# Check if the tool is an McpToolset and has a connection_params.url
|
|
100
|
+
if hasattr(tool, "connection_params") and hasattr(tool.connection_params, "url"):
|
|
101
|
+
existing_server_urls.add(tool.connection_params.url)
|
|
102
|
+
|
|
103
|
+
self._logger.debug(f"Found {len(existing_server_urls)} existing MCP servers in agent")
|
|
104
|
+
|
|
105
|
+
# Convert MCP server configs to McpToolset objects (only new ones)
|
|
106
|
+
mcp_servers_info = []
|
|
107
|
+
mcp_server_headers = {
|
|
108
|
+
Constants.Headers.AUTHORIZATION: f"{Constants.Headers.BEARER_PREFIX} {auth_token}",
|
|
109
|
+
Constants.Headers.USER_AGENT: Utility.get_user_agent_header(self._orchestrator_name),
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
for server_config in mcp_server_configs:
|
|
113
|
+
# Skip if server URL already exists
|
|
114
|
+
if server_config.url in existing_server_urls:
|
|
115
|
+
self._logger.debug(
|
|
116
|
+
f"Skipping MCP server '{server_config.mcp_server_name}' "
|
|
117
|
+
f"at {server_config.url} - already exists in agent"
|
|
118
|
+
)
|
|
119
|
+
continue
|
|
120
|
+
|
|
121
|
+
try:
|
|
122
|
+
server_info = McpToolset(
|
|
123
|
+
connection_params=StreamableHTTPConnectionParams(
|
|
124
|
+
url=server_config.url,
|
|
125
|
+
headers=mcp_server_headers,
|
|
126
|
+
)
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
mcp_servers_info.append(server_info)
|
|
130
|
+
self._connected_servers.append(server_info)
|
|
131
|
+
existing_server_urls.add(server_config.url)
|
|
132
|
+
self._logger.info(
|
|
133
|
+
f"Created MCP toolset for '{server_config.mcp_server_name}' "
|
|
134
|
+
f"at {server_config.url}"
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
except (ConnectionError, TimeoutError, ValueError) as tool_ex:
|
|
138
|
+
# Expected connection/configuration errors
|
|
139
|
+
self._logger.warning(
|
|
140
|
+
f"Failed to create MCP toolset for '{server_config.mcp_server_name}': {tool_ex}"
|
|
141
|
+
)
|
|
142
|
+
continue
|
|
143
|
+
except Exception as tool_ex:
|
|
144
|
+
# Unexpected errors - log at ERROR level with full traceback
|
|
145
|
+
self._logger.error(
|
|
146
|
+
f"Unexpected error creating MCP toolset for '{server_config.mcp_server_name}': {tool_ex}",
|
|
147
|
+
exc_info=True,
|
|
148
|
+
)
|
|
149
|
+
continue
|
|
150
|
+
|
|
151
|
+
# Only modify agent.tools if we have new servers to add
|
|
152
|
+
if mcp_servers_info:
|
|
153
|
+
all_tools = list(agent.tools) + mcp_servers_info
|
|
154
|
+
agent.tools = all_tools
|
|
155
|
+
self._logger.info(
|
|
156
|
+
f"Successfully configured agent with {len(mcp_servers_info)} new MCP tool servers "
|
|
157
|
+
f"(total tools: {len(all_tools)})"
|
|
158
|
+
)
|
|
159
|
+
else:
|
|
160
|
+
self._logger.info("No new MCP servers to add to agent")
|
|
161
|
+
|
|
162
|
+
async def cleanup(self):
|
|
163
|
+
"""Clean up any resources used by the service."""
|
|
164
|
+
try:
|
|
165
|
+
for toolset in self._connected_servers:
|
|
166
|
+
try:
|
|
167
|
+
if hasattr(toolset, "close"):
|
|
168
|
+
await toolset.close()
|
|
169
|
+
except Exception as cleanup_ex:
|
|
170
|
+
self._logger.debug(f"Error during cleanup: {cleanup_ex}")
|
|
171
|
+
self._connected_servers.clear()
|
|
172
|
+
except Exception as ex:
|
|
173
|
+
self._logger.debug(f"Error during service cleanup: {ex}")
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: microsoft-agents-a365-tooling-extensions-googleadk
|
|
3
|
+
Version: 0.2.1.dev19
|
|
4
|
+
Summary: Google ADK integration for Agent 365 Tooling SDK
|
|
5
|
+
Author-email: Microsoft <support@microsoft.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/microsoft/Agent365-python
|
|
8
|
+
Project-URL: Repository, https://github.com/microsoft/Agent365-python
|
|
9
|
+
Project-URL: Issues, https://github.com/microsoft/Agent365-python/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/microsoft/Agent365-python/tree/main/libraries/microsoft-agents-a365-tooling-extensions-googleadk
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
Requires-Dist: microsoft-agents-a365-tooling
|
|
22
|
+
Requires-Dist: microsoft-agents-hosting-core
|
|
23
|
+
Requires-Dist: google-adk
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: pytest; extra == "dev"
|
|
26
|
+
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
27
|
+
Requires-Dist: ruff; extra == "dev"
|
|
28
|
+
Requires-Dist: black; extra == "dev"
|
|
29
|
+
Requires-Dist: mypy; extra == "dev"
|
|
30
|
+
Provides-Extra: test
|
|
31
|
+
Requires-Dist: pytest; extra == "test"
|
|
32
|
+
Requires-Dist: pytest-asyncio; extra == "test"
|
|
33
|
+
|
|
34
|
+
# microsoft-agents-a365-tooling-extensions-googleadk
|
|
35
|
+
|
|
36
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
|
|
37
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
|
|
38
|
+
|
|
39
|
+
Google ADK (Agent Development Kit) specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Google ADK-based agents.
|
|
40
|
+
|
|
41
|
+
## Installation
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install microsoft-agents-a365-tooling-extensions-googleadk
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
|
|
50
|
+
|
|
51
|
+
## Support
|
|
52
|
+
|
|
53
|
+
For issues, questions, or feedback:
|
|
54
|
+
|
|
55
|
+
- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
|
|
56
|
+
- See the [main documentation](../../README.md) for more information
|
|
57
|
+
|
|
58
|
+
## Trademarks
|
|
59
|
+
|
|
60
|
+
*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.*
|
|
61
|
+
|
|
62
|
+
## License
|
|
63
|
+
|
|
64
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
65
|
+
|
|
66
|
+
Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
setup.py
|
|
4
|
+
microsoft_agents_a365/tooling/extensions/googleadk/__init__.py
|
|
5
|
+
microsoft_agents_a365/tooling/extensions/googleadk/services/__init__.py
|
|
6
|
+
microsoft_agents_a365/tooling/extensions/googleadk/services/mcp_tool_registration_service.py
|
|
7
|
+
microsoft_agents_a365_tooling_extensions_googleadk.egg-info/PKG-INFO
|
|
8
|
+
microsoft_agents_a365_tooling_extensions_googleadk.egg-info/SOURCES.txt
|
|
9
|
+
microsoft_agents_a365_tooling_extensions_googleadk.egg-info/dependency_links.txt
|
|
10
|
+
microsoft_agents_a365_tooling_extensions_googleadk.egg-info/requires.txt
|
|
11
|
+
microsoft_agents_a365_tooling_extensions_googleadk.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel", "tzdata"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "microsoft-agents-a365-tooling-extensions-googleadk"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "Microsoft", email = "support@microsoft.com" },
|
|
10
|
+
]
|
|
11
|
+
description = "Google ADK integration for Agent 365 Tooling SDK"
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
requires-python = ">=3.11"
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 3 - Alpha",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
22
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
23
|
+
]
|
|
24
|
+
license = {text = "MIT"}
|
|
25
|
+
dependencies = [
|
|
26
|
+
"microsoft-agents-a365-tooling",
|
|
27
|
+
"microsoft-agents-hosting-core",
|
|
28
|
+
"google-adk",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[project.urls]
|
|
32
|
+
Homepage = "https://github.com/microsoft/Agent365-python"
|
|
33
|
+
Repository = "https://github.com/microsoft/Agent365-python"
|
|
34
|
+
Issues = "https://github.com/microsoft/Agent365-python/issues"
|
|
35
|
+
Documentation = "https://github.com/microsoft/Agent365-python/tree/main/libraries/microsoft-agents-a365-tooling-extensions-googleadk"
|
|
36
|
+
|
|
37
|
+
[project.optional-dependencies]
|
|
38
|
+
dev = [
|
|
39
|
+
"pytest",
|
|
40
|
+
"pytest-asyncio",
|
|
41
|
+
"ruff",
|
|
42
|
+
"black",
|
|
43
|
+
"mypy",
|
|
44
|
+
]
|
|
45
|
+
test = [
|
|
46
|
+
"pytest",
|
|
47
|
+
"pytest-asyncio",
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
[tool.setuptools.packages.find]
|
|
51
|
+
where = ["."]
|
|
52
|
+
|
|
53
|
+
[tool.setuptools]
|
|
54
|
+
license-files = ["../../LICENSE"]
|
|
55
|
+
include-package-data = true
|
|
56
|
+
|
|
57
|
+
[tool.setuptools.package-data]
|
|
58
|
+
"*" = ["../../LICENSE"]
|
|
59
|
+
|
|
60
|
+
[tool.black]
|
|
61
|
+
line-length = 100
|
|
62
|
+
target-version = ['py311']
|
|
63
|
+
|
|
64
|
+
[tool.ruff]
|
|
65
|
+
line-length = 100
|
|
66
|
+
target-version = "py311"
|
|
67
|
+
|
|
68
|
+
[tool.ruff.lint.flake8-copyright]
|
|
69
|
+
notice-rgx = "# Copyright \\(c\\) Microsoft Corporation\\.\\r?\\n# Licensed under the MIT License\\."
|
|
70
|
+
min-file-size = 1
|
|
71
|
+
|
|
72
|
+
[tool.mypy]
|
|
73
|
+
python_version = "3.11"
|
|
74
|
+
strict = true
|
|
75
|
+
warn_return_any = true
|
|
76
|
+
warn_unused_configs = true
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
import sys
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from os import environ
|
|
7
|
+
from setuptools import setup
|
|
8
|
+
|
|
9
|
+
# Get version from environment variable set by CI/CD
|
|
10
|
+
package_version = environ.get("AGENT365_PYTHON_SDK_PACKAGE_VERSION", "0.0.0")
|
|
11
|
+
|
|
12
|
+
# Add versioning helper to path
|
|
13
|
+
helper_path = Path(__file__).parent.parent.parent / "versioning" / "helper"
|
|
14
|
+
sys.path.insert(0, str(helper_path))
|
|
15
|
+
|
|
16
|
+
from setup_utils import get_dynamic_dependencies # noqa: E402
|
|
17
|
+
|
|
18
|
+
# Use exact version matching for internal dependencies:
|
|
19
|
+
# - Internal packages get: == current_version (e.g., == 1.2.3)
|
|
20
|
+
# - Ensures all SDK packages must be at the same version
|
|
21
|
+
# - Prevents incompatibility issues from version mismatches
|
|
22
|
+
setup(
|
|
23
|
+
version=package_version,
|
|
24
|
+
install_requires=get_dynamic_dependencies(
|
|
25
|
+
use_exact_match=True,
|
|
26
|
+
),
|
|
27
|
+
)
|