fix: 删除 edit tool 中的旧逻辑处理, 现在已经不需要这些处理了, 大模型够屌 (#1251)

* refactor: remove tab/quote normalization from FileEditTool

* fix: resolve pre-existing typecheck errors (zod v4 compat + RCS web exclude)
This commit is contained in:
claude-code-best
2026-05-28 21:52:31 +08:00
committed by GitHub
parent c982104476
commit a91653a0dd
14 changed files with 23 additions and 447 deletions

View File

@@ -4966,7 +4966,7 @@ function handleChannelEnable(
// channel messages queue at priority 'next' and are seen by the model on
// the turn after they arrive.
connection.client.setNotificationHandler(
ChannelMessageNotificationSchema(),
ChannelMessageNotificationSchema() as any,
async notification => {
const { content, meta } = notification.params
logMCPDebug(
@@ -5042,7 +5042,7 @@ function reregisterChannelHandlerAfterReconnect(
'Channel notifications re-registered after reconnect',
)
connection.client.setNotificationHandler(
ChannelMessageNotificationSchema(),
ChannelMessageNotificationSchema() as any,
async notification => {
const { content, meta } = notification.params
logMCPDebug(

View File

@@ -4,7 +4,7 @@ import { Suspense, use, useState } from 'react';
import { useTerminalSize } from '../hooks/useTerminalSize.js';
import { Box, Text } from '@anthropic/ink';
import type { FileEdit } from '@claude-code-best/builtin-tools/tools/FileEditTool/types.js';
import { findActualString, preserveQuoteStyle } from '@claude-code-best/builtin-tools/tools/FileEditTool/utils.js';
import { findActualString } from '@claude-code-best/builtin-tools/tools/FileEditTool/utils.js';
import { adjustHunkLineNumbers, CONTEXT_LINES, getPatchForDisplay } from '../utils/diff.js';
import { logError } from '../utils/log.js';
import { CHUNK_SIZE, openForScan, readCapped, scanForContext } from '../utils/readEditContext.js';
@@ -135,6 +135,5 @@ function diffToolInputsOnly(filePath: string, edits: FileEdit[]): DiffData {
function normalizeEdit(fileContent: string, edit: FileEdit): FileEdit {
const actualOld = findActualString(fileContent, edit.old_string) || edit.old_string;
const actualNew = preserveQuoteStyle(edit.old_string, actualOld, edit.new_string);
return { ...edit, old_string: actualOld, new_string: actualNew };
return { ...edit, old_string: actualOld };
}

View File

@@ -146,7 +146,7 @@ async function main(): Promise<void> {
shutdown1PEventLogging,
logForDebugging,
registerPermissionHandler(server, handler) {
server.setNotificationHandler(ChannelPermissionRequestNotificationSchema(), async notification =>
server.setNotificationHandler(ChannelPermissionRequestNotificationSchema() as any, async notification =>
handler(notification.params),
);
},

View File

@@ -47,7 +47,7 @@ export function useIdeAtMentioned(
// If we found a connected IDE client, register our handler
if (ideClient) {
ideClient.client.setNotificationHandler(
AtMentionedSchema(),
AtMentionedSchema() as any,
notification => {
if (ideClientRef.current !== ideClient) {
return

View File

@@ -27,7 +27,7 @@ export function useIdeLogging(mcpClients: MCPServerConnection[]): void {
if (ideClient) {
// Register the log event handler
ideClient.client.setNotificationHandler(
LogEventSchema(),
LogEventSchema() as any,
notification => {
const { eventName, eventData } = notification.params
logEvent(

View File

@@ -110,7 +110,7 @@ export function useIdeSelection(
// Register notification handler for selection_changed events
ideClient.client.setNotificationHandler(
SelectionChangedSchema(),
SelectionChangedSchema() as any,
notification => {
if (currentIDERef.current !== ideClient) {
return

View File

@@ -48,7 +48,7 @@ export function usePromptsFromClaudeInChrome(
}
if (mcpClient) {
mcpClient.client.setNotificationHandler(ClaudeInChromePromptNotificationSchema(), notification => {
mcpClient.client.setNotificationHandler(ClaudeInChromePromptNotificationSchema() as any, notification => {
if (mcpClientRef.current !== mcpClient) {
return;
}

View File

@@ -504,7 +504,7 @@ export function useManageMCPConnections(
case 'register':
logMCPDebug(client.name, 'Channel notifications registered')
client.client.setNotificationHandler(
ChannelMessageNotificationSchema(),
ChannelMessageNotificationSchema() as any,
async notification => {
const { content, meta } = notification.params
logMCPDebug(
@@ -539,7 +539,7 @@ export function useManageMCPConnections(
client.capabilities?.experimental?.['claude/channel/permission']
) {
client.client.setNotificationHandler(
ChannelPermissionNotificationSchema(),
ChannelPermissionNotificationSchema() as any,
async notification => {
const { request_id, behavior } = notification.params
const resolved =

View File

@@ -69,7 +69,7 @@ export function setupVscodeSdkMcp(sdkClients: MCPServerConnection[]): void {
vscodeMcpClient = client
client.client.setNotificationHandler(
LogEventNotificationSchema(),
LogEventNotificationSchema() as any,
async notification => {
const { eventName, eventData } = notification.params
logEvent(