centaurus-cli 2.7.3 → 2.8.1
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 +10 -6
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +613 -154
- package/dist/cli-adapter.js.map +1 -1
- package/dist/config/slash-commands.d.ts.map +1 -1
- package/dist/config/slash-commands.js +1 -0
- package/dist/config/slash-commands.js.map +1 -1
- package/dist/context/context-manager.d.ts +4 -1
- package/dist/context/context-manager.d.ts.map +1 -1
- package/dist/context/context-manager.js +30 -7
- package/dist/context/context-manager.js.map +1 -1
- package/dist/context/handlers/wsl-handler.d.ts +10 -0
- package/dist/context/handlers/wsl-handler.d.ts.map +1 -1
- package/dist/context/handlers/wsl-handler.js +31 -2
- package/dist/context/handlers/wsl-handler.js.map +1 -1
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -1
- package/dist/services/ai-service-client.d.ts +1 -0
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +20 -0
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +136 -21
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.d.ts +1 -0
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +144 -3
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/inspect-symbol.js +27 -27
- package/dist/tools/inspect-symbol.js.map +1 -1
- package/dist/tools/plan-mode.d.ts +55 -19
- package/dist/tools/plan-mode.d.ts.map +1 -1
- package/dist/tools/plan-mode.js +204 -123
- package/dist/tools/plan-mode.js.map +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/App.d.ts +6 -5
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +277 -125
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +24 -5
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/InteractiveShell.d.ts +2 -1
- package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/components/InteractiveShell.js +41 -106
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +12 -8
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +11 -3
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/PlanAcceptedMessage.d.ts +12 -0
- package/dist/ui/components/PlanAcceptedMessage.d.ts.map +1 -0
- package/dist/ui/components/PlanAcceptedMessage.js +22 -0
- package/dist/ui/components/PlanAcceptedMessage.js.map +1 -0
- package/dist/ui/components/PlanReviewScreen.d.ts +14 -0
- package/dist/ui/components/PlanReviewScreen.d.ts.map +1 -0
- package/dist/ui/components/PlanReviewScreen.js +52 -0
- package/dist/ui/components/PlanReviewScreen.js.map +1 -0
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +5 -5
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/ui/components/TaskCompletedMessage.d.ts +14 -0
- package/dist/ui/components/TaskCompletedMessage.d.ts.map +1 -0
- package/dist/ui/components/TaskCompletedMessage.js +25 -0
- package/dist/ui/components/TaskCompletedMessage.js.map +1 -0
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +174 -17
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/utils/conversation-logger.d.ts +127 -0
- package/dist/utils/conversation-logger.d.ts.map +1 -0
- package/dist/utils/conversation-logger.js +283 -0
- package/dist/utils/conversation-logger.js.map +1 -0
- package/dist/utils/editor-utils.d.ts +87 -0
- package/dist/utils/editor-utils.d.ts.map +1 -0
- package/dist/utils/editor-utils.js +712 -0
- package/dist/utils/editor-utils.js.map +1 -0
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +12 -4
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/markdown-parser.d.ts.map +1 -1
- package/dist/utils/markdown-parser.js +4 -2
- package/dist/utils/markdown-parser.js.map +1 -1
- package/dist/utils/shell.d.ts +32 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +97 -161
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-checker.d.ts +24 -0
- package/dist/utils/syntax-checker.d.ts.map +1 -0
- package/dist/utils/syntax-checker.js +320 -0
- package/dist/utils/syntax-checker.js.map +1 -0
- package/package.json +4 -3
- package/prompts/system-prompt-autonomous.md +0 -377
package/dist/tools/plan-mode.js
CHANGED
|
@@ -1,183 +1,179 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Plan Mode
|
|
3
|
-
*
|
|
2
|
+
* Plan Mode - Structured Task Planning and Execution
|
|
3
|
+
* Enables AI to create structured plans and track task completion
|
|
4
4
|
*/
|
|
5
|
+
// In-memory plan state
|
|
5
6
|
let currentPlan = null;
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
8
|
+
* Create Plan Tool
|
|
9
|
+
* AI uses this to generate a structured plan with tasks
|
|
9
10
|
*/
|
|
10
|
-
export const
|
|
11
|
+
export const createPlanTool = {
|
|
11
12
|
schema: {
|
|
12
|
-
name: '
|
|
13
|
-
description: `Use this tool when
|
|
14
|
-
This will
|
|
13
|
+
name: 'create_plan',
|
|
14
|
+
description: `Use this tool when in planning mode to create a structured implementation plan.
|
|
15
|
+
This will present the plan to the user for review and approval before execution begins.
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
The plan should include:
|
|
18
|
+
1. A clear title describing what will be accomplished
|
|
19
|
+
2. A brief summary of the approach
|
|
20
|
+
3. A numbered list of concrete, actionable tasks
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
IMPORTANT: Only use this tool when in planning mode. Each task should be:
|
|
23
|
+
- Specific and actionable
|
|
24
|
+
- Independent enough to be marked complete individually
|
|
25
|
+
- Ordered in a logical sequence`,
|
|
22
26
|
parameters: {
|
|
23
27
|
type: 'object',
|
|
24
28
|
properties: {
|
|
25
|
-
|
|
29
|
+
title: {
|
|
26
30
|
type: 'string',
|
|
27
|
-
description: '
|
|
31
|
+
description: 'A clear, concise title for the plan'
|
|
28
32
|
},
|
|
29
|
-
|
|
33
|
+
summary: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Brief summary of the overall approach (1-2 sentences)'
|
|
36
|
+
},
|
|
37
|
+
tasks: {
|
|
30
38
|
type: 'array',
|
|
31
39
|
items: {
|
|
32
40
|
type: 'object',
|
|
33
41
|
properties: {
|
|
34
42
|
description: {
|
|
35
43
|
type: 'string',
|
|
36
|
-
description: '
|
|
44
|
+
description: 'Clear description of what this task accomplishes'
|
|
37
45
|
},
|
|
38
46
|
complexity: {
|
|
39
47
|
type: 'string',
|
|
40
48
|
enum: ['low', 'medium', 'high'],
|
|
41
|
-
description: 'Estimated complexity of the
|
|
49
|
+
description: 'Estimated complexity of the task'
|
|
42
50
|
}
|
|
43
51
|
},
|
|
44
52
|
required: ['description']
|
|
45
53
|
},
|
|
46
|
-
description: 'List of
|
|
54
|
+
description: 'List of tasks to execute, in order'
|
|
47
55
|
}
|
|
48
56
|
},
|
|
49
|
-
required: ['
|
|
57
|
+
required: ['title', 'summary', 'tasks']
|
|
50
58
|
}
|
|
51
59
|
},
|
|
52
60
|
async execute(args, context) {
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
const title = args.title;
|
|
62
|
+
const summary = args.summary;
|
|
63
|
+
const tasks = args.tasks;
|
|
64
|
+
if (!title || title.trim().length === 0) {
|
|
65
|
+
throw new Error('Plan title cannot be empty');
|
|
66
|
+
}
|
|
67
|
+
if (!tasks || tasks.length === 0) {
|
|
68
|
+
throw new Error('Plan must have at least one task');
|
|
57
69
|
}
|
|
58
70
|
// Create the plan object
|
|
59
71
|
const plan = {
|
|
60
|
-
title:
|
|
61
|
-
summary:
|
|
62
|
-
steps:
|
|
63
|
-
id: `
|
|
64
|
-
description:
|
|
72
|
+
title: title.trim(),
|
|
73
|
+
summary: summary?.trim() || '',
|
|
74
|
+
steps: tasks.map((task, index) => ({
|
|
75
|
+
id: `task_${index + 1}`,
|
|
76
|
+
description: task.description.trim(),
|
|
65
77
|
status: 'pending',
|
|
66
|
-
estimatedComplexity:
|
|
67
|
-
}))
|
|
78
|
+
estimatedComplexity: task.complexity
|
|
79
|
+
})),
|
|
68
80
|
createdAt: new Date(),
|
|
69
|
-
approved: false
|
|
81
|
+
approved: false,
|
|
82
|
+
isActive: false,
|
|
83
|
+
currentTaskIndex: 0
|
|
70
84
|
};
|
|
71
85
|
currentPlan = plan;
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
formattedPlan += planText + '\n\n';
|
|
75
|
-
if (steps && steps.length > 0) {
|
|
76
|
-
formattedPlan += '### Steps:\n\n';
|
|
77
|
-
steps.forEach((step, index) => {
|
|
78
|
-
const complexity = step.complexity ? ` [${step.complexity}]` : '';
|
|
79
|
-
formattedPlan += `${index + 1}. ${step.description}${complexity}\n`;
|
|
80
|
-
});
|
|
81
|
-
formattedPlan += '\n';
|
|
82
|
-
}
|
|
83
|
-
formattedPlan += '---\n\n';
|
|
84
|
-
formattedPlan += '**Ready to proceed with this plan?**\n';
|
|
85
|
-
formattedPlan += 'Type "yes" to approve and start implementation, or provide feedback to adjust the plan.\n';
|
|
86
|
-
return formattedPlan;
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* Get current plan status
|
|
91
|
-
*/
|
|
92
|
-
export const getPlanStatusTool = {
|
|
93
|
-
schema: {
|
|
94
|
-
name: 'get_plan_status',
|
|
95
|
-
description: 'Get the current plan status and progress',
|
|
96
|
-
parameters: {
|
|
97
|
-
type: 'object',
|
|
98
|
-
properties: {},
|
|
99
|
-
required: []
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
async execute(args, context) {
|
|
103
|
-
if (!currentPlan) {
|
|
104
|
-
return 'No active plan';
|
|
105
|
-
}
|
|
106
|
-
const completedSteps = currentPlan.steps.filter(s => s.status === 'completed').length;
|
|
107
|
-
const totalSteps = currentPlan.steps.length;
|
|
108
|
-
const progress = totalSteps > 0 ? Math.round((completedSteps / totalSteps) * 100) : 0;
|
|
109
|
-
let status = `## Plan Status\n\n`;
|
|
110
|
-
status += `**Title:** ${currentPlan.title}\n`;
|
|
111
|
-
status += `**Progress:** ${completedSteps}/${totalSteps} (${progress}%)\n`;
|
|
112
|
-
status += `**Approved:** ${currentPlan.approved ? 'Yes' : 'No'}\n\n`;
|
|
113
|
-
if (currentPlan.steps.length > 0) {
|
|
114
|
-
status += '### Steps:\n\n';
|
|
115
|
-
currentPlan.steps.forEach((step, index) => {
|
|
116
|
-
const statusIcon = step.status === 'completed' ? '✅' :
|
|
117
|
-
step.status === 'in_progress' ? '🔄' :
|
|
118
|
-
step.status === 'skipped' ? '⏭️' : '⏳';
|
|
119
|
-
const complexity = step.estimatedComplexity ? ` [${step.estimatedComplexity}]` : '';
|
|
120
|
-
status += `${index + 1}. ${statusIcon} ${step.description}${complexity}\n`;
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
return status;
|
|
86
|
+
// Return confirmation - the UI will handle displaying the plan
|
|
87
|
+
return `PLAN_CREATED:${JSON.stringify(plan)}`;
|
|
124
88
|
}
|
|
125
89
|
};
|
|
126
90
|
/**
|
|
127
|
-
*
|
|
91
|
+
* Mark Task Complete Tool
|
|
92
|
+
* AI uses this to mark individual tasks as completed during execution
|
|
128
93
|
*/
|
|
129
|
-
export const
|
|
94
|
+
export const markTaskCompleteTool = {
|
|
130
95
|
schema: {
|
|
131
|
-
name: '
|
|
132
|
-
description:
|
|
96
|
+
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.
|
|
99
|
+
|
|
100
|
+
This will:
|
|
101
|
+
1. Update the task status to 'completed'
|
|
102
|
+
2. Show a completion message in the UI
|
|
103
|
+
3. Automatically advance to the next task
|
|
104
|
+
|
|
105
|
+
IMPORTANT:
|
|
106
|
+
- Must have an active approved plan
|
|
107
|
+
- Call this for each task as you complete it
|
|
108
|
+
- After marking the LAST task complete, call task_complete to end the session`,
|
|
133
109
|
parameters: {
|
|
134
110
|
type: 'object',
|
|
135
111
|
properties: {
|
|
136
|
-
|
|
137
|
-
type: 'string',
|
|
138
|
-
description: 'The ID of the step to update (e.g., "step_1")'
|
|
139
|
-
},
|
|
140
|
-
step_number: {
|
|
112
|
+
task_number: {
|
|
141
113
|
type: 'number',
|
|
142
|
-
description: 'The
|
|
114
|
+
description: 'The task number to mark complete (1-indexed)'
|
|
143
115
|
},
|
|
144
|
-
|
|
116
|
+
completion_note: {
|
|
145
117
|
type: 'string',
|
|
146
|
-
|
|
147
|
-
description: 'The new status of the step'
|
|
118
|
+
description: 'Optional note about what was accomplished'
|
|
148
119
|
}
|
|
149
120
|
},
|
|
150
|
-
required: ['
|
|
121
|
+
required: ['task_number']
|
|
151
122
|
}
|
|
152
123
|
},
|
|
153
124
|
async execute(args, context) {
|
|
154
125
|
if (!currentPlan) {
|
|
155
|
-
throw new Error('No active plan
|
|
126
|
+
throw new Error('No active plan. Create a plan first using create_plan.');
|
|
156
127
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const newStatus = args.status;
|
|
160
|
-
let step;
|
|
161
|
-
if (stepId) {
|
|
162
|
-
step = currentPlan.steps.find(s => s.id === stepId);
|
|
128
|
+
if (!currentPlan.approved || !currentPlan.isActive) {
|
|
129
|
+
throw new Error('Plan must be approved and active before marking tasks complete.');
|
|
163
130
|
}
|
|
164
|
-
|
|
165
|
-
|
|
131
|
+
const taskNumber = args.task_number;
|
|
132
|
+
const completionNote = args.completion_note;
|
|
133
|
+
if (taskNumber < 1 || taskNumber > currentPlan.steps.length) {
|
|
134
|
+
throw new Error(`Invalid task number. Must be between 1 and ${currentPlan.steps.length}.`);
|
|
166
135
|
}
|
|
167
|
-
|
|
168
|
-
|
|
136
|
+
const taskIndex = taskNumber - 1;
|
|
137
|
+
const task = currentPlan.steps[taskIndex];
|
|
138
|
+
if (task.status === 'completed') {
|
|
139
|
+
return `Task ${taskNumber} is already marked as completed.`;
|
|
169
140
|
}
|
|
170
|
-
|
|
171
|
-
|
|
141
|
+
// Mark the task as complete
|
|
142
|
+
task.status = 'completed';
|
|
143
|
+
task.completedAt = new Date();
|
|
144
|
+
// Update current task index to next pending task
|
|
145
|
+
const nextPendingIndex = currentPlan.steps.findIndex((step, idx) => idx > taskIndex && step.status === 'pending');
|
|
146
|
+
if (nextPendingIndex !== -1) {
|
|
147
|
+
currentPlan.currentTaskIndex = nextPendingIndex;
|
|
148
|
+
}
|
|
149
|
+
// Count completed and remaining
|
|
150
|
+
const completedCount = currentPlan.steps.filter(s => s.status === 'completed').length;
|
|
151
|
+
const totalCount = currentPlan.steps.length;
|
|
152
|
+
const allComplete = completedCount === totalCount;
|
|
153
|
+
// Return structured response for UI parsing
|
|
154
|
+
const result = {
|
|
155
|
+
taskNumber,
|
|
156
|
+
taskDescription: task.description,
|
|
157
|
+
completionNote: completionNote || null,
|
|
158
|
+
completedCount,
|
|
159
|
+
totalCount,
|
|
160
|
+
allComplete,
|
|
161
|
+
nextTask: allComplete ? null : currentPlan.steps[currentPlan.currentTaskIndex]?.description
|
|
162
|
+
};
|
|
163
|
+
return `TASK_COMPLETED:${JSON.stringify(result)}`;
|
|
172
164
|
}
|
|
173
165
|
};
|
|
174
166
|
/**
|
|
175
|
-
*
|
|
167
|
+
* Set the current plan (used by CLI adapter)
|
|
176
168
|
*/
|
|
177
|
-
export function
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
169
|
+
export function setPlan(plan) {
|
|
170
|
+
currentPlan = plan;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get the current plan
|
|
174
|
+
*/
|
|
175
|
+
export function getCurrentPlan() {
|
|
176
|
+
return currentPlan;
|
|
181
177
|
}
|
|
182
178
|
/**
|
|
183
179
|
* Clear the current plan
|
|
@@ -186,17 +182,102 @@ export function clearPlan() {
|
|
|
186
182
|
currentPlan = null;
|
|
187
183
|
}
|
|
188
184
|
/**
|
|
189
|
-
*
|
|
185
|
+
* Approve the current plan and make it active
|
|
190
186
|
*/
|
|
191
|
-
export function
|
|
187
|
+
export function approvePlan() {
|
|
188
|
+
if (currentPlan) {
|
|
189
|
+
currentPlan.approved = true;
|
|
190
|
+
currentPlan.isActive = true;
|
|
191
|
+
currentPlan.currentTaskIndex = 0;
|
|
192
|
+
}
|
|
192
193
|
return currentPlan;
|
|
193
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Mark a task as complete by task number
|
|
197
|
+
*/
|
|
198
|
+
export function markTaskComplete(taskNumber) {
|
|
199
|
+
if (!currentPlan || taskNumber < 1 || taskNumber > currentPlan.steps.length) {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
const task = currentPlan.steps[taskNumber - 1];
|
|
203
|
+
task.status = 'completed';
|
|
204
|
+
task.completedAt = new Date();
|
|
205
|
+
return task;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Get the next incomplete task
|
|
209
|
+
*/
|
|
210
|
+
export function getNextIncompleteTask() {
|
|
211
|
+
if (!currentPlan)
|
|
212
|
+
return null;
|
|
213
|
+
const index = currentPlan.steps.findIndex(step => step.status === 'pending');
|
|
214
|
+
if (index === -1)
|
|
215
|
+
return null;
|
|
216
|
+
return {
|
|
217
|
+
taskNumber: index + 1,
|
|
218
|
+
task: currentPlan.steps[index]
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Check if all tasks are complete
|
|
223
|
+
*/
|
|
224
|
+
export function areAllTasksComplete() {
|
|
225
|
+
if (!currentPlan)
|
|
226
|
+
return false;
|
|
227
|
+
return currentPlan.steps.every(step => step.status === 'completed' || step.status === 'skipped');
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get plan progress summary
|
|
231
|
+
*/
|
|
232
|
+
export function getPlanProgress() {
|
|
233
|
+
if (!currentPlan)
|
|
234
|
+
return null;
|
|
235
|
+
const completed = currentPlan.steps.filter(s => s.status === 'completed').length;
|
|
236
|
+
const total = currentPlan.steps.length;
|
|
237
|
+
const percentage = total > 0 ? Math.round((completed / total) * 100) : 0;
|
|
238
|
+
return { completed, total, percentage };
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Generate plan context for AI system prompt injection
|
|
242
|
+
*/
|
|
243
|
+
export function getPlanContextForPrompt() {
|
|
244
|
+
if (!currentPlan || !currentPlan.isActive)
|
|
245
|
+
return '';
|
|
246
|
+
const progress = getPlanProgress();
|
|
247
|
+
if (!progress)
|
|
248
|
+
return '';
|
|
249
|
+
let context = `\n\n## ACTIVE PLAN: ${currentPlan.title}\n`;
|
|
250
|
+
context += `Progress: ${progress.completed}/${progress.total} tasks completed (${progress.percentage}%)\n\n`;
|
|
251
|
+
context += `### Tasks:\n`;
|
|
252
|
+
currentPlan.steps.forEach((step, index) => {
|
|
253
|
+
const statusIcon = step.status === 'completed' ? '✅' :
|
|
254
|
+
step.status === 'in_progress' ? '🔄' :
|
|
255
|
+
step.status === 'skipped' ? '⏭️' : '⏳';
|
|
256
|
+
const isCurrent = index === currentPlan.currentTaskIndex && step.status === 'pending';
|
|
257
|
+
const marker = isCurrent ? ' 👈 CURRENT' : '';
|
|
258
|
+
context += `${index + 1}. ${statusIcon} ${step.description}${marker}\n`;
|
|
259
|
+
});
|
|
260
|
+
const nextTask = getNextIncompleteTask();
|
|
261
|
+
if (nextTask) {
|
|
262
|
+
context += `\n**NEXT ACTION**: Complete task ${nextTask.taskNumber}: ${nextTask.task.description}\n`;
|
|
263
|
+
context += `After completing this task, call mark_task_complete with task_number=${nextTask.taskNumber}\n`;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
context += `\n**ALL TASKS COMPLETE**: Call task_complete with a summary of what was accomplished.\n`;
|
|
267
|
+
}
|
|
268
|
+
return context;
|
|
269
|
+
}
|
|
194
270
|
export default {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
271
|
+
createPlanTool,
|
|
272
|
+
markTaskCompleteTool,
|
|
273
|
+
setPlan,
|
|
274
|
+
getCurrentPlan,
|
|
199
275
|
clearPlan,
|
|
200
|
-
|
|
276
|
+
approvePlan,
|
|
277
|
+
markTaskComplete,
|
|
278
|
+
getNextIncompleteTask,
|
|
279
|
+
areAllTasksComplete,
|
|
280
|
+
getPlanProgress,
|
|
281
|
+
getPlanContextForPrompt
|
|
201
282
|
};
|
|
202
283
|
//# sourceMappingURL=plan-mode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-mode.js","sourceRoot":"","sources":["../../src/tools/plan-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"plan-mode.js","sourceRoot":"","sources":["../../src/tools/plan-mode.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface ToolExecutionContext {
|
|
|
22
22
|
content: string;
|
|
23
23
|
language?: string;
|
|
24
24
|
fullDiff?: string;
|
|
25
|
-
}, operationType?: 'write_file' | 'edit_file' | 'execute_command' | 'write_to_file', operationDetails?: Record<string, any>) => Promise<boolean | {
|
|
25
|
+
}, operationType?: 'write_file' | 'edit_file' | 'execute_command' | 'write_to_file' | 'multi_edit_file', operationDetails?: Record<string, any>) => Promise<boolean | {
|
|
26
26
|
approved: false;
|
|
27
27
|
feedback: string;
|
|
28
28
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,GAAG,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,CACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1F,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,GAAG,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,CACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1F,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,EACpG,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACnC,OAAO,CAAC,OAAO,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IACvE,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEzG,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACvB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export interface AgenticLoopStats {
|
|
|
41
41
|
}
|
|
42
42
|
export interface ToolExecution {
|
|
43
43
|
toolName: string;
|
|
44
|
-
status: 'executing' | 'completed' | 'error';
|
|
44
|
+
status: 'pending' | 'executing' | 'completed' | 'error';
|
|
45
45
|
result?: string;
|
|
46
46
|
error?: string;
|
|
47
47
|
arguments?: Record<string, any>;
|
|
@@ -77,6 +77,16 @@ export interface Message {
|
|
|
77
77
|
tool_calls?: ToolCall[];
|
|
78
78
|
thoughts?: string[];
|
|
79
79
|
thinkingDuration?: number;
|
|
80
|
+
taskCompletion?: {
|
|
81
|
+
taskNumber: number;
|
|
82
|
+
totalTasks: number;
|
|
83
|
+
taskDescription: string;
|
|
84
|
+
completionNote?: string;
|
|
85
|
+
};
|
|
86
|
+
planAccepted?: {
|
|
87
|
+
planTitle?: string;
|
|
88
|
+
totalTasks?: number;
|
|
89
|
+
};
|
|
80
90
|
}
|
|
81
91
|
export interface ToolCall {
|
|
82
92
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,QAAQ,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IACtF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SubshellContext } from '../../context/types.js';
|
|
3
|
+
import { Plan, PlanStep } from '../../tools/plan-mode.js';
|
|
3
4
|
interface AppProps {
|
|
4
5
|
onMessage: (message: string) => Promise<void>;
|
|
5
6
|
onCancelRequest: () => void;
|
|
@@ -21,7 +22,7 @@ interface AppProps {
|
|
|
21
22
|
onPickerSelection: (selection: string, type: 'model') => Promise<void>;
|
|
22
23
|
onToolExecutionUpdate: (callback: (update: {
|
|
23
24
|
toolName: string;
|
|
24
|
-
status: 'executing' | 'completed' | 'error';
|
|
25
|
+
status: 'pending' | 'executing' | 'completed' | 'error';
|
|
25
26
|
result?: string;
|
|
26
27
|
error?: string;
|
|
27
28
|
arguments?: Record<string, any>;
|
|
@@ -44,10 +45,9 @@ interface AppProps {
|
|
|
44
45
|
type: 'stdout' | 'stderr';
|
|
45
46
|
}) => void) => void;
|
|
46
47
|
onPlanModeChange: (callback: (planMode: boolean) => void) => void;
|
|
47
|
-
onPlanApprovalRequest: (callback: (plan:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}) => Promise<boolean>) => void;
|
|
48
|
+
onPlanApprovalRequest: (callback: (plan: Plan) => Promise<boolean>) => void;
|
|
49
|
+
onPlanCreated: (callback: (plan: Plan) => void) => void;
|
|
50
|
+
onTaskCompleted: (callback: (task: PlanStep, taskNumber: number, totalTasks: number, completionNote?: string) => void) => void;
|
|
51
51
|
onCommandModeChange: (callback: (commandMode: boolean) => void) => void;
|
|
52
52
|
onToggleCommandMode: () => void;
|
|
53
53
|
onCwdChange: (callback: (cwd: string) => void) => void;
|
|
@@ -57,6 +57,7 @@ interface AppProps {
|
|
|
57
57
|
onShellInput: (input: string) => void;
|
|
58
58
|
onShellSignal: (signal: string) => void;
|
|
59
59
|
onKillProcess: () => void;
|
|
60
|
+
onInteractiveEditorMode: (callback: (active: boolean, command?: string, cwd?: string, remoteContext?: SubshellContext) => void) => void;
|
|
60
61
|
}
|
|
61
62
|
export declare const App: React.FC<AppProps>;
|
|
62
63
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAqBrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"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"}
|