MCPcopy Create free account
hub / github.com/IgorWarzocha/howcode / startProcess

Function startProcess

desktop/terminal/terminal-process.ts:20–128  ·  view source on GitHub ↗
(record: TerminalSessionRecord, reason: 'started' | 'restarted')

Source from the content-addressed store, hash-verified

18}
19
20export async function startProcess(record: TerminalSessionRecord, reason: 'started' | 'restarted') {
21 clearSessionBindings(record)
22 const adapter = getTerminalAdapter()
23 const request = {
24 projectId: record.snapshot.projectId,
25 sessionPath: record.snapshot.sessionPath,
26 cwd: record.snapshot.cwd,
27 launchMode: record.snapshot.launchMode,
28 cols: record.snapshot.cols,
29 rows: record.snapshot.rows,
30 } as TerminalOpenRequest
31 const command = resolveTerminalCommand(request)
32
33 try {
34 const processHandle = await adapter.spawn({
35 shell: command.shell,
36 args: command.args,
37 cwd: record.snapshot.cwd,
38 cols: record.snapshot.cols,
39 rows: record.snapshot.rows,
40 env: resolveTerminalEnv(request),
41 })
42
43 if (getTerminalSession(record.snapshot.sessionId) !== record) {
44 processHandle.kill()
45 return
46 }
47
48 record.process = processHandle
49 record.snapshot = {
50 ...record.snapshot,
51 status: 'running',
52 pid: processHandle.pid,
53 exitCode: null,
54 exitSignal: null,
55 updatedAt: nowIso(),
56 }
57
58 record.cleanup.push(
59 processHandle.onData((data) => {
60 record.snapshot = {
61 ...record.snapshot,
62 history: clampHistory(record.snapshot.history + data),
63 hasVisibleContent:
64 record.snapshot.hasVisibleContent ||
65 (!record.suppressOutputVisibilityUntilInput && hasVisibleTerminalContent(data)),
66 updatedAt: nowIso(),
67 }
68 persistSession(record)
69 emitTerminalEvent({
70 type: 'output',
71 sessionId: record.snapshot.sessionId,
72 data,
73 createdAt: nowIso(),
74 })
75 }),
76 )
77

Callers 1

ensureProcessStartedFunction · 0.90

Calls 15

getTerminalAdapterFunction · 0.90
resolveTerminalCommandFunction · 0.90
resolveTerminalEnvFunction · 0.90
getTerminalSessionFunction · 0.90
nowIsoFunction · 0.90
clampHistoryFunction · 0.90
persistSessionFunction · 0.90
emitTerminalEventFunction · 0.90
flushSessionFunction · 0.90
clearSessionBindingsFunction · 0.85
spawnMethod · 0.80

Tested by

no test coverage detected