pub enum HarnessAgentStreamChunkKindV1 {
Text {
text: String,
is_delta: bool,
},
Thinking {
text: String,
},
InteractionPrompt {
correlation_id: String,
interaction_kind: HarnessProviderInteractionKindV1,
tool_name: String,
title: Option<String>,
prompt: String,
options: Vec<HarnessAgentStreamInteractionOptionV1>,
},
ModeCatalog {
current: Option<String>,
available: Vec<HarnessAgentStreamNamedIdV1>,
},
ConfigOptions {
options: Vec<HarnessProviderConfigOptionV1>,
},
ModelCatalog {
current: Option<String>,
available: Vec<HarnessAgentStreamNamedIdV1>,
},
Blocked {
correlation_id: Option<String>,
tool_class: String,
authority: HarnessBlockAuthorityV1,
reason_kind: Option<String>,
reason: String,
help: Option<String>,
},
}Expand description
The kind of a single HarnessAgentStreamChunkV1 – content the operator
needs to act on a running ACP session: what the agent is saying, a
pending interaction it needs answered, and the catalogs the three ACP
setter verbs (SetSessionMode, SetSessionConfigOption,
SetSessionModel) operate over. Exact mirror of
gate4agent-node-protocol’s own AgentStreamChunkKindV1, which itself
mirrors gate4agent_types::ProviderEvent’s content variants
deliberately, in contrast to the collapsed ObservationKindV1 telemetry
stream, which carries none of it
(docs/gate4agent/plans/gate4agent-acp-control-plane-on-the-wire-2026-09-02.md
§3-4).
Variants§
Text
Thinking
InteractionPrompt
The same correlation_id ObservationKindV1::ApprovalRequested/
QuestionRequested already minted, plus the question and option
list ResolveInteraction answers blind without.
Fields
interaction_kind: HarnessProviderInteractionKindV1options: Vec<HarnessAgentStreamInteractionOptionV1>ModeCatalog
ConfigOptions
Fields
options: Vec<HarnessProviderConfigOptionV1>ModelCatalog
Blocked
The chunk twin of ObservationKindV1::ActionBlocked, delivered on
the agent content stream instead of (never in place of) the
observation channel – see gate4agent-node-protocol’s own
AgentStreamChunkKindV1::Blocked doc comment for why. An EVENT, not
state: never seeded to a fresh subscriber, exactly like Text/
Thinking.