@visorcraft/idlehands 1.1.5 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/agent.js +167 -71
  2. package/dist/agent.js.map +1 -1
  3. package/dist/bot/commands.js +2 -7
  4. package/dist/bot/commands.js.map +1 -1
  5. package/dist/bot/discord.js +12 -17
  6. package/dist/bot/discord.js.map +1 -1
  7. package/dist/bot/telegram.js +8 -11
  8. package/dist/bot/telegram.js.map +1 -1
  9. package/dist/cli/args.js +4 -1
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/commands/session.js +110 -1
  12. package/dist/cli/commands/session.js.map +1 -1
  13. package/dist/cli/setup.js +22 -2
  14. package/dist/cli/setup.js.map +1 -1
  15. package/dist/client.js +51 -3
  16. package/dist/client.js.map +1 -1
  17. package/dist/config.js +79 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/hooks/index.js +5 -0
  20. package/dist/hooks/index.js.map +1 -0
  21. package/dist/hooks/loader.js +58 -0
  22. package/dist/hooks/loader.js.map +1 -0
  23. package/dist/hooks/manager.js +175 -0
  24. package/dist/hooks/manager.js.map +1 -0
  25. package/dist/hooks/plugins/example-console.js +24 -0
  26. package/dist/hooks/plugins/example-console.js.map +1 -0
  27. package/dist/hooks/scaffold.js +53 -0
  28. package/dist/hooks/scaffold.js.map +1 -0
  29. package/dist/hooks/types.js +8 -0
  30. package/dist/hooks/types.js.map +1 -0
  31. package/dist/index.js +3 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/model-customization.js +48 -0
  34. package/dist/model-customization.js.map +1 -0
  35. package/dist/tui/controller.js +336 -16
  36. package/dist/tui/controller.js.map +1 -1
  37. package/dist/tui/keymap.js +15 -0
  38. package/dist/tui/keymap.js.map +1 -1
  39. package/dist/tui/render.js +100 -1
  40. package/dist/tui/render.js.map +1 -1
  41. package/dist/tui/state.js +69 -1
  42. package/dist/tui/state.js.map +1 -1
  43. package/dist/watchdog.js +11 -0
  44. package/dist/watchdog.js.map +1 -1
  45. package/package.json +1 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export const BASE_MAX_TOKENS = 16384;
2
+ export function supportsVisionModel(model, modelMeta, harness) {
3
+ if (typeof harness.supportsVision === 'boolean')
4
+ return harness.supportsVision;
5
+ if (typeof modelMeta?.vision === 'boolean')
6
+ return modelMeta.vision;
7
+ const inputModalities = modelMeta?.input_modalities;
8
+ if (Array.isArray(inputModalities) && inputModalities.some((m) => String(m).toLowerCase().includes('image'))) {
9
+ return true;
10
+ }
11
+ const modalities = modelMeta?.modalities;
12
+ if (Array.isArray(modalities) && modalities.some((m) => String(m).toLowerCase().includes('image'))) {
13
+ return true;
14
+ }
15
+ const id = model.toLowerCase();
16
+ if (/(vision|multimodal|\bvl\b|llava|qwen2\.5-vl|gpt-4o|gemini|claude-3)/i.test(id))
17
+ return true;
18
+ if (harness.id.includes('vision') || harness.id.includes('vl'))
19
+ return true;
20
+ return false;
21
+ }
22
+ function asNumber(...vals) {
23
+ for (const v of vals) {
24
+ const n = Number(v);
25
+ if (Number.isFinite(n) && n > 0)
26
+ return n;
27
+ }
28
+ return undefined;
29
+ }
30
+ export function deriveContextWindow(opts) {
31
+ const fallback = opts.fallback ?? 131072;
32
+ if (opts.explicitContextWindow) {
33
+ return opts.configuredContextWindow ?? opts.previousContextWindow ?? fallback;
34
+ }
35
+ const derived = asNumber(opts.modelMeta?.context_window, opts.modelMeta?.context_length, opts.modelMeta?.max_context_length);
36
+ return derived ?? opts.previousContextWindow ?? fallback;
37
+ }
38
+ export function deriveGenerationParams(opts) {
39
+ const base = opts.baseMaxTokens ?? BASE_MAX_TOKENS;
40
+ let maxTokens = opts.configuredMaxTokens ?? base;
41
+ if (maxTokens === base && opts.harness.defaults?.max_tokens && opts.harness.defaults.max_tokens > base) {
42
+ maxTokens = opts.harness.defaults.max_tokens;
43
+ }
44
+ const temperature = opts.configuredTemperature ?? opts.harness.defaults?.temperature ?? 0.2;
45
+ const topP = opts.configuredTopP ?? opts.harness.defaults?.top_p ?? 0.95;
46
+ return { maxTokens, temperature, topP };
47
+ }
48
+ //# sourceMappingURL=model-customization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-customization.js","sourceRoot":"","sources":["../src/model-customization.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,16 @@ import { createSession } from "../agent.js";
2
2
  import { decodeRawInput, resolveAction } from "./keymap.js";
