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.
Files changed (13) hide show
  1. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/PKG-INFO +66 -0
  2. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/README.md +33 -0
  3. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365/tooling/extensions/googleadk/__init__.py +27 -0
  4. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365/tooling/extensions/googleadk/services/__init__.py +15 -0
  5. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365/tooling/extensions/googleadk/services/mcp_tool_registration_service.py +173 -0
  6. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/PKG-INFO +66 -0
  7. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/SOURCES.txt +11 -0
  8. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/dependency_links.txt +1 -0
  9. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/requires.txt +14 -0
  10. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/microsoft_agents_a365_tooling_extensions_googleadk.egg-info/top_level.txt +2 -0
  11. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/pyproject.toml +76 -0
  12. microsoft_agents_a365_tooling_extensions_googleadk-0.2.1.dev19/setup.cfg +4 -0
  13. 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
+ [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-a365-tooling-extensions-googleadk?label=PyPI&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
37
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/microsoft-agents-a365-tooling-extensions-googleadk?label=Downloads&logo=pypi)](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
+ [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-a365-tooling-extensions-googleadk?label=PyPI&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
4
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/microsoft-agents-a365-tooling-extensions-googleadk?label=Downloads&logo=pypi)](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
+ [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-a365-tooling-extensions-googleadk?label=PyPI&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-googleadk)
37
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/microsoft-agents-a365-tooling-extensions-googleadk?label=Downloads&logo=pypi)](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,14 @@
1
+ microsoft-agents-a365-tooling
2
+ microsoft-agents-hosting-core
3
+ google-adk
4
+
5
+ [dev]
6
+ pytest
7
+ pytest-asyncio
8
+ ruff
9
+ black
10
+ mypy
11
+
12
+ [test]
13
+ pytest
14
+ pytest-asyncio
@@ -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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -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
+ )