semantic-kernel 1.41.0__tar.gz → 1.41.2__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 (572) hide show
  1. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/PKG-INFO +6 -6
  2. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/pyproject.toml +6 -6
  3. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/__init__.py +1 -1
  4. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/responses_agent_thread_actions.py +13 -4
  5. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_chat_completion.py +13 -1
  6. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_text_completion.py +3 -1
  7. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_text_embedding.py +3 -1
  8. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/utils.py +32 -12
  9. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/shared_utils.py +60 -0
  10. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/utils.py +21 -11
  11. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_chat_completion.py +10 -0
  12. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/chat_history.py +17 -0
  13. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_reducer_utils.py +25 -1
  14. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_summarization_reducer.py +29 -2
  15. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_truncation_reducer.py +30 -3
  16. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/step_actor.py +6 -4
  17. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_kernel_process_context.py +15 -2
  18. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_process_info.py +9 -4
  19. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_step_info.py +11 -5
  20. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/step_utils.py +15 -7
  21. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/handlebars_system_helpers.py +18 -8
  22. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/jinja2_system_helpers.py +3 -12
  23. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/LICENSE +0 -0
  24. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/README.md +0 -0
  25. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/__init__.py +0 -0
  26. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/__init__.pyi +0 -0
  27. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/agent.py +0 -0
  28. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/autogen/README.md +0 -0
  29. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/autogen/__init__.py +0 -0
  30. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/autogen/autogen_conversable_agent.py +0 -0
  31. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/__init__.py +0 -0
  32. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/agent_content_generation.py +0 -0
  33. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/agent_thread_actions.py +0 -0
  34. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_agent.py +0 -0
  35. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_agent_settings.py +0 -0
  36. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_agent_utils.py +0 -0
  37. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/azure_ai/azure_ai_channel.py +0 -0
  38. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/README.md +0 -0
  39. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/__init__.py +0 -0
  40. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/action_group_utils.py +0 -0
  41. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/bedrock_agent.py +0 -0
  42. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/bedrock_agent_base.py +0 -0
  43. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/bedrock_agent_settings.py +0 -0
  44. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/__init__.py +0 -0
  45. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_action_group_model.py +0 -0
  46. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_agent_event_type.py +0 -0
  47. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_agent_model.py +0 -0
  48. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/bedrock/models/bedrock_agent_status.py +0 -0
  49. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/__init__.py +0 -0
  50. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/agent_channel.py +0 -0
  51. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/bedrock_agent_channel.py +0 -0
  52. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/chat_history_channel.py +0 -0
  53. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/channels/open_ai_assistant_channel.py +0 -0
  54. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/chat_completion/__init__.py +0 -0
  55. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/chat_completion/chat_completion_agent.py +0 -0
  56. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/copilot_studio/__init__.py +0 -0
  57. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/copilot_studio/copilot_studio_agent.py +0 -0
  58. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/copilot_studio/copilot_studio_agent_settings.py +0 -0
  59. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/__init__.py +0 -0
  60. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/agent_chat.py +0 -0
  61. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/agent_chat_utils.py +0 -0
  62. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/agent_group_chat.py +0 -0
  63. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/group_chat/broadcast_queue.py +0 -0
  64. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/__init__.py +0 -0
  65. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/assistant_content_generation.py +0 -0
  66. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/assistant_thread_actions.py +0 -0
  67. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/azure_assistant_agent.py +0 -0
  68. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/azure_responses_agent.py +0 -0
  69. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/function_action_result.py +0 -0
  70. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/openai_assistant_agent.py +0 -0
  71. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/openai_responses_agent.py +0 -0
  72. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/open_ai/run_polling_options.py +0 -0
  73. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/__init__.py +0 -0
  74. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/agent_actor_base.py +0 -0
  75. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/concurrent.py +0 -0
  76. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/group_chat.py +0 -0
  77. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/handoffs.py +0 -0
  78. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/magentic.py +0 -0
  79. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/orchestration_base.py +0 -0
  80. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/prompts/__init__.py +0 -0
  81. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/prompts/_magentic_prompts.py +0 -0
  82. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/sequential.py +0 -0
  83. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/orchestration/tools.py +0 -0
  84. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/__init__.py +0 -0
  85. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/__init__.py +0 -0
  86. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent.py +0 -0
  87. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent_id.py +0 -0
  88. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent_metadata.py +0 -0
  89. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/agent_type.py +0 -0
  90. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/base_agent.py +0 -0
  91. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/cancellation_token.py +0 -0
  92. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/core_runtime.py +0 -0
  93. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/exceptions.py +0 -0
  94. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/intervention.py +0 -0
  95. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/logging.py +0 -0
  96. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/message_context.py +0 -0
  97. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/routed_agent.py +0 -0
  98. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/serialization.py +0 -0
  99. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/subscription.py +0 -0
  100. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/__init__.py +0 -0
  101. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/constants.py +0 -0
  102. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/propagation.py +0 -0
  103. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/tracing.py +0 -0
  104. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/telemetry/tracing_config.py +0 -0
  105. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/topic.py +0 -0
  106. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/type_helpers.py +0 -0
  107. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/core/validation_utils.py +0 -0
  108. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/__init__.py +0 -0
  109. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/agent_instantiation_context.py +0 -0
  110. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/default_subscription.py +0 -0
  111. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/default_topic.py +0 -0
  112. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/in_process_runtime.py +0 -0
  113. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/message_handler_context.py +0 -0
  114. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/queue.py +0 -0
  115. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/runtime_impl_helpers.py +0 -0
  116. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/subscription_context.py +0 -0
  117. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/type_prefix_subscription.py +0 -0
  118. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/runtime/in_process/type_subscription.py +0 -0
  119. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/__init__.py +0 -0
  120. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/__init__.py +0 -0
  121. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/kernel_function_selection_strategy.py +0 -0
  122. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/selection_strategy.py +0 -0
  123. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/selection/sequential_selection_strategy.py +0 -0
  124. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/__init__.py +0 -0
  125. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/aggregator_termination_strategy.py +0 -0
  126. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/default_termination_strategy.py +0 -0
  127. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/kernel_function_termination_strategy.py +0 -0
  128. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/agents/strategies/termination/termination_strategy.py +0 -0
  129. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/__init__.py +0 -0
  130. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/_search_shared.py +0 -0
  131. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/README.md +0 -0
  132. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/__init__.py +0 -0
  133. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/__init__.py +0 -0
  134. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/prompt_execution_settings/__init__.py +0 -0
  135. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/prompt_execution_settings/anthropic_prompt_execution_settings.py +0 -0
  136. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/services/__init__.py +0 -0
  137. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/services/anthropic_chat_completion.py +0 -0
  138. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/services/utils.py +0 -0
  139. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/settings/__init__.py +0 -0
  140. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/anthropic/settings/anthropic_settings.py +0 -0
  141. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/audio_to_text_client_base.py +0 -0
  142. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/__init__.py +0 -0
  143. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/azure_ai_inference_prompt_execution_settings.py +0 -0
  144. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/azure_ai_inference_settings.py +0 -0
  145. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/__init__.py +0 -0
  146. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_base.py +0 -0
  147. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_chat_completion.py +0 -0
  148. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_text_embedding.py +0 -0
  149. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/azure_ai_inference_tracing.py +0 -0
  150. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/azure_ai_inference/services/utils.py +0 -0
  151. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/README.md +0 -0
  152. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/__init__.py +0 -0
  153. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/bedrock_prompt_execution_settings.py +0 -0
  154. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/bedrock_settings.py +0 -0
  155. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/__init__.py +0 -0
  156. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_base.py +0 -0
  157. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_chat_completion.py +0 -0
  158. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_text_completion.py +0 -0
  159. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/bedrock_text_embedding.py +0 -0
  160. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/__init__.py +0 -0
  161. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_ai21_labs.py +0 -0
  162. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_amazon_titan.py +0 -0
  163. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_anthropic_claude.py +0 -0
  164. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_cohere.py +0 -0
  165. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_meta_llama.py +0 -0
  166. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_mistralai.py +0 -0
  167. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/bedrock_model_provider.py +0 -0
  168. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/bedrock/services/model_provider/utils.py +0 -0
  169. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/chat_completion_client_base.py +0 -0
  170. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/completion_usage.py +0 -0
  171. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/embedding_generator_base.py +0 -0
  172. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/embeddings/__init__.py +0 -0
  173. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/embeddings/embedding_generator_base.py +0 -0
  174. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_call_choice_configuration.py +0 -0
  175. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_calling_utils.py +0 -0
  176. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_choice_behavior.py +0 -0
  177. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/function_choice_type.py +0 -0
  178. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/README.md +0 -0
  179. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/__init__.py +0 -0
  180. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/__init__.py +0 -0
  181. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/google_ai_prompt_execution_settings.py +0 -0
  182. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/google_ai_settings.py +0 -0
  183. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/__init__.py +0 -0
  184. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_base.py +0 -0
  185. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/__init__.py +0 -0
  186. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/__init__.py +0 -0
  187. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_base.py +0 -0
  188. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_text_completion.py +0 -0
  189. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/services/vertex_ai_text_embedding.py +0 -0
  190. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/vertex_ai_prompt_execution_settings.py +0 -0
  191. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/google/vertex_ai/vertex_ai_settings.py +0 -0
  192. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/__init__.py +0 -0
  193. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/hf_prompt_execution_settings.py +0 -0
  194. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/services/__init__.py +0 -0
  195. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/services/hf_text_completion.py +0 -0
  196. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/hugging_face/services/hf_text_embedding.py +0 -0
  197. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/__init__.py +0 -0
  198. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/prompt_execution_settings/__init__.py +0 -0
  199. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/prompt_execution_settings/mistral_ai_prompt_execution_settings.py +0 -0
  200. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/__init__.py +0 -0
  201. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/mistral_ai_base.py +0 -0
  202. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/mistral_ai_chat_completion.py +0 -0
  203. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/services/mistral_ai_text_embedding.py +0 -0
  204. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/settings/__init__.py +0 -0
  205. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/mistral_ai/settings/mistral_ai_settings.py +0 -0
  206. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/README.md +0 -0
  207. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/__init__.py +0 -0
  208. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/prompt_execution_settings/__init__.py +0 -0
  209. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/prompt_execution_settings/nvidia_prompt_execution_settings.py +0 -0
  210. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/__init__.py +0 -0
  211. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_chat_completion.py +0 -0
  212. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_handler.py +0 -0
  213. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_model_types.py +0 -0
  214. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/services/nvidia_text_embedding.py +0 -0
  215. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/settings/__init__.py +0 -0
  216. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/nvidia/settings/nvidia_settings.py +0 -0
  217. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/__init__.py +0 -0
  218. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/ollama_prompt_execution_settings.py +0 -0
  219. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/ollama_settings.py +0 -0
  220. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/__init__.py +0 -0
  221. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_base.py +0 -0
  222. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_chat_completion.py +0 -0
  223. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_text_completion.py +0 -0
  224. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/ollama_text_embedding.py +0 -0
  225. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/ollama/services/utils.py +0 -0
  226. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/__init__.py +0 -0
  227. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/onnx_gen_ai_prompt_execution_settings.py +0 -0
  228. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/onnx_gen_ai_settings.py +0 -0
  229. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/__init__.py +0 -0
  230. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/onnx_gen_ai_chat_completion.py +0 -0
  231. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/onnx_gen_ai_completion_base.py +0 -0
  232. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/services/onnx_gen_ai_text_completion.py +0 -0
  233. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/onnx/utils.py +0 -0
  234. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/__init__.py +0 -0
  235. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/const.py +0 -0
  236. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/exceptions/__init__.py +0 -0
  237. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/exceptions/content_filter_ai_exception.py +0 -0
  238. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/__init__.py +0 -0
  239. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/azure_chat_prompt_execution_settings.py +0 -0
  240. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_audio_to_text_execution_settings.py +0 -0
  241. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_prompt_execution_settings.py +0 -0
  242. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_realtime_execution_settings.py +0 -0
  243. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_text_to_audio_execution_settings.py +0 -0
  244. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/prompt_execution_settings/open_ai_text_to_image_execution_settings.py +0 -0
  245. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/__init__.py +0 -0
  246. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/_open_ai_realtime.py +0 -0
  247. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_audio_to_text.py +0 -0
  248. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_chat_completion.py +0 -0
  249. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_config_base.py +0 -0
  250. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_realtime.py +0 -0
  251. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_completion.py +0 -0
  252. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_embedding.py +0 -0
  253. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_to_audio.py +0 -0
  254. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/azure_text_to_image.py +0 -0
  255. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_audio_to_text.py +0 -0
  256. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_audio_to_text_base.py +0 -0
  257. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_chat_completion.py +0 -0
  258. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_chat_completion_base.py +0 -0
  259. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_config_base.py +0 -0
  260. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_handler.py +0 -0
  261. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_model_types.py +0 -0
  262. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_realtime.py +0 -0
  263. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_completion.py +0 -0
  264. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_completion_base.py +0 -0
  265. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_embedding.py +0 -0
  266. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_embedding_base.py +0 -0
  267. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_audio.py +0 -0
  268. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_audio_base.py +0 -0
  269. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_image.py +0 -0
  270. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_to_image_base.py +0 -0
  271. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/settings/__init__.py +0 -0
  272. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/settings/azure_open_ai_settings.py +0 -0
  273. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/open_ai/settings/open_ai_settings.py +0 -0
  274. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/prompt_execution_settings.py +0 -0
  275. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/realtime_client_base.py +0 -0
  276. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/text_completion_client_base.py +0 -0
  277. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/text_to_audio_client_base.py +0 -0
  278. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/ai/text_to_image_client_base.py +0 -0
  279. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/azure_ai_search.py +0 -0
  280. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/azure_cosmos_db.py +0 -0
  281. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/brave.py +0 -0
  282. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/chroma.py +0 -0
  283. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/faiss.py +0 -0
  284. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/google_search.py +0 -0
  285. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/in_memory.py +0 -0
  286. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/mcp.py +0 -0
  287. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory.py +0 -0
  288. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory.pyi +0 -0
  289. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/__init__.py +0 -0
  290. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/__init__.py +0 -0
  291. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/astra_client.py +0 -0
  292. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/astradb_memory_store.py +0 -0
  293. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/astradb_settings.py +0 -0
  294. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/astradb/utils.py +0 -0
  295. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cognitive_search/__init__.py +0 -0
  296. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cognitive_search/azure_cognitive_search_memory_store.py +0 -0
  297. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cognitive_search/utils.py +0 -0
  298. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/__init__.py +0 -0
  299. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/azure_cosmos_db_memory_store.py +0 -0
  300. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/azure_cosmos_db_store_api.py +0 -0
  301. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/mongo_vcore_store_api.py +0 -0
  302. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb/utils.py +0 -0
  303. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb_no_sql/__init__.py +0 -0
  304. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/azure_cosmosdb_no_sql/azure_cosmosdb_no_sql_memory_store.py +0 -0
  305. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/chroma/__init__.py +0 -0
  306. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/chroma/chroma_memory_store.py +0 -0
  307. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/chroma/utils.py +0 -0
  308. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/milvus/__init__.py +0 -0
  309. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/milvus/milvus_memory_store.py +0 -0
  310. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/README.md +0 -0
  311. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/__init__.py +0 -0
  312. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/mongodb_atlas_memory_store.py +0 -0
  313. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/mongodb_atlas/utils.py +0 -0
  314. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/pinecone/__init__.py +0 -0
  315. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/pinecone/pinecone_memory_store.py +0 -0
  316. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/pinecone/utils.py +0 -0
  317. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/postgres/__init__.py +0 -0
  318. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/postgres/postgres_memory_store.py +0 -0
  319. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/qdrant/__init__.py +0 -0
  320. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/qdrant/qdrant_memory_store.py +0 -0
  321. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/README.md +0 -0
  322. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/__init__.py +0 -0
  323. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/redis_memory_store.py +0 -0
  324. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/redis/utils.py +0 -0
  325. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/usearch/__init__.py +0 -0
  326. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/usearch/usearch_memory_store.py +0 -0
  327. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/weaviate/README.md +0 -0
  328. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/weaviate/__init__.py +0 -0
  329. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/memory_stores/weaviate/weaviate_memory_store.py +0 -0
  330. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/mongodb.py +0 -0
  331. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/__init__.py +0 -0
  332. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/const.py +0 -0
  333. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/__init__.py +0 -0
  334. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_expected_response.py +0 -0
  335. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_oauth_flow.py +0 -0
  336. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_oauth_flows.py +0 -0
  337. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_operation.py +0 -0
  338. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_parameter.py +0 -0
  339. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_parameter_location.py +0 -0
  340. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_parameter_style.py +0 -0
  341. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_payload.py +0 -0
  342. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_payload_property.py +0 -0
  343. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_run_options.py +0 -0
  344. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_security_requirement.py +0 -0
  345. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_security_scheme.py +0 -0
  346. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/models/rest_api_uri.py +0 -0
  347. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_function_execution_parameters.py +0 -0
  348. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_manager.py +0 -0
  349. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_parser.py +0 -0
  350. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/openapi_runner.py +0 -0
  351. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/openapi_plugin/operation_selection_predicate_context.py +0 -0
  352. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/oracle.py +0 -0
  353. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/pinecone.py +0 -0
  354. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/postgres.py +0 -0
  355. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/qdrant.py +0 -0
  356. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/redis.py +0 -0
  357. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/search.py +0 -0
  358. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/search.pyi +0 -0
  359. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/sql_server.py +0 -0
  360. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/utils/__init__.py +0 -0
  361. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/utils/document_loader.py +0 -0
  362. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/utils/structured_output_schema.py +0 -0
  363. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/connectors/weaviate.py +0 -0
  364. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/const.py +0 -0
  365. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/__init__.py +0 -0
  366. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/annotation_content.py +0 -0
  367. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/audio_content.py +0 -0
  368. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/binary_content.py +0 -0
  369. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/chat_message_content.py +0 -0
  370. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/const.py +0 -0
  371. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/file_reference_content.py +0 -0
  372. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/function_call_content.py +0 -0
  373. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/function_result_content.py +0 -0
  374. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/__init__.py +0 -0
  375. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/history_reducer/chat_history_reducer.py +0 -0
  376. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/image_content.py +0 -0
  377. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/kernel_content.py +0 -0
  378. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/realtime_events.py +0 -0
  379. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/reasoning_content.py +0 -0
  380. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_annotation_content.py +0 -0
  381. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_chat_message_content.py +0 -0
  382. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_content_mixin.py +0 -0
  383. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_file_reference_content.py +0 -0
  384. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_reasoning_content.py +0 -0
  385. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/streaming_text_content.py +0 -0
  386. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/text_content.py +0 -0
  387. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/__init__.py +0 -0
  388. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/author_role.py +0 -0
  389. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/data_uri.py +0 -0
  390. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/finish_reason.py +0 -0
  391. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/hashing.py +0 -0
  392. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/contents/utils/status.py +0 -0
  393. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/__init__.py +0 -0
  394. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/conversation_summary_plugin.py +0 -0
  395. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/__init__.py +0 -0
  396. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_enterprise.py +0 -0
  397. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_enterprise_client.py +0 -0
  398. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_models.py +0 -0
  399. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/crew_ai/crew_ai_settings.py +0 -0
  400. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/http_plugin.py +0 -0
  401. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/math_plugin.py +0 -0
  402. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/README.md +0 -0
  403. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/__init__.py +0 -0
  404. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/sessions_python_plugin.py +0 -0
  405. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/sessions_python_settings.py +0 -0
  406. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/sessions_python_tool/sessions_remote_file_metadata.py +0 -0
  407. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/text_memory_plugin.py +0 -0
  408. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/text_plugin.py +0 -0
  409. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/time_plugin.py +0 -0
  410. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/wait_plugin.py +0 -0
  411. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/core_plugins/web_search_engine_plugin.py +0 -0
  412. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/__init__.py +0 -0
  413. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/_shared.py +0 -0
  414. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/text_search.py +0 -0
  415. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/data/vector.py +0 -0
  416. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/__init__.py +0 -0
  417. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/agent_exceptions.py +0 -0
  418. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/content_exceptions.py +0 -0
  419. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/filter_exceptions.py +0 -0
  420. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/function_exceptions.py +0 -0
  421. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/kernel_exceptions.py +0 -0
  422. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/memory_connector_exceptions.py +0 -0
  423. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/process_exceptions.py +0 -0
  424. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/search_exceptions.py +0 -0
  425. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/service_exceptions.py +0 -0
  426. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/template_engine_exceptions.py +0 -0
  427. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/exceptions/vector_store_exceptions.py +0 -0
  428. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/__init__.py +0 -0
  429. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/auto_function_invocation/__init__.py +0 -0
  430. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/auto_function_invocation/auto_function_invocation_context.py +0 -0
  431. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/filter_context_base.py +0 -0
  432. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/filter_types.py +0 -0
  433. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/functions/__init__.py +0 -0
  434. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/functions/function_invocation_context.py +0 -0
  435. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/kernel_filters_extension.py +0 -0
  436. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/prompts/__init__.py +0 -0
  437. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/filters/prompts/prompt_render_context.py +0 -0
  438. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/__init__.py +0 -0
  439. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/function_result.py +0 -0
  440. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_arguments.py +0 -0
  441. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function.py +0 -0
  442. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_decorator.py +0 -0
  443. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_extension.py +0 -0
  444. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_from_method.py +0 -0
  445. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_from_prompt.py +0 -0
  446. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_log_messages.py +0 -0
  447. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_function_metadata.py +0 -0
  448. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_parameter_metadata.py +0 -0
  449. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/kernel_plugin.py +0 -0
  450. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/prompt_rendering_result.py +0 -0
  451. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/functions/types.py +0 -0
  452. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/kernel.py +0 -0
  453. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/kernel_pydantic.py +0 -0
  454. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/kernel_types.py +0 -0
  455. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/__init__.py +0 -0
  456. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/memory_query_result.py +0 -0
  457. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/memory_record.py +0 -0
  458. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/memory_store_base.py +0 -0
  459. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/null_memory.py +0 -0
  460. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/semantic_text_memory.py +0 -0
  461. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/semantic_text_memory_base.py +0 -0
  462. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/memory/volatile_memory_store.py +0 -0
  463. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/__init__.py +0 -0
  464. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/const.py +0 -0
  465. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/__init__.py +0 -0
  466. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/__init__.py +0 -0
  467. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/actor_state_key.py +0 -0
  468. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/event_buffer_actor.py +0 -0
  469. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/external_event_buffer_actor.py +0 -0
  470. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/message_buffer_actor.py +0 -0
  471. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/actors/process_actor.py +0 -0
  472. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_actor_registration.py +0 -0
  473. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/dapr_kernel_process.py +0 -0
  474. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/__init__.py +0 -0
  475. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/event_buffer_interface.py +0 -0
  476. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/external_event_buffer_interface.py +0 -0
  477. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/message_buffer_interface.py +0 -0
  478. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/process_interface.py +0 -0
  479. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/dapr_runtime/interfaces/step_interface.py +0 -0
  480. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/__init__.py +0 -0
  481. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process.py +0 -0
  482. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_edge.py +0 -0
  483. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_event.py +0 -0
  484. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_function_target.py +0 -0
  485. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_message_channel.py +0 -0
  486. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_state.py +0 -0
  487. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step.py +0 -0
  488. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_context.py +0 -0
  489. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_info.py +0 -0
  490. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_metadata.py +0 -0
  491. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_state.py +0 -0
  492. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/kernel_process/kernel_process_step_state_metadata.py +0 -0
  493. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/__init__.py +0 -0
  494. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_event.py +0 -0
  495. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_kernel_process.py +0 -0
  496. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_kernel_process_context.py +0 -0
  497. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_message.py +0 -0
  498. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_message_factory.py +0 -0
  499. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_process.py +0 -0
  500. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/local_runtime/local_step.py +0 -0
  501. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_builder.py +0 -0
  502. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_edge_builder.py +0 -0
  503. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_end_step.py +0 -0
  504. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_event.py +0 -0
  505. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_function_target_builder.py +0 -0
  506. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_message.py +0 -0
  507. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_message_factory.py +0 -0
  508. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_state_metadata_utils.py +0 -0
  509. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_step_builder.py +0 -0
  510. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_step_edge_builder.py +0 -0
  511. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/processes/process_types.py +0 -0
  512. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/__init__.py +0 -0
  513. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/const.py +0 -0
  514. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/handlebars_prompt_template.py +0 -0
  515. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/input_variable.py +0 -0
  516. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/jinja2_prompt_template.py +0 -0
  517. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/kernel_prompt_template.py +0 -0
  518. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/prompt_template_base.py +0 -0
  519. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/prompt_template_config.py +0 -0
  520. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/__init__.py +0 -0
  521. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/prompt_template/utils/template_function_helpers.py +0 -0
  522. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/py.typed +0 -0
  523. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/__init__.py +0 -0
  524. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/kernel_reliability_extension.py +0 -0
  525. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/pass_through_without_retry.py +0 -0
  526. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/reliability/retry_mechanism_base.py +0 -0
  527. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/schema/__init__.py +0 -0
  528. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/schema/kernel_json_schema_builder.py +0 -0
  529. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/__init__.py +0 -0
  530. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/ai_service_client_base.py +0 -0
  531. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/ai_service_selector.py +0 -0
  532. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/services/kernel_services_extension.py +0 -0
  533. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/README.md +0 -0
  534. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/__init__.py +0 -0
  535. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/__init__.py +0 -0
  536. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/block.py +0 -0
  537. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/block_types.py +0 -0
  538. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/code_block.py +0 -0
  539. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/function_id_block.py +0 -0
  540. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/named_arg_block.py +0 -0
  541. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/symbols.py +0 -0
  542. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/text_block.py +0 -0
  543. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/val_block.py +0 -0
  544. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/blocks/var_block.py +0 -0
  545. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/code_tokenizer.py +0 -0
  546. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/protocols/__init__.py +0 -0
  547. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/protocols/code_renderer.py +0 -0
  548. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/protocols/text_renderer.py +0 -0
  549. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/template_engine/template_tokenizer.py +0 -0
  550. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/text/__init__.py +0 -0
  551. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/text/function_extension.py +0 -0
  552. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/text/text_chunker.py +0 -0
  553. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/__init__.py +0 -0
  554. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/async_utils.py +0 -0
  555. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/authentication/__init__.py +0 -0
  556. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/authentication/entra_id_authentication.py +0 -0
  557. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/chat.py +0 -0
  558. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/feature_stage_decorator.py +0 -0
  559. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/list_handler.py +0 -0
  560. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/logging.py +0 -0
  561. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/naming.py +0 -0
  562. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/__init__.py +0 -0
  563. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/agent_diagnostics/__init__.py +0 -0
  564. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/agent_diagnostics/decorators.py +0 -0
  565. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/agent_diagnostics/gen_ai_attributes.py +0 -0
  566. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/__init__.py +0 -0
  567. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/decorators.py +0 -0
  568. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/function_tracer.py +0 -0
  569. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/gen_ai_attributes.py +0 -0
  570. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/model_diagnostics/model_diagnostics_settings.py +0 -0
  571. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/telemetry/user_agent.py +0 -0
  572. {semantic_kernel-1.41.0 → semantic_kernel-1.41.2}/semantic_kernel/utils/validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: semantic-kernel
