Documentation
¶
Overview ¶
Package profile stores named snapshots of every agent's settings, and of who gets what from the library, so a whole setup can be switched in one move.
Index ¶
- func ApplyFields(p map[string]string) (int, error)
- func Delete(name string) error
- func Fields() map[string]string
- func Load() (map[string]Profile, error)
- func LongSummary(p Profile) string
- func Names(ps map[string]Profile) []string
- func Path() string
- func Report(a Applied) []string
- func Save(name string, p Profile) error
- func Summary(p Profile) string
- type Applied
- type Group
- type Item
- type Profile
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyFields ¶ added in v0.1.58
ApplyFields writes every value in p that differs from what is set now. It returns the number of changes made and the first error encountered.
func Fields ¶ added in v0.1.58
Fields captures the current value of every detected agent's fields, including empty values that restore the agent's own defaults.
func LongSummary ¶ added in v0.1.58
LongSummary is Summary, and what the profile gives out from the library.
func Report ¶ added in v0.1.58
Report is what applying a profile did to the library, a line each, for the terminal: none for a profile without the library's setup.
Types ¶
type Applied ¶ added in v0.1.58
type Applied struct {
Changed int // agent fields changed
// Library is what bringing the library's setup back wrote into the
// agents; nil for a profile that carries none.
Library *library.Result
}
Applied is what applying a profile did.
type Group ¶ added in v0.1.605
type Group struct {
ID string `json:"id"`
Name string `json:"name"`
Icon string `json:"icon,omitempty"`
Fields []Item `json:"fields"`
// Servers and Skills are the library's it gets, by name; Instructions
// whether it gets the instructions (their text is left out)
Servers []string `json:"servers,omitempty"`
Skills []string `json:"skills,omitempty"`
Instructions bool `json:"instructions,omitempty"`
}
Group is what a profile holds for one agent, to be read before it is applied (#467): its fields, in the order the agent lists them, and what the library's setup gives it.
func Details ¶ added in v0.1.605
Details is what p holds, by agent: the agents magpie knows in the order it lists them, then any it no longer does by id. A quiet field left empty is left out, as the agent's row leaves it out, unless it says which field it follows: Claude Code's four tiers are all there, one that follows the main model saying so (#480: opus and fable, following it, were missing, and read as not set). What applying the profile writes is unchanged.
type Item ¶ added in v0.1.605
type Item struct {
Key string `json:"key"`
Label string `json:"label"`
Value string `json:"value"`
Follows string `json:"follows,omitempty"`
Hidden bool `json:"hidden,omitempty"`
}
Item is one saved field. Value "" is the agent's own default, or, with Follows, the key of the field it takes after (a Claude Code tier that follows the main model, #480). Hidden is a value that looked like a key or a token: it is left out, never shown.
type Profile ¶
type Profile struct {
// Fields maps "agent.field" to a value.
Fields map[string]string
// Library is which agents got which servers and skills, and the
// instructions; nil for a profile saved while the library was empty,
// or before profiles kept it, which leaves the library as it is.
Library *library.Setup
}
Profile is every agent's fields, and the library's setup.
func Snapshot ¶
Snapshot captures every detected agent's fields, and the library's setup unless the library is empty.
func (Profile) MarshalJSON ¶ added in v0.1.58
MarshalJSON writes the fields and the library's setup side by side.
func (*Profile) UnmarshalJSON ¶ added in v0.1.58
UnmarshalJSON reads what MarshalJSON writes, and a profile of before, which was the fields alone.