Documentation
¶
Index ¶
- Constants
- func AnnaHome() string
- func CachePath() string
- func DBPath() string
- func ModelConfigToAI(provider string, m ModelConfig) ai.Model
- func ParseModelRef(ref string) (provider, model string)
- func ResetAnnaHome()
- type Agent
- type Channel
- type CompactionConfig
- type DBStore
- func (s *DBStore) CreateAgent(ctx context.Context, a Agent) error
- func (s *DBStore) CreateProvider(ctx context.Context, p Provider) error
- func (s *DBStore) DeleteAgent(ctx context.Context, id string) error
- func (s *DBStore) DeleteChatAgent(ctx context.Context, platform, chatID string) error
- func (s *DBStore) DeleteProvider(ctx context.Context, id string) error
- func (s *DBStore) DeleteUserAgentMemory(ctx context.Context, userID int64, agentID string) error
- func (s *DBStore) GetAgent(ctx context.Context, id string) (Agent, error)
- func (s *DBStore) GetChannel(ctx context.Context, id string) (Channel, error)
- func (s *DBStore) GetChatAgent(ctx context.Context, platform, chatID string) (string, error)
- func (s *DBStore) GetProvider(ctx context.Context, id string) (Provider, error)
- func (s *DBStore) GetSetting(ctx context.Context, key string) (string, error)
- func (s *DBStore) GetUser(ctx context.Context, id int64) (User, error)
- func (s *DBStore) GetUserAgentMemory(ctx context.Context, userID int64, agentID string) (string, error)
- func (s *DBStore) ListAgents(ctx context.Context) ([]Agent, error)
- func (s *DBStore) ListChannels(ctx context.Context) ([]Channel, error)
- func (s *DBStore) ListEnabledAgents(ctx context.Context) ([]Agent, error)
- func (s *DBStore) ListProviders(ctx context.Context) ([]Provider, error)
- func (s *DBStore) ListUserMemories(ctx context.Context, userID int64) ([]UserAgentMemory, error)
- func (s *DBStore) ListUsers(ctx context.Context) ([]User, error)
- func (s *DBStore) SeedDefaults(ctx context.Context) error
- func (s *DBStore) SetChatAgent(ctx context.Context, platform, chatID, agentID string) error
- func (s *DBStore) SetSetting(ctx context.Context, key, value string) error
- func (s *DBStore) SetUserAgentMemory(ctx context.Context, userID int64, agentID, content string) error
- func (s *DBStore) Snapshot(ctx context.Context, agentID string) (*Snapshot, error)
- func (s *DBStore) UpdateAgent(ctx context.Context, a Agent) error
- func (s *DBStore) UpdateProvider(ctx context.Context, p Provider) error
- func (s *DBStore) UpdateUserDefaultAgent(ctx context.Context, userID int64, agentID string) error
- func (s *DBStore) UpsertChannel(ctx context.Context, ch Channel) error
- func (s *DBStore) UpsertUser(ctx context.Context, externalID, platform, name string) (User, error)
- type HeartbeatConfig
- type ModelConfig
- type ModelCostConfig
- type PluginConfig
- type Provider
- type ProviderCreds
- type RunnerConfig
- type SchedulerConfig
- type Snapshot
- func (s *Snapshot) LogPath() string
- func (s *Snapshot) ResolveModel() ai.Model
- func (s *Snapshot) ResolveModelID(tier string) string
- func (s *Snapshot) ResolveModelTier(tier string) ai.Model
- func (s *Snapshot) ResolveProviderCreds(providerID string) ProviderCreds
- func (s *Snapshot) SkillsPath() string
- type Store
- type User
- type UserAgentMemory
Constants ¶
const ( ModelTierStrong = "strong" ModelTierFast = "fast" )
Model tier constants.
Variables ¶
This section is empty.
Functions ¶
func AnnaHome ¶
func AnnaHome() string
AnnaHome returns the anna home directory. Priority: ANNA_HOME env -> ~/.anna The result is cached after the first call.
func CachePath ¶
func CachePath() string
CachePath returns the cache directory inside the anna home.
func DBPath ¶ added in v0.8.0
func DBPath() string
DBPath returns the default database path inside the anna home.
func ModelConfigToAI ¶ added in v0.8.0
func ModelConfigToAI(provider string, m ModelConfig) ai.Model
ModelConfigToAI converts a ModelConfig to an ai.Model.
func ParseModelRef ¶ added in v0.8.0
ParseModelRef splits a "provider/model" string into its parts. If the string contains no "/", it returns ("", ref) as fallback.
func ResetAnnaHome ¶
func ResetAnnaHome()
ResetAnnaHome clears the cached AnnaHome value (for testing).
Types ¶
type Agent ¶ added in v0.8.0
type Agent struct {
ID string `json:"id"`
Name string `json:"name"`
Model string `json:"model"`
ModelStrong string `json:"model_strong"`
ModelFast string `json:"model_fast"`
SystemPrompt string `json:"system_prompt"`
Workspace string `json:"workspace"`
Enabled bool `json:"enabled"`
}
Agent represents an agent definition. Model fields use {provider}/{model} format (e.g. "anthropic/claude-sonnet-4-6").
type Channel ¶ added in v0.8.0
type Channel struct {
ID string `json:"id"`
Enabled bool `json:"enabled"`
Config string `json:"config"`
}
Channel represents a platform channel configuration.
type CompactionConfig ¶
type CompactionConfig struct {
// MaxTokens triggers compaction when the estimated token count exceeds this.
// 0 (or omitted) uses the default of 80000. Negative values disable
// automatic compaction. Manual /compact still works.
MaxTokens int `json:"max_tokens"`
// KeepTail is the number of recent message entries to preserve verbatim
// after compaction. Default: 20.
KeepTail int `json:"keep_tail"`
}
CompactionConfig controls automatic session compaction.
type DBStore ¶ added in v0.8.0
type DBStore struct {
// contains filtered or unexported fields
}
DBStore implements Store using sqlc queries backed by SQLite.
func NewDBStore ¶ added in v0.8.0
NewDBStore creates a new DBStore wrapping the given database connection. It sets MaxOpenConns(1) to mitigate SQLite concurrency issues.
func (*DBStore) CreateAgent ¶ added in v0.8.0
func (*DBStore) CreateProvider ¶ added in v0.8.0
func (*DBStore) DeleteAgent ¶ added in v0.8.0
func (*DBStore) DeleteChatAgent ¶ added in v0.8.0
func (*DBStore) DeleteProvider ¶ added in v0.8.0
func (*DBStore) DeleteUserAgentMemory ¶ added in v0.8.0
func (*DBStore) GetChannel ¶ added in v0.8.0
func (*DBStore) GetChatAgent ¶ added in v0.8.0
func (*DBStore) GetProvider ¶ added in v0.8.0
func (*DBStore) GetSetting ¶ added in v0.8.0
func (*DBStore) GetUserAgentMemory ¶ added in v0.8.0
func (*DBStore) ListAgents ¶ added in v0.8.0
func (*DBStore) ListChannels ¶ added in v0.8.0
func (*DBStore) ListEnabledAgents ¶ added in v0.8.0
func (*DBStore) ListProviders ¶ added in v0.8.0
func (*DBStore) ListUserMemories ¶ added in v0.8.0
func (*DBStore) SeedDefaults ¶ added in v0.8.0
SeedDefaults populates the DB with sensible defaults on first bootstrap. It is idempotent: if providers/agents already exist, it does nothing.
func (*DBStore) SetChatAgent ¶ added in v0.8.0
func (*DBStore) SetSetting ¶ added in v0.8.0
func (*DBStore) SetUserAgentMemory ¶ added in v0.8.0
func (*DBStore) UpdateAgent ¶ added in v0.8.0
func (*DBStore) UpdateProvider ¶ added in v0.8.0
func (*DBStore) UpdateUserDefaultAgent ¶ added in v0.8.0
func (*DBStore) UpsertChannel ¶ added in v0.8.0
type HeartbeatConfig ¶
type HeartbeatConfig struct {
Enabled *bool `json:"enabled"`
Every string `json:"every"`
File string `json:"file"`
}
HeartbeatConfig configures periodic heartbeat checks.
func (HeartbeatConfig) FilePath ¶
func (c HeartbeatConfig) FilePath(workspace string) string
FilePath resolves the configured heartbeat file relative to the workspace.
func (HeartbeatConfig) Interval ¶
func (c HeartbeatConfig) Interval() string
Interval returns the configured heartbeat cadence.
func (HeartbeatConfig) IsEnabled ¶
func (c HeartbeatConfig) IsEnabled() bool
IsEnabled returns whether heartbeat is enabled (defaults to false).
type ModelConfig ¶
type ModelConfig struct {
ID string `json:"id"`
Name string `json:"name"`
API string `json:"api"`
Reasoning bool `json:"reasoning"`
Input []string `json:"input"`
ContextWindow int `json:"context_window"`
MaxTokens int `json:"max_tokens"`
Headers map[string]string `json:"headers"`
Cost *ModelCostConfig `json:"cost"`
}
ModelConfig describes a model's metadata (used in model listing/caching).
type ModelCostConfig ¶
type ModelCostConfig struct {
Input float64 `json:"input"`
Output float64 `json:"output"`
CacheRead float64 `json:"cache_read"`
CacheWrite float64 `json:"cache_write"`
}
ModelCostConfig describes the cost of a model per million tokens.
type PluginConfig ¶ added in v0.7.0
PluginConfig describes a single plugin entry.
type Provider ¶ added in v0.8.0
type Provider struct {
ID string `json:"id"`
Name string `json:"name"`
APIKey string `json:"api_key"`
BaseURL string `json:"base_url"`
}
Provider represents an LLM API provider.
type ProviderCreds ¶ added in v0.8.0
ProviderCreds holds credentials for a single provider.
type RunnerConfig ¶
type RunnerConfig struct {
Type string `json:"type"`
System string `json:"system"`
IdleTimeout int `json:"idle_timeout"`
Compaction CompactionConfig `json:"compaction"`
}
RunnerConfig configures the agent runner.
type SchedulerConfig ¶ added in v0.6.2
SchedulerConfig configures the scheduler subsystem.
func (SchedulerConfig) IsEnabled ¶ added in v0.6.2
func (c SchedulerConfig) IsEnabled() bool
IsEnabled returns whether the scheduler is enabled (defaults to true).
type Snapshot ¶ added in v0.8.0
type Snapshot struct {
// Provider, APIKey, BaseURL are the default provider credentials derived
// from the Model field's provider prefix. Kept for backward compatibility.
Provider string
Model string
ModelStrong string
ModelFast string
Workspace string
APIKey string
BaseURL string
SystemPrompt string // agent's soul/personality from DB
Runner RunnerConfig
Compaction CompactionConfig
Heartbeat HeartbeatConfig
Scheduler SchedulerConfig
Plugins []PluginConfig
// Providers maps provider ID to credentials, enabling per-tier provider
// resolution when model_strong or model_fast use a different provider.
Providers map[string]ProviderCreds
}
Snapshot is a read-only config snapshot assembled from DB for downstream consumption. It replaces the old *Config for code that needs provider/model information for a specific agent.
func (*Snapshot) ResolveModel ¶ added in v0.8.0
ResolveModel returns the ai.Model for the default (strong) tier.
func (*Snapshot) ResolveModelID ¶ added in v0.8.0
ResolveModelID returns the model ID string for the given tier, falling back to Model if the tier-specific value is not set.
func (*Snapshot) ResolveModelTier ¶ added in v0.8.0
ResolveModelTier returns the ai.Model for the given tier, constructing a minimal Model from the snapshot's provider and model information. It parses the provider from the model ref and looks up per-provider credentials from the Providers map.
func (*Snapshot) ResolveProviderCreds ¶ added in v0.8.0
func (s *Snapshot) ResolveProviderCreds(providerID string) ProviderCreds
ResolveProviderCreds returns the API key and base URL for the given provider ID, falling back to the default Provider credentials.
func (*Snapshot) SkillsPath ¶ added in v0.8.0
SkillsPath returns the skills directory inside the workspace.
type Store ¶ added in v0.8.0
type Store interface {
// Providers
ListProviders(ctx context.Context) ([]Provider, error)
GetProvider(ctx context.Context, id string) (Provider, error)
CreateProvider(ctx context.Context, p Provider) error
UpdateProvider(ctx context.Context, p Provider) error
DeleteProvider(ctx context.Context, id string) error
// Agents
ListAgents(ctx context.Context) ([]Agent, error)
ListEnabledAgents(ctx context.Context) ([]Agent, error)
GetAgent(ctx context.Context, id string) (Agent, error)
CreateAgent(ctx context.Context, a Agent) error
UpdateAgent(ctx context.Context, a Agent) error
DeleteAgent(ctx context.Context, id string) error
// Channels
ListChannels(ctx context.Context) ([]Channel, error)
GetChannel(ctx context.Context, id string) (Channel, error)
UpsertChannel(ctx context.Context, ch Channel) error
// Users
ListUsers(ctx context.Context) ([]User, error)
GetUser(ctx context.Context, id int64) (User, error)
UpsertUser(ctx context.Context, externalID, platform, name string) (User, error)
UpdateUserDefaultAgent(ctx context.Context, userID int64, agentID string) error
// Chat Agents (group -> agent mapping)
GetChatAgent(ctx context.Context, platform, chatID string) (string, error) // returns agentID
SetChatAgent(ctx context.Context, platform, chatID, agentID string) error
DeleteChatAgent(ctx context.Context, platform, chatID string) error
// User Agent Memory
GetUserAgentMemory(ctx context.Context, userID int64, agentID string) (string, error)
SetUserAgentMemory(ctx context.Context, userID int64, agentID, content string) error
ListUserMemories(ctx context.Context, userID int64) ([]UserAgentMemory, error)
DeleteUserAgentMemory(ctx context.Context, userID int64, agentID string) error
// Settings (key-value JSON)
GetSetting(ctx context.Context, key string) (string, error) // returns JSON string
SetSetting(ctx context.Context, key, value string) error
// Snapshot assembles a read-only config snapshot for an agent.
Snapshot(ctx context.Context, agentID string) (*Snapshot, error)
// Bootstrap
SeedDefaults(ctx context.Context) error
}
Store provides typed access to configuration stored in the database.