- Add new grep_search tool in packages/ai/src/tools/file-tools/
- Support various grep options: recursive, ignoreCase, invertMatch, lineNumbers, wordMatch, fixedStrings, maxCount
- Implement bulk search capabilities with array of search configurations
- Use Node.js child_process for direct grep execution
- Include structured output with successful/failed searches
- Add proper error handling and command injection protection
- Export tool in packages/ai/src/tools/index.ts
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Add delete-files-tool with sandbox and local execution support
- Support bulk operations with individual success/failure tracking
- Follow established file tools patterns and error handling
- Include comprehensive unit tests with mocking
- Export tool in main index for accessibility
Implements BUS-1464
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Add bash_execute tool in packages/ai/src/tools/file-tools/bash-execute-tool.ts
- Support both single commands and arrays of commands
- Use Node's child_process with proper timeout and error handling
- Capture stdout, stderr, and exit codes in structured format
- Add unit tests for schema validation
- Export tool in file-tools index and main tools index
Implements BUS-1466: TypeScript-based bash execution tool with graceful error handling
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Add Rust implementation in idle.rs by copying from done.rs
- Add TypeScript implementation in idle-tool.ts by copying from done-tool.ts
- Update all agent modes (review, analysis, follow_up_initialization, planning) to include idle tool
- Update analyst-agent.ts to include idleTool
- Add idle tool to terminating_tools lists
- Export idle module and tool from respective index files
Addresses BUS-1468: idle tool indicates agent finished current work but available for future tasks
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Add ls-files-tool with support for standard ls options (-l, -a, -R, -h)
- Support bulk operations with proper error handling
- Parse ls output into structured JSON format
- Handle cross-platform concerns for Windows compatibility
- Follow established Mastra tool patterns with sandbox execution
- Include comprehensive unit tests for both implementation and tool
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Add create-file-tool.ts with Zod schema and bulk file creation support
- Add create-file-functions.ts with sandbox execution and local fallback
- Support both absolute and relative file paths
- Create directories if they don't exist, overwrite existing files
- Handle errors gracefully, continue processing other files on individual failures
- Return detailed success/error results for each file operation
- Include comprehensive unit tests (18 tests, all passing)
- Export tool in index.ts following established patterns
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Move to new subdirectory structure: packages/ai/src/tools/file-tools/edit-files-tool/
- Follow exact same architectural pattern as read_files tool
- Use discriminated union output schema for results
- Implement sandbox execution with fallback to local execution
- Fix regex escaping issues in generated sandbox code
- Maintain all existing find-and-replace validation logic
- Support bulk operations with individual success/failure tracking
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Added support for reading files in a sandbox environment using @buster/sandbox.
- Introduced new file reading tool with async operations and error handling.
- Implemented integration tests for sandbox and local execution scenarios.
- Updated package.json and pnpm-lock.yaml to include new dependencies.
Co-Authored-By: [Your Name] <your.email@example.com>
- Make installationId and githubOrgId NOT NULL (required GitHub API fields)
- Change user foreign key to ON DELETE SET NULL to prevent blocking user deletion
- Add index on github_org_id for better query performance
- Maintain unique constraint on organization_id + installation_id pair
Addresses greptile-apps review comments on PR #574
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Convert file operations from sequential to parallel using Promise.all()
- Use async/await with fs.promises for better performance
- Maintain error handling and 1000-line truncation functionality
- All unit tests continue to pass (10/10)
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
Reverted explicit icon exports back to export * pattern to ensure
all icon imports continue working while maintaining bundle optimization
benefits from other changes.
Co-Authored-By: nate@buster.so <nate@buster.so>