Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultDir ¶
func DefaultDir() string
DefaultDir returns the default configuration directory (~/.skael).
func MigrateSkillsFromState ¶ added in v0.8.0
MigrateSkillsFromState populates cfg.Skills from the given SyncState. Used on first run after upgrading from a legacy config that has no "skills" key. Returns the names of migrated skills (for user messaging).
func WriteConfig ¶
WriteConfig creates dir if needed and writes cfg to config.json atomically (temp file + rename) with mode 0600.
func WriteState ¶
WriteState writes state.json atomically (temp file + rename) so a crash or concurrent writer can never leave a torn file behind.
Types ¶
type Config ¶
type Config struct {
Endpoint string `json:"endpoint"`
APIKey string `json:"api_key"`
Scope string `json:"scope,omitempty"`
Skills []SkillEntry `json:"skills"`
}
Config holds the CLI configuration stored in config.json.
func EnsureSkillsKey ¶ added in v0.8.0
EnsureSkillsKey loads config from dir and ensures the skills key exists. If the config is legacy (no skills key), it migrates from state.json, writes the updated config, and returns the migrated skill names. If the config already has a skills key, migrated is nil.
func LoadConfig ¶
LoadConfig resolves configuration with environment variables taking precedence. It checks SKAEL_URL and SKAEL_KEY first, then falls back to ReadConfig(DefaultDir()). If only one of the two env vars is set, it returns an error naming the missing one.
func ReadConfig ¶
ReadConfig reads and parses config.json from dir.
func (*Config) AddSkill ¶ added in v0.8.0
AddSkill adds a skill to the config, or updates its scope if already present.
func (*Config) FindSkill ¶ added in v0.8.0
func (c *Config) FindSkill(name string) (SkillEntry, int)
FindSkill returns the entry and index for the given name, or (-1) if not found.
func (*Config) RemoveSkill ¶ added in v0.8.0
RemoveSkill removes a skill from the config by name. Returns true if found.
type Placement ¶ added in v0.7.0
type Placement struct {
Agent string `json:"agent"`
Path string `json:"path"`
Scope string `json:"scope"`
}
Placement records where a synced skill was extracted.
type SkillEntry ¶ added in v0.8.0
SkillEntry records a skill the user has explicitly installed.
type SyncState ¶
type SyncState struct {
LastSync string `json:"last_sync"`
Skills []SyncedSkill `json:"skills"`
}
SyncState records the last sync timestamp and each synced skill.