Documentation
¶
Index ¶
- type Config
- type DBManager
- func (dm *DBManager) AddObservations(ctx context.Context, projectName string, entityName string, ...) error
- func (dm *DBManager) Close() error
- func (dm *DBManager) Config() Config
- func (dm *DBManager) CreateEntities(ctx context.Context, projectName string, entities []apptype.Entity) error
- func (dm *DBManager) CreateRelations(ctx context.Context, projectName string, relations []apptype.Relation) error
- func (dm *DBManager) DeleteEntities(ctx context.Context, projectName string, names []string) error
- func (dm *DBManager) DeleteEntity(ctx context.Context, projectName string, name string) error
- func (dm *DBManager) DeleteObservations(ctx context.Context, projectName string, entityName string, ids []int64, ...) (int64, error)
- func (dm *DBManager) DeleteRelation(ctx context.Context, projectName string, source, target, relationType string) error
- func (dm *DBManager) DeleteRelations(ctx context.Context, projectName string, tuples []apptype.Relation) error
- func (dm *DBManager) DisableHybridSearch()
- func (dm *DBManager) EnableHybridSearch(textWeight, vectorWeight, rrfK float64)
- func (dm *DBManager) ExtractVector(ctx context.Context, embedding []byte) ([]float32, error)
- func (dm *DBManager) GetEntities(ctx context.Context, projectName string, names []string) ([]apptype.Entity, error)
- func (dm *DBManager) GetEntity(ctx context.Context, projectName string, name string) (*apptype.Entity, error)
- func (dm *DBManager) GetNeighbors(ctx context.Context, projectName string, names []string, direction string, ...) ([]apptype.Entity, []apptype.Relation, error)
- func (dm *DBManager) GetRecentEntities(ctx context.Context, projectName string, limit int) ([]apptype.Entity, error)
- func (dm *DBManager) GetRelations(ctx context.Context, projectName string, entityNames []string) ([]apptype.Relation, error)
- func (dm *DBManager) GetRelationsForEntities(ctx context.Context, projectName string, entities []apptype.Entity) ([]apptype.Relation, error)
- func (dm *DBManager) PoolStats() (inUse int, idle int)
- func (dm *DBManager) ReadGraph(ctx context.Context, projectName string, limit int) ([]apptype.Entity, []apptype.Relation, error)
- func (dm *DBManager) SearchEntities(ctx context.Context, projectName string, query string, limit int, offset int) ([]apptype.Entity, error)
- func (dm *DBManager) SearchNodes(ctx context.Context, projectName string, query interface{}, limit int, ...) ([]apptype.Entity, []apptype.Relation, error)
- func (dm *DBManager) SearchSimilar(ctx context.Context, projectName string, embedding []float32, limit int, ...) ([]apptype.SearchResult, error)
- func (dm *DBManager) SetEmbeddingsProvider(p embeddings.Provider)
- func (dm *DBManager) ShortestPath(ctx context.Context, projectName, from, to, direction string) ([]apptype.Entity, []apptype.Relation, error)
- func (dm *DBManager) UpdateEntities(ctx context.Context, projectName string, updates []apptype.UpdateEntitySpec) error
- func (dm *DBManager) UpdateRelations(ctx context.Context, projectName string, ...) error
- func (dm *DBManager) ValidateProjectAuth(projectName string, providedToken string) error
- func (dm *DBManager) Walk(ctx context.Context, projectName string, seeds []string, maxDepth int, ...) ([]apptype.Entity, []apptype.Relation, error)
- type SearchStrategy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
URL string
AuthToken string
ProjectsDir string
MultiProjectMode bool
EmbeddingDims int
MaxOpenConns int
MaxIdleConns int
ConnMaxIdleSec int
ConnMaxLifeSec int
// Embeddings provider hints (optional)
EmbeddingsProvider string // e.g., "openai", "ollama"
}
Config holds the database configuration
type DBManager ¶
type DBManager struct {
// contains filtered or unexported fields
}
DBManager handles all database operations
func NewDBManager ¶
NewDBManager creates a new database manager
func (*DBManager) AddObservations ¶
func (dm *DBManager) AddObservations(ctx context.Context, projectName string, entityName string, observations []string) error
AddObservations appends observations to an existing entity
func (*DBManager) CreateEntities ¶
func (dm *DBManager) CreateEntities(ctx context.Context, projectName string, entities []apptype.Entity) error
CreateEntities creates or updates entities with their observations
func (*DBManager) CreateRelations ¶
func (dm *DBManager) CreateRelations(ctx context.Context, projectName string, relations []apptype.Relation) error
CreateRelations creates multiple relations between entities
func (*DBManager) DeleteEntities ¶
DeleteEntities deletes multiple entities by name within a single transaction
func (*DBManager) DeleteEntity ¶
DeleteEntity deletes an entity and all associated data
func (*DBManager) DeleteObservations ¶
func (dm *DBManager) DeleteObservations(ctx context.Context, projectName string, entityName string, ids []int64, contents []string) (int64, error)
DeleteObservations deletes observations by ids or exact contents for an entity
func (*DBManager) DeleteRelation ¶
func (dm *DBManager) DeleteRelation(ctx context.Context, projectName string, source, target, relationType string) error
DeleteRelation deletes a specific relation
func (*DBManager) DeleteRelations ¶
func (dm *DBManager) DeleteRelations(ctx context.Context, projectName string, tuples []apptype.Relation) error
DeleteRelations deletes multiple relations within a transaction
func (*DBManager) DisableHybridSearch ¶
func (dm *DBManager) DisableHybridSearch()
DisableHybridSearch restores default (built-in) search behavior.
func (*DBManager) EnableHybridSearch ¶
EnableHybridSearch enables hybrid search strategy with custom weights and k.
func (*DBManager) ExtractVector ¶
ExtractVector extracts vector from binary format (F32_BLOB)
func (*DBManager) GetEntities ¶
func (dm *DBManager) GetEntities(ctx context.Context, projectName string, names []string) ([]apptype.Entity, error)
GetEntities retrieves a list of entities by names
func (*DBManager) GetEntity ¶
func (dm *DBManager) GetEntity(ctx context.Context, projectName string, name string) (*apptype.Entity, error)
GetEntity retrieves a single entity by name
func (*DBManager) GetNeighbors ¶
func (dm *DBManager) GetNeighbors(ctx context.Context, projectName string, names []string, direction string, limit int) ([]apptype.Entity, []apptype.Relation, error)
GetNeighbors returns 1-hop neighbors for the given entity names. direction: "out" (source->target), "in" (target<-source), or "both".
func (*DBManager) GetRecentEntities ¶
func (dm *DBManager) GetRecentEntities(ctx context.Context, projectName string, limit int) ([]apptype.Entity, error)
GetRecentEntities retrieves recently created entities
func (*DBManager) GetRelations ¶
func (dm *DBManager) GetRelations(ctx context.Context, projectName string, entityNames []string) ([]apptype.Relation, error)
GetRelations returns all relations where either source or target belongs to the provided entity names. This is a convenience wrapper around GetRelationsForEntities.
func (*DBManager) GetRelationsForEntities ¶
func (dm *DBManager) GetRelationsForEntities(ctx context.Context, projectName string, entities []apptype.Entity) ([]apptype.Relation, error)
GetRelationsForEntities retrieves relations for a list of entities
func (*DBManager) ReadGraph ¶
func (dm *DBManager) ReadGraph(ctx context.Context, projectName string, limit int) ([]apptype.Entity, []apptype.Relation, error)
ReadGraph retrieves recent entities and their relations
func (*DBManager) SearchEntities ¶
func (dm *DBManager) SearchEntities(ctx context.Context, projectName string, query string, limit int, offset int) ([]apptype.Entity, error)
SearchEntities performs text-based search
func (*DBManager) SearchNodes ¶
func (dm *DBManager) SearchNodes(ctx context.Context, projectName string, query interface{}, limit int, offset int) ([]apptype.Entity, []apptype.Relation, error)
SearchNodes performs either vector or text search based on query type
func (*DBManager) SearchSimilar ¶
func (dm *DBManager) SearchSimilar(ctx context.Context, projectName string, embedding []float32, limit int, offset int) ([]apptype.SearchResult, error)
SearchSimilar performs vector similarity search
func (*DBManager) SetEmbeddingsProvider ¶
func (dm *DBManager) SetEmbeddingsProvider(p embeddings.Provider)
SetEmbeddingsProvider overrides the embeddings provider (primarily for tests)
func (*DBManager) ShortestPath ¶
func (dm *DBManager) ShortestPath(ctx context.Context, projectName, from, to, direction string) ([]apptype.Entity, []apptype.Relation, error)
ShortestPath returns a shortest path as entities and relations using BFS edges. Note: returns subgraph containing the path; if no path found, returns empty slices.
func (*DBManager) UpdateEntities ¶
func (dm *DBManager) UpdateEntities(ctx context.Context, projectName string, updates []apptype.UpdateEntitySpec) error
UpdateEntities applies partial updates to entities
func (*DBManager) UpdateRelations ¶
func (dm *DBManager) UpdateRelations(ctx context.Context, projectName string, updates []apptype.UpdateRelationChange) error
UpdateRelations updates relation tuples via delete/insert
func (*DBManager) ValidateProjectAuth ¶
ValidateProjectAuth enforces per-project authorization in multi-project mode. Token is stored under <ProjectsDir>/<projectName>/.auth_token. If missing, a non-empty provided token will be written as the initial token. Subsequent calls must present the same token. No auth is enforced outside multi-project mode.