Documentation
¶
Overview ¶
Package storage defines the core persistence interfaces for Chronos.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuditLog ¶
type AuditLog struct {
ID string `json:"id"`
SessionID string `json:"session_id"`
Actor string `json:"actor"`
Action string `json:"action"`
Resource string `json:"resource"`
Detail map[string]any `json:"detail,omitempty"`
CreatedAt time.Time `json:"created_at"`
}
AuditLog records a security-relevant event.
type Checkpoint ¶
type Checkpoint struct {
ID string `json:"id"`
SessionID string `json:"session_id"`
RunID string `json:"run_id"`
NodeID string `json:"node_id"`
State map[string]any `json:"state"`
SeqNum int64 `json:"seq_num"`
CreatedAt time.Time `json:"created_at"`
}
Checkpoint captures the full state of a run for resume/time-travel.
type Config ¶
type Config struct {
// Storage backend: "sqlite", "postgres", "mysql", "redis", "mongo", "dynamo"
Backend string `json:"backend" yaml:"backend"`
// DSN / connection string for the storage backend.
DSN string `json:"dsn" yaml:"dsn"`
// VectorBackend: "qdrant", "redisvector", "milvus", "weaviate", "pinecone"
VectorBackend string `json:"vector_backend" yaml:"vector_backend"`
// VectorDSN / connection for vector store.
VectorDSN string `json:"vector_dsn" yaml:"vector_dsn"`
}
Config selects which storage and vector adapters to use at runtime.
type Embedding ¶
type Embedding struct {
ID string `json:"id"`
Vector []float32 `json:"vector"`
Metadata map[string]any `json:"metadata,omitempty"`
Content string `json:"content,omitempty"`
}
Embedding represents a vector embedding with metadata.
type Event ¶
type Event struct {
ID string `json:"id"`
SessionID string `json:"session_id"`
SeqNum int64 `json:"seq_num"`
Type string `json:"type"`
Payload any `json:"payload"`
CreatedAt time.Time `json:"created_at"`
}
Event is an append-only ledger entry for replayability.
type MemoryRecord ¶
type MemoryRecord struct {
ID string `json:"id"`
SessionID string `json:"session_id,omitempty"` // empty = long-term
AgentID string `json:"agent_id"`
UserID string `json:"user_id,omitempty"`
Kind string `json:"kind"` // short_term, long_term
Key string `json:"key"`
Value any `json:"value"`
CreatedAt time.Time `json:"created_at"`
}
MemoryRecord represents a short-term or long-term memory entry.
type SearchResult ¶
SearchResult is a single result from a similarity search.
type Session ¶
type Session struct {
ID string `json:"id"`
AgentID string `json:"agent_id"`
Status string `json:"status"` // running, paused, completed, failed
Metadata map[string]any `json:"metadata,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
Session represents an agent execution session.
type Storage ¶
type Storage interface {
// Sessions
CreateSession(ctx context.Context, s *Session) error
GetSession(ctx context.Context, id string) (*Session, error)
UpdateSession(ctx context.Context, s *Session) error
ListSessions(ctx context.Context, agentID string, limit, offset int) ([]*Session, error)
// Memory
PutMemory(ctx context.Context, m *MemoryRecord) error
GetMemory(ctx context.Context, agentID, key string) (*MemoryRecord, error)
ListMemory(ctx context.Context, agentID string, kind string) ([]*MemoryRecord, error)
DeleteMemory(ctx context.Context, id string) error
// Audit logs
AppendAuditLog(ctx context.Context, log *AuditLog) error
ListAuditLogs(ctx context.Context, sessionID string, limit, offset int) ([]*AuditLog, error)
// Traces
InsertTrace(ctx context.Context, t *Trace) error
GetTrace(ctx context.Context, id string) (*Trace, error)
ListTraces(ctx context.Context, sessionID string) ([]*Trace, error)
// Event ledger (append-only)
AppendEvent(ctx context.Context, e *Event) error
ListEvents(ctx context.Context, sessionID string, afterSeq int64) ([]*Event, error)
// Checkpoints
SaveCheckpoint(ctx context.Context, cp *Checkpoint) error
GetCheckpoint(ctx context.Context, id string) (*Checkpoint, error)
GetLatestCheckpoint(ctx context.Context, sessionID string) (*Checkpoint, error)
ListCheckpoints(ctx context.Context, sessionID string) ([]*Checkpoint, error)
// Lifecycle
Migrate(ctx context.Context) error
Close() error
}
Storage is the primary persistence interface. All adapters must implement this.
type Trace ¶
type Trace struct {
ID string `json:"id"`
SessionID string `json:"session_id"`
ParentID string `json:"parent_id,omitempty"`
Name string `json:"name"`
Kind string `json:"kind"` // node, tool_call, model_call, approval
Input any `json:"input,omitempty"`
Output any `json:"output,omitempty"`
Error string `json:"error,omitempty"`
StartedAt time.Time `json:"started_at"`
EndedAt time.Time `json:"ended_at,omitempty"`
}
Trace represents a single trace span for observability.
type VectorStore ¶
type VectorStore interface {
// Upsert inserts or updates embeddings in the given collection.
Upsert(ctx context.Context, collection string, embeddings []Embedding) error
// Search performs similarity search and returns top-k results.
Search(ctx context.Context, collection string, query []float32, topK int) ([]SearchResult, error)
// Delete removes embeddings by IDs.
Delete(ctx context.Context, collection string, ids []string) error
// CreateCollection ensures a collection exists.
CreateCollection(ctx context.Context, name string, dimension int) error
// Close releases resources.
Close() error
}
VectorStore abstracts vector DB operations for RAG and embeddings.
Directories
¶
| Path | Synopsis |
|---|---|
|
adapters
|
|
|
chromadb
Package chromadb provides a ChromaDB-backed VectorStore adapter for Chronos.
|
Package chromadb provides a ChromaDB-backed VectorStore adapter for Chronos. |
|
dynamo
Package dynamo provides a DynamoDB-backed Storage adapter for Chronos.
|
Package dynamo provides a DynamoDB-backed Storage adapter for Chronos. |
|
lancedb
Package lancedb provides a LanceDB-backed VectorStore adapter for Chronos.
|
Package lancedb provides a LanceDB-backed VectorStore adapter for Chronos. |
|
memory
Package memory provides an in-memory Storage adapter for Chronos.
|
Package memory provides an in-memory Storage adapter for Chronos. |
|
milvus
Package milvus provides a Milvus-backed VectorStore adapter for Chronos.
|
Package milvus provides a Milvus-backed VectorStore adapter for Chronos. |
|
mongo
Package mongo provides a MongoDB-backed Storage adapter for Chronos.
|
Package mongo provides a MongoDB-backed Storage adapter for Chronos. |
|
pgvector
Package pgvector provides a PostgreSQL+pgvector-backed VectorStore adapter for Chronos.
|
Package pgvector provides a PostgreSQL+pgvector-backed VectorStore adapter for Chronos. |
|
pinecone
Package pinecone provides a Pinecone-backed VectorStore adapter for Chronos.
|
Package pinecone provides a Pinecone-backed VectorStore adapter for Chronos. |
|
postgres
Package postgres provides a PostgreSQL-backed Storage adapter for Chronos.
|
Package postgres provides a PostgreSQL-backed Storage adapter for Chronos. |
|
qdrant
Package qdrant provides a Qdrant-backed VectorStore adapter for Chronos.
|
Package qdrant provides a Qdrant-backed VectorStore adapter for Chronos. |
|
redis
Package redis provides a Redis-backed Storage adapter for Chronos.
|
Package redis provides a Redis-backed Storage adapter for Chronos. |
|
redisvector
Package redisvector provides a Redis-backed VectorStore adapter using RediSearch.
|
Package redisvector provides a Redis-backed VectorStore adapter using RediSearch. |
|
sqlite
Package sqlite provides a SQLite-backed Storage adapter for Chronos.
|
Package sqlite provides a SQLite-backed Storage adapter for Chronos. |
|
weaviate
Package weaviate provides a Weaviate-backed VectorStore adapter for Chronos.
|
Package weaviate provides a Weaviate-backed VectorStore adapter for Chronos. |
|
Package migrate provides versioned database migrations for SQL backends.
|
Package migrate provides versioned database migrations for SQL backends. |