lsd-pi 1.3.2 → 1.3.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 (205) hide show
  1. package/dist/cli.js +2 -1
  2. package/dist/lsd-settings-manager.d.ts +2 -0
  3. package/dist/lsd-settings-manager.js +5 -0
  4. package/dist/resource-loader.js +33 -3
  5. package/dist/resources/extensions/browser-tools/tools/codegen.js +5 -5
  6. package/dist/resources/extensions/browser-tools/tools/navigation.js +107 -178
  7. package/dist/resources/extensions/browser-tools/tools/network-mock.js +112 -167
  8. package/dist/resources/extensions/browser-tools/tools/pages.js +182 -234
  9. package/dist/resources/extensions/browser-tools/tools/refs.js +202 -461
  10. package/dist/resources/extensions/browser-tools/tools/session.js +176 -323
  11. package/dist/resources/extensions/browser-tools/tools/state-persistence.js +91 -154
  12. package/dist/resources/extensions/browser-tools/utils.js +1 -1
  13. package/dist/resources/extensions/cache-timer/index.js +3 -2
  14. package/dist/resources/extensions/slash-commands/extension-manifest.json +2 -2
  15. package/dist/resources/extensions/slash-commands/fast.js +73 -0
  16. package/dist/resources/extensions/slash-commands/index.js +2 -0
  17. package/dist/resources/extensions/slash-commands/plan.js +37 -12
  18. package/dist/resources/extensions/subagent/background-job-manager.js +13 -0
  19. package/dist/resources/extensions/subagent/in-process-runner.js +387 -0
  20. package/dist/resources/extensions/subagent/index.js +278 -626
  21. package/dist/resources/extensions/subagent/legacy-runner.js +503 -0
  22. package/dist/resources/extensions/voice/index.js +96 -36
  23. package/dist/resources/extensions/voice/push-to-talk.js +26 -0
  24. package/dist/welcome-screen.js +2 -2
  25. package/package.json +1 -1
  26. package/packages/pi-agent-core/dist/agent.d.ts +19 -0
  27. package/packages/pi-agent-core/dist/agent.d.ts.map +1 -1
  28. package/packages/pi-agent-core/dist/agent.js +16 -0
  29. package/packages/pi-agent-core/dist/agent.js.map +1 -1
  30. package/packages/pi-agent-core/src/agent.ts +32 -2
  31. package/packages/pi-ai/dist/providers/openai-codex-responses.d.ts +34 -1
  32. package/packages/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
  33. package/packages/pi-ai/dist/providers/openai-codex-responses.js +32 -4
  34. package/packages/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
  35. package/packages/pi-ai/dist/providers/openai-codex-responses.test.js +127 -16
  36. package/packages/pi-ai/dist/providers/openai-codex-responses.test.js.map +1 -1
  37. package/packages/pi-ai/dist/providers/openai-responses.d.ts +8 -1
  38. package/packages/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
  39. package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.d.ts +2 -0
  40. package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.d.ts.map +1 -0
  41. package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.js +67 -0
  42. package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.js.map +1 -0
  43. package/packages/pi-ai/dist/providers/openai-responses.js +21 -3
  44. package/packages/pi-ai/dist/providers/openai-responses.js.map +1 -1
  45. package/packages/pi-ai/dist/providers/simple-options.d.ts.map +1 -1
  46. package/packages/pi-ai/dist/providers/simple-options.js +2 -0
  47. package/packages/pi-ai/dist/providers/simple-options.js.map +1 -1
  48. package/packages/pi-ai/dist/types.d.ts +5 -0
  49. package/packages/pi-ai/dist/types.d.ts.map +1 -1
  50. package/packages/pi-ai/dist/types.js.map +1 -1
  51. package/packages/pi-ai/src/providers/openai-codex-responses.test.ts +143 -20
  52. package/packages/pi-ai/src/providers/openai-codex-responses.ts +47 -4
  53. package/packages/pi-ai/src/providers/openai-responses.fast-mode.test.ts +73 -0
  54. package/packages/pi-ai/src/providers/openai-responses.ts +26 -3
  55. package/packages/pi-ai/src/providers/simple-options.ts +2 -0
  56. package/packages/pi-ai/src/types.ts +5 -0
  57. package/packages/pi-coding-agent/dist/core/keybindings.d.ts +1 -1
  58. package/packages/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
  59. package/packages/pi-coding-agent/dist/core/keybindings.js +2 -0
  60. package/packages/pi-coding-agent/dist/core/keybindings.js.map +1 -1
  61. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  62. package/packages/pi-coding-agent/dist/core/sdk.js +4 -2
  63. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  64. package/packages/pi-coding-agent/dist/core/settings-manager.collapse-tool-calls.test.d.ts +2 -0
  65. package/packages/pi-coding-agent/dist/core/settings-manager.collapse-tool-calls.test.d.ts.map +1 -0
  66. package/packages/pi-coding-agent/dist/core/settings-manager.collapse-tool-calls.test.js +35 -0
  67. package/packages/pi-coding-agent/dist/core/settings-manager.collapse-tool-calls.test.js.map +1 -0
  68. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +12 -0
  69. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  70. package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.d.ts +2 -0
  71. package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.d.ts.map +1 -0
  72. package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.js +35 -0
  73. package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.js.map +1 -0
  74. package/packages/pi-coding-agent/dist/core/settings-manager.js +24 -0
  75. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  76. package/packages/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
  77. package/packages/pi-coding-agent/dist/core/slash-commands.js +1 -0
  78. package/packages/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
  79. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  80. package/packages/pi-coding-agent/dist/core/system-prompt.js +6 -1
  81. package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  82. package/packages/pi-coding-agent/dist/core/tool-priority.d.ts +4 -0
  83. package/packages/pi-coding-agent/dist/core/tool-priority.d.ts.map +1 -0
  84. package/packages/pi-coding-agent/dist/core/tool-priority.js +18 -0
  85. package/packages/pi-coding-agent/dist/core/tool-priority.js.map +1 -0
  86. package/packages/pi-coding-agent/dist/core/tool-priority.test.d.ts +2 -0
  87. package/packages/pi-coding-agent/dist/core/tool-priority.test.d.ts.map +1 -0
  88. package/packages/pi-coding-agent/dist/core/tool-priority.test.js +27 -0
  89. package/packages/pi-coding-agent/dist/core/tool-priority.test.js.map +1 -0
  90. package/packages/pi-coding-agent/dist/core/tools/edit-diff.d.ts +5 -0
  91. package/packages/pi-coding-agent/dist/core/tools/edit-diff.d.ts.map +1 -1
  92. package/packages/pi-coding-agent/dist/core/tools/edit-diff.js +21 -0
  93. package/packages/pi-coding-agent/dist/core/tools/edit-diff.js.map +1 -1
  94. package/packages/pi-coding-agent/dist/core/tools/edit-diff.test.js +16 -1
  95. package/packages/pi-coding-agent/dist/core/tools/edit-diff.test.js.map +1 -1
  96. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.d.ts +2 -0
  97. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.d.ts.map +1 -0
  98. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.js +34 -0
  99. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.js.map +1 -0
  100. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.d.ts +45 -0
  101. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.d.ts.map +1 -0
  102. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.js +314 -0
  103. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.js.map +1 -0
  104. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.d.ts +2 -0
  105. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.d.ts.map +1 -0
  106. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.js +122 -0
  107. package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.js.map +1 -0
  108. package/packages/pi-coding-agent/dist/modes/interactive/components/diff.d.ts +7 -5
  109. package/packages/pi-coding-agent/dist/modes/interactive/components/diff.d.ts.map +1 -1
  110. package/packages/pi-coding-agent/dist/modes/interactive/components/diff.js +86 -28
  111. package/packages/pi-coding-agent/dist/modes/interactive/components/diff.js.map +1 -1
  112. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts +4 -0
  113. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  114. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +23 -10
  115. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  116. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +8 -0
  117. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  118. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +52 -6
  119. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  120. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +19 -0
  121. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  122. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +127 -14
  123. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  124. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.d.ts +14 -0
  125. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.d.ts.map +1 -0
  126. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.js +93 -0
  127. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.js.map +1 -0
  128. package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.d.ts +2 -0
  129. package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.d.ts.map +1 -0
  130. package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.js +328 -0
  131. package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.js.map +1 -0
  132. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  133. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +123 -0
  134. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  135. package/packages/pi-coding-agent/dist/modes/interactive/controllers/extension-ui-controller.js +1 -1
  136. package/packages/pi-coding-agent/dist/modes/interactive/controllers/extension-ui-controller.js.map +1 -1
  137. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.d.ts.map +1 -1
  138. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js +7 -0
  139. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js.map +1 -1
  140. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts +4 -0
  141. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
  142. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.js.map +1 -1
  143. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +9 -1
  144. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  145. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +103 -23
  146. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  147. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts.map +1 -1
  148. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +41 -0
  149. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -1
  150. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +4 -4
  151. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  152. package/packages/pi-coding-agent/package.json +1 -1
  153. package/packages/pi-coding-agent/src/core/keybindings.ts +4 -1
  154. package/packages/pi-coding-agent/src/core/sdk.ts +4 -2
  155. package/packages/pi-coding-agent/src/core/settings-manager.collapse-tool-calls.test.ts +46 -0
  156. package/packages/pi-coding-agent/src/core/settings-manager.fast-mode.test.ts +46 -0
  157. package/packages/pi-coding-agent/src/core/settings-manager.ts +36 -0
  158. package/packages/pi-coding-agent/src/core/slash-commands.ts +1 -0
  159. package/packages/pi-coding-agent/src/core/system-prompt.ts +6 -1
  160. package/packages/pi-coding-agent/src/core/tool-priority.test.ts +30 -0
  161. package/packages/pi-coding-agent/src/core/tool-priority.ts +17 -0
  162. package/packages/pi-coding-agent/src/core/tools/edit-diff.test.ts +20 -0
  163. package/packages/pi-coding-agent/src/core/tools/edit-diff.ts +26 -0
  164. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-summary-line.test.ts +41 -0
  165. package/packages/pi-coding-agent/src/modes/interactive/components/btw-overlay.test.ts +172 -0
  166. package/packages/pi-coding-agent/src/modes/interactive/components/btw-overlay.ts +402 -0
  167. package/packages/pi-coding-agent/src/modes/interactive/components/diff.ts +105 -28
  168. package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +21 -6
  169. package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +63 -6
  170. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +1262 -1138
  171. package/packages/pi-coding-agent/src/modes/interactive/components/tool-summary-line.ts +120 -0
  172. package/packages/pi-coding-agent/src/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.ts +396 -0
  173. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +530 -398
  174. package/packages/pi-coding-agent/src/modes/interactive/controllers/extension-ui-controller.ts +1 -1
  175. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.ts +7 -0
  176. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-state.ts +4 -0
  177. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +109 -23
  178. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +60 -1
  179. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +4 -4
  180. package/packages/pi-tui/dist/components/editor.js +3 -3
  181. package/packages/pi-tui/dist/components/editor.js.map +1 -1
  182. package/packages/pi-tui/src/components/editor.ts +3 -3
  183. package/pkg/dist/modes/interactive/theme/themes.js +4 -4
  184. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  185. package/pkg/package.json +1 -1
  186. package/src/resources/extensions/browser-tools/tools/codegen.ts +5 -5
  187. package/src/resources/extensions/browser-tools/tools/navigation.ts +118 -196
  188. package/src/resources/extensions/browser-tools/tools/network-mock.ts +114 -205
  189. package/src/resources/extensions/browser-tools/tools/pages.ts +183 -237
  190. package/src/resources/extensions/browser-tools/tools/refs.ts +193 -507
  191. package/src/resources/extensions/browser-tools/tools/session.ts +182 -321
  192. package/src/resources/extensions/browser-tools/tools/state-persistence.ts +94 -172
  193. package/src/resources/extensions/browser-tools/utils.ts +1 -1
  194. package/src/resources/extensions/cache-timer/index.ts +3 -2
  195. package/src/resources/extensions/slash-commands/extension-manifest.json +2 -2
  196. package/src/resources/extensions/slash-commands/fast.ts +89 -0
  197. package/src/resources/extensions/slash-commands/index.ts +2 -0
  198. package/src/resources/extensions/slash-commands/plan.ts +42 -12
  199. package/src/resources/extensions/subagent/background-job-manager.ts +28 -0
  200. package/src/resources/extensions/subagent/in-process-runner.ts +534 -0
  201. package/src/resources/extensions/subagent/index.ts +489 -799
  202. package/src/resources/extensions/subagent/legacy-runner.ts +607 -0
  203. package/src/resources/extensions/voice/index.ts +308 -238
  204. package/src/resources/extensions/voice/push-to-talk.ts +42 -0
  205. package/src/resources/extensions/voice/tests/push-to-talk.test.ts +109 -0
