@defai.digital/ax-cli 2.8.0 → 3.0.0
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/README.md +85 -9
- package/dist/agent/context-manager.js +9 -0
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/dependency-resolver.js +13 -5
- package/dist/agent/dependency-resolver.js.map +1 -1
- package/dist/agent/llm-agent.d.ts +48 -0
- package/dist/agent/llm-agent.js +375 -3
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/subagent-orchestrator.d.ts +4 -0
- package/dist/agent/subagent-orchestrator.js +54 -11
- package/dist/agent/subagent-orchestrator.js.map +1 -1
- package/dist/agent/subagent.js +35 -11
- package/dist/agent/subagent.js.map +1 -1
- package/dist/commands/cache.js +5 -3
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/memory.js +21 -16
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/plan.d.ts +43 -0
- package/dist/commands/plan.js +385 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/constants.d.ts +28 -0
- package/dist/constants.js +29 -0
- package/dist/constants.js.map +1 -1
- package/dist/hooks/use-enhanced-input.d.ts +5 -1
- package/dist/hooks/use-enhanced-input.js +23 -10
- package/dist/hooks/use-enhanced-input.js.map +1 -1
- package/dist/hooks/use-input-handler.d.ts +11 -1
- package/dist/hooks/use-input-handler.js +270 -2
- package/dist/hooks/use-input-handler.js.map +1 -1
- package/dist/llm/tools.d.ts +5 -0
- package/dist/llm/tools.js +57 -6
- package/dist/llm/tools.js.map +1 -1
- package/dist/mcp/client.js +19 -12
- package/dist/mcp/client.js.map +1 -1
- package/dist/planner/dependency-resolver.d.ts +72 -0
- package/dist/planner/dependency-resolver.js +272 -0
- package/dist/planner/dependency-resolver.js.map +1 -0
- package/dist/planner/index.d.ts +12 -0
- package/dist/planner/index.js +26 -0
- package/dist/planner/index.js.map +1 -0
- package/dist/planner/plan-generator.d.ts +74 -0
- package/dist/planner/plan-generator.js +244 -0
- package/dist/planner/plan-generator.js.map +1 -0
- package/dist/planner/plan-storage.d.ts +98 -0
- package/dist/planner/plan-storage.js +325 -0
- package/dist/planner/plan-storage.js.map +1 -0
- package/dist/planner/prompts/planning-prompt.d.ts +41 -0
- package/dist/planner/prompts/planning-prompt.js +289 -0
- package/dist/planner/prompts/planning-prompt.js.map +1 -0
- package/dist/planner/task-planner.d.ts +135 -0
- package/dist/planner/task-planner.js +493 -0
- package/dist/planner/task-planner.js.map +1 -0
- package/dist/planner/token-estimator.d.ts +63 -0
- package/dist/planner/token-estimator.js +295 -0
- package/dist/planner/token-estimator.js.map +1 -0
- package/dist/planner/types.d.ts +669 -0
- package/dist/planner/types.js +213 -0
- package/dist/planner/types.js.map +1 -0
- package/dist/schemas/confirmation-schemas.d.ts +5 -0
- package/dist/schemas/confirmation-schemas.js +7 -0
- package/dist/schemas/confirmation-schemas.js.map +1 -1
- package/dist/schemas/index.d.ts +4 -4
- package/dist/tools/bash-output.d.ts +25 -0
- package/dist/tools/bash-output.js +145 -0
- package/dist/tools/bash-output.js.map +1 -0
- package/dist/tools/bash.d.ts +46 -2
- package/dist/tools/bash.js +241 -67
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/search.js +15 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/text-editor.js +4 -2
- package/dist/tools/text-editor.js.map +1 -1
- package/dist/ui/components/chat-history.d.ts +1 -0
- package/dist/ui/components/chat-history.js +125 -41
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.js +10 -3
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.js +152 -44
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/collapsible-tool-result.d.ts +26 -0
- package/dist/ui/components/collapsible-tool-result.js +172 -0
- package/dist/ui/components/collapsible-tool-result.js.map +1 -0
- package/dist/ui/components/command-suggestions.js +2 -1
- package/dist/ui/components/command-suggestions.js.map +1 -1
- package/dist/ui/components/confirmation-dialog.js +25 -36
- package/dist/ui/components/confirmation-dialog.js.map +1 -1
- package/dist/ui/components/index.d.ts +8 -0
- package/dist/ui/components/index.js +9 -0
- package/dist/ui/components/index.js.map +1 -1
- package/dist/ui/components/keyboard-hints.d.ts +35 -0
- package/dist/ui/components/keyboard-hints.js +134 -0
- package/dist/ui/components/keyboard-hints.js.map +1 -0
- package/dist/ui/components/loading-spinner.d.ts +2 -1
- package/dist/ui/components/loading-spinner.js +86 -34
- package/dist/ui/components/loading-spinner.js.map +1 -1
- package/dist/ui/components/phase-progress.d.ts +21 -0
- package/dist/ui/components/phase-progress.js +228 -0
- package/dist/ui/components/phase-progress.js.map +1 -0
- package/dist/ui/components/quick-actions.d.ts +12 -0
- package/dist/ui/components/quick-actions.js +122 -0
- package/dist/ui/components/quick-actions.js.map +1 -0
- package/dist/ui/components/reasoning-display.d.ts +0 -80
- package/dist/ui/components/reasoning-display.js +0 -83
- package/dist/ui/components/reasoning-display.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +25 -0
- package/dist/ui/components/status-bar.js +125 -0
- package/dist/ui/components/status-bar.js.map +1 -0
- package/dist/ui/components/toast-notification.d.ts +123 -0
- package/dist/ui/components/toast-notification.js +143 -0
- package/dist/ui/components/toast-notification.js.map +1 -0
- package/dist/ui/components/welcome-panel.d.ts +10 -0
- package/dist/ui/components/welcome-panel.js +107 -0
- package/dist/ui/components/welcome-panel.js.map +1 -0
- package/dist/utils/background-task-manager.d.ts +95 -0
- package/dist/utils/background-task-manager.js +330 -0
- package/dist/utils/background-task-manager.js.map +1 -0
- package/dist/utils/confirmation-service.js +8 -3
- package/dist/utils/confirmation-service.js.map +1 -1
- package/dist/utils/message-optimizer.d.ts +1 -0
- package/dist/utils/message-optimizer.js +7 -1
- package/dist/utils/message-optimizer.js.map +1 -1
- package/dist/utils/project-analyzer.js +5 -2
- package/dist/utils/project-analyzer.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan Commands
|
|
3
|
+
*
|
|
4
|
+
* CLI commands for multi-phase task planning system.
|
|
5
|
+
*/
|
|
6
|
+
import { getTaskPlanner, PlanStatus, PhaseStatus } from "../planner/index.js";
|
|
7
|
+
import { getPlanStorage } from "../planner/plan-storage.js";
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Helper Functions
|
|
10
|
+
// ============================================================================
|
|
11
|
+
function formatDuration(ms) {
|
|
12
|
+
if (ms < 1000)
|
|
13
|
+
return `${ms}ms`;
|
|
14
|
+
const seconds = Math.floor(ms / 1000);
|
|
15
|
+
if (seconds < 60)
|
|
16
|
+
return `${seconds}s`;
|
|
17
|
+
const minutes = Math.floor(seconds / 60);
|
|
18
|
+
const remainingSeconds = seconds % 60;
|
|
19
|
+
return `${minutes}m ${remainingSeconds}s`;
|
|
20
|
+
}
|
|
21
|
+
function getStatusIcon(status) {
|
|
22
|
+
switch (status) {
|
|
23
|
+
case PhaseStatus.COMPLETED:
|
|
24
|
+
return "✓";
|
|
25
|
+
case PhaseStatus.EXECUTING:
|
|
26
|
+
return "⏳";
|
|
27
|
+
case PhaseStatus.FAILED:
|
|
28
|
+
return "✕";
|
|
29
|
+
case PhaseStatus.SKIPPED:
|
|
30
|
+
return "⊘";
|
|
31
|
+
case PhaseStatus.APPROVED:
|
|
32
|
+
return "◉";
|
|
33
|
+
case PhaseStatus.QUEUED:
|
|
34
|
+
return "◎";
|
|
35
|
+
case PhaseStatus.CANCELLED:
|
|
36
|
+
return "⊗";
|
|
37
|
+
case PhaseStatus.PENDING:
|
|
38
|
+
default:
|
|
39
|
+
return "○";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function getPlanStatusIcon(status) {
|
|
43
|
+
switch (status) {
|
|
44
|
+
case PlanStatus.COMPLETED:
|
|
45
|
+
return "✓";
|
|
46
|
+
case PlanStatus.EXECUTING:
|
|
47
|
+
return "⏳";
|
|
48
|
+
case PlanStatus.FAILED:
|
|
49
|
+
return "✕";
|
|
50
|
+
case PlanStatus.PAUSED:
|
|
51
|
+
return "⏸";
|
|
52
|
+
case PlanStatus.ABANDONED:
|
|
53
|
+
return "⊗";
|
|
54
|
+
case PlanStatus.APPROVED:
|
|
55
|
+
return "◉";
|
|
56
|
+
case PlanStatus.CREATED:
|
|
57
|
+
default:
|
|
58
|
+
return "○";
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function formatPlanSummaryBrief(plan) {
|
|
62
|
+
let output = `**${getPlanStatusIcon(plan.status)} Plan: ${plan.id}**\n`;
|
|
63
|
+
output += ` Request: ${plan.originalPrompt.slice(0, 60)}${plan.originalPrompt.length > 60 ? "..." : ""}\n`;
|
|
64
|
+
output += ` Status: ${plan.status}\n`;
|
|
65
|
+
output += ` Progress: ${plan.completedPhases}/${plan.totalPhases} phases\n`;
|
|
66
|
+
return output;
|
|
67
|
+
}
|
|
68
|
+
function formatPlanSummary(plan) {
|
|
69
|
+
const completed = plan.phases.filter((p) => p.status === PhaseStatus.COMPLETED).length;
|
|
70
|
+
const failed = plan.phases.filter((p) => p.status === PhaseStatus.FAILED).length;
|
|
71
|
+
const total = plan.phases.length;
|
|
72
|
+
let output = `**${getPlanStatusIcon(plan.status)} Plan: ${plan.id}**\n`;
|
|
73
|
+
output += ` Request: ${plan.originalPrompt.slice(0, 60)}${plan.originalPrompt.length > 60 ? "..." : ""}\n`;
|
|
74
|
+
output += ` Status: ${plan.status}\n`;
|
|
75
|
+
output += ` Progress: ${completed}/${total} phases`;
|
|
76
|
+
if (failed > 0) {
|
|
77
|
+
output += ` (${failed} failed)`;
|
|
78
|
+
}
|
|
79
|
+
output += "\n";
|
|
80
|
+
if (plan.estimatedDuration > 0) {
|
|
81
|
+
output += ` Est. Duration: ${formatDuration(plan.estimatedDuration)}`;
|
|
82
|
+
if (plan.actualDuration > 0) {
|
|
83
|
+
output += ` (Actual: ${formatDuration(plan.actualDuration)})`;
|
|
84
|
+
}
|
|
85
|
+
output += "\n";
|
|
86
|
+
}
|
|
87
|
+
return output;
|
|
88
|
+
}
|
|
89
|
+
function formatPlanDetails(plan) {
|
|
90
|
+
let output = formatPlanSummary(plan);
|
|
91
|
+
output += "\n**Phases:**\n";
|
|
92
|
+
for (const phase of plan.phases) {
|
|
93
|
+
const icon = getStatusIcon(phase.status);
|
|
94
|
+
const isCurrent = phase.index === plan.currentPhaseIndex;
|
|
95
|
+
const marker = isCurrent ? "→ " : " ";
|
|
96
|
+
output += `${marker}${icon} ${phase.index + 1}. ${phase.name}`;
|
|
97
|
+
if (phase.duration) {
|
|
98
|
+
output += ` (${formatDuration(phase.duration)})`;
|
|
99
|
+
}
|
|
100
|
+
output += "\n";
|
|
101
|
+
if (phase.error) {
|
|
102
|
+
output += ` Error: ${phase.error}\n`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return output;
|
|
106
|
+
}
|
|
107
|
+
// ============================================================================
|
|
108
|
+
// Plan Commands
|
|
109
|
+
// ============================================================================
|
|
110
|
+
/**
|
|
111
|
+
* List all plans
|
|
112
|
+
*/
|
|
113
|
+
export async function handlePlansCommand() {
|
|
114
|
+
try {
|
|
115
|
+
const storage = getPlanStorage();
|
|
116
|
+
const plans = await storage.listPlans();
|
|
117
|
+
if (plans.length === 0) {
|
|
118
|
+
return {
|
|
119
|
+
success: true,
|
|
120
|
+
output: "No plans found. Use AI to create a plan for complex tasks.",
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
let output = "**📋 Task Plans**\n\n";
|
|
124
|
+
// Group by status
|
|
125
|
+
const activePlans = plans.filter((p) => p.status === PlanStatus.EXECUTING ||
|
|
126
|
+
p.status === PlanStatus.PAUSED ||
|
|
127
|
+
p.status === PlanStatus.APPROVED);
|
|
128
|
+
const recentPlans = plans.filter((p) => p.status === PlanStatus.COMPLETED ||
|
|
129
|
+
p.status === PlanStatus.FAILED ||
|
|
130
|
+
p.status === PlanStatus.ABANDONED);
|
|
131
|
+
if (activePlans.length > 0) {
|
|
132
|
+
output += "**Active Plans:**\n";
|
|
133
|
+
for (const plan of activePlans) {
|
|
134
|
+
output += formatPlanSummaryBrief(plan);
|
|
135
|
+
output += "\n";
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (recentPlans.length > 0) {
|
|
139
|
+
output += "**Recent Plans:**\n";
|
|
140
|
+
for (const plan of recentPlans.slice(0, 5)) {
|
|
141
|
+
output += formatPlanSummaryBrief(plan);
|
|
142
|
+
output += "\n";
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return { success: true, output };
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
return {
|
|
149
|
+
success: false,
|
|
150
|
+
output: `Failed to list plans: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Show details of a specific plan or current plan
|
|
156
|
+
*/
|
|
157
|
+
export async function handlePlanCommand(planId) {
|
|
158
|
+
try {
|
|
159
|
+
const planner = getTaskPlanner();
|
|
160
|
+
let plan = null;
|
|
161
|
+
if (planId) {
|
|
162
|
+
const storage = getPlanStorage();
|
|
163
|
+
plan = await storage.loadPlan(planId);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
plan = planner.getCurrentPlan();
|
|
167
|
+
}
|
|
168
|
+
if (!plan) {
|
|
169
|
+
return {
|
|
170
|
+
success: false,
|
|
171
|
+
output: planId
|
|
172
|
+
? `Plan not found: ${planId}`
|
|
173
|
+
: "No active plan. Use /plans to see all plans.",
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
return { success: true, output: formatPlanDetails(plan) };
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
return {
|
|
180
|
+
success: false,
|
|
181
|
+
output: `Failed to load plan: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Show phases of current plan
|
|
187
|
+
*/
|
|
188
|
+
export async function handlePhasesCommand() {
|
|
189
|
+
try {
|
|
190
|
+
const planner = getTaskPlanner();
|
|
191
|
+
const plan = planner.getCurrentPlan();
|
|
192
|
+
if (!plan) {
|
|
193
|
+
return {
|
|
194
|
+
success: false,
|
|
195
|
+
output: "No active plan. Ask me to help with a complex task to create one.",
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
let output = `**📋 Phases for Plan: ${plan.id}**\n\n`;
|
|
199
|
+
for (const phase of plan.phases) {
|
|
200
|
+
const icon = getStatusIcon(phase.status);
|
|
201
|
+
const isCurrent = phase.index === plan.currentPhaseIndex;
|
|
202
|
+
const marker = isCurrent ? "→ " : " ";
|
|
203
|
+
output += `${marker}${icon} **Phase ${phase.index + 1}: ${phase.name}**\n`;
|
|
204
|
+
output += ` ${phase.description}\n`;
|
|
205
|
+
if (phase.objectives.length > 0) {
|
|
206
|
+
output += " Objectives:\n";
|
|
207
|
+
for (const obj of phase.objectives.slice(0, 3)) {
|
|
208
|
+
output += ` • ${obj}\n`;
|
|
209
|
+
}
|
|
210
|
+
if (phase.objectives.length > 3) {
|
|
211
|
+
output += ` ...and ${phase.objectives.length - 3} more\n`;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (phase.toolsRequired.length > 0) {
|
|
215
|
+
output += ` Tools: ${phase.toolsRequired.join(", ")}\n`;
|
|
216
|
+
}
|
|
217
|
+
if (phase.duration) {
|
|
218
|
+
output += ` Duration: ${formatDuration(phase.duration)}\n`;
|
|
219
|
+
}
|
|
220
|
+
if (phase.error) {
|
|
221
|
+
output += ` Error: ${phase.error}\n`;
|
|
222
|
+
}
|
|
223
|
+
output += "\n";
|
|
224
|
+
}
|
|
225
|
+
return { success: true, output };
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
return {
|
|
229
|
+
success: false,
|
|
230
|
+
output: `Failed to show phases: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Pause current plan execution
|
|
236
|
+
*/
|
|
237
|
+
export async function handlePauseCommand() {
|
|
238
|
+
try {
|
|
239
|
+
const planner = getTaskPlanner();
|
|
240
|
+
const plan = planner.getCurrentPlan();
|
|
241
|
+
if (!plan) {
|
|
242
|
+
return {
|
|
243
|
+
success: false,
|
|
244
|
+
output: "No active plan to pause.",
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
await planner.pausePlan();
|
|
248
|
+
return {
|
|
249
|
+
success: true,
|
|
250
|
+
output: "Plan execution paused. Use /resume to continue.",
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
return {
|
|
255
|
+
success: false,
|
|
256
|
+
output: `Failed to pause: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Resume paused plan
|
|
262
|
+
* Note: This marks the plan as ready to resume. Actual execution
|
|
263
|
+
* requires the LLMAgent to process it with a phase executor.
|
|
264
|
+
*/
|
|
265
|
+
export async function handleResumeCommand(planId) {
|
|
266
|
+
try {
|
|
267
|
+
const planner = getTaskPlanner();
|
|
268
|
+
const storage = getPlanStorage();
|
|
269
|
+
// Determine which plan to resume
|
|
270
|
+
let targetPlanId = planId;
|
|
271
|
+
if (!targetPlanId) {
|
|
272
|
+
const currentPlan = planner.getCurrentPlan();
|
|
273
|
+
if (currentPlan) {
|
|
274
|
+
targetPlanId = currentPlan.id;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (!targetPlanId) {
|
|
278
|
+
return {
|
|
279
|
+
success: false,
|
|
280
|
+
output: "No plan specified and no current plan. Use /plans to see available plans.",
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
// Load the plan to check its status
|
|
284
|
+
const plan = await storage.loadPlan(targetPlanId);
|
|
285
|
+
if (!plan) {
|
|
286
|
+
return { success: false, output: `Plan not found: ${targetPlanId}` };
|
|
287
|
+
}
|
|
288
|
+
// Check if plan can be resumed
|
|
289
|
+
if (plan.status !== PlanStatus.PAUSED) {
|
|
290
|
+
return {
|
|
291
|
+
success: false,
|
|
292
|
+
output: `Plan ${targetPlanId} is not paused (status: ${plan.status})`,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
// Mark plan ready for resume - actual execution happens when user sends next message
|
|
296
|
+
return {
|
|
297
|
+
success: true,
|
|
298
|
+
output: `Plan ${targetPlanId} is ready to resume from phase ${plan.currentPhaseIndex + 1}.\n\nSend your next message to continue execution.`,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
return {
|
|
303
|
+
success: false,
|
|
304
|
+
output: `Failed to check plan: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Skip current phase
|
|
310
|
+
*/
|
|
311
|
+
export async function handleSkipPhaseCommand() {
|
|
312
|
+
try {
|
|
313
|
+
const planner = getTaskPlanner();
|
|
314
|
+
const plan = planner.getCurrentPlan();
|
|
315
|
+
if (!plan) {
|
|
316
|
+
return { success: false, output: "No active plan." };
|
|
317
|
+
}
|
|
318
|
+
const currentPhase = plan.phases[plan.currentPhaseIndex];
|
|
319
|
+
if (!currentPhase) {
|
|
320
|
+
return { success: false, output: "No current phase to skip." };
|
|
321
|
+
}
|
|
322
|
+
await planner.skipPhase(plan.id, currentPhase.id);
|
|
323
|
+
return {
|
|
324
|
+
success: true,
|
|
325
|
+
output: `Skipped phase: ${currentPhase.name}`,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
return {
|
|
330
|
+
success: false,
|
|
331
|
+
output: `Failed to skip phase: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Abandon current plan
|
|
337
|
+
*/
|
|
338
|
+
export async function handleAbandonCommand() {
|
|
339
|
+
try {
|
|
340
|
+
const planner = getTaskPlanner();
|
|
341
|
+
const plan = planner.getCurrentPlan();
|
|
342
|
+
if (!plan) {
|
|
343
|
+
return {
|
|
344
|
+
success: false,
|
|
345
|
+
output: "No active plan to abandon.",
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
await planner.abandonPlan(plan.id);
|
|
349
|
+
return {
|
|
350
|
+
success: true,
|
|
351
|
+
output: "Plan abandoned. All pending phases have been cancelled.",
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
catch (error) {
|
|
355
|
+
return {
|
|
356
|
+
success: false,
|
|
357
|
+
output: `Failed to abandon plan: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* List resumable plans
|
|
363
|
+
*/
|
|
364
|
+
export async function handleResumableCommand() {
|
|
365
|
+
try {
|
|
366
|
+
const storage = getPlanStorage();
|
|
367
|
+
const plans = await storage.listResumablePlans();
|
|
368
|
+
if (plans.length === 0) {
|
|
369
|
+
return { success: true, output: "No resumable plans found." };
|
|
370
|
+
}
|
|
371
|
+
let output = "**Resumable Plans:**\n\n";
|
|
372
|
+
for (const plan of plans) {
|
|
373
|
+
output += formatPlanSummaryBrief(plan);
|
|
374
|
+
output += ` Use: /resume ${plan.id}\n\n`;
|
|
375
|
+
}
|
|
376
|
+
return { success: true, output };
|
|
377
|
+
}
|
|
378
|
+
catch (error) {
|
|
379
|
+
return {
|
|
380
|
+
success: false,
|
|
381
|
+
output: `Failed to list resumable plans: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -68,3 +68,31 @@ export declare const ERROR_MESSAGES: {
|
|
|
68
68
|
readonly FILE_NOT_FOUND: (filePath: string) => string;
|
|
69
69
|
readonly DIRECTORY_NOT_FOUND: (dirPath: string) => string;
|
|
70
70
|
};
|
|
71
|
+
export declare const PLANNER_CONFIG: {
|
|
72
|
+
/** Enable multi-phase planning */
|
|
73
|
+
readonly ENABLED: true;
|
|
74
|
+
/** Minimum expected tool calls to trigger auto-planning */
|
|
75
|
+
readonly AUTO_PLAN_THRESHOLD: 3;
|
|
76
|
+
/** Maximum phases per plan */
|
|
77
|
+
readonly MAX_PHASES: 10;
|
|
78
|
+
/** Phase timeout in milliseconds (10 minutes) */
|
|
79
|
+
readonly PHASE_TIMEOUT_MS: 600000;
|
|
80
|
+
/** Maximum parallel phases */
|
|
81
|
+
readonly MAX_PARALLEL_PHASES: 5;
|
|
82
|
+
/** Create checkpoints before each phase */
|
|
83
|
+
readonly AUTO_CHECKPOINT: true;
|
|
84
|
+
/** Require plan approval before executing */
|
|
85
|
+
readonly REQUIRE_PLAN_APPROVAL: true;
|
|
86
|
+
/** Require approval for high-risk phases */
|
|
87
|
+
readonly REQUIRE_HIGH_RISK_APPROVAL: true;
|
|
88
|
+
/** Auto-approve low-risk phases */
|
|
89
|
+
readonly AUTO_APPROVE_LOW_RISK: false;
|
|
90
|
+
/** Prune context between phases */
|
|
91
|
+
readonly PRUNE_AFTER_PHASE: true;
|
|
92
|
+
/** Target context percentage after pruning */
|
|
93
|
+
readonly TARGET_CONTEXT_PERCENTAGE: 50;
|
|
94
|
+
/** Plan retention period in days */
|
|
95
|
+
readonly PLAN_RETENTION_DAYS: 30;
|
|
96
|
+
/** Auto-cleanup old plans */
|
|
97
|
+
readonly AUTO_CLEANUP: true;
|
|
98
|
+
};
|
package/dist/constants.js
CHANGED
|
@@ -86,4 +86,33 @@ export const ERROR_MESSAGES = {
|
|
|
86
86
|
FILE_NOT_FOUND: (filePath) => formatMessage(messagesYaml.errors.file_not_found, { filePath }),
|
|
87
87
|
DIRECTORY_NOT_FOUND: (dirPath) => formatMessage(messagesYaml.errors.directory_not_found, { dirPath }),
|
|
88
88
|
};
|
|
89
|
+
// Multi-Phase Task Planner Configuration
|
|
90
|
+
export const PLANNER_CONFIG = {
|
|
91
|
+
/** Enable multi-phase planning */
|
|
92
|
+
ENABLED: true,
|
|
93
|
+
/** Minimum expected tool calls to trigger auto-planning */
|
|
94
|
+
AUTO_PLAN_THRESHOLD: 3,
|
|
95
|
+
/** Maximum phases per plan */
|
|
96
|
+
MAX_PHASES: 10,
|
|
97
|
+
/** Phase timeout in milliseconds (10 minutes) */
|
|
98
|
+
PHASE_TIMEOUT_MS: 600000,
|
|
99
|
+
/** Maximum parallel phases */
|
|
100
|
+
MAX_PARALLEL_PHASES: 5,
|
|
101
|
+
/** Create checkpoints before each phase */
|
|
102
|
+
AUTO_CHECKPOINT: true,
|
|
103
|
+
/** Require plan approval before executing */
|
|
104
|
+
REQUIRE_PLAN_APPROVAL: true,
|
|
105
|
+
/** Require approval for high-risk phases */
|
|
106
|
+
REQUIRE_HIGH_RISK_APPROVAL: true,
|
|
107
|
+
/** Auto-approve low-risk phases */
|
|
108
|
+
AUTO_APPROVE_LOW_RISK: false,
|
|
109
|
+
/** Prune context between phases */
|
|
110
|
+
PRUNE_AFTER_PHASE: true,
|
|
111
|
+
/** Target context percentage after pruning */
|
|
112
|
+
TARGET_CONTEXT_PERCENTAGE: 50,
|
|
113
|
+
/** Plan retention period in days */
|
|
114
|
+
PLAN_RETENTION_DAYS: 30,
|
|
115
|
+
/** Auto-cleanup old plans */
|
|
116
|
+
AUTO_CLEANUP: true,
|
|
117
|
+
};
|
|
89
118
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,8 +30,12 @@ interface UseEnhancedInputProps {
|
|
|
30
30
|
onSubmit?: (text: string) => void;
|
|
31
31
|
onEscape?: () => void;
|
|
32
32
|
onSpecialKey?: (key: Key) => boolean;
|
|
33
|
+
onVerboseToggle?: () => void;
|
|
34
|
+
onQuickActions?: () => void;
|
|
35
|
+
onBackgroundModeToggle?: () => void;
|
|
36
|
+
onCopyLastResponse?: () => void;
|
|
33
37
|
disabled?: boolean;
|
|
34
38
|
multiline?: boolean;
|
|
35
39
|
}
|
|
36
|
-
export declare function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, disabled, multiline, }?: UseEnhancedInputProps): EnhancedInputHook;
|
|
40
|
+
export declare function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, onVerboseToggle, onQuickActions, onBackgroundModeToggle, onCopyLastResponse, disabled, multiline, }?: UseEnhancedInputProps): EnhancedInputHook;
|
|
37
41
|
export {};
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { useState, useCallback, useRef } from "react";
|
|
2
|
-
import { deleteCharBefore, deleteCharAfter, deleteWordBefore, deleteWordAfter, insertText, moveToLineStart,
|
|
2
|
+
import { deleteCharBefore, deleteCharAfter, deleteWordBefore, deleteWordAfter, insertText, moveToLineStart, moveToPreviousWord, moveToNextWord, } from "../utils/text-utils.js";
|
|
3
3
|
import { useInputHistory } from "./use-input-history.js";
|
|
4
|
-
export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, disabled = false, multiline = false, } = {}) {
|
|
4
|
+
export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, onVerboseToggle, onQuickActions, onBackgroundModeToggle, onCopyLastResponse, disabled = false, multiline = false, } = {}) {
|
|
5
5
|
const [input, setInputState] = useState("");
|
|
6
6
|
const [cursorPosition, setCursorPositionState] = useState(0);
|
|
7
7
|
const isMultilineRef = useRef(multiline);
|
|
8
8
|
const { addToHistory, navigateHistory, resetHistory, setOriginalInput, isNavigatingHistory, } = useInputHistory();
|
|
9
9
|
const setInput = useCallback((text) => {
|
|
10
10
|
setInputState(text);
|
|
11
|
-
|
|
11
|
+
// Use functional update to get the current cursor position, avoiding stale closure
|
|
12
|
+
setCursorPositionState((currentCursor) => Math.min(text.length, currentCursor));
|
|
12
13
|
if (!isNavigatingHistory()) {
|
|
13
14
|
setOriginalInput(text);
|
|
14
15
|
}
|
|
15
|
-
}, [
|
|
16
|
+
}, [isNavigatingHistory, setOriginalInput]);
|
|
16
17
|
const setCursorPosition = useCallback((position) => {
|
|
17
18
|
setCursorPositionState(Math.max(0, Math.min(input.length, position)));
|
|
18
19
|
}, [input.length]);
|
|
@@ -159,12 +160,9 @@ export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, disabled =
|
|
|
159
160
|
}
|
|
160
161
|
return;
|
|
161
162
|
}
|
|
162
|
-
// Handle Ctrl+K:
|
|
163
|
+
// Handle Ctrl+K: Open quick actions menu
|
|
163
164
|
if (key.ctrl && inputChar === "k") {
|
|
164
|
-
|
|
165
|
-
const newText = input.slice(0, cursorPosition) + input.slice(lineEnd);
|
|
166
|
-
setInputState(newText);
|
|
167
|
-
setOriginalInput(newText);
|
|
165
|
+
onQuickActions?.();
|
|
168
166
|
return;
|
|
169
167
|
}
|
|
170
168
|
// Handle Ctrl+U: Delete from cursor to start of line
|
|
@@ -184,6 +182,21 @@ export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, disabled =
|
|
|
184
182
|
setOriginalInput(result.text);
|
|
185
183
|
return;
|
|
186
184
|
}
|
|
185
|
+
// Handle Ctrl+O: Toggle verbose mode
|
|
186
|
+
if (key.ctrl && inputChar === "o") {
|
|
187
|
+
onVerboseToggle?.();
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
// Handle Ctrl+B: Toggle background mode
|
|
191
|
+
if (key.ctrl && inputChar === "b") {
|
|
192
|
+
onBackgroundModeToggle?.();
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// Handle Ctrl+Y: Copy last response to clipboard
|
|
196
|
+
if (key.ctrl && inputChar === "y") {
|
|
197
|
+
onCopyLastResponse?.();
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
187
200
|
// Handle Ctrl+X: Clear entire input
|
|
188
201
|
if (key.ctrl && inputChar === "x") {
|
|
189
202
|
setInputState("");
|
|
@@ -198,7 +211,7 @@ export function useEnhancedInput({ onSubmit, onEscape, onSpecialKey, disabled =
|
|
|
198
211
|
setCursorPositionState(result.position);
|
|
199
212
|
setOriginalInput(result.text);
|
|
200
213
|
}
|
|
201
|
-
}, [disabled, onSpecialKey, input, cursorPosition, multiline, handleSubmit, navigateHistory, setOriginalInput]);
|
|
214
|
+
}, [disabled, onSpecialKey, onVerboseToggle, onQuickActions, onBackgroundModeToggle, onCopyLastResponse, input, cursorPosition, multiline, handleSubmit, navigateHistory, setOriginalInput]);
|
|
202
215
|
return {
|
|
203
216
|
input,
|
|
204
217
|
cursorPosition,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-enhanced-input.js","sourceRoot":"","sources":["../../src/hooks/use-enhanced-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"use-enhanced-input.js","sourceRoot":"","sources":["../../src/hooks/use-enhanced-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,14 @@ interface UseInputHandlerProps {
|
|
|
11
11
|
isProcessing: boolean;
|
|
12
12
|
isStreaming: boolean;
|
|
13
13
|
isConfirmationActive?: boolean;
|
|
14
|
+
onQuickActionsToggle?: () => void;
|
|
15
|
+
onVerboseModeChange?: (enabled: boolean) => void;
|
|
16
|
+
onBackgroundModeChange?: (enabled: boolean) => void;
|
|
17
|
+
onAutoEditModeChange?: (enabled: boolean) => void;
|
|
18
|
+
onTaskMovedToBackground?: (taskId: string) => void;
|
|
19
|
+
onOperationInterrupted?: () => void;
|
|
20
|
+
onChatCleared?: () => void;
|
|
21
|
+
onCopyLastResponse?: () => void;
|
|
14
22
|
}
|
|
15
23
|
interface CommandSuggestion {
|
|
16
24
|
command: string;
|
|
@@ -19,7 +27,7 @@ interface CommandSuggestion {
|
|
|
19
27
|
interface ModelOption {
|
|
20
28
|
model: string;
|
|
21
29
|
}
|
|
22
|
-
export declare function useInputHandler({ agent, setChatHistory, setIsProcessing, setIsStreaming, setTokenCount, setProcessingTime, processingStartTime, isProcessing, isStreaming, isConfirmationActive, }: UseInputHandlerProps): {
|
|
30
|
+
export declare function useInputHandler({ agent, chatHistory, setChatHistory, setIsProcessing, setIsStreaming, setTokenCount, setProcessingTime, processingStartTime, isProcessing, isStreaming, isConfirmationActive, onQuickActionsToggle, onVerboseModeChange, onBackgroundModeChange, onAutoEditModeChange, onTaskMovedToBackground, onOperationInterrupted, onChatCleared, onCopyLastResponse, }: UseInputHandlerProps): {
|
|
23
31
|
input: string;
|
|
24
32
|
cursorPosition: number;
|
|
25
33
|
showCommandSuggestions: boolean;
|
|
@@ -28,5 +36,7 @@ export declare function useInputHandler({ agent, setChatHistory, setIsProcessing
|
|
|
28
36
|
availableModels: ModelOption[];
|
|
29
37
|
agent: LLMAgent;
|
|
30
38
|
autoEditEnabled: boolean;
|
|
39
|
+
verboseMode: boolean;
|
|
40
|
+
backgroundMode: boolean;
|
|
31
41
|
};
|
|
32
42
|
export {};
|