3
3
  import { createInitialTuiState, reduceTuiState } from "./state.js";
4
4
  import { renderTui, setRenderTheme } from "./render.js";
5
+ import { calculateLayout } from "./layout.js";
5
6
  import { enterFullScreen, leaveFullScreen } from "./screen.js";
6
7
  import { saveSessionFile, lastSessionPath, projectSessionPath } from "../cli/session-state.js";
7
8
  import { loadBranches, executeBranchSelect } from "./branch-picker.js";
8
9
  import { ensureCommandsRegistered, allCommandNames, runShellCommand, runSlashCommand } from "./command-handler.js";
9
10
  import { projectDir } from "../utils.js";
10
- import { resolveWatchdogSettings } from "../watchdog.js";
11
+ import { formatWatchdogCancelMessage, resolveWatchdogSettings } from "../watchdog.js";
11
12
  import { TuiConfirmProvider } from "./confirm.js";
12
- /** Commands that need special TUI handling instead of the registry adapter. */
13
- const TUI_OVERRIDES = new Set(['/quit', '/exit', '/clear', '/help', '/branches']);
13
+ const THEME_OPTIONS = ['default', 'dark', 'light', 'minimal', 'hacker'];
14
+ const APPROVAL_OPTIONS = ['plan', 'default', 'auto-edit', 'yolo'];
14
15
  export class TuiController {
15
16
  config;
16
17
  state = createInitialTuiState();
@@ -54,7 +55,7 @@ export class TuiController {
54
55
  this.tabIndex = -1;
55
56
  const names = allCommandNames();
56
57
  // Add TUI-specific commands that aren't in the registry
57
- const extra = ['/quit', '/exit', '/clear', '/help'];
58
+ const extra = ['/quit', '/exit', '/clear', '/help', '/branches', '/steps', '/settings', '/hooks'];
58
59
  const all = [...new Set([...names, ...extra])];
59
60
  this.tabCandidates = all.filter(n => n.toLowerCase().startsWith(prefix)).sort();
60
61
  }
@@ -99,6 +100,214 @@ export class TuiController {
99
100
  this.dispatch({ type: 'ALERT_PUSH', id: `br_${Date.now()}`, level: result.level ?? 'error', text: result.message });
100
101
  }
101
102
  }
