summaryrefslogtreecommitdiffhomepage
path: root/internal/session/session.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/session/session.go')
-rw-r--r--internal/session/session.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/session/session.go b/internal/session/session.go
index 9a16224c3..019019df4 100644
--- a/internal/session/session.go
+++ b/internal/session/session.go
@@ -24,6 +24,7 @@ type Session struct {
type Service interface {
pubsub.Suscriber[Session]
Create(ctx context.Context, title string) (Session, error)
+ CreateTitleSession(ctx context.Context, parentSessionID string) (Session, error)
CreateTaskSession(ctx context.Context, toolCallID, parentSessionID, title string) (Session, error)
Get(ctx context.Context, id string) (Session, error)
List(ctx context.Context) ([]Session, error)
@@ -63,6 +64,20 @@ func (s *service) CreateTaskSession(ctx context.Context, toolCallID, parentSessi
return session, nil
}
+func (s *service) CreateTitleSession(ctx context.Context, parentSessionID string) (Session, error) {
+ dbSession, err := s.q.CreateSession(ctx, db.CreateSessionParams{
+ ID: "title-" + parentSessionID,
+ ParentSessionID: sql.NullString{String: parentSessionID, Valid: true},
+ Title: "Generate a title",
+ })
+ if err != nil {
+ return Session{}, err
+ }
+ session := s.fromDBItem(dbSession)
+ s.Publish(pubsub.CreatedEvent, session)
+ return session, nil
+}
+
func (s *service) Delete(ctx context.Context, id string) error {
session, err := s.Get(ctx, id)
if err != nil {