@agi-fans/dsh-tui 0.3.0 → 0.5.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 (238) hide show
  1. package/README.md +43 -7
  2. package/lib/CHANGELOG.md +145 -0
  3. package/lib/{box.d.ts → chrome/box.d.ts} +7 -0
  4. package/lib/{box.js → chrome/box.js} +49 -31
  5. package/lib/chrome/box.js.map +1 -0
  6. package/lib/chrome/command-output.js.map +1 -0
  7. package/lib/chrome/diff-render.d.ts +39 -0
  8. package/lib/chrome/diff-render.js +274 -0
  9. package/lib/chrome/diff-render.js.map +1 -0
  10. package/lib/chrome/markdown.d.ts +17 -0
  11. package/lib/chrome/markdown.js +537 -0
  12. package/lib/chrome/markdown.js.map +1 -0
  13. package/lib/chrome/path-mentions.js.map +1 -0
  14. package/lib/chrome/relative-time.js.map +1 -0
  15. package/lib/chrome/renderer.js.map +1 -0
  16. package/lib/chrome/status-config.d.ts +70 -0
  17. package/lib/chrome/status-config.js +147 -0
  18. package/lib/chrome/status-config.js.map +1 -0
  19. package/lib/{status-line.d.ts → chrome/status-line.d.ts} +23 -2
  20. package/lib/chrome/status-line.js +436 -0
  21. package/lib/chrome/status-line.js.map +1 -0
  22. package/lib/chrome/style.js.map +1 -0
  23. package/lib/{theme.d.ts → chrome/theme.d.ts} +5 -3
  24. package/lib/chrome/theme.js +708 -0
  25. package/lib/chrome/theme.js.map +1 -0
  26. package/lib/{tool-renderers.d.ts → chrome/tool-renderers.d.ts} +6 -1
  27. package/lib/{tool-renderers.js → chrome/tool-renderers.js} +69 -36
  28. package/lib/chrome/tool-renderers.js.map +1 -0
  29. package/lib/chrome/tools-list.js.map +1 -0
  30. package/lib/{welcome-tips.js → chrome/welcome-tips.js} +6 -2
  31. package/lib/chrome/welcome-tips.js.map +1 -0
  32. package/lib/chrome/width.js.map +1 -0
  33. package/lib/{command-auth.js → commands/auth.js} +2 -2
  34. package/lib/commands/auth.js.map +1 -0
  35. package/lib/{command-export.js → commands/export.js} +3 -3
  36. package/lib/commands/export.js.map +1 -0
  37. package/lib/{command-integrations.js → commands/integrations.js} +2 -2
  38. package/lib/commands/integrations.js.map +1 -0
  39. package/lib/commands/loop.d.ts +52 -0
  40. package/lib/commands/loop.js +307 -0
  41. package/lib/commands/loop.js.map +1 -0
  42. package/lib/{command-model.js → commands/model.js} +15 -11
  43. package/lib/commands/model.js.map +1 -0
  44. package/lib/{command-permission.js → commands/permission.js} +13 -8
  45. package/lib/commands/permission.js.map +1 -0
  46. package/lib/{command-registration.js → commands/registration.js} +1 -1
  47. package/lib/commands/registration.js.map +1 -0
  48. package/lib/commands/session-configuration.d.ts +5 -0
  49. package/lib/commands/session-configuration.js +108 -0
  50. package/lib/commands/session-configuration.js.map +1 -0
  51. package/lib/{command-session.js → commands/session.js} +11 -7
  52. package/lib/commands/session.js.map +1 -0
  53. package/lib/{command-steer.js → commands/steer.js} +10 -4
  54. package/lib/commands/steer.js.map +1 -0
  55. package/lib/definition.d.ts +20 -1
  56. package/lib/definition.js.map +1 -1
  57. package/lib/index.d.ts +1 -1
  58. package/lib/index.js +1 -1
  59. package/lib/index.js.map +1 -1
  60. package/lib/input/clipboard.js.map +1 -0
  61. package/lib/input/editor.js.map +1 -0
  62. package/lib/input/external-editor.js.map +1 -0
  63. package/lib/{image-paste.d.ts → input/image-paste.d.ts} +1 -1
  64. package/lib/input/image-paste.js.map +1 -0
  65. package/lib/input/keybindings-config.js.map +1 -0
  66. package/lib/input/keys.js.map +1 -0
  67. package/lib/runtime/agent-profile.d.ts +10 -0
  68. package/lib/runtime/agent-profile.js +9 -0
  69. package/lib/runtime/agent-profile.js.map +1 -0
  70. package/lib/{human-interaction.js → runtime/human-interaction.js} +1 -1
  71. package/lib/runtime/human-interaction.js.map +1 -0
  72. package/lib/{provider-local.d.ts → runtime/provider-local.d.ts} +10 -9
  73. package/lib/{provider-local.js → runtime/provider-local.js} +77 -29
  74. package/lib/runtime/provider-local.js.map +1 -0
  75. package/lib/{runner.js → runtime/runner.js} +11 -2
  76. package/lib/runtime/runner.js.map +1 -0
  77. package/lib/{session-runtime.d.ts → runtime/session-runtime.d.ts} +2 -2
  78. package/lib/{session-runtime.js → runtime/session-runtime.js} +3 -3
  79. package/lib/runtime/session-runtime.js.map +1 -0
  80. package/lib/runtime/startup-notices.d.ts +20 -0
  81. package/lib/runtime/startup-notices.js +146 -0
  82. package/lib/runtime/startup-notices.js.map +1 -0
  83. package/lib/{tool-presentation.d.ts → runtime/tool-presentation.d.ts} +1 -1
  84. package/lib/runtime/tool-presentation.js.map +1 -0
  85. package/lib/{interaction-adapter.d.ts → session/interaction-adapter.d.ts} +1 -1
  86. package/lib/session/interaction-adapter.js.map +1 -0
  87. package/lib/session/package-metadata.d.ts +4 -0
  88. package/lib/session/package-metadata.js +11 -0
  89. package/lib/session/package-metadata.js.map +1 -0
  90. package/lib/session/project-context.js.map +1 -0
  91. package/lib/session/project-file-search.js.map +1 -0
  92. package/lib/session/release-notes.d.ts +31 -0
  93. package/lib/session/release-notes.js +120 -0
  94. package/lib/session/release-notes.js.map +1 -0
  95. package/lib/session/session-configuration.d.ts +25 -0
  96. package/lib/session/session-configuration.js +46 -0
  97. package/lib/session/session-configuration.js.map +1 -0
  98. package/lib/{session-controller.d.ts → session/session-controller.d.ts} +13 -2
  99. package/lib/{session-controller.js → session/session-controller.js} +181 -11
  100. package/lib/session/session-controller.js.map +1 -0
  101. package/lib/{tui-settings.d.ts → session/tui-settings.d.ts} +5 -2
  102. package/lib/session/tui-settings.js +42 -0
  103. package/lib/session/tui-settings.js.map +1 -0
  104. package/lib/session/update-check.d.ts +16 -0
  105. package/lib/session/update-check.js +33 -0
  106. package/lib/session/update-check.js.map +1 -0
  107. package/lib/{autocomplete.d.ts → views/autocomplete.d.ts} +1 -1
  108. package/lib/{autocomplete.js → views/autocomplete.js} +17 -18
  109. package/lib/views/autocomplete.js.map +1 -0
  110. package/lib/{copy-selector.d.ts → views/copy-selector.d.ts} +2 -2
  111. package/lib/{copy-selector.js → views/copy-selector.js} +2 -2
  112. package/lib/views/copy-selector.js.map +1 -0
  113. package/lib/views/copy-targets.js.map +1 -0
  114. package/lib/{event-views.d.ts → views/event-views.d.ts} +11 -8
  115. package/lib/{event-views.js → views/event-views.js} +92 -23
  116. package/lib/views/event-views.js.map +1 -0
  117. package/lib/{history-search.d.ts → views/history-search.d.ts} +2 -2
  118. package/lib/{history-search.js → views/history-search.js} +3 -3
  119. package/lib/views/history-search.js.map +1 -0
  120. package/lib/views/history-store.js.map +1 -0
  121. package/lib/{hotkeys.d.ts → views/hotkeys.d.ts} +3 -1
  122. package/lib/{hotkeys.js → views/hotkeys.js} +15 -1
  123. package/lib/views/hotkeys.js.map +1 -0
  124. package/lib/{path-complete.d.ts → views/path-complete.d.ts} +2 -2
  125. package/lib/{path-complete.js → views/path-complete.js} +1 -1
  126. package/lib/views/path-complete.js.map +1 -0
  127. package/lib/{prompt-selector.d.ts → views/prompt-selector.d.ts} +2 -2
  128. package/lib/{prompt-selector.js → views/prompt-selector.js} +4 -4
  129. package/lib/views/prompt-selector.js.map +1 -0
  130. package/lib/{settings-list.d.ts → views/settings-list.d.ts} +13 -5
  131. package/lib/{settings-list.js → views/settings-list.js} +238 -85
  132. package/lib/views/settings-list.js.map +1 -0
  133. package/lib/views/transcript-export.js.map +1 -0
  134. package/package.json +69 -51
  135. package/lib/autocomplete.js.map +0 -1
  136. package/lib/box.js.map +0 -1
  137. package/lib/clipboard.js.map +0 -1
  138. package/lib/command-auth.js.map +0 -1
  139. package/lib/command-export.js.map +0 -1
  140. package/lib/command-integrations.js.map +0 -1
  141. package/lib/command-model.js.map +0 -1
  142. package/lib/command-output.js.map +0 -1
  143. package/lib/command-permission.js.map +0 -1
  144. package/lib/command-registration.js.map +0 -1
  145. package/lib/command-session.js.map +0 -1
  146. package/lib/command-steer.js.map +0 -1
  147. package/lib/copy-selector.js.map +0 -1
  148. package/lib/copy-targets.js.map +0 -1
  149. package/lib/editor.js.map +0 -1
  150. package/lib/event-views.js.map +0 -1
  151. package/lib/external-editor.js.map +0 -1
  152. package/lib/history-search.js.map +0 -1
  153. package/lib/history-store.js.map +0 -1
  154. package/lib/hotkeys.js.map +0 -1
  155. package/lib/human-interaction.js.map +0 -1
  156. package/lib/image-paste.js.map +0 -1
  157. package/lib/interaction-adapter.js.map +0 -1
  158. package/lib/keybindings-config.js.map +0 -1
  159. package/lib/keys.js.map +0 -1
  160. package/lib/markdown.d.ts +0 -13
  161. package/lib/markdown.js +0 -453
  162. package/lib/markdown.js.map +0 -1
  163. package/lib/path-complete.js.map +0 -1
  164. package/lib/path-mentions.js.map +0 -1
  165. package/lib/project-context.js.map +0 -1
  166. package/lib/project-file-search.js.map +0 -1
  167. package/lib/prompt-selector.js.map +0 -1
  168. package/lib/provider-local.js.map +0 -1
  169. package/lib/relative-time.js.map +0 -1
  170. package/lib/renderer.js.map +0 -1
  171. package/lib/runner.js.map +0 -1
  172. package/lib/session-controller.js.map +0 -1
  173. package/lib/session-runtime.js.map +0 -1
  174. package/lib/settings-list.js.map +0 -1
  175. package/lib/status-config.d.ts +0 -32
  176. package/lib/status-config.js +0 -52
  177. package/lib/status-config.js.map +0 -1
  178. package/lib/status-line.js +0 -351
  179. package/lib/status-line.js.map +0 -1
  180. package/lib/style.js.map +0 -1
  181. package/lib/theme.js +0 -317
  182. package/lib/theme.js.map +0 -1
  183. package/lib/tool-presentation.js.map +0 -1
  184. package/lib/tool-renderers.js.map +0 -1
  185. package/lib/tools-list.js.map +0 -1
  186. package/lib/transcript-export.js.map +0 -1
  187. package/lib/tui-settings.js +0 -23
  188. package/lib/tui-settings.js.map +0 -1
  189. package/lib/welcome-tips.js.map +0 -1
  190. package/lib/width.js.map +0 -1
  191. /package/lib/{command-output.d.ts → chrome/command-output.d.ts} +0 -0
  192. /package/lib/{command-output.js → chrome/command-output.js} +0 -0
  193. /package/lib/{path-mentions.d.ts → chrome/path-mentions.d.ts} +0 -0
  194. /package/lib/{path-mentions.js → chrome/path-mentions.js} +0 -0
  195. /package/lib/{relative-time.d.ts → chrome/relative-time.d.ts} +0 -0
  196. /package/lib/{relative-time.js → chrome/relative-time.js} +0 -0
  197. /package/lib/{renderer.d.ts → chrome/renderer.d.ts} +0 -0
  198. /package/lib/{renderer.js → chrome/renderer.js} +0 -0
  199. /package/lib/{style.d.ts → chrome/style.d.ts} +0 -0
  200. /package/lib/{style.js → chrome/style.js} +0 -0
  201. /package/lib/{tools-list.d.ts → chrome/tools-list.d.ts} +0 -0
  202. /package/lib/{tools-list.js → chrome/tools-list.js} +0 -0
  203. /package/lib/{welcome-tips.d.ts → chrome/welcome-tips.d.ts} +0 -0
  204. /package/lib/{width.d.ts → chrome/width.d.ts} +0 -0
  205. /package/lib/{width.js → chrome/width.js} +0 -0
  206. /package/lib/{command-auth.d.ts → commands/auth.d.ts} +0 -0
  207. /package/lib/{command-export.d.ts → commands/export.d.ts} +0 -0
  208. /package/lib/{command-integrations.d.ts → commands/integrations.d.ts} +0 -0
  209. /package/lib/{command-model.d.ts → commands/model.d.ts} +0 -0
  210. /package/lib/{command-permission.d.ts → commands/permission.d.ts} +0 -0
  211. /package/lib/{command-registration.d.ts → commands/registration.d.ts} +0 -0
  212. /package/lib/{command-session.d.ts → commands/session.d.ts} +0 -0
  213. /package/lib/{command-steer.d.ts → commands/steer.d.ts} +0 -0
  214. /package/lib/{clipboard.d.ts → input/clipboard.d.ts} +0 -0
  215. /package/lib/{clipboard.js → input/clipboard.js} +0 -0
  216. /package/lib/{editor.d.ts → input/editor.d.ts} +0 -0
  217. /package/lib/{editor.js → input/editor.js} +0 -0
  218. /package/lib/{external-editor.d.ts → input/external-editor.d.ts} +0 -0
  219. /package/lib/{external-editor.js → input/external-editor.js} +0 -0
  220. /package/lib/{image-paste.js → input/image-paste.js} +0 -0
  221. /package/lib/{keybindings-config.d.ts → input/keybindings-config.d.ts} +0 -0
  222. /package/lib/{keybindings-config.js → input/keybindings-config.js} +0 -0
  223. /package/lib/{keys.d.ts → input/keys.d.ts} +0 -0
  224. /package/lib/{keys.js → input/keys.js} +0 -0
  225. /package/lib/{human-interaction.d.ts → runtime/human-interaction.d.ts} +0 -0
  226. /package/lib/{runner.d.ts → runtime/runner.d.ts} +0 -0
  227. /package/lib/{tool-presentation.js → runtime/tool-presentation.js} +0 -0
  228. /package/lib/{interaction-adapter.js → session/interaction-adapter.js} +0 -0
  229. /package/lib/{project-context.d.ts → session/project-context.d.ts} +0 -0
  230. /package/lib/{project-context.js → session/project-context.js} +0 -0
  231. /package/lib/{project-file-search.d.ts → session/project-file-search.d.ts} +0 -0
  232. /package/lib/{project-file-search.js → session/project-file-search.js} +0 -0
  233. /package/lib/{copy-targets.d.ts → views/copy-targets.d.ts} +0 -0
  234. /package/lib/{copy-targets.js → views/copy-targets.js} +0 -0
  235. /package/lib/{history-store.d.ts → views/history-store.d.ts} +0 -0
  236. /package/lib/{history-store.js → views/history-store.js} +0 -0
  237. /package/lib/{transcript-export.d.ts → views/transcript-export.d.ts} +0 -0
  238. /package/lib/{transcript-export.js → views/transcript-export.js} +0 -0
