Classify additional generated context fragments (#40275)

## What changed

- Represent compaction summaries and Guardian-approved actions as typed contextual fragments.
- Inject subagent notifications through the same fragment path.
- Annotate the resulting request items with `compaction.summary`, `guardian.approved_action`, and `multi_agent.subagent_notification` content kinds while preserving their existing roles and text.

## Testing

- Verify the content-kind metadata on compacted summaries, approved actions, and subagent notifications.

GitOrigin-RevId: 01c93e7f08b2dc1c1e85ba69e82bfb5f56e6cca5
This commit is contained in:
pakrym-oai authored and copyberry committed 2026-08-23 20:08:40 +00:00
1 parent e21bc763a7
commit 287587c32c
13 files changed
+262 -71

No files matched your search

+5 -7
View File
@@ -4,6 +4,8 @@ use std::time::Instant;
use crate::Prompt;
use crate::client::ModelClientSession;
use crate::client_common::ResponseEvent;
use crate::context::CompactionSummary;
use crate::context::ContextualUserFragment;
use crate::context::world_state::WorldState;
use crate::hook_runtime::PostCompactHookOutcome;
use crate::hook_runtime::PreCompactHookOutcome;
@@ -723,13 +725,9 @@ fn build_compacted_history_with_limit(
summary_text.to_string()
};
history.push(ResponseItemEnvelope::new(ResponseItem::Message {
id: None,
role: "user".to_string(),
content: vec![ContentItem::InputText { text: summary_text }],
phase: None,
internal_chat_message_metadata_passthrough: None,
}));
history.push(ResponseItemEnvelope::new(ContextualUserFragment::into(
CompactionSummary::new(summary_text),
)));
history
}