103
+ transcriptLineStarts() {
104
+ const starts = [];
105
+ let line = 0;
106
+ for (const item of this.state.transcript) {
107
+ starts.push(line);
108
+ const chunks = String(item.text ?? '').split('\n');
109
+ line += Math.max(1, chunks.length);
110
+ }
111
+ return starts;
112
+ }
113
+ buildStepNavigatorItems(query) {
114
+ const q = (query ?? '').trim().toLowerCase();
115
+ const starts = this.transcriptLineStarts();
116
+ const items = this.state.transcript.map((item, idx) => {
117
+ const preview = String(item.text ?? '').split(/\r?\n/)[0]?.trim() ?? '';
118
+ return {
119
+ id: item.id,
120
+ ts: item.ts,
121
+ role: item.role,
122
+ preview,
123
+ lineStart: starts[idx] ?? 0,
124
+ };
125
+ });
126
+ if (!q)
127
+ return items;
128
+ return items.filter((it) => (`${it.role} ${it.preview}`).toLowerCase().includes(q));
129
+ }
130
+ openStepNavigator(query = '') {
131
+ const items = this.buildStepNavigatorItems(query);
132
+ this.dispatch({ type: 'STEP_NAV_OPEN', items, query });
133
+ }
134
+ stepNavigatorQueryAppend(text) {
135
+ const current = this.state.stepNavigator?.query ?? '';
136
+ const next = `${current}${text}`;
137
+ this.openStepNavigator(next);
138
+ }
139
+ stepNavigatorQueryBackspace() {
140
+ const current = this.state.stepNavigator?.query ?? '';
141
+ const next = current.slice(0, -1);
142
+ this.openStepNavigator(next);
143
+ }
144
+ jumpToStepSelection() {
145
+ const nav = this.state.stepNavigator;
146
+ if (!nav?.items.length) {
147
+ this.dispatch({ type: 'STEP_NAV_CLOSE' });
148
+ return;
149
+ }
150
+ const selected = nav.items[nav.selectedIndex];
151
+ if (!selected) {
152
+ this.dispatch({ type: 'STEP_NAV_CLOSE' });
153
+ return;
154
+ }
155
+ const layout = calculateLayout(process.stdout.rows ?? 30, process.stdout.columns ?? 120);
156
+ const starts = this.transcriptLineStarts();
157
+ const totalLines = starts.length
158
+ ? (starts[starts.length - 1] ?? 0) +
159
+ Math.max(1, String(this.state.transcript[this.state.transcript.length - 1]?.text ?? '').split('\n').length)
160
+ : 0;
161
+ const desiredStart = Math.max(0, Math.min(selected.lineStart, Math.max(0, totalLines - layout.transcriptRows)));
162
+ const scrollBack = Math.max(0, totalLines - (desiredStart + layout.transcriptRows));
163
+ this.dispatch({ type: 'SCROLL_SET', panel: 'transcript', value: scrollBack });
164
+ this.dispatch({ type: 'STEP_NAV_CLOSE' });
165
+ this.dispatch({ type: 'ALERT_PUSH', id: `step_${Date.now()}`, level: 'info', text: `Jumped to ${selected.role}: ${selected.preview || '(no preview)'}` });
166
+ }
167
+ buildSettingsItems() {
168
+ const watchdog = resolveWatchdogSettings(undefined, this.config);
169
+ return [
170
+ {
171
+ key: 'theme',
172
+ label: 'Theme',
173
+ value: this.config.theme || 'default',
174
+ hint: 'Cycle TUI themes instantly.',
175
+ },
176
+ {
177
+ key: 'approval',
178
+ label: 'Approval mode',
179
+ value: this.config.approval_mode || 'default',
180
+ hint: 'Plan/default/auto-edit/yolo for next turns.',
181
+ },
182
+ {
183
+ key: 'watchdog_timeout',
184
+ label: 'Watchdog timeout',
185
+ value: `${watchdog.timeoutMs} ms`,
186
+ hint: 'Longer timeout helps with slower models.',
187
+ },
188
+ {
189
+ key: 'watchdog_compactions',
190
+ label: 'Max compactions',
191
+ value: String(watchdog.maxCompactions),
192
+ hint: 'Retries before watchdog cancellation.',
193
+ },
194
+ {
195
+ key: 'watchdog_grace',
196
+ label: 'Grace windows',
197
+ value: String(watchdog.idleGraceTimeouts),
198
+ hint: 'Extra idle windows before first compaction.',
199
+ },
200
+ {
201
+ key: 'debug_abort',
202
+ label: 'Debug abort reason',
203
+ value: watchdog.debugAbortReason ? 'on' : 'off',
204
+ hint: 'Show raw abort reason in cancellation messages.',
205
+ },
206
+ ];
207
+ }
208
+ openSettingsMenu() {
209
+ this.dispatch({ type: 'SETTINGS_OPEN', items: this.buildSettingsItems() });
210
+ }
211
+ refreshSettingsMenu(selectedIndex) {
212
+ if (!this.state.settingsMenu)
213
+ return;
214
+ this.dispatch({ type: 'SETTINGS_UPDATE', items: this.buildSettingsItems(), selectedIndex });
215
+ }
216
+ adjustSelectedSetting(delta) {
217
+ const menu = this.state.settingsMenu;
218
+ if (!menu?.items.length)
219
+ return;
220
+ const selected = menu.items[menu.selectedIndex];
221
+ if (!selected)
222
+ return;
223
+ switch (selected.key) {
224
+ case 'theme': {
225
+ const current = (this.config.theme || 'default');
226
+ const idx = Math.max(0, THEME_OPTIONS.indexOf(current));
227
+ const next = THEME_OPTIONS[(idx + (delta >= 0 ? 1 : -1) + THEME_OPTIONS.length) % THEME_OPTIONS.length];
228
+ this.config.theme = next;
229
+ setRenderTheme(next);
230
+ break;
231
+ }
232
+ case 'approval': {
233
+ const current = (this.config.approval_mode || 'default');
234
+ const idx = Math.max(0, APPROVAL_OPTIONS.indexOf(current));
235
+ const next = APPROVAL_OPTIONS[(idx + (delta >= 0 ? 1 : -1) + APPROVAL_OPTIONS.length) % APPROVAL_OPTIONS.length];
236
+ this.config.approval_mode = next;
237
+ break;
238
+ }
239
+ case 'watchdog_timeout': {
240
+ const cur = this.config.watchdog_timeout_ms ?? 120_000;
241
+ const step = cur >= 180_000 ? 60_000 : 30_000;
242
+ this.config.watchdog_timeout_ms = Math.max(30_000, cur + (delta >= 0 ? step : -step));
243
+ break;
244
+ }
245
+ case 'watchdog_compactions': {
246
+ const cur = this.config.watchdog_max_compactions ?? 3;
247
+ this.config.watchdog_max_compactions = Math.max(0, cur + (delta >= 0 ? 1 : -1));
248
+ break;
249
+ }
250
+ case 'watchdog_grace': {
251
+ const cur = this.config.watchdog_idle_grace_timeouts ?? 1;
252
+ this.config.watchdog_idle_grace_timeouts = Math.max(0, cur + (delta >= 0 ? 1 : -1));
253
+ break;
254
+ }
255
+ case 'debug_abort': {
256
+ this.config.debug_abort_reason = !(this.config.debug_abort_reason === true);
257
+ break;
258
+ }
259
+ default:
260
+ return;
261
+ }
262
+ this.refreshSettingsMenu(menu.selectedIndex);
263
+ }
264
+ buildHookInspectorLines(mode) {
265
+ const manager = this.session?.hookManager;
266
+ if (!manager || typeof manager.getSnapshot !== 'function') {
267
+ return ['Hooks are unavailable for this session.'];
268
+ }
269
+ const snap = manager.getSnapshot();
270
+ const totalEvents = Object.values(snap.eventCounts || {}).reduce((sum, n) => sum + Number(n || 0), 0);
271
+ if (mode === 'errors') {
272
+ return snap.recentErrors?.length
273
+ ? snap.recentErrors.map((x) => `• ${x}`)
274
+ : ['No recent hook errors.'];
275
+ }
276
+ if (mode === 'slow') {
277
+ return snap.recentSlowHandlers?.length
278
+ ? snap.recentSlowHandlers.map((x) => `• ${x}`)
279
+ : ['No recent slow hook handlers.'];
280
+ }
281
+ if (mode === 'plugins') {
282
+ if (!snap.plugins?.length)
283
+ return ['No hook plugins loaded.'];
284
+ const lines = [];
285
+ for (const p of snap.plugins) {
286
+ lines.push(`• ${p.name} (${p.source})`);
287
+ lines.push(` granted: ${p.grantedCapabilities.join(', ') || 'none'}`);
288
+ if (p.deniedCapabilities?.length)
289
+ lines.push(` denied: ${p.deniedCapabilities.join(', ')}`);
290
+ }
291
+ return lines;
292
+ }
293
+ return [
294
+ `Enabled: ${snap.enabled ? 'yes' : 'no'}`,
295
+ `Strict mode: ${snap.strict ? 'yes' : 'no'}`,
296
+ `Allowed capabilities: ${(snap.allowedCapabilities || []).join(', ')}`,
297
+ `Plugins: ${snap.plugins?.length ?? 0}`,
298
+ `Handlers: ${snap.handlers?.length ?? 0}`,
299
+ `Events observed: ${totalEvents}`,
300
+ `Recent errors: ${snap.recentErrors?.length ?? 0}`,
301
+ `Recent slow handlers: ${snap.recentSlowHandlers?.length ?? 0}`,
302
+ ];
303
+ }
304
+ openHooksInspector(mode = 'status') {
305
+ this.dispatch({
306
+ type: 'HOOKS_INSPECTOR_OPEN',
307
+ mode,
308
+ lines: this.buildHookInspectorLines(mode),
309
+ });
310
+ }
102
311
  /** Push a system-role transcript item and re-render. */
