@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.
- package/dist/app-action-type.d.ts +14 -0
- package/dist/app-panel-state.d.ts +24 -0
- package/dist/app-settings-type.d.ts +1 -0
- package/dist/components/history/scrollbar-rail.d.ts +1 -1
- package/dist/components/settings-picker.d.ts +2 -1
- package/dist/components/status-bar-types.d.ts +13 -0
- package/dist/components/status-bar.d.ts +1 -1
- package/dist/components/theme-picker.d.ts +19 -7
- package/dist/connections-health.d.ts +1 -0
- package/dist/connections-slash.d.ts +2 -2
- package/dist/hit-test.d.ts +2 -2
- package/dist/hooks/failed-run-tracker.d.ts +30 -0
- package/dist/hooks/tui-slash-command-options.d.ts +9 -0
- package/dist/hooks/use-app-picker-keys.d.ts +2 -1
- package/dist/hooks/use-mcp-status-bridge.d.ts +18 -0
- package/dist/hooks/use-next-steps-auto-submit.d.ts +4 -2
- package/dist/hooks/use-picker-keys-types.d.ts +5 -0
- package/dist/hooks/use-provider-quota.d.ts +5 -0
- package/dist/hooks/use-theme-picker-handler.d.ts +7 -2
- package/dist/hooks/use-tui-slash-commands.d.ts +1 -1
- package/dist/index.js +2177 -1919
- package/dist/input-validation/action-types.d.ts +1 -1
- package/dist/reducers/composer-action-types.d.ts +1 -1
- package/dist/settings-contracts.d.ts +1 -0
- package/dist/theme-picker-rows.d.ts +70 -0
- package/dist/theme-presets/options.d.ts +13 -1
- package/dist/theme-presets/rose-pine.d.ts +1 -1
- package/dist/theme-types.d.ts +6 -0
- package/dist/theme-utils.d.ts +11 -0
- package/dist/use-controller-key-pipeline.d.ts +2 -1
- package/package.json +7 -7
|
@@ -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 +
|
|
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
|
|
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
|
-
*
|
|
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
|
|
@@ -5,8 +5,8 @@ interface ConnectionsSlashDeps {
|
|
|
5
5
|
} | undefined;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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 {};
|
package/dist/hit-test.d.ts
CHANGED
|
@@ -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 =
|
|
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
|