返回 DeepSeek-Reasonix
useAppRuntimeAdapter.ts
根目录 / desktop / frontend / src / app-runtime / useAppRuntimeAdapter.ts
1 import { useController } from "../lib/useController";
2
3 /**
4 * Narrows the legacy controller into explicit App-facing runtime ports.
5 * It does not own state: Controller stores remain authoritative and every
6 * source-bound operation still executes through the existing controller.
7 */
8 export function useAppRuntimeAdapter() {
9 const controller = useController();
10 return {
11 snapshot: {
12 state: controller.state,
13 liveStore: controller.liveStore,
14 activeTabId: controller.activeTabId,
15 notice: controller.notice,
16 },
17 composer: {
18 sendToTab: controller.sendToTab,
19 runShellForTab: controller.runShellForTab,
20 steerForTab: controller.steerForTab,
21 cancel: controller.cancel,
22 cancelForTab: controller.cancelForTab,
23 setControllerMode: controller.setControllerMode,
24 setControllerModeForTab: controller.setControllerModeForTab,
25 setCollaborationMode: controller.setCollaborationMode,
26 setCollaborationModeForTab: controller.setCollaborationModeForTab,
27 setToolApprovalMode: controller.setToolApprovalMode,
28 setToolApprovalModeForTab: controller.setToolApprovalModeForTab,
29 setComposerProfileForTab: controller.setComposerProfileForTab,
30 setGoalForTab: controller.setGoalForTab,
31 editGoalForTab: controller.editGoalForTab,
32 resumeGoalForTab: controller.resumeGoalForTab,
33 pauseGoalForTab: controller.pauseGoalForTab,
34 clearGoal: controller.clearGoal,
35 clearGoalForTab: controller.clearGoalForTab,
36 setModel: controller.setModel,
37 setModelForTab: controller.setModelForTab,
38 setEffort: controller.setEffort,
39 setEffortForTab: controller.setEffortForTab,
40 cancelJob: controller.cancelJob,
41 },
42 sessionActions: {
43 isPromptCurrentForTab: controller.isPromptCurrentForTab,
44 recoverDeliveryToTab: controller.recoverDeliveryToTab,
45 approveForTab: controller.approveForTab,
46 resolvePlanDecisionForTab: controller.resolvePlanDecisionForTab,
47 resolveRecoveryForTab: controller.resolveRecoveryForTab,
48 answerQuestionForTab: controller.answerQuestionForTab,
49 answerMCPInteractionForTab: controller.answerMCPInteractionForTab,
50 dismissExtensionForm: controller.dismissExtensionForm,
51 drainExtensionNotifications: controller.drainExtensionNotifications,
52 clearSession: controller.clearSession,
53 newSession: controller.newSession,
54 listSessions: controller.listSessions,
55 listTrashedSessions: controller.listTrashedSessions,
56 resumeSession: controller.resumeSession,
57 openChannelSession: controller.openChannelSession,
58 previewSession: controller.previewSession,
59 deleteSession: controller.deleteSession,
60 restoreSession: controller.restoreSession,
61 purgeTrashedSession: controller.purgeTrashedSession,
62 renameSession: controller.renameSession,
63 loadOlderHistory: controller.loadOlderHistory,
64 loadNewerHistory: controller.loadNewerHistory,
65 navigateToTurn: controller.navigateToTurn,
66 retrySessionHistory: controller.retrySessionHistory,
67 rewindForTab: controller.rewindForTab,
68 rewindForTabDetailed: controller.rewindForTabDetailed,
69 undoRewindForTab: controller.undoRewindForTab,
70 forkTurnForTab: controller.forkTurnForTab,
71 },
72 workspace: {
73 refreshMeta: controller.refreshMeta,
74 pickWorkspace: controller.pickWorkspace,
75 switchWorkspace: controller.switchWorkspace,
76 },
77 navigation: {
78 switchTab: controller.switchTab,
79 switchRemoteTab: controller.switchRemoteTab,
80 createIsolatedWorktree: controller.createIsolatedWorktree,
81 closeTab: controller.closeTab,
82 reorderTabs: controller.reorderTabs,
83 activateTopic: controller.activateTopic,
84 openCanonicalSession: controller.openCanonicalSession,
85 noteNavigationIntent: controller.noteNavigationIntent,
86 currentNavigationIntent: controller.currentNavigationIntent,
87 registeredNavigationIntent: controller.registeredNavigationIntent,
88 isNavigationIntentCurrent: controller.isNavigationIntentCurrent,
89 reassertVisibleTabAfterStaleNavigation: controller.reassertVisibleTabAfterStaleNavigation,
90 syncActiveTab: controller.syncActiveTab,
91 ensureBlankSurface: controller.ensureBlankSurface,
92 commitSingleSurfaceNavigation: controller.commitSingleSurfaceNavigation,
93 },
94 };
95 }
96
96 lines TYPESCRIPT