Adopt the Promptkit v0.9 compatibility baseline

This commit is contained in:
2026-08-29 14:08:35 +00:00
parent c35ac5a0cb
commit 1806df9888
19 changed files with 136 additions and 43 deletions

View File

@@ -365,10 +365,12 @@ func TestHandlerModelOverrideMapsAllSupportedExecutionFields(t *testing.T) {
if got.Endpoint != "http://override/v1" ||
got.Model != "override-model" ||
got.ServiceTier != "flex" ||
got.ReasoningEffort != "medium" ||
got.APIKeyEnv != "SCRIPTORIUM_API_KEY" {
t.Fatalf("unexpected mapped execution target: %+v", got)
}
if got.ReasoningEffort == nil || *got.ReasoningEffort != "medium" {
t.Fatalf("unexpected mapped reasoning_effort: %#v", got.ReasoningEffort)
}
if got.Temperature == nil || *got.Temperature != 0.6 {
t.Fatalf("unexpected mapped temperature: %#v", got.Temperature)
}
@@ -386,6 +388,46 @@ func TestHandlerModelOverrideMapsAllSupportedExecutionFields(t *testing.T) {
}
}
func TestHandlerModelOverridePreservesReasoningEffortPresence(t *testing.T) {
tests := []struct {
name string
model string
wantPresent bool
wantValue string
}{
{name: "omitted", model: `{}`},
{name: "explicit empty", model: `{"reasoning_effort":""}`, wantPresent: true},
}
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
r := &fakeRunner{result: &promptkit.RunResult{
Artifact: promptkit.Artifact{Body: []byte("ok")},
Validation: promptkit.ValidationResult{Status: promptkit.ValidationPassed, Mode: promptkit.ValidationBasic, IsValid: true},
EffectiveModelParams: promptkit.ExecutionTarget{Endpoint: "http://llm/v1", Model: "m1"},
}}
h := NewHandler(r)
req := httptest.NewRequest(http.MethodPost, "/v1/runs", bytes.NewBufferString(`{"prompt_id":"prompt-1","inputs":{"transcript":{"type":"file","uri":"./t.md"}},"model":`+tc.model+`}`))
w := httptest.NewRecorder()
h.ServeHTTP(w, req)
if w.Code != http.StatusOK {
t.Fatalf("expected 200, got %d body=%s", w.Code, w.Body.String())
}
if r.last.Execution == nil {
t.Fatal("expected execution override")
}
if (r.last.Execution.ReasoningEffort != nil) != tc.wantPresent {
t.Fatalf("unexpected reasoning_effort presence: %#v", r.last.Execution.ReasoningEffort)
}
if tc.wantPresent && *r.last.Execution.ReasoningEffort != tc.wantValue {
t.Fatalf("unexpected reasoning_effort: got %q want %q", *r.last.Execution.ReasoningEffort, tc.wantValue)
}
})
}
}
func TestHandlerModelOverrideAcceptsJSONCompatibleExtraParams(t *testing.T) {
r := &fakeRunner{result: &promptkit.RunResult{
Artifact: promptkit.Artifact{Body: []byte("ok")},