maistro 1.0.390

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 (111) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +107 -0
  3. package/dist/app.d.ts +247 -0
  4. package/dist/app.d.ts.map +1 -0
  5. package/dist/app.js +4971 -0
  6. package/dist/app.js.map +1 -0
  7. package/dist/buildInfo.d.ts +5 -0
  8. package/dist/buildInfo.d.ts.map +1 -0
  9. package/dist/buildInfo.js +2 -0
  10. package/dist/buildInfo.js.map +1 -0
  11. package/dist/caffeinate.d.ts +72 -0
  12. package/dist/caffeinate.d.ts.map +1 -0
  13. package/dist/caffeinate.js +258 -0
  14. package/dist/caffeinate.js.map +1 -0
  15. package/dist/claudePath.d.ts +10 -0
  16. package/dist/claudePath.d.ts.map +1 -0
  17. package/dist/claudePath.js +34 -0
  18. package/dist/claudePath.js.map +1 -0
  19. package/dist/clipboard.d.ts +44 -0
  20. package/dist/clipboard.d.ts.map +1 -0
  21. package/dist/clipboard.js +442 -0
  22. package/dist/clipboard.js.map +1 -0
  23. package/dist/config.d.ts +211 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js +933 -0
  26. package/dist/config.js.map +1 -0
  27. package/dist/constants.d.ts +50 -0
  28. package/dist/constants.d.ts.map +1 -0
  29. package/dist/constants.js +81 -0
  30. package/dist/constants.js.map +1 -0
  31. package/dist/contextBuilder.d.ts +38 -0
  32. package/dist/contextBuilder.d.ts.map +1 -0
  33. package/dist/contextBuilder.js +113 -0
  34. package/dist/contextBuilder.js.map +1 -0
  35. package/dist/dependencyDetector.d.ts +57 -0
  36. package/dist/dependencyDetector.d.ts.map +1 -0
  37. package/dist/dependencyDetector.js +505 -0
  38. package/dist/dependencyDetector.js.map +1 -0
  39. package/dist/executor.d.ts +83 -0
  40. package/dist/executor.d.ts.map +1 -0
  41. package/dist/executor.js +583 -0
  42. package/dist/executor.js.map +1 -0
  43. package/dist/git.d.ts +85 -0
  44. package/dist/git.d.ts.map +1 -0
  45. package/dist/git.js +283 -0
  46. package/dist/git.js.map +1 -0
  47. package/dist/imageManager.d.ts +161 -0
  48. package/dist/imageManager.d.ts.map +1 -0
  49. package/dist/imageManager.js +674 -0
  50. package/dist/imageManager.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +437 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/input-visual-test.d.ts +9 -0
  56. package/dist/input-visual-test.d.ts.map +1 -0
  57. package/dist/input-visual-test.js +108 -0
  58. package/dist/input-visual-test.js.map +1 -0
  59. package/dist/inputBox.d.ts +228 -0
  60. package/dist/inputBox.d.ts.map +1 -0
  61. package/dist/inputBox.js +966 -0
  62. package/dist/inputBox.js.map +1 -0
  63. package/dist/logger.d.ts +136 -0
  64. package/dist/logger.d.ts.map +1 -0
  65. package/dist/logger.js +347 -0
  66. package/dist/logger.js.map +1 -0
  67. package/dist/orchestrator.d.ts +149 -0
  68. package/dist/orchestrator.d.ts.map +1 -0
  69. package/dist/orchestrator.js +821 -0
  70. package/dist/orchestrator.js.map +1 -0
  71. package/dist/planner.d.ts +86 -0
  72. package/dist/planner.d.ts.map +1 -0
  73. package/dist/planner.js +830 -0
  74. package/dist/planner.js.map +1 -0
  75. package/dist/pty-test-runner.d.ts +87 -0
  76. package/dist/pty-test-runner.d.ts.map +1 -0
  77. package/dist/pty-test-runner.js +721 -0
  78. package/dist/pty-test-runner.js.map +1 -0
  79. package/dist/screen.d.ts +44 -0
  80. package/dist/screen.d.ts.map +1 -0
  81. package/dist/screen.js +152 -0
  82. package/dist/screen.js.map +1 -0
  83. package/dist/taskQueue.d.ts +70 -0
  84. package/dist/taskQueue.d.ts.map +1 -0
  85. package/dist/taskQueue.js +282 -0
  86. package/dist/taskQueue.js.map +1 -0
  87. package/dist/tui-test-harness.d.ts +216 -0
  88. package/dist/tui-test-harness.d.ts.map +1 -0
  89. package/dist/tui-test-harness.js +527 -0
  90. package/dist/tui-test-harness.js.map +1 -0
  91. package/dist/types.d.ts +257 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +46 -0
  94. package/dist/types.js.map +1 -0
  95. package/dist/ui-visual-test.d.ts +15 -0
  96. package/dist/ui-visual-test.d.ts.map +1 -0
  97. package/dist/ui-visual-test.js +141 -0
  98. package/dist/ui-visual-test.js.map +1 -0
  99. package/dist/ui.d.ts +272 -0
  100. package/dist/ui.d.ts.map +1 -0
  101. package/dist/ui.js +1531 -0
  102. package/dist/ui.js.map +1 -0
  103. package/dist/validator.d.ts +53 -0
  104. package/dist/validator.d.ts.map +1 -0
  105. package/dist/validator.js +491 -0
  106. package/dist/validator.js.map +1 -0
  107. package/dist/versionCheck.d.ts +63 -0
  108. package/dist/versionCheck.d.ts.map +1 -0
  109. package/dist/versionCheck.js +261 -0
  110. package/dist/versionCheck.js.map +1 -0
  111. package/package.json +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty-test-runner.js","sourceRoot":"","sources":["../src/pty-test-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Screen renderer with virtual state and full-redraw approach.
3
+ *
4
+ * Instead of tracking cursor positions and using escape sequences to update
5
+ * in place, this approach:
6
+ * 1. Keeps all UI state in memory
7
+ * 2. On any change (keystroke, resize), clears screen and redraws everything
8
+ *
9
+ * This is simpler and more reliable across different terminals.
10
+ */
11
+ export interface ScreenState {
12
+ headerLines: string[];
13
+ title?: string;
14
+ subtitle?: string;
15
+ contentLines?: string[];
16
+ inputValue: string;
17
+ cursorIndex: number;
18
+ placeholder?: string;
19
+ hint?: string;
20
+ inputPrefix?: string;
21
+ }
22
+ /**
23
+ * Render the screen state to the terminal.
24
+ * Clears the screen and draws everything from scratch.
25
+ */
26
+ export declare function renderScreen(state: ScreenState): void;
27
+ /**
28
+ * Simple text input with full-screen redraw approach.
29
+ * Returns the entered text, or null if cancelled.
30
+ * Uses the unified InputBox component for consistent rendering.
31
+ */
32
+ export declare function simpleTextInput(options: {
33
+ headerLines: string[];
34
+ title?: string;
35
+ subtitle?: string;
36
+ placeholder?: string;
37
+ hint?: string;
38
+ initialValue?: string;
39
+ }): Promise<string | null>;
40
+ /**
41
+ * Build header lines for maistro
42
+ */
43
+ export declare function buildMaistroHeader(version: string, projectPath?: string): string[];
44
+ //# sourceMappingURL=screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,WAAW;IAE1B,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CA0DrD;AAqCD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+CzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BlF"}
package/dist/screen.js ADDED
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Screen renderer with virtual state and full-redraw approach.
3
+ *
4
+ * Instead of tracking cursor positions and using escape sequences to update
5
+ * in place, this approach:
6
+ * 1. Keeps all UI state in memory
7
+ * 2. On any change (keystroke, resize), clears screen and redraws everything
8
+ *
9
+ * This is simpler and more reliable across different terminals.
10
+ */
11
+ import { InputBox } from './inputBox.js';
12
+ /**
13
+ * Render the screen state to the terminal.
14
+ * Clears the screen and draws everything from scratch.
15
+ */
16
+ export function renderScreen(state) {
17
+ const termWidth = process.stdout.columns || 80;
18
+ const lines = [];
19
+ // Header
20
+ for (const line of state.headerLines) {
21
+ lines.push(line);
22
+ }
23
+ // Title
24
+ if (state.title) {
25
+ lines.push('');
26
+ lines.push(`\x1b[1m── ${state.title} ──\x1b[0m`);
27
+ lines.push('');
28
+ }
29
+ // Subtitle
30
+ if (state.subtitle) {
31
+ lines.push(`\x1b[90m${state.subtitle}\x1b[0m`);
32
+ lines.push('');
33
+ }
34
+ // Content lines
35
+ if (state.contentLines) {
36
+ for (const line of state.contentLines) {
37
+ lines.push(line);
38
+ }
39
+ }
40
+ // Input bar - single line
41
+ const separator = '─'.repeat(termWidth);
42
+ lines.push(`\x1b[90m${separator}\x1b[0m`);
43
+ // Build the input line with visual cursor
44
+ const prefix = state.inputPrefix || '> ';
45
+ // Render input with cursor
46
+ const inputLine = renderInputWithCursor(state.inputValue, state.cursorIndex, state.placeholder, prefix, termWidth);
47
+ lines.push(inputLine);
48
+ lines.push(`\x1b[90m${separator}\x1b[0m`);
49
+ // Hint below the input bar
50
+ const hint = state.hint || 'Enter to continue, Esc to cancel';
51
+ lines.push(`\x1b[90m${hint}\x1b[0m`);
52
+ // Clear screen and output
53
+ // \x1b[2J = clear entire screen
54
+ // \x1b[3J = clear scrollback buffer
55
+ // \x1b[H = move cursor to top-left (row 1, col 1)
56
+ process.stdout.write('\x1b[2J\x1b[3J\x1b[H');
57
+ process.stdout.write(lines.join('\n'));
58
+ }
59
+ /**
60
+ * Render input text with a visual cursor (inverted character).
61
+ * Handles multi-line wrapping.
62
+ */
63
+ function renderInputWithCursor(value, cursorIndex, placeholder, prefix, termWidth) {
64
+ // If empty, show placeholder with cursor at start
65
+ if (value.length === 0) {
66
+ const placeholderText = placeholder || '';
67
+ // Show cursor block at start, then placeholder in gray
68
+ return `${prefix}\x1b[7m \x1b[0m\x1b[90m${placeholderText}\x1b[0m`;
69
+ }
70
+ // Build the display with cursor
71
+ // Cursor is shown as inverted character (or space if at end)
72
+ const beforeCursor = value.slice(0, cursorIndex);
73
+ const atCursor = cursorIndex < value.length ? value[cursorIndex] : ' ';
74
+ const afterCursor = cursorIndex < value.length ? value.slice(cursorIndex + 1) : '';
75
+ // Handle newlines - replace with visible marker and actual line breaks
76
+ const formatText = (text) => text.replace(/\n/g, '↵\n '); // Indent continuation lines
77
+ const formattedBefore = formatText(beforeCursor);
78
+ const formattedAtCursor = atCursor === '\n' ? '↵' : atCursor;
79
+ const formattedAfter = formatText(afterCursor);
80
+ // Cursor shown with inverted colors
81
+ return `${prefix}${formattedBefore}\x1b[7m${formattedAtCursor}\x1b[0m${formattedAfter}`;
82
+ }
83
+ /**
84
+ * Simple text input with full-screen redraw approach.
85
+ * Returns the entered text, or null if cancelled.
86
+ * Uses the unified InputBox component for consistent rendering.
87
+ */
88
+ export async function simpleTextInput(options) {
89
+ const { headerLines, title, subtitle, placeholder, hint, initialValue } = options;
90
+ // Function to render content above the input box
91
+ const renderContentAbove = () => {
92
+ const lines = [];
93
+ // Header
94
+ for (const line of headerLines) {
95
+ lines.push(line);
96
+ }
97
+ // Title
98
+ if (title) {
99
+ lines.push('');
100
+ lines.push(`\x1b[1m── ${title} ──\x1b[0m`);
101
+ lines.push('');
102
+ }
103
+ // Subtitle
104
+ if (subtitle) {
105
+ lines.push(`\x1b[90m${subtitle}\x1b[0m`);
106
+ lines.push('');
107
+ }
108
+ // Clear screen and output content
109
+ process.stdout.write('\x1b[2J\x1b[3J\x1b[H');
110
+ process.stdout.write(lines.join('\n'));
111
+ };
112
+ // Draw content first before InputBox renders
113
+ renderContentAbove();
114
+ // Use the unified InputBox component
115
+ const inputBox = new InputBox({
116
+ placeholder: placeholder || '',
117
+ hint: hint || 'Enter continue · Esc cancel',
118
+ initialValue: initialValue || '',
119
+ onRedraw: renderContentAbove,
120
+ });
121
+ const result = await inputBox.prompt();
122
+ // Clear screen after input is done
123
+ process.stdout.write('\x1b[2J\x1b[3J\x1b[H');
124
+ return result;
125
+ }
126
+ /**
127
+ * Build header lines for maistro
128
+ */
129
+ export function buildMaistroHeader(version, projectPath) {
130
+ const lines = [];
131
+ // Calculate box width based on content
132
+ // Content items: "M A I S T R O", "Claude Code Orchestration Maestro", version
133
+ const title = 'M A I S T R O';
134
+ const subtitle = 'Claude Code Orchestration Maestro';
135
+ const contentWidth = Math.max(title.length, subtitle.length, version.length);
136
+ // Add padding: 2 spaces on left, 1 space on right = 3 total padding inside box
137
+ const boxInnerWidth = contentWidth + 3;
138
+ // Logo - dynamically sized header
139
+ const border = '─'.repeat(boxInnerWidth);
140
+ lines.push('');
141
+ lines.push(`\x1b[36m┌${border}┐\x1b[0m`);
142
+ lines.push(`\x1b[36m│\x1b[0m \x1b[1m${title.padEnd(boxInnerWidth - 2)}\x1b[0m\x1b[36m│\x1b[0m`);
143
+ lines.push(`\x1b[36m│\x1b[0m \x1b[90m${subtitle.padEnd(boxInnerWidth - 2)}\x1b[0m\x1b[36m│\x1b[0m`);
144
+ lines.push(`\x1b[36m│\x1b[0m \x1b[90m${version.padEnd(boxInnerWidth - 2)}\x1b[0m\x1b[36m│\x1b[0m`);
145
+ lines.push(`\x1b[36m└${border}┘\x1b[0m`);
146
+ if (projectPath) {
147
+ lines.push('');
148
+ lines.push(`\x1b[90mProject:\x1b[0m ${projectPath}`);
149
+ }
150
+ return lines;
151
+ }
152
+ //# sourceMappingURL=screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.js","sourceRoot":"","sources":["../src/screen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { Task, ProjectState, TaskStatus } from './types.js';
2
+ /**
3
+ * Load project state from a JSON file
4
+ */
5
+ export declare function loadState(path: string): Promise<ProjectState | null>;
6
+ /**
7
+ * Save project state to a JSON file
8
+ */
9
+ export declare function saveState(path: string, state: ProjectState): Promise<void>;
10
+ /**
11
+ * Get the next pending task that has all dependencies satisfied.
12
+ * Dependencies are satisfied if the task is completed OR skipped with acceptance failure.
13
+ * Tasks skipped with execution failure do NOT satisfy dependencies (code was never written).
14
+ */
15
+ export declare function getNextTask(tasks: Task[]): Task | null;
16
+ /**
17
+ * Reset any in_progress tasks back to pending (for interrupted sessions)
18
+ */
19
+ export declare function resetInProgressTasks(tasks: Task[]): Task[];
20
+ /**
21
+ * Update the status of a task by ID
22
+ */
23
+ export declare function updateTaskStatus(tasks: Task[], taskId: string, status: TaskStatus, error?: string): Task[];
24
+ /**
25
+ * Get a task by its ID
26
+ */
27
+ export declare function getTaskById(tasks: Task[], taskId: string): Task | undefined;
28
+ /**
29
+ * Check if all tasks are completed
30
+ */
31
+ export declare function allTasksCompleted(tasks: Task[]): boolean;
32
+ /**
33
+ * Check if any task has failed beyond max retries
34
+ */
35
+ export declare function hasBlockedTask(tasks: Task[]): Task | null;
36
+ /**
37
+ * Get tasks that are ready to execute (pending with deps satisfied).
38
+ * Dependencies are satisfied if the task is completed OR skipped with acceptance failure.
39
+ */
40
+ export declare function getReadyTasks(tasks: Task[]): Task[];
41
+ /**
42
+ * Get a summary of task statuses
43
+ */
44
+ export declare function getTaskSummary(tasks: Task[]): Record<TaskStatus, number>;
45
+ /**
46
+ * Reset a failed task to pending for retry
47
+ */
48
+ export declare function resetTaskForRetry(tasks: Task[], taskId: string): Task[];
49
+ /**
50
+ * Check if a task is blocked due to a dependency failure.
51
+ * A task is blocked if any of its dependencies:
52
+ * - Failed with explicit execution failure (code was never written)
53
+ * - Skipped with explicit execution failure (code was never written)
54
+ *
55
+ * Tasks are NOT blocked if dependencies:
56
+ * - Completed
57
+ * - Skipped without failureType (legacy, defaults to acceptance)
58
+ * - Skipped with acceptance failure (code was written, just failed validation)
59
+ */
60
+ export declare function isTaskBlocked(task: Task, allTasks: Task[]): boolean;
61
+ /**
62
+ * Get the blocking dependency for a task (the first one that causes the block)
63
+ */
64
+ export declare function getBlockingDependency(task: Task, allTasks: Task[]): Task | null;
65
+ /**
66
+ * Delete a task from the task list and remove it from all dependency lists.
67
+ * Returns the updated task list.
68
+ */
69
+ export declare function deleteTask(tasks: Task[], taskId: string): Task[];
70
+ //# sourceMappingURL=taskQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskQueue.d.ts","sourceRoot":"","sources":["../src/taskQueue.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAwCjE;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAmB1E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmChF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAgBtD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAW1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,EAAE,CAyBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAE3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CASnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAcxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAavE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAcnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAiB/E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAehE"}
@@ -0,0 +1,282 @@
1
+ import { readFile, writeFile, mkdir, rename, unlink } from 'node:fs/promises';
2
+ import { dirname, join } from 'node:path';
3
+ import { existsSync } from 'node:fs';
4
+ import { ensureMaistroInGitignore } from './git.js';
5
+ /**
6
+ * Check if a task's dependency is satisfied.
7
+ * A dependency is satisfied if it's:
8
+ * - completed
9
+ * - skipped (unless explicitly marked as execution failure)
10
+ *
11
+ * A dependency is NOT satisfied if it's:
12
+ * - skipped with explicit execution failure (code was never written - hard failure)
13
+ * - failed
14
+ * - pending
15
+ *
16
+ * Note: We treat skipped tasks without failureType as satisfied (defaulting to acceptance)
17
+ * because legacy tasks may not have failureType set, and blocking them would prevent progress.
18
+ */
19
+ function isDependencySatisfied(task) {
20
+ if (task.status === 'completed') {
21
+ return true;
22
+ }
23
+ // Skipped task: satisfied unless explicitly an execution failure
24
+ // Missing failureType defaults to satisfied (backward compatibility with legacy state)
25
+ if (task.status === 'skipped') {
26
+ return task.failureType !== 'execution';
27
+ }
28
+ return false;
29
+ }
30
+ /**
31
+ * Get the set of task IDs that have satisfied dependencies
32
+ * (completed or skipped with acceptance failure)
33
+ */
34
+ function getSatisfiedTaskIds(tasks) {
35
+ return new Set(tasks.filter(isDependencySatisfied).map(t => t.id));
36
+ }
37
+ /**
38
+ * Load project state from a JSON file
39
+ */
40
+ export async function loadState(path) {
41
+ try {
42
+ const content = await readFile(path, 'utf-8');
43
+ // Handle empty files
44
+ if (!content.trim()) {
45
+ return null;
46
+ }
47
+ return JSON.parse(content);
48
+ }
49
+ catch (error) {
50
+ // File not found - no project
51
+ if (error.code === 'ENOENT') {
52
+ return null;
53
+ }
54
+ // JSON parse error - treat as corrupted/no project
55
+ if (error instanceof SyntaxError) {
56
+ return null;
57
+ }
58
+ throw error;
59
+ }
60
+ }
61
+ /**
62
+ * Save project state to a JSON file
63
+ */
64
+ export async function saveState(path, state) {
65
+ const dir = dirname(path);
66
+ const dirExisted = existsSync(dir);
67
+ if (!dirExisted) {
68
+ await mkdir(dir, { recursive: true });
69
+ // When creating .maistro directory for the first time, ensure .gitignore is set up
70
+ // Get project path (parent of .maistro)
71
+ const projectPath = dirname(dir);
72
+ await ensureMaistroInGitignore(projectPath);
73
+ }
74
+ const updated = {
75
+ ...state,
76
+ updatedAt: new Date().toISOString(),
77
+ };
78
+ const content = JSON.stringify(updated, null, 2);
79
+ // Use atomic write: write to temp file, then rename
80
+ // This prevents race conditions where a concurrent read sees a truncated/empty file
81
+ const tempPath = join(dir, `.state.${Date.now()}.${Math.random().toString(36).slice(2, 8)}.tmp`);
82
+ try {
83
+ await writeFile(tempPath, content, 'utf-8');
84
+ await rename(tempPath, path);
85
+ }
86
+ catch (error) {
87
+ // Clean up temp file if rename failed
88
+ try {
89
+ await unlink(tempPath);
90
+ }
91
+ catch {
92
+ // Ignore cleanup errors
93
+ }
94
+ throw error;
95
+ }
96
+ }
97
+ /**
98
+ * Get the next pending task that has all dependencies satisfied.
99
+ * Dependencies are satisfied if the task is completed OR skipped with acceptance failure.
100
+ * Tasks skipped with execution failure do NOT satisfy dependencies (code was never written).
101
+ */
102
+ export function getNextTask(tasks) {
103
+ const satisfiedIds = getSatisfiedTaskIds(tasks);
104
+ // Check for pending or in_progress tasks (in_progress may be from interrupted session)
105
+ for (const task of tasks) {
106
+ if (task.status !== 'pending' && task.status !== 'in_progress') {
107
+ continue;
108
+ }
109
+ const depsComplete = task.dependencies.every(depId => satisfiedIds.has(depId));
110
+ if (depsComplete) {
111
+ return task;
112
+ }
113
+ }
114
+ return null;
115
+ }
116
+ /**
117
+ * Reset any in_progress tasks back to pending (for interrupted sessions)
118
+ */
119
+ export function resetInProgressTasks(tasks) {
120
+ return tasks.map(task => {
121
+ if (task.status === 'in_progress') {
122
+ return {
123
+ ...task,
124
+ status: 'pending',
125
+ updatedAt: new Date().toISOString(),
126
+ };
127
+ }
128
+ return task;
129
+ });
130
+ }
131
+ /**
132
+ * Update the status of a task by ID
133
+ */
134
+ export function updateTaskStatus(tasks, taskId, status, error) {
135
+ return tasks.map(task => {
136
+ if (task.id !== taskId) {
137
+ return task;
138
+ }
139
+ const updated = {
140
+ ...task,
141
+ status,
142
+ updatedAt: new Date().toISOString(),
143
+ };
144
+ if (error !== undefined) {
145
+ updated.error = error;
146
+ }
147
+ if (status === 'failed' || status === 'in_progress') {
148
+ // Increment retry count when failing or retrying
149
+ if (task.status === 'in_progress' && status === 'failed') {
150
+ updated.retryCount = task.retryCount + 1;
151
+ }
152
+ }
153
+ return updated;
154
+ });
155
+ }
156
+ /**
157
+ * Get a task by its ID
158
+ */
159
+ export function getTaskById(tasks, taskId) {
160
+ return tasks.find(t => t.id === taskId);
161
+ }
162
+ /**
163
+ * Check if all tasks are completed
164
+ */
165
+ export function allTasksCompleted(tasks) {
166
+ return tasks.every(t => t.status === 'completed' || t.status === 'skipped');
167
+ }
168
+ /**
169
+ * Check if any task has failed beyond max retries
170
+ */
171
+ export function hasBlockedTask(tasks) {
172
+ return tasks.find(t => t.status === 'failed' && t.retryCount >= t.maxRetries) ?? null;
173
+ }
174
+ /**
175
+ * Get tasks that are ready to execute (pending with deps satisfied).
176
+ * Dependencies are satisfied if the task is completed OR skipped with acceptance failure.
177
+ */
178
+ export function getReadyTasks(tasks) {
179
+ const satisfiedIds = getSatisfiedTaskIds(tasks);
180
+ return tasks.filter(task => {
181
+ if (task.status !== 'pending') {
182
+ return false;
183
+ }
184
+ return task.dependencies.every(depId => satisfiedIds.has(depId));
185
+ });
186
+ }
187
+ /**
188
+ * Get a summary of task statuses
189
+ */
190
+ export function getTaskSummary(tasks) {
191
+ const summary = {
192
+ pending: 0,
193
+ in_progress: 0,
194
+ completed: 0,
195
+ failed: 0,
196
+ skipped: 0,
197
+ };
198
+ for (const task of tasks) {
199
+ summary[task.status]++;
200
+ }
201
+ return summary;
202
+ }
203
+ /**
204
+ * Reset a failed task to pending for retry
205
+ */
206
+ export function resetTaskForRetry(tasks, taskId) {
207
+ return tasks.map(task => {
208
+ if (task.id !== taskId) {
209
+ return task;
210
+ }
211
+ return {
212
+ ...task,
213
+ status: 'pending',
214
+ error: undefined,
215
+ updatedAt: new Date().toISOString(),
216
+ };
217
+ });
218
+ }
219
+ /**
220
+ * Check if a task is blocked due to a dependency failure.
221
+ * A task is blocked if any of its dependencies:
222
+ * - Failed with explicit execution failure (code was never written)
223
+ * - Skipped with explicit execution failure (code was never written)
224
+ *
225
+ * Tasks are NOT blocked if dependencies:
226
+ * - Completed
227
+ * - Skipped without failureType (legacy, defaults to acceptance)
228
+ * - Skipped with acceptance failure (code was written, just failed validation)
229
+ */
230
+ export function isTaskBlocked(task, allTasks) {
231
+ if (task.status !== 'pending') {
232
+ return false;
233
+ }
234
+ return task.dependencies.some(depId => {
235
+ const dep = allTasks.find(t => t.id === depId);
236
+ if (!dep)
237
+ return false;
238
+ // Blocked if dependency failed/skipped with execution failure
239
+ const isHardFailure = (dep.status === 'failed' || dep.status === 'skipped') &&
240
+ dep.failureType === 'execution';
241
+ return isHardFailure;
242
+ });
243
+ }
244
+ /**
245
+ * Get the blocking dependency for a task (the first one that causes the block)
246
+ */
247
+ export function getBlockingDependency(task, allTasks) {
248
+ if (task.status !== 'pending') {
249
+ return null;
250
+ }
251
+ for (const depId of task.dependencies) {
252
+ const dep = allTasks.find(t => t.id === depId);
253
+ if (!dep)
254
+ continue;
255
+ const isHardFailure = (dep.status === 'failed' || dep.status === 'skipped') &&
256
+ dep.failureType === 'execution';
257
+ if (isHardFailure) {
258
+ return dep;
259
+ }
260
+ }
261
+ return null;
262
+ }
263
+ /**
264
+ * Delete a task from the task list and remove it from all dependency lists.
265
+ * Returns the updated task list.
266
+ */
267
+ export function deleteTask(tasks, taskId) {
268
+ // Remove the task from the list
269
+ const filteredTasks = tasks.filter(t => t.id !== taskId);
270
+ // Remove the deleted task ID from all dependency arrays
271
+ return filteredTasks.map(task => {
272
+ if (task.dependencies.includes(taskId)) {
273
+ return {
274
+ ...task,
275
+ dependencies: task.dependencies.filter(depId => depId !== taskId),
276
+ updatedAt: new Date().toISOString(),
277
+ };
278
+ }
279
+ return task;
280
+ });
281
+ }
282
+ //# sourceMappingURL=taskQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskQueue.js","sourceRoot":"","sources":["../src/taskQueue.ts"],"names":[],"mappings":"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"}