Documentation
¶
Index ¶
- func Open(path string) (*sql.DB, error)
- func OpenForTest(migrationsFS fs.FS) (*sql.DB, error)
- func OpenRaw(path string) (*sql.DB, error)
- func RunMigrations(db *sql.DB, migrationsFS fs.FS) error
- type Store
- func (s *Store) AttachSkillToBrain(ctx context.Context, workspaceID models.WorkspaceID, ...) error
- func (s *Store) BeginTx(ctx context.Context) (*sql.Tx, error)
- func (s *Store) Close() error
- func (s *Store) CreateAPIKey(ctx context.Context, key *models.APIKey) error
- func (s *Store) CreateWorkspace(ctx context.Context, ws *models.Workspace) error
- func (s *Store) DeleteAPIKey(ctx context.Context, id models.APIKeyID) error
- func (s *Store) DeleteBrain(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
- func (s *Store) DeleteLayerOverride(ctx context.Context, workspaceID models.WorkspaceID, ...) error
- func (s *Store) DeletePersona(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
- func (s *Store) DeleteProcedure(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
- func (s *Store) DeleteProceduresByWorkspace(ctx context.Context, workspaceID models.WorkspaceID) error
- func (s *Store) DeleteRule(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
- func (s *Store) DeleteSkill(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
- func (s *Store) DeleteSkillsByWorkspace(ctx context.Context, workspaceID models.WorkspaceID) error
- func (s *Store) DeleteSoul(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) error
- func (s *Store) DeleteWorkspace(ctx context.Context, id models.WorkspaceID) error
- func (s *Store) DetachSkillFromBrain(ctx context.Context, workspaceID models.WorkspaceID, ...) error
- func (s *Store) FindBrain(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Brain, error)
- func (s *Store) FindLayerOverride(ctx context.Context, workspaceID models.WorkspaceID, ...) (*models.LayerOverride, error)
- func (s *Store) FindPersona(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Persona, error)
- func (s *Store) FindProcedure(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Procedure, error)
- func (s *Store) FindRule(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Rule, error)
- func (s *Store) FindSkill(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Skill, error)
- func (s *Store) FindSoul(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Soul, error)
- func (s *Store) FindWorkspaceByName(ctx context.Context, name string) (*models.Workspace, error)
- func (s *Store) GetAPIKey(ctx context.Context, id models.APIKeyID) (*models.APIKey, error)
- func (s *Store) GetAPIKeyByHash(ctx context.Context, keyHash string) (*models.APIKey, error)
- func (s *Store) GetBrain(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Brain, error)
- func (s *Store) GetContentVersion(ctx context.Context, workspaceID models.WorkspaceID, ...) (*models.ContentVersion, error)
- func (s *Store) GetPersona(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Persona, error)
- func (s *Store) GetProcedure(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Procedure, error)
- func (s *Store) GetRule(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Rule, error)
- func (s *Store) GetSkill(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Skill, error)
- func (s *Store) GetSoul(ctx context.Context, workspaceID models.WorkspaceID, slug models.Slug) (*models.Soul, error)
- func (s *Store) GetWorkspace(ctx context.Context, id models.WorkspaceID) (*models.Workspace, error)
- func (s *Store) ListAPIKeysByWorkspace(ctx context.Context, workspaceID models.WorkspaceID) ([]models.APIKeySummary, error)
- func (s *Store) ListBrains(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Brain, error)
- func (s *Store) ListContentVersions(ctx context.Context, workspaceID models.WorkspaceID, ...) ([]models.VersionSummary, error)
- func (s *Store) ListLayerOverrides(ctx context.Context, workspaceID models.WorkspaceID) ([]models.LayerOverride, error)
- func (s *Store) ListPersonas(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Persona, error)
- func (s *Store) ListProcedures(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Procedure, error)
- func (s *Store) ListRules(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Rule, error)
- func (s *Store) ListSkills(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Skill, error)
- func (s *Store) ListSouls(ctx context.Context, workspaceID models.WorkspaceID) ([]models.Soul, error)
- func (s *Store) ListWorkspaces(ctx context.Context) ([]models.Workspace, error)
- func (s *Store) PurgeWorkspaceContent(ctx context.Context, workspaceID models.WorkspaceID) error
- func (s *Store) Query(tx *sql.Tx) *sqlgen.Queries
- func (s *Store) ReplaceBrainSkills(ctx context.Context, workspaceID models.WorkspaceID, brainSlug models.Slug, ...) error
- func (s *Store) RevokeAPIKey(ctx context.Context, key *models.APIKey) error
- func (s *Store) SkillSlugsForBrain(ctx context.Context, workspaceID models.WorkspaceID, brainSlug models.Slug) ([]models.Slug, error)
- func (s *Store) UpdateWorkspace(ctx context.Context, ws *models.Workspace) error
- func (s *Store) UpsertBrain(ctx context.Context, brain *models.Brain) error
- func (s *Store) UpsertLayerOverride(ctx context.Context, override *models.LayerOverride) error
- func (s *Store) UpsertPersona(ctx context.Context, persona *models.Persona) error
- func (s *Store) UpsertProcedure(ctx context.Context, proc *models.Procedure) error
- func (s *Store) UpsertRule(ctx context.Context, rule *models.Rule) error
- func (s *Store) UpsertSkill(ctx context.Context, skill *models.Skill) error
- func (s *Store) UpsertSoul(ctx context.Context, soul *models.Soul) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Open ¶
Open opens a SQLite database at the given path with production settings: foreign key enforcement via DSN, single connection (SQLite is single-writer), and WAL mode for concurrent reads.
func OpenForTest ¶ added in v0.6.0
OpenForTest opens an in-memory database, runs migrations, and forces foreign key enforcement off. Migrations may toggle the FK pragma for table-swap operations and leave it on; tests assert invariants through explicit app-level checks instead, so we reset the connection to the test contract afterwards.
Types ¶
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store implements the contract.Store interface backed by SQLite via sqlc.
func (*Store) AttachSkillToBrain ¶ added in v0.6.0
func (s *Store) AttachSkillToBrain(ctx context.Context, workspaceID models.WorkspaceID, brainSlug, skillSlug models.Slug, position int) error
AttachSkillToBrain links a skill to a brain at the given position. Position controls display ordering under the brain — runtime load order is decided by the agent runtime, not by brainjar.
func (*Store) CreateAPIKey ¶
func (*Store) CreateWorkspace ¶
func (*Store) DeleteAPIKey ¶
func (*Store) DeleteBrain ¶
func (*Store) DeleteLayerOverride ¶
func (*Store) DeletePersona ¶
func (*Store) DeleteProcedure ¶ added in v0.6.0
func (*Store) DeleteProceduresByWorkspace ¶ added in v0.6.0
func (s *Store) DeleteProceduresByWorkspace(ctx context.Context, workspaceID models.WorkspaceID) error
DeleteProceduresByWorkspace removes every procedure in a workspace without checking brain references. Used by PurgeWorkspaceContent and by tests that need to simulate a procedure disappearing out from under a brain.
func (*Store) DeleteRule ¶
func (*Store) DeleteSkill ¶ added in v0.6.0
func (*Store) DeleteSkillsByWorkspace ¶ added in v0.6.0
DeleteSkillsByWorkspace removes every skill in a workspace without checking brain references. Used by PurgeWorkspaceContent.
func (*Store) DeleteSoul ¶
func (*Store) DeleteWorkspace ¶
func (*Store) DetachSkillFromBrain ¶ added in v0.6.0
func (*Store) FindLayerOverride ¶
func (*Store) FindPersona ¶
func (*Store) FindProcedure ¶ added in v0.6.0
func (*Store) FindWorkspaceByName ¶
func (*Store) GetAPIKeyByHash ¶
func (*Store) GetContentVersion ¶
func (s *Store) GetContentVersion(ctx context.Context, workspaceID models.WorkspaceID, contentType models.ContentType, slug models.Slug, version int) (*models.ContentVersion, error)
func (*Store) GetPersona ¶
func (*Store) GetProcedure ¶ added in v0.6.0
func (*Store) GetWorkspace ¶
func (*Store) ListAPIKeysByWorkspace ¶
func (s *Store) ListAPIKeysByWorkspace(ctx context.Context, workspaceID models.WorkspaceID) ([]models.APIKeySummary, error)
func (*Store) ListBrains ¶
func (*Store) ListContentVersions ¶
func (s *Store) ListContentVersions(ctx context.Context, workspaceID models.WorkspaceID, contentType models.ContentType, slug models.Slug) ([]models.VersionSummary, error)
func (*Store) ListLayerOverrides ¶ added in v0.7.0
func (s *Store) ListLayerOverrides(ctx context.Context, workspaceID models.WorkspaceID) ([]models.LayerOverride, error)
func (*Store) ListPersonas ¶
func (*Store) ListProcedures ¶ added in v0.6.0
func (*Store) ListSkills ¶ added in v0.6.0
func (*Store) ListWorkspaces ¶
func (*Store) PurgeWorkspaceContent ¶
PurgeWorkspaceContent deletes everything attached to a workspace except the workspace row itself, inside one transaction. Used by the CLI's `workspace delete --purge` flag. Order of deletes matters: content_versions reference content tables, layer_overrides reference the workspace, and api_keys reference the workspace — removing them first lets the workspace row be dropped afterwards without tripping any FK.
func (*Store) Query ¶
Query returns sqlc queries scoped to tx if non-nil, otherwise the default connection.
func (*Store) ReplaceBrainSkills ¶ added in v0.6.0
func (s *Store) ReplaceBrainSkills(ctx context.Context, workspaceID models.WorkspaceID, brainSlug models.Slug, skillSlugs []models.Slug) error
ReplaceBrainSkills clears every skill link for a brain. Callers follow with AttachSkillToBrain per slug, preserving the input order via the position field. This is the path UpsertBrain takes when SkillSlugs changes.
func (*Store) RevokeAPIKey ¶
func (*Store) SkillSlugsForBrain ¶ added in v0.6.0
func (s *Store) SkillSlugsForBrain(ctx context.Context, workspaceID models.WorkspaceID, brainSlug models.Slug) ([]models.Slug, error)
SkillSlugsForBrain returns the slugs of every skill attached to the given brain, ordered by position. Used by Brain hydration.
func (*Store) UpdateWorkspace ¶
func (*Store) UpsertBrain ¶
func (*Store) UpsertLayerOverride ¶
func (*Store) UpsertPersona ¶
func (*Store) UpsertProcedure ¶ added in v0.6.0
func (*Store) UpsertSkill ¶ added in v0.6.0
UpsertSkill inserts or replaces a skill. On replace, the prior row is archived to content_versions with the description + triggers + version captured in metadata so reverts can rebuild the original surface. The stored Body is the markdown body emitted to disk.