@task-mcp/shared 1.0.13 → 1.0.14

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 (104) hide show
  1. package/dist/algorithms/critical-path.d.ts.map +1 -1
  2. package/dist/algorithms/critical-path.js +2 -14
  3. package/dist/algorithms/critical-path.js.map +1 -1
  4. package/dist/algorithms/dependency-integrity.d.ts +8 -0
  5. package/dist/algorithms/dependency-integrity.d.ts.map +1 -1
  6. package/dist/algorithms/dependency-integrity.js +42 -24
  7. package/dist/algorithms/dependency-integrity.js.map +1 -1
  8. package/dist/algorithms/dependency-integrity.test.d.ts +2 -0
  9. package/dist/algorithms/dependency-integrity.test.d.ts.map +1 -0
  10. package/dist/algorithms/dependency-integrity.test.js +309 -0
  11. package/dist/algorithms/dependency-integrity.test.js.map +1 -0
  12. package/dist/algorithms/tech-analysis.d.ts +5 -5
  13. package/dist/algorithms/tech-analysis.d.ts.map +1 -1
  14. package/dist/algorithms/tech-analysis.js +65 -17
  15. package/dist/algorithms/tech-analysis.js.map +1 -1
  16. package/dist/algorithms/topological-sort.d.ts.map +1 -1
  17. package/dist/algorithms/topological-sort.js +1 -56
  18. package/dist/algorithms/topological-sort.js.map +1 -1
  19. package/dist/schemas/index.d.ts +1 -0
  20. package/dist/schemas/index.d.ts.map +1 -1
  21. package/dist/schemas/index.js +2 -0
  22. package/dist/schemas/index.js.map +1 -1
  23. package/dist/schemas/project.d.ts +6 -6
  24. package/dist/schemas/state.d.ts +17 -0
  25. package/dist/schemas/state.d.ts.map +1 -0
  26. package/dist/schemas/state.js +17 -0
  27. package/dist/schemas/state.js.map +1 -0
  28. package/dist/schemas/task.d.ts +13 -4
  29. package/dist/schemas/task.d.ts.map +1 -1
  30. package/dist/schemas/task.js +3 -0
  31. package/dist/schemas/task.js.map +1 -1
  32. package/dist/schemas/view.d.ts +4 -4
  33. package/dist/utils/dashboard-renderer.d.ts +3 -0
  34. package/dist/utils/dashboard-renderer.d.ts.map +1 -1
  35. package/dist/utils/dashboard-renderer.js +12 -13
  36. package/dist/utils/dashboard-renderer.js.map +1 -1
  37. package/dist/utils/dashboard-renderer.test.d.ts +2 -0
  38. package/dist/utils/dashboard-renderer.test.d.ts.map +1 -0
  39. package/dist/utils/dashboard-renderer.test.js +777 -0
  40. package/dist/utils/dashboard-renderer.test.js.map +1 -0
  41. package/dist/utils/date.d.ts +49 -0
  42. package/dist/utils/date.d.ts.map +1 -1
  43. package/dist/utils/date.js +174 -19
  44. package/dist/utils/date.js.map +1 -1
  45. package/dist/utils/date.test.js +139 -1
  46. package/dist/utils/date.test.js.map +1 -1
  47. package/dist/utils/hierarchy.d.ts +1 -1
  48. package/dist/utils/hierarchy.d.ts.map +1 -1
  49. package/dist/utils/hierarchy.js +15 -5
  50. package/dist/utils/hierarchy.js.map +1 -1
  51. package/dist/utils/hierarchy.test.d.ts +2 -0
  52. package/dist/utils/hierarchy.test.d.ts.map +1 -0
  53. package/dist/utils/hierarchy.test.js +351 -0
  54. package/dist/utils/hierarchy.test.js.map +1 -0
  55. package/dist/utils/id.js +1 -1
  56. package/dist/utils/id.js.map +1 -1
  57. package/dist/utils/index.d.ts +3 -2
  58. package/dist/utils/index.d.ts.map +1 -1
  59. package/dist/utils/index.js +3 -2
  60. package/dist/utils/index.js.map +1 -1
  61. package/dist/utils/natural-language.d.ts.map +1 -1
  62. package/dist/utils/natural-language.js +7 -0
  63. package/dist/utils/natural-language.js.map +1 -1
  64. package/dist/utils/natural-language.test.js +24 -0
  65. package/dist/utils/natural-language.test.js.map +1 -1
  66. package/dist/utils/priority-queue.d.ts +17 -0
  67. package/dist/utils/priority-queue.d.ts.map +1 -0
  68. package/dist/utils/priority-queue.js +62 -0
  69. package/dist/utils/priority-queue.js.map +1 -0
  70. package/dist/utils/projection.d.ts +9 -0
  71. package/dist/utils/projection.d.ts.map +1 -1
  72. package/dist/utils/projection.js +37 -0
  73. package/dist/utils/projection.js.map +1 -1
  74. package/dist/utils/terminal-ui.d.ts +5 -0
  75. package/dist/utils/terminal-ui.d.ts.map +1 -1
  76. package/dist/utils/terminal-ui.js +88 -11
  77. package/dist/utils/terminal-ui.js.map +1 -1
  78. package/dist/utils/terminal-ui.test.d.ts +2 -0
  79. package/dist/utils/terminal-ui.test.d.ts.map +1 -0
  80. package/dist/utils/terminal-ui.test.js +683 -0
  81. package/dist/utils/terminal-ui.test.js.map +1 -0
  82. package/package.json +1 -1
  83. package/src/algorithms/critical-path.ts +6 -14
  84. package/src/algorithms/dependency-integrity.test.ts +348 -0
  85. package/src/algorithms/dependency-integrity.ts +41 -26
  86. package/src/algorithms/tech-analysis.ts +86 -18
  87. package/src/algorithms/topological-sort.ts +1 -62
  88. package/src/schemas/index.ts +3 -0
  89. package/src/schemas/state.ts +23 -0
  90. package/src/schemas/task.ts +3 -0
  91. package/src/utils/dashboard-renderer.test.ts +981 -0
  92. package/src/utils/dashboard-renderer.ts +14 -15
  93. package/src/utils/date.test.ts +170 -1
  94. package/src/utils/date.ts +214 -19
  95. package/src/utils/hierarchy.test.ts +411 -0
  96. package/src/utils/hierarchy.ts +22 -5
  97. package/src/utils/id.ts +1 -1
  98. package/src/utils/index.ts +17 -1
  99. package/src/utils/natural-language.test.ts +28 -0
  100. package/src/utils/natural-language.ts +8 -0
  101. package/src/utils/priority-queue.ts +68 -0
  102. package/src/utils/projection.ts +46 -2
  103. package/src/utils/terminal-ui.test.ts +831 -0
  104. package/src/utils/terminal-ui.ts +90 -10
