Documentation
¶
Index ¶
- func HandleThreadMessages(db *sql.DB) http.HandlerFunc
- func HandleThreads(db *sql.DB) http.HandlerFunc
- func RegisterRoutes(mux *http.ServeMux, db *sql.DB)
- type DatabaseMessageSaver
- func (d *DatabaseMessageSaver) CreateThread(title string) (string, error)
- func (d *DatabaseMessageSaver) GetThreadMessages(threadID string) ([]Message, error)
- func (d *DatabaseMessageSaver) GetThreadMessagesSince(threadID string, since time.Time) ([]Message, error)
- func (d *DatabaseMessageSaver) GetThreadTaskID(threadID string) string
- func (d *DatabaseMessageSaver) MergeThreadMetadata(threadID string, newMetadata map[string]interface{}) error
- func (d *DatabaseMessageSaver) SaveMessage(threadID, role string, content interface{}, model *string, ...) error
- func (d *DatabaseMessageSaver) UpdateThreadActivity(threadID, activity string, title *string) error
- func (d *DatabaseMessageSaver) UpdateThreadMetadata(threadID string, metadata map[string]interface{}) error
- type Message
- type MessageSaver
- type Thread
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandleThreadMessages ¶
func HandleThreadMessages(db *sql.DB) http.HandlerFunc
HandleThreadMessages - GET /threads/:id/messages - Get messages for a thread
func HandleThreads ¶
func HandleThreads(db *sql.DB) http.HandlerFunc
HandleThreads - GET /threads - List all threads Query params:
- all=true: show all threads including children
- type=task|scheduler|reflection|chat: filter by type
Types ¶
type DatabaseMessageSaver ¶
type DatabaseMessageSaver struct {
// contains filtered or unexported fields
}
DatabaseMessageSaver implements MessageSaver using a SQL database
func NewDatabaseMessageSaver ¶
func NewDatabaseMessageSaver(database *sql.DB) *DatabaseMessageSaver
NewDatabaseMessageSaver creates a new DatabaseMessageSaver
func (*DatabaseMessageSaver) CreateThread ¶
func (d *DatabaseMessageSaver) CreateThread(title string) (string, error)
CreateThread creates a new conversation thread
func (*DatabaseMessageSaver) GetThreadMessages ¶
func (d *DatabaseMessageSaver) GetThreadMessages(threadID string) ([]Message, error)
GetThreadMessages retrieves all messages for a thread
func (*DatabaseMessageSaver) GetThreadMessagesSince ¶ added in v1.44.0
func (d *DatabaseMessageSaver) GetThreadMessagesSince(threadID string, since time.Time) ([]Message, error)
GetThreadMessagesSince returns messages created after the given timestamp. Used to skip already-compacted messages when a compaction summary exists.
func (*DatabaseMessageSaver) GetThreadTaskID ¶
func (d *DatabaseMessageSaver) GetThreadTaskID(threadID string) string
GetThreadTaskID retrieves the task_id from thread metadata if present
func (*DatabaseMessageSaver) MergeThreadMetadata ¶
func (d *DatabaseMessageSaver) MergeThreadMetadata(threadID string, newMetadata map[string]interface{}) error
MergeThreadMetadata merges new metadata into existing thread metadata
func (*DatabaseMessageSaver) SaveMessage ¶
func (d *DatabaseMessageSaver) SaveMessage(threadID, role string, content interface{}, model *string, metadata map[string]interface{}) error
SaveMessage saves a message to a thread
func (*DatabaseMessageSaver) UpdateThreadActivity ¶ added in v1.34.0
func (d *DatabaseMessageSaver) UpdateThreadActivity(threadID, activity string, title *string) error
UpdateThreadActivity updates the activity (and optionally title) of a thread
func (*DatabaseMessageSaver) UpdateThreadMetadata ¶
func (d *DatabaseMessageSaver) UpdateThreadMetadata(threadID string, metadata map[string]interface{}) error
UpdateThreadMetadata updates the metadata field of a thread
type Message ¶
type Message struct {
ID string `json:"id"`
ThreadID string `json:"thread_id"`
Role string `json:"role"`
Content interface{} `json:"content"` // Can be string or []ContentBlock
Model *string `json:"model"`
CreatedAt time.Time `json:"created_at"`
Metadata map[string]interface{} `json:"metadata"`
}
Message represents a single message in a thread
type MessageSaver ¶
type MessageSaver interface {
SaveMessage(threadID, role string, content interface{}, model *string, metadata map[string]interface{}) error
CreateThread(title string) (string, error)
GetThreadMessages(threadID string) ([]Message, error)
GetThreadTaskID(threadID string) string
UpdateThreadMetadata(threadID string, metadata map[string]interface{}) error
MergeThreadMetadata(threadID string, newMetadata map[string]interface{}) error
UpdateThreadActivity(threadID, activity string, title *string) error
}
MessageSaver interface defines methods for saving and retrieving messages
type Thread ¶
type Thread struct {
ID string `json:"id"`
Title *string `json:"title"`
Type string `json:"type"`
ParentID *string `json:"parent_id,omitempty"`
Activity *string `json:"activity"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Metadata map[string]interface{} `json:"metadata"`
MessageCount int `json:"message_count"`
Children []Thread `json:"children,omitempty"`
}
Thread represents a conversation thread