microsoft-agents-activity 1.2.0.dev4__tar.gz → 1.2.0.dev7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/PKG-INFO +1 -1
  2. microsoft_agents_activity-1.2.0.dev7/VERSION.txt +1 -0
  3. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/activity.py +133 -79
  4. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/config/_configure_logging.py +40 -3
  5. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents_activity.egg-info/PKG-INFO +1 -1
  6. microsoft_agents_activity-1.2.0.dev4/VERSION.txt +0 -1
  7. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/LICENSE +0 -0
  8. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/MANIFEST.in +0 -0
  9. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/__init__.py +0 -0
  10. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/_channel_id_field_mixin.py +0 -0
  11. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/_model_utils.py +0 -0
  12. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/_type_aliases.py +0 -0
  13. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/_utils/__init__.py +0 -0
  14. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/_utils/_deferred_string.py +0 -0
  15. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/action_types.py +0 -0
  16. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/activity_event_names.py +0 -0
  17. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/activity_importance.py +0 -0
  18. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/activity_types.py +0 -0
  19. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/adaptive_card_invoke_action.py +0 -0
  20. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/adaptive_card_invoke_response.py +0 -0
  21. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/adaptive_card_invoke_value.py +0 -0
  22. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/agents_model.py +0 -0
  23. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/animation_card.py +0 -0
  24. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/attachment.py +0 -0
  25. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/attachment_data.py +0 -0
  26. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/attachment_info.py +0 -0
  27. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/attachment_layout_types.py +0 -0
  28. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/attachment_view.py +0 -0
  29. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/audio_card.py +0 -0
  30. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/basic_card.py +0 -0
  31. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/caller_id_constants.py +0 -0
  32. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/card_action.py +0 -0
  33. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/card_image.py +0 -0
  34. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/channel_account.py +0 -0
  35. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/channel_adapter_protocol.py +0 -0
  36. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/channel_id.py +0 -0
  37. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/channels.py +0 -0
  38. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/config/__init__.py +0 -0
  39. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/config/_load_configuration.py +0 -0
  40. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/contact_relation_update_action_types.py +0 -0
  41. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/conversation_account.py +0 -0
  42. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/conversation_members.py +0 -0
  43. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/conversation_parameters.py +0 -0
  44. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/conversation_reference.py +0 -0
  45. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/conversation_resource_response.py +0 -0
  46. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/conversation_update_types.py +0 -0
  47. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/conversations_result.py +0 -0
  48. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/delivery_modes.py +0 -0
  49. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/end_of_conversation_codes.py +0 -0
  50. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/__init__.py +0 -0
  51. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/_schema_mixin.py +0 -0
  52. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/ai_entity.py +0 -0
  53. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/entity.py +0 -0
  54. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/entity_types.py +0 -0
  55. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/geo_coordinates.py +0 -0
  56. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/mention.py +0 -0
  57. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/place.py +0 -0
  58. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/product_info.py +0 -0
  59. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/stream_info.py +0 -0
  60. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/entity/thing.py +0 -0
  61. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/error.py +0 -0
  62. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/error_response.py +0 -0
  63. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/errors/__init__.py +0 -0
  64. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/errors/error_message.py +0 -0
  65. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/errors/error_resources.py +0 -0
  66. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/expected_replies.py +0 -0
  67. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/fact.py +0 -0
  68. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/hero_card.py +0 -0
  69. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/inner_http_error.py +0 -0
  70. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/input_hints.py +0 -0
  71. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/installation_update_action_types.py +0 -0
  72. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/invoke_response.py +0 -0
  73. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/media_card.py +0 -0
  74. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/media_event_value.py +0 -0
  75. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/media_url.py +0 -0
  76. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/message_reaction.py +0 -0
  77. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/message_reaction_types.py +0 -0
  78. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/message_update_types.py +0 -0
  79. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/oauth_card.py +0 -0
  80. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/paged_members_result.py +0 -0
  81. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/receipt_card.py +0 -0
  82. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/receipt_item.py +0 -0
  83. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/resource_response.py +0 -0
  84. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/role_types.py +0 -0
  85. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/semantic_action.py +0 -0
  86. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/semantic_actions_states.py +0 -0
  87. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/sign_in_constants.py +0 -0
  88. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/sign_in_resource.py +0 -0
  89. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/signin_card.py +0 -0
  90. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/suggested_actions.py +0 -0
  91. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/__init__.py +0 -0
  92. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/app_based_link_query.py +0 -0
  93. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/batch_failed_entries_response.py +0 -0
  94. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/batch_failed_entry.py +0 -0
  95. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/batch_operation_response.py +0 -0
  96. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/batch_operation_state_response.py +0 -0
  97. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/bot_config_auth.py +0 -0
  98. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/cache_info.py +0 -0
  99. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/cancel_operation_response.py +0 -0
  100. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/channel_info.py +0 -0
  101. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/config_auth_response.py +0 -0
  102. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/config_response.py +0 -0
  103. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/config_response_base.py +0 -0
  104. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/config_task_response.py +0 -0
  105. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/conversation_list.py +0 -0
  106. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/file_consent_card.py +0 -0
  107. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/file_consent_card_response.py +0 -0
  108. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/file_download_info.py +0 -0
  109. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/file_info_card.py +0 -0
  110. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/file_upload_info.py +0 -0
  111. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_details.py +0 -0
  112. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_details_base.py +0 -0
  113. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_end_event_details.py +0 -0
  114. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_event_details.py +0 -0
  115. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_info.py +0 -0
  116. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_notification.py +0 -0
  117. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_notification_base.py +0 -0
  118. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_notification_channel_data.py +0 -0
  119. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_notification_recipient_failure_info.py +0 -0
  120. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_notification_response.py +0 -0
  121. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_participant_info.py +0 -0
  122. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_participants_event_details.py +0 -0
  123. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_stage_surface.py +0 -0
  124. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_start_event_details.py +0 -0
  125. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/meeting_tab_icon_surface.py +0 -0
  126. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload.py +0 -0
  127. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_app.py +0 -0
  128. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_attachment.py +0 -0
  129. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_body.py +0 -0
  130. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_conversation.py +0 -0
  131. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_from.py +0 -0
  132. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_mention.py +0 -0
  133. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_reaction.py +0 -0
  134. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_user.py +0 -0
  135. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_action.py +0 -0
  136. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_action_response.py +0 -0
  137. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_attachment.py +0 -0
  138. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_parameter.py +0 -0
  139. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_query.py +0 -0
  140. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_query_options.py +0 -0
  141. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_response.py +0 -0
  142. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_result.py +0 -0
  143. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/messaging_extension_suggested_action.py +0 -0
  144. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/notification_info.py +0 -0
  145. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card.py +0 -0
  146. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_action_base.py +0 -0
  147. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_action_card.py +0 -0
  148. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_action_query.py +0 -0
  149. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_date_input.py +0 -0
  150. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_fact.py +0 -0
  151. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_http_post.py +0 -0
  152. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_image.py +0 -0
  153. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_input_base.py +0 -0
  154. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_multichoice_input.py +0 -0
  155. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_multichoice_input_choice.py +0 -0
  156. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_open_uri.py +0 -0
  157. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_open_uri_target.py +0 -0
  158. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_section.py +0 -0
  159. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_text_input.py +0 -0
  160. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_view_action.py +0 -0
  161. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/on_behalf_of.py +0 -0
  162. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/read_receipt_info.py +0 -0
  163. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/signin_state_verification_query.py +0 -0
  164. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/surface.py +0 -0
  165. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_context.py +0 -0
  166. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_entity_context.py +0 -0
  167. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_request.py +0 -0
  168. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_response.py +0 -0
  169. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_response_card.py +0 -0
  170. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_response_cards.py +0 -0
  171. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_response_payload.py +0 -0
  172. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_submit.py +0 -0
  173. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_submit_data.py +0 -0
  174. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tab_suggested_actions.py +0 -0
  175. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/targeted_meeting_notification.py +0 -0
  176. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/targeted_meeting_notification_value.py +0 -0
  177. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_card_response.py +0 -0
  178. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_continue_response.py +0 -0
  179. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_message_response.py +0 -0
  180. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_request.py +0 -0
  181. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_request_context.py +0 -0
  182. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_response.py +0 -0
  183. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_response_base.py +0 -0
  184. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/task_module_task_info.py +0 -0
  185. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/team_details.py +0 -0
  186. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/team_info.py +0 -0
  187. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_batch_operation_response.py +0 -0
  188. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_channel_account.py +0 -0
  189. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_channel_data.py +0 -0
  190. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_channel_data_settings.py +0 -0
  191. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_meeting_info.py +0 -0
  192. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_meeting_member.py +0 -0
  193. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_meeting_participant.py +0 -0
  194. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_member.py +0 -0
  195. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/teams_paged_members_result.py +0 -0
  196. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/tenant_info.py +0 -0
  197. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/teams/user_meeting_details.py +0 -0
  198. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/text_format_types.py +0 -0
  199. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/text_highlight.py +0 -0
  200. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/thumbnail_card.py +0 -0
  201. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/thumbnail_url.py +0 -0
  202. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_exchange_invoke_request.py +0 -0
  203. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_exchange_invoke_response.py +0 -0
  204. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_exchange_resource.py +0 -0
  205. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_exchange_state.py +0 -0
  206. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_or_sign_in_resource_response.py +0 -0
  207. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_post_resource.py +0 -0
  208. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_request.py +0 -0
  209. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_response.py +0 -0
  210. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/token_status.py +0 -0
  211. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/transcript.py +0 -0
  212. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/turn_context_protocol.py +0 -0
  213. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents/activity/video_card.py +0 -0
  214. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents_activity.egg-info/SOURCES.txt +0 -0
  215. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents_activity.egg-info/dependency_links.txt +0 -0
  216. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents_activity.egg-info/requires.txt +0 -0
  217. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/microsoft_agents_activity.egg-info/top_level.txt +0 -0
  218. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/pyproject.toml +0 -0
  219. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/readme.md +0 -0
  220. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/setup.cfg +0 -0
  221. {microsoft_agents_activity-1.2.0.dev4 → microsoft_agents_activity-1.2.0.dev7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: microsoft-agents-activity
3
- Version: 1.2.0.dev4
3
+ Version: 1.2.0.dev7
4
4
  Summary: A protocol library for Microsoft Agents
5
5
  Author: Microsoft Corporation
6
6
  License-Expression: MIT
@@ -0,0 +1 @@
1
+ 1.2.0.dev7
@@ -6,7 +6,8 @@ from __future__ import annotations
6
6
  import logging
7
7
  from copy import copy
8
8
  from datetime import datetime, timezone
9
- from typing import Optional, Any
9
+ from typing import Optional, Any, cast, Annotated, TypeVar
10
+ from typing_extensions import Self
10
11
 
11
12
  from pydantic import (
12
13
  Field,
@@ -48,6 +49,8 @@ from microsoft_agents.activity.errors import activity_errors
48
49
 
49
50
  logger = logging.getLogger(__name__)
50
51
 
52
+ _EntityT = TypeVar("_EntityT", bound=Entity)
53
+
51
54
 
52
55
  # TODO: A2A Agent 2 is responding with None as id, had to mark it as optional (investigate)
53
56
  class Activity(AgentsModel, _ChannelIdFieldMixin):
@@ -157,7 +160,7 @@ class Activity(AgentsModel, _ChannelIdFieldMixin):
157
160
  local_timestamp: datetime = None
158
161
  local_timezone: NonEmptyString = None
159
162
  service_url: NonEmptyString = None
160
- from_property: ChannelAccount = Field(None, alias="from")
163
+ from_property: Annotated[ChannelAccount, Field(alias="from")] = None
161
164
  conversation: ConversationAccount = None
162
165
  recipient: ChannelAccount = None
163
166
  text_format: NonEmptyString = None
@@ -509,33 +512,36 @@ class Activity(AgentsModel, _ChannelIdFieldMixin):
509
512
  .. remarks::
510
513
  The new activity sets up routing information based on this activity.
511
514
  """
512
- return pick_model(
513
- Activity,
514
- type=ActivityTypes.message,
515
- timestamp=datetime.now(timezone.utc),
516
- from_property=SkipNone(
517
- ChannelAccount.pick_properties(self.recipient, ["id", "name"])
518
- ),
519
- recipient=SkipNone(
520
- ChannelAccount.pick_properties(self.from_property, ["id", "name"])
521
- ),
522
- reply_to_id=(
523
- SkipNone(self.id)
524
- if type != ActivityTypes.conversation_update
525
- or self.channel_id not in ["directline", "webchat"]
526
- else None
515
+ return cast(
516
+ Self,
517
+ pick_model(
518
+ self.__class__,
519
+ type=ActivityTypes.message,
520
+ timestamp=datetime.now(timezone.utc),
521
+ from_property=SkipNone(
522
+ ChannelAccount.pick_properties(self.recipient, ["id", "name"])
523
+ ),
524
+ recipient=SkipNone(
525
+ ChannelAccount.pick_properties(self.from_property, ["id", "name"])
526
+ ),
527
+ reply_to_id=(
528
+ SkipNone(self.id)
529
+ if self.type != ActivityTypes.conversation_update
530
+ or self.channel_id not in ["directline", "webchat"]
531
+ else None
532
+ ),
533
+ service_url=self.service_url,
534
+ channel_id=self.channel_id,
535
+ conversation=SkipNone(
536
+ ConversationAccount.pick_properties(
537
+ self.conversation, ["is_group", "id", "name"]
538
+ )
539
+ ),
540
+ text=text if text else "",
541
+ locale=locale if locale else SkipNone(self.locale),
542
+ attachments=[],
543
+ entities=[],
527
544
  ),
528
- service_url=self.service_url,
529
- channel_id=self.channel_id,
530
- conversation=SkipNone(
531
- ConversationAccount.pick_properties(
532
- self.conversation, ["is_group", "id", "name"]
533
- )
534
- ),
535
- text=text if text else "",
536
- locale=locale if locale else SkipNone(self.locale),
537
- attachments=[],
538
- entities=[],
539
545
  )
540
546
 
541
547
  def create_trace(
@@ -558,33 +564,36 @@ class Activity(AgentsModel, _ChannelIdFieldMixin):
558
564
  if not value_type and value:
559
565
  value_type = type(value).__name__
560
566
 
561
- return pick_model(
562
- Activity,
563
- type=ActivityTypes.trace,
564
- timestamp=datetime.now(timezone.utc),
565
- from_property=SkipNone(
566
- ChannelAccount.pick_properties(self.recipient, ["id", "name"])
567
- ),
568
- recipient=SkipNone(
569
- ChannelAccount.pick_properties(self.from_property, ["id", "name"])
567
+ return cast(
568
+ Self,
569
+ pick_model(
570
+ self.__class__,
571
+ type=ActivityTypes.trace,
572
+ timestamp=datetime.now(timezone.utc),
573
+ from_property=SkipNone(
574
+ ChannelAccount.pick_properties(self.recipient, ["id", "name"])
575
+ ),
576
+ recipient=SkipNone(
577
+ ChannelAccount.pick_properties(self.from_property, ["id", "name"])
578
+ ),
579
+ reply_to_id=(
580
+ SkipNone(self.id) # preserve unset
581
+ if self.type != ActivityTypes.conversation_update
582
+ or self.channel_id not in ["directline", "webchat"]
583
+ else None
584
+ ),
585
+ service_url=self.service_url,
586
+ channel_id=self.channel_id,
587
+ conversation=SkipNone(
588
+ ConversationAccount.pick_properties(
589
+ self.conversation, ["is_group", "id", "name"]
590
+ )
591
+ ),
592
+ name=SkipNone(name),
593
+ label=SkipNone(label),
594
+ value_type=SkipNone(value_type),
595
+ value=SkipNone(value),
570
596
  ),
571
- reply_to_id=(
572
- SkipNone(self.id) # preserve unset
573
- if type != ActivityTypes.conversation_update
574
- or self.channel_id not in ["directline", "webchat"]
575
- else None
576
- ),
577
- service_url=self.service_url,
578
- channel_id=self.channel_id,
579
- conversation=SkipNone(
580
- ConversationAccount.pick_properties(
581
- self.conversation, ["is_group", "id", "name"]
582
- )
583
- ),
584
- name=SkipNone(name),
585
- label=SkipNone(label),
586
- value_type=SkipNone(value_type),
587
- value=SkipNone(value),
588
597
  ).as_trace_activity()
589
598
 
590
599
  @staticmethod
@@ -593,7 +602,7 @@ class Activity(AgentsModel, _ChannelIdFieldMixin):
593
602
  value: object = None,
594
603
  value_type: str | None = None,
595
604
  label: str | None = None,
596
- ):
605
+ ) -> Activity:
597
606
  """
598
607
  Creates an instance of the :class:`microsoft_agents.activity.Activity` class as a TraceActivity object.
599
608
 
@@ -607,13 +616,16 @@ class Activity(AgentsModel, _ChannelIdFieldMixin):
607
616
  if not value_type and value:
608
617
  value_type = type(value).__name__
609
618
 
610
- return pick_model(
619
+ return cast(
611
620
  Activity,
612
- type=ActivityTypes.trace,
613
- name=name,
614
- label=SkipNone(label),
615
- value_type=SkipNone(value_type),
616
- value=SkipNone(value),
621
+ pick_model(
622
+ Activity,
623
+ type=ActivityTypes.trace,
624
+ name=name,
625
+ label=SkipNone(label),
626
+ value_type=SkipNone(value_type),
627
+ value=SkipNone(value),
628
+ ),
617
629
  )
618
630
 
619
631
  @staticmethod
@@ -636,33 +648,71 @@ class Activity(AgentsModel, _ChannelIdFieldMixin):
636
648
  Composite values are split only on the first ``:``.
637
649
  :returns: A conversation reference for the conversation that contains this activity.
638
650
  """
639
- return pick_model(
651
+ return cast(
640
652
  ConversationReference,
641
- activity_id=(
642
- SkipNone(self.id)
643
- if self.type != ActivityTypes.conversation_update
644
- or self.channel_id not in ["directline", "webchat"]
645
- else None
646
- ),
647
- user=copy(self.from_property),
648
- agent=copy(self.recipient),
649
- conversation=copy(self.conversation),
650
- channel_id=(
651
- self.channel_id.split(":", 1)[0]
652
- if force_base_channel and self.channel_id is not None
653
- else self.channel_id
653
+ pick_model(
654
+ ConversationReference,
655
+ activity_id=(
656
+ SkipNone(self.id)
657
+ if self.type != ActivityTypes.conversation_update
658
+ or self.channel_id not in ["directline", "webchat"]
659
+ else None
660
+ ),
661
+ user=copy(self.from_property),
662
+ agent=copy(self.recipient),
663
+ conversation=copy(self.conversation),
664
+ channel_id=(
665
+ self.channel_id.split(":", 1)[0]
666
+ if force_base_channel and self.channel_id is not None
667
+ else self.channel_id
668
+ ),
669
+ locale=self.locale,
670
+ service_url=self.service_url,
654
671
  ),
655
- locale=self.locale,
656
- service_url=self.service_url,
657
672
  )
658
673
 
674
+ @staticmethod
675
+ def _convert_entity(raw_entity: Entity, entity_cls: type[_EntityT]) -> _EntityT:
676
+ """
677
+ Converts an entity to a specific entity type.
678
+
679
+ :param raw_entity: The entity to convert.
680
+ :param entity_cls: The class of the entity type to convert to.
681
+ :return: The converted entity of the specified type.
682
+ """
683
+ if isinstance(raw_entity, entity_cls):
684
+ return raw_entity
685
+ return entity_cls.model_validate(raw_entity.model_dump())
686
+
687
+ @staticmethod
688
+ def _convert_entity_list(
689
+ raw_entities: list[Entity], entity_cls: type[_EntityT]
690
+ ) -> list[_EntityT]:
691
+ """
692
+ Converts a list of entities to a list of a specific entity type.
693
+
694
+ :param raw_entities: The list of entities to convert.
695
+ :param entity_cls: The class of the entity type to convert to.
696
+ :return: The list of converted entities of the specified type.
697
+ """
698
+
699
+ entities: list[_EntityT] = []
700
+ for e in raw_entities:
701
+ entities.append(Activity._convert_entity(e, entity_cls))
702
+ return entities
703
+
659
704
  def get_product_info_entity(self) -> Optional[ProductInfo]:
660
705
  if not self.entities:
661
706
  return None
662
707
  target = EntityTypes.PRODUCT_INFO.lower()
663
708
  # validated entities can be Entity, and that prevents us from
664
709
  # making assumptions about the casing of the 'type' attribute
665
- return next(filter(lambda e: e.type.lower() == target, self.entities), None)
710
+ raw_product_info = next(
711
+ filter(lambda e: e.type.lower() == target, self.entities), None
712
+ )
713
+ if raw_product_info is None:
714
+ return None
715
+ return Activity._convert_entity(raw_product_info, ProductInfo)
666
716
 
667
717
  def get_mentions(self) -> list[Mention]:
668
718
  """
@@ -676,7 +726,11 @@ class Activity(AgentsModel, _ChannelIdFieldMixin):
676
726
  """
677
727
  if not self.entities:
678
728
  return []
679
- return [x for x in self.entities if x.type.lower() == EntityTypes.MENTION]
729
+ raw_mentions = [
730
+ x for x in self.entities if x.type.lower() == EntityTypes.MENTION
731
+ ]
732
+
733
+ return Activity._convert_entity_list(raw_mentions, Mention)
680
734
 
681
735
  def get_reply_conversation_reference(
682
736
  self, reply: ResourceResponse
@@ -20,6 +20,44 @@ _NAME_TO_LEVEL = {
20
20
  }
21
21
 
22
22
 
23
+ class ColorFormatter(logging.Formatter):
24
+ """Logging formatter that can add ANSI color based on severity."""
25
+
26
+ MAGENTA = "\033[1;35m"
27
+ RED = "\033[1;31m"
28
+ YELLOW = "\033[1;33m"
29
+ GREEN = "\033[1;32m"
30
+ BLUE = "\033[1;34m"
31
+ RESET = "\033[0m"
32
+
33
+ FMT = (
34
+ "%(asctime)s - %(name)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)"
35
+ )
36
+
37
+ def __init__(
38
+ self,
39
+ use_colors: bool = True,
40
+ ) -> None:
41
+ super().__init__(fmt=self.FMT)
42
+ self._plain_formatter = logging.Formatter(fmt=self.FMT)
43
+ if not use_colors:
44
+ self._formatters: dict[int, logging.Formatter] = {}
45
+ return
46
+ self._formatters = {
47
+ logging.CRITICAL: logging.Formatter(
48
+ f"{self.MAGENTA}{self.FMT}{self.RESET}"
49
+ ),
50
+ logging.ERROR: logging.Formatter(f"{self.RED}{self.FMT}{self.RESET}"),
51
+ logging.WARNING: logging.Formatter(f"{self.YELLOW}{self.FMT}{self.RESET}"),
52
+ logging.INFO: logging.Formatter(f"{self.GREEN}{self.FMT}{self.RESET}"),
53
+ logging.DEBUG: logging.Formatter(f"{self.BLUE}{self.FMT}{self.RESET}"),
54
+ }
55
+
56
+ def format(self, record: logging.LogRecord) -> str:
57
+ formatter = self._formatters.get(record.levelno)
58
+ return (formatter or self._plain_formatter).format(record)
59
+
60
+
23
61
  def _configure_logging(logging_config: dict):
24
62
  """Configures logging based on the provided logging configuration dictionary.
25
63
 
@@ -31,9 +69,7 @@ def _configure_logging(logging_config: dict):
31
69
 
32
70
  console_handler = logging.StreamHandler()
33
71
  console_handler.setFormatter(
34
- logging.Formatter(
35
- "%(asctime)s - %(name)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)"
36
- )
72
+ ColorFormatter(use_colors=console_handler.stream.isatty())
37
73
  )
38
74
 
39
75
  for key in log_levels:
@@ -50,6 +86,7 @@ def _configure_logging(logging_config: dict):
50
86
  else:
51
87
  logger = logging.getLogger(namespace)
52
88
 
89
+ logger.propagate = False # Prevent log messages from being propagated
53
90
  logger.handlers.clear() # Remove existing handlers to prevent duplicates
54
91
  logger.addHandler(console_handler)
55
92
  logger.setLevel(level)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: microsoft-agents-activity
3
- Version: 1.2.0.dev4
3
+ Version: 1.2.0.dev7
4
4
  Summary: A protocol library for Microsoft Agents
5
5
  Author: Microsoft Corporation
6
6
  License-Expression: MIT
@@ -1 +0,0 @@
1
- 1.2.0.dev4