@task-mcp/shared 1.0.22 → 1.0.24

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 (184) hide show
  1. package/dist/algorithms/critical-path.d.ts +47 -0
  2. package/dist/algorithms/critical-path.d.ts.map +1 -0
  3. package/dist/algorithms/critical-path.js +340 -0
  4. package/dist/algorithms/critical-path.js.map +1 -0
  5. package/dist/algorithms/critical-path.test.d.ts +2 -0
  6. package/dist/algorithms/critical-path.test.d.ts.map +1 -0
  7. package/dist/algorithms/critical-path.test.js +184 -0
  8. package/dist/algorithms/critical-path.test.js.map +1 -0
  9. package/dist/algorithms/dependency-integrity.d.ts +81 -0
  10. package/dist/algorithms/dependency-integrity.d.ts.map +1 -0
  11. package/dist/algorithms/dependency-integrity.js +209 -0
  12. package/dist/algorithms/dependency-integrity.js.map +1 -0
  13. package/dist/algorithms/dependency-integrity.test.d.ts +2 -0
  14. package/dist/algorithms/dependency-integrity.test.d.ts.map +1 -0
  15. package/dist/algorithms/dependency-integrity.test.js +296 -0
  16. package/dist/algorithms/dependency-integrity.test.js.map +1 -0
  17. package/dist/algorithms/index.d.ts +5 -0
  18. package/dist/algorithms/index.d.ts.map +1 -0
  19. package/dist/algorithms/index.js +5 -0
  20. package/dist/algorithms/index.js.map +1 -0
  21. package/dist/algorithms/tech-analysis.d.ts +106 -0
  22. package/dist/algorithms/tech-analysis.d.ts.map +1 -0
  23. package/dist/algorithms/tech-analysis.js +351 -0
  24. package/dist/algorithms/tech-analysis.js.map +1 -0
  25. package/dist/algorithms/tech-analysis.test.d.ts +2 -0
  26. package/dist/algorithms/tech-analysis.test.d.ts.map +1 -0
  27. package/dist/algorithms/tech-analysis.test.js +330 -0
  28. package/dist/algorithms/tech-analysis.test.js.map +1 -0
  29. package/dist/algorithms/topological-sort.d.ts +58 -0
  30. package/dist/algorithms/topological-sort.d.ts.map +1 -0
  31. package/dist/algorithms/topological-sort.js +201 -0
  32. package/dist/algorithms/topological-sort.js.map +1 -0
  33. package/dist/algorithms/topological-sort.test.d.ts +2 -0
  34. package/dist/algorithms/topological-sort.test.d.ts.map +1 -0
  35. package/dist/algorithms/topological-sort.test.js +154 -0
  36. package/dist/algorithms/topological-sort.test.js.map +1 -0
  37. package/dist/index.d.ts +4 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +7 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/schemas/inbox.d.ts +55 -0
  42. package/dist/schemas/inbox.d.ts.map +1 -0
  43. package/dist/schemas/inbox.js +25 -0
  44. package/dist/schemas/inbox.js.map +1 -0
  45. package/dist/schemas/index.d.ts +7 -0
  46. package/dist/schemas/index.d.ts.map +1 -0
  47. package/dist/schemas/index.js +17 -0
  48. package/dist/schemas/index.js.map +1 -0
  49. package/dist/schemas/llm-guide.d.ts +147 -0
  50. package/dist/schemas/llm-guide.d.ts.map +1 -0
  51. package/dist/schemas/llm-guide.js +72 -0
  52. package/dist/schemas/llm-guide.js.map +1 -0
  53. package/dist/schemas/project.d.ts +177 -0
  54. package/dist/schemas/project.d.ts.map +1 -0
  55. package/dist/schemas/project.js +56 -0
  56. package/dist/schemas/project.js.map +1 -0
  57. package/dist/schemas/response-format.d.ts +148 -0
  58. package/dist/schemas/response-format.d.ts.map +1 -0
  59. package/dist/schemas/response-format.js +18 -0
  60. package/dist/schemas/response-format.js.map +1 -0
  61. package/dist/schemas/response-schema.d.ts +307 -0
  62. package/dist/schemas/response-schema.d.ts.map +1 -0
  63. package/dist/schemas/response-schema.js +78 -0
  64. package/dist/schemas/response-schema.js.map +1 -0
  65. package/dist/schemas/response-schema.test.d.ts +2 -0
  66. package/dist/schemas/response-schema.test.d.ts.map +1 -0
  67. package/dist/schemas/response-schema.test.js +256 -0
  68. package/dist/schemas/response-schema.test.js.map +1 -0
  69. package/dist/schemas/state.d.ts +17 -0
  70. package/dist/schemas/state.d.ts.map +1 -0
  71. package/dist/schemas/state.js +17 -0
  72. package/dist/schemas/state.js.map +1 -0
  73. package/dist/schemas/task.d.ts +881 -0
  74. package/dist/schemas/task.d.ts.map +1 -0
  75. package/dist/schemas/task.js +177 -0
  76. package/dist/schemas/task.js.map +1 -0
  77. package/dist/schemas/view.d.ts +143 -0
  78. package/dist/schemas/view.d.ts.map +1 -0
  79. package/dist/schemas/view.js +48 -0
  80. package/dist/schemas/view.js.map +1 -0
  81. package/dist/utils/dashboard-renderer.d.ts +93 -0
  82. package/dist/utils/dashboard-renderer.d.ts.map +1 -0
  83. package/dist/utils/dashboard-renderer.js +416 -0
  84. package/dist/utils/dashboard-renderer.js.map +1 -0
  85. package/dist/utils/dashboard-renderer.test.d.ts +2 -0
  86. package/dist/utils/dashboard-renderer.test.d.ts.map +1 -0
  87. package/dist/utils/dashboard-renderer.test.js +772 -0
  88. package/dist/utils/dashboard-renderer.test.js.map +1 -0
  89. package/dist/utils/date.d.ts +94 -0
  90. package/dist/utils/date.d.ts.map +1 -0
  91. package/dist/utils/date.js +323 -0
  92. package/dist/utils/date.js.map +1 -0
  93. package/dist/utils/date.test.d.ts +2 -0
  94. package/dist/utils/date.test.d.ts.map +1 -0
  95. package/dist/utils/date.test.js +276 -0
  96. package/dist/utils/date.test.js.map +1 -0
  97. package/dist/utils/hierarchy.d.ts +102 -0
  98. package/dist/utils/hierarchy.d.ts.map +1 -0
  99. package/dist/utils/hierarchy.js +236 -0
  100. package/dist/utils/hierarchy.js.map +1 -0
  101. package/dist/utils/hierarchy.test.d.ts +2 -0
  102. package/dist/utils/hierarchy.test.d.ts.map +1 -0
  103. package/dist/utils/hierarchy.test.js +423 -0
  104. package/dist/utils/hierarchy.test.js.map +1 -0
  105. package/dist/utils/id.d.ts +60 -0
  106. package/dist/utils/id.d.ts.map +1 -0
  107. package/dist/utils/id.js +118 -0
  108. package/dist/utils/id.js.map +1 -0
  109. package/dist/utils/id.test.d.ts +2 -0
  110. package/dist/utils/id.test.d.ts.map +1 -0
  111. package/dist/utils/id.test.js +193 -0
  112. package/dist/utils/id.test.js.map +1 -0
  113. package/dist/utils/index.d.ts +12 -0
  114. package/dist/utils/index.d.ts.map +1 -0
  115. package/dist/utils/index.js +34 -0
  116. package/dist/utils/index.js.map +1 -0
  117. package/dist/utils/natural-language.d.ts +111 -0
  118. package/dist/utils/natural-language.d.ts.map +1 -0
  119. package/dist/utils/natural-language.js +297 -0
  120. package/dist/utils/natural-language.js.map +1 -0
  121. package/dist/utils/natural-language.test.d.ts +2 -0
  122. package/dist/utils/natural-language.test.d.ts.map +1 -0
  123. package/dist/utils/natural-language.test.js +197 -0
  124. package/dist/utils/natural-language.test.js.map +1 -0
  125. package/dist/utils/priority-queue.d.ts +17 -0
  126. package/dist/utils/priority-queue.d.ts.map +1 -0
  127. package/dist/utils/priority-queue.js +62 -0
  128. package/dist/utils/priority-queue.js.map +1 -0
  129. package/dist/utils/priority-queue.test.d.ts +2 -0
  130. package/dist/utils/priority-queue.test.d.ts.map +1 -0
  131. package/dist/utils/priority-queue.test.js +82 -0
  132. package/dist/utils/priority-queue.test.js.map +1 -0
  133. package/dist/utils/projection.d.ts +65 -0
  134. package/dist/utils/projection.d.ts.map +1 -0
  135. package/dist/utils/projection.js +180 -0
  136. package/dist/utils/projection.js.map +1 -0
  137. package/dist/utils/projection.test.d.ts +2 -0
  138. package/dist/utils/projection.test.d.ts.map +1 -0
  139. package/dist/utils/projection.test.js +341 -0
  140. package/dist/utils/projection.test.js.map +1 -0
  141. package/dist/utils/terminal-ui.d.ts +208 -0
  142. package/dist/utils/terminal-ui.d.ts.map +1 -0
  143. package/dist/utils/terminal-ui.js +614 -0
  144. package/dist/utils/terminal-ui.js.map +1 -0
  145. package/dist/utils/terminal-ui.test.d.ts +2 -0
  146. package/dist/utils/terminal-ui.test.d.ts.map +1 -0
  147. package/dist/utils/terminal-ui.test.js +683 -0
  148. package/dist/utils/terminal-ui.test.js.map +1 -0
  149. package/dist/utils/workspace.d.ts +102 -0
  150. package/dist/utils/workspace.d.ts.map +1 -0
  151. package/dist/utils/workspace.js +183 -0
  152. package/dist/utils/workspace.js.map +1 -0
  153. package/dist/utils/workspace.test.d.ts +2 -0
  154. package/dist/utils/workspace.test.d.ts.map +1 -0
  155. package/dist/utils/workspace.test.js +97 -0
  156. package/dist/utils/workspace.test.js.map +1 -0
  157. package/package.json +5 -1
  158. package/src/algorithms/critical-path.test.ts +227 -0
  159. package/src/algorithms/critical-path.ts +14 -34
  160. package/src/algorithms/dependency-integrity.test.ts +335 -0
  161. package/src/algorithms/dependency-integrity.ts +4 -13
  162. package/src/algorithms/tech-analysis.test.ts +405 -0
  163. package/src/algorithms/tech-analysis.ts +27 -27
  164. package/src/algorithms/topological-sort.test.ts +182 -0
  165. package/src/algorithms/topological-sort.ts +6 -10
  166. package/src/schemas/index.ts +2 -13
  167. package/src/schemas/response-format.ts +6 -6
  168. package/src/schemas/response-schema.test.ts +314 -0
  169. package/src/schemas/response-schema.ts +25 -20
  170. package/src/schemas/task.ts +4 -22
  171. package/src/utils/dashboard-renderer.test.ts +976 -0
  172. package/src/utils/dashboard-renderer.ts +27 -59
  173. package/src/utils/date.test.ts +329 -0
  174. package/src/utils/date.ts +2 -10
  175. package/src/utils/hierarchy.test.ts +488 -0
  176. package/src/utils/hierarchy.ts +4 -5
  177. package/src/utils/id.test.ts +235 -0
  178. package/src/utils/index.ts +7 -1
  179. package/src/utils/natural-language.test.ts +234 -0
  180. package/src/utils/priority-queue.test.ts +103 -0
  181. package/src/utils/projection.test.ts +430 -0
  182. package/src/utils/terminal-ui.test.ts +831 -0
  183. package/src/utils/terminal-ui.ts +53 -54
  184. package/src/utils/workspace.test.ts +125 -0
