@wrongstack/tui 1.0.35 → 1.0.37
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-services.d.ts +3 -0
- package/dist/app-action-settings.d.ts +2 -0
- package/dist/app-panel-state.d.ts +5 -0
- package/dist/app-settings-props.d.ts +11 -0
- package/dist/app-settings-type.d.ts +4 -0
- package/dist/browser-access-hint.d.ts +4 -0
- package/dist/components/mcp-picker.d.ts +6 -1
- package/dist/components/settings-picker-constants.d.ts +8 -1
- package/dist/components/settings-picker-props.d.ts +4 -0
- package/dist/components/settings-picker.d.ts +1 -1
- package/dist/components/sidebar-panels-workspace.d.ts +3 -3
- package/dist/controller-props.d.ts +5 -0
- package/dist/history-archive.d.ts +3 -0
- package/dist/hooks/use-app-pipeline-builders.d.ts +1 -0
- package/dist/hooks/use-panel-controllers.d.ts +3 -1
- package/dist/hooks/use-picker-keys-types.d.ts +1 -0
- package/dist/index.js +553 -233
- package/dist/input-validation/action-types.d.ts +1 -1
- package/dist/key-handler-context.d.ts +7 -1
- package/dist/reducers/panel-pickers.d.ts +1 -1
- package/dist/run-tui-options.d.ts +11 -0
- package/dist/settings-contracts.d.ts +4 -0
- package/dist/ui-contracts.d.ts +14 -2
- package/dist/use-controller-commands.d.ts +1 -0
- package/dist/use-controller-key-pipeline.d.ts +4 -1
- package/package.json +18 -18
- package/LICENSE +0 -21
|
@@ -124,6 +124,9 @@ export type AppActionServices = {
|
|
|
124
124
|
} | {
|
|
125
125
|
type: 'mcpPickerHint';
|
|
126
126
|
text?: string | undefined;
|
|
127
|
+
} | {
|
|
128
|
+
type: 'mcpPickerEditor';
|
|
129
|
+
editor?: import('./ui-contracts.js').McpPickerEditor | undefined;
|
|
127
130
|
} | {
|
|
128
131
|
type: 'toolsPickerOpen';
|
|
129
132
|
items?: ToolPickerItem[] | undefined;
|
|
@@ -130,6 +130,8 @@ export type AppActionSettings = {
|
|
|
130
130
|
sageMemoryInjectThreshold: number;
|
|
131
131
|
nextStepsTool: boolean;
|
|
132
132
|
nextStepsRequired: boolean;
|
|
133
|
+
rememberStartupChoices: boolean;
|
|
134
|
+
nextSystemPromptVariant: 'lite' | 'default' | 'pro' | 'scout';
|
|
133
135
|
/**
|
|
134
136
|
* WrongProxy / WrongTrace: master switch + configurable URL
|
|
135
137
|
* (default http://localhost:3444). Mirrors `Settings.wrongProxy*`
|
|
@@ -275,6 +275,10 @@ export type PanelState = {
|
|
|
275
275
|
nextStepsTool: boolean;
|
|
276
276
|
/** Leader must end every finished turn with <nextsteps> or the completion marker (`autonomy.nextSteps: 'required'`). Default: true. */
|
|
277
277
|
nextStepsRequired: boolean;
|
|
278
|
+
/** Launch with the last model, system prompt and mode/YOLO/autonomy instead of asking (`launch.rememberStartupChoices`). Default: true. */
|
|
279
|
+
rememberStartupChoices: boolean;
|
|
280
|
+
/** System prompt the NEXT session starts with (`systemPrompt.variant` in the profile config); the running session keeps its own. */
|
|
281
|
+
nextSystemPromptVariant: 'lite' | 'default' | 'pro' | 'scout';
|
|
278
282
|
/** When true, read tool includes codebase-index symbols alongside file content. */
|
|
279
283
|
readSymbols: boolean;
|
|
280
284
|
/** Prompt cache TTL. */
|
|
@@ -367,6 +371,7 @@ export type PanelState = {
|
|
|
367
371
|
selected: number;
|
|
368
372
|
busy: boolean;
|
|
369
373
|
hint?: string | undefined;
|
|
374
|
+
editor?: import('./ui-contracts.js').McpPickerEditor | undefined;
|
|
370
375
|
};
|
|
371
376
|
/** Tool picker — opened by `/tools`. */
|
|
372
377
|
toolsPicker: {
|
|
@@ -10,6 +10,12 @@ export interface TuiSettingsProps {
|
|
|
10
10
|
*/
|
|
11
11
|
/** Settings shape — shared between getSettings and saveSettings. */
|
|
12
12
|
getSettings?: (() => Settings) | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The leader's own effort override (`leader_effort_set`), while it is in
|
|
15
|
+
* force. Display-only: kept apart from `getSettings` so the settings picker
|
|
16
|
+
* never reads — and on save persists — the leader's choice as the user's.
|
|
17
|
+
*/
|
|
18
|
+
getLeaderEffort?: (() => string | undefined) | undefined;
|
|
13
19
|
/**
|
|
14
20
|
* Live view over the persisted user config. The TUI uses this to:
|
|
15
21
|
* - apply `themePreset` on boot (so `/theme` choices persist across
|
|
@@ -39,6 +45,11 @@ export interface TuiSettingsProps {
|
|
|
39
45
|
}>) | undefined;
|
|
40
46
|
/** Load MCP server rows for the interactive MCP picker. */
|
|
41
47
|
getMcpServers?: (() => McpPickerItem[]) | undefined;
|
|
48
|
+
onMcpManage?: ((action: 'add' | 'edit' | 'remove', input: Pick<McpPickerItem, 'name' | 'transport' | 'command' | 'url' | 'args'>) => Promise<{
|
|
49
|
+
items: McpPickerItem[];
|
|
50
|
+
message?: string | undefined;
|
|
51
|
+
error?: string | undefined;
|
|
52
|
+
}>) | undefined;
|
|
42
53
|
/** Toggle one MCP server (enable/disable) from the interactive picker. */
|
|
43
54
|
onMcpToggle?: ((name: string) => Promise<{
|
|
44
55
|
items: McpPickerItem[];
|
|
@@ -100,6 +100,10 @@ export type Settings = {
|
|
|
100
100
|
nextStepsTool: boolean;
|
|
101
101
|
/** Leader must end every finished turn with <nextsteps> or the completion marker (`autonomy.nextSteps: 'required'`). Default: true. */
|
|
102
102
|
nextStepsRequired: boolean;
|
|
103
|
+
/** Launch with the last model, system prompt and mode/YOLO/autonomy instead of asking (`launch.rememberStartupChoices`). Default: true. */
|
|
104
|
+
rememberStartupChoices: boolean;
|
|
105
|
+
/** System prompt the NEXT session starts with (`systemPrompt.variant` in the profile config); the running session keeps its own. */
|
|
106
|
+
nextSystemPromptVariant: 'lite' | 'default' | 'pro' | 'scout';
|
|
103
107
|
/** Prompt cache TTL. */
|
|
104
108
|
cacheTtl: CacheTtl;
|
|
105
109
|
/** Where to persist settings: 'global' or 'project'. */
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Put browser and HTTP-reader origin guidance outside collapsed tool output. */
|
|
2
|
+
export declare function networkAccessHint(name: string, ok: boolean, output: string | undefined): string | undefined;
|
|
3
|
+
export declare const browserAccessHint: typeof networkAccessHint;
|
|
4
|
+
//# sourceMappingURL=browser-access-hint.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
+
import type { McpPickerEditor } from '../ui-contracts.js';
|
|
2
3
|
export interface McpPickerItem {
|
|
3
4
|
name: string;
|
|
4
5
|
enabled: boolean;
|
|
@@ -7,6 +8,9 @@ export interface McpPickerItem {
|
|
|
7
8
|
description?: string | undefined;
|
|
8
9
|
toolCount: number;
|
|
9
10
|
lazy?: boolean | undefined;
|
|
11
|
+
command?: string | undefined;
|
|
12
|
+
url?: string | undefined;
|
|
13
|
+
args?: string[] | undefined;
|
|
10
14
|
}
|
|
11
15
|
interface McpPickerProps {
|
|
12
16
|
maxRows?: number | undefined;
|
|
@@ -15,7 +19,8 @@ interface McpPickerProps {
|
|
|
15
19
|
selected: number;
|
|
16
20
|
busy?: boolean | undefined;
|
|
17
21
|
hint?: string | undefined;
|
|
22
|
+
editor?: McpPickerEditor | undefined;
|
|
18
23
|
}
|
|
19
|
-
export declare function McpPicker({ items, selected, busy, hint, maxRows, columns, }: McpPickerProps): React.ReactElement;
|
|
24
|
+
export declare function McpPicker({ items, selected, busy, hint, maxRows, columns, editor, }: McpPickerProps): React.ReactElement;
|
|
20
25
|
export {};
|
|
21
26
|
//# sourceMappingURL=mcp-picker.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReasoningEffort as CoreReasoningEffort } from '@wrongstack/core/types';
|
|
2
|
-
export { TOOL_RESULT_VIEW_MODES
|
|
2
|
+
export { TOOL_RESULT_VIEW_MODES } from '../tool-result-view-mode.js';
|
|
3
3
|
/** Selectable presets for the auto-proceed delay, so the field is fully
|
|
4
4
|
* keyboard-cyclable (←/→) instead of needing typed numeric input. */
|
|
5
5
|
export declare const DELAY_PRESETS_MS: number[];
|
|
@@ -24,6 +24,13 @@ export declare const REASONING_EFFORTS: readonly ["none", "minimal", "low", "med
|
|
|
24
24
|
export type ReasoningEffort = CoreReasoningEffort;
|
|
25
25
|
export declare const CACHE_TTLS: readonly ['default', '5m', '1h'];
|
|
26
26
|
export type CacheTtl = (typeof CACHE_TTLS)[number];
|
|
27
|
+
/**
|
|
28
|
+
* System-prompt variants in startup-menu order. Mirrors core
|
|
29
|
+
* `SYSTEM_PROMPT_VARIANT_OPTIONS` (`default` is shown as "Standard").
|
|
30
|
+
*/
|
|
31
|
+
export declare const SYSTEM_PROMPT_CHOICES: readonly ['lite', 'default', 'pro', 'scout'];
|
|
32
|
+
export type SystemPromptChoice = (typeof SYSTEM_PROMPT_CHOICES)[number];
|
|
33
|
+
export declare const SYSTEM_PROMPT_CHOICE_LABELS: Record<SystemPromptChoice, string>;
|
|
27
34
|
export declare const STATUSLINE_MODE_DESCS: Record<StatuslineMode, string>;
|
|
28
35
|
/** Presets for max iterations — cyclable via ←/→. 0 = unlimited. */
|
|
29
36
|
export declare const MAX_ITERATIONS_PRESETS: number[];
|
|
@@ -77,6 +77,10 @@ export interface SettingsPickerProps {
|
|
|
77
77
|
nextStepsTool: boolean;
|
|
78
78
|
/** Leader must end every finished turn with <nextsteps> or the completion marker (`autonomy.nextSteps: 'required'`). Default: true. */
|
|
79
79
|
nextStepsRequired: boolean;
|
|
80
|
+
/** Launch with the last model, system prompt and mode/YOLO/autonomy instead of asking (`launch.rememberStartupChoices`). Default: true. */
|
|
81
|
+
rememberStartupChoices: boolean;
|
|
82
|
+
/** System prompt the NEXT session starts with (`systemPrompt.variant` in the profile config); the running session keeps its own. */
|
|
83
|
+
nextSystemPromptVariant: 'lite' | 'default' | 'pro' | 'scout';
|
|
80
84
|
/** When true, read tool includes codebase-index symbols alongside file content. */
|
|
81
85
|
readSymbols: boolean;
|
|
82
86
|
/**
|
|
@@ -3,5 +3,5 @@ import type { SettingsPickerProps } from './settings-picker-props.js';
|
|
|
3
3
|
export { SETTINGS_PICKER_JUMP_CHORDS, settingsPickerJumpByName, settingsPickerJumpField, settingsPickerJumpNames, } from './settings-picker-jumps.js';
|
|
4
4
|
export * from './settings-picker-model.js';
|
|
5
5
|
export type { SettingsPickerProps } from './settings-picker-props.js';
|
|
6
|
-
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, nextStepsRequired, readSymbols, panelPositions, wrongProxyEnabled, wrongProxyUrl, inputHeight, maxRows, columns, hint, onLayoutComputed, }: SettingsPickerProps): React.ReactElement;
|
|
6
|
+
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, nextStepsRequired, rememberStartupChoices, nextSystemPromptVariant, readSymbols, panelPositions, wrongProxyEnabled, wrongProxyUrl, inputHeight, maxRows, columns, hint, onLayoutComputed, }: SettingsPickerProps): React.ReactElement;
|
|
7
7
|
//# sourceMappingURL=settings-picker.d.ts.map
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* path stable for `sidebar-panels.tsx` and tests.
|
|
5
5
|
*/
|
|
6
6
|
export { AgentsPanelSidebar } from './sidebar-panel-agents.js';
|
|
7
|
-
export { ConnectionsPanelSidebar
|
|
8
|
-
export { CoordinatorPanelSidebar
|
|
7
|
+
export { ConnectionsPanelSidebar } from './sidebar-panel-connections.js';
|
|
8
|
+
export { CoordinatorPanelSidebar } from './sidebar-panel-coordinator.js';
|
|
9
9
|
export { FleetPanelSidebar } from './sidebar-panel-fleet.js';
|
|
10
10
|
export { ProjectPickerSidebar } from './sidebar-panel-project.js';
|
|
11
11
|
export { WorktreePanelSidebar } from './sidebar-panel-worktree.js';
|
|
12
|
-
export { WrongProxyPanelSidebar
|
|
12
|
+
export { WrongProxyPanelSidebar } from './sidebar-panel-wrong-proxy.js';
|
|
13
13
|
//# sourceMappingURL=sidebar-panels-workspace.d.ts.map
|
|
@@ -64,6 +64,11 @@ export declare function resolveControllerProps(props: AppProps): {
|
|
|
64
64
|
message?: string | undefined;
|
|
65
65
|
error?: string | undefined;
|
|
66
66
|
}>) | undefined;
|
|
67
|
+
onMcpManage: ((action: 'add' | 'edit' | 'remove', input: Pick<import("./ui-contracts.js").McpPickerItem, 'name' | 'transport' | 'command' | 'url' | 'args'>) => Promise<{
|
|
68
|
+
items: import("./ui-contracts.js").McpPickerItem[];
|
|
69
|
+
message?: string | undefined;
|
|
70
|
+
error?: string | undefined;
|
|
71
|
+
}>) | undefined;
|
|
67
72
|
getToolsItems: (() => import("./ui-contracts.js").ToolPickerItem[]) | undefined;
|
|
68
73
|
onToolToggle: ((name: string) => Promise<{
|
|
69
74
|
items: import("./ui-contracts.js").ToolPickerItem[];
|
|
@@ -24,6 +24,8 @@ export declare class HistoryArchive {
|
|
|
24
24
|
private closed;
|
|
25
25
|
/** Byte-offset index: index → { offset, length }. Built on first load. */
|
|
26
26
|
private index;
|
|
27
|
+
/** Bumped on every invalidation so an in-flight scan can tell its result is stale. */
|
|
28
|
+
private indexGeneration;
|
|
27
29
|
/** Total entries written so far (monotonic counter). */
|
|
28
30
|
private writeChain;
|
|
29
31
|
private drainToken;
|
|
@@ -58,6 +60,7 @@ export declare class HistoryArchive {
|
|
|
58
60
|
* The index is cached for the lifetime of the archive object.
|
|
59
61
|
*/
|
|
60
62
|
private buildIndex;
|
|
63
|
+
private scanIndex;
|
|
61
64
|
/** Serialise writes through a FIFO promise chain with per-drain batching. */
|
|
62
65
|
private enqueueWrite;
|
|
63
66
|
}
|
|
@@ -61,6 +61,7 @@ export declare function buildAppPipelineArgs(params: {
|
|
|
61
61
|
pasteClipboardText: K['pasteClipboardText'];
|
|
62
62
|
pasteClipboardImage: K['pasteClipboardImage'];
|
|
63
63
|
onHistoryCopy: K['onHistoryCopy'];
|
|
64
|
+
closeMailboxPanel: K['closeMailboxPanel'];
|
|
64
65
|
tryPickerKey: K['tryPickerKey'];
|
|
65
66
|
pasteAccumRef: K['pasteAccumRef'];
|
|
66
67
|
pasteFlushTimerRef: K['pasteFlushTimerRef'];
|
|
@@ -24,6 +24,7 @@ interface PanelControllersOptions {
|
|
|
24
24
|
getMcpServers: AppProps['getMcpServers'];
|
|
25
25
|
onMcpToggle: AppProps['onMcpToggle'];
|
|
26
26
|
onMcpRestart: AppProps['onMcpRestart'];
|
|
27
|
+
onMcpManage?: AppProps['onMcpManage'];
|
|
27
28
|
getToolsItems: AppProps['getToolsItems'];
|
|
28
29
|
onToolToggle: AppProps['onToolToggle'];
|
|
29
30
|
setLiveToolCount: Dispatch<SetStateAction<number | undefined>>;
|
|
@@ -31,7 +32,7 @@ interface PanelControllersOptions {
|
|
|
31
32
|
getActiveModelReasoningEffortLevels?: AppProps['getActiveModelReasoningEffortLevels'];
|
|
32
33
|
}
|
|
33
34
|
/** Owns panel openers and extension picker refresh/toggle controllers. */
|
|
34
|
-
export declare function usePanelControllers({ state, stateRef, dispatch, getPickableProviders, getProjectPickerItems, getLiveSessions, onPanelOpen, openStatuslinePicker, openAuthPanel, openModePicker, openBrainPanel, openShadowPanel, openSubagentModelsPanel, openHelpPanel, getSettings, getPluginItems, onPluginToggle, getMcpServers, onMcpToggle, onMcpRestart, getToolsItems, onToolToggle, setLiveToolCount, getActiveModelReasoningEffortLevels, }: PanelControllersOptions): {
|
|
35
|
+
export declare function usePanelControllers({ state, stateRef, dispatch, getPickableProviders, getProjectPickerItems, getLiveSessions, onPanelOpen, openStatuslinePicker, openAuthPanel, openModePicker, openBrainPanel, openShadowPanel, openSubagentModelsPanel, openHelpPanel, getSettings, getPluginItems, onPluginToggle, getMcpServers, onMcpToggle, onMcpRestart, onMcpManage, getToolsItems, onToolToggle, setLiveToolCount, getActiveModelReasoningEffortLevels, }: PanelControllersOptions): {
|
|
35
36
|
openModelPicker: () => Promise<void>;
|
|
36
37
|
openProjectPicker: () => Promise<void>;
|
|
37
38
|
openFKeyPicker: () => void;
|
|
@@ -40,6 +41,7 @@ export declare function usePanelControllers({ state, stateRef, dispatch, getPick
|
|
|
40
41
|
toggleSelectedPlugin: () => Promise<void>;
|
|
41
42
|
toggleSelectedMcpServer: () => Promise<void>;
|
|
42
43
|
restartSelectedMcpServer: () => Promise<void>;
|
|
44
|
+
saveMcpEditor: () => Promise<void>;
|
|
43
45
|
toggleSelectedTool: () => Promise<void>;
|
|
44
46
|
};
|
|
45
47
|
export {};
|
|
@@ -49,6 +49,7 @@ export interface PickerKeysHost {
|
|
|
49
49
|
onPluginPickerToggle: (() => Promise<void> | void) | undefined;
|
|
50
50
|
onMcpPickerToggle: (() => Promise<void> | void) | undefined;
|
|
51
51
|
onMcpPickerRestart: (() => Promise<void> | void) | undefined;
|
|
52
|
+
onMcpPickerSave?: (() => Promise<void> | void) | undefined;
|
|
52
53
|
onToolsPickerToggle: (() => Promise<void> | void) | undefined;
|
|
53
54
|
onHelpPanelEnter: (() => void) | undefined;
|
|
54
55
|
onBrainRiskChange: ((delta: number) => void) | undefined;
|