workspace

package
v0.0.0-...-311e34c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2026 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package workspace implements local workspace operations.

Index

Constants

View Source
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

func ShouldSkipForWorkDir(command string) bool

ShouldSkipForWorkDir checks if large output processing should be skipped for commands operating on .work/ directory to avoid circular processing.

Types

type LargeOutputConfig

type LargeOutputConfig struct {
	MaxOutputSize int
	PreviewSize   int
	PreviewLines  int
}

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

type LimitedWriter struct {
	W     io.Writer
	Limit int64
	// contains filtered or unexported fields
}

LimitedWriter is an io.Writer that limits the total number of bytes written.

func (*LimitedWriter) Write

func (l *LimitedWriter) Write(p []byte) (n int, err error)

type ProcessResult

type ProcessResult struct {
	Content   string
	Truncated bool
	FilePath  string
	TotalSize int64
}

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

Bash executes a bash command in the workspace.

func (*Workspace) Glob

Glob searches for files matching a pattern.

func (*Workspace) Grep

Grep searches for a pattern in files.

func (*Workspace) List

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

MCPListTools lists available tools from an MCP server.

func (*Workspace) Read

Read reads a file from the workspace.

func (*Workspace) Root

func (w *Workspace) Root() string

Root returns the workspace root directory.

func (*Workspace) SyncSkill

SyncSkill syncs a skill from cloud to local workspace.

func (*Workspace) WebFetch

WebFetch fetches content from a URL and converts it to readable format.

func (*Workspace) Write

func (w *Workspace) Write(ctx context.Context, args *protocol.WriteArgs) error

Write writes content to a file in the workspace.

func (*Workspace) WriteRaw

func (w *Workspace) WriteRaw(ctx context.Context, path string, content []byte) error

WriteRaw writes raw content (not base64 encoded) to a file. Used internally for saving large output files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL