@wrongstack/tui 0.295.1 → 0.296.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/app-action-type.d.ts +988 -0
  2. package/dist/app-action-type.d.ts.map +1 -0
  3. package/dist/app-initial-state.d.ts +1 -1
  4. package/dist/app-initial-state.d.ts.map +1 -1
  5. package/dist/app-key-handler.d.ts +11 -3
  6. package/dist/app-key-handler.d.ts.map +1 -1
  7. package/dist/app-props.d.ts +4 -2
  8. package/dist/app-props.d.ts.map +1 -1
  9. package/dist/app-reducer.d.ts +4 -2
  10. package/dist/app-reducer.d.ts.map +1 -1
  11. package/dist/app-settings-type.d.ts +75 -0
  12. package/dist/app-settings-type.d.ts.map +1 -0
  13. package/dist/app-state-core-types.d.ts +52 -0
  14. package/dist/app-state-core-types.d.ts.map +1 -0
  15. package/dist/app-state-fleet.d.ts +44 -0
  16. package/dist/app-state-fleet.d.ts.map +1 -0
  17. package/dist/app-state.d.ts +49 -1180
  18. package/dist/app-state.d.ts.map +1 -1
  19. package/dist/app-ui-state.d.ts +5 -0
  20. package/dist/app-ui-state.d.ts.map +1 -0
  21. package/dist/app-view-contract.d.ts +8 -1
  22. package/dist/app-view-contract.d.ts.map +1 -1
  23. package/dist/app-view.d.ts.map +1 -1
  24. package/dist/app.d.ts.map +1 -1
  25. package/dist/brain-panel-model.d.ts +8 -0
  26. package/dist/brain-panel-model.d.ts.map +1 -1
  27. package/dist/clipboard.d.ts +1 -1
  28. package/dist/clipboard.d.ts.map +1 -1
  29. package/dist/components/agents-monitor-constants.d.ts +12 -0
  30. package/dist/components/agents-monitor-constants.d.ts.map +1 -0
  31. package/dist/components/agents-monitor.d.ts +1 -7
  32. package/dist/components/agents-monitor.d.ts.map +1 -1
  33. package/dist/components/auth-panel.d.ts +2 -0
  34. package/dist/components/auth-panel.d.ts.map +1 -1
  35. package/dist/components/brain-panel.d.ts.map +1 -1
  36. package/dist/components/connections-panel.d.ts +7 -0
  37. package/dist/components/connections-panel.d.ts.map +1 -0
  38. package/dist/components/f-key-picker.d.ts.map +1 -1
  39. package/dist/components/history/basic-format.d.ts +19 -0
  40. package/dist/components/history/basic-format.d.ts.map +1 -0
  41. package/dist/components/history/code-block-diff-helpers.d.ts +28 -0
  42. package/dist/components/history/code-block-diff-helpers.d.ts.map +1 -0
  43. package/dist/components/history/code-block.d.ts +1 -1
  44. package/dist/components/history/code-block.d.ts.map +1 -1
  45. package/dist/components/history/copy-icon.d.ts +25 -0
  46. package/dist/components/history/copy-icon.d.ts.map +1 -0
  47. package/dist/components/history/entry.d.ts.map +1 -1
  48. package/dist/components/history/index.d.ts +5 -6
  49. package/dist/components/history/index.d.ts.map +1 -1
  50. package/dist/components/history/sage-output-format.d.ts +58 -0
  51. package/dist/components/history/sage-output-format.d.ts.map +1 -0
  52. package/dist/components/history/stream-box.d.ts +23 -0
  53. package/dist/components/history/stream-box.d.ts.map +1 -0
  54. package/dist/components/history/tool-arg-format.d.ts +5 -0
  55. package/dist/components/history/tool-arg-format.d.ts.map +1 -0
  56. package/dist/components/history/tool-group.d.ts.map +1 -1
  57. package/dist/components/history/tool-output-summary.d.ts +4 -0
  58. package/dist/components/history/tool-output-summary.d.ts.map +1 -0
  59. package/dist/components/history/tool-visual-command.d.ts +3 -0
  60. package/dist/components/history/tool-visual-command.d.ts.map +1 -0
  61. package/dist/components/history/tool-visual-domain.d.ts +8 -0
  62. package/dist/components/history/tool-visual-domain.d.ts.map +1 -0
  63. package/dist/components/history/tool-visual-format.d.ts +13 -0
  64. package/dist/components/history/tool-visual-format.d.ts.map +1 -0
  65. package/dist/components/history/tool-visual-lsp.d.ts +4 -0
  66. package/dist/components/history/tool-visual-lsp.d.ts.map +1 -0
  67. package/dist/components/history/tool-visual-misc.d.ts +7 -0
  68. package/dist/components/history/tool-visual-misc.d.ts.map +1 -0
  69. package/dist/components/history/tool-visual-mode-workdir.d.ts +4 -0
  70. package/dist/components/history/tool-visual-mode-workdir.d.ts.map +1 -0
  71. package/dist/components/history/tool-visual-types.d.ts +9 -0
  72. package/dist/components/history/tool-visual-types.d.ts.map +1 -0
  73. package/dist/components/history/utils.d.ts +16 -54
  74. package/dist/components/history/utils.d.ts.map +1 -1
  75. package/dist/components/history/visual-lines.d.ts +7 -0
  76. package/dist/components/history/visual-lines.d.ts.map +1 -0
  77. package/dist/components/history/visual-memory-logs.d.ts +4 -0
  78. package/dist/components/history/visual-memory-logs.d.ts.map +1 -0
  79. package/dist/components/input.d.ts.map +1 -1
  80. package/dist/components/kanban-panel.d.ts.map +1 -1
  81. package/dist/components/key-hint-bar.d.ts +11 -0
  82. package/dist/components/key-hint-bar.d.ts.map +1 -1
  83. package/dist/components/powerline-rail.d.ts +11 -4
  84. package/dist/components/powerline-rail.d.ts.map +1 -1
  85. package/dist/components/provider-colors.d.ts.map +1 -1
  86. package/dist/components/refine-countdown-panel.d.ts +25 -0
  87. package/dist/components/refine-countdown-panel.d.ts.map +1 -0
  88. package/dist/components/refine-failure-panel.d.ts +3 -1
  89. package/dist/components/refine-failure-panel.d.ts.map +1 -1
  90. package/dist/components/resume-picker.d.ts.map +1 -1
  91. package/dist/components/scrollable-history.d.ts +96 -17
  92. package/dist/components/scrollable-history.d.ts.map +1 -1
  93. package/dist/components/settings-picker-filter.d.ts +20 -0
  94. package/dist/components/settings-picker-filter.d.ts.map +1 -0
  95. package/dist/components/settings-picker-jumps.d.ts +16 -0
  96. package/dist/components/settings-picker-jumps.d.ts.map +1 -0
  97. package/dist/components/settings-picker-model.d.ts +271 -0
  98. package/dist/components/settings-picker-model.d.ts.map +1 -0
  99. package/dist/components/settings-picker-row-list.d.ts +21 -0
  100. package/dist/components/settings-picker-row-list.d.ts.map +1 -0
  101. package/dist/components/settings-picker.d.ts +8 -313
  102. package/dist/components/settings-picker.d.ts.map +1 -1
  103. package/dist/components/status-bar-format.d.ts +65 -0
  104. package/dist/components/status-bar-format.d.ts.map +1 -0
  105. package/dist/components/status-bar-helpers.d.ts +19 -0
  106. package/dist/components/status-bar-helpers.d.ts.map +1 -0
  107. package/dist/components/status-bar-types.d.ts +350 -0
  108. package/dist/components/status-bar-types.d.ts.map +1 -0
  109. package/dist/components/status-bar.d.ts +4 -444
  110. package/dist/components/status-bar.d.ts.map +1 -1
  111. package/dist/components/statusline-detail-panel.d.ts.map +1 -1
  112. package/dist/components/statusline-picker.d.ts +5 -3
  113. package/dist/components/statusline-picker.d.ts.map +1 -1
  114. package/dist/connections-health.d.ts +39 -0
  115. package/dist/connections-health.d.ts.map +1 -0
  116. package/dist/connections-slash.d.ts +12 -0
  117. package/dist/connections-slash.d.ts.map +1 -0
  118. package/dist/esc-close-panels.d.ts.map +1 -1
  119. package/dist/f-key-panels.d.ts +4 -2
  120. package/dist/f-key-panels.d.ts.map +1 -1
  121. package/dist/heap-watchdog.d.ts.map +1 -1
  122. package/dist/height-cache.d.ts.map +1 -1
  123. package/dist/history-archive.d.ts +69 -0
  124. package/dist/history-archive.d.ts.map +1 -0
  125. package/dist/history-entry.d.ts +52 -0
  126. package/dist/history-entry.d.ts.map +1 -1
  127. package/dist/hit-test.d.ts +3 -4
  128. package/dist/hit-test.d.ts.map +1 -1
  129. package/dist/hooks/use-app-picker-keys.d.ts +3 -2
  130. package/dist/hooks/use-app-picker-keys.d.ts.map +1 -1
  131. package/dist/hooks/use-app-runtime-refs.d.ts +38 -0
  132. package/dist/hooks/use-app-runtime-refs.d.ts.map +1 -0
  133. package/dist/hooks/use-app-session-state.d.ts +28 -0
  134. package/dist/hooks/use-app-session-state.d.ts.map +1 -0
  135. package/dist/hooks/use-autonomy-drivers.d.ts +1 -1
  136. package/dist/hooks/use-autonomy-drivers.d.ts.map +1 -1
  137. package/dist/hooks/use-brain-panel.d.ts +1 -1
  138. package/dist/hooks/use-brain-panel.d.ts.map +1 -1
  139. package/dist/hooks/use-brain-risk-sync.d.ts +11 -0
  140. package/dist/hooks/use-brain-risk-sync.d.ts.map +1 -0
  141. package/dist/hooks/use-client-telemetry.d.ts +1 -1
  142. package/dist/hooks/use-client-telemetry.d.ts.map +1 -1
  143. package/dist/hooks/use-core-tui-commands.d.ts +2 -1
  144. package/dist/hooks/use-core-tui-commands.d.ts.map +1 -1
  145. package/dist/hooks/use-director-fleet-bridge.d.ts.map +1 -1
  146. package/dist/hooks/use-enhance-runtime-state.d.ts +23 -0
  147. package/dist/hooks/use-enhance-runtime-state.d.ts.map +1 -0
  148. package/dist/hooks/use-git-session-status.d.ts.map +1 -1
  149. package/dist/hooks/use-help-panel.d.ts +6 -0
  150. package/dist/hooks/use-help-panel.d.ts.map +1 -0
  151. package/dist/hooks/use-history-copy-notice.d.ts +4 -0
  152. package/dist/hooks/use-history-copy-notice.d.ts.map +1 -0
  153. package/dist/hooks/use-history-viewport-sync.d.ts +13 -0
  154. package/dist/hooks/use-history-viewport-sync.d.ts.map +1 -0
  155. package/dist/hooks/use-initial-prompt.d.ts +1 -1
  156. package/dist/hooks/use-initial-prompt.d.ts.map +1 -1
  157. package/dist/hooks/use-interrupt-ladder.d.ts +2 -1
  158. package/dist/hooks/use-interrupt-ladder.d.ts.map +1 -1
  159. package/dist/hooks/use-kanban-board-focus.d.ts +8 -0
  160. package/dist/hooks/use-kanban-board-focus.d.ts.map +1 -0
  161. package/dist/hooks/use-live-settings-state.d.ts +20 -0
  162. package/dist/hooks/use-live-settings-state.d.ts.map +1 -0
  163. package/dist/hooks/use-mailbox-view-model.d.ts.map +1 -1
  164. package/dist/hooks/use-model-pick.d.ts +1 -1
  165. package/dist/hooks/use-model-pick.d.ts.map +1 -1
  166. package/dist/hooks/use-mouse-tracking.d.ts +15 -0
  167. package/dist/hooks/use-mouse-tracking.d.ts.map +1 -0
  168. package/dist/hooks/use-next-steps-auto-submit.d.ts +2 -1
  169. package/dist/hooks/use-next-steps-auto-submit.d.ts.map +1 -1
  170. package/dist/hooks/use-panel-controllers.d.ts +2 -1
  171. package/dist/hooks/use-panel-controllers.d.ts.map +1 -1
  172. package/dist/hooks/use-picker-keys-types.d.ts +56 -0
  173. package/dist/hooks/use-picker-keys-types.d.ts.map +1 -0
  174. package/dist/hooks/use-picker-keys.d.ts +2 -64
  175. package/dist/hooks/use-picker-keys.d.ts.map +1 -1
  176. package/dist/hooks/use-provider-event-bridge.d.ts +1 -1
  177. package/dist/hooks/use-provider-event-bridge.d.ts.map +1 -1
  178. package/dist/hooks/use-session-interrupt-controller.d.ts +6 -1
  179. package/dist/hooks/use-session-interrupt-controller.d.ts.map +1 -1
  180. package/dist/hooks/use-settings-auto-save.d.ts +2 -1
  181. package/dist/hooks/use-settings-auto-save.d.ts.map +1 -1
  182. package/dist/hooks/use-shadow-panel.d.ts +17 -0
  183. package/dist/hooks/use-shadow-panel.d.ts.map +1 -0
  184. package/dist/hooks/use-slash-picker.d.ts +2 -1
  185. package/dist/hooks/use-slash-picker.d.ts.map +1 -1
  186. package/dist/hooks/use-stable-key-handler.d.ts +5 -0
  187. package/dist/hooks/use-stable-key-handler.d.ts.map +1 -0
  188. package/dist/hooks/use-statusbar-view-model.d.ts.map +1 -1
  189. package/dist/hooks/use-subagent-events.d.ts.map +1 -1
  190. package/dist/hooks/use-terminal-render-lifecycle.d.ts.map +1 -1
  191. package/dist/hooks/use-todos-auto-clear.d.ts +3 -0
  192. package/dist/hooks/use-todos-auto-clear.d.ts.map +1 -0
  193. package/dist/hooks/use-tui-activity.d.ts +7 -1
  194. package/dist/hooks/use-tui-activity.d.ts.map +1 -1
  195. package/dist/hooks/use-tui-environment-state.d.ts +1 -0
  196. package/dist/hooks/use-tui-environment-state.d.ts.map +1 -1
  197. package/dist/hooks/use-tui-slash-commands.d.ts +2 -1
  198. package/dist/hooks/use-tui-slash-commands.d.ts.map +1 -1
  199. package/dist/index.js +22376 -20119
  200. package/dist/index.js.map +4 -4
  201. package/dist/input-validation/action-helpers.d.ts +12 -0
  202. package/dist/input-validation/action-helpers.d.ts.map +1 -0
  203. package/dist/input-validation/action-types.d.ts +4 -0
  204. package/dist/input-validation/action-types.d.ts.map +1 -0
  205. package/dist/input-validation/allow-lists.d.ts +29 -0
  206. package/dist/input-validation/allow-lists.d.ts.map +1 -0
  207. package/dist/input-validation/limits.d.ts +27 -0
  208. package/dist/input-validation/limits.d.ts.map +1 -0
  209. package/dist/input-validation/result.d.ts +10 -0
  210. package/dist/input-validation/result.d.ts.map +1 -0
  211. package/dist/input-validation/state-entries.d.ts +22 -0
  212. package/dist/input-validation/state-entries.d.ts.map +1 -0
  213. package/dist/input-validation/terminal.d.ts +69 -0
  214. package/dist/input-validation/terminal.d.ts.map +1 -0
  215. package/dist/input-validation.d.ts +7 -176
  216. package/dist/input-validation.d.ts.map +1 -1
  217. package/dist/layout-engine.d.ts +5 -1
  218. package/dist/layout-engine.d.ts.map +1 -1
  219. package/dist/layout-store.d.ts.map +1 -1
  220. package/dist/mailbox-view-model-types.d.ts +19 -0
  221. package/dist/mailbox-view-model-types.d.ts.map +1 -0
  222. package/dist/memory-context-monitor.d.ts +6 -0
  223. package/dist/memory-context-monitor.d.ts.map +1 -1
  224. package/dist/memory-slash-format.d.ts +10 -0
  225. package/dist/memory-slash-format.d.ts.map +1 -0
  226. package/dist/memory-slash.d.ts.map +1 -1
  227. package/dist/mouse.d.ts +11 -4
  228. package/dist/mouse.d.ts.map +1 -1
  229. package/dist/on-panel-open.d.ts +1 -1
  230. package/dist/on-panel-open.d.ts.map +1 -1
  231. package/dist/overlay-key-router.d.ts +1 -1
  232. package/dist/overlay-key-router.d.ts.map +1 -1
  233. package/dist/reducers/activity.d.ts +2 -1
  234. package/dist/reducers/activity.d.ts.map +1 -1
  235. package/dist/reducers/composer.d.ts +2 -1
  236. package/dist/reducers/composer.d.ts.map +1 -1
  237. package/dist/reducers/conversation.d.ts +3 -2
  238. package/dist/reducers/conversation.d.ts.map +1 -1
  239. package/dist/reducers/dialogs.d.ts +3 -2
  240. package/dist/reducers/dialogs.d.ts.map +1 -1
  241. package/dist/reducers/fleet.d.ts +2 -1
  242. package/dist/reducers/fleet.d.ts.map +1 -1
  243. package/dist/reducers/helpers.d.ts +1 -1
  244. package/dist/reducers/helpers.d.ts.map +1 -1
  245. package/dist/reducers/panel-pickers.d.ts +2 -1
  246. package/dist/reducers/panel-pickers.d.ts.map +1 -1
  247. package/dist/reducers/settings-panel.d.ts +2 -1
  248. package/dist/reducers/settings-panel.d.ts.map +1 -1
  249. package/dist/reducers/settings-values.d.ts +2 -1
  250. package/dist/reducers/settings-values.d.ts.map +1 -1
  251. package/dist/reducers/workspace-panels.d.ts +3 -2
  252. package/dist/reducers/workspace-panels.d.ts.map +1 -1
  253. package/dist/run-tui-client-registration.d.ts +18 -0
  254. package/dist/run-tui-client-registration.d.ts.map +1 -0
  255. package/dist/run-tui-options.d.ts +569 -0
  256. package/dist/run-tui-options.d.ts.map +1 -0
  257. package/dist/run-tui-title-controller.d.ts +16 -0
  258. package/dist/run-tui-title-controller.d.ts.map +1 -0
  259. package/dist/run-tui.d.ts +5 -572
  260. package/dist/run-tui.d.ts.map +1 -1
  261. package/dist/scroll-anchor.d.ts +10 -14
  262. package/dist/scroll-anchor.d.ts.map +1 -1
  263. package/dist/settings-contracts.d.ts +6 -1
  264. package/dist/settings-contracts.d.ts.map +1 -1
  265. package/dist/submit-controller.d.ts +4 -0
  266. package/dist/submit-controller.d.ts.map +1 -1
  267. package/dist/submit-prompt-refinement.d.ts +2 -0
  268. package/dist/submit-prompt-refinement.d.ts.map +1 -1
  269. package/dist/terminal-modes.d.ts +3 -0
  270. package/dist/terminal-modes.d.ts.map +1 -0
  271. package/dist/terminal-silence.d.ts +3 -0
  272. package/dist/terminal-silence.d.ts.map +1 -0
  273. package/dist/terminal-title.d.ts +7 -1
  274. package/dist/terminal-title.d.ts.map +1 -1
  275. package/dist/tui-host-capabilities.d.ts +1 -1
  276. package/dist/tui-host-capabilities.d.ts.map +1 -1
  277. package/dist/ui-contracts.d.ts +2 -1
  278. package/dist/ui-contracts.d.ts.map +1 -1
  279. package/package.json +11 -12
