diff --git a/electron/ipc/handlers.ts b/electron/ipc/handlers.ts index bbdda1cfb2..64504872bc 100644 --- a/electron/ipc/handlers.ts +++ b/electron/ipc/handlers.ts @@ -47,7 +47,6 @@ import { rewindToMessage, runChat, runChatDefault, - runTimelineOperation, selectSession, } from "../ai-edition/chat-service"; import { DocumentService } from "../ai-edition/document-service"; @@ -3422,8 +3421,6 @@ export function registerIpcHandlers( rewindToMessage(projectId, sessionId, messageId), compactNow: (projectId, sessionId) => compactSessionNow(projectId, sessionId, aiEditionLlmConfig), - runTimelineOperation: (projectId, sessionId, op, conversationMessage) => - runTimelineOperation(projectId, sessionId, op, conversationMessage, aiEditionDocuments), getContextUsage: getSessionContextUsage, runAiEditionChatDefault: (projectId, message, sink) => runChatDefault(projectId, message, aiEditionLlmConfig, sink), diff --git a/electron/ipc/nativeBridge.ts b/electron/ipc/nativeBridge.ts index c6e7a228f0..6997943dd6 100644 --- a/electron/ipc/nativeBridge.ts +++ b/electron/ipc/nativeBridge.ts @@ -79,18 +79,6 @@ export interface NativeBridgeContext { projectId: string, sessionId: string, ) => Promise; - runTimelineOperation: ( - projectId: string, - sessionId: string, - op: import("../../src/native/contracts").AxcutTimelineOperation, - conversationMessage: string, - ) => Promise< - | { - success: true; - result: import("../../src/native/contracts").AppliedTimelineOperation; - } - | { success: false; error: string } - >; getContextUsage: ( projectId: string, sessionId: string, @@ -247,7 +235,6 @@ export function registerNativeBridgeHandlers(context: NativeBridgeContext) { undoLastToolBatch: context.undoAiEditionToolBatch, rewindToMessage: context.rewindToMessage, compactNow: context.compactNow, - runTimelineOperation: context.runTimelineOperation, getContextUsage: context.getContextUsage, getDefaultChatHistory: context.getAiEditionChatHistoryDefault, clearDefaultChatHistory: context.clearAiEditionChatHistoryDefault, @@ -644,16 +631,6 @@ export function registerNativeBridgeHandlers(context: NativeBridgeContext) { sourceLanguage: request.payload.sourceLanguage, }), ); - case "timeline.run": - return createSuccessResponse( - requestId, - await aiEditionService.chatRunTimelineOperation( - request.payload.projectId, - request.payload.sessionId, - request.payload.operation, - request.payload.conversationMessage, - ), - ); default: return createErrorResponse( requestId, diff --git a/electron/native-bridge/services/aiEditionService.ts b/electron/native-bridge/services/aiEditionService.ts index 49b2a3aab1..343cc5913f 100644 --- a/electron/native-bridge/services/aiEditionService.ts +++ b/electron/native-bridge/services/aiEditionService.ts @@ -14,7 +14,6 @@ import type { AiEditionLlmDisconnectResult, AiEditionLlmSnapshot, AiEditionProjectSummary, - AxcutTimelineOperation, } from "../../../src/native/contracts"; import { type CaptionTranslateSegment, @@ -61,15 +60,6 @@ export interface AiEditionServiceOptions { } | { success: false; error: string }; compactNow: (projectId: string, sessionId: string) => Promise; - runTimelineOperation: ( - projectId: string, - sessionId: string, - operation: AxcutTimelineOperation, - conversationMessage: string, - ) => Promise< - | { success: true; result: { document: unknown; summary: string } } - | { success: false; error: string } - >; getContextUsage: ( projectId: string, sessionId: string, @@ -288,15 +278,6 @@ export class AiEditionService { return this.options.compactNow(projectId, sessionId); } - chatRunTimelineOperation( - projectId: string, - sessionId: string, - operation: AxcutTimelineOperation, - conversationMessage: string, - ) { - return this.options.runTimelineOperation(projectId, sessionId, operation, conversationMessage); - } - async chatRunDefault( projectId: string, message: string, diff --git a/src/components/ai-edition/LeftPanel.tsx b/src/components/ai-edition/LeftPanel.tsx index 3bb5024a13..855a28e110 100644 --- a/src/components/ai-edition/LeftPanel.tsx +++ b/src/components/ai-edition/LeftPanel.tsx @@ -7,13 +7,8 @@ import { useScopedT } from "@/contexts/I18nContext"; import { type AxcutAsset, ensureDocument } from "@/lib/ai-edition/schema"; import { useProjectStore } from "@/lib/ai-edition/store/projectStore"; import { useChatPromptBus } from "@/lib/ai-edition/store/useChatPromptBus"; -import { useOptimisticTimelineOps } from "@/lib/ai-edition/store/useOptimisticTimelineOps"; import { nativeBridgeClient } from "@/native/client"; -import type { - AiEditionLlmConfig, - AiEditionToolCallSummary, - AxcutTimelineOperation, -} from "@/native/contracts"; +import type { AiEditionLlmConfig, AiEditionToolCallSummary } from "@/native/contracts"; import { formatBytes } from "@/utils/formatBytes"; import { getReasoningEffortLabel, @@ -1139,32 +1134,6 @@ function ChatStripPanel() { [editingTitle, handleRename, cancelEditTitle], ); - const { queue: queueTimelineOp, busy: queueBusy } = useOptimisticTimelineOps( - projectId, - activeSessionId, - ); - const runAddTrim = useCallback(() => { - const raw = window.prompt(t("chat.addSkipRangePrompt"), "5-8"); - if (!raw) return; - const m = raw.match(/^\s*(\d+(?:\.\d+)?)\s*[-–]\s*(\d+(?:\.\d+)?)\s*$/); - if (!m) { - toast.error(t("chat.addSkipRangeFormatError")); - return; - } - const startSec = Number(m[1]); - const endSec = Number(m[2]); - if (!Number.isFinite(startSec) || !Number.isFinite(endSec) || endSec <= startSec) { - toast.error(t("chat.addSkipRangeOrderError")); - return; - } - const op: AxcutTimelineOperation = { - type: "add_trim_range", - startSec, - endSec, - }; - void queueTimelineOp(op, t("chat.addSkipRangeApplied", { startSec, endSec })); - }, [queueTimelineOp, t]); - return (