feat(opencode): v1.18 — перейти с POST /session/:id/prompt на /session/:id/message
Промпт отправляется в /api/session/:id/message (v1.18) с новым форматом
тела parts:[{type:"text"}], вместо {prompt:{text}}. Причина перехода:
/prompt сам подставляет не ту модель, что в конфиге; /message использует
модель из конфига.
- client.go: Send → POST /message + тело parts; шапка-док v1.18
- тесты: fakeAPIServer + e2eFakeAPI отвечают на POST /message (GET уже был)
This commit is contained in:
@@ -9,7 +9,7 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// fakeAPIServer — минимальный фейк opencode serve HTTP API v1.17.
|
||||
// fakeAPIServer — минимальный фейк opencode serve HTTP API v1.18.
|
||||
type fakeAPIServer struct {
|
||||
messages []sessionMessage
|
||||
failCreate bool
|
||||
@@ -25,21 +25,23 @@ func (f *fakeAPIServer) handler() http.Handler {
|
||||
}
|
||||
writeJSON(w, map[string]any{"data": map[string]any{"id": "sess-fake"}})
|
||||
})
|
||||
mux.HandleFunc("/api/session/{id}/prompt", func(w http.ResponseWriter, _ *http.Request) {
|
||||
writeJSON(w, map[string]any{"data": map[string]any{}})
|
||||
})
|
||||
mux.HandleFunc("/api/session/{id}/wait", func(w http.ResponseWriter, _ *http.Request) {
|
||||
writeJSON(w, map[string]any{})
|
||||
})
|
||||
mux.HandleFunc("/api/session/{id}/interrupt", func(w http.ResponseWriter, _ *http.Request) {
|
||||
writeJSON(w, map[string]any{})
|
||||
})
|
||||
mux.HandleFunc("/api/session/{id}/message", func(w http.ResponseWriter, _ *http.Request) {
|
||||
if len(f.messages) == 0 {
|
||||
writeJSON(w, map[string]any{"data": []sessionMessage{}})
|
||||
mux.HandleFunc("/api/session/{id}/message", func(w http.ResponseWriter, r *http.Request) {
|
||||
// GET — чтение сообщений; POST — отправка промпта (v1.18).
|
||||
if r.Method == http.MethodGet {
|
||||
if len(f.messages) == 0 {
|
||||
writeJSON(w, map[string]any{"data": []sessionMessage{}})
|
||||
return
|
||||
}
|
||||
writeJSON(w, map[string]any{"data": f.messages})
|
||||
return
|
||||
}
|
||||
writeJSON(w, map[string]any{"data": f.messages})
|
||||
writeJSON(w, map[string]any{"data": map[string]any{}})
|
||||
})
|
||||
return mux
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user