Versions in this module Expand all Collapse all v0 v0.9.2 May 1, 2026 Changes in this version + const DefaultJitter + const DefaultSleepDefault + const DefaultSleepMax + const DefaultSleepMin + const DefaultSupervisorProb + var ErrLoopStopped = errors.New("loop: cannot start a stopped loop") + var ErrNilRunner = errors.New("loop: Runner is required") + var ErrNoOp = errors.New("loop: no-op iteration") + func FallbackContent(ctx context.Context) string + func Float64Ptr(v float64) *float64 + func IterationSummary(ctx context.Context) map[string]any + func LoopIDFromContext(ctx context.Context) string + func NotifyEnvelopesFromContext(ctx context.Context) []messages.Envelope + func ProgressFunc(ctx context.Context) func(string, map[string]any) + func ReportAgentRun(ctx context.Context, s AgentRunSummary) map[string]any + func ReportConversationID(ctx context.Context, conversationID string) map[string]any + func SpawnDemoLoops(ctx context.Context, registry *Registry, eventBus *events.Bus, ...) error + type AgentRunSummary struct + ActiveTags []string + EffectiveTools []string + InputTokens int + LoadedCapabilities []toolcatalog.LoadedCapabilityEntry + Model string + OutputTokens int + RequestID string + type Completion string + const CompletionChannel + const CompletionConversation + const CompletionNone + const CompletionReturn + type CompletionChannelTarget struct + Channel string + ConversationID string + Recipient string + func CloneCompletionChannelTarget(t *CompletionChannelTarget) *CompletionChannelTarget + func (t *CompletionChannelTarget) Validate() error + type CompletionDelivery struct + Channel *CompletionChannelTarget + Content string + ConversationID string + LoopID string + LoopName string + Mode Completion + Response *Response + Status *Status + type CompletionSink func(ctx context.Context, delivery CompletionDelivery) error + type Conditions struct + Schedule *ScheduleCondition + func (c Conditions) Evaluate(now time.Time) DefinitionEligibilityStatus + func (c Conditions) Validate() error + type Config struct + Completion Completion + ExcludeTools []string + FallbackContent string + Handler func(ctx context.Context, event any) error + Hints map[string]string + Jitter *float64 + MaxDuration time.Duration + MaxIter int + Metadata map[string]string + Name string + OnRetrigger RetriggerMode + Operation Operation + OutputContextBuilder OutputContextBuilder + Outputs []OutputSpec + ParentID string + PostIterate func(ctx context.Context, result IterationResult) error + QualityFloor int + RuntimeTools []RuntimeTool + Setup func(l *Loop) + SleepDefault time.Duration + SleepMax time.Duration + SleepMin time.Duration + Supervisor bool + SupervisorContext string + SupervisorProb float64 + SupervisorQualityFloor int + Tags []string + Task string + TaskBuilder func(ctx context.Context, isSupervisor bool) (string, error) + WaitFunc func(ctx context.Context) (any, error) + type DefinitionEligibilityStatus struct + Eligible bool + NextTransitionAt time.Time + Reason string + type DefinitionPolicy struct + Reason string + State DefinitionPolicyState + UpdatedAt time.Time + type DefinitionPolicySource string + const DefinitionPolicySourceDefault + const DefinitionPolicySourceOverlay + type DefinitionPolicyState string + const DefinitionPolicyStateActive + const DefinitionPolicyStateInactive + const DefinitionPolicyStatePaused + func ParseDefinitionPolicyState(raw string) (DefinitionPolicyState, error) + type DefinitionRecord struct + Spec Spec + UpdatedAt time.Time + type DefinitionRegistry struct + func NewDefinitionRegistry(base []Spec) (*DefinitionRegistry, error) + func (r *DefinitionRegistry) ApplyPolicy(name string, policy DefinitionPolicy, updatedAt time.Time) error + func (r *DefinitionRegistry) ClearPolicy(name string, updatedAt time.Time) error + func (r *DefinitionRegistry) Delete(name string, updatedAt time.Time) error + func (r *DefinitionRegistry) Get(name string) (Spec, bool) + func (r *DefinitionRegistry) ReplaceOverlay(records map[string]DefinitionRecord) error + func (r *DefinitionRegistry) ReplacePolicies(policies map[string]DefinitionPolicy, updatedAt time.Time) error + func (r *DefinitionRegistry) Snapshot() *DefinitionRegistrySnapshot + func (r *DefinitionRegistry) Upsert(spec Spec, updatedAt time.Time) error + type DefinitionRegistrySnapshot struct + ConfigDefinitions int + Definitions []DefinitionSnapshot + Generation int64 + OverlayDefinitions int + UpdatedAt time.Time + type DefinitionRegistryView struct + ByEligibilityState map[string]int + ByPolicyState map[string]int + ByRuntimeState map[string]int + ConfigDefinitions int + Definitions []DefinitionView + DefinitionsWithWarnings int + Generation int64 + OverlayDefinitions int + RunningDefinitions int + UpdatedAt time.Time + WarningCount int + func BuildDefinitionRegistryView(snapshot *DefinitionRegistrySnapshot, ...) *DefinitionRegistryView + type DefinitionRuntimeStatus struct + Attempts int + Iterations int + LastError string + LastWakeAt time.Time + LoopID string + Running bool + StartedAt time.Time + State State + type DefinitionSnapshot struct + Name string + PolicyReason string + PolicySource DefinitionPolicySource + PolicyState DefinitionPolicyState + PolicyUpdatedAt time.Time + Source DefinitionSource + Spec Spec + UpdatedAt time.Time + type DefinitionSource string + const DefinitionSourceConfig + const DefinitionSourceOverlay + type DefinitionView struct + Eligibility DefinitionEligibilityStatus + Runtime DefinitionRuntimeStatus + Warnings []DefinitionWarning + type DefinitionWarning struct + Code string + Message string + func BuildDefinitionWarnings(spec Spec) []DefinitionWarning + type Deps struct + CompletionSink CompletionSink + EventBus *events.Bus + Logger *slog.Logger + Rand RandSource + Runner Runner + type ImmutableDefinitionError struct + Name string + func (e *ImmutableDefinitionError) Error() string + type InactiveDefinitionError struct + Name string + func (e *InactiveDefinitionError) Error() string + type IneligibleDefinitionError struct + Name string + Reason string + func (e *IneligibleDefinitionError) Error() string + type IterationResult struct + ActiveTags []string + ContextWindow int + ConvID string + EffectiveTools []string + Elapsed time.Duration + InputTokens int + LoadedCapabilities []toolcatalog.LoadedCapabilityEntry + Model string + OutputTokens int + RequestID string + Sleep time.Duration + Supervisor bool + ToolsUsed map[string]int + type IterationSnapshot struct + ActiveTags []string + CompletedAt time.Time + ContextWindow int + ConvID string + EffectiveTools []string + ElapsedMs int64 + Error string + InputTokens int + Model string + Number int + OutputTokens int + RequestID string + SleepAfterMs int64 + StartedAt time.Time + Summary map[string]any + Supervisor bool + Tooling ToolingState + ToolsUsed map[string]int + WaitAfter bool + type Launch struct + AllowedTools []string + ChannelBinding *memory.ChannelBinding + CompletionChannel *CompletionChannelTarget + CompletionConversationID string + ConversationID string + ExcludeTools []string + FallbackContent string + Hints map[string]string + InitialTags []string + MaxIterations int + MaxOutputTokens int + Metadata map[string]string + Model string + OnProgress func(kind string, data map[string]any) + ParentID string + PromptMode agentctx.PromptMode + RunTimeout time.Duration + SkipContext bool + SkipTagFilter bool + Spec Spec + SuppressAlwaysContext bool + SystemPrompt string + Task string + ToolTimeout time.Duration + UsageRole string + UsageTaskName string + func (l *Launch) UnmarshalJSON(data []byte) error + func (l *Launch) Validate() error + func (l Launch) MarshalJSON() ([]byte, error) + type LaunchResult struct + Detached bool + FinalStatus *Status + LoopID string + Operation Operation + Response *Response + type Loop struct + func New(cfg Config, deps Deps) (*Loop, error) + func NewFromLaunch(launch Launch, deps Deps) (*Loop, error) + func NewFromSpec(spec Spec, deps Deps) (*Loop, error) + func (l *Loop) CurrentConvID() string + func (l *Loop) Done() <-chan struct{} + func (l *Loop) ID() string + func (l *Loop) Name() string + func (l *Loop) SetActiveTagsFunc(fn func() []string) + func (l *Loop) SetNextSleep(d time.Duration) + func (l *Loop) Start(ctx context.Context) error + func (l *Loop) Status() Status + func (l *Loop) Stop() + type Message struct + Content string + Role string + type NotifyReceipt struct + ForceSupervisor bool + LoopID string + LoopName string + PendingNotifications int + QueuedForNextWake bool + State State + WokeImmediately bool + type Operation string + const OperationBackgroundTask + const OperationRequestReply + const OperationService + type OutputContextBuilder func(ctx context.Context, outputs []OutputSpec) (string, error) + type OutputMode string + const OutputModeAppend + const OutputModeReplace + type OutputSpec struct + JournalWindow string + MaxWindows int + Mode OutputMode + Name string + Purpose string + Ref string + Type OutputType + func (o OutputSpec) EffectiveMode() OutputMode + func (o OutputSpec) ToolName() string + func (o OutputSpec) Validate() error + type OutputType string + const OutputTypeJournalDocument + const OutputTypeMaintainedDocument + type PausedDefinitionError struct + Name string + func (e *PausedDefinitionError) Error() string + type RandSource interface + Float64 func() float64 + type Registry struct + func NewRegistry(opts ...RegistryOption) *Registry + func (r *Registry) ActiveCount() int + func (r *Registry) Deregister(id string) + func (r *Registry) FindByName(name string) []*Loop + func (r *Registry) Get(id string) *Loop + func (r *Registry) GetByName(name string) *Loop + func (r *Registry) Launch(ctx context.Context, launch Launch, deps Deps) (LaunchResult, error) + func (r *Registry) List() []*Loop + func (r *Registry) MaxLoops() int + func (r *Registry) NotifyLoop(ctx context.Context, id string, env messages.Envelope) (NotifyReceipt, error) + func (r *Registry) NotifyLoopByName(ctx context.Context, name string, env messages.Envelope) (NotifyReceipt, error) + func (r *Registry) Register(l *Loop) error + func (r *Registry) ShutdownAll(ctx context.Context) int + func (r *Registry) SpawnLoop(ctx context.Context, cfg Config, deps Deps) (string, error) + func (r *Registry) SpawnSpec(ctx context.Context, spec Spec, deps Deps) (string, error) + func (r *Registry) Statuses() []Status + func (r *Registry) StopLoop(id string) error + func (r *Registry) StopLoopByName(name string) error + type RegistryOption func(*Registry) + func WithMaxLoops(n int) RegistryOption + func WithRegistryLogger(l *slog.Logger) RegistryOption + type Request struct + AllowedTools []string + ChannelBinding *memory.ChannelBinding + ConversationID string + ExcludeTools []string + FallbackContent string + Hints map[string]string + InitialTags []string + MaxIterations int + MaxOutputTokens int + Messages []Message + Model string + OnProgress func(kind string, data map[string]any) + PromptMode agentctx.PromptMode + RuntimeTools []RuntimeTool + SkipContext bool + SkipTagFilter bool + SuppressAlwaysContext bool + SystemPrompt string + ToolTimeout time.Duration + UsageRole string + UsageTaskName string + type Response struct + ActiveTags []string + CacheCreationInputTokens int + CacheReadInputTokens int + Content string + ContextWindow int + EffectiveTools []string + Exhausted bool + FinishReason string + InputTokens int + Iterations int + LoadedCapabilities []toolcatalog.LoadedCapabilityEntry + Model string + OutputTokens int + RequestID string + ToolsUsed map[string]int + type RetriggerMode int + const RetriggerQueue + const RetriggerRestart + const RetriggerSingle + const RetriggerSpawn + func ParseRetriggerMode(raw string) (RetriggerMode, error) + func (m *RetriggerMode) UnmarshalText(text []byte) error + func (m RetriggerMode) MarshalText() ([]byte, error) + func (m RetriggerMode) String() string + type RunMessage = Message + type RunRequest = Request + type RunResponse = Response + type Runner interface + Run func(ctx context.Context, req Request, stream StreamCallback) (*Response, error) + type RuntimeTool struct + ContentResolveExempt []string + Description string + Handler func(ctx context.Context, args map[string]any) (string, error) + Name string + Parameters map[string]any + SkipContentResolve bool + type ScheduleCondition struct + Timezone string + Windows []ScheduleWindow + func (s *ScheduleCondition) Evaluate(now time.Time) DefinitionEligibilityStatus + func (s *ScheduleCondition) Validate() error + type ScheduleWindow struct + Days []string + End string + Start string + func (w ScheduleWindow) Validate() error + type Spec struct + Completion Completion + Conditions Conditions + Enabled bool + ExcludeTools []string + FallbackContent string + Handler func(ctx context.Context, event any) error + Hints map[string]string + Jitter *float64 + MaxDuration time.Duration + MaxIter int + Metadata map[string]string + Name string + OnRetrigger RetriggerMode + Operation Operation + OutputContextBuilder OutputContextBuilder + Outputs []OutputSpec + ParentID string + PostIterate func(ctx context.Context, result IterationResult) error + Profile router.LoopProfile + QualityFloor int + RuntimeTools []RuntimeTool + Setup func(l *Loop) + SleepDefault time.Duration + SleepMax time.Duration + SleepMin time.Duration + Supervisor bool + SupervisorContext string + SupervisorProb float64 + SupervisorQualityFloor int + Tags []string + Task string + TaskBuilder func(ctx context.Context, isSupervisor bool) (string, error) + WaitFunc func(ctx context.Context) (any, error) + func (s *Spec) EffectiveConfig() Config + func (s *Spec) ToConfig() Config + func (s *Spec) UnmarshalJSON(data []byte) error + func (s *Spec) Validate() error + func (s *Spec) ValidatePersistable() error + func (s Spec) MarshalJSON() ([]byte, error) + type State string + const StateError + const StatePending + const StateProcessing + const StateSleeping + const StateStopped + const StateWaiting + type Status struct + ActiveTags []string + Attempts int + Config Config + ConsecutiveErrors int + ContextWindow int + EventDriven bool + HandlerOnly bool + ID string + Iterations int + LLMContext map[string]any + LastError string + LastInputTokens int + LastOutputTokens int + LastSupervisorIter int + LastWakeAt time.Time + Name string + ParentID string + RecentConvIDs []string + RecentIterations []IterationSnapshot + StartedAt time.Time + State State + Tooling ToolingState + TotalInputTokens int + TotalOutputTokens int + type StreamCallback func(event any) + type ToolingState struct + ConfiguredTags []string + EffectiveTools []string + ExcludedTools []string + LoadedCapabilities []toolcatalog.LoadedCapabilityEntry + LoadedTags []string + ToolsUsed map[string]int + func BuildToolingState(configuredTags, loadedTags, effectiveTools, excludedTools []string, ...) ToolingState + type UnknownDefinitionError struct + Name string + func (e *UnknownDefinitionError) Error() string