Versions in this module Expand all Collapse all v0 v0.2.0 Nov 1, 2026 Changes in this version + var ErrConversationNotFound = errors.New("conversation not found") + var ErrConversationNotOpen = errors.New("conversation is not open") + var ErrConversationReconfigured = errors.New("conversation reconfigured") + var ErrNoModelConfigured = errors.New("no model is configured; run openvaala to set up a model provider") + var ErrRuntimeStopped = errors.New("runtime has stopped") + var ErrSessionNotFound = errors.New("session not found") + var ErrSubscriberTooSlow = errors.New("subscriber is too slow") + type AgentInfo struct + DefaultModel defs.ModelRef + Description string + Name string + type CompactContextRequest struct + ConversationID defs.ConversationID + type ContextUsage struct + Source ContextUsageSource + Tokens int + Window int + type ContextUsageSource string + const ContextUsageSourceActual + const ContextUsageSourceEstimated + const ContextUsageSourceUnknown + type ConversationEvent interface + type ConversationSubscription struct + Events <-chan ConversationEvent + Sessions []SessionRuntimeInfo + Title string + func (s *ConversationSubscription) GetCloseReason() error + type ConversationTitleChanged struct + Title string + type CreateConversationRequest struct + AgentName string + Environment []string + Ephemeral bool + ExecutorSettings defs.ExecutorSettings + Model defs.ModelSelection + type Definitions struct + Agents []*agent.AgentDefinition + Executors []*defs.ExecutorDefinition + Hooks []*hook.HookDefinition + MCPServers []*mcpclient.ServerDefinition + Models []*defs.ModelDefinition + Skills []*skill.Skill + type DeleteConversationRequest struct + ConversationID defs.ConversationID + type ForkConversationRequest struct + BeforeTurnID defs.TurnID + ConversationID defs.ConversationID + Environment []string + ExecutorSettings defs.ExecutorSettings + LastTurnID defs.TurnID + Model defs.ModelSelection + type GetConversationRequest struct + ConversationID defs.ConversationID + type GetSessionByIDRequest struct + SessionID defs.SessionID + type GetSessionContextUsageRequest struct + ConversationID defs.ConversationID + SessionID defs.SessionID + type GetSessionDetailsRequest struct + ConversationID defs.ConversationID + SessionID defs.SessionID + type GetSkillsRequest struct + AgentName string + ConversationID defs.ConversationID + ExecutorSettings defs.ExecutorSettings + type GetTurnsRequest struct + ConversationID defs.ConversationID + SessionID defs.SessionID + TurnIDs []defs.TurnID + type GetWorkspaceDirectoriesRequest struct + BaseDirectory string + Directory string + ExecutorID string + type InterruptTurnRequest struct + ConversationID defs.ConversationID + type InterruptTurnWithInputRequest struct + ConversationID defs.ConversationID + ItemID defs.ItemID + TurnID defs.TurnID + type LastRequestUsage struct + EstimatedTokens int + Model defs.ModelRef + ModelCallID defs.ModelCallID + Usage defs.TokenUsage + type ListItemsRequest struct + ConversationID defs.ConversationID + Cursor storage.Ordinal + Limit int + Order storage.Direction + SessionID defs.SessionID + type ListModelsRequest struct + AgentName string + type ListTurnsRequest struct + ConversationID defs.ConversationID + Cursor dao.RecordCursor[defs.TurnID] + Limit int + Order storage.Order + SessionID defs.SessionID + type ModelList struct + AgentDefaultModel defs.ModelRef + Models []*defs.ModelDefinition + type OpenConversationRequest struct + ConversationID defs.ConversationID + Environment []string + type OpenTerminalWorkspaceRequest struct + Directory string + Environment []string + ExecutorID string + type ResolveWorkspaceDirectoryRequest struct + BaseDirectory string + Directory string + ExecutorID string + type RunningConversations struct + ConversationIDs []defs.ConversationID + type RunningConversationsSubscription struct + Events <-chan RunningConversations + Initial RunningConversations + func (s *RunningConversationsSubscription) GetCloseReason() error + type Runtime interface + CompactContext func(ctx context.Context, request *CompactContextRequest) (defs.TurnID, error) + CreateConversation func(ctx context.Context, request *CreateConversationRequest) (defs.Conversation, error) + DeleteConversation func(ctx context.Context, request *DeleteConversationRequest) error + ForkConversation func(ctx context.Context, request *ForkConversationRequest) (defs.Conversation, error) + GetConversation func(ctx context.Context, request *GetConversationRequest) (defs.Conversation, error) + GetHooks func(ctx context.Context) ([]*hook.HookInfo, error) + GetMCPServers func(ctx context.Context, request *GetConversationRequest) ([]conversation.MCPServerInfo, error) + GetSessionByID func(ctx context.Context, request *GetSessionByIDRequest) (defs.Session, error) + GetSessionContextUsage func(ctx context.Context, request *GetSessionContextUsageRequest) (SessionContextUsage, error) + GetSessionDetails func(ctx context.Context, request *GetSessionDetailsRequest) (conversation.SessionDetails, error) + GetSkills func(ctx context.Context, request *GetSkillsRequest) ([]skill.SkillInfo, error) + GetTurns func(ctx context.Context, request *GetTurnsRequest) ([]defs.Turn, error) + GetWorkspaceDirectories func(ctx context.Context, request *GetWorkspaceDirectoriesRequest) (directories *conversation.WorkspaceDirectories, err error) + InterruptTurn func(ctx context.Context, request *InterruptTurnRequest) (defs.TurnID, error) + InterruptTurnWithInput func(ctx context.Context, request *InterruptTurnWithInputRequest) error + IsConversationOpen func(ctx context.Context, request *GetConversationRequest) (bool, error) + IsIdle func(ctx context.Context) (bool, error) + ListAgents func(ctx context.Context) ([]AgentInfo, error) + ListConversations func(ctx context.Context, request *dao.ListConversationsRequest) (storage.Page[dao.ConversationListEntry, dao.RecordCursor[defs.ConversationID]], ...) + ListExecutors func(ctx context.Context) ([]conversation.ExecutorDetails, error) + ListItems func(ctx context.Context, request *ListItemsRequest) (storage.Page[dao.LoggedItem, storage.Ordinal], error) + ListModels func(ctx context.Context, request *ListModelsRequest) (ModelList, error) + ListSessions func(ctx context.Context, request *dao.ListSessionsRequest) (storage.Page[defs.Session, dao.RecordCursor[defs.SessionID]], error) + ListTurns func(ctx context.Context, request *ListTurnsRequest) (storage.Page[defs.Turn, dao.RecordCursor[defs.TurnID]], error) + OpenConversation func(ctx context.Context, request *OpenConversationRequest) (defs.Conversation, error) + OpenTerminalWorkspace func(ctx context.Context, request *OpenTerminalWorkspaceRequest) (*TerminalWorkspace, error) + ResolveWorkspaceDirectory func(ctx context.Context, request *ResolveWorkspaceDirectoryRequest) (string, error) + Run func(ctx context.Context) error + SetClientMCPServers func(ctx context.Context, request *SetClientMCPServersRequest) error + SetConversationArchived func(ctx context.Context, request *SetConversationArchivedRequest) (defs.Conversation, error) + SetConversationExecutorSettings func(ctx context.Context, request *SetConversationExecutorSettingsRequest) (defs.Conversation, error) + SetConversationTitle func(ctx context.Context, request *SetConversationTitleRequest) error + SetDefinitions func(ctx context.Context, request *Definitions) (SetDefinitionsResult, error) + SetSessionModel func(ctx context.Context, request *SetSessionModelRequest) (defs.Session, error) + SteerInput func(ctx context.Context, request *SteerInputRequest) error + SubmitInput func(ctx context.Context, request *SubmitInputRequest) (defs.ItemID, error) + SubscribeConversation func(ctx context.Context, request *SubscribeConversationRequest) (*ConversationSubscription, error) + SubscribeRunningConversations func(ctx context.Context) (subscription *RunningConversationsSubscription, err error) + SubscribeSession func(ctx context.Context, request *SubscribeSessionRequest) (*SessionSubscription, error) + WithdrawInput func(ctx context.Context, request *WithdrawInputRequest) ([]*defs.Item, error) + func NewRuntime(opt *RuntimeOpt) (Runtime, error) + type RuntimeOpt struct + Definitions *Definitions + Logs storage.LogStorage + MaxImageBytes int + Records storage.RecordStorage + Telemetry *telemetry.Telemetry + UnsavedConversationIdleTimeout time.Duration + func NewRuntimeOpt(records storage.RecordStorage, logs storage.LogStorage, ...) *RuntimeOpt + func (opt *RuntimeOpt) WithUnsavedConversationIdleTimeout(timeout time.Duration) *RuntimeOpt + type SessionContextUsage struct + Items []agent_context.ItemTokens + LastRequest *LastRequestUsage + NextRequest ContextUsage + SystemTokens int + ThresholdTokens int + ToolTokens int + Window int + type SessionRuntimeInfo struct + ActiveTurnID defs.TurnID + ActiveTurnModel defs.ModelSelection + Context ContextUsage + LastTurnID defs.TurnID + LastTurnStatus defs.TurnStatus + Session defs.Session + State session.SessionState + Usage defs.TokenUsage + type SessionSubscription struct + Events <-chan conversation.ConversationEvent + LastSavedOrdinal storage.Ordinal + PendingInputs session.SessionPendingInputs + StreamingItems []StreamingItem + func (s *SessionSubscription) GetCloseReason() error + type SetClientMCPServersRequest struct + ClientID string + ConversationID defs.ConversationID + Servers []conversation.ClientMCPServer + type SetConversationArchivedRequest struct + Archived bool + ConversationID defs.ConversationID + type SetConversationExecutorSettingsRequest struct + ConversationID defs.ConversationID + ExecutorSettings defs.ExecutorSettings + type SetConversationTitleRequest struct + ConversationID defs.ConversationID + Title string + type SetDefinitionsResult struct + BusyConversationIDs []defs.ConversationID + type SetSessionModelRequest struct + ConversationID defs.ConversationID + Model defs.ModelSelection + SessionID defs.SessionID + type SteerInputRequest struct + ConversationID defs.ConversationID + ItemID defs.ItemID + TurnID defs.TurnID + type StreamingItem struct + Item *defs.Item + ItemIndex int + type SubmitInputRequest struct + Content []*defs.Content + ConversationID defs.ConversationID + From *defs.Address + InputID defs.InputID + Mode session.SessionInputMode + type SubscribeConversationRequest struct + ConversationID defs.ConversationID + type SubscribeSessionRequest struct + ConversationID defs.ConversationID + SessionID defs.SessionID + type TerminalWorkspace struct + Directory string + ExecutorID string + Workspace workspace.Workspace + type WithdrawInputRequest struct + ConversationID defs.ConversationID + ItemID defs.ItemID