Files
hermes-agent/ui-opentui/src/boundary/runtime.ts
T
alt-glitch ae11a636dc feat(tui): run on Node 26 (one runtime), finalize copy UX, rename to ui-opentui
Ports the engine off the second JS runtime onto Node 26.3 (node:ffi) so the
repo ships a single JavaScript runtime: child_process for the gateway, vitest
for tests, an esbuild + Solid build step. Mouse selection copies the rendered
text you highlight, and the clipboard path is crash-proofed (a broken copy
pipe no longer quits the UI). Renames the engine dir ui-tui-opentui-v2/ ->
ui-opentui/ and updates the launcher/installer/Docker references.
2026-06-09 16:16:48 +00:00

18 lines
751 B
TypeScript

/**
* Runtime composition — the single edge where layers are provided and the
* program is run (spec v4 §3.1). Layers are provided HERE by the caller
* (the launcher entry), never inside components. Mirrors opencode
* `cli/tui/layer.ts:6` + `cli/cmd/tui.ts` runMain.
*/
import { Layer } from 'effect'
import type { GatewayService } from './gateway/GatewayService.ts'
/**
* The application layer. Phase 0 takes the GatewayService layer as a parameter
* so the entry can choose Fake (dev/test) or — from Phase 1 — the live
* `tui_gateway`-spawning layer. Compose additional boundary services
* (Config, Theme-with-IO) here as they land.
*/
export const makeAppLayer = (gateway: Layer.Layer<GatewayService>) => Layer.mergeAll(gateway)