microsoft-agents-hosting-core 0.4.0.dev18__tar.gz → 0.5.0.dev5__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_hosting_core-0.5.0.dev5/LICENSE +21 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/PKG-INFO +5 -3
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/_oauth/_flow_state.py +2 -2
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/_oauth/_oauth_flow.py +26 -23
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/activity_handler.py +19 -17
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/agent_application.py +31 -6
- microsoft_agents_hosting_core-0.5.0.dev5/microsoft_agents/hosting/core/app/input_file.py +49 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/_authorization_handler.py +4 -4
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/_user_authorization.py +2 -2
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/agentic_user_authorization.py +3 -3
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/authorization.py +38 -20
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/state/state.py +50 -6
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/channel_adapter.py +9 -9
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/channel_service_adapter.py +64 -6
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/client/user_token_client.py +40 -43
- microsoft_agents_hosting_core-0.5.0.dev5/microsoft_agents/hosting/core/connector/user_token_base.py +120 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/user_token_client_base.py +3 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/state/agent_state.py +16 -20
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents_hosting_core.egg-info/PKG-INFO +5 -3
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents_hosting_core.egg-info/SOURCES.txt +1 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents_hosting_core.egg-info/requires.txt +1 -1
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/pyproject.toml +2 -1
- microsoft_agents_hosting_core-0.4.0.dev18/microsoft_agents/hosting/core/app/input_file.py +0 -45
- microsoft_agents_hosting_core-0.4.0.dev18/microsoft_agents/hosting/core/connector/user_token_base.py +0 -44
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/_oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/_oauth/_flow_storage_client.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/agent.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/_routes/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/_routes/_route.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/_routes/_route_list.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/_routes/route_rank.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/_type_defs.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/app_error.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/app_options.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/_sign_in_response.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/_sign_in_state.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/oauth/auth_handler.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/query.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/state/conversation_state.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/state/temp_state.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/state/turn_state.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/app/typing_indicator.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/access_token_provider_base.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/agent_auth_configuration.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/anonymous_token_provider.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/auth_types.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/authentication_constants.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/claims_identity.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/connections.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/authorization/jwt_token_validator.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/card_factory.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/channel_api_handler_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/channel_service_client_factory_base.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/agent_conversation_reference.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/channel_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/channel_host_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/channel_info_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/channel_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/channels_configuration.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/configuration_channel_host.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/conversation_constants.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/conversation_id_factory.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/conversation_id_factory_options.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/conversation_id_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/http_agent_channel.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/client/http_agent_channel_factory.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/agent_sign_in_base.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/attachments_base.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/client/connector_client.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/connector_client_base.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/conversations_base.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/get_product_info.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/teams/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/connector/teams/teams_connector_client.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/message_factory.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/middleware_set.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/rest_channel_service_client_factory.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/state/state_property_accessor.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/state/user_state.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/_type_aliases.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/error_handling.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/memory_storage.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/storage.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/store_item.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/transcript_file_store.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/transcript_info.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/transcript_logger.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/transcript_memory_store.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/storage/transcript_store.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents/hosting/core/turn_context.py +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents_hosting_core.egg-info/dependency_links.txt +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/microsoft_agents_hosting_core.egg-info/top_level.txt +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/setup.cfg +0 -0
- {microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/setup.py +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Microsoft Corporation.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE
|
{microsoft_agents_hosting_core-0.4.0.dev18 → microsoft_agents_hosting_core-0.5.0.dev5}/PKG-INFO
RENAMED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microsoft-agents-hosting-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0.dev5
|
|
4
4
|
Summary: Core library for Microsoft Agents
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
|
+
License-Expression: MIT
|
|
6
7
|
Project-URL: Homepage, https://github.com/microsoft/Agents
|
|
7
8
|
Classifier: Programming Language :: Python :: 3
|
|
8
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
9
9
|
Classifier: Operating System :: OS Independent
|
|
10
10
|
Requires-Python: >=3.9
|
|
11
|
-
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Requires-Dist: microsoft-agents-activity==0.5.0.dev5
|
|
12
13
|
Requires-Dist: pyjwt>=2.10.1
|
|
13
14
|
Requires-Dist: isodate>=0.6.1
|
|
14
15
|
Requires-Dist: azure-core>=1.30.0
|
|
15
16
|
Requires-Dist: python-dotenv>=1.1.1
|
|
17
|
+
Dynamic: license-file
|
|
16
18
|
Dynamic: requires-dist
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
|
-
from datetime import datetime
|
|
6
|
+
from datetime import datetime, timezone
|
|
7
7
|
from enum import Enum
|
|
8
8
|
from typing import Optional
|
|
9
9
|
|
|
@@ -60,7 +60,7 @@ class _FlowState(BaseModel, StoreItem):
|
|
|
60
60
|
return _FlowState.model_validate(json_data)
|
|
61
61
|
|
|
62
62
|
def is_expired(self) -> bool:
|
|
63
|
-
return datetime.now().timestamp() >= self.expiration
|
|
63
|
+
return datetime.now(timezone.utc).timestamp() >= self.expiration
|
|
64
64
|
|
|
65
65
|
def reached_max_attempts(self) -> bool:
|
|
66
66
|
return self.attempts_remaining <= 0
|
|
@@ -6,7 +6,7 @@ from __future__ import annotations
|
|
|
6
6
|
import logging
|
|
7
7
|
|
|
8
8
|
from pydantic import BaseModel
|
|
9
|
-
from datetime import datetime
|
|
9
|
+
from datetime import datetime, timezone
|
|
10
10
|
from typing import Optional
|
|
11
11
|
|
|
12
12
|
from microsoft_agents.activity import (
|
|
@@ -30,7 +30,6 @@ class _FlowResponse(BaseModel):
|
|
|
30
30
|
flow_error_tag: _FlowErrorTag = _FlowErrorTag.NONE
|
|
31
31
|
token_response: Optional[TokenResponse] = None
|
|
32
32
|
sign_in_resource: Optional[SignInResource] = None
|
|
33
|
-
continuation_activity: Optional[Activity] = None
|
|
34
33
|
|
|
35
34
|
|
|
36
35
|
class _OAuthFlow:
|
|
@@ -112,7 +111,7 @@ class _OAuthFlow:
|
|
|
112
111
|
"""Get the user token based on the context.
|
|
113
112
|
|
|
114
113
|
Args:
|
|
115
|
-
magic_code (str,
|
|
114
|
+
magic_code (str, Optional): Defaults to None. The magic code for user authentication.
|
|
116
115
|
|
|
117
116
|
Returns:
|
|
118
117
|
TokenResponse
|
|
@@ -137,7 +136,7 @@ class _OAuthFlow:
|
|
|
137
136
|
if token_response:
|
|
138
137
|
logger.info("User token obtained successfully: %s", token_response)
|
|
139
138
|
self._flow_state.expiration = (
|
|
140
|
-
datetime.now().timestamp() + self._default_flow_duration
|
|
139
|
+
datetime.now(timezone.utc).timestamp() + self._default_flow_duration
|
|
141
140
|
)
|
|
142
141
|
self._flow_state.tag = _FlowStateTag.COMPLETE
|
|
143
142
|
|
|
@@ -183,20 +182,8 @@ class _OAuthFlow:
|
|
|
183
182
|
Notes:
|
|
184
183
|
The flow state is reset if a token is not obtained from cache.
|
|
185
184
|
"""
|
|
186
|
-
token_response = await self.get_user_token()
|
|
187
|
-
if token_response:
|
|
188
|
-
return _FlowResponse(
|
|
189
|
-
flow_state=self._flow_state, token_response=token_response
|
|
190
|
-
)
|
|
191
185
|
|
|
192
186
|
logger.debug("Starting new OAuth flow")
|
|
193
|
-
self._flow_state.tag = _FlowStateTag.BEGIN
|
|
194
|
-
self._flow_state.expiration = (
|
|
195
|
-
datetime.now().timestamp() + self._default_flow_duration
|
|
196
|
-
)
|
|
197
|
-
|
|
198
|
-
self._flow_state.attempts_remaining = self._max_attempts
|
|
199
|
-
self._flow_state.continuation_activity = activity.model_copy()
|
|
200
187
|
|
|
201
188
|
token_exchange_state = TokenExchangeState(
|
|
202
189
|
connection_name=self._abs_oauth_connection_name,
|
|
@@ -205,16 +192,33 @@ class _OAuthFlow:
|
|
|
205
192
|
ms_app_id=self._ms_app_id,
|
|
206
193
|
)
|
|
207
194
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
195
|
+
res = await self._user_token_client.user_token._get_token_or_sign_in_resource(
|
|
196
|
+
activity.from_property.id,
|
|
197
|
+
self._abs_oauth_connection_name,
|
|
198
|
+
activity.channel_id,
|
|
199
|
+
token_exchange_state.get_encoded_state(),
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
if res.token_response:
|
|
203
|
+
logger.info("Skipping flow, user token obtained.")
|
|
204
|
+
self._flow_state.tag = _FlowStateTag.COMPLETE
|
|
205
|
+
self._flow_state.expiration = (
|
|
206
|
+
datetime.now(timezone.utc).timestamp() + self._default_flow_duration
|
|
207
|
+
)
|
|
208
|
+
return _FlowResponse(
|
|
209
|
+
flow_state=self._flow_state, token_response=res.token_response
|
|
211
210
|
)
|
|
211
|
+
|
|
212
|
+
self._flow_state.tag = _FlowStateTag.BEGIN
|
|
213
|
+
self._flow_state.expiration = (
|
|
214
|
+
datetime.now(timezone.utc).timestamp() + self._default_flow_duration
|
|
212
215
|
)
|
|
216
|
+
self._flow_state.attempts_remaining = self._max_attempts
|
|
213
217
|
|
|
214
|
-
logger.debug("Sign-in resource obtained successfully: %s", sign_in_resource)
|
|
218
|
+
logger.debug("Sign-in resource obtained successfully: %s", res.sign_in_resource)
|
|
215
219
|
|
|
216
220
|
return _FlowResponse(
|
|
217
|
-
flow_state=self._flow_state, sign_in_resource=sign_in_resource
|
|
221
|
+
flow_state=self._flow_state, sign_in_resource=res.sign_in_resource
|
|
218
222
|
)
|
|
219
223
|
|
|
220
224
|
async def _continue_from_message(
|
|
@@ -299,7 +303,7 @@ class _OAuthFlow:
|
|
|
299
303
|
else:
|
|
300
304
|
self._flow_state.tag = _FlowStateTag.COMPLETE
|
|
301
305
|
self._flow_state.expiration = (
|
|
302
|
-
datetime.now().timestamp() + self._default_flow_duration
|
|
306
|
+
datetime.now(timezone.utc).timestamp() + self._default_flow_duration
|
|
303
307
|
)
|
|
304
308
|
logger.debug(
|
|
305
309
|
"OAuth flow completed successfully, got TokenResponse: %s",
|
|
@@ -310,7 +314,6 @@ class _OAuthFlow:
|
|
|
310
314
|
flow_state=self._flow_state.model_copy(),
|
|
311
315
|
flow_error_tag=flow_error_tag,
|
|
312
316
|
token_response=token_response,
|
|
313
|
-
continuation_activity=self._flow_state.continuation_activity,
|
|
314
317
|
)
|
|
315
318
|
|
|
316
319
|
async def begin_or_continue_flow(self, activity: Activity) -> _FlowResponse:
|
|
@@ -38,7 +38,7 @@ class ActivityHandler(Agent):
|
|
|
38
38
|
in order to process an inbound :class:`microsoft_agents.activity.Activity`.
|
|
39
39
|
|
|
40
40
|
:param turn_context: The context object for this turn
|
|
41
|
-
:type turn_context: :class:`microsoft_agents.
|
|
41
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
42
42
|
|
|
43
43
|
:returns: A task that represents the work queued to execute
|
|
44
44
|
|
|
@@ -143,7 +143,7 @@ class ActivityHandler(Agent):
|
|
|
143
143
|
:meth:`on_turn()` is used.
|
|
144
144
|
|
|
145
145
|
:param turn_context: The context object for this turn
|
|
146
|
-
:type turn_context: :class:`microsoft_agents.
|
|
146
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
147
147
|
:returns: A task that represents the work queued to execute
|
|
148
148
|
|
|
149
149
|
.. remarks::
|
|
@@ -176,7 +176,7 @@ class ActivityHandler(Agent):
|
|
|
176
176
|
|
|
177
177
|
:param members_added: A list of all the members added to the conversation, as described by the
|
|
178
178
|
conversation update activity
|
|
179
|
-
:type members_added: list[ChannelAccount]
|
|
179
|
+
:type members_added: list[:class:`microsoft_agents.activity.ChannelAccount`]
|
|
180
180
|
:param turn_context: The context object for this turn
|
|
181
181
|
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
182
182
|
:returns: A task that represents the work queued to execute
|
|
@@ -195,9 +195,9 @@ class ActivityHandler(Agent):
|
|
|
195
195
|
Override this method in a derived class to provide logic for when members other than the agent leave
|
|
196
196
|
the conversation. You can add your agent's good-bye logic.
|
|
197
197
|
|
|
198
|
-
:param
|
|
198
|
+
:param members_removed: A list of all the members removed from the conversation, as described by the
|
|
199
199
|
conversation update activity
|
|
200
|
-
:type
|
|
200
|
+
:type members_removed: list[:class:`microsoft_agents.activity.ChannelAccount`]
|
|
201
201
|
:param turn_context: The context object for this turn
|
|
202
202
|
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
203
203
|
:returns: A task that represents the work queued to execute
|
|
@@ -216,7 +216,7 @@ class ActivityHandler(Agent):
|
|
|
216
216
|
:meth:`on_turn()` is used.
|
|
217
217
|
|
|
218
218
|
:param turn_context: The context object for this turn
|
|
219
|
-
:type turn_context: :class:`microsoft_agents.
|
|
219
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
220
220
|
|
|
221
221
|
:returns: A task that represents the work queued to execute
|
|
222
222
|
|
|
@@ -260,7 +260,7 @@ class ActivityHandler(Agent):
|
|
|
260
260
|
are added to the conversation.
|
|
261
261
|
|
|
262
262
|
:param message_reactions: The list of reactions added
|
|
263
|
-
:type message_reactions: list[MessageReaction]
|
|
263
|
+
:type message_reactions: list[:class:`microsoft_agents.activity.MessageReaction`]
|
|
264
264
|
:param turn_context: The context object for this turn
|
|
265
265
|
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
266
266
|
:returns: A task that represents the work queued to execute
|
|
@@ -285,7 +285,7 @@ class ActivityHandler(Agent):
|
|
|
285
285
|
are removed from the conversation.
|
|
286
286
|
|
|
287
287
|
:param message_reactions: The list of reactions removed
|
|
288
|
-
:type message_reactions: list[MessageReaction]
|
|
288
|
+
:type message_reactions: list[:class:`microsoft_agents.activity.MessageReaction`]
|
|
289
289
|
:param turn_context: The context object for this turn
|
|
290
290
|
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
291
291
|
|
|
@@ -382,7 +382,7 @@ class ActivityHandler(Agent):
|
|
|
382
382
|
ActivityTypes.typing activities, such as the conversational logic.
|
|
383
383
|
|
|
384
384
|
:param turn_context: The context object for this turn
|
|
385
|
-
:type turn_context: :class:`microsoft_agents.
|
|
385
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
386
386
|
:returns: A task that represents the work queued to execute
|
|
387
387
|
"""
|
|
388
388
|
return
|
|
@@ -395,7 +395,7 @@ class ActivityHandler(Agent):
|
|
|
395
395
|
ActivityTypes.InstallationUpdate activities.
|
|
396
396
|
|
|
397
397
|
:param turn_context: The context object for this turn
|
|
398
|
-
:type turn_context: :class:`microsoft_agents.
|
|
398
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
399
399
|
:returns: A task that represents the work queued to execute
|
|
400
400
|
"""
|
|
401
401
|
if turn_context.activity.action in ("add", "add-upgrade"):
|
|
@@ -412,7 +412,7 @@ class ActivityHandler(Agent):
|
|
|
412
412
|
ActivityTypes.InstallationUpdate activities with 'action' set to 'add'.
|
|
413
413
|
|
|
414
414
|
:param turn_context: The context object for this turn
|
|
415
|
-
:type turn_context: :class:`microsoft_agents.
|
|
415
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
416
416
|
:returns: A task that represents the work queued to execute
|
|
417
417
|
"""
|
|
418
418
|
return
|
|
@@ -425,7 +425,7 @@ class ActivityHandler(Agent):
|
|
|
425
425
|
ActivityTypes.InstallationUpdate activities with 'action' set to 'remove'.
|
|
426
426
|
|
|
427
427
|
:param turn_context: The context object for this turn
|
|
428
|
-
:type turn_context: :class:`microsoft_agents.
|
|
428
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
429
429
|
:returns: A task that represents the work queued to execute
|
|
430
430
|
"""
|
|
431
431
|
return
|
|
@@ -439,7 +439,7 @@ class ActivityHandler(Agent):
|
|
|
439
439
|
If overridden, this method could potentially respond to any of the other activity types.
|
|
440
440
|
|
|
441
441
|
:param turn_context: The context object for this turn
|
|
442
|
-
:type turn_context: :class:`microsoft_agents.
|
|
442
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
443
443
|
|
|
444
444
|
:returns: A task that represents the work queued to execute
|
|
445
445
|
|
|
@@ -456,9 +456,10 @@ class ActivityHandler(Agent):
|
|
|
456
456
|
Registers an activity event handler for the _invoke_ event, emitted for every incoming event activity.
|
|
457
457
|
|
|
458
458
|
:param turn_context: The context object for this turn
|
|
459
|
-
:type turn_context: :class:`microsoft_agents.
|
|
459
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
460
460
|
|
|
461
461
|
:returns: A task that represents the work queued to execute
|
|
462
|
+
:rtype: Optional[:class:`microsoft_agents.activity.InvokeResponse`]
|
|
462
463
|
"""
|
|
463
464
|
try:
|
|
464
465
|
if (
|
|
@@ -492,7 +493,7 @@ class ActivityHandler(Agent):
|
|
|
492
493
|
By default, this method does nothing.
|
|
493
494
|
|
|
494
495
|
:param turn_context: The context object for this turn
|
|
495
|
-
:type turn_context: :class:`microsoft_agents.
|
|
496
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
496
497
|
|
|
497
498
|
:returns: A task that represents the work queued to execute
|
|
498
499
|
"""
|
|
@@ -508,10 +509,11 @@ class ActivityHandler(Agent):
|
|
|
508
509
|
calls this method.
|
|
509
510
|
|
|
510
511
|
:param turn_context: A context object for this turn.
|
|
511
|
-
:type turn_context: :class:`microsoft_agents.
|
|
512
|
+
:type turn_context: :class:`microsoft_agents.activity.TurnContextProtocol`
|
|
512
513
|
:param invoke_value: A string-typed object from the incoming activity's value.
|
|
513
|
-
:type invoke_value: :class:`microsoft_agents.activity.
|
|
514
|
+
:type invoke_value: :class:`microsoft_agents.activity.AdaptiveCardInvokeValue`
|
|
514
515
|
:return: The HealthCheckResponse object
|
|
516
|
+
:rtype: :class:`microsoft_agents.activity.AdaptiveCardInvokeResponse`
|
|
515
517
|
"""
|
|
516
518
|
raise _InvokeResponseException(HTTPStatus.NOT_IMPLEMENTED)
|
|
517
519
|
|
|
@@ -83,6 +83,15 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
83
83
|
) -> None:
|
|
84
84
|
"""
|
|
85
85
|
Creates a new AgentApplication instance.
|
|
86
|
+
|
|
87
|
+
:param options: Configuration options for the application.
|
|
88
|
+
:type options: Optional[:class:`microsoft_agents.hosting.core.app.app_options.ApplicationOptions`]
|
|
89
|
+
:param connection_manager: OAuth connection manager.
|
|
90
|
+
:type connection_manager: Optional[:class:`microsoft_agents.hosting.core.authorization.Connections`]
|
|
91
|
+
:param authorization: Authorization manager for handling authentication flows.
|
|
92
|
+
:type authorization: Optional[:class:`microsoft_agents.hosting.core.app.oauth.Authorization`]
|
|
93
|
+
:param kwargs: Additional configuration parameters.
|
|
94
|
+
:type kwargs: Any
|
|
86
95
|
"""
|
|
87
96
|
self.typing = TypingIndicator()
|
|
88
97
|
self._route_list = _RouteList[StateT]()
|
|
@@ -161,6 +170,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
161
170
|
def adapter(self) -> ChannelServiceAdapter:
|
|
162
171
|
"""
|
|
163
172
|
The bot's adapter.
|
|
173
|
+
|
|
174
|
+
:return: The channel service adapter for the bot.
|
|
175
|
+
:rtype: :class:`microsoft_agents.hosting.core.channel_service_adapter.ChannelServiceAdapter`
|
|
176
|
+
:raises ApplicationError: If the adapter is not configured.
|
|
164
177
|
"""
|
|
165
178
|
|
|
166
179
|
if not self._adapter:
|
|
@@ -181,6 +194,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
181
194
|
def auth(self) -> Authorization:
|
|
182
195
|
"""
|
|
183
196
|
The application's authentication manager
|
|
197
|
+
|
|
198
|
+
:return: The authentication manager for handling OAuth flows.
|
|
199
|
+
:rtype: :class:`microsoft_agents.hosting.core.app.oauth.Authorization`
|
|
200
|
+
:raises ApplicationError: If authentication is not configured.
|
|
184
201
|
"""
|
|
185
202
|
if not self._auth:
|
|
186
203
|
logger.error(
|
|
@@ -200,6 +217,9 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
200
217
|
def options(self) -> ApplicationOptions:
|
|
201
218
|
"""
|
|
202
219
|
The application's configured options.
|
|
220
|
+
|
|
221
|
+
:return: The configuration options for the application.
|
|
222
|
+
:rtype: :class:`microsoft_agents.hosting.core.app.app_options.ApplicationOptions`
|
|
203
223
|
"""
|
|
204
224
|
return self._options
|
|
205
225
|
|
|
@@ -217,18 +237,18 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
217
237
|
Routes are ordered by: is_agentic, is_invoke, rank (lower is higher priority), in that order.
|
|
218
238
|
|
|
219
239
|
:param selector: A function that takes a TurnContext and returns a boolean indicating whether the route should be selected.
|
|
220
|
-
:type selector: RouteSelector
|
|
240
|
+
:type selector: :class:`microsoft_agents.hosting.core.app._type_defs.RouteSelector`
|
|
221
241
|
:param handler: A function that takes a TurnContext and a TurnState and returns an Awaitable.
|
|
222
|
-
:type handler: RouteHandler[StateT]
|
|
242
|
+
:type handler: :class:`microsoft_agents.hosting.core.app._type_defs.RouteHandler`[StateT]
|
|
223
243
|
:param is_invoke: Whether the route is for an invoke activity, defaults to False
|
|
224
|
-
:type is_invoke: bool,
|
|
244
|
+
:type is_invoke: bool, Optional
|
|
225
245
|
:param is_agentic: Whether the route is for an agentic request, defaults to False. For agentic requests
|
|
226
246
|
the selector will include a new check for `context.activity.is_agentic_request()`.
|
|
227
|
-
:type is_agentic: bool,
|
|
247
|
+
:type is_agentic: bool, Optional
|
|
228
248
|
:param rank: The rank of the route, defaults to RouteRank.DEFAULT
|
|
229
|
-
:type rank: RouteRank
|
|
249
|
+
:type rank: :class:`microsoft_agents.hosting.core.app._routes.RouteRank`, Optional
|
|
230
250
|
:param auth_handlers: A list of authentication handler IDs to use for this route, defaults to None
|
|
231
|
-
:type auth_handlers: Optional[list[str]],
|
|
251
|
+
:type auth_handlers: Optional[list[str]], Optional
|
|
232
252
|
:raises ApplicationError: If the selector or handler are not valid.
|
|
233
253
|
"""
|
|
234
254
|
if not selector or not handler:
|
|
@@ -706,6 +726,11 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
706
726
|
def parse_env_vars_configuration(vars: dict[str, Any]) -> dict:
|
|
707
727
|
"""
|
|
708
728
|
Parses environment variables and returns a dictionary with the relevant configuration.
|
|
729
|
+
|
|
730
|
+
:param vars: Dictionary of environment variable names and values.
|
|
731
|
+
:type vars: dict[str, Any]
|
|
732
|
+
:return: Parsed configuration dictionary with nested structure.
|
|
733
|
+
:rtype: dict
|
|
709
734
|
"""
|
|
710
735
|
result = {}
|
|
711
736
|
for key, value in vars.items():
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
Licensed under the MIT License.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from abc import ABC, abstractmethod
|
|
9
|
+
from dataclasses import dataclass
|
|
10
|
+
from typing import List, Optional
|
|
11
|
+
|
|
12
|
+
from microsoft_agents.hosting.core import TurnContext
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class InputFile:
|
|
17
|
+
"""A file sent by the user to the bot.
|
|
18
|
+
|
|
19
|
+
:param content: The downloaded content of the file.
|
|
20
|
+
:type content: bytes
|
|
21
|
+
:param content_type: The content type of the file.
|
|
22
|
+
:type content_type: str
|
|
23
|
+
:param content_url: Optional. URL to the content of the file.
|
|
24
|
+
:type content_url: Optional[str]
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
content: bytes
|
|
28
|
+
content_type: str
|
|
29
|
+
content_url: Optional[str]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class InputFileDownloader(ABC):
|
|
33
|
+
"""
|
|
34
|
+
Abstract base class for a plugin responsible for downloading files provided by the user.
|
|
35
|
+
|
|
36
|
+
Implementations should download any files referenced by the incoming activity and return a
|
|
37
|
+
list of :class:`InputFile` instances representing the downloaded content.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
@abstractmethod
|
|
41
|
+
async def download_files(self, context: TurnContext) -> List[InputFile]:
|
|
42
|
+
"""
|
|
43
|
+
Download any files referenced by the incoming activity for the current turn.
|
|
44
|
+
|
|
45
|
+
:param context: The turn context for the current request.
|
|
46
|
+
:type context: :class:`microsoft_agents.hosting.core.turn_context.TurnContext`
|
|
47
|
+
:return: A list of downloaded :class:`InputFile` objects.
|
|
48
|
+
:rtype: list[:class:`microsoft_agents.hosting.core.app.input_file.InputFile`]
|
|
49
|
+
"""
|
|
@@ -43,7 +43,7 @@ class _AuthorizationHandler(ABC):
|
|
|
43
43
|
:param connection_manager: The connection manager for OAuth providers.
|
|
44
44
|
:type connection_manager: Connections
|
|
45
45
|
:param auth_handlers: Configuration for OAuth providers.
|
|
46
|
-
:type auth_handlers: dict[str, AuthHandler],
|
|
46
|
+
:type auth_handlers: dict[str, AuthHandler], Optional
|
|
47
47
|
:raises ValueError: When storage is None or no auth handlers provided.
|
|
48
48
|
"""
|
|
49
49
|
if not storage:
|
|
@@ -75,7 +75,7 @@ class _AuthorizationHandler(ABC):
|
|
|
75
75
|
:param context: The turn context for the current turn of conversation.
|
|
76
76
|
:type context: TurnContext
|
|
77
77
|
:param scopes: Optional list of scopes to request during sign-in. If None, default scopes will be used.
|
|
78
|
-
:type scopes: Optional[list[str]],
|
|
78
|
+
:type scopes: Optional[list[str]], Optional
|
|
79
79
|
:return: A SignInResponse indicating the result of the sign-in attempt.
|
|
80
80
|
:rtype: SignInResponse
|
|
81
81
|
"""
|
|
@@ -92,9 +92,9 @@ class _AuthorizationHandler(ABC):
|
|
|
92
92
|
:param context: The turn context for the current turn of conversation.
|
|
93
93
|
:type context: TurnContext
|
|
94
94
|
:param exchange_connection: Optional name of the connection to use for token exchange. If None, default connection will be used.
|
|
95
|
-
:type exchange_connection: Optional[str],
|
|
95
|
+
:type exchange_connection: Optional[str], Optional
|
|
96
96
|
:param exchange_scopes: Optional list of scopes to request during token exchange. If None, default scopes will be used.
|
|
97
|
-
:type exchange_scopes: Optional[list[str]],
|
|
97
|
+
:type exchange_scopes: Optional[list[str]], Optional
|
|
98
98
|
"""
|
|
99
99
|
raise NotImplementedError()
|
|
100
100
|
|
|
@@ -249,9 +249,9 @@ class _UserAuthorization(_AuthorizationHandler):
|
|
|
249
249
|
:param context: The turn context for the current turn of conversation.
|
|
250
250
|
:type context: TurnContext
|
|
251
251
|
:param exchange_connection: Optional name of the connection to use for token exchange. If None, default connection will be used.
|
|
252
|
-
:type exchange_connection: Optional[str],
|
|
252
|
+
:type exchange_connection: Optional[str], Optional
|
|
253
253
|
:param exchange_scopes: Optional list of scopes to request during token exchange. If None, default scopes will be used.
|
|
254
|
-
:type exchange_scopes: Optional[list[str]],
|
|
254
|
+
:type exchange_scopes: Optional[list[str]], Optional
|
|
255
255
|
"""
|
|
256
256
|
flow, _ = await self._load_flow(context)
|
|
257
257
|
input_token_response = await flow.get_user_token()
|
|
@@ -41,7 +41,7 @@ class AgenticUserAuthorization(_AuthorizationHandler):
|
|
|
41
41
|
:param connection_manager: The connection manager for OAuth providers.
|
|
42
42
|
:type connection_manager: Connections
|
|
43
43
|
:param auth_handlers: Configuration for OAuth providers.
|
|
44
|
-
:type auth_handlers: dict[str, AuthHandler],
|
|
44
|
+
:type auth_handlers: dict[str, AuthHandler], Optional
|
|
45
45
|
:raises ValueError: When storage is None or no auth handlers provided.
|
|
46
46
|
"""
|
|
47
47
|
super().__init__(
|
|
@@ -172,9 +172,9 @@ class AgenticUserAuthorization(_AuthorizationHandler):
|
|
|
172
172
|
:param context: The turn context for the current turn of conversation.
|
|
173
173
|
:type context: TurnContext
|
|
174
174
|
:param exchange_connection: Optional name of the connection to use for token exchange. If None, default connection will be used.
|
|
175
|
-
:type exchange_connection: Optional[str],
|
|
175
|
+
:type exchange_connection: Optional[str], Optional
|
|
176
176
|
:param exchange_scopes: Optional list of scopes to request during token exchange. If None, default scopes will be used.
|
|
177
|
-
:type exchange_scopes: Optional[list[str]],
|
|
177
|
+
:type exchange_scopes: Optional[list[str]], Optional
|
|
178
178
|
"""
|
|
179
179
|
if not exchange_scopes:
|
|
180
180
|
exchange_scopes = self._handler.scopes or []
|