@@ -162,6 +162,13 @@ export class SettingsSelectorComponent extends Container {
162
162
  currentValue: config.hideThinkingBlock ? "true" : "false",
163
163
  values: ["true", "false"],
164
164
  },
165
+ {
166
+ id: "collapse-tool-calls",
167
+ label: "Collapse tool calls",
168
+ description: "Group low-priority tool calls into collapsed summary lines",
169
+ currentValue: config.collapseToolCalls ? "true" : "false",
170
+ values: ["true", "false"],
171
+ },
165
172
  {
166
173
  id: "tool-output-mode",
167
174
  label: "Tool output mode",
@@ -329,18 +336,36 @@ export class SettingsSelectorComponent extends Container {
329
336
  currentValue: config.codexRotate ? "true" : "false",
330
337
  values: ["true", "false"],
331
338
  });
332
- // Cache timer toggle (insert after codex-rotate)
339
+ // Fast mode toggle (insert after codex-rotate)
333
340
  const codexRotateIndex = items.findIndex((item) => item.id === "codex-rotate");
334
341
  items.splice(codexRotateIndex + 1, 0, {
342
+ id: "fast-mode",
343
+ label: "Fast mode",
344
+ description: "OpenAI/Codex supported models use priority service tier",
345
+ currentValue: config.fastMode ? "true" : "false",
346
+ values: ["true", "false"],
347
+ });
348
+ // Cache timer toggle (insert after fast-mode)
349
+ const fastModeIndex = items.findIndex((item) => item.id === "fast-mode");
350
+ items.splice(fastModeIndex + 1, 0, {
335
351
  id: "cache-timer",
336
352
  label: "Cache timer",
337
353
  description: "Show elapsed time since last response in the footer (tracks 5-min cache window)",
338
354
  currentValue: config.cacheTimer ? "true" : "false",
339
355
  values: ["true", "false"],
340
356
  });
341
- // Pin last prompt toggle (insert after cache-timer)
357
+ // Verbose footer toggle (insert after cache-timer)
342
358
  const cacheTimerIdx = items.findIndex((item) => item.id === "cache-timer");
