centaurus-cli 2.8.6 → 2.8.7
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.
- package/dist/cli-adapter.d.ts +85 -0
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +769 -28
- package/dist/cli-adapter.js.map +1 -1
- package/dist/config/slash-commands.d.ts +2 -0
- package/dist/config/slash-commands.d.ts.map +1 -1
- package/dist/config/slash-commands.js +31 -1
- package/dist/config/slash-commands.js.map +1 -1
- package/dist/context/handlers/docker-handler.js.map +1 -1
- package/dist/context/handlers/ssh-handler.d.ts +16 -1
- package/dist/context/handlers/ssh-handler.d.ts.map +1 -1
- package/dist/context/handlers/ssh-handler.js +57 -12
- package/dist/context/handlers/ssh-handler.js.map +1 -1
- package/dist/context/subshell-handler.d.ts +14 -0
- package/dist/context/subshell-handler.d.ts.map +1 -1
- package/dist/hooks/useTerminalDimensions.d.ts +41 -0
- package/dist/hooks/useTerminalDimensions.d.ts.map +1 -0
- package/dist/hooks/useTerminalDimensions.js +84 -0
- package/dist/hooks/useTerminalDimensions.js.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -1
- package/dist/services/api-client.d.ts +24 -0
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +27 -0
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/auth-handler.js +1 -1
- package/dist/services/auth-handler.js.map +1 -1
- package/dist/services/clipboard-service.d.ts +42 -0
- package/dist/services/clipboard-service.d.ts.map +1 -0
- package/dist/services/clipboard-service.js +217 -0
- package/dist/services/clipboard-service.js.map +1 -0
- package/dist/services/local-chat-storage.d.ts +154 -0
- package/dist/services/local-chat-storage.d.ts.map +1 -0
- package/dist/services/local-chat-storage.js +258 -0
- package/dist/services/local-chat-storage.js.map +1 -0
- package/dist/tools/grep-search.d.ts +5 -0
- package/dist/tools/grep-search.d.ts.map +1 -1
- package/dist/tools/grep-search.js +68 -16
- package/dist/tools/grep-search.js.map +1 -1
- package/dist/tools/plan-mode.d.ts +57 -6
- package/dist/tools/plan-mode.d.ts.map +1 -1
- package/dist/tools/plan-mode.js +297 -46
- package/dist/tools/plan-mode.js.map +1 -1
- package/dist/tools/read-binary-file.d.ts +10 -0
- package/dist/tools/read-binary-file.d.ts.map +1 -0
- package/dist/tools/read-binary-file.js +210 -0
- package/dist/tools/read-binary-file.js.map +1 -0
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/App.d.ts +35 -0
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +608 -16
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/ClipboardImageAutocomplete.d.ts +14 -0
- package/dist/ui/components/ClipboardImageAutocomplete.d.ts.map +1 -0
- package/dist/ui/components/ClipboardImageAutocomplete.js +39 -0
- package/dist/ui/components/ClipboardImageAutocomplete.js.map +1 -0
- package/dist/ui/components/ConnectionStatusMessage.d.ts +1 -1
- package/dist/ui/components/ConnectionStatusMessage.d.ts.map +1 -1
- package/dist/ui/components/ConnectionStatusMessage.js +21 -0
- package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
- package/dist/ui/components/DetailedPlanReviewScreen.d.ts +17 -0
- package/dist/ui/components/DetailedPlanReviewScreen.d.ts.map +1 -0
- package/dist/ui/components/DetailedPlanReviewScreen.js +110 -0
- package/dist/ui/components/DetailedPlanReviewScreen.js.map +1 -0
- package/dist/ui/components/InputBox.d.ts +2 -1
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +399 -28
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/components/InteractiveShell.js +20 -6
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts +6 -0
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +66 -3
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/PlanAcceptedMessage.d.ts +8 -0
- package/dist/ui/components/PlanAcceptedMessage.d.ts.map +1 -1
- package/dist/ui/components/PlanAcceptedMessage.js +26 -8
- package/dist/ui/components/PlanAcceptedMessage.js.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.d.ts +3 -0
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +10 -6
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/ui/components/TaskCompletedMessage.d.ts.map +1 -1
- package/dist/ui/components/TaskCompletedMessage.js +4 -4
- package/dist/ui/components/TaskCompletedMessage.js.map +1 -1
- package/dist/ui/components/TaskProgressIndicator.d.ts +18 -0
- package/dist/ui/components/TaskProgressIndicator.d.ts.map +1 -0
- package/dist/ui/components/TaskProgressIndicator.js +72 -0
- package/dist/ui/components/TaskProgressIndicator.js.map +1 -0
- package/dist/ui/components/ThinkingDisplay.d.ts +3 -0
- package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -1
- package/dist/ui/components/ThinkingDisplay.js +6 -4
- package/dist/ui/components/ThinkingDisplay.js.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +85 -15
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/utils/custom-commands-manager.d.ts +59 -0
- package/dist/utils/custom-commands-manager.d.ts.map +1 -0
- package/dist/utils/custom-commands-manager.js +142 -0
- package/dist/utils/custom-commands-manager.js.map +1 -0
- package/dist/utils/input-classifier.d.ts +10 -11
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +299 -75
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/terminal-output.d.ts.map +1 -1
- package/dist/utils/terminal-output.js +110 -14
- package/dist/utils/terminal-output.js.map +1 -1
- package/dist/utils/unicode-sanitizer.d.ts +44 -0
- package/dist/utils/unicode-sanitizer.d.ts.map +1 -0
- package/dist/utils/unicode-sanitizer.js +211 -0
- package/dist/utils/unicode-sanitizer.js.map +1 -0
- package/models-config.json +2 -3
- package/package.json +4 -1
package/dist/tools/plan-mode.js
CHANGED
|
@@ -1,28 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plan Mode - Structured Task Planning and Execution
|
|
3
|
-
* Enables AI to create structured plans and track
|
|
3
|
+
* Enables AI to create structured plans with hierarchical tasks and track completion
|
|
4
|
+
*
|
|
5
|
+
* Enhanced Features:
|
|
6
|
+
* - Hierarchical tasks with subtasks (e.g., Task 1 -> 1.1, 1.2, 1.3)
|
|
7
|
+
* - Design summary for context understanding
|
|
8
|
+
* - Phased execution (one task at a time)
|
|
9
|
+
* - Subtask-level completion tracking
|
|
4
10
|
*/
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// STATE
|
|
13
|
+
// ============================================================================
|
|
5
14
|
// In-memory plan state
|
|
6
15
|
let currentPlan = null;
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// TOOLS
|
|
18
|
+
// ============================================================================
|
|
7
19
|
/**
|
|
8
20
|
* Create Plan Tool
|
|
9
|
-
* AI uses this to generate a structured plan with tasks
|
|
21
|
+
* AI uses this to generate a structured plan with hierarchical tasks
|
|
10
22
|
*/
|
|
11
23
|
export const createPlanTool = {
|
|
12
24
|
schema: {
|
|
13
25
|
name: 'create_plan',
|
|
14
|
-
description: `Use this tool when in planning mode to create a
|
|
26
|
+
description: `Use this tool when in planning mode to create a detailed implementation plan.
|
|
15
27
|
This will present the plan to the user for review and approval before execution begins.
|
|
16
28
|
|
|
17
29
|
The plan should include:
|
|
18
30
|
1. A clear title describing what will be accomplished
|
|
19
|
-
2. A
|
|
20
|
-
3. A
|
|
31
|
+
2. A detailed design summary explaining your understanding of the codebase and approach
|
|
32
|
+
3. A brief summary of the overall approach
|
|
33
|
+
4. A numbered list of main tasks, each optionally containing subtasks
|
|
21
34
|
|
|
22
35
|
IMPORTANT: Only use this tool when in planning mode. Each task should be:
|
|
23
36
|
- Specific and actionable
|
|
24
|
-
-
|
|
25
|
-
- Ordered in a logical sequence
|
|
37
|
+
- Can have subtasks for more granular steps
|
|
38
|
+
- Ordered in a logical sequence
|
|
39
|
+
|
|
40
|
+
Example structure:
|
|
41
|
+
- Task 1: Set up core infrastructure
|
|
42
|
+
- 1.1: Create directory structure
|
|
43
|
+
- 1.2: Define TypeScript interfaces
|
|
44
|
+
- Task 2: Implement main feature
|
|
45
|
+
- 2.1: Create component files
|
|
46
|
+
- 2.2: Add unit tests`,
|
|
26
47
|
parameters: {
|
|
27
48
|
type: 'object',
|
|
28
49
|
properties: {
|
|
@@ -30,9 +51,13 @@ IMPORTANT: Only use this tool when in planning mode. Each task should be:
|
|
|
30
51
|
type: 'string',
|
|
31
52
|
description: 'A clear, concise title for the plan'
|
|
32
53
|
},
|
|
54
|
+
designSummary: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
description: 'Detailed understanding of the codebase and how the changes will be implemented. Include architecture decisions, file structure understanding, and implementation approach.'
|
|
57
|
+
},
|
|
33
58
|
summary: {
|
|
34
59
|
type: 'string',
|
|
35
|
-
description: 'Brief summary of the overall approach
|
|
60
|
+
description: 'Brief 1-2 sentence summary of the overall approach'
|
|
36
61
|
},
|
|
37
62
|
tasks: {
|
|
38
63
|
type: 'array',
|
|
@@ -41,17 +66,39 @@ IMPORTANT: Only use this tool when in planning mode. Each task should be:
|
|
|
41
66
|
properties: {
|
|
42
67
|
description: {
|
|
43
68
|
type: 'string',
|
|
44
|
-
description: 'Clear description of what this task accomplishes'
|
|
69
|
+
description: 'Clear description of what this main task accomplishes'
|
|
70
|
+
},
|
|
71
|
+
subtasks: {
|
|
72
|
+
type: 'array',
|
|
73
|
+
items: {
|
|
74
|
+
type: 'object',
|
|
75
|
+
properties: {
|
|
76
|
+
description: {
|
|
77
|
+
type: 'string',
|
|
78
|
+
description: 'Specific subtask description'
|
|
79
|
+
},
|
|
80
|
+
requirements: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
description: 'Optional traceability requirements'
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
required: ['description']
|
|
86
|
+
},
|
|
87
|
+
description: 'Optional list of subtasks within this main task'
|
|
45
88
|
},
|
|
46
89
|
complexity: {
|
|
47
90
|
type: 'string',
|
|
48
91
|
enum: ['low', 'medium', 'high'],
|
|
49
92
|
description: 'Estimated complexity of the task'
|
|
93
|
+
},
|
|
94
|
+
requirements: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
description: 'Optional traceability requirements'
|
|
50
97
|
}
|
|
51
98
|
},
|
|
52
99
|
required: ['description']
|
|
53
100
|
},
|
|
54
|
-
description: 'List of tasks to execute, in order'
|
|
101
|
+
description: 'List of main tasks to execute, in order'
|
|
55
102
|
}
|
|
56
103
|
},
|
|
57
104
|
required: ['title', 'summary', 'tasks']
|
|
@@ -59,6 +106,7 @@ IMPORTANT: Only use this tool when in planning mode. Each task should be:
|
|
|
59
106
|
},
|
|
60
107
|
async execute(args, context) {
|
|
61
108
|
const title = args.title;
|
|
109
|
+
const designSummary = args.designSummary || '';
|
|
62
110
|
const summary = args.summary;
|
|
63
111
|
const tasks = args.tasks;
|
|
64
112
|
if (!title || title.trim().length === 0) {
|
|
@@ -67,20 +115,29 @@ IMPORTANT: Only use this tool when in planning mode. Each task should be:
|
|
|
67
115
|
if (!tasks || tasks.length === 0) {
|
|
68
116
|
throw new Error('Plan must have at least one task');
|
|
69
117
|
}
|
|
70
|
-
// Create the plan object
|
|
118
|
+
// Create the plan object with hierarchical structure
|
|
71
119
|
const plan = {
|
|
72
120
|
title: title.trim(),
|
|
121
|
+
designSummary: designSummary?.trim() || '',
|
|
73
122
|
summary: summary?.trim() || '',
|
|
74
|
-
steps: tasks.map((task,
|
|
75
|
-
id: `task_${
|
|
123
|
+
steps: tasks.map((task, taskIndex) => ({
|
|
124
|
+
id: `task_${taskIndex + 1}`,
|
|
76
125
|
description: task.description.trim(),
|
|
126
|
+
subtasks: (task.subtasks || []).map((subtask, subtaskIndex) => ({
|
|
127
|
+
id: `${taskIndex + 1}.${subtaskIndex + 1}`,
|
|
128
|
+
description: subtask.description.trim(),
|
|
129
|
+
status: 'pending',
|
|
130
|
+
requirements: subtask.requirements?.trim()
|
|
131
|
+
})),
|
|
77
132
|
status: 'pending',
|
|
78
|
-
estimatedComplexity: task.complexity
|
|
133
|
+
estimatedComplexity: task.complexity,
|
|
134
|
+
requirements: task.requirements?.trim()
|
|
79
135
|
})),
|
|
80
136
|
createdAt: new Date(),
|
|
81
137
|
approved: false,
|
|
82
138
|
isActive: false,
|
|
83
|
-
currentTaskIndex: 0
|
|
139
|
+
currentTaskIndex: 0,
|
|
140
|
+
currentSubtaskIndex: -1
|
|
84
141
|
};
|
|
85
142
|
currentPlan = plan;
|
|
86
143
|
// Return confirmation - the UI will handle displaying the plan
|
|
@@ -89,29 +146,33 @@ IMPORTANT: Only use this tool when in planning mode. Each task should be:
|
|
|
89
146
|
};
|
|
90
147
|
/**
|
|
91
148
|
* Mark Task Complete Tool
|
|
92
|
-
* AI uses this to mark individual tasks as completed during execution
|
|
149
|
+
* AI uses this to mark individual tasks or subtasks as completed during execution
|
|
93
150
|
*/
|
|
94
151
|
export const markTaskCompleteTool = {
|
|
95
152
|
schema: {
|
|
96
153
|
name: 'mark_task_complete',
|
|
97
|
-
description: `Use this tool to mark a task as completed in the current plan.
|
|
98
|
-
Call this after successfully completing each task in the plan.
|
|
154
|
+
description: `Use this tool to mark a task or subtask as completed in the current plan.
|
|
155
|
+
Call this after successfully completing each task/subtask in the plan.
|
|
99
156
|
|
|
100
157
|
This will:
|
|
101
|
-
1. Update the task status to 'completed'
|
|
158
|
+
1. Update the task/subtask status to 'completed'
|
|
102
159
|
2. Show a completion message in the UI
|
|
103
|
-
3. Automatically advance to the next task
|
|
160
|
+
3. Automatically advance to the next task/subtask
|
|
161
|
+
|
|
162
|
+
You can mark:
|
|
163
|
+
- A main task: task_number=2
|
|
164
|
+
- A subtask: task_number="2.1" (marks subtask 1 of task 2)
|
|
104
165
|
|
|
105
166
|
IMPORTANT:
|
|
106
167
|
- Must have an active approved plan
|
|
107
|
-
-
|
|
108
|
-
- After marking the LAST task complete, call task_complete to end the session`,
|
|
168
|
+
- Mark subtasks complete as you finish them
|
|
169
|
+
- After marking the LAST task/subtask complete, call task_complete to end the session`,
|
|
109
170
|
parameters: {
|
|
110
171
|
type: 'object',
|
|
111
172
|
properties: {
|
|
112
173
|
task_number: {
|
|
113
|
-
type: '
|
|
114
|
-
description: 'The task number to mark complete (1
|
|
174
|
+
type: 'string',
|
|
175
|
+
description: 'The task number to mark complete. Use integer for main task (e.g., "2") or dot notation for subtask (e.g., "2.1")'
|
|
115
176
|
},
|
|
116
177
|
completion_note: {
|
|
117
178
|
type: 'string',
|
|
@@ -128,31 +189,81 @@ IMPORTANT:
|
|
|
128
189
|
if (!currentPlan.approved || !currentPlan.isActive) {
|
|
129
190
|
throw new Error('Plan must be approved and active before marking tasks complete.');
|
|
130
191
|
}
|
|
131
|
-
const
|
|
192
|
+
const taskNumberStr = String(args.task_number);
|
|
132
193
|
const completionNote = args.completion_note;
|
|
133
|
-
|
|
194
|
+
// Parse task number - can be "2" or "2.1"
|
|
195
|
+
const parts = taskNumberStr.split('.');
|
|
196
|
+
const mainTaskNum = parseInt(parts[0], 10);
|
|
197
|
+
const subtaskNum = parts.length > 1 ? parseInt(parts[1], 10) : null;
|
|
198
|
+
if (isNaN(mainTaskNum) || mainTaskNum < 1 || mainTaskNum > currentPlan.steps.length) {
|
|
134
199
|
throw new Error(`Invalid task number. Must be between 1 and ${currentPlan.steps.length}.`);
|
|
135
200
|
}
|
|
136
|
-
const taskIndex =
|
|
201
|
+
const taskIndex = mainTaskNum - 1;
|
|
137
202
|
const task = currentPlan.steps[taskIndex];
|
|
203
|
+
// Handle subtask completion
|
|
204
|
+
if (subtaskNum !== null) {
|
|
205
|
+
if (!task.subtasks || subtaskNum < 1 || subtaskNum > task.subtasks.length) {
|
|
206
|
+
throw new Error(`Invalid subtask number. Task ${mainTaskNum} has ${task.subtasks?.length || 0} subtasks.`);
|
|
207
|
+
}
|
|
208
|
+
const subtaskIndex = subtaskNum - 1;
|
|
209
|
+
const subtask = task.subtasks[subtaskIndex];
|
|
210
|
+
if (subtask.status === 'completed') {
|
|
211
|
+
return `Subtask ${taskNumberStr} is already marked as completed.`;
|
|
212
|
+
}
|
|
213
|
+
// Mark subtask complete
|
|
214
|
+
subtask.status = 'completed';
|
|
215
|
+
subtask.completedAt = new Date();
|
|
216
|
+
// Check if all subtasks are complete, then mark main task as complete
|
|
217
|
+
const allSubtasksComplete = task.subtasks.every(st => st.status === 'completed' || st.status === 'skipped');
|
|
218
|
+
if (allSubtasksComplete) {
|
|
219
|
+
task.status = 'completed';
|
|
220
|
+
task.completedAt = new Date();
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
task.status = 'in_progress';
|
|
224
|
+
}
|
|
225
|
+
// Update current subtask index
|
|
226
|
+
const nextPendingSubtaskIndex = task.subtasks.findIndex((st, idx) => idx > subtaskIndex && st.status === 'pending');
|
|
227
|
+
currentPlan.currentSubtaskIndex = nextPendingSubtaskIndex;
|
|
228
|
+
// Calculate progress
|
|
229
|
+
const { completedCount, totalCount, allComplete } = calculateProgress();
|
|
230
|
+
const result = {
|
|
231
|
+
type: 'subtask',
|
|
232
|
+
taskNumber: taskNumberStr,
|
|
233
|
+
taskDescription: subtask.description,
|
|
234
|
+
completionNote: completionNote || null,
|
|
235
|
+
completedCount,
|
|
236
|
+
totalCount,
|
|
237
|
+
allComplete,
|
|
238
|
+
nextSubtask: nextPendingSubtaskIndex !== -1 ? task.subtasks[nextPendingSubtaskIndex].description : null,
|
|
239
|
+
mainTaskComplete: allSubtasksComplete
|
|
240
|
+
};
|
|
241
|
+
return `TASK_COMPLETED:${JSON.stringify(result)}`;
|
|
242
|
+
}
|
|
243
|
+
// Handle main task completion (mark all subtasks as complete too)
|
|
138
244
|
if (task.status === 'completed') {
|
|
139
|
-
return `Task ${
|
|
245
|
+
return `Task ${mainTaskNum} is already marked as completed.`;
|
|
140
246
|
}
|
|
141
|
-
// Mark the task as complete
|
|
247
|
+
// Mark the main task and all its subtasks as complete
|
|
142
248
|
task.status = 'completed';
|
|
143
249
|
task.completedAt = new Date();
|
|
250
|
+
task.subtasks.forEach(st => {
|
|
251
|
+
if (st.status !== 'completed' && st.status !== 'skipped') {
|
|
252
|
+
st.status = 'completed';
|
|
253
|
+
st.completedAt = new Date();
|
|
254
|
+
}
|
|
255
|
+
});
|
|
144
256
|
// Update current task index to next pending task
|
|
145
257
|
const nextPendingIndex = currentPlan.steps.findIndex((step, idx) => idx > taskIndex && step.status === 'pending');
|
|
146
258
|
if (nextPendingIndex !== -1) {
|
|
147
259
|
currentPlan.currentTaskIndex = nextPendingIndex;
|
|
260
|
+
currentPlan.currentSubtaskIndex = -1;
|
|
148
261
|
}
|
|
149
|
-
//
|
|
150
|
-
const completedCount
|
|
151
|
-
const totalCount = currentPlan.steps.length;
|
|
152
|
-
const allComplete = completedCount === totalCount;
|
|
153
|
-
// Return structured response for UI parsing
|
|
262
|
+
// Calculate progress
|
|
263
|
+
const { completedCount, totalCount, allComplete } = calculateProgress();
|
|
154
264
|
const result = {
|
|
155
|
-
|
|
265
|
+
type: 'task',
|
|
266
|
+
taskNumber: mainTaskNum,
|
|
156
267
|
taskDescription: task.description,
|
|
157
268
|
completionNote: completionNote || null,
|
|
158
269
|
completedCount,
|
|
@@ -163,6 +274,37 @@ IMPORTANT:
|
|
|
163
274
|
return `TASK_COMPLETED:${JSON.stringify(result)}`;
|
|
164
275
|
}
|
|
165
276
|
};
|
|
277
|
+
// ============================================================================
|
|
278
|
+
// HELPER FUNCTIONS
|
|
279
|
+
// ============================================================================
|
|
280
|
+
/**
|
|
281
|
+
* Calculate overall progress including subtasks
|
|
282
|
+
*/
|
|
283
|
+
function calculateProgress() {
|
|
284
|
+
if (!currentPlan) {
|
|
285
|
+
return { completedCount: 0, totalCount: 0, allComplete: false };
|
|
286
|
+
}
|
|
287
|
+
let completedCount = 0;
|
|
288
|
+
let totalCount = 0;
|
|
289
|
+
currentPlan.steps.forEach(step => {
|
|
290
|
+
if (step.subtasks.length > 0) {
|
|
291
|
+
// Count subtasks
|
|
292
|
+
totalCount += step.subtasks.length;
|
|
293
|
+
completedCount += step.subtasks.filter(st => st.status === 'completed').length;
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
// Count the main task if no subtasks
|
|
297
|
+
totalCount += 1;
|
|
298
|
+
if (step.status === 'completed')
|
|
299
|
+
completedCount += 1;
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
return {
|
|
303
|
+
completedCount,
|
|
304
|
+
totalCount,
|
|
305
|
+
allComplete: completedCount === totalCount && totalCount > 0
|
|
306
|
+
};
|
|
307
|
+
}
|
|
166
308
|
/**
|
|
167
309
|
* Set the current plan (used by CLI adapter)
|
|
168
310
|
*/
|
|
@@ -189,11 +331,12 @@ export function approvePlan() {
|
|
|
189
331
|
currentPlan.approved = true;
|
|
190
332
|
currentPlan.isActive = true;
|
|
191
333
|
currentPlan.currentTaskIndex = 0;
|
|
334
|
+
currentPlan.currentSubtaskIndex = currentPlan.steps[0]?.subtasks?.length > 0 ? 0 : -1;
|
|
192
335
|
}
|
|
193
336
|
return currentPlan;
|
|
194
337
|
}
|
|
195
338
|
/**
|
|
196
|
-
* Mark a task as complete by task number
|
|
339
|
+
* Mark a task as complete by task number (for compatibility)
|
|
197
340
|
*/
|
|
198
341
|
export function markTaskComplete(taskNumber) {
|
|
199
342
|
if (!currentPlan || taskNumber < 1 || taskNumber > currentPlan.steps.length) {
|
|
@@ -202,15 +345,61 @@ export function markTaskComplete(taskNumber) {
|
|
|
202
345
|
const task = currentPlan.steps[taskNumber - 1];
|
|
203
346
|
task.status = 'completed';
|
|
204
347
|
task.completedAt = new Date();
|
|
348
|
+
// Also mark all subtasks as complete
|
|
349
|
+
task.subtasks.forEach(st => {
|
|
350
|
+
st.status = 'completed';
|
|
351
|
+
st.completedAt = new Date();
|
|
352
|
+
});
|
|
205
353
|
return task;
|
|
206
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* Get the current phase (task) with all its subtasks
|
|
357
|
+
*/
|
|
358
|
+
export function getCurrentPhase() {
|
|
359
|
+
if (!currentPlan || !currentPlan.isActive)
|
|
360
|
+
return null;
|
|
361
|
+
const taskIndex = currentPlan.currentTaskIndex;
|
|
362
|
+
if (taskIndex < 0 || taskIndex >= currentPlan.steps.length)
|
|
363
|
+
return null;
|
|
364
|
+
const task = currentPlan.steps[taskIndex];
|
|
365
|
+
if (task.status === 'completed') {
|
|
366
|
+
// Find next pending task
|
|
367
|
+
const nextIndex = currentPlan.steps.findIndex((step, idx) => idx > taskIndex && step.status === 'pending');
|
|
368
|
+
if (nextIndex === -1)
|
|
369
|
+
return null;
|
|
370
|
+
return { taskNumber: nextIndex + 1, task: currentPlan.steps[nextIndex] };
|
|
371
|
+
}
|
|
372
|
+
return { taskNumber: taskIndex + 1, task };
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Advance to the next phase after current task is complete
|
|
376
|
+
* Returns the new phase or null if all phases are done
|
|
377
|
+
*/
|
|
378
|
+
export function advanceToNextPhase() {
|
|
379
|
+
if (!currentPlan || !currentPlan.isActive)
|
|
380
|
+
return null;
|
|
381
|
+
const currentTask = currentPlan.steps[currentPlan.currentTaskIndex];
|
|
382
|
+
// Mark current task as complete if not already
|
|
383
|
+
if (currentTask && currentTask.status !== 'completed') {
|
|
384
|
+
currentTask.status = 'completed';
|
|
385
|
+
currentTask.completedAt = new Date();
|
|
386
|
+
}
|
|
387
|
+
// Find next pending task
|
|
388
|
+
const nextIndex = currentPlan.steps.findIndex((step, idx) => idx > currentPlan.currentTaskIndex && step.status === 'pending');
|
|
389
|
+
if (nextIndex === -1) {
|
|
390
|
+
return null; // All phases complete
|
|
391
|
+
}
|
|
392
|
+
currentPlan.currentTaskIndex = nextIndex;
|
|
393
|
+
currentPlan.currentSubtaskIndex = currentPlan.steps[nextIndex].subtasks.length > 0 ? 0 : -1;
|
|
394
|
+
return { taskNumber: nextIndex + 1, task: currentPlan.steps[nextIndex] };
|
|
395
|
+
}
|
|
207
396
|
/**
|
|
208
397
|
* Get the next incomplete task
|
|
209
398
|
*/
|
|
210
399
|
export function getNextIncompleteTask() {
|
|
211
400
|
if (!currentPlan)
|
|
212
401
|
return null;
|
|
213
|
-
const index = currentPlan.steps.findIndex(step => step.status === 'pending');
|
|
402
|
+
const index = currentPlan.steps.findIndex(step => step.status === 'pending' || step.status === 'in_progress');
|
|
214
403
|
if (index === -1)
|
|
215
404
|
return null;
|
|
216
405
|
return {
|
|
@@ -227,18 +416,24 @@ export function areAllTasksComplete() {
|
|
|
227
416
|
return currentPlan.steps.every(step => step.status === 'completed' || step.status === 'skipped');
|
|
228
417
|
}
|
|
229
418
|
/**
|
|
230
|
-
* Get plan progress summary
|
|
419
|
+
* Get plan progress summary (including subtasks)
|
|
231
420
|
*/
|
|
232
421
|
export function getPlanProgress() {
|
|
233
422
|
if (!currentPlan)
|
|
234
423
|
return null;
|
|
235
|
-
const
|
|
236
|
-
const
|
|
237
|
-
const
|
|
238
|
-
return {
|
|
424
|
+
const { completedCount, totalCount } = calculateProgress();
|
|
425
|
+
const percentage = totalCount > 0 ? Math.round((completedCount / totalCount) * 100) : 0;
|
|
426
|
+
const completedTasks = currentPlan.steps.filter(s => s.status === 'completed').length;
|
|
427
|
+
return {
|
|
428
|
+
completed: completedCount,
|
|
429
|
+
total: totalCount,
|
|
430
|
+
percentage,
|
|
431
|
+
currentTask: currentPlan.currentTaskIndex + 1,
|
|
432
|
+
totalTasks: currentPlan.steps.length
|
|
433
|
+
};
|
|
239
434
|
}
|
|
240
435
|
/**
|
|
241
|
-
* Generate plan context for AI system prompt injection
|
|
436
|
+
* Generate plan context for AI system prompt injection (shows all tasks)
|
|
242
437
|
*/
|
|
243
438
|
export function getPlanContextForPrompt() {
|
|
244
439
|
if (!currentPlan || !currentPlan.isActive)
|
|
@@ -247,15 +442,25 @@ export function getPlanContextForPrompt() {
|
|
|
247
442
|
if (!progress)
|
|
248
443
|
return '';
|
|
249
444
|
let context = `\n\n## ACTIVE PLAN: ${currentPlan.title}\n`;
|
|
250
|
-
|
|
445
|
+
if (currentPlan.designSummary) {
|
|
446
|
+
context += `\n### Design Summary:\n${currentPlan.designSummary}\n`;
|
|
447
|
+
}
|
|
448
|
+
context += `\nProgress: ${progress.completed}/${progress.total} items completed (${progress.percentage}%)\n`;
|
|
449
|
+
context += `Current Task: ${progress.currentTask}/${progress.totalTasks}\n\n`;
|
|
251
450
|
context += `### Tasks:\n`;
|
|
252
451
|
currentPlan.steps.forEach((step, index) => {
|
|
253
452
|
const statusIcon = step.status === 'completed' ? '✅' :
|
|
254
453
|
step.status === 'in_progress' ? '🔄' :
|
|
255
454
|
step.status === 'skipped' ? '⏭️' : '⏳';
|
|
256
|
-
const isCurrent = index === currentPlan.currentTaskIndex && step.status
|
|
455
|
+
const isCurrent = index === currentPlan.currentTaskIndex && step.status !== 'completed';
|
|
257
456
|
const marker = isCurrent ? ' 👈 CURRENT' : '';
|
|
258
457
|
context += `${index + 1}. ${statusIcon} ${step.description}${marker}\n`;
|
|
458
|
+
// Add subtasks
|
|
459
|
+
step.subtasks.forEach((subtask, subIndex) => {
|
|
460
|
+
const subStatusIcon = subtask.status === 'completed' ? '✅' :
|
|
461
|
+
subtask.status === 'in_progress' ? '🔄' : '⬜';
|
|
462
|
+
context += ` ${index + 1}.${subIndex + 1}. ${subStatusIcon} ${subtask.description}\n`;
|
|
463
|
+
});
|
|
259
464
|
});
|
|
260
465
|
const nextTask = getNextIncompleteTask();
|
|
261
466
|
if (nextTask) {
|
|
@@ -267,6 +472,49 @@ export function getPlanContextForPrompt() {
|
|
|
267
472
|
}
|
|
268
473
|
return context;
|
|
269
474
|
}
|
|
475
|
+
/**
|
|
476
|
+
* Generate context for only the current phase (single task with its subtasks)
|
|
477
|
+
* Used for phased execution where AI only sees one task at a time
|
|
478
|
+
*/
|
|
479
|
+
export function getPhaseContextForPrompt() {
|
|
480
|
+
if (!currentPlan || !currentPlan.isActive)
|
|
481
|
+
return '';
|
|
482
|
+
const currentPhase = getCurrentPhase();
|
|
483
|
+
if (!currentPhase) {
|
|
484
|
+
return `\n**ALL TASKS COMPLETE**: Call task_complete with a summary of what was accomplished.\n`;
|
|
485
|
+
}
|
|
486
|
+
const progress = getPlanProgress();
|
|
487
|
+
const { taskNumber, task } = currentPhase;
|
|
488
|
+
let context = `\n\n## CURRENT TASK: ${currentPlan.title}\n`;
|
|
489
|
+
if (currentPlan.designSummary) {
|
|
490
|
+
context += `\n### Design Context:\n${currentPlan.designSummary}\n`;
|
|
491
|
+
}
|
|
492
|
+
context += `\n### Overall Progress: Task ${taskNumber}/${currentPlan.steps.length}\n`;
|
|
493
|
+
context += `${progress ? `(${progress.completed}/${progress.total} items completed - ${progress.percentage}%)` : ''}\n\n`;
|
|
494
|
+
context += `### YOUR CURRENT TASK:\n`;
|
|
495
|
+
context += `**Task ${taskNumber}: ${task.description}**\n\n`;
|
|
496
|
+
if (task.subtasks.length > 0) {
|
|
497
|
+
context += `Subtasks to complete:\n`;
|
|
498
|
+
task.subtasks.forEach((subtask, index) => {
|
|
499
|
+
const subStatusIcon = subtask.status === 'completed' ? '✅' :
|
|
500
|
+
subtask.status === 'in_progress' ? '🔄' : '⬜';
|
|
501
|
+
const isCurrentSubtask = index === currentPlan.currentSubtaskIndex;
|
|
502
|
+
const marker = isCurrentSubtask && subtask.status === 'pending' ? ' 👈 CURRENT' : '';
|
|
503
|
+
context += ` ${taskNumber}.${index + 1}. ${subStatusIcon} ${subtask.description}${marker}\n`;
|
|
504
|
+
});
|
|
505
|
+
context += `\n**Instructions**: Complete each subtask in order.\n`;
|
|
506
|
+
context += `After completing a subtask, call: mark_task_complete(task_number="${taskNumber}.X")\n`;
|
|
507
|
+
context += `When all subtasks are done, the main task will be automatically marked complete.\n`;
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
context += `\n**Instructions**: Complete this task.\n`;
|
|
511
|
+
context += `When done, call: mark_task_complete(task_number="${taskNumber}")\n`;
|
|
512
|
+
}
|
|
513
|
+
return context;
|
|
514
|
+
}
|
|
515
|
+
// ============================================================================
|
|
516
|
+
// EXPORTS
|
|
517
|
+
// ============================================================================
|
|
270
518
|
export default {
|
|
271
519
|
createPlanTool,
|
|
272
520
|
markTaskCompleteTool,
|
|
@@ -275,9 +523,12 @@ export default {
|
|
|
275
523
|
clearPlan,
|
|
276
524
|
approvePlan,
|
|
277
525
|
markTaskComplete,
|
|
526
|
+
getCurrentPhase,
|
|
527
|
+
advanceToNextPhase,
|
|
278
528
|
getNextIncompleteTask,
|
|
279
529
|
areAllTasksComplete,
|
|
280
530
|
getPlanProgress,
|
|
281
|
-
getPlanContextForPrompt
|
|
531
|
+
getPlanContextForPrompt,
|
|
532
|
+
getPhaseContextForPrompt
|
|
282
533
|
};
|
|
283
534
|
//# sourceMappingURL=plan-mode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-mode.js","sourceRoot":"","sources":["../../src/tools/plan-mode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan-mode.js","sourceRoot":"","sources":["../../src/tools/plan-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read Binary File Tool
|
|
3
|
+
*
|
|
4
|
+
* Enables the AI to read non-text files (PDFs, images, documents) by uploading
|
|
5
|
+
* them to Google Cloud Storage and attaching them to the conversation context
|
|
6
|
+
* for Vertex AI multimodal understanding.
|
|
7
|
+
*/
|
|
8
|
+
import { Tool } from './types.js';
|
|
9
|
+
export declare const readBinaryFileTool: Tool;
|
|
10
|
+
//# sourceMappingURL=read-binary-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-binary-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-binary-file.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAyDlC,eAAO,MAAM,kBAAkB,EAAE,IA+JhC,CAAC"}
|