mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-28 01:21:43 +00:00
refactor(tui): store-driven turn state + slash registry + module split
Hoist turn state from a 286-line hook into $turnState atom + turnController
singleton. createGatewayEventHandler becomes a typed dispatch over the
controller; its ctx shrinks from 30 fields to 5. Event-handler refs and 16
threaded actions are gone.
Fold three createSlash*Handler factories into a data-driven SlashCommand[]
registry under slash/commands/{core,session,ops}.ts. Aliases are data;
findSlashCommand does name+alias lookup. Shared guarded/guardedErr combinator
in slash/guarded.ts.
Split constants.ts + app/helpers.ts into config/ (timing/limits/env),
content/ (faces/placeholders/hotkeys/verbs/charms/fortunes), domain/ (roles/
details/messages/paths/slash/viewport/usage), protocol/ (interpolation/paste).
Type every RPC response in gatewayTypes.ts (26 new interfaces); drop all
`(r: any)` across slash + main app.
Shrink useMainApp from 1216 -> 646 lines by extracting useSessionLifecycle,
useSubmission, useConfigSync. Add <Fg> themed primitive and strip ~50
`as any` color casts.
Tests: 50 passing. Build + type-check clean.
This commit is contained in:
parent
9c71f3a6ea
commit
68ecdb6e26
56 changed files with 3666 additions and 4117 deletions
5
ui-tui/src/config/env.ts
Normal file
5
ui-tui/src/config/env.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
export const STARTUP_RESUME_ID = (process.env.HERMES_TUI_RESUME ?? '').trim()
|
||||
|
||||
export const MOUSE_TRACKING = !/^(1|true|yes|on)$/.test(
|
||||
(process.env.HERMES_TUI_DISABLE_MOUSE ?? '').trim().toLowerCase()
|
||||
)
|
||||
5
ui-tui/src/config/limits.ts
Normal file
5
ui-tui/src/config/limits.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
export const LARGE_PASTE = { chars: 8000, lines: 80 }
|
||||
export const LONG_MSG = 300
|
||||
export const MAX_HISTORY = 800
|
||||
export const THINKING_COT_MAX = 160
|
||||
export const WHEEL_SCROLL_STEP = 3
|
||||
2
ui-tui/src/config/timing.ts
Normal file
2
ui-tui/src/config/timing.ts
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
export const STREAM_BATCH_MS = 16
|
||||
export const REASONING_PULSE_MS = 700
|
||||
Loading…
Add table
Add a link
Reference in a new issue