Versions in this module Expand all Collapse all v0 v0.36.0 Sep 12, 2026 v0.35.0 Sep 12, 2026 Changes in this version + const ActionCreate + const ActionCustomize + const ActionNever + const ActionNotNow + func DBPath() (string, error) + func Ready(c Cluster) bool + func WouldOfferOnFirstContact(p Proposal) bool + type Classifier interface + Classify func(ctx context.Context, in Turn) (Proposal, bool, error) + type Cluster struct + Evidence []string + Family string + FamilyKey string + LastSeen time.Time + Latest Proposal + Project string + Sessions int + Signals int + Weight float64 + func (c Cluster) Capability() Proposal + type Decision struct + Kind Kind + Occasions int + Proposal Proposal + Sessions int + Why string + func ClusterDecision(c Cluster) Decision + type Detector struct + Classifier Classifier + Store *Store + func (d *Detector) Evaluate(ctx context.Context, in Turn, now time.Time) (Decision, error) + type Effect string + const EffectExpected + const EffectNone + const EffectPossible + type Gap struct + Field string + Question string + Why string + type Kind string + const KindExplicit + const KindNone + const KindProspective + const KindRepeated + type Offer struct + Detail string + Headline string + Options []Option + func Message(d Decision) Offer + type Option struct + Description string + Key string + Label string + type Proposal struct + Bounded bool + ClarifyingQuestions []string + Confidence float64 + Constraints []string + Effect Effect + Evaluable bool + ExplicitRequest bool + Family string + Instructions string + Name string + Operation string + Project string + Reason string + Recurrence Recurrence + Reproducible bool + Scope string + SuggestedCron string + SuggestedEvery string + Target string + UnattendedSafe bool + Verify []string + func (p Proposal) Eligible() bool + func (p Proposal) FamilyKey() string + func (p Proposal) Fingerprint() string + func (p Proposal) Gaps() []Gap + func (p Proposal) IneligibleReason() string + func (p Proposal) Ready() bool + func (p Proposal) SameCapability(q Proposal) bool + func (p Proposal) ToTask(now time.Time) (task.Task, error) + type Recurrence struct + Cause string + Confidence float64 + Kind RecurrenceKind + Value string + func (r Recurrence) Inherent() bool + type RecurrenceKind string + const RecurrenceExternal + const RecurrenceInternal + const RecurrenceOneOff + const RecurrenceUncertain + const RecurrenceUserPattern + type Signal struct + Confidence float64 + Evidence string + Family string + FamilyKey string + Fingerprint string + ID string + ObservedAt time.Time + Operation string + Project string + Proposal Proposal + Scope string + SessionID string + Target string + type Store struct + func Open(ctx context.Context, path string) (*Store, error) + func OpenDefault(ctx context.Context) (*Store, error) + func (s *Store) Close() error + func (s *Store) Clusters(ctx context.Context, project string, now time.Time) ([]Cluster, error) + func (s *Store) Forget(ctx context.Context, p Proposal) error + func (s *Store) Prune(ctx context.Context, before time.Time) error + func (s *Store) Record(ctx context.Context, sessionID string, p Proposal, evidence string, ...) (Signal, error) + func (s *Store) Suppress(ctx context.Context, p Proposal, now time.Time) error + func (s *Store) Suppressed(ctx context.Context, p Proposal) (bool, error) + func (s *Store) Suppressions(ctx context.Context) ([]string, error) + func (s *Store) Unsuppress(ctx context.Context, family string) (int, error) + type Turn struct + Changed bool + Project string + Request string + SessionID string + Summary string