@wrongstack/tui 1.0.32 → 1.0.35

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 (75) hide show
  1. package/dist/app-action-settings.d.ts +1 -0
  2. package/dist/app-action-workflows.d.ts +4 -0
  3. package/dist/app-coordination-props.d.ts +116 -0
  4. package/dist/app-enhancement-props.d.ts +57 -0
  5. package/dist/app-panel-state.d.ts +2 -0
  6. package/dist/app-props.d.ts +9 -350
  7. package/dist/app-session-props.d.ts +91 -0
  8. package/dist/app-settings-props.d.ts +101 -0
  9. package/dist/app-settings-type.d.ts +5 -2
  10. package/dist/app-state.d.ts +6 -0
  11. package/dist/app-view-contract.d.ts +2 -3
  12. package/dist/app-view-pickers.d.ts +1 -12
  13. package/dist/app-view-prompts.d.ts +19 -0
  14. package/dist/components/chat-search-bar.d.ts +0 -2
  15. package/dist/components/history/assistant.d.ts +0 -7
  16. package/dist/components/history/banner-formation.d.ts +6 -0
  17. package/dist/components/history/banner.d.ts +3 -1
  18. package/dist/components/history/basic-format.d.ts +0 -2
  19. package/dist/components/history/copy-geometry.d.ts +0 -9
  20. package/dist/components/history/entry.d.ts +2 -1
  21. package/dist/components/history/index.d.ts +1 -1
  22. package/dist/components/history/scroll-controller-types.d.ts +5 -0
  23. package/dist/components/history/scrollbar-geometry.d.ts +2 -0
  24. package/dist/components/history/types.d.ts +1 -1
  25. package/dist/components/history/use-history-controller.d.ts +4 -0
  26. package/dist/components/model-picker-effort.d.ts +7 -0
  27. package/dist/components/model-picker.d.ts +6 -0
  28. package/dist/components/provider-colors.d.ts +0 -7
  29. package/dist/components/scrollable-history.d.ts +2 -5
  30. package/dist/components/settings-picker-constants.d.ts +2 -3
  31. package/dist/components/settings-picker-props.d.ts +139 -0
  32. package/dist/components/settings-picker.d.ts +4 -138
  33. package/dist/components/sidebar-panels-workspace.d.ts +7 -7
  34. package/dist/components/sidebar-panels.d.ts +2 -3
  35. package/dist/components/status-bar-format.d.ts +0 -10
  36. package/dist/components/status-bar-icons.d.ts +0 -2
  37. package/dist/components/status-bar-rails-common.d.ts +1 -0
  38. package/dist/components/status-bar-rails.d.ts +0 -1
  39. package/dist/components/status-bar-types.d.ts +2 -0
  40. package/dist/components/status-bar.d.ts +3 -4
  41. package/dist/components/worktree-monitor.d.ts +8 -12
  42. package/dist/components/worktree-timeline-bars.d.ts +31 -0
  43. package/dist/heap-watchdog.d.ts +1 -1
  44. package/dist/hooks/use-app-pipeline-builders.d.ts +1 -0
  45. package/dist/hooks/use-bug-hunt-loop.d.ts +1 -0
  46. package/dist/hooks/use-history-viewport-sync.d.ts +4 -7
  47. package/dist/hooks/use-tui-slash-commands.d.ts +0 -1
  48. package/dist/index.js +40454 -39672
  49. package/dist/input-validation/action-types.d.ts +1 -2
  50. package/dist/input-validation/allow-lists.d.ts +0 -6
  51. package/dist/input-validation/terminal.d.ts +0 -13
  52. package/dist/key-handler-context.d.ts +1 -1
  53. package/dist/memory-slash-types.d.ts +1 -4
  54. package/dist/on-panel-open.d.ts +0 -13
  55. package/dist/reducers/workspace-panels.d.ts +1 -1
  56. package/dist/settings-contracts.d.ts +7 -0
  57. package/dist/submit-controller.d.ts +1 -0
  58. package/dist/tool-result-view-mode.d.ts +0 -2
  59. package/dist/topic-shift-advisor.d.ts +1 -1
  60. package/dist/tui-host-capabilities.d.ts +2 -1
  61. package/dist/ui-contracts.d.ts +2 -1
  62. package/dist/use-app-controller.d.ts +6 -8
  63. package/dist/use-controller-app-state.d.ts +13 -0
  64. package/dist/use-controller-auto-prompts.d.ts +14 -0
  65. package/dist/use-controller-commands.d.ts +51 -0
  66. package/dist/use-controller-confirm-auth.d.ts +20 -0
  67. package/dist/use-controller-environment.d.ts +112 -0
  68. package/dist/use-controller-input-wiring.d.ts +53 -0
  69. package/dist/use-controller-key-pipeline.d.ts +1 -0
  70. package/dist/use-controller-panel-hooks.d.ts +1 -0
  71. package/dist/use-controller-session-bridges.d.ts +19 -0
  72. package/dist/use-controller-statusline-picker.d.ts +16 -0
  73. package/dist/use-controller-theme-events.d.ts +31 -0
  74. package/dist/use-controller-theme-wiring.d.ts +25 -0
  75. package/package.json +7 -7
