summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2024-11-24 17:39:52 +0300
committerGrail Finder <wohilas@gmail.com>2024-11-24 17:39:52 +0300
commit5dfb5584767e56180771ca08c4c27def3b2db536 (patch)
tree388ce3205db9f1bb615da305926574bdfe58437b /storage
parent6625a8103bb70833e2399567cbbe7f3b4a8da429 (diff)
Feat: rename chatHEADmaster
Diffstat (limited to 'storage')
-rw-r--r--storage/memory.go4
-rw-r--r--storage/storage.go8
2 files changed, 12 insertions, 0 deletions
diff --git a/storage/memory.go b/storage/memory.go
index a7bf8cc..088ce1c 100644
--- a/storage/memory.go
+++ b/storage/memory.go
@@ -12,12 +12,14 @@ func (p ProviderSQL) Memorise(m *models.Memory) (*models.Memory, error) {
query := "INSERT INTO memories (agent, topic, mind) VALUES (:agent, :topic, :mind) RETURNING *;"
stmt, err := p.db.PrepareNamed(query)
if err != nil {
+ p.logger.Error("failed to prepare stmt", "query", query, "error", err)
return nil, err
}
defer stmt.Close()
var memory models.Memory
err = stmt.Get(&memory, m)
if err != nil {
+ p.logger.Error("failed to insert memory", "query", query, "error", err)
return nil, err
}
return &memory, nil
@@ -28,6 +30,7 @@ func (p ProviderSQL) Recall(agent, topic string) (string, error) {
var mind string
err := p.db.Get(&mind, query, agent, topic)
if err != nil {
+ p.logger.Error("failed to get memory", "query", query, "error", err)
return "", err
}
return mind, nil
@@ -38,6 +41,7 @@ func (p ProviderSQL) RecallTopics(agent string) ([]string, error) {
var topics []string
err := p.db.Select(&topics, query, agent)
if err != nil {
+ p.logger.Error("failed to get topics", "query", query, "error", err)
return nil, err
}
return topics, nil
diff --git a/storage/storage.go b/storage/storage.go
index 08cd81a..c863799 100644
--- a/storage/storage.go
+++ b/storage/storage.go
@@ -19,6 +19,7 @@ type ChatHistory interface {
GetLastChat() (*models.Chat, error)
UpsertChat(chat *models.Chat) (*models.Chat, error)
RemoveChat(id uint32) error
+ ChatGetMaxID() (uint32, error)
}
type ProviderSQL struct {
@@ -66,6 +67,13 @@ func (p ProviderSQL) RemoveChat(id uint32) error {
return err
}
+func (p ProviderSQL) ChatGetMaxID() (uint32, error) {
+ query := "SELECT MAX(id) FROM chats;"
+ var id uint32
+ err := p.db.Get(&id, query)
+ return id, err
+}
+
func NewProviderSQL(dbPath string, logger *slog.Logger) FullRepo {
db, err := sqlx.Open("sqlite", dbPath)
if err != nil {