call := server.Call(0)
require.Equal(t, tc.want, call.header.Get("session_id"))
require.Equal(t, "agent-key", call.body["prompt_cache_key"])
+
+ // A subagent has its own key.
+ request := modelTestRequest()
+ request.Agent = "GreenOtter"
+ _, err = client.Create(t.Context(), request)
+ require.NoError(t, err)
+
+ call = server.Call(1)
+ if tc.want != "" {
+ require.Equal(t, "agent-key-GreenOtter", call.header.Get("session_id"))
+ }
+
+ require.Equal(t, "agent-key-GreenOtter", call.body["prompt_cache_key"])
})
}
}
func TestClientReadsTheStream(t *testing.T) {
server := newModelFake(t)
- server.reply = func(w http.ResponseWriter, call ModelFakeCall) {
+ server.reply = func(w http.ResponseWriter, _ ModelFakeCall) {
modelWriteEvents(w,
map[string]any{"type": "response.created", "response": map[string]any{}},
map[string]any{"type": "response.output_item.done", "item": map[string]any{"type": "reasoning", "encrypted_content": "opaque"}},
func TestClientTakesTheOutputOfTheCompletedResponse(t *testing.T) {
server := newModelFake(t)
- server.reply = func(w http.ResponseWriter, call ModelFakeCall) {
+ server.reply = func(w http.ResponseWriter, _ ModelFakeCall) {
modelWriteEvents(w, modelCompletedEvent([]any{modelMessageItem("only here")}, 10, 0, 2))
}
require.NoError(t, err)
require.NotContains(t, server.Call(0).body, "node")
require.NotContains(t, string(server.Call(0).raw), "[2,5]")
- require.NotContains(t, string(server.Call(0).raw), "GreenOtter")
+ require.NotContains(t, server.Call(0).body, "agent")
_, err = client.Create(t.Context(), modelTestRequest())
require.ErrorContains(t, err, "HTTP 429")
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
server := newModelFake(t)
- server.reply = func(w http.ResponseWriter, call ModelFakeCall) {
+ server.reply = func(w http.ResponseWriter, _ ModelFakeCall) {
modelWriteEvents(w, tc.events...)
}