X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/496569ab5b179932c60b2924bf4c61176c8be004..0cb73c3dde36d0078f3c1aa4200f2edcb5ceed38:/subagent_run_test.go?ds=sidebyside diff --git a/subagent_run_test.go b/subagent_run_test.go index 389a4bf..708b515 100644 --- a/subagent_run_test.go +++ b/subagent_run_test.go @@ -182,7 +182,10 @@ func TestFullContextGivesAFailedReport(t *testing.T) { if subagentTestCall(call) { w.WriteHeader(http.StatusBadRequest) - _, _ = io.WriteString(w, subagentTestFullContext) + _, err := io.WriteString(w, subagentTestFullContext) + if err != nil { + panic(err) + } return } @@ -531,6 +534,35 @@ func TestRestartReportsASubagentThatCannotGoOn(t *testing.T) { require.JSONEq(t, `{"running": []}`, string(data)) } +// subagentTestLastItem returns the last input item of call. +func subagentTestLastItem(call ModelFakeCall) map[string]any { + input := call.body["input"].([]any) + + return input[len(input)-1].(map[string]any) +} + +// subagentTestCall tells if call is a call of a subagent. +func subagentTestCall(call ModelFakeCall) bool { + instructions, _ := call.body["instructions"].(string) + + return strings.HasPrefix(instructions, "You are a subagent") +} + +// subagentTestText returns the text of the user message item, or "" for another +// item. +func subagentTestText(item map[string]any) string { + content, _ := item["content"].([]any) + + var text strings.Builder + + for _, part := range content { + value, _ := part.(map[string]any)["text"].(string) + text.WriteString(value) + } + + return text.String() +} + // subagentTestStart runs a loop of agent with its memory and subagents in the // agent directory, as the daemon does. The returned function stops the loop and // closes the files. @@ -577,32 +609,3 @@ func subagentTestChat(t *testing.T, memory *Memory) []string { return lines } - -// subagentTestCall tells if call is a call of a subagent. -func subagentTestCall(call ModelFakeCall) bool { - instructions, _ := call.body["instructions"].(string) - - return strings.HasPrefix(instructions, "You are a subagent") -} - -// subagentTestLastItem returns the last input item of call. -func subagentTestLastItem(call ModelFakeCall) map[string]any { - input := call.body["input"].([]any) - - return input[len(input)-1].(map[string]any) -} - -// subagentTestText returns the text of the user message item, or "" for another -// item. -func subagentTestText(item map[string]any) string { - content, _ := item["content"].([]any) - - var text strings.Builder - - for _, part := range content { - value, _ := part.(map[string]any)["text"].(string) - text.WriteString(value) - } - - return text.String() -}