103
312
  pushSystemMessage(text) {
104
313
  const item = { id: `sys_${Date.now()}`, role: "system", text, ts: Date.now() };
@@ -141,7 +350,10 @@ export class TuiController {
141
350
  }
142
351
  if (head === "/help") {
143
352
  const cmds = allCommandNames().join(" ");
144
- this.pushSystemMessage(`Commands: ${cmds}\nShell: !<cmd> to run, !! to inject output\nTUI: /branches to browse conversation branches`);
353
+ this.pushSystemMessage(`Commands: ${cmds}\n` +
354
+ `Shell: !<cmd> to run, !! to inject output\n` +
355
+ `TUI: /branches [browse|checkout|merge], /steps, /settings, /hooks [status|errors|slow|plugins]\n` +
356
+ `Hotkeys: Ctrl+G step navigator, Ctrl+O quick settings`);
145
357
  return true;
146
358
  }
147
359
  if (head === "/branches") {
@@ -151,6 +363,25 @@ export class TuiController {
151
363
  await this.openBranchPicker(action);
152
364
  return true;
153
365
  }
366
+ if (head === '/steps') {
367
+ const query = line.replace(/^\/steps\s*/i, '').trim();
368
+ this.openStepNavigator(query);
369
+ return true;
370
+ }
371
+ if (head === '/settings') {
372
+ this.openSettingsMenu();
373
+ return true;
374
+ }
375
+ if (head === '/hooks') {
376
+ const modeRaw = line.replace(/^\/hooks\s*/i, '').trim().toLowerCase();
377
+ const mode = (modeRaw || 'status');
378
+ if (!['status', 'errors', 'slow', 'plugins'].includes(mode)) {
379
+ this.dispatch({ type: 'ALERT_PUSH', id: `hooks_${Date.now()}`, level: 'warn', text: 'Usage: /hooks [status|errors|slow|plugins]' });
380
+ return true;
381
+ }
382
+ this.openHooksInspector(mode);
383
+ return true;
384
+ }
154
385
  const result = await runSlashCommand(line, this.session, this.config, this.cleanupFn, () => this.saveTuiSessionSnapshot());
155
386
  if (!result.found) {
156
387
  this.dispatch({ type: "ALERT_PUSH", id: `cmd_${Date.now()}`, level: "warn", text: `Unknown command: ${head}` });
@@ -305,16 +536,13 @@ export class TuiController {
305
536
  }
306
537
  askComplete = true;
307
538
  if (isAbort) {
308
- const reason = String(msg).slice(0, 400);
309
- if (watchdogForcedCancel) {
310
- const base = `Cancelled by watchdog timeout after ${maxWatchdogCompacts} compaction attempts. Try a smaller scope, a faster model, or increase watchdog timeout/compaction settings.`;
311
- const text = debugAbortReason ? `${base}\n\n[debug] ${reason}` : base;
312
- this.dispatch({ type: "ALERT_PUSH", id: `err_${Date.now()}`, level: "error", text });
313
- }
314
- else {
315
- const text = debugAbortReason ? `Cancelled.\n\n[debug] ${reason}` : 'Cancelled.';
316
- this.dispatch({ type: "ALERT_PUSH", id: `err_${Date.now()}`, level: "error", text });
317
- }
539
+ const text = formatWatchdogCancelMessage({
540
+ watchdogForcedCancel,
541
+ maxCompactions: maxWatchdogCompacts,
542
+ debugAbortReason,
543
+ abortReason: msg,
544
+ });
545
+ this.dispatch({ type: "ALERT_PUSH", id: `err_${Date.now()}`, level: "error", text });
318
546
  }
319
547
  else {
320
548
  this.dispatch({ type: "ALERT_PUSH", id: `err_${Date.now()}`, level: "error", text: msg });
@@ -348,7 +576,7 @@ export class TuiController {
348
576
  type: "ALERT_PUSH",
349
577
  id: `info_${Date.now()}`,
350
578
  level: "info",
351
- text: "Input policy: Enter=send, Ctrl+J/Alt+Enter=newline, Up/Down=history.",
579
+ text: "Input: Enter=send, Ctrl+J/Alt+Enter=newline, Up/Down=history, Ctrl+G=steps, Ctrl+O=settings, /hooks inspector.",
352
580
  });
353
581
  const onSigwinch = () => {
354
582
  renderTui(this.state);
@@ -409,6 +637,90 @@ export class TuiController {
409
637
  }
410
638
  continue; // swallow all other input during picker
411
639
  }
640
+ // Step navigator: type to filter, arrows to select, Enter to jump.
641
+ if (this.state.stepNavigator) {
642
+ const nAction = resolveAction(key);
643
+ if (key.startsWith('text:')) {
644
+ const ch = key.slice(5);
645
+ if (ch === 'q' && !this.state.stepNavigator.query) {
646
+ this.dispatch({ type: 'STEP_NAV_CLOSE' });
647
+ }
648
+ else {
649
+ this.stepNavigatorQueryAppend(ch);
650
+ }
651
+ continue;
652
+ }
653
+ if (nAction === 'backspace') {
654
+ this.stepNavigatorQueryBackspace();
655
+ continue;
656
+ }
657
+ if (nAction === 'history_prev' || nAction === 'cursor_left') {
658
+ this.dispatch({ type: 'STEP_NAV_MOVE', delta: -1 });
659
+ continue;
660
+ }
661
+ if (nAction === 'history_next' || nAction === 'cursor_right') {
662
+ this.dispatch({ type: 'STEP_NAV_MOVE', delta: 1 });
663
+ continue;
664
+ }
665
+ if (nAction === 'scroll_up') {
666
+ this.dispatch({ type: 'STEP_NAV_MOVE', delta: -10 });
667
+ continue;
668
+ }
669
+ if (nAction === 'scroll_down') {
670
+ this.dispatch({ type: 'STEP_NAV_MOVE', delta: 10 });
671
+ continue;
672
+ }
673
+ if (nAction === 'send') {
674
+ this.jumpToStepSelection();
675
+ continue;
676
+ }
677
+ if (nAction === 'cancel' || nAction === 'quit') {
678
+ this.dispatch({ type: 'STEP_NAV_CLOSE' });
679
+ continue;
680
+ }
681
+ continue;
682
+ }
683
+ // Settings menu: arrows/select to adjust config quickly.
684
+ if (this.state.settingsMenu) {
685
+ const sAction = resolveAction(key);
686
+ if (sAction === 'history_prev') {
687
+ this.dispatch({ type: 'SETTINGS_MOVE', delta: -1 });
688
+ continue;
689
+ }
690
+ if (sAction === 'history_next') {
691
+ this.dispatch({ type: 'SETTINGS_MOVE', delta: 1 });
692
+ continue;
693
+ }
694
+ if (sAction === 'cursor_left') {
695
+ this.adjustSelectedSetting(-1);
696
+ continue;
697
+ }
698
+ if (sAction === 'cursor_right' || sAction === 'send') {
699
+ this.adjustSelectedSetting(1);
700
+ continue;
701
+ }
702
+ if (sAction === 'cancel' || sAction === 'quit' || key === 'text:q') {
703
+ this.dispatch({ type: 'SETTINGS_CLOSE' });
704
+ continue;
705
+ }
706
+ continue;
707
+ }
708
+ if (this.state.hooksInspector) {
709
+ const hAction = resolveAction(key);
710
+ if (hAction === 'history_prev' || hAction === 'scroll_up') {
711
+ this.dispatch({ type: 'HOOKS_INSPECTOR_MOVE', delta: -1 });
712
+ continue;
713
+ }
714
+ if (hAction === 'history_next' || hAction === 'scroll_down') {
715
+ this.dispatch({ type: 'HOOKS_INSPECTOR_MOVE', delta: 1 });
716
+ continue;
717
+ }
718
+ if (hAction === 'cancel' || hAction === 'quit' || key === 'text:q' || hAction === 'send') {
719
+ this.dispatch({ type: 'HOOKS_INSPECTOR_CLOSE' });
720
+ continue;
721
+ }
722
+ continue;
723
+ }
412
724
  if (key.startsWith("text:")) {
413
725
  this.resetTab();
414
726
  this.dispatch({ type: "USER_INPUT_INSERT", text: key.slice(5) });
@@ -424,6 +736,14 @@ export class TuiController {
424
736
  }
425
737
  // Any non-tab action resets tab cycling
426
738
  this.resetTab();
739
+ if (action === 'open_step_navigator') {
740
+ this.openStepNavigator();
741
+ continue;
742
+ }
743
+ if (action === 'open_settings') {
744
+ this.openSettingsMenu();
745
+ continue;
746
+ }
427
747
  if (action === "quit") {
428
748
  void cleanup();
429
749
  continue;