@@ -0,0 +1,139 @@
1
+ import type { AnimationStyleChoice, AuditLevel, CacheTtl, CompactorStrategy, ConfigScope, ContextMode, EnhanceLanguage, FleetChatVerbosityTui, LogLevel, ReasoningEffort, ReasoningMode, SettingsMode, StatuslineMode, TokenSavingTierTui, ToolResultViewMode } from './settings-picker-model.js';
2
+ import type { SettingsPickerRowData } from './settings-picker-row-list.js';
3
+ export interface SettingsPickerProps {
4
+ /** Focused row index. */
5
+ field: number;
6
+ mode: SettingsMode;
7
+ delayMs: number;
8
+ titleAnimation: boolean;
9
+ yolo: boolean;
10
+ fleetChat: FleetChatVerbosityTui;
11
+ chime: boolean;
12
+ confirmExit: boolean;
13
+ nextPrediction: boolean;
14
+ featureMcp: boolean;
15
+ featurePlugins: boolean;
16
+ featureMemory: boolean;
17
+ featureSkills: boolean;
18
+ featureModelsRegistry: boolean;
19
+ featureToolCoach: boolean;
20
+ /** Token-saving tier: off | minimal | light | medium | aggressive. */
21
+ tokenSavingTier: TokenSavingTierTui;
22
+ /** Allow tools to read/write paths outside the project root directory. Default: true. */
23
+ allowOutsideProjectRoot: boolean;
24
+ maxIterations: number;
25
+ /** Maximum auto-proceed iterations before stopping (0 = unlimited). */
26
+ autoProceedMaxIterations: number;
27
+ /** Prompt refinement preview countdown (ms). Cycled via ENHANCE_DELAY_PRESETS. */
28
+ enhanceDelayMs: number;
29
+ /** Enable/disable prompt refinement. */
30
+ enhanceEnabled: boolean;
31
+ /** Default language for refinement: original (keep user's language) or english. */
32
+ enhanceLanguage: EnhanceLanguage;
33
+ /** Pre-refine grace countdown (seconds). 0 = skip. */
34
+ preRefineSeconds: number;
35
+ /** Run incremental index at session start. */
36
+ indexOnStart: boolean;
37
+ /** User-tunable cutoff for the multi-file diff summary footer. 0 = off. */
38
+ multiDiffSummaryThreshold: number;
39
+ /** Thinking word displayed in status bar while agent is working. */
40
+ thinkingWord: string;
41
+ /** True while the user is free-text editing the thinking word (Enter on the row). */
42
+ thinkingWordEditing?: boolean | undefined;
43
+ /** In-progress text buffer shown while `thinkingWordEditing`. */
44
+ thinkingWordDraft?: string | undefined;
45
+ /** Reasoning mode: auto (provider default) | on | off. */
46
+ reasoningMode: ReasoningMode;
47
+ /** Reasoning effort level. */
48
+ reasoningEffort: ReasoningEffort;
49
+ /** Effort levels the active model documents (absent = undocumented). */
50
+ reasoningEffortLevels?: string[] | undefined;
51
+ /** Preserve thinking across turns. */
52
+ reasoningPreserve: boolean;
53
+ /** Prompt cache TTL. */
54
+ cacheTtl: CacheTtl;
55
+ contextAutoCompact: boolean;
56
+ contextStrategy: CompactorStrategy;
57
+ contextMode: ContextMode;
58
+ maxConcurrent: number;
59
+ logLevel: LogLevel;
60
+ auditLevel: AuditLevel;
61
+ /** Whether the process circuit breaker gates bash/exec. */
62
+ breakerEnabled: boolean;
63
+ /** Auto kill/reset delay (ms) when the breaker trips. 0 = manual recovery. */
64
+ breakerAutoKillResetMs: number;
65
+ /** Show the "Model Reasoning" blocks in chat history. Default: true. */
66
+ showModelReasoning: boolean;
67
+ toolResultViewMode: ToolResultViewMode;
68
+ /** Agent swarm placement. */
69
+ showAgentSwarmPanel: import('../app-settings-type.js').AgentSwarmPanelMode;
70
+ /** Right sidebar master toggle. */
71
+ showSidebar?: boolean | undefined;
72
+ /** Show SAGE Memory Inject blocks in tool results. Default: false. */
73
+ showSageMemoryInject: boolean;
74
+ /** Minimum relation strength for SAGE memory injection. Default: 0.85. */
75
+ sageMemoryInjectThreshold: number;
76
+ /** Register the leader's agent-callable `nextsteps` tool. Default: false. */
77
+ nextStepsTool: boolean;
78
+ /** Leader must end every finished turn with <nextsteps> or the completion marker (`autonomy.nextSteps: 'required'`). Default: true. */
79
+ nextStepsRequired: boolean;
80
+ /** When true, read tool includes codebase-index symbols alongside file content. */
81
+ readSymbols: boolean;
82
+ /**
83
+ * Per-panel placement map (F-key bottom vs right sidebar). One picker row
84
+ * per PanelId in PANEL_IDS order; each row cycles 'bottom' ↔ 'sidebar'.
85
+ */
86
+ panelPositions: import('../ui-contracts.js').PanelPositionMap;
87
+ /**
88
+ * WrongProxy / WrongTrace: master switch. When true AND the daemon at
89
+ * `wrongProxyUrl` is reachable, every provider's base URL is rewritten
90
+ * through `${wrongProxyUrl}/proxy/<host><path>`. openai-codex is
91
+ * excluded by spec. Toggled on the row at field index 59.
92
+ */
93
+ wrongProxyEnabled: boolean;
94
+ /**
95
+ * WrongProxy / WrongTrace URL. Default `http://localhost:3444`. Text
96
+ * field (Enter on the row opens an inline edit). Picker field 60.
97
+ */
98
+ wrongProxyUrl: string;
99
+ /** True while free-text editing the WrongProxy URL (Enter on its row). */
100
+ wrongProxyUrlEditing: boolean;
101
+ /** In-progress text buffer while `wrongProxyUrlEditing`. */
102
+ wrongProxyUrlDraft: string;
103
+ /** Raw SSE stream debugging toggle — hex-dump every byte received from providers. */
104
+ debugStream: boolean;
105
+ /** Statusline density: minimum single-line or detailed multi-line. */
106
+ statuslineMode: StatuslineMode;
107
+ /** Where settings are persisted. */
108
+ configScope: ConfigScope;
109
+ /** Active profile config path used when {@link configScope} is global. */
110
+ profileConfigPath?: string | undefined;
111
+ /**
112
+ * Animation style for the status bar's working/thinking chip.
113
+ * One of the AnimationStyle values, or 'cycle' to rotate through variants.
114
+ */
115
+ animationStyle: AnimationStyleChoice;
116
+ /**
117
+ * Live filter for the row-search modal (entered via `/`). When non-empty,
118
+ * the picker renders only matching rows. The leading `/` is part of the
119
+ * value (matches fzf/vim convention) — the matcher strips it before
120
+ * matching against row labels.
121
+ */
122
+ filter?: string | undefined;
123
+ /**
124
+ * Real rendered height of the Input box below the picker (rows).
125
+ * When omitted, defaults to 3 (single-line prompt + 2 border/padding
126
+ * rows). Passed from AppView so the picker's height budget accounts
127
+ * for multi-line input buffers instead of assuming a constant.
128
+ */
129
+ inputHeight?: number | undefined;
130
+ maxRows?: number | undefined;
131
+ columns?: number | undefined;
132
+ hint?: string | undefined;
133
+ /** @internal Test seam for asserting the production row/header layout contract. */
134
+ onLayoutComputed?: ((layout: {
135
+ rows: readonly SettingsPickerRowData[];
136
+ fieldRowIndex: readonly number[];
137
+ }) => void) | undefined;
138
+ }
139
+ //# sourceMappingURL=settings-picker-props.d.ts.map
@@ -1,141 +1,7 @@
1
1
  import type React from 'react';
