Add interactive client terminal transport

This commit is contained in:
ms2k 2026-07-17 06:59:39 +09:00
commit 6816f0632e

View file

@ -208,6 +208,46 @@ fn every_schema_shape_round_trips_and_rejects_malformed_or_unknown_versions() {
NonInteractiveSessionMessage::Exit(SessionExit::exited(session_id(), 4)),
&mut seen,
);
let interactive_resize = TerminalResize {
session_id: session_id(),
rows: NonZeroU16::new(24).unwrap(),
columns: NonZeroU16::new(80).unwrap(),
pixel_width: 0,
pixel_height: 0,
};
verify_shape(
InteractiveSessionRequest {
protocol_version: ProtocolVersion::V1,
session_id: session_id(),
argv: vec![b"tool".to_vec()],
initial_size: interactive_resize,
},
&mut seen,
);
verify_shape(
InteractiveSessionEvent::Poll {
session_id: session_id(),
},
&mut seen,
);
let prompt = TerminalPrompt {
session_id: session_id(),
request_id: RequestId::new(opaque(54)),
request_sha256: RequestDigest::new(opaque(55)),
agent_profile: "trusted".into(),
command_argv: vec![b"/usr/bin/tool".to_vec()],
justification: "host operation".into(),
};
verify_shape(prompt.clone(), &mut seen);
let interactive_message = InteractiveSessionMessage::Prompt(prompt);
verify_shape(interactive_message.clone(), &mut seen);
verify_shape(
InteractiveSessionBatch {
session_id: session_id(),
messages: vec![interactive_message],
},
&mut seen,
);
verify_shape(generation_identity(), &mut seen);
verify_shape(trust_manifest(), &mut seen);
verify_shape(tls_credential.clone(), &mut seen);