mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-04 02:21:47 +00:00
- hermes-ink: export `withInkSuspended()` + `useExternalProcess()` that pause/resume Ink around an arbitrary external process (built on the existing enterAlternateScreen/exitAlternateScreen plumbing) - tui: `launchHermesCommand(args)` spawns the `hermes` binary with inherited stdio, with `HERMES_BIN` override for non-standard launches - tui: `/model` and `/setup` slash commands invoke the CLI wizards in-place, then re-preflight `setup.status` and auto-start a session on success — no more exit-and-relaunch to finish first-run setup - setup panel now advertises those slashes instead of only pointing users back at the shell
16 lines
498 B
TypeScript
16 lines
498 B
TypeScript
import { spawn } from 'node:child_process'
|
|
|
|
export interface LaunchResult {
|
|
code: null | number
|
|
error?: string
|
|
}
|
|
|
|
const resolveHermesBin = () => process.env.HERMES_BIN?.trim() || 'hermes'
|
|
|
|
export const launchHermesCommand = (args: string[]): Promise<LaunchResult> =>
|
|
new Promise(resolve => {
|
|
const child = spawn(resolveHermesBin(), args, { stdio: 'inherit' })
|
|
|
|
child.on('error', err => resolve({ code: null, error: err.message }))
|
|
child.on('exit', code => resolve({ code }))
|
|
})
|