diff --git a/crates/cm-api/src/microvm_executor.rs b/crates/cm-api/src/microvm_executor.rs index 297f79a..b60376e 100644 --- a/crates/cm-api/src/microvm_executor.rs +++ b/crates/cm-api/src/microvm_executor.rs @@ -949,6 +949,24 @@ mod tests { assert!(!BLOCKS_PROBE.contains(GUEST_REPO), "{BLOCKS_PROBE}"); } + /// EVERY VM turn is offered delegation, composed nodes included. + /// + /// A composed node's task text is built by `microvm_turn_executor` and then + /// wrapped by this same `vm_prompt` inside `run_inside`, so one prompt + /// builder serves both paths. Composed runs report `subagents: 0` so far, + /// and this is what says that is the TASKS being small rather than the + /// capability being absent — if someone gave composed nodes their own + /// prompt without the offer, the difference would otherwise show up only as + /// a count nobody was watching. + #[test] + fn every_vm_turn_is_offered_the_same_help() { + let p = vm_prompt("do the thing"); + assert!(p.contains("Agent tool"), "{p}"); + for role in agent_definitions().as_object().unwrap().keys() { + assert!(p.contains(role.as_str()), "the prompt must name the `{role}` role: {p}"); + } + } + /// The agent must not be told to push: delivery is host-side, and the guest /// deliberately holds no forge credentials. #[test]