@wrongstack/tui 0.286.0 → 0.289.0

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.
Files changed (130) hide show
  1. package/README.md +48 -8
  2. package/dist/app-initial-state.d.ts +19 -2
  3. package/dist/app-initial-state.d.ts.map +1 -1
  4. package/dist/app-props.d.ts +618 -0
  5. package/dist/app-props.d.ts.map +1 -0
  6. package/dist/app-reducer.d.ts.map +1 -1
  7. package/dist/app-state.d.ts +63 -12
  8. package/dist/app-state.d.ts.map +1 -1
  9. package/dist/app.d.ts +5 -587
  10. package/dist/app.d.ts.map +1 -1
  11. package/dist/components/agents-monitor.d.ts +21 -34
  12. package/dist/components/agents-monitor.d.ts.map +1 -1
  13. package/dist/components/auth-panel.d.ts.map +1 -1
  14. package/dist/components/composer-status-chip.d.ts +55 -0
  15. package/dist/components/composer-status-chip.d.ts.map +1 -0
  16. package/dist/components/context-panel.d.ts +25 -0
  17. package/dist/components/context-panel.d.ts.map +1 -0
  18. package/dist/components/coordinator-panel.d.ts.map +1 -1
  19. package/dist/components/cron-jobs.d.ts +24 -0
  20. package/dist/components/cron-jobs.d.ts.map +1 -0
  21. package/dist/components/enhance-panel.d.ts +43 -18
  22. package/dist/components/enhance-panel.d.ts.map +1 -1
  23. package/dist/components/f-key-picker.d.ts.map +1 -1
  24. package/dist/components/fleet-monitor.d.ts.map +1 -1
  25. package/dist/components/fleet-panel.d.ts +11 -7
  26. package/dist/components/fleet-panel.d.ts.map +1 -1
  27. package/dist/components/goal-kanban-panel.d.ts +14 -0
  28. package/dist/components/goal-kanban-panel.d.ts.map +1 -0
  29. package/dist/components/goal-panel.d.ts.map +1 -1
  30. package/dist/components/history/banner.d.ts +3 -6
  31. package/dist/components/history/banner.d.ts.map +1 -1
  32. package/dist/components/history/entry.d.ts +6 -1
  33. package/dist/components/history/entry.d.ts.map +1 -1
  34. package/dist/components/history/index.d.ts +2 -2
  35. package/dist/components/history/index.d.ts.map +1 -1
  36. package/dist/components/history/replay.d.ts +14 -38
  37. package/dist/components/history/replay.d.ts.map +1 -1
  38. package/dist/components/history/tool-card.d.ts +20 -0
  39. package/dist/components/history/tool-card.d.ts.map +1 -0
  40. package/dist/components/history/types.d.ts +16 -0
  41. package/dist/components/history/types.d.ts.map +1 -1
  42. package/dist/components/history/utils.d.ts.map +1 -1
  43. package/dist/components/history.d.ts +1 -1
  44. package/dist/components/history.d.ts.map +1 -1
  45. package/dist/components/input.d.ts +24 -1
  46. package/dist/components/input.d.ts.map +1 -1
  47. package/dist/components/kanban-panel.d.ts +4 -1
  48. package/dist/components/kanban-panel.d.ts.map +1 -1
  49. package/dist/components/monitor-shell.d.ts +48 -0
  50. package/dist/components/monitor-shell.d.ts.map +1 -0
  51. package/dist/components/phase-panel.d.ts +1 -1
  52. package/dist/components/plan-panel.d.ts +1 -1
  53. package/dist/components/plan-panel.d.ts.map +1 -1
  54. package/dist/components/powerline-rail.d.ts +16 -0
  55. package/dist/components/powerline-rail.d.ts.map +1 -0
  56. package/dist/components/process-list.d.ts.map +1 -1
  57. package/dist/components/project-picker.d.ts +2 -1
  58. package/dist/components/project-picker.d.ts.map +1 -1
  59. package/dist/components/queue-panel.d.ts.map +1 -1
  60. package/dist/components/refine-failure-panel.d.ts +47 -0
  61. package/dist/components/refine-failure-panel.d.ts.map +1 -0
  62. package/dist/components/scrollable-history.d.ts +1 -1
  63. package/dist/components/scrollable-history.d.ts.map +1 -1
  64. package/dist/components/sessions-panel.d.ts.map +1 -1
  65. package/dist/components/settings-picker.d.ts +5 -2
  66. package/dist/components/settings-picker.d.ts.map +1 -1
  67. package/dist/components/status-bar-chips.d.ts +33 -0
  68. package/dist/components/status-bar-chips.d.ts.map +1 -0
  69. package/dist/components/status-bar.d.ts +58 -25
  70. package/dist/components/status-bar.d.ts.map +1 -1
  71. package/dist/components/statusline-detail-panel.d.ts +10 -0
  72. package/dist/components/statusline-detail-panel.d.ts.map +1 -0
  73. package/dist/components/statusline-picker.d.ts +4 -4
  74. package/dist/components/statusline-picker.d.ts.map +1 -1
  75. package/dist/components/todos-monitor.d.ts.map +1 -1
  76. package/dist/components/worktree-monitor.d.ts +1 -1
  77. package/dist/components/worktree-monitor.d.ts.map +1 -1
  78. package/dist/components/worktree-panel.d.ts +1 -1
  79. package/dist/context-slash.d.ts +75 -0
  80. package/dist/context-slash.d.ts.map +1 -0
  81. package/dist/cron-slash.d.ts +33 -0
  82. package/dist/cron-slash.d.ts.map +1 -0
  83. package/dist/esc-close-panels.d.ts +42 -0
  84. package/dist/esc-close-panels.d.ts.map +1 -0
  85. package/dist/f-key-panels.d.ts +14 -1
  86. package/dist/f-key-panels.d.ts.map +1 -1
  87. package/dist/height-cache.d.ts +124 -0
  88. package/dist/height-cache.d.ts.map +1 -0
  89. package/dist/hooks/use-auth-panel.d.ts +2 -0
  90. package/dist/hooks/use-auth-panel.d.ts.map +1 -1
  91. package/dist/hooks/use-director-fleet-bridge.d.ts +6 -1
  92. package/dist/hooks/use-director-fleet-bridge.d.ts.map +1 -1
  93. package/dist/hooks/use-fleet-generation-gate.d.ts +37 -0
  94. package/dist/hooks/use-fleet-generation-gate.d.ts.map +1 -0
  95. package/dist/hooks/use-live-todos.d.ts +4 -0
  96. package/dist/hooks/use-live-todos.d.ts.map +1 -0
  97. package/dist/hooks/use-session-interrupt-controller.d.ts +44 -0
  98. package/dist/hooks/use-session-interrupt-controller.d.ts.map +1 -0
  99. package/dist/hooks/use-subagent-events.d.ts +3 -1
  100. package/dist/hooks/use-subagent-events.d.ts.map +1 -1
  101. package/dist/hooks/use-tui-activity.d.ts +28 -0
  102. package/dist/hooks/use-tui-activity.d.ts.map +1 -0
  103. package/dist/hooks/use-tui-event-bridge.d.ts +9 -3
  104. package/dist/hooks/use-tui-event-bridge.d.ts.map +1 -1
  105. package/dist/index.d.ts +7 -7
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +21439 -16063
  108. package/dist/index.js.map +4 -4
  109. package/dist/memory-slash.d.ts +15 -0
  110. package/dist/memory-slash.d.ts.map +1 -0
  111. package/dist/on-panel-open.d.ts +1 -1
  112. package/dist/on-panel-open.d.ts.map +1 -1
  113. package/dist/reducers/helpers.d.ts +1 -1
  114. package/dist/reducers/helpers.d.ts.map +1 -1
  115. package/dist/run-tui.d.ts +27 -2
  116. package/dist/run-tui.d.ts.map +1 -1
  117. package/dist/running-tools.d.ts +9 -0
  118. package/dist/running-tools.d.ts.map +1 -0
  119. package/dist/slash-command-search.d.ts +5 -0
  120. package/dist/slash-command-search.d.ts.map +1 -1
  121. package/dist/submit-history.d.ts.map +1 -1
  122. package/dist/terminal-width.d.ts +36 -0
  123. package/dist/terminal-width.d.ts.map +1 -0
  124. package/dist/theme.d.ts +50 -0
  125. package/dist/theme.d.ts.map +1 -1
  126. package/dist/tool-glyph.d.ts +1 -4
  127. package/dist/tool-glyph.d.ts.map +1 -1
  128. package/dist/ui-glyphs.d.ts +45 -0
  129. package/dist/ui-glyphs.d.ts.map +1 -0
  130. package/package.json +6 -6