3
- Version: 1.41.0
3
+ Version: 1.41.2
4
4
  Summary: Semantic Kernel Python SDK
5
5
  Author-email: Microsoft <SK-Support@microsoft.com>
6
6
  Requires-Python: >=3.10
@@ -19,7 +19,7 @@ Requires-Dist: azure-ai-projects ~= 1.0.0b12
19
19
  Requires-Dist: azure-ai-agents >= 1.2.0b3
20
20
  Requires-Dist: aiohttp ~= 3.8
21
21
  Requires-Dist: cloudevents ~=1.0
22
- Requires-Dist: pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.12
22
+ Requires-Dist: pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.13
23
23
  Requires-Dist: pydantic-settings ~= 2.0
24
24
  Requires-Dist: defusedxml ~= 0.7
25
25
  Requires-Dist: azure-identity >= 1.13
@@ -47,7 +47,7 @@ Requires-Dist: azure-ai-inference >= 1.0.0b6 ; extra == "azure"
47
47
  Requires-Dist: azure-core-tracing-opentelemetry >= 1.0.0b11 ; extra == "azure"
48
48
  Requires-Dist: azure-search-documents >= 11.6.0b4 ; extra == "azure"
49
49
  Requires-Dist: azure-cosmos ~= 4.7 ; extra == "azure"
