}
box := &Toolbox{
- log: memory,
- chat: memory,
- workdir: t.TempDir(),
+ log: memory,
+ chat: memory,
+ subagents: newTestSubagents(t),
+ workdir: t.TempDir(),
}
testCases := []struct {
require.Equal(t, "error: message 4 does not exist", box.run(t.Context(), "date", `{"id":4}`))
}
+func TestZoomWithANameGivesTheWholeChatOfTheAgent(t *testing.T) {
+ box := newTestToolbox(t, &ToolRecordingLog{}, t.TempDir())
+ subagent, err := box.subagents.Create(t.Context())
+ require.NoError(t, err)
+
+ for _, message := range [][2]string{{"note", "subagent"}, {"user", "Count the files."}} {
+ _, err = subagent.Append(message[0], message[1])
+ require.NoError(t, err)
+ }
+
+ output := box.run(t.Context(), "zoom", `{"id":0,"n":1,"name":"`+subagent.name+`"}`)
+ require.Equal(t, "0|note: subagent\n\n1|user: Count the files.", output)
+
+ require.Equal(t, "error: no agent BlueFox", box.run(t.Context(), "zoom", `{"id":0,"n":1,"name":"BlueFox"}`))
+ require.Equal(t, "error: line 0+1 goes past the last message, -1", box.run(t.Context(), "zoom", `{"id":0,"n":1,"name":null}`))
+}
+
func TestClipKeepsTheHeadAndTheTail(t *testing.T) {
short := strings.Repeat("a", toolClipCharacters)
require.Equal(t, short, toolClip(short))
})
return &Toolbox{
- log: log,
- chat: memory,
- workdir: dir,
+ log: log,
+ chat: memory,
+ subagents: newTestSubagents(t),
+ workdir: dir,
}
}