Commit graph

12 commits

Author SHA1 Message Date
mingholy.lmh
180dcd8b36 refactor(acp): migrate ACP integration to use @agentclientprotocol/sdk
- Remove acp.ts and schema.ts in favor of SDK types
- Refactor acpAgent.ts to leverage SDK client
- Update session management types and implementations
- Adjust all test cases for new SDK-based architecture
- Update integration tests and export utilities

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-06 21:57:35 +08:00
tanzhenxin
3a549419ba Merge branch 'main' into feat/sandbox-config-improvements 2026-03-06 14:38:39 +08:00
LaZzyMan
109b3d41ab fix: reduce redundant file I/O and fix BOM preservation for non-UTF-8 encodings
- Extract isUtf8CompatibleEncoding to iconvHelper.ts, removing duplicate
  definitions in fileUtils.ts and fileSystemService.ts
- Add readFileWithEncodingInfo() returning content + encoding + bom in a
  single I/O pass; update edit.ts and write-file.ts to use it instead of
  separate readTextFile/detectFileEncoding/detectFileBOM calls
- Add readTextFileWithInfo() to FileSystemService interface; implement in
  StandardFileSystemService and AcpFileSystemService (delegates to fallback)
- Fix FileReadResult.bom to be true for all Unicode BOM variants (UTF-8/
  16/32), not just UTF-8; add getBOMBytesForEncoding() and update
  writeTextFile to re-prepend the correct BOM bytes on write-back so
  UTF-16/32 BOM files are no longer silently corrupted
- Add tests for readFileWithEncodingInfo, readTextFileWithInfo, and
  UTF-16LE BOM write-back preservation
2026-03-04 16:03:17 +08:00
LaZzyMan
a5eb1733fa fix: preserve original encoding when reading/writing non-UTF-8 files
Fixes #2069

- Add iconv-lite dependency for non-UTF-8 encoding support
- Add iconvHelper.ts as a CJS/ESM compatibility wrapper
- Update readFileWithEncoding() to detect and handle GBK/Big5/Shift_JIS
  using BOM detection -> UTF-8 validation -> chardet -> iconv-lite fallback
- Add detectFileEncoding() to identify file encoding before writes
- Update writeTextFile() to accept encoding option and encode with iconv-lite
- Update WriteFileTool and EditTool to detect and preserve original encoding
- Add tests for GBK read/write, detectFileEncoding, and encoding option
2026-03-04 14:52:46 +08:00
tanzhenxin
a172696b86 Merge branch 'main' into feat/support-insight-command
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-26 21:05:41 +08:00
hobostay
caa9983e23 fix(fs): Improve BOM detection with length check and codePointAt
Improve the detectFileBOM method to handle edge cases better:

1. Add length check before accessing first character
   - Prevents potential issues with empty strings
   - Makes the intent explicit and defensive

2. Use codePointAt() instead of charCodeAt()
   - Better Unicode support for characters beyond BMP
   - More modern API for Unicode code point handling

This change maintains the same functionality while being more
robust and explicit about edge case handling.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-17 19:56:12 +08:00
tanzhenxin
2d525d9fd0 fix: Address review comments for BOM encoding support
- Edit tool now respects defaultFileEncoding for new files
- Edit tool preserves BOM character for existing files without re-adding
- AcpFileSystemService detects BOM through ACP client with fallback
- Use line: null, limit: 1 for efficient BOM detection
- Add unit tests for AcpFileSystemService.detectFileBOM
- Add unit tests for EditTool BOM handling

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 11:23:02 +08:00
tanzhenxin
831d74dbfe feat: Preserve UTF-8 BOM when editing files (Fix #1672)
- Add FileEncoding constants (UTF8, UTF8_BOM)
- Add detectFileBOM() to detect existing file encoding
- Modify writeTextFile() to support BOM option
- Add defaultFileEncoding configuration option
- Preserve BOM when editing existing files
- Use configured encoding for new files
- Add comprehensive tests (unit, integration, e2e)
- Update documentation

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 10:32:20 +08:00
tanzhenxin
bdfeec24fb refactor(acp): centralize error codes and add RESOURCE_NOT_FOUND handling for file operations 2026-01-20 15:19:18 +08:00
tanzhenxin
d7b9466516 #1129, add usage update in ACP mode 2025-12-09 09:58:19 +08:00
tanzhenxin
3a7b1159ae feat: add usage metadata in acp session/update event 2025-12-05 15:40:49 +08:00
tanzhenxin
0a75d85ac9
Session-Level Conversation History Management (#1113) 2025-12-03 18:04:48 +08:00
Renamed from packages/cli/src/zed-integration/fileSystemService.ts (Browse further)