Add module correction repair prompts

This commit is contained in:
2026-11-11 04:13:55 +00:00
parent bb81354e21
commit eb45d0b623
17 changed files with 236 additions and 5 deletions

View File

@@ -10,6 +10,7 @@ import (
"gitea.maximumdirect.net/eric/audita/v3/internal/core/config"
"gitea.maximumdirect.net/eric/audita/v3/internal/prompts"
ck "go.maximumdirect.net/configkit"
pk "go.maximumdirect.net/promptkit"
)
func TestEngineCapturesAutomaticPromptSources(t *testing.T) {
@@ -198,3 +199,31 @@ func TestEngineResolvesLinkedPromptMessageBesideDefinition(t *testing.T) {
}
}
}
func TestRepairPromptReplacementUsesMessageFile(t *testing.T) {
dir := t.TempDir()
for name, content := range map[string]string{
"config.yml": "version: 3\n",
"prompts.yml": "collections:\n audita:\n prompts:\n - id: modules.grammar.repair\n messages:\n - role: user\n content_file: repair.txt\n output:\n format: json\n validation_mode: json_schema\n schema_path: correction_repair.v1.json\nprofiles:\n - id: fixture\n endpoint: https://example.invalid/v1\n model: fixture\n",
"repair.txt": "Replacement {{.RepairRequestJSON}}",
} {
if err := os.WriteFile(filepath.Join(dir, name), []byte(content), 0644); err != nil {
t.Fatal(err)
}
}
loaded, err := config.Load(ck.Input{Source: ck.File(filepath.Join(dir, "config.yml"))}, "")
if err != nil {
t.Fatal(err)
}
runtime, err := NewRuntime(context.Background(), loaded, nil)
if err != nil {
t.Fatal(err)
}
prepared, err := runtime.Engine.Prepare(context.Background(), pk.RunRequest{PromptID: prompts.PromptIDModuleGrammarRepair, ProfileID: "fixture", Vars: map[string]string{"RepairRequestJSON": "fixture request"}})
if err != nil {
t.Fatal(err)
}
if len(prepared.Messages) != 1 || prepared.Messages[0].Content != "Replacement fixture request" || prepared.OutputContract.SchemaPath != "correction_repair.v1.json" {
t.Fatalf("prepared replacement: %+v", prepared)
}
}