Files
2026-05-08 01:59:04 +02:00

6.0 KiB

Stubbed Functions Reference

Quick reference for all stubbed functions with task IDs and signatures.


File Operations

TOOLS-FS-01: Read Text File

File: src/fs/read.rs

pub async fn read_text_file(
    request: ReadTextFileRequest,
    config: &SandboxConfig,
) -> ToolResult<ReadTextFileResponse>

Types:

  • ReadTextFileRequest { path: String, line: Option<usize>, limit: Option<usize> }
  • ReadTextFileResponse { content: String }

TOOLS-FS-02: Write Text File

File: src/fs/write.rs

pub async fn write_text_file(
    request: WriteTextFileRequest,
    config: &SandboxConfig,
) -> ToolResult<WriteTextFileResponse>

pub fn normalize_eol(content: &str, policy: EolPolicy) -> String

Types:

  • WriteTextFileRequest { path: String, content: String }
  • WriteTextFileResponse {}

TOOLS-FS-03: Generate Diff

File: src/fs/diff.rs

pub fn generate_diff(old_content: &str, new_content: &str, path: &Path) -> String

TOOLS-FS-04: Edit File

File: src/fs/edit.rs

pub async fn edit_file(
    request: EditFileRequest,
    config: &SandboxConfig,
) -> ToolResult<EditFileResponse>

Types:

  • EditFileRequest { path: String, edits: Vec<EditOperation> }
  • EditFileResponse { diff: String }
  • EditOperation::Replace { old_text: String, new_text: String, replace_all: bool }
  • EditOperation::Patch { diff: String }

Search Operations

TOOLS-SEARCH-01: Directory Listing

File: src/search/ls.rs

pub async fn ls(request: LsRequest, config: &SearchConfig) -> ToolResult<LsResponse>

Types:

  • LsRequest { path: String }
  • LsResponse { entries: Vec<LsEntry> }
  • LsEntry { path: PathBuf, kind: FileKind, size: Option<u64> }
  • FileKind: File | Dir | Symlink

File: src/search/glob.rs

pub async fn glob_search(
    request: GlobRequest,
    config: &SearchConfig,
) -> ToolResult<GlobResponse>

Types:

  • GlobRequest { path: String, pattern: String, exclude: Option<Vec<String>>, max_results: Option<u32> }
  • GlobResponse { matches: Vec<PathBuf>, truncated: bool }

TOOLS-SEARCH-03: Content Search (Grep)

File: src/search/grep.rs

pub async fn grep_search(
    request: GrepRequest,
    config: &SearchConfig,
) -> ToolResult<GrepResponse>

Types:

  • GrepRequest { path: String, pattern: String, file_pattern: Option<String>, ignore_case: bool, context_before: u32, context_after: u32, max_results: Option<u32> }
  • GrepResponse { matches: Vec<GrepMatch>, truncated: bool }
  • GrepMatch { path: PathBuf, line_number: usize, line: String, context_before: Vec<String>, context_after: Vec<String> }

Terminal Operations

TOOLS-TERM-01: Create Terminal

File: src/terminal/create.rs

pub async fn create_terminal(
    request: CreateTerminalRequest,
    config: &TerminalConfig,
) -> ToolResult<CreateTerminalResponse>

Types:

  • CreateTerminalRequest { command: String, args: Vec<String>, cwd: Option<String>, env: Option<Vec<EnvVar>>, output_byte_limit: Option<u64> }
  • CreateTerminalResponse { terminal_id: String }
  • EnvVar { name: String, value: String }

TOOLS-TERM-02: Get Terminal Output

File: src/terminal/output.rs

pub async fn get_terminal_output(
    request: TerminalOutputRequest,
    config: &TerminalConfig,
) -> ToolResult<TerminalOutputResponse>

Types:

  • TerminalOutputRequest { terminal_id: String }
  • TerminalOutputResponse { output: String, truncated: bool, exit_status: Option<i32> }

TOOLS-TERM-03: Wait for Exit

File: src/terminal/wait.rs

pub async fn wait_for_terminal_exit(
    request: WaitForTerminalExitRequest,
    config: &TerminalConfig,
) -> ToolResult<WaitForTerminalExitResponse>

Types:

  • WaitForTerminalExitRequest { terminal_id: String }
  • WaitForTerminalExitResponse { exit_status: i32 }

TOOLS-TERM-04: Kill Terminal

File: src/terminal/kill.rs

pub async fn kill_terminal(
    request: KillTerminalCommandRequest,
    config: &TerminalConfig,
) -> ToolResult<KillTerminalCommandResponse>

Types:

  • KillTerminalCommandRequest { terminal_id: String }
  • KillTerminalCommandResponse {}

TOOLS-TERM-05: Release Terminal

File: src/terminal/release.rs

pub async fn release_terminal(
    request: ReleaseTerminalRequest,
    config: &TerminalConfig,
) -> ToolResult<ReleaseTerminalResponse>

Types:

  • ReleaseTerminalRequest { terminal_id: String }
  • ReleaseTerminalResponse {}

Ring Buffer

File: src/terminal/ring_buffer.rs

impl RingBuffer {
    pub fn new(capacity: usize) -> Self
}

Note: Full interface to be defined during implementation.


Summary

Total Stubbed Functions: 15 main functions + 1 helper

File Operations: 4 functions

  • read_text_file, write_text_file, normalize_eol, generate_diff, edit_file

Search Operations: 3 functions

  • ls, glob_search, grep_search

Terminal Operations: 6 functions + ring buffer

  • create_terminal, get_terminal_output, wait_for_terminal_exit, kill_terminal, release_terminal, RingBuffer::new

All functions return unimplemented!() with clear task IDs in the panic message.


Implementation Order

Recommended implementation order based on dependencies:

  1. File Operations (UI features need these first)

    • TOOLS-FS-01: read_text_file
    • TOOLS-FS-02: write_text_file + normalize_eol
    • TOOLS-FS-03: generate_diff
  2. Search Operations (useful for development)

    • TOOLS-SEARCH-01: ls
    • TOOLS-SEARCH-02: glob_search
    • TOOLS-SEARCH-03: grep_search
  3. Edit Operations (builds on read/write)

    • TOOLS-FS-04: edit_file
  4. Terminal Operations (more complex, can be deferred)

    • TOOLS-TERM-01: create_terminal + ring_buffer
    • TOOLS-TERM-02: get_terminal_output
    • TOOLS-TERM-03: wait_for_terminal_exit
    • TOOLS-TERM-04: kill_terminal
    • TOOLS-TERM-05: release_terminal

Generated: 2025-11-12 Package: dirigent_tools v0.1.0