@@ -1,9 +1,9 @@
1
- import type { EventBus, TokenCounter, AutonomyStage, TokenSavingTier } from '@wrongstack/core';
1
+ import type { AutonomyStage, EventBus, TokenCounter, TokenSavingTier } from '@wrongstack/core';
2
2
  import type React from 'react';
3
- import type { ChipMeta, StatuslineItem } from './statusline-picker.js';
4
- import type { StatuslineMode } from './settings-picker.js';
5
3
  import type { GitInfo } from '../git-info.js';
6
4
  import { type AnimationStyle } from './animation-style.js';
5
+ import type { StatuslineMode } from './settings-picker.js';
6
+ import type { ChipMeta, StatuslineItem } from './statusline-picker.js';
7
7
  /**
8
8
  * Head-truncate a chip's free-text payload (branch, path, project name) with a
9
9
  * trailing ellipsis so one long value can't blow out the line width. Mirrors
@@ -25,6 +25,12 @@ export declare function nodeText(node: React.ReactNode): string;
25
25
  * an empty line). Pure + exported for testing.
26
26
  */
27
27
  export declare function planChipFit(widths: number[], budget: number, sepCost?: number): number;
28
+ /**
29
+ * Render a status-bar chip line: separator-join the chips that fit within
30
+ * `budget`, and append a dim `+N` marker when lower-priority chips were dropped
31
+ * so the line never wraps (a wrapped status bar shifts Ink's layout and strands
32
+ * the input row in scrollback).
33
+ */
28
34
  /** Minimum terminal width before we switch to ultra-compact mode. Exported so
29
35
  * the TUI mouse hit-test can skip the model-chip click in compact mode (where
30
36
  * line 1 uses a different layout than `statusBarModelSpan` assumes). */
