Documentation
¶
Index ¶
- Constants
- Variables
- func EventRecordID(runID, eventType string, at int64) string
- func ExpandToolAllowlistEntries(entries []string) []string
- func IsTerminalRuntimeStatus(status string) bool
- func MapBoolArg(args map[string]interface{}, key string) (bool, bool)
- func MapIntArg(args map[string]interface{}, key string, fallback int) int
- func MapObjectArg(args map[string]interface{}, key string) map[string]interface{}
- func MapRawStringArg(args map[string]interface{}, key string) string
- func MapStringArg(args map[string]interface{}, key string) string
- func MapStringListArg(args map[string]interface{}, key string) []string
- func RecordSubagentExecutionStats(ctx context.Context, delta SubagentExecutionStats)
- func SubagentIterationBudget(ctx context.Context) (int, bool)
- func ToolToSchema(tool Tool) map[string]interface{}
- func WithSubagentExecutionStats(ctx context.Context, stats *SubagentExecutionStats) context.Context
- func WithSubagentIterationBudget(ctx context.Context, budget int) context.Context
- type AgentMailboxStore
- func (s *AgentMailboxStore) AppendMessage(msg AgentMessage) (AgentMessage, error)
- func (s *AgentMailboxStore) EnsureThread(thread AgentThread) (AgentThread, error)
- func (s *AgentMailboxStore) Inbox(agentID string, limit int) ([]AgentMessage, error)
- func (s *AgentMailboxStore) Message(messageID string) (*AgentMessage, bool)
- func (s *AgentMailboxStore) MessagesByThread(threadID string, limit int) ([]AgentMessage, error)
- func (s *AgentMailboxStore) Thread(threadID string) (*AgentThread, bool)
- func (s *AgentMailboxStore) ThreadInbox(threadID, agentID string, limit int) ([]AgentMessage, error)
- func (s *AgentMailboxStore) UpdateMessageStatus(messageID, status string, at int64) (*AgentMessage, error)
- type AgentMessage
- type AgentThread
- type ArtifactRecord
- type BootstrapOptions
- type BootstrapResult
- type BrowserTool
- type CameraTool
- type CatalogTool
- type CronTool
- type DispatchDecision
- type EditFileTool
- type EventRecord
- type ExecTool
- type ExecutionRun
- type FunctionCall
- type LLMProvider
- type LLMResponse
- type ListDirTool
- type MCPRemoteTool
- func (t *MCPRemoteTool) CatalogEntry() map[string]interface{}
- func (t *MCPRemoteTool) Description() string
- func (t *MCPRemoteTool) Execute(ctx context.Context, args map[string]interface{}) (string, error)
- func (t *MCPRemoteTool) Name() string
- func (t *MCPRemoteTool) Parameters() map[string]interface{}
- type MCPTool
- type MemoryGetTool
- type MemorySearchTool
- type MemoryWriteTool
- type Message
- type MessageTool
- func (t *MessageTool) Description() string
- func (t *MessageTool) Execute(ctx context.Context, args map[string]interface{}) (string, error)
- func (t *MessageTool) Name() string
- func (t *MessageTool) Parameters() map[string]interface{}
- func (t *MessageTool) SetContext(channel, chatID string)
- func (t *MessageTool) SetSendCallback(callback SendCallback)
- type ParallelFetchTool
- type ParallelSafeTool
- type ParallelTool
- type ProcessEvent
- type ProcessManager
- func (m *ProcessManager) Get(id string) (*processSession, bool)
- func (m *ProcessManager) Kill(id string) error
- func (m *ProcessManager) List() []map[string]interface{}
- func (m *ProcessManager) Log(id string, offset, limit int) (string, error)
- func (m *ProcessManager) Start(parent context.Context, command, cwd string) (string, error)
- func (m *ProcessManager) SubscribeEvents(buffer int) <-chan ProcessEvent
- type ProcessTool
- type ReadFileTool
- type RemindTool
- type RequestRecord
- type ResourceScopedTool
- type RouterDispatchRequest
- type RouterReply
- type RunRecord
- type RuntimeError
- type RuntimeSnapshot
- type SendCallback
- type SessionHistoryFunc
- type SessionInfo
- type SessionListFunc
- type SessionSearchTool
- func (t *SessionSearchTool) Description() string
- func (t *SessionSearchTool) Execute(ctx context.Context, args map[string]interface{}) (string, error)
- func (t *SessionSearchTool) Name() string
- func (t *SessionSearchTool) ParallelSafe() bool
- func (t *SessionSearchTool) Parameters() map[string]interface{}
- type SessionsTool
- type SkillExecTool
- type SpawnTool
- type SubagentExecutionStats
- type SubagentManager
- func (sm *SubagentManager) Events(runID string, limit int) ([]SubagentRunEvent, error)
- func (sm *SubagentManager) Inbox(agentID string, limit int) ([]AgentMessage, error)
- func (sm *SubagentManager) Message(messageID string) (*AgentMessage, bool)
- func (sm *SubagentManager) NextRunSequence() int
- func (sm *SubagentManager) ProfileStore() *SubagentProfileStore
- func (sm *SubagentManager) RuntimeSnapshot(limit int) RuntimeSnapshot
- func (sm *SubagentManager) SetRunFunc(f SubagentRunFunc)
- func (sm *SubagentManager) Spawn(ctx context.Context, opts SubagentSpawnOptions) (string, error)
- func (sm *SubagentManager) SpawnRun(ctx context.Context, opts SubagentSpawnOptions) (*SubagentRun, error)
- func (sm *SubagentManager) Thread(threadID string) (*AgentThread, bool)
- func (sm *SubagentManager) ThreadMessages(threadID string, limit int) ([]AgentMessage, error)
- type SubagentProfile
- type SubagentProfileStore
- func (s *SubagentProfileStore) Delete(agentID string) error
- func (s *SubagentProfileStore) FindByRole(role string) (*SubagentProfile, bool, error)
- func (s *SubagentProfileStore) Get(agentID string) (*SubagentProfile, bool, error)
- func (s *SubagentProfileStore) List() ([]SubagentProfile, error)
- func (s *SubagentProfileStore) Upsert(profile SubagentProfile) (*SubagentProfile, error)
- type SubagentProfileTool
- type SubagentRouter
- type SubagentRun
- type SubagentRunEvent
- type SubagentRunFunc
- type SubagentRunStore
- func (s *SubagentRunStore) AppendEvent(evt SubagentRunEvent) error
- func (s *SubagentRunStore) AppendRun(run *SubagentRun) error
- func (s *SubagentRunStore) Events(runID string, limit int) ([]SubagentRunEvent, error)
- func (s *SubagentRunStore) Get(runID string) (*SubagentRun, bool)
- func (s *SubagentRunStore) List() []*SubagentRun
- func (s *SubagentRunStore) NextIDSeed() int
- type SubagentSpawnOptions
- type SystemInfoTool
- type ThreadRecord
- type Tool
- type ToolAllowlistGroup
- type ToolCall
- type ToolDefinition
- type ToolFunctionDefinition
- type ToolRegistry
- func (r *ToolRegistry) Catalog() []map[string]interface{}
- func (r *ToolRegistry) Count() int
- func (r *ToolRegistry) Execute(ctx context.Context, name string, args map[string]interface{}) (string, error)
- func (r *ToolRegistry) Get(name string) (Tool, bool)
- func (r *ToolRegistry) GetDefinitions() []map[string]interface{}
- func (r *ToolRegistry) GetSummaries() []string
- func (r *ToolRegistry) List() []string
- func (r *ToolRegistry) Register(tool Tool)
- type UsageInfo
- type WebFetchTool
- type WebSearchTool
- type WriteFileTool
Constants ¶
const ( RuntimeStatusPending = "pending" RuntimeStatusRouting = "routing" RuntimeStatusRunning = "running" RuntimeStatusWaiting = "waiting" RuntimeStatusCompleted = "completed" RuntimeStatusFailed = "failed" RuntimeStatusCancelled = "cancelled" RuntimeStatusRecovered = "recovered" )
Variables ¶
var ( ErrUnsupportedAction = errors.New("unsupported action") ErrMissingField = errors.New("missing required field") )
Functions ¶
func EventRecordID ¶ added in v0.0.3
func IsTerminalRuntimeStatus ¶ added in v0.0.3
func MapBoolArg ¶ added in v0.0.3
func MapObjectArg ¶ added in v0.0.3
func MapRawStringArg ¶ added in v0.0.3
func MapStringArg ¶ added in v0.0.3
func MapStringListArg ¶ added in v0.0.3
func RecordSubagentExecutionStats ¶ added in v1.1.0
func RecordSubagentExecutionStats(ctx context.Context, delta SubagentExecutionStats)
func SubagentIterationBudget ¶ added in v1.1.0
func ToolToSchema ¶
func WithSubagentExecutionStats ¶ added in v1.1.0
func WithSubagentExecutionStats(ctx context.Context, stats *SubagentExecutionStats) context.Context
Types ¶
type AgentMailboxStore ¶
type AgentMailboxStore struct {
// contains filtered or unexported fields
}
func NewAgentMailboxStore ¶
func NewAgentMailboxStore(workspace string) *AgentMailboxStore
func (*AgentMailboxStore) AppendMessage ¶
func (s *AgentMailboxStore) AppendMessage(msg AgentMessage) (AgentMessage, error)
func (*AgentMailboxStore) EnsureThread ¶
func (s *AgentMailboxStore) EnsureThread(thread AgentThread) (AgentThread, error)
func (*AgentMailboxStore) Inbox ¶
func (s *AgentMailboxStore) Inbox(agentID string, limit int) ([]AgentMessage, error)
func (*AgentMailboxStore) Message ¶
func (s *AgentMailboxStore) Message(messageID string) (*AgentMessage, bool)
func (*AgentMailboxStore) MessagesByThread ¶
func (s *AgentMailboxStore) MessagesByThread(threadID string, limit int) ([]AgentMessage, error)
func (*AgentMailboxStore) Thread ¶
func (s *AgentMailboxStore) Thread(threadID string) (*AgentThread, bool)
func (*AgentMailboxStore) ThreadInbox ¶
func (s *AgentMailboxStore) ThreadInbox(threadID, agentID string, limit int) ([]AgentMessage, error)
func (*AgentMailboxStore) UpdateMessageStatus ¶
func (s *AgentMailboxStore) UpdateMessageStatus(messageID, status string, at int64) (*AgentMessage, error)
type AgentMessage ¶
type AgentMessage struct {
MessageID string `json:"message_id"`
ThreadID string `json:"thread_id"`
FromAgent string `json:"from_agent"`
ToAgent string `json:"to_agent"`
ReplyTo string `json:"reply_to,omitempty"`
CorrelationID string `json:"correlation_id,omitempty"`
Type string `json:"type"`
Content string `json:"content"`
RequiresReply bool `json:"requires_reply,omitempty"`
Status string `json:"status"`
CreatedAt int64 `json:"created_at"`
}
type AgentThread ¶
type ArtifactRecord ¶ added in v0.0.3
type ArtifactRecord struct {
ID string `json:"id,omitempty"`
RunID string `json:"run_id,omitempty"`
RequestID string `json:"request_id,omitempty"`
ThreadID string `json:"thread_id,omitempty"`
Kind string `json:"kind,omitempty"`
Name string `json:"name,omitempty"`
Content string `json:"content,omitempty"`
AgentID string `json:"agent_id,omitempty"`
FromAgent string `json:"from_agent,omitempty"`
ToAgent string `json:"to_agent,omitempty"`
ReplyTo string `json:"reply_to,omitempty"`
CorrelationID string `json:"correlation_id,omitempty"`
Status string `json:"status,omitempty"`
RequiresReply bool `json:"requires_reply,omitempty"`
CreatedAt int64 `json:"created_at"`
Visible bool `json:"visible"`
SourceType string `json:"source_type,omitempty"`
}
type BootstrapOptions ¶ added in v1.2.1
type BootstrapOptions struct {
Config *config.Config
Workspace string
MessageBus *bus.MessageBus
CronService *cron.CronService
Provider providers.LLMProvider
ProcessManager *ProcessManager
SessionManager *session.SessionManager
SessionList SessionListFunc
SessionHistory SessionHistoryFunc
}
type BootstrapResult ¶ added in v1.2.1
type BootstrapResult struct {
Registry *ToolRegistry
ProcessManager *ProcessManager
SubagentManager *SubagentManager
SubagentRouter *SubagentRouter
}
func BootstrapDefaultTools ¶ added in v1.2.1
func BootstrapDefaultTools(ctx context.Context, opts BootstrapOptions) (*BootstrapResult, error)
type BrowserTool ¶
type BrowserTool struct {
// contains filtered or unexported fields
}
func NewBrowserTool ¶
func NewBrowserTool() *BrowserTool
func (*BrowserTool) Description ¶
func (t *BrowserTool) Description() string
func (*BrowserTool) Name ¶
func (t *BrowserTool) Name() string
func (*BrowserTool) Parameters ¶
func (t *BrowserTool) Parameters() map[string]interface{}
type CameraTool ¶
type CameraTool struct {
// contains filtered or unexported fields
}
func NewCameraTool ¶
func NewCameraTool(workspace string) *CameraTool
func (*CameraTool) Description ¶
func (t *CameraTool) Description() string
func (*CameraTool) Name ¶
func (t *CameraTool) Name() string
func (*CameraTool) Parameters ¶
func (t *CameraTool) Parameters() map[string]interface{}
type CatalogTool ¶
type CatalogTool interface {
CatalogEntry() map[string]interface{}
}
type CronTool ¶
type CronTool struct {
// contains filtered or unexported fields
}
func NewCronTool ¶
func NewCronTool(cs *cron.CronService) *CronTool
func (*CronTool) Description ¶
func (*CronTool) Parameters ¶
type DispatchDecision ¶ added in v0.0.3
type DispatchDecision struct {
TargetAgent string `json:"target_agent,omitempty"`
Reason string `json:"reason,omitempty"`
Confidence float64 `json:"confidence,omitempty"`
TaskText string `json:"task_text,omitempty"`
RouteSource string `json:"route_source,omitempty"`
}
func (DispatchDecision) Valid ¶ added in v0.0.3
func (d DispatchDecision) Valid() bool
type EditFileTool ¶
type EditFileTool struct {
// contains filtered or unexported fields
}
EditFileTool edits a file by replacing old_text with new_text. The old_text must exist exactly in the file.
func NewEditFileTool ¶
func NewEditFileTool(allowedDir string) *EditFileTool
func (*EditFileTool) Description ¶
func (t *EditFileTool) Description() string
func (*EditFileTool) Name ¶
func (t *EditFileTool) Name() string
func (*EditFileTool) Parameters ¶
func (t *EditFileTool) Parameters() map[string]interface{}
type EventRecord ¶ added in v0.0.3
type EventRecord struct {
ID string `json:"id,omitempty"`
RunID string `json:"run_id,omitempty"`
RequestID string `json:"request_id,omitempty"`
AgentID string `json:"agent_id,omitempty"`
Type string `json:"type"`
Status string `json:"status,omitempty"`
FailureCode string `json:"failure_code,omitempty"`
Message string `json:"message,omitempty"`
RetryCount int `json:"retry_count,omitempty"`
Error *RuntimeError `json:"error,omitempty"`
At int64 `json:"ts"`
}
type ExecTool ¶
type ExecTool struct {
// contains filtered or unexported fields
}
func NewExecTool ¶
func NewExecTool(cfg config.ShellConfig, workspace string, pm *ProcessManager) *ExecTool
func (*ExecTool) Description ¶
func (*ExecTool) Parameters ¶
func (*ExecTool) SetTimeout ¶
type ExecutionRun ¶ added in v0.0.3
type ExecutionRun struct {
Run RunRecord `json:"run"`
Request RequestRecord `json:"request"`
Decision DispatchDecision `json:"decision,omitempty"`
}
type FunctionCall ¶
type LLMProvider ¶
type LLMProvider interface {
Chat(ctx context.Context, messages []Message, tools []ToolDefinition, model string, options map[string]interface{}) (*LLMResponse, error)
GetDefaultModel() string
}
type LLMResponse ¶
type ListDirTool ¶
type ListDirTool struct {
// contains filtered or unexported fields
}
ListDirTool lists files and directories in a path.
func NewListDirTool ¶
func NewListDirTool(allowedDir string) *ListDirTool
func (*ListDirTool) Description ¶
func (t *ListDirTool) Description() string
func (*ListDirTool) Name ¶
func (t *ListDirTool) Name() string
func (*ListDirTool) Parameters ¶
func (t *ListDirTool) Parameters() map[string]interface{}
type MCPRemoteTool ¶
type MCPRemoteTool struct {
// contains filtered or unexported fields
}
func (*MCPRemoteTool) CatalogEntry ¶
func (t *MCPRemoteTool) CatalogEntry() map[string]interface{}
func (*MCPRemoteTool) Description ¶
func (t *MCPRemoteTool) Description() string
func (*MCPRemoteTool) Name ¶
func (t *MCPRemoteTool) Name() string
func (*MCPRemoteTool) Parameters ¶
func (t *MCPRemoteTool) Parameters() map[string]interface{}
type MCPTool ¶
type MCPTool struct {
// contains filtered or unexported fields
}
func NewMCPTool ¶
func NewMCPTool(workspace string, cfg config.MCPToolsConfig) *MCPTool
func (*MCPTool) Description ¶
func (*MCPTool) Parameters ¶
type MemoryGetTool ¶
type MemoryGetTool struct {
// contains filtered or unexported fields
}
func NewMemoryGetTool ¶
func NewMemoryGetTool(workspace string) *MemoryGetTool
func (*MemoryGetTool) Description ¶
func (t *MemoryGetTool) Description() string
func (*MemoryGetTool) Name ¶
func (t *MemoryGetTool) Name() string
func (*MemoryGetTool) Parameters ¶
func (t *MemoryGetTool) Parameters() map[string]interface{}
type MemorySearchTool ¶
type MemorySearchTool struct {
// contains filtered or unexported fields
}
func NewMemorySearchTool ¶
func NewMemorySearchTool(workspace string) *MemorySearchTool
func (*MemorySearchTool) Description ¶
func (t *MemorySearchTool) Description() string
func (*MemorySearchTool) Name ¶
func (t *MemorySearchTool) Name() string
func (*MemorySearchTool) Parameters ¶
func (t *MemorySearchTool) Parameters() map[string]interface{}
type MemoryWriteTool ¶
type MemoryWriteTool struct {
// contains filtered or unexported fields
}
func NewMemoryWriteTool ¶
func NewMemoryWriteTool(workspace string) *MemoryWriteTool
func (*MemoryWriteTool) Description ¶
func (t *MemoryWriteTool) Description() string
func (*MemoryWriteTool) Name ¶
func (t *MemoryWriteTool) Name() string
func (*MemoryWriteTool) Parameters ¶
func (t *MemoryWriteTool) Parameters() map[string]interface{}
type MessageTool ¶
type MessageTool struct {
// contains filtered or unexported fields
}
func NewMessageTool ¶
func NewMessageTool() *MessageTool
func (*MessageTool) Description ¶
func (t *MessageTool) Description() string
func (*MessageTool) Name ¶
func (t *MessageTool) Name() string
func (*MessageTool) Parameters ¶
func (t *MessageTool) Parameters() map[string]interface{}
func (*MessageTool) SetContext ¶
func (t *MessageTool) SetContext(channel, chatID string)
func (*MessageTool) SetSendCallback ¶
func (t *MessageTool) SetSendCallback(callback SendCallback)
type ParallelFetchTool ¶
type ParallelFetchTool struct {
// contains filtered or unexported fields
}
func NewParallelFetchTool ¶
func NewParallelFetchTool(fetcher *WebFetchTool, maxParallelCalls int, parallelSafe map[string]struct{}) *ParallelFetchTool
func (*ParallelFetchTool) Description ¶
func (t *ParallelFetchTool) Description() string
func (*ParallelFetchTool) Name ¶
func (t *ParallelFetchTool) Name() string
func (*ParallelFetchTool) Parameters ¶
func (t *ParallelFetchTool) Parameters() map[string]interface{}
type ParallelSafeTool ¶
type ParallelSafeTool interface {
ParallelSafe() bool
}
ParallelSafeTool is an optional capability interface. If implemented by a tool, AgentLoop should trust this declaration over name-based whitelist when deciding parallel execution safety.
type ParallelTool ¶
type ParallelTool struct {
// contains filtered or unexported fields
}
func NewParallelTool ¶
func NewParallelTool(registry *ToolRegistry, maxParallelCalls int, parallelSafe map[string]struct{}) *ParallelTool
func (*ParallelTool) Description ¶
func (t *ParallelTool) Description() string
func (*ParallelTool) Name ¶
func (t *ParallelTool) Name() string
func (*ParallelTool) Parameters ¶
func (t *ParallelTool) Parameters() map[string]interface{}
type ProcessEvent ¶
type ProcessEvent struct {
Type string `json:"type"`
SessionID string `json:"session_id"`
Command string `json:"command,omitempty"`
At time.Time `json:"at"`
ExitCode *int `json:"exit_code,omitempty"`
}
ProcessEvent is a typed lifecycle event for process sessions.
type ProcessManager ¶
type ProcessManager struct {
// contains filtered or unexported fields
}
func NewProcessManager ¶
func NewProcessManager(workspace string) *ProcessManager
func (*ProcessManager) Get ¶
func (m *ProcessManager) Get(id string) (*processSession, bool)
func (*ProcessManager) Kill ¶
func (m *ProcessManager) Kill(id string) error
func (*ProcessManager) List ¶
func (m *ProcessManager) List() []map[string]interface{}
func (*ProcessManager) Log ¶
func (m *ProcessManager) Log(id string, offset, limit int) (string, error)
func (*ProcessManager) SubscribeEvents ¶
func (m *ProcessManager) SubscribeEvents(buffer int) <-chan ProcessEvent
type ProcessTool ¶
type ProcessTool struct {
// contains filtered or unexported fields
}
func NewProcessTool ¶
func NewProcessTool(m *ProcessManager) *ProcessTool
func (*ProcessTool) Description ¶
func (t *ProcessTool) Description() string
func (*ProcessTool) Name ¶
func (t *ProcessTool) Name() string
func (*ProcessTool) Parameters ¶
func (t *ProcessTool) Parameters() map[string]interface{}
type ReadFileTool ¶
type ReadFileTool struct {
// contains filtered or unexported fields
}
ReadFileTool reads the contents of a file.
func NewReadFileTool ¶
func NewReadFileTool(allowedDir string) *ReadFileTool
func (*ReadFileTool) Description ¶
func (t *ReadFileTool) Description() string
func (*ReadFileTool) Name ¶
func (t *ReadFileTool) Name() string
func (*ReadFileTool) Parameters ¶
func (t *ReadFileTool) Parameters() map[string]interface{}
type RemindTool ¶
type RemindTool struct {
// contains filtered or unexported fields
}
func NewRemindTool ¶
func NewRemindTool(cs *cron.CronService) *RemindTool
func (*RemindTool) Description ¶
func (t *RemindTool) Description() string
func (*RemindTool) Name ¶
func (t *RemindTool) Name() string
func (*RemindTool) Parameters ¶
func (t *RemindTool) Parameters() map[string]interface{}
func (*RemindTool) SetContext ¶
func (t *RemindTool) SetContext(channel, chatID string)
type RequestRecord ¶ added in v1.0.0
type RequestRecord struct {
ID string `json:"id"`
ThreadID string `json:"thread_id,omitempty"`
CorrelationID string `json:"correlation_id,omitempty"`
OwnerAgentID string `json:"owner_agent_id,omitempty"`
Status string `json:"status"`
Input string `json:"input,omitempty"`
OriginChannel string `json:"origin_channel,omitempty"`
OriginChatID string `json:"origin_chat_id,omitempty"`
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"`
}
type ResourceScopedTool ¶
ResourceScopedTool is an optional capability interface. If implemented by a tool, AgentLoop can avoid running calls that touch the same resource keys in parallel.
type RouterDispatchRequest ¶
type RouterDispatchRequest struct {
Task string
Label string
Role string
AgentID string
Decision *DispatchDecision
NotifyMainPolicy string
ThreadID string
CorrelationID string
ParentRunID string
OriginChannel string
OriginChatID string
MaxRetries int
RetryBackoff int
TimeoutSec int
MaxTaskChars int
MaxResultChars int
}
type RouterReply ¶
type RunRecord ¶ added in v0.0.3
type RunRecord struct {
ID string `json:"id"`
RequestID string `json:"request_id,omitempty"`
ThreadID string `json:"thread_id,omitempty"`
CorrelationID string `json:"correlation_id,omitempty"`
AgentID string `json:"agent_id,omitempty"`
ParentRunID string `json:"parent_run_id,omitempty"`
Kind string `json:"kind,omitempty"`
Status string `json:"status"`
Input string `json:"input,omitempty"`
Output string `json:"output,omitempty"`
Error *RuntimeError `json:"error,omitempty"`
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"`
}
type RuntimeError ¶ added in v0.0.3
type RuntimeError struct {
Code string `json:"code,omitempty"`
Message string `json:"message,omitempty"`
Stage string `json:"stage,omitempty"`
Retryable bool `json:"retryable,omitempty"`
Source string `json:"source,omitempty"`
}
func NewRuntimeError ¶ added in v0.0.3
func NewRuntimeError(code, message, stage string, retryable bool, source string) *RuntimeError
type RuntimeSnapshot ¶ added in v0.0.3
type RuntimeSnapshot struct {
Requests []RequestRecord `json:"requests,omitempty"`
Runs []RunRecord `json:"runs,omitempty"`
Events []EventRecord `json:"events,omitempty"`
Threads []ThreadRecord `json:"threads,omitempty"`
Artifacts []ArtifactRecord `json:"artifacts,omitempty"`
}
type SendCallback ¶
type SessionHistoryFunc ¶ added in v1.2.1
type SessionInfo ¶
type SessionListFunc ¶ added in v1.2.1
type SessionListFunc func(limit int) []SessionInfo
type SessionSearchTool ¶ added in v1.1.0
type SessionSearchTool struct {
// contains filtered or unexported fields
}
func NewSessionSearchTool ¶ added in v1.1.0
func NewSessionSearchTool(manager *session.SessionManager) *SessionSearchTool
func (*SessionSearchTool) Description ¶ added in v1.1.0
func (t *SessionSearchTool) Description() string
func (*SessionSearchTool) Name ¶ added in v1.1.0
func (t *SessionSearchTool) Name() string
func (*SessionSearchTool) ParallelSafe ¶ added in v1.1.0
func (t *SessionSearchTool) ParallelSafe() bool
func (*SessionSearchTool) Parameters ¶ added in v1.1.0
func (t *SessionSearchTool) Parameters() map[string]interface{}
type SessionsTool ¶
type SessionsTool struct {
// contains filtered or unexported fields
}
func NewSessionsTool ¶
func NewSessionsTool(listFn func(limit int) []SessionInfo, historyFn func(key string, limit int) []providers.Message) *SessionsTool
func (*SessionsTool) Description ¶
func (t *SessionsTool) Description() string
func (*SessionsTool) Name ¶
func (t *SessionsTool) Name() string
func (*SessionsTool) Parameters ¶
func (t *SessionsTool) Parameters() map[string]interface{}
type SkillExecTool ¶
type SkillExecTool struct {
// contains filtered or unexported fields
}
func NewSkillExecTool ¶
func NewSkillExecTool(workspace string) *SkillExecTool
func (*SkillExecTool) Description ¶
func (t *SkillExecTool) Description() string
func (*SkillExecTool) Name ¶
func (t *SkillExecTool) Name() string
func (*SkillExecTool) Parameters ¶
func (t *SkillExecTool) Parameters() map[string]interface{}
type SpawnTool ¶
type SpawnTool struct {
// contains filtered or unexported fields
}
func NewSpawnTool ¶
func NewSpawnTool(manager *SubagentManager) *SpawnTool
func (*SpawnTool) Description ¶
func (*SpawnTool) Parameters ¶
func (*SpawnTool) SetContext ¶
type SubagentExecutionStats ¶ added in v1.1.0
type SubagentManager ¶
type SubagentManager struct {
// contains filtered or unexported fields
}
func NewSubagentManager ¶
func NewSubagentManager(provider providers.LLMProvider, workspace string, bus *bus.MessageBus) *SubagentManager
func (*SubagentManager) Events ¶
func (sm *SubagentManager) Events(runID string, limit int) ([]SubagentRunEvent, error)
func (*SubagentManager) Inbox ¶
func (sm *SubagentManager) Inbox(agentID string, limit int) ([]AgentMessage, error)
func (*SubagentManager) Message ¶
func (sm *SubagentManager) Message(messageID string) (*AgentMessage, bool)
func (*SubagentManager) NextRunSequence ¶ added in v1.0.0
func (sm *SubagentManager) NextRunSequence() int
func (*SubagentManager) ProfileStore ¶
func (sm *SubagentManager) ProfileStore() *SubagentProfileStore
func (*SubagentManager) RuntimeSnapshot ¶ added in v0.0.3
func (sm *SubagentManager) RuntimeSnapshot(limit int) RuntimeSnapshot
func (*SubagentManager) SetRunFunc ¶
func (sm *SubagentManager) SetRunFunc(f SubagentRunFunc)
func (*SubagentManager) Spawn ¶
func (sm *SubagentManager) Spawn(ctx context.Context, opts SubagentSpawnOptions) (string, error)
func (*SubagentManager) SpawnRun ¶ added in v1.0.0
func (sm *SubagentManager) SpawnRun(ctx context.Context, opts SubagentSpawnOptions) (*SubagentRun, error)
func (*SubagentManager) Thread ¶
func (sm *SubagentManager) Thread(threadID string) (*AgentThread, bool)
func (*SubagentManager) ThreadMessages ¶
func (sm *SubagentManager) ThreadMessages(threadID string, limit int) ([]AgentMessage, error)
type SubagentProfile ¶
type SubagentProfile struct {
AgentID string `json:"agent_id"`
Name string `json:"name"`
Transport string `json:"transport,omitempty"`
ParentAgentID string `json:"parent_agent_id,omitempty"`
NotifyMainPolicy string `json:"notify_main_policy,omitempty"`
Role string `json:"role,omitempty"`
SystemPromptFile string `json:"system_prompt_file,omitempty"`
ToolAllowlist []string `json:"tool_allowlist,omitempty"`
MemoryNamespace string `json:"memory_namespace,omitempty"`
MaxRetries int `json:"max_retries,omitempty"`
RetryBackoff int `json:"retry_backoff_ms,omitempty"`
TimeoutSec int `json:"timeout_sec,omitempty"`
MaxToolIterations int `json:"max_tool_iterations,omitempty"`
MaxTaskChars int `json:"max_task_chars,omitempty"`
MaxResultChars int `json:"max_result_chars,omitempty"`
Status string `json:"status"`
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"`
ManagedBy string `json:"managed_by,omitempty"`
}
type SubagentProfileStore ¶
type SubagentProfileStore struct {
// contains filtered or unexported fields
}
func NewSubagentProfileStore ¶
func NewSubagentProfileStore(workspace string) *SubagentProfileStore
func (*SubagentProfileStore) Delete ¶
func (s *SubagentProfileStore) Delete(agentID string) error
func (*SubagentProfileStore) FindByRole ¶
func (s *SubagentProfileStore) FindByRole(role string) (*SubagentProfile, bool, error)
func (*SubagentProfileStore) Get ¶
func (s *SubagentProfileStore) Get(agentID string) (*SubagentProfile, bool, error)
func (*SubagentProfileStore) List ¶
func (s *SubagentProfileStore) List() ([]SubagentProfile, error)
func (*SubagentProfileStore) Upsert ¶
func (s *SubagentProfileStore) Upsert(profile SubagentProfile) (*SubagentProfile, error)
type SubagentProfileTool ¶
type SubagentProfileTool struct {
// contains filtered or unexported fields
}
func NewSubagentProfileTool ¶
func NewSubagentProfileTool(store *SubagentProfileStore) *SubagentProfileTool
func (*SubagentProfileTool) Description ¶
func (t *SubagentProfileTool) Description() string
func (*SubagentProfileTool) Name ¶
func (t *SubagentProfileTool) Name() string
func (*SubagentProfileTool) Parameters ¶
func (t *SubagentProfileTool) Parameters() map[string]interface{}
type SubagentRouter ¶
type SubagentRouter struct {
// contains filtered or unexported fields
}
func NewSubagentRouter ¶
func NewSubagentRouter(manager *SubagentManager) *SubagentRouter
func (*SubagentRouter) DispatchRun ¶ added in v1.0.0
func (r *SubagentRouter) DispatchRun(ctx context.Context, req RouterDispatchRequest) (*SubagentRun, error)
func (*SubagentRouter) MergeResults ¶
func (r *SubagentRouter) MergeResults(replies []*RouterReply) string
func (*SubagentRouter) WaitRun ¶ added in v1.0.0
func (r *SubagentRouter) WaitRun(ctx context.Context, runID string, interval time.Duration) (*RouterReply, error)
type SubagentRun ¶ added in v1.0.0
type SubagentRun struct {
ID string `json:"id"`
Task string `json:"task"`
Label string `json:"label"`
Role string `json:"role"`
AgentID string `json:"agent_id"`
Transport string `json:"transport,omitempty"`
ParentAgentID string `json:"parent_agent_id,omitempty"`
NotifyMainPolicy string `json:"notify_main_policy,omitempty"`
SessionKey string `json:"session_key"`
MemoryNS string `json:"memory_ns"`
SystemPromptFile string `json:"system_prompt_file,omitempty"`
ToolAllowlist []string `json:"tool_allowlist,omitempty"`
MaxRetries int `json:"max_retries,omitempty"`
RetryBackoff int `json:"retry_backoff,omitempty"`
TimeoutSec int `json:"timeout_sec,omitempty"`
MaxToolIterations int `json:"max_tool_iterations,omitempty"`
MaxTaskChars int `json:"max_task_chars,omitempty"`
MaxResultChars int `json:"max_result_chars,omitempty"`
RetryCount int `json:"retry_count,omitempty"`
IterationCount int `json:"iteration_count,omitempty"`
AttemptCount int `json:"attempt_count,omitempty"`
RestartCount int `json:"restart_count,omitempty"`
PromptTokens int `json:"prompt_tokens,omitempty"`
CompletionTokens int `json:"completion_tokens,omitempty"`
TotalTokens int `json:"total_tokens,omitempty"`
LastFailureCode string `json:"last_failure_code,omitempty"`
ThreadID string `json:"thread_id,omitempty"`
CorrelationID string `json:"correlation_id,omitempty"`
ParentRunID string `json:"parent_run_id,omitempty"`
LastMessageID string `json:"last_message_id,omitempty"`
WaitingReply bool `json:"waiting_for_reply,omitempty"`
OriginChannel string `json:"origin_channel,omitempty"`
OriginChatID string `json:"origin_chat_id,omitempty"`
Status string `json:"status"`
Result string `json:"result,omitempty"`
Steering []string `json:"steering,omitempty"`
Created int64 `json:"created"`
Updated int64 `json:"updated"`
}
type SubagentRunEvent ¶
type SubagentRunEvent struct {
RunID string `json:"run_id"`
AgentID string `json:"agent_id,omitempty"`
Type string `json:"type"`
Status string `json:"status,omitempty"`
FailureCode string `json:"failure_code,omitempty"`
Message string `json:"message,omitempty"`
RetryCount int `json:"retry_count,omitempty"`
At int64 `json:"ts"`
}
type SubagentRunFunc ¶
type SubagentRunFunc func(ctx context.Context, run *SubagentRun) (string, error)
type SubagentRunStore ¶
type SubagentRunStore struct {
// contains filtered or unexported fields
}
func NewSubagentRunStore ¶
func NewSubagentRunStore(workspace string) *SubagentRunStore
func (*SubagentRunStore) AppendEvent ¶
func (s *SubagentRunStore) AppendEvent(evt SubagentRunEvent) error
func (*SubagentRunStore) AppendRun ¶
func (s *SubagentRunStore) AppendRun(run *SubagentRun) error
func (*SubagentRunStore) Events ¶
func (s *SubagentRunStore) Events(runID string, limit int) ([]SubagentRunEvent, error)
func (*SubagentRunStore) Get ¶
func (s *SubagentRunStore) Get(runID string) (*SubagentRun, bool)
func (*SubagentRunStore) List ¶
func (s *SubagentRunStore) List() []*SubagentRun
func (*SubagentRunStore) NextIDSeed ¶
func (s *SubagentRunStore) NextIDSeed() int
type SubagentSpawnOptions ¶
type SubagentSpawnOptions struct {
Task string
Label string
Role string
AgentID string
NotifyMainPolicy string
MaxRetries int
RetryBackoff int
TimeoutSec int
MaxToolIterations int
MaxTaskChars int
MaxResultChars int
OriginChannel string
OriginChatID string
ThreadID string
CorrelationID string
ParentRunID string
}
type SystemInfoTool ¶
type SystemInfoTool struct{}
func NewSystemInfoTool ¶
func NewSystemInfoTool() *SystemInfoTool
func (*SystemInfoTool) Description ¶
func (t *SystemInfoTool) Description() string
func (*SystemInfoTool) Name ¶
func (t *SystemInfoTool) Name() string
func (*SystemInfoTool) Parameters ¶
func (t *SystemInfoTool) Parameters() map[string]interface{}
type ThreadRecord ¶ added in v0.0.3
type ToolAllowlistGroup ¶
type ToolAllowlistGroup struct {
Name string `json:"name"`
Description string `json:"description"`
Aliases []string `json:"aliases,omitempty"`
Tools []string `json:"tools"`
}
func ToolAllowlistGroups ¶
func ToolAllowlistGroups() []ToolAllowlistGroup
type ToolCall ¶
type ToolCall struct {
ID string `json:"id"`
Type string `json:"type"`
Function *FunctionCall `json:"function,omitempty"`
Name string `json:"name,omitempty"`
Arguments map[string]interface{} `json:"arguments,omitempty"`
}
type ToolDefinition ¶
type ToolDefinition struct {
Type string `json:"type"`
Function ToolFunctionDefinition `json:"function"`
}
type ToolFunctionDefinition ¶
type ToolRegistry ¶
type ToolRegistry struct {
// contains filtered or unexported fields
}
func NewToolRegistry ¶
func NewToolRegistry() *ToolRegistry
func (*ToolRegistry) Catalog ¶
func (r *ToolRegistry) Catalog() []map[string]interface{}
func (*ToolRegistry) Count ¶
func (r *ToolRegistry) Count() int
Count returns the number of registered tools.
func (*ToolRegistry) GetDefinitions ¶
func (r *ToolRegistry) GetDefinitions() []map[string]interface{}
func (*ToolRegistry) GetSummaries ¶
func (r *ToolRegistry) GetSummaries() []string
GetSummaries returns human-readable summaries of all registered tools. Returns a slice of "name - description" strings.
func (*ToolRegistry) List ¶
func (r *ToolRegistry) List() []string
List returns a list of all registered tool names.
func (*ToolRegistry) Register ¶
func (r *ToolRegistry) Register(tool Tool)
type WebFetchTool ¶
type WebFetchTool struct {
// contains filtered or unexported fields
}
func NewWebFetchTool ¶
func NewWebFetchTool(maxChars int) *WebFetchTool
func (*WebFetchTool) Description ¶
func (t *WebFetchTool) Description() string
func (*WebFetchTool) Name ¶
func (t *WebFetchTool) Name() string
func (*WebFetchTool) ParallelSafe ¶
func (t *WebFetchTool) ParallelSafe() bool
func (*WebFetchTool) Parameters ¶
func (t *WebFetchTool) Parameters() map[string]interface{}
type WebSearchTool ¶
type WebSearchTool struct {
// contains filtered or unexported fields
}
func NewWebSearchTool ¶
func NewWebSearchTool(apiKey string, maxResults int) *WebSearchTool
func (*WebSearchTool) Description ¶
func (t *WebSearchTool) Description() string
func (*WebSearchTool) Name ¶
func (t *WebSearchTool) Name() string
func (*WebSearchTool) Parameters ¶
func (t *WebSearchTool) Parameters() map[string]interface{}
type WriteFileTool ¶
type WriteFileTool struct {
// contains filtered or unexported fields
}
WriteFileTool writes content to a file.
func NewWriteFileTool ¶
func NewWriteFileTool(allowedDir string) *WriteFileTool
func (*WriteFileTool) Description ¶
func (t *WriteFileTool) Description() string
func (*WriteFileTool) Name ¶
func (t *WriteFileTool) Name() string
func (*WriteFileTool) Parameters ¶
func (t *WriteFileTool) Parameters() map[string]interface{}
Source Files
¶
- arg_helpers.go
- base.go
- bootstrap.go
- bootstrap_options.go
- browser.go
- camera.go
- cron_tool.go
- errors.go
- filesystem.go
- mcp.go
- memory.go
- memory_get.go
- memory_namespace.go
- memory_write.go
- message.go
- parallel.go
- parallel_fetch.go
- process_manager.go
- process_tool.go
- registry.go
- remind.go
- runtime_types.go
- session_search.go
- sessions_tool.go
- shell.go
- skill_exec.go
- spawn.go
- subagent.go
- subagent_mailbox.go
- subagent_profile.go
- subagent_router.go
- subagent_runtime_context.go
- subagent_store.go
- system.go
- system_disk_unix.go
- tool_allowlist_groups.go
- tracked_output.go
- types.go
- web.go