@task-mcp/shared 1.0.19 → 1.0.21

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 (163) hide show
  1. package/package.json +1 -6
  2. package/src/schemas/task.ts +60 -14
  3. package/src/utils/date.ts +40 -0
  4. package/src/utils/hierarchy.ts +63 -1
  5. package/src/utils/index.ts +2 -0
  6. package/src/utils/natural-language.ts +12 -0
  7. package/src/utils/projection.ts +14 -3
  8. package/dist/algorithms/critical-path.d.ts +0 -46
  9. package/dist/algorithms/critical-path.d.ts.map +0 -1
  10. package/dist/algorithms/critical-path.js +0 -320
  11. package/dist/algorithms/critical-path.js.map +0 -1
  12. package/dist/algorithms/critical-path.test.d.ts +0 -2
  13. package/dist/algorithms/critical-path.test.d.ts.map +0 -1
  14. package/dist/algorithms/critical-path.test.js +0 -194
  15. package/dist/algorithms/critical-path.test.js.map +0 -1
  16. package/dist/algorithms/dependency-integrity.d.ts +0 -81
  17. package/dist/algorithms/dependency-integrity.d.ts.map +0 -1
  18. package/dist/algorithms/dependency-integrity.js +0 -207
  19. package/dist/algorithms/dependency-integrity.js.map +0 -1
  20. package/dist/algorithms/dependency-integrity.test.d.ts +0 -2
  21. package/dist/algorithms/dependency-integrity.test.d.ts.map +0 -1
  22. package/dist/algorithms/dependency-integrity.test.js +0 -309
  23. package/dist/algorithms/dependency-integrity.test.js.map +0 -1
  24. package/dist/algorithms/index.d.ts +0 -5
  25. package/dist/algorithms/index.d.ts.map +0 -1
  26. package/dist/algorithms/index.js +0 -5
  27. package/dist/algorithms/index.js.map +0 -1
  28. package/dist/algorithms/tech-analysis.d.ts +0 -106
  29. package/dist/algorithms/tech-analysis.d.ts.map +0 -1
  30. package/dist/algorithms/tech-analysis.js +0 -344
  31. package/dist/algorithms/tech-analysis.js.map +0 -1
  32. package/dist/algorithms/tech-analysis.test.d.ts +0 -2
  33. package/dist/algorithms/tech-analysis.test.d.ts.map +0 -1
  34. package/dist/algorithms/tech-analysis.test.js +0 -338
  35. package/dist/algorithms/tech-analysis.test.js.map +0 -1
  36. package/dist/algorithms/topological-sort.d.ts +0 -41
  37. package/dist/algorithms/topological-sort.d.ts.map +0 -1
  38. package/dist/algorithms/topological-sort.js +0 -165
  39. package/dist/algorithms/topological-sort.js.map +0 -1
  40. package/dist/algorithms/topological-sort.test.d.ts +0 -2
  41. package/dist/algorithms/topological-sort.test.d.ts.map +0 -1
  42. package/dist/algorithms/topological-sort.test.js +0 -162
  43. package/dist/algorithms/topological-sort.test.js.map +0 -1
  44. package/dist/index.d.ts +0 -4
  45. package/dist/index.d.ts.map +0 -1
  46. package/dist/index.js +0 -7
  47. package/dist/index.js.map +0 -1
  48. package/dist/schemas/inbox.d.ts +0 -55
  49. package/dist/schemas/inbox.d.ts.map +0 -1
  50. package/dist/schemas/inbox.js +0 -25
  51. package/dist/schemas/inbox.js.map +0 -1
  52. package/dist/schemas/index.d.ts +0 -7
  53. package/dist/schemas/index.d.ts.map +0 -1
  54. package/dist/schemas/index.js +0 -17
  55. package/dist/schemas/index.js.map +0 -1
  56. package/dist/schemas/project.d.ts +0 -177
  57. package/dist/schemas/project.d.ts.map +0 -1
  58. package/dist/schemas/project.js +0 -56
  59. package/dist/schemas/project.js.map +0 -1
  60. package/dist/schemas/response-format.d.ts +0 -148
  61. package/dist/schemas/response-format.d.ts.map +0 -1
  62. package/dist/schemas/response-format.js +0 -18
  63. package/dist/schemas/response-format.js.map +0 -1
  64. package/dist/schemas/response-schema.d.ts +0 -307
  65. package/dist/schemas/response-schema.d.ts.map +0 -1
  66. package/dist/schemas/response-schema.js +0 -75
  67. package/dist/schemas/response-schema.js.map +0 -1
  68. package/dist/schemas/response-schema.test.d.ts +0 -2
  69. package/dist/schemas/response-schema.test.d.ts.map +0 -1
  70. package/dist/schemas/response-schema.test.js +0 -256
  71. package/dist/schemas/response-schema.test.js.map +0 -1
  72. package/dist/schemas/state.d.ts +0 -17
  73. package/dist/schemas/state.d.ts.map +0 -1
  74. package/dist/schemas/state.js +0 -17
  75. package/dist/schemas/state.js.map +0 -1
  76. package/dist/schemas/task.d.ts +0 -625
  77. package/dist/schemas/task.d.ts.map +0 -1
  78. package/dist/schemas/task.js +0 -152
  79. package/dist/schemas/task.js.map +0 -1
  80. package/dist/schemas/view.d.ts +0 -143
  81. package/dist/schemas/view.d.ts.map +0 -1
  82. package/dist/schemas/view.js +0 -48
  83. package/dist/schemas/view.js.map +0 -1
  84. package/dist/utils/dashboard-renderer.d.ts +0 -93
  85. package/dist/utils/dashboard-renderer.d.ts.map +0 -1
  86. package/dist/utils/dashboard-renderer.js +0 -424
  87. package/dist/utils/dashboard-renderer.js.map +0 -1
  88. package/dist/utils/dashboard-renderer.test.d.ts +0 -2
  89. package/dist/utils/dashboard-renderer.test.d.ts.map +0 -1
  90. package/dist/utils/dashboard-renderer.test.js +0 -774
  91. package/dist/utils/dashboard-renderer.test.js.map +0 -1
  92. package/dist/utils/date.d.ts +0 -81
  93. package/dist/utils/date.d.ts.map +0 -1
  94. package/dist/utils/date.js +0 -294
  95. package/dist/utils/date.js.map +0 -1
  96. package/dist/utils/date.test.d.ts +0 -2
  97. package/dist/utils/date.test.d.ts.map +0 -1
  98. package/dist/utils/date.test.js +0 -276
  99. package/dist/utils/date.test.js.map +0 -1
  100. package/dist/utils/hierarchy.d.ts +0 -75
  101. package/dist/utils/hierarchy.d.ts.map +0 -1
  102. package/dist/utils/hierarchy.js +0 -189
  103. package/dist/utils/hierarchy.js.map +0 -1
  104. package/dist/utils/hierarchy.test.d.ts +0 -2
  105. package/dist/utils/hierarchy.test.d.ts.map +0 -1
  106. package/dist/utils/hierarchy.test.js +0 -351
  107. package/dist/utils/hierarchy.test.js.map +0 -1
  108. package/dist/utils/id.d.ts +0 -60
  109. package/dist/utils/id.d.ts.map +0 -1
  110. package/dist/utils/id.js +0 -118
  111. package/dist/utils/id.js.map +0 -1
  112. package/dist/utils/id.test.d.ts +0 -2
  113. package/dist/utils/id.test.d.ts.map +0 -1
  114. package/dist/utils/id.test.js +0 -193
  115. package/dist/utils/id.test.js.map +0 -1
  116. package/dist/utils/index.d.ts +0 -12
  117. package/dist/utils/index.d.ts.map +0 -1
  118. package/dist/utils/index.js +0 -34
  119. package/dist/utils/index.js.map +0 -1
  120. package/dist/utils/natural-language.d.ts +0 -57
  121. package/dist/utils/natural-language.d.ts.map +0 -1
  122. package/dist/utils/natural-language.js +0 -205
  123. package/dist/utils/natural-language.js.map +0 -1
  124. package/dist/utils/natural-language.test.d.ts +0 -2
  125. package/dist/utils/natural-language.test.d.ts.map +0 -1
  126. package/dist/utils/natural-language.test.js +0 -156
  127. package/dist/utils/natural-language.test.js.map +0 -1
  128. package/dist/utils/priority-queue.d.ts +0 -17
  129. package/dist/utils/priority-queue.d.ts.map +0 -1
  130. package/dist/utils/priority-queue.js +0 -62
  131. package/dist/utils/priority-queue.js.map +0 -1
  132. package/dist/utils/projection.d.ts +0 -65
  133. package/dist/utils/projection.d.ts.map +0 -1
  134. package/dist/utils/projection.js +0 -170
  135. package/dist/utils/projection.js.map +0 -1
  136. package/dist/utils/projection.test.d.ts +0 -2
  137. package/dist/utils/projection.test.d.ts.map +0 -1
  138. package/dist/utils/projection.test.js +0 -336
  139. package/dist/utils/projection.test.js.map +0 -1
  140. package/dist/utils/terminal-ui.d.ts +0 -208
  141. package/dist/utils/terminal-ui.d.ts.map +0 -1
  142. package/dist/utils/terminal-ui.js +0 -611
  143. package/dist/utils/terminal-ui.js.map +0 -1
  144. package/dist/utils/terminal-ui.test.d.ts +0 -2
  145. package/dist/utils/terminal-ui.test.d.ts.map +0 -1
  146. package/dist/utils/terminal-ui.test.js +0 -683
  147. package/dist/utils/terminal-ui.test.js.map +0 -1
  148. package/dist/utils/workspace.d.ts +0 -100
  149. package/dist/utils/workspace.d.ts.map +0 -1
  150. package/dist/utils/workspace.js +0 -173
  151. package/dist/utils/workspace.js.map +0 -1
  152. package/src/algorithms/critical-path.test.ts +0 -241
  153. package/src/algorithms/dependency-integrity.test.ts +0 -348
  154. package/src/algorithms/tech-analysis.test.ts +0 -413
  155. package/src/algorithms/topological-sort.test.ts +0 -190
  156. package/src/schemas/response-schema.test.ts +0 -314
  157. package/src/utils/dashboard-renderer.test.ts +0 -983
  158. package/src/utils/date.test.ts +0 -329
  159. package/src/utils/hierarchy.test.ts +0 -411
  160. package/src/utils/id.test.ts +0 -235
  161. package/src/utils/natural-language.test.ts +0 -182
  162. package/src/utils/projection.test.ts +0 -425
  163. package/src/utils/terminal-ui.test.ts +0 -831
@@ -1,611 +0,0 @@
1
- /**
2
- * Terminal UI utilities for task-mcp
3
- * Zero-dependency ANSI colors, box drawing, and layout helpers
4
- * Supports CJK (Korean, Chinese, Japanese) character width calculation
5
- */
6
- // =============================================================================
7
- // ANSI Escape Codes
8
- // =============================================================================
9
- const ESC = "\x1b[";
10
- const RESET = `${ESC}0m`;
11
- // Foreground color codes
12
- const FG = {
13
- black: 30,
14
- red: 31,
15
- green: 32,
16
- yellow: 33,
17
- blue: 34,
18
- magenta: 35,
19
- cyan: 36,
20
- white: 37,
21
- gray: 90,
22
- brightRed: 91,
23
- brightGreen: 92,
24
- brightYellow: 93,
25
- brightBlue: 94,
26
- brightMagenta: 95,
27
- brightCyan: 96,
28
- brightWhite: 97,
29
- };
30
- // Style codes
31
- const STYLE = {
32
- bold: 1,
33
- dim: 2,
34
- italic: 3,
35
- underline: 4,
36
- inverse: 7,
37
- strikethrough: 9,
38
- };
39
- /**
40
- * Apply color to text
41
- */
42
- export function color(text, colorName) {
43
- return `${ESC}${FG[colorName]}m${text}${RESET}`;
44
- }
45
- /**
46
- * Apply style to text
47
- */
48
- export function style(text, styleName) {
49
- return `${ESC}${STYLE[styleName]}m${text}${RESET}`;
50
- }
51
- /**
52
- * Combine color and style
53
- */
54
- export function styled(text, colorName, styleName) {
55
- if (styleName) {
56
- return `${ESC}${STYLE[styleName]};${FG[colorName]}m${text}${RESET}`;
57
- }
58
- return color(text, colorName);
59
- }
60
- // =============================================================================
61
- // Color Helper Functions
62
- // =============================================================================
63
- export const c = {
64
- // Basic styles
65
- reset: (s) => `${s}${RESET}`,
66
- bold: (s) => style(s, "bold"),
67
- dim: (s) => style(s, "dim"),
68
- italic: (s) => style(s, "italic"),
69
- underline: (s) => style(s, "underline"),
70
- // Colors
71
- black: (s) => color(s, "black"),
72
- red: (s) => color(s, "red"),
73
- green: (s) => color(s, "green"),
74
- yellow: (s) => color(s, "yellow"),
75
- blue: (s) => color(s, "blue"),
76
- magenta: (s) => color(s, "magenta"),
77
- cyan: (s) => color(s, "cyan"),
78
- white: (s) => color(s, "white"),
79
- gray: (s) => color(s, "gray"),
80
- // Bright colors
81
- brightRed: (s) => color(s, "brightRed"),
82
- brightGreen: (s) => color(s, "brightGreen"),
83
- brightYellow: (s) => color(s, "brightYellow"),
84
- brightBlue: (s) => color(s, "brightBlue"),
85
- brightMagenta: (s) => color(s, "brightMagenta"),
86
- brightCyan: (s) => color(s, "brightCyan"),
87
- brightWhite: (s) => color(s, "brightWhite"),
88
- // Semantic colors
89
- success: (s) => color(s, "green"),
90
- error: (s) => color(s, "red"),
91
- warning: (s) => color(s, "yellow"),
92
- info: (s) => color(s, "cyan"),
93
- muted: (s) => color(s, "gray"),
94
- highlight: (s) => color(s, "brightCyan"),
95
- label: (s) => styled(s, "cyan", "bold"),
96
- title: (s) => styled(s, "brightWhite", "bold"),
97
- value: (s) => color(s, "white"),
98
- };
99
- // =============================================================================
100
- // Box Drawing Characters
101
- // =============================================================================
102
- export const BOX = {
103
- // Single line
104
- topLeft: "┌",
105
- topRight: "┐",
106
- bottomLeft: "└",
107
- bottomRight: "┘",
108
- horizontal: "─",
109
- vertical: "│",
110
- teeRight: "├",
111
- teeLeft: "┤",
112
- teeDown: "┬",
113
- teeUp: "┴",
114
- cross: "┼",
115
- // Double line
116
- dblTopLeft: "╔",
117
- dblTopRight: "╗",
118
- dblBottomLeft: "╚",
119
- dblBottomRight: "╝",
120
- dblHorizontal: "═",
121
- dblVertical: "║",
122
- // Rounded corners
123
- rTopLeft: "╭",
124
- rTopRight: "╮",
125
- rBottomLeft: "╰",
126
- rBottomRight: "╯",
127
- };
128
- // =============================================================================
129
- // String Utilities
130
- // =============================================================================
131
- /**
132
- * Pre-compiled regex for stripping ANSI escape codes (compiled once for performance)
133
- * Matches all ANSI escape sequences including:
134
- * - SGR (Select Graphic Rendition) codes: ESC[...m (colors, styles)
135
- * - CSI (Control Sequence Introducer) codes: ESC[...X where X is any letter
136
- * - OSC (Operating System Command) codes: ESC]...BEL or ESC]...ESC\
137
- */
138
- const ANSI_REGEX = /\x1b(?:\[[0-9;]*[A-Za-z]|\].*?(?:\x07|\x1b\\))/g;
139
- /**
140
- * Strip all ANSI escape codes from string
141
- */
142
- export function stripAnsi(str) {
143
- return str.replace(ANSI_REGEX, "");
144
- }
145
- /**
146
- * Check if a character is full-width (CJK, Korean, emoji, etc.)
147
- * Full-width characters take 2 columns in terminal
148
- */
149
- export function isFullWidth(char) {
150
- const code = char.codePointAt(0);
151
- if (code === undefined)
152
- return false;
153
- return (
154
- // CJK and Korean
155
- (code >= 0x1100 && code <= 0x115f) || // Hangul Jamo
156
- (code >= 0x2e80 && code <= 0x9fff) || // CJK Radicals, Kangxi, Ideographs
157
- (code >= 0xac00 && code <= 0xd7af) || // Hangul Syllables
158
- (code >= 0xf900 && code <= 0xfaff) || // CJK Compatibility Ideographs
159
- (code >= 0xfe10 && code <= 0xfe1f) || // Vertical Forms
160
- (code >= 0xfe30 && code <= 0xfe6f) || // CJK Compatibility Forms
161
- (code >= 0xff00 && code <= 0xff60) || // Fullwidth ASCII
162
- (code >= 0xffe0 && code <= 0xffe6) || // Fullwidth Symbols
163
- (code >= 0x20000 && code <= 0x2ffff) || // CJK Extension B, C, D, E, F
164
- (code >= 0x30000 && code <= 0x3ffff) || // CJK Extension G, H, I
165
- // Symbols (typically wide in terminals)
166
- (code >= 0x2600 && code <= 0x26ff) || // Misc Symbols (sun, moon, stars, etc.)
167
- (code >= 0x2700 && code <= 0x27bf) || // Dingbats
168
- // Emoji ranges (comprehensive coverage)
169
- (code >= 0x1f1e0 && code <= 0x1f1ff) || // Regional Indicator Symbols (flags)
170
- (code >= 0x1f300 && code <= 0x1f5ff) || // Misc Symbols & Pictographs
171
- (code >= 0x1f600 && code <= 0x1f64f) || // Emoticons (faces)
172
- (code >= 0x1f680 && code <= 0x1f6ff) || // Transport & Map Symbols
173
- (code >= 0x1f700 && code <= 0x1f77f) || // Alchemical Symbols
174
- (code >= 0x1f780 && code <= 0x1f7ff) || // Geometric Shapes Extended
175
- (code >= 0x1f800 && code <= 0x1f8ff) || // Supplemental Arrows-C
176
- (code >= 0x1f900 && code <= 0x1f9ff) || // Supplemental Symbols & Pictographs
177
- (code >= 0x1fa00 && code <= 0x1fa6f) || // Chess Symbols
178
- (code >= 0x1fa70 && code <= 0x1faff) || // Symbols & Pictographs Extended-A
179
- (code >= 0x1fb00 && code <= 0x1fbff) || // Symbols for Legacy Computing
180
- // Additional emoji-related
181
- (code >= 0x231a && code <= 0x231b) || // Watch, Hourglass
182
- (code >= 0x23e9 && code <= 0x23f3) || // Media control symbols
183
- (code >= 0x23f8 && code <= 0x23fa) || // Media control symbols
184
- (code >= 0x25aa && code <= 0x25ab) || // Squares
185
- (code >= 0x25b6 && code === 0x25b6) || // Play button
186
- (code >= 0x25c0 && code === 0x25c0) || // Reverse button
187
- (code >= 0x25fb && code <= 0x25fe) || // Squares
188
- (code >= 0x2614 && code <= 0x2615) || // Umbrella, Hot beverage
189
- (code >= 0x2648 && code <= 0x2653) || // Zodiac
190
- (code >= 0x267f && code === 0x267f) || // Wheelchair
191
- (code >= 0x2693 && code === 0x2693) || // Anchor
192
- (code >= 0x26a1 && code === 0x26a1) || // High voltage
193
- (code >= 0x26aa && code <= 0x26ab) || // Circles
194
- (code >= 0x26bd && code <= 0x26be) || // Sports
195
- (code >= 0x26c4 && code <= 0x26c5) || // Snowman, Sun
196
- (code >= 0x26ce && code === 0x26ce) || // Ophiuchus
197
- (code >= 0x26d4 && code === 0x26d4) || // No entry
198
- (code >= 0x26ea && code === 0x26ea) || // Church
199
- (code >= 0x26f2 && code <= 0x26f3) || // Fountain, Golf
200
- (code >= 0x26f5 && code === 0x26f5) || // Sailboat
201
- (code >= 0x26fa && code === 0x26fa) || // Tent
202
- (code >= 0x26fd && code === 0x26fd) || // Fuel pump
203
- (code >= 0x2702 && code === 0x2702) || // Scissors
204
- (code >= 0x2705 && code === 0x2705) || // Check mark
205
- (code >= 0x2708 && code <= 0x270d) || // Airplane to Writing hand
206
- (code >= 0x270f && code === 0x270f) || // Pencil
207
- (code >= 0x2712 && code === 0x2712) || // Black nib
208
- (code >= 0x2714 && code === 0x2714) || // Check mark
209
- (code >= 0x2716 && code === 0x2716) || // X mark
210
- (code >= 0x271d && code === 0x271d) || // Latin cross
211
- (code >= 0x2721 && code === 0x2721) || // Star of David
212
- (code >= 0x2728 && code === 0x2728) || // Sparkles
213
- (code >= 0x2733 && code <= 0x2734) || // Eight spoked asterisk
214
- (code >= 0x2744 && code === 0x2744) || // Snowflake
215
- (code >= 0x2747 && code === 0x2747) || // Sparkle
216
- (code >= 0x274c && code === 0x274c) || // Cross mark
217
- (code >= 0x274e && code === 0x274e) || // Cross mark
218
- (code >= 0x2753 && code <= 0x2755) || // Question marks
219
- (code >= 0x2757 && code === 0x2757) || // Exclamation
220
- (code >= 0x2763 && code <= 0x2764) || // Heart exclamation, Heart
221
- (code >= 0x2795 && code <= 0x2797) || // Plus, Minus, Division
222
- (code >= 0x27a1 && code === 0x27a1) || // Right arrow
223
- (code >= 0x27b0 && code === 0x27b0) || // Curly loop
224
- (code >= 0x27bf && code === 0x27bf) || // Double curly loop
225
- (code >= 0x2934 && code <= 0x2935) || // Arrows
226
- (code >= 0x2b05 && code <= 0x2b07) || // Arrows
227
- (code >= 0x2b1b && code <= 0x2b1c) || // Squares
228
- (code >= 0x2b50 && code === 0x2b50) || // Star
229
- (code >= 0x2b55 && code === 0x2b55) || // Circle
230
- (code >= 0x3030 && code === 0x3030) || // Wavy dash
231
- (code >= 0x303d && code === 0x303d) || // Part alternation mark
232
- (code >= 0x3297 && code === 0x3297) || // Circled Ideograph Congratulation
233
- (code >= 0x3299 && code === 0x3299) // Circled Ideograph Secret
234
- );
235
- }
236
- /**
237
- * Get display width of string (excluding ANSI codes, CJK = 2 columns)
238
- */
239
- export function displayWidth(str) {
240
- const stripped = stripAnsi(str);
241
- let width = 0;
242
- for (const char of stripped) {
243
- width += isFullWidth(char) ? 2 : 1;
244
- }
245
- return width;
246
- }
247
- // Alias for compatibility
248
- export const visibleLength = displayWidth;
249
- /**
250
- * Pad string to width (accounting for display width)
251
- */
252
- export function pad(str, width, align = "left") {
253
- const len = displayWidth(str);
254
- const diff = width - len;
255
- if (diff <= 0)
256
- return str;
257
- switch (align) {
258
- case "right":
259
- return " ".repeat(diff) + str;
260
- case "center": {
261
- const left = Math.floor(diff / 2);
262
- return " ".repeat(left) + str + " ".repeat(diff - left);
263
- }
264
- default:
265
- return str + " ".repeat(diff);
266
- }
267
- }
268
- // Aliases for compatibility
269
- export const padEnd = (str, width) => pad(str, width, "left");
270
- export const padStart = (str, width) => pad(str, width, "right");
271
- export const center = (str, width) => pad(str, width, "center");
272
- /**
273
- * Truncate string to max display width
274
- */
275
- export function truncateStr(str, maxLen, suffix = "...") {
276
- const stripped = stripAnsi(str);
277
- if (displayWidth(stripped) <= maxLen)
278
- return str;
279
- const suffixWidth = displayWidth(suffix);
280
- let width = 0;
281
- let result = "";
282
- for (const char of stripped) {
283
- const charWidth = isFullWidth(char) ? 2 : 1;
284
- if (width + charWidth > maxLen - suffixWidth)
285
- break;
286
- result += char;
287
- width += charWidth;
288
- }
289
- return result + suffix;
290
- }
291
- /**
292
- * Create a horizontal line
293
- */
294
- export function hline(width, char = BOX.horizontal) {
295
- return char.repeat(width);
296
- }
297
- export function progressBar(current, total, options = {}) {
298
- const { width = 20, filled = "█", empty = "░", showPercent = true, filledColor = "green", emptyColor = "gray", } = options;
299
- const percent = total > 0 ? Math.round((current / total) * 100) : 0;
300
- const filledCount = Math.round((percent / 100) * width);
301
- const emptyCount = width - filledCount;
302
- const bar = color(filled.repeat(filledCount), filledColor) + color(empty.repeat(emptyCount), emptyColor);
303
- return showPercent ? `${bar} ${percent}%` : bar;
304
- }
305
- /**
306
- * Create a box around content (string input, string output)
307
- */
308
- export function box(content, options = {}) {
309
- const { padding = 1, borderColor = "cyan", title, rounded = true } = options;
310
- const lines = content.split("\n");
311
- const maxLen = Math.max(...lines.map(l => displayWidth(stripAnsi(l))), title ? title.length + 2 : 0);
312
- const innerWidth = options.width ? options.width - 2 - padding * 2 : maxLen + padding * 2;
313
- const tl = rounded ? BOX.rTopLeft : BOX.topLeft;
314
- const tr = rounded ? BOX.rTopRight : BOX.topRight;
315
- const bl = rounded ? BOX.rBottomLeft : BOX.bottomLeft;
316
- const br = rounded ? BOX.rBottomRight : BOX.bottomRight;
317
- const h = BOX.horizontal;
318
- const v = BOX.vertical;
319
- const applyBorder = (s) => color(s, borderColor);
320
- // Top border with optional title
321
- let top;
322
- if (title) {
323
- const titlePart = ` ${title} `;
324
- const remaining = innerWidth - titlePart.length;
325
- const leftPad = Math.floor(remaining / 2);
326
- const rightPad = remaining - leftPad;
327
- top = applyBorder(tl + h.repeat(leftPad)) + c.bold(titlePart) + applyBorder(h.repeat(rightPad) + tr);
328
- }
329
- else {
330
- top = applyBorder(tl + h.repeat(innerWidth) + tr);
331
- }
332
- // Padding lines
333
- const padLine = applyBorder(v) + " ".repeat(innerWidth) + applyBorder(v);
334
- const paddingLines = Array(padding).fill(padLine);
335
- // Content lines
336
- const contentLines = lines.map(line => {
337
- const lineWidth = displayWidth(stripAnsi(line));
338
- const padRight = innerWidth - lineWidth - padding;
339
- return applyBorder(v) + " ".repeat(padding) + line + " ".repeat(Math.max(0, padRight)) + applyBorder(v);
340
- });
341
- // Bottom border
342
- const bottom = applyBorder(bl + h.repeat(innerWidth) + br);
343
- return [top, ...paddingLines, ...contentLines, ...paddingLines, bottom].join("\n");
344
- }
345
- /**
346
- * Draw a box around content (array input, array output)
347
- * For MCP server compatibility
348
- */
349
- export function drawBox(lines, options = {}) {
350
- const { title, padding = 1, borderColor = "gray" } = options;
351
- let maxContentWidth = 0;
352
- for (const line of lines) {
353
- maxContentWidth = Math.max(maxContentWidth, displayWidth(line));
354
- }
355
- const innerWidth = options.width ? options.width - 2 - padding * 2 : maxContentWidth;
356
- const boxWidth = innerWidth + 2 + padding * 2;
357
- const result = [];
358
- const padStr = " ".repeat(padding);
359
- const applyBorder = (s) => color(s, borderColor);
360
- // Top border with optional title
361
- if (title) {
362
- const titleStr = ` ${title} `;
363
- const remainingWidth = boxWidth - 2 - displayWidth(titleStr);
364
- const leftBorder = Math.floor(remainingWidth / 2);
365
- const rightBorder = remainingWidth - leftBorder;
366
- result.push(applyBorder(BOX.topLeft) +
367
- applyBorder(BOX.horizontal.repeat(leftBorder)) +
368
- c.label(titleStr) +
369
- applyBorder(BOX.horizontal.repeat(rightBorder)) +
370
- applyBorder(BOX.topRight));
371
- }
372
- else {
373
- result.push(applyBorder(BOX.topLeft) +
374
- applyBorder(BOX.horizontal.repeat(boxWidth - 2)) +
375
- applyBorder(BOX.topRight));
376
- }
377
- // Content lines
378
- for (const line of lines) {
379
- result.push(applyBorder(BOX.vertical) +
380
- padStr +
381
- padEnd(line, innerWidth) +
382
- padStr +
383
- applyBorder(BOX.vertical));
384
- }
385
- // Bottom border
386
- result.push(applyBorder(BOX.bottomLeft) +
387
- applyBorder(BOX.horizontal.repeat(boxWidth - 2)) +
388
- applyBorder(BOX.bottomRight));
389
- return result;
390
- }
391
- // =============================================================================
392
- // Side-by-Side Layout
393
- // =============================================================================
394
- /**
395
- * Place multiple boxes side by side (string input, string output)
396
- */
397
- export function sideBySide(boxes, gap = 2) {
398
- const boxLines = boxes.map(b => b.split("\n"));
399
- const maxHeight = Math.max(...boxLines.map(lines => lines.length));
400
- const boxWidths = boxLines.map(lines => Math.max(...lines.map(l => displayWidth(l))));
401
- // Pad each box to max height
402
- const paddedBoxLines = boxLines.map((lines, i) => {
403
- const width = boxWidths[i] ?? 0;
404
- while (lines.length < maxHeight) {
405
- lines.push(" ".repeat(width));
406
- }
407
- return lines.map(line => {
408
- const lineWidth = displayWidth(line);
409
- if (lineWidth < width) {
410
- return line + " ".repeat(width - lineWidth);
411
- }
412
- return line;
413
- });
414
- });
415
- // Combine lines horizontally
416
- const result = [];
417
- const gapStr = " ".repeat(gap);
418
- for (let i = 0; i < maxHeight; i++) {
419
- const lineParts = paddedBoxLines.map(lines => lines[i] ?? "");
420
- result.push(lineParts.join(gapStr));
421
- }
422
- return result.join("\n");
423
- }
424
- /**
425
- * Merge two boxes side by side (array input, array output)
426
- * For MCP server compatibility
427
- */
428
- export function sideBySideArrays(leftLines, rightLines, gap = 2) {
429
- const leftWidth = leftLines.length > 0
430
- ? Math.max(...leftLines.map(displayWidth))
431
- : 0;
432
- const maxLines = Math.max(leftLines.length, rightLines.length);
433
- const result = [];
434
- const gapStr = " ".repeat(gap);
435
- const emptyLeft = " ".repeat(leftWidth);
436
- for (let i = 0; i < maxLines; i++) {
437
- const left = leftLines[i];
438
- const right = rightLines[i] ?? "";
439
- if (left !== undefined) {
440
- result.push(padEnd(left, leftWidth) + gapStr + right);
441
- }
442
- else {
443
- result.push(emptyLeft + gapStr + right);
444
- }
445
- }
446
- return result;
447
- }
448
- export function table(data, columns, options = {}) {
449
- const { headerColor = "cyan", borderColor = "gray" } = options;
450
- // Calculate column widths
451
- const widths = columns.map(col => {
452
- const headerWidth = displayWidth(col.header);
453
- const maxDataWidth = Math.max(...data.map(row => {
454
- const val = col.format ? col.format(row[col.key], row) : String(row[col.key] ?? "");
455
- return displayWidth(val);
456
- }), 0);
457
- return col.width ?? Math.max(headerWidth, maxDataWidth);
458
- });
459
- const border = color(BOX.vertical, borderColor);
460
- const hBorder = color(BOX.horizontal, borderColor);
461
- // Header row
462
- const headerRow = columns
463
- .map((col, i) => color(pad(col.header, widths[i] ?? 0, col.align), headerColor))
464
- .join(` ${border} `);
465
- // Separator
466
- const separator = widths.map(w => hBorder.repeat(w)).join(color(`─${BOX.cross}─`, borderColor));
467
- // Data rows
468
- const dataRows = data.map(row => columns
469
- .map((col, i) => {
470
- const w = widths[i] ?? 0;
471
- const val = col.format ? col.format(row[col.key], row) : String(row[col.key] ?? "");
472
- return pad(truncateStr(val, w), w, col.align);
473
- })
474
- .join(` ${border} `));
475
- return [headerRow, separator, ...dataRows].join("\n");
476
- }
477
- /**
478
- * Render table with full borders (array output)
479
- * For MCP server compatibility
480
- */
481
- export function renderTable(columns, rows) {
482
- const colWidths = columns.map((col) => {
483
- const headerWidth = col.header.length;
484
- const maxValueWidth = Math.max(...rows.map((row) => String(row[col.key] ?? "").length));
485
- return col.width ?? Math.max(headerWidth, maxValueWidth);
486
- });
487
- const result = [];
488
- // Header row
489
- const headerCells = columns.map((col, i) => c.label(center(col.header, colWidths[i] ?? 0)));
490
- result.push(c.muted(BOX.vertical) + headerCells.join(c.muted(BOX.vertical)) + c.muted(BOX.vertical));
491
- // Separator
492
- const separator = columns.map((_, i) => BOX.horizontal.repeat(colWidths[i] ?? 0));
493
- result.push(c.muted(BOX.teeRight) +
494
- c.muted(separator.join(BOX.cross)) +
495
- c.muted(BOX.teeLeft));
496
- // Data rows
497
- for (const row of rows) {
498
- const cells = columns.map((col, i) => {
499
- const w = colWidths[i] ?? 0;
500
- const value = String(row[col.key] ?? "");
501
- const colorFn = col.format;
502
- const colored = colorFn ? colorFn(value, row) : value;
503
- switch (col.align) {
504
- case "center":
505
- return center(String(colored), w);
506
- case "right":
507
- return padStart(String(colored), w);
508
- default:
509
- return padEnd(String(colored), w);
510
- }
511
- });
512
- result.push(c.muted(BOX.vertical) + cells.join(c.muted(BOX.vertical)) + c.muted(BOX.vertical));
513
- }
514
- // Top border
515
- const topBorder = c.muted(BOX.topLeft) +
516
- c.muted(colWidths.map((w) => BOX.horizontal.repeat(w)).join(BOX.teeDown)) +
517
- c.muted(BOX.topRight);
518
- // Bottom border
519
- const bottomBorder = c.muted(BOX.bottomLeft) +
520
- c.muted(colWidths.map((w) => BOX.horizontal.repeat(w)).join(BOX.teeUp)) +
521
- c.muted(BOX.bottomRight);
522
- return [topBorder, ...result, bottomBorder];
523
- }
524
- // =============================================================================
525
- // Status & Priority Formatters
526
- // =============================================================================
527
- export const statusColors = {
528
- pending: c.yellow,
529
- in_progress: c.cyan,
530
- completed: c.green,
531
- blocked: c.red,
532
- deferred: c.muted,
533
- cancelled: c.muted,
534
- };
535
- export const statusIcons = {
536
- pending: "○",
537
- in_progress: "◐",
538
- completed: "●",
539
- blocked: "⊘",
540
- deferred: "◇",
541
- cancelled: "✕",
542
- };
543
- export const icons = {
544
- // Status
545
- pending: c.yellow("○"),
546
- in_progress: c.blue("◐"),
547
- completed: c.green("✓"),
548
- blocked: c.red("✗"),
549
- cancelled: c.gray("⊘"),
550
- // Priority
551
- critical: c.red("!!!"),
552
- high: c.yellow("!!"),
553
- medium: c.blue("!"),
554
- low: c.gray("·"),
555
- // Misc
556
- arrow: c.cyan("→"),
557
- bullet: c.gray("•"),
558
- check: c.green("✓"),
559
- cross: c.red("✗"),
560
- warning: c.yellow("⚠"),
561
- info: c.cyan("ℹ"),
562
- };
563
- export function formatStatus(status) {
564
- const icon = statusIcons[status] ?? "?";
565
- const colorFn = statusColors[status] ?? c.white;
566
- return colorFn(`${icon} ${status}`);
567
- }
568
- export const priorityColors = {
569
- critical: c.brightRed,
570
- high: c.yellow,
571
- medium: c.cyan,
572
- low: c.green,
573
- };
574
- export function formatPriority(priority) {
575
- const colorFn = priorityColors[priority] ?? c.white;
576
- return colorFn(priority);
577
- }
578
- export function formatDependencies(deps) {
579
- if (deps.length === 0)
580
- return c.muted("None");
581
- return c.magenta(deps.join(", "));
582
- }
583
- // =============================================================================
584
- // Banner
585
- // =============================================================================
586
- /**
587
- * ASCII art text banner
588
- */
589
- export function banner(text) {
590
- const letters = {
591
- T: ["████", " ██ ", " ██ ", " ██ ", " ██ "],
592
- A: [" ██ ", "████", "██ █", "████", "██ █"],
593
- S: ["████", "██ ", "████", " ██", "████"],
594
- K: ["██ █", "███ ", "██ ", "███ ", "██ █"],
595
- M: ["█ █", "██ ██", "█ █ █", "█ █", "█ █"],
596
- C: ["████", "██ ", "██ ", "██ ", "████"],
597
- P: ["████", "██ █", "████", "██ ", "██ "],
598
- " ": [" ", " ", " ", " ", " "],
599
- };
600
- const chars = text.toUpperCase().split("");
601
- const lines = ["", "", "", "", ""];
602
- const defaultLetter = [" ", " ", " ", " ", " "];
603
- for (const char of chars) {
604
- const letterLines = letters[char] ?? defaultLetter;
605
- for (let i = 0; i < 5; i++) {
606
- lines[i] += (letterLines[i] ?? "") + " ";
607
- }
608
- }
609
- return lines.map(l => c.cyan(l)).join("\n");
610
- }
611
- //# sourceMappingURL=terminal-ui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-ui.js","sourceRoot":"","sources":["../../src/utils/terminal-ui.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=terminal-ui.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-ui.test.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-ui.test.ts"],"names":[],"mappings":""}