2
- import type { AnimationStyleChoice, AuditLevel, CacheTtl, CompactorStrategy, ConfigScope, ContextMode, EnhanceLanguage, FleetChatVerbosityTui, LogLevel, ReasoningEffort, ReasoningMode, SettingsMode, StatuslineMode, TokenSavingTierTui, ToolResultViewMode } from './settings-picker-model.js';
3
- import { type SettingsPickerRowData } from './settings-picker-row-list.js';
4
- export { SETTINGS_PICKER_JUMP_CHORDS, type SettingsPickerJumpChord, type SettingsPickerJumpMod, settingsPickerJumpByName, settingsPickerJumpField, settingsPickerJumpNames, } from './settings-picker-jumps.js';
2
+ import type { SettingsPickerProps } from './settings-picker-props.js';
3
+ export { SETTINGS_PICKER_JUMP_CHORDS, settingsPickerJumpByName, settingsPickerJumpField, settingsPickerJumpNames, } from './settings-picker-jumps.js';
5
4
  export * from './settings-picker-model.js';
6
- export interface SettingsPickerProps {
7
- /** Focused row index. */
8
- field: number;
9
- mode: SettingsMode;
10
- delayMs: number;
11
- titleAnimation: boolean;
12
- yolo: boolean;
13
- fleetChat: FleetChatVerbosityTui;
14
- chime: boolean;
15
- confirmExit: boolean;
16
- nextPrediction: boolean;
17
- featureMcp: boolean;
18
- featurePlugins: boolean;
19
- featureMemory: boolean;
20
- featureSkills: boolean;
21
- featureModelsRegistry: boolean;
22
- featureToolCoach: boolean;
23
- /** Token-saving tier: off | minimal | light | medium | aggressive. */
24
- tokenSavingTier: TokenSavingTierTui;
25
- /** Allow tools to read/write paths outside the project root directory. Default: true. */
26
- allowOutsideProjectRoot: boolean;
27
- maxIterations: number;
28
- /** Maximum auto-proceed iterations before stopping (0 = unlimited). */
29
- autoProceedMaxIterations: number;
30
- /** Prompt refinement preview countdown (ms). Cycled via ENHANCE_DELAY_PRESETS. */
31
- enhanceDelayMs: number;
32
- /** Enable/disable prompt refinement. */
33
- enhanceEnabled: boolean;
34
- /** Default language for refinement: original (keep user's language) or english. */
35
- enhanceLanguage: EnhanceLanguage;
36
- /** Pre-refine grace countdown (seconds). 0 = skip. */
37
- preRefineSeconds: number;
38
- /** Run incremental index at session start. */
39
- indexOnStart: boolean;
40
- /** User-tunable cutoff for the multi-file diff summary footer. 0 = off. */
41
- multiDiffSummaryThreshold: number;
42
- /** Thinking word displayed in status bar while agent is working. */
43
- thinkingWord: string;
44
- /** True while the user is free-text editing the thinking word (Enter on the row). */
45
- thinkingWordEditing?: boolean | undefined;
46
- /** In-progress text buffer shown while `thinkingWordEditing`. */
47
- thinkingWordDraft?: string | undefined;
48
- /** Reasoning mode: auto (provider default) | on | off. */
49
- reasoningMode: ReasoningMode;
50
- /** Reasoning effort level. */
51
- reasoningEffort: ReasoningEffort;
52
- /** Effort levels the active model documents (absent = undocumented). */
53
- reasoningEffortLevels?: string[] | undefined;
54
- /** Preserve thinking across turns. */
55
- reasoningPreserve: boolean;
56
- /** Prompt cache TTL. */
57
- cacheTtl: CacheTtl;
58
- contextAutoCompact: boolean;
59
- contextStrategy: CompactorStrategy;
60
- contextMode: ContextMode;
61
- maxConcurrent: number;
62
- logLevel: LogLevel;
63
- auditLevel: AuditLevel;
64
- /** Whether the process circuit breaker gates bash/exec. */
65
- breakerEnabled: boolean;
66
- /** Auto kill/reset delay (ms) when the breaker trips. 0 = manual recovery. */
67
- breakerAutoKillResetMs: number;
68
- /** Show the "Model Reasoning" blocks in chat history. Default: true. */
69
- showModelReasoning: boolean;
70
- toolResultViewMode: ToolResultViewMode;
71
- /** Agent swarm placement. */
72
- showAgentSwarmPanel: import('../app-settings-type.js').AgentSwarmPanelMode;
73
- /** Right sidebar master toggle. */
74
- showSidebar?: boolean | undefined;
75
- /** Show SAGE Memory Inject blocks in tool results. Default: false. */
76
- showSageMemoryInject: boolean;
77
- /** Minimum relation strength for SAGE memory injection. Default: 0.85. */
78
- sageMemoryInjectThreshold: number;
79
- /** Register the leader's agent-callable `nextsteps` tool. Default: false. */
80
- nextStepsTool: boolean;
81
- /** When true, read tool includes codebase-index symbols alongside file content. */
82
- readSymbols: boolean;
83
- /**
84
- * Per-panel placement map (F-key bottom vs right sidebar). One picker row
85
- * per PanelId in PANEL_IDS order; each row cycles 'bottom' ↔ 'sidebar'.
86
- */
87
- panelPositions: import('../ui-contracts.js').PanelPositionMap;
88
- /**
89
- * WrongProxy / WrongTrace: master switch. When true AND the daemon at
90
- * `wrongProxyUrl` is reachable, every provider's base URL is rewritten
91
- * through `${wrongProxyUrl}/proxy/<host><path>`. openai-codex is
92
- * excluded by spec. Toggled on the row at field index 59.
93
- */
94
- wrongProxyEnabled: boolean;
95
- /**
96
- * WrongProxy / WrongTrace URL. Default `http://localhost:3444`. Text
97
- * field (Enter on the row opens an inline edit). Picker field 60.
98
- */
99
- wrongProxyUrl: string;
100
- /** True while free-text editing the WrongProxy URL (Enter on its row). */
101
- wrongProxyUrlEditing: boolean;
102
- /** In-progress text buffer while `wrongProxyUrlEditing`. */
103
- wrongProxyUrlDraft: string;
104
- /** Raw SSE stream debugging toggle — hex-dump every byte received from providers. */
105
- debugStream: boolean;
106
- /** Statusline density: minimum single-line or detailed multi-line. */
107
- statuslineMode: StatuslineMode;
108
- /** Where settings are persisted. */
109
- configScope: ConfigScope;
110
- /** Active profile config path used when {@link configScope} is global. */
111
- profileConfigPath?: string | undefined;
112
- /**
113
- * Animation style for the status bar's working/thinking chip.
114
- * One of the AnimationStyle values, or 'cycle' to rotate through variants.
115
- */
116
- animationStyle: AnimationStyleChoice;
117
- /**
118
- * Live filter for the row-search modal (entered via `/`). When non-empty,
119
- * the picker renders only matching rows. The leading `/` is part of the
120
- * value (matches fzf/vim convention) — the matcher strips it before
121
- * matching against row labels.
122
- */
123
- filter?: string | undefined;
124
- /**
125
- * Real rendered height of the Input box below the picker (rows).
126
- * When omitted, defaults to 3 (single-line prompt + 2 border/padding
127
- * rows). Passed from AppView so the picker's height budget accounts
128
- * for multi-line input buffers instead of assuming a constant.
129
- */
130
- inputHeight?: number | undefined;
131
- maxRows?: number | undefined;
132
- columns?: number | undefined;
133
- hint?: string | undefined;
134
- /** @internal Test seam for asserting the production row/header layout contract. */
135
- onLayoutComputed?: ((layout: {
136
- rows: readonly SettingsPickerRowData[];
137
- fieldRowIndex: readonly number[];
138
- }) => void) | undefined;
139
- }
140
- export declare function SettingsPicker({ field, filter, mode, delayMs, titleAnimation, yolo, fleetChat, chime, confirmExit, nextPrediction, featureMcp, featurePlugins, featureMemory, featureSkills, featureModelsRegistry, featureToolCoach, tokenSavingTier, allowOutsideProjectRoot, maxIterations, autoProceedMaxIterations, enhanceDelayMs, enhanceEnabled, enhanceLanguage, preRefineSeconds, indexOnStart, multiDiffSummaryThreshold, thinkingWord, thinkingWordEditing, thinkingWordDraft, wrongProxyUrlEditing, wrongProxyUrlDraft, reasoningMode, reasoningEffort, reasoningEffortLevels, reasoningPreserve, cacheTtl, contextAutoCompact, contextStrategy, contextMode, maxConcurrent, logLevel, auditLevel, debugStream, statuslineMode, configScope, profileConfigPath, animationStyle, breakerEnabled, breakerAutoKillResetMs, showModelReasoning, toolResultViewMode, showAgentSwarmPanel, showSidebar, showSageMemoryInject, sageMemoryInjectThreshold, nextStepsTool, readSymbols, panelPositions, wrongProxyEnabled, wrongProxyUrl, inputHeight, maxRows, columns, hint, onLayoutComputed, }: SettingsPickerProps): React.ReactElement;
5
+ export type { SettingsPickerProps } from './settings-picker-props.js';
6
+ export declare function SettingsPicker({ field, filter, mode, delayMs, titleAnimation, yolo, fleetChat, chime, confirmExit, nextPrediction, featureMcp, featurePlugins, featureMemory, featureSkills, featureModelsRegistry, featureToolCoach, tokenSavingTier, allowOutsideProjectRoot, maxIterations, autoProceedMaxIterations, enhanceDelayMs, enhanceEnabled, enhanceLanguage, preRefineSeconds, indexOnStart, multiDiffSummaryThreshold, thinkingWord, thinkingWordEditing, thinkingWordDraft, wrongProxyUrlEditing, wrongProxyUrlDraft, reasoningMode, reasoningEffort, reasoningEffortLevels, reasoningPreserve, cacheTtl, contextAutoCompact, contextStrategy, contextMode, maxConcurrent, logLevel, auditLevel, debugStream, statuslineMode, configScope, profileConfigPath, animationStyle, breakerEnabled, breakerAutoKillResetMs, showModelReasoning, toolResultViewMode, showAgentSwarmPanel, showSidebar, showSageMemoryInject, sageMemoryInjectThreshold, nextStepsTool, nextStepsRequired, readSymbols, panelPositions, wrongProxyEnabled, wrongProxyUrl, inputHeight, maxRows, columns, hint, onLayoutComputed, }: SettingsPickerProps): React.ReactElement;
141
7
  //# sourceMappingURL=settings-picker.d.ts.map
