Commit Graph

80 Commits

Author SHA1 Message Date
Nissa Seru
5a1299c57f use fastest-levenshtein 2025-02-01 22:54:31 -05:00
Matt Rubens
5579922f98 Sneak in a change to apply_diff error message 2025-01-28 10:24:16 -05:00
Matt Rubens
2c97b59ed1 Checkpoint on insert and search/replace tools 2025-01-28 21:05:44 +07:00
Matt Rubens
b8e0aa0cde Custom modes 2025-01-21 09:39:54 -05:00
Daniel Riccio
54fb38f76c fix: correct the type of arguments for the getToolDescription 2025-01-18 17:10:26 -05:00
Daniel Riccio
7bb1f3ebb4 test: fix failing test due to new tool description 2025-01-18 17:06:53 -05:00
Daniel
cea4d163b2 Merge branch 'main' into improve_diff_prompt 2025-01-18 17:01:21 -05:00
Daniel Riccio
5f348d531e refactor: improve the apply_diff tool to be concise and include step by step guide on how to generate a good diff 2025-01-18 16:56:20 -05:00
Matt Rubens
60a0a824b9 Prettier backfill 2025-01-17 14:11:28 -05:00
Matt Rubens
72fe12d096 Refactor modes 2025-01-17 10:03:23 -05:00
Daniel Riccio
82a0ffe67a feat: add tests for the git fallback strategy 2025-01-17 02:04:34 -05:00
Daniel Riccio
5a35d7fb2a test: add comprehensive tests for applyContextMatching and applyDMP functions 2025-01-17 02:00:22 -05:00
Daniel Riccio
b089e7ff7c style: format code 2025-01-17 01:41:41 -05:00
Daniel Riccio
fa9e055ea9 refactor: streamline edit result validation and format code 2025-01-17 01:40:42 -05:00
Daniel Riccio
fa49bd804b refactor: standardize code formatting 2025-01-17 01:39:31 -05:00
Daniel Riccio
71fdf88672 refactor: simplify indentation inference and enhance edit strategies
- Refactored the `inferIndentation` function to streamline indentation handling for context and added lines.
- Improved the `applyContextMatching` and `applyDMP` functions for better clarity and efficiency in processing changes.
- Code was formatted
2025-01-17 01:38:44 -05:00
Daniel Riccio
9857e31e9c fix: use actual confidence threshold 2025-01-17 00:57:56 -05:00
Daniel Riccio
c710f558f6 test: add comprehensive tests for search strategies 2025-01-17 00:42:03 -05:00
Daniel Riccio
df654f0284 refactor: enhance anchor-based search strategy in Levenshtein match
- Improved the `identifyAnchors` function to return the first and last non-empty lines of the search string.
- Updated the `findAnchorMatch` function to validate anchor uniqueness and context more effectively.
- Removed unused complexity calculations and streamlined the anchor validation process.
2025-01-17 00:40:33 -05:00
Daniel Riccio
ab1a7a511f fix: remove unnecessary console log in new unified diff strategy 2025-01-16 17:15:44 -05:00
Daniel Riccio
c0d0548479 test: add hunk splitting tests for handling large diffs with non-contiguous changes 2025-01-16 12:49:32 -05:00
Daniel Riccio
04f6e4f03f feat: implement hunk splitting strategy in diff application to better handle large diffs that might fail if the search fails 2025-01-16 12:49:02 -05:00
Daniel Riccio
36b7da07d2 fix: enhance error messaging in diff strategy to address potential issues with context lines and version targeting 2025-01-15 12:55:44 -05:00
Daniel Riccio
6c8d7f4951 fix: update tests to handle new experimental diff option and increase the default confidence to 1 2025-01-15 12:23:51 -05:00
Daniel Riccio
22069e8056 fix: remove misplaced async 2025-01-15 12:22:20 -05:00
Daniel
df01edf781 Merge branch 'main' into new_unified 2025-01-15 11:53:27 -05:00
Daniel Riccio
f9a453a44f refactor: update edit and search strategies to use configurable confidence thresholds
- Modified applyContextMatching and applyDMP functions to accept a confidenceThreshold parameter, enhancing flexibility in edit strategies.
- Updated validateEditResult and related functions to utilize the new confidenceThreshold, improving consistency across validation processes.
- Adjusted findExactMatch, findSimilarityMatch, findLevenshteinMatch, and findAnchorMatch functions to incorporate confidenceThreshold, ensuring adaptive behavior based on user settings.
2025-01-15 10:54:25 -05:00
Daniel Riccio
f696f8e0f1 refactor: remove debug functionality 2025-01-14 18:03:03 -05:00
Daniel Riccio
e6d3db6075 refactor: use confidenceThreshold from the settings in new diff strategy 2025-01-14 17:59:46 -05:00
Daniel Riccio
e00ec0cc3f test: add unit tests for NewUnifiedDiffStrategy constructor and confidence threshold behavior
- Introduced tests for the NewUnifiedDiffStrategy constructor to verify default and custom confidence thresholds.
- Ensured that the minimum confidence threshold is enforced, preventing values below 0.8.
- Enhanced test coverage for the strategy's initialization logic, improving overall reliability and maintainability.
2025-01-14 17:57:55 -05:00
Daniel Riccio
f6e85fa133 feat: introduce experimental diff strategy toggle and enhance diff handling
- Added support for an experimental diff strategy in the Cline class, allowing users to opt for a new unified diff approach.
- Updated the getDiffStrategy function to accommodate the experimental strategy, adjusting the fuzzy match threshold accordingly.
- Integrated experimentalDiffStrategy into the global state management, enabling persistence across sessions.
- Enhanced the ClineProvider and related components to handle the new experimental strategy, including UI updates for user settings.
- Improved task history management to include the experimentalDiffStrategy setting, ensuring consistency in task execution.
- Updated relevant interfaces and types to reflect the new experimentalDiffStrategy property.
2025-01-14 17:57:09 -05:00
Daniel Riccio
a211927097 refactor: enhance error handling and debugging in NewUnifiedDiffStrategy
- Improved error messages for cases where no hunks are found in the diff, providing clearer guidance on format requirements.
- Added detailed debug information for search and edit failures, including context line ratios and potential issues to assist users in troubleshooting.
- Streamlined the logic for determining the cause of edit failures, distinguishing between search and content mismatch errors.
- Enhanced overall readability and maintainability of the code with consistent formatting and structured comments.
2025-01-14 17:09:20 -05:00
Daniel Riccio
5c420bb7e1 refactor: cleanup 2025-01-14 17:02:39 -05:00
Daniel Riccio
b30cb29358 refactor: cleanup 2025-01-14 17:01:46 -05:00
Daniel Riccio
a323a1008e refactor: enhance Git fallback strategy in edit processing
- Improved logging within the applyGitFallback function to provide clearer insights during the commit and cherry-pick processes.
- Streamlined error handling to ensure more informative console outputs when operations fail.
- Maintained consistent formatting and indentation for better readability and maintainability of the code.
- Ensured temporary directory cleanup is handled correctly in all scenarios, preventing potential resource leaks.
2025-01-14 17:00:51 -05:00
Daniel Riccio
3d901929c2 test: add comprehensive tests for NewUnifiedDiffStrategy error handling and edge cases 2025-01-14 16:44:15 -05:00
Daniel Riccio
534888af97 refactor: improve NewUnifiedDiffStrategy with enhanced formatting and error handling
- Cleaned up formatting in the parseUnifiedDiff method to ensure consistent indentation and spacing.
- Updated documentation to clarify format requirements for generating unified diffs.
- Added error handling for cases where no hunks are found in the provided diff, improving robustness.
- Enhanced overall readability of the code by standardizing comments and structure.
2025-01-14 12:20:52 -05:00
Daniel Riccio
d25f370013 refactor: enhance NewUnifiedDiffStrategy for improved diff parsing and context handling
- Refactored the parseUnifiedDiff method to streamline the processing of diff lines and improve context line management.
- Added handling for empty context lines to ensure accurate representation in hunks.
- Updated the tool description to clarify requirements for generating unified diffs, emphasizing the importance of preserving indentation and grouping related changes.
- Improved overall readability and consistency of the code by standardizing formatting and indentation practices.
2025-01-14 12:01:09 -05:00
Daniel Riccio
258024aa5a refactor: enhance search strategies with adaptive thresholds and overlapping windows
- Introduced adaptive confidence thresholds based on file size to improve search accuracy.
- Implemented overlapping window functionality in search strategies to capture matches more effectively.
- Added helper functions for evaluating content uniqueness and creating overlapping windows.
- Enhanced existing search functions (exact, similarity, and Levenshtein) to utilize new strategies for better match validation.
- Improved logging for search results to facilitate debugging and analysis of search performance.
2025-01-14 12:00:29 -05:00
Matt Rubens
344c796f2e Chat modes 2025-01-12 13:11:52 -05:00
Daniel Riccio
f007f64344 refactor: increase minimum confidence threshold in search strategies
- Updated the minimum confidence level from 0.95 to 0.97 to enhance the accuracy of search results.
- Adjusted confidence calculation in the findLevenshteinMatch function to ensure more reliable matching.
2025-01-10 17:36:43 -05:00
Daniel Riccio
0d004b5c77 refactor: increase context lines in NewUnifiedDiffStrategy
- Updated the maximum context lines from 3 to 6 in the parseUnifiedDiff method to provide more context around changes.
2025-01-10 17:35:22 -05:00
Daniel Riccio
6d68edef3e refactor: implement Git fallback strategy in edit processing
- Introduced a new Git fallback strategy for handling edits when confidence levels are low.
- Replaced the previous Git edit strategy with a more robust approach that utilizes temporary directories and commits for original, search, and replace states.
- Enhanced error handling and logging for better debugging during the edit process.
- Updated the main edit function to incorporate the Git fallback strategy, ensuring it is attempted when other strategies fail.
- Improved overall structure and readability of the applyGitFallback function, streamlining the process of applying changes using Git.
2025-01-10 17:34:44 -05:00
Daniel Riccio
ab31aea551 refactor: enhance context handling and confidence validation in edit strategies
- Improved the applyContextMatching function to better track context lines and handle changes more accurately.
- Updated the applyEdit function to enforce a stricter confidence check, now requiring a confidence level of 1 for successful edits.
- Refined the processing logic for addition and removal changes, ensuring more reliable diff application.
- Enhanced debugging capabilities with clearer logging and validation checks for edit results.
2025-01-09 16:38:32 -05:00
Daniel Riccio
5351b3d981 refactor: improve the prompt to prevent absurd amounts of context being generated 2025-01-09 12:05:36 -05:00
Daniel Riccio
44dc489e49 revert: lower the confidence levels 2025-01-08 17:18:09 -05:00
Daniel Riccio
9591ae062a Refactor edit strategies and confidence validation in unified diff processing
- Enhanced the applyContextMatching and applyDMP functions to improve handling of context and edit changes.
- Updated confidence validation logic to ensure stricter checks, now requiring a minimum confidence of 1 for successful edits.
- Refined the way changes are processed, including better tracking of removal and addition changes.
- Improved the validation of edit results by incorporating strategy-specific checks and logging for better debugging.
- Adjusted the applyEdit function to ensure strategies are applied in a more robust manner, with clearer handling of debug mode.
2025-01-08 17:13:46 -05:00
Daniel Riccio
995692c48e Improve strategies and confidence system 2025-01-08 12:28:31 -05:00
Daniel Riccio
594481643b Add New Unified Diff Strategy Implementation
- Introduced a new unified diff strategy with support for context matching, DMP, and Git-based edits.
- Implemented helper functions for parsing unified diffs and evaluating similarity.
- Added types for changes, hunks, and diffs to enhance type safety.
- Created a main edit function that applies strategies sequentially based on confidence levels.
- Included detailed descriptions and usage examples for the new strategy.
2025-01-07 19:01:12 -05:00
Daniel Riccio
2857dd4996 Refactor test cases in search-replace and unified strategies to use async/await for applyDiff method, ensuring consistent handling of asynchronous operations across all tests. 2025-01-07 19:00:29 -05:00