@@ -0,0 +1,614 @@
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 =
328
+ applyBorder(tl + h.repeat(leftPad)) +
329
+ c.bold(titlePart) +
330
+ applyBorder(h.repeat(rightPad) + tr);
331
+ }
332
+ else {
333
+ top = applyBorder(tl + h.repeat(innerWidth) + tr);
334
+ }
335
+ // Padding lines
336
+ const padLine = applyBorder(v) + " ".repeat(innerWidth) + applyBorder(v);
337
+ const paddingLines = Array(padding).fill(padLine);
338
+ // Content lines
339
+ const contentLines = lines.map((line) => {
340
+ const lineWidth = displayWidth(stripAnsi(line));
341
+ const padRight = innerWidth - lineWidth - padding;
342
+ return (applyBorder(v) +
343
+ " ".repeat(padding) +
344
+ line +
345
+ " ".repeat(Math.max(0, padRight)) +
346
+ applyBorder(v));
347
+ });
348
+ // Bottom border
349
+ const bottom = applyBorder(bl + h.repeat(innerWidth) + br);
350
+ return [top, ...paddingLines, ...contentLines, ...paddingLines, bottom].join("\n");
351
+ }
352
+ /**
353
+ * Draw a box around content (array input, array output)
354
+ * For MCP server compatibility
355
+ */
356
+ export function drawBox(lines, options = {}) {
357
+ const { title, padding = 1, borderColor = "gray" } = options;
358
+ let maxContentWidth = 0;
359
+ for (const line of lines) {
360
+ maxContentWidth = Math.max(maxContentWidth, displayWidth(line));
361
+ }
362
+ const innerWidth = options.width ? options.width - 2 - padding * 2 : maxContentWidth;
363
+ const boxWidth = innerWidth + 2 + padding * 2;
364
+ const result = [];
365
+ const padStr = " ".repeat(padding);
366
+ const applyBorder = (s) => color(s, borderColor);
367
+ // Top border with optional title
368
+ if (title) {
369
+ const titleStr = ` ${title} `;
370
+ const remainingWidth = boxWidth - 2 - displayWidth(titleStr);
371
+ const leftBorder = Math.floor(remainingWidth / 2);
372
+ const rightBorder = remainingWidth - leftBorder;
373
+ result.push(applyBorder(BOX.topLeft) +
374
+ applyBorder(BOX.horizontal.repeat(leftBorder)) +
375
+ c.label(titleStr) +
376
+ applyBorder(BOX.horizontal.repeat(rightBorder)) +
377
+ applyBorder(BOX.topRight));
378
+ }
379
+ else {
380
+ result.push(applyBorder(BOX.topLeft) +
381
+ applyBorder(BOX.horizontal.repeat(boxWidth - 2)) +
382
+ applyBorder(BOX.topRight));
383
+ }
384
+ // Content lines
385
+ for (const line of lines) {
386
+ result.push(applyBorder(BOX.vertical) +
387
+ padStr +
388
+ padEnd(line, innerWidth) +
389
+ padStr +
390
+ applyBorder(BOX.vertical));
391
+ }
392
+ // Bottom border
393
+ result.push(applyBorder(BOX.bottomLeft) +
394
+ applyBorder(BOX.horizontal.repeat(boxWidth - 2)) +
395
+ applyBorder(BOX.bottomRight));
396
+ return result;
397
+ }
398
+ // =============================================================================
399
+ // Side-by-Side Layout
400
+ // =============================================================================
401
+ /**
402
+ * Place multiple boxes side by side (string input, string output)
403
+ */
404
+ export function sideBySide(boxes, gap = 2) {
405
+ const boxLines = boxes.map((b) => b.split("\n"));
406
+ const maxHeight = Math.max(...boxLines.map((lines) => lines.length));
407
+ const boxWidths = boxLines.map((lines) => Math.max(...lines.map((l) => displayWidth(l))));
408
+ // Pad each box to max height
409
+ const paddedBoxLines = boxLines.map((lines, i) => {
410
+ const width = boxWidths[i] ?? 0;
411
+ while (lines.length < maxHeight) {
412
+ lines.push(" ".repeat(width));
413
+ }
414
+ return lines.map((line) => {
415
+ const lineWidth = displayWidth(line);
416
+ if (lineWidth < width) {
417
+ return line + " ".repeat(width - lineWidth);
418
+ }
419
+ return line;
420
+ });
421
+ });
422
+ // Combine lines horizontally
423
+ const result = [];
424
+ const gapStr = " ".repeat(gap);
425
+ for (let i = 0; i < maxHeight; i++) {
426
+ const lineParts = paddedBoxLines.map((lines) => lines[i] ?? "");
427
+ result.push(lineParts.join(gapStr));
428
+ }
429
+ return result.join("\n");
430
+ }
431
+ /**
432
+ * Merge two boxes side by side (array input, array output)
433
+ * For MCP server compatibility
434
+ */
435
+ export function sideBySideArrays(leftLines, rightLines, gap = 2) {
436
+ const leftWidth = leftLines.length > 0 ? Math.max(...leftLines.map(displayWidth)) : 0;
437
+ const maxLines = Math.max(leftLines.length, rightLines.length);
438
+ const result = [];
439
+ const gapStr = " ".repeat(gap);
440
+ const emptyLeft = " ".repeat(leftWidth);
441
+ for (let i = 0; i < maxLines; i++) {
442
+ const left = leftLines[i];
443
+ const right = rightLines[i] ?? "";
444
+ if (left !== undefined) {
445
+ result.push(padEnd(left, leftWidth) + gapStr + right);
446
+ }
447
+ else {
448
+ result.push(emptyLeft + gapStr + right);
449
+ }
450
+ }
451
+ return result;
452
+ }
453
+ export function table(data, columns, options = {}) {
454
+ const { headerColor = "cyan", borderColor = "gray" } = options;
455
+ // Calculate column widths
456
+ const widths = columns.map((col) => {
457
+ const headerWidth = displayWidth(col.header);
458
+ const maxDataWidth = Math.max(...data.map((row) => {
459
+ const val = col.format ? col.format(row[col.key], row) : String(row[col.key] ?? "");
460
+ return displayWidth(val);
461
+ }), 0);
462
+ return col.width ?? Math.max(headerWidth, maxDataWidth);
463
+ });
464
+ const border = color(BOX.vertical, borderColor);
465
+ const hBorder = color(BOX.horizontal, borderColor);
466
+ // Header row
467
+ const headerRow = columns
468
+ .map((col, i) => color(pad(col.header, widths[i] ?? 0, col.align), headerColor))
469
+ .join(` ${border} `);
470
+ // Separator
471
+ const separator = widths.map((w) => hBorder.repeat(w)).join(color(`─${BOX.cross}─`, borderColor));
472
+ // Data rows
473
+ const dataRows = data.map((row) => columns
474
+ .map((col, i) => {
475
+ const w = widths[i] ?? 0;
476
+ const val = col.format ? col.format(row[col.key], row) : String(row[col.key] ?? "");
477
+ return pad(truncateStr(val, w), w, col.align);
478
+ })
479
+ .join(` ${border} `));
480
+ return [headerRow, separator, ...dataRows].join("\n");
481
+ }
482
+ /**
483
+ * Render table with full borders (array output)
484
+ * For MCP server compatibility
485
+ */
486
+ export function renderTable(columns, rows) {
487
+ const colWidths = columns.map((col) => {
488
+ const headerWidth = col.header.length;
489
+ const maxValueWidth = Math.max(...rows.map((row) => String(row[col.key] ?? "").length));
490
+ return col.width ?? Math.max(headerWidth, maxValueWidth);
491
+ });
492
+ const result = [];
493
+ // Header row
494
+ const headerCells = columns.map((col, i) => c.label(center(col.header, colWidths[i] ?? 0)));
495
+ result.push(c.muted(BOX.vertical) + headerCells.join(c.muted(BOX.vertical)) + c.muted(BOX.vertical));
496
+ // Separator
497
+ const separator = columns.map((_, i) => BOX.horizontal.repeat(colWidths[i] ?? 0));
498
+ result.push(c.muted(BOX.teeRight) + c.muted(separator.join(BOX.cross)) + c.muted(BOX.teeLeft));
499
+ // Data rows
500
+ for (const row of rows) {
501
+ const cells = columns.map((col, i) => {
502
+ const w = colWidths[i] ?? 0;
503
+ const value = String(row[col.key] ?? "");
504
+ const colorFn = col.format;
505
+ const colored = colorFn ? colorFn(value, row) : value;
506
+ switch (col.align) {
507
+ case "center":
508
+ return center(String(colored), w);
509
+ case "right":
510
+ return padStart(String(colored), w);
511
+ default:
512
+ return padEnd(String(colored), w);
513
+ }
514
+ });
515
+ result.push(c.muted(BOX.vertical) + cells.join(c.muted(BOX.vertical)) + c.muted(BOX.vertical));
516
+ }
517
+ // Top border
518
+ const topBorder = c.muted(BOX.topLeft) +
519
+ c.muted(colWidths.map((w) => BOX.horizontal.repeat(w)).join(BOX.teeDown)) +
520
+ c.muted(BOX.topRight);
521
+ // Bottom border
522
+ const bottomBorder = c.muted(BOX.bottomLeft) +
523
+ c.muted(colWidths.map((w) => BOX.horizontal.repeat(w)).join(BOX.teeUp)) +
524
+ c.muted(BOX.bottomRight);
525
+ return [topBorder, ...result, bottomBorder];
526
+ }
527
+ // =============================================================================
528
+ // Status & Priority Formatters
529
+ // =============================================================================
530
+ export const statusColors = {
531
+ pending: c.yellow,
532
+ in_progress: c.cyan,
533
+ completed: c.green,
534
+ blocked: c.red,
535
+ deferred: c.muted,
536
+ cancelled: c.muted,
537
+ };
538
+ export const statusIcons = {
539
+ pending: "○",
540
+ in_progress: "◐",
541
+ completed: "●",
542
+ blocked: "⊘",
543
+ deferred: "◇",
544
+ cancelled: "✕",
545
+ };
546
+ export const icons = {
547
+ // Status
548
+ pending: c.yellow("○"),
549
+ in_progress: c.blue("◐"),
550
+ completed: c.green("✓"),
551
+ blocked: c.red("✗"),
552
+ cancelled: c.gray("⊘"),
553
+ // Priority
554
+ critical: c.red("!!!"),
555
+ high: c.yellow("!!"),
556
+ medium: c.blue("!"),
557
+ low: c.gray("·"),
558
+ // Misc
559
+ arrow: c.cyan("→"),
560
+ bullet: c.gray("•"),
561
+ check: c.green("✓"),
562
+ cross: c.red("✗"),
563
+ warning: c.yellow("⚠"),
564
+ info: c.cyan("ℹ"),
565
+ };
566
+ export function formatStatus(status) {
567
+ const icon = statusIcons[status] ?? "?";
568
+ const colorFn = statusColors[status] ?? c.white;
569
+ return colorFn(`${icon} ${status}`);
570
+ }
571
+ export const priorityColors = {
572
+ critical: c.brightRed,
573
+ high: c.yellow,
574
+ medium: c.cyan,
575
+ low: c.green,
576
+ };
577
+ export function formatPriority(priority) {
578
+ const colorFn = priorityColors[priority] ?? c.white;
579
+ return colorFn(priority);
580
+ }
581
+ export function formatDependencies(deps) {
582
+ if (deps.length === 0)
583
+ return c.muted("None");
584
+ return c.magenta(deps.join(", "));
585
+ }
586
+ // =============================================================================
587
+ // Banner
588
+ // =============================================================================
589
+ /**
590
+ * ASCII art text banner
591
+ */
592
+ export function banner(text) {
593
+ const letters = {
594
+ T: ["████", " ██ ", " ██ ", " ██ ", " ██ "],
595
+ A: [" ██ ", "████", "██ █", "████", "██ █"],
596
+ S: ["████", "██ ", "████", " ██", "████"],
597
+ K: ["██ █", "███ ", "██ ", "███ ", "██ █"],
598
+ M: ["█ █", "██ ██", "█ █ █", "█ █", "█ █"],
599
+ C: ["████", "██ ", "██ ", "██ ", "████"],
600
+ P: ["████", "██ █", "████", "██ ", "██ "],
601
+ " ": [" ", " ", " ", " ", " "],
602
+ };
603
+ const chars = text.toUpperCase().split("");
604
+ const lines = ["", "", "", "", ""];
605
+ const defaultLetter = [" ", " ", " ", " ", " "];
606
+ for (const char of chars) {
607
+ const letterLines = letters[char] ?? defaultLetter;
608
+ for (let i = 0; i < 5; i++) {
609
+ lines[i] += (letterLines[i] ?? "") + " ";
610
+ }
611
+ }
612
+ return lines.map((l) => c.cyan(l)).join("\n");
613
+ }
614
+ //# sourceMappingURL=terminal-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-ui.js","sourceRoot":"","sources":["../../src/utils/terminal-ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminal-ui.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-ui.test.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-ui.test.ts"],"names":[],"mappings":""}