@wrongstack/tui 0.306.0 → 0.306.3
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 +31 -2
- package/dist/app-props.d.ts +6 -2
- package/dist/app-settings-type.d.ts +6 -0
- package/dist/app-state.d.ts +19 -2
- package/dist/app-view-contract.d.ts +6 -0
- package/dist/components/cron-jobs.d.ts +2 -1
- package/dist/components/history/assistant.d.ts +9 -1
- package/dist/components/history/code-block.d.ts +8 -1
- package/dist/components/history/tool-group.d.ts +10 -1
- package/dist/components/model-picker.d.ts +17 -1
- package/dist/components/prompt-picker.d.ts +3 -1
- package/dist/components/resource-menu.d.ts +16 -0
- package/dist/components/skill-picker.d.ts +12 -0
- package/dist/components/theme-picker.d.ts +25 -1
- package/dist/components/theme-preview.d.ts +39 -0
- package/dist/hooks/use-app-picker-keys.d.ts +2 -1
- package/dist/hooks/use-file-search.d.ts +5 -0
- package/dist/hooks/use-history-archive.d.ts +30 -0
- package/dist/hooks/use-history-viewport-sync.d.ts +10 -0
- package/dist/hooks/use-mouse-tracking.d.ts +3 -0
- package/dist/hooks/use-picker-keys-types.d.ts +2 -0
- package/dist/hooks/use-prompt-picker.d.ts +2 -1
- package/dist/hooks/use-tui-slash-commands.d.ts +4 -1
- package/dist/hooks/use-windowed-picker.d.ts +35 -5
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2916 -1466
- package/dist/input-validation/action-types.d.ts +1 -1
- package/dist/markdown.d.ts +10 -1
- package/dist/mouse.d.ts +37 -0
- package/dist/reducers/composer.d.ts +1 -1
- package/dist/reducers/helpers.d.ts +1 -1
- package/dist/run-tui-options.d.ts +5 -1
- package/dist/slash-command-lifecycle.d.ts +17 -0
- package/dist/submit-controller.d.ts +3 -0
- package/dist/ui-contracts.d.ts +34 -0
- package/package.json +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** Known reducer action types — exact, compile-time checked allow-list. */
|
|
2
|
-
export declare const ALLOWED_ACTION_TYPES: readonly ["addEntry", "archiveLoaded", "startArchiveLoad", "authBusy", "authCatalog", "authClose", "authConfirmEnd", "authConfirmStart", "authFilter", "authFlowDone", "authFlowLog", "authFlowStart", "authHint", "authMove", "authOpen", "authPromptChange", "authPromptEnd", "authPromptStart", "authProviders", "authView", "autonomyPickerClose", "autonomyPickerHint", "autonomyPickerMove", "autonomyPickerOpen", "brainBusy", "brainClose", "brainHint", "brainMove", "brainOpen", "brainPromptClear", "brainPromptSet", "brainRiskChange", "brainRowMove", "brainSetLog", "brainSettingsLoaded", "brainStatus", "brainView", "checkpointReceived", "clearConfirmClose", "clearConfirmOpen", "clearConfirmSetValue", "clearHistory", "clearInput", "clearInputHistory", "closeAllPanels", "collabBugFound", "collabEvalComplete", "sidebarScroll", "sidebarScrollReset", "toggleSidebarFocus", "collabPlanEmitted", "collabSessionDone", "collabSubagentSpawned", "compactHistory", "confirmClearAll", "confirmClose", "confirmOpen", "continueConfirmClose", "continueConfirmOpen", "copiedNotice", "coordinatorEvent", "countdownEnded", "countdownTick", "debugStreamStats", "debugStreamStatsClear", "dequeueFirst", "designPickerClose", "designPickerMove", "designPickerOpen", "designPickerStack", "enhanceBusy", "enhanceClose", "enhanceOpen", "enhanceSet", "enqueue", "escConfirmClose", "escConfirmOpen", "fallbackOverlayClose", "fallbackOverlayMove", "fallbackOverlayOpen", "eternalStage", "exitConfirmClose", "exitConfirmOpen", "fKeyPickerClose", "fKeyPickerMove", "fKeyPickerOpen", "fleetBatch", "fleetBudgetExtended", "fleetBudgetWarning", "fleetConcurrency", "fleetCost", "fleetCtxPct", "fleetDelta", "fleetDone", "fleetMessage", "fleetRemove", "fleetSeed", "fleetSpawn", "fleetStart", "fleetTool", "fleetToolEnd", "fleetToolStart", "fleetUsage", "goalRunElapsed", "goalRunInit", "goalRunMonitorToggle", "goalRunPhaseUpdate", "goalRunReset", "goalRunRunningPhases", "goalRunTaskActive", "goalSummary", "helpClose", "helpFilter", "helpHint", "helpMove", "helpOpen", "hint", "historyDown", "historyPush", "historyUp", "interrupt", "leaderCtxPct", "leaderIterEnd", "leaderIterStart", "leaderToolEnd", "leaderToolStart", "mcpPickerBusy", "mcpPickerClose", "mcpPickerHint", "mcpPickerMove", "mcpPickerOpen", "mcpPickerSetItems", "modePickerClose", "modePickerHint", "modePickerMove", "modePickerOpen", "modelPickerBack", "modelPickerClose", "modelPickerHint", "modelPickerMove", "modelPickerOpen", "modelPickerPickProvider", "modelPickerSearch", "pickerClose", "pickerMove", "pickerOpen", "pickerSetMatches", "pluginPickerBusy", "pluginPickerClose", "pluginPickerHint", "pluginPickerMove", "pluginPickerOpen", "pluginPickerSetItems", "projectPickerClose", "projectPickerFilter", "projectPickerHint", "projectPickerMove", "projectPickerOpen", "promptPickerCategory", "promptPickerClose", "promptPickerMove", "promptPickerOpen", "queueClear", "queueDelete", "queueToggleRefine", "refineCountdownClose", "refineCountdownOpen", "refineFailureClose", "refineFailureOpen", "replaceHistory", "resetContextChip", "resetInterrupts", "resumePickerBusy", "resumePickerClose", "resumePickerError", "resumePickerHint", "resumePickerMove", "resumePickerOpen", "rewindOverlayClose", "rewindOverlayMove", "rewindOverlayOpen", "sddBoardSnapshot", "sddBoardFocusNext", "sddBoardFocusPrev", "sendModePickerClose", "sendModePickerMove", "sendModePickerOpen", "sessionResumeConfirmClear", "sessionResumeConfirmSet", "sessionRewound", "sessionsPanelBusy", "sessionsPanelMove", "sessionsPanelSet", "setBuffer", "setFleetChat", "setHistoryScrolled", "setInputHistory", "setViewportRows", "settingsClose", "settingsFieldMove", "settingsFieldSet", "settingsFilterSet", "settingsHint", "settingsOpen", "settingsThinkingEditCancel", "settingsThinkingEditChange", "settingsThinkingEditCommit", "settingsThinkingEditStart", "settingsValueChange", "settingsValueSet", "shadowClose", "shadowHint", "shadowOpen", "shadowUpdate", "shellCommandWarningClose", "shellCommandWarningOpen", "slashConfirmClose", "slashConfirmOpen", "slashPickerClose", "slashPickerMove", "slashPickerOpen", "status", "statuslineChipExpire", "statuslineChipShow", "statuslineClose", "statuslineFieldMove", "statuslineFieldSet", "statuslineHint", "statuslineOpen", "statuslineToggle", "statuslineVisibleChipsSync", "steerConsume", "steerStart", "streamDelta", "streamReset", "themePickerClose", "themePickerHint", "themePickerMove", "themePickerOpen", "toggleAgentsMonitor", "toggleAuditPanel", "toggleContextPanel", "toggleConnectionsPanel", "toggleCoordinatorMonitor", "toggleCronMonitor", "toggleGoalKanbanPanel", "toggleGoalPanel", "toggleHelp", "toggleKanbanPanel", "toggleMonitor", "togglePlanPanel", "toggleProcessList", "toggleQueuePanel", "toggleSddBoardMonitor", "toggleSessionsPanel", "toggleTodosMonitor", "toggleWorktreeMonitor", "toolEnded", "toolStarted", "toolStreamAppend", "toolStreamClear", "topicCheckBusy", "toolsPickerBusy", "toolsPickerClose", "toolsPickerFilter", "toolsPickerHint", "toolsPickerMove", "toolsPickerOpen", "toolsPickerSetItems", "toolsPickerToggle", "worktreeRemove", "worktreeUpsert"];
|
|
2
|
+
export declare const ALLOWED_ACTION_TYPES: readonly ["addEntry", "archiveLoaded", "startArchiveLoad", "authBusy", "authCatalog", "authClose", "authConfirmEnd", "authConfirmStart", "authFilter", "authFlowDone", "authFlowLog", "authFlowStart", "authHint", "authMove", "authOpen", "authPromptChange", "authPromptEnd", "authPromptStart", "authProviders", "authView", "autonomyPickerClose", "autonomyPickerHint", "autonomyPickerMove", "autonomyPickerOpen", "brainBusy", "brainClose", "brainHint", "brainMove", "brainOpen", "brainPromptClear", "brainPromptSet", "brainRiskChange", "brainRowMove", "brainSetLog", "brainSettingsLoaded", "brainStatus", "brainView", "checkpointReceived", "clearConfirmClose", "clearConfirmOpen", "clearConfirmSetValue", "clearHistory", "clearInput", "clearInputHistory", "closeAllPanels", "collabBugFound", "collabEvalComplete", "sidebarScroll", "sidebarScrollReset", "toggleSidebarFocus", "skillPickerClose", "skillPickerHint", "skillPickerMove", "skillPickerOpen", "resourceMenuClose", "resourceMenuConfirm", "resourceMenuFilter", "resourceMenuHint", "resourceMenuMove", "resourceMenuOpen", "collabPlanEmitted", "collabSessionDone", "collabSubagentSpawned", "compactHistory", "confirmClearAll", "confirmClose", "confirmOpen", "continueConfirmClose", "continueConfirmOpen", "copiedNotice", "coordinatorEvent", "countdownEnded", "countdownTick", "debugStreamStats", "debugStreamStatsClear", "dequeueFirst", "designPickerClose", "designPickerMove", "designPickerOpen", "designPickerStack", "enhanceBusy", "enhanceClose", "enhanceOpen", "enhanceSet", "enqueue", "escConfirmClose", "escConfirmOpen", "fallbackOverlayClose", "fallbackOverlayMove", "fallbackOverlayOpen", "eternalStage", "exitConfirmClose", "exitConfirmOpen", "fKeyPickerClose", "fKeyPickerMove", "fKeyPickerOpen", "fleetBatch", "fleetBudgetExtended", "fleetBudgetWarning", "fleetConcurrency", "fleetCost", "fleetCtxPct", "fleetDelta", "fleetDone", "fleetMessage", "fleetRemove", "fleetSeed", "fleetSpawn", "fleetStart", "fleetTool", "fleetToolEnd", "fleetToolStart", "fleetUsage", "goalRunElapsed", "goalRunInit", "goalRunMonitorToggle", "goalRunPhaseUpdate", "goalRunReset", "goalRunRunningPhases", "goalRunTaskActive", "goalSummary", "helpClose", "helpFilter", "helpHint", "helpMove", "helpOpen", "hint", "historyDown", "historyPush", "historyUp", "interrupt", "leaderCtxPct", "leaderIterEnd", "leaderIterStart", "leaderToolEnd", "leaderToolStart", "mcpPickerBusy", "mcpPickerClose", "mcpPickerHint", "mcpPickerMove", "mcpPickerOpen", "mcpPickerSetItems", "modePickerClose", "modePickerHint", "modePickerMove", "modePickerOpen", "modelPickerBack", "modelPickerClose", "modelPickerHint", "modelPickerMove", "modelPickerOpen", "modelPickerPickProvider", "modelPickerSearch", "pickerClose", "pickerMove", "pickerOpen", "pickerSetMatches", "pluginPickerBusy", "pluginPickerClose", "pluginPickerHint", "pluginPickerMove", "pluginPickerOpen", "pluginPickerSetItems", "projectPickerClose", "projectPickerFilter", "projectPickerHint", "projectPickerMove", "projectPickerOpen", "promptPickerCategory", "promptPickerClose", "promptPickerMove", "promptPickerOpen", "queueClear", "queueDelete", "queueToggleRefine", "refineCountdownClose", "refineCountdownOpen", "refineFailureClose", "refineFailureOpen", "replaceHistory", "resetContextChip", "resetInterrupts", "resumePickerBusy", "resumePickerClose", "resumePickerError", "resumePickerHint", "resumePickerMove", "resumePickerOpen", "rewindOverlayClose", "rewindOverlayMove", "rewindOverlayOpen", "sddBoardSnapshot", "sddBoardFocusNext", "sddBoardFocusPrev", "sendModePickerClose", "sendModePickerMove", "sendModePickerOpen", "sessionResumeConfirmClear", "sessionResumeConfirmSet", "sessionRewound", "sessionsPanelBusy", "sessionsPanelMove", "sessionsPanelSet", "setBuffer", "setFleetChat", "setHistoryScrolled", "setInputHistory", "setViewportRows", "settingsClose", "settingsFieldMove", "settingsFieldSet", "settingsFilterSet", "settingsHint", "settingsOpen", "settingsThinkingEditCancel", "settingsThinkingEditChange", "settingsThinkingEditCommit", "settingsThinkingEditStart", "settingsValueChange", "settingsValueSet", "shadowClose", "shadowHint", "shadowOpen", "shadowUpdate", "shellCommandWarningClose", "shellCommandWarningOpen", "slashConfirmClose", "slashConfirmOpen", "slashPickerClose", "slashPickerMove", "slashPickerOpen", "status", "statuslineChipExpire", "statuslineChipShow", "statuslineClose", "statuslineFieldMove", "statuslineFieldSet", "statuslineHint", "statuslineOpen", "statuslineToggle", "statuslineVisibleChipsSync", "steerConsume", "steerStart", "streamDelta", "streamReset", "themePickerClose", "themePickerHint", "themePickerMove", "themePickerOpen", "toggleAgentsMonitor", "toggleAuditPanel", "toggleContextPanel", "toggleConnectionsPanel", "toggleCoordinatorMonitor", "toggleCronMonitor", "toggleGoalKanbanPanel", "toggleGoalPanel", "toggleHelp", "toggleKanbanPanel", "toggleMonitor", "togglePlanPanel", "toggleProcessList", "toggleQueuePanel", "toggleSddBoardMonitor", "toggleSessionsPanel", "toggleTodosMonitor", "toggleWorktreeMonitor", "toolEnded", "toolStarted", "toolStreamAppend", "toolStreamClear", "topicCheckBusy", "toolsPickerBusy", "toolsPickerClose", "toolsPickerFilter", "toolsPickerHint", "toolsPickerMove", "toolsPickerOpen", "toolsPickerSetItems", "toolsPickerToggle", "worktreeRemove", "worktreeUpsert"];
|
|
3
3
|
export type AllowedActionType = (typeof ALLOWED_ACTION_TYPES)[number];
|
|
4
4
|
//# sourceMappingURL=action-types.d.ts.map
|
package/dist/markdown.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare function parseInline(text: string): InlineToken[];
|
|
|
29
29
|
* background so any empty space on the right of a narrow table is filled
|
|
30
30
|
* with the panel background rather than showing the terminal background.
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
declare function MarkdownViewImpl({ text, termWidth, contentWidth, tableWidth, }: {
|
|
33
33
|
text: string;
|
|
34
34
|
termWidth: number;
|
|
35
35
|
/** Real inner width of the surrounding panel. Defaults to `termWidth`. */
|
|
@@ -37,4 +37,13 @@ export declare function MarkdownView({ text, termWidth, contentWidth, tableWidth
|
|
|
37
37
|
/** Width available for tables. Defaults to `contentWidth ?? termWidth`. */
|
|
38
38
|
tableWidth?: number | undefined;
|
|
39
39
|
}): React.ReactElement;
|
|
40
|
+
/**
|
|
41
|
+
* Markdown renderer.
|
|
42
|
+
*
|
|
43
|
+
* Memoized: re-parsing prose on every streamed chunk was the bulk of the
|
|
44
|
+
* per-frame cost for long answers. Only the segment whose text changed is
|
|
45
|
+
* re-parsed now.
|
|
46
|
+
*/
|
|
47
|
+
export declare const MarkdownView: React.MemoExoticComponent<typeof MarkdownViewImpl>;
|
|
48
|
+
export {};
|
|
40
49
|
//# sourceMappingURL=markdown.d.ts.map
|
package/dist/mouse.d.ts
CHANGED
|
@@ -38,6 +38,20 @@ export interface MouseTrackingPolicy {
|
|
|
38
38
|
* scrollback cannot move virtualized content.
|
|
39
39
|
*/
|
|
40
40
|
managedHistory: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The user explicitly handed the mouse back to the terminal (`/mouse native`).
|
|
43
|
+
*
|
|
44
|
+
* This is the ONLY input that can defeat `managedHistory`, and it exists
|
|
45
|
+
* because nothing else could: with tracking on, the terminal reports the
|
|
46
|
+
* wheel to us instead of scrolling, which also means it never starts a
|
|
47
|
+
* native selection — so there was no way to select and copy transcript text
|
|
48
|
+
* with the mouse at all. Native mode trades in-app wheel scrolling (PgUp/
|
|
49
|
+
* PgDn and Ctrl+U/D still page) for that selection.
|
|
50
|
+
*
|
|
51
|
+
* It outranks `overlayOpen` too: letting a picker silently re-grab the mouse
|
|
52
|
+
* would cancel an in-progress drag-selection.
|
|
53
|
+
*/
|
|
54
|
+
native?: boolean | undefined;
|
|
41
55
|
/** Startup terminal capability probe. Undefined keeps legacy callers enabled. */
|
|
42
56
|
protocol?: 'none' | 'x10' | 'urxvt' | 'sgr' | undefined;
|
|
43
57
|
}
|
|
@@ -81,6 +95,29 @@ export declare function parseMouseEvent(data: string): MouseEventInfo | null;
|
|
|
81
95
|
* data contains no report.
|
|
82
96
|
*/
|
|
83
97
|
export declare function parseMouseEvents(data: string): MouseEventInfo[];
|
|
98
|
+
/**
|
|
99
|
+
* Longest tail of `data` that is an SGR report the terminal has only partially
|
|
100
|
+
* delivered, split off so the caller can carry it into the next chunk.
|
|
101
|
+
*
|
|
102
|
+
* A report is `ESC [ < b ; x ; y (M|m)` — up to ~18 bytes, and stdin makes no
|
|
103
|
+
* promise about chunk boundaries. A fast drag or a wheel burst readily splits
|
|
104
|
+
* one across two `data` events, and {@link parseMouseEvents} (which scans a
|
|
105
|
+
* single chunk) then matches NEITHER half: the gesture is silently dropped and
|
|
106
|
+
* the leading half falls through to the key parsers as garbage.
|
|
107
|
+
*
|
|
108
|
+
* Only the unambiguous case is held back: a trailing `ESC [ <` with no `M`/`m`
|
|
109
|
+
* terminator after it. A bare trailing `ESC` or `ESC [` is deliberately NOT
|
|
110
|
+
* buffered — a lone `ESC` is how the Esc KEY arrives, and swallowing it would
|
|
111
|
+
* break the Esc ladder outright.
|
|
112
|
+
*
|
|
113
|
+
* The carry is capped: past {@link MAX_PARTIAL_MOUSE} bytes the tail cannot be
|
|
114
|
+
* a real report any more (a malformed or hostile stream), so it is released as
|
|
115
|
+
* ordinary data rather than accumulating forever.
|
|
116
|
+
*/
|
|
117
|
+
export declare function splitTrailingMousePartial(data: string): {
|
|
118
|
+
consumed: string;
|
|
119
|
+
pending: string;
|
|
120
|
+
};
|
|
84
121
|
/**
|
|
85
122
|
* True when `input` (Ink's already-ESC-stripped text) is a leaked mouse report.
|
|
86
123
|
* The input layer drops these so they never land in the buffer as typed text.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Action } from '../app-action-type.js';
|
|
2
2
|
import type { State } from '../app-state.js';
|
|
3
|
-
declare const composerActionTypes: readonly ["brainPromptSet", "brainPromptClear", "pickerOpen", "pickerClose", "pickerSetMatches", "pickerMove", "toolStarted", "toolEnded", "toolStreamAppend", "toolStreamClear", "enqueue", "dequeueFirst", "queueClear", "queueDelete", "queueToggleRefine", "slashPickerOpen", "slashPickerClose", "slashPickerMove", "historyPush", "historyUp", "historyDown", "setInputHistory", "clearInputHistory", "modelPickerOpen", "modelPickerClose", "modelPickerMove", "modelPickerPickProvider", "modelPickerBack", "modelPickerSearch", "modelPickerHint", "autonomyPickerOpen", "autonomyPickerClose", "autonomyPickerMove", "autonomyPickerHint", "themePickerOpen", "themePickerClose", "themePickerMove", "themePickerHint", "modePickerOpen", "modePickerClose", "modePickerMove", "modePickerHint", "designPickerOpen", "designPickerClose", "designPickerMove", "designPickerStack", "promptPickerOpen", "promptPickerClose", "promptPickerMove", "promptPickerCategory", "resumePickerOpen", "resumePickerClose", "resumePickerMove", "resumePickerBusy", "resumePickerHint", "resumePickerError", "replaceHistory"];
|
|
3
|
+
declare const composerActionTypes: readonly ["brainPromptSet", "brainPromptClear", "pickerOpen", "pickerClose", "pickerSetMatches", "pickerMove", "toolStarted", "toolEnded", "toolStreamAppend", "toolStreamClear", "enqueue", "dequeueFirst", "queueClear", "queueDelete", "queueToggleRefine", "slashPickerOpen", "slashPickerClose", "slashPickerMove", "historyPush", "historyUp", "historyDown", "setInputHistory", "clearInputHistory", "modelPickerOpen", "modelPickerClose", "modelPickerMove", "modelPickerPickProvider", "modelPickerBack", "modelPickerSearch", "modelPickerHint", "autonomyPickerOpen", "autonomyPickerClose", "autonomyPickerMove", "autonomyPickerHint", "themePickerOpen", "themePickerClose", "themePickerMove", "themePickerHint", "modePickerOpen", "modePickerClose", "modePickerMove", "modePickerHint", "skillPickerOpen", "skillPickerClose", "skillPickerMove", "skillPickerHint", "resourceMenuOpen", "resourceMenuClose", "resourceMenuMove", "resourceMenuHint", "resourceMenuFilter", "resourceMenuConfirm", "designPickerOpen", "designPickerClose", "designPickerMove", "designPickerStack", "promptPickerOpen", "promptPickerClose", "promptPickerMove", "promptPickerCategory", "resumePickerOpen", "resumePickerClose", "resumePickerMove", "resumePickerBusy", "resumePickerHint", "resumePickerError", "replaceHistory"];
|
|
4
4
|
type ComposerAction = Extract<Action, {
|
|
5
5
|
type: (typeof composerActionTypes)[number];
|
|
6
6
|
}>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { State } from '../app-state.js';
|
|
2
2
|
import type { ProjectPickerItem } from '../ui-contracts.js';
|
|
3
|
-
type PanelResetState = Pick<State, 'monitorOpen' | 'agentsMonitorOpen' | 'helpOpen' | 'todosMonitorOpen' | 'queuePanelOpen' | 'processListOpen' | 'cronMonitorOpen' | 'auditPanelOpen' | 'planPanelOpen' | 'kanbanPanelOpen' | 'goalPanelOpen' | 'goalKanbanPanelOpen' | 'contextPanelOpen' | 'connectionsPanelOpen' | 'sessionsPanelOpen' | 'sidebarFocused' | 'settingsPicker' | 'statuslinePicker' | 'pluginPicker' | 'mcpPicker' | 'toolsPicker' | 'brainPanel' | 'helpPanel' | 'shadowPanel' | 'authPanel' | 'projectPicker' | 'fKeyPicker' | 'goalRun' | 'sddBoard' | 'worktreeMonitorOpen' | 'coordinator' | 'themePicker'>;
|
|
3
|
+
type PanelResetState = Pick<State, 'monitorOpen' | 'agentsMonitorOpen' | 'helpOpen' | 'todosMonitorOpen' | 'queuePanelOpen' | 'processListOpen' | 'cronMonitorOpen' | 'auditPanelOpen' | 'planPanelOpen' | 'kanbanPanelOpen' | 'goalPanelOpen' | 'goalKanbanPanelOpen' | 'contextPanelOpen' | 'connectionsPanelOpen' | 'sessionsPanelOpen' | 'sidebarFocused' | 'settingsPicker' | 'statuslinePicker' | 'pluginPicker' | 'mcpPicker' | 'toolsPicker' | 'brainPanel' | 'helpPanel' | 'shadowPanel' | 'authPanel' | 'projectPicker' | 'fKeyPicker' | 'goalRun' | 'sddBoard' | 'worktreeMonitorOpen' | 'coordinator' | 'themePicker' | 'skillPicker' | 'resourceMenu'>;
|
|
4
4
|
export declare function closePanels(state: State): PanelResetState;
|
|
5
5
|
export declare function clampContextLoad(load: number): number;
|
|
6
6
|
/** Upper bound on the live tool-stream text retained in state. */
|
|
@@ -3,7 +3,7 @@ import type { AutonomousCoordinator, CoordinatorEvent, Director } from '@wrongst
|
|
|
3
3
|
import type { EventBus } from '@wrongstack/core/kernel';
|
|
4
4
|
import type { SlashCommandRegistry } from '@wrongstack/core/registry';
|
|
5
5
|
import type { QueueStore } from '@wrongstack/core/storage';
|
|
6
|
-
import type { AttachmentStore, AutonomyStage, ConfigStore, ContextSnapshot, FleetChatVerbosity, Message, ThemePresetId, TokenCounter, TokenSavingTier } from '@wrongstack/core/types';
|
|
6
|
+
import type { AttachmentStore, AutonomyStage, ConfigStore, ContextSnapshot, FleetChatVerbosity, Message, SkillLoader, ThemePresetId, TokenCounter, TokenSavingTier } from '@wrongstack/core/types';
|
|
7
7
|
import type { VisionAdapters } from '@wrongstack/runtime/vision';
|
|
8
8
|
import type { SddLifecycleResult, SddRunControl } from '@wrongstack/sdd';
|
|
9
9
|
import type { AgentTranscriptReader } from './components/agents-monitor.js';
|
|
@@ -11,9 +11,13 @@ import type { McpPickerItem } from './components/mcp-picker.js';
|
|
|
11
11
|
import type { PluginPickerItem } from './components/plugin-picker.js';
|
|
12
12
|
import type { StatuslineItem } from './components/statusline-picker.js';
|
|
13
13
|
import type { ToolPickerItem } from './components/tools-picker.js';
|
|
14
|
+
import type { ResourceMenuId, ResourceMenuSnapshot } from './ui-contracts.js';
|
|
14
15
|
export interface RunTuiOptions {
|
|
15
16
|
agent: Agent;
|
|
16
17
|
slashRegistry: SlashCommandRegistry;
|
|
18
|
+
/** Shared loader used by the interactive `/skill` browser. */
|
|
19
|
+
skillLoader?: SkillLoader | undefined;
|
|
20
|
+
getResourceMenu?: ((id: ResourceMenuId) => Promise<ResourceMenuSnapshot>) | undefined;
|
|
17
21
|
/** Host-owned mutable bridge for slash commands that need masked input. */
|
|
18
22
|
secretInputController?: {
|
|
19
23
|
readSecret(prompt: string): Promise<string>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SlashCommandRegistry } from '@wrongstack/core/registry';
|
|
2
|
+
import type { SlashCommand } from '@wrongstack/core/types';
|
|
3
|
+
export interface SlashCommandRegistrationOptions {
|
|
4
|
+
owner?: string | undefined;
|
|
5
|
+
official?: boolean | undefined;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Register a slash command and return an ownership-safe teardown callback.
|
|
9
|
+
*
|
|
10
|
+
* The shared registry uses last-write-wins for official commands and removes
|
|
11
|
+
* every alias/namespace for the selected command on unregister. React effects
|
|
12
|
+
* therefore cannot safely pair `register()` with a bare `unregister(name)`:
|
|
13
|
+
* registration may have been a no-op, or it may have replaced a canonical
|
|
14
|
+
* host command that must become visible again after the TUI unmounts.
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerSlashCommandLifecycle(registry: SlashCommandRegistry, command: SlashCommand, options?: SlashCommandRegistrationOptions): () => void;
|
|
17
|
+
//# sourceMappingURL=slash-command-lifecycle.d.ts.map
|
|
@@ -11,6 +11,8 @@ export interface SubmitControllerHost {
|
|
|
11
11
|
readonly state: State;
|
|
12
12
|
readonly live: {
|
|
13
13
|
readonly mouseMode: boolean;
|
|
14
|
+
/** Mouse tracking released to the terminal (`/mouse native`). */
|
|
15
|
+
readonly nativeMouse: boolean;
|
|
14
16
|
readonly model: string;
|
|
15
17
|
readonly provider: string;
|
|
16
18
|
readonly maxContext: number | undefined;
|
|
@@ -18,6 +20,7 @@ export interface SubmitControllerHost {
|
|
|
18
20
|
readonly autonomy: 'off' | 'suggest' | 'auto' | 'eternal' | 'eternal-parallel';
|
|
19
21
|
readonly modeLabel: string | undefined;
|
|
20
22
|
setMouseMode(value: boolean): void;
|
|
23
|
+
setNativeMouse(value: boolean): void;
|
|
21
24
|
setModel(value: string): void;
|
|
22
25
|
setProvider(value: string): void;
|
|
23
26
|
setMaxContext(value: number): void;
|
package/dist/ui-contracts.d.ts
CHANGED
|
@@ -9,6 +9,12 @@ import type { StatuslineItem as StatuslineItemSource } from './components/status
|
|
|
9
9
|
* rendered layout.
|
|
10
10
|
*/
|
|
11
11
|
export declare const SIDEBAR_MISSION_ROWS = 8;
|
|
12
|
+
/**
|
|
13
|
+
* Maximum outer height of the /settings picker, including its border. Small
|
|
14
|
+
* terminals still use their smaller available-height budget; large terminals
|
|
15
|
+
* stop growing here instead of allowing the picker to fill the screen.
|
|
16
|
+
*/
|
|
17
|
+
export declare const SETTINGS_PICKER_MAX_HEIGHT = 24;
|
|
12
18
|
/**
|
|
13
19
|
* Field index where the per-panel-position rows begin. The first 46
|
|
14
20
|
* indices (0–45) are the legacy auto-rebuilt Settings surface; rows 46+
|
|
@@ -154,6 +160,34 @@ export interface PromptPickEntry {
|
|
|
154
160
|
content: string;
|
|
155
161
|
favorite: boolean;
|
|
156
162
|
}
|
|
163
|
+
export type ResourceMenuId = 'fallback' | 'profile' | 'provider-status' | 'memory' | 'worktree' | 'git';
|
|
164
|
+
export interface ResourceMenuDetail {
|
|
165
|
+
label: string;
|
|
166
|
+
value: string;
|
|
167
|
+
}
|
|
168
|
+
export interface ResourceMenuAction {
|
|
169
|
+
key: string;
|
|
170
|
+
label: string;
|
|
171
|
+
command: string;
|
|
172
|
+
/** Destructive or session-changing actions require a second y/n keypress. */
|
|
173
|
+
confirm?: boolean | undefined;
|
|
174
|
+
}
|
|
175
|
+
export interface ResourceMenuItem {
|
|
176
|
+
id: string;
|
|
177
|
+
label: string;
|
|
178
|
+
status?: 'good' | 'warn' | 'bad' | 'muted' | undefined;
|
|
179
|
+
summary?: string | undefined;
|
|
180
|
+
details: ResourceMenuDetail[];
|
|
181
|
+
body?: string | undefined;
|
|
182
|
+
actions?: ResourceMenuAction[] | undefined;
|
|
183
|
+
}
|
|
184
|
+
export interface ResourceMenuSnapshot {
|
|
185
|
+
id: ResourceMenuId;
|
|
186
|
+
title: string;
|
|
187
|
+
subtitle?: string | undefined;
|
|
188
|
+
emptyText?: string | undefined;
|
|
189
|
+
items: ResourceMenuItem[];
|
|
190
|
+
}
|
|
157
191
|
export type SendMode = 'queue' | 'btw' | 'steer';
|
|
158
192
|
export type StatuslineItem = StatuslineItemSource;
|
|
159
193
|
export interface ChipMeta {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/tui",
|
|
3
|
-
"version": "0.306.
|
|
3
|
+
"version": "0.306.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "WrongStack terminal UI: Ink-based interactive renderer with history, pickers, and slash menus.",
|
|
6
6
|
"repository": {
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"ink": "7.1.1",
|
|
30
30
|
"react": "^19.2.8",
|
|
31
31
|
"string-width": "8.2.2",
|
|
32
|
-
"@wrongstack/
|
|
33
|
-
"@wrongstack/
|
|
34
|
-
"@wrongstack/
|
|
35
|
-
"@wrongstack/
|
|
36
|
-
"@wrongstack/sdd": "0.306.
|
|
37
|
-
"@wrongstack/
|
|
32
|
+
"@wrongstack/core": "0.306.3",
|
|
33
|
+
"@wrongstack/runtime": "0.306.3",
|
|
34
|
+
"@wrongstack/sage": "0.306.3",
|
|
35
|
+
"@wrongstack/kanban": "0.306.3",
|
|
36
|
+
"@wrongstack/sdd": "0.306.3",
|
|
37
|
+
"@wrongstack/tools": "0.306.3"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@testing-library/dom": "^10.4.1",
|