@@ -1,351 +0,0 @@
1
- /**
2
- * Fixed two-line session footer rendered below the composer.
3
- *
4
- * The caller supplies one stable projection; this module owns copy,
5
- * responsive group selection, color hierarchy, and terminal layout. English
6
- * copy deliberately stays local until a runtime language module provides a
7
- * second locale — then this is the single seam where a dictionary is chosen.
8
- * @module @agi-fans/dsh-tui/status-line
9
- */
10
- import { defaultStatusBarConfig, resolveStatusBarConfig } from "./status-config.js";
11
- import { padToWidth, truncateToWidth, visibleWidth } from "./width.js";
12
- const LABEL_PADDING = 2;
13
- const GROUP_SEPARATOR = ' • ';
14
- const FOOTER_PADDING = 2;
15
- const COLUMN_GAP = 3;
16
- const RIGHT_GROUPS = new Set(['durations', 'counts']);
17
- /** Compact token count: 517 / 12.2K / 517K / 1.2M. */
18
- export function formatTokens(value) {
19
- const scaled = (n) => n >= 100 ? String(Math.round(n)) : String(Math.round(n * 10) / 10);
20
- if (value < 1_000)
21
- return String(value);
22
- if (value < 1_000_000)
23
- return `${scaled(value / 1_000)}K`;
24
- return `${scaled(value / 1_000_000)}M`;
25
- }
26
- /** Compact duration: 45.2s under a minute, 2m42s from there on. */
27
- export function formatDuration(ms) {
28
- const seconds = ms / 1_000;
29
- if (seconds < 60)
30
- return `${Math.round(seconds * 10) / 10}s`;
31
- const whole = Math.round(seconds);
32
- return `${Math.floor(whole / 60)}m${whole % 60}s`;
33
- }
34
- /** Human-readable model throughput with the same precision as dsh web. */
35
- export function formatTokensPerSecond(value) {
36
- return value >= 10 ? String(Math.round(value)) : String(Math.round(value * 10) / 10);
37
- }
38
- function formatContextPercent(tokens, window) {
39
- const percent = Math.max(0, tokens) / window * 100;
40
- const rounded = percent < 10 ? Math.round(percent * 10) / 10 : Math.round(percent);
41
- return String(rounded);
42
- }
43
- function part(text, tone) {
44
- return { text, tone };
45
- }
46
- function metric(label, value, tone = 'value') {
47
- return [part(label + ' ', 'label'), part(value, tone)];
48
- }
49
- /** English semantic groups; language selection will replace copy here. */
50
- function buildStatusGroups(stats, config) {
51
- const groups = [];
52
- if (stats.contextWindow !== undefined && stats.contextWindow > 0) {
53
- const used = stats.contextTokens ?? 0;
54
- groups.push({
55
- id: 'context',
56
- parts: [
57
- ...metric(config.labels === 'compact' ? 'Ctx' : 'Context', `${formatContextPercent(used, stats.contextWindow)}%`),
58
- part(' · ', 'separator'),
59
- part(`${formatTokens(used)}/${formatTokens(stats.contextWindow)}`, 'token'),
60
- ],
61
- });
62
- }
63
- groups.push({
64
- id: 'counts',
65
- parts: [
66
- part(String(stats.turns), 'value'),
67
- part(stats.turns === 1 ? ' turn' : ' turns', 'label'),
68
- part(' · ', 'separator'),
69
- part(String(stats.steps), 'value'),
70
- part(stats.steps === 1 ? ' step' : ' steps', 'label'),
71
- ],
72
- });
73
- if (stats.steps > 0) {
74
- const durations = [];
75
- if (stats.llmMs > 0)
76
- durations.push(...metric('LLM', formatDuration(stats.llmMs)));
77
- if (stats.llmMs > 0 && stats.toolMs > 0)
78
- durations.push(part(' · ', 'separator'));
79
- if (stats.toolMs > 0)
80
- durations.push(...metric('Tools', formatDuration(stats.toolMs)));
81
- if (durations.length > 0)
82
- groups.push({ id: 'durations', parts: durations });
83
- const speed = [];
84
- if (stats.ttftSteps > 0)
85
- speed.push(...metric('TTFT', formatDuration(stats.ttftMs / stats.ttftSteps)));
86
- if (stats.ttftSteps > 0 && stats.decodeMs > 0)
87
- speed.push(part(' · ', 'separator'));
88
- if (stats.decodeMs > 0) {
89
- speed.push(part(`${formatTokensPerSecond(stats.decodeTokens / (stats.decodeMs / 1_000))} tok/s`, 'value'));
90
- }
91
- if (speed.length > 0)
92
- groups.push({ id: 'speed', parts: speed });
93
- }
94
- if (stats.inputTokens > 0 || stats.outputTokens > 0) {
95
- if (stats.inputTokens > 0) {
96
- groups.push({
97
- id: 'cache',
98
- parts: metric('Cache', `${Math.round(stats.cacheReadTokens / stats.inputTokens * 100)}%`, 'positive'),
99
- });
100
- }
101
- groups.push({
102
- id: 'tokens',
103
- parts: [
104
- part(formatTokens(stats.inputTokens), 'token'),
105
- part(' in', 'label'),
106
- part(' · ', 'separator'),
107
- part(formatTokens(stats.outputTokens), 'token'),
108
- part(' out', 'label'),
109
- ],
110
- });
111
- }
112
- return config.groups.flatMap(id => groups.filter(group => group.id === id));
113
- }
114
- function groupText(group) {
115
- return group.parts.map(item => item.text).join('');
116
- }
117
- /** Build the unpainted English groups for diagnostics and tests. */
118
- export function sessionStatusGroups(stats, config = defaultStatusBarConfig()) {
119
- const normalized = resolveStatusBarConfig(config);
120
- if (!normalized.enabled)
121
- return [];
122
- return buildStatusGroups(stats, normalized).map(groupText);
123
- }
124
- function groupsWidth(groups) {
125
- if (groups.length === 0)
126
- return 0;
127
- return groups.reduce((total, group) => total + visibleWidth(groupText(group)), 0)
128
- + GROUP_SEPARATOR.length * (groups.length - 1);
129
- }
130
- function layoutWidth(groups) {
131
- return LABEL_PADDING + groupsWidth(groups);
132
- }
133
- /**
134
- * Keep complete metric groups instead of truncating the sentence. Cache and
135
- * token usage survive first, followed by latency/rate, timings, then counts.
136
- */
137
- function selectGroups(groups, width) {
138
- const selected = [];
139
- for (const group of groups) {
140
- const candidate = [...selected, group];
141
- if (layoutWidth(candidate) > width)
142
- break;
143
- selected.push(group);
144
- }
145
- return selected;
146
- }
147
- function toneColor(tone) {
148
- if (tone === 'value')
149
- return 'text';
150
- if (tone === 'positive')
151
- return 'success';
152
- if (tone === 'token')
153
- return 'customMessageLabel';
154
- return tone === 'separator' ? 'dim' : 'muted';
155
- }
156
- function paintGroup(group, theme) {
157
- return group.parts.map(item => theme.fg(toneColor(item.tone), item.text)).join('');
158
- }
159
- function paintColumn(groups, theme) {
160
- const separator = theme.fg('dim', GROUP_SEPARATOR);
161
- return groups.map(group => paintGroup(group, theme)).join(separator);
162
- }
163
- function splitWidth(left, right) {
164
- const leftWidth = groupsWidth(left);
165
- const rightWidth = groupsWidth(right);
166
- return leftWidth + rightWidth + (leftWidth > 0 && rightWidth > 0 ? COLUMN_GAP : 0);
167
- }
168
- /** Select whole groups in user order, then place timing/activity on the right. */
169
- function selectFooterGroups(groups, width) {
170
- const left = [];
171
- const right = [];
172
- for (const group of groups) {
173
- const candidateLeft = RIGHT_GROUPS.has(group.id) ? left : [...left, group];
174
- const candidateRight = RIGHT_GROUPS.has(group.id) ? [...right, group] : right;
175
- if (splitWidth(candidateLeft, candidateRight) > width)
176
- break;
177
- if (RIGHT_GROUPS.has(group.id))
178
- right.push(group);
179
- else
180
- left.push(group);
181
- }
182
- return { left, right };
183
- }
184
- function renderSplitRow(left, right, width) {
185
- if (width <= 0)
186
- return '';
187
- const padding = width >= FOOTER_PADDING * 2 ? FOOTER_PADDING : 0;
188
- const innerWidth = Math.max(0, width - padding * 2);
189
- const leftWidth = visibleWidth(left);
190
- const rightWidth = visibleWidth(right);
191
- if (leftWidth === 0 || rightWidth === 0) {
192
- const content = leftWidth > 0 ? truncateToWidth(left, innerWidth) : truncateToWidth(right, innerWidth);
193
- return padToWidth(' '.repeat(padding) + content, width);
194
- }
195
- const gap = Math.max(1, innerWidth - leftWidth - rightWidth);
196
- return padToWidth(' '.repeat(padding) + left + ' '.repeat(gap) + right, width);
197
- }
198
- function planStatus(plan) {
199
- if (plan === undefined)
200
- return undefined;
201
- if (plan.pending)
202
- return plan.active
203
- ? { text: 'PLAN→DEFAULT', tone: 'warning' }
204
- : { text: 'PLAN…', tone: 'accent' };
205
- return plan.active ? { text: 'PLAN', tone: 'accent' } : undefined;
206
- }
207
- function fitModelColumn(model, effort, plan, theme, width) {
208
- if (width <= 0)
209
- return '';
210
- const mode = planStatus(plan);
211
- if (mode === undefined) {
212
- if (effort === undefined || effort === '')
213
- return theme.fg('text', truncateToWidth(model, width));
214
- const separator = ' · ';
215
- const effortWidth = visibleWidth(effort);
216
- if (effortWidth >= width)
217
- return theme.fg('customMessageLabel', truncateToWidth(effort, width));
218
- const modelWidth = Math.max(1, width - visibleWidth(separator) - effortWidth);
219
- return theme.fg('text', truncateToWidth(model, modelWidth))
220
- + theme.fg('dim', separator)
221
- + theme.fg('customMessageLabel', effort);
222
- }
223
- const separator = ' · ';
224
- const modeWidth = visibleWidth(mode.text);
225
- if (modeWidth + visibleWidth(separator) >= width)
226
- return theme.fg(mode.tone, truncateToWidth(mode.text, width));
227
- const prefixWidth = width - visibleWidth(separator) - modeWidth;
228
- const prefix = effort === undefined || effort === ''
229
- ? theme.fg('text', truncateToWidth(model, Math.max(1, prefixWidth)))
230
- : (() => {
231
- const effortWidth = visibleWidth(effort);
232
- if (effortWidth + visibleWidth(separator) >= prefixWidth) {
233
- return theme.fg('customMessageLabel', truncateToWidth(effort, Math.max(1, prefixWidth)));
234
- }
235
- const modelWidth = Math.max(1, prefixWidth - visibleWidth(separator) - effortWidth);
236
- return theme.fg('text', truncateToWidth(model, modelWidth))
237
- + theme.fg('dim', separator)
238
- + theme.fg('customMessageLabel', effort);
239
- })();
240
- return prefix + theme.fg('dim', separator) + theme.fg(mode.tone, mode.text);
241
- }
242
- function fitLocationColumn(pwd, branch, theme, width) {
243
- if (width <= 0)
244
- return '';
245
- if (branch === undefined || branch === '')
246
- return theme.fg('muted', truncateToWidth(pwd ?? '', width));
247
- const branchTone = /(?:^|\s)[*?]\d+/.test(branch) ? 'warning' : 'muted';
248
- if (pwd === undefined || pwd === '')
249
- return theme.fg(branchTone, truncateToWidth(branch, width));
250
- const separator = ' · ';
251
- const branchWidth = visibleWidth(branch);
252
- if (branchWidth >= width)
253
- return theme.fg(branchTone, truncateToWidth(branch, width));
254
- const pwdWidth = Math.max(1, width - visibleWidth(separator) - branchWidth);
255
- return theme.fg('muted', truncateToWidth(pwd, pwdWidth))
256
- + theme.fg('dim', separator)
257
- + theme.fg(branchTone, branch);
258
- }
259
- function permissionTone(permission) {
260
- if (permission === 'danger-full-access' || permission === 'custom')
261
- return 'error';
262
- if (permission === 'read-only')
263
- return 'accent';
264
- return 'success';
265
- }
266
- function permissionLabel(permission) {
267
- if (permission === 'danger-full-access')
268
- return 'FULL ACCESS';
269
- if (permission === 'workspace-write')
270
- return 'workspace-write';
271
- if (permission === 'read-only')
272
- return 'read-only';
273
- return permission === 'custom' ? 'CUSTOM ACCESS' : permission;
274
- }
275
- function fitWorkspaceColumn(pwd, branch, permission, theme, width) {
276
- if (permission === undefined || permission === '')
277
- return fitLocationColumn(pwd, branch, theme, width);
278
- const label = permissionLabel(permission);
279
- const separator = ' · ';
280
- const labelWidth = visibleWidth(label);
281
- if (labelWidth >= width)
282
- return theme.fg(permissionTone(permission), truncateToWidth(label, width));
283
- const locationWidth = width - labelWidth - visibleWidth(separator);
284
- const location = fitLocationColumn(pwd, branch, theme, locationWidth);
285
- if (location === '')
286
- return theme.fg(permissionTone(permission), label);
287
- return theme.fg(permissionTone(permission), label) + theme.fg('dim', separator) + location;
288
- }
289
- function metadataColumns(options, theme, innerWidth) {
290
- const plan = planStatus(options.controls?.plan);
291
- const permission = options.controls?.permission;
292
- const rawLeftWidth = visibleWidth(options.model)
293
- + (options.reasoningEffort === undefined || options.reasoningEffort === '' ? 0 : 3 + visibleWidth(options.reasoningEffort))
294
- + (plan === undefined ? 0 : 3 + visibleWidth(plan.text));
295
- const rawLocationWidth = visibleWidth(options.pwd ?? '')
296
- + (options.branch === undefined || options.branch === '' ? 0 : 3 + visibleWidth(options.branch));
297
- const rawRightWidth = rawLocationWidth
298
- + (permission === undefined || permission === ''
299
- ? 0
300
- : visibleWidth(permissionLabel(permission)) + (rawLocationWidth === 0 ? 0 : 3));
301
- if (rawRightWidth === 0) {
302
- return { left: fitModelColumn(options.model, options.reasoningEffort, options.controls?.plan, theme, innerWidth), right: '' };
303
- }
304
- if (rawLeftWidth + COLUMN_GAP + rawRightWidth <= innerWidth) {
305
- return {
306
- left: fitModelColumn(options.model, options.reasoningEffort, options.controls?.plan, theme, rawLeftWidth),
307
- right: fitWorkspaceColumn(options.pwd, options.branch, permission, theme, rawRightWidth),
308
- };
309
- }
310
- const available = Math.max(2, innerWidth - COLUMN_GAP);
311
- const leftWidth = Math.min(rawLeftWidth, Math.max(1, Math.floor(available * 0.45)));
312
- const rightWidth = Math.max(1, available - leftWidth);
313
- return {
314
- left: fitModelColumn(options.model, options.reasoningEffort, options.controls?.plan, theme, leftWidth),
315
- right: fitWorkspaceColumn(options.pwd, options.branch, permission, theme, rightWidth),
316
- };
317
- }
318
- /**
319
- * Render the fixed footer: model/workspace metadata first, customizable
320
- * session telemetry second. Both rows use left/right columns and exact width.
321
- */
322
- export function renderStatusFooter(options, theme) {
323
- const normalized = resolveStatusBarConfig(options.config);
324
- const width = Math.max(0, options.width);
325
- if (width === 0)
326
- return [];
327
- const innerWidth = Math.max(0, width - FOOTER_PADDING * 2);
328
- const metadata = metadataColumns(options, theme, innerWidth);
329
- const telemetryGroups = options.stats === undefined || !normalized.enabled
330
- ? { left: [], right: [] }
331
- : selectFooterGroups(buildStatusGroups(options.stats, normalized), innerWidth);
332
- return [
333
- renderSplitRow(metadata.left, metadata.right, width),
334
- renderSplitRow(paintColumn(telemetryGroups.left, theme), paintColumn(telemetryGroups.right, theme), width),
335
- ];
336
- }
337
- /**
338
- * Render the telemetry row without footer metadata. Used by the settings
339
- * preview and retained as a compatibility seam for direct render callers.
340
- */
341
- export function renderSessionStatusLabel(stats, config, theme, width) {
342
- const normalized = resolveStatusBarConfig(config);
343
- if (stats === undefined || !normalized.enabled || width <= LABEL_PADDING)
344
- return '';
345
- const groups = selectGroups(buildStatusGroups(stats, normalized), width);
346
- if (groups.length === 0)
347
- return '';
348
- const line = ' ' + paintColumn(groups, theme) + ' ';
349
- return truncateToWidth(line, width);
350
- }
351
- //# sourceMappingURL=status-line.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-line.js","sourceRoot":"","sources":["../src/status-line.ts"],"names":[],"mappings":"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"}
package/lib/style.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAcxC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe;IACzC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACxC,OAAO;QACL,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;QACxC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;QAC1C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;QACtC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;KAC5C,CAAA;AACH,CAAC"}