microsoft-agents-hosting-core 1.10.0.dev2__tar.gz → 1.10.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-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/PKG-INFO +2 -2
- microsoft_agents_hosting_core-1.10.0.dev5/VERSION.txt +1 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/agent_application.py +57 -21
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/connector_user_authorization.py +4 -2
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/streaming/streaming_response.py +1 -1
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/connection_settings_base.py +93 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/jwt/__init__.py +4 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/jwt/_authorize_request.py +31 -4
- microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/authorization/jwt/jwt_connection_settings.py +40 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/jwt/jwt_token_validator.py +65 -29
- microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/authorization/jwt/token_validation_configuration.py +75 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/adapter/metrics.py +4 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents_hosting_core.egg-info/PKG-INFO +2 -2
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents_hosting_core.egg-info/SOURCES.txt +2 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents_hosting_core.egg-info/requires.txt +1 -1
- microsoft_agents_hosting_core-1.10.0.dev2/VERSION.txt +0 -1
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/LICENSE +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/MANIFEST.in +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_http_adapter_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_oauth/_flow_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_oauth/_flow_storage_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_oauth/_oauth_flow.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_utils/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_utils/_service_set.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/_utils/_turn_context_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/activity_handler.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/agent.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/_routes/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/_routes/_route.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/_routes/_route_list.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/_routes/route_rank.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/_selector.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/_type_defs.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/adaptive_card/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/adaptive_card/_type_defs.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/adaptive_card/adaptive_card.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/adaptive_card/factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/adaptive_card/models.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/app_error.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/app_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/attachment_downloader.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/input_file.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/_authorization_handler.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/_handlers/agentic_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/_sign_in_response.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/_sign_in_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/auth_handler.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/authorization.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/oauth/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/conversation.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/conversation_builder.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/conversation_reference_builder.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/create_conversation_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/proactive.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/proactive_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/telemetry/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/proactive/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/query.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/state/conversation_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/state/state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/state/temp_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/state/turn_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/streaming/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/streaming/citation.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/streaming/citation_util.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/app/typing_indicator.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/_entra_issuers.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/_helpers.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/_log_config.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/access_token_provider_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/agent_auth_configuration.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/anonymous_token_provider.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/auth_types.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/authentication_constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/claims_identity.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/connection_manager.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/connections.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/authorization/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/card_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/channel_adapter.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/channel_api_handler_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/channel_service_adapter.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/channel_service_client_factory_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/agent_conversation_reference.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/channel_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/channel_host_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/channel_info_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/channel_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/channels_configuration.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/configuration_channel_host.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/conversation_constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/conversation_id_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/conversation_id_factory_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/conversation_id_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/http_agent_channel.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/client/http_agent_channel_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/agent_sign_in_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/attachments_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/client/_base_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/client/agent_sign_in.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/client/connector_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/client/user_token.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/client/user_token_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/connector_client_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/conversations_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/get_product_info.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/mcs/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/teams/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/teams/teams_connector_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/telemetry/_request_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/telemetry/connector_spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/telemetry/user_token_client_spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/user_token_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/connector/user_token_client_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/errors/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/errors/error_resources.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/header_propagation/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/header_propagation/agentic_header_provider.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/header_propagation/header_propagation_context.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/header_propagation/header_value_provider.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/http/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/http/_channel_service_routes.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/http/_http_request_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/http/_http_response.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/message_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/middleware_set.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/py.typed +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/rest_channel_service_client_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/security/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/security/_connector.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/security/_middleware.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/security/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/security/_validator.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/security/outbound_host_validator.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/state/agent_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/state/state_property_accessor.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/state/user_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/_type_aliases.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/error_handling.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/memory_storage.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/storage.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/store_item.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/transcript/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/transcript/transcript_file_store.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/transcript/transcript_info.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/transcript/transcript_logger.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/transcript/transcript_memory_store.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/storage/transcript/transcript_store.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/adapter/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/adapter/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/adapter/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/attributes.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/core/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/core/_agents_telemetry.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/core/base_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/core/resource.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/core/simple_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/core/type_defs.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/turn_context/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/turn_context/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/turn_context/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/telemetry/utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents/hosting/core/turn_context.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents_hosting_core.egg-info/dependency_links.txt +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/microsoft_agents_hosting_core.egg-info/top_level.txt +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/pyproject.toml +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/readme.md +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/setup.cfg +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/setup.py +0 -0
{microsoft_agents_hosting_core-1.10.0.dev2 → microsoft_agents_hosting_core-1.10.0.dev5}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microsoft-agents-hosting-core
|
|
3
|
-
Version: 1.10.0.
|
|
3
|
+
Version: 1.10.0.dev5
|
|
4
4
|
Summary: Core library for Microsoft Agents
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License-Expression: MIT
|
|
@@ -15,7 +15,7 @@ Classifier: Operating System :: OS Independent
|
|
|
15
15
|
Requires-Python: >=3.10
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
|
-
Requires-Dist: microsoft-agents-activity==1.10.0.
|
|
18
|
+
Requires-Dist: microsoft-agents-activity==1.10.0.dev5
|
|
19
19
|
Requires-Dist: pyjwt>=2.10.1
|
|
20
20
|
Requires-Dist: isodate>=0.6.1
|
|
21
21
|
Requires-Dist: python-dotenv>=1.1.1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.10.0.dev5
|
|
@@ -421,7 +421,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
421
421
|
|
|
422
422
|
def __call(func: RouteHandler[StateT]) -> RouteHandler[StateT]:
|
|
423
423
|
logger.debug(
|
|
424
|
-
|
|
424
|
+
"Registering activity handler for route handler %s with type: %s with auth handlers: %s",
|
|
425
|
+
func.__name__,
|
|
426
|
+
activity_type,
|
|
427
|
+
auth_handlers,
|
|
425
428
|
)
|
|
426
429
|
self.add_route(selector, func, auth_handlers=auth_handlers, **kwargs)
|
|
427
430
|
return func
|
|
@@ -481,7 +484,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
481
484
|
|
|
482
485
|
def __call(func: RouteHandler[StateT]) -> RouteHandler[StateT]:
|
|
483
486
|
logger.debug(
|
|
484
|
-
|
|
487
|
+
"Registering event handler for route handler %s with select: %s with auth handlers: %s",
|
|
488
|
+
func.__name__,
|
|
489
|
+
select,
|
|
490
|
+
auth_handlers,
|
|
485
491
|
)
|
|
486
492
|
self.add_route(selector, func, auth_handlers=auth_handlers, **kwargs)
|
|
487
493
|
return func
|
|
@@ -523,7 +529,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
523
529
|
|
|
524
530
|
def __call(func: RouteHandler[StateT]) -> RouteHandler[StateT]:
|
|
525
531
|
logger.debug(
|
|
526
|
-
|
|
532
|
+
"Registering invoke handler for route handler %s with select: %s with auth handlers: %s",
|
|
533
|
+
func.__name__,
|
|
534
|
+
select,
|
|
535
|
+
auth_handlers,
|
|
527
536
|
)
|
|
528
537
|
self.add_route(
|
|
529
538
|
selector, func, auth_handlers=auth_handlers, is_invoke=True, **kwargs
|
|
@@ -570,7 +579,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
570
579
|
|
|
571
580
|
def __call(func: RouteHandler[StateT]) -> RouteHandler[StateT]:
|
|
572
581
|
logger.debug(
|
|
573
|
-
|
|
582
|
+
"Registering message handler for route handler %s with select: %s with auth handlers: %s",
|
|
583
|
+
func.__name__,
|
|
584
|
+
select,
|
|
585
|
+
auth_handlers,
|
|
574
586
|
)
|
|
575
587
|
self.add_route(selector, func, auth_handlers=auth_handlers, **kwargs)
|
|
576
588
|
return func
|
|
@@ -634,7 +646,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
634
646
|
|
|
635
647
|
def __call(func: RouteHandler[StateT]) -> RouteHandler[StateT]:
|
|
636
648
|
logger.debug(
|
|
637
|
-
|
|
649
|
+
"Registering conversation update handler for route handler %s with type: %s with auth handlers: %s",
|
|
650
|
+
func.__name__,
|
|
651
|
+
update_type,
|
|
652
|
+
auth_handlers,
|
|
638
653
|
)
|
|
639
654
|
self.add_route(__selector, func, auth_handlers=auth_handlers, **kwargs)
|
|
640
655
|
return func
|
|
@@ -763,7 +778,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
763
778
|
|
|
764
779
|
def __call(func: RouteHandler[StateT]) -> RouteHandler[StateT]:
|
|
765
780
|
logger.debug(
|
|
766
|
-
|
|
781
|
+
"Registering message reaction handler for route handler %s with type: %s with auth handlers: %s",
|
|
782
|
+
func.__name__,
|
|
783
|
+
reaction_type,
|
|
784
|
+
auth_handlers,
|
|
767
785
|
)
|
|
768
786
|
self.add_route(__selector, func, auth_handlers=auth_handlers, **kwargs)
|
|
769
787
|
return func
|
|
@@ -880,7 +898,10 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
880
898
|
|
|
881
899
|
def __call(func: RouteHandler[StateT]) -> RouteHandler[StateT]:
|
|
882
900
|
logger.debug(
|
|
883
|
-
|
|
901
|
+
"Registering message update handler for route handler %s with type: %s with auth handlers: %s",
|
|
902
|
+
func.__name__,
|
|
903
|
+
update_type,
|
|
904
|
+
auth_handlers,
|
|
884
905
|
)
|
|
885
906
|
self.add_route(__selector, func, auth_handlers=auth_handlers, **kwargs)
|
|
886
907
|
return func
|
|
@@ -961,7 +982,9 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
961
982
|
)
|
|
962
983
|
|
|
963
984
|
logger.debug(
|
|
964
|
-
|
|
985
|
+
"Registering handoff handler for route handler %s with auth handlers: %s",
|
|
986
|
+
func.__name__,
|
|
987
|
+
auth_handlers,
|
|
965
988
|
)
|
|
966
989
|
|
|
967
990
|
self.add_route(selector, __handler, auth_handlers=auth_handlers, **kwargs)
|
|
@@ -991,12 +1014,14 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
991
1014
|
|
|
992
1015
|
if self._auth:
|
|
993
1016
|
logger.debug(
|
|
994
|
-
|
|
1017
|
+
"Registering sign-in success handler for route handler %s",
|
|
1018
|
+
func.__name__,
|
|
995
1019
|
)
|
|
996
1020
|
self._auth.on_sign_in_success(func)
|
|
997
1021
|
else:
|
|
998
1022
|
logger.error(
|
|
999
|
-
|
|
1023
|
+
"Failed to register sign-in success handler for route handler %s",
|
|
1024
|
+
func.__name__,
|
|
1000
1025
|
stack_info=True,
|
|
1001
1026
|
)
|
|
1002
1027
|
raise ApplicationError("""
|
|
@@ -1025,12 +1050,14 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1025
1050
|
|
|
1026
1051
|
if self._auth:
|
|
1027
1052
|
logger.debug(
|
|
1028
|
-
|
|
1053
|
+
"Registering sign-in failure handler for route handler %s",
|
|
1054
|
+
func.__name__,
|
|
1029
1055
|
)
|
|
1030
1056
|
self._auth.on_sign_in_failure(func)
|
|
1031
1057
|
else:
|
|
1032
1058
|
logger.error(
|
|
1033
|
-
|
|
1059
|
+
"Failed to register sign-in failure handler for route handler %s",
|
|
1060
|
+
func.__name__,
|
|
1034
1061
|
stack_info=True,
|
|
1035
1062
|
)
|
|
1036
1063
|
raise ApplicationError("""
|
|
@@ -1056,7 +1083,7 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1056
1083
|
:type func: Callable[[TurnContext, Exception], Awaitable[None]]
|
|
1057
1084
|
"""
|
|
1058
1085
|
|
|
1059
|
-
logger.debug(
|
|
1086
|
+
logger.debug("Registering the error handler %s ", func.__name__)
|
|
1060
1087
|
self._turn_error_handlers.append(func)
|
|
1061
1088
|
|
|
1062
1089
|
return func
|
|
@@ -1065,13 +1092,14 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1065
1092
|
"""
|
|
1066
1093
|
Custom Turn State Factory
|
|
1067
1094
|
"""
|
|
1068
|
-
logger.debug(
|
|
1095
|
+
logger.debug("Setting custom turn state factory: %s", func.__name__)
|
|
1069
1096
|
self._turn_state_factory = func
|
|
1070
1097
|
return func
|
|
1071
1098
|
|
|
1072
1099
|
async def on_turn(self, context: TurnContext):
|
|
1073
1100
|
logger.debug(
|
|
1074
|
-
|
|
1101
|
+
"AgentApplication.on_turn(): Processing turn for context: %s",
|
|
1102
|
+
context.activity.id,
|
|
1075
1103
|
)
|
|
1076
1104
|
await self._start_long_running_call(context, self._on_turn)
|
|
1077
1105
|
|
|
@@ -1179,7 +1207,8 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1179
1207
|
input_files = state.temp.input_files if state.temp.input_files else []
|
|
1180
1208
|
for file_downloader in self._options.file_downloaders:
|
|
1181
1209
|
logger.info(
|
|
1182
|
-
|
|
1210
|
+
"Using file downloader: %s",
|
|
1211
|
+
file_downloader.__class__.__name__,
|
|
1183
1212
|
)
|
|
1184
1213
|
files = await file_downloader.download_files(context)
|
|
1185
1214
|
input_files.extend(files)
|
|
@@ -1237,7 +1266,9 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1237
1266
|
|
|
1238
1267
|
if not route_matched:
|
|
1239
1268
|
logger.warning(
|
|
1240
|
-
|
|
1269
|
+
"No route found for activity type: %s with text: %s",
|
|
1270
|
+
context.activity.type,
|
|
1271
|
+
context.activity.text,
|
|
1241
1272
|
)
|
|
1242
1273
|
if on_turn_span is not None:
|
|
1243
1274
|
on_turn_span.share(
|
|
@@ -1254,7 +1285,9 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1254
1285
|
and context.identity is not None
|
|
1255
1286
|
):
|
|
1256
1287
|
logger.debug(
|
|
1257
|
-
|
|
1288
|
+
"Starting long running call for context: %s with function: %s",
|
|
1289
|
+
context.activity.id,
|
|
1290
|
+
func.__name__,
|
|
1258
1291
|
)
|
|
1259
1292
|
return await context.adapter.continue_conversation_with_claims(
|
|
1260
1293
|
claims_identity=context.identity,
|
|
@@ -1290,7 +1323,7 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1290
1323
|
task.result()
|
|
1291
1324
|
except Exception as e:
|
|
1292
1325
|
logger.error(
|
|
1293
|
-
|
|
1326
|
+
"Error occurred while replaying the turn.",
|
|
1294
1327
|
exc_info=True,
|
|
1295
1328
|
)
|
|
1296
1329
|
|
|
@@ -1327,12 +1360,15 @@ class AgentApplication(Agent, Generic[StateT]):
|
|
|
1327
1360
|
"""
|
|
1328
1361
|
|
|
1329
1362
|
logger.error(
|
|
1330
|
-
|
|
1363
|
+
"An error occurred in the AgentApplication: %s",
|
|
1364
|
+
err,
|
|
1331
1365
|
exc_info=True,
|
|
1332
1366
|
)
|
|
1333
1367
|
|
|
1334
1368
|
for err_func in self._turn_error_handlers:
|
|
1335
|
-
logger.info(
|
|
1369
|
+
logger.info(
|
|
1370
|
+
"Calling error handler %s for error: %s", err_func.__name__, err
|
|
1371
|
+
)
|
|
1336
1372
|
await err_func(context, err)
|
|
1337
1373
|
|
|
1338
1374
|
if not self._turn_error_handlers:
|
|
@@ -119,7 +119,9 @@ class ConnectorUserAuthorization(_AuthorizationHandler):
|
|
|
119
119
|
)
|
|
120
120
|
except (ValueError, AttributeError) as ex:
|
|
121
121
|
logger.error(
|
|
122
|
-
|
|
122
|
+
"Error checking token expiration for handler %s: %s",
|
|
123
|
+
self._id,
|
|
124
|
+
ex,
|
|
123
125
|
)
|
|
124
126
|
raise
|
|
125
127
|
|
|
@@ -234,7 +236,7 @@ class ConnectorUserAuthorization(_AuthorizationHandler):
|
|
|
234
236
|
token_response.expiration = expiration.isoformat()
|
|
235
237
|
|
|
236
238
|
except Exception as ex:
|
|
237
|
-
logger.warning(
|
|
239
|
+
logger.warning("Failed to parse JWT token for handler %s: %s", self._id, ex)
|
|
238
240
|
raise ex
|
|
239
241
|
|
|
240
242
|
return token_response
|
|
@@ -468,7 +468,7 @@ class StreamingResponse:
|
|
|
468
468
|
Sends any queued activities to the client until the queue is empty.
|
|
469
469
|
"""
|
|
470
470
|
try:
|
|
471
|
-
logger.debug(
|
|
471
|
+
logger.debug("Draining queue with %s activities.", len(self._queue))
|
|
472
472
|
while self._queue:
|
|
473
473
|
factory = self._queue.pop(0)
|
|
474
474
|
activity = factory()
|
|
@@ -4,7 +4,16 @@
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
6
|
from collections.abc import Mapping
|
|
7
|
+
from dataclasses import dataclass, field, fields
|
|
7
8
|
from typing import Any, TYPE_CHECKING
|
|
9
|
+
from typing_extensions import Self
|
|
10
|
+
|
|
11
|
+
from microsoft_agents.activity.config import (
|
|
12
|
+
Configuration,
|
|
13
|
+
_Configurable,
|
|
14
|
+
_resolve,
|
|
15
|
+
xpath,
|
|
16
|
+
)
|
|
8
17
|
|
|
9
18
|
if TYPE_CHECKING:
|
|
10
19
|
from .agent_auth_configuration import AgentAuthConfiguration
|
|
@@ -109,3 +118,87 @@ class _ConnectionSettingsBase:
|
|
|
109
118
|
) -> "_ConnectionSettingsBase":
|
|
110
119
|
"""Build base settings from an :class:`AgentAuthConfiguration`."""
|
|
111
120
|
return cls(**cls.base_kwargs_from_configuration(configuration))
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
_KNOWN_KWARGS_CACHE: dict[type[ConnectionSettingsBase], list[str]] = {}
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
@dataclass(frozen=True)
|
|
127
|
+
class ConnectionSettingsBase(_Configurable):
|
|
128
|
+
"""Provider-independent settings bound from Configuration.
|
|
129
|
+
|
|
130
|
+
Frozen fields cannot be reassigned, but scopes and extras remain mutable.
|
|
131
|
+
Treat those containers as read-only after handing settings to a provider.
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
client_id: str | None = None
|
|
135
|
+
authority: str | None = None
|
|
136
|
+
tenant_id: str | None = None
|
|
137
|
+
alternate_blueprint_connection_name: str | None = None
|
|
138
|
+
scopes: list[str] = field(default_factory=list)
|
|
139
|
+
_extras: Configuration = field(default_factory=Configuration)
|
|
140
|
+
|
|
141
|
+
@property
|
|
142
|
+
def extras(self) -> Configuration:
|
|
143
|
+
"""Return unrecognized provider settings, not an immutable copy."""
|
|
144
|
+
return self._extras
|
|
145
|
+
|
|
146
|
+
@classmethod
|
|
147
|
+
def _from_agent_auth_config(cls, agent_auth_config: AgentAuthConfiguration) -> Self:
|
|
148
|
+
attrs = dict(vars(agent_auth_config))
|
|
149
|
+
attrs.update(attrs.pop("provider_settings", {}))
|
|
150
|
+
attrs["ISSUERS"] = agent_auth_config.ISSUERS
|
|
151
|
+
if isinstance(attrs.get("SCOPES"), Mapping):
|
|
152
|
+
# TODO: Temporary compatibility for legacy indexed scopes; the next
|
|
153
|
+
# PR's configuration-loader migration will normalize these mappings.
|
|
154
|
+
attrs["SCOPES"] = _resolve({"SCOPES": attrs["SCOPES"]})["SCOPES"]
|
|
155
|
+
return cls.from_mapping(attrs)
|
|
156
|
+
|
|
157
|
+
@classmethod
|
|
158
|
+
def _get_init_kwargs(cls, config: Configuration) -> dict:
|
|
159
|
+
return {
|
|
160
|
+
"client_id": config.get_strn(cls._xpath("client_id")),
|
|
161
|
+
"authority": config.get_strn(
|
|
162
|
+
cls._xpath("authority"), cls._xpath("authorityendpoint")
|
|
163
|
+
),
|
|
164
|
+
"tenant_id": config.get_strn(cls._xpath("tenant_id")),
|
|
165
|
+
"scopes": config.get_scopes(cls._xpath("scopes")),
|
|
166
|
+
"alternate_blueprint_connection_name": config.get_strn(
|
|
167
|
+
"alt_blueprint_name",
|
|
168
|
+
"ALT_BLUEPRINT_NAME",
|
|
169
|
+
"alt_blueprint_id",
|
|
170
|
+
"ALT_BLUEPRINT_ID",
|
|
171
|
+
*cls._xpath("alternate_blueprint_connection_name"),
|
|
172
|
+
),
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@classmethod
|
|
176
|
+
def _known_kwargs(cls) -> list[str]:
|
|
177
|
+
if cls not in _KNOWN_KWARGS_CACHE:
|
|
178
|
+
_KNOWN_KWARGS_CACHE[cls] = [
|
|
179
|
+
alias
|
|
180
|
+
for f in fields(cls)
|
|
181
|
+
if f.init and f.name != "_extras"
|
|
182
|
+
for alias in xpath(f.name)
|
|
183
|
+
]
|
|
184
|
+
return _KNOWN_KWARGS_CACHE[cls]
|
|
185
|
+
|
|
186
|
+
@classmethod
|
|
187
|
+
def _get_extras(cls, config: Configuration) -> Configuration:
|
|
188
|
+
known_kwargs = cls._known_kwargs()
|
|
189
|
+
base = {k: v for k, v in config.items() if k not in known_kwargs}
|
|
190
|
+
return Configuration.from_mapping(
|
|
191
|
+
base, _base_path=config._base_path, **base.pop("extras", {})
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
@classmethod
|
|
195
|
+
def _from_configuration(cls, config: Configuration) -> Self:
|
|
196
|
+
try:
|
|
197
|
+
settings = config.get_section(xpath("settings"))
|
|
198
|
+
except KeyError:
|
|
199
|
+
settings = config
|
|
200
|
+
return cls(**cls._get_init_kwargs(settings), _extras=cls._get_extras(settings))
|
|
201
|
+
|
|
202
|
+
@staticmethod
|
|
203
|
+
def _xpath(name: str) -> list[str]:
|
|
204
|
+
return xpath(name, lower_snake=True)
|
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
from ._authorize_request import _authorize_request
|
|
5
5
|
from .jwt_token_validator import JwtTokenValidator
|
|
6
|
+
from .jwt_connection_settings import JwtConnectionSettings
|
|
7
|
+
from .token_validation_configuration import TokenValidationConfiguration
|
|
6
8
|
|
|
7
9
|
__all__ = [
|
|
8
10
|
"JwtTokenValidator",
|
|
9
11
|
"_authorize_request",
|
|
12
|
+
"JwtConnectionSettings",
|
|
13
|
+
"TokenValidationConfiguration",
|
|
10
14
|
]
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
import logging
|
|
5
5
|
|
|
6
6
|
from jwt import PyJWTError
|
|
7
|
+
from typing import Any, Mapping
|
|
8
|
+
from weakref import WeakKeyDictionary
|
|
7
9
|
|
|
10
|
+
from microsoft_agents.activity.config import Configuration
|
|
8
11
|
from microsoft_agents.hosting.core.http import HttpResponse
|
|
9
12
|
|
|
10
13
|
from ..agent_auth_configuration import AgentAuthConfiguration
|
|
@@ -13,9 +16,33 @@ from .jwt_token_validator import JwtTokenValidator
|
|
|
13
16
|
|
|
14
17
|
logger = logging.getLogger(__name__)
|
|
15
18
|
|
|
19
|
+
_TOKEN_VALIDATION_CACHE: WeakKeyDictionary[Any, JwtTokenValidator] = WeakKeyDictionary()
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _resolve_token_validator(
|
|
23
|
+
auth_config: Configuration | AgentAuthConfiguration | None,
|
|
24
|
+
cache_key: Any = None,
|
|
25
|
+
) -> JwtTokenValidator | None:
|
|
26
|
+
|
|
27
|
+
if cache_key is not None and cache_key in _TOKEN_VALIDATION_CACHE:
|
|
28
|
+
return _TOKEN_VALIDATION_CACHE[cache_key]
|
|
29
|
+
|
|
30
|
+
if auth_config is not None:
|
|
31
|
+
config: AgentAuthConfiguration | Configuration = auth_config
|
|
32
|
+
if not isinstance(auth_config, AgentAuthConfiguration):
|
|
33
|
+
config = Configuration(auth_config)
|
|
34
|
+
validator = JwtTokenValidator(config)
|
|
35
|
+
if cache_key is not None:
|
|
36
|
+
_TOKEN_VALIDATION_CACHE[cache_key] = validator
|
|
37
|
+
return validator
|
|
38
|
+
return None
|
|
39
|
+
|
|
16
40
|
|
|
17
41
|
async def _authorize_request(
|
|
18
|
-
authorization_header: str | None,
|
|
42
|
+
authorization_header: str | None,
|
|
43
|
+
auth_config: Configuration | AgentAuthConfiguration | None,
|
|
44
|
+
*,
|
|
45
|
+
cache_key: Any = None
|
|
19
46
|
) -> ClaimsIdentity | HttpResponse:
|
|
20
47
|
"""
|
|
21
48
|
Authorizes a request based on the provided JWT token in the Authorization header.
|
|
@@ -25,16 +52,16 @@ async def _authorize_request(
|
|
|
25
52
|
:return: A ClaimsIdentity object if the token is valid, or an HttpResponse with an
|
|
26
53
|
error message and status code if the token is invalid or missing.
|
|
27
54
|
"""
|
|
55
|
+
validator = _resolve_token_validator(auth_config, cache_key)
|
|
28
56
|
|
|
29
|
-
if
|
|
57
|
+
if not validator:
|
|
30
58
|
return HttpResponse(
|
|
31
59
|
body={"error": "Agent Authentication configuration not found"},
|
|
32
60
|
status_code=500,
|
|
33
61
|
)
|
|
34
|
-
validator = JwtTokenValidator(auth_config)
|
|
35
62
|
|
|
36
63
|
if not authorization_header:
|
|
37
|
-
if
|
|
64
|
+
if validator.config.anonymous_allowed:
|
|
38
65
|
claims_identity = validator.get_anonymous_claims()
|
|
39
66
|
return claims_identity
|
|
40
67
|
return HttpResponse(
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from dataclasses import dataclass, field
|
|
7
|
+
|
|
8
|
+
from microsoft_agents.activity.config import Configuration, xpath
|
|
9
|
+
|
|
10
|
+
from .._entra_issuers import default_connection_issuers
|
|
11
|
+
from ..connection_settings_base import ConnectionSettingsBase
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True)
|
|
15
|
+
class JwtConnectionSettings(ConnectionSettingsBase):
|
|
16
|
+
"""Provider-independent connection settings for inbound JWT validation."""
|
|
17
|
+
|
|
18
|
+
validate_issuer: bool = False
|
|
19
|
+
issuers: list[str] = field(default_factory=list)
|
|
20
|
+
anonymous_allowed: bool = False
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def _get_init_kwargs(cls, config: Configuration) -> dict:
|
|
24
|
+
base = super()._get_init_kwargs(config)
|
|
25
|
+
issuers = config.get_str_list(xpath("issuers"))
|
|
26
|
+
issuers = issuers or default_connection_issuers(
|
|
27
|
+
base.get("tenant_id"), base.get("authority")
|
|
28
|
+
)
|
|
29
|
+
base.update(
|
|
30
|
+
{
|
|
31
|
+
"validate_issuer": config.get_bool(
|
|
32
|
+
xpath("validate_issuer"), default=False
|
|
33
|
+
),
|
|
34
|
+
"issuers": issuers,
|
|
35
|
+
"anonymous_allowed": config.get_bool(
|
|
36
|
+
xpath("anonymous_allowed"), default=False
|
|
37
|
+
),
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
return base
|