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