Documentation
¶
Index ¶
- Constants
- func CloseAllBrowserSessions()
- func CloseBrowserSession(sessionID string)
- func DecodeToolInput(input string, target any) error
- func FormatJSONLikeContent(content string) string
- func FormatStructuredData(value any) string
- func GetContextValues(ctx context.Context) (string, string)
- func GetOrCreateBrowserSession(sessionID string) (*browserSession, error)
- func InitBrowserRegistry(cfg *config.InternalToolsConfig)
- func IsRemoteBrowserType(browserType string) bool
- func NormalizeBrowserType(value string) string
- func NormalizeJSONInput(input string) (string, error)
- func RegisterTodoCallback(sessionID string, cb func([]TodoItem))
- func ResetAllCaches()
- func ResetRegexCache()
- func TodoWriteSummary(todos []TodoItem, maxWidth int) string
- func UnregisterSessionCache(sessionID string)
- func UnregisterTodoCallbacks(sessionID string)
- type BaseTool
- func NewBashTool(permission permission.Service) BaseTool
- func NewBraveSearchTool(permissions permission.Service) BaseTool
- func NewCacheReadTool() BaseTool
- func NewCacheStatsTool() BaseTool
- func NewCodeDeleteProjectTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeFindReferencesTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeFindSymbolTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeGetProjectStatsTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeGetSymbolsOverviewTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeHybridSearchTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeIndexProjectTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeIndexStatusTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeListProjectsTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeReindexFileTool(indexer *code.CodeIndexer) BaseTool
- func NewCodeSearchPatternTool(indexer *code.CodeIndexer) BaseTool
- func NewContext7Tools() []BaseTool
- func NewDiagnosticsTool(lspClients map[string]*lsp.Client) BaseTool
- func NewEditTool(lspClients map[string]*lsp.Client, permissions permission.Service, ...) BaseTool
- func NewExaSearchTool(permissions permission.Service) BaseTool
- func NewFetchTool(permissions permission.Service) BaseTool
- func NewGlobTool() BaseTool
- func NewGoogleSearchTool(permissions permission.Service) BaseTool
- func NewGrepTool() BaseTool
- func NewHybridSearchRemembrancesTool(service *rag.RemembrancesService) BaseTool
- func NewKBAddDocumentTool(store *kb.KBStore) BaseTool
- func NewKBDeleteDocumentTool(store *kb.KBStore) BaseTool
- func NewKBGetDocumentTool(store *kb.KBStore) BaseTool
- func NewKBImportPathTool(store *kb.KBStore) BaseTool
- func NewKBSearchDocumentsTool(store *kb.KBStore) BaseTool
- func NewLsTool() BaseTool
- func NewLuaTools(manager *luaengine.FilterManager) []BaseTool
- func NewMesnadaCancelTaskTool(orch *orchestrator.Orchestrator) BaseTool
- func NewMesnadaGetOutputTool(orch *orchestrator.Orchestrator) BaseTool
- func NewMesnadaGetTaskTool(orch *orchestrator.Orchestrator) BaseTool
- func NewMesnadaListTasksTool(orch *orchestrator.Orchestrator) BaseTool
- func NewMesnadaSpawnTool(orch *orchestrator.Orchestrator) BaseTool
- func NewMesnadaWaitTaskTool(orch *orchestrator.Orchestrator) BaseTool
- func NewPatchTool(lspClients map[string]*lsp.Client, permissions permission.Service, ...) BaseTool
- func NewPerplexitySearchTool(permissions permission.Service) BaseTool
- func NewSaveEventTool(store *events.EventStore) BaseTool
- func NewSearchEventsTool(store *events.EventStore) BaseTool
- func NewSourcegraphTool() BaseTool
- func NewTodoWriteTool() BaseTool
- func NewViewTool(lspClients map[string]*lsp.Client) BaseTool
- func NewWriteTool(lspClients map[string]*lsp.Client, permissions permission.Service, ...) BaseTool
- type BashParams
- type BashPermissionsParams
- type BashResponseMetadata
- type BrowserClickTool
- type BrowserConsoleEntry
- type BrowserConsoleLogsTool
- type BrowserEvaluateParams
- type BrowserEvaluateTool
- type BrowserFillTool
- type BrowserGetContentParams
- type BrowserGetContentTool
- type BrowserInstall
- type BrowserNavigateParams
- type BrowserNavigateTool
- type BrowserNetworkEntry
- type BrowserNetworkTool
- type BrowserPDFTool
- type BrowserScreenshotParams
- type BrowserScreenshotTool
- type BrowserScrollTool
- type CacheEntry
- type CacheEntrySummary
- type CacheReadParams
- type CacheStats
- type CacheStatsResponse
- type CodeDeleteProjectTool
- type CodeFindReferencesTool
- type CodeFindSymbolTool
- type CodeGetProjectStatsTool
- type CodeGetSymbolsOverviewTool
- type CodeHybridSearchTool
- type CodeIndexProjectTool
- type CodeIndexStatusTool
- type CodeListProjectsTool
- type CodeReindexFileTool
- type CodeSearchPatternTool
- type DiagnosticsParams
- type EditParams
- type EditPermissionsParams
- type EditResponseMetadata
- type EditStrategy
- type FetchParams
- type FetchPermissionsParams
- type GlobParams
- type GlobResponseMetadata
- type GrepParams
- type GrepResponseMetadata
- type HybridSearchRemembrancesTool
- type KBAddDocumentTool
- type KBDeleteDocumentTool
- type KBGetDocumentTool
- type KBImportPathTool
- type KBSearchDocumentsTool
- type LSParams
- type LSResponseMetadata
- type LineScanner
- type MesnadaCancelTaskTool
- type MesnadaGetOutputTool
- type MesnadaGetTaskTool
- type MesnadaListTasksTool
- type MesnadaSpawnTool
- type MesnadaWaitTaskTool
- type PaginationInfo
- type PaginationMetadata
- type PatchParams
- type PatchResponseMetadata
- type SaveEventTool
- type SearchEventsTool
- type SessionCache
- func (c *SessionCache) Clear()
- func (c *SessionCache) Delete(cacheID string)
- func (c *SessionCache) Get(cacheID string) (*CacheEntry, bool)
- func (c *SessionCache) GetPage(cacheID string, offset, limit int) (string, PaginationMetadata, error)
- func (c *SessionCache) SearchInCache(cacheID, pattern string, contextLines, limit int) (string, PaginationMetadata, error)
- func (c *SessionCache) Stats() CacheStats
- func (c *SessionCache) Store(toolCallID, toolName, content string) string
- type SourcegraphParams
- type SourcegraphResponseMetadata
- type TodoItem
- type TodoWriteParams
- type ToolCall
- type ToolInfo
- type ToolResponse
- func InterceptToolResponse(cache *SessionCache, toolCallID string, toolName string, response ToolResponse) ToolResponse
- func NewStructuredResponse(value any) ToolResponse
- func NewTextErrorResponse(content string) ToolResponse
- func NewTextResponse(content string) ToolResponse
- func WithResponseMetadata(response ToolResponse, metadata any) ToolResponse
- type TreeNode
- type ViewParams
- type ViewResponseMetadata
- type WriteParams
- type WritePermissionsParams
- type WriteResponseMetadata
Constants ¶
const ( BashToolName = "bash" DefaultTimeout = 1 * 60 * 1000 // 1 minutes in milliseconds MaxTimeout = 10 * 60 * 1000 // 10 minutes in milliseconds MaxOutputLength = 30000 )
const ( DefaultCacheMaxBytes = 50 * 1024 * 1024 // 50MB per session DefaultCachePageLines = 200 // Default page size )
const ( // CacheThresholdBytes is the minimum response size to trigger auto-caching. CacheThresholdBytes = 15000 // CacheThresholdLines is the minimum line count to trigger auto-caching. CacheThresholdLines = 300 // CachePreviewLines is the number of lines shown inline when a response is cached. CachePreviewLines = 200 )
const ( Context7ResolveToolName = "c7_resolve_library_id" Context7DocsToolName = "c7_get_library_docs" )
const ( LSToolName = "ls" MaxLSFiles = 1000 )
const ( ToolResponseTypeText toolResponseType = "text" ToolResponseTypeImage toolResponseType = "image" SessionIDContextKey sessionIDContextKey = "session_id" MessageIDContextKey messageIDContextKey = "message_id" ACPClientConnContextKey acpClientConnContextKey = "acp_client_connection" SessionCacheContextKey sessionCacheContextKey = "session_cache" // RuntimeResolverContextKey is the hook point for injecting a non-host // RuntimeResolver in Phase 2 without changing existing execution paths. RuntimeResolverContextKey runtimeResolverContextKey = "runtime_resolver" WorkspaceFSContextKey workspaceFSContextKey = "workspace_fs" )
const ( ViewToolName = "view" MaxReadSize = 250 * 1024 LargeFileProbeSize = 4096 DefaultReadLimit = 2000 MaxLineLength = 2000 )
const (
BraveSearchToolName = "brave_search"
)
const (
BrowserEvaluateToolName = "browser_evaluate"
)
const (
BrowserGetContentToolName = "browser_get_content"
)
const (
)
const (
BrowserScreenshotToolName = "browser_screenshot"
)
const (
CacheReadToolName = "cache_read"
)
const (
CacheStatsToolName = "cache_stats"
)
const (
DiagnosticsToolName = "diagnostics"
)
const (
EditToolName = "edit"
)
const (
ExaSearchToolName = "exa_search"
)
const (
FetchToolName = "fetch"
)
const (
GlobToolName = "glob"
)
const (
GoogleSearchToolName = "google_search"
)
const (
GrepToolName = "grep"
)
const (
PatchToolName = "patch"
)
const (
PerplexitySearchToolName = "perplexity_search"
)
const (
SourcegraphToolName = "sourcegraph"
)
const TodoWriteToolName = "TodoWrite"
const (
WriteToolName = "write"
)
Variables ¶
This section is empty.
Functions ¶
func CloseAllBrowserSessions ¶ added in v0.30.0
func CloseAllBrowserSessions()
CloseAllBrowserSessions cancels all browser sessions. Call on app shutdown.
func CloseBrowserSession ¶ added in v0.30.0
func CloseBrowserSession(sessionID string)
CloseBrowserSession cancels and removes the browser session for the given pando sessionID.
func DecodeToolInput ¶ added in v0.310.0
DecodeToolInput normalizes malformed JSON generated by models and decodes it into the provided target structure.
func FormatJSONLikeContent ¶ added in v0.320.0
FormatJSONLikeContent attempts to interpret textual content as JSON and render it as TOML. If parsing or TOML conversion fails, the original content is returned unchanged.
func FormatStructuredData ¶ added in v0.320.0
FormatStructuredData renders structured values as TOML when possible and otherwise falls back to indented JSON.
func GetOrCreateBrowserSession ¶ added in v0.30.0
GetOrCreateBrowserSession returns the existing browser session for the given pando sessionID, or creates a new one if it doesn't exist.
func InitBrowserRegistry ¶ added in v0.30.0
func InitBrowserRegistry(cfg *config.InternalToolsConfig)
InitBrowserRegistry sets the config for the global browser registry. Must be called at app startup when BrowserEnabled=true.
func IsRemoteBrowserType ¶ added in v0.292.1
IsRemoteBrowserType returns true for browser types that act as CDP servers (launched separately and connected to via WebSocket) rather than local executables.
func NormalizeBrowserType ¶ added in v0.291.0
func NormalizeJSONInput ¶ added in v0.310.0
NormalizeJSONInput ensures tool input is valid JSON before decoding. Empty input is normalized to an empty object so tools with optional parameters can omit arguments safely.
func RegisterTodoCallback ¶ added in v0.257.0
RegisterTodoCallback registers a function to be called whenever the todo list for sessionID is updated. Multiple callbacks can be registered per session.
func ResetAllCaches ¶ added in v0.14.0
func ResetAllCaches()
ResetAllCaches clears all session-scoped caches (file locks and regex cache). Call this at the end of each session to prevent memory leaks.
func ResetRegexCache ¶ added in v0.14.0
func ResetRegexCache()
ResetRegexCache clears all cached regular expressions. Should be called at session end to prevent memory leaks.
func TodoWriteSummary ¶ added in v0.257.0
TodoWriteSummary returns a short single-line summary of the todo list, capped to maxWidth runes, suitable for TUI parameter display.
func UnregisterSessionCache ¶ added in v0.30.0
func UnregisterSessionCache(sessionID string)
UnregisterSessionCache removes and clears a session cache.
func UnregisterTodoCallbacks ¶ added in v0.257.0
func UnregisterTodoCallbacks(sessionID string)
UnregisterTodoCallbacks removes all callbacks registered for sessionID.
Types ¶
type BaseTool ¶
type BaseTool interface {
Info() ToolInfo
Run(ctx context.Context, params ToolCall) (ToolResponse, error)
}
func NewBashTool ¶
func NewBashTool(permission permission.Service) BaseTool
func NewBraveSearchTool ¶ added in v0.20.0
func NewBraveSearchTool(permissions permission.Service) BaseTool
func NewCacheReadTool ¶ added in v0.30.0
func NewCacheReadTool() BaseTool
NewCacheReadTool creates a new cache_read tool instance.
func NewCacheStatsTool ¶ added in v0.30.0
func NewCacheStatsTool() BaseTool
NewCacheStatsTool returns a tool that reports session cache statistics.
func NewCodeDeleteProjectTool ¶ added in v0.162.0
func NewCodeDeleteProjectTool(indexer *code.CodeIndexer) BaseTool
func NewCodeFindReferencesTool ¶ added in v0.320.0
func NewCodeFindReferencesTool(indexer *code.CodeIndexer) BaseTool
func NewCodeFindSymbolTool ¶ added in v0.7.0
func NewCodeFindSymbolTool(indexer *code.CodeIndexer) BaseTool
func NewCodeGetProjectStatsTool ¶ added in v0.7.0
func NewCodeGetProjectStatsTool(indexer *code.CodeIndexer) BaseTool
func NewCodeGetSymbolsOverviewTool ¶ added in v0.7.0
func NewCodeGetSymbolsOverviewTool(indexer *code.CodeIndexer) BaseTool
func NewCodeHybridSearchTool ¶ added in v0.7.0
func NewCodeHybridSearchTool(indexer *code.CodeIndexer) BaseTool
func NewCodeIndexProjectTool ¶ added in v0.7.0
func NewCodeIndexProjectTool(indexer *code.CodeIndexer) BaseTool
func NewCodeIndexStatusTool ¶ added in v0.7.0
func NewCodeIndexStatusTool(indexer *code.CodeIndexer) BaseTool
func NewCodeListProjectsTool ¶ added in v0.7.0
func NewCodeListProjectsTool(indexer *code.CodeIndexer) BaseTool
func NewCodeReindexFileTool ¶ added in v0.7.0
func NewCodeReindexFileTool(indexer *code.CodeIndexer) BaseTool
func NewCodeSearchPatternTool ¶ added in v0.7.0
func NewCodeSearchPatternTool(indexer *code.CodeIndexer) BaseTool
func NewContext7Tools ¶ added in v0.20.0
func NewContext7Tools() []BaseTool
NewContext7Tools returns both Context7 tools.
func NewEditTool ¶
func NewExaSearchTool ¶ added in v0.32.1
func NewExaSearchTool(permissions permission.Service) BaseTool
func NewFetchTool ¶
func NewFetchTool(permissions permission.Service) BaseTool
func NewGlobTool ¶
func NewGlobTool() BaseTool
func NewGoogleSearchTool ¶ added in v0.20.0
func NewGoogleSearchTool(permissions permission.Service) BaseTool
func NewGrepTool ¶
func NewGrepTool() BaseTool
func NewHybridSearchRemembrancesTool ¶ added in v0.210.0
func NewHybridSearchRemembrancesTool(service *rag.RemembrancesService) BaseTool
func NewKBAddDocumentTool ¶ added in v0.7.0
NewKBAddDocumentTool creates a new KBAddDocumentTool.
func NewKBDeleteDocumentTool ¶ added in v0.7.0
NewKBDeleteDocumentTool creates a new KBDeleteDocumentTool.
func NewKBGetDocumentTool ¶ added in v0.7.0
NewKBGetDocumentTool creates a new KBGetDocumentTool.
func NewKBImportPathTool ¶ added in v0.160.0
NewKBImportPathTool creates a new KBImportPathTool.
func NewKBSearchDocumentsTool ¶ added in v0.7.0
NewKBSearchDocumentsTool creates a new KBSearchDocumentsTool.
func NewLuaTools ¶ added in v0.410.1
func NewLuaTools(manager *luaengine.FilterManager) []BaseTool
func NewMesnadaCancelTaskTool ¶
func NewMesnadaCancelTaskTool(orch *orchestrator.Orchestrator) BaseTool
func NewMesnadaGetOutputTool ¶
func NewMesnadaGetOutputTool(orch *orchestrator.Orchestrator) BaseTool
func NewMesnadaGetTaskTool ¶
func NewMesnadaGetTaskTool(orch *orchestrator.Orchestrator) BaseTool
func NewMesnadaListTasksTool ¶
func NewMesnadaListTasksTool(orch *orchestrator.Orchestrator) BaseTool
func NewMesnadaSpawnTool ¶
func NewMesnadaSpawnTool(orch *orchestrator.Orchestrator) BaseTool
func NewMesnadaWaitTaskTool ¶
func NewMesnadaWaitTaskTool(orch *orchestrator.Orchestrator) BaseTool
func NewPatchTool ¶
func NewPerplexitySearchTool ¶ added in v0.20.0
func NewPerplexitySearchTool(permissions permission.Service) BaseTool
func NewSaveEventTool ¶ added in v0.7.0
func NewSaveEventTool(store *events.EventStore) BaseTool
NewSaveEventTool creates a new SaveEventTool.
func NewSearchEventsTool ¶ added in v0.7.0
func NewSearchEventsTool(store *events.EventStore) BaseTool
NewSearchEventsTool creates a new SearchEventsTool.
func NewSourcegraphTool ¶
func NewSourcegraphTool() BaseTool
func NewTodoWriteTool ¶ added in v0.257.0
func NewTodoWriteTool() BaseTool
NewTodoWriteTool creates a new TodoWrite tool instance.
func NewWriteTool ¶
type BashParams ¶
type BashPermissionsParams ¶
type BashResponseMetadata ¶
type BrowserClickTool ¶ added in v0.30.0
type BrowserClickTool struct{}
func NewBrowserClickTool ¶ added in v0.30.0
func NewBrowserClickTool() *BrowserClickTool
func (*BrowserClickTool) Info ¶ added in v0.30.0
func (t *BrowserClickTool) Info() ToolInfo
func (*BrowserClickTool) Run ¶ added in v0.30.0
func (t *BrowserClickTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserConsoleEntry ¶ added in v0.30.0
BrowserConsoleEntry holds a single JS console message captured during a browser session.
type BrowserConsoleLogsTool ¶ added in v0.30.0
type BrowserConsoleLogsTool struct{}
func NewBrowserConsoleLogsTool ¶ added in v0.30.0
func NewBrowserConsoleLogsTool() *BrowserConsoleLogsTool
func (*BrowserConsoleLogsTool) Info ¶ added in v0.30.0
func (t *BrowserConsoleLogsTool) Info() ToolInfo
func (*BrowserConsoleLogsTool) Run ¶ added in v0.30.0
func (t *BrowserConsoleLogsTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserEvaluateParams ¶ added in v0.30.0
type BrowserEvaluateParams struct {
Expression string `json:"expression"`
}
type BrowserEvaluateTool ¶ added in v0.30.0
type BrowserEvaluateTool struct{}
func NewBrowserEvaluateTool ¶ added in v0.30.0
func NewBrowserEvaluateTool() *BrowserEvaluateTool
func (*BrowserEvaluateTool) Info ¶ added in v0.30.0
func (t *BrowserEvaluateTool) Info() ToolInfo
func (*BrowserEvaluateTool) Run ¶ added in v0.30.0
func (t *BrowserEvaluateTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserFillTool ¶ added in v0.30.0
type BrowserFillTool struct{}
func NewBrowserFillTool ¶ added in v0.30.0
func NewBrowserFillTool() *BrowserFillTool
func (*BrowserFillTool) Info ¶ added in v0.30.0
func (t *BrowserFillTool) Info() ToolInfo
func (*BrowserFillTool) Run ¶ added in v0.30.0
func (t *BrowserFillTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserGetContentParams ¶ added in v0.30.0
type BrowserGetContentTool ¶ added in v0.30.0
type BrowserGetContentTool struct{}
func NewBrowserGetContentTool ¶ added in v0.30.0
func NewBrowserGetContentTool() *BrowserGetContentTool
func (*BrowserGetContentTool) Info ¶ added in v0.30.0
func (t *BrowserGetContentTool) Info() ToolInfo
func (*BrowserGetContentTool) Run ¶ added in v0.30.0
func (t *BrowserGetContentTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserInstall ¶ added in v0.291.0
type BrowserInstall struct {
Type string `json:"type"`
Label string `json:"label"`
Executable string `json:"executable"`
UserDataDir string `json:"userDataDir,omitempty"`
ProfileDir string `json:"profileDir,omitempty"`
}
func DetectInstalledBrowsers ¶ added in v0.291.0
func DetectInstalledBrowsers() []BrowserInstall
func ResolveBrowserInstall ¶ added in v0.291.0
func ResolveBrowserInstall(browserType, executable string) (BrowserInstall, bool)
type BrowserNavigateParams ¶ added in v0.30.0
type BrowserNavigateParams struct {
}
type BrowserNavigateTool ¶ added in v0.30.0
type BrowserNavigateTool struct{}
func NewBrowserNavigateTool ¶ added in v0.30.0
func NewBrowserNavigateTool() *BrowserNavigateTool
func (*BrowserNavigateTool) Info ¶ added in v0.30.0
func (t *BrowserNavigateTool) Info() ToolInfo
func (*BrowserNavigateTool) Run ¶ added in v0.30.0
func (t *BrowserNavigateTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserNetworkEntry ¶ added in v0.30.0
type BrowserNetworkEntry struct {
RequestID string
URL string
Method string
Status int
MimeType string
Time time.Time
}
BrowserNetworkEntry holds metadata for a single network request captured during a browser session.
type BrowserNetworkTool ¶ added in v0.30.0
type BrowserNetworkTool struct{}
func NewBrowserNetworkTool ¶ added in v0.30.0
func NewBrowserNetworkTool() *BrowserNetworkTool
func (*BrowserNetworkTool) Info ¶ added in v0.30.0
func (t *BrowserNetworkTool) Info() ToolInfo
func (*BrowserNetworkTool) Run ¶ added in v0.30.0
func (t *BrowserNetworkTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserPDFTool ¶ added in v0.30.0
type BrowserPDFTool struct{}
func NewBrowserPDFTool ¶ added in v0.30.0
func NewBrowserPDFTool() *BrowserPDFTool
func (*BrowserPDFTool) Info ¶ added in v0.30.0
func (t *BrowserPDFTool) Info() ToolInfo
func (*BrowserPDFTool) Run ¶ added in v0.30.0
func (t *BrowserPDFTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserScreenshotParams ¶ added in v0.30.0
type BrowserScreenshotTool ¶ added in v0.30.0
type BrowserScreenshotTool struct{}
func NewBrowserScreenshotTool ¶ added in v0.30.0
func NewBrowserScreenshotTool() *BrowserScreenshotTool
func (*BrowserScreenshotTool) Info ¶ added in v0.30.0
func (t *BrowserScreenshotTool) Info() ToolInfo
func (*BrowserScreenshotTool) Run ¶ added in v0.30.0
func (t *BrowserScreenshotTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type BrowserScrollTool ¶ added in v0.30.0
type BrowserScrollTool struct{}
func NewBrowserScrollTool ¶ added in v0.30.0
func NewBrowserScrollTool() *BrowserScrollTool
func (*BrowserScrollTool) Info ¶ added in v0.30.0
func (t *BrowserScrollTool) Info() ToolInfo
func (*BrowserScrollTool) Run ¶ added in v0.30.0
func (t *BrowserScrollTool) Run(ctx context.Context, call ToolCall) (ToolResponse, error)
type CacheEntry ¶ added in v0.30.0
type CacheEntry struct {
ID string
ToolCallID string
ToolName string
Content string // Full raw response
Lines []string // Pre-split lines for O(1) pagination
TotalLines int
TotalBytes int
CreatedAt time.Time
LastUsed time.Time
}
CacheEntry holds a cached tool response with pagination support.
type CacheEntrySummary ¶ added in v0.30.0
type CacheEntrySummary struct {
CacheID string `json:"cache_id"`
ToolName string `json:"tool_name"`
TotalLines int `json:"total_lines"`
TotalBytes int `json:"total_bytes"`
AgeSeconds int `json:"age_seconds"`
}
CacheEntrySummary is a compact descriptor for a single cached entry.
type CacheReadParams ¶ added in v0.30.0
type CacheReadParams struct {
CacheID string `json:"cache_id"` // Required: ID from truncated response
Offset int `json:"offset"` // Line offset (0-based), default 0
Limit int `json:"limit"` // Lines to read, default 200
Pattern string `json:"pattern"` // Optional: search within cached content
ContextLines int `json:"context_lines,omitempty"` // Context lines around matches (default 2)
}
CacheReadParams defines the parameters for the cache_read tool.
type CacheStats ¶ added in v0.30.0
type CacheStats struct {
EntryCount int `json:"entry_count"`
TotalBytes int64 `json:"total_bytes"`
MaxBytes int64 `json:"max_bytes"`
Evictions int `json:"evictions"`
}
CacheStats provides statistics about the cache state.
type CacheStatsResponse ¶ added in v0.30.0
type CacheStatsResponse struct {
Stats CacheStats `json:"stats"`
Entries []CacheEntrySummary `json:"entries"`
}
CacheStatsResponse is the structured metadata attached to the stats response.
type CodeDeleteProjectTool ¶ added in v0.162.0
type CodeDeleteProjectTool struct {
// contains filtered or unexported fields
}
CodeDeleteProjectTool deletes an indexed project and its data.
func (*CodeDeleteProjectTool) Info ¶ added in v0.162.0
func (t *CodeDeleteProjectTool) Info() ToolInfo
func (*CodeDeleteProjectTool) Run ¶ added in v0.162.0
func (t *CodeDeleteProjectTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeFindReferencesTool ¶ added in v0.320.0
type CodeFindReferencesTool struct {
// contains filtered or unexported fields
}
CodeFindReferencesTool finds references to a symbol across the indexed codebase.
func (*CodeFindReferencesTool) Info ¶ added in v0.320.0
func (t *CodeFindReferencesTool) Info() ToolInfo
func (*CodeFindReferencesTool) Run ¶ added in v0.320.0
func (t *CodeFindReferencesTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeFindSymbolTool ¶ added in v0.7.0
type CodeFindSymbolTool struct {
// contains filtered or unexported fields
}
CodeFindSymbolTool finds symbols by name pattern.
func (*CodeFindSymbolTool) Info ¶ added in v0.7.0
func (t *CodeFindSymbolTool) Info() ToolInfo
func (*CodeFindSymbolTool) Run ¶ added in v0.7.0
func (t *CodeFindSymbolTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeGetProjectStatsTool ¶ added in v0.7.0
type CodeGetProjectStatsTool struct {
// contains filtered or unexported fields
}
CodeGetProjectStatsTool returns statistics for an indexed project.
func (*CodeGetProjectStatsTool) Info ¶ added in v0.7.0
func (t *CodeGetProjectStatsTool) Info() ToolInfo
func (*CodeGetProjectStatsTool) Run ¶ added in v0.7.0
func (t *CodeGetProjectStatsTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeGetSymbolsOverviewTool ¶ added in v0.7.0
type CodeGetSymbolsOverviewTool struct {
// contains filtered or unexported fields
}
CodeGetSymbolsOverviewTool returns a high-level overview of symbols in a file.
func (*CodeGetSymbolsOverviewTool) Info ¶ added in v0.7.0
func (t *CodeGetSymbolsOverviewTool) Info() ToolInfo
func (*CodeGetSymbolsOverviewTool) Run ¶ added in v0.7.0
func (t *CodeGetSymbolsOverviewTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeHybridSearchTool ¶ added in v0.7.0
type CodeHybridSearchTool struct {
// contains filtered or unexported fields
}
CodeHybridSearchTool performs hybrid semantic + FTS search over code symbols.
func (*CodeHybridSearchTool) Info ¶ added in v0.7.0
func (t *CodeHybridSearchTool) Info() ToolInfo
func (*CodeHybridSearchTool) Run ¶ added in v0.7.0
func (t *CodeHybridSearchTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeIndexProjectTool ¶ added in v0.7.0
type CodeIndexProjectTool struct {
// contains filtered or unexported fields
}
CodeIndexProjectTool starts indexing a code project.
func (*CodeIndexProjectTool) Info ¶ added in v0.7.0
func (t *CodeIndexProjectTool) Info() ToolInfo
func (*CodeIndexProjectTool) Run ¶ added in v0.7.0
func (t *CodeIndexProjectTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeIndexStatusTool ¶ added in v0.7.0
type CodeIndexStatusTool struct {
// contains filtered or unexported fields
}
CodeIndexStatusTool returns the status of an indexing job.
func (*CodeIndexStatusTool) Info ¶ added in v0.7.0
func (t *CodeIndexStatusTool) Info() ToolInfo
func (*CodeIndexStatusTool) Run ¶ added in v0.7.0
func (t *CodeIndexStatusTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeListProjectsTool ¶ added in v0.7.0
type CodeListProjectsTool struct {
// contains filtered or unexported fields
}
CodeListProjectsTool lists all indexed projects.
func (*CodeListProjectsTool) Info ¶ added in v0.7.0
func (t *CodeListProjectsTool) Info() ToolInfo
func (*CodeListProjectsTool) Run ¶ added in v0.7.0
func (t *CodeListProjectsTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeReindexFileTool ¶ added in v0.7.0
type CodeReindexFileTool struct {
// contains filtered or unexported fields
}
CodeReindexFileTool re-indexes a single file.
func (*CodeReindexFileTool) Info ¶ added in v0.7.0
func (t *CodeReindexFileTool) Info() ToolInfo
func (*CodeReindexFileTool) Run ¶ added in v0.7.0
func (t *CodeReindexFileTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type CodeSearchPatternTool ¶ added in v0.7.0
type CodeSearchPatternTool struct {
// contains filtered or unexported fields
}
CodeSearchPatternTool searches for text patterns in code symbols.
func (*CodeSearchPatternTool) Info ¶ added in v0.7.0
func (t *CodeSearchPatternTool) Info() ToolInfo
func (*CodeSearchPatternTool) Run ¶ added in v0.7.0
func (t *CodeSearchPatternTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type DiagnosticsParams ¶
type DiagnosticsParams struct {
FilePath string `json:"file_path"`
}
type EditParams ¶
type EditPermissionsParams ¶
type EditResponseMetadata ¶
type EditStrategy ¶ added in v0.14.0
type EditStrategy interface {
Apply(content, oldStr, newStr string) (result string, matched bool)
Name() string
}
EditStrategy tries to find oldStr in content and replace it with newStr. Returns (result, true) on success, ("", false) if not matched. IMPORTANT: normalization is applied only for MATCHING, not for the replacement. The actual replacement must use the original content at the found position.
type FetchParams ¶
type FetchPermissionsParams ¶
type GlobParams ¶
type GlobResponseMetadata ¶
type GrepParams ¶
type GrepParams struct {
Pattern string `json:"pattern"`
Path string `json:"path"`
Include string `json:"include"`
LiteralText bool `json:"literal_text"`
// Extended parameters
OutputMode string `json:"output_mode"` // "content" | "files_with_matches" | "count" (default: "files_with_matches")
Context int `json:"context"` // lines of context before AND after (-C)
Before int `json:"before"` // lines before match (-B), overrides Context
After int `json:"after"` // lines after match (-A), overrides Context
Type string `json:"type"` // file type filter: "go", "js", "py", "ts", "rust", etc.
Multiline bool `json:"multiline"` // enable multiline matching
HeadLimit int `json:"head_limit"` // cap total results (0 = use default 100)
Offset int `json:"offset"` // skip first N results for pagination
}
type GrepResponseMetadata ¶
type HybridSearchRemembrancesTool ¶ added in v0.210.0
type HybridSearchRemembrancesTool struct {
// contains filtered or unexported fields
}
func (*HybridSearchRemembrancesTool) Info ¶ added in v0.210.0
func (t *HybridSearchRemembrancesTool) Info() ToolInfo
func (*HybridSearchRemembrancesTool) Run ¶ added in v0.210.0
func (t *HybridSearchRemembrancesTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type KBAddDocumentTool ¶ added in v0.7.0
type KBAddDocumentTool struct {
// contains filtered or unexported fields
}
KBAddDocumentTool adds a document to the knowledge base.
func (*KBAddDocumentTool) Info ¶ added in v0.7.0
func (t *KBAddDocumentTool) Info() ToolInfo
func (*KBAddDocumentTool) Run ¶ added in v0.7.0
func (t *KBAddDocumentTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type KBDeleteDocumentTool ¶ added in v0.7.0
type KBDeleteDocumentTool struct {
// contains filtered or unexported fields
}
KBDeleteDocumentTool removes a document from the knowledge base.
func (*KBDeleteDocumentTool) Info ¶ added in v0.7.0
func (t *KBDeleteDocumentTool) Info() ToolInfo
func (*KBDeleteDocumentTool) Run ¶ added in v0.7.0
func (t *KBDeleteDocumentTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type KBGetDocumentTool ¶ added in v0.7.0
type KBGetDocumentTool struct {
// contains filtered or unexported fields
}
KBGetDocumentTool retrieves a document from the knowledge base by path.
func (*KBGetDocumentTool) Info ¶ added in v0.7.0
func (t *KBGetDocumentTool) Info() ToolInfo
func (*KBGetDocumentTool) Run ¶ added in v0.7.0
func (t *KBGetDocumentTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type KBImportPathTool ¶ added in v0.160.0
type KBImportPathTool struct {
// contains filtered or unexported fields
}
KBImportPathTool imports/syncs markdown files from a filesystem path.
func (*KBImportPathTool) Info ¶ added in v0.160.0
func (t *KBImportPathTool) Info() ToolInfo
func (*KBImportPathTool) Run ¶ added in v0.160.0
func (t *KBImportPathTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type KBSearchDocumentsTool ¶ added in v0.7.0
type KBSearchDocumentsTool struct {
// contains filtered or unexported fields
}
KBSearchDocumentsTool searches documents in the knowledge base.
func (*KBSearchDocumentsTool) Info ¶ added in v0.7.0
func (t *KBSearchDocumentsTool) Info() ToolInfo
func (*KBSearchDocumentsTool) Run ¶ added in v0.7.0
func (t *KBSearchDocumentsTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type LSResponseMetadata ¶
type LineScanner ¶
type LineScanner struct {
// contains filtered or unexported fields
}
func NewLineScanner ¶
func NewLineScanner(r io.Reader) *LineScanner
func (*LineScanner) Err ¶
func (s *LineScanner) Err() error
func (*LineScanner) Scan ¶
func (s *LineScanner) Scan() bool
func (*LineScanner) Text ¶
func (s *LineScanner) Text() string
type MesnadaCancelTaskTool ¶
type MesnadaCancelTaskTool struct {
// contains filtered or unexported fields
}
MesnadaCancelTaskTool cancels a running or pending Mesnada task.
func (*MesnadaCancelTaskTool) Info ¶
func (t *MesnadaCancelTaskTool) Info() ToolInfo
func (*MesnadaCancelTaskTool) Run ¶
func (t *MesnadaCancelTaskTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type MesnadaGetOutputTool ¶
type MesnadaGetOutputTool struct {
// contains filtered or unexported fields
}
MesnadaGetOutputTool returns task output for a Mesnada task.
func (*MesnadaGetOutputTool) Info ¶
func (t *MesnadaGetOutputTool) Info() ToolInfo
func (*MesnadaGetOutputTool) Run ¶
func (t *MesnadaGetOutputTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type MesnadaGetTaskTool ¶
type MesnadaGetTaskTool struct {
// contains filtered or unexported fields
}
MesnadaGetTaskTool returns full task information for a Mesnada task.
func (*MesnadaGetTaskTool) Info ¶
func (t *MesnadaGetTaskTool) Info() ToolInfo
func (*MesnadaGetTaskTool) Run ¶
func (t *MesnadaGetTaskTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type MesnadaListTasksTool ¶
type MesnadaListTasksTool struct {
// contains filtered or unexported fields
}
MesnadaListTasksTool lists Mesnada tasks using optional filters.
func (*MesnadaListTasksTool) Info ¶
func (t *MesnadaListTasksTool) Info() ToolInfo
func (*MesnadaListTasksTool) Run ¶
func (t *MesnadaListTasksTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type MesnadaSpawnTool ¶
type MesnadaSpawnTool struct {
// contains filtered or unexported fields
}
MesnadaSpawnTool creates and runs a Mesnada task directly through the orchestrator.
func (*MesnadaSpawnTool) Info ¶
func (t *MesnadaSpawnTool) Info() ToolInfo
func (*MesnadaSpawnTool) Run ¶
func (t *MesnadaSpawnTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type MesnadaWaitTaskTool ¶
type MesnadaWaitTaskTool struct {
// contains filtered or unexported fields
}
MesnadaWaitTaskTool waits for a Mesnada task to reach a terminal state.
func (*MesnadaWaitTaskTool) Info ¶
func (t *MesnadaWaitTaskTool) Info() ToolInfo
func (*MesnadaWaitTaskTool) Run ¶
func (t *MesnadaWaitTaskTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type PaginationInfo ¶ added in v0.30.0
type PaginationInfo struct {
TotalItems int `json:"total_items,omitempty"`
ReturnedItems int `json:"returned_items,omitempty"`
Offset int `json:"offset,omitempty"`
Limit int `json:"limit,omitempty"`
HasMore bool `json:"has_more,omitempty"`
CacheID string `json:"cache_id,omitempty"` // Set if response was auto-cached
}
PaginationInfo is a standardized pagination descriptor included in tool metadata.
type PaginationMetadata ¶ added in v0.30.0
type PaginationMetadata struct {
CacheID string `json:"cache_id"`
TotalLines int `json:"total_lines"`
TotalBytes int `json:"total_bytes"`
Offset int `json:"offset"`
Limit int `json:"limit"`
HasMore bool `json:"has_more"`
ReturnedLines int `json:"returned_lines"`
ToolName string `json:"tool_name"`
}
PaginationMetadata describes a paginated result from the cache.
type PatchParams ¶
type PatchParams struct {
PatchText string `json:"patch_text"`
}
type PatchResponseMetadata ¶
type SaveEventTool ¶ added in v0.7.0
type SaveEventTool struct {
// contains filtered or unexported fields
}
SaveEventTool stores a temporal event with semantic search.
func (*SaveEventTool) Info ¶ added in v0.7.0
func (t *SaveEventTool) Info() ToolInfo
func (*SaveEventTool) Run ¶ added in v0.7.0
func (t *SaveEventTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type SearchEventsTool ¶ added in v0.7.0
type SearchEventsTool struct {
// contains filtered or unexported fields
}
SearchEventsTool searches events with hybrid text and time filters.
func (*SearchEventsTool) Info ¶ added in v0.7.0
func (t *SearchEventsTool) Info() ToolInfo
func (*SearchEventsTool) Run ¶ added in v0.7.0
func (t *SearchEventsTool) Run(ctx context.Context, params ToolCall) (ToolResponse, error)
type SessionCache ¶ added in v0.30.0
type SessionCache struct {
// contains filtered or unexported fields
}
SessionCache is a thread-safe, LRU in-memory cache scoped to a single session.
func GetSessionCache ¶ added in v0.30.0
func GetSessionCache(ctx context.Context) *SessionCache
GetSessionCache retrieves the session cache from context.
func GetSessionCacheByID ¶ added in v0.30.0
func GetSessionCacheByID(sessionID string) (*SessionCache, bool)
GetSessionCacheByID retrieves a session cache by session ID.
func NewSessionCache ¶ added in v0.30.0
func NewSessionCache(sessionID string) *SessionCache
NewSessionCache creates a new session-scoped cache.
func RegisterSessionCache ¶ added in v0.30.0
func RegisterSessionCache(sessionID string) *SessionCache
RegisterSessionCache creates and registers a new cache for a session.
func (*SessionCache) Clear ¶ added in v0.30.0
func (c *SessionCache) Clear()
Clear removes all entries from the cache.
func (*SessionCache) Delete ¶ added in v0.30.0
func (c *SessionCache) Delete(cacheID string)
Delete removes a single entry from the cache.
func (*SessionCache) Get ¶ added in v0.30.0
func (c *SessionCache) Get(cacheID string) (*CacheEntry, bool)
Get retrieves a cache entry by ID.
func (*SessionCache) GetPage ¶ added in v0.30.0
func (c *SessionCache) GetPage(cacheID string, offset, limit int) (string, PaginationMetadata, error)
GetPage returns a paginated slice of lines from a cached entry.
func (*SessionCache) SearchInCache ¶ added in v0.30.0
func (c *SessionCache) SearchInCache(cacheID, pattern string, contextLines, limit int) (string, PaginationMetadata, error)
SearchInCache searches for a pattern within cached content and returns matching lines with context.
func (*SessionCache) Stats ¶ added in v0.30.0
func (c *SessionCache) Stats() CacheStats
Stats returns current cache statistics.
func (*SessionCache) Store ¶ added in v0.30.0
func (c *SessionCache) Store(toolCallID, toolName, content string) string
Store saves content in the cache and returns a unique cacheID.
type SourcegraphParams ¶
type TodoItem ¶ added in v0.257.0
type TodoItem struct {
Content string `json:"content"`
Status string `json:"status"` // pending | in_progress | completed
Priority string `json:"priority"` // high | medium | low
}
TodoItem represents a single entry in the todo list.
func GetSessionTodos ¶ added in v0.257.0
GetSessionTodos returns the current todo list for a session, or nil if none.
type TodoWriteParams ¶ added in v0.257.0
type TodoWriteParams struct {
Todos []TodoItem `json:"todos"`
}
TodoWriteParams holds the input for the TodoWrite tool.
type ToolCall ¶
type ToolCall struct {
ID string `json:"id"`
Name string `json:"name"`
Input string `json:"input"`
}
func MustNormalizeToolCallInput ¶ added in v0.310.0
MustNormalizeToolCallInput returns a copy of the call with normalized JSON input.
type ToolResponse ¶
type ToolResponse struct {
Type toolResponseType `json:"type"`
Content string `json:"content"`
Metadata string `json:"metadata,omitempty"`
IsError bool `json:"is_error"`
}
func InterceptToolResponse ¶ added in v0.30.0
func InterceptToolResponse( cache *SessionCache, toolCallID string, toolName string, response ToolResponse, ) ToolResponse
InterceptToolResponse checks if a tool response exceeds caching thresholds. If so, it stores the full content in the session cache and returns a compact reference containing the first CachePreviewLines lines and a cache_id. If below thresholds or cache is unavailable, the response is returned unchanged.
func NewStructuredResponse ¶ added in v0.320.0
func NewStructuredResponse(value any) ToolResponse
NewStructuredResponse formats structured data for tool consumers. It prefers TOML output for readability and falls back to pretty JSON when TOML encoding fails or the value cannot be decoded as JSON-compatible data.
func NewTextErrorResponse ¶
func NewTextErrorResponse(content string) ToolResponse
func NewTextResponse ¶
func NewTextResponse(content string) ToolResponse
func WithResponseMetadata ¶
func WithResponseMetadata(response ToolResponse, metadata any) ToolResponse
type ViewParams ¶
type ViewResponseMetadata ¶
type WriteParams ¶
type WritePermissionsParams ¶
type WriteResponseMetadata ¶
Source Files
¶
- bash.go
- browser_content.go
- browser_detect.go
- browser_devtools.go
- browser_evaluate.go
- browser_interact.go
- browser_navigate.go
- browser_screenshot.go
- browser_session.go
- cache.go
- cache_interceptor.go
- cache_read.go
- cache_registry.go
- cache_stats.go
- context7.go
- diagnostics.go
- edit.go
- edit_strategies.go
- fetch.go
- fetch_browser.go
- file.go
- filelock.go
- glob.go
- grep.go
- json_input.go
- json_output.go
- ls.go
- lua_tools.go
- mesnada.go
- patch.go
- regexcache.go
- remembrances_code.go
- remembrances_events.go
- remembrances_hybrid.go
- remembrances_kb.go
- search_brave.go
- search_exa.go
- search_google.go
- search_perplexity.go
- sourcegraph.go
- todo_write.go
- tools.go
- view.go
- workspace_fs.go
- write.go