Skip to content

Commit d8f7970

Browse files
committed
feat(desktop): add tmux-backed terminal sessions
1 parent 39754e7 commit d8f7970

24 files changed

Lines changed: 1423 additions & 524 deletions

File tree

apps/desktop/src/main/ipc.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ import type {
99
DesktopUpdateState,
1010
DesktopWindowState,
1111
} from '@sim/desktop-bridge'
12-
import { isTerminalToolName } from '@sim/terminal-protocol'
12+
import {
13+
isTerminalOperation,
14+
isTerminalToolName,
15+
type TerminalToolArgs,
16+
} from '@sim/terminal-protocol'
1317
import { isRecordLike } from '@sim/utils/object'
1418
import type { IpcMainEvent, IpcMainInvokeEvent, WebContents } from 'electron'
1519
import { ipcMain } from 'electron'
@@ -571,7 +575,12 @@ export function registerIpcHandlers(deps: IpcDeps): void {
571575
) {
572576
return { ok: false, error: `Unknown terminal tool: ${String(tool)}` }
573577
}
574-
return deps.terminal.executeTool(toolCallId, tool, isRecordLike(params) ? params : {})
578+
const call = isRecordLike(params) ? params : {}
579+
if (!isTerminalOperation(call.operation)) {
580+
return { ok: false, error: `Unknown terminal operation: ${String(call.operation)}` }
581+
}
582+
const args = isRecordLike(call.args) ? (call.args as TerminalToolArgs) : {}
583+
return deps.terminal.executeTool(toolCallId, call.operation, args)
575584
},
576585
},
577586
'terminal:get-tabs': {

0 commit comments

Comments
 (0)