microsoft-agents-a365-tooling-extensions-azureaifoundry 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (13) hide show
  1. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/PKG-INFO +67 -0
  2. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/README.md +33 -0
  3. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365/tooling/extensions/azureaifoundry/__init__.py +21 -0
  4. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365/tooling/extensions/azureaifoundry/services/__init__.py +16 -0
  5. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365/tooling/extensions/azureaifoundry/services/mcp_tool_registration_service.py +207 -0
  6. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/PKG-INFO +67 -0
  7. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/SOURCES.txt +11 -0
  8. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/dependency_links.txt +1 -0
  9. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/requires.txt +15 -0
  10. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/top_level.txt +1 -0
  11. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/pyproject.toml +73 -0
  12. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/setup.cfg +4 -0
  13. microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/setup.py +28 -0
@@ -0,0 +1,67 @@
1
+ Metadata-Version: 2.4
2
+ Name: microsoft-agents-a365-tooling-extensions-azureaifoundry
3
+ Version: 0.1.0
4
+ Summary: Azure AI Foundry 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-azureaifoundry
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>=0.0.0
22
+ Requires-Dist: azure-ai-projects>=2.0.0b1
23
+ Requires-Dist: azure-ai-agents>=1.0.0b251001
24
+ Requires-Dist: azure-identity>=1.12.0
25
+ Provides-Extra: dev
26
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
27
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
28
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
29
+ Requires-Dist: black>=23.0.0; extra == "dev"
30
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
31
+ Provides-Extra: test
32
+ Requires-Dist: pytest>=7.0.0; extra == "test"
33
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
34
+
35
+ # microsoft-agents-a365-tooling-extensions-azureaifoundry
36
+
37
+ [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-a365-tooling-extensions-azureaifoundry?label=PyPI&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
38
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/microsoft-agents-a365-tooling-extensions-azureaifoundry?label=Downloads&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
39
+
40
+ Azure AI Foundry specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Azure AI Foundry agents.
41
+
42
+ ## Installation
43
+
44
+ ```bash
45
+ pip install microsoft-agents-a365-tooling-extensions-azureaifoundry
46
+ ```
47
+
48
+ ## Usage
49
+
50
+ For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
51
+
52
+ ## Support
53
+
54
+ For issues, questions, or feedback:
55
+
56
+ - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
57
+ - See the [main documentation](../../../README.md) for more information
58
+
59
+ ## Trademarks
60
+
61
+ *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.*
62
+
63
+ ## License
64
+
65
+ Copyright (c) Microsoft Corporation. All rights reserved.
66
+
67
+ Licensed under the MIT License - see the [LICENSE](../../../LICENSE.md) file for details.
@@ -0,0 +1,33 @@
1
+ # microsoft-agents-a365-tooling-extensions-azureaifoundry
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-a365-tooling-extensions-azureaifoundry?label=PyPI&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
4
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/microsoft-agents-a365-tooling-extensions-azureaifoundry?label=Downloads&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
5
+
6
+ Azure AI Foundry specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Azure AI Foundry agents.
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ pip install microsoft-agents-a365-tooling-extensions-azureaifoundry
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,21 @@
1
+ # Copyright (c) Microsoft Corporation.
2
+ # Licensed under the MIT License.
3
+
4
+ """
5
+ Azure AI Foundry extension for Microsoft Agent 365 Tooling SDK
6
+
7
+ Azure AI Foundry specific tools and services for AI agent development.
8
+ Provides Azure AI Foundry-specific implementations and utilities for
9
+ building agents with Azure AI Foundry capabilities.
10
+ """
11
+
12
+ __version__ = "1.0.0"
13
+
14
+ # Import services
15
+ from .services import (
16
+ McpToolRegistrationService,
17
+ )
18
+
19
+ __all__ = [
20
+ "McpToolRegistrationService",
21
+ ]
@@ -0,0 +1,16 @@
1
+ # Copyright (c) Microsoft. All rights reserved.
2
+
3
+ """
4
+ Azure Foundry Services Module.
5
+
6
+ This module contains service implementations for Azure Foundry integration,
7
+ including MCP (Model Context Protocol) tool registration and management.
8
+ """
9
+
10
+ from .mcp_tool_registration_service import (
11
+ McpToolRegistrationService,
12
+ )
13
+
14
+ __all__ = [
15
+ "McpToolRegistrationService",
16
+ ]
@@ -0,0 +1,207 @@
1
+ # Copyright (c) Microsoft. All rights reserved.
2
+
3
+ """
4
+ MCP Tool Registration Service implementation for Azure Foundry.
5
+
6
+ This module provides the concrete implementation of the MCP (Model Context Protocol)
7
+ tool registration service that integrates with Azure Foundry to add MCP tool
8
+ servers to agents.
9
+ """
10
+
11
+ # Standard library imports
12
+ import logging
13
+ from typing import Optional, List, Tuple
14
+
15
+ # Third-party imports - Azure AI
16
+ from azure.ai.projects import AIProjectClient
17
+ from azure.identity import DefaultAzureCredential
18
+ from azure.ai.agents.models import McpTool, ToolResources
19
+ from microsoft_agents.hosting.core import Authorization, TurnContext
20
+ from microsoft_agents_a365.runtime.utility import Utility
21
+ from microsoft_agents_a365.tooling.services.mcp_tool_server_configuration_service import (
22
+ McpToolServerConfigurationService,
23
+ )
24
+ from microsoft_agents_a365.tooling.utils.constants import Constants
25
+ from microsoft_agents_a365.tooling.utils.utility import get_mcp_platform_authentication_scope
26
+
27
+
28
+ class McpToolRegistrationService:
29
+ """
30
+ Provides MCP tool registration services for Azure Foundry agents.
31
+
32
+ This service handles registration and management of MCP (Model Context Protocol)
33
+ tool servers with Azure Foundry agents using the Azure AI SDK. It provides
34
+ seamless integration between MCP servers and Azure Foundry's agent framework.
35
+
36
+ Features:
37
+ - Automatic MCP server discovery and configuration
38
+ - Azure identity integration with DefaultAzureCredential
39
+ - Tool definitions and resources management
40
+ - Support for both development (ToolingManifest.json) and production (gateway API) scenarios
41
+ - Comprehensive error handling and logging
42
+
43
+ Example:
44
+ >>> service = McpToolRegistrationService()
45
+ >>> service.add_tool_servers_to_agent(project_client, agent_id, token)
46
+ """
47
+
48
+ def __init__(
49
+ self,
50
+ logger: Optional[logging.Logger] = None,
51
+ credential: Optional["DefaultAzureCredential"] = None,
52
+ ):
53
+ """
54
+ Initialize the MCP Tool Registration Service for Azure Foundry.
55
+
56
+ Args:
57
+ logger: Logger instance for logging operations.
58
+ credential: Azure credential for authentication. If None, DefaultAzureCredential will be used.
59
+ """
60
+ self._logger = logger or logging.getLogger(self.__class__.__name__)
61
+ self._credential = credential or DefaultAzureCredential()
62
+ self._mcp_server_configuration_service = McpToolServerConfigurationService(
63
+ logger=self._logger
64
+ )
65
+
66
+ # ============================================================================
67
+ # Public Methods - Main Entry Points
68
+ # ============================================================================
69
+
70
+ async def add_tool_servers_to_agent(
71
+ self,
72
+ project_client: "AIProjectClient",
73
+ auth: Authorization,
74
+ auth_handler_name: str,
75
+ context: TurnContext,
76
+ auth_token: Optional[str] = None,
77
+ ) -> None:
78
+ """
79
+ Adds MCP tool servers to an Azure Foundry agent.
80
+
81
+ Args:
82
+ project_client: The Azure Foundry AIProjectClient instance.
83
+ auth: Authorization handler for token exchange.
84
+ auth_handler_name: Name of the authorization handler.
85
+ context: Turn context for the current operation.
86
+ auth_token: Authentication token to access the MCP servers.
87
+
88
+ Raises:
89
+ ValueError: If project_client is None or required parameters are invalid.
90
+ Exception: If there's an error during MCP tool registration.
91
+ """
92
+ if project_client is None:
93
+ raise ValueError("project_client cannot be None")
94
+
95
+ if not auth_token:
96
+ scopes = get_mcp_platform_authentication_scope()
97
+ authToken = await auth.exchange_token(context, scopes, auth_handler_name)
98
+ auth_token = authToken.token
99
+
100
+ try:
101
+ agentic_app_id = Utility.resolve_agent_identity(context, auth_token)
102
+ # Get the tool definitions and resources using the async implementation
103
+ tool_definitions, tool_resources = await self._get_mcp_tool_definitions_and_resources(
104
+ agentic_app_id, auth_token or ""
105
+ )
106
+
107
+ # Update the agent with the tools
108
+ project_client.agents.update_agent(
109
+ agentic_app_id, tools=tool_definitions, tool_resources=tool_resources
110
+ )
111
+
112
+ self._logger.info(
113
+ f"Successfully configured {len(tool_definitions)} MCP tool servers for agent"
114
+ )
115
+
116
+ except Exception as ex:
117
+ self._logger.error(
118
+ f"Unhandled failure during MCP tool registration workflow for agent user {agentic_app_id}: {ex}"
119
+ )
120
+ raise
121
+
122
+ async def _get_mcp_tool_definitions_and_resources(
123
+ self, agentic_app_id: str, auth_token: str
124
+ ) -> Tuple[List[McpTool], Optional[ToolResources]]:
125
+ """
126
+ Internal method to get MCP tool definitions and resources.
127
+
128
+ This implements the core logic equivalent to the C# method of the same name.
129
+
130
+ Args:
131
+ agentic_app_id: Agentic App ID for the agent.
132
+ auth_token: Authentication token to access the MCP servers.
133
+
134
+ Returns:
135
+ Tuple containing tool definitions and resources.
136
+ """
137
+ if self._mcp_server_configuration_service is None:
138
+ self._logger.error("MCP server configuration service is not available")
139
+ return ([], None)
140
+
141
+ # Get MCP server configurations
142
+ try:
143
+ servers = await self._mcp_server_configuration_service.list_tool_servers(
144
+ agentic_app_id, auth_token
145
+ )
146
+ except Exception as ex:
147
+ self._logger.error(
148
+ f"Failed to list MCP tool servers for AgenticAppId={agentic_app_id}: {ex}"
149
+ )
150
+ return ([], None)
151
+
152
+ if len(servers) == 0:
153
+ self._logger.info(f"No MCP servers configured for AgenticAppId={agentic_app_id}")
154
+ return ([], None)
155
+
156
+ # Collections to build for the return value
157
+ tool_definitions: List[McpTool] = []
158
+ combined_tool_resources = ToolResources()
159
+
160
+ for server in servers:
161
+ # Validate server configuration
162
+ if not server.mcp_server_name or not server.mcp_server_unique_name:
163
+ self._logger.warning(
164
+ f"Skipping invalid MCP server config: Name='{server.mcp_server_name}', Url='{server.mcp_server_unique_name}'"
165
+ )
166
+ continue
167
+
168
+ # TODO: The Foundry SDK currently allows MCP label names without the "mcp_" prefix,
169
+ # which is unintended and has been identified as a bug.
170
+ # This change should be reverted once the official fix is availab
171
+ server_label = (
172
+ server.mcp_server_name[4:]
173
+ if server.mcp_server_name.lower().startswith("mcp_")
174
+ else server.mcp_server_name
175
+ )
176
+
177
+ # Create MCP tool using Azure Foundry SDK
178
+ mcp_tool = McpTool(server_label=server_label, server_url=server.mcp_server_unique_name)
179
+
180
+ # Configure the tool
181
+ mcp_tool.set_approval_mode("never")
182
+
183
+ # Set up authorization header
184
+ if auth_token:
185
+ header_value = (
186
+ auth_token
187
+ if auth_token.lower().startswith(f"{Constants.Headers.BEARER_PREFIX.lower()} ")
188
+ else f"{Constants.Headers.BEARER_PREFIX} {auth_token}"
189
+ )
190
+ mcp_tool.update_headers(Constants.Headers.AUTHORIZATION, header_value)
191
+
192
+ # Add to collections
193
+ tool_definitions.extend(mcp_tool.definitions)
194
+ if mcp_tool.resources and mcp_tool.resources.mcp:
195
+ if combined_tool_resources.mcp is None:
196
+ combined_tool_resources.mcp = []
197
+ combined_tool_resources.mcp.extend(mcp_tool.resources.mcp)
198
+
199
+ # Return None if no servers were processed successfully
200
+ if combined_tool_resources.mcp is None or len(combined_tool_resources.mcp) == 0:
201
+ combined_tool_resources = None
202
+
203
+ self._logger.info(
204
+ f"Processed {len(servers)} MCP servers, created {len(tool_definitions)} tool definitions"
205
+ )
206
+
207
+ return (tool_definitions, combined_tool_resources)
@@ -0,0 +1,67 @@
1
+ Metadata-Version: 2.4
2
+ Name: microsoft-agents-a365-tooling-extensions-azureaifoundry
3
+ Version: 0.1.0
4
+ Summary: Azure AI Foundry 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-azureaifoundry
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>=0.0.0
22
+ Requires-Dist: azure-ai-projects>=2.0.0b1
23
+ Requires-Dist: azure-ai-agents>=1.0.0b251001
24
+ Requires-Dist: azure-identity>=1.12.0
25
+ Provides-Extra: dev
26
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
27
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
28
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
29
+ Requires-Dist: black>=23.0.0; extra == "dev"
30
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
31
+ Provides-Extra: test
32
+ Requires-Dist: pytest>=7.0.0; extra == "test"
33
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
34
+
35
+ # microsoft-agents-a365-tooling-extensions-azureaifoundry
36
+
37
+ [![PyPI](https://img.shields.io/pypi/v/microsoft-agents-a365-tooling-extensions-azureaifoundry?label=PyPI&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
38
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/microsoft-agents-a365-tooling-extensions-azureaifoundry?label=Downloads&logo=pypi)](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
39
+
40
+ Azure AI Foundry specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Azure AI Foundry agents.
41
+
42
+ ## Installation
43
+
44
+ ```bash
45
+ pip install microsoft-agents-a365-tooling-extensions-azureaifoundry
46
+ ```
47
+
48
+ ## Usage
49
+
50
+ For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
51
+
52
+ ## Support
53
+
54
+ For issues, questions, or feedback:
55
+
56
+ - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
57
+ - See the [main documentation](../../../README.md) for more information
58
+
59
+ ## Trademarks
60
+
61
+ *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.*
62
+
63
+ ## License
64
+
65
+ Copyright (c) Microsoft Corporation. All rights reserved.
66
+
67
+ 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/azureaifoundry/__init__.py
5
+ microsoft_agents_a365/tooling/extensions/azureaifoundry/services/__init__.py
6
+ microsoft_agents_a365/tooling/extensions/azureaifoundry/services/mcp_tool_registration_service.py
7
+ microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/PKG-INFO
8
+ microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/SOURCES.txt
9
+ microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/dependency_links.txt
10
+ microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/requires.txt
11
+ microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/top_level.txt
@@ -0,0 +1,15 @@
1
+ microsoft-agents-a365-tooling>=0.0.0
2
+ azure-ai-projects>=2.0.0b1
3
+ azure-ai-agents>=1.0.0b251001
4
+ azure-identity>=1.12.0
5
+
6
+ [dev]
7
+ pytest>=7.0.0
8
+ pytest-asyncio>=0.21.0
9
+ ruff>=0.1.0
10
+ black>=23.0.0
11
+ mypy>=1.0.0
12
+
13
+ [test]
14
+ pytest>=7.0.0
15
+ pytest-asyncio>=0.21.0
@@ -0,0 +1,73 @@
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-azureaifoundry"
7
+ dynamic = ["version"]
8
+ authors = [
9
+ { name = "Microsoft", email = "support@microsoft.com" },
10
+ ]
11
+ description = "Azure AI Foundry 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 >= 0.0.0",
27
+ "azure-ai-projects >= 2.0.0b1",
28
+ "azure-ai-agents >= 1.0.0b251001",
29
+ "azure-identity >= 1.12.0",
30
+ ]
31
+
32
+ [project.urls]
33
+ Homepage = "https://github.com/microsoft/Agent365-python"
34
+ Repository = "https://github.com/microsoft/Agent365-python"
35
+ Issues = "https://github.com/microsoft/Agent365-python/issues"
36
+ Documentation = "https://github.com/microsoft/Agent365-python/tree/main/libraries/microsoft-agents-a365-tooling-extensions-azureaifoundry"
37
+
38
+ [project.optional-dependencies]
39
+ dev = [
40
+ "pytest >= 7.0.0",
41
+ "pytest-asyncio >= 0.21.0",
42
+ "ruff >= 0.1.0",
43
+ "black >= 23.0.0",
44
+ "mypy >= 1.0.0",
45
+ ]
46
+ test = [
47
+ "pytest >= 7.0.0",
48
+ "pytest-asyncio >= 0.21.0",
49
+ ]
50
+
51
+ [tool.setuptools.packages.find]
52
+ where = ["."]
53
+
54
+ [tool.setuptools]
55
+ license-files = ["../../LICENSE"]
56
+ include-package-data = true
57
+
58
+ [tool.setuptools.package-data]
59
+ "*" = ["../../LICENSE"]
60
+
61
+ [tool.black]
62
+ line-length = 100
63
+ target-version = ['py311']
64
+
65
+ [tool.ruff]
66
+ line-length = 100
67
+ target-version = "py311"
68
+
69
+ [tool.mypy]
70
+ python_version = "3.11"
71
+ strict = true
72
+ warn_return_any = true
73
+ warn_unused_configs = true
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,28 @@
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
17
+
18
+ # Use minimum version strategy:
19
+ # - Internal packages get: >= current_base_version (e.g., >= 0.1.0)
20
+ # - Automatically updates when you build new versions
21
+ # - Consumers can upgrade to any higher version
22
+ setup(
23
+ version=package_version,
24
+ install_requires=get_dynamic_dependencies(
25
+ use_compatible_release=False, # No upper bound
26
+ use_exact_match=False, # Not exact match
27
+ ),
28
+ )