@@ -135,9 +141,16 @@ export interface MailboxStatus {
135
141
  export interface StatusBarProps {
136
142
  model: string;
137
143
  /**
138
- * App version string (e.g. "0.7.0"). When set, renders a compact
139
- * `WS v0.7.0` chip at the head of line 1 so the running build is always
140
- * visible, not just in the startup banner.
144
+ * Provider identifier shown alongside `model` as `provider/model` in the
145
+ * status line. When omitted, only `model` is displayed (backward compat
146
+ * for callers that pass a combined string).
147
+ */
148
+ provider?: string | undefined;
149
+ /**
150
+ * App version string (e.g. "0.7.0"). Previously rendered a `WS v{version}`
151
+ * chip at the head of line 1. Now shown in the composer top rail instead
152
+ * (`WRONGSTACK v{version}`). Kept in the interface for callers that may
153
+ * use `version` in derived props — no longer rendered by StatusBar itself.
141
154
  */
142
155
  version?: string | undefined;
143
156
  state: 'idle' | 'running' | 'streaming' | 'aborting';
@@ -155,10 +168,18 @@ export interface StatusBarProps {
155
168
  hint?: string | undefined;
156
169
  queueCount?: number | undefined;
157
170
  yolo?: boolean | undefined;
158
- /** Session start timestamp (ms). Elapsed time is computed internally on
159
- * the same interval as the spinner so the display stays live without
160
- * forcing a full App tree re-render every second. */
171
+ /**
172
+ * Session start timestamp (ms). Used by StatuslineDetailPanel for its
173
+ * elapsed-time display. StatusBar itself no longer renders this chip
174
+ * (working time and fleet time are tracked separately).
175
+ */
161
176
  startedAt?: number | undefined;
177
+ /**
178
+ * Fleet working time in ms — the total time background subagents have been
179
+ * active. Only ticks up while fleet.running > 0. Rendered as a chip on the
180
+ * status bar so the user can see how long background work has been running.
181
+ */
182
+ fleetWorkingTime?: number | undefined;
162
183
  todos?: TodoCounts | undefined;
163
184
  /**
164
185
  * Plan board counts surfaced as a chip on line 2. Distinct from
@@ -282,7 +303,7 @@ export interface StatusBarProps {
282
303
  /**
283
304
  * Seconds remaining in the prompt-refinement auto-send countdown.
284
305
  * When non-null, replaces the old in-panel timer display with a
285
- * line-3 chip like `⏳ auto-send in 5s` so the countdown never
306
+ * line-3 chip like `◴ refinement ready · send in 5s` so the countdown never
286
307
  * causes blank entries in the chat scrollback.
287
308
  */
288
309
  enhanceCountdown?: number | null | undefined;
@@ -323,37 +344,41 @@ export interface StatusBarProps {
323
344
  }
324
345
  /**
325
346
  * Two-line status bar. The first line stays compact and shows the
326
- * runtime essentials (state · model · tokens · cost · queue · running
327
- * tool). The second line opts in only when there's actually something
347
+ * workspace route followed by provider/model, context, tokens, cost, queue,
348
+ * and other runtime essentials. The second line opts in only when there's actually something
328
349
  * to show — git branch, elapsed time, todo counts, YOLO marker — so a
329
350
  * vanilla session keeps the original single-line footprint.
330
351
  */
331
- export declare function StatusBar({ model, version, state, thinkingWord, thinkingAnimationStyle, tokenCounter, hint, queueCount, yolo, autonomy, startedAt, todos, plan, tasks, fleet, fleetAgents, git, subagentCount, brain, projectName, workingDir, processCount, context, contextStrategy, hiddenItems, mode, events, sessionId, eternalStage, goalSummary, indexState, breakerCountdown, modeLabel, debugStreamStats, enhanceCountdown, nextStepsAutoSubmitCountdown, nextStepsAutoSubmitLabel, autoProceedCountdown, sessionCount, mailbox, tokenSavingMode, toolCount, visibleChips, sideEffectCount, }: StatusBarProps): React.ReactElement;
352
+ export declare function StatusBar({ model, provider, state, thinkingWord, thinkingAnimationStyle, tokenCounter, hint, queueCount, yolo, autonomy, fleetWorkingTime, todos, plan, tasks, fleet, fleetAgents, git, subagentCount, brain, projectName, workingDir, processCount, context, contextStrategy, hiddenItems, mode, events, sessionId, eternalStage, goalSummary, indexState, breakerCountdown, modeLabel, debugStreamStats, enhanceCountdown, nextStepsAutoSubmitCountdown, nextStepsAutoSubmitLabel, autoProceedCountdown, sessionCount, mailbox, tokenSavingMode, toolCount, visibleChips, sideEffectCount, }: StatusBarProps): React.ReactElement;
332
353
  /**
333
- * 0-based column span (offset from the box's left edge, including the left
334
- * paddingX) of the `{provider}/{model}` chip on status-bar line 1. The TUI
335
- * mouse handler uses it to make the model chip clickable (→ open model
336
- * picker). Mirrors the line-1 flex layout: optional `WS v…` chip + `│`, then
337
- * `● {stateLabel}` + `│`, then the model.
354
+ * 0-based column span (offset from the box's left edge) of the
355
+ * `{provider}/{model}` chip on status-bar line 1. The TUI mouse handler uses
356
+ * it to open the model picker. This mirrors the visible workspace prefix:
357
+ * YOLO/autonomy, project, working directory, then provider/model.
338
358
  */
339
359
  export declare function statusBarModelSpan(opts: {
340
- version?: string | undefined;
341
- state: 'idle' | 'running' | 'streaming' | 'aborting';
342
- fleetRunning?: number | undefined;
343
- thinkingWord?: string | undefined;
344
360
  model: string;
361
+ provider?: string | undefined;
362
+ yolo?: boolean | undefined;
363
+ autonomy?: 'off' | 'suggest' | 'auto' | 'eternal' | 'eternal-parallel' | undefined;
364
+ projectName?: string | undefined;
365
+ workingDir?: string | undefined;
366
+ projectHidden?: boolean | undefined;
367
+ workingDirHidden?: boolean | undefined;
368
+ monochrome?: boolean | undefined;
345
369
  }): {
346
370
  start: number;
347
371
  len: number;
348
372
  };
349
373
  /**
350
- * 0-based column span of the `∞ MODE` autonomy chip on status-bar line 2, or
351
- * null when it isn't shown (autonomy off/unset). When YOLO is on it precedes
352
- * the autonomy chip (plus a `│` separator), so the span shifts right.
374
+ * 0-based column span of the autonomy chip on status-bar line 1, or null when
375
+ * autonomy is off/unset. Mirrors both colored (`∞ MODE`) and monochrome
376
+ * (`MODE`) Powerline rendering, including an optional leading YOLO segment.
353
377
  */
354
378
  export declare function statusBarAutonomySpan(opts: {
355
379
  yolo?: boolean | undefined;
356
380
  autonomy?: 'off' | 'suggest' | 'auto' | 'eternal' | 'eternal-parallel' | undefined;
381
+ monochrome?: boolean | undefined;
357
382
  }): {
358
383
  start: number;
359
384
  len: number;
@@ -373,6 +398,14 @@ export declare function stateChip(state: 'idle' | 'running' | 'streaming' | 'abo
373
398
  color: string;
374
399
  };
375
400
  export declare function renderProgress(ratio: number, width: number): string;
401
+ /**
402
+ * Bracket-style context meter, e.g. `[00o.......]`.
403
+ *
404
+ * Renders a fixed-width progress bar inside square brackets. `0` marks filled
405
+ * cells, `o` is the boundary marker at the edge of used space, and `.` marks
406
+ * remaining cells. The marker disappears at 0% (bar is all `.`) and at 100%
407
+ * (bar is all `0`).
408
+ */
376
409
  export declare function renderMeter(ratio: number, width: number): string;
377
410
  export declare function fmtElapsed(ms: number): string;
378
411
  //# sourceMappingURL=status-bar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../../src/components/status-bar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../../src/components/status-bar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type React from 'react';
2
+ import { type StatusBarProps } from './status-bar.js';
3
+ /**
4
+ * Detailed status panel showing all status line information in a structured
5
+ * read-only view. Toggle via F12 picker's detail option or Esc to close.
6
+ */
7
+ export declare function StatuslineDetailPanel(props: StatusBarProps & {
8
+ onClose: () => void;
9
+ }): React.ReactElement;
10
+ //# sourceMappingURL=statusline-detail-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline-detail-panel.d.ts","sourceRoot":"","sources":["../../src/components/statusline-detail-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAW7F;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAC9C,KAAK,CAAC,YAAY,CAgMpB"}
@@ -1,6 +1,6 @@
1
1
  import type React from 'react';
2
2
  /** All possible statusline chip keys. */
3
- export type StatuslineItem = 'version' | 'state' | 'model' | 'tokens' | 'cache' | 'queue' | 'processes' | 'hint' | 'index' | 'breaker' | 'todos' | 'plan' | 'tasks' | 'fleet' | 'fleet_agents' | 'git' | 'elapsed' | 'context' | 'cost' | 'working_dir' | 'project' | 'yolo' | 'autonomy' | 'eternal_stage' | 'goal' | 'mode' | 'auto_proceed' | 'sessions' | 'tools' | 'token_saving' | 'brain' | 'mailbox' | 'enhance' | 'debug_stream' | 'next_steps';
3
+ export type StatuslineItem = 'version' | 'state' | 'model' | 'tokens' | 'cache' | 'queue' | 'processes' | 'hint' | 'index' | 'breaker' | 'todos' | 'plan' | 'tasks' | 'fleet' | 'fleet_agents' | 'git' | 'elapsed' | 'context' | 'cost' | 'working_dir' | 'project' | 'yolo' | 'autonomy' | 'eternal_stage' | 'goal' | 'mode' | 'auto_proceed' | 'sessions' | 'time' | 'tools' | 'token_saving' | 'brain' | 'mailbox' | 'enhance' | 'debug_stream' | 'next_steps';
4
4
  /**
5
5
  * Metadata for a temporarily-visible chip (one that appeared due to data,
6
6
  * not user toggle). Tracked so the chip can auto-expire.
@@ -30,9 +30,9 @@ export declare function getExpiresInLabel(meta: ChipMeta, now?: number): string
30
30
  /**
31
31
  * Which TUI status bar line each chip appears on. Used to group chips
32
32
  * visually in the picker. MUST mirror the actual render lines in
33
- * `status-bar.tsx`: line 1 = runtime essentials, line 2 = session context,
34
- * line 3 = active work, line 4 = mailbox + fleet-agent detail. Exported so
35
- * the navigation-order test guards against drift instead of duplicating it.
33
+ * `status-bar.tsx`: line 1 = workspace + runtime chips, line 2 = session context,
34
+ * line 3 = active work + connectivity. Exported so the navigation-order
35
+ * test guards against drift instead of duplicating it.
36
36
  */
37
37
  export declare const ITEM_LINE: Record<StatuslineItem, number>;
38
38
  export interface StatuslinePickerProps {
@@ -1 +1 @@
1
- {"version":3,"file":"statusline-picker.d.ts","sourceRoot":"","sources":["../../src/components/statusline-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,yCAAyC;AACzC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,GACP,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,cAAc,GACd,KAAK,GACL,SAAS,GACT,SAAS,GACT,MAAM,GACN,aAAa,GACb,SAAS,GACT,MAAM,GACN,UAAU,GACV,eAAe,GACf,MAAM,GACN,MAAM,GACN,cAAc,GACd,UAAU,GACV,OAAO,GACP,cAAc,GACd,OAAO,GACP,SAAS,GACT,SAAS,GACT,cAAc,GACd,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,cAAc,CAAC;IACpB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iEAAiE;AACjE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,OAAO,CAIvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAOjF;AAyCD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAoCpD,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACtC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,QAAgC,CAAC;AAEpE,kIAAkI;AAClI,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAwC5C,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAAoD,CAAC;AAalG,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,YAAiB,EACjB,IAAI,GACL,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAqG5C"}
1
+ {"version":3,"file":"statusline-picker.d.ts","sourceRoot":"","sources":["../../src/components/statusline-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,yCAAyC;AACzC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,GACP,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,cAAc,GACd,KAAK,GACL,SAAS,GACT,SAAS,GACT,MAAM,GACN,aAAa,GACb,SAAS,GACT,MAAM,GACN,UAAU,GACV,eAAe,GACf,MAAM,GACN,MAAM,GACN,cAAc,GACd,UAAU,GACV,MAAM,GACN,OAAO,GACP,cAAc,GACd,OAAO,GACP,SAAS,GACT,SAAS,GACT,cAAc,GACd,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,cAAc,CAAC;IACpB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iEAAiE;AACjE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,OAAO,CAIvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAOjF;AA0CD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAyCpD,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACtC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,QAAgC,CAAC;AAEpE,kIAAkI;AAClI,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAwC5C,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAAoD,CAAC;AAalG,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,YAAiB,EACjB,IAAI,GACL,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAmI5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"todos-monitor.d.ts","sourceRoot":"","sources":["../../src/components/todos-monitor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA8GjF"}
1
+ {"version":3,"file":"todos-monitor.d.ts","sourceRoot":"","sources":["../../src/components/todos-monitor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CAoIjF"}
@@ -6,7 +6,7 @@ export declare function isWorktreeMonitorCloseKey(input: string, key: {
6
6
  }): boolean;
7
7
  /**
8
8
  * Full-screen Worktree monitor overlay (Ctrl+T to open, Ctrl+T to close).
9
- * Shows each AutoPhase worktree: branch, base→branch, owner phase, diff stats,
9
+ * Shows each Goal worktree: branch, base→branch, owner phase, diff stats,
10
10
  * and conflict files for any worktree left in needs-review.
11
11
  *
12
12
  * Prunes merged/failed worktrees older than TERMINAL_TTL_MS to prevent
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-monitor.d.ts","sourceRoot":"","sources":["../../src/components/worktree-monitor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAyBvD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAChE,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CAwFrB"}
1
+ {"version":3,"file":"worktree-monitor.d.ts","sourceRoot":"","sources":["../../src/components/worktree-monitor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiCvD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAChE,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CA2IrB"}
@@ -10,7 +10,7 @@ export interface WorktreeRow {
10
10
  conflictFiles?: string[] | undefined;
11
11
  }
12
12
  /**
13
- * Worktree sidebar panel — shown beside the AutoPhase PhasePanel when git
13
+ * Worktree sidebar panel — shown beside the Goal PhasePanel when git
14
14
  * worktree isolation is active. One compact row per worktree (branch, owner
15
15
  * phase, diff stats, status). Always visible while live; details on Ctrl+T.
16
16
  */
@@ -0,0 +1,75 @@
1
+ import type { MemoryStore, SlashCommand } from '@wrongstack/core';
2
+ import type { GitInfo } from './git-info.js';
3
+ export interface ContextSlashDeps {
4
+ cwd: string;
5
+ getProvider: () => string;
6
+ getModel: () => string;
7
+ getModeLabel: () => string;
8
+ getGitInfo: () => GitInfo | null;
9
+ getFleet: () => {
10
+ total: number;
11
+ running: number;
12
+ entries: Array<{
13
+ name: string;
14
+ status: string;
15
+ currentTool: string | undefined;
16
+ ctxPct: number | undefined;
17
+ }>;
18
+ };
19
+ getLeader: () => {
20
+ iterations: number;
21
+ toolCalls: number;
22
+ startedAt: number;
23
+ status: string;
24
+ currentTool: {
25
+ name: string;
26
+ startedAt: number;
27
+ } | undefined;
28
+ ctxPct: number | undefined;
29
+ ctxTokens: number | undefined;
30
+ ctxMaxTokens: number | undefined;
31
+ };
32
+ getUptime: () => string;
33
+ /** Terminal width in columns. */
34
+ terminalWidth: number;
35
+ /** Optional super memory store for stats. */
36
+ memoryStats: (() => Promise<{
37
+ total: number;
38
+ byKind: Record<string, number>;
39
+ edges: number;
40
+ byStatus: Record<string, number>;
41
+ } | null>) | undefined;
42
+ /** Optional panel-open bridge for dispatching TUI panels from the slash command. */
43
+ onPanelOpen?: {
44
+ current: ((action: string) => boolean) | null;
45
+ } | undefined;
46
+ }
47
+ /** Adapt the optional extended memory-store surface to context dashboard stats. */
48
+ export declare function createContextMemoryStatsGetter(memoryStore: MemoryStore | undefined): ContextSlashDeps['memoryStats'];
49
+ /**
50
+ * Render a sparkbar: `▓` chars proportional to `value / total`.
51
+ * At least 1 block when value > 0, max 10. Empty when value is 0.
52
+ */
53
+ export declare function sparkbar(value: number, total: number): string;
54
+ /**
55
+ * Render a proportional context-window bar using `█` foreground + `░` background
56
+ * characters. The bar is `width` characters wide and includes a percentage label.
57
+ */
58
+ export declare function contextBar(pct: number, width: number): string;
59
+ export declare function createContextSlashCommand(deps: ContextSlashDeps): SlashCommand;
60
+ /**
61
+ * Pure render of the full context dashboard. Exported so tests can drive it with
62
+ * known deps without mounting Ink or registering a real slash command.
63
+ */
64
+ export declare function renderContext(deps: ContextSlashDeps, memoryData: {
65
+ total: number;
66
+ byKind: Record<string, number>;
67
+ edges: number;
68
+ byStatus: Record<string, number>;
69
+ } | null): string;
70
+ /**
71
+ * Pure render of the expanded context-window view (shown by `/context window`).
72
+ * Exported so tests can drive it directly with known deps.
73
+ */
74
+ export declare function renderContextWindowExpanded(deps: ContextSlashDeps): string;
75
+ //# sourceMappingURL=context-slash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-slash.d.ts","sourceRoot":"","sources":["../src/context-slash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;YAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC;IACF,SAAS,EAAE,MAAM;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;QAC7D,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,EACP,CAAC,MAAM,OAAO,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,IAAI,CAAC,CAAC,GACV,SAAS,CAAC;IACd,oFAAoF;IACpF,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;CAC7E;AAID,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,gBAAgB,CAAC,aAAa,CAAC,CAkBjC;AAID;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7D;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAW7D;AAID,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CA4C9E;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GAAG,IAAI,GACP,MAAM,CAmDR;AAiED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAmR1E"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `/cron` — List all scheduled cron jobs from the cron plugin.
3
+ *
4
+ * Reads the cron job list via a getter callback wired to the agent's
5
+ * `cron_list` tool at registration time. Renders a formatted table of
6
+ * job names, intervals, actions, run counts, and overdue status.
7
+ */
8
+ import type { Agent, SlashCommand } from '@wrongstack/core';
9
+ export interface CronJobView {
10
+ name: string;
11
+ intervalMs: number;
12
+ action: string;
13
+ enabled: boolean;
14
+ lastRun: string | null;
15
+ nextRun: string;
16
+ runCount: number;
17
+ overdue: boolean;
18
+ }
19
+ export interface CronListResult {
20
+ ok: boolean;
21
+ count: number;
22
+ maxConcurrent: number;
23
+ jobs: CronJobView[];
24
+ error?: string | undefined;
25
+ }
26
+ export interface CronSlashDeps {
27
+ getCronJobs: () => Promise<CronListResult>;
28
+ }
29
+ /** Build the shared cron-list loader used by both the slash command and panel. */
30
+ export declare function createCronJobsGetter(agent: Pick<Agent, 'ctx' | 'tools'>): () => Promise<CronListResult>;
31
+ export declare function createCronSlashCommand(deps: CronSlashDeps): SlashCommand;
32
+ export declare function renderCronList(result: CronListResult): string;
33
+ //# sourceMappingURL=cron-slash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-slash.d.ts","sourceRoot":"","sources":["../src/cron-slash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI5D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5C;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,GAClC,MAAM,OAAO,CAAC,cAAc,CAAC,CAqB/B;AASD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAkBxE;AAqCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAqC7D"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Data-driven table of panels/pickers that should close when the user presses
3
+ * Esc. Replaces a hand-maintained `if/if/if` cascade in `app.tsx` that was
4
+ * prone to drift — every new panel had to be added in two places (here and
5
+ * `closePanels`) and several were forgotten.
6
+ *
7
+ * The table is checked in priority order (first match wins). In practice only
8
+ * one panel is open at a time because `closePanels()` enforces mutual
9
+ * exclusivity on open.
10
+ *
11
+ * Panels that own their own Esc handler via a child `useInput` are
12
+ * intentionally absent. Dispatching the toggle from the parent too would
13
+ * double-fire on a single keypress and immediately re-open the panel.
14
+ *
15
+ * Excluded panels (own their own Esc):
16
+ * - worktreeMonitor — `isWorktreeMonitorCloseKey` in WorktreeMonitor.tsx
17
+ * - goalRun monitor — PhaseMonitor owns Esc via its own useInput
18
+ * - kanbanPanel — `key.escape || 'q' → onClose` in KanbanPanel.tsx
19
+ * - goalKanbanPanel — `key.escape || 'q' → onClose` in GoalKanbanPanel.tsx
20
+ *
21
+ * Several entries below are also caught by earlier handlers (tryPickerKey for
22
+ * settings/project, the helpOpen block, the F10 sessions block). They remain
23
+ * in the table as a safety net in case those earlier handlers change.
24
+ */
25
+ import type { Action, State } from './app-reducer.js';
26
+ export interface EscCloseEntry {
27
+ /** Human-readable name for debugging and tests. */
28
+ name: string;
29
+ /** Whether this panel is currently open. */
30
+ isOpen: (state: State) => boolean;
31
+ /** The action to dispatch to close it (payload-free toggle or close). */
32
+ close: Action;
33
+ }
34
+ export declare const ESC_CLOSE_PANELS: readonly EscCloseEntry[];
35
+ /**
36
+ * Find the first open panel in the Esc-close table and return its close action.
37
+ * Returns `null` when no panel is open. Called from the app-level `handleKey`
38
+ * when Esc is pressed and no earlier handler (tryPickerKey, helpOverlay block,
39
+ * F-key toggles, busy-interrupt) has consumed the key.
40
+ */
41
+ export declare function escCloseAction(state: State): Action | null;
42
+ //# sourceMappingURL=esc-close-panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esc-close-panels.d.ts","sourceRoot":"","sources":["../src/esc-close-panels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAClC,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAoBpD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAK1D"}
@@ -1,6 +1,8 @@
1
1
  import type { Action } from './app-reducer.js';
2
2
  import type { StatuslineItem } from './components/statusline-picker.js';
3
- export type FKeyPanelAction = 'projectPickerOpen' | 'toggleMonitor' | 'toggleAgentsMonitor' | 'toggleWorktreeMonitor' | 'togglePlanPanel' | 'toggleTodosMonitor' | 'toggleQueuePanel' | 'toggleProcessList' | 'toggleGoalPanel' | 'toggleSessionsPanel' | 'toggleCoordinatorMonitor' | 'statuslineOpen';
3
+ export type FKeyPanelAction = 'projectPickerOpen' | 'toggleMonitor' | 'toggleAgentsMonitor' | 'toggleWorktreeMonitor' | 'togglePlanPanel' | 'toggleTodosMonitor' | 'toggleQueuePanel' | 'toggleProcessList' | 'toggleGoalPanel' | 'toggleSessionsPanel' | 'toggleCoordinatorMonitor' | 'toggleCronMonitor' | 'statuslineOpen';
4
+ /** Host-side action keys that require work beyond a reducer dispatch. */
5
+ export type FKeyHostAction = 'openProjectPicker' | 'loadLiveSessions' | 'openStatuslinePicker';
4
6
  /** A single F-key panel entry shared by the picker, help overlay, and tests. */
5
7
  export interface FKeyPanelEntry {
6
8
  key: number;
@@ -10,6 +12,11 @@ export interface FKeyPanelEntry {
10
12
  helpKeys: string;
11
13
  /** Short user-facing description for the help overlay. */
12
14
  helpDescription: string;
15
+ /** Optional Ctrl+letter chord alias (e.g. 'f' for Ctrl+F → F2). */
16
+ ctrlAlias?: string | undefined;
17
+ /** When present, this entry needs host-side work instead of (or in addition
18
+ * to) a direct reducer dispatch. The caller resolves these. */
19
+ hostAction?: FKeyHostAction | undefined;
13
20
  }
14
21
  /** All 12 F-key panels in order. */
15
22
  export declare const F_KEY_PANEL_ENTRIES: readonly FKeyPanelEntry[];
@@ -36,6 +43,12 @@ type FKeyDispatchAction = Extract<Action, {
36
43
  } | {
37
44
  type: 'statuslineOpen';
38
45
  }>;
46
+ /**
47
+ * Find the F-key panel entry matching the pressed key — either a plain
48
+ * function key (1–12) or a Ctrl+letter chord alias. Returns null if no
49
+ * entry matches.
50
+ */
51
+ export declare function fKeyEntryFor(fn: number | undefined, ctrl: boolean | undefined, input: string): FKeyPanelEntry | null;
39
52
  /**
40
53
  * Convert a picker entry into the reducer action it can dispatch directly.
41
54
  * Returns null for entries that need host-side work before dispatching, such as
@@ -1 +1 @@
1
- {"version":3,"file":"f-key-panels.d.ts","sourceRoot":"","sources":["../src/f-key-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,eAAe,GACf,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,0BAA0B,GAC1B,gBAAgB,CAAC;AAErB,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAqFxD,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,CAC/B,MAAM,EACJ;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAC7B,CAAC;AAeF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,WAAW,GAAE,SAAS,cAAc,EAAO,GAC1C,kBAAkB,GAAG,IAAI,CAS3B"}
1
+ {"version":3,"file":"f-key-panels.d.ts","sourceRoot":"","sources":["../src/f-key-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,eAAe,GACf,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,0BAA0B,GAC1B,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;AAE/F,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;oEACgE;IAChE,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACzC;AAED,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EA2FxD,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,CAC/B,MAAM,EACJ;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAC7B,CAAC;AAgBF;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GACZ,cAAc,GAAG,IAAI,CAQvB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,WAAW,GAAE,SAAS,cAAc,EAAO,GAC1C,kBAAkB,GAAG,IAAI,CAS3B"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Entry height cache for the scrollable history viewport.
3
+ *
4
+ * Associates each history entry's stable `id` with its measured row height
5
+ * and maintains a prefix-sum array so `accumulatedHeight(index)` is O(1) —
6
+ * essential for the binary-search-based window computation in the virtual
7
+ * scroll viewport.
8
+ *
9
+ * This module is pure TypeScript — no React, no Ink, no DOM dependencies.
10
+ * It can be unit-tested without mounting components.
11
+ */
12
+ /**
13
+ * Default height (in terminal rows) assumed for an entry before its first
14
+ * measurement. 3 rows is a reasonable floor for a single-line entry
15
+ * (border + content + margin) and prevents a flash of zero-height spacers
16
+ * during the first render pass.
17
+ */
18
+ export declare const DEFAULT_ENTRY_HEIGHT = 3;
19
+ /**
20
+ * Prefix-sum-based height cache for history entries.
21
+ *
22
+ * Stores measured heights keyed by entry `id` and keeps a parallel prefix-sum
23
+ * array for O(1) range-height queries and O(log n) scroll-offset-to-entry-index
24
+ * resolution.
25
+ *
26
+ * Threading note: this class is designed for single-threaded use within one
27
+ * React render cycle. It is NOT thread-safe.
28
+ */
29
+ export declare class EntryHeightCache {
30
+ /** id → measured height in terminal rows */
31
+ private readonly heights;
32
+ /**
33
+ * Prefix-sum of heights in insertion order. `prefix[i]` = sum of heights
34
+ * for entries with index < i. Rebuilt on every `record()` call.
35
+ * `prefix[0]` is always 0. Invariant: `prefix.length === this.ids.length + 1`.
36
+ */
37
+ private prefix;
38
+ /** Ordered entry ids matching the prefix-sum positions. */
39
+ private ids;
40
+ /**
41
+ * Record or update the measured height for an entry.
42
+ * Rebuilds the prefix-sum — O(n) where n = distinct entries ever measured.
43
+ * In practice n is the number of entries in the session (hundreds to low
44
+ * thousands), and rebuild happens once per entry per render cycle.
45
+ *
46
+ * Returns `true` when the height changed (new or different from last record).
47
+ */
48
+ record(id: number, height: number): boolean;
49
+ /**
50
+ * Total height in rows of all measured entries.
51
+ * O(1) — returns the last prefix-sum entry.
52
+ */
53
+ totalHeight(): number;
54
+ /**
55
+ * Accumulated row height of entries with index < `entryIndex`.
56
+ * `accumulatedHeight(0)` = 0. Throws when `entryIndex > ids.length`.
57
+ * O(1) via prefix-sum lookup.
58
+ */
59
+ accumulatedHeight(entryIndex: number): number;
60
+ /**
61
+ * Look up the measured height for a single entry id.
62
+ * Returns `undefined` when the entry has never been measured.
63
+ */
64
+ getHeight(id: number): number | undefined;
65
+ /**
66
+ * Number of entries currently tracked.
67
+ */
68
+ get size(): number;
69
+ /**
70
+ * Find the entry index whose accumulated range contains the given
71
+ * vertical `rowOffset` from the top of all content.
72
+ *
73
+ * Binary search on the prefix-sum array. O(log n).
74
+ * Returns `0` for offsets at or before the first entry.
75
+ * Returns `ids.length` for offsets past the last entry.
76
+ */
77
+ entryIndexAtOffset(rowOffset: number): number;
78
+ /**
79
+ * Remove all cached heights and reset to empty state.
80
+ */
81
+ clear(): void;
82
+ /** Rebuild the prefix-sum array from current heights in insertion order. */
83
+ private rebuild;
84
+ }
85
+ /**
86
+ * Compute the visible window slice for a virtual-scrolled entry list.
87
+ *
88
+ * Given the total measured content, viewport size, scroll offset, and entry
89
+ * array, determines which entries to render and how tall the top/bottom spacer
90
+ * elements should be.
91
+ *
92
+ * All measurements are in terminal rows.
93
+ *
94
+ * Returns a result with `startIdx`, `endIdx`, `spacerAbove`, and `spacerBelow`
95
+ * that the caller uses to render only the visible window.
96
+ */
97
+ export interface ComputeWindowResult {
98
+ /** Index of the first entry to render (inclusive). */
99
+ startIdx: number;
100
+ /** Index of the last entry to render (exclusive, like Array.slice end). */
101
+ endIdx: number;
102
+ /** Row height of the spacer above the visible window. 0 when at top. */
103
+ spacerAbove: number;
104
+ /** Row height of the spacer below the visible window. 0 when at bottom. */
105
+ spacerBelow: number;
106
+ /** Total content height measured. */
107
+ totalHeight: number;
108
+ /** Whether the computed window differs from a flat render of all entries. */
109
+ windowed: boolean;
110
+ }
111
+ /**
112
+ * Compute which entries should be rendered in a virtual-scrolled viewport.
113
+ *
114
+ * Pure function — no side effects, no state mutations. Exported for testing.
115
+ *
116
+ * @param totalHeight - Total measured height of all entries in rows.
117
+ * @param viewportRows - Number of visible rows in the viewport.
118
+ * @param scrollOffset - Rows scrolled up from the bottom (0 = pinned to newest).
119
+ * @param entryCount - Total number of entries.
120
+ * @param cache - EntryHeightCache with measured heights.
121
+ * @returns A {@link ComputeWindowResult} describing the visible slice.
122
+ */
123
+ export declare function computeWindow(totalHeight: number, viewportRows: number, scrollOffset: number, entryCount: number, cache: EntryHeightCache): ComputeWindowResult;
124
+ //# sourceMappingURL=height-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"height-cache.d.ts","sourceRoot":"","sources":["../src/height-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAiB;IAE/B,2DAA2D;IAC3D,OAAO,CAAC,GAAG,CAAgB;IAE3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAY1C;IAED;;;OAGG;IACH,WAAW,IAAI,MAAM,CAEpB;IAED;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM5C;IAED;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExC;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAkB5C;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;IAID,4EAA4E;IAC5E,OAAO,CAAC,OAAO;CAQhB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,gBAAgB,GACtB,mBAAmB,CA4DrB"}
@@ -33,6 +33,8 @@ export interface AuthPanelController {
33
33
  * close the panel.
34
34
  */
35
35
  onAuthCtrlC: () => void;
36
+ /** Open the existing masked modal for a slash-command secret prompt. */
37
+ readSecret: (label: string) => Promise<string>;
36
38
  }
37
39
  export declare function useAuthPanel(opts: UseAuthPanelOptions): AuthPanelController;
38
40
  //# sourceMappingURL=use-auth-panel.d.ts.map