50
- Requires-Dist: chromadb >= 0.5,< 1.1 ; extra == "chroma"
50
+ Requires-Dist: chromadb >= 0.5,< 1.4 ; extra == "chroma"
51
51
  Requires-Dist: microsoft-agents-copilotstudio-client >= 0.3.1 ; extra == "copilotstudio"
52
52
  Requires-Dist: microsoft-agents-activity >= 0.3.1 ; extra == "copilotstudio"
53
53
  Requires-Dist: faiss-cpu>=1.10.0 ; extra == "faiss"
@@ -60,9 +60,9 @@ Requires-Dist: mcp>=1.8 ; extra == "mcp"
60
60
  Requires-Dist: pymilvus >= 2.3,< 2.7 ; extra == "milvus"
61
61
  Requires-Dist: milvus >= 2.3,<2.3.8 ; extra == "milvus" and ( platform_system != 'Windows')
62
62
  Requires-Dist: mistralai >= 1.2,< 2.0 ; extra == "mistralai"
63
- Requires-Dist: pymongo >= 4.8.0, < 4.15 ; extra == "mongo"
63
+ Requires-Dist: pymongo >= 4.8.0, < 4.16 ; extra == "mongo"
64
64
  Requires-Dist: motor >= 3.3.2,< 3.8.0 ; extra == "mongo"
