@staticpayload/zai-code 1.4.1 → 1.4.3

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.
package/dist/session.js CHANGED
@@ -48,6 +48,17 @@ exports.PLAN_SCHEMA = {
48
48
  error: { type: 'string' },
49
49
  },
50
50
  };
51
+ // Get default mode from settings (lazy load to avoid circular dependency)
52
+ function getDefaultModeFromSettings() {
53
+ try {
54
+ // Dynamic import to avoid circular dependency
55
+ const { getDefaultMode } = require('./settings');
56
+ return getDefaultMode();
57
+ }
58
+ catch {
59
+ return 'edit';
60
+ }
61
+ }
51
62
  // Create a new session state
52
63
  function createSession(workingDirectory) {
53
64
  return {
@@ -55,7 +66,7 @@ function createSession(workingDirectory) {
55
66
  lastPlan: null,
56
67
  lastDiff: null,
57
68
  pendingActions: null,
58
- mode: 'edit',
69
+ mode: getDefaultModeFromSettings(),
59
70
  dryRun: false,
60
71
  workingDirectory: workingDirectory || process.cwd(),
61
72
  currentIntent: null,
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export interface Settings {
8
8
  promptStyle: 'compact' | 'verbose';
9
9
  };
10
10
  execution: {
11
+ defaultMode: 'edit' | 'auto' | 'ask' | 'debug' | 'review' | 'explain';
11
12
  confirmationMode: 'strict' | 'normal';
12
13
  maxPlanIterations: number;
13
14
  allowShellExec: boolean;
@@ -40,6 +41,9 @@ export declare function markFirstRunComplete(): void;
40
41
  export declare function isFirstRun(): boolean;
41
42
  export declare function shouldShowColor(): boolean;
42
43
  export declare function shouldShowLogo(): boolean;
44
+ export declare function getDefaultMode(): 'edit' | 'auto' | 'ask' | 'debug' | 'review' | 'explain';
45
+ export declare function setDefaultMode(mode: 'edit' | 'auto' | 'ask' | 'debug' | 'review' | 'explain'): void;
46
+ export declare function setAsciiLogo(enabled: boolean): void;
43
47
  export declare function setNestedSetting(path: string, value: string): boolean;
44
48
  export declare function loadProjectSettings(projectPath?: string): Partial<Settings> | null;
45
49
  export declare function getEffectiveSettings(projectPath?: string): Settings;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,EAAE,EAAE;QACF,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAC7B,WAAW,EAAE,SAAS,GAAG,SAAS,CAAC;KACpC,CAAC;IACF,SAAS,EAAE;QACT,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,CAAC;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;QAC9B,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,eAAe,EAGvC,CAAC;AA6BF,eAAO,MAAM,gBAAgB,UAA4B,CAAC;AAI1D,wBAAgB,YAAY,IAAI,QAAQ,CAiBvC;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAcD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAOrD;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAExE;AAKD,wBAAgB,QAAQ,IAAI,MAAM,CAYjC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAS5C;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAKzC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAwBrE;AAGD,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAclF;AAGD,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,CASnE;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAU3F;AAGD,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAIhE"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,EAAE,EAAE;QACF,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;QAC7B,WAAW,EAAE,SAAS,GAAG,SAAS,CAAC;KACpC,CAAC;IACF,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;QACtE,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,CAAC;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;QAC9B,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,eAAe,EAGvC,CAAC;AA8BF,eAAO,MAAM,gBAAgB,UAA4B,CAAC;AAI1D,wBAAgB,YAAY,IAAI,QAAQ,CAiBvC;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAcD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAOrD;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAExE;AAKD,wBAAgB,QAAQ,IAAI,MAAM,CAYjC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAS5C;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAKzC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAEzF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAInG;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAInD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAwBrE;AAGD,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAclF;AAGD,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,CASnE;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAU3F;AAGD,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAIhE"}
package/dist/settings.js CHANGED
@@ -44,6 +44,9 @@ exports.markFirstRunComplete = markFirstRunComplete;
44
44
  exports.isFirstRun = isFirstRun;
45
45
  exports.shouldShowColor = shouldShowColor;
46
46
  exports.shouldShowLogo = shouldShowLogo;
47
+ exports.getDefaultMode = getDefaultMode;
48
+ exports.setDefaultMode = setDefaultMode;
49
+ exports.setAsciiLogo = setAsciiLogo;
47
50
  exports.setNestedSetting = setNestedSetting;
48
51
  exports.loadProjectSettings = loadProjectSettings;
49
52
  exports.getEffectiveSettings = getEffectiveSettings;
@@ -68,6 +71,7 @@ const DEFAULT_SETTINGS = {
68
71
  promptStyle: 'compact',
69
72
  },
70
73
  execution: {
74
+ defaultMode: 'edit',
71
75
  confirmationMode: 'strict',
72
76
  maxPlanIterations: 5,
73
77
  allowShellExec: false,
@@ -172,6 +176,19 @@ function shouldShowColor() {
172
176
  function shouldShowLogo() {
173
177
  return loadSettings().ui.asciiLogo === 'on';
174
178
  }
179
+ function getDefaultMode() {
180
+ return loadSettings().execution.defaultMode || 'edit';
181
+ }
182
+ function setDefaultMode(mode) {
183
+ const settings = loadSettings();
184
+ settings.execution.defaultMode = mode;
185
+ saveSettings(settings);
186
+ }
187
+ function setAsciiLogo(enabled) {
188
+ const settings = loadSettings();
189
+ settings.ui.asciiLogo = enabled ? 'on' : 'off';
190
+ saveSettings(settings);
191
+ }
175
192
  function setNestedSetting(path, value) {
176
193
  const settings = loadSettings();
177
194
  const parts = path.split('.');
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
package/dist/tui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AA4JD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqlCjE"}
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAsKD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+lCjE"}
package/dist/tui.js CHANGED
@@ -136,6 +136,15 @@ function getPlaceholder() {
136
136
  // Recent commands history
137
137
  const commandHistory = [];
138
138
  let historyIndex = -1;
139
+ // Big ASCII Logo
140
+ const ASCII_LOGO = `{bold}{cyan-fg}
141
+ ███████╗ █████╗ ██╗ ██████╗ ██████╗ ██████╗ ███████╗
142
+ ╚══███╔╝██╔══██╗██║ ██╔════╝██╔═══██╗██╔══██╗██╔════╝
143
+ ███╔╝ ███████║██║ ██║ ██║ ██║██║ ██║█████╗
144
+ ███╔╝ ██╔══██║██║ ██║ ██║ ██║██║ ██║██╔══╝
145
+ ███████╗██║ ██║██║ ╚██████╗╚██████╔╝██████╔╝███████╗
146
+ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝{/cyan-fg}{/bold}
147
+ {gray-fg}AI-native code editor v1.4.3{/gray-fg}`;
139
148
  // Animated Robot Mascot Frames
140
149
  const MASCOT_FRAMES = [
141
150
  // Frame 1 - looking right
@@ -168,7 +177,7 @@ const MASCOT_FRAMES = [
168
177
  {cyan-fg} ╰┬───┬╯ {/cyan-fg}`,
169
178
  ];
170
179
  // Compact header with mascot
171
- const HEADER_WITH_MASCOT = `{bold}{cyan-fg}zai{/cyan-fg}{blue-fg}·{/blue-fg}{cyan-fg}code{/cyan-fg}{/bold} {gray-fg}v1.4.0{/gray-fg}`;
180
+ const HEADER_WITH_MASCOT = `{bold}{cyan-fg}zai{/cyan-fg}{blue-fg}·{/blue-fg}{cyan-fg}code{/cyan-fg}{/bold} {gray-fg}v1.4.3{/gray-fg}`;
172
181
  const MINIMAL_LOGO = '{bold}{cyan-fg}⚡ zai·code{/cyan-fg}{/bold} {gray-fg}AI-native editor{/gray-fg}';
173
182
  // Welcome tips - rotate through these
174
183
  const WELCOME_TIPS = [
@@ -216,71 +225,39 @@ async function startTUI(options) {
216
225
  let spinnerFrame = 0;
217
226
  let isProcessing = false;
218
227
  let currentTip = Math.floor(Math.random() * WELCOME_TIPS.length);
219
- let mascotFrame = 0;
220
- let mascotInterval = null;
221
- // Header with animated mascot
228
+ // Header with ASCII logo
222
229
  const header = blessed.box({
223
230
  top: 0,
224
231
  left: 0,
225
232
  width: '100%',
226
- height: (0, settings_1.shouldShowLogo)() ? 8 : 2,
233
+ height: (0, settings_1.shouldShowLogo)() ? 9 : 2,
227
234
  tags: true,
228
235
  style: {
229
236
  fg: theme.fg,
230
237
  bg: theme.bg,
231
238
  },
232
239
  });
233
- // Update header with mascot animation
240
+ // Update header with logo
234
241
  function updateHeader() {
235
242
  if ((0, settings_1.shouldShowLogo)()) {
236
- const mascot = MASCOT_FRAMES[mascotFrame];
237
- const title = `{bold}{cyan-fg}zai{/cyan-fg}{blue-fg}·{/blue-fg}{cyan-fg}code{/cyan-fg}{/bold} {gray-fg}v1.4.0{/gray-fg}`;
238
- const subtitle = '{gray-fg}AI-native code editor{/gray-fg}';
239
- // Combine mascot with title
240
- const mascotLines = mascot.split('\n');
241
- const content = mascotLines.map((line, i) => {
242
- if (i === 1)
243
- return line + ' ' + title;
244
- if (i === 2)
245
- return line + ' ' + subtitle;
246
- return line;
247
- }).join('\n');
248
- header.setContent(content);
243
+ header.setContent(ASCII_LOGO);
244
+ header.height = 9;
249
245
  }
250
246
  else {
251
247
  header.setContent(MINIMAL_LOGO);
252
- }
253
- }
254
- // Start mascot animation
255
- function startMascotAnimation() {
256
- if (mascotInterval)
257
- return;
258
- mascotInterval = setInterval(() => {
259
- mascotFrame = (mascotFrame + 1) % MASCOT_FRAMES.length;
260
- updateHeader();
261
- screen.render();
262
- }, 2000); // Change every 2 seconds
263
- }
264
- // Stop mascot animation
265
- function stopMascotAnimation() {
266
- if (mascotInterval) {
267
- clearInterval(mascotInterval);
268
- mascotInterval = null;
248
+ header.height = 2;
269
249
  }
270
250
  }
271
251
  // Initialize header
272
252
  updateHeader();
273
- if ((0, settings_1.shouldShowLogo)()) {
274
- startMascotAnimation();
275
- }
276
253
  // Quick actions bar - keyboard shortcuts
277
254
  const quickActions = blessed.box({
278
- top: (0, settings_1.shouldShowLogo)() ? 8 : 2,
255
+ top: (0, settings_1.shouldShowLogo)() ? 9 : 2,
279
256
  left: 0,
280
257
  width: '100%',
281
258
  height: 1,
282
259
  tags: true,
283
- content: '{gray-fg}↑↓{/gray-fg} navigate {gray-fg}Tab{/gray-fg} complete {gray-fg}Enter{/gray-fg} select {gray-fg}Esc{/gray-fg} close',
260
+ content: '{gray-fg}↑↓{/gray-fg} navigate {gray-fg}Tab{/gray-fg} complete {gray-fg}Enter{/gray-fg} select {gray-fg}Esc{/gray-fg} close {gray-fg}Shift+Tab{/gray-fg} mode',
284
261
  style: {
285
262
  fg: theme.fg,
286
263
  bg: theme.bg,
@@ -288,7 +265,7 @@ async function startTUI(options) {
288
265
  padding: { left: 1 },
289
266
  });
290
267
  // Context/status line
291
- const contextTop = (0, settings_1.shouldShowLogo)() ? 9 : 3;
268
+ const contextTop = (0, settings_1.shouldShowLogo)() ? 10 : 3;
292
269
  const contextLine = blessed.box({
293
270
  top: contextTop,
294
271
  left: 0,
@@ -384,7 +361,7 @@ async function startTUI(options) {
384
361
  warning.setContent('{yellow-fg}⚠{/yellow-fg} Not a git repository. Changes cannot be tracked.');
385
362
  warning.show();
386
363
  }
387
- // Main output area
364
+ // Main output area - SCROLLABLE with mouse and keyboard
388
365
  const outputTop = warning.hidden ? warningTop : warningTop + 3;
389
366
  const output = blessed.log({
390
367
  top: outputTop,
@@ -394,8 +371,14 @@ async function startTUI(options) {
394
371
  tags: true,
395
372
  scrollable: true,
396
373
  alwaysScroll: true,
374
+ mouse: true,
375
+ keys: true,
376
+ vi: true,
397
377
  scrollbar: {
398
- ch: '',
378
+ ch: '',
379
+ track: {
380
+ bg: theme.bg,
381
+ },
399
382
  style: {
400
383
  fg: theme.highlight,
401
384
  bg: theme.bg
@@ -650,14 +633,15 @@ async function startTUI(options) {
650
633
  let autocompleteFiles = [];
651
634
  function updatePalette(filter) {
652
635
  const query = filter.replace(/^\//, '').toLowerCase();
653
- const filtered = COMMANDS.filter(c => c.name.startsWith(query) || c.description.toLowerCase().includes(query));
654
- const items = filtered.slice(0, 10).map(c => {
636
+ filteredCommandsCache = COMMANDS.filter(c => c.name.startsWith(query) || c.description.toLowerCase().includes(query)).slice(0, 10);
637
+ const items = filteredCommandsCache.map(c => {
655
638
  const shortcut = c.shortcut ? ` {gray-fg}${c.shortcut}{/gray-fg}` : '';
656
639
  return `{bold}{cyan-fg}/${c.name}{/cyan-fg}{/bold} ${c.description}${shortcut}`;
657
640
  });
658
641
  palette.setItems(items);
659
- if (filtered.length > 0) {
642
+ if (filteredCommandsCache.length > 0) {
660
643
  palette.select(0);
644
+ paletteSelectedIndex = 0;
661
645
  }
662
646
  }
663
647
  function updateFileAutocomplete(query) {
@@ -792,15 +776,16 @@ async function startTUI(options) {
792
776
  // Track palette selection index manually
793
777
  let paletteSelectedIndex = 0;
794
778
  let fileSelectedIndex = 0;
779
+ let filteredCommandsCache = [];
795
780
  // Screen-level key handling for arrow keys (works better than input keypress)
796
781
  screen.key(['up'], () => {
797
- if (showPalette) {
782
+ if (showPalette && filteredCommandsCache.length > 0) {
798
783
  paletteSelectedIndex = Math.max(0, paletteSelectedIndex - 1);
799
784
  palette.select(paletteSelectedIndex);
800
785
  screen.render();
801
786
  return;
802
787
  }
803
- if (showFileAutocomplete) {
788
+ if (showFileAutocomplete && autocompleteFiles.length > 0) {
804
789
  fileSelectedIndex = Math.max(0, fileSelectedIndex - 1);
805
790
  fileAutocomplete.select(fileSelectedIndex);
806
791
  screen.render();
@@ -815,15 +800,15 @@ async function startTUI(options) {
815
800
  }
816
801
  });
817
802
  screen.key(['down'], () => {
818
- if (showPalette) {
819
- const maxIndex = Math.min(COMMANDS.length - 1, 9);
803
+ if (showPalette && filteredCommandsCache.length > 0) {
804
+ const maxIndex = filteredCommandsCache.length - 1;
820
805
  paletteSelectedIndex = Math.min(maxIndex, paletteSelectedIndex + 1);
821
806
  palette.select(paletteSelectedIndex);
822
807
  screen.render();
823
808
  return;
824
809
  }
825
- if (showFileAutocomplete) {
826
- const maxIndex = Math.min(autocompleteFiles.length - 1, 9);
810
+ if (showFileAutocomplete && autocompleteFiles.length > 0) {
811
+ const maxIndex = autocompleteFiles.length - 1;
827
812
  fileSelectedIndex = Math.min(maxIndex, fileSelectedIndex + 1);
828
813
  fileAutocomplete.select(fileSelectedIndex);
829
814
  screen.render();
@@ -845,11 +830,9 @@ async function startTUI(options) {
845
830
  });
846
831
  // Tab completion
847
832
  screen.key(['tab'], () => {
848
- if (showPalette) {
849
- const filter = (input.getValue() || '').replace(/^\//, '').toLowerCase();
850
- const filtered = COMMANDS.filter(c => c.name.startsWith(filter) || c.description.toLowerCase().includes(filter));
851
- if (filtered[paletteSelectedIndex]) {
852
- const cmd = filtered[paletteSelectedIndex];
833
+ if (showPalette && filteredCommandsCache.length > 0) {
834
+ if (filteredCommandsCache[paletteSelectedIndex]) {
835
+ const cmd = filteredCommandsCache[paletteSelectedIndex];
853
836
  input.setValue('/' + cmd.name + ' ');
854
837
  togglePalette(false);
855
838
  paletteSelectedIndex = 0;
@@ -933,11 +916,9 @@ async function startTUI(options) {
933
916
  // Submit handler
934
917
  input.on('submit', async (value) => {
935
918
  const inputValue = value || input.getValue() || '';
936
- if (showPalette && inputValue.startsWith('/')) {
937
- const filter = inputValue.replace(/^\//, '').toLowerCase();
938
- const filteredCommands = COMMANDS.filter(c => c.name.startsWith(filter) || c.description.toLowerCase().includes(filter));
939
- if (filteredCommands[paletteSelectedIndex]) {
940
- const cmd = filteredCommands[paletteSelectedIndex];
919
+ if (showPalette && inputValue.startsWith('/') && filteredCommandsCache.length > 0) {
920
+ if (filteredCommandsCache[paletteSelectedIndex]) {
921
+ const cmd = filteredCommandsCache[paletteSelectedIndex];
941
922
  const needsArgs = ['mode', 'model', 'open', 'read', 'cat', 'close', 'do', 'run', 'ask', 'fix', 'exec', 'search'].includes(cmd.name);
942
923
  if (needsArgs && !inputValue.includes(' ')) {
943
924
  input.setValue('/' + cmd.name + ' ');
@@ -991,34 +972,37 @@ async function startTUI(options) {
991
972
  updatePlaceholder();
992
973
  screen.render();
993
974
  });
994
- // SETTINGS MODAL
975
+ // SETTINGS MODAL - Completely rewritten for proper keyboard handling
995
976
  function showSettingsMenu() {
996
- let settingsActive = true;
977
+ // Disable main input while settings is open
978
+ input.hide();
997
979
  let currentSettings = (0, settings_1.loadSettings)();
998
980
  const models = settings_1.AVAILABLE_MODELS;
981
+ const modes = ['edit', 'auto', 'ask', 'debug', 'review', 'explain'];
999
982
  let selectedIndex = 0;
1000
983
  const getListItems = () => [
1001
- `Model: ${currentSettings.model.current}`,
1002
- `Color: ${currentSettings.ui.color}`,
1003
- `Prompt: ${currentSettings.ui.promptStyle}`,
1004
- `Confirm: ${currentSettings.execution.confirmationMode}`,
1005
- `Shell Exec: ${currentSettings.execution.allowShellExec}`,
1006
- `Debug Log: ${currentSettings.debug.logging}`
984
+ `{cyan-fg}Model:{/cyan-fg} ${currentSettings.model.current}`,
985
+ `{cyan-fg}Default Mode:{/cyan-fg} ${currentSettings.execution.defaultMode || 'edit'}`,
986
+ `{cyan-fg}ASCII Logo:{/cyan-fg} ${currentSettings.ui.asciiLogo}`,
987
+ `{cyan-fg}Color:{/cyan-fg} ${currentSettings.ui.color}`,
988
+ `{cyan-fg}Prompt Style:{/cyan-fg} ${currentSettings.ui.promptStyle}`,
989
+ `{cyan-fg}Confirm Mode:{/cyan-fg} ${currentSettings.execution.confirmationMode}`,
990
+ `{cyan-fg}Shell Exec:{/cyan-fg} ${currentSettings.execution.allowShellExec}`,
991
+ `{cyan-fg}Debug Log:{/cyan-fg} ${currentSettings.debug.logging}`
1007
992
  ];
1008
993
  const modal = blessed.box({
1009
994
  parent: screen,
1010
995
  top: 'center',
1011
996
  left: 'center',
1012
- width: '50%',
1013
- height: '60%',
997
+ width: 50,
998
+ height: 16,
1014
999
  border: { type: 'line' },
1015
- label: ' Settings ',
1000
+ label: ' Settings ',
1016
1001
  tags: true,
1017
1002
  style: {
1018
1003
  bg: 'black',
1019
1004
  fg: 'white',
1020
1005
  border: { fg: 'cyan' },
1021
- label: { fg: 'cyan', bold: true }
1022
1006
  },
1023
1007
  });
1024
1008
  const list = blessed.list({
@@ -1027,8 +1011,10 @@ async function startTUI(options) {
1027
1011
  left: 1,
1028
1012
  right: 1,
1029
1013
  bottom: 3,
1030
- keys: false, // We handle keys manually
1031
- mouse: false,
1014
+ tags: true,
1015
+ mouse: true,
1016
+ keys: true,
1017
+ vi: true,
1032
1018
  style: {
1033
1019
  selected: { bg: 'blue', fg: 'white', bold: true },
1034
1020
  item: { fg: 'white', bg: 'black' }
@@ -1039,10 +1025,12 @@ async function startTUI(options) {
1039
1025
  parent: modal,
1040
1026
  bottom: 1,
1041
1027
  left: 1,
1042
- content: '↑↓:navigate Enter:toggle Esc:save & exit',
1028
+ tags: true,
1029
+ content: '{gray-fg}↑↓{/gray-fg} navigate {gray-fg}Enter{/gray-fg} toggle {gray-fg}Esc{/gray-fg} save & exit',
1043
1030
  style: { fg: 'gray', bg: 'black' }
1044
1031
  });
1045
1032
  list.select(0);
1033
+ list.focus();
1046
1034
  screen.render();
1047
1035
  function cycleValue() {
1048
1036
  if (selectedIndex === 0) { // Model
@@ -1050,21 +1038,30 @@ async function startTUI(options) {
1050
1038
  const nextIdx = (currIdx + 1) % models.length;
1051
1039
  currentSettings.model.current = models[nextIdx];
1052
1040
  }
1053
- else if (selectedIndex === 1) { // Color
1041
+ else if (selectedIndex === 1) { // Default Mode
1042
+ const currMode = currentSettings.execution.defaultMode || 'edit';
1043
+ const currIdx = modes.indexOf(currMode);
1044
+ const nextIdx = (currIdx + 1) % modes.length;
1045
+ currentSettings.execution.defaultMode = modes[nextIdx];
1046
+ }
1047
+ else if (selectedIndex === 2) { // ASCII Logo
1048
+ currentSettings.ui.asciiLogo = currentSettings.ui.asciiLogo === 'on' ? 'off' : 'on';
1049
+ }
1050
+ else if (selectedIndex === 3) { // Color
1054
1051
  const vals = ['auto', 'on', 'off'];
1055
1052
  const n = (vals.indexOf(currentSettings.ui.color) + 1) % 3;
1056
1053
  currentSettings.ui.color = vals[n];
1057
1054
  }
1058
- else if (selectedIndex === 2) { // Prompt
1055
+ else if (selectedIndex === 4) { // Prompt Style
1059
1056
  currentSettings.ui.promptStyle = currentSettings.ui.promptStyle === 'compact' ? 'verbose' : 'compact';
1060
1057
  }
1061
- else if (selectedIndex === 3) { // Confirm
1058
+ else if (selectedIndex === 5) { // Confirm Mode
1062
1059
  currentSettings.execution.confirmationMode = currentSettings.execution.confirmationMode === 'strict' ? 'normal' : 'strict';
1063
1060
  }
1064
- else if (selectedIndex === 4) { // Shell
1061
+ else if (selectedIndex === 6) { // Shell Exec
1065
1062
  currentSettings.execution.allowShellExec = !currentSettings.execution.allowShellExec;
1066
1063
  }
1067
- else if (selectedIndex === 5) { // Debug
1064
+ else if (selectedIndex === 7) { // Debug Log
1068
1065
  currentSettings.debug.logging = !currentSettings.debug.logging;
1069
1066
  }
1070
1067
  list.setItems(getListItems());
@@ -1072,46 +1069,63 @@ async function startTUI(options) {
1072
1069
  screen.render();
1073
1070
  }
1074
1071
  function closeSettings() {
1075
- if (!settingsActive)
1076
- return;
1077
- settingsActive = false;
1078
1072
  (0, settings_1.saveSettings)(currentSettings);
1073
+ // Update header if logo setting changed
1074
+ updateHeader();
1079
1075
  updateStatusBar();
1076
+ updateModeIndicator();
1080
1077
  screen.remove(modal);
1078
+ input.show();
1081
1079
  input.focus();
1082
1080
  screen.render();
1083
- output.log('{green-fg}Settings saved.{/green-fg}');
1081
+ output.log('{green-fg}Settings saved{/green-fg}');
1084
1082
  }
1085
- // Handle keys on screen level while settings is open
1086
- const settingsKeyHandler = (ch, key) => {
1087
- if (!settingsActive)
1088
- return;
1089
- if (key.name === 'escape') {
1090
- closeSettings();
1091
- }
1092
- else if (key.name === 'up') {
1093
- selectedIndex = Math.max(0, selectedIndex - 1);
1094
- list.select(selectedIndex);
1095
- screen.render();
1096
- }
1097
- else if (key.name === 'down') {
1098
- selectedIndex = Math.min(getListItems().length - 1, selectedIndex + 1);
1099
- list.select(selectedIndex);
1100
- screen.render();
1101
- }
1102
- else if (key.name === 'enter' || key.name === 'return') {
1103
- cycleValue();
1104
- }
1105
- };
1106
- screen.on('keypress', settingsKeyHandler);
1107
- // Cleanup when modal is destroyed
1108
- modal.on('destroy', () => {
1109
- screen.removeListener('keypress', settingsKeyHandler);
1083
+ // List key handlers
1084
+ list.key(['up', 'k'], () => {
1085
+ selectedIndex = Math.max(0, selectedIndex - 1);
1086
+ list.select(selectedIndex);
1087
+ screen.render();
1088
+ });
1089
+ list.key(['down', 'j'], () => {
1090
+ selectedIndex = Math.min(getListItems().length - 1, selectedIndex + 1);
1091
+ list.select(selectedIndex);
1092
+ screen.render();
1093
+ });
1094
+ list.key(['enter', 'space'], () => {
1095
+ cycleValue();
1110
1096
  });
1097
+ list.key(['escape', 'q'], () => {
1098
+ closeSettings();
1099
+ });
1100
+ // Mouse selection
1101
+ list.on('select', (item, index) => {
1102
+ selectedIndex = index;
1103
+ cycleValue();
1104
+ });
1105
+ }
1106
+ // Mode cycling with Shift+Tab
1107
+ const MODES = ['edit', 'auto', 'ask', 'debug', 'review', 'explain'];
1108
+ let currentModeIndex = MODES.indexOf(session.mode) || 0;
1109
+ function cycleMode(direction = 1) {
1110
+ currentModeIndex = (currentModeIndex + direction + MODES.length) % MODES.length;
1111
+ const newMode = MODES[currentModeIndex];
1112
+ session.mode = newMode;
1113
+ const modeIcons = {
1114
+ 'edit': '✏️', 'auto': '⚡', 'ask': '❓', 'debug': '🔧', 'review': '👁', 'explain': '📖'
1115
+ };
1116
+ output.log(`{cyan-fg}${modeIcons[newMode]} Mode: ${newMode}{/cyan-fg}`);
1117
+ updateContextLine();
1118
+ updateStatusBar();
1119
+ updateModeIndicator();
1120
+ updatePlaceholder();
1121
+ screen.render();
1111
1122
  }
1123
+ // Shift+Tab to cycle modes
1124
+ screen.key(['S-tab'], () => {
1125
+ cycleMode(1);
1126
+ });
1112
1127
  // Global Key Bindings
1113
1128
  screen.key(['C-c'], () => {
1114
- stopMascotAnimation();
1115
1129
  onExit?.();
1116
1130
  return process.exit(0);
1117
1131
  });
@@ -1186,7 +1200,6 @@ async function startTUI(options) {
1186
1200
  screen.key(['q'], () => {
1187
1201
  // Only quit if not focused on input
1188
1202
  if (screen.focused !== input) {
1189
- stopMascotAnimation();
1190
1203
  onExit?.();
1191
1204
  return process.exit(0);
1192
1205
  }
@@ -1201,7 +1214,7 @@ async function startTUI(options) {
1201
1214
  });
1202
1215
  // Cleanup on exit
1203
1216
  process.on('exit', () => {
1204
- stopMascotAnimation();
1217
+ // Cleanup if needed
1205
1218
  });
1206
1219
  screen.render();
1207
1220
  }