mirror of
https://github.com/router-for-me/CLIProxyAPIPlus.git
synced 2026-03-08 06:43:41 +00:00
refactor: align GenerateSearchIndicatorEvents return type with other event builders
Change GenerateSearchIndicatorEvents to return [][]byte instead of []sseEvent for consistency with BuildFallbackTextEvents and other event building functions. Benefits: - Consistent API across all event generation functions - Eliminates intermediate sseEvent type conversion in caller - Simplifies usage by returning ready-to-send SSE byte slices This addresses the code quality feedback from PR #226 review.
This commit is contained in:
@@ -4487,7 +4487,7 @@ func (e *KiroExecutor) handleWebSearchStream(
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case out <- cliproxyexecutor.StreamChunk{Payload: []byte(event.ToSSEString())}:
|
||||
case out <- cliproxyexecutor.StreamChunk{Payload: event}:
|
||||
}
|
||||
}
|
||||
contentBlockIndex += 2
|
||||
|
||||
@@ -194,46 +194,43 @@ func GenerateSearchIndicatorEvents(
|
||||
toolUseID string,
|
||||
searchResults *WebSearchResults,
|
||||
startIndex int,
|
||||
) []sseEvent {
|
||||
events := make([]sseEvent, 0, 4)
|
||||
) [][]byte {
|
||||
events := make([][]byte, 0, 5)
|
||||
|
||||
// 1. content_block_start (server_tool_use)
|
||||
events = append(events, sseEvent{
|
||||
Event: "content_block_start",
|
||||
Data: map[string]interface{}{
|
||||
"type": "content_block_start",
|
||||
"index": startIndex,
|
||||
"content_block": map[string]interface{}{
|
||||
"id": toolUseID,
|
||||
"type": "server_tool_use",
|
||||
"name": "web_search",
|
||||
"input": map[string]interface{}{},
|
||||
},
|
||||
event1 := map[string]interface{}{
|
||||
"type": "content_block_start",
|
||||
"index": startIndex,
|
||||
"content_block": map[string]interface{}{
|
||||
"id": toolUseID,
|
||||
"type": "server_tool_use",
|
||||
"name": "web_search",
|
||||
"input": map[string]interface{}{},
|
||||
},
|
||||
})
|
||||
}
|
||||
data1, _ := json.Marshal(event1)
|
||||
events = append(events, []byte("event: content_block_start\ndata: "+string(data1)+"\n\n"))
|
||||
|
||||
// 2. content_block_delta (input_json_delta)
|
||||
inputJSON, _ := json.Marshal(map[string]string{"query": query})
|
||||
events = append(events, sseEvent{
|
||||
Event: "content_block_delta",
|
||||
Data: map[string]interface{}{
|
||||
"type": "content_block_delta",
|
||||
"index": startIndex,
|
||||
"delta": map[string]interface{}{
|
||||
"type": "input_json_delta",
|
||||
"partial_json": string(inputJSON),
|
||||
},
|
||||
event2 := map[string]interface{}{
|
||||
"type": "content_block_delta",
|
||||
"index": startIndex,
|
||||
"delta": map[string]interface{}{
|
||||
"type": "input_json_delta",
|
||||
"partial_json": string(inputJSON),
|
||||
},
|
||||
})
|
||||
}
|
||||
data2, _ := json.Marshal(event2)
|
||||
events = append(events, []byte("event: content_block_delta\ndata: "+string(data2)+"\n\n"))
|
||||
|
||||
// 3. content_block_stop (server_tool_use)
|
||||
events = append(events, sseEvent{
|
||||
Event: "content_block_stop",
|
||||
Data: map[string]interface{}{
|
||||
"type": "content_block_stop",
|
||||
"index": startIndex,
|
||||
},
|
||||
})
|
||||
event3 := map[string]interface{}{
|
||||
"type": "content_block_stop",
|
||||
"index": startIndex,
|
||||
}
|
||||
data3, _ := json.Marshal(event3)
|
||||
events = append(events, []byte("event: content_block_stop\ndata: "+string(data3)+"\n\n"))
|
||||
|
||||
// 4. content_block_start (web_search_tool_result)
|
||||
searchContent := make([]map[string]interface{}, 0)
|
||||
@@ -252,27 +249,25 @@ func GenerateSearchIndicatorEvents(
|
||||
})
|
||||
}
|
||||
}
|
||||
events = append(events, sseEvent{
|
||||
Event: "content_block_start",
|
||||
Data: map[string]interface{}{
|
||||
"type": "content_block_start",
|
||||
"index": startIndex + 1,
|
||||
"content_block": map[string]interface{}{
|
||||
"type": "web_search_tool_result",
|
||||
"tool_use_id": toolUseID,
|
||||
"content": searchContent,
|
||||
},
|
||||
event4 := map[string]interface{}{
|
||||
"type": "content_block_start",
|
||||
"index": startIndex + 1,
|
||||
"content_block": map[string]interface{}{
|
||||
"type": "web_search_tool_result",
|
||||
"tool_use_id": toolUseID,
|
||||
"content": searchContent,
|
||||
},
|
||||
})
|
||||
}
|
||||
data4, _ := json.Marshal(event4)
|
||||
events = append(events, []byte("event: content_block_start\ndata: "+string(data4)+"\n\n"))
|
||||
|
||||
// 5. content_block_stop (web_search_tool_result)
|
||||
events = append(events, sseEvent{
|
||||
Event: "content_block_stop",
|
||||
Data: map[string]interface{}{
|
||||
"type": "content_block_stop",
|
||||
"index": startIndex + 1,
|
||||
},
|
||||
})
|
||||
event5 := map[string]interface{}{
|
||||
"type": "content_block_stop",
|
||||
"index": startIndex + 1,
|
||||
}
|
||||
data5, _ := json.Marshal(event5)
|
||||
events = append(events, []byte("event: content_block_stop\ndata: "+string(data5)+"\n\n"))
|
||||
|
||||
return events
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user