65
- Requires-Dist: ipykernel ~= 6.29 ; extra == "notebooks"
65
+ Requires-Dist: ipykernel >= 6.29,< 8.0 ; extra == "notebooks"
66
66
  Requires-Dist: ollama ~= 0.4 ; extra == "ollama"
67
67
  Requires-Dist: onnxruntime==1.22.1 ; extra == "onnx"
68
68
  Requires-Dist: onnxruntime-genai==0.9.0 ; extra == "onnx"
@@ -73,7 +73,7 @@ Requires-Dist: psycopg[binary, pool] ~= 3.2 ; extra == "postgres"
73
73
  Requires-Dist: qdrant-client ~= 1.9 ; extra == "qdrant"
74
74
  Requires-Dist: websockets >= 13, < 16 ; extra == "realtime"
75
75
  Requires-Dist: aiortc>=1.9.0 ; extra == "realtime"
76
- Requires-Dist: redis[hiredis] ~= 6.0 ; extra == "redis"
76
+ Requires-Dist: redis[hiredis] >= 6,< 8 ; extra == "redis"
77
77
  Requires-Dist: types-redis ~= 4.6.0.20240425 ; extra == "redis"
78
78
  Requires-Dist: redisvl ~= 0.4 ; extra == "redis"
79
79
  Requires-Dist: pyodbc >= 5.2 ; extra == "sql"
