@task-mcp/shared 1.0.28 → 1.0.29

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 (48) hide show
  1. package/dist/algorithms/index.d.ts +1 -1
  2. package/dist/algorithms/index.d.ts.map +1 -1
  3. package/dist/algorithms/index.js +1 -1
  4. package/dist/algorithms/index.js.map +1 -1
  5. package/dist/algorithms/topological-sort.d.ts +21 -1
  6. package/dist/algorithms/topological-sort.d.ts.map +1 -1
  7. package/dist/algorithms/topological-sort.js +12 -1
  8. package/dist/algorithms/topological-sort.js.map +1 -1
  9. package/dist/schemas/index.d.ts +1 -0
  10. package/dist/schemas/index.d.ts.map +1 -1
  11. package/dist/schemas/index.js +2 -0
  12. package/dist/schemas/index.js.map +1 -1
  13. package/dist/schemas/session.d.ts +521 -0
  14. package/dist/schemas/session.d.ts.map +1 -0
  15. package/dist/schemas/session.js +79 -0
  16. package/dist/schemas/session.js.map +1 -0
  17. package/dist/schemas/task.d.ts.map +1 -1
  18. package/dist/schemas/task.js +20 -6
  19. package/dist/schemas/task.js.map +1 -1
  20. package/dist/schemas/view.d.ts +18 -18
  21. package/dist/utils/hierarchy.d.ts.map +1 -1
  22. package/dist/utils/hierarchy.js +6 -3
  23. package/dist/utils/hierarchy.js.map +1 -1
  24. package/dist/utils/index.d.ts +2 -1
  25. package/dist/utils/index.d.ts.map +1 -1
  26. package/dist/utils/index.js +17 -1
  27. package/dist/utils/index.js.map +1 -1
  28. package/dist/utils/plan-parser.d.ts +57 -0
  29. package/dist/utils/plan-parser.d.ts.map +1 -0
  30. package/dist/utils/plan-parser.js +377 -0
  31. package/dist/utils/plan-parser.js.map +1 -0
  32. package/dist/utils/terminal-ui.d.ts +129 -0
  33. package/dist/utils/terminal-ui.d.ts.map +1 -1
  34. package/dist/utils/terminal-ui.js +191 -0
  35. package/dist/utils/terminal-ui.js.map +1 -1
  36. package/dist/utils/terminal-ui.test.js +236 -0
  37. package/dist/utils/terminal-ui.test.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/algorithms/index.ts +3 -0
  40. package/src/algorithms/topological-sort.ts +31 -1
  41. package/src/schemas/index.ts +11 -0
  42. package/src/schemas/session.ts +100 -0
  43. package/src/schemas/task.ts +30 -16
  44. package/src/utils/hierarchy.ts +8 -3
  45. package/src/utils/index.ts +31 -0
  46. package/src/utils/plan-parser.ts +478 -0
  47. package/src/utils/terminal-ui.test.ts +286 -0
  48. package/src/utils/terminal-ui.ts +315 -0
@@ -0,0 +1,377 @@
1
+ import { extractMetadata } from "./natural-language.js";
2
+ /**
3
+ * Maximum input length to prevent DoS
4
+ */
5
+ const MAX_PLAN_LENGTH = 50000;
6
+ /**
7
+ * Preprocess input to remove code blocks and YAML frontmatter
8
+ */
9
+ function preprocessInput(input) {
10
+ let result = input;
11
+ // Remove YAML frontmatter (--- at start of file)
12
+ // Must be at the very beginning of the document
13
+ const frontmatterMatch = result.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n/);
14
+ if (frontmatterMatch) {
15
+ result = result.slice(frontmatterMatch[0].length);
16
+ }
17
+ // Remove fenced code blocks (``` or ~~~)
18
+ // Matches both backticks and tildes, with optional language identifier
19
+ result = result.replace(/^(`{3,}|~{3,})[^\n]*\n[\s\S]*?\n\1$/gm, "");
20
+ // Also handle code blocks that might not have matching closing fence
21
+ // (replace opening fence and content until next fence or end)
22
+ result = result.replace(/^(`{3,}|~{3,})[^\n]*\n[\s\S]*?(?=\n(`{3,}|~{3,})|$)/gm, (match) => {
23
+ // Only remove if it looks like a code block (has content)
24
+ if (match.includes("\n")) {
25
+ return "";
26
+ }
27
+ return match;
28
+ });
29
+ return result;
30
+ }
31
+ /**
32
+ * Parse markdown/structured text into hierarchical tasks
33
+ *
34
+ * Parsing rules:
35
+ * - `# Header` → Top-level phase (level 0)
36
+ * - `## SubHeader` → Section (level 1)
37
+ * - `- Item` → Task (level based on indentation)
38
+ * - `depends on X`, `after X` → Dependency inference
39
+ * - `!high`, `#tag` → Natural language patterns
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const result = parsePlan(`
44
+ * # Phase 1: Setup
45
+ * - Create database schema !high
46
+ * - Define user table
47
+ * - Define session table
48
+ * - Setup API endpoints (depends on database)
49
+ * `);
50
+ * ```
51
+ */
52
+ export function parsePlan(input, options = {}) {
53
+ if (input.length > MAX_PLAN_LENGTH) {
54
+ return {
55
+ tasks: [],
56
+ phases: [],
57
+ warnings: [`Input exceeds maximum length of ${MAX_PLAN_LENGTH} characters`],
58
+ };
59
+ }
60
+ const { defaultPriority = "medium", parseNaturalLanguage = true, inferDependencies = true, } = options;
61
+ // Preprocess to remove code blocks and YAML frontmatter
62
+ const processedInput = preprocessInput(input);
63
+ const lines = processedInput.split("\n");
64
+ const tasks = [];
65
+ const phases = [];
66
+ const warnings = [];
67
+ let taskCounter = 0;
68
+ let currentPhase = null;
69
+ let currentSection = null;
70
+ let currentParent = null;
71
+ const parentStack = [];
72
+ for (const line of lines) {
73
+ const trimmed = line.trim();
74
+ // Skip empty lines
75
+ if (!trimmed)
76
+ continue;
77
+ // Parse H1 headers as phases (level 0)
78
+ const h1Match = trimmed.match(/^#\s+(.+)$/);
79
+ if (h1Match) {
80
+ const phaseTitle = h1Match[1].trim();
81
+ const tempId = `phase-${++taskCounter}`;
82
+ currentPhase = { tempId, title: phaseTitle };
83
+ phases.push(phaseTitle);
84
+ // Extract metadata if enabled
85
+ let title = phaseTitle;
86
+ let priority;
87
+ let tags;
88
+ if (parseNaturalLanguage) {
89
+ const metadata = extractMetadata(phaseTitle);
90
+ title = metadata.remaining || phaseTitle;
91
+ priority = metadata.priority;
92
+ tags = metadata.tags;
93
+ }
94
+ tasks.push({
95
+ title,
96
+ level: 0,
97
+ tempId,
98
+ priority: priority ?? "high",
99
+ ...(tags && tags.length > 0 && { tags }),
100
+ });
101
+ // Reset section and parent stack
102
+ currentSection = null;
103
+ currentParent = null;
104
+ parentStack.length = 0;
105
+ continue;
106
+ }
107
+ // Parse H2 headers as sections (level 1)
108
+ const h2Match = trimmed.match(/^##\s+(.+)$/);
109
+ if (h2Match) {
110
+ const sectionTitle = h2Match[1].trim();
111
+ const tempId = `section-${++taskCounter}`;
112
+ let title = sectionTitle;
113
+ let priority;
114
+ let tags;
115
+ if (parseNaturalLanguage) {
116
+ const metadata = extractMetadata(sectionTitle);
117
+ title = metadata.remaining || sectionTitle;
118
+ priority = metadata.priority;
119
+ tags = metadata.tags;
120
+ }
121
+ tasks.push({
122
+ title,
123
+ level: 1,
124
+ tempId,
125
+ ...(currentPhase && { parentTempId: currentPhase.tempId }),
126
+ priority: priority ?? defaultPriority,
127
+ ...(tags && tags.length > 0 && { tags }),
128
+ });
129
+ currentSection = { tempId, level: 1 };
130
+ currentParent = null;
131
+ parentStack.length = 0;
132
+ continue;
133
+ }
134
+ // Parse list items as tasks
135
+ const listMatch = line.match(/^(\s*)[-*]\s+(.+)$/);
136
+ if (listMatch) {
137
+ const indent = listMatch[1].length;
138
+ const content = listMatch[2].trim();
139
+ const tempId = `task-${++taskCounter}`;
140
+ // Determine parent based on indentation
141
+ let parentTempId;
142
+ let level;
143
+ // Pop parents from stack that have same or greater indentation
144
+ while (parentStack.length > 0 && parentStack[parentStack.length - 1].indent >= indent) {
145
+ parentStack.pop();
146
+ }
147
+ if (parentStack.length > 0) {
148
+ // Use the last item on stack as parent
149
+ const parent = parentStack[parentStack.length - 1];
150
+ parentTempId = parent.tempId;
151
+ level = Math.min(parent.level + 1, 3); // Max depth 3
152
+ }
153
+ else if (currentSection) {
154
+ parentTempId = currentSection.tempId;
155
+ level = 2;
156
+ }
157
+ else if (currentPhase) {
158
+ parentTempId = currentPhase.tempId;
159
+ level = 1;
160
+ }
161
+ else {
162
+ level = 0;
163
+ }
164
+ // Extract metadata from content
165
+ let title = content;
166
+ let description;
167
+ let priority;
168
+ let tags;
169
+ let dependsOn;
170
+ if (parseNaturalLanguage) {
171
+ const metadata = extractMetadata(content);
172
+ title = metadata.remaining || content;
173
+ priority = metadata.priority;
174
+ tags = metadata.tags;
175
+ }
176
+ // Infer dependencies from text
177
+ if (inferDependencies) {
178
+ dependsOn = inferDependenciesFromText(title, tasks);
179
+ // Clean up dependency text from title
180
+ title = cleanDependencyText(title);
181
+ }
182
+ // Extract description from remaining parentheses (not dependency-related)
183
+ const descExtracted = extractDescription(title);
184
+ title = descExtracted.title;
185
+ description = descExtracted.description;
186
+ const task = {
187
+ title,
188
+ level,
189
+ tempId,
190
+ ...(parentTempId && { parentTempId }),
191
+ ...(description && { description }),
192
+ priority: priority ?? defaultPriority,
193
+ ...(tags && tags.length > 0 && { tags }),
194
+ ...(dependsOn && dependsOn.length > 0 && { dependsOn }),
195
+ };
196
+ tasks.push(task);
197
+ // Push to parent stack for potential children
198
+ parentStack.push({ tempId, level, indent });
199
+ currentParent = { tempId, level, indent };
200
+ continue;
201
+ }
202
+ // Parse numbered list items
203
+ const numberedMatch = line.match(/^(\s*)(\d+)[.)]\s+(.+)$/);
204
+ if (numberedMatch) {
205
+ const indent = numberedMatch[1].length;
206
+ const content = numberedMatch[3].trim();
207
+ const tempId = `task-${++taskCounter}`;
208
+ // Same logic as unordered lists
209
+ while (parentStack.length > 0 && parentStack[parentStack.length - 1].indent >= indent) {
210
+ parentStack.pop();
211
+ }
212
+ let parentTempId;
213
+ let level;
214
+ if (parentStack.length > 0) {
215
+ const parent = parentStack[parentStack.length - 1];
216
+ parentTempId = parent.tempId;
217
+ level = Math.min(parent.level + 1, 3);
218
+ }
219
+ else if (currentSection) {
220
+ parentTempId = currentSection.tempId;
221
+ level = 2;
222
+ }
223
+ else if (currentPhase) {
224
+ parentTempId = currentPhase.tempId;
225
+ level = 1;
226
+ }
227
+ else {
228
+ level = 0;
229
+ }
230
+ let title = content;
231
+ let description;
232
+ let priority;
233
+ let tags;
234
+ let dependsOn;
235
+ if (parseNaturalLanguage) {
236
+ const metadata = extractMetadata(content);
237
+ title = metadata.remaining || content;
238
+ priority = metadata.priority;
239
+ tags = metadata.tags;
240
+ }
241
+ if (inferDependencies) {
242
+ dependsOn = inferDependenciesFromText(title, tasks);
243
+ title = cleanDependencyText(title);
244
+ }
245
+ // Extract description from remaining parentheses
246
+ const descExtracted = extractDescription(title);
247
+ title = descExtracted.title;
248
+ description = descExtracted.description;
249
+ tasks.push({
250
+ title,
251
+ level,
252
+ tempId,
253
+ ...(parentTempId && { parentTempId }),
254
+ ...(description && { description }),
255
+ priority: priority ?? defaultPriority,
256
+ ...(tags && tags.length > 0 && { tags }),
257
+ ...(dependsOn && dependsOn.length > 0 && { dependsOn }),
258
+ });
259
+ parentStack.push({ tempId, level, indent });
260
+ continue;
261
+ }
262
+ }
263
+ return { tasks, phases, warnings };
264
+ }
265
+ /**
266
+ * Infer dependencies from text patterns like "depends on X", "after X"
267
+ */
268
+ function inferDependenciesFromText(content, existingTasks) {
269
+ const deps = [];
270
+ const lower = content.toLowerCase();
271
+ // Pattern: (depends on|after|requires|following) "phrase" or phrase
272
+ const patterns = [
273
+ /\(?\s*depends?\s+on\s+(.+?)\s*\)?/gi,
274
+ /\(?\s*after\s+(.+?)\s*\)?/gi,
275
+ /\(?\s*requires?\s+(.+?)\s*\)?/gi,
276
+ /\(?\s*following\s+(.+?)\s*\)?/gi,
277
+ /\(?\s*blocked\s+by\s+(.+?)\s*\)?/gi,
278
+ ];
279
+ for (const pattern of patterns) {
280
+ let match;
281
+ while ((match = pattern.exec(lower)) !== null) {
282
+ const depPhrase = match[1].trim();
283
+ // Try to find matching task by title
284
+ const found = existingTasks.find((t) => {
285
+ const taskTitle = t.title.toLowerCase();
286
+ return (taskTitle.includes(depPhrase) ||
287
+ depPhrase.includes(taskTitle) ||
288
+ fuzzyMatch(taskTitle, depPhrase));
289
+ });
290
+ if (found && !deps.includes(found.tempId)) {
291
+ deps.push(found.tempId);
292
+ }
293
+ }
294
+ }
295
+ return deps;
296
+ }
297
+ /**
298
+ * Simple fuzzy matching for dependency detection
299
+ */
300
+ function fuzzyMatch(a, b) {
301
+ // Remove common words and compare
302
+ const stopWords = ["the", "a", "an", "to", "for", "of", "in", "on", "at"];
303
+ const normalize = (s) => s
304
+ .toLowerCase()
305
+ .split(/\s+/)
306
+ .filter((w) => !stopWords.includes(w))
307
+ .join(" ");
308
+ const aNorm = normalize(a);
309
+ const bNorm = normalize(b);
310
+ // Check if significant overlap
311
+ const aWords = aNorm.split(" ");
312
+ const bWords = bNorm.split(" ");
313
+ const matches = aWords.filter((w) => bWords.includes(w));
314
+ return matches.length >= Math.min(2, Math.min(aWords.length, bWords.length));
315
+ }
316
+ /**
317
+ * Remove dependency text from title
318
+ */
319
+ function cleanDependencyText(title) {
320
+ return title
321
+ .replace(/\(?\s*depends?\s+on\s+.+?\s*\)?/gi, "")
322
+ .replace(/\(?\s*after\s+.+?\s*\)?/gi, "")
323
+ .replace(/\(?\s*requires?\s+.+?\s*\)?/gi, "")
324
+ .replace(/\(?\s*following\s+.+?\s*\)?/gi, "")
325
+ .replace(/\(?\s*blocked\s+by\s+.+?\s*\)?/gi, "")
326
+ .replace(/\s+/g, " ")
327
+ .trim();
328
+ }
329
+ /**
330
+ * Extract description from title
331
+ *
332
+ * Patterns supported:
333
+ * - "제목: 설명" → colon separator
334
+ * - "제목 -- 설명" → double dash separator
335
+ * - "제목 (설명)" → parentheses (after dependency cleanup)
336
+ *
337
+ * @example
338
+ * extractDescription("API 구현: 라우팅, 인증 담당")
339
+ * // → { title: "API 구현", description: "라우팅, 인증 담당" }
340
+ *
341
+ * extractDescription("API 구현 (라우팅, 인증 담당)")
342
+ * // → { title: "API 구현", description: "라우팅, 인증 담당" }
343
+ */
344
+ function extractDescription(title) {
345
+ // Pattern 1: Colon separator (but not time like "10:30")
346
+ // Match "제목: 설명" but not "10:30" or "http://..."
347
+ const colonMatch = title.match(/^(.+?):\s+([^/].{5,})$/);
348
+ if (colonMatch && !/^\d+:\d+/.test(colonMatch[2])) {
349
+ return {
350
+ title: colonMatch[1].trim(),
351
+ description: colonMatch[2].trim(),
352
+ };
353
+ }
354
+ // Pattern 2: Double dash separator "제목 -- 설명"
355
+ const dashMatch = title.match(/^(.+?)\s+--\s+(.+)$/);
356
+ if (dashMatch) {
357
+ return {
358
+ title: dashMatch[1].trim(),
359
+ description: dashMatch[2].trim(),
360
+ };
361
+ }
362
+ // Pattern 3: Parentheses at end (only if not dependency-like)
363
+ // Already cleaned by cleanDependencyText, so remaining () is description
364
+ const parenMatch = title.match(/^(.+?)\s*\(([^)]+)\)\s*$/);
365
+ if (parenMatch) {
366
+ const content = parenMatch[2].trim();
367
+ // Skip if looks like a short annotation (single word, abbreviation)
368
+ if (content.length > 3 && content.includes(" ")) {
369
+ return {
370
+ title: parenMatch[1].trim(),
371
+ description: content,
372
+ };
373
+ }
374
+ }
375
+ return { title };
376
+ }
377
+ //# sourceMappingURL=plan-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-parser.js","sourceRoot":"","sources":["../../src/utils/plan-parser.ts"],"names":[],"mappings":"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"}
@@ -204,5 +204,134 @@ export declare function formatDependencies(deps: string[]): string;
204
204
  * ASCII art text banner
205
205
  */
206
206
  export declare function banner(text: string): string;
207
+ /**
208
+ * Checkbox-style status symbols for task display
209
+ * Designed for quick visual scanning
210
+ */
211
+ export declare const STATUS_SYMBOLS: {
212
+ readonly pending: "[ ]";
213
+ readonly in_progress: "[~]";
214
+ readonly completed: "[x]";
215
+ readonly blocked: "[!]";
216
+ readonly cancelled: "[-]";
217
+ readonly deferred: "[.]";
218
+ };
219
+ /**
220
+ * Format status with checkbox symbol and color
221
+ */
222
+ export declare function formatStatusSymbol(status: string): string;
223
+ /**
224
+ * Priority levels with P0-P3 notation
225
+ */
226
+ export declare const PRIORITY_LEVELS: {
227
+ readonly critical: {
228
+ readonly label: "P0";
229
+ readonly color: "brightRed";
230
+ readonly bg: true;
231
+ };
232
+ readonly high: {
233
+ readonly label: "P1";
234
+ readonly color: "red";
235
+ readonly bg: false;
236
+ };
237
+ readonly medium: {
238
+ readonly label: "P2";
239
+ readonly color: "yellow";
240
+ readonly bg: false;
241
+ };
242
+ readonly low: {
243
+ readonly label: "P3";
244
+ readonly color: "gray";
245
+ readonly bg: false;
246
+ };
247
+ };
248
+ /**
249
+ * Format priority as P0-P3 badge with appropriate styling
250
+ */
251
+ export declare function formatPriorityBadge(priority: string): string;
252
+ export interface SectionItem {
253
+ /** Primary text (e.g., task title) */
254
+ primary: string;
255
+ /** Secondary text (e.g., status, metadata) */
256
+ secondary?: string;
257
+ /** Detail lines shown below the item */
258
+ details?: string[];
259
+ /** Item prefix (e.g., status symbol) */
260
+ prefix?: string;
261
+ /** Item suffix (e.g., priority badge, due date) */
262
+ suffix?: string;
263
+ }
264
+ export interface SectionOptions {
265
+ /** Section icon/emoji */
266
+ icon?: string;
267
+ /** Indent level for items (default: 2) */
268
+ indent?: number;
269
+ /** Show item count in header */
270
+ showCount?: boolean;
271
+ /** Header color */
272
+ headerColor?: ColorName;
273
+ /** Empty state message */
274
+ emptyMessage?: string;
275
+ }
276
+ /**
277
+ * Render a section with header and indented items (GitHub CLI style)
278
+ *
279
+ * Example output:
280
+ * ```
281
+ * 🎯 Next Action
282
+ * [!] a1b2 Implement auth API P0 due:today
283
+ * → Unblocks 3 tasks (critical path)
284
+ * ```
285
+ */
286
+ export declare function renderSection(title: string, items: SectionItem[], options?: SectionOptions): string[];
287
+ /**
288
+ * Render multiple sections with spacing
289
+ */
290
+ export declare function renderSections(sections: Array<{
291
+ title: string;
292
+ items: SectionItem[];
293
+ options?: SectionOptions;
294
+ }>): string[];
295
+ export type AlertSeverity = "critical" | "warning" | "info" | "success";
296
+ export interface AlertOptions {
297
+ severity?: AlertSeverity;
298
+ icon?: string;
299
+ }
300
+ /**
301
+ * Render an alert box with severity styling
302
+ */
303
+ export declare function renderAlert(message: string, options?: AlertOptions): string[];
304
+ export interface StatItem {
305
+ label: string;
306
+ value: string | number;
307
+ color?: ColorName;
308
+ }
309
+ /**
310
+ * Render a compact stats row
311
+ * Example: "Total: 24 Done: 8 (33%) Blocked: 4"
312
+ */
313
+ export declare function renderStats(stats: StatItem[], separator?: string): string;
314
+ /**
315
+ * Format due date with relative time and appropriate coloring
316
+ */
317
+ export declare function formatDueDate(dueDate: string | undefined | null): string;
318
+ export interface TaskLineOptions {
319
+ showId?: boolean;
320
+ idLength?: number;
321
+ maxTitleWidth?: number;
322
+ showPriority?: boolean;
323
+ showDueDate?: boolean;
324
+ }
325
+ /**
326
+ * Format a single task line for list display
327
+ * Example: "[~] a1b2 Implement auth API P1 today"
328
+ */
329
+ export declare function formatTaskLine(task: {
330
+ id: string;
331
+ title: string;
332
+ status: string;
333
+ priority?: string;
334
+ dueDate?: string | null;
335
+ }, options?: TaskLineOptions): string;
207
336
  export {};
208
337
  //# sourceMappingURL=terminal-ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-ui.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-ui.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-ui.ts"],"names":[],"mappings":"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"}