session

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HasIncompleteTodos

func HasIncompleteTodos(todos []Todo) bool

HasIncompleteTodos returns true if there are any non-completed todos.

func HashID

func HashID(id string) string

HashID returns the XXH3 hash of a session ID (UUID) as a hex string.

func MarshalTodos

func MarshalTodos(todos []Todo) ([]byte, error)

MarshalTodos / UnmarshalTodos helpers used by workspace adapter.

Types

type Service

type Service interface {
	pubsub.Subscriber[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)
	GetLast(ctx context.Context) (Session, error)
	List(ctx context.Context) ([]Session, error)
	Save(ctx context.Context, session Session) (Session, error)
	UpdateTitleAndUsage(ctx context.Context, sessionID, title string, promptTokens, completionTokens int64, cost float64) error
	Rename(ctx context.Context, id string, title string) error
	Delete(ctx context.Context, id string) error

	// Agent tool session management
	CreateAgentToolSessionID(messageID, toolCallID string) string
	ParseAgentToolSessionID(sessionID string) (messageID string, toolCallID string, ok bool)
	IsAgentToolSession(sessionID string) bool
}

type Session

type Session struct {
	ID               string
	ParentSessionID  string
	Title            string
	MessageCount     int64
	PromptTokens     int64
	CompletionTokens int64
	EstimatedUsage   bool
	SummaryMessageID string
	Cost             float64
	Todos            []Todo
	CreatedAt        int64
	UpdatedAt        int64
}

type Todo

type Todo struct {
	ID          string     `json:"id,omitempty"`
	Content     string     `json:"content"`
	Description string     `json:"description,omitempty"`
	Status      TodoStatus `json:"status"`
	ActiveForm  string     `json:"active_form"`
	Owner       string     `json:"owner,omitempty"`
}

func UnmarshalTodos

func UnmarshalTodos(data []byte) ([]Todo, error)

type TodoStatus

type TodoStatus string
const (
	TodoStatusPending    TodoStatus = "pending"
	TodoStatusInProgress TodoStatus = "in_progress"
	TodoStatusCompleted  TodoStatus = "completed"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL