@wrongstack/tui 1.0.19 → 1.0.26
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 +85 -1
- package/dist/app-key-handler.d.ts +1 -1
- package/dist/app-panel-state.d.ts +561 -0
- package/dist/app-props.d.ts +21 -1
- package/dist/app-reducer.d.ts +1 -1
- package/dist/app-state-core-types.d.ts +13 -0
- package/dist/app-state.d.ts +8 -534
- package/dist/app-status-region.d.ts +2 -1
- package/dist/app-ui-state.d.ts +2 -0
- package/dist/app-view-contract.d.ts +1 -1
- package/dist/app-view-pickers.d.ts +2 -1
- package/dist/app-view-state.d.ts +2 -0
- package/dist/app.d.ts +2 -2
- package/dist/auth-panel-model.d.ts +1 -0
- package/dist/background-strip-model.d.ts +65 -0
- package/dist/brain-panel-model.d.ts +7 -7
- package/dist/chat-search-slash.d.ts +15 -0
- package/dist/clipboard.d.ts +14 -1
- package/dist/components/agent-monitor-presentation.d.ts +61 -0
- package/dist/components/agents-monitor.d.ts +3 -49
- package/dist/components/audit-panel.d.ts +2 -1
- package/dist/components/auth-panel.d.ts +3 -1
- package/dist/components/background-strip.d.ts +20 -0
- package/dist/components/brain-panel.d.ts +3 -1
- package/dist/components/chat-search-bar.d.ts +19 -0
- package/dist/components/checkpoint-timeline.d.ts +7 -3
- package/dist/components/confirm-prompt.d.ts +6 -7
- package/dist/components/connections-panel.d.ts +2 -1
- package/dist/components/context-panel-sections.d.ts +53 -0
- package/dist/components/context-panel-types.d.ts +66 -0
- package/dist/components/context-panel.d.ts +2 -66
- package/dist/components/exit-confirm-panel.d.ts +2 -0
- package/dist/components/file-picker.d.ts +2 -1
- package/dist/components/help-panel.d.ts +5 -3
- package/dist/components/history/code-block.d.ts +2 -136
- package/dist/components/history/diff-model.d.ts +143 -0
- package/dist/components/history/scroll-controller-types.d.ts +11 -0
- package/dist/components/history/scrollbar-rail.d.ts +14 -2
- package/dist/components/history/use-history-controller.d.ts +5 -0
- package/dist/components/history/utils.d.ts +3 -9
- package/dist/components/history/visual-tool-output.d.ts +8 -0
- package/dist/components/input.d.ts +1 -1
- package/dist/components/kanban-panel-presentation.d.ts +114 -0
- package/dist/components/kanban-panel.d.ts +2 -47
- package/dist/components/mailbox-panel.d.ts +2 -1
- package/dist/components/mcp-picker.d.ts +3 -1
- package/dist/components/mode-picker.d.ts +3 -1
- package/dist/components/model-picker.d.ts +1 -1
- package/dist/components/monitor-shell.d.ts +19 -4
- package/dist/components/phase-monitor.d.ts +3 -1
- package/dist/components/plugin-picker.d.ts +3 -1
- package/dist/components/powerline-rail.d.ts +6 -3
- package/dist/components/prompt-picker-model.d.ts +16 -0
- package/dist/components/prompt-picker.d.ts +2 -16
- package/dist/components/provider-colors.d.ts +2 -12
- package/dist/components/refine-countdown-panel.d.ts +4 -3
- package/dist/components/resource-menu-model.d.ts +3 -0
- package/dist/components/resource-menu.d.ts +3 -3
- package/dist/components/scrollable-history.d.ts +1 -1
- package/dist/components/send-mode-model.d.ts +44 -0
- package/dist/components/send-mode-picker.d.ts +2 -43
- package/dist/components/settings-picker-row-list.d.ts +2 -1
- package/dist/components/settings-picker.d.ts +3 -1
- package/dist/components/shadow-panel.d.ts +2 -1
- package/dist/components/sidebar-content.d.ts +1 -47
- package/dist/components/sidebar-ipc-icons.d.ts +9 -0
- package/dist/components/sidebar-panel-agents.d.ts +10 -0
- package/dist/components/sidebar-panel-connections.d.ts +11 -0
- package/dist/components/sidebar-panel-coordinator.d.ts +11 -0
- package/dist/components/sidebar-panel-fleet.d.ts +16 -0
- package/dist/components/sidebar-panel-project.d.ts +12 -0
- package/dist/components/sidebar-panel-worktree.d.ts +10 -0
- package/dist/components/sidebar-panel-wrong-proxy.d.ts +25 -0
- package/dist/components/sidebar-panels-workspace.d.ts +10 -79
- package/dist/components/sidebar-presentation.d.ts +98 -0
- package/dist/components/sidebar.d.ts +3 -1
- package/dist/components/skill-picker.d.ts +2 -1
- package/dist/components/slash-confirm-panel.d.ts +2 -0
- package/dist/components/slash-menu.d.ts +2 -1
- package/dist/components/slash-modal-frame.d.ts +9 -0
- package/dist/components/status-bar-rails-async.d.ts +2 -2
- package/dist/components/status-bar-types.d.ts +6 -0
- package/dist/components/status-bar.d.ts +1 -1
- package/dist/components/statusline-picker-model.d.ts +45 -0
- package/dist/components/statusline-picker.d.ts +2 -41
- package/dist/components/tools-picker.d.ts +3 -1
- package/dist/components/user-input-prompt.d.ts +4 -2
- package/dist/connection-actions.d.ts +20 -0
- package/dist/connections-health.d.ts +8 -1
- package/dist/esc-close-panels.d.ts +0 -1
- package/dist/f-key-panels.d.ts +4 -0
- package/dist/hooks/fork-at-checkpoint.d.ts +25 -0
- package/dist/hooks/use-active-theme.d.ts +2 -1
- package/dist/hooks/use-app-execution-pipeline.d.ts +1 -1
- package/dist/hooks/use-app-panels-state.d.ts +1 -1
- package/dist/hooks/use-app-picker-keys.d.ts +5 -2
- package/dist/hooks/use-chip-staleness-guard.d.ts +6 -0
- package/dist/hooks/use-core-tui-commands.d.ts +7 -2
- package/dist/hooks/use-file-search.d.ts +10 -0
- package/dist/hooks/use-fleet-generation-gate.d.ts +4 -3
- package/dist/hooks/use-panel-controllers.d.ts +1 -1
- package/dist/hooks/use-picker-keys-brain-statusline.d.ts +4 -0
- package/dist/hooks/use-picker-keys-types.d.ts +1 -0
- package/dist/hooks/use-provider-warmup.d.ts +9 -0
- package/dist/hooks/use-queue-manager.d.ts +11 -1
- package/dist/hooks/use-session-rewind.d.ts +8 -1
- package/dist/hooks/use-shadow-panel.d.ts +1 -1
- package/dist/hooks/use-sidebar-panel-data.d.ts +7 -5
- package/dist/hooks/use-skill-mention-picker.d.ts +6 -0
- package/dist/hooks/use-slash-picker.d.ts +1 -1
- package/dist/hooks/use-stable-key-handler.d.ts +8 -1
- package/dist/hooks/use-status-sync-interval.d.ts +3 -2
- package/dist/hooks/use-statusbar-view-model.d.ts +2 -2
- package/dist/hooks/use-tui-environment-state.d.ts +3 -0
- package/dist/hooks/use-tui-event-bridge.d.ts +12 -0
- package/dist/hooks/use-windowed-picker.d.ts +3 -4
- package/dist/index.js +29522 -25452
- package/dist/ink.d.ts +5 -5
- package/dist/input-graphemes.d.ts +4 -0
- package/dist/input-key-router.d.ts +2 -0
- package/dist/input-tokens.d.ts +10 -0
- package/dist/input-validation/action-types.d.ts +1 -1
- package/dist/input-validation/limits.d.ts +2 -0
- package/dist/input-validation-coordination.d.ts +9 -0
- package/dist/input-validation-display.d.ts +9 -0
- package/dist/input-validation.d.ts +0 -52
- package/dist/kanban-arguments.d.ts +48 -0
- package/dist/kanban-command-types.d.ts +53 -0
- package/dist/kanban-reports.d.ts +42 -0
- package/dist/kanban-slash.d.ts +4 -125
- package/dist/key-routes/key-route-background-strip.d.ts +14 -0
- package/dist/key-routes/key-route-chat-search.d.ts +24 -0
- package/dist/key-routes/key-route-overlay.d.ts +2 -2
- package/dist/layout-store.d.ts +2 -2
- package/dist/memory-slash-render.d.ts +1 -1
- package/dist/message-checkpoint.d.ts +19 -0
- package/dist/motion.d.ts +16 -0
- package/dist/on-panel-open.d.ts +1 -1
- package/dist/picker-text-input.d.ts +4 -0
- package/dist/reducers/chat-search.d.ts +11 -0
- package/dist/reducers/composer-action-types.d.ts +6 -0
- package/dist/reducers/composer-pickers.d.ts +4 -0
- package/dist/reducers/composer.d.ts +1 -5
- package/dist/reducers/message-jump.d.ts +16 -0
- package/dist/reducers/panel-pickers.d.ts +1 -1
- package/dist/reducers/workspace-panels.d.ts +1 -1
- package/dist/resume-session-tree.d.ts +8 -0
- package/dist/rewind-prompt.d.ts +24 -0
- package/dist/run-tui-options.d.ts +24 -5
- package/dist/scroll-anchor.d.ts +6 -0
- package/dist/statusline-palette.d.ts +4 -0
- package/dist/submit-controller.d.ts +1 -1
- package/dist/submit-slash-command.d.ts +67 -0
- package/dist/theme-utils.d.ts +1 -1
- package/dist/transcript-search.d.ts +38 -0
- package/dist/ui-contracts.d.ts +2 -1
- package/dist/use-app-controller.d.ts +157 -0
- package/dist/use-controller-key-pipeline.d.ts +217 -0
- package/package.json +7 -7
|
@@ -19,6 +19,16 @@ export declare function detectAtToken(buffer: string, cursor: number): {
|
|
|
19
19
|
end: number;
|
|
20
20
|
query: string;
|
|
21
21
|
} | null;
|
|
22
|
+
export declare function isFileSelectionCurrent(current: {
|
|
23
|
+
buffer: string;
|
|
24
|
+
cursor: number;
|
|
25
|
+
}, original: {
|
|
26
|
+
buffer: string;
|
|
27
|
+
cursor: number;
|
|
28
|
+
}, token: {
|
|
29
|
+
start: number;
|
|
30
|
+
end: number;
|
|
31
|
+
}): boolean;
|
|
22
32
|
interface UseFileSearchOptions {
|
|
23
33
|
state: State;
|
|
24
34
|
dispatch: React.Dispatch<Action>;
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Fleet event bridges must discard events from subagents that were spawned
|
|
5
5
|
* before the last `/clear`. This shared hook encapsulates that logic so any
|
|
6
|
-
* bridge can apply it consistently.
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* bridge can apply it consistently. Both consumers wire it: `useDirectorFleetBridge`
|
|
7
|
+
* (Director FleetBus streaming) and `useSubagentEvents` (EventBus lifecycle —
|
|
8
|
+
* instantiated at use-subagent-events.ts:126, `gate.track` on spawn, `gate.isLive`
|
|
9
|
+
* on every subagent event handler, `gate.forget` on removal).
|
|
9
10
|
*
|
|
10
11
|
* Usage:
|
|
11
12
|
* ```ts
|
|
@@ -14,7 +14,7 @@ interface PanelControllersOptions {
|
|
|
14
14
|
openAuthPanel: (view?: 'list' | 'oauth') => boolean;
|
|
15
15
|
openModePicker: () => void | Promise<void>;
|
|
16
16
|
openBrainPanel: () => void | Promise<void>;
|
|
17
|
-
openShadowPanel: () => void |
|
|
17
|
+
openShadowPanel: () => void | boolean;
|
|
18
18
|
/** Opens the `/subagent-models` lane panel; omitted when the host wires no plan. */
|
|
19
19
|
openSubagentModelsPanel?: (() => void) | undefined;
|
|
20
20
|
openHelpPanel: () => void | Promise<void>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { KeyEvent } from '../components/input.js';
|
|
2
|
+
import type { PickerKeysHost } from './use-picker-keys-types.js';
|
|
3
|
+
export declare function tryBrainStatuslinePickerKeys(host: PickerKeysHost, input: string, key: KeyEvent, isEnter: boolean, debouncedEnter: (host: PickerKeysHost) => boolean): boolean;
|
|
4
|
+
//# sourceMappingURL=use-picker-keys-brain-statusline.d.ts.map
|
|
@@ -43,6 +43,7 @@ export interface PickerKeysHost {
|
|
|
43
43
|
onResumePickerEnter: (() => Promise<void>) | undefined;
|
|
44
44
|
onSessionsPanelEnter: (() => Promise<void>) | undefined;
|
|
45
45
|
onProjectPickerEnter: (() => Promise<void>) | undefined;
|
|
46
|
+
onSkillMentionPick?: ((name: string) => void) | undefined;
|
|
46
47
|
onSlashPickerEnter: (() => void) | undefined;
|
|
47
48
|
onSettingsPickerEnter: (() => void) | undefined;
|
|
48
49
|
onPluginPickerToggle: (() => Promise<void> | void) | undefined;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AppProps } from '../app-props.js';
|
|
2
|
+
import type { State } from '../app-state.js';
|
|
3
|
+
/**
|
|
4
|
+
* Warm the provider connection while the user types, so DNS and TLS are done
|
|
5
|
+
* by the time they press Enter (`Provider.warm`). Runs on every keystroke;
|
|
6
|
+
* the provider throttles to one small request per endpoint every few seconds.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useProviderWarmup(agent: AppProps['agent'], buffer: string, status: State['status']): void;
|
|
9
|
+
//# sourceMappingURL=use-provider-warmup.d.ts.map
|
|
@@ -5,6 +5,12 @@ import type { Settings } from '../app-state.js';
|
|
|
5
5
|
export interface UseQueueManagerOptions {
|
|
6
6
|
/** Optional persistent store — absent => in-memory only (no crash recovery). */
|
|
7
7
|
queueStore?: QueueStore | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* The store of another session. With it, resuming a session brings that
|
|
10
|
+
* session's queue along (the WebUI keeps its queue in the same file) and
|
|
11
|
+
* leaves the previous session's on disk; without it, the queue is dropped.
|
|
12
|
+
*/
|
|
13
|
+
queueStoreFor?: ((sessionId: string) => QueueStore | undefined) | undefined;
|
|
8
14
|
/** Called on every queue change so the host learns what's waiting. */
|
|
9
15
|
onQueueChange?: ((items: string[]) => void) | undefined;
|
|
10
16
|
/** Slash registry to register the /queue command. */
|
|
@@ -18,10 +24,14 @@ export interface UseQueueManagerOptions {
|
|
|
18
24
|
/** Live mirror of the mid-run send-mode picker enabled flag. */
|
|
19
25
|
midRunSendPickerRef: React.MutableRefObject<boolean>;
|
|
20
26
|
}
|
|
27
|
+
export interface QueueManager {
|
|
28
|
+
/** Move the queue to the session just resumed: its own queue replaces this one. */
|
|
29
|
+
switchSession(sessionId: string): void;
|
|
30
|
+
}
|
|
21
31
|
/**
|
|
22
32
|
* Manages the TUI message queue: rehydration from persistent store,
|
|
23
33
|
* persistence on every change, host mirroring, and the /queue slash
|
|
24
34
|
* command. All side-effect wiring extracted from app.tsx.
|
|
25
35
|
*/
|
|
26
|
-
export declare function useQueueManager({ queueStore, onQueueChange, slashRegistry, stateRef, dispatch, getSettings, saveSettings, midRunSendPickerRef, }: UseQueueManagerOptions):
|
|
36
|
+
export declare function useQueueManager({ queueStore, queueStoreFor, onQueueChange, slashRegistry, stateRef, dispatch, getSettings, saveSettings, midRunSendPickerRef, }: UseQueueManagerOptions): QueueManager;
|
|
27
37
|
//# sourceMappingURL=use-queue-manager.d.ts.map
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { Agent } from '@wrongstack/core/agent';
|
|
2
2
|
import type { Director } from '@wrongstack/core/coordination';
|
|
3
|
+
import { type RedoRewindResult, type RewoundConversation } from '@wrongstack/core/storage';
|
|
3
4
|
import type { SessionInterruptController } from './use-session-interrupt-controller.js';
|
|
5
|
+
/** What a rewind leaves for the screen: the prompt taken back, and the rest. */
|
|
6
|
+
export interface RewindOutcome {
|
|
7
|
+
promptText?: string | undefined;
|
|
8
|
+
conversation?: RewoundConversation | undefined;
|
|
9
|
+
}
|
|
4
10
|
interface UseSessionRewindOptions {
|
|
5
11
|
agent: Agent;
|
|
6
12
|
sessionsDir?: string | undefined;
|
|
@@ -9,7 +15,8 @@ interface UseSessionRewindOptions {
|
|
|
9
15
|
sessionGenerationRef: React.MutableRefObject<number>;
|
|
10
16
|
}
|
|
11
17
|
export declare function useSessionRewind({ agent, sessionsDir, interruptController, liveDirector, sessionGenerationRef, }: UseSessionRewindOptions): {
|
|
12
|
-
handleRewindTo: (checkpointIndex: number) => Promise<
|
|
18
|
+
handleRewindTo: (checkpointIndex: number) => Promise<RewindOutcome>;
|
|
19
|
+
handleRewindRedo: () => Promise<RedoRewindResult | null>;
|
|
13
20
|
};
|
|
14
21
|
export {};
|
|
15
22
|
//# sourceMappingURL=use-session-rewind.d.ts.map
|
|
@@ -10,7 +10,7 @@ interface ShadowPanelHost {
|
|
|
10
10
|
onShadowStop?: (() => Promise<string | undefined>) | undefined;
|
|
11
11
|
}
|
|
12
12
|
export declare function useShadowPanel(dispatch: React.Dispatch<Action>, host: ShadowPanelHost): {
|
|
13
|
-
openShadowPanel: () =>
|
|
13
|
+
openShadowPanel: () => boolean;
|
|
14
14
|
handleShadowStart: () => Promise<void>;
|
|
15
15
|
handleShadowStop: () => Promise<void>;
|
|
16
16
|
};
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* Each hook is self-contained: it manages its own refresh interval and
|
|
10
10
|
* cleanup. The hooks must be called unconditionally (rules of hooks), but
|
|
11
11
|
* polling is gated by the `enabled` flag — app-view passes whether the
|
|
12
|
-
* twin currently occupies a visible sidebar slot.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* twin currently occupies a visible sidebar slot. Connections also supplies
|
|
13
|
+
* the persistent icon strip, so it polls whenever the sidebar is visible.
|
|
14
|
+
* Hidden surfaces do not poll (bottom panels run their own polling when open).
|
|
15
|
+
* Each hook performs an immediate
|
|
16
16
|
* first read when enabled, so data is fresh the moment the twin mounts.
|
|
17
17
|
*/
|
|
18
18
|
interface SidebarProcess {
|
|
@@ -30,7 +30,9 @@ export declare function useSidebarProcessList(enabled?: boolean): {
|
|
|
30
30
|
totalCount: number;
|
|
31
31
|
processes: readonly SidebarProcess[];
|
|
32
32
|
};
|
|
33
|
-
interface SidebarConnection {
|
|
33
|
+
export interface SidebarConnection {
|
|
34
|
+
id?: import('../connections-health.js').ConnectionHealthServiceId | undefined;
|
|
35
|
+
healthStatus?: import('../connections-health.js').ConnectionHealthStatus | undefined;
|
|
34
36
|
name: string;
|
|
35
37
|
status: 'ok' | 'warn' | 'down' | 'unknown';
|
|
36
38
|
latencyMs?: number | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SkillLoader } from '@wrongstack/core/types';
|
|
2
|
+
import { type Dispatch } from 'react';
|
|
3
|
+
import type { Action } from '../app-action-type.js';
|
|
4
|
+
import type { State } from '../app-state.js';
|
|
5
|
+
export declare function useSkillMentionPicker(state: State, loader: SkillLoader | undefined, dispatch: Dispatch<Action>): void;
|
|
6
|
+
//# sourceMappingURL=use-skill-mention-picker.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Dispatch } from 'react';
|
|
2
|
-
import type { AppProps } from '../app-props.js';
|
|
3
2
|
import type { Action } from '../app-action-type.js';
|
|
3
|
+
import type { AppProps } from '../app-props.js';
|
|
4
4
|
import type { State } from '../app-state.js';
|
|
5
5
|
interface SlashPickerOptions {
|
|
6
6
|
state: State;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { KeyEvent } from '../components/input.js';
|
|
2
2
|
type AppKeyHandler = (input: string, key: KeyEvent) => Promise<void>;
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Returns an identity-stable key handler that always calls the latest
|
|
5
|
+
* `handleKey`. A rejected key handler must never kill the process, but it
|
|
6
|
+
* must not vanish either: `onError` receives the failure so the host can
|
|
7
|
+
* surface it (an error entry in the transcript). Without `onError` the
|
|
8
|
+
* failure is still contained.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useStableKeyHandler(handleKey: AppKeyHandler, onError?: (err: unknown) => void): AppKeyHandler;
|
|
4
11
|
export {};
|
|
5
12
|
//# sourceMappingURL=use-stable-key-handler.d.ts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Agent } from '@wrongstack/core/agent';
|
|
2
|
+
import type { AutonomyStage } from './use-statusline-state.js';
|
|
2
3
|
interface UseStatusSyncIntervalOptions {
|
|
3
|
-
getAutonomy?: (() =>
|
|
4
|
+
getAutonomy?: (() => AutonomyStage) | undefined;
|
|
4
5
|
getYolo?: (() => boolean) | undefined;
|
|
5
6
|
getModeLabel?: (() => string) | undefined;
|
|
6
7
|
getEternalEngine?: unknown;
|
|
@@ -11,7 +12,7 @@ interface UseStatusSyncIntervalOptions {
|
|
|
11
12
|
liveModeLabel: string;
|
|
12
13
|
liveModel: string;
|
|
13
14
|
liveProvider: string;
|
|
14
|
-
setAutonomyLive: (v:
|
|
15
|
+
setAutonomyLive: (v: AutonomyStage) => void;
|
|
15
16
|
setYoloLive: (v: boolean) => void;
|
|
16
17
|
setLiveModeLabel: (v: string) => void;
|
|
17
18
|
setLiveModel: (v: string) => void;
|
|
@@ -34,12 +34,12 @@ interface StatusbarViewModelOptions {
|
|
|
34
34
|
*/
|
|
35
35
|
tokenRefresh?: TokenRefreshData;
|
|
36
36
|
}
|
|
37
|
-
interface PlanCounts {
|
|
37
|
+
export interface PlanCounts {
|
|
38
38
|
open: number;
|
|
39
39
|
inProgress: number;
|
|
40
40
|
done: number;
|
|
41
41
|
}
|
|
42
|
-
interface TaskCounts {
|
|
42
|
+
export interface TaskCounts {
|
|
43
43
|
pending: number;
|
|
44
44
|
inProgress: number;
|
|
45
45
|
completed: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getIndexState } from '@wrongstack/tools';
|
|
1
2
|
import type { AppProps } from '../app-props.js';
|
|
2
3
|
type EnvironmentProps = Omit<Pick<AppProps, 'events' | 'memoryStore' | 'model' | 'provider' | 'effectiveMaxContext' | 'yolo' | 'getAutonomy' | 'modeLabel' | 'statuslineHiddenItems' | 'statuslineLines' | 'statuslineDensities' | 'statuslineOrder' | 'toolCount' | 'getSettings' | 'setStatuslineHiddenItems' | 'saveStatuslineHiddenItems' | 'setStatuslineLines' | 'saveStatuslineLines' | 'setStatuslineDensities' | 'saveStatuslineDensities' | 'setStatuslineOrder' | 'saveStatuslineOrder'>, 'yolo'> & {
|
|
3
4
|
yolo: boolean;
|
|
@@ -45,5 +46,7 @@ export declare function useTuiEnvironmentState({ events, memoryStore, model, pro
|
|
|
45
46
|
};
|
|
46
47
|
breakerCountdown: import("@wrongstack/tools").BreakerCountdown | null;
|
|
47
48
|
};
|
|
49
|
+
/** Everything the index status chip renders; equal keys draw an equal chip. */
|
|
50
|
+
export declare function indexChipKey(state: ReturnType<typeof getIndexState>): string;
|
|
48
51
|
export {};
|
|
49
52
|
//# sourceMappingURL=use-tui-environment-state.d.ts.map
|
|
@@ -4,6 +4,18 @@ type ClearHistoryDispatch = React.Dispatch<{
|
|
|
4
4
|
type: 'clearHistory';
|
|
5
5
|
model?: string | undefined;
|
|
6
6
|
provider?: string | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* When explicitly `null`, the reducer treats the boot-time restored
|
|
9
|
+
* transcript as discarded and resets `historyBudget`, `autoProceedHold`,
|
|
10
|
+
* and `nextId` to the fresh-boot values. `/clear` passes `null` for
|
|
11
|
+
* all three so the screen genuinely looks like first launch. Pass
|
|
12
|
+
* `undefined` (or omit) to preserve the existing resume-derived
|
|
13
|
+
* budget/hold — the behavior the bridge uses for `session.rewound` /
|
|
14
|
+
* `project.switched`.
|
|
15
|
+
*/
|
|
16
|
+
restoredMessages?: readonly unknown[] | null | undefined;
|
|
17
|
+
restoredToolCalls?: readonly unknown[] | null | undefined;
|
|
18
|
+
restoredEvents?: readonly unknown[] | null | undefined;
|
|
7
19
|
} | {
|
|
8
20
|
type: 'resetContextChip';
|
|
9
21
|
} | {
|
|
@@ -61,7 +61,7 @@ export interface UseWindowedPickerOptions {
|
|
|
61
61
|
* 24-row terminal even when the input bar or status bar grows.
|
|
62
62
|
*/
|
|
63
63
|
readonly maxRows?: number | undefined;
|
|
64
|
-
/**
|
|
64
|
+
/** Legacy minimum without a measured maxRows budget. Defaults to 3. */
|
|
65
65
|
readonly minVisible?: number | undefined;
|
|
66
66
|
}
|
|
67
67
|
export interface WindowedPickerSlice {
|
|
@@ -82,9 +82,8 @@ export interface WindowedPickerSlice {
|
|
|
82
82
|
* Behavior contract:
|
|
83
83
|
* - Visible count is `floor((available - chrome - markers) / rowSpan)`
|
|
84
84
|
* where `available` is either `maxRows` (measured) or
|
|
85
|
-
* `rows - shellReservedRows` (guessed)
|
|
86
|
-
*
|
|
87
|
-
* that overflows — better to bleed than to hide the focused row.
|
|
85
|
+
* `rows - shellReservedRows` (guessed). Measured budgets show at least
|
|
86
|
+
* one focused option; only the legacy guessed budget uses minVisible.
|
|
88
87
|
* - The window stays centered on `selected` once the picker is past the
|
|
89
88
|
* first page; on the first page it stays top-aligned so the user sees
|
|
90
89
|
* the list start. `selected < 0 || selected >= total` is treated as no
|