@@ -3,11 +3,11 @@
3
3
  * `sidebar-panel-<name>.tsx` module; this barrel keeps the historical import
4
4
  * path stable for `sidebar-panels.tsx` and tests.
5
5
  */
6
- export { AgentsPanelSidebar, type AgentsPanelSidebarProps } from './sidebar-panel-agents.js';
7
- export { ConnectionsPanelSidebar, type ConnectionsPanelSidebarProps, } from './sidebar-panel-connections.js';
8
- export { CoordinatorPanelSidebar, type CoordinatorPanelSidebarProps, } from './sidebar-panel-coordinator.js';
9
- export { FleetPanelSidebar, type FleetPanelSidebarProps } from './sidebar-panel-fleet.js';
10
- export { ProjectPickerSidebar, type ProjectPickerSidebarProps } from './sidebar-panel-project.js';
11
- export { WorktreePanelSidebar, type WorktreePanelSidebarProps } from './sidebar-panel-worktree.js';
12
- export { WrongProxyPanelSidebar, type WrongProxyPanelSidebarProps, } from './sidebar-panel-wrong-proxy.js';
6
+ export { AgentsPanelSidebar } from './sidebar-panel-agents.js';
7
+ export { ConnectionsPanelSidebar, } from './sidebar-panel-connections.js';
8
+ export { CoordinatorPanelSidebar, } from './sidebar-panel-coordinator.js';
9
+ export { FleetPanelSidebar } from './sidebar-panel-fleet.js';
10
+ export { ProjectPickerSidebar } from './sidebar-panel-project.js';
11
+ export { WorktreePanelSidebar } from './sidebar-panel-worktree.js';
12
+ export { WrongProxyPanelSidebar, } from './sidebar-panel-wrong-proxy.js';
13
13
  //# sourceMappingURL=sidebar-panels-workspace.d.ts.map
