[Purview] Mark responses as responses and fix epoch bug for python long overflow (#4225)

This commit is contained in:
Rishabh Chawla
2026-02-25 10:40:36 -08:00
committed by GitHub
Unverified
parent 6138487888
commit 2e26bb9387
5 changed files with 57 additions and 22 deletions
@@ -106,7 +106,7 @@ class PurviewPolicyMiddleware(AgentMiddleware):
if context.result and not context.stream:
should_block_response, _ = await self._processor.process_messages(
context.result.messages, # type: ignore[union-attr]
Activity.UPLOAD_TEXT,
Activity.DOWNLOAD_TEXT,
session_id=session_id,
user_id=resolved_user_id,
)
@@ -210,7 +210,7 @@ class PurviewChatPolicyMiddleware(ChatMiddleware):
messages = getattr(result_obj, "messages", None)
if messages:
should_block_response, _ = await self._processor.process_messages(
messages, Activity.UPLOAD_TEXT, session_id=session_id_response, user_id=resolved_user_id
messages, Activity.DOWNLOAD_TEXT, session_id=session_id_response, user_id=resolved_user_id
)
if should_block_response:
from agent_framework import ChatResponse, Message
@@ -158,7 +158,8 @@ class ScopedContentProcessor:
name=f"Agent Framework Message {message_id}",
is_truncated=False,
correlation_id=correlation_id,
sequence_number=time.time_ns(),
# This would be c# ticks equivalent and needs to fit inside c# long
sequence_number=time.time_ns() // 100 + 621355968000000000,
)
activity_meta = ActivityMetadata(activity=activity)
@@ -148,8 +148,10 @@ class TestPurviewPolicyMiddleware:
await middleware.process(context, mock_next)
assert mock_process.call_count == 2
for call in mock_process.call_args_list:
assert call[0][1] == Activity.UPLOAD_TEXT
# First call (pre-check) should be UPLOAD_TEXT for user prompt
assert mock_process.call_args_list[0][0][1] == Activity.UPLOAD_TEXT
# Second call (post-check) should be DOWNLOAD_TEXT for agent response
assert mock_process.call_args_list[1][0][1] == Activity.DOWNLOAD_TEXT
async def test_middleware_streaming_skips_post_check(
self, middleware: PurviewPolicyMiddleware, mock_agent: MagicMock