Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Store ¶
type Store interface {
// Souls
ListSouls(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Soul, error)
GetSoul(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Soul, error)
FindSoul(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Soul, error)
UpsertSoul(ctx context.Context, soul *models.Soul) error
DeleteSoul(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
// Personas
ListPersonas(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Persona, error)
GetPersona(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Persona, error)
FindPersona(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Persona, error)
UpsertPersona(ctx context.Context, persona *models.Persona) error
DeletePersona(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
// Rules
ListRules(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Rule, error)
GetRule(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Rule, error)
FindRule(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Rule, error)
UpsertRule(ctx context.Context, rule *models.Rule) error
DeleteRule(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
// Brains
ListBrains(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Brain, error)
GetBrain(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Brain, error)
FindBrain(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Brain, error)
UpsertBrain(ctx context.Context, brain *models.Brain) error
DeleteBrain(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
// Layer overrides
FindLayerOverride(ctx context.Context, workspaceID models.WorkspaceID, scopeType models.ScopeType, referenceID string) (*models.LayerOverride, error)
UpsertLayerOverride(ctx context.Context, override *models.LayerOverride) error
DeleteLayerOverride(ctx context.Context, workspaceID models.WorkspaceID, scopeType models.ScopeType, referenceID string) error
// Content versions
ListContentVersions(ctx context.Context, workspaceID models.WorkspaceID, contentType models.ContentType, slug models.Slug) ([]models.VersionSummary, error)
GetContentVersion(ctx context.Context, workspaceID models.WorkspaceID, contentType models.ContentType, slug models.Slug, version int) (*models.ContentVersion, error)
// Workspaces
ListWorkspaces(ctx context.Context) ([]models.Workspace, error)
GetWorkspace(ctx context.Context, id models.WorkspaceID) (*models.Workspace, error)
FindWorkspaceByName(ctx context.Context, name string) (*models.Workspace, error)
CreateWorkspace(ctx context.Context, ws *models.Workspace) error
UpdateWorkspace(ctx context.Context, ws *models.Workspace) error
DeleteWorkspace(ctx context.Context, id models.WorkspaceID) error
// Projects
ListProjects(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Project, error)
GetProject(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Project, error)
FindProjectByPath(ctx context.Context, workspaceID models.WorkspaceID, path string) (*models.Project, error)
UpsertProject(ctx context.Context, project *models.Project) error
DeleteProject(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
// API keys
ListAPIKeys(ctx context.Context) ([]models.APIKeySummary, error)
GetAPIKey(ctx context.Context, id models.APIKeyID) (*models.APIKey, error)
GetAPIKeyByHash(ctx context.Context, keyHash string) (*models.APIKey, error)
CreateAPIKey(ctx context.Context, key *models.APIKey) error
RevokeAPIKey(ctx context.Context, key *models.APIKey) error
DeleteAPIKey(ctx context.Context, id models.APIKeyID) error
Close() error
}
Store defines the full method set that any store implementation must satisfy. This interface exists only in the contract package — apps define their own narrow interfaces per the app-local pattern.
Click to show internal directories.
Click to hide internal directories.