Documentation
¶
Overview ¶
Package workspace implements local workspace operations.
Index ¶
- Constants
- func ShouldSkipForWorkDir(command string) bool
- type LargeOutputConfig
- type LargeOutputProcessor
- type LimitedWriter
- type ProcessResult
- type Workspace
- func (w *Workspace) Bash(ctx context.Context, args *protocol.BashArgs) (*protocol.BashResult, error)
- func (w *Workspace) Glob(ctx context.Context, args *protocol.GlobArgs) (*protocol.GlobResult, error)
- func (w *Workspace) Grep(ctx context.Context, args *protocol.GrepArgs) (*protocol.GrepResult, error)
- func (w *Workspace) List(ctx context.Context, args *protocol.ListArgs) (*protocol.ListResult, error)
- func (w *Workspace) MCPCall(ctx context.Context, args *protocol.MCPCallArgs, logger *slog.Logger) (*protocol.MCPCallResult, error)
- func (w *Workspace) MCPListTools(ctx context.Context, args *protocol.MCPListToolsArgs) (*protocol.MCPListToolsResult, error)
- func (w *Workspace) Read(ctx context.Context, args *protocol.ReadArgs) (*protocol.ReadResult, error)
- func (w *Workspace) Root() string
- func (w *Workspace) SyncSkill(ctx context.Context, args *protocol.SyncSkillArgs) (*protocol.SyncSkillResult, error)
- func (w *Workspace) WebFetch(ctx context.Context, args *protocol.WebFetchArgs) (*protocol.WebFetchResult, error)
- func (w *Workspace) Write(ctx context.Context, args *protocol.WriteArgs) error
- func (w *Workspace) WriteRaw(ctx context.Context, path string, content []byte) error
Constants ¶
const ( // DefaultMaxOutputSize is the default character limit before truncation (~7.5k tokens) DefaultMaxOutputSize = 30000 // ~7.5k tokens at 4 chars/token // DefaultPreviewSize is the maximum characters for preview DefaultPreviewSize = 8000 // ~2k tokens // DefaultPreviewLines is the number of lines shown in the preview DefaultPreviewLines = 20 // OutputsDir is the directory name for storing large outputs OutputsDir = ".work/outputs" // WorkDir is the base working directory WorkDir = ".work" )
Variables ¶
This section is empty.
Functions ¶
func ShouldSkipForWorkDir ¶
ShouldSkipForWorkDir checks if large output processing should be skipped for commands operating on .work/ directory to avoid circular processing.
Types ¶
type LargeOutputConfig ¶
LargeOutputConfig holds configuration for large output handling.
func DefaultLargeOutputConfig ¶
func DefaultLargeOutputConfig() LargeOutputConfig
DefaultLargeOutputConfig returns the default configuration.
type LargeOutputProcessor ¶
type LargeOutputProcessor struct {
// contains filtered or unexported fields
}
LargeOutputProcessor handles large output truncation and file storage.
func NewLargeOutputProcessor ¶
func NewLargeOutputProcessor(ws *Workspace, config LargeOutputConfig) *LargeOutputProcessor
NewLargeOutputProcessor creates a new processor with the given workspace.
func (*LargeOutputProcessor) Process ¶
func (p *LargeOutputProcessor) Process(ctx context.Context, content string, prefix string) (*ProcessResult, error)
Process checks if content exceeds the limit and handles accordingly.
type LimitedWriter ¶
LimitedWriter is an io.Writer that limits the total number of bytes written.
type ProcessResult ¶
ProcessResult holds the result of processing large output.
type Workspace ¶
type Workspace struct {
// contains filtered or unexported fields
}
Workspace handles local filesystem operations.
func New ¶
func New(root string, checker *permission.Checker) (*Workspace, error)
New creates a new workspace with the given root directory and permission checker.
func (*Workspace) Bash ¶
func (w *Workspace) Bash(ctx context.Context, args *protocol.BashArgs) (*protocol.BashResult, error)
Bash executes a bash command in the workspace.
func (*Workspace) Glob ¶
func (w *Workspace) Glob(ctx context.Context, args *protocol.GlobArgs) (*protocol.GlobResult, error)
Glob searches for files matching a pattern.
func (*Workspace) Grep ¶
func (w *Workspace) Grep(ctx context.Context, args *protocol.GrepArgs) (*protocol.GrepResult, error)
Grep searches for a pattern in files.
func (*Workspace) List ¶
func (w *Workspace) List(ctx context.Context, args *protocol.ListArgs) (*protocol.ListResult, error)
List lists entries in a directory.
func (*Workspace) MCPCall ¶
func (w *Workspace) MCPCall(ctx context.Context, args *protocol.MCPCallArgs, logger *slog.Logger) (*protocol.MCPCallResult, error)
MCPCall executes an MCP tool call.
func (*Workspace) MCPListTools ¶
func (w *Workspace) MCPListTools(ctx context.Context, args *protocol.MCPListToolsArgs) (*protocol.MCPListToolsResult, error)
MCPListTools lists available tools from an MCP server.
func (*Workspace) Read ¶
func (w *Workspace) Read(ctx context.Context, args *protocol.ReadArgs) (*protocol.ReadResult, error)
Read reads a file from the workspace.
func (*Workspace) SyncSkill ¶
func (w *Workspace) SyncSkill(ctx context.Context, args *protocol.SyncSkillArgs) (*protocol.SyncSkillResult, error)
SyncSkill syncs a skill from cloud to local workspace.
func (*Workspace) WebFetch ¶
func (w *Workspace) WebFetch(ctx context.Context, args *protocol.WebFetchArgs) (*protocol.WebFetchResult, error)
WebFetch fetches content from a URL and converts it to readable format.