Skip to main content

Crate soul_coder

Crate soul_coder 

Source
Expand description

§soul-coder

Coding-specific tools for soul-core — read, write, edit, bash, grep, find, ls.

WASM-first, cross-platform. All tools use soul_core::vfs::VirtualFs and soul_core::vexec::VirtualExecutor for platform abstraction, enabling full operation in both native and WebAssembly environments.

§Quick Start

use std::sync::Arc;
use soul_core::vfs::MemoryFs;
use soul_core::vexec::NoopExecutor;
use soul_coder::presets;

// Create all 7 coding tools with in-memory VFS (WASM-ready)
let fs = Arc::new(MemoryFs::new());
let exec = Arc::new(NoopExecutor);
let registry = presets::all_tools(fs, exec, "/workspace");

assert_eq!(registry.len(), 7);

§Tool Presets

PresetToolsUse Case
coding_toolsread, write, edit, bashInteractive coding sessions
read_only_toolsread, grep, find, lsCodebase exploration
all_toolsall 7 toolsFull agent capabilities

§ExecutorRegistry Integration

For integration with soul-core’s config-driven executor system:

use std::sync::Arc;
use soul_core::vfs::MemoryFs;
use soul_core::vexec::NoopExecutor;

let fs = Arc::new(MemoryFs::new());
let exec = Arc::new(NoopExecutor);
let registry = soul_coder::presets::all_executor(fs, exec, "/workspace");

assert!(registry.has_tool("read"));

§Individual Tools

Each tool can be instantiated independently:

use std::sync::Arc;
use soul_core::vfs::MemoryFs;
use soul_coder::tools::read::ReadTool;

let fs = Arc::new(MemoryFs::new());
let tool = ReadTool::new(fs, "/workspace");

Re-exports§

pub use presets::all_executor;
pub use presets::all_tools;
pub use presets::coding_executor;
pub use presets::coding_tools;
pub use presets::read_only_tools;
pub use presets::wrap_as_executor;
pub use tools::bash::BashTool;
pub use tools::edit::EditTool;
pub use tools::find::FindTool;
pub use tools::grep::GrepTool;
pub use tools::ls::LsTool;
pub use tools::read::ReadTool;
pub use tools::write::WriteTool;

Modules§

presets
Preset tool collections for common use cases.
tools
truncate
Unified truncation system for tool outputs.