@@ -1,4 +1,3 @@
1
- export { EmptyState, fleetStatusVisual, fmtRelative, fmtShortDuration, liveSessionColor, liveSessionGlyph, SidebarWorklistRow, } from './sidebar-panels-shared.js';
2
- export { GoalPanelSidebar, type GoalPanelSidebarProps, KanbanPanelSidebar, type KanbanPanelSidebarProps, PlanPanelSidebar, type PlanPanelSidebarProps, ProcessListPanelSidebar, type ProcessListPanelSidebarProps, QueuePanelSidebar, type QueuePanelSidebarProps, SessionsPanelSidebar, type SessionsPanelSidebarProps, TodosPanelSidebar, type TodosPanelSidebarProps, } from './sidebar-panels-task.js';
3
- export { AgentsPanelSidebar, type AgentsPanelSidebarProps, ConnectionsPanelSidebar, type ConnectionsPanelSidebarProps, CoordinatorPanelSidebar, type CoordinatorPanelSidebarProps, FleetPanelSidebar, type FleetPanelSidebarProps, ProjectPickerSidebar, type ProjectPickerSidebarProps, WorktreePanelSidebar, type WorktreePanelSidebarProps, WrongProxyPanelSidebar, type WrongProxyPanelSidebarProps, } from './sidebar-panels-workspace.js';
1
+ export { GoalPanelSidebar, KanbanPanelSidebar, PlanPanelSidebar, ProcessListPanelSidebar, QueuePanelSidebar, SessionsPanelSidebar, TodosPanelSidebar, } from './sidebar-panels-task.js';
2
+ export { AgentsPanelSidebar, ConnectionsPanelSidebar, CoordinatorPanelSidebar, FleetPanelSidebar, ProjectPickerSidebar, WorktreePanelSidebar, WrongProxyPanelSidebar, } from './sidebar-panels-workspace.js';
4
3
  //# sourceMappingURL=sidebar-panels.d.ts.map
