@wrongstack/tui 0.309.1 → 0.310.1
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 +27 -0
- package/dist/app-settings-type.d.ts +12 -0
- package/dist/app-state.d.ts +18 -0
- package/dist/app-view-sidebar.d.ts +10 -2
- package/dist/components/context-panel.d.ts +19 -0
- package/dist/components/settings-picker-model.d.ts +8 -0
- package/dist/components/settings-picker.d.ts +17 -1
- package/dist/components/sidebar-content.d.ts +1 -1
- package/dist/components/sidebar-panels-workspace.d.ts +23 -0
- package/dist/components/sidebar-panels.d.ts +1 -1
- package/dist/components/status-bar-rails.d.ts +6 -0
- package/dist/hooks/use-sidebar-panel-data.d.ts +29 -0
- package/dist/index.js +611 -95
- package/dist/input-validation/action-types.d.ts +1 -1
- package/dist/reducers/settings-values.d.ts +1 -1
- package/dist/run-tui-teardown.d.ts +62 -0
- package/dist/settings-contracts.d.ts +14 -0
- package/dist/ui-contracts.d.ts +3 -2
- 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", "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"];
|
|
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", "settingsWrongProxyUrlEditCancel", "settingsWrongProxyUrlEditChange", "settingsWrongProxyUrlEditCommit", "settingsWrongProxyUrlEditStart", "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
|
|
@@ -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 settingsValueActionTypes: readonly ["settingsValueChange", "settingsValueSet", "settingsHint", "settingsThinkingEditStart", "settingsThinkingEditChange", "settingsThinkingEditCommit", "settingsThinkingEditCancel"];
|
|
3
|
+
declare const settingsValueActionTypes: readonly ["settingsValueChange", "settingsValueSet", "settingsHint", "settingsThinkingEditStart", "settingsThinkingEditChange", "settingsThinkingEditCommit", "settingsThinkingEditCancel", "settingsWrongProxyUrlEditStart", "settingsWrongProxyUrlEditChange", "settingsWrongProxyUrlEditCommit", "settingsWrongProxyUrlEditCancel"];
|
|
4
4
|
type SettingsValueAction = Extract<Action, {
|
|
5
5
|
type: (typeof settingsValueActionTypes)[number];
|
|
6
6
|
}>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable teardown primitives for the TUI host.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from run-tui.ts so the kill-safety semantics are unit-testable
|
|
5
|
+
* without an Ink render loop.
|
|
6
|
+
*
|
|
7
|
+
* Why both a sync and an async step exist:
|
|
8
|
+
* - `flushSync()` drains the writer's in-memory buffer with blocking
|
|
9
|
+
* writes. That data survives ANY concurrent hard exit (the host's
|
|
10
|
+
* 500ms exit-grace timer, a second Ctrl+C, a supervisor SIGKILL racing
|
|
11
|
+
* us) because by the time it returns, the bytes are already handed to
|
|
12
|
+
* the OS.
|
|
13
|
+
* - `close()` additionally drains the async write chain, `datasync()`s
|
|
14
|
+
* the handle, and writes the `.summary.json` sidecar + `_index.jsonl`
|
|
15
|
+
* row. That work is async, cannot be forced synchronous, and therefore
|
|
16
|
+
* gets a bounded budget instead of being trusted to outlive the loop.
|
|
17
|
+
*
|
|
18
|
+
* Ordering contract of `shutdownViaSignal`:
|
|
19
|
+
* 1. killChildren — stop tool subprocesses from producing new events.
|
|
20
|
+
* 2. salvageSync — buffered events are durably on disk from here on.
|
|
21
|
+
* 3. cleanup — terminal restore; also kicks off close() (idempotent).
|
|
22
|
+
* 4. await close — bounded by closeBudgetMs; never hangs shutdown.
|
|
23
|
+
* 5. salvageSync — catch anything close() re-buffered while failing.
|
|
24
|
+
* 6. exit — caller-supplied exit function.
|
|
25
|
+
*/
|
|
26
|
+
/** Structural subset of SessionWriter the teardown needs. */
|
|
27
|
+
export interface TeardownSession {
|
|
28
|
+
/** Durable drain: buffer → disk → datasync → sidecar/index. Idempotent. */
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
/** Last-gasp synchronous drain of whatever is still in memory. */
|
|
31
|
+
flushSync?(): void;
|
|
32
|
+
}
|
|
33
|
+
export interface DurableTeardownOptions {
|
|
34
|
+
/** Reads the CURRENT writer so swaps (e.g. /resume) stay covered. */
|
|
35
|
+
getSession: () => TeardownSession | undefined;
|
|
36
|
+
/** Foreground child cleanup (process registry killAll). Best-effort. */
|
|
37
|
+
killChildren?: (() => void) | undefined;
|
|
38
|
+
/** Terminal restore + client unregister. Idempotent. */
|
|
39
|
+
cleanup: () => void;
|
|
40
|
+
/** Hard ceiling for awaiting close(). Default 1500ms. */
|
|
41
|
+
closeBudgetMs?: number;
|
|
42
|
+
/** Exit function — injectable so tests don't need process.exit. */
|
|
43
|
+
exit: (code: number) => void;
|
|
44
|
+
}
|
|
45
|
+
export interface DurableTeardown {
|
|
46
|
+
/**
|
|
47
|
+
* Signal-driven shutdown (SIGTERM/SIGHUP/Ctrl+C): full ordered sequence,
|
|
48
|
+
* ends by calling exit(). Safe to fire concurrently from several handlers
|
|
49
|
+
* — every step is idempotent and exit wins once.
|
|
50
|
+
*/
|
|
51
|
+
shutdownViaSignal(exitCode: number): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Awaited close WITHOUT exiting — used by the natural exit path (settle)
|
|
54
|
+
* so the host continues only after durability, and project-switch respawns
|
|
55
|
+
* keep working.
|
|
56
|
+
*/
|
|
57
|
+
awaitDurableClose(): Promise<void>;
|
|
58
|
+
/** Sync-only last-chance drain for 'exit' listeners / process.exit contexts. */
|
|
59
|
+
salvageSync(): void;
|
|
60
|
+
}
|
|
61
|
+
export declare function createDurableTeardown(opts: DurableTeardownOptions): DurableTeardown;
|
|
62
|
+
//# sourceMappingURL=run-tui-teardown.d.ts.map
|
|
@@ -90,5 +90,19 @@ export type SettingsPickerPatch = Partial<{
|
|
|
90
90
|
* effect in the next session. Default: false.
|
|
91
91
|
*/
|
|
92
92
|
nextStepsTool: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* WrongProxy / WrongTrace: master switch. When true AND the daemon at
|
|
95
|
+
* `wrongProxyUrl` is reachable, every provider's base URL is rewritten
|
|
96
|
+
* through `${wrongProxyUrl}/proxy/<host><path>`. openai-codex is
|
|
97
|
+
* excluded by spec. Persisted to `config.features.wrongProxy*`
|
|
98
|
+
* via the TUI settings adapter; CLI proxy-wiring module reacts.
|
|
99
|
+
*/
|
|
100
|
+
wrongProxyEnabled: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* WrongProxy / WrongTrace URL. Default `http://localhost:8000`. The
|
|
103
|
+
* CLI's periodic probe targets `<wrongProxyUrl>/api/health`; a 2xx
|
|
104
|
+
* response flips the runtime's `active` flag.
|
|
105
|
+
*/
|
|
106
|
+
wrongProxyUrl: string;
|
|
93
107
|
}>;
|
|
94
108
|
//# sourceMappingURL=settings-contracts.d.ts.map
|
package/dist/ui-contracts.d.ts
CHANGED
|
@@ -71,8 +71,9 @@ export type PanelPosition = 'bottom' | 'sidebar';
|
|
|
71
71
|
*/
|
|
72
72
|
export declare const PANEL_IDS: readonly ["projectPicker", "fleet", "agents", "worktree", "plan", "todos", "queue", "processList", "goal", "sessions", "coordinator", "kanban", "connections"];
|
|
73
73
|
export type PanelId = (typeof PANEL_IDS)[number];
|
|
74
|
-
/** Total field count = legacy 46 + per-panel positions
|
|
75
|
-
*
|
|
74
|
+
/** Total field count = legacy 46 + per-panel positions + the two
|
|
75
|
+
* WrongProxy / WrongTrace fields (master switch + URL). Derived at
|
|
76
|
+
* runtime from `PANEL_IDS.length` + 2 to keep the surface in sync. */
|
|
76
77
|
export declare const TOTAL_SETTINGS_FIELD_COUNT: number;
|
|
77
78
|
/** Map of every tracked panel → its current placement. */
|
|
78
79
|
export type PanelPositionMap = Readonly<Record<PanelId, PanelPosition>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/tui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.310.1",
|
|
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/core": "0.
|
|
33
|
-
"@wrongstack/
|
|
34
|
-
"@wrongstack/runtime": "0.
|
|
35
|
-
"@wrongstack/
|
|
36
|
-
"@wrongstack/
|
|
37
|
-
"@wrongstack/
|
|
32
|
+
"@wrongstack/core": "0.310.1",
|
|
33
|
+
"@wrongstack/kanban": "0.310.1",
|
|
34
|
+
"@wrongstack/runtime": "0.310.1",
|
|
35
|
+
"@wrongstack/sage": "0.310.1",
|
|
36
|
+
"@wrongstack/tools": "0.310.1",
|
|
37
|
+
"@wrongstack/sdd": "0.310.1"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@testing-library/dom": "^10.4.1",
|