@@ -28,7 +28,7 @@ dependencies = [
28
28
  "azure-ai-agents >= 1.2.0b3",
29
29
  "aiohttp ~= 3.8",
30
30
  "cloudevents ~=1.0",
31
- "pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.12",
31
+ "pydantic >=2.0,!=2.10.0,!=2.10.1,!=2.10.2,!=2.10.3,<2.13",
32
32
  "pydantic-settings ~= 2.0",
33
33
  "defusedxml ~= 0.7",
34
34
  # azure identity
@@ -77,7 +77,7 @@ azure = [
77
77
  "azure-cosmos ~= 4.7"
78
78
  ]
79
79
  chroma = [
80
- "chromadb >= 0.5,< 1.1"
80
+ "chromadb >= 0.5,< 1.4"
81
81
  ]
82
82
  copilotstudio = [
83
83
  "microsoft-agents-copilotstudio-client >= 0.3.1",
@@ -106,11 +106,11 @@ mistralai = [
106
106
  "mistralai >= 1.2,< 2.0"
107
107
  ]
108
108
  mongo = [
109
- "pymongo >= 4.8.0, < 4.15",
109
+ "pymongo >= 4.8.0, < 4.16",
110
110
  "motor >= 3.3.2,< 3.8.0"
111
111
  ]
112
112
  notebooks = [
113
- "ipykernel ~= 6.29"
113
+ "ipykernel >= 6.29,< 8.0"
114
114
  ]
115
115
  ollama = [
116
116
  "ollama ~= 0.4"
@@ -136,7 +136,7 @@ qdrant = [
136
136
  "qdrant-client ~= 1.9"
137
137
  ]
138
138
  redis = [
139
- "redis[hiredis] ~= 6.0",
139
+ "redis[hiredis] >= 6,< 8",
140
140
  "types-redis ~= 4.6.0.20240425",
141
141
  "redisvl ~= 0.4"
142
142
  ]
@@ -158,7 +158,7 @@ weaviate = [
158
158
  [dependency-groups]
159
159
  dev = [
160
160
  "pre-commit ~= 3.7",
161
- "ipykernel ~= 6.29",
161
+ "ipykernel >= 6.29,< 8.0",
162
162
  "nbconvert ~= 7.16",
163
163
  "pytest ~= 8.2",
164
164
  "pytest-xdist[psutil] ~= 3.6",
@@ -2,7 +2,7 @@
2
2
 
3
3
  from semantic_kernel.kernel import Kernel
4
4
 
5
- __version__ = "1.41.0"
5
+ __version__ = "1.41.2"
6
6
 
7
7
  DEFAULT_RC_VERSION = f"{__version__}-rc9"
8
8
 
@@ -1214,10 +1214,19 @@ class ResponsesAgentThreadActions:
1214
1214
  if agent.tools:
1215
1215
  tools.extend(agent.tools)
1216
1216
 
1217
- # TODO(evmattso): make sure to respect filters on FCB
1218
- if kernel.plugins:
1219
- funcs = kernel.get_full_list_of_function_metadata()
1220
- tools.extend([kernel_function_metadata_to_response_function_call_format(f) for f in funcs])
1217
+ if not function_choice_behavior.enable_kernel_functions:
1218
+ return tools
1219
+
1220
+ if not kernel.plugins:
1221
+ return tools
1222
+
1223
+ funcs = (
1224
+ kernel.get_list_of_function_metadata(function_choice_behavior.filters)
1225
+ if function_choice_behavior.filters
1226
+ else kernel.get_full_list_of_function_metadata()
1227
+ )
1228
+
1229
+ tools.extend([kernel_function_metadata_to_response_function_call_format(f) for f in funcs])
1221
1230
 
1222
1231
  return tools
1223
1232
 
@@ -119,7 +119,9 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
119
119
  if not client:
120
120
  if google_ai_settings.use_vertexai and not google_ai_settings.cloud_project_id:
121
121
  raise ServiceInitializationError("Project ID must be provided when use_vertexai is True.")
122
- if not google_ai_settings.api_key:
122
+ if google_ai_settings.use_vertexai and not google_ai_settings.cloud_region:
123
+ raise ServiceInitializationError("Region must be provided when use_vertexai is True.")
124
+ if not google_ai_settings.use_vertexai and not google_ai_settings.api_key:
123
125
  raise ServiceInitializationError("The API key is required when use_vertexai is False.")
124
126
 
125
127
  super().__init__(
@@ -303,6 +305,10 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
303
305
  if part.text:
304
306
  items.append(TextContent(text=part.text, inner_content=response, metadata=response_metadata))
305
307
  elif part.function_call:
308
+ fc_metadata: dict[str, Any] = {}
309
+ thought_sig = getattr(part, "thought_signature", None)
310
+ if thought_sig:
311
+ fc_metadata["thought_signature"] = thought_sig
306
312
  items.append(
307
313
  FunctionCallContent(
308
314
  id=f"{part.function_call.name}_{idx!s}",
@@ -310,6 +316,7 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
310
316
  part.function_call.name # type: ignore[arg-type]
311
317
  ),
312
318
  arguments={k: v for k, v in part.function_call.args.items()}, # type: ignore
319
+ metadata=fc_metadata if fc_metadata else None,
313
320
  )
314
321
  )
315
322
 
@@ -360,6 +367,10 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
360
367
  )
361
368
  )
362
369
  elif part.function_call:
370
+ fc_metadata: dict[str, Any] = {}
371
+ thought_sig = getattr(part, "thought_signature", None)
372
+ if thought_sig:
373
+ fc_metadata["thought_signature"] = thought_sig
363
374
  items.append(
364
375
  FunctionCallContent(
365
376
  id=f"{part.function_call.name}_{idx!s}",
@@ -367,6 +378,7 @@ class GoogleAIChatCompletion(GoogleAIBase, ChatCompletionClientBase):
367
378
  part.function_call.name # type: ignore[arg-type]
368
379
  ),
369
380
  arguments={k: v for k, v in part.function_call.args.items()}, # type: ignore
381
+ metadata=fc_metadata if fc_metadata else None,
370
382
  )
371
383
  )
372
384
 
@@ -90,7 +90,9 @@ class GoogleAITextCompletion(GoogleAIBase, TextCompletionClientBase):
90
90
  if not client:
91
91
  if google_ai_settings.use_vertexai and not google_ai_settings.cloud_project_id:
92
92
  raise ServiceInitializationError("Project ID must be provided when use_vertexai is True.")
93
- if not google_ai_settings.api_key:
93
+ if google_ai_settings.use_vertexai and not google_ai_settings.cloud_region:
94
+ raise ServiceInitializationError("Region must be provided when use_vertexai is True.")
95
+ if not google_ai_settings.use_vertexai and not google_ai_settings.api_key:
94
96
  raise ServiceInitializationError("The API key is required when use_vertexai is False.")
95
97
 
96
98
  super().__init__(
@@ -81,7 +81,9 @@ class GoogleAITextEmbedding(GoogleAIBase, EmbeddingGeneratorBase):
81
81
  if not client:
82
82
  if google_ai_settings.use_vertexai and not google_ai_settings.cloud_project_id:
83
83
  raise ServiceInitializationError("Project ID must be provided when use_vertexai is True.")
84
- if not google_ai_settings.api_key:
84
+ if google_ai_settings.use_vertexai and not google_ai_settings.cloud_region:
85
+ raise ServiceInitializationError("Region must be provided when use_vertexai is True.")
86
+ if not google_ai_settings.use_vertexai and not google_ai_settings.api_key:
85
87
  raise ServiceInitializationError("The API key is required when use_vertexai is False.")
86
88
 
87
89
  super().__init__(
@@ -13,6 +13,7 @@ from semantic_kernel.connectors.ai.google.google_ai.google_ai_prompt_execution_s
13
13
  from semantic_kernel.connectors.ai.google.shared_utils import (
14
14
  FUNCTION_CHOICE_TYPE_TO_GOOGLE_FUNCTION_CALLING_MODE,
15
15
  GEMINI_FUNCTION_NAME_SEPARATOR,
16
+ sanitize_schema_for_google_ai,
16
17
  )
17
18
  from semantic_kernel.contents.chat_message_content import ChatMessageContent
18
19
  from semantic_kernel.contents.function_call_content import FunctionCallContent
@@ -91,12 +92,24 @@ def format_assistant_message(message: ChatMessageContent) -> list[Part]:
91
92
  if item.text:
92
93
  parts.append(Part.from_text(text=item.text))
93
94
  elif isinstance(item, FunctionCallContent):
94
- parts.append(
95
- Part.from_function_call(
96
- name=item.name, # type: ignore[arg-type]
97
- args=json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments, # type: ignore[arg-type]
95
+ thought_signature = item.metadata.get("thought_signature") if item.metadata else None
96
+ if thought_signature:
97
+ parts.append(
98
+ Part(
99
+ function_call={
100
+ "name": item.name, # type: ignore[arg-type]
101
+ "args": json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments,
102
+ },
103
+ thought_signature=thought_signature,
104
+ )
105
+ )
106
+ else:
107
+ parts.append(
108
+ Part.from_function_call(
109
+ name=item.name, # type: ignore[arg-type]
110
+ args=json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments, # type: ignore[arg-type]
111
+ )
98
112
  )
99
- )
100
113
  elif isinstance(item, ImageContent):
101
114
  parts.append(_create_image_part(item))
102
115
  else:
@@ -135,16 +148,23 @@ def format_tool_message(message: ChatMessageContent) -> list[Part]:
135
148
 
136
149
  def kernel_function_metadata_to_google_ai_function_call_format(metadata: KernelFunctionMetadata) -> dict[str, Any]:
137
150
  """Convert the kernel function metadata to function calling format."""
151
+ parameters: dict[str, Any] | None = None
152
+ if metadata.parameters:
153
+ properties = {}
154
+ for param in metadata.parameters:
155
+ if param.name is None:
156
+ continue
157
+ prop_schema = sanitize_schema_for_google_ai(param.schema_data) if param.schema_data else param.schema_data
158
+ properties[param.name] = prop_schema
159
+ parameters = {
160
+ "type": "object",
161
+ "properties": properties,
162
+ "required": [p.name for p in metadata.parameters if p.is_required and p.name is not None],
163
+ }
138
164
  return {
139
165
  "name": metadata.custom_fully_qualified_name(GEMINI_FUNCTION_NAME_SEPARATOR),
140
166
  "description": metadata.description or "",
141
- "parameters": {
142
- "type": "object",
143
- "properties": {param.name: param.schema_data for param in metadata.parameters},
144
- "required": [p.name for p in metadata.parameters if p.is_required],
145
- }
146
- if metadata.parameters
147
- else None,
167
+ "parameters": parameters,
148
168
  }
149
169
 
150
170
 
@@ -1,6 +1,8 @@
1
1
  # Copyright (c) Microsoft. All rights reserved.
2
2
 
3
3
  import logging
4
+ from copy import deepcopy
5
+ from typing import Any
4
6
 
5
7
  from semantic_kernel.connectors.ai.function_choice_behavior import FunctionChoiceType
6
8
  from semantic_kernel.const import DEFAULT_FULLY_QUALIFIED_NAME_SEPARATOR
@@ -51,6 +53,64 @@ def format_gemini_function_name_to_kernel_function_fully_qualified_name(gemini_f
51
53
  return gemini_function_name
52
54
 
53
55
 
56
+ def sanitize_schema_for_google_ai(schema: dict[str, Any] | None) -> dict[str, Any] | None:
57
+ """Sanitize a JSON schema dict so it is compatible with Google AI / Vertex AI.
58
+
59
+ The Google AI protobuf ``Schema`` does not support ``anyOf``, ``oneOf``, or
60
+ ``allOf``. It also does not accept ``type`` as an array (e.g.
61
+ ``["string", "null"]``). This helper recursively rewrites those constructs
62
+ into the subset that Google AI understands, using ``nullable`` where
63
+ appropriate.
64
+ """
65
+ if schema is None:
66
+ return None
67
+
68
+ schema = deepcopy(schema)
69
+ return _sanitize_node(schema)
70
+
71
+
72
+ def _sanitize_node(node: dict[str, Any]) -> dict[str, Any]:
73
+ """Recursively sanitize a single schema node."""
74
+ # --- handle ``type`` given as a list (e.g. ["string", "null"]) ---
75
+ type_val = node.get("type")
76
+ if isinstance(type_val, list):
77
+ non_null = [t for t in type_val if t != "null"]
78
+ if len(type_val) != len(non_null):
79
+ node["nullable"] = True
80
+ node["type"] = non_null[0] if non_null else "string"
81
+
82
+ # --- handle ``anyOf`` / ``oneOf`` / ``allOf`` ---
83
+ for key in ("anyOf", "oneOf", "allOf"):
84
+ variants = node.get(key)
85
+ if not variants:
86
+ continue
87
+ non_null = [v for v in variants if v.get("type") != "null"]
88
+ has_null = len(variants) != len(non_null)
89
+ chosen = _sanitize_node(non_null[0]) if non_null else {"type": "string"}
90
+ # Preserve description from the outer node
91
+ desc = node.get("description")
92
+ node.clear()
93
+ node.update(chosen)
94
+ if has_null:
95
+ node["nullable"] = True
96
+ if desc and "description" not in node:
97
+ node["description"] = desc
98
+ break # only process the first matching key
99
+
100
+ # --- recurse into nested structures ---
101
+ props = node.get("properties")
102
+ if isinstance(props, dict):
103
+ for prop_name, prop_schema in props.items():
104
+ if isinstance(prop_schema, dict):
105
+ props[prop_name] = _sanitize_node(prop_schema)
106
+
107
+ items = node.get("items")
108
+ if isinstance(items, dict):
109
+ node["items"] = _sanitize_node(items)
110
+
111
+ return node
112
+
113
+
54
114
  def collapse_function_call_results_in_chat_history(chat_history: ChatHistory):
55
115
  """The Gemini API expects the results of parallel function calls to be contained in a single message to be returned.
56
116
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import json
4
4
  import logging
5
- from typing import TYPE_CHECKING
5
+ from typing import TYPE_CHECKING, Any
6
6
 
7
7
  from google.cloud.aiplatform_v1beta1.types.content import Candidate
8
8
  from vertexai.generative_models import FunctionDeclaration, Part, Tool, ToolConfig
@@ -11,6 +11,7 @@ from semantic_kernel.connectors.ai.function_choice_behavior import FunctionChoic
11
11
  from semantic_kernel.connectors.ai.google.shared_utils import (
12
12
  FUNCTION_CHOICE_TYPE_TO_GOOGLE_FUNCTION_CALLING_MODE,
13
13
  GEMINI_FUNCTION_NAME_SEPARATOR,
14
+ sanitize_schema_for_google_ai,
14
15
  )
15
16
  from semantic_kernel.connectors.ai.google.vertex_ai.vertex_ai_prompt_execution_settings import (
16
17
  VertexAIChatPromptExecutionSettings,
@@ -89,14 +90,16 @@ def format_assistant_message(message: ChatMessageContent) -> list[Part]:
89
90
  if item.text:
90
91
  parts.append(Part.from_text(item.text))
91
92
  elif isinstance(item, FunctionCallContent):
92
- parts.append(
93
- Part.from_dict({
94
- "function_call": {
95
- "name": item.name,
96
- "args": json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments,
97
- }
98
- })
99
- )
93
+ part_dict: dict[str, Any] = {
94
+ "function_call": {
95
+ "name": item.name, # type: ignore[arg-type]
96
+ "args": json.loads(item.arguments) if isinstance(item.arguments, str) else item.arguments,
97
+ }
98
+ }
99
+ thought_signature = item.metadata.get("thought_signature") if item.metadata else None
100
+ if thought_signature:
101
+ part_dict["thought_signature"] = thought_signature
102
+ parts.append(Part.from_dict(part_dict))
100
103
  elif isinstance(item, ImageContent):
101
104
  parts.append(_create_image_part(item))
102
105
  else:
@@ -135,13 +138,20 @@ def format_tool_message(message: ChatMessageContent) -> list[Part]:
135
138
 
136
139
  def kernel_function_metadata_to_vertex_ai_function_call_format(metadata: KernelFunctionMetadata) -> FunctionDeclaration:
137
140
  """Convert the kernel function metadata to function calling format."""
141
+ properties: dict[str, Any] = {}
142
+ if metadata.parameters:
143
+ for param in metadata.parameters:
144
+ if param.name is None:
145
+ continue
146
+ prop_schema = sanitize_schema_for_google_ai(param.schema_data) if param.schema_data else param.schema_data
147
+ properties[param.name] = prop_schema
138
148
  return FunctionDeclaration(
139
149
  name=metadata.custom_fully_qualified_name(GEMINI_FUNCTION_NAME_SEPARATOR),
140
150
  description=metadata.description or "",
141
151
  parameters={
142
152
  "type": "object",
143
- "properties": {param.name: param.schema_data for param in metadata.parameters},
144
- "required": [p.name for p in metadata.parameters if p.is_required],
153
+ "properties": properties,
154
+ "required": [p.name for p in metadata.parameters if p.is_required and p.name is not None],
145
155
  },
146
156
  )
147
157
 
@@ -252,6 +252,10 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
252
252
  if "text" in part_dict:
253
253
  items.append(TextContent(text=part.text, inner_content=response, metadata=response_metadata))
254
254
  elif "function_call" in part_dict:
255
+ fc_metadata: dict[str, Any] = {}
256
+ thought_sig = part_dict.get("thought_signature")
257
+ if thought_sig:
258
+ fc_metadata["thought_signature"] = thought_sig
255
259
  items.append(
256
260
  FunctionCallContent(
257
261
  id=f"{part.function_call.name}_{idx!s}",
@@ -259,6 +263,7 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
259
263
  part.function_call.name
260
264
  ),
261
265
  arguments={k: v for k, v in part.function_call.args.items()},
266
+ metadata=fc_metadata if fc_metadata else None,
262
267
  )
263
268
  )
264
269
 
@@ -309,6 +314,10 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
309
314
  )
310
315
  )
311
316
  elif "function_call" in part_dict:
317
+ fc_metadata_s: dict[str, Any] = {}
318
+ thought_sig_s = part_dict.get("thought_signature")
319
+ if thought_sig_s:
320
+ fc_metadata_s["thought_signature"] = thought_sig_s
312
321
  items.append(
313
322
  FunctionCallContent(
314
323
  id=f"{part.function_call.name}_{idx!s}",
@@ -316,6 +325,7 @@ class VertexAIChatCompletion(VertexAIBase, ChatCompletionClientBase):
316
325
  part.function_call.name
317
326
  ),
318
327
  arguments={k: v for k, v in part.function_call.args.items()},
328
+ metadata=fc_metadata_s if fc_metadata_s else None,
319
329
  )
320
330
  )
321
331
 
@@ -353,6 +353,23 @@ class ChatHistory(KernelBaseModel):
353
353
  elif item.tag == CHAT_HISTORY_TAG:
354
354
  for message in item:
355
355
  messages.append(ChatMessageContent.from_element(message))
356
+ else:
357
+ # Unknown XML tags (e.g. HTML tags like <p>, <div>) are not SK
358
+ # template tags. Serialize them back to text and append to the
359
+ # previous message so that the original content is preserved.
360
+ saved_tail = item.tail
361
+ item.tail = None
362
+ raw = unescape(tostring(item, encoding="unicode", short_empty_elements=False))
363
+ item.tail = saved_tail
364
+ if messages:
365
+ messages[-1].content = (messages[-1].content or "") + raw
366
+ else:
367
+ messages.append(ChatMessageContent(role=AuthorRole.USER, content=raw))
368
+ # For unknown tags the tail is part of the surrounding text,
369
+ # so keep it in the same message instead of starting a new one.
370
+ if item.tail:
371
+ messages[-1].content = (messages[-1].content or "") + unescape(item.tail)
372
+ continue
356
373
  if item.tail and item.tail.strip():
357
374
  messages.append(ChatMessageContent(role=AuthorRole.USER, content=unescape(item.tail.strip())))
358
375
  if len(messages) == 1 and messages[0].role == AuthorRole.SYSTEM:
@@ -66,6 +66,7 @@ def locate_safe_reduction_index(
66
66
  target_count: int,
67
67
  threshold_count: int = 0,
68
68
  offset_count: int = 0,
69
+ has_system_message: bool = False,
69
70
  ) -> int | None:
70
71
  """Identify the index of the first message at or beyond the specified target_count.
71
72
 
@@ -83,11 +84,27 @@ def locate_safe_reduction_index(
83
84
  threshold_count: The threshold beyond target_count required to trigger reduction.
84
85
  If total messages <= (target_count + threshold_count), no reduction occurs.
85
86
  offset_count: Optional number of messages to skip at the start (e.g. existing summary messages).
87
+ has_system_message: Whether the history contains a system message that will be preserved
88
+ separately. When True, the target_count is adjusted to account for the
89
+ system message being re-added after reduction.
86
90
 
87
91
  Returns:
88
92
  The index that identifies the starting point for a reduced history that does not orphan
89
93
  sensitive content. Returns None if reduction is not needed.
90
94
  """
95
+ # Adjust target_count to account for the system message that will be preserved separately.
96
+ # This matches the .NET SDK behavior.
97
+ if has_system_message:
98
+ target_count -= 1
99
+ if target_count <= 0:
100
+ logger.warning(
101
+ "target_count after accounting for system message is %d; reduction will keep only the system message.",
102
+ target_count,
103
+ )
104
+ # Reduce to just the system message — return index past all non-system messages.
105
+ # The caller will prepend the system message to the empty/minimal tail.
106
+ return len(history)
107
+
91
108
  total_count = len(history)
92
109
  threshold_index = total_count - (threshold_count or 0) - target_count
93
110
  if threshold_index <= offset_count:
@@ -220,5 +237,12 @@ def extract_range(
220
237
 
221
238
  @experimental
222
239
  def contains_function_call_or_result(msg: ChatMessageContent) -> bool:
223
- """Return True if the message has any function call or function result."""
240
+ """Return True if the message has any function call or function result.
241
+
242
+ Also returns True for TOOL role messages, which are always responses to
243
+ a preceding assistant message with tool_calls and must not be separated
244
+ from it.
245
+ """
246
+ if msg.role == AuthorRole.TOOL:
247
+ return True
224
248
  return any(isinstance(item, (FunctionCallContent, FunctionResultContent)) for item in msg.items)
@@ -26,6 +26,7 @@ from semantic_kernel.contents.history_reducer.chat_history_reducer_utils import
26
26
  locate_safe_reduction_index,
27
27
  locate_summarization_boundary,
28
28
  )
29
+ from semantic_kernel.contents.utils.author_role import AuthorRole
29
30
  from semantic_kernel.exceptions.content_exceptions import ChatHistoryReducerException
30
31
  from semantic_kernel.utils.feature_stage_decorator import experimental
31
32
 
@@ -89,6 +90,21 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
89
90
 
90
91
  logger.info("Performing chat history summarization check...")
91
92
 
93
+ # Preserve system/developer messages so they are not lost during summarization.
94
+ # This matches the .NET SDK behavior and the truncation reducer.
95
+ # Only the first system/developer message is preserved; this mirrors .NET semantics.
96
+ # Exclude summary messages (which may have SYSTEM role) — they are generated content,
97
+ # not original system prompts.
98
+ system_message_index = next(
99
+ (
100
+ i
101
+ for i, msg in enumerate(history)
102
+ if msg.role in (AuthorRole.SYSTEM, AuthorRole.DEVELOPER) and not msg.metadata.get(SUMMARY_METADATA_KEY)
103
+ ),
104
+ -1,
105
+ )
106
+ system_message = history[system_message_index] if system_message_index >= 0 else None
107
+
92
108
  # 1. Identify where existing summary messages end
93
109
  insertion_point = locate_summarization_boundary(history)
94
110
  if insertion_point == len(history):
@@ -96,12 +112,19 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
96
112
  logger.warning("All messages are summaries, forcing boundary to 0.")
97
113
  insertion_point = 0
98
114
 
115
+ # Only adjust target_count if the system message would be truncated away.
116
+ # If the system message is already in the retained portion, no adjustment needed.
117
+ system_would_be_truncated = (
118
+ system_message is not None and system_message_index < len(history) - self.target_count
119
+ )
120
+
99
121
  # 2. Locate the safe reduction index
100
122
  truncation_index = locate_safe_reduction_index(
101
123
  history,
102
124
  self.target_count,
103
125
  self.threshold_count,
104
126
  offset_count=insertion_point,
127
+ has_system_message=system_would_be_truncated,
105
128
  )
106
129
  if truncation_index is None:
107
130
  logger.info("No valid truncation index found.")
@@ -138,7 +161,13 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
138
161
  keep_existing_summaries = history[:insertion_point]
139
162
 
140
163
  remainder = history[truncation_index:]
164
+
165
+ # Prepend the system/developer message if it was summarized away.
166
+ # Use identity comparison to avoid false matches from value-equal messages.
141
167
  new_history = [*keep_existing_summaries, summary_msg, *remainder]
168
+ if system_message is not None and not any(m is system_message for m in new_history):
169
+ new_history = [system_message, *new_history]
170
+
142
171
  self.messages = new_history
143
172
 
144
173
  return self
@@ -151,8 +180,6 @@ class ChatHistorySummarizationReducer(ChatHistoryReducer):
151
180
 
152
181
  async def _summarize(self, messages: list[ChatMessageContent]) -> ChatMessageContent | None:
153
182
  """Use the ChatCompletion service to generate a single summary message."""
154
- from semantic_kernel.contents.utils.author_role import AuthorRole
155
-
156
183
  chat_history = ChatHistory(messages=messages)
157
184
  execution_settings = self.execution_settings or self.service.get_prompt_execution_settings_from_settings(
158
185
  PromptExecutionSettings()
@@ -15,9 +15,9 @@ else:
15
15
 
16
16
  from semantic_kernel.contents.history_reducer.chat_history_reducer import ChatHistoryReducer
17
17
  from semantic_kernel.contents.history_reducer.chat_history_reducer_utils import (
18
- extract_range,
19
18
  locate_safe_reduction_index,
20
19
  )
20
+ from semantic_kernel.contents.utils.author_role import AuthorRole
21
21
  from semantic_kernel.utils.feature_stage_decorator import experimental
22
22
 
23
23
  logger = logging.getLogger(__name__)
@@ -45,7 +45,28 @@ class ChatHistoryTruncationReducer(ChatHistoryReducer):
45
45
 
46
46
  logger.info("Performing chat history truncation check...")
47
47
 
48
- truncation_index = locate_safe_reduction_index(history, self.target_count, self.threshold_count)
48
+ # Preserve system/developer messages so they are not lost during truncation.
49
+ # This matches the .NET SDK behavior where system messages are always retained.
50
+ # Only the first system/developer message is preserved; this mirrors .NET semantics.
51
+ system_message_index = next(
52
+ (i for i, msg in enumerate(history) if msg.role in (AuthorRole.SYSTEM, AuthorRole.DEVELOPER)),
53
+ -1,
54
+ )
55
+ system_message = history[system_message_index] if system_message_index >= 0 else None
56
+
57
+ # Only adjust target_count if the system message would be truncated away
58
+ # (i.e., it falls before the naive tail). If the system message is already in the
59
+ # retained portion, no adjustment is needed — it naturally occupies a slot.
60
+ system_would_be_truncated = (
61
+ system_message is not None and system_message_index < len(history) - self.target_count
62
+ )
63
+
64
+ truncation_index = locate_safe_reduction_index(
65
+ history,
66
+ self.target_count,
67
+ self.threshold_count,
68
+ has_system_message=system_would_be_truncated,
69
+ )
49
70
  if truncation_index is None:
50
71
  logger.info(
51
72
  f"No truncation index found. Target count: {self.target_count}, Threshold: {self.threshold_count}"
@@ -53,7 +74,13 @@ class ChatHistoryTruncationReducer(ChatHistoryReducer):
53
74
  return None
54
75
 
55
76
  logger.info(f"Truncating history to {truncation_index} messages.")
56
- truncated_list = extract_range(history, start=truncation_index)
77
+ truncated_list = history[truncation_index:]
78
+
79
+ # Prepend the system/developer message if it was truncated away.
80
+ # Use identity comparison (is) to avoid false matches from value-equal messages.
81
+ if system_message is not None and all(msg is not system_message for msg in truncated_list):
82
+ truncated_list = [system_message, *truncated_list]
83
+
57
84
  self.messages = truncated_list
58
85
  return self
59
86