@wrongstack/tui 1.0.6 → 1.0.8

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.
@@ -1,13 +1,3 @@
1
- /**
2
- * Inline chip token grammar, shared by the editable input for chip rendering
3
- * and whole-token cursor deletion. Attachment shapes stay in sync with the
4
- * AttachmentStore placeholder regex in @wrongstack/core:
5
- * - seq-keyed `[pasted|image|file #N …]` (a cosmetic suffix after the seq,
6
- * e.g. `, 123 lines`, is tolerated; legacy `[file #N]` is included)
7
- * - path-keyed `[file:<path>]`
8
- * `[VIBE]` is a protocol chip: it renders and deletes as a token, but it is
9
- * not an attachment and must stay in the prompt sent to the refiner/agent.
10
- */
11
1
  /** Attachment placeholders only. Protocol tags must not be stripped as chips. */
12
2
  export declare const ATTACHMENT_TOKEN_SRC = "\\[(?:pasted|image|file) #\\d+[^\\]]*\\]|\\[file:[^\\]]+\\]";
13
3
  /** Protocol trigger rendered as a chip but kept in the prompt text. */
@@ -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", "authFormCancel", "authFormChange", "authFormStart", "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", "sidebarScrollSet", "sidebarScrollReset", "toggleSidebarFocus", "skillPickerClose", "skillPickerHint", "skillPickerMove", "skillPickerOpen", "resourceMenuClose", "resourceMenuConfirm", "resourceMenuFilter", "resourceMenuHint", "resourceMenuMove", "resourceMenuOpen", "collabPlanEmitted", "collabSessionDone", "collabSubagentSpawned", "compactHistory", "confirmClearAll", "confirmClose", "confirmResolved", "confirmOpen", "continueConfirmClose", "continueConfirmOpen", "bugHuntContinueClose", "bugHuntContinueOpen", "bugHuntRunningClose", "bugHuntRunningOpen", "copiedNotice", "coordinatorEvent", "countdownEnded", "countdownTick", "debugStreamStats", "debugStreamStatsClear", "dequeueFirst", "designPickerClose", "designPickerMove", "designPickerOpen", "designPickerStack", "enhanceBusy", "enhanceClose", "enhanceOpen", "enhanceSet", "enqueue", "escConfirmClose", "escConfirmOpen", "fallbackOverlayClose", "fallbackOverlayMove", "fallbackOverlayOpen", "inspectOverlayClose", "inspectOverlayOpen", "inspectOverlayScroll", "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", "autoProceedRelease", "bashModeEnter", "bashModeExit", "resumeLoadStart", "resumeLoadTick", "resumeStreamChunk", "resumeLoadAbort", "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", "statuslineFilter", "statuslineHint", "statuslineMoveLine", "statuslineOpen", "statuslineResetLayout", "statuslineSetDensity", "statuslineSetLine", "statuslineToggle", "statuslineToggleLine", "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", "toolResultViewSet", "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", "authFormCancel", "authFormChange", "authFormStart", "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", "sidebarScrollSet", "sidebarScrollReset", "toggleSidebarFocus", "skillPickerClose", "skillPickerHint", "skillPickerMove", "skillPickerOpen", "resourceMenuClose", "resourceMenuConfirm", "resourceMenuFilter", "resourceMenuHint", "resourceMenuMove", "resourceMenuOpen", "collabPlanEmitted", "collabSessionDone", "collabSubagentSpawned", "compactHistory", "confirmClearAll", "confirmClose", "confirmResolved", "confirmOpen", "continueConfirmClose", "continueConfirmOpen", "bugHuntContinueClose", "bugHuntContinueOpen", "bugHuntRunningClose", "bugHuntRunningOpen", "copiedNotice", "coordinatorEvent", "countdownEnded", "countdownTick", "debugStreamStats", "debugStreamStatsClear", "dequeueFirst", "designPickerClose", "designPickerMove", "designPickerOpen", "designPickerStack", "enhanceBusy", "enhanceClose", "enhanceOpen", "enhanceSet", "enqueue", "escConfirmClose", "escConfirmOpen", "fallbackOverlayClose", "fallbackOverlayMove", "fallbackOverlayOpen", "inspectOverlayClose", "inspectOverlayOpen", "inspectOverlayScroll", "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", "modelPickerEffort", "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", "autoProceedRelease", "bashModeEnter", "bashModeExit", "resumeLoadStart", "resumeLoadTick", "resumeStreamChunk", "resumeLoadAbort", "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", "statuslineFilter", "statuslineHint", "statuslineMoveLine", "statuslineOpen", "statuslineResetLayout", "statuslineSetDensity", "statuslineSetLine", "statuslineToggle", "statuslineToggleLine", "statuslineVisibleChipsSync", "subagentModelsClose", "subagentModelsHint", "subagentModelsMove", "subagentModelsOpen", "subagentModelsUpdate", "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", "toolResultViewSet", "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
@@ -50,7 +50,7 @@ export interface LayoutSnapshot {
50
50
  entries: Record<number, EntryLayout>;
51
51
  }