@@ -0,0 +1,988 @@
1
+ import type { AutonomyStage, DesignKitEntry, FleetChatVerbosity, TokenSavingTier } from '@wrongstack/core/types';
2
+ import type { SddBoardSnapshot } from '@wrongstack/sdd';
3
+ import type { State } from './app-state.js';
4
+ import type { DraftEntry, GoalSummary, QueueItem, ResumeSessionEntry, SlashCommandMatch } from './app-state-core-types.js';
5
+ import type { FleetEntry } from './app-state-fleet.js';
6
+ import type { AuthCatalogRow, AuthConfirmAction, AuthLocalPresetRow, AuthPanelView, AuthProviderRow } from './auth-panel-model.js';
7
+ import type { BrainLogEntry, BrainRiskLevel } from './brain-contracts.js';
8
+ import type { BrainPanelSettings } from './brain-panel-model.js';
9
+ import type { StatuslineItem } from './components/statusline-picker.js';
10
+ import type { HistoryEntry } from './history-entry.js';
11
+ import type { AuditLevel, CacheTtl, CompactorStrategy, ContextMode, LogLevel, ReasoningEffort, SettingsMode, SettingsPickerPatch, StatuslineMode } from './settings-contracts.js';
12
+ import type { AutonomyOption, ChipMeta, HelpEntry, LiveSessionEntry, McpPickerItem, ModeOption, PluginPickerItem, ProjectPickerItem, PromptPickEntry, ProviderOption, ShadowState, ToolPickerItem, WorktreeRow } from './ui-contracts.js';
13
+ export type Action = {
14
+ type: 'addEntry';
15
+ entry: DraftEntry;
16
+ } | {
17
+ type: 'archiveLoaded';
18
+ entries: HistoryEntry[];
19
+ } | {
20
+ type: 'startArchiveLoad';
21
+ } | {
22
+ type: 'compactHistory';
23
+ } | {
24
+ type: 'setBuffer';
25
+ buffer: string;
26
+ cursor: number;
27
+ } | {
28
+ type: 'clearInput';
29
+ } | {
30
+ type: 'clearHistory';
31
+ model?: string | undefined;
32
+ provider?: string | undefined;
33
+ } | {
34
+ type: 'streamDelta';
35
+ delta: string;
36
+ } | {
37
+ type: 'streamReset';
38
+ } | {
39
+ type: 'status';
40
+ status: State['status'];
41
+ } | {
42
+ type: 'interrupt';
43
+ } | {
44
+ type: 'resetInterrupts';
45
+ }
46
+ /**
47
+ * User pressed Esc mid-iteration — flag the next message for steering
48
+ * AND stash a context snapshot so the preamble can tell the model
49
+ * exactly what it was doing.
50
+ */
51
+ | {
52
+ type: 'steerStart';
53
+ snapshot: State['steerSnapshot'];
54
+ }
55
+ /** Submit handler consumed the steering flag; reset. */
56
+ | {
57
+ type: 'steerConsume';
58
+ } | {
59
+ type: 'hint';
60
+ text: string;
61
+ } | {
62
+ type: 'copiedNotice';
63
+ text: string;
64
+ entryId: number | null;
65
+ } | {
66
+ type: 'brainStatus';
67
+ state: State['brain']['state'];
68
+ source?: string | undefined;
69
+ risk?: State['brain']['risk'] | undefined;
70
+ summary?: string | undefined;
71
+ } | {
72
+ type: 'brainPromptSet';
73
+ prompt: NonNullable<State['brainPrompt']>;
74
+ } | {
75
+ type: 'brainPromptClear';
76
+ } | {
77
+ type: 'pickerOpen';
78
+ query: string;
79
+ } | {
80
+ type: 'pickerClose';
81
+ } | {
82
+ type: 'pickerSetMatches';
83
+ query: string;
84
+ matches: string[];
85
+ } | {
86
+ type: 'pickerMove';
87
+ delta: number;
88
+ } | {
89
+ type: 'toolStarted';
90
+ id: string;
91
+ name: string;
92
+ } | {
93
+ type: 'toolEnded';
94
+ id?: string | undefined;
95
+ name?: string | undefined;
96
+ } | {
97
+ type: 'toolStreamAppend';
98
+ toolUseId: string;
99
+ name: string;
100
+ text: string;
101
+ startedAt: number;
102
+ } | {
103
+ type: 'toolStreamClear';
104
+ toolUseId?: string | undefined;
105
+ name?: string | undefined;
106
+ } | {
107
+ type: 'enqueue';
108
+ item: Omit<QueueItem, 'id'>;
109
+ } | {
110
+ type: 'dequeueFirst';
111
+ } | {
112
+ type: 'queueClear';
113
+ } | {
114
+ type: 'queueDelete';
115
+ positions: number[];
116
+ } | {
117
+ type: 'queueToggleRefine';
118
+ position: number;
119
+ } | {
120
+ type: 'slashPickerOpen';
121
+ query: string;
122
+ matches: SlashCommandMatch[];
123
+ } | {
124
+ type: 'slashPickerClose';
125
+ } | {
126
+ type: 'slashPickerMove';
127
+ delta: number;
128
+ } | {
129
+ type: 'modelPickerOpen';
130
+ providers: ProviderOption[];
131
+ purpose?: 'switch' | 'pick' | undefined;
132
+ title?: string | undefined;
133
+ } | {
134
+ type: 'modelPickerClose';
135
+ } | {
136
+ type: 'modelPickerMove';
137
+ delta: number;
138
+ } | {
139
+ type: 'modelPickerPickProvider';
140
+ providerId: string;
141
+ models: string[];
142
+ } | {
143
+ type: 'modelPickerBack';
144
+ } | {
145
+ type: 'modelPickerHint';
146
+ text?: string | undefined;
147
+ }
148
+ /** Update the search filter in step 2. */
149
+ | {
150
+ type: 'modelPickerSearch';
151
+ query: string;
152
+ } | {
153
+ type: 'autonomyPickerOpen';
154
+ options: AutonomyOption[];
155
+ } | {
156
+ type: 'autonomyPickerClose';
157
+ } | {
158
+ type: 'autonomyPickerMove';
159
+ delta: number;
160
+ } | {
161
+ type: 'autonomyPickerHint';
162
+ text?: string | undefined;
163
+ } | {
164
+ type: 'modePickerOpen';
165
+ modes: ModeOption[];
166
+ } | {
167
+ type: 'modePickerClose';
168
+ } | {
169
+ type: 'modePickerMove';
170
+ delta: number;
171
+ } | {
172
+ type: 'modePickerHint';
173
+ text?: string | undefined;
174
+ } | {
175
+ type: 'designPickerOpen';
176
+ kits: DesignKitEntry[];
177
+ } | {
178
+ type: 'designPickerClose';
179
+ } | {
180
+ type: 'designPickerMove';
181
+ delta: number;
182
+ } | {
183
+ type: 'designPickerStack';
184
+ stack: string;
185
+ } | {
186
+ type: 'promptPickerOpen';
187
+ all: PromptPickEntry[];
188
+ categories: string[];
189
+ recentSlugs: string[];
190
+ } | {
191
+ type: 'promptPickerClose';
192
+ } | {
193
+ type: 'promptPickerMove';
194
+ delta: number;
195
+ } | {
196
+ type: 'promptPickerCategory';
197
+ delta: number;
198
+ } | {
199
+ type: 'resumePickerOpen';
200
+ sessions: ResumeSessionEntry[];
201
+ } | {
202
+ type: 'resumePickerClose';
203
+ } | {
204
+ type: 'resumePickerMove';
205
+ delta: number;
206
+ } | {
207
+ type: 'resumePickerBusy';
208
+ on: boolean;
209
+ } | {
210
+ type: 'resumePickerHint';
211
+ text?: string | undefined;
212
+ } | {
213
+ type: 'resumePickerError';
214
+ text: string;
215
+ }
216
+ /** Replace all history entries with the given hydrated entries from a resumed session. */
217
+ | {
218
+ type: 'replaceHistory';
219
+ entries: HistoryEntry[];
220
+ nextId: number;
221
+ } | {
222
+ type: 'settingsOpen';
223
+ mode: SettingsMode;
224
+ delayMs: number;
225
+ titleAnimation: boolean;
226
+ yolo: boolean;
227
+ fleetChat: FleetChatVerbosity;
228
+ chime: boolean;
229
+ confirmExit: boolean;
230
+ nextPrediction: boolean;
231
+ featureMcp: boolean;
232
+ featurePlugins: boolean;
233
+ featureMemory: boolean;
234
+ featureSkills: boolean;
235
+ featureModelsRegistry: boolean;
236
+ tokenSavingTier: TokenSavingTier;
237
+ allowOutsideProjectRoot: boolean;
238
+ contextAutoCompact: boolean;
239
+ contextStrategy: CompactorStrategy;
240
+ contextMode: ContextMode;
241
+ maxConcurrent: number;
242
+ logLevel: LogLevel;
243
+ auditLevel: AuditLevel;
244
+ indexOnStart: boolean;
245
+ multiDiffSummaryThreshold: number;
246
+ /**
247
+ * Animation style for the working/thinking chip in the status bar.
248
+ * One of the renderable styles plus the meta-mode `'cycle'`. Persisted
249
+ * to disk on every ←/→ change in `/settings`.
250
+ */
251
+ animationStyle: 'rainbow' | 'wave' | 'pulse' | 'dots' | 'breathe' | 'cycle';
252
+ /**
253
+ * Persisted row index for where to land when the picker reopens.
254
+ * See `Settings.lastSettingsField`.
255
+ */
256
+ lastSettingsField: number;
257
+ maxIterations: number;
258
+ autoProceedMaxIterations: number;
259
+ enhanceDelayMs: number;
260
+ enhanceEnabled: boolean;
261
+ enhanceLanguage: 'original' | 'english';
262
+ debugStream: boolean;
263
+ statuslineMode: StatuslineMode;
264
+ reasoningMode: 'auto' | 'on' | 'off';
265
+ reasoningEffort: ReasoningEffort;
266
+ reasoningPreserve: boolean;
267
+ thinkingWord: string;
268
+ cacheTtl: CacheTtl;
269
+ configScope: 'global' | 'project';
270
+ breakerEnabled: boolean;
271
+ breakerAutoKillResetMs: number;
272
+ showModelReasoning: boolean;
273
+ showAgentSwarmPanel: boolean;
274
+ readSymbols: boolean;
275
+ } | {
276
+ type: 'settingsClose';
277
+ } | {
278
+ type: 'settingsFieldMove';
279
+ delta: number;
280
+ } | {
281
+ type: 'settingsFieldSet';
282
+ field: number;
283
+ } | {
284
+ type: 'settingsValueChange';
285
+ delta: number;
286
+ }
287
+ /**
288
+ * Set a settings value directly from a typed patch (used by the
289
+ * `/settings <chord> <value>` slash command). The patch is produced
290
+ * by `resolveSettingsFieldValue` in settings-picker.tsx and validated
291
+ * before dispatch, so the reducer just spreads it.
292
+ */
293
+ | {
294
+ type: 'settingsValueSet';
295
+ patch: SettingsPickerPatch;
296
+ }
297
+ /**
298
+ * Update the live row-search filter. Empty string clears the filter.
299
+ * Setting any non-empty value while the filter is empty also implicitly
300
+ * activates filter mode (the picker renders only matching rows).
301
+ */
302
+ | {
303
+ type: 'settingsFilterSet';
304
+ filter: string;
305
+ } | {
306
+ type: 'settingsHint';
307
+ text?: string | undefined;
308
+ }
309
+ /** Begin free-text editing of the thinking word (Enter on its row). */
310
+ | {
311
+ type: 'settingsThinkingEditStart';
312
+ }
313
+ /** Replace the in-progress thinking-word draft with the given buffer. */
314
+ | {
315
+ type: 'settingsThinkingEditChange';
316
+ draft: string;
317
+ }
318
+ /** Commit the draft as the new thinking word (validated in the reducer). */
319
+ | {
320
+ type: 'settingsThinkingEditCommit';
321
+ }
322
+ /** Discard the draft and leave edit mode without changing the word. */
323
+ | {
324
+ type: 'settingsThinkingEditCancel';
325
+ } | {
326
+ type: 'statuslineOpen';
327
+ hiddenItems: StatuslineItem[];
328
+ } | {
329
+ type: 'statuslineClose';
330
+ } | {
331
+ type: 'statuslineFieldMove';
332
+ delta: number;
333
+ } | {
334
+ type: 'statuslineFieldSet';
335
+ field: number;
336
+ } | {
337
+ type: 'statuslineToggle';
338
+ item: StatuslineItem;
339
+ } | {
340
+ type: 'statuslineHint';
341
+ text?: string | undefined;
342
+ }
343
+ /**
344
+ * A chip became visible due to data arriving (e.g., brain decision made,
345
+ * mailbox messages arrived). Adds it to visibleChips with optional expiration.
346
+ * If the chip is already in visibleChips, resets its shownAt timestamp.
347
+ */
348
+ | {
349
+ type: 'statuslineChipShow';
350
+ key: StatuslineItem;
351
+ expiresIn?: number;
352
+ }
353
+ /**
354
+ * Immediately remove a chip from visibleChips. Used when a stream ends
355
+ * (brain, mailbox, enhance, debug_stream) so it disappears right away
356
+ * even if it hasn't expired yet.
357
+ */
358
+ | {
359
+ type: 'statuslineChipExpire';
360
+ key: StatuslineItem;
361
+ }
362
+ /**
363
+ * Sync visibleChips from the parent (e.g., after /statusline reset).
364
+ * Replaces the entire visibleChips array.
365
+ */
366
+ | {
367
+ type: 'statuslineVisibleChipsSync';
368
+ visibleChips: ChipMeta[];
369
+ } | {
370
+ type: 'pluginPickerOpen';
371
+ items?: PluginPickerItem[] | undefined;
372
+ } | {
373
+ type: 'pluginPickerClose';
374
+ } | {
375
+ type: 'pluginPickerMove';
376
+ delta: number;
377
+ } | {
378
+ type: 'pluginPickerSetItems';
379
+ items: PluginPickerItem[];
380
+ } | {
381
+ type: 'pluginPickerBusy';
382
+ busy: boolean;
383
+ } | {
384
+ type: 'pluginPickerHint';
385
+ text?: string | undefined;
386
+ } | {
387
+ type: 'mcpPickerOpen';
388
+ items?: McpPickerItem[] | undefined;
389
+ } | {
390
+ type: 'mcpPickerClose';
391
+ } | {
392
+ type: 'mcpPickerMove';
393
+ delta: number;
394
+ } | {
395
+ type: 'mcpPickerSetItems';
396
+ items: McpPickerItem[];
397
+ } | {
398
+ type: 'mcpPickerBusy';
399
+ busy: boolean;
400
+ } | {
401
+ type: 'mcpPickerHint';
402
+ text?: string | undefined;
403
+ } | {
404
+ type: 'toolsPickerOpen';
405
+ items?: ToolPickerItem[] | undefined;
406
+ } | {
407
+ type: 'toolsPickerClose';
408
+ } | {
409
+ type: 'toolsPickerMove';
410
+ delta: number;
411
+ } | {
412
+ type: 'toolsPickerSetItems';
413
+ items: ToolPickerItem[];
414
+ } | {
415
+ type: 'toolsPickerToggle';
416
+ } | {
417
+ type: 'toolsPickerBusy';
418
+ busy: boolean;
419
+ } | {
420
+ type: 'toolsPickerHint';
421
+ text?: string | undefined;
422
+ } | {
423
+ type: 'toolsPickerFilter';
424
+ filter: string;
425
+ } | {
426
+ type: 'brainOpen';
427
+ riskLevel: BrainRiskLevel;
428
+ log: BrainLogEntry[];
429
+ settings?: BrainPanelSettings | undefined;
430
+ } | {
431
+ type: 'brainClose';
432
+ } | {
433
+ type: 'brainMove';
434
+ delta: number;
435
+ } | {
436
+ type: 'brainRiskChange';
437
+ delta: number;
438
+ } | {
439
+ type: 'brainSetLog';
440
+ log: BrainLogEntry[];
441
+ } | {
442
+ type: 'brainHint';
443
+ text?: string | undefined;
444
+ } | {
445
+ type: 'brainSettingsLoaded';
446
+ settings: BrainPanelSettings;
447
+ } | {
448
+ type: 'brainView';
449
+ view: 'settings' | 'log';
450
+ } | {
451
+ type: 'brainRowMove';
452
+ delta: number;
453
+ } | {
454
+ type: 'brainBusy';
455
+ busy: boolean;
456
+ } | {
457
+ type: 'helpOpen';
458
+ entries: HelpEntry[];
459
+ } | {
460
+ type: 'helpClose';
461
+ } | {
462
+ type: 'helpMove';
463
+ delta: number;
464
+ } | {
465
+ type: 'helpFilter';
466
+ filter: string;
467
+ } | {
468
+ type: 'helpHint';
469
+ text?: string | undefined;
470
+ } | {
471
+ type: 'shadowOpen';
472
+ shadow: ShadowState;
473
+ } | {
474
+ type: 'shadowClose';
475
+ } | {
476
+ type: 'shadowUpdate';
477
+ shadow: ShadowState;
478
+ } | {
479
+ type: 'shadowHint';
480
+ text?: string | undefined;
481
+ } | {
482
+ type: 'authOpen';
483
+ view?: Extract<AuthPanelView, 'list' | 'oauth'> | undefined;
484
+ providers?: AuthProviderRow[] | undefined;
485
+ presets?: AuthLocalPresetRow[] | undefined;
486
+ } | {
487
+ type: 'authClose';
488
+ } | {
489
+ type: 'authProviders';
490
+ providers: AuthProviderRow[];
491
+ } | {
492
+ type: 'authCatalog';
493
+ catalog: AuthCatalogRow[];
494
+ } | {
495
+ type: 'authView';
496
+ view: AuthPanelView;
497
+ providerId?: string | undefined;
498
+ } | {
499
+ type: 'authMove';
500
+ delta: number;
501
+ } | {
502
+ type: 'authBusy';
503
+ busy: boolean;
504
+ } | {
505
+ type: 'authHint';
506
+ text?: string | undefined;
507
+ } | {
508
+ type: 'authFilter';
509
+ filter: string;
510
+ } | {
511
+ type: 'authFlowStart';
512
+ title: string;
513
+ } | {
514
+ type: 'authFlowLog';
515
+ line: string;
516
+ } | {
517
+ type: 'authFlowDone';
518
+ ok: boolean;
519
+ message?: string | undefined;
520
+ } | {
521
+ type: 'authPromptStart';
522
+ label: string;
523
+ masked: boolean;
524
+ } | {
525
+ type: 'authPromptChange';
526
+ draft: string;
527
+ } | {
528
+ type: 'authPromptEnd';
529
+ } | {
530
+ type: 'authConfirmStart';
531
+ question: string;
532
+ action: AuthConfirmAction;
533
+ } | {
534
+ type: 'authConfirmEnd';
535
+ } | {
536
+ type: 'projectPickerOpen';
537
+ items: ProjectPickerItem[];
538
+ } | {
539
+ type: 'projectPickerClose';
540
+ } | {
541
+ type: 'projectPickerMove';
542
+ delta: number;
543
+ } | {
544
+ type: 'projectPickerFilter';
545
+ filter: string;
546
+ } | {
547
+ type: 'projectPickerHint';
548
+ text?: string | undefined;
549
+ } | {
550
+ type: 'fKeyPickerOpen';
551
+ } | {
552
+ type: 'fKeyPickerClose';
553
+ } | {
554
+ type: 'fKeyPickerMove';
555
+ delta: number;
556
+ } | {
557
+ type: 'historyPush';
558
+ text: string;
559
+ } | {
560
+ type: 'historyUp';
561
+ } | {
562
+ type: 'historyDown';
563
+ } | {
564
+ type: 'setInputHistory';
565
+ entries: string[];
566
+ } | {
567
+ type: 'clearInputHistory';
568
+ } | {
569
+ type: 'confirmOpen';
570
+ info: State['confirmQueue'][0];
571
+ } | {
572
+ type: 'confirmClose';
573
+ } | {
574
+ type: 'confirmClearAll';
575
+ } | {
576
+ type: 'shellCommandWarningOpen';
577
+ info: NonNullable<State['shellCommandWarning']>;
578
+ } | {
579
+ type: 'shellCommandWarningClose';
580
+ } | {
581
+ type: 'enhanceOpen';
582
+ info: NonNullable<State['enhance']>;
583
+ } | {
584
+ type: 'enhanceClose';
585
+ } | {
586
+ type: 'enhanceSet';
587
+ enabled: boolean;
588
+ } | {
589
+ type: 'enhanceBusy';
590
+ on: boolean;
591
+ } | {
592
+ type: 'refineCountdownOpen';
593
+ info: NonNullable<State['refineCountdown']>;
594
+ } | {
595
+ type: 'refineCountdownClose';
596
+ } | {
597
+ type: 'refineFailureOpen';
598
+ info: NonNullable<State['refineFailure']>;
599
+ } | {
600
+ type: 'refineFailureClose';
601
+ } | {
602
+ type: 'continueConfirmOpen';
603
+ info: NonNullable<State['continueConfirm']>;
604
+ } | {
605
+ type: 'continueConfirmClose';
606
+ } | {
607
+ type: 'clearConfirmOpen';
608
+ info: NonNullable<State['clearConfirm']>;
609
+ } | {
610
+ type: 'clearConfirmSetValue';
611
+ value: string;
612
+ } | {
613
+ type: 'clearConfirmClose';
614
+ } | {
615
+ type: 'exitConfirmOpen';
616
+ info: NonNullable<State['exitConfirm']>;
617
+ } | {
618
+ type: 'exitConfirmClose';
619
+ } | {
620
+ type: 'slashConfirmOpen';
621
+ info: NonNullable<State['slashConfirm']>;
622
+ } | {
623
+ type: 'slashConfirmClose';
624
+ }
625
+ /**
626
+ * Open the ESC-interrupt confirmation dialog with a context snapshot.
627
+ * Fired when Esc is pressed mid-iteration and `confirmExit` is enabled.
628
+ * The snapshot is replayed into `steerStart` on confirmation so the
629
+ * STEERING preamble can describe the interrupted state to the LLM.
630
+ */
631
+ | {
632
+ type: 'escConfirmOpen';
633
+ snapshot: NonNullable<State['steerSnapshot']>;
634
+ }
635
+ /** Dismiss the ESC-interrupt confirmation (user cancelled). */
636
+ | {
637
+ type: 'escConfirmClose';
638
+ }
639
+ /** Open the mid-run send-mode picker with the resolved message + resolver. */
640
+ | {
641
+ type: 'sendModePickerOpen';
642
+ info: NonNullable<State['sendModePicker']>;
643
+ }
644
+ /** Move the send-mode highlight (wraps). */
645
+ | {
646
+ type: 'sendModePickerMove';
647
+ delta: number;
648
+ }
649
+ /** Close the send-mode picker. */
650
+ | {
651
+ type: 'sendModePickerClose';
652
+ } | {
653
+ type: 'resetContextChip';
654
+ } | {
655
+ type: 'fleetSeed';
656
+ entries: FleetEntry[];
657
+ cost: number;
658
+ } | {
659
+ type: 'fleetSpawn';
660
+ id: string;
661
+ name?: string | undefined;
662
+ provider?: string | undefined;
663
+ model?: string | undefined;
664
+ transcriptPath?: string | undefined;
665
+ } | {
666
+ type: 'fleetStart';
667
+ id: string;
668
+ taskId?: string | undefined;
669
+ } | {
670
+ type: 'fleetDelta';
671
+ id: string;
672
+ text: string;
673
+ } | {
674
+ type: 'fleetMessage';
675
+ id: string;
676
+ text: string;
677
+ } | {
678
+ type: 'fleetTool';
679
+ id: string;
680
+ name?: string | undefined;
681
+ ok?: boolean | undefined;
682
+ durationMs?: number | undefined;
683
+ outputBytes?: number | undefined;
684
+ outputLines?: number | undefined;
685
+ }
686
+ /** tool.started: pin the current tool name for status display. */
687
+ | {
688
+ type: 'fleetToolStart';
689
+ id: string;
690
+ name: string;
691
+ }
692
+ /** tool.executed: clear the current tool (paired with fleetTool). */
693
+ | {
694
+ type: 'fleetToolEnd';
695
+ id: string;
696
+ } | {
697
+ type: 'fleetUsage';
698
+ id: string;
699
+ input: number;
700
+ output: number;
701
+ cacheRead: number;
702
+ cacheWrite: number;
703
+ } | {
704
+ type: 'fleetDone';
705
+ id: string;
706
+ status: FleetEntry['status'];
707
+ iterations: number;
708
+ toolCalls: number;
709
+ /** Human-readable failure reason, e.g. "provider_auth", "rate_limit", "timeout". */
710
+ failureReason?: string | undefined;
711
+ } | {
712
+ type: 'fleetRemove';
713
+ id: string;
714
+ } | {
715
+ type: 'fleetBudgetWarning';
716
+ id: string;
717
+ kind: string;
718
+ used: number;
719
+ limit: number;
720
+ } | {
721
+ type: 'fleetBudgetExtended';
722
+ id: string;
723
+ totalExtensions: number;
724
+ } | {
725
+ type: 'fleetCtxPct';
726
+ id: string;
727
+ load: number;
728
+ tokens: number;
729
+ maxContext: number;
730
+ /** Estimated USD cost of the context tokens (optional — computed when pricing known). */
731
+ ctxCost?: number | undefined;
732
+ } | {
733
+ type: 'fleetCost';
734
+ cost: number;
735
+ input?: number | undefined;
736
+ output?: number | undefined;
737
+ /** Per-subagent usage keyed by subagent id (from the director snapshot). */
738
+ perAgent?: Record<string, {
739
+ cost: number;
740
+ }>;
741
+ }
742
+ /** Runtime concurrency ceiling change from CLI /fleet concurrency <n>. */
743
+ | {
744
+ type: 'fleetConcurrency';
745
+ n: number;
746
+ } | {
747
+ type: 'leaderIterStart';
748
+ } | {
749
+ type: 'leaderIterEnd';
750
+ } | {
751
+ type: 'leaderToolStart';
752
+ name: string;
753
+ } | {
754
+ type: 'leaderToolEnd';
755
+ name: string;
756
+ ok?: boolean | undefined;
757
+ durationMs?: number | undefined;
758
+ } | {
759
+ type: 'leaderCtxPct';
760
+ load: number;
761
+ tokens: number;
762
+ maxContext: number;
763
+ } | {
764
+ type: 'setFleetChat';
765
+ mode: FleetChatVerbosity;
766
+ } | {
767
+ type: 'toggleMonitor';
768
+ } | {
769
+ type: 'toggleAgentsMonitor';
770
+ } | {
771
+ type: 'toggleHelp';
772
+ } | {
773
+ type: 'toggleTodosMonitor';
774
+ } | {
775
+ type: 'toggleQueuePanel';
776
+ } | {
777
+ type: 'checkpointReceived';
778
+ cp: State['checkpoints'][0];
779
+ } | {
780
+ type: 'rewindOverlayOpen';
781
+ } | {
782
+ type: 'rewindOverlayClose';
783
+ } | {
784
+ type: 'rewindOverlayMove';
785
+ delta: number;
786
+ } | {
787
+ type: 'sessionRewound';
788
+ toPromptIndex: number;
789
+ } | {
790
+ type: 'eternalStage';
791
+ stage: AutonomyStage;
792
+ } | {
793
+ type: 'goalSummary';
794
+ summary: GoalSummary;
795
+ } | {
796
+ type: 'goalRunInit';
797
+ title: string;
798
+ } | {
799
+ type: 'goalRunPhaseUpdate';
800
+ phaseId: string;
801
+ name: string;
802
+ status: string;
803
+ completedTasks: number;
804
+ totalTasks: number;
805
+ startedAt?: number | undefined;
806
+ } | {
807
+ type: 'goalRunRunningPhases';
808
+ phaseIds: string[];
809
+ } | {
810
+ type: 'goalRunElapsed';
811
+ ms: number;
812
+ } | {
813
+ type: 'goalRunTaskActive';
814
+ phaseId: string;
815
+ taskId: string;
816
+ title: string;
817
+ agent?: string | undefined;
818
+ /** True when the task starts, false when it completes/fails. */
819
+ active: boolean;
820
+ } | {
821
+ type: 'goalRunMonitorToggle';
822
+ } | {
823
+ type: 'goalRunReset';
824
+ } | {
825
+ type: 'sddBoardSnapshot';
826
+ snapshot: SddBoardSnapshot;
827
+ } | {
828
+ type: 'toggleSddBoardMonitor';
829
+ } | {
830
+ type: 'sddBoardFocusNext';
831
+ } | {
832
+ type: 'sddBoardFocusPrev';
833
+ } | {
834
+ type: 'worktreeUpsert';
835
+ handleId: string;
836
+ row: Partial<WorktreeRow & {
837
+ baseBranch?: string | undefined;
838
+ }>;
839
+ baseBranch?: string | undefined;
840
+ } | {
841
+ type: 'worktreeRemove';
842
+ handleId: string;
843
+ } | {
844
+ type: 'toggleWorktreeMonitor';
845
+ }
846
+ /** ScrollableHistory reports whether the viewport is scrolled up. */
847
+ | {
848
+ type: 'setHistoryScrolled';
849
+ scrolled: boolean;
850
+ }
851
+ /** Report the computed viewport height. */
852
+ | {
853
+ type: 'setViewportRows';
854
+ rows: number;
855
+ }
856
+ /**
857
+ * Fold a batch of fleet/display actions through the reducer in ONE pass so
858
+ * a 150ms burst of subagent events produces a single React render instead
859
+ * of one per event. Order-preserving; only high-frequency display events
860
+ * are batched (correctness-sensitive events stay immediate).
861
+ */
862
+ | {
863
+ type: 'fleetBatch';
864
+ actions: Action[];
865
+ }
866
+ /** BugHunter emitted a bug.found event on the FleetBus. */
867
+ | {
868
+ type: 'collabBugFound';
869
+ sessionId: string;
870
+ bugId: string;
871
+ severity: string;
872
+ description: string;
873
+ }
874
+ /** RefactorPlanner emitted a refactor.plan event on the FleetBus. */
875
+ | {
876
+ type: 'collabPlanEmitted';
877
+ sessionId: string;
878
+ planId: string;
879
+ riskScore: string;
880
+ phaseCount: number;
881
+ }
882
+ /** Critic emitted a critic.evaluation event on the FleetBus. */
883
+ | {
884
+ type: 'collabEvalComplete';
885
+ sessionId: string;
886
+ evalId: string;
887
+ verdict: string;
888
+ score: number;
889
+ }
890
+ /** Collab session completed — overall verdict is available. */
891
+ | {
892
+ type: 'collabSessionDone';
893
+ sessionId: string;
894
+ verdict: 'approve' | 'needs_revision' | 'reject';
895
+ }
896
+ /** A collab subagent (bug-hunter / refactor-planner / critic) was spawned. */
897
+ | {
898
+ type: 'collabSubagentSpawned';
899
+ subagentId: string;
900
+ role: string;
901
+ }
902
+ /** Toggle the process list overlay (F8). */
903
+ | {
904
+ type: 'toggleProcessList';
905
+ }
906
+ /** Toggle the cron jobs monitor. */
907
+ | {
908
+ type: 'toggleCronMonitor';
909
+ }
910
+ /** Toggle the audit (side effects) panel. */
911
+ | {
912
+ type: 'toggleAuditPanel';
913
+ }
914
+ /** Toggle the plan panel (F5). */
915
+ | {
916
+ type: 'togglePlanPanel';
917
+ }
918
+ /** Close every open panel/monitor/overlay at once. */
919
+ | {
920
+ type: 'closeAllPanels';
921
+ } | {
922
+ type: 'toggleKanbanPanel';
923
+ } | {
924
+ type: 'toggleGoalPanel';
925
+ } | {
926
+ type: 'toggleGoalKanbanPanel';
927
+ } | {
928
+ type: 'toggleContextPanel';
929
+ } | {
930
+ type: 'toggleConnectionsPanel';
931
+ } | {
932
+ type: 'toggleSessionsPanel';
933
+ } | {
934
+ type: 'sessionsPanelSet';
935
+ sessions: LiveSessionEntry[];
936
+ } | {
937
+ type: 'sessionsPanelMove';
938
+ delta: number;
939
+ } | {
940
+ type: 'sessionsPanelBusy';
941
+ on: boolean;
942
+ } | {
943
+ type: 'sessionResumeConfirmSet';
944
+ sessionId: string;
945
+ sessionName: string;
946
+ } | {
947
+ type: 'sessionResumeConfirmClear';
948
+ }
949
+ /** Push throttled debug-stream telemetry from the provider's chunk callback. */
950
+ | {
951
+ type: 'debugStreamStats';
952
+ chunkCount: number;
953
+ lastChunkSize: number;
954
+ lastDeltaMs: number;
955
+ totalBytes: number;
956
+ lastChunkAt: string;
957
+ }
958
+ /** Clear debug-stream stats (fired on stream reset / idle). */
959
+ | {
960
+ type: 'debugStreamStatsClear';
961
+ }
962
+ /** Auto-proceed countdown tick. Upserts the countdown; 0 clears it. */
963
+ | {
964
+ type: 'countdownTick';
965
+ remainingSeconds: number;
966
+ }
967
+ /** Auto-proceed countdown ended (completed or aborted). */
968
+ | {
969
+ type: 'countdownEnded';
970
+ }
971
+ /** Coordinator emitted a live event. */
972
+ | {
973
+ type: 'coordinatorEvent';
974
+ event: {
975
+ type: string;
976
+ goalId?: string | undefined;
977
+ taskId?: string | undefined;
978
+ knowledgeId?: string | undefined;
979
+ title?: string | undefined;
980
+ text?: string | undefined;
981
+ participants?: string[] | undefined;
982
+ };
983
+ }
984
+ /** Toggle the coordinator monitor overlay. */
985
+ | {
986
+ type: 'toggleCoordinatorMonitor';
987
+ };
988
+ //# sourceMappingURL=app-action-type.d.ts.map