memory

package
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultSemanticLimit = 6
)

Variables

View Source
var ErrSemanticUnavailable = errors.New("semantic memory is unavailable")

Functions

func AppendDailyLog

func AppendDailyLog(root string, now time.Time, entry string) error

AppendDailyLog appends one line into workspace/memory/YYYY-MM-DD.md.

func AppendExperience

func AppendExperience(root string, exp Experience) error

func AppendMemoryNote

func AppendMemoryNote(root string, now time.Time, entry string) error

AppendMemoryNote appends one bullet entry into workspace/MEMORY.md.

func EnsureWorkspace

func EnsureWorkspace(root string) error

EnsureWorkspace creates the minimum workspace layout used by tars.

Types

type CompactionMemory added in v0.6.0

type CompactionMemory struct {
	Category   string
	Summary    string
	Tags       []string
	Importance int
}

type EmbedRequest added in v0.6.0

type EmbedRequest struct {
	Text             string
	TaskType         string
	Title            string
	OutputDimensions int
}

type Embedder added in v0.6.0

type Embedder interface {
	Embed(ctx context.Context, req EmbedRequest) ([]float64, error)
}

type Experience

type Experience struct {
	Timestamp     time.Time `json:"timestamp"`
	Category      string    `json:"category"`
	Summary       string    `json:"summary"`
	Tags          []string  `json:"tags,omitempty"`
	SourceSession string    `json:"source_session,omitempty"`
	ProjectID     string    `json:"project_id,omitempty"`
	Importance    int       `json:"importance,omitempty"`
	Auto          bool      `json:"auto,omitempty"`
}

func SearchExperiences

func SearchExperiences(root string, opts SearchOptions) ([]Experience, error)

type MemoryEntry added in v0.6.0

type MemoryEntry struct {
	ID                  string    `json:"id"`
	Kind                string    `json:"kind"`
	Scope               string    `json:"scope"`
	Category            string    `json:"category,omitempty"`
	ProjectID           string    `json:"project_id,omitempty"`
	SessionID           string    `json:"session_id,omitempty"`
	SourcePath          string    `json:"source_path,omitempty"`
	ContentHash         string    `json:"content_hash"`
	Abstract            string    `json:"abstract,omitempty"`
	Overview            string    `json:"overview,omitempty"`
	Body                string    `json:"body,omitempty"`
	Tags                []string  `json:"tags,omitempty"`
	Importance          int       `json:"importance,omitempty"`
	CreatedAt           time.Time `json:"created_at"`
	UpdatedAt           time.Time `json:"updated_at"`
	EmbeddingModel      string    `json:"embedding_model,omitempty"`
	EmbeddingDimensions int       `json:"embedding_dimensions,omitempty"`
	Embedding           []float64 `json:"embedding,omitempty"`
}

type SearchHit added in v0.6.0

type SearchHit struct {
	Entry   MemoryEntry
	Score   float64
	Source  string
	Snippet string
	Date    time.Time
}

type SearchOptions

type SearchOptions struct {
	Query     string
	Category  string
	ProjectID string
	Limit     int
}

type SearchRequest added in v0.6.0

type SearchRequest struct {
	Query     string
	ProjectID string
	SessionID string
	Limit     int
}

type Searcher added in v0.6.0

type Searcher interface {
	Search(ctx context.Context, req SearchRequest) ([]SearchHit, error)
	EnsureProjectDocuments(ctx context.Context, projectID, sessionID string) error
}

type SemanticConfig added in v0.6.0

type SemanticConfig struct {
	Enabled         bool
	EmbedProvider   string
	EmbedBaseURL    string
	EmbedAPIKey     string
	EmbedModel      string
	EmbedDimensions int
}

type Service added in v0.6.0

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

func NewService added in v0.6.0

func NewService(root string, opts ServiceOptions) *Service

func (*Service) Enabled added in v0.6.0

func (s *Service) Enabled() bool

func (*Service) EnsureProjectDocuments added in v0.6.0

func (s *Service) EnsureProjectDocuments(ctx context.Context, projectID, sessionID string) error

func (*Service) IndexCompactionMemories added in v0.6.0

func (s *Service) IndexCompactionMemories(ctx context.Context, sessionID string, items []CompactionMemory, createdAt time.Time) error

func (*Service) IndexCompactionSummary added in v0.6.0

func (s *Service) IndexCompactionSummary(ctx context.Context, sessionID, summary string, createdAt time.Time) error

func (*Service) IndexExperience added in v0.6.0

func (s *Service) IndexExperience(ctx context.Context, exp Experience) error

func (*Service) LoadEntries added in v0.6.0

func (s *Service) LoadEntries() ([]MemoryEntry, error)

func (*Service) Search added in v0.6.0

func (s *Service) Search(ctx context.Context, req SearchRequest) ([]SearchHit, error)

type ServiceOptions added in v0.6.0

type ServiceOptions struct {
	Config     SemanticConfig
	Embedder   Embedder
	HTTPClient *http.Client
	Now        func() time.Time
}

Jump to

Keyboard shortcuts

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