@@ -40,16 +40,6 @@ export declare function stateChip(state: 'idle' | 'running' | 'streaming' | 'abo
40
40
  export declare function renderProgress(ratio: number, width: number): string;
41
41
  export declare function contextBarColor(ratio: number): string;
42
42
  export declare function renderMeter(ratio: number, width: number): string;
43
- /**
44
- * Block-style meter for the sidebar — a solid fill (`█`) plus an empty track
45
- * (`░`). Returned as two segments so the caller can color the fill (e.g. by
46
- * context pressure via {@link contextBarColor}) independently of the dim track.
47
- * Width-safe: `filled.length + empty.length === max(1, width)` always holds.
48
- */
49
- export declare function blockMeter(ratio: number, width: number): {
50
- filled: string;
51
- empty: string;
52
- };
53
43
  /**
54
44
  * Render a 0..1 ratio history as a compact sparkline (oldest → newest, the
55
45
  * latest sample is the last character). Each value maps onto one of the eight
@@ -42,9 +42,7 @@ export declare const STATUSLINE_ICONS: {
42
42
  readonly sandbox: string;
43
43
  readonly yolo: string;
44
44
  };
45
- export declare const COMPACT_THRESHOLD = 50;
46
45
  export declare function chipColor(color: string, isNoColor: boolean): string | undefined;
47
- export declare const STACK_ORANGE = "#FD9F02";
48
46
  export declare const SPINNER_FRAMES: string[];
49
47
  export declare const SPINNER_INTERVAL_MS = 1000;
50
48
  //# sourceMappingURL=status-bar-icons.d.ts.map
@@ -16,6 +16,7 @@ export interface StatusBarRailBuildParams {
16
16
  latestVersion?: string | undefined;
17
17
  updateAvailable?: boolean | undefined;
18
18
  yolo?: boolean | undefined;
19
+ yoloPlus?: boolean | undefined;
19
20
  autonomy?: StatusBarProps['autonomy'];
20
21
  processCount?: number | undefined;
21
22
  stateStatusChip: React.ReactElement | null;
@@ -5,7 +5,6 @@ import type { StatusBarProps } from './status-bar-types.js';
5
5
  import type { StatuslineItem } from './statusline-picker.js';
6
6
  export { buildAsyncChipEntries } from './status-bar-rails-async.js';
7
7
  export type { StatusBarRailBuildParams } from './status-bar-rails-common.js';
8
- export { densityBounds } from './status-bar-rails-common.js';
9
8
  export { buildSafetyWorkEntries } from './status-bar-rails-safety.js';
10
9
  export declare function buildWorkspaceChipEntries(p: StatusBarRailBuildParams, modelStatusChip: React.ReactElement | null, modelShortChip?: React.ReactElement | null, modelMicroChip?: React.ReactElement | null): RailSpanEntry[];
11
10
  /**
@@ -159,6 +159,8 @@ export interface StatusBarProps {
159
159
  hint?: string | undefined;
160
160
  queueCount?: number | undefined;
161
161
  yolo?: boolean | undefined;
162
+ /** YOLO+ — everything allowed, nothing asks. Shown instead of YOLO. */
163
+ yoloPlus?: boolean | undefined;
162
164
  /**
163
165
  * Session start timestamp (ms). Still passed by `app-status-region.tsx`
164
166
  * but currently read by nothing: StatusBar stopped rendering the chip
@@ -1,8 +1,7 @@
1
1
  import type React from 'react';
2
2
  import type { StatusBarProps } from './status-bar-types.js';
3
- export { contextBarColor, fmtElapsed, hasTokenDisplay, nodeText, renderMeter, renderProgress, shortenPath, stateChip, type TokenDisplayTotals, tokenDisplayTotals, truncateChip, } from './status-bar-format.js';
4
- export { chipColor, SPINNER_INTERVAL_MS, STACK_ORANGE, STATUSLINE_ICONS, } from './status-bar-icons.js';
5
- export type { BrainStatusChip, ContextWindow, FleetAgentDetail, FleetCounts, MailboxStatus, PlanCounts, StatusBarProps, TaskCounts, TodoCounts, } from './status-bar-types.js';
3
+ export { fmtElapsed, hasTokenDisplay, nodeText, renderMeter, renderProgress, stateChip, tokenDisplayTotals, truncateChip, } from './status-bar-format.js';
4
+ export type { BrainStatusChip, MailboxStatus, StatusBarProps, } from './status-bar-types.js';
6
5
  /**
7
6
  * Four-rail status bar. Lines are assigned by VOLATILITY, not by topic, so
8
7
  * the reader's eye learns where to look:
@@ -22,5 +21,5 @@ export type { BrainStatusChip, ContextWindow, FleetAgentDetail, FleetCounts, Mai
22
21
  * the rendered entries themselves, so an empty rail never renders and a
23
22
  * vanilla session keeps its two-line footprint.
24
23
  */
25
- export declare const StatusBar: React.MemoExoticComponent<({ model, provider, effort, version, latestVersion, updateAvailable, updateReadyVersion, state, thinkingWord, thinkingAnimationStyle, tokenCounter, hint, queueCount, yolo, autonomy, fleetWorkingTime, todos, plan, tasks, fleet, fleetAgents, git, subagentCount, brain, projectName, workingDir, processCount, context, estimatedContextTokens, Sage, memoryContextMonitor, contextStrategy, hiddenItems, statuslineLines, statuslineDensities, statuslineOrder, mode, events, sessionId, eternalStage, goalSummary, droppedTools, indexState, breakerCountdown, modeLabel, promptVariant, themeName, debugStreamStats, enhanceCountdown, nextStepsAutoSubmitCountdown, nextStepsAutoSubmitLabel, autoProceedCountdown, sessionCount, mailbox, tokenSavingMode, toolCount, visibleChips, sideEffectCount, maxWidth, clickMapRef, }: StatusBarProps) => React.ReactElement>;
24
+ export declare const StatusBar: React.MemoExoticComponent<({ model, provider, effort, version, latestVersion, updateAvailable, updateReadyVersion, state, thinkingWord, thinkingAnimationStyle, tokenCounter, hint, queueCount, yolo, yoloPlus, autonomy, fleetWorkingTime, todos, plan, tasks, fleet, fleetAgents, git, subagentCount, brain, projectName, workingDir, processCount, context, estimatedContextTokens, Sage, memoryContextMonitor, contextStrategy, hiddenItems, statuslineLines, statuslineDensities, statuslineOrder, mode, events, sessionId, eternalStage, goalSummary, droppedTools, indexState, breakerCountdown, modeLabel, promptVariant, themeName, debugStreamStats, enhanceCountdown, nextStepsAutoSubmitCountdown, nextStepsAutoSubmitLabel, autoProceedCountdown, sessionCount, mailbox, tokenSavingMode, toolCount, visibleChips, sideEffectCount, maxWidth, clickMapRef, }: StatusBarProps) => React.ReactElement>;
26
25
  //# sourceMappingURL=status-bar.d.ts.map
@@ -1,22 +1,18 @@
1
+ import { type WorktreeTimelineEvent } from '@wrongstack/core/types/worktree-timeline';
1
2
  import type React from 'react';
2
- import type { WorktreeRow } from './worktree-panel.js';
3
3
  export declare function isWorktreeMonitorCloseKey(input: string, key: {
4
4
  escape?: boolean | undefined;
5
5
  ctrl?: boolean | undefined;
6
6
  }): boolean;
7
7
  /**
8
- * Full-screen Worktree monitor overlay (Ctrl+T to open, Ctrl+T to close).
9
- * Shows each Goal worktree: branch, base→branch, owner phase, diff stats,
10
- * and conflict files for any worktree left in needs-review.
11
- *
12
- * Prunes merged/failed worktrees older than TERMINAL_TTL_MS to prevent
13
- * accumulation in long-running sessions.
8
+ * Full-screen Worktree monitor overlay (F4 / Ctrl+T). Every managed git
9
+ * worktree as a lane on one time axis — working ▓, waiting to merge ▒,
10
+ * merging █, kept for review ░ — under the base branch with a ● per squash
11
+ * commit. ↑↓ selects a lane; its error, conflicts and phase times show below.
12
+ * Same projection as the WebUI timeline and HQ (core `worktree-timeline`).
14
13
  */
15
- export declare function WorktreeMonitor({ worktrees, baseBranch, nowTick, onClose, }: {
16
- worktrees: Record<string, WorktreeRow & {
17
- baseBranch?: string | undefined;
18
- }>;
19
- baseBranch?: string | undefined;
14
+ export declare function WorktreeMonitor({ events, nowTick, onClose, }: {
15
+ events: readonly WorktreeTimelineEvent[];
20
16
  nowTick: number;
21
17
  onClose: () => void;
22
18
  }): React.ReactElement;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Character-cell rendering of the shared worktree timeline (see
3
+ * `@wrongstack/core/types/worktree-timeline`) for the TUI monitor. Pure: maps
4
+ * time onto `width` columns and returns colourable runs, so the Ink component
5
+ * only picks colours.
6
+ */
7
+ import type { WorktreeLane, WorktreeLanePhase, WorktreeTimeline } from '@wrongstack/core/types/worktree-timeline';
8
+ export declare const WORKTREE_PHASE_CHAR: Record<WorktreeLanePhase, string>;
9
+ export interface WorktreeBarRun {
10
+ text: string;
11
+ /** null = no segment covers these columns. */
12
+ phase: WorktreeLanePhase | null;
13
+ }
14
+ /**
15
+ * One lane as runs over `width` columns of `[start, end]`. Each column takes
16
+ * the phase covering most of its time slice; a segment too short to win any
17
+ * column still gets the column it starts in, so an instant merge stays visible.
18
+ * That column is taken from its holder when the holder keeps another column
19
+ * (or is itself an instant step) — an instant merge usually lands inside the
20
+ * column the preceding working slice already owns, and only taking EMPTY
21
+ * columns hid it.
22
+ */
23
+ export declare function worktreeBarRuns(lane: WorktreeLane, start: number, end: number, width: number): WorktreeBarRun[];
24
+ /** The base branch row: `─` with `●` where a squash commit landed. */
25
+ export declare function worktreeBaseRuns(timeline: Pick<WorktreeTimeline, 'baseCommits' | 'start' | 'end'>, width: number): Array<{
26
+ text: string;
27
+ commit: boolean;
28
+ }>;
29
+ /** Tick labels placed at their columns; a label that would overlap the previous one is dropped. */
30
+ export declare function worktreeAxisLine(ticks: readonly number[], start: number, end: number, width: number, format: (at: number) => string): string;
31
+ //# sourceMappingURL=worktree-timeline-bars.d.ts.map
@@ -5,5 +5,5 @@
5
5
  * sampling semantics. Production TUI wiring joins the process-wide shared
6
6
  * watchdog; the independent starter remains re-exported for embedders/tests.
7
7
  */
8
- export { defaultHeapLogPath, type HeapDiagnosticFields, type HeapDiagnosticValue, type HeapSample, type HeapWatchdogOptions, startHeapWatchdog, startSharedHeapWatchdog, takeHeapSample, } from '@wrongstack/core/utils';
8
+ export { defaultHeapLogPath, type HeapSample, startHeapWatchdog, startSharedHeapWatchdog, takeHeapSample, } from '@wrongstack/core/utils';
9
9
  //# sourceMappingURL=heap-watchdog.d.ts.map
@@ -102,6 +102,7 @@ export declare function buildAppPipelineArgs(params: {
102
102
  setRefineProviderId: S['actions']['setRefineProvider'];
103
103
  setRefineModel: S['actions']['setRefineModel'];
104
104
  onBugHuntStarted: S['actions']['onBugHuntStarted'];
105
+ stopBugHuntAfterCurrentRound: S['actions']['stopBugHuntAfterCurrentRound'];
105
106
  consumeBugHuntReplay: S['actions']['consumeBugHuntReplay'];
106
107
  onBugHuntRunFinished: R['capabilities']['onRunFinished'];
107
108
  shouldSuppressBugHuntNextSteps: () => boolean;
@@ -4,6 +4,7 @@ export declare function useBugHuntLoop(dispatch: (action: Action) => void, submi
4
4
  onBugHuntStarted: (command: string, totalRounds?: number) => void;
5
5
  onRunFinished: (status: 'done' | 'aborted' | 'failed' | 'max_iterations') => void;
6
6
  consumeReplay: (command: string) => boolean;
7
+ stopAfterCurrentRound: () => void;
7
8
  shouldSuppressNextSteps: () => boolean;
8
9
  };
9
10
  //# sourceMappingURL=use-bug-hunt-loop.d.ts.map
@@ -10,13 +10,10 @@ export declare function useHistoryViewportSync(input: {
10
10
  belowStatusBarRef: RefObject<DOMElement | null>;
11
11
  termRows: number;
12
12
  /**
13
- * Measured height (rows) of the status chrome below the pickers: the
14
- * status bar itself plus everything beneath it (mailbox panel, monitors).
15
- * Pickers use it to size their window against the REAL
16
- * space left after input + status chrome instead of the hardcoded
17
- * 6-row `shellReservedRows` guess in use-windowed-picker.ts — the guess
18
- * under-reserves whenever the input wraps or the status bar grows, which
19
- * is exactly the "theme menu doesn't fit" overflow.
13
+ * Measured height of the status bar itself. The shared picker/monitor
14
+ * viewport reserves this chrome before sizing its content. Including the
15
+ * monitors here would subtract their own height from their next viewport,
16
+ * causing repeated expand/shrink updates when a function-key panel opens.
20
17
  */
21
18
  statusBarRows: number;
22
19
  };
@@ -1,5 +1,4 @@
1
1
  import type { TuiSlashCommandOptions } from './tui-slash-command-options.js';
2
- export type { TuiSlashCommandOptions } from './tui-slash-command-options.js';
3
2
  /** Registers TUI-owned slash commands and releases them on dependency changes. */
4
3
  export declare function useTuiSlashCommands({ slashRegistry, skillLoader, getResourceMenu, getPickableProviders, switchProviderAndModel, openModelPicker, openFKeyPicker, projectRoot, agent, dispatch, getSettings, saveSettings, openSettings, state, openStatuslinePicker, setHiddenItems, hiddenItemsRef, setMailboxPanelOpen, switchAutonomy, listSessions, openPromptPicker, configStore, saveThemePreset, applyThemePreset, }: TuiSlashCommandOptions): void;
5
4
  //# sourceMappingURL=use-tui-slash-commands.d.ts.map