52
52
  /** Current layout computation version. Bump when the algorithm changes. */
53
- export declare const LAYOUT_VERSION = 2;
53
+ export declare const LAYOUT_VERSION = 3;
54
54
  /** Default fallback row count for entries without computed layout. */
55
55
  export declare const FALLBACK_ROWS = 3;
56
56
  /**
@@ -5,7 +5,7 @@ import type { PluginPickerItem } from './components/plugin-picker.js';
5
5
  * `Action` type union but kept as a string allow-list here so an unrecognised
6
6
  * action can return `false` (text fallback) without crashing.
7
7
  */
8
- export type PanelAction = 'pluginPickerOpen' | 'mcpPickerOpen' | 'toolsPickerOpen' | 'brainOpen' | 'helpOpen' | 'shadowOpen' | 'projectPickerOpen' | 'statuslineOpen' | 'authOpen' | 'authOauthOpen' | 'modePickerOpen' | 'toggleMonitor' | 'toggleAuditPanel' | 'toggleAgentsMonitor' | 'toggleWorktreeMonitor' | 'togglePlanPanel' | 'toggleKanbanPanel' | 'toggleTodosMonitor' | 'toggleQueuePanel' | 'toggleProcessList' | 'toggleCronMonitor' | 'toggleContextPanel' | 'toggleConnectionsPanel' | 'toggleGoalPanel' | 'toggleGoalKanbanPanel' | 'toggleSessionsPanel' | 'toggleCoordinatorMonitor' | (string & {});
8
+ export type PanelAction = 'pluginPickerOpen' | 'mcpPickerOpen' | 'toolsPickerOpen' | 'brainOpen' | 'helpOpen' | 'shadowOpen' | 'subagentModelsOpen' | 'projectPickerOpen' | 'statuslineOpen' | 'authOpen' | 'authOauthOpen' | 'modePickerOpen' | 'toggleMonitor' | 'toggleAuditPanel' | 'toggleAgentsMonitor' | 'toggleWorktreeMonitor' | 'togglePlanPanel' | 'toggleKanbanPanel' | 'toggleTodosMonitor' | 'toggleQueuePanel' | 'toggleProcessList' | 'toggleCronMonitor' | 'toggleContextPanel' | 'toggleConnectionsPanel' | 'toggleGoalPanel' | 'toggleGoalKanbanPanel' | 'toggleSessionsPanel' | 'toggleCoordinatorMonitor' | (string & {});
9
9
  export interface PanelOpenDeps {
10
10
  /**
11
11
  * Reducer dispatcher. For an action that has typed reducer cases the
@@ -15,6 +15,8 @@ export interface PanelOpenDeps {
15
15
  dispatch: (action: Action) => void;
16
16
  /** Async opener for the project picker panel (F1). Fetches items first. */
17
17
  openProjectPicker: () => void | Promise<unknown>;
18
+ /** Opener for the `/subagent-models` lane panel; absent when unwired. */
19
+ openSubagentModelsPanel?: (() => void) | undefined;
18
20
  /** Opener for the statusline picker; computes the hiddenItems snapshot. */
19
21
  openStatuslinePicker: () => void;
20
22
  /**
@@ -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", "bashModeEnter", "bashModeExit", "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", "resumeLoadStart", "resumeLoadTick", "resumeStreamChunk", "resumeLoadAbort"];
3
+ declare const composerActionTypes: readonly ["brainPromptSet", "brainPromptClear", "pickerOpen", "pickerClose", "pickerSetMatches", "pickerMove", "toolStarted", "toolEnded", "toolStreamAppend", "toolStreamClear", "enqueue", "dequeueFirst", "queueClear", "queueDelete", "queueToggleRefine", "bashModeEnter", "bashModeExit", "slashPickerOpen", "slashPickerClose", "slashPickerMove", "historyPush", "historyUp", "historyDown", "setInputHistory", "clearInputHistory", "modelPickerOpen", "modelPickerClose", "modelPickerMove", "modelPickerPickProvider", "modelPickerBack", "modelPickerSearch", "modelPickerEffort", "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", "resumeLoadStart", "resumeLoadTick", "resumeStreamChunk", "resumeLoadAbort"];
4
4
  type ComposerAction = Extract<Action, {
5
5
  type: (typeof composerActionTypes)[number];
6
6
  }>;
@@ -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 panelPickerActionTypes: readonly ["statuslineOpen", "statuslineClose", "statuslineFieldMove", "statuslineFieldSet", "statuslineToggle", "statuslineSetLine", "statuslineMoveLine", "statuslineSetDensity", "statuslineToggleLine", "statuslineResetLayout", "statuslineFilter", "statuslineHint", "statuslineChipShow", "statuslineChipExpire", "statuslineVisibleChipsSync", "pluginPickerOpen", "pluginPickerClose", "pluginPickerMove", "pluginPickerSetItems", "pluginPickerBusy", "pluginPickerHint", "mcpPickerOpen", "mcpPickerClose", "mcpPickerMove", "mcpPickerSetItems", "mcpPickerBusy", "mcpPickerHint", "toolsPickerOpen", "toolsPickerClose", "toolsPickerMove", "toolsPickerSetItems", "toolsPickerToggle", "toolsPickerBusy", "toolsPickerHint", "toolsPickerFilter", "brainOpen", "brainClose", "brainMove", "brainRiskChange", "brainSetLog", "brainHint", "brainSettingsLoaded", "brainView", "brainRowMove", "brainBusy", "helpOpen", "helpClose", "helpMove", "helpFilter", "helpHint", "shadowOpen", "shadowClose", "shadowUpdate", "shadowHint"];
3
+ declare const panelPickerActionTypes: readonly ["statuslineOpen", "statuslineClose", "statuslineFieldMove", "statuslineFieldSet", "statuslineToggle", "statuslineSetLine", "statuslineMoveLine", "statuslineSetDensity", "statuslineToggleLine", "statuslineResetLayout", "statuslineFilter", "statuslineHint", "statuslineChipShow", "statuslineChipExpire", "statuslineVisibleChipsSync", "pluginPickerOpen", "pluginPickerClose", "pluginPickerMove", "pluginPickerSetItems", "pluginPickerBusy", "pluginPickerHint", "mcpPickerOpen", "mcpPickerClose", "mcpPickerMove", "mcpPickerSetItems", "mcpPickerBusy", "mcpPickerHint", "toolsPickerOpen", "toolsPickerClose", "toolsPickerMove", "toolsPickerSetItems", "toolsPickerToggle", "toolsPickerBusy", "toolsPickerHint", "toolsPickerFilter", "brainOpen", "brainClose", "brainMove", "brainRiskChange", "brainSetLog", "brainHint", "brainSettingsLoaded", "brainView", "brainRowMove", "brainBusy", "helpOpen", "helpClose", "helpMove", "helpFilter", "helpHint", "shadowOpen", "shadowClose", "shadowUpdate", "shadowHint", "subagentModelsOpen", "subagentModelsClose", "subagentModelsMove", "subagentModelsUpdate", "subagentModelsHint"];
4
4
  type PanelPickerAction = Extract<Action, {
5
5
  type: (typeof panelPickerActionTypes)[number];
6
6
  }>;
@@ -425,6 +425,8 @@ export interface RunTuiOptions {
425
425
  onBrainRiskLevel?: ((level: 'off' | 'low' | 'medium' | 'high' | 'all') => string | undefined) | undefined;
426
426
  /** Full Brain settings editor bridge (live apply + persist to global config). */
427
427
  brainPanelHost?: import('./brain-panel-model.js').BrainPanelHost | undefined;
428
+ /** Session-scoped model-lane bridge for the interactive `/subagent-models` panel. */
429
+ subagentModelsHost?: import('./subagent-models-panel-model.js').SubagentModelsPanelHost | undefined;
428
430
  /** Get current Shadow Agent state. */
429
431
  getShadowData?: (() => {
430
432
  activeId: string | null;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * View model for the `/subagent-models` panel.
3
+ *
4
+ * The TUI never imports the coordination plan type directly: the host (CLI)
5
+ * owns the session-scoped plan and hands the panel plain rows. That keeps this
6
+ * package free of `@wrongstack/core/coordination` runtime imports and lets the
7
+ * WebUI/SimpleUI reuse the same host contract shape over their own transport.
8
+ */
9
+ import type { SubagentLaneView, SubagentRoleView } from './ui-contracts.js';
10
+ /** One lane's editable target, in the host's terms. */
11
+ export interface SubagentLaneTarget {
12
+ provider?: string | undefined;
13
+ model?: string | undefined;
14
+ tier?: string | undefined;
15
+ fallbackProfile?: string | undefined;
16
+ label?: string | undefined;
17
+ }
18
+ export interface SubagentModelsSnapshot {
19
+ enabled: boolean;
20
+ lock: boolean;
21
+ /** "Run every plain subagent on the session's own model." */
22
+ followSessionModel: boolean;
23
+ /** The session's provider/model, shown as the target of that switch. */
24
+ sessionTarget: string;
25
+ lanes: SubagentLaneView[];
26
+ roles: SubagentRoleView[];
27
+ }
28
+ /**
29
+ * Host capabilities the panel needs. Every mutation returns an error string
30
+ * (or null on success) rather than throwing, so a rejected write shows up as a
31
+ * panel hint instead of tearing down the TUI.
32
+ */
33
+ export interface SubagentModelsPanelHost {
34
+ /** Current plan rendered for display, including live lane occupancy. */
35
+ snapshot(): SubagentModelsSnapshot;
36
+ /** Pin one lane (0-based). */
37
+ setLane(index: number, target: SubagentLaneTarget): Promise<string | null>;
38
+ /** Unpin one lane (0-based). */
39
+ clearLane(index: number): Promise<string | null>;
40
+ /** Flip one of the plan's switches. */
41
+ toggle(field: 'lock' | 'enabled' | 'followSessionModel'): Promise<string | null>;
42
+ }
43
+ //# sourceMappingURL=subagent-models-panel-model.d.ts.map
@@ -176,6 +176,19 @@ export interface ShadowState {
176
176
  model: string;
177
177
  intervalMs: number;
178
178
  }
179
+ /** One row of the `/subagent-models` lane list, pre-rendered for display. */
180
+ export interface SubagentLaneView {
181
+ /** Rendered target, e.g. "anthropic/claude-opus-5" or "tier:budget". */
182
+ target: string;
183
+ /** How many live subagents currently hold this lane. */
184
+ busy: number;
185
+ label?: string | undefined;
186
+ }
187
+ /** One session-scoped role override row in the `/subagent-models` panel. */
188
+ export interface SubagentRoleView {
189
+ role: string;
190
+ target: string;
191
+ }
179
192
  export interface ProjectPickerItem {
180
193
  key: string;
181
194
  label: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/tui",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack terminal UI: Ink-based interactive renderer with history, pickers, and slash menus.",
6
6
  "repository": {
@@ -26,12 +26,12 @@
26
26
  "!dist/**/*.map"
27
27
  ],
28
28
  "dependencies": {
29
- "@wrongstack/core": "1.0.6",
30
- "@wrongstack/kanban": "1.0.6",
31
- "@wrongstack/runtime": "1.0.6",
32
- "@wrongstack/sage": "1.0.6",
33
- "@wrongstack/sdd": "1.0.6",
34
- "@wrongstack/tools": "1.0.6",
29
+ "@wrongstack/core": "1.0.8",
30
+ "@wrongstack/kanban": "1.0.8",
31
+ "@wrongstack/runtime": "1.0.8",
32
+ "@wrongstack/sage": "1.0.8",
33
+ "@wrongstack/sdd": "1.0.8",
34
+ "@wrongstack/tools": "1.0.8",
35
35
  "ink": "7.1.1",
36
36
  "react": "^19.2.8",
37
37
  "string-width": "8.2.2",