microsoft-agents-hosting-core 0.9.0.dev11__tar.gz → 0.10.0.dev1__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.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/PKG-INFO +11 -2
- microsoft_agents_hosting_core-0.10.0.dev1/VERSION.txt +1 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/telemetry/constants.py +2 -2
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/telemetry/spans.py +2 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/telemetry/constants.py +4 -4
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/client/connector_client.py +15 -15
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/telemetry/constants.py +10 -10
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/telemetry/user_token_client_spans.py +5 -8
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/http/_http_adapter_base.py +5 -4
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/state/agent_state.py +5 -1
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/telemetry/spans.py +8 -6
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/adapter/constants.py +1 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/adapter/spans.py +25 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/attributes.py +2 -1
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/core/_agents_telemetry.py +4 -23
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/turn_context/constants.py +1 -1
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/turn_context/spans.py +3 -3
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/turn_context.py +38 -35
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents_hosting_core.egg-info/PKG-INFO +11 -2
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents_hosting_core.egg-info/requires.txt +1 -1
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/readme.md +9 -0
- microsoft_agents_hosting_core-0.9.0.dev11/VERSION.txt +0 -1
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/LICENSE +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/MANIFEST.in +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/_oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/_oauth/_flow_state.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/_oauth/_flow_storage_client.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/_oauth/_oauth_flow.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/activity_handler.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/agent.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/_routes/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/_routes/_route.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/_routes/_route_list.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/_routes/route_rank.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/_type_defs.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/agent_application.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/app_error.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/app_options.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/input_file.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/_handlers/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/_handlers/_authorization_handler.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/_handlers/_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/_handlers/agentic_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/_handlers/connector_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/_sign_in_response.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/_sign_in_state.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/auth_handler.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/authorization.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/oauth/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/proactive/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/proactive/conversation.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/proactive/conversation_builder.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/proactive/conversation_reference_builder.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/proactive/create_conversation_options.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/proactive/proactive.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/proactive/proactive_options.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/query.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/state/conversation_state.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/state/state.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/state/temp_state.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/state/turn_state.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/streaming/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/streaming/citation.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/streaming/citation_util.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/streaming/streaming_response.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/app/typing_indicator.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/access_token_provider_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/agent_auth_configuration.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/anonymous_token_provider.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/auth_types.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/authentication_constants.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/claims_identity.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/connections.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/jwt_token_validator.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/authorization/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/card_factory.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/channel_adapter.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/channel_api_handler_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/channel_service_adapter.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/channel_service_client_factory_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/agent_conversation_reference.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/channel_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/channel_host_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/channel_info_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/channel_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/channels_configuration.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/configuration_channel_host.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/conversation_constants.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/conversation_id_factory.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/conversation_id_factory_options.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/conversation_id_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/http_agent_channel.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/client/http_agent_channel_factory.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/agent_sign_in_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/attachments_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/client/user_token_client.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/connector_client_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/conversations_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/get_product_info.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/mcs/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/teams/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/teams/teams_connector_client.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/telemetry/_request_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/telemetry/connector_spans.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/user_token_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/connector/user_token_client_base.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/errors/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/errors/error_resources.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/http/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/http/_channel_service_routes.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/http/_http_request_protocol.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/http/_http_response.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/message_factory.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/middleware_set.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/rest_channel_service_client_factory.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/state/state_property_accessor.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/state/user_state.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/_type_aliases.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/error_handling.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/memory_storage.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/storage.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/store_item.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/transcript_file_store.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/transcript_info.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/transcript_logger.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/transcript_memory_store.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/storage/transcript_store.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/adapter/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/adapter/metrics.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/core/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/core/base_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/core/resource.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/core/simple_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/core/type_defs.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/turn_context/__init__.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents/hosting/core/telemetry/utils.py +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents_hosting_core.egg-info/SOURCES.txt +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents_hosting_core.egg-info/dependency_links.txt +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/microsoft_agents_hosting_core.egg-info/top_level.txt +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/pyproject.toml +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/setup.cfg +0 -0
- {microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/setup.py +0 -0
{microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microsoft-agents-hosting-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0.dev1
|
|
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==0.
|
|
18
|
+
Requires-Dist: microsoft-agents-activity==0.10.0.dev1
|
|
19
19
|
Requires-Dist: pyjwt>=2.10.1
|
|
20
20
|
Requires-Dist: isodate>=0.6.1
|
|
21
21
|
Requires-Dist: azure-core>=1.30.0
|
|
@@ -43,6 +43,15 @@ This library is part of the **Microsoft 365 Agents SDK for Python** - a comprehe
|
|
|
43
43
|
<th style="width:20%">Date</th>
|
|
44
44
|
<th style="width:60%">Release Notes</th>
|
|
45
45
|
</tr>
|
|
46
|
+
<tr>
|
|
47
|
+
<td>0.9.0</td>
|
|
48
|
+
<td>2026-04-15</td>
|
|
49
|
+
<td>
|
|
50
|
+
<a href="https://github.com/microsoft/Agents-for-python/blob/main/changelog.md#microsoft-365-agents-sdk-for-python---release-notes-v090">
|
|
51
|
+
0.9.0 Release Notes
|
|
52
|
+
</a>
|
|
53
|
+
</td>
|
|
54
|
+
</tr>
|
|
46
55
|
<tr>
|
|
47
56
|
<td>0.8.0</td>
|
|
48
57
|
<td>2026-02-23</td>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.10.0.dev1
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
|
|
4
4
|
AGENTIC_TOKEN = "agents.authorization.agentic_token"
|
|
5
5
|
AZURE_BOT_TOKEN = "agents.authorization.azure_bot_token"
|
|
6
|
-
AZURE_BOT_SIGN_OUT = "agents.authorization.
|
|
7
|
-
AZURE_BOT_SIGN_IN = "agents.authorization.
|
|
6
|
+
AZURE_BOT_SIGN_OUT = "agents.authorization.azure_bot_signout"
|
|
7
|
+
AZURE_BOT_SIGN_IN = "agents.authorization.azure_bot_signin"
|
|
@@ -35,12 +35,14 @@ class AppOnTurn(SimpleSpanWrapper):
|
|
|
35
35
|
attributes.CONVERSATION_ID: get_conversation_id(
|
|
36
36
|
self._turn_context.activity
|
|
37
37
|
),
|
|
38
|
+
attributes.SUCCESS: error is None,
|
|
38
39
|
}
|
|
39
40
|
if error is None:
|
|
40
41
|
metrics.turn_count.add(1, attributes=attrs)
|
|
41
42
|
metrics.turn_duration.record(duration, attributes=attrs)
|
|
42
43
|
else:
|
|
43
44
|
metrics.turn_error_count.add(1, attributes=attrs)
|
|
45
|
+
metrics.turn_duration.record(duration, attributes=attrs)
|
|
44
46
|
|
|
45
47
|
def _get_attributes(self) -> AttributeMap:
|
|
46
48
|
return {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
# Spans
|
|
5
5
|
|
|
6
|
-
SPAN_GET_ACCESS_TOKEN = "agents.
|
|
7
|
-
SPAN_ACQUIRE_TOKEN_ON_BEHALF_OF = "agents.
|
|
8
|
-
SPAN_GET_AGENTIC_INSTANCE_TOKEN = "agents.
|
|
9
|
-
SPAN_GET_AGENTIC_USER_TOKEN = "agents.
|
|
6
|
+
SPAN_GET_ACCESS_TOKEN = "agents.authentication.get_access_token"
|
|
7
|
+
SPAN_ACQUIRE_TOKEN_ON_BEHALF_OF = "agents.authentication.acquire_token_on_behalf_of"
|
|
8
|
+
SPAN_GET_AGENTIC_INSTANCE_TOKEN = "agents.authentication.get_agentic_instance_token"
|
|
9
|
+
SPAN_GET_AGENTIC_USER_TOKEN = "agents.authentication.get_agentic_user_token"
|
|
10
10
|
|
|
11
11
|
# Metrics
|
|
12
12
|
|
|
@@ -333,21 +333,21 @@ class ConversationsOperations(ConversationsBase):
|
|
|
333
333
|
conversation_id = self._normalize_conversation_id(conversation_id)
|
|
334
334
|
url = f"v3/conversations/{conversation_id}/activities/{activity_id}"
|
|
335
335
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
336
|
+
logger.info(
|
|
337
|
+
"Updating activity: %s in conversation: %s. Activity type is %s",
|
|
338
|
+
activity_id,
|
|
339
|
+
conversation_id,
|
|
340
|
+
body.type,
|
|
341
|
+
)
|
|
342
|
+
async with self.client.put(
|
|
343
|
+
url,
|
|
344
|
+
json=body.model_dump(by_alias=True, exclude_unset=True),
|
|
345
|
+
) as response:
|
|
346
|
+
if response.status >= 300:
|
|
347
|
+
logger.error(
|
|
348
|
+
"Error updating activity: %s", response.status, stack_info=True
|
|
349
|
+
)
|
|
350
|
+
response.raise_for_status()
|
|
351
351
|
|
|
352
352
|
data = await response.json()
|
|
353
353
|
return ResourceResponse.model_validate(data)
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
2
|
# Licensed under the MIT License.
|
|
3
3
|
|
|
4
|
-
SPAN_REPLY_TO_ACTIVITY = "agents.connector.
|
|
5
|
-
SPAN_SEND_TO_CONVERSATION = "agents.connector.
|
|
6
|
-
SPAN_UPDATE_ACTIVITY = "agents.connector.
|
|
7
|
-
SPAN_DELETE_ACTIVITY = "agents.connector.
|
|
8
|
-
SPAN_CREATE_CONVERSATION = "agents.connector.
|
|
9
|
-
SPAN_GET_CONVERSATIONS = "agents.connector.
|
|
10
|
-
SPAN_GET_CONVERSATION_MEMBERS = "agents.connector.
|
|
11
|
-
SPAN_UPLOAD_ATTACHMENT = "agents.connector.
|
|
12
|
-
SPAN_GET_ATTACHMENT = "agents.connector.
|
|
13
|
-
SPAN_GET_ATTACHMENT_INFO = "agents.connector.
|
|
4
|
+
SPAN_REPLY_TO_ACTIVITY = "agents.connector.reply_to_activity"
|
|
5
|
+
SPAN_SEND_TO_CONVERSATION = "agents.connector.send_to_conversation"
|
|
6
|
+
SPAN_UPDATE_ACTIVITY = "agents.connector.update_activity"
|
|
7
|
+
SPAN_DELETE_ACTIVITY = "agents.connector.delete_activity"
|
|
8
|
+
SPAN_CREATE_CONVERSATION = "agents.connector.create_conversation"
|
|
9
|
+
SPAN_GET_CONVERSATIONS = "agents.connector.get_conversations"
|
|
10
|
+
SPAN_GET_CONVERSATION_MEMBERS = "agents.connector.get_conversation_members"
|
|
11
|
+
SPAN_UPLOAD_ATTACHMENT = "agents.connector.upload_attachment"
|
|
12
|
+
SPAN_GET_ATTACHMENT = "agents.connector.get_attachment"
|
|
13
|
+
SPAN_GET_ATTACHMENT_INFO = "agents.connector.get_attachment_info"
|
|
14
14
|
|
|
15
15
|
SPAN_GET_USER_TOKEN = "agents.user_token_client.get_user_token"
|
|
16
16
|
SPAN_SIGN_OUT = "agents.user_token_client.sign_out"
|
|
@@ -38,14 +38,11 @@ class _UserTokenClientSpanWrapper(_RequestSpanWrapper):
|
|
|
38
38
|
|
|
39
39
|
NOTE: a dict is the annotated return type to allow child classes to add additional attributes.
|
|
40
40
|
"""
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if self._channel_id is not None:
|
|
47
|
-
attr_dict[attributes.ACTIVITY_CHANNEL_ID] = self._channel_id
|
|
48
|
-
return attr_dict
|
|
41
|
+
return {
|
|
42
|
+
attributes.CONNECTION_NAME: self._connection_name,
|
|
43
|
+
attributes.USER_ID: self._user_id,
|
|
44
|
+
attributes.ACTIVITY_CHANNEL_ID: self._channel_id,
|
|
45
|
+
}
|
|
49
46
|
|
|
50
47
|
|
|
51
48
|
class GetUserToken(_UserTokenClientSpanWrapper):
|
|
@@ -126,10 +126,11 @@ class HttpAdapterBase(ChannelServiceAdapter, ABC):
|
|
|
126
126
|
activity.type == "invoke"
|
|
127
127
|
or activity.delivery_mode == DeliveryModes.expect_replies
|
|
128
128
|
):
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
with spans.AdapterWriteResponse(activity):
|
|
130
|
+
# Invoke and ExpectReplies cannot be performed async
|
|
131
|
+
return HttpResponseFactory.json(
|
|
132
|
+
invoke_response.body, invoke_response.status
|
|
133
|
+
)
|
|
133
134
|
|
|
134
135
|
return HttpResponseFactory.accepted()
|
|
135
136
|
|
|
@@ -219,7 +219,11 @@ class AgentState:
|
|
|
219
219
|
|
|
220
220
|
if not value and default_value_factory is not None:
|
|
221
221
|
# If the value is None and a factory is provided, call the factory to get a default value
|
|
222
|
-
|
|
222
|
+
default = default_value_factory()
|
|
223
|
+
# Store the default value in the cache so modifications to it are tracked
|
|
224
|
+
if self._cached_state is not None:
|
|
225
|
+
self._cached_state.state[property_name] = default
|
|
226
|
+
return default
|
|
223
227
|
|
|
224
228
|
if target_cls and value:
|
|
225
229
|
# Attempt to deserialize the value if it is not None
|
|
@@ -15,9 +15,10 @@ from . import metrics, constants
|
|
|
15
15
|
class _StorageSpanWrapper(SimpleSpanWrapper):
|
|
16
16
|
"""Base SpanWrapper for spans related to storage operations. This is meant to be a base class for spans related to storage operations, such as retrieving or saving state, and can be used to share common functionality and attributes related to storage operations."""
|
|
17
17
|
|
|
18
|
-
def __init__(self, span_name: str, *, key_count: int):
|
|
18
|
+
def __init__(self, span_name: str, operation_name: str, *, key_count: int):
|
|
19
19
|
"""Initializes the _StorageSpanWrapper span."""
|
|
20
20
|
super().__init__(span_name)
|
|
21
|
+
self._operation_name = operation_name
|
|
21
22
|
self._key_count = key_count
|
|
22
23
|
|
|
23
24
|
def _callback(self, span: Span, duration: float, error: Exception | None) -> None:
|
|
@@ -25,13 +26,13 @@ class _StorageSpanWrapper(SimpleSpanWrapper):
|
|
|
25
26
|
metrics.storage_operation_duration.record(
|
|
26
27
|
duration,
|
|
27
28
|
attributes={
|
|
28
|
-
attributes.STORAGE_OPERATION: self.
|
|
29
|
+
attributes.STORAGE_OPERATION: self._operation_name,
|
|
29
30
|
},
|
|
30
31
|
)
|
|
31
32
|
metrics.storage_operation_total.add(
|
|
32
33
|
1,
|
|
33
34
|
attributes={
|
|
34
|
-
attributes.STORAGE_OPERATION: self.
|
|
35
|
+
attributes.STORAGE_OPERATION: self._operation_name,
|
|
35
36
|
},
|
|
36
37
|
)
|
|
37
38
|
|
|
@@ -42,6 +43,7 @@ class _StorageSpanWrapper(SimpleSpanWrapper):
|
|
|
42
43
|
"""
|
|
43
44
|
return {
|
|
44
45
|
attributes.KEY_COUNT: self._key_count,
|
|
46
|
+
attributes.STORAGE_OPERATION: self._operation_name,
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
|
|
@@ -50,7 +52,7 @@ class StorageRead(_StorageSpanWrapper):
|
|
|
50
52
|
|
|
51
53
|
def __init__(self, key_count: int):
|
|
52
54
|
"""Initializes the StorageRead span."""
|
|
53
|
-
super().__init__(constants.SPAN_STORAGE_READ, key_count=key_count)
|
|
55
|
+
super().__init__(constants.SPAN_STORAGE_READ, "read", key_count=key_count)
|
|
54
56
|
|
|
55
57
|
|
|
56
58
|
class StorageWrite(_StorageSpanWrapper):
|
|
@@ -58,7 +60,7 @@ class StorageWrite(_StorageSpanWrapper):
|
|
|
58
60
|
|
|
59
61
|
def __init__(self, key_count: int):
|
|
60
62
|
"""Initializes the StorageWrite span."""
|
|
61
|
-
super().__init__(constants.SPAN_STORAGE_WRITE, key_count=key_count)
|
|
63
|
+
super().__init__(constants.SPAN_STORAGE_WRITE, "write", key_count=key_count)
|
|
62
64
|
|
|
63
65
|
|
|
64
66
|
class StorageDelete(_StorageSpanWrapper):
|
|
@@ -66,4 +68,4 @@ class StorageDelete(_StorageSpanWrapper):
|
|
|
66
68
|
|
|
67
69
|
def __init__(self, key_count: int):
|
|
68
70
|
"""Initializes the StorageDelete span."""
|
|
69
|
-
super().__init__(constants.SPAN_STORAGE_DELETE, key_count=key_count)
|
|
71
|
+
super().__init__(constants.SPAN_STORAGE_DELETE, "delete", key_count=key_count)
|
|
@@ -8,6 +8,7 @@ SPAN_DELETE_ACTIVITY = "agents.adapter.delete_activity"
|
|
|
8
8
|
SPAN_CONTINUE_CONVERSATION = "agents.adapter.continue_conversation"
|
|
9
9
|
SPAN_CREATE_CONNECTOR_CLIENT = "agents.adapter.create_connector_client"
|
|
10
10
|
SPAN_CREATE_USER_TOKEN_CLIENT = "agents.adapter.create_user_token_client"
|
|
11
|
+
SPAN_WRITE_RESPONSE = "agents.adapter.write_response"
|
|
11
12
|
|
|
12
13
|
METRIC_ADAPTER_PROCESS_DURATION = "agents.adapter.process.duration"
|
|
13
14
|
|
|
@@ -196,3 +196,28 @@ class AdapterCreateConnectorClient(SimpleSpanWrapper):
|
|
|
196
196
|
attributes.AUTH_SCOPES: format_scopes(self._scopes),
|
|
197
197
|
attributes.IS_AGENTIC: self._is_agentic_request,
|
|
198
198
|
}
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
class AdapterWriteResponse(SimpleSpanWrapper):
|
|
202
|
+
"""Span for writing an InvokeResponse in the adapter. This captures the handling of expectReplies, invoke, and streaming"""
|
|
203
|
+
|
|
204
|
+
def __init__(self, activity: Activity):
|
|
205
|
+
"""Initializes the AdapterWriteResponse span."""
|
|
206
|
+
super().__init__(constants.SPAN_WRITE_RESPONSE)
|
|
207
|
+
self._activity = activity
|
|
208
|
+
|
|
209
|
+
def _callback(self, span: Span, duration: float, error: Exception | None) -> None:
|
|
210
|
+
metrics.activities_sent.add(
|
|
211
|
+
1,
|
|
212
|
+
attributes={
|
|
213
|
+
attributes.ACTIVITY_TYPE: self._activity.type,
|
|
214
|
+
attributes.ACTIVITY_CHANNEL_ID: self._activity.channel_id
|
|
215
|
+
or attributes.UNKNOWN,
|
|
216
|
+
},
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
def _get_attributes(self) -> AttributeMap:
|
|
220
|
+
"""Returns a dictionary of attributes to set on the span when it is started. This includes attributes related to the activities being sent."""
|
|
221
|
+
return {
|
|
222
|
+
attributes.CONVERSATION_ID: get_conversation_id(self._activity),
|
|
223
|
+
}
|
|
@@ -26,7 +26,7 @@ CONVERSATION_ID = "activity.conversation.id"
|
|
|
26
26
|
HTTP_METHOD = "http.method"
|
|
27
27
|
HTTP_STATUS_CODE = "http.status_code"
|
|
28
28
|
|
|
29
|
-
IS_AGENTIC = "is_agentic_request"
|
|
29
|
+
IS_AGENTIC = "activity.is_agentic_request"
|
|
30
30
|
|
|
31
31
|
KEY_COUNT = "storage.keys.count"
|
|
32
32
|
|
|
@@ -39,6 +39,7 @@ ROUTE_MATCHED = "route.matched"
|
|
|
39
39
|
|
|
40
40
|
SERVICE_URL = "service_url"
|
|
41
41
|
STORAGE_OPERATION = "storage.operation"
|
|
42
|
+
SUCCESS = "success"
|
|
42
43
|
|
|
43
44
|
TOKEN_SERVICE_ENDPOINT = "agents.token_service.endpoint"
|
|
44
45
|
|
|
@@ -40,27 +40,6 @@ class _AgentsTelemetry:
|
|
|
40
40
|
"""Returns the OpenTelemetry meter instance for recording metrics"""
|
|
41
41
|
return self._meter
|
|
42
42
|
|
|
43
|
-
def _extract_attributes_from_context(
|
|
44
|
-
self, turn_context: TurnContextProtocol
|
|
45
|
-
) -> dict:
|
|
46
|
-
"""Helper method to extract common attributes from the TurnContext for span and metric recording"""
|
|
47
|
-
|
|
48
|
-
# This can be expanded to extract common attributes for spans and metrics from the context
|
|
49
|
-
attributes = {}
|
|
50
|
-
attributes["activity.type"] = turn_context.activity.type
|
|
51
|
-
attributes["agent.is_agentic"] = turn_context.activity.is_agentic_request()
|
|
52
|
-
if turn_context.activity.from_property:
|
|
53
|
-
attributes["from.id"] = turn_context.activity.from_property.id
|
|
54
|
-
if turn_context.activity.recipient:
|
|
55
|
-
attributes["recipient.id"] = turn_context.activity.recipient.id
|
|
56
|
-
if turn_context.activity.conversation:
|
|
57
|
-
attributes["conversation.id"] = turn_context.activity.conversation.id
|
|
58
|
-
attributes["channel_id"] = turn_context.activity.channel_id
|
|
59
|
-
attributes["message.text.length"] = (
|
|
60
|
-
len(turn_context.activity.text) if turn_context.activity.text else 0
|
|
61
|
-
)
|
|
62
|
-
return attributes
|
|
63
|
-
|
|
64
43
|
@contextmanager
|
|
65
44
|
def start_as_current_span(
|
|
66
45
|
self,
|
|
@@ -74,7 +53,9 @@ class _AgentsTelemetry:
|
|
|
74
53
|
:return: An iterator that yields the started span, which will be ended when the context manager exits
|
|
75
54
|
"""
|
|
76
55
|
|
|
77
|
-
with self._tracer.start_as_current_span(
|
|
56
|
+
with self._tracer.start_as_current_span(
|
|
57
|
+
span_name, record_exception=False, set_status_on_exception=False
|
|
58
|
+
) as span:
|
|
78
59
|
|
|
79
60
|
start = time.time()
|
|
80
61
|
exception: Exception | None = None
|
|
@@ -92,7 +73,6 @@ class _AgentsTelemetry:
|
|
|
92
73
|
duration = (end - start) * 1000 # milliseconds
|
|
93
74
|
|
|
94
75
|
if success:
|
|
95
|
-
span.add_event(f"{span_name} completed", {"duration_ms": duration})
|
|
96
76
|
span.set_status(trace.Status(trace.StatusCode.OK))
|
|
97
77
|
if callback:
|
|
98
78
|
callback(span, duration, None)
|
|
@@ -101,6 +81,7 @@ class _AgentsTelemetry:
|
|
|
101
81
|
callback(span, duration, exception)
|
|
102
82
|
|
|
103
83
|
span.set_status(trace.Status(trace.StatusCode.ERROR))
|
|
84
|
+
span.record_exception(exception)
|
|
104
85
|
|
|
105
86
|
|
|
106
87
|
agents_telemetry = _AgentsTelemetry()
|
|
@@ -13,11 +13,11 @@ from microsoft_agents.hosting.core.telemetry import (
|
|
|
13
13
|
from . import constants
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
class
|
|
17
|
-
"""Span wrapper for sending
|
|
16
|
+
class TurnContextSendActivities(SimpleSpanWrapper):
|
|
17
|
+
"""Span wrapper for sending activities within a turn context."""
|
|
18
18
|
|
|
19
19
|
def __init__(self, turn_context: TurnContextProtocol):
|
|
20
|
-
super().__init__(constants.
|
|
20
|
+
super().__init__(constants.SPAN_TURN_SEND_ACTIVITIES)
|
|
21
21
|
self._turn_context = turn_context
|
|
22
22
|
|
|
23
23
|
def _get_attributes(self) -> AttributeMap:
|
|
@@ -20,6 +20,7 @@ from microsoft_agents.activity import (
|
|
|
20
20
|
)
|
|
21
21
|
from microsoft_agents.activity.entity.entity_types import EntityTypes
|
|
22
22
|
from microsoft_agents.hosting.core.authorization.claims_identity import ClaimsIdentity
|
|
23
|
+
import microsoft_agents.hosting.core.telemetry.turn_context.spans as spans
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
class TurnContext(TurnContextProtocol):
|
|
@@ -211,50 +212,52 @@ class TurnContext(TurnContextProtocol):
|
|
|
211
212
|
# TODO: Check activity serialization
|
|
212
213
|
ref = self.activity.get_conversation_reference()
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
with spans.TurnContextSendActivities(self):
|
|
216
|
+
|
|
217
|
+
def activity_validator(activity: Activity) -> Activity:
|
|
218
|
+
if not getattr(activity, "type", None):
|
|
219
|
+
activity.type = ActivityTypes.message
|
|
220
|
+
if activity.type != ActivityTypes.trace:
|
|
221
|
+
nonlocal sent_non_trace_activity
|
|
222
|
+
sent_non_trace_activity = True
|
|
223
|
+
if not activity.input_hint:
|
|
224
|
+
activity.input_hint = "acceptingInput"
|
|
225
|
+
activity.id = None
|
|
226
|
+
return activity
|
|
227
|
+
|
|
228
|
+
output = [
|
|
229
|
+
activity_validator(
|
|
230
|
+
TurnContext.apply_conversation_reference(deepcopy(act), ref)
|
|
231
|
+
)
|
|
232
|
+
for act in activities
|
|
233
|
+
]
|
|
234
|
+
|
|
235
|
+
# send activities through adapter
|
|
236
|
+
async def logic():
|
|
218
237
|
nonlocal sent_non_trace_activity
|
|
219
|
-
sent_non_trace_activity = True
|
|
220
|
-
if not activity.input_hint:
|
|
221
|
-
activity.input_hint = "acceptingInput"
|
|
222
|
-
activity.id = None
|
|
223
|
-
return activity
|
|
224
|
-
|
|
225
|
-
output = [
|
|
226
|
-
activity_validator(
|
|
227
|
-
TurnContext.apply_conversation_reference(deepcopy(act), ref)
|
|
228
|
-
)
|
|
229
|
-
for act in activities
|
|
230
|
-
]
|
|
231
238
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
239
|
+
if self.activity.delivery_mode == DeliveryModes.expect_replies:
|
|
240
|
+
responses = []
|
|
241
|
+
for activity in output:
|
|
242
|
+
self.buffered_reply_activities.append(activity)
|
|
243
|
+
# Ensure the TurnState has the InvokeResponseKey, since this activity
|
|
244
|
+
# is not being sent through the adapter, where it would be added to TurnState.
|
|
245
|
+
if activity.type == ActivityTypes.invoke_response:
|
|
246
|
+
self.turn_state[TurnContext._INVOKE_RESPONSE_KEY] = activity
|
|
235
247
|
|
|
236
|
-
|
|
237
|
-
responses = []
|
|
238
|
-
for activity in output:
|
|
239
|
-
self.buffered_reply_activities.append(activity)
|
|
240
|
-
# Ensure the TurnState has the InvokeResponseKey, since this activity
|
|
241
|
-
# is not being sent through the adapter, where it would be added to TurnState.
|
|
242
|
-
if activity.type == ActivityTypes.invoke_response:
|
|
243
|
-
self.turn_state[TurnContext._INVOKE_RESPONSE_KEY] = activity
|
|
248
|
+
responses.append(ResourceResponse())
|
|
244
249
|
|
|
245
|
-
|
|
250
|
+
if sent_non_trace_activity:
|
|
251
|
+
self.responded = True
|
|
246
252
|
|
|
253
|
+
return responses
|
|
254
|
+
|
|
255
|
+
responses = await self.adapter.send_activities(self, output)
|
|
247
256
|
if sent_non_trace_activity:
|
|
248
257
|
self.responded = True
|
|
249
|
-
|
|
250
258
|
return responses
|
|
251
259
|
|
|
252
|
-
|
|
253
|
-
if sent_non_trace_activity:
|
|
254
|
-
self.responded = True
|
|
255
|
-
return responses
|
|
256
|
-
|
|
257
|
-
return await self._emit(self._on_send_activities, output, logic())
|
|
260
|
+
return await self._emit(self._on_send_activities, output, logic())
|
|
258
261
|
|
|
259
262
|
async def update_activity(self, activity: Activity):
|
|
260
263
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microsoft-agents-hosting-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0.dev1
|
|
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==0.
|
|
18
|
+
Requires-Dist: microsoft-agents-activity==0.10.0.dev1
|
|
19
19
|
Requires-Dist: pyjwt>=2.10.1
|
|
20
20
|
Requires-Dist: isodate>=0.6.1
|
|
21
21
|
Requires-Dist: azure-core>=1.30.0
|
|
@@ -43,6 +43,15 @@ This library is part of the **Microsoft 365 Agents SDK for Python** - a comprehe
|
|
|
43
43
|
<th style="width:20%">Date</th>
|
|
44
44
|
<th style="width:60%">Release Notes</th>
|
|
45
45
|
</tr>
|
|
46
|
+
<tr>
|
|
47
|
+
<td>0.9.0</td>
|
|
48
|
+
<td>2026-04-15</td>
|
|
49
|
+
<td>
|
|
50
|
+
<a href="https://github.com/microsoft/Agents-for-python/blob/main/changelog.md#microsoft-365-agents-sdk-for-python---release-notes-v090">
|
|
51
|
+
0.9.0 Release Notes
|
|
52
|
+
</a>
|
|
53
|
+
</td>
|
|
54
|
+
</tr>
|
|
46
55
|
<tr>
|
|
47
56
|
<td>0.8.0</td>
|
|
48
57
|
<td>2026-02-23</td>
|
{microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/readme.md
RENAMED
|
@@ -16,6 +16,15 @@ This library is part of the **Microsoft 365 Agents SDK for Python** - a comprehe
|
|
|
16
16
|
<th style="width:20%">Date</th>
|
|
17
17
|
<th style="width:60%">Release Notes</th>
|
|
18
18
|
</tr>
|
|
19
|
+
<tr>
|
|
20
|
+
<td>0.9.0</td>
|
|
21
|
+
<td>2026-04-15</td>
|
|
22
|
+
<td>
|
|
23
|
+
<a href="https://github.com/microsoft/Agents-for-python/blob/main/changelog.md#microsoft-365-agents-sdk-for-python---release-notes-v090">
|
|
24
|
+
0.9.0 Release Notes
|
|
25
|
+
</a>
|
|
26
|
+
</td>
|
|
27
|
+
</tr>
|
|
19
28
|
<tr>
|
|
20
29
|
<td>0.8.0</td>
|
|
21
30
|
<td>2026-02-23</td>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.9.0.dev11
|
{microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/LICENSE
RENAMED
|
File without changes
|
{microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/MANIFEST.in
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/setup.cfg
RENAMED
|
File without changes
|
{microsoft_agents_hosting_core-0.9.0.dev11 → microsoft_agents_hosting_core-0.10.0.dev1}/setup.py
RENAMED
|
File without changes
|