@wrongstack/tui 1.0.26 → 1.0.27

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.
@@ -271,6 +271,19 @@ export type Action = {
271
271
  } | {
272
272
  type: 'themePickerHint';
273
273
  text?: string | undefined;
274
+ } | {
275
+ type: 'themePickerFilter';
276
+ text: string;
277
+ } | {
278
+ type: 'themePickerFilterMode';
279
+ on: boolean;
280
+ } | {
281
+ type: 'themePickerPreview';
282
+ on: boolean;
283
+ } | {
284
+ type: 'themePickerUndo';
285
+ } | {
286
+ type: 'themePickerSwapPrevious';
274
287
  } | {
275
288
  type: 'skillPickerOpen';
276
289
  entries: SkillEntry[];
@@ -470,6 +483,7 @@ export type Action = {
470
483
  featureMemory: boolean;
471
484
  featureSkills: boolean;
472
485
  featureModelsRegistry: boolean;
486
+ featureToolCoach: boolean;
473
487
  tokenSavingTier: TokenSavingTier;
474
488
  allowOutsideProjectRoot: boolean;
475
489
  contextAutoCompact: boolean;
@@ -105,8 +105,31 @@ export type PanelState = {
105
105
  * applies the chosen one instantly (in-place palette mutation + persist). */
106
106
  themePicker: {
107
107
  open: boolean;
108
+ /** Index into the FILTERED option list (see `filter`). */
108
109
  selected: number;
109
110
  hint?: string | undefined;
111
+ /** Type-to-filter query. Empty means "show every preset". */
112
+ filter?: string | undefined;
113
+ /**
114
+ * Whether printable keys currently feed `filter`. Entered with `/` and
115
+ * left when the query is emptied. While this is false, `u` means "undo"
116
+ * and ordinary letters do nothing — without an explicit mode, every
117
+ * letter typed into the filter (descriptions are full of them) would
118
+ * shadow the undo key.
119
+ */
120
+ filtering?: boolean | undefined;
121
+ /**
122
+ * The preset that was active when the picker opened — the target of the
123
+ * undo key. Undefined on the first ever open, where there is nothing to go
124
+ * back to.
125
+ */
126
+ previous?: import('@wrongstack/core/types').ThemePresetId | undefined;
127
+ /**
128
+ * Live-preview mode: while true, moving the cursor applies each focused
129
+ * preset immediately, and Esc restores `previous` before closing. Off by
130
+ * default because it repaints the whole chat on every arrow key.
131
+ */
132
+ preview?: boolean | undefined;
110
133
  };
111
134
  /** Agent mode picker — opened by `/mode`. Selects teach/brief/code-reviewer/etc. */
112
135
  modePicker: {
@@ -178,6 +201,7 @@ export type PanelState = {
178
201
  featureMemory: boolean;
179
202
  featureSkills: boolean;
180
203
  featureModelsRegistry: boolean;
204
+ featureToolCoach: boolean;
181
205
  tokenSavingTier: TokenSavingTier;
182
206
  allowOutsideProjectRoot: boolean;
183
207
  contextAutoCompact: boolean;
@@ -32,6 +32,7 @@ export type Settings = {
32
32
  featureMemory: boolean;
33
33
  featureSkills: boolean;
34
34
  featureModelsRegistry: boolean;
35
+ featureToolCoach: boolean;
35
36
  /** Token-saving tier: off | minimal | light | medium | aggressive. */
36
37
  featureTokenSaving: TokenSavingTier;
37
38
  /** Allow tools to access paths outside the project root. Default: true (open). */
@@ -26,7 +26,7 @@ interface ScrollbarProps {
26
26
  selectionBandStore?: SelectionBandStore | undefined;
27
27
  }
28
28
  /**
29
- * The rail renders one Box + five Texts per viewport row, and its parent
29
+ * The rail renders one Box + six Texts per viewport row, and its parent
30
30
  * rebuilds `copyHits` as a fresh array on every flush (streaming included).
31
31
  * Compare only what the rail actually draws — each hit's row, entry id and
32
32
  * whether it has an inspect glyph — so an unchanged rail skips the repaint.
@@ -19,6 +19,7 @@ export interface SettingsPickerProps {
19
19
  featureMemory: boolean;
20
20
  featureSkills: boolean;
21
21
  featureModelsRegistry: boolean;
22
+ featureToolCoach: boolean;
22
23
  /** Token-saving tier: off | minimal | light | medium | aggressive. */
23
24
  tokenSavingTier: TokenSavingTierTui;
24
25
  /** Allow tools to read/write paths outside the project root directory. Default: true. */
@@ -136,5 +137,5 @@ export interface SettingsPickerProps {
136
137
  fieldRowIndex: readonly number[];
137
138
  }) => void) | undefined;
138
139
  }
139
- export declare function SettingsPicker({ field, filter, mode, delayMs, titleAnimation, yolo, fleetChat, chime, confirmExit, nextPrediction, featureMcp, featurePlugins, featureMemory, featureSkills, featureModelsRegistry, 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;
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;
140
141
  //# sourceMappingURL=settings-picker.d.ts.map
@@ -102,6 +102,19 @@ export interface StatusBarProps {
102
102
  * for callers that pass a combined string).
103
103
  */
104
104
  provider?: string | undefined;
105
+ /**
106
+ * Active reasoning-effort level (e.g. "high"), rendered as a suffix INSIDE
107
+ * the model chip (`provider/model · high`) rather than as a chip of its own:
108
+ * it qualifies the model, so the density ladder sheds it with the model at
109
+ * overflow instead of spending a separate statusline slot on it. Shown at
110
+ * the `full` and `short` density levels; `micro` drops it so the bottom rung
111
+ * stays strictly narrower than the one above it. NOT rendered in minimum
112
+ * mode — see `buildMinimumChips` for why that rail omits the qualifier.
113
+ *
114
+ * Omitted when the host has no effort to report — the chip then renders
115
+ * byte-for-byte as it did before, so legacy callers and tests are unaffected.
116
+ */
117
+ effort?: string | undefined;
105
118
  /**
106
119
  * App version string (e.g. "0.7.0"). Rendered as a right-anchored version
107
120
  * chip on the status bar (line 1, and the minimum-mode rail) so it stays
@@ -22,5 +22,5 @@ export type { BrainStatusChip, ContextWindow, FleetAgentDetail, FleetCounts, Mai
22
22
  * the rendered entries themselves, so an empty rail never renders and a
23
23
  * vanilla session keeps its two-line footprint.
24
24
  */
25
- export declare const StatusBar: React.MemoExoticComponent<({ model, provider, 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>;
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>;
26
26
  //# sourceMappingURL=status-bar.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import type React from 'react';
2
- import type { ThemeName, ThemePickerOption } from '../theme.js';
2
+ import { type ThemeName, type ThemePickerOption } from '../theme.js';
3
3
  interface ThemePickerProps {
4
4
  options: readonly ThemePickerOption[];
5
5
  selected: number;
@@ -22,6 +22,8 @@ interface ThemePickerProps {
22
22
  * budget is too small for it to be useful.
23
23
  */
24
24
  maxRows?: number | undefined;
25
+ /** Type-to-filter query. An empty string renders the full catalogue. */
26
+ filter?: string | undefined;
25
27
  }
26
28
  /**
27
29
  * Interactive theme picker. Mirrors the autonomy-picker visual pattern
@@ -30,17 +32,27 @@ interface ThemePickerProps {
30
32
  * highlighted with a `[active]` marker so the user can see whether
31
33
  * their selection will actually change anything.
32
34
  *
33
- * The list is windowed via {@link useWindowedPicker} so 15+ presets stay
34
- * usable on small terminals — a top-aligned `…` marker appears when the
35
- * focused row is below the start of the visible window.
36
- *
37
- * On wide terminals the picker splits into two panes: the windowed list on
35
+ * On wide terminals the picker splits into two panes: the list on
38
36
  * the left and a live {@link ThemePreview} on the right that renders the
39
37
  * *focused* preset's palette from its frozen snapshot. Navigating with ↑/↓
40
38
  * re-renders the preview; Enter alone applies the theme. The description
41
39
  * column is dropped from list rows in split mode — it moves into the
42
40
  * preview header, which is what frees the list to show more rows.
41
+ *
42
+ * Three things the flat-list version did not have:
43
+ *
44
+ * - **Type-to-filter.** Printable keys narrow the list on name, id and
45
+ * description. `selected` is an index into the FILTERED list, so the
46
+ * window, the preview, and Enter all resolve through the same
47
+ * `filterThemeOptions` call.
48
+ * - **Family headers.** Related presets (Catppuccin ×4, Tokyo Night ×3)
49
+ * sit under one header, so a family is reachable without scrolling past
50
+ * 60 unrelated rows. Headers are real rows and are counted against
51
+ * `maxRows` by {@link windowThemeRows}.
52
+ * - **Inline swatches.** Each row carries a six-chip palette sample, so
53
+ * the list is still informative on the narrow terminals that get no
54
+ * preview pane at all.
43
55
  */
44
- export declare function ThemePicker({ options, selected, activeId, hint, columns, maxRows, }: ThemePickerProps): React.ReactElement;
56
+ export declare function ThemePicker({ options, selected, activeId, hint, columns, maxRows, filter, }: ThemePickerProps): React.ReactElement;
45
57
  export {};
46
58
  //# sourceMappingURL=theme-picker.d.ts.map
@@ -17,6 +17,7 @@ export interface ConnectionHealthService {
17
17
  required: boolean;
18
18
  mode: string;
19
19
  detail: string;
20
+ versionMismatch?: boolean;
20
21
  ownerPid?: number | undefined;
21
22
  endpoint?: string | undefined;
22
23
  storage?: string | undefined;
@@ -5,8 +5,8 @@ interface ConnectionsSlashDeps {
5
5
  } | undefined;
6
6
  }
7
7
  /**
8
- * TUI `/connections` — panel-first. Bare `/connections` (and `open` / `--open`)
9
- * opens the interactive service health panel and emits nothing to chat history.
8
+ * Bare `/connections` opens the panel; `restart` runs the same daemon actions
9
+ * directly and reports each result in chat.
10
10
  */
11
11
  export declare function createConnectionsSlashCommand(deps: ConnectionsSlashDeps): SlashCommand;
12
12
  export {};
@@ -41,9 +41,9 @@ type HitRegion =
41
41
  };
42
42
  /**
43
43
  * Columns at the right edge of the history viewport reserved for the rail.
44
- * Layout: copy · gap · inspect · selection band · scrollbar track.
44
+ * Layout: copy · gap · inspect · three-cell spacer · selection band · scrollbar track.
45
45
  */
46
- export declare const SCROLLBAR_HIT_WIDTH = 5;
46
+ export declare const SCROLLBAR_HIT_WIDTH = 8;
47
47
  /** Rows available to managed history after reserving the measured bottom UI. */
48
48
  export declare function historyViewportRows(termRows: number, bottomHeight: number): number;
49
49
  /**
@@ -0,0 +1,30 @@
1
+ import type { AppProps } from '../app-props.js';
2
+ /**
3
+ * The prompt the auto-proceed loop sends after a run an API error killed.
4
+ * The run's own work is still in the transcript, so it asks to carry on, not
5
+ * to start over, and to stop rather than guess when it cannot tell where it was.
6
+ */
7
+ export declare const FAILED_RUN_CONTINUE_PROMPT: string;
8
+ export interface FailedRunTracker {
9
+ /** True when the last leader run died on a retryable provider failure. */
10
+ pending(): boolean;
11
+ /** Take the pending failure (the auto-proceed loop is acting on it). */
12
+ consume(): boolean;
13
+ dispose(): void;
14
+ }
15
+ type Events = NonNullable<AppProps['agent']>['events'];
16
+ /**
17
+ * Watches the leader's runs for the one ending auto-proceed can recover: a
18
+ * run that `failed` after a provider call gave up on a *retryable* error
19
+ * (overload, dropped connection, 5xx) — the kind a later attempt usually
20
+ * gets through. A non-retryable failure (bad request, auth, context overflow)
21
+ * would fail the same way again and is never offered. A successful response
22
+ * after the error (the fallback chain found a working model) clears it; so
23
+ * does every new run, manual or automatic.
24
+ *
25
+ * Events carrying another session's id (a subagent on the same bus) are
26
+ * ignored: only the leader's run decides what the leader does next.
27
+ */
28
+ export declare function createFailedRunTracker(events: Events, leaderSessionId: () => string | undefined): FailedRunTracker;
29
+ export {};
30
+ //# sourceMappingURL=failed-run-tracker.d.ts.map
@@ -26,5 +26,14 @@ export interface TuiSlashCommandOptions {
26
26
  switchAutonomy: AppProps['switchAutonomy'];
27
27
  listSessions: AppProps['listSessions'];
28
28
  openPromptPicker: () => Promise<void>;
29
+ /**
30
+ * Live ConfigStore + the persist callback, threaded here so `/theme <preset>`
31
+ * can apply a named preset directly instead of only opening the picker. Both
32
+ * are optional: without them the command still opens the picker, it just
33
+ * cannot persist an immediate apply.
34
+ */
35
+ configStore?: import('@wrongstack/core/types').ConfigStore | undefined;
36
+ saveThemePreset?: AppProps['saveThemePreset'];
37
+ applyThemePreset?: ((preset: import('@wrongstack/core/types').ThemePresetId) => void) | undefined;
29
38
  }
30
39
  //# sourceMappingURL=tui-slash-command-options.d.ts.map
@@ -37,8 +37,9 @@ interface UseAppPickerKeysOptions {
37
37
  statuslineHiddenForPicker: () => StatuslineItem[];
38
38
  onPickerEnter: () => Promise<void>;
39
39
  onThemePickerEnter?: () => void;
40
+ onThemePickerUndo?: () => void;
40
41
  setPromptFavorite: (slug: string, favorite: boolean) => Promise<void>;
41
42
  }
42
- export declare function useAppPickerKeys({ sessionGenerationRef, switchQueueSession, host, state, dispatch, environment, statusbar, panelControllers, authPanelController, brainController, lastEnterAtRef, inputGateRef, submitRef, promptUsageRef, setDraft, acceptSlashPickerSelection, changeBrainRisk, handleModelPicked, handleShadowStart, handleShadowStop, subagentModelsController, statuslineHiddenForPicker, onPickerEnter, onThemePickerEnter, setPromptFavorite, }: UseAppPickerKeysOptions): (input: string, key: import("../components/input.js").KeyEvent, isEnter: boolean) => boolean;
43
+ export declare function useAppPickerKeys({ sessionGenerationRef, switchQueueSession, host, state, dispatch, environment, statusbar, panelControllers, authPanelController, brainController, lastEnterAtRef, inputGateRef, submitRef, promptUsageRef, setDraft, acceptSlashPickerSelection, changeBrainRisk, handleModelPicked, handleShadowStart, handleShadowStop, subagentModelsController, statuslineHiddenForPicker, onPickerEnter, onThemePickerEnter, onThemePickerUndo, setPromptFavorite, }: UseAppPickerKeysOptions): (input: string, key: import("../components/input.js").KeyEvent, isEnter: boolean) => boolean;
43
44
  export {};
44
45
  //# sourceMappingURL=use-app-picker-keys.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { type Dispatch } from 'react';
2
+ import type { Action } from '../app-action-type.js';
3
+ import type { AppProps } from '../app-props.js';
4
+ /**
5
+ * Tells the person when an MCP server is down for good, and when it is back.
6
+ *
7
+ * The model learns about a failed server through its tool list; the person
8
+ * learned nothing — the registry only logged it. Only a `terminal` disconnect
9
+ * is shown: connect attempts or reconnect cycles are exhausted and nothing
10
+ * retries by itself. A stop, an idle sleep or a drop that an automatic
11
+ * reconnect follows stays quiet. Each failure is shown once; the recovery line
12
+ * appears only for a server this bridge reported down.
13
+ */
14
+ export declare function useMcpStatusBridge({ events, dispatch, }: {
15
+ events: AppProps['events'];
16
+ dispatch: Dispatch<Action>;
17
+ }): void;
18
+ //# sourceMappingURL=use-mcp-status-bridge.d.ts.map
@@ -26,15 +26,17 @@ interface AutoProceedCandidateInput {
26
26
  autoSuggestions?: readonly string[] | undefined;
27
27
  yolo?: boolean | undefined;
28
28
  autonomyNextPrompt?: string | undefined;
29
+ /** The last run died on a retryable provider failure (see failed-run-tracker). */
30
+ failedRun?: boolean | undefined;
29
31
  }
30
32
  interface AutoProceedCandidate {
31
- source: 'todo' | 'suggestion' | 'auto-suggestion';
33
+ source: 'todo' | 'suggestion' | 'auto-suggestion' | 'failed-run';
32
34
  prompt: string;
33
35
  label: string;
34
36
  todoId?: string | undefined;
35
37
  }
36
38
  /** Resolve one grounded automatic turn without mutating either suggestion store. */
37
- export declare function selectAutoProceedCandidate({ todos, suggestions, autoSuggestions, yolo, autonomyNextPrompt, }: AutoProceedCandidateInput): AutoProceedCandidate | null;
39
+ export declare function selectAutoProceedCandidate({ todos, suggestions, autoSuggestions, yolo, autonomyNextPrompt, failedRun, }: AutoProceedCandidateInput): AutoProceedCandidate | null;
38
40
  /** Owns grounded next-step countdowns and automatic-turn loop guards. */
39
41
  export declare function useNextStepsAutoSubmit({ state, autonomyLive, agent, getAutonomy, getSettings, getSuggestions, getAutoSuggestions, getYolo, setSuggestions, autonomyNextPrompt, dispatch, clearDraft, runBlocksRef, }: NextStepsAutoSubmitOptions): {
40
42
  nextStepsAutoSubmitCountdown: number | null;
@@ -74,6 +74,11 @@ export interface PickerKeysHost {
74
74
  * leave Enter as a no-op (the picker still navigates, just doesn't apply).
75
75
  */
76
76
  onThemePickerEnter?: (() => void) | undefined;
77
+ /**
78
+ * Restores the preset that was live when the picker opened, keeping the
79
+ * picker open. Optional — omitted hosts leave `u` inert.
80
+ */
81
+ onThemePickerUndo?: (() => void) | undefined;
77
82
  onSlashPickerTab: (() => void) | undefined;
78
83
  }
79
84
  //# sourceMappingURL=use-picker-keys-types.d.ts.map
@@ -27,6 +27,11 @@ export interface ProviderQuotaChip {
27
27
  resetIn?: string | undefined;
28
28
  /** True when this window is the one currently cutting the account off. */
29
29
  reached: boolean;
30
+ /**
31
+ * `1h 40m`, when the pace of the last hour fills the window before it
32
+ * resets. Absent while the plan is not on course to run out.
33
+ */
34
+ exhaustsIn?: string | undefined;
30
35
  }
31
36
  export declare function useProviderQuota(): ProviderQuotaChip | undefined;
32
37
  //# sourceMappingURL=use-provider-quota.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { ConfigStore } from '@wrongstack/core/types';
1
+ import type { ConfigStore, ThemePresetId } from '@wrongstack/core/types';
2
2
  import type { Action } from '../app-reducer.js';
3
3
  import { type ThemeName } from '../theme.js';
4
4
  interface UseThemePickerHandlerOptions {
@@ -6,9 +6,14 @@ interface UseThemePickerHandlerOptions {
6
6
  saveThemePreset?: ((theme: ThemeName) => Promise<void>) | undefined;
7
7
  dispatch: React.Dispatch<Action>;
8
8
  selectedIndex: number;
9
+ /** Active type-to-filter query — `selectedIndex` indexes the FILTERED list. */
10
+ filter?: string | undefined;
11
+ /** Preset that was live when the picker opened — the undo target. */
12
+ previous?: ThemePresetId | undefined;
9
13
  }
10
- export declare function useThemePickerHandler({ configStore, saveThemePreset, dispatch, selectedIndex, }: UseThemePickerHandlerOptions): {
14
+ export declare function useThemePickerHandler({ configStore, saveThemePreset, dispatch, selectedIndex, filter, previous, }: UseThemePickerHandlerOptions): {
11
15
  onThemePickerEnter: () => void;
16
+ onThemePickerUndo: () => void;
12
17
  };
13
18
  export {};
14
19
  //# sourceMappingURL=use-theme-picker-handler.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import type { TuiSlashCommandOptions } from './tui-slash-command-options.js';
2
2
  export type { TuiSlashCommandOptions } from './tui-slash-command-options.js';
3
3
  /** Registers TUI-owned slash commands and releases them on dependency changes. */
4
- 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, }: TuiSlashCommandOptions): void;
4
+ 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
5
  //# sourceMappingURL=use-tui-slash-commands.d.ts.map