@@ -149,34 +149,114 @@ export const BOX = {
149
149
  // String Utilities
150
150
  // =============================================================================
151
151
 
152
+ /**
153
+ * Pre-compiled regex for stripping ANSI escape codes (compiled once for performance)
154
+ * Matches all ANSI escape sequences including:
155
+ * - SGR (Select Graphic Rendition) codes: ESC[...m (colors, styles)
156
+ * - CSI (Control Sequence Introducer) codes: ESC[...X where X is any letter
157
+ * - OSC (Operating System Command) codes: ESC]...BEL or ESC]...ESC\
158
+ */
159
+ const ANSI_REGEX = /\x1b(?:\[[0-9;]*[A-Za-z]|\].*?(?:\x07|\x1b\\))/g;
160
+
152
161
  /**
153
162
  * Strip all ANSI escape codes from string
154
163
  */
155
164
  export function stripAnsi(str: string): string {
156
- return str.replace(/\x1b\[[0-9;]*m/g, "");
165
+ return str.replace(ANSI_REGEX, "");
157
166
  }
158
167
 
159
168
  /**
160
169
  * Check if a character is full-width (CJK, Korean, emoji, etc.)
161
170
  * Full-width characters take 2 columns in terminal
162
171
  */
163
- function isFullWidth(char: string): boolean {
172
+ export function isFullWidth(char: string): boolean {
164
173
  const code = char.codePointAt(0);
165
174
  if (code === undefined) return false;
166
175
 
167
176
  return (
177
+ // CJK and Korean
168
178
  (code >= 0x1100 && code <= 0x115f) || // Hangul Jamo
169
- (code >= 0x2e80 && code <= 0x9fff) || // CJK
179
+ (code >= 0x2e80 && code <= 0x9fff) || // CJK Radicals, Kangxi, Ideographs
170
180
  (code >= 0xac00 && code <= 0xd7af) || // Hangul Syllables
171
- (code >= 0xf900 && code <= 0xfaff) || // CJK Compatibility
172
- (code >= 0xfe10 && code <= 0xfe1f) || // Vertical forms
181
+ (code >= 0xf900 && code <= 0xfaff) || // CJK Compatibility Ideographs
182
+ (code >= 0xfe10 && code <= 0xfe1f) || // Vertical Forms
173
183
  (code >= 0xfe30 && code <= 0xfe6f) || // CJK Compatibility Forms
174
- (code >= 0xff00 && code <= 0xff60) || // Fullwidth Forms
175
- (code >= 0xffe0 && code <= 0xffe6) || // Fullwidth symbols
176
- (code >= 0x1f300 && code <= 0x1f9ff) || // Emoji
177
- (code >= 0x2600 && code <= 0x26ff) || // Misc Symbols
184
+ (code >= 0xff00 && code <= 0xff60) || // Fullwidth ASCII
185
+ (code >= 0xffe0 && code <= 0xffe6) || // Fullwidth Symbols
186
+ (code >= 0x20000 && code <= 0x2ffff) || // CJK Extension B, C, D, E, F
187
+ (code >= 0x30000 && code <= 0x3ffff) || // CJK Extension G, H, I
188
+
189
+ // Symbols (typically wide in terminals)
190
+ (code >= 0x2600 && code <= 0x26ff) || // Misc Symbols (sun, moon, stars, etc.)
178
191
  (code >= 0x2700 && code <= 0x27bf) || // Dingbats
179
- (code >= 0x20000 && code <= 0x2ffff) // CJK Extension B+
192
+
193
+ // Emoji ranges (comprehensive coverage)
194
+ (code >= 0x1f1e0 && code <= 0x1f1ff) || // Regional Indicator Symbols (flags)
195
+ (code >= 0x1f300 && code <= 0x1f5ff) || // Misc Symbols & Pictographs
196
+ (code >= 0x1f600 && code <= 0x1f64f) || // Emoticons (faces)
197
+ (code >= 0x1f680 && code <= 0x1f6ff) || // Transport & Map Symbols
198
+ (code >= 0x1f700 && code <= 0x1f77f) || // Alchemical Symbols
199
+ (code >= 0x1f780 && code <= 0x1f7ff) || // Geometric Shapes Extended
200
+ (code >= 0x1f800 && code <= 0x1f8ff) || // Supplemental Arrows-C
201
+ (code >= 0x1f900 && code <= 0x1f9ff) || // Supplemental Symbols & Pictographs
202
+ (code >= 0x1fa00 && code <= 0x1fa6f) || // Chess Symbols
203
+ (code >= 0x1fa70 && code <= 0x1faff) || // Symbols & Pictographs Extended-A
204
+ (code >= 0x1fb00 && code <= 0x1fbff) || // Symbols for Legacy Computing
205
+
206
+ // Additional emoji-related
207
+ (code >= 0x231a && code <= 0x231b) || // Watch, Hourglass
208
+ (code >= 0x23e9 && code <= 0x23f3) || // Media control symbols
209
+ (code >= 0x23f8 && code <= 0x23fa) || // Media control symbols
210
+ (code >= 0x25aa && code <= 0x25ab) || // Squares
211
+ (code >= 0x25b6 && code === 0x25b6) || // Play button
212
+ (code >= 0x25c0 && code === 0x25c0) || // Reverse button
213
+ (code >= 0x25fb && code <= 0x25fe) || // Squares
214
+ (code >= 0x2614 && code <= 0x2615) || // Umbrella, Hot beverage
215
+ (code >= 0x2648 && code <= 0x2653) || // Zodiac
216
+ (code >= 0x267f && code === 0x267f) || // Wheelchair
217
+ (code >= 0x2693 && code === 0x2693) || // Anchor
218
+ (code >= 0x26a1 && code === 0x26a1) || // High voltage
219
+ (code >= 0x26aa && code <= 0x26ab) || // Circles
220
+ (code >= 0x26bd && code <= 0x26be) || // Sports
221
+ (code >= 0x26c4 && code <= 0x26c5) || // Snowman, Sun
222
+ (code >= 0x26ce && code === 0x26ce) || // Ophiuchus
223
+ (code >= 0x26d4 && code === 0x26d4) || // No entry
224
+ (code >= 0x26ea && code === 0x26ea) || // Church
225
+ (code >= 0x26f2 && code <= 0x26f3) || // Fountain, Golf
226
+ (code >= 0x26f5 && code === 0x26f5) || // Sailboat
227
+ (code >= 0x26fa && code === 0x26fa) || // Tent
228
+ (code >= 0x26fd && code === 0x26fd) || // Fuel pump
229
+ (code >= 0x2702 && code === 0x2702) || // Scissors
230
+ (code >= 0x2705 && code === 0x2705) || // Check mark
231
+ (code >= 0x2708 && code <= 0x270d) || // Airplane to Writing hand
232
+ (code >= 0x270f && code === 0x270f) || // Pencil
233
+ (code >= 0x2712 && code === 0x2712) || // Black nib
234
+ (code >= 0x2714 && code === 0x2714) || // Check mark
235
+ (code >= 0x2716 && code === 0x2716) || // X mark
236
+ (code >= 0x271d && code === 0x271d) || // Latin cross
237
+ (code >= 0x2721 && code === 0x2721) || // Star of David
238
+ (code >= 0x2728 && code === 0x2728) || // Sparkles
239
+ (code >= 0x2733 && code <= 0x2734) || // Eight spoked asterisk
240
+ (code >= 0x2744 && code === 0x2744) || // Snowflake
241
+ (code >= 0x2747 && code === 0x2747) || // Sparkle
242
+ (code >= 0x274c && code === 0x274c) || // Cross mark
243
+ (code >= 0x274e && code === 0x274e) || // Cross mark
244
+ (code >= 0x2753 && code <= 0x2755) || // Question marks
245
+ (code >= 0x2757 && code === 0x2757) || // Exclamation
246
+ (code >= 0x2763 && code <= 0x2764) || // Heart exclamation, Heart
247
+ (code >= 0x2795 && code <= 0x2797) || // Plus, Minus, Division
248
+ (code >= 0x27a1 && code === 0x27a1) || // Right arrow
249
+ (code >= 0x27b0 && code === 0x27b0) || // Curly loop
250
+ (code >= 0x27bf && code === 0x27bf) || // Double curly loop
251
+ (code >= 0x2934 && code <= 0x2935) || // Arrows
252
+ (code >= 0x2b05 && code <= 0x2b07) || // Arrows
253
+ (code >= 0x2b1b && code <= 0x2b1c) || // Squares
254
+ (code >= 0x2b50 && code === 0x2b50) || // Star
255
+ (code >= 0x2b55 && code === 0x2b55) || // Circle
256
+ (code >= 0x3030 && code === 0x3030) || // Wavy dash
257
+ (code >= 0x303d && code === 0x303d) || // Part alternation mark
258
+ (code >= 0x3297 && code === 0x3297) || // Circled Ideograph Congratulation
259
+ (code >= 0x3299 && code === 0x3299) // Circled Ideograph Secret
180
260
  );
181
261
  }
182
262