343
359
  items.splice(cacheTimerIdx + 1, 0, {
360
+ id: "verbose-footer",
361
+ label: "Verbose footer",
362
+ description: "Show extra footer stats like input, output, and cache tokens",
363
+ currentValue: config.verboseFooter ? "true" : "false",
364
+ values: ["true", "false"],
365
+ });
366
+ // Pin last prompt toggle (insert after verbose-footer)
367
+ const verboseFooterIdx = items.findIndex((item) => item.id === "verbose-footer");
368
+ items.splice(verboseFooterIdx + 1, 0, {
344
369
  id: "pin-last-prompt",
345
370
  label: "Pin last prompt",
346
371
  description: "Show your last sent message above the editor so you remember the topic",
@@ -365,18 +390,27 @@ export class SettingsSelectorComponent extends Container {
365
390
  currentValue: config.autoMemory ? "true" : "false",
366
391
  values: ["true", "false"],
367
392
  });
368
- // Telegram relay auto-connect toggle (insert after auto-memory)
393
+ // Notification sound toggle (insert after auto-memory)
369
394
  const autoMemoryIdx = items.findIndex((item) => item.id === "auto-memory");
370
395
  items.splice(autoMemoryIdx + 1, 0, {
396
+ id: "notification-sound",
397
+ label: "Notification sound",
398
+ description: "Play a terminal bell when the agent finishes responding",
399
+ currentValue: config.notificationSound ? "true" : "false",
400
+ values: ["true", "false"],
401
+ });
402
+ // Telegram relay auto-connect toggle (insert after notification-sound)
403
+ const notificationSoundIdx = items.findIndex((item) => item.id === "notification-sound");
404
+ items.splice(notificationSoundIdx + 1, 0, {
371
405
  id: "telegram-live-relay-autoconnect",
372
406
  label: "Telegram autoconnect",
373
407
  description: "Auto-run /lsd telegram connect on startup",
374
408
  currentValue: config.telegramLiveRelayAutoConnect ? "true" : "false",
375
409
  values: ["true", "false"],
376
410
  });
377
- // RTK toggle (insert after cache-timer)
378
- const cacheTimerIndex = items.findIndex((item) => item.id === "cache-timer");
379
- items.splice(cacheTimerIndex + 1, 0, {
411
+ // RTK toggle (insert after verbose-footer)
412
+ const verboseFooterIndex = items.findIndex((item) => item.id === "verbose-footer");
413
+ items.splice(verboseFooterIndex + 1, 0, {
380
414
  id: "rtk",
381
415
  label: "RTK",
382
416
  description: "Enable RTK shell-command compression (requires restart)",
@@ -501,9 +535,15 @@ export class SettingsSelectorComponent extends Container {
501
535
  case "codex-rotate":
502
536
  callbacks.onCodexRotateChange(newValue === "true");
503
537
  break;
538
+ case "fast-mode":
539
+ callbacks.onFastModeChange(newValue === "true");
540
+ break;
504
541
  case "cache-timer":
505
542
  callbacks.onCacheTimerChange(newValue === "true");
506
543
  break;
544
+ case "verbose-footer":
545
+ callbacks.onVerboseFooterChange(newValue === "true");
546
+ break;
507
547
  case "pin-last-prompt":
508
548
  callbacks.onPinLastPromptChange(newValue === "true");
509
549
  break;
@@ -513,6 +553,9 @@ export class SettingsSelectorComponent extends Container {
513
553
  case "auto-memory":
514
554
  callbacks.onAutoMemoryChange(newValue === "true");
515
555
  break;
556
+ case "notification-sound":
557
+ callbacks.onNotificationSoundChange(newValue === "true");
558
+ break;
516
559
  case "telegram-live-relay-autoconnect":
517
560
  callbacks.onTelegramLiveRelayAutoConnectChange(newValue === "true");
518
561
  break;
@@ -537,6 +580,9 @@ export class SettingsSelectorComponent extends Container {
537
580
  case "hide-thinking":
538
581
  callbacks.onHideThinkingBlockChange(newValue === "true");
539
582
  break;
583
+ case "collapse-tool-calls":
584
+ callbacks.onCollapseToolCallsChange(newValue === "true");
585
+ break;
540
586
  case "tool-output-mode":
541
587
  callbacks.onToolOutputModeChange(newValue);
542
588
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"settings-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThinkingLevel } from \"@gsd/pi-agent-core\";\nimport type { Transport } from \"@gsd/pi-ai\";\nimport {\n\ttype Component,\n\tContainer,\n\tgetCapabilities,\n\ttype SelectItem,\n\tSelectList,\n\ttype SettingItem,\n\tSettingsList,\n\tSpacer,\n\tText,\n} from \"@gsd/pi-tui\";\nimport { getSelectListTheme, getSettingsListTheme, getThemeAccentInfo, getThemeAccentLabel, theme } from \"../theme/theme.js\";\nimport { DynamicBorder } from \"./dynamic-border.js\";\n\nexport const THINKING_DESCRIPTIONS: Record<ThinkingLevel, string> = {\n\toff: \"No reasoning\",\n\tadaptive: \"Automatically adapt per turn (client or provider resolved)\",\n\tlow: \"Light reasoning (~2k tokens)\",\n\tmedium: \"Moderate reasoning (~8k tokens)\",\n\thigh: \"Deep reasoning (~16k tokens)\",\n\txhigh: \"Maximum reasoning (~32k tokens)\",\n};\n\nexport interface SettingsConfig {\n\tautoCompact: boolean;\n\tautoCompactThresholdPercent: number;\n\tdefaultModel: string;\n\tclassifierModel: string;\n\tadaptiveClassifierModel: string;\n\tbudgetSubagentModel: string;\n\tplanModeReasoningModel: string;\n\tplanModeReviewModel: string;\n\tplanModeCodingModel: string;\n\tautoSuggestPlanMode: boolean;\n\tautoSwitchPlanModel: boolean;\n\tshowImages: boolean;\n\tautoResizeImages: boolean;\n\tblockImages: boolean;\n\tenableSkillCommands: boolean;\n\ttoolProfile: \"balanced\" | \"standard\" | \"full\";\n\tcodexRotate: boolean;\n\tcacheTimer: boolean;\n\tpinLastPrompt: boolean;\n\tsteeringMode: \"all\" | \"one-at-a-time\";\n\tfollowUpMode: \"all\" | \"one-at-a-time\";\n\ttransport: Transport;\n\tthinkingLevel: ThinkingLevel;\n\tanthropicAdaptiveByDefault: boolean;\n\tclientAdaptiveByDefault: boolean;\n\tavailableThinkingLevels: ThinkingLevel[];\n\tcurrentTheme: string;\n\tavailableThemes: string[];\n\tcurrentThemeAccent: string;\n\tavailableThemeAccents: string[];\n\thideThinkingBlock: boolean;\n\tcollapseChangelog: boolean;\n\tdoubleEscapeAction: \"fork\" | \"tree\" | \"none\";\n\ttreeFilterMode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\tshowHardwareCursor: boolean;\n\teditorPaddingX: number;\n\tautocompleteMaxVisible: number;\n\trespectGitignoreInPicker: boolean;\n\tquietStartup: boolean;\n\tclearOnShrink: boolean;\n\ttimestampFormat: \"date-time-iso\" | \"date-time-us\";\n\ttoolOutputMode: \"minimal\" | \"normal\";\n\trtk: boolean;\n\teditorScheme: \"auto\" | \"vscode\" | \"cursor\" | \"zed\" | \"jetbrains\" | \"sublime\" | \"file\";\n\tautoDream: boolean;\n\tautoMemory: boolean;\n\ttelegramLiveRelayAutoConnect: boolean;\n\tsandboxEnabled?: boolean;\n\tsandboxNetworkMode?: \"allow\" | \"ask\" | \"deny\";\n\tdefaultModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tclassifierModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tadaptiveClassifierModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tbudgetSubagentModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tplanModeReasoningModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tplanModeReviewModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tplanModeCodingModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n}\n\nexport interface SettingsCallbacks {\n\tonAutoCompactChange: (enabled: boolean) => void;\n\tonAutoCompactThresholdPercentChange: (percent: number) => void;\n\tonDefaultModelChange: (modelRef: string) => void;\n\tonClassifierModelChange: (modelRef: string) => void;\n\tonAdaptiveClassifierModelChange: (modelRef: string) => void;\n\tonBudgetSubagentModelChange: (modelRef: string) => void;\n\tonPlanModeReasoningModelChange: (modelRef: string) => void;\n\tonPlanModeReviewModelChange: (modelRef: string) => void;\n\tonPlanModeCodingModelChange: (modelRef: string) => void;\n\tonAutoSuggestPlanModeChange: (enabled: boolean) => void;\n\tonAutoSwitchPlanModelChange: (enabled: boolean) => void;\n\tonAutoDreamChange: (enabled: boolean) => void;\n\tonAutoMemoryChange: (enabled: boolean) => void;\n\tonTelegramLiveRelayAutoConnectChange: (enabled: boolean) => void;\n\tonSandboxEnabledChange?: (enabled: boolean) => void;\n\tonSandboxNetworkModeChange?: (mode: \"allow\" | \"ask\" | \"deny\") => void;\n\tonShowImagesChange: (enabled: boolean) => void;\n\tonAutoResizeImagesChange: (enabled: boolean) => void;\n\tonBlockImagesChange: (blocked: boolean) => void;\n\tonEnableSkillCommandsChange: (enabled: boolean) => void;\n\tonToolProfileChange: (profile: \"balanced\" | \"standard\" | \"full\") => void;\n\tonCodexRotateChange: (enabled: boolean) => void;\n\tonCacheTimerChange: (enabled: boolean) => void;\n\tonPinLastPromptChange: (enabled: boolean) => void;\n\tonSteeringModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonFollowUpModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonTransportChange: (transport: Transport) => void;\n\tonThinkingLevelChange: (level: ThinkingLevel) => void;\n\tonAnthropicAdaptiveByDefaultChange: (enabled: boolean) => void;\n\tonClientAdaptiveByDefaultChange: (enabled: boolean) => void;\n\tonThemeChange: (theme: string) => void;\n\tonThemePreview?: (theme: string) => void;\n\tonThemeAccentChange: (accent: string) => void;\n\tonHideThinkingBlockChange: (hidden: boolean) => void;\n\tonCollapseChangelogChange: (collapsed: boolean) => void;\n\tonDoubleEscapeActionChange: (action: \"fork\" | \"tree\" | \"none\") => void;\n\tonTreeFilterModeChange: (mode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\") => void;\n\tonShowHardwareCursorChange: (enabled: boolean) => void;\n\tonEditorPaddingXChange: (padding: number) => void;\n\tonAutocompleteMaxVisibleChange: (maxVisible: number) => void;\n\tonRespectGitignoreInPickerChange: (enabled: boolean) => void;\n\tonQuietStartupChange: (enabled: boolean) => void;\n\tonClearOnShrinkChange: (enabled: boolean) => void;\n\tonTimestampFormatChange: (format: \"date-time-iso\" | \"date-time-us\") => void;\n\tonToolOutputModeChange: (mode: \"minimal\" | \"normal\") => void;\n\tonRtkChange: (enabled: boolean) => void;\n\tonEditorSchemeChange: (scheme: \"auto\" | \"vscode\" | \"cursor\" | \"zed\" | \"jetbrains\" | \"sublime\" | \"file\") => void;\n\tonCancel: () => void;\n}\n\n/**\n * A submenu component for selecting from a list of options.\n */\nexport class SelectSubmenu extends Container {\n\tprivate selectList: SelectList;\n\n\tconstructor(\n\t\ttitle: string,\n\t\tdescription: string,\n\t\toptions: SelectItem[],\n\t\tcurrentValue: string,\n\t\tonSelect: (value: string) => void,\n\t\tonCancel: () => void,\n\t\tonSelectionChange?: (value: string) => void,\n\t) {\n\t\tsuper();\n\n\t\t// Title\n\t\tthis.addChild(new Text(theme.bold(theme.fg(\"accent\", title)), 0, 0));\n\n\t\t// Description\n\t\tif (description) {\n\t\t\tthis.addChild(new Spacer(1));\n\t\t\tthis.addChild(new Text(theme.fg(\"muted\", description), 0, 0));\n\t\t}\n\n\t\t// Spacer\n\t\tthis.addChild(new Spacer(1));\n\n\t\t// Select list\n\t\tthis.selectList = new SelectList(options, Math.min(options.length, 10), getSelectListTheme());\n\n\t\t// Pre-select current value\n\t\tconst currentIndex = options.findIndex((o) => o.value === currentValue);\n\t\tif (currentIndex !== -1) {\n\t\t\tthis.selectList.setSelectedIndex(currentIndex);\n\t\t}\n\n\t\tthis.selectList.onSelect = (item) => {\n\t\t\tonSelect(item.value);\n\t\t};\n\n\t\tthis.selectList.onCancel = onCancel;\n\n\t\tif (onSelectionChange) {\n\t\t\tthis.selectList.onSelectionChange = (item) => {\n\t\t\t\tonSelectionChange(item.value);\n\t\t\t};\n\t\t}\n\n\t\tthis.addChild(this.selectList);\n\n\t\t// Hint\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", \" Enter to select · Esc to go back\"), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.selectList.handleInput(data);\n\t}\n}\n\n/**\n * Main settings selector component.\n */\nexport class SettingsSelectorComponent extends Container {\n\tprivate settingsList: SettingsList;\n\n\tconstructor(config: SettingsConfig, callbacks: SettingsCallbacks) {\n\t\tsuper();\n\n\t\tconst supportsImages = getCapabilities().images;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"autocompact\",\n\t\t\t\tlabel: \"Auto-compact\",\n\t\t\t\tdescription: \"Automatically compact context when it gets too large\",\n\t\t\t\tcurrentValue: config.autoCompact ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autocompact-threshold\",\n\t\t\t\tlabel: \"Auto-compact threshold\",\n\t\t\t\tdescription: \"Trigger auto-compaction when context usage reaches this percentage\",\n\t\t\t\tcurrentValue: String(config.autoCompactThresholdPercent),\n\t\t\t\tvalues: [\"70\", \"75\", \"80\", \"85\", \"90\", \"95\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"default-model\",\n\t\t\t\tlabel: \"Default model\",\n\t\t\t\tdescription: \"Model LSD should use by default when opening a new session\",\n\t\t\t\tcurrentValue: config.defaultModel,\n\t\t\t\tsubmenu: config.defaultModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"classifier-model\",\n\t\t\t\tlabel: \"Classifier model\",\n\t\t\t\tdescription: \"Model used for Auto permission mode approvals\",\n\t\t\t\tcurrentValue: config.classifierModel,\n\t\t\t\tsubmenu: config.classifierModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"adaptive-classifier-model\",\n\t\t\t\tlabel: \"Adaptive classifier model\",\n\t\t\t\tdescription: \"LLM used to pick reasoning level when adaptive mode is on (required for non-Anthropic models)\",\n\t\t\t\tcurrentValue: config.adaptiveClassifierModel,\n\t\t\t\tsubmenu: config.adaptiveClassifierModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"budget-subagent-model\",\n\t\t\t\tlabel: \"Budget subagent model\",\n\t\t\t\tdescription: \"Cheap model alias for subagents like scout\",\n\t\t\t\tcurrentValue: config.budgetSubagentModel,\n\t\t\t\tsubmenu: config.budgetSubagentModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"plan-mode-reasoning-model\",\n\t\t\t\tlabel: \"Plan reasoning model\",\n\t\t\t\tdescription: \"Optional provider/id model to switch to after plan approval\",\n\t\t\t\tcurrentValue: config.planModeReasoningModel,\n\t\t\t\tsubmenu: config.planModeReasoningModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"plan-mode-review-model\",\n\t\t\t\tlabel: \"Plan review model\",\n\t\t\t\tdescription: \"Optional provider/id model for the other-agent plan review step\",\n\t\t\t\tcurrentValue: config.planModeReviewModel,\n\t\t\t\tsubmenu: config.planModeReviewModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"plan-mode-coding-model\",\n\t\t\t\tlabel: \"Plan coding model\",\n\t\t\t\tdescription: \"Optional provider/id model for subagent plan execution\",\n\t\t\t\tcurrentValue: config.planModeCodingModel,\n\t\t\t\tsubmenu: config.planModeCodingModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-suggest-plan-mode\",\n\t\t\t\tlabel: \"Auto-suggest plan mode\",\n\t\t\t\tdescription: \"Ask the LLM to suggest plan mode for large/complex tasks\",\n\t\t\t\tcurrentValue: config.autoSuggestPlanMode ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-switch-plan-model\",\n\t\t\t\tlabel: \"OpusPlan mode\",\n\t\t\t\tdescription: \"On plan entry: auto-switch to Plan reasoning model (must be set). On approval: offer new session with Plan coding model + worker agent\",\n\t\t\t\tcurrentValue: config.autoSwitchPlanModel ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"steering-mode\",\n\t\t\t\tlabel: \"Steering mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.\",\n\t\t\t\tcurrentValue: config.steeringMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"follow-up-mode\",\n\t\t\t\tlabel: \"Follow-up mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t`${process.platform === \"darwin\" ? \"⌥Enter\" : \"Alt+Enter\"} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.`,\n\t\t\t\tcurrentValue: config.followUpMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"transport\",\n\t\t\t\tlabel: \"Transport\",\n\t\t\t\tdescription: \"Preferred transport for providers that support multiple transports\",\n\t\t\t\tcurrentValue: config.transport,\n\t\t\t\tvalues: [\"sse\", \"websocket\", \"auto\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"hide-thinking\",\n\t\t\t\tlabel: \"Hide thinking\",\n\t\t\t\tdescription: \"Hide thinking blocks in assistant responses\",\n\t\t\t\tcurrentValue: config.hideThinkingBlock ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"tool-output-mode\",\n\t\t\t\tlabel: \"Tool output mode\",\n\t\t\t\tdescription: \"Minimal hides collapsed previews until Ctrl+O. Normal shows collapsed previews.\",\n\t\t\t\tcurrentValue: config.toolOutputMode,\n\t\t\t\tvalues: [\"minimal\", \"normal\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"sandbox-enabled\",\n\t\t\t\tlabel: \"Sandbox\",\n\t\t\t\tdescription: \"Enable OS-level sandboxing for bash execution on supported platforms\",\n\t\t\t\tcurrentValue: (config.sandboxEnabled ?? true) ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"sandbox-network\",\n\t\t\t\tlabel: \"Sandbox network\",\n\t\t\t\tdescription: \"Allow, ask, or deny network access for sandboxed bash commands\",\n\t\t\t\tcurrentValue: config.sandboxNetworkMode ?? \"ask\",\n\t\t\t\tvalues: [\"ask\", \"allow\", \"deny\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"collapse-changelog\",\n\t\t\t\tlabel: \"Collapse changelog\",\n\t\t\t\tdescription: \"Show condensed changelog after updates\",\n\t\t\t\tcurrentValue: config.collapseChangelog ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"quiet-startup\",\n\t\t\t\tlabel: \"Quiet startup\",\n\t\t\t\tdescription: \"Disable verbose printing at startup\",\n\t\t\t\tcurrentValue: config.quietStartup ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"double-escape-action\",\n\t\t\t\tlabel: \"Double-escape action\",\n\t\t\t\tdescription: \"Action when pressing Escape twice with empty editor\",\n\t\t\t\tcurrentValue: config.doubleEscapeAction,\n\t\t\t\tvalues: [\"tree\", \"fork\", \"none\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"tree-filter-mode\",\n\t\t\t\tlabel: \"Tree filter mode\",\n\t\t\t\tdescription: \"Default filter when opening /tree\",\n\t\t\t\tcurrentValue: config.treeFilterMode,\n\t\t\t\tvalues: [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"thinking\",\n\t\t\t\tlabel: \"Thinking level\",\n\t\t\t\tdescription: \"Reasoning depth for thinking-capable models\",\n\t\t\t\tcurrentValue: config.thinkingLevel,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Thinking Level\",\n\t\t\t\t\t\t\"Select reasoning depth for thinking-capable models\",\n\t\t\t\t\t\tconfig.availableThinkingLevels.map((level) => ({\n\t\t\t\t\t\t\tvalue: level,\n\t\t\t\t\t\t\tlabel: level,\n\t\t\t\t\t\t\tdescription: THINKING_DESCRIPTIONS[level],\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThinkingLevelChange(value as ThinkingLevel);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"anthropic-adaptive-default\",\n\t\t\t\tlabel: \"Anthropic adaptive\",\n\t\t\t\tdescription: \"Default to adaptive thinking for supported Anthropic models\",\n\t\t\t\tcurrentValue: config.anthropicAdaptiveByDefault ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"client-adaptive-default\",\n\t\t\t\tlabel: \"Adaptive by default\",\n\t\t\t\tdescription: \"Default to adaptive thinking for all reasoning-capable models\",\n\t\t\t\tcurrentValue: config.clientAdaptiveByDefault ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"theme\",\n\t\t\t\tlabel: \"Theme\",\n\t\t\t\tdescription: \"Color theme for the interface\",\n\t\t\t\tcurrentValue: config.currentTheme,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Theme\",\n\t\t\t\t\t\t\"Select color theme\",\n\t\t\t\t\t\tconfig.availableThemes.map((t) => ({\n\t\t\t\t\t\t\tvalue: t,\n\t\t\t\t\t\t\tlabel: t,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThemeChange(value);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t// Restore original theme on cancel\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(currentValue);\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\t// Preview theme on selection change\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"theme-accent\",\n\t\t\t\tlabel: \"Main accent\",\n\t\t\t\tdescription: \"Primary accent color used by the interface\",\n\t\t\t\tcurrentValue: config.currentThemeAccent,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Main Accent\",\n\t\t\t\t\t\t\"Select the primary accent color\",\n\t\t\t\t\t\tconfig.availableThemeAccents.map((accent) => ({\n\t\t\t\t\t\t\tvalue: accent,\n\t\t\t\t\t\t\tlabel: getThemeAccentLabel(accent as Parameters<typeof getThemeAccentInfo>[0]),\n\t\t\t\t\t\t\tdescription: getThemeAccentInfo(accent as Parameters<typeof getThemeAccentInfo>[0]).description,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThemeAccentChange(value);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\t// Only show image toggle if terminal supports it\n\t\tif (supportsImages) {\n\t\t\t// Insert after autocompact threshold\n\t\t\titems.splice(2, 0, {\n\t\t\t\tid: \"show-images\",\n\t\t\t\tlabel: \"Show images\",\n\t\t\t\tdescription: \"Render images inline in terminal\",\n\t\t\t\tcurrentValue: config.showImages ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t});\n\t\t}\n\n\t\t// Image auto-resize toggle (always available, affects both attached and read images)\n\t\titems.splice(supportsImages ? 3 : 2, 0, {\n\t\t\tid: \"auto-resize-images\",\n\t\t\tlabel: \"Auto-resize images\",\n\t\t\tdescription: \"Resize large images to 2000x2000 max for better model compatibility\",\n\t\t\tcurrentValue: config.autoResizeImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Block images toggle (always available, insert after auto-resize-images)\n\t\tconst autoResizeIndex = items.findIndex((item) => item.id === \"auto-resize-images\");\n\t\titems.splice(autoResizeIndex + 1, 0, {\n\t\t\tid: \"block-images\",\n\t\t\tlabel: \"Block images\",\n\t\t\tdescription: \"Prevent images from being sent to LLM providers\",\n\t\t\tcurrentValue: config.blockImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Skill commands toggle (insert after block-images)\n\t\tconst blockImagesIndex = items.findIndex((item) => item.id === \"block-images\");\n\t\titems.splice(blockImagesIndex + 1, 0, {\n\t\t\tid: \"skill-commands\",\n\t\t\tlabel: \"Skill commands\",\n\t\t\tdescription: \"Register skills as /skill:name commands\",\n\t\t\tcurrentValue: config.enableSkillCommands ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Tool profile selector (insert after skill-commands)\n\t\tconst skillCommandsIndex = items.findIndex((item) => item.id === \"skill-commands\");\n\t\titems.splice(skillCommandsIndex + 1, 0, {\n\t\t\tid: \"tool-profile\",\n\t\t\tlabel: \"Tool profile\",\n\t\t\tdescription: \"Choose the default active tool set: balanced for day-to-day coding, standard for broader coverage, full to enable all available tools\",\n\t\t\tcurrentValue: config.toolProfile,\n\t\t\tvalues: [\"balanced\", \"standard\", \"full\"],\n\t\t});\n\n\t\t// Codex rotate toggle (insert after tool-profile)\n\t\tconst toolProfileIndex = items.findIndex((item) => item.id === \"tool-profile\");\n\t\titems.splice(toolProfileIndex + 1, 0, {\n\t\t\tid: \"codex-rotate\",\n\t\t\tlabel: \"Codex rotate\",\n\t\t\tdescription: \"Enable automatic Codex account rotation extension\",\n\t\t\tcurrentValue: config.codexRotate ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Cache timer toggle (insert after codex-rotate)\n\t\tconst codexRotateIndex = items.findIndex((item) => item.id === \"codex-rotate\");\n\t\titems.splice(codexRotateIndex + 1, 0, {\n\t\t\tid: \"cache-timer\",\n\t\t\tlabel: \"Cache timer\",\n\t\t\tdescription: \"Show elapsed time since last response in the footer (tracks 5-min cache window)\",\n\t\t\tcurrentValue: config.cacheTimer ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Pin last prompt toggle (insert after cache-timer)\n\t\tconst cacheTimerIdx = items.findIndex((item) => item.id === \"cache-timer\");\n\t\titems.splice(cacheTimerIdx + 1, 0, {\n\t\t\tid: \"pin-last-prompt\",\n\t\t\tlabel: \"Pin last prompt\",\n\t\t\tdescription: \"Show your last sent message above the editor so you remember the topic\",\n\t\t\tcurrentValue: config.pinLastPrompt ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Auto-dream toggle (insert after pin-last-prompt)\n\t\tconst pinLastPromptIdx = items.findIndex((item) => item.id === \"pin-last-prompt\");\n\t\titems.splice(pinLastPromptIdx + 1, 0, {\n\t\t\tid: \"auto-dream\",\n\t\t\tlabel: \"Auto dream\",\n\t\t\tdescription: \"Automatically consolidate and refine memory after sessions\",\n\t\t\tcurrentValue: config.autoDream ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Auto-memory toggle (insert after auto-dream)\n\t\tconst autoDreamIdx = items.findIndex((item) => item.id === \"auto-dream\");\n\t\titems.splice(autoDreamIdx + 1, 0, {\n\t\t\tid: \"auto-memory\",\n\t\t\tlabel: \"Auto memory\",\n\t\t\tdescription: \"Automatically extract and save memories from session transcripts\",\n\t\t\tcurrentValue: config.autoMemory ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Telegram relay auto-connect toggle (insert after auto-memory)\n\t\tconst autoMemoryIdx = items.findIndex((item) => item.id === \"auto-memory\");\n\t\titems.splice(autoMemoryIdx + 1, 0, {\n\t\t\tid: \"telegram-live-relay-autoconnect\",\n\t\t\tlabel: \"Telegram autoconnect\",\n\t\t\tdescription: \"Auto-run /lsd telegram connect on startup\",\n\t\t\tcurrentValue: config.telegramLiveRelayAutoConnect ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// RTK toggle (insert after cache-timer)\n\t\tconst cacheTimerIndex = items.findIndex((item) => item.id === \"cache-timer\");\n\t\titems.splice(cacheTimerIndex + 1, 0, {\n\t\t\tid: \"rtk\",\n\t\t\tlabel: \"RTK\",\n\t\t\tdescription: \"Enable RTK shell-command compression (requires restart)\",\n\t\t\tcurrentValue: config.rtk ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Hardware cursor toggle (insert after rtk)\n\t\tconst rtkIndex = items.findIndex((item) => item.id === \"rtk\");\n\t\titems.splice(rtkIndex + 1, 0, {\n\t\t\tid: \"show-hardware-cursor\",\n\t\t\tlabel: \"Show hardware cursor\",\n\t\t\tdescription: \"Show the terminal cursor while still positioning it for IME support\",\n\t\t\tcurrentValue: config.showHardwareCursor ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Editor padding toggle (insert after show-hardware-cursor)\n\t\tconst hardwareCursorIndex = items.findIndex((item) => item.id === \"show-hardware-cursor\");\n\t\titems.splice(hardwareCursorIndex + 1, 0, {\n\t\t\tid: \"editor-padding\",\n\t\t\tlabel: \"Editor padding\",\n\t\t\tdescription: \"Horizontal padding for input editor (0-3)\",\n\t\t\tcurrentValue: String(config.editorPaddingX),\n\t\t\tvalues: [\"0\", \"1\", \"2\", \"3\"],\n\t\t});\n\n\t\t// Autocomplete max visible toggle (insert after editor-padding)\n\t\tconst editorPaddingIndex = items.findIndex((item) => item.id === \"editor-padding\");\n\t\titems.splice(editorPaddingIndex + 1, 0, {\n\t\t\tid: \"autocomplete-max-visible\",\n\t\t\tlabel: \"Autocomplete max items\",\n\t\t\tdescription: \"Max visible items in autocomplete dropdown (3-20)\",\n\t\t\tcurrentValue: String(config.autocompleteMaxVisible),\n\t\t\tvalues: [\"3\", \"5\", \"7\", \"10\", \"15\", \"20\"],\n\t\t});\n\n\t\t// Clear on shrink toggle (insert after autocomplete-max-visible)\n\t\tconst autocompleteIndex = items.findIndex((item) => item.id === \"autocomplete-max-visible\");\n\t\titems.splice(autocompleteIndex + 1, 0, {\n\t\t\tid: \"clear-on-shrink\",\n\t\t\tlabel: \"Clear on shrink\",\n\t\t\tdescription: \"Clear empty rows when content shrinks (may cause flicker)\",\n\t\t\tcurrentValue: config.clearOnShrink ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Respect .gitignore in file picker toggle (insert after clear-on-shrink)\n\t\tconst clearOnShrinkIndex = items.findIndex((item) => item.id === \"clear-on-shrink\");\n\t\titems.splice(clearOnShrinkIndex + 1, 0, {\n\t\t\tid: \"respect-gitignore-in-picker\",\n\t\t\tlabel: \"Respect .gitignore in file picker\",\n\t\t\tdescription: \"When false, @ file picker shows gitignored files too\",\n\t\t\tcurrentValue: config.respectGitignoreInPicker ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Timestamp format (insert after respect-gitignore-in-picker)\n\t\tconst gitignoreIndex = items.findIndex((item) => item.id === \"respect-gitignore-in-picker\");\n\t\titems.splice(gitignoreIndex + 1, 0, {\n\t\t\tid: \"timestamp-format\",\n\t\t\tlabel: \"Timestamp format\",\n\t\t\tdescription: \"Time format for message timestamps\",\n\t\t\tcurrentValue: config.timestampFormat,\n\t\t\tvalues: [\"date-time-iso\", \"date-time-us\"],\n\t\t});\n\n\t\t// Editor link scheme (insert after timestamp-format)\n\t\tconst timestampIndex = items.findIndex((item) => item.id === \"timestamp-format\");\n\t\titems.splice(timestampIndex + 1, 0, {\n\t\t\tid: \"editor-scheme\",\n\t\t\tlabel: \"Editor link scheme\",\n\t\t\tdescription: \"URI scheme for Cmd+click file path links (auto detects from $VISUAL/$EDITOR)\",\n\t\t\tcurrentValue: config.editorScheme,\n\t\t\tvalues: [\"auto\", \"vscode\", \"cursor\", \"zed\", \"jetbrains\", \"sublime\", \"file\"],\n\t\t});\n\n\t\t// Add borders\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\t10,\n\t\t\tgetSettingsListTheme(),\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"autocompact\":\n\t\t\t\t\t\tcallbacks.onAutoCompactChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autocompact-threshold\":\n\t\t\t\t\t\tcallbacks.onAutoCompactThresholdPercentChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"default-model\":\n\t\t\t\t\t\tcallbacks.onDefaultModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"classifier-model\":\n\t\t\t\t\t\tcallbacks.onClassifierModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"adaptive-classifier-model\":\n\t\t\t\t\t\tcallbacks.onAdaptiveClassifierModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"budget-subagent-model\":\n\t\t\t\t\t\tcallbacks.onBudgetSubagentModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"plan-mode-reasoning-model\":\n\t\t\t\t\t\tcallbacks.onPlanModeReasoningModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"plan-mode-review-model\":\n\t\t\t\t\t\tcallbacks.onPlanModeReviewModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"plan-mode-coding-model\":\n\t\t\t\t\t\tcallbacks.onPlanModeCodingModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-suggest-plan-mode\":\n\t\t\t\t\t\tcallbacks.onAutoSuggestPlanModeChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-switch-plan-model\":\n\t\t\t\t\t\tcallbacks.onAutoSwitchPlanModelChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-images\":\n\t\t\t\t\t\tcallbacks.onShowImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-resize-images\":\n\t\t\t\t\t\tcallbacks.onAutoResizeImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"block-images\":\n\t\t\t\t\t\tcallbacks.onBlockImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"skill-commands\":\n\t\t\t\t\t\tcallbacks.onEnableSkillCommandsChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tool-profile\":\n\t\t\t\t\t\tcallbacks.onToolProfileChange(newValue as \"balanced\" | \"standard\" | \"full\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"codex-rotate\":\n\t\t\t\t\t\tcallbacks.onCodexRotateChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"cache-timer\":\n\t\t\t\t\t\tcallbacks.onCacheTimerChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"pin-last-prompt\":\n\t\t\t\t\t\tcallbacks.onPinLastPromptChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-dream\":\n\t\t\t\t\t\tcallbacks.onAutoDreamChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-memory\":\n\t\t\t\t\t\tcallbacks.onAutoMemoryChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"telegram-live-relay-autoconnect\":\n\t\t\t\t\t\tcallbacks.onTelegramLiveRelayAutoConnectChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"rtk\":\n\t\t\t\t\t\tcallbacks.onRtkChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"steering-mode\":\n\t\t\t\t\t\tcallbacks.onSteeringModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"follow-up-mode\":\n\t\t\t\t\t\tcallbacks.onFollowUpModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"transport\":\n\t\t\t\t\t\tcallbacks.onTransportChange(newValue as Transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"anthropic-adaptive-default\":\n\t\t\t\t\t\tcallbacks.onAnthropicAdaptiveByDefaultChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"client-adaptive-default\":\n\t\t\t\t\t\tcallbacks.onClientAdaptiveByDefaultChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"hide-thinking\":\n\t\t\t\t\t\tcallbacks.onHideThinkingBlockChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tool-output-mode\":\n\t\t\t\t\t\tcallbacks.onToolOutputModeChange(newValue as \"minimal\" | \"normal\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sandbox-enabled\":\n\t\t\t\t\t\tcallbacks.onSandboxEnabledChange?.(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sandbox-network\":\n\t\t\t\t\t\tcallbacks.onSandboxNetworkModeChange?.(newValue as \"allow\" | \"ask\" | \"deny\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"collapse-changelog\":\n\t\t\t\t\t\tcallbacks.onCollapseChangelogChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"quiet-startup\":\n\t\t\t\t\t\tcallbacks.onQuietStartupChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"double-escape-action\":\n\t\t\t\t\t\tcallbacks.onDoubleEscapeActionChange(newValue as \"fork\" | \"tree\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tree-filter-mode\":\n\t\t\t\t\t\tcallbacks.onTreeFilterModeChange(\n\t\t\t\t\t\t\tnewValue as \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-hardware-cursor\":\n\t\t\t\t\t\tcallbacks.onShowHardwareCursorChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"editor-padding\":\n\t\t\t\t\t\tcallbacks.onEditorPaddingXChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autocomplete-max-visible\":\n\t\t\t\t\t\tcallbacks.onAutocompleteMaxVisibleChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"clear-on-shrink\":\n\t\t\t\t\t\tcallbacks.onClearOnShrinkChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"respect-gitignore-in-picker\":\n\t\t\t\t\t\tcallbacks.onRespectGitignoreInPickerChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"timestamp-format\":\n\t\t\t\t\t\tcallbacks.onTimestampFormatChange(newValue as \"date-time-iso\" | \"date-time-us\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"editor-scheme\":\n\t\t\t\t\t\tcallbacks.onEditorSchemeChange(\n\t\t\t\t\t\t\tnewValue as \"auto\" | \"vscode\" | \"cursor\" | \"zed\" | \"jetbrains\" | \"sublime\" | \"file\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallbacks.onCancel,\n\t\t\t{ enableSearch: true },\n\t\t);\n\n\t\tthis.addChild(this.settingsList);\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tgetSettingsList(): SettingsList {\n\t\treturn this.settingsList;\n\t}\n}\n"]}
1
+ {"version":3,"file":"settings-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThinkingLevel } from \"@gsd/pi-agent-core\";\nimport type { Transport } from \"@gsd/pi-ai\";\nimport {\n\ttype Component,\n\tContainer,\n\tgetCapabilities,\n\ttype SelectItem,\n\tSelectList,\n\ttype SettingItem,\n\tSettingsList,\n\tSpacer,\n\tText,\n} from \"@gsd/pi-tui\";\nimport { getSelectListTheme, getSettingsListTheme, getThemeAccentInfo, getThemeAccentLabel, theme } from \"../theme/theme.js\";\nimport { DynamicBorder } from \"./dynamic-border.js\";\n\nexport const THINKING_DESCRIPTIONS: Record<ThinkingLevel, string> = {\n\toff: \"No reasoning\",\n\tadaptive: \"Automatically adapt per turn (client or provider resolved)\",\n\tlow: \"Light reasoning (~2k tokens)\",\n\tmedium: \"Moderate reasoning (~8k tokens)\",\n\thigh: \"Deep reasoning (~16k tokens)\",\n\txhigh: \"Maximum reasoning (~32k tokens)\",\n};\n\nexport interface SettingsConfig {\n\tautoCompact: boolean;\n\tautoCompactThresholdPercent: number;\n\tdefaultModel: string;\n\tclassifierModel: string;\n\tadaptiveClassifierModel: string;\n\tbudgetSubagentModel: string;\n\tplanModeReasoningModel: string;\n\tplanModeReviewModel: string;\n\tplanModeCodingModel: string;\n\tautoSuggestPlanMode: boolean;\n\tautoSwitchPlanModel: boolean;\n\tshowImages: boolean;\n\tautoResizeImages: boolean;\n\tblockImages: boolean;\n\tenableSkillCommands: boolean;\n\ttoolProfile: \"balanced\" | \"standard\" | \"full\";\n\tcodexRotate: boolean;\n\tfastMode: boolean;\n\tcacheTimer: boolean;\n\tverboseFooter: boolean;\n\tpinLastPrompt: boolean;\n\tsteeringMode: \"all\" | \"one-at-a-time\";\n\tfollowUpMode: \"all\" | \"one-at-a-time\";\n\ttransport: Transport;\n\tthinkingLevel: ThinkingLevel;\n\tanthropicAdaptiveByDefault: boolean;\n\tclientAdaptiveByDefault: boolean;\n\tavailableThinkingLevels: ThinkingLevel[];\n\tcurrentTheme: string;\n\tavailableThemes: string[];\n\tcurrentThemeAccent: string;\n\tavailableThemeAccents: string[];\n\thideThinkingBlock: boolean;\n\tcollapseChangelog: boolean;\n\tdoubleEscapeAction: \"fork\" | \"tree\" | \"none\";\n\ttreeFilterMode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\tshowHardwareCursor: boolean;\n\teditorPaddingX: number;\n\tautocompleteMaxVisible: number;\n\trespectGitignoreInPicker: boolean;\n\tquietStartup: boolean;\n\tclearOnShrink: boolean;\n\ttimestampFormat: \"date-time-iso\" | \"date-time-us\";\n\ttoolOutputMode: \"minimal\" | \"normal\";\n\tcollapseToolCalls: boolean;\n\trtk: boolean;\n\teditorScheme: \"auto\" | \"vscode\" | \"cursor\" | \"zed\" | \"jetbrains\" | \"sublime\" | \"file\";\n\tautoDream: boolean;\n\tautoMemory: boolean;\n\tnotificationSound: boolean;\n\ttelegramLiveRelayAutoConnect: boolean;\n\tsandboxEnabled?: boolean;\n\tsandboxNetworkMode?: \"allow\" | \"ask\" | \"deny\";\n\tdefaultModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tclassifierModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tadaptiveClassifierModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tbudgetSubagentModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tplanModeReasoningModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tplanModeReviewModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n\tplanModeCodingModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;\n}\n\nexport interface SettingsCallbacks {\n\tonAutoCompactChange: (enabled: boolean) => void;\n\tonAutoCompactThresholdPercentChange: (percent: number) => void;\n\tonDefaultModelChange: (modelRef: string) => void;\n\tonClassifierModelChange: (modelRef: string) => void;\n\tonAdaptiveClassifierModelChange: (modelRef: string) => void;\n\tonBudgetSubagentModelChange: (modelRef: string) => void;\n\tonPlanModeReasoningModelChange: (modelRef: string) => void;\n\tonPlanModeReviewModelChange: (modelRef: string) => void;\n\tonPlanModeCodingModelChange: (modelRef: string) => void;\n\tonAutoSuggestPlanModeChange: (enabled: boolean) => void;\n\tonAutoSwitchPlanModelChange: (enabled: boolean) => void;\n\tonAutoDreamChange: (enabled: boolean) => void;\n\tonAutoMemoryChange: (enabled: boolean) => void;\n\tonNotificationSoundChange: (enabled: boolean) => void;\n\tonTelegramLiveRelayAutoConnectChange: (enabled: boolean) => void;\n\tonSandboxEnabledChange?: (enabled: boolean) => void;\n\tonSandboxNetworkModeChange?: (mode: \"allow\" | \"ask\" | \"deny\") => void;\n\tonShowImagesChange: (enabled: boolean) => void;\n\tonAutoResizeImagesChange: (enabled: boolean) => void;\n\tonBlockImagesChange: (blocked: boolean) => void;\n\tonEnableSkillCommandsChange: (enabled: boolean) => void;\n\tonToolProfileChange: (profile: \"balanced\" | \"standard\" | \"full\") => void;\n\tonCodexRotateChange: (enabled: boolean) => void;\n\tonFastModeChange: (enabled: boolean) => void;\n\tonCacheTimerChange: (enabled: boolean) => void;\n\tonVerboseFooterChange: (enabled: boolean) => void;\n\tonPinLastPromptChange: (enabled: boolean) => void;\n\tonSteeringModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonFollowUpModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonTransportChange: (transport: Transport) => void;\n\tonThinkingLevelChange: (level: ThinkingLevel) => void;\n\tonAnthropicAdaptiveByDefaultChange: (enabled: boolean) => void;\n\tonClientAdaptiveByDefaultChange: (enabled: boolean) => void;\n\tonThemeChange: (theme: string) => void;\n\tonThemePreview?: (theme: string) => void;\n\tonThemeAccentChange: (accent: string) => void;\n\tonHideThinkingBlockChange: (hidden: boolean) => void;\n\tonCollapseChangelogChange: (collapsed: boolean) => void;\n\tonDoubleEscapeActionChange: (action: \"fork\" | \"tree\" | \"none\") => void;\n\tonTreeFilterModeChange: (mode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\") => void;\n\tonShowHardwareCursorChange: (enabled: boolean) => void;\n\tonEditorPaddingXChange: (padding: number) => void;\n\tonAutocompleteMaxVisibleChange: (maxVisible: number) => void;\n\tonRespectGitignoreInPickerChange: (enabled: boolean) => void;\n\tonQuietStartupChange: (enabled: boolean) => void;\n\tonClearOnShrinkChange: (enabled: boolean) => void;\n\tonTimestampFormatChange: (format: \"date-time-iso\" | \"date-time-us\") => void;\n\tonToolOutputModeChange: (mode: \"minimal\" | \"normal\") => void;\n\tonCollapseToolCallsChange: (enabled: boolean) => void;\n\tonRtkChange: (enabled: boolean) => void;\n\tonEditorSchemeChange: (scheme: \"auto\" | \"vscode\" | \"cursor\" | \"zed\" | \"jetbrains\" | \"sublime\" | \"file\") => void;\n\tonCancel: () => void;\n}\n\n/**\n * A submenu component for selecting from a list of options.\n */\nexport class SelectSubmenu extends Container {\n\tprivate selectList: SelectList;\n\n\tconstructor(\n\t\ttitle: string,\n\t\tdescription: string,\n\t\toptions: SelectItem[],\n\t\tcurrentValue: string,\n\t\tonSelect: (value: string) => void,\n\t\tonCancel: () => void,\n\t\tonSelectionChange?: (value: string) => void,\n\t) {\n\t\tsuper();\n\n\t\t// Title\n\t\tthis.addChild(new Text(theme.bold(theme.fg(\"accent\", title)), 0, 0));\n\n\t\t// Description\n\t\tif (description) {\n\t\t\tthis.addChild(new Spacer(1));\n\t\t\tthis.addChild(new Text(theme.fg(\"muted\", description), 0, 0));\n\t\t}\n\n\t\t// Spacer\n\t\tthis.addChild(new Spacer(1));\n\n\t\t// Select list\n\t\tthis.selectList = new SelectList(options, Math.min(options.length, 10), getSelectListTheme());\n\n\t\t// Pre-select current value\n\t\tconst currentIndex = options.findIndex((o) => o.value === currentValue);\n\t\tif (currentIndex !== -1) {\n\t\t\tthis.selectList.setSelectedIndex(currentIndex);\n\t\t}\n\n\t\tthis.selectList.onSelect = (item) => {\n\t\t\tonSelect(item.value);\n\t\t};\n\n\t\tthis.selectList.onCancel = onCancel;\n\n\t\tif (onSelectionChange) {\n\t\t\tthis.selectList.onSelectionChange = (item) => {\n\t\t\t\tonSelectionChange(item.value);\n\t\t\t};\n\t\t}\n\n\t\tthis.addChild(this.selectList);\n\n\t\t// Hint\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", \" Enter to select · Esc to go back\"), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.selectList.handleInput(data);\n\t}\n}\n\n/**\n * Main settings selector component.\n */\nexport class SettingsSelectorComponent extends Container {\n\tprivate settingsList: SettingsList;\n\n\tconstructor(config: SettingsConfig, callbacks: SettingsCallbacks) {\n\t\tsuper();\n\n\t\tconst supportsImages = getCapabilities().images;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"autocompact\",\n\t\t\t\tlabel: \"Auto-compact\",\n\t\t\t\tdescription: \"Automatically compact context when it gets too large\",\n\t\t\t\tcurrentValue: config.autoCompact ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autocompact-threshold\",\n\t\t\t\tlabel: \"Auto-compact threshold\",\n\t\t\t\tdescription: \"Trigger auto-compaction when context usage reaches this percentage\",\n\t\t\t\tcurrentValue: String(config.autoCompactThresholdPercent),\n\t\t\t\tvalues: [\"70\", \"75\", \"80\", \"85\", \"90\", \"95\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"default-model\",\n\t\t\t\tlabel: \"Default model\",\n\t\t\t\tdescription: \"Model LSD should use by default when opening a new session\",\n\t\t\t\tcurrentValue: config.defaultModel,\n\t\t\t\tsubmenu: config.defaultModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"classifier-model\",\n\t\t\t\tlabel: \"Classifier model\",\n\t\t\t\tdescription: \"Model used for Auto permission mode approvals\",\n\t\t\t\tcurrentValue: config.classifierModel,\n\t\t\t\tsubmenu: config.classifierModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"adaptive-classifier-model\",\n\t\t\t\tlabel: \"Adaptive classifier model\",\n\t\t\t\tdescription: \"LLM used to pick reasoning level when adaptive mode is on (required for non-Anthropic models)\",\n\t\t\t\tcurrentValue: config.adaptiveClassifierModel,\n\t\t\t\tsubmenu: config.adaptiveClassifierModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"budget-subagent-model\",\n\t\t\t\tlabel: \"Budget subagent model\",\n\t\t\t\tdescription: \"Cheap model alias for subagents like scout\",\n\t\t\t\tcurrentValue: config.budgetSubagentModel,\n\t\t\t\tsubmenu: config.budgetSubagentModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"plan-mode-reasoning-model\",\n\t\t\t\tlabel: \"Plan reasoning model\",\n\t\t\t\tdescription: \"Optional provider/id model to switch to after plan approval\",\n\t\t\t\tcurrentValue: config.planModeReasoningModel,\n\t\t\t\tsubmenu: config.planModeReasoningModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"plan-mode-review-model\",\n\t\t\t\tlabel: \"Plan review model\",\n\t\t\t\tdescription: \"Optional provider/id model for the other-agent plan review step\",\n\t\t\t\tcurrentValue: config.planModeReviewModel,\n\t\t\t\tsubmenu: config.planModeReviewModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"plan-mode-coding-model\",\n\t\t\t\tlabel: \"Plan coding model\",\n\t\t\t\tdescription: \"Optional provider/id model for subagent plan execution\",\n\t\t\t\tcurrentValue: config.planModeCodingModel,\n\t\t\t\tsubmenu: config.planModeCodingModelSubmenu,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-suggest-plan-mode\",\n\t\t\t\tlabel: \"Auto-suggest plan mode\",\n\t\t\t\tdescription: \"Ask the LLM to suggest plan mode for large/complex tasks\",\n\t\t\t\tcurrentValue: config.autoSuggestPlanMode ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-switch-plan-model\",\n\t\t\t\tlabel: \"OpusPlan mode\",\n\t\t\t\tdescription: \"On plan entry: auto-switch to Plan reasoning model (must be set). On approval: offer new session with Plan coding model + worker agent\",\n\t\t\t\tcurrentValue: config.autoSwitchPlanModel ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"steering-mode\",\n\t\t\t\tlabel: \"Steering mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.\",\n\t\t\t\tcurrentValue: config.steeringMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"follow-up-mode\",\n\t\t\t\tlabel: \"Follow-up mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t`${process.platform === \"darwin\" ? \"⌥Enter\" : \"Alt+Enter\"} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.`,\n\t\t\t\tcurrentValue: config.followUpMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"transport\",\n\t\t\t\tlabel: \"Transport\",\n\t\t\t\tdescription: \"Preferred transport for providers that support multiple transports\",\n\t\t\t\tcurrentValue: config.transport,\n\t\t\t\tvalues: [\"sse\", \"websocket\", \"auto\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"hide-thinking\",\n\t\t\t\tlabel: \"Hide thinking\",\n\t\t\t\tdescription: \"Hide thinking blocks in assistant responses\",\n\t\t\t\tcurrentValue: config.hideThinkingBlock ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"collapse-tool-calls\",\n\t\t\t\tlabel: \"Collapse tool calls\",\n\t\t\t\tdescription: \"Group low-priority tool calls into collapsed summary lines\",\n\t\t\t\tcurrentValue: config.collapseToolCalls ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"tool-output-mode\",\n\t\t\t\tlabel: \"Tool output mode\",\n\t\t\t\tdescription: \"Minimal hides collapsed previews until Ctrl+O. Normal shows collapsed previews.\",\n\t\t\t\tcurrentValue: config.toolOutputMode,\n\t\t\t\tvalues: [\"minimal\", \"normal\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"sandbox-enabled\",\n\t\t\t\tlabel: \"Sandbox\",\n\t\t\t\tdescription: \"Enable OS-level sandboxing for bash execution on supported platforms\",\n\t\t\t\tcurrentValue: (config.sandboxEnabled ?? true) ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"sandbox-network\",\n\t\t\t\tlabel: \"Sandbox network\",\n\t\t\t\tdescription: \"Allow, ask, or deny network access for sandboxed bash commands\",\n\t\t\t\tcurrentValue: config.sandboxNetworkMode ?? \"ask\",\n\t\t\t\tvalues: [\"ask\", \"allow\", \"deny\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"collapse-changelog\",\n\t\t\t\tlabel: \"Collapse changelog\",\n\t\t\t\tdescription: \"Show condensed changelog after updates\",\n\t\t\t\tcurrentValue: config.collapseChangelog ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"quiet-startup\",\n\t\t\t\tlabel: \"Quiet startup\",\n\t\t\t\tdescription: \"Disable verbose printing at startup\",\n\t\t\t\tcurrentValue: config.quietStartup ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"double-escape-action\",\n\t\t\t\tlabel: \"Double-escape action\",\n\t\t\t\tdescription: \"Action when pressing Escape twice with empty editor\",\n\t\t\t\tcurrentValue: config.doubleEscapeAction,\n\t\t\t\tvalues: [\"tree\", \"fork\", \"none\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"tree-filter-mode\",\n\t\t\t\tlabel: \"Tree filter mode\",\n\t\t\t\tdescription: \"Default filter when opening /tree\",\n\t\t\t\tcurrentValue: config.treeFilterMode,\n\t\t\t\tvalues: [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"thinking\",\n\t\t\t\tlabel: \"Thinking level\",\n\t\t\t\tdescription: \"Reasoning depth for thinking-capable models\",\n\t\t\t\tcurrentValue: config.thinkingLevel,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Thinking Level\",\n\t\t\t\t\t\t\"Select reasoning depth for thinking-capable models\",\n\t\t\t\t\t\tconfig.availableThinkingLevels.map((level) => ({\n\t\t\t\t\t\t\tvalue: level,\n\t\t\t\t\t\t\tlabel: level,\n\t\t\t\t\t\t\tdescription: THINKING_DESCRIPTIONS[level],\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThinkingLevelChange(value as ThinkingLevel);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"anthropic-adaptive-default\",\n\t\t\t\tlabel: \"Anthropic adaptive\",\n\t\t\t\tdescription: \"Default to adaptive thinking for supported Anthropic models\",\n\t\t\t\tcurrentValue: config.anthropicAdaptiveByDefault ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"client-adaptive-default\",\n\t\t\t\tlabel: \"Adaptive by default\",\n\t\t\t\tdescription: \"Default to adaptive thinking for all reasoning-capable models\",\n\t\t\t\tcurrentValue: config.clientAdaptiveByDefault ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"theme\",\n\t\t\t\tlabel: \"Theme\",\n\t\t\t\tdescription: \"Color theme for the interface\",\n\t\t\t\tcurrentValue: config.currentTheme,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Theme\",\n\t\t\t\t\t\t\"Select color theme\",\n\t\t\t\t\t\tconfig.availableThemes.map((t) => ({\n\t\t\t\t\t\t\tvalue: t,\n\t\t\t\t\t\t\tlabel: t,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThemeChange(value);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t// Restore original theme on cancel\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(currentValue);\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\t// Preview theme on selection change\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"theme-accent\",\n\t\t\t\tlabel: \"Main accent\",\n\t\t\t\tdescription: \"Primary accent color used by the interface\",\n\t\t\t\tcurrentValue: config.currentThemeAccent,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Main Accent\",\n\t\t\t\t\t\t\"Select the primary accent color\",\n\t\t\t\t\t\tconfig.availableThemeAccents.map((accent) => ({\n\t\t\t\t\t\t\tvalue: accent,\n\t\t\t\t\t\t\tlabel: getThemeAccentLabel(accent as Parameters<typeof getThemeAccentInfo>[0]),\n\t\t\t\t\t\t\tdescription: getThemeAccentInfo(accent as Parameters<typeof getThemeAccentInfo>[0]).description,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThemeAccentChange(value);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\t// Only show image toggle if terminal supports it\n\t\tif (supportsImages) {\n\t\t\t// Insert after autocompact threshold\n\t\t\titems.splice(2, 0, {\n\t\t\t\tid: \"show-images\",\n\t\t\t\tlabel: \"Show images\",\n\t\t\t\tdescription: \"Render images inline in terminal\",\n\t\t\t\tcurrentValue: config.showImages ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t});\n\t\t}\n\n\t\t// Image auto-resize toggle (always available, affects both attached and read images)\n\t\titems.splice(supportsImages ? 3 : 2, 0, {\n\t\t\tid: \"auto-resize-images\",\n\t\t\tlabel: \"Auto-resize images\",\n\t\t\tdescription: \"Resize large images to 2000x2000 max for better model compatibility\",\n\t\t\tcurrentValue: config.autoResizeImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Block images toggle (always available, insert after auto-resize-images)\n\t\tconst autoResizeIndex = items.findIndex((item) => item.id === \"auto-resize-images\");\n\t\titems.splice(autoResizeIndex + 1, 0, {\n\t\t\tid: \"block-images\",\n\t\t\tlabel: \"Block images\",\n\t\t\tdescription: \"Prevent images from being sent to LLM providers\",\n\t\t\tcurrentValue: config.blockImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Skill commands toggle (insert after block-images)\n\t\tconst blockImagesIndex = items.findIndex((item) => item.id === \"block-images\");\n\t\titems.splice(blockImagesIndex + 1, 0, {\n\t\t\tid: \"skill-commands\",\n\t\t\tlabel: \"Skill commands\",\n\t\t\tdescription: \"Register skills as /skill:name commands\",\n\t\t\tcurrentValue: config.enableSkillCommands ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Tool profile selector (insert after skill-commands)\n\t\tconst skillCommandsIndex = items.findIndex((item) => item.id === \"skill-commands\");\n\t\titems.splice(skillCommandsIndex + 1, 0, {\n\t\t\tid: \"tool-profile\",\n\t\t\tlabel: \"Tool profile\",\n\t\t\tdescription: \"Choose the default active tool set: balanced for day-to-day coding, standard for broader coverage, full to enable all available tools\",\n\t\t\tcurrentValue: config.toolProfile,\n\t\t\tvalues: [\"balanced\", \"standard\", \"full\"],\n\t\t});\n\n\t\t// Codex rotate toggle (insert after tool-profile)\n\t\tconst toolProfileIndex = items.findIndex((item) => item.id === \"tool-profile\");\n\t\titems.splice(toolProfileIndex + 1, 0, {\n\t\t\tid: \"codex-rotate\",\n\t\t\tlabel: \"Codex rotate\",\n\t\t\tdescription: \"Enable automatic Codex account rotation extension\",\n\t\t\tcurrentValue: config.codexRotate ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Fast mode toggle (insert after codex-rotate)\n\t\tconst codexRotateIndex = items.findIndex((item) => item.id === \"codex-rotate\");\n\t\titems.splice(codexRotateIndex + 1, 0, {\n\t\t\tid: \"fast-mode\",\n\t\t\tlabel: \"Fast mode\",\n\t\t\tdescription: \"OpenAI/Codex supported models use priority service tier\",\n\t\t\tcurrentValue: config.fastMode ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Cache timer toggle (insert after fast-mode)\n\t\tconst fastModeIndex = items.findIndex((item) => item.id === \"fast-mode\");\n\t\titems.splice(fastModeIndex + 1, 0, {\n\t\t\tid: \"cache-timer\",\n\t\t\tlabel: \"Cache timer\",\n\t\t\tdescription: \"Show elapsed time since last response in the footer (tracks 5-min cache window)\",\n\t\t\tcurrentValue: config.cacheTimer ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Verbose footer toggle (insert after cache-timer)\n\t\tconst cacheTimerIdx = items.findIndex((item) => item.id === \"cache-timer\");\n\t\titems.splice(cacheTimerIdx + 1, 0, {\n\t\t\tid: \"verbose-footer\",\n\t\t\tlabel: \"Verbose footer\",\n\t\t\tdescription: \"Show extra footer stats like input, output, and cache tokens\",\n\t\t\tcurrentValue: config.verboseFooter ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Pin last prompt toggle (insert after verbose-footer)\n\t\tconst verboseFooterIdx = items.findIndex((item) => item.id === \"verbose-footer\");\n\t\titems.splice(verboseFooterIdx + 1, 0, {\n\t\t\tid: \"pin-last-prompt\",\n\t\t\tlabel: \"Pin last prompt\",\n\t\t\tdescription: \"Show your last sent message above the editor so you remember the topic\",\n\t\t\tcurrentValue: config.pinLastPrompt ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Auto-dream toggle (insert after pin-last-prompt)\n\t\tconst pinLastPromptIdx = items.findIndex((item) => item.id === \"pin-last-prompt\");\n\t\titems.splice(pinLastPromptIdx + 1, 0, {\n\t\t\tid: \"auto-dream\",\n\t\t\tlabel: \"Auto dream\",\n\t\t\tdescription: \"Automatically consolidate and refine memory after sessions\",\n\t\t\tcurrentValue: config.autoDream ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Auto-memory toggle (insert after auto-dream)\n\t\tconst autoDreamIdx = items.findIndex((item) => item.id === \"auto-dream\");\n\t\titems.splice(autoDreamIdx + 1, 0, {\n\t\t\tid: \"auto-memory\",\n\t\t\tlabel: \"Auto memory\",\n\t\t\tdescription: \"Automatically extract and save memories from session transcripts\",\n\t\t\tcurrentValue: config.autoMemory ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Notification sound toggle (insert after auto-memory)\n\t\tconst autoMemoryIdx = items.findIndex((item) => item.id === \"auto-memory\");\n\t\titems.splice(autoMemoryIdx + 1, 0, {\n\t\t\tid: \"notification-sound\",\n\t\t\tlabel: \"Notification sound\",\n\t\t\tdescription: \"Play a terminal bell when the agent finishes responding\",\n\t\t\tcurrentValue: config.notificationSound ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Telegram relay auto-connect toggle (insert after notification-sound)\n\t\tconst notificationSoundIdx = items.findIndex((item) => item.id === \"notification-sound\");\n\t\titems.splice(notificationSoundIdx + 1, 0, {\n\t\t\tid: \"telegram-live-relay-autoconnect\",\n\t\t\tlabel: \"Telegram autoconnect\",\n\t\t\tdescription: \"Auto-run /lsd telegram connect on startup\",\n\t\t\tcurrentValue: config.telegramLiveRelayAutoConnect ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// RTK toggle (insert after verbose-footer)\n\t\tconst verboseFooterIndex = items.findIndex((item) => item.id === \"verbose-footer\");\n\t\titems.splice(verboseFooterIndex + 1, 0, {\n\t\t\tid: \"rtk\",\n\t\t\tlabel: \"RTK\",\n\t\t\tdescription: \"Enable RTK shell-command compression (requires restart)\",\n\t\t\tcurrentValue: config.rtk ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Hardware cursor toggle (insert after rtk)\n\t\tconst rtkIndex = items.findIndex((item) => item.id === \"rtk\");\n\t\titems.splice(rtkIndex + 1, 0, {\n\t\t\tid: \"show-hardware-cursor\",\n\t\t\tlabel: \"Show hardware cursor\",\n\t\t\tdescription: \"Show the terminal cursor while still positioning it for IME support\",\n\t\t\tcurrentValue: config.showHardwareCursor ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Editor padding toggle (insert after show-hardware-cursor)\n\t\tconst hardwareCursorIndex = items.findIndex((item) => item.id === \"show-hardware-cursor\");\n\t\titems.splice(hardwareCursorIndex + 1, 0, {\n\t\t\tid: \"editor-padding\",\n\t\t\tlabel: \"Editor padding\",\n\t\t\tdescription: \"Horizontal padding for input editor (0-3)\",\n\t\t\tcurrentValue: String(config.editorPaddingX),\n\t\t\tvalues: [\"0\", \"1\", \"2\", \"3\"],\n\t\t});\n\n\t\t// Autocomplete max visible toggle (insert after editor-padding)\n\t\tconst editorPaddingIndex = items.findIndex((item) => item.id === \"editor-padding\");\n\t\titems.splice(editorPaddingIndex + 1, 0, {\n\t\t\tid: \"autocomplete-max-visible\",\n\t\t\tlabel: \"Autocomplete max items\",\n\t\t\tdescription: \"Max visible items in autocomplete dropdown (3-20)\",\n\t\t\tcurrentValue: String(config.autocompleteMaxVisible),\n\t\t\tvalues: [\"3\", \"5\", \"7\", \"10\", \"15\", \"20\"],\n\t\t});\n\n\t\t// Clear on shrink toggle (insert after autocomplete-max-visible)\n\t\tconst autocompleteIndex = items.findIndex((item) => item.id === \"autocomplete-max-visible\");\n\t\titems.splice(autocompleteIndex + 1, 0, {\n\t\t\tid: \"clear-on-shrink\",\n\t\t\tlabel: \"Clear on shrink\",\n\t\t\tdescription: \"Clear empty rows when content shrinks (may cause flicker)\",\n\t\t\tcurrentValue: config.clearOnShrink ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Respect .gitignore in file picker toggle (insert after clear-on-shrink)\n\t\tconst clearOnShrinkIndex = items.findIndex((item) => item.id === \"clear-on-shrink\");\n\t\titems.splice(clearOnShrinkIndex + 1, 0, {\n\t\t\tid: \"respect-gitignore-in-picker\",\n\t\t\tlabel: \"Respect .gitignore in file picker\",\n\t\t\tdescription: \"When false, @ file picker shows gitignored files too\",\n\t\t\tcurrentValue: config.respectGitignoreInPicker ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Timestamp format (insert after respect-gitignore-in-picker)\n\t\tconst gitignoreIndex = items.findIndex((item) => item.id === \"respect-gitignore-in-picker\");\n\t\titems.splice(gitignoreIndex + 1, 0, {\n\t\t\tid: \"timestamp-format\",\n\t\t\tlabel: \"Timestamp format\",\n\t\t\tdescription: \"Time format for message timestamps\",\n\t\t\tcurrentValue: config.timestampFormat,\n\t\t\tvalues: [\"date-time-iso\", \"date-time-us\"],\n\t\t});\n\n\t\t// Editor link scheme (insert after timestamp-format)\n\t\tconst timestampIndex = items.findIndex((item) => item.id === \"timestamp-format\");\n\t\titems.splice(timestampIndex + 1, 0, {\n\t\t\tid: \"editor-scheme\",\n\t\t\tlabel: \"Editor link scheme\",\n\t\t\tdescription: \"URI scheme for Cmd+click file path links (auto detects from $VISUAL/$EDITOR)\",\n\t\t\tcurrentValue: config.editorScheme,\n\t\t\tvalues: [\"auto\", \"vscode\", \"cursor\", \"zed\", \"jetbrains\", \"sublime\", \"file\"],\n\t\t});\n\n\t\t// Add borders\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\t10,\n\t\t\tgetSettingsListTheme(),\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"autocompact\":\n\t\t\t\t\t\tcallbacks.onAutoCompactChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autocompact-threshold\":\n\t\t\t\t\t\tcallbacks.onAutoCompactThresholdPercentChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"default-model\":\n\t\t\t\t\t\tcallbacks.onDefaultModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"classifier-model\":\n\t\t\t\t\t\tcallbacks.onClassifierModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"adaptive-classifier-model\":\n\t\t\t\t\t\tcallbacks.onAdaptiveClassifierModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"budget-subagent-model\":\n\t\t\t\t\t\tcallbacks.onBudgetSubagentModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"plan-mode-reasoning-model\":\n\t\t\t\t\t\tcallbacks.onPlanModeReasoningModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"plan-mode-review-model\":\n\t\t\t\t\t\tcallbacks.onPlanModeReviewModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"plan-mode-coding-model\":\n\t\t\t\t\t\tcallbacks.onPlanModeCodingModelChange(newValue);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-suggest-plan-mode\":\n\t\t\t\t\t\tcallbacks.onAutoSuggestPlanModeChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-switch-plan-model\":\n\t\t\t\t\t\tcallbacks.onAutoSwitchPlanModelChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-images\":\n\t\t\t\t\t\tcallbacks.onShowImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-resize-images\":\n\t\t\t\t\t\tcallbacks.onAutoResizeImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"block-images\":\n\t\t\t\t\t\tcallbacks.onBlockImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"skill-commands\":\n\t\t\t\t\t\tcallbacks.onEnableSkillCommandsChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tool-profile\":\n\t\t\t\t\t\tcallbacks.onToolProfileChange(newValue as \"balanced\" | \"standard\" | \"full\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"codex-rotate\":\n\t\t\t\t\t\tcallbacks.onCodexRotateChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"fast-mode\":\n\t\t\t\t\t\tcallbacks.onFastModeChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"cache-timer\":\n\t\t\t\t\t\tcallbacks.onCacheTimerChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"verbose-footer\":\n\t\t\t\t\t\tcallbacks.onVerboseFooterChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"pin-last-prompt\":\n\t\t\t\t\t\tcallbacks.onPinLastPromptChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-dream\":\n\t\t\t\t\t\tcallbacks.onAutoDreamChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-memory\":\n\t\t\t\t\t\tcallbacks.onAutoMemoryChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"notification-sound\":\n\t\t\t\t\t\tcallbacks.onNotificationSoundChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"telegram-live-relay-autoconnect\":\n\t\t\t\t\t\tcallbacks.onTelegramLiveRelayAutoConnectChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"rtk\":\n\t\t\t\t\t\tcallbacks.onRtkChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"steering-mode\":\n\t\t\t\t\t\tcallbacks.onSteeringModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"follow-up-mode\":\n\t\t\t\t\t\tcallbacks.onFollowUpModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"transport\":\n\t\t\t\t\t\tcallbacks.onTransportChange(newValue as Transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"anthropic-adaptive-default\":\n\t\t\t\t\t\tcallbacks.onAnthropicAdaptiveByDefaultChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"client-adaptive-default\":\n\t\t\t\t\t\tcallbacks.onClientAdaptiveByDefaultChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"hide-thinking\":\n\t\t\t\t\t\tcallbacks.onHideThinkingBlockChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"collapse-tool-calls\":\n\t\t\t\t\t\tcallbacks.onCollapseToolCallsChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tool-output-mode\":\n\t\t\t\t\t\tcallbacks.onToolOutputModeChange(newValue as \"minimal\" | \"normal\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sandbox-enabled\":\n\t\t\t\t\t\tcallbacks.onSandboxEnabledChange?.(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sandbox-network\":\n\t\t\t\t\t\tcallbacks.onSandboxNetworkModeChange?.(newValue as \"allow\" | \"ask\" | \"deny\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"collapse-changelog\":\n\t\t\t\t\t\tcallbacks.onCollapseChangelogChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"quiet-startup\":\n\t\t\t\t\t\tcallbacks.onQuietStartupChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"double-escape-action\":\n\t\t\t\t\t\tcallbacks.onDoubleEscapeActionChange(newValue as \"fork\" | \"tree\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tree-filter-mode\":\n\t\t\t\t\t\tcallbacks.onTreeFilterModeChange(\n\t\t\t\t\t\t\tnewValue as \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-hardware-cursor\":\n\t\t\t\t\t\tcallbacks.onShowHardwareCursorChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"editor-padding\":\n\t\t\t\t\t\tcallbacks.onEditorPaddingXChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autocomplete-max-visible\":\n\t\t\t\t\t\tcallbacks.onAutocompleteMaxVisibleChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"clear-on-shrink\":\n\t\t\t\t\t\tcallbacks.onClearOnShrinkChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"respect-gitignore-in-picker\":\n\t\t\t\t\t\tcallbacks.onRespectGitignoreInPickerChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"timestamp-format\":\n\t\t\t\t\t\tcallbacks.onTimestampFormatChange(newValue as \"date-time-iso\" | \"date-time-us\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"editor-scheme\":\n\t\t\t\t\t\tcallbacks.onEditorSchemeChange(\n\t\t\t\t\t\t\tnewValue as \"auto\" | \"vscode\" | \"cursor\" | \"zed\" | \"jetbrains\" | \"sublime\" | \"file\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallbacks.onCancel,\n\t\t\t{ enableSearch: true },\n\t\t);\n\n\t\tthis.addChild(this.settingsList);\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tgetSettingsList(): SettingsList {\n\t\treturn this.settingsList;\n\t}\n}\n"]}
@@ -27,9 +27,13 @@ export declare class ToolExecutionComponent extends Container {
27
27
  private result?;
28
28
  private editDiffPreview?;
29
29
  private editDiffArgsKey?;
30
+ private writeDiffPreview?;
31
+ private writeDiffArgsKey?;
30
32
  private convertedImages;
31
33
  private writeHighlightCache?;
32
34
  private hideComponent;
35
+ private manuallyHidden;
36
+ private startTime;
33
37
  private spinnerTimer;
34
38
  private spinnerFrame;
35
39
  constructor(toolName: string, args: any, options: ToolExecutionOptions | undefined, toolDefinition: ToolDefinition | undefined, ui: TUI, cwd?: string);
@@ -39,6 +43,8 @@ export declare class ToolExecutionComponent extends Container {
39
43
  * or the toolDefinition doesn't provide custom renderers.
40
44
  */
41
45
  private shouldUseBuiltInRenderer;
46
+ private setPrimaryContent;
47
+ private getDiffTextToRender;
42
48
  updateArgs(args: any): void;
43
49
  private highlightSingleLine;
44
50
  private refreshWriteHighlightPrefix;
@@ -49,6 +55,11 @@ export declare class ToolExecutionComponent extends Container {
49
55
  * This triggers diff computation for edit tool.
50
56
  */
51
57
  setArgsComplete(): void;
58
+ /**
59
+ * Compute write diff preview when we have complete args.
60
+ * This runs async and updates display when done.
61
+ */
62
+ private maybeComputeWriteDiff;
52
63
  /**
53
64
  * Compute edit diff preview when we have complete args.
54
65
  * This runs async and updates display when done.
@@ -70,6 +81,10 @@ export declare class ToolExecutionComponent extends Container {
70
81
  */
71
82
  private maybeConvertImagesForKitty;
72
83
  setExpanded(expanded: boolean): void;
84
+ setHidden(hidden: boolean): void;
85
+ isHidden(): boolean;
86
+ getElapsed(): number;
87
+ shouldHideWhenCollapsed(collapseToolCalls?: boolean): boolean;
73
88
  setRenderMode(mode: "minimal" | "normal"): void;
74
89
  setEditorScheme(scheme: EditorScheme): void;
75
90
  setShowImages(show: boolean): void;
@@ -77,6 +92,10 @@ export declare class ToolExecutionComponent extends Container {
77
92
  invalidate(): void;
78
93
  render(width: number): string[];
79
94
  private updateDisplay;
95
+ /**
96
+ * Render built-in edit/write diff blocks with width-aware full-line backgrounds.
97
+ */
98
+ private renderBuiltInDiffContent;
80
99
  /**
81
100
  * Render bash content using visual line truncation (like bash-execution.ts)
82
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tool-execution.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/tool-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-execution.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/tool-execution.ts"],"names":[],"mappings":"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"}