Versions in this module Expand all Collapse all v0 v0.5.13 Aug 13, 2026 v0.5.12 Aug 13, 2026 v0.5.11 Aug 12, 2026retracted v0.5.10 Aug 13, 2026retracted Changes in this version + const EventVersionV1 + var ErrBudgetExceeded = errors.New("runtime budget exceeded") + var ErrNilStream = errors.New("runtime: provider returned nil stream") + var ErrNoDurable = errors.New("runtime: no DurableExecution configured") + var ErrNoFallback = errors.New("runtime: no fallback provider") + var ErrNoProvider = errors.New("runtime: no provider selected") + var ErrNoSnapshot = errors.New("runtime: no snapshot to resume") + var ErrUnsafeReplay = errors.New(...) + func Retryable(err error) bool + func UnsafeNotDone(pending []PendingTool, doneIDs map[string]bool) bool + type Config struct + DefaultMaxTurns int + Durable DurableExecution + Middleware []Middleware + ProviderSelector ProviderSelector + ToolExecutor ToolExecutor + type DefaultRunner struct + func NewRunner(cfg Config) *DefaultRunner + func (r *DefaultRunner) Resume(ctx context.Context, runID string, req Request, sink EventSink) (*Result, error) + func (r *DefaultRunner) Run(ctx context.Context, req Request) (*Result, error) + func (r *DefaultRunner) RunWithSink(ctx context.Context, req Request, sink EventSink) (*Result, error) + func (r *DefaultRunner) Stream(ctx context.Context, req Request, sink EventSink) (*Result, error) + type DurableExecution interface + Load func(ctx context.Context, runID string) (Snapshot, bool, error) + Save func(ctx context.Context, snap Snapshot) error + func NewDurableExecution(cp checkpoint.Checkpointer) DurableExecution + type Error struct + Kind ErrorKind + Message string + Retryable bool + func NewError(kind ErrorKind, message string, cause error, retryable bool) *Error + func ToolError(toolName string, cause error) *Error + func (e *Error) Error() string + func (e *Error) Unwrap() error + type ErrorKind string + const KindBudget + const KindCanceled + const KindPermission + const KindProvider + const KindTimeout + const KindToolFailure + const KindUnknown + const KindUnsafeReplay + func Classify(err error) ErrorKind + type Event struct + Chunk *llm.StreamChunk + Error error + Metadata map[string]any + ParentSpanID string + Payload any + Redaction Redaction + RequestID string + Response *llm.CompletionResponse + RunID string + RuntimeError *RuntimeError + Sequence int64 + SessionID string + SpanID string + State *State + StateSummary StateSummary + Timestamp time.Time + ToolCall *llm.ToolCall + ToolResult *ToolResult + TraceID string + Turn int + Type EventType + Version string + func NewHeartbeatEvent() Event + func NewJobDoneEvent(jobID string) Event + func NewJobFailedEvent(jobID string, err error) Event + func NewJobPreviewEvent(jobID string, preview any) Event + func NewJobProgressEvent(jobID string, percent float64, message string) Event + func NewJobQueuedEvent(jobID string) Event + func NewJobRunningEvent(jobID string) Event + type EventSink interface + Emit func(ctx context.Context, event Event) error + type EventSinkFunc func(ctx context.Context, event Event) error + func (f EventSinkFunc) Emit(ctx context.Context, event Event) error + type EventType string + const EventBudgetChecked + const EventBudgetExceeded + const EventCheckpointSaved + const EventContextCompacted + const EventHeartbeat + const EventJobDone + const EventJobFailed + const EventJobPreview + const EventJobProgress + const EventJobQueued + const EventJobRunning + const EventLLMChunk + const EventLLMCompleted + const EventLLMStarted + const EventPermissionApproved + const EventPermissionDenied + const EventPermissionRequested + const EventProviderFallback + const EventProviderSelected + const EventReasoningSanitized + const EventRunFailed + const EventRunFinished + const EventRunStarted + const EventToolCallCompleted + const EventToolCallFailed + const EventToolCallStarted + type JobProgress struct + JobID string + Message string + Percent float64 + Preview any + Stage string + type Limits struct + MaxTurns int + type Memory interface + Save func(ctx context.Context, entry MemoryEntry) error + Search func(ctx context.Context, query string, limit int) ([]MemoryEntry, error) + type MemoryEntry struct + Content string + Role string + type Middleware interface + AfterLLM func(ctx context.Context, state *State, resp *llm.CompletionResponse) error + AfterTool func(ctx context.Context, state *State, call llm.ToolCall, result ToolResult) error + BeforeLLM func(ctx context.Context, state *State) error + BeforeTool func(ctx context.Context, state *State, call llm.ToolCall) error + Finalize func(ctx context.Context, state *State) error + type MiddlewareFuncSet struct + AfterLLMFunc func(context.Context, *State, *llm.CompletionResponse) error + AfterToolFunc func(context.Context, *State, llm.ToolCall, ToolResult) error + BeforeLLMFunc func(context.Context, *State) error + BeforeToolFunc func(context.Context, *State, llm.ToolCall) error + FinalizeFunc func(context.Context, *State) error + func (m MiddlewareFuncSet) AfterLLM(ctx context.Context, s *State, r *llm.CompletionResponse) error + func (m MiddlewareFuncSet) AfterTool(ctx context.Context, s *State, c llm.ToolCall, r ToolResult) error + func (m MiddlewareFuncSet) BeforeLLM(ctx context.Context, s *State) error + func (m MiddlewareFuncSet) BeforeTool(ctx context.Context, s *State, c llm.ToolCall) error + func (m MiddlewareFuncSet) Finalize(ctx context.Context, s *State) error + type NoopStrategy struct + func (NoopStrategy) AfterLLM(context.Context, *State) error + func (NoopStrategy) BeforeTurn(context.Context, *State) error + func (NoopStrategy) BuildSystemPrefix(context.Context, Request) string + func (NoopStrategy) Finalize(context.Context, *State) error + func (NoopStrategy) Name() string + func (NoopStrategy) ShouldContinue(_ context.Context, state *State) bool + type PendingTool struct + Call llm.ToolCall + SideEffect ToolSideEffect + type Permission interface + CheckTool func(ctx context.Context, call llm.ToolCall) error + type Provider interface + Complete func(ctx context.Context, req llm.CompletionRequest) (*llm.CompletionResponse, error) + Name func() string + Stream func(ctx context.Context, req llm.CompletionRequest) (*llm.Stream, error) + type ProviderSelection struct + Model string + Name string + Provider Provider + type ProviderSelector interface + Fallback func(ctx context.Context, failed ProviderSelection, err error) (ProviderSelection, error) + Select func(ctx context.Context, req Request) (ProviderSelection, error) + type Redaction struct + Applied bool + Fields []string + type Request struct + ID string + Limits Limits + Messages []llm.Message + Metadata map[string]any + ModelName string + ProviderName string + Strategy Strategy + StreamMode StreamMode + Tools []llm.ToolDefinition + type Result struct + Blocks template.Blocks + Content string + Metadata map[string]any + Reasoning string + StopReason StopReason + ToolCalls []ToolCallRecord + Usage llm.Usage + type Runner interface + Run func(ctx context.Context, req Request) (*Result, error) + Stream func(ctx context.Context, req Request, sink EventSink) (*Result, error) + type RuntimeError struct + Cause string + Code string + Message string + func AsRuntimeError(err error) *RuntimeError + type SSEEventSink struct + Filter func(event Event) bool + func NewSSEEventSink(w http.ResponseWriter) (*SSEEventSink, error) + func (s *SSEEventSink) AsIOCloser() io.Closer + func (s *SSEEventSink) Close() + func (s *SSEEventSink) Emit(ctx context.Context, event Event) error + func (s *SSEEventSink) EmitRaw(ctx context.Context, eventName string, payload any) error + func (s *SSEEventSink) WriteComment(text string) error + type SessionLane struct + func NewSessionLane() *SessionLane + func (l *SessionLane) AcquireSession(ctx context.Context, sessionKey string) (lease.FencingToken, func(), error) + func (l *SessionLane) Do(sessionKey, requestID string, fn func() (*Result, error)) (*Result, error) + func (l *SessionLane) DoCtx(ctx context.Context, sessionKey, requestID string, fn func() (*Result, error)) (*Result, error) + func (l *SessionLane) Forget(requestID string) + func (l *SessionLane) SetDistributedLease(backend lease.Lease, ttl time.Duration) + type SideEffectClassifier interface + SideEffectOf func(call llm.ToolCall) ToolSideEffect + type Snapshot struct + Final bool + FinalText string + Messages []llm.Message + Pending []PendingTool + RunID string + Step int + ToolCalls []ToolCallRecord + Usage llm.Usage + func SnapshotState(state *State, runID string) Snapshot + func (s Snapshot) RestoreState() *State + type State struct + Attributes map[string]any + Final bool + FinalText string + Messages []llm.Message + Reasoning string + Request Request + ToolCalls []ToolCallRecord + Turn int + Usage llm.Usage + func (s *State) AddUsage(u llm.Usage) + func (s *State) Emit(ctx context.Context, event Event) error + func (s *State) Snapshot() *State + type StateSummary struct + Final bool + Messages int + ToolCalls int + Turn int + type StaticProviderSelector struct + Model string + Name string + Provider Provider + func (s StaticProviderSelector) Fallback(context.Context, ProviderSelection, error) (ProviderSelection, error) + func (s StaticProviderSelector) Select(context.Context, Request) (ProviderSelection, error) + type StopReason string + const StopReasonEndTurn + const StopReasonMaxTurns + type Strategy interface + AfterLLM func(ctx context.Context, state *State) error + BeforeTurn func(ctx context.Context, state *State) error + BuildSystemPrefix func(ctx context.Context, req Request) string + Finalize func(ctx context.Context, state *State) error + Name func() string + ShouldContinue func(ctx context.Context, state *State) bool + type StreamMode string + const StreamModeEvents + const StreamModeOff + const StreamModeTokens + type ToolCallRecord struct + Arguments string + ID string + Name string + Result ToolResult + type ToolExecutor interface + Execute func(ctx context.Context, call llm.ToolCall) (ToolResult, error) + type ToolResult struct + Content string + DurationMs int64 + Error string + Raw any + Status ToolStatus + type ToolSideEffect int + const SideEffectIdempotent + const SideEffectReadOnly + const SideEffectUnsafe + func (s ToolSideEffect) ReplaySafe() bool + type ToolStatus string + const ToolStatusError + const ToolStatusSuccess v0.5.9 Jul 11, 2026 v0.5.8 Jul 3, 2026 v0.5.7 Jun 28, 2026 v0.5.5 Jun 26, 2026 v0.5.4 Jun 25, 2026 v0.5.3 Jun 23, 2026 v0.5.2 Jun 22, 2026 v0.5.1 Jun 21, 2026 v0.5.0 Jun 19, 2026 v0.4.8 Jun 3, 2026 v0.4.7 Apr 30, 2026