require.Contains(t, text, `Do the user's tasks yourself, with your tools, following the user's instructions
at the end of this prompt: who they are, how their files are organized and how
they want work done.`)
+
require.True(t, strings.HasSuffix(text, "\n\n# The user's instructions\n\nI am Lena. Keep replies short."))
}
func TestAgentToolsAreStrictAndStable(t *testing.T) {
tools := promptTools()
- require.Equal(t, []string{"zoom", "date", "shell", "read", "write", "edit", "spawn", "agent_create", "tell", "whatsapp_find", "whatsapp_send", "route", "unroute", "routes", "schedule_set", "schedule_list", "schedule_remove"}, promptToolNames(tools))
+ require.Equal(t, []string{"zoom", "date", "shell", "read", "write", "edit", "spawn", "agent_create", "tell", "image_show", "whatsapp_find", "whatsapp_send", "route", "unroute", "routes", "schedule_set", "schedule_list", "schedule_remove"}, promptToolNames(tools))
require.Equal(t, []string{"zoom", "date", "shell", "read", "write", "edit"}, promptToolNames(promptSubagentTools()))
for _, tool := range tools {
require.NotContains(t, child, "Use agent_create")
require.Contains(t, child, "Send nothing to WhatsApp. Draft replies in your report instead")
}
+
+func TestRootPromptKeepsImageConsentAndChildForwardingRules(t *testing.T) {
+ text := prompt("Ada", "/AGENT/instructions.md", "")
+ require.Contains(t, text, "Use image_show or whatsapp_send with an image only on the user's request.")
+ require.Contains(t, text, "Pass an image to a child with an [image FILE] line in tell.")
+
+ child := promptChild("House", "Ada", "Keep house plans.", "/CHILD/instructions.md", "")
+ require.Contains(t, child, "Send nothing to WhatsApp. Draft replies in your report instead")
+ require.NotContains(t, promptToolNames(promptSubagentTools()), "image_show")
+ require.NotContains(t, promptToolNames(promptSubagentTools()), "whatsapp_send")
+}