session

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages session state and auto-saving

func NewManager

func NewManager(filePath string) *Manager

NewManager creates a new session manager

func NewManagerWithSession

func NewManagerWithSession(session *Session, filePath string) *Manager

NewManagerWithSession creates a new session manager with an existing session

func (*Manager) AddMessage

func (m *Manager) AddMessage(msg *schema.Message) error

AddMessage adds a message to the session and auto-saves

func (*Manager) AddMessages

func (m *Manager) AddMessages(msgs []*schema.Message) error

AddMessages adds multiple messages to the session and auto-saves

func (*Manager) GetFilePath

func (m *Manager) GetFilePath() string

GetFilePath returns the file path for this session

func (*Manager) GetMessages

func (m *Manager) GetMessages() []*schema.Message

GetMessages returns all messages as schema.Message slice

func (*Manager) GetSession

func (m *Manager) GetSession() *Session

GetSession returns a copy of the current session

func (*Manager) MessageCount

func (m *Manager) MessageCount() int

MessageCount returns the number of messages in the session

func (*Manager) ReplaceAllMessages

func (m *Manager) ReplaceAllMessages(msgs []*schema.Message) error

ReplaceAllMessages replaces all messages in the session with the provided messages

func (*Manager) Save

func (m *Manager) Save() error

Save manually saves the session to file

func (*Manager) SetMetadata

func (m *Manager) SetMetadata(metadata Metadata) error

SetMetadata sets the session metadata

type Message

type Message struct {
	ID         string     `json:"id"`
	Role       string     `json:"role"`
	Content    string     `json:"content"`
	Timestamp  time.Time  `json:"timestamp"`
	ToolCalls  []ToolCall `json:"tool_calls,omitempty"`
	ToolCallID string     `json:"tool_call_id,omitempty"` // For tool result messages
}

Message represents a single message in the session

func ConvertFromSchemaMessage

func ConvertFromSchemaMessage(msg *schema.Message) Message

ConvertFromSchemaMessage converts a schema.Message to a session Message

func (*Message) ConvertToSchemaMessage

func (m *Message) ConvertToSchemaMessage() *schema.Message

ConvertToSchemaMessage converts a session Message to a schema.Message

type Metadata

type Metadata struct {
	MCPHostVersion string `json:"mcphost_version"`
	Provider       string `json:"provider"`
	Model          string `json:"model"`
}

Metadata contains session metadata

type Session

type Session struct {
	Version   string    `json:"version"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
	Metadata  Metadata  `json:"metadata"`
	Messages  []Message `json:"messages"`
}

Session represents a complete conversation session with metadata

func LoadFromFile

func LoadFromFile(filePath string) (*Session, error)

LoadFromFile loads a session from a JSON file

func NewSession

func NewSession() *Session

NewSession creates a new session with default values

func (*Session) AddMessage

func (s *Session) AddMessage(msg Message)

AddMessage adds a message to the session

func (*Session) SaveToFile

func (s *Session) SaveToFile(filePath string) error

SaveToFile saves the session to a JSON file

func (*Session) SetMetadata

func (s *Session) SetMetadata(metadata Metadata)

SetMetadata sets the session metadata

type ToolCall

type ToolCall struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	Arguments any    `json:"arguments"`
}

ToolCall represents a tool call within a message

Jump to

Keyboard shortcuts

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