feat: provider manager, cancellation, session summaries (store+agent)
This commit is contained in:
parent
406a523d54
commit
f1b2093b22
10 changed files with 883 additions and 37 deletions
|
|
@ -48,3 +48,43 @@ func TestStoreRoundTrip(t *testing.T) {
|
|||
t.Fatal("cascade delete failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestSummariesSettingsProviderAndCancelled(t *testing.T) {
|
||||
s, err := Open(filepath.Join(t.TempDir(), "t.db"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer s.Close()
|
||||
ctx := context.Background()
|
||||
ss, _ := s.CreateSession(ctx, "x")
|
||||
if _, err := s.LatestSummary(ctx, ss.ID); !errors.Is(err, ErrNotFound) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
id1, _ := s.AppendMessage(ctx, ss.ID, llm.Message{Role: llm.RoleUser, Content: "a"})
|
||||
s.AppendMessage(ctx, ss.ID, llm.Message{Role: llm.RoleAssistant, Content: "part", Cancelled: true})
|
||||
s.AddSummary(ctx, ss.ID, id1, "old")
|
||||
s.AddSummary(ctx, ss.ID, id1, "new")
|
||||
sm, _ := s.LatestSummary(ctx, ss.ID)
|
||||
if sm.Content != "new" || sm.UptoMessageID != id1 {
|
||||
t.Fatalf("%+v", sm)
|
||||
}
|
||||
after, _ := s.MessagesAfter(ctx, ss.ID, id1, 0)
|
||||
if len(after) != 1 || !after[0].Cancelled || after[0].Content != "part" {
|
||||
t.Fatalf("%+v", after)
|
||||
}
|
||||
if all, _ := s.Messages(ctx, ss.ID, 0); len(all) != 2 {
|
||||
t.Fatal("original messages must be kept")
|
||||
}
|
||||
if err := s.SetSessionProvider(ctx, ss.ID, "dahl", "m"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
got, _ := s.GetSession(ctx, ss.ID)
|
||||
if got.Provider != "dahl" || got.Model != "m" {
|
||||
t.Fatalf("%+v", got)
|
||||
}
|
||||
s.SetSetting(ctx, "k", "v1")
|
||||
s.SetSetting(ctx, "k", "v2")
|
||||
if v, _ := s.GetSetting(ctx, "k"); v != "v2" {
|
||||
t.Fatal(v)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue