@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
package/README.md CHANGED
@@ -26,11 +26,14 @@ const exitCode = await runTui({
26
26
  model: 'anthropic-test-model',
27
27
  banner: true,
28
28
  yolo: false,
29
- appVersion: '0.1.6',
29
+ appVersion: '0.287.0',
30
30
  provider: 'anthropic',
31
31
  family: 'anthropic',
32
32
  keyTail: '…ABC',
33
33
  effectiveMaxContext: 200_000,
34
+ statuslineHiddenItems: [],
35
+ setStatuslineHiddenItems: () => {},
36
+ saveStatuslineHiddenItems: async () => {},
34
37
  });
35
38
 
36
39
  process.exit(exitCode);
@@ -39,16 +42,32 @@ process.exit(exitCode);
39
42
  ## What you get
40
43
 
41
44
  ```
42
- ┌─ banner ─────────────────────────────────────────────┐
43
- │ wrongstack 0.1.6 — anthropic · anthropic-test-model │
44
- └──────────────────────────────────────────────────────┘
45
+ ╭──────────────────────────────────────────────────────────────────────────────╮
46
+ │ v0.287.0 │
47
+ │ │
48
+ │ _ ______ ____ _ ______________________ ________ __ │
49
+ │ | | / / __ \/ __ \/ | / / ____/ ___/_ __/ | / ____/ //_/ │
50
+ │ | | /| / / /_/ / / / / |/ / / __ \__ \ / / / /| |/ / / ,< │
51
+ │ | |/ |/ / _, _/ /_/ / /| / /_/ /___/ // / / ___ / /___/ /| | │
52
+ │ |__/|__/_/ |_|\____/_/ |_/\____//____//_/ /_/ |_|\____/_/ |_| │
53
+ │ │
54
+ │ BUILT ON THE WRONG STACK. SHIPPED ANYWAY. │
55
+ │ │
56
+ │ ◆ route anthropic › anthropic-test-model │
57
+ │ ◇ family anthropic ◈ key •••• ABC │
58
+ │ ⌁ workspace /workspace/wrongstack │
59
+ │ │
60
+ │ ★ github.com/wrongstack/wrongstack — don't forget to star! │
61
+ │ ◆ wrongstack.com │
62
+ ╰──────────────────────────────────────────────────────────────────────────────╯
45
63
  user> refactor auth.ts to async/await
46
- ⠋ thinking (3 tools used · 4.2k tokens · 1.3s)
47
- …
64
+ ⠋ thinking (3 tools used · 4.2k tokens · 1.3s)
48
65
  > █ ⚠ YOLO
49
- ───────────────────────────────────────────── ctx 47%
66
+ ───────────────────────────────────────────── ctx 47%
50
67
  ```
51
68
 
69
+ The wordmark and route label render in the brand gradient (orange → pink).
70
+
52
71
  - **History pane** — assistant text, tool calls, tool results, errors, turn summaries
53
72
  - **Streaming text** — partial deltas render live; on abort, partial response is preserved
54
73
  - **Status bar** — model · provider · context-window % · YOLO chip · spinner
@@ -58,6 +77,27 @@ process.exit(exitCode);
58
77
  - **Todo list** — sidebar reflecting `ctx.todos`
59
78
  - **Attachments** — images and files dropped into the input become inline content blocks
60
79
 
80
+ ## Terminal icons and Powerline
81
+
82
+ The TUI defaults to a portable Unicode icon set, so the segmented status rail,
83
+ composer frame, and tool cards work without installing a special font. Two
84
+ additional profiles are available through `WRONGSTACK_TUI_ICON_STYLE`:
85
+
86
+ ```powershell
87
+ # Rich Powerline + development icons (requires a Nerd Font in the terminal)
88
+ $env:WRONGSTACK_TUI_ICON_STYLE = 'nerd'
89
+ wstack --tui
90
+
91
+ # Strict compatibility for basic terminals and CI captures
92
+ $env:WRONGSTACK_TUI_ICON_STYLE = 'ascii'
93
+ wstack --tui
94
+ ```
95
+
96
+ For the `nerd` profile, select a current Nerd Font such as **CaskaydiaCove Nerd
97
+ Font** or **MesloLGS Nerd Font** in Windows Terminal, WezTerm, Kitty, or the
98
+ terminal host you use. Font selection belongs to the terminal; WrongStack does
99
+ not silently install or change system fonts.
100
+
61
101
  ## Key bindings
62
102
 
63
103
  | Key | Effect |
@@ -73,7 +113,7 @@ process.exit(exitCode);
73
113
  | `?` (empty prompt) | Keyboard shortcuts help overlay |
74
114
  | `F1` | Project switcher (also `/project`) |
75
115
  | `Ctrl+F` / `F2` | Toggle fleet orchestration monitor |
76
- | `Ctrl+G` / `F3` | Toggle agents live monitor |
116
+ | `Ctrl+G` / `F3` | Toggle agents panel — left-right split: agent list + live transcript |
77
117
  | `Ctrl+T` / `F4` | Toggle worktree monitor |
78
118
  | `F5` | Toggle plan panel |
79
119
  | `F6` | Toggle todos monitor overlay |
@@ -1,4 +1,5 @@
1
- import type { FleetChatVerbosity, Message } from '@wrongstack/core';
1
+ import type { AutonomyAgentStatus } from './components/history/types.js';
2
+ import type { FleetChatVerbosity, Message, SessionEvent } from '@wrongstack/core';
2
3
  import type { State } from './app-state.js';
3
4
  export type RestoredToolCall = {
4
5
  name: string;
@@ -9,7 +10,19 @@ export type RestoredToolCall = {
9
10
  outputTokens?: number | undefined;
10
11
  outputLines?: number | undefined;
11
12
  };
12
- export declare function buildRestoredEntries(messages: Message[] | undefined, restoredToolCalls?: RestoredToolCall[] | undefined): State['entries'];
13
+ export declare function buildRestoredEntries(messages: Message[] | undefined, restoredToolCalls?: RestoredToolCall[] | undefined, restoredEvents?: SessionEvent[] | undefined): State['entries'];
14
+ /**
15
+ * Rebuild the checkpoint list from a resumed session's events.
16
+ *
17
+ * The live list is fed by the `checkpoint.written` EventBus bridge, which only
18
+ * fires for checkpoints written by THIS process — so without this a resumed
19
+ * session starts with an empty list and `/rewind` reports "no checkpoints"
20
+ * despite a JSONL full of them.
21
+ *
22
+ * `fileCount` is a live-only stat computed when the checkpoint is written; the
23
+ * JSONL does not carry it, so restored rows report 0.
24
+ */
25
+ export declare function buildRestoredCheckpoints(restoredEvents?: SessionEvent[] | undefined): State['checkpoints'];
13
26
  export interface CreateInitialStateOptions {
14
27
  banner: boolean;
15
28
  appVersion?: string | undefined;
@@ -18,7 +31,11 @@ export interface CreateInitialStateOptions {
18
31
  cwd: string;
19
32
  family?: string | undefined;
20
33
  keyTail?: string | undefined;
34
+ /** Background autonomy agents to display in the banner. */
35
+ autonomyAgents?: ReadonlyArray<AutonomyAgentStatus> | undefined;
21
36
  restoredEntries: State['entries'];
37
+ /** Checkpoints rebuilt from a resumed session's events. Empty for a fresh session. */
38
+ restoredCheckpoints?: State['checkpoints'] | undefined;
22
39
  enhanceEnabled: boolean;
23
40
  initialAgentsMonitorOpen?: boolean | undefined;
24
41
  /** Boot-time fleet-chat verbosity (from persisted config). Default 'compact'. */
@@ -1 +1 @@
1
- {"version":3,"file":"app-initial-state.d.ts","sourceRoot":"","sources":["../src/app-initial-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAmB,MAAM,kBAAkB,CAAC;AAIrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,EAC/B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,GACjD,KAAK,CAAC,SAAS,CAAC,CAKlB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/C,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACnD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,KAAK,CAsN5E"}
1
+ {"version":3,"file":"app-initial-state.d.ts","sourceRoot":"","sources":["../src/app-initial-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AAKnG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,EAC/B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAClD,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,GAC1C,KAAK,CAAC,SAAS,CAAC,CAelB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,GAC1C,KAAK,CAAC,aAAa,CAAC,CAatB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAChE,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAClC,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACvD,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/C,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACnD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,KAAK,CA8N5E"}