@codemieai/code 0.0.3 → 0.0.4
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 +375 -325
- package/bin/codemie-claude.js +23 -0
- package/bin/codemie-code.js +49 -11
- package/bin/codemie-codex.js +12 -13
- package/dist/agents/adapters/claude-code.d.ts +5 -0
- package/dist/agents/adapters/claude-code.d.ts.map +1 -1
- package/dist/agents/adapters/claude-code.js +76 -18
- package/dist/agents/adapters/claude-code.js.map +1 -1
- package/dist/agents/adapters/codex.d.ts +5 -0
- package/dist/agents/adapters/codex.d.ts.map +1 -1
- package/dist/agents/adapters/codex.js +75 -17
- package/dist/agents/adapters/codex.js.map +1 -1
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +187 -21
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/config.d.ts.map +1 -1
- package/dist/agents/codemie-code/config.js +29 -27
- package/dist/agents/codemie-code/config.js.map +1 -1
- package/dist/agents/codemie-code/index.d.ts +16 -2
- package/dist/agents/codemie-code/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/index.js +74 -6
- package/dist/agents/codemie-code/index.js.map +1 -1
- package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts +87 -0
- package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts.map +1 -0
- package/dist/agents/codemie-code/modes/contextAwarePlanning.js +957 -0
- package/dist/agents/codemie-code/modes/contextAwarePlanning.js.map +1 -0
- package/dist/agents/codemie-code/modes/planMode.d.ts +116 -0
- package/dist/agents/codemie-code/modes/planMode.d.ts.map +1 -0
- package/dist/agents/codemie-code/modes/planMode.js +537 -0
- package/dist/agents/codemie-code/modes/planMode.js.map +1 -0
- package/dist/agents/codemie-code/prompts.d.ts +29 -0
- package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
- package/dist/agents/codemie-code/prompts.js +129 -0
- package/dist/agents/codemie-code/prompts.js.map +1 -1
- package/dist/agents/codemie-code/storage/todoStorage.d.ts +78 -0
- package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -0
- package/dist/agents/codemie-code/storage/todoStorage.js +225 -0
- package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -0
- package/dist/agents/codemie-code/tokenUtils.js +1 -1
- package/dist/agents/codemie-code/tokenUtils.js.map +1 -1
- package/dist/agents/codemie-code/tools/index.d.ts +26 -0
- package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/tools/index.js +182 -14
- package/dist/agents/codemie-code/tools/index.js.map +1 -1
- package/dist/agents/codemie-code/tools/planning.d.ts +53 -0
- package/dist/agents/codemie-code/tools/planning.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/planning.js +224 -0
- package/dist/agents/codemie-code/tools/planning.js.map +1 -0
- package/dist/agents/codemie-code/types.d.ts +170 -6
- package/dist/agents/codemie-code/types.d.ts.map +1 -1
- package/dist/agents/codemie-code/types.js.map +1 -1
- package/dist/agents/codemie-code/ui/progressTracker.d.ts +125 -0
- package/dist/agents/codemie-code/ui/progressTracker.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/progressTracker.js +343 -0
- package/dist/agents/codemie-code/ui/progressTracker.js.map +1 -0
- package/dist/agents/codemie-code/ui/todoPanel.d.ts +112 -0
- package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/todoPanel.js +318 -0
- package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -0
- package/dist/agents/codemie-code/ui.d.ts +106 -10
- package/dist/agents/codemie-code/ui.d.ts.map +1 -1
- package/dist/agents/codemie-code/ui.js +913 -129
- package/dist/agents/codemie-code/ui.js.map +1 -1
- package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts +87 -0
- package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts.map +1 -0
- package/dist/agents/codemie-code/utils/progressionEnforcer.js +293 -0
- package/dist/agents/codemie-code/utils/progressionEnforcer.js.map +1 -0
- package/dist/agents/codemie-code/utils/todoParser.d.ts +41 -0
- package/dist/agents/codemie-code/utils/todoParser.d.ts.map +1 -0
- package/dist/agents/codemie-code/utils/todoParser.js +305 -0
- package/dist/agents/codemie-code/utils/todoParser.js.map +1 -0
- package/dist/agents/codemie-code/utils/todoValidator.d.ts +65 -0
- package/dist/agents/codemie-code/utils/todoValidator.d.ts.map +1 -0
- package/dist/agents/codemie-code/utils/todoValidator.js +249 -0
- package/dist/agents/codemie-code/utils/todoValidator.js.map +1 -0
- package/dist/agents/codemie-code/validators/planValidator.d.ts +94 -0
- package/dist/agents/codemie-code/validators/planValidator.d.ts.map +1 -0
- package/dist/agents/codemie-code/validators/planValidator.js +281 -0
- package/dist/agents/codemie-code/validators/planValidator.js.map +1 -0
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +7 -5
- package/dist/agents/registry.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +3 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +170 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +40 -13
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +209 -16
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/env.js +3 -3
- package/dist/cli/commands/env.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +2 -1
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +15 -9
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +177 -11
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/tools.d.ts +6 -0
- package/dist/cli/commands/tools.d.ts.map +1 -0
- package/dist/cli/commands/tools.js +244 -0
- package/dist/cli/commands/tools.js.map +1 -0
- package/dist/cli/commands/version.js +1 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/commands/workflow.d.ts +6 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +424 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/index.js +39 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/clients/adapters/github.d.ts +17 -0
- package/dist/clients/adapters/github.d.ts.map +1 -0
- package/dist/clients/adapters/github.js +150 -0
- package/dist/clients/adapters/github.js.map +1 -0
- package/dist/clients/adapters/gitlab.d.ts +17 -0
- package/dist/clients/adapters/gitlab.d.ts.map +1 -0
- package/dist/clients/adapters/gitlab.js +147 -0
- package/dist/clients/adapters/gitlab.js.map +1 -0
- package/dist/clients/registry.d.ts +20 -0
- package/dist/clients/registry.d.ts.map +1 -0
- package/dist/clients/registry.js +27 -0
- package/dist/clients/registry.js.map +1 -0
- package/dist/tools/detector.d.ts +33 -0
- package/dist/tools/detector.d.ts.map +1 -0
- package/dist/tools/detector.js +145 -0
- package/dist/tools/detector.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/manager.d.ts +21 -0
- package/dist/tools/manager.d.ts.map +1 -0
- package/dist/tools/manager.js +104 -0
- package/dist/tools/manager.js.map +1 -0
- package/dist/tools/registry.d.ts +8 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +36 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +41 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +5 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types/sso.d.ts +42 -0
- package/dist/types/sso.d.ts.map +1 -0
- package/dist/types/sso.js +2 -0
- package/dist/types/sso.js.map +1 -0
- package/dist/utils/agent-compatibility.d.ts +32 -0
- package/dist/utils/agent-compatibility.d.ts.map +1 -0
- package/dist/utils/agent-compatibility.js +140 -0
- package/dist/utils/agent-compatibility.js.map +1 -0
- package/dist/utils/codemie-integration-validator.d.ts +17 -0
- package/dist/utils/codemie-integration-validator.d.ts.map +1 -0
- package/dist/utils/codemie-integration-validator.js +105 -0
- package/dist/utils/codemie-integration-validator.js.map +1 -0
- package/dist/utils/codemie-model-fetcher.d.ts +11 -0
- package/dist/utils/codemie-model-fetcher.d.ts.map +1 -0
- package/dist/utils/codemie-model-fetcher.js +242 -0
- package/dist/utils/codemie-model-fetcher.js.map +1 -0
- package/dist/utils/config-loader.d.ts +23 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +73 -27
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/credential-store.d.ts +16 -0
- package/dist/utils/credential-store.d.ts.map +1 -0
- package/dist/utils/credential-store.js +109 -0
- package/dist/utils/credential-store.js.map +1 -0
- package/dist/utils/first-time.d.ts +1 -1
- package/dist/utils/first-time.d.ts.map +1 -1
- package/dist/utils/first-time.js +52 -71
- package/dist/utils/first-time.js.map +1 -1
- package/dist/utils/health-checker.d.ts.map +1 -1
- package/dist/utils/health-checker.js +5 -1
- package/dist/utils/health-checker.js.map +1 -1
- package/dist/utils/model-fetcher.d.ts.map +1 -1
- package/dist/utils/model-fetcher.js +15 -2
- package/dist/utils/model-fetcher.js.map +1 -1
- package/dist/utils/sso-auth.d.ts +15 -0
- package/dist/utils/sso-auth.d.ts.map +1 -0
- package/dist/utils/sso-auth.js +207 -0
- package/dist/utils/sso-auth.js.map +1 -0
- package/dist/utils/sso-gateway.d.ts +47 -0
- package/dist/utils/sso-gateway.d.ts.map +1 -0
- package/dist/utils/sso-gateway.js +298 -0
- package/dist/utils/sso-gateway.js.map +1 -0
- package/dist/workflows/detector.d.ts +37 -0
- package/dist/workflows/detector.d.ts.map +1 -0
- package/dist/workflows/detector.js +160 -0
- package/dist/workflows/detector.js.map +1 -0
- package/dist/workflows/index.d.ts +8 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +8 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/installer.d.ts +24 -0
- package/dist/workflows/installer.d.ts.map +1 -0
- package/dist/workflows/installer.js +105 -0
- package/dist/workflows/installer.js.map +1 -0
- package/dist/workflows/registry.d.ts +29 -0
- package/dist/workflows/registry.d.ts.map +1 -0
- package/dist/workflows/registry.js +54 -0
- package/dist/workflows/registry.js.map +1 -0
- package/dist/workflows/templates/github/metadata.d.ts +6 -0
- package/dist/workflows/templates/github/metadata.d.ts.map +1 -0
- package/dist/workflows/templates/github/metadata.js +111 -0
- package/dist/workflows/templates/github/metadata.js.map +1 -0
- package/dist/workflows/templates/gitlab/metadata.d.ts +6 -0
- package/dist/workflows/templates/gitlab/metadata.d.ts.map +1 -0
- package/dist/workflows/templates/gitlab/metadata.js +14 -0
- package/dist/workflows/templates/gitlab/metadata.js.map +1 -0
- package/dist/workflows/types.d.ts +71 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +5 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +19 -6
- package/src/workflows/templates/github/code-ci.yml +529 -0
- package/src/workflows/templates/github/inline-fix.yml +665 -0
- package/src/workflows/templates/github/pr-review.yml +677 -0
- package/.claude/agents/README.md +0 -298
- package/.claude/agents/release-manager.md +0 -857
- package/.codemie/guides/git-workflow.md +0 -493
- package/CLAUDE.md +0 -225
- package/config.example.json +0 -10
- package/dist/agents/codemie-code/streaming/events.d.ts +0 -7
- package/dist/agents/codemie-code/streaming/events.d.ts.map +0 -1
- package/dist/agents/codemie-code/streaming/events.js +0 -7
- package/dist/agents/codemie-code/streaming/events.js.map +0 -1
- package/dist/agents/codemie-code/streaming/formatter.d.ts +0 -2
- package/dist/agents/codemie-code/streaming/formatter.d.ts.map +0 -1
- package/dist/agents/codemie-code/streaming/formatter.js +0 -2
- package/dist/agents/codemie-code/streaming/formatter.js.map +0 -1
- package/dist/agents/codemie-code/streaming/ui.d.ts +0 -2
- package/dist/agents/codemie-code/streaming/ui.d.ts.map +0 -1
- package/dist/agents/codemie-code/streaming/ui.js +0 -2
- package/dist/agents/codemie-code/streaming/ui.js.map +0 -1
- package/dist/agents/codemie-code/tools/command.d.ts +0 -2
- package/dist/agents/codemie-code/tools/command.d.ts.map +0 -1
- package/dist/agents/codemie-code/tools/command.js +0 -2
- package/dist/agents/codemie-code/tools/command.js.map +0 -1
- package/dist/agents/codemie-code/tools/filesystem.d.ts +0 -2
- package/dist/agents/codemie-code/tools/filesystem.d.ts.map +0 -1
- package/dist/agents/codemie-code/tools/filesystem.js +0 -2
- package/dist/agents/codemie-code/tools/filesystem.js.map +0 -1
- package/dist/agents/codemie-code/tools/git.d.ts +0 -2
- package/dist/agents/codemie-code/tools/git.d.ts.map +0 -1
- package/dist/agents/codemie-code/tools/git.js +0 -2
- package/dist/agents/codemie-code/tools/git.js.map +0 -1
- package/dist/agents/codemie-code/tools/security.d.ts +0 -2
- package/dist/agents/codemie-code/tools/security.d.ts.map +0 -1
- package/dist/agents/codemie-code/tools/security.js +0 -2
- package/dist/agents/codemie-code/tools/security.js.map +0 -1
- package/eslint.config.mjs +0 -43
- package/scripts/README.md +0 -80
- package/scripts/release.sh +0 -156
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Todo Panel UI Component
|
|
3
|
+
*
|
|
4
|
+
* Provides rich visual display of todo lists with progress tracking
|
|
5
|
+
* Inspired by LangChain-Code's Rich-based todo panels
|
|
6
|
+
*/
|
|
7
|
+
import * as clack from '@clack/prompts';
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import { calculateProgress } from '../utils/todoParser.js';
|
|
10
|
+
/**
|
|
11
|
+
* Todo Panel for rich terminal display
|
|
12
|
+
*/
|
|
13
|
+
export class TodoPanel {
|
|
14
|
+
options;
|
|
15
|
+
todos = [];
|
|
16
|
+
lastProgressInfo = null;
|
|
17
|
+
constructor(options = {}) {
|
|
18
|
+
this.options = options;
|
|
19
|
+
this.options = {
|
|
20
|
+
showProgress: true,
|
|
21
|
+
showTimestamps: false,
|
|
22
|
+
showQuality: false,
|
|
23
|
+
compact: false,
|
|
24
|
+
maxWidth: 80,
|
|
25
|
+
...options
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Update the todo list and trigger display refresh
|
|
30
|
+
*/
|
|
31
|
+
update(todos) {
|
|
32
|
+
this.todos = [...todos];
|
|
33
|
+
this.lastProgressInfo = calculateProgress(todos);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Render the todo panel as a formatted string
|
|
37
|
+
*/
|
|
38
|
+
render() {
|
|
39
|
+
if (this.todos.length === 0) {
|
|
40
|
+
return this.renderEmptyState();
|
|
41
|
+
}
|
|
42
|
+
const sections = [];
|
|
43
|
+
// Add header
|
|
44
|
+
sections.push(this.renderHeader());
|
|
45
|
+
// Add todo items
|
|
46
|
+
sections.push(this.renderTodoItems());
|
|
47
|
+
// Add progress section
|
|
48
|
+
if (this.options.showProgress && this.lastProgressInfo) {
|
|
49
|
+
sections.push(this.renderProgress());
|
|
50
|
+
}
|
|
51
|
+
// Add current activity
|
|
52
|
+
if (this.lastProgressInfo?.currentTodo) {
|
|
53
|
+
sections.push(this.renderCurrentActivity());
|
|
54
|
+
}
|
|
55
|
+
return sections.join('\n\n');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Render empty state
|
|
59
|
+
*/
|
|
60
|
+
renderEmptyState() {
|
|
61
|
+
return chalk.dim('📋 No todos yet. Use write_todos to create a plan.');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Render panel header
|
|
65
|
+
*/
|
|
66
|
+
renderHeader() {
|
|
67
|
+
const count = this.todos.length;
|
|
68
|
+
const completed = this.todos.filter(t => t.status === 'completed').length;
|
|
69
|
+
let header = chalk.bold.blueBright(`📋 Todo List`);
|
|
70
|
+
if (count > 0) {
|
|
71
|
+
const percentage = Math.round((completed / count) * 100);
|
|
72
|
+
header += chalk.dim(` (${completed}/${count} • ${percentage}%)`);
|
|
73
|
+
}
|
|
74
|
+
return header;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Render individual todo items
|
|
78
|
+
*/
|
|
79
|
+
renderTodoItems() {
|
|
80
|
+
const items = [];
|
|
81
|
+
this.todos.forEach((todo, index) => {
|
|
82
|
+
const item = this.renderTodoItem(todo, index);
|
|
83
|
+
items.push(item);
|
|
84
|
+
});
|
|
85
|
+
return items.join('\n');
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Render a single todo item
|
|
89
|
+
*/
|
|
90
|
+
renderTodoItem(todo, index) {
|
|
91
|
+
const { status, content } = todo;
|
|
92
|
+
// Status icon and styling
|
|
93
|
+
let icon;
|
|
94
|
+
let contentStyle;
|
|
95
|
+
switch (status) {
|
|
96
|
+
case 'completed':
|
|
97
|
+
icon = chalk.green('✅');
|
|
98
|
+
contentStyle = (text) => chalk.green(chalk.strikethrough(text));
|
|
99
|
+
break;
|
|
100
|
+
case 'in_progress':
|
|
101
|
+
icon = chalk.yellow('🔄');
|
|
102
|
+
contentStyle = (text) => chalk.yellow.bold(text);
|
|
103
|
+
break;
|
|
104
|
+
case 'pending':
|
|
105
|
+
default:
|
|
106
|
+
icon = chalk.dim('⏳');
|
|
107
|
+
contentStyle = (text) => chalk.dim(text);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
// Format content
|
|
111
|
+
let displayContent = content;
|
|
112
|
+
if (this.options.maxWidth && content.length > this.options.maxWidth - 10) {
|
|
113
|
+
displayContent = content.substring(0, this.options.maxWidth - 13) + '...';
|
|
114
|
+
}
|
|
115
|
+
// Build the line
|
|
116
|
+
const indexStr = chalk.dim(`${index + 1}.`);
|
|
117
|
+
const styledContent = contentStyle(displayContent);
|
|
118
|
+
let line = `${indexStr} ${icon} ${styledContent}`;
|
|
119
|
+
// Add timestamp if enabled
|
|
120
|
+
if (this.options.showTimestamps && todo.timestamp) {
|
|
121
|
+
const timeStr = this.formatTimestamp(todo.timestamp);
|
|
122
|
+
line += chalk.dim(` (${timeStr})`);
|
|
123
|
+
}
|
|
124
|
+
return line;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Render progress section
|
|
128
|
+
*/
|
|
129
|
+
renderProgress() {
|
|
130
|
+
if (!this.lastProgressInfo)
|
|
131
|
+
return '';
|
|
132
|
+
const { total, completed, percentage } = this.lastProgressInfo;
|
|
133
|
+
// Progress bar
|
|
134
|
+
const barWidth = 20;
|
|
135
|
+
const filled = Math.round((percentage / 100) * barWidth);
|
|
136
|
+
const empty = barWidth - filled;
|
|
137
|
+
const filledBar = chalk.green('█'.repeat(filled));
|
|
138
|
+
const emptyBar = chalk.dim('░'.repeat(empty));
|
|
139
|
+
const progressBar = `[${filledBar}${emptyBar}]`;
|
|
140
|
+
const stats = chalk.bold(`${completed}/${total} completed (${percentage}%)`);
|
|
141
|
+
return `📊 ${stats} ${progressBar}`;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Render current activity section
|
|
145
|
+
*/
|
|
146
|
+
renderCurrentActivity() {
|
|
147
|
+
if (!this.lastProgressInfo?.currentTodo)
|
|
148
|
+
return '';
|
|
149
|
+
const { currentTodo } = this.lastProgressInfo;
|
|
150
|
+
return `🎯 ${chalk.yellow.bold('Currently working on:')} ${chalk.yellow(currentTodo.content)}`;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Format timestamp for display
|
|
154
|
+
*/
|
|
155
|
+
formatTimestamp(timestamp) {
|
|
156
|
+
const now = new Date();
|
|
157
|
+
const diffMs = now.getTime() - timestamp.getTime();
|
|
158
|
+
const diffMins = Math.floor(diffMs / (1000 * 60));
|
|
159
|
+
if (diffMins < 1)
|
|
160
|
+
return 'just now';
|
|
161
|
+
if (diffMins < 60)
|
|
162
|
+
return `${diffMins}m ago`;
|
|
163
|
+
const diffHours = Math.floor(diffMins / 60);
|
|
164
|
+
if (diffHours < 24)
|
|
165
|
+
return `${diffHours}h ago`;
|
|
166
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
167
|
+
return `${diffDays}d ago`;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Show a diff between two todo states
|
|
171
|
+
*/
|
|
172
|
+
renderDiff(previousTodos, currentTodos) {
|
|
173
|
+
const changes = [];
|
|
174
|
+
// Find status changes
|
|
175
|
+
const minLength = Math.min(previousTodos.length, currentTodos.length);
|
|
176
|
+
for (let i = 0; i < minLength; i++) {
|
|
177
|
+
const prev = previousTodos[i];
|
|
178
|
+
const curr = currentTodos[i];
|
|
179
|
+
if (prev.status !== curr.status) {
|
|
180
|
+
const statusIcon = curr.status === 'completed' ? '✅' :
|
|
181
|
+
curr.status === 'in_progress' ? '🔄' : '⏳';
|
|
182
|
+
changes.push(`${i + 1}. ${statusIcon} ${curr.content} (${prev.status} → ${curr.status})`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Find new todos
|
|
186
|
+
if (currentTodos.length > previousTodos.length) {
|
|
187
|
+
for (let i = previousTodos.length; i < currentTodos.length; i++) {
|
|
188
|
+
const todo = currentTodos[i];
|
|
189
|
+
changes.push(`${i + 1}. ➕ ${todo.content} (added)`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Find removed todos
|
|
193
|
+
if (previousTodos.length > currentTodos.length) {
|
|
194
|
+
for (let i = currentTodos.length; i < previousTodos.length; i++) {
|
|
195
|
+
const todo = previousTodos[i];
|
|
196
|
+
changes.push(`${i + 1}. ➖ ${todo.content} (removed)`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (changes.length === 0) {
|
|
200
|
+
return chalk.dim('No changes');
|
|
201
|
+
}
|
|
202
|
+
return `🔄 ${chalk.bold('Changes:')}\n${changes.map(c => ` ${c}`).join('\n')}`;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Render a compact single-line progress indicator
|
|
206
|
+
*/
|
|
207
|
+
renderCompactProgress() {
|
|
208
|
+
if (!this.lastProgressInfo) {
|
|
209
|
+
return chalk.dim('📋 No todos');
|
|
210
|
+
}
|
|
211
|
+
const { total, completed, percentage, currentTodo } = this.lastProgressInfo;
|
|
212
|
+
let line = `📋 ${completed}/${total} (${percentage}%)`;
|
|
213
|
+
if (currentTodo) {
|
|
214
|
+
const shortContent = currentTodo.content.length > 30 ?
|
|
215
|
+
currentTodo.content.substring(0, 27) + '...' :
|
|
216
|
+
currentTodo.content;
|
|
217
|
+
line += chalk.yellow(` • ${shortContent}`);
|
|
218
|
+
}
|
|
219
|
+
return line;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Show an animated progress update
|
|
223
|
+
*/
|
|
224
|
+
showProgressUpdate(message, todoIndex) {
|
|
225
|
+
let displayMessage = message;
|
|
226
|
+
if (todoIndex !== undefined && this.todos[todoIndex]) {
|
|
227
|
+
const todo = this.todos[todoIndex];
|
|
228
|
+
displayMessage = `${message}: ${todo.content}`;
|
|
229
|
+
}
|
|
230
|
+
// Use clack spinner for visual feedback
|
|
231
|
+
clack.note(displayMessage, '🔄 Todo Update');
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Show completion celebration
|
|
235
|
+
*/
|
|
236
|
+
showCompletion() {
|
|
237
|
+
const { completed, total } = this.lastProgressInfo || { completed: 0, total: 0 };
|
|
238
|
+
if (completed === total && total > 0) {
|
|
239
|
+
clack.outro(chalk.green.bold('🎉 All todos completed! Great work!'));
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
clack.note(`${completed}/${total} todos completed`, '✅ Progress Update');
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Display validation warnings
|
|
247
|
+
*/
|
|
248
|
+
showValidationWarnings(warnings) {
|
|
249
|
+
if (warnings.length === 0)
|
|
250
|
+
return;
|
|
251
|
+
const warningText = warnings
|
|
252
|
+
.slice(0, 3) // Limit to 3 warnings
|
|
253
|
+
.map(w => `• ${w}`)
|
|
254
|
+
.join('\n');
|
|
255
|
+
clack.note(warningText, '⚠️ Todo Quality Warnings');
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Display quality suggestions
|
|
259
|
+
*/
|
|
260
|
+
showQualitySuggestions(suggestions) {
|
|
261
|
+
if (suggestions.length === 0)
|
|
262
|
+
return;
|
|
263
|
+
const suggestionText = suggestions
|
|
264
|
+
.slice(0, 2) // Limit to 2 suggestions
|
|
265
|
+
.map(s => `• ${s}`)
|
|
266
|
+
.join('\n');
|
|
267
|
+
clack.note(suggestionText, '💡 Quality Suggestions');
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Get current todos
|
|
271
|
+
*/
|
|
272
|
+
getTodos() {
|
|
273
|
+
return [...this.todos];
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Get current progress info
|
|
277
|
+
*/
|
|
278
|
+
getProgressInfo() {
|
|
279
|
+
return this.lastProgressInfo;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Utility function to create a quick todo display
|
|
284
|
+
*/
|
|
285
|
+
export function renderTodoList(todos, options = {}) {
|
|
286
|
+
const panel = new TodoPanel(options);
|
|
287
|
+
panel.update(todos);
|
|
288
|
+
return panel.render();
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Utility function to show a todo update notification
|
|
292
|
+
*/
|
|
293
|
+
export function showTodoUpdate(message, todos, previousTodos) {
|
|
294
|
+
if (todos && previousTodos) {
|
|
295
|
+
const panel = new TodoPanel({ compact: true });
|
|
296
|
+
panel.update(todos);
|
|
297
|
+
const diff = panel.renderDiff(previousTodos, todos);
|
|
298
|
+
clack.note(`${message}\n\n${diff}`, '📋 Todo Update');
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
clack.note(message, '📋 Todo Update');
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Interactive todo status selector
|
|
306
|
+
*/
|
|
307
|
+
export async function selectTodoStatus(currentStatus) {
|
|
308
|
+
return await clack.select({
|
|
309
|
+
message: 'Select new status:',
|
|
310
|
+
initialValue: currentStatus,
|
|
311
|
+
options: [
|
|
312
|
+
{ value: 'pending', label: '⏳ Pending', hint: 'Not yet started' },
|
|
313
|
+
{ value: 'in_progress', label: '🔄 In Progress', hint: 'Currently working on' },
|
|
314
|
+
{ value: 'completed', label: '✅ Completed', hint: 'Finished successfully' }
|
|
315
|
+
]
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=todoPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todoPanel.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/ui/todoPanel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAsB3D;;GAEG;AACH,MAAM,OAAO,SAAS;IAIA;IAHZ,KAAK,GAAW,EAAE,CAAC;IACnB,gBAAgB,GAAwB,IAAI,CAAC;IAErD,YAAoB,UAA8B,EAAE;QAAhC,YAAO,GAAP,OAAO,CAAyB;QAClD,IAAI,CAAC,OAAO,GAAG;YACb,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,EAAE;YACZ,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,aAAa;QACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAEnC,iBAAiB;QACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAEtC,uBAAuB;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAE1E,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAEnD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,MAAM,UAAU,IAAI,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAAU,EAAE,KAAa;QAC9C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEjC,0BAA0B;QAC1B,IAAI,IAAY,CAAC;QACjB,IAAI,YAAsC,CAAC;QAE3C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,WAAW;gBACd,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,MAAM;YACR,KAAK,aAAa;gBAChB,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1B,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM;YACR,KAAK,SAAS,CAAC;YACf;gBACE,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM;QACV,CAAC;QAED,iBAAiB;QACjB,IAAI,cAAc,GAAG,OAAO,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;YACzE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5E,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAEnD,IAAI,IAAI,GAAG,GAAG,QAAQ,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;QAElD,2BAA2B;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,EAAE,CAAC;QAEtC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE/D,eAAe;QACf,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,SAAS,GAAG,QAAQ,GAAG,CAAC;QAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,KAAK,eAAe,UAAU,IAAI,CAAC,CAAC;QAE7E,OAAO,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW;YAAE,OAAO,EAAE,CAAC;QAEnD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACjG,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,SAAe;QACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAElD,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,UAAU,CAAC;QACpC,IAAI,QAAQ,GAAG,EAAE;YAAE,OAAO,GAAG,QAAQ,OAAO,CAAC;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAC5C,IAAI,SAAS,GAAG,EAAE;YAAE,OAAO,GAAG,SAAS,OAAO,CAAC;QAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QAC5C,OAAO,GAAG,QAAQ,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,aAAqB,EAAE,YAAoB;QACpD,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,sBAAsB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAE7B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChE,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE5E,IAAI,IAAI,GAAG,MAAM,SAAS,IAAI,KAAK,KAAK,UAAU,IAAI,CAAC;QAEvD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBACpD,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC9C,WAAW,CAAC,OAAO,CAAC;YACtB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,OAAe,EAAE,SAAkB;QACpD,IAAI,cAAc,GAAG,OAAO,CAAC;QAE7B,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnC,cAAc,GAAG,GAAG,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;QAED,wCAAwC;QACxC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEjF,IAAI,SAAS,KAAK,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,GAAG,SAAS,IAAI,KAAK,kBAAkB,EACvC,mBAAmB,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,QAAkB;QACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,WAAW,GAAG,QAAQ;aACzB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,WAAqB;QAC1C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAErC,MAAM,cAAc,GAAG,WAAW;aAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,UAA8B,EAAE;IAEhC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,KAAc,EACd,aAAsB;IAEtB,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAEpD,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,OAAO,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAA6B;IAE7B,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,oBAAoB;QAC7B,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACjE,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE;YAC/E,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,uBAAuB,EAAE;SAC5E;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -6,6 +6,10 @@ import { type ClipboardImage } from '../../utils/clipboard.js';
|
|
|
6
6
|
export declare class CodeMieTerminalUI {
|
|
7
7
|
private agent;
|
|
8
8
|
private currentSpinner?;
|
|
9
|
+
private todoPanel;
|
|
10
|
+
private progressTracker;
|
|
11
|
+
private planMode;
|
|
12
|
+
private activePlanningPhase;
|
|
9
13
|
constructor(agent: CodeMieAgent);
|
|
10
14
|
/**
|
|
11
15
|
* Start interactive terminal session
|
|
@@ -48,17 +52,9 @@ export declare class CodeMieTerminalUI {
|
|
|
48
52
|
*/
|
|
49
53
|
executeSingleTask(task: string, images?: ClipboardImage[]): Promise<string>;
|
|
50
54
|
/**
|
|
51
|
-
*
|
|
55
|
+
* Execute a task with planning mode and UI streaming (for plan mode)
|
|
52
56
|
*/
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Show task completion message
|
|
56
|
-
*/
|
|
57
|
-
showTaskComplete(): void;
|
|
58
|
-
/**
|
|
59
|
-
* Show error message
|
|
60
|
-
*/
|
|
61
|
-
showError(error: string): void;
|
|
57
|
+
executePlanningTask(task: string, _images?: any[], planOnly?: boolean): Promise<string>;
|
|
62
58
|
/**
|
|
63
59
|
* Check if we should show detailed information for a tool
|
|
64
60
|
*/
|
|
@@ -75,6 +71,106 @@ export declare class CodeMieTerminalUI {
|
|
|
75
71
|
* Show detailed execution steps breakdown
|
|
76
72
|
*/
|
|
77
73
|
private showExecutionSteps;
|
|
74
|
+
/**
|
|
75
|
+
* Handle todo update events
|
|
76
|
+
*/
|
|
77
|
+
private handleTodoUpdate;
|
|
78
|
+
/**
|
|
79
|
+
* Enable plan mode for structured planning
|
|
80
|
+
*/
|
|
81
|
+
enablePlanMode(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Disable plan mode
|
|
84
|
+
*/
|
|
85
|
+
disablePlanMode(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Show current todo status
|
|
88
|
+
*/
|
|
89
|
+
private showTodos;
|
|
90
|
+
/**
|
|
91
|
+
* Show planning phase welcome
|
|
92
|
+
*/
|
|
93
|
+
showPlanningWelcome(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Show task welcome with planning context
|
|
96
|
+
*/
|
|
97
|
+
showTaskWelcome(task: string): void;
|
|
98
|
+
/**
|
|
99
|
+
* Show task completion with todo summary
|
|
100
|
+
*/
|
|
101
|
+
showTaskComplete(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Show error with todo context
|
|
104
|
+
*/
|
|
105
|
+
showError(error: string): void;
|
|
106
|
+
/**
|
|
107
|
+
* Execute task respecting current mode settings
|
|
108
|
+
*/
|
|
109
|
+
private executeTaskWithCurrentMode;
|
|
110
|
+
/**
|
|
111
|
+
* Handle streaming events from plan mode execution
|
|
112
|
+
*/
|
|
113
|
+
private handleStreamingEvent;
|
|
114
|
+
/**
|
|
115
|
+
* Handle planning progress streaming events
|
|
116
|
+
*/
|
|
117
|
+
private currentPhase;
|
|
118
|
+
private currentTool;
|
|
119
|
+
private currentToolCall;
|
|
120
|
+
private handlePlanningProgress;
|
|
121
|
+
/**
|
|
122
|
+
* Handle planning tool call events
|
|
123
|
+
*/
|
|
124
|
+
private handlePlanningToolCall;
|
|
125
|
+
/**
|
|
126
|
+
* Format tool call with arguments for display
|
|
127
|
+
*/
|
|
128
|
+
private formatToolCall;
|
|
129
|
+
/**
|
|
130
|
+
* Update global progress display
|
|
131
|
+
*/
|
|
132
|
+
private currentProgress;
|
|
133
|
+
private updateGlobalProgress;
|
|
134
|
+
/**
|
|
135
|
+
* Create a simple progress bar
|
|
136
|
+
*/
|
|
137
|
+
private createProgressBar;
|
|
138
|
+
/**
|
|
139
|
+
* Create a tool progress bar (smaller for inline use)
|
|
140
|
+
*/
|
|
141
|
+
private createToolProgressBar;
|
|
142
|
+
/**
|
|
143
|
+
* Handle hotkey actions
|
|
144
|
+
*/
|
|
145
|
+
private handleHotkey;
|
|
146
|
+
/**
|
|
147
|
+
* Toggle plan mode on/off
|
|
148
|
+
*/
|
|
149
|
+
private togglePlanMode;
|
|
150
|
+
/**
|
|
151
|
+
* Show enhanced visual feedback for mode changes
|
|
152
|
+
*/
|
|
153
|
+
private showModeChangeNotification;
|
|
154
|
+
/**
|
|
155
|
+
* Show todos via hotkey (non-blocking)
|
|
156
|
+
*/
|
|
157
|
+
private showTodosHotkey;
|
|
158
|
+
/**
|
|
159
|
+
* Show hotkey help
|
|
160
|
+
*/
|
|
161
|
+
private showHotkeyHelp;
|
|
162
|
+
/**
|
|
163
|
+
* Show current mode status
|
|
164
|
+
*/
|
|
165
|
+
private showModeStatus;
|
|
166
|
+
/**
|
|
167
|
+
* Format plan for display with proper text wrapping
|
|
168
|
+
*/
|
|
169
|
+
private formatPlanForDisplay;
|
|
170
|
+
/**
|
|
171
|
+
* Wrap text to specified width
|
|
172
|
+
*/
|
|
173
|
+
private wrapText;
|
|
78
174
|
/**
|
|
79
175
|
* Cleanup resources
|
|
80
176
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/agents/codemie-code/ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/agents/codemie-code/ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAKrG;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,mBAAmB,CAAuB;gBAEtC,KAAK,EAAE,YAAY;IAgB/B;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CvC;;OAEG;YACW,iBAAiB;IAsP/B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,aAAa;IAgE3B;;OAEG;YACW,iBAAiB;IAgH/B;;OAEG;YACW,SAAS;IA8BvB;;OAEG;YACW,UAAU;IAsBxB;;OAEG;YACW,cAAc;IA4B5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,cAAc,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA0FrF;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,GAAG,EAAO,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAmH/F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,eAAe;IA4CvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;OAEG;YACW,SAAS;IAYvB;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAO3B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBnC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAyBxB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAY9B;;OAEG;YACW,0BAA0B;IA0ExC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0C5B;;OAEG;IACH,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAc;IAErC,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAsDtB;;OAEG;IACH,OAAO,CAAC,eAAe,CAAa;IAEpC,OAAO,CAAC,oBAAoB;IAwC5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAalC;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAmChB;;OAEG;IACH,OAAO,IAAI,IAAI;CAUhB"}
|