@wrongstack/tui 0.313.0 → 0.316.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-action-type.d.ts +57 -0
- package/dist/app-initial-state.d.ts +7 -1
- package/dist/app-props.d.ts +45 -2
- package/dist/app-settings-type.d.ts +9 -0
- package/dist/app-state-core-types.d.ts +18 -0
- package/dist/app-state.d.ts +44 -0
- package/dist/app-status-region.d.ts +1 -1
- package/dist/app-ui-state.d.ts +9 -0
- package/dist/app-view-contract.d.ts +2 -1
- package/dist/app-view-pickers.d.ts +2 -1
- package/dist/app-view-sidebar.d.ts +2 -1
- package/dist/brain-panel-model.d.ts +0 -2
- package/dist/checkpoint-retention.d.ts +2 -3
- package/dist/components/agents-monitor.d.ts +3 -3
- package/dist/components/auth-panel.d.ts +2 -1
- package/dist/components/brain-decision-prompt.d.ts +2 -1
- package/dist/components/clear-confirm-panel.d.ts +4 -3
- package/dist/components/composer-status-chip.d.ts +3 -2
- package/dist/components/confirm-prompt.d.ts +2 -1
- package/dist/components/context-panel.d.ts +2 -1
- package/dist/components/continue-confirm-panel.d.ts +3 -2
- package/dist/components/coordinator-panel.d.ts +2 -1
- package/dist/components/cron-jobs.d.ts +2 -1
- package/dist/components/design-picker.d.ts +2 -1
- package/dist/components/enhance-panel.d.ts +4 -3
- package/dist/components/esc-confirm-prompt.d.ts +2 -1
- package/dist/components/exit-confirm-panel.d.ts +3 -2
- package/dist/components/f-key-picker.d.ts +1 -2
- package/dist/components/fallback-overlay.d.ts +2 -1
- package/dist/components/fleet-monitor.d.ts +2 -1
- package/dist/components/fleet-panel.d.ts +4 -4
- package/dist/components/goal-kanban-panel.d.ts +2 -1
- package/dist/components/help-overlay.d.ts +2 -1
- package/dist/components/help-panel.d.ts +2 -1
- package/dist/components/history/code-block-diff-helpers.d.ts +1 -6
- package/dist/components/history/code-block.d.ts +0 -2
- package/dist/components/history/copy-registry.d.ts +2 -1
- package/dist/components/history/index.d.ts +2 -2
- package/dist/components/history/replay.d.ts +2 -1
- package/dist/components/history/sage-memory-block.d.ts +0 -6
- package/dist/components/history/scroll-controller-types.d.ts +7 -12
- package/dist/components/history/selection-band-store.d.ts +3 -2
- package/dist/components/history/selection-helpers.d.ts +24 -65
- package/dist/components/history/tool-card.d.ts +2 -1
- package/dist/components/history/tool-group.d.ts +0 -7
- package/dist/components/history/use-history-controller.d.ts +2 -1
- package/dist/components/history/utils.d.ts +1 -1
- package/dist/components/history/wrap-geometry.d.ts +18 -125
- package/dist/components/history.d.ts +1 -1
- package/dist/components/kanban-panel.d.ts +7 -25
- package/dist/components/live-activity-strip.d.ts +2 -1
- package/dist/components/mailbox-panel.d.ts +2 -1
- package/dist/components/mcp-picker.d.ts +2 -1
- package/dist/components/mode-picker.d.ts +2 -1
- package/dist/components/model-picker.d.ts +2 -1
- package/dist/components/monitor-shell.d.ts +3 -2
- package/dist/components/phase-monitor.d.ts +2 -1
- package/dist/components/plan-panel.d.ts +3 -2
- package/dist/components/plugin-picker.d.ts +2 -1
- package/dist/components/powerline-rail.d.ts +2 -1
- package/dist/components/project-picker.d.ts +2 -1
- package/dist/components/prompt-picker.d.ts +2 -1
- package/dist/components/refine-countdown-panel.d.ts +3 -2
- package/dist/components/refine-failure-panel.d.ts +2 -1
- package/dist/components/resource-menu.d.ts +2 -1
- package/dist/components/resume-picker.d.ts +2 -1
- package/dist/components/scrollable-history.d.ts +2 -2
- package/dist/components/send-mode-picker.d.ts +3 -2
- package/dist/components/sessions-panel.d.ts +2 -1
- package/dist/components/settings-picker-filter.d.ts +2 -1
- package/dist/components/settings-picker.d.ts +5 -1
- package/dist/components/shadow-panel.d.ts +2 -1
- package/dist/components/shell-command-warning.d.ts +2 -1
- package/dist/components/sidebar-content.d.ts +4 -9
- package/dist/components/sidebar-panel-frame.d.ts +2 -13
- package/dist/components/sidebar.d.ts +2 -1
- package/dist/components/skill-picker.d.ts +2 -1
- package/dist/components/slash-confirm-panel.d.ts +3 -2
- package/dist/components/slash-menu.d.ts +2 -1
- package/dist/components/status-bar-format.d.ts +2 -0
- package/dist/components/status-bar-icons.d.ts +4 -0
- package/dist/components/status-bar-rails.d.ts +19 -6
- package/dist/components/status-bar-types.d.ts +18 -0
- package/dist/components/status-bar.d.ts +17 -7
- package/dist/components/status-line-registry.d.ts +62 -0
- package/dist/components/statusline-picker.d.ts +5 -27
- package/dist/components/theme-picker.d.ts +2 -1
- package/dist/components/theme-preview.d.ts +2 -1
- package/dist/components/tools-picker.d.ts +2 -1
- package/dist/components/topic-check-panel.d.ts +2 -1
- package/dist/connections-slash.d.ts +2 -1
- package/dist/context-fill.d.ts +4 -3
- package/dist/context-slash.d.ts +3 -2
- package/dist/cron-slash.d.ts +2 -1
- package/dist/esc-close-panels.d.ts +2 -1
- package/dist/f-key-panels.d.ts +1 -1
- package/dist/git-info.d.ts +22 -3
- package/dist/height-cache.d.ts +2 -8
- package/dist/history-entry.d.ts +4 -3
- package/dist/history-retention.d.ts +16 -6
- package/dist/hit-test.d.ts +2 -1
- package/dist/hooks/subagent-history-format.d.ts +2 -1
- package/dist/hooks/use-app-session-state.d.ts +2 -1
- package/dist/hooks/use-auth-panel.d.ts +2 -1
- package/dist/hooks/use-brain-panel.d.ts +2 -1
- package/dist/hooks/use-chip-staleness-guard.d.ts +4 -3
- package/dist/hooks/use-core-tui-commands.d.ts +1 -1
- package/dist/hooks/use-director-fleet-bridge.d.ts +2 -4
- package/dist/hooks/use-exit-command.d.ts +1 -1
- package/dist/hooks/use-file-search.d.ts +3 -7
- package/dist/hooks/use-fleet-generation-gate.d.ts +2 -1
- package/dist/hooks/use-git-session-status.d.ts +1 -1
- package/dist/hooks/use-history-archive.d.ts +3 -2
- package/dist/hooks/use-input-history-persistence.d.ts +2 -1
- package/dist/hooks/use-mode-picker.d.ts +2 -1
- package/dist/hooks/use-model-pick.d.ts +2 -1
- package/dist/hooks/use-next-steps-auto-submit.d.ts +2 -2
- package/dist/hooks/use-panel-controllers.d.ts +3 -1
- package/dist/hooks/use-paste-handling.d.ts +2 -1
- package/dist/hooks/use-prompt-picker.d.ts +4 -3
- package/dist/hooks/use-session-rewind.d.ts +2 -1
- package/dist/hooks/use-shadow-panel.d.ts +2 -1
- package/dist/hooks/use-sidebar-panel-data.d.ts +4 -3
- package/dist/hooks/use-status-sync-interval.d.ts +2 -1
- package/dist/hooks/use-statusline-hidden-sync.d.ts +2 -1
- package/dist/hooks/use-statusline-state.d.ts +9 -3
- package/dist/hooks/use-stream-chip-expiration.d.ts +3 -2
- package/dist/hooks/use-terminal-size.d.ts +3 -2
- package/dist/hooks/use-theme-picker-handler.d.ts +2 -1
- package/dist/hooks/use-tui-activity.d.ts +2 -1
- package/dist/hooks/use-tui-controllers.d.ts +2 -1
- package/dist/hooks/use-tui-environment-state.d.ts +7 -5
- package/dist/hooks/use-tui-event-bridge.d.ts +1 -1
- package/dist/index.js +8993 -8311
- package/dist/ink.d.ts +1 -1
- package/dist/input-editing.d.ts +2 -1
- package/dist/input-tokens.d.ts +2 -1
- package/dist/input-validation/action-types.d.ts +1 -1
- package/dist/input-validation.d.ts +4 -4
- package/dist/kanban-slash.d.ts +8 -32
- package/dist/layout-store.d.ts +2 -1
- package/dist/markdown-table.d.ts +1 -3
- package/dist/memory-context-monitor.d.ts +3 -2
- package/dist/memory-lifecycle-entry.d.ts +2 -1
- package/dist/memory-slash-format.d.ts +0 -1
- package/dist/mouse.d.ts +3 -2
- package/dist/overlay-key-router.d.ts +5 -4
- package/dist/paste-accumulator.d.ts +3 -2
- package/dist/prompt-refinement-start.d.ts +1 -1
- package/dist/reducers/composer.d.ts +1 -1
- package/dist/reducers/conversation.d.ts +1 -1
- package/dist/reducers/helpers.d.ts +16 -3
- package/dist/resume-load.d.ts +131 -0
- package/dist/run-blocks-controller.d.ts +2 -1
- package/dist/run-tui-client-registration.d.ts +3 -2
- package/dist/run-tui-options.d.ts +35 -2
- package/dist/run-tui-teardown.d.ts +2 -1
- package/dist/run-tui-title-controller.d.ts +2 -1
- package/dist/scroll-anchor.d.ts +2 -4
- package/dist/settings-contracts.d.ts +1 -0
- package/dist/slash-command-lifecycle.d.ts +2 -1
- package/dist/submit-history.d.ts +2 -1
- package/dist/submit-prompt-refinement.d.ts +3 -2
- package/dist/terminal-title.d.ts +2 -1
- package/dist/theme.d.ts +2 -2
- package/dist/token-previews.d.ts +2 -1
- package/dist/tui-host-capabilities.d.ts +1 -1
- package/dist/tui-memory-counters.d.ts +2 -1
- package/dist/ui-contracts.d.ts +3 -3
- package/dist/ui-glyphs.d.ts +3 -1
- package/dist/workbench-slash.d.ts +2 -1
- package/package.json +8 -8
- package/dist/react-children-flatten.d.ts +0 -28
|
@@ -32,9 +32,6 @@ export interface StatusBarRailBuildParams {
|
|
|
32
32
|
readTokens: number;
|
|
33
33
|
writeTokens: number;
|
|
34
34
|
savedUsd: number;
|
|
35
|
-
/** 5-min / 1-hour cache-write split; present for Anthropic-family providers. */
|
|
36
|
-
cacheWrite5m?: number | undefined;
|
|
37
|
-
cacheWrite1h?: number | undefined;
|
|
38
35
|
} | undefined;
|
|
39
36
|
queueCount?: number | undefined;
|
|
40
37
|
hint?: string | undefined;
|
|
@@ -43,6 +40,7 @@ export interface StatusBarRailBuildParams {
|
|
|
43
40
|
workingDir?: string | undefined;
|
|
44
41
|
git?: StatusBarProps['git'];
|
|
45
42
|
modeLabel?: string | undefined;
|
|
43
|
+
themeName?: string | undefined;
|
|
46
44
|
sessionCount?: number | undefined;
|
|
47
45
|
toolCount?: number | undefined;
|
|
48
46
|
tokenSavingMode?: string | undefined;
|
|
@@ -72,7 +70,6 @@ export interface StatusBarRailBuildParams {
|
|
|
72
70
|
hasAutoProceed: boolean;
|
|
73
71
|
autoProceedCountdown?: StatusBarProps['autoProceedCountdown'];
|
|
74
72
|
droppedTools?: number | undefined;
|
|
75
|
-
detailChips: React.ReactElement[];
|
|
76
73
|
minimalWorkParts: string[];
|
|
77
74
|
thinking: boolean;
|
|
78
75
|
statePrefix: string;
|
|
@@ -84,12 +81,28 @@ export interface StatusBarRailBuildParams {
|
|
|
84
81
|
memoryContextMonitor?: StatusBarProps['memoryContextMonitor'];
|
|
85
82
|
Sage?: StatusBarProps['Sage'];
|
|
86
83
|
indexState?: StatusBarProps['indexState'];
|
|
84
|
+
/** Mailbox status for the connectivity rail (line 4). */
|
|
85
|
+
mailbox?: MailboxStatus | undefined;
|
|
86
|
+
/** Per-agent live detail rows for the connectivity rail (line 4). */
|
|
87
|
+
fleetAgents?: FleetAgentDetail[] | undefined;
|
|
88
|
+
/** Whether the mailbox chip is eligible (not hidden + has activity). */
|
|
89
|
+
showMailbox: boolean;
|
|
90
|
+
/** Pre-built memory-context chips for the connectivity rail (line 4). */
|
|
91
|
+
memoryDetailChips: React.ReactElement[];
|
|
92
|
+
/** Active system-prompt variant (Lite / Standard / Pro) — line 1 identity chip. */
|
|
93
|
+
promptVariant?: 'lite' | 'default' | 'pro' | undefined;
|
|
87
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* The ctx·tokens·cost·cache telemetry composite for the run-state rail.
|
|
97
|
+
* queue/hint/breaker are separate entries in buildRunStateChipEntries so
|
|
98
|
+
* each keeps a stable click-map id and its urgency-sorted position.
|
|
99
|
+
*/
|
|
88
100
|
export declare function buildPrimaryChips(p: StatusBarRailBuildParams): React.ReactElement[];
|
|
89
|
-
export declare function
|
|
101
|
+
export declare function buildWorkspaceChipEntries(p: StatusBarRailBuildParams, modelStatusChip: React.ReactElement | null): RailSpanEntry[];
|
|
102
|
+
export declare function buildRunStateChipEntries(p: StatusBarRailBuildParams): RailSpanEntry[];
|
|
90
103
|
export declare function buildMinimumChips(p: StatusBarRailBuildParams): React.ReactElement[];
|
|
91
|
-
export declare function buildMailboxDetailChips(mailbox: MailboxStatus | undefined, showMailbox: boolean, isNoColor: boolean, fleetAgents?: FleetAgentDetail[] | undefined, showFleetAgents?: boolean | undefined): React.ReactElement[];
|
|
92
104
|
export declare function buildWorkRowEntries(p: StatusBarRailBuildParams): RailSpanEntry[];
|
|
105
|
+
export declare function buildConnectivityChipEntries(p: StatusBarRailBuildParams): RailSpanEntry[];
|
|
93
106
|
export declare function buildIndexStatusChip(indexState: StatusBarProps['indexState'], showChip: (item: StatuslineItem) => boolean, isNoColor: boolean): React.ReactElement | null;
|
|
94
107
|
export declare function buildMemoryDetailChips(memoryContextMonitor: StatusBarProps['memoryContextMonitor'], Sage: StatusBarProps['Sage'], isNoColor: boolean): React.ReactElement[];
|
|
95
108
|
//# sourceMappingURL=status-bar-rails.d.ts.map
|
|
@@ -2,6 +2,7 @@ import type { EventBus } from '@wrongstack/core/kernel';
|
|
|
2
2
|
import type { AutonomyStage, TokenCounter, TokenSavingTier } from '@wrongstack/core/types';
|
|
3
3
|
import type { GitInfo } from '../git-info.js';
|
|
4
4
|
import type { MemoryContextMonitorState } from '../memory-context-monitor.js';
|
|
5
|
+
import type { StatuslineLines } from '@wrongstack/core/statusline';
|
|
5
6
|
import type { AnimationStyle } from './animation-style.js';
|
|
6
7
|
import type { StatuslineMode } from './settings-picker.js';
|
|
7
8
|
import type { ChipMeta, StatuslineItem } from './statusline-picker.js';
|
|
@@ -217,6 +218,11 @@ export interface StatusBarProps {
|
|
|
217
218
|
* against. Updated live via `ctx.onWorkingDirChanged()`.
|
|
218
219
|
*/
|
|
219
220
|
workingDir?: string | undefined;
|
|
221
|
+
/**
|
|
222
|
+
* Active color theme preset name (e.g. "catppuccin", "dracula", "tokyo-night").
|
|
223
|
+
* Rendered as a `glyphs.palette` chip on line 2 so the user can see their active theme.
|
|
224
|
+
*/
|
|
225
|
+
themeName?: string | undefined;
|
|
220
226
|
/** Autonomy mode chip: 'off' | 'suggest' | 'auto' | 'eternal' | 'eternal-parallel'. */
|
|
221
227
|
autonomy?: 'off' | 'suggest' | 'auto' | 'eternal' | 'eternal-parallel' | undefined;
|
|
222
228
|
/**
|
|
@@ -229,6 +235,12 @@ export interface StatusBarProps {
|
|
|
229
235
|
processCount?: number | undefined;
|
|
230
236
|
/** Items to hide from the status bar. Canonical set: {@link StatuslineItem}. */
|
|
231
237
|
hiddenItems?: StatuslineItem[] | undefined;
|
|
238
|
+
/**
|
|
239
|
+
* Per-chip line assignment (statusline.json schema v2). Absent keys render
|
|
240
|
+
* on the core contract's DEFAULT_LINES; values outside 1–4 are clamped by
|
|
241
|
+
* the persistence layer and again by the registry partition.
|
|
242
|
+
*/
|
|
243
|
+
statuslineLines?: StatuslineLines | undefined;
|
|
232
244
|
/**
|
|
233
245
|
* Statusline density. The prop default 'detailed' is kept for back-compat
|
|
234
246
|
* with tests/callers that omit `mode`; the user-facing default is 'minimum'
|
|
@@ -313,6 +325,12 @@ export interface StatusBarProps {
|
|
|
313
325
|
} | null | undefined;
|
|
314
326
|
/** Active agent mode label with icon (e.g. `glyphs.brand teach`, `glyphs.running brief`). Rendered on line 2. */
|
|
315
327
|
modeLabel?: string | undefined;
|
|
328
|
+
/**
|
|
329
|
+
* Active system-prompt variant — rendered as a `⌘ PRO|STANDARD|LITE` chip on
|
|
330
|
+
* line 1 (workspace & identity) so the session's prompt density is visible
|
|
331
|
+
* at a glance. Sourced from `config.systemPrompt.variant`.
|
|
332
|
+
*/
|
|
333
|
+
promptVariant?: 'lite' | 'default' | 'pro' | undefined;
|
|
316
334
|
/**
|
|
317
335
|
* Live debug-stream telemetry — pushed into the TUI reducer by the
|
|
318
336
|
* throttled callback from stream-debug-state.ts. When non-null, renders
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { StatusBarProps } from './status-bar-types.js';
|
|
3
3
|
export { contextBarColor, fmtElapsed, hasTokenDisplay, nodeText, planChipFit, renderMeter, renderProgress, stateChip, type TokenDisplayTotals, tokenDisplayTotals, truncateChip, } from './status-bar-format.js';
|
|
4
|
-
export { chipColor,
|
|
4
|
+
export { chipColor, SPINNER_INTERVAL_MS, STACK_ORANGE, STATUSLINE_ICONS } from './status-bar-icons.js';
|
|
5
5
|
export type { BrainStatusChip, ContextWindow, FleetAgentDetail, FleetCounts, MailboxStatus, PlanCounts, StatusBarProps, TaskCounts, TodoCounts, } from './status-bar-types.js';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* Four-rail status bar — one semantic question per line, left-to-right in
|
|
8
|
+
* descending importance:
|
|
9
|
+
*
|
|
10
|
+
* L1 workspace & identity (static): project, working_dir, git, model, mode,
|
|
11
|
+
* prompt_variant, theme, sessions, tools; version right-anchored.
|
|
12
|
+
* L2 run state, safety & vitals (live): state, yolo, autonomy,
|
|
13
|
+
* eternal_stage, breaker, ctx·tokens·cost·cache, queue, processes,
|
|
14
|
+
* elapsed, token_saving, side_effects; hint last (first dropped).
|
|
15
|
+
* L3 active work & countdowns (conditional): goal, todos, plan, tasks,
|
|
16
|
+
* next_steps, auto_proceed, enhance, dropped_tools.
|
|
17
|
+
* L4 fleet, connectivity & services (conditional): fleet, mailbox, brain,
|
|
18
|
+
* debug_stream, memory; index right-anchored.
|
|
19
|
+
*
|
|
20
|
+
* L3/L4 gates derive from the rendered entries themselves, so an empty rail
|
|
21
|
+
* never renders and a vanilla session keeps its two-line footprint.
|
|
12
22
|
*/
|
|
13
|
-
export declare function StatusBar({ model, provider, version, latestVersion, updateAvailable, 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, mode, events, sessionId, eternalStage, goalSummary, droppedTools, indexState, breakerCountdown, modeLabel, debugStreamStats, enhanceCountdown, nextStepsAutoSubmitCountdown, nextStepsAutoSubmitLabel, autoProceedCountdown, sessionCount, mailbox, tokenSavingMode, toolCount, visibleChips, sideEffectCount, maxWidth, clickMapRef, }: StatusBarProps): React.ReactElement;
|
|
23
|
+
export declare function StatusBar({ model, provider, version, latestVersion, updateAvailable, 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, 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;
|
|
14
24
|
//# sourceMappingURL=status-bar.d.ts.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { type StatuslineItem, type StatuslineLine, type StatuslineLines } from '@wrongstack/core/statusline';
|
|
3
|
+
import type { RailSpanEntry } from './powerline-rail.js';
|
|
4
|
+
import { type StatusBarRailBuildParams } from './status-bar-rails.js';
|
|
5
|
+
/**
|
|
6
|
+
* Status-line registry — the composition layer between the chip contract
|
|
7
|
+
* (`@wrongstack/core/statusline`) and the rail builders in
|
|
8
|
+
* `status-bar-rails.tsx`.
|
|
9
|
+
*
|
|
10
|
+
* The builders stay the single source of chip JSX + data gating; this module
|
|
11
|
+
* owns WHERE each built entry renders: it maps every rail entry id to its
|
|
12
|
+
* canonical chip key, applies the user's per-chip line assignment
|
|
13
|
+
* (`StatuslineLines`), and places the right-anchored chips (version, index)
|
|
14
|
+
* on their assigned line. With default lines the partition is byte-identical
|
|
15
|
+
* to the pre-registry four-rail composition, which the
|
|
16
|
+
* `status-bar-rail-order` / `status-bar-separators` suites pin.
|
|
17
|
+
*/
|
|
18
|
+
/** A rail (physical status bar line) in the detailed layout: left chips in
|
|
19
|
+
* render order plus an optional right-anchored chip. */
|
|
20
|
+
export interface DetailedRail {
|
|
21
|
+
entries: RailSpanEntry[];
|
|
22
|
+
rightAnchor: React.ReactElement | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Map a rail entry id to its canonical statusline chip key.
|
|
26
|
+
*
|
|
27
|
+
* Composite and detail spans carry synthetic ids that travel with their
|
|
28
|
+
* parent chip: `primary-0` is the ctx·tokens·cost·cache telemetry composite
|
|
29
|
+
* (key `context`), `detail-N` are the mailbox peer/detail chips (key
|
|
30
|
+
* `mailbox`), and `memory-N` are the memory-context group (key
|
|
31
|
+
* `memory_context`). Returns null for ids outside the contract — those fall
|
|
32
|
+
* back to their builder's default line.
|
|
33
|
+
*/
|
|
34
|
+
export declare function canonicalChipKey(entryId: string): StatuslineItem | null;
|
|
35
|
+
/** One builder's output plus the line its unmapped ids fall back to. */
|
|
36
|
+
export interface RailSource {
|
|
37
|
+
entries: RailSpanEntry[];
|
|
38
|
+
fallbackLine: StatuslineLine;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Partition built rail entries into four lines. Pure — no builder calls, so
|
|
42
|
+
* tests can exercise line assignment with synthetic entries.
|
|
43
|
+
*/
|
|
44
|
+
export declare function partitionRailEntries(sources: readonly RailSource[], lines?: StatuslineLines): DetailedRail[];
|
|
45
|
+
export interface DetailedRailBuildOptions {
|
|
46
|
+
/** Pre-built provider/model chip (status-bar.tsx owns its dim-provider styling). */
|
|
47
|
+
modelChip: React.ReactElement | null;
|
|
48
|
+
/** `v{version} (update …)` chip, right-anchored on its assigned line. */
|
|
49
|
+
versionChip: React.ReactElement | null;
|
|
50
|
+
/** Codebase-index health chip, right-anchored on its assigned line. */
|
|
51
|
+
indexChip: React.ReactElement | null;
|
|
52
|
+
/** Per-chip line overrides; absent = `DEFAULT_LINES`. */
|
|
53
|
+
lines?: StatuslineLines | undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build the four detailed-mode rails: run the rail builders (which apply
|
|
57
|
+
* each chip's data + hidden gates), then partition the surviving entries by
|
|
58
|
+
* the user's line assignment. Rails are returned in logical order 1–4;
|
|
59
|
+
* rendering/click-map code decides which rails render.
|
|
60
|
+
*/
|
|
61
|
+
export declare function buildDetailedRails(p: StatusBarRailBuildParams, opts: DetailedRailBuildOptions): DetailedRail[];
|
|
62
|
+
//# sourceMappingURL=status-line-registry.d.ts.map
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* in a saved statusline profile are silently ignored by `showChip` since no
|
|
7
|
-
* chip renders them anymore, mirroring how removed phantom items ('version',
|
|
8
|
-
* 'time', 'sage') are handled. */
|
|
9
|
-
export type StatuslineItem = 'state' | 'model' | 'tokens' | 'cache' | 'queue' | 'hint' | 'index' | 'breaker' | 'todos' | 'plan' | 'tasks' | 'fleet' | 'fleet_agents' | 'git' | 'elapsed' | 'context' | 'cost' | 'processes' | 'working_dir' | 'project' | 'yolo' | 'autonomy' | 'eternal_stage' | 'goal' | 'mode' | 'auto_proceed' | 'sessions' | 'tools' | 'token_saving' | 'brain' | 'mailbox' | 'enhance' | 'debug_stream' | 'next_steps' | 'memory_context' | 'side_effects';
|
|
2
|
+
import { DEFAULT_LINES, STATUSLINE_FIELD_COUNT, STATUSLINE_ITEMS, type StatuslineItem } from '@wrongstack/core/statusline';
|
|
3
|
+
export { DEFAULT_LINES, STATUSLINE_FIELD_COUNT, STATUSLINE_ITEMS };
|
|
4
|
+
export { DEFAULT_LINES as ITEM_LINE };
|
|
5
|
+
export type { StatuslineItem };
|
|
10
6
|
/**
|
|
11
7
|
* Metadata for a temporarily-visible chip (one that appeared due to data,
|
|
12
8
|
* not user toggle). Tracked so the chip can auto-expire.
|
|
@@ -33,19 +29,7 @@ export declare function isChipExpired(meta: ChipMeta, now?: number): boolean;
|
|
|
33
29
|
* Returns null if the chip has no expiration or has already expired.
|
|
34
30
|
*/
|
|
35
31
|
export declare function getExpiresInLabel(meta: ChipMeta, now?: number): string | null;
|
|
36
|
-
|
|
37
|
-
* Which TUI status bar line each chip appears on. Used to group chips
|
|
38
|
-
* visually in the picker. MUST mirror the actual render lines in
|
|
39
|
-
* `status-bar.tsx`: line 1 = workspace + runtime chips (mode/project/workdir
|
|
40
|
-
* state + cheap provider/model/context telemetry), line 2 = session context
|
|
41
|
-
* (memory pressure, git, mode label, tools), line 3 = active work +
|
|
42
|
-
* connectivity (todos, plan, tasks, fleet, brain, mailbox, goals,
|
|
43
|
-
* countdowns), line 4 = background services (memory context lifecycle,
|
|
44
|
-
* codebase-index server health). Exported so the navigation-order test guards
|
|
45
|
-
* against drift instead of duplicating it.
|
|
46
|
-
*/
|
|
47
|
-
export declare const ITEM_LINE: Record<StatuslineItem, number>;
|
|
48
|
-
export interface StatuslinePickerProps {
|
|
32
|
+
interface StatuslinePickerProps {
|
|
49
33
|
/** Focused field index. */
|
|
50
34
|
field: number;
|
|
51
35
|
/** Current hidden-items list. */
|
|
@@ -55,11 +39,5 @@ export interface StatuslinePickerProps {
|
|
|
55
39
|
/** Optional hint message from the reducer. */
|
|
56
40
|
hint?: string | undefined;
|
|
57
41
|
}
|
|
58
|
-
/** Total number of statusline fields. */
|
|
59
|
-
export declare const STATUSLINE_FIELD_COUNT: number;
|
|
60
|
-
/** Ordered list of statusline items — grouped by display line, then alphabetically within each line for consistent navigation. */
|
|
61
|
-
export declare const STATUSLINE_ITEMS: StatuslineItem[];
|
|
62
|
-
/** Stream-triggered chips — these auto-expire unless the user has toggled them on permanently. */
|
|
63
|
-
export declare const STREAM_CHIP_KEYS: StatuslineItem[];
|
|
64
42
|
export declare function StatuslinePicker({ field, hiddenItems, visibleChips, hint, }: StatuslinePickerProps): React.ReactElement;
|
|
65
43
|
//# sourceMappingURL=statusline-picker.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { ThemeName, ThemePickerOption } from '../theme.js';
|
|
3
|
-
|
|
3
|
+
interface ThemePickerProps {
|
|
4
4
|
options: readonly ThemePickerOption[];
|
|
5
5
|
selected: number;
|
|
6
6
|
activeId: ThemeName;
|
|
@@ -42,4 +42,5 @@ export interface ThemePickerProps {
|
|
|
42
42
|
* preview header, which is what frees the list to show more rows.
|
|
43
43
|
*/
|
|
44
44
|
export declare function ThemePicker({ options, selected, activeId, hint, columns, maxRows, }: ThemePickerProps): React.ReactElement;
|
|
45
|
+
export {};
|
|
45
46
|
//# sourceMappingURL=theme-picker.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import { type ThemeName } from '../theme.js';
|
|
3
|
-
|
|
3
|
+
interface ThemePreviewProps {
|
|
4
4
|
/** Preset whose palette this preview renders. Must exist in `themePresets`. */
|
|
5
5
|
presetId: ThemeName;
|
|
6
6
|
/** Whether this preset is the currently applied one (`[active]` marker). */
|
|
@@ -36,4 +36,5 @@ export interface ThemePreviewProps {
|
|
|
36
36
|
* passes hex through untouched.
|
|
37
37
|
*/
|
|
38
38
|
export declare function ThemePreview({ presetId, active, columns, maxRows, }: ThemePreviewProps): React.ReactElement;
|
|
39
|
+
export {};
|
|
39
40
|
//# sourceMappingURL=theme-preview.d.ts.map
|
|
@@ -10,7 +10,7 @@ export interface ToolPickerItem {
|
|
|
10
10
|
descMode: 'extend' | 'simple';
|
|
11
11
|
description: string;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
interface ToolsPickerProps {
|
|
14
14
|
items: ToolPickerItem[];
|
|
15
15
|
selected: number;
|
|
16
16
|
busy?: boolean | undefined;
|
|
@@ -18,4 +18,5 @@ export interface ToolsPickerProps {
|
|
|
18
18
|
filter?: string | undefined;
|
|
19
19
|
}
|
|
20
20
|
export declare function ToolsPicker({ items, selected, busy, hint, filter, }: ToolsPickerProps): React.ReactElement;
|
|
21
|
+
export {};
|
|
21
22
|
//# sourceMappingURL=tools-picker.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
|
|
2
|
+
interface TopicCheckPanelProps {
|
|
3
3
|
prompt: string;
|
|
4
4
|
}
|
|
5
5
|
/** Short-lived submit gate shown only when local continuity checks are ambiguous. */
|
|
6
6
|
export declare function TopicCheckPanel({ prompt }: TopicCheckPanelProps): React.ReactElement;
|
|
7
|
+
export {};
|
|
7
8
|
//# sourceMappingURL=topic-check-panel.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SlashCommand } from '@wrongstack/core/types';
|
|
2
|
-
|
|
2
|
+
interface ConnectionsSlashDeps {
|
|
3
3
|
onPanelOpen?: {
|
|
4
4
|
current: ((action: string) => boolean) | null;
|
|
5
5
|
} | undefined;
|
|
@@ -9,4 +9,5 @@ export interface ConnectionsSlashDeps {
|
|
|
9
9
|
* opens the interactive service health panel and emits nothing to chat history.
|
|
10
10
|
*/
|
|
11
11
|
export declare function createConnectionsSlashCommand(deps: ConnectionsSlashDeps): SlashCommand;
|
|
12
|
+
export {};
|
|
12
13
|
//# sourceMappingURL=connections-slash.d.ts.map
|
package/dist/context-fill.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* This module is the single place that decides *which* number the chip shows.
|
|
14
14
|
* It is pure so the precedence can be tested without rendering the App.
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
interface ContextFillInputs {
|
|
17
17
|
/**
|
|
18
18
|
* Tokens reported by the agent loop's `ctx.pct` event
|
|
19
19
|
* (`state.leader.ctxTokens`). Authoritative: it anchors on the provider's real
|
|
@@ -31,8 +31,8 @@ export interface ContextFillInputs {
|
|
|
31
31
|
/** Live per-model context ceiling. */
|
|
32
32
|
maxContext: number;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
type ContextFillSource = 'loop' | 'provider' | 'local' | 'none';
|
|
35
|
+
interface ContextFillResult {
|
|
36
36
|
/** Tokens to display as "used". Always `<= maxContext` (and `>= 0`). */
|
|
37
37
|
used: number;
|
|
38
38
|
/**
|
|
@@ -58,4 +58,5 @@ export interface ContextFillResult {
|
|
|
58
58
|
* valid answer to "how full is the context window?".
|
|
59
59
|
*/
|
|
60
60
|
export declare function resolveContextFill(inputs: ContextFillInputs): ContextFillResult;
|
|
61
|
+
export {};
|
|
61
62
|
//# sourceMappingURL=context-fill.d.ts.map
|
package/dist/context-slash.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SlashCommand } from '@wrongstack/core/types';
|
|
2
|
-
|
|
2
|
+
interface ContextSlashDeps {
|
|
3
3
|
/** Bridge from slash-command execution to the mounted TUI reducer. */
|
|
4
4
|
onPanelOpen?: {
|
|
5
5
|
current: ((action: string) => boolean) | null;
|
|
@@ -16,7 +16,7 @@ export interface ContextSlashDeps {
|
|
|
16
16
|
*/
|
|
17
17
|
fallback?: SlashCommand | undefined;
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
interface ContextPanelSummary {
|
|
20
20
|
contextPct?: number | undefined;
|
|
21
21
|
contextTokens?: number | undefined;
|
|
22
22
|
contextMaxTokens?: number | undefined;
|
|
@@ -43,4 +43,5 @@ export declare function contextBar(pct: number, width: number): string;
|
|
|
43
43
|
*/
|
|
44
44
|
export declare function createContextSlashCommand(deps: ContextSlashDeps): SlashCommand;
|
|
45
45
|
export declare function formatContextPanelSummary(summary: ContextPanelSummary | undefined): string;
|
|
46
|
+
export {};
|
|
46
47
|
//# sourceMappingURL=context-slash.d.ts.map
|
package/dist/cron-slash.d.ts
CHANGED
|
@@ -24,11 +24,12 @@ export interface CronListResult {
|
|
|
24
24
|
jobs: CronJobView[];
|
|
25
25
|
error?: string | undefined;
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
interface CronSlashDeps {
|
|
28
28
|
getCronJobs: () => Promise<CronListResult>;
|
|
29
29
|
}
|
|
30
30
|
/** Build the shared cron-list loader used by both the slash command and panel. */
|
|
31
31
|
export declare function createCronJobsGetter(agent: Pick<Agent, 'ctx' | 'tools'>): () => Promise<CronListResult>;
|
|
32
32
|
export declare function createCronSlashCommand(deps: CronSlashDeps): SlashCommand;
|
|
33
33
|
export declare function renderCronList(result: CronListResult): string;
|
|
34
|
+
export {};
|
|
34
35
|
//# sourceMappingURL=cron-slash.d.ts.map
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* in the table as a safety net in case those earlier handlers change.
|
|
24
24
|
*/
|
|
25
25
|
import type { Action, State } from './app-reducer.js';
|
|
26
|
-
|
|
26
|
+
interface EscCloseEntry {
|
|
27
27
|
/** Human-readable name for debugging and tests. */
|
|
28
28
|
name: string;
|
|
29
29
|
/** Whether this panel is currently open. */
|
|
@@ -49,4 +49,5 @@ export declare function escCloseAction(state: State): Action | null;
|
|
|
49
49
|
* the run on the same keypress.
|
|
50
50
|
*/
|
|
51
51
|
export declare function escSelfOwnedPanelOpen(state: State): boolean;
|
|
52
|
+
export {};
|
|
52
53
|
//# sourceMappingURL=esc-close-panels.d.ts.map
|
package/dist/f-key-panels.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Action } from './app-action-type.js';
|
|
|
2
2
|
import type { StatuslineItem } from './components/statusline-picker.js';
|
|
3
3
|
export type FKeyPanelAction = 'projectPickerOpen' | 'toggleMonitor' | 'toggleAgentsMonitor' | 'toggleWorktreeMonitor' | 'togglePlanPanel' | 'toggleTodosMonitor' | 'toggleQueuePanel' | 'toggleProcessList' | 'toggleKanbanPanel' | 'toggleGoalPanel' | 'toggleSessionsPanel' | 'toggleCoordinatorMonitor' | 'toggleCronMonitor' | 'toggleConnectionsPanel' | 'statuslineOpen';
|
|
4
4
|
/** Host-side action keys that require work beyond a reducer dispatch. */
|
|
5
|
-
|
|
5
|
+
type FKeyHostAction = 'openProjectPicker' | 'loadLiveSessions' | 'openStatuslinePicker';
|
|
6
6
|
/** A single F-key panel entry shared by the picker, help overlay, and tests. */
|
|
7
7
|
export interface FKeyPanelEntry {
|
|
8
8
|
key: number;
|
package/dist/git-info.d.ts
CHANGED
|
@@ -12,9 +12,28 @@ export interface GitInfo {
|
|
|
12
12
|
* when the directory isn't a git repository or git isn't installed —
|
|
13
13
|
* the status bar just hides the git chip in that case.
|
|
14
14
|
*
|
|
15
|
-
* Spawns
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* Spawns TWO short-lived `git` processes in parallel — `status
|
|
16
|
+
* --porcelain=v2 --branch` (branch name, detached OID, untracked count) and
|
|
17
|
+
* `diff HEAD --numstat` (line counts). It used to be three: `branch
|
|
18
|
+
* --show-current` was its own spawn, plus a fourth `rev-parse --short`
|
|
19
|
+
* whenever HEAD was detached. Porcelain v2's `# branch.oid` / `# branch.head`
|
|
20
|
+
* header carries both, so those spawns are gone.
|
|
21
|
+
*
|
|
22
|
+
* Process spawn is the dominant cost here (~40-80ms each on Windows), not
|
|
23
|
+
* git's own work, so spawn count is the number that matters. The caller owns
|
|
24
|
+
* the cadence and should skip calling this when nothing has changed — see
|
|
25
|
+
* `use-git-session-status.ts`.
|
|
18
26
|
*/
|
|
19
27
|
export declare function readGitInfo(cwd: string): Promise<GitInfo | null>;
|
|
28
|
+
/**
|
|
29
|
+
* Collapse porcelain v2's branch header into the chip's single label.
|
|
30
|
+
*
|
|
31
|
+
* `branch.head` is the branch name, or the literal `(detached)`. On a
|
|
32
|
+
* detached HEAD we render the short OID so the chip is never blank;
|
|
33
|
+
* `branch.oid` is `(initial)` in a repo with no commits yet, which is not a
|
|
34
|
+
* SHA and must not be shown as one. OID length depends on the repo's object
|
|
35
|
+
* format — 40 hex for SHA-1 repos, 64 for SHA-256 (`git init
|
|
36
|
+
* --object-format=sha256`) — so both bounds are accepted.
|
|
37
|
+
*/
|
|
38
|
+
export declare function branchLabel(head: string, oid: string): string;
|
|
20
39
|
//# sourceMappingURL=git-info.d.ts.map
|
package/dist/height-cache.d.ts
CHANGED
|
@@ -9,13 +9,6 @@
|
|
|
9
9
|
* This module is pure TypeScript — no React, no Ink, no DOM dependencies.
|
|
10
10
|
* It can be unit-tested without mounting components.
|
|
11
11
|
*/
|
|
12
|
-
/**
|
|
13
|
-
* Default height (in terminal rows) assumed for an entry before its first
|
|
14
|
-
* measurement. 3 rows is a reasonable floor for a single-line entry
|
|
15
|
-
* (border + content + margin) and prevents a flash of zero-height spacers
|
|
16
|
-
* during the first render pass.
|
|
17
|
-
*/
|
|
18
|
-
export declare const DEFAULT_ENTRY_HEIGHT = 3;
|
|
19
12
|
/**
|
|
20
13
|
* Prefix-sum-based height cache for history entries.
|
|
21
14
|
*
|
|
@@ -147,7 +140,7 @@ export declare class EntryHeightCache {
|
|
|
147
140
|
* Returns a result with `startIdx`, `endIdx`, `spacerAbove`, and `spacerBelow`
|
|
148
141
|
* that the caller uses to render only the visible window.
|
|
149
142
|
*/
|
|
150
|
-
|
|
143
|
+
interface ComputeWindowResult {
|
|
151
144
|
/** Index of the first entry to render (inclusive). */
|
|
152
145
|
startIdx: number;
|
|
153
146
|
/** Index of the last entry to render (exclusive, like Array.slice end). */
|
|
@@ -174,4 +167,5 @@ export interface ComputeWindowResult {
|
|
|
174
167
|
* @returns A {@link ComputeWindowResult} describing the visible slice.
|
|
175
168
|
*/
|
|
176
169
|
export declare function computeWindow(totalHeight: number, viewportRows: number, scrollOffset: number, entryCount: number, cache: EntryHeightCache): ComputeWindowResult;
|
|
170
|
+
export {};
|
|
177
171
|
//# sourceMappingURL=height-cache.d.ts.map
|
package/dist/history-entry.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Render-neutral conversation entry contracts retained by TUI state. */
|
|
2
2
|
/** One seat's observable vote. No hidden chain-of-thought is retained. */
|
|
3
|
-
|
|
3
|
+
interface BrainCouncilSeatTrace {
|
|
4
4
|
seatId: string;
|
|
5
5
|
persona: string;
|
|
6
6
|
status: 'valid' | 'invalid' | 'failed' | 'cancelled';
|
|
@@ -19,7 +19,7 @@ export interface BrainCouncilSeatTrace {
|
|
|
19
19
|
* the bus but no surface consumed them, so a slow, costly decision looked
|
|
20
20
|
* identical to a free policy one.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
interface BrainCouncilTrace {
|
|
23
23
|
resolution: string;
|
|
24
24
|
configuredSeatCount: number;
|
|
25
25
|
validVoteCount: number;
|
|
@@ -40,7 +40,7 @@ export interface AutonomyAgentStatus {
|
|
|
40
40
|
/** Optional detail line (risk level, interval, model, etc.). */
|
|
41
41
|
detail?: string | undefined;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
interface MemoryScoreTerm {
|
|
44
44
|
label: string;
|
|
45
45
|
value: number;
|
|
46
46
|
}
|
|
@@ -272,4 +272,5 @@ export type HistoryEntry = {
|
|
|
272
272
|
text: string;
|
|
273
273
|
detail?: string | undefined;
|
|
274
274
|
};
|
|
275
|
+
export {};
|
|
275
276
|
//# sourceMappingURL=history-entry.d.ts.map
|
|
@@ -8,17 +8,27 @@ export declare const TUI_HISTORY_MAX_ENTRIES = 400;
|
|
|
8
8
|
export declare const TUI_HISTORY_MAX_BYTES: number;
|
|
9
9
|
/** No single display entry may monopolize the aggregate history budget. */
|
|
10
10
|
export declare const TUI_HISTORY_MAX_ENTRY_BYTES: number;
|
|
11
|
-
/**
|
|
12
|
-
* Enforce the per-entry display budget before aggregate history retention.
|
|
13
|
-
* Common text entries keep a readable prefix; unusual oversized structured
|
|
14
|
-
* entries degrade to a small marker rather than retaining an unbounded graph.
|
|
15
|
-
*/
|
|
16
|
-
export declare function retainTuiHistoryEntry(entry: HistoryEntry, maxBytes?: number): HistoryEntry;
|
|
17
11
|
export interface TuiHistoryBudget {
|
|
18
12
|
maxEntries?: number | undefined;
|
|
19
13
|
maxBytes?: number | undefined;
|
|
20
14
|
maxEntryBytes?: number | undefined;
|
|
21
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Retention budget for a session the user explicitly resumed.
|
|
18
|
+
*
|
|
19
|
+
* The live budget (400 entries / 1 MB) sizes a scrollback window that grows a
|
|
20
|
+
* few entries at a time and is backed by a journal the user can always reopen.
|
|
21
|
+
* A resume is the opposite: the whole conversation arrives at once and IS what
|
|
22
|
+
* was asked for. Measured on this corpus, a 131 MB journal replays to 740
|
|
23
|
+
* entries / 1.28 MB — under the live budget it lost 340 of them to the count
|
|
24
|
+
* cap before the user saw anything, which reads as "resume did not load".
|
|
25
|
+
*
|
|
26
|
+
* These caps still bound the window (a resume cannot make history unbounded)
|
|
27
|
+
* but with roughly 5x headroom over the largest session observed here. The
|
|
28
|
+
* per-entry cap is deliberately NOT raised: one pathological tool payload
|
|
29
|
+
* should never be allowed to consume the whole budget.
|
|
30
|
+
*/
|
|
31
|
+
export declare const TUI_RESUME_HISTORY_BUDGET: TuiHistoryBudget;
|
|
22
32
|
/**
|
|
23
33
|
* Retain the newest display entries within both a count and serialized-byte
|
|
24
34
|
* budget. The first banner that still fits after per-entry compaction is
|
package/dist/hit-test.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface MouseLayout {
|
|
|
22
22
|
/** Rows the history viewport occupies, from the top of the screen. */
|
|
23
23
|
viewportRows: number;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
type HitRegion =
|
|
26
26
|
/** The copy/scroll rail; `cell` is the 0-based row on the track. */
|
|
27
27
|
{
|
|
28
28
|
kind: 'scrollbar';
|
|
@@ -76,4 +76,5 @@ export declare function statusBarLineRow(opts: {
|
|
|
76
76
|
/** 0-based content line index (line 1 = 0, line 2 = 1, …). */
|
|
77
77
|
line: number;
|
|
78
78
|
}): number | null;
|
|
79
|
+
export {};
|
|
79
80
|
//# sourceMappingURL=hit-test.d.ts.map
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export declare function formatHistoryDuration(ms: number): string;
|
|
11
11
|
/** Collapse whitespace and hard-cap a task/description for a single history line. */
|
|
12
12
|
export declare function shortenTaskPreview(task: string, maxChars?: number): string;
|
|
13
|
-
|
|
13
|
+
interface SubagentCompletionLike {
|
|
14
14
|
status: string;
|
|
15
15
|
iterations: number;
|
|
16
16
|
toolCalls: number;
|
|
@@ -42,4 +42,5 @@ export declare function formatDelegateSuccessText(input: {
|
|
|
42
42
|
toolCalls: number;
|
|
43
43
|
durationMs: number;
|
|
44
44
|
}): string;
|
|
45
|
+
export {};
|
|
45
46
|
//# sourceMappingURL=subagent-history-format.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FleetChatVerbosity } from '@wrongstack/core/types';
|
|
2
2
|
import type { AppProps } from '../app-props.js';
|
|
3
3
|
import { LayoutStore } from '../layout-store.js';
|
|
4
|
-
|
|
4
|
+
interface AppSessionStateOptions {
|
|
5
5
|
agent: AppProps['agent'];
|
|
6
6
|
banner: boolean;
|
|
7
7
|
appVersion?: string | undefined;
|
|
@@ -25,4 +25,5 @@ export declare function useAppSessionState(options: AppSessionStateOptions): {
|
|
|
25
25
|
dispatch: import("react").ActionDispatch<[action: import("../app-action-type.js").Action]>;
|
|
26
26
|
layoutStore: LayoutStore;
|
|
27
27
|
};
|
|
28
|
+
export {};
|
|
28
29
|
//# sourceMappingURL=use-app-session-state.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Action, State } from '../app-reducer.js';
|
|
2
2
|
import { type AuthPanelHost } from '../auth-panel-model.js';
|
|
3
|
-
|
|
3
|
+
interface UseAuthPanelOptions {
|
|
4
4
|
authHost: AuthPanelHost | undefined;
|
|
5
5
|
stateRef: {
|
|
6
6
|
current: State;
|
|
@@ -39,4 +39,5 @@ export interface AuthPanelController {
|
|
|
39
39
|
readText: (label: string) => Promise<string>;
|
|
40
40
|
}
|
|
41
41
|
export declare function useAuthPanel(opts: UseAuthPanelOptions): AuthPanelController;
|
|
42
|
+
export {};
|
|
42
43
|
//# sourceMappingURL=use-auth-panel.d.ts.map
|
|
@@ -13,7 +13,7 @@ export type ModelPickSelection = {
|
|
|
13
13
|
providerId: string;
|
|
14
14
|
model: string;
|
|
15
15
|
} | null;
|
|
16
|
-
|
|
16
|
+
interface UseBrainPanelOptions {
|
|
17
17
|
dispatch: React.Dispatch<Action>;
|
|
18
18
|
getBrainData?: (() => {
|
|
19
19
|
riskLevel: BrainRiskLevel;
|
|
@@ -40,4 +40,5 @@ export interface BrainPanelController {
|
|
|
40
40
|
handleBrainVoterMod: (index: number, mod: 'persona' | 'veto') => void;
|
|
41
41
|
}
|
|
42
42
|
export declare function useBrainPanel(opts: UseBrainPanelOptions): BrainPanelController;
|
|
43
|
+
export {};
|
|
43
44
|
//# sourceMappingURL=use-brain-panel.d.ts.map
|