Versions in this module Expand all Collapse all v1 v1.1.0 Dec 26, 2025 v1.0.0 Dec 26, 2025 Changes in this version + var ErrRunAlreadyEnded = errors.New("run already ended") + var ErrRunAlreadyExists = errors.New("run already exists") + var ErrRunNotFound = errors.New("run not found") + var ErrRunNotStarted = errors.New("run not started") + type FileStore struct + func NewFileStore(config StoreConfig) (*FileStore, error) + func (s *FileStore) AddCost(runID string, cost float64) error + func (s *FileStore) BaseDir() string + func (s *FileStore) Delete(runID string) error + func (s *FileStore) EndRun(runID string, status RunStatus) error + func (s *FileStore) EndRunWithError(runID string, err error) error + func (s *FileStore) GetActive(runID string) (*Transcript, bool) + func (s *FileStore) List(filter ListFilter) ([]Meta, error) + func (s *FileStore) ListActive() []string + func (s *FileStore) Load(runID string) (*Transcript, error) + func (s *FileStore) LoadMetadata(runID string) (*Meta, error) + func (s *FileStore) RecordToolCall(runID string, tc ToolCall) error + func (s *FileStore) RecordTurn(runID string, turn Turn) error + func (s *FileStore) StartRun(runID string, meta RunMetadata) error + type ListFilter struct + After time.Time + Before time.Time + FlowID string + Limit int + Status RunStatus + type Manager interface + Delete func(runID string) error + EndRun func(runID string, status RunStatus) error + List func(filter ListFilter) ([]Meta, error) + Load func(runID string) (*Transcript, error) + LoadMetadata func(runID string) (*Meta, error) + RecordTurn func(runID string, turn Turn) error + StartRun func(runID string, metadata RunMetadata) error + type Meta struct + EndedAt time.Time + Error string + FlowID string + Input map[string]any + NodeID string + RunID string + StartedAt time.Time + Status RunStatus + TotalCost float64 + TotalTokensIn int + TotalTokensOut int + TurnCount int + type RunMetadata struct + FlowID string + Input map[string]any + NodeID string + type RunStatus string + const RunStatusCanceled + const RunStatusCompleted + const RunStatusFailed + const RunStatusRunning + type SearchOptions struct + CaseSensitive bool + Context int + MaxResults int + type SearchResult struct + Content string + Match string + MatchLine int + Role string + RunID string + TurnID int + type Searcher struct + func NewSearcher(baseDir string) *Searcher + func (s *Searcher) FindByDateRange(start, end time.Time) ([]Meta, error) + func (s *Searcher) FindByFlow(flowID string) ([]Meta, error) + func (s *Searcher) FindByStatus(status RunStatus) ([]Meta, error) + func (s *Searcher) FindByTokenRange(minIn, maxIn, minOut, maxOut int) ([]Meta, error) + func (s *Searcher) RunStats(filter ListFilter) (*Statistics, error) + func (s *Searcher) SearchContent(query string, opts SearchOptions) ([]SearchResult, error) + func (s *Searcher) TotalCost(filter ListFilter) (float64, error) + func (s *Searcher) TotalTokens(filter ListFilter) (int, int, error) + type Statistics struct + ActiveRuns int + AvgCost float64 + AvgTokensIn int + AvgTokensOut int + CanceledRuns int + CompletedRuns int + FailedRuns int + TotalCost float64 + TotalRuns int + TotalTokensIn int + TotalTokensOut int + type StoreConfig struct + BaseDir string + type ToolCall struct + Error string + ID string + Input map[string]any + Name string + Output string + type Transcript struct + Metadata Meta + RunID string + Turns []Turn + func Load(baseDir, runID string) (*Transcript, error) + func NewTranscript(runID, flowID string) *Transcript + func (t *Transcript) AddCost(cost float64) + func (t *Transcript) AddToolCall(name string, input map[string]any, output string) + func (t *Transcript) AddToolCallError(name string, input map[string]any, err error) + func (t *Transcript) AddTurn(role, content string, tokens int) *Turn + func (t *Transcript) AddTurnWithDetails(turn Turn) *Turn + func (t *Transcript) Cancel() + func (t *Transcript) Complete() + func (t *Transcript) Duration() time.Duration + func (t *Transcript) Fail(err error) + func (t *Transcript) IsActive() bool + func (t *Transcript) LastTurn() *Turn + func (t *Transcript) Save(baseDir string) error + func (t *Transcript) SetCost(cost float64) + func (t *Transcript) TurnsByRole(role string) []Turn + type Turn struct + Content string + DurationMs int64 + ID int + Role string + Timestamp time.Time + TokensIn int + TokensOut int + ToolCalls []ToolCall + type Viewer struct + func NewViewer(colorEnabled bool) *Viewer + func (v *Viewer) Diff(w io.Writer, a, b *Transcript) error + func (v *Viewer) ExportJSON(w io.Writer, t *Transcript) error + func (v *Viewer) ExportMarkdown(w io.Writer, t *Transcript) error + func (v *Viewer) FormatMetaList(w io.Writer, metas []Meta) error + func (v *Viewer) FormatStats(w io.Writer, stats *Statistics) error + func (v *Viewer) ViewAssistantOnly(w io.Writer, t *Transcript) error + func (v *Viewer) ViewFull(w io.Writer, t *Transcript) error + func (v *Viewer) ViewSummary(w io.Writer, t *Transcript) error + func (v *Viewer) ViewTurn(w io.Writer, turn Turn) error