@wrongstack/tui 0.295.1 → 0.296.2

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