@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.
Files changed (257) hide show
  1. package/README.md +375 -325
  2. package/bin/codemie-claude.js +23 -0
  3. package/bin/codemie-code.js +49 -11
  4. package/bin/codemie-codex.js +12 -13
  5. package/dist/agents/adapters/claude-code.d.ts +5 -0
  6. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  7. package/dist/agents/adapters/claude-code.js +76 -18
  8. package/dist/agents/adapters/claude-code.js.map +1 -1
  9. package/dist/agents/adapters/codex.d.ts +5 -0
  10. package/dist/agents/adapters/codex.d.ts.map +1 -1
  11. package/dist/agents/adapters/codex.js +75 -17
  12. package/dist/agents/adapters/codex.js.map +1 -1
  13. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  14. package/dist/agents/codemie-code/agent.js +187 -21
  15. package/dist/agents/codemie-code/agent.js.map +1 -1
  16. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  17. package/dist/agents/codemie-code/config.js +29 -27
  18. package/dist/agents/codemie-code/config.js.map +1 -1
  19. package/dist/agents/codemie-code/index.d.ts +16 -2
  20. package/dist/agents/codemie-code/index.d.ts.map +1 -1
  21. package/dist/agents/codemie-code/index.js +74 -6
  22. package/dist/agents/codemie-code/index.js.map +1 -1
  23. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts +87 -0
  24. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts.map +1 -0
  25. package/dist/agents/codemie-code/modes/contextAwarePlanning.js +957 -0
  26. package/dist/agents/codemie-code/modes/contextAwarePlanning.js.map +1 -0
  27. package/dist/agents/codemie-code/modes/planMode.d.ts +116 -0
  28. package/dist/agents/codemie-code/modes/planMode.d.ts.map +1 -0
  29. package/dist/agents/codemie-code/modes/planMode.js +537 -0
  30. package/dist/agents/codemie-code/modes/planMode.js.map +1 -0
  31. package/dist/agents/codemie-code/prompts.d.ts +29 -0
  32. package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
  33. package/dist/agents/codemie-code/prompts.js +129 -0
  34. package/dist/agents/codemie-code/prompts.js.map +1 -1
  35. package/dist/agents/codemie-code/storage/todoStorage.d.ts +78 -0
  36. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -0
  37. package/dist/agents/codemie-code/storage/todoStorage.js +225 -0
  38. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -0
  39. package/dist/agents/codemie-code/tokenUtils.js +1 -1
  40. package/dist/agents/codemie-code/tokenUtils.js.map +1 -1
  41. package/dist/agents/codemie-code/tools/index.d.ts +26 -0
  42. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
  43. package/dist/agents/codemie-code/tools/index.js +182 -14
  44. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  45. package/dist/agents/codemie-code/tools/planning.d.ts +53 -0
  46. package/dist/agents/codemie-code/tools/planning.d.ts.map +1 -0
  47. package/dist/agents/codemie-code/tools/planning.js +224 -0
  48. package/dist/agents/codemie-code/tools/planning.js.map +1 -0
  49. package/dist/agents/codemie-code/types.d.ts +170 -6
  50. package/dist/agents/codemie-code/types.d.ts.map +1 -1
  51. package/dist/agents/codemie-code/types.js.map +1 -1
  52. package/dist/agents/codemie-code/ui/progressTracker.d.ts +125 -0
  53. package/dist/agents/codemie-code/ui/progressTracker.d.ts.map +1 -0
  54. package/dist/agents/codemie-code/ui/progressTracker.js +343 -0
  55. package/dist/agents/codemie-code/ui/progressTracker.js.map +1 -0
  56. package/dist/agents/codemie-code/ui/todoPanel.d.ts +112 -0
  57. package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +1 -0
  58. package/dist/agents/codemie-code/ui/todoPanel.js +318 -0
  59. package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -0
  60. package/dist/agents/codemie-code/ui.d.ts +106 -10
  61. package/dist/agents/codemie-code/ui.d.ts.map +1 -1
  62. package/dist/agents/codemie-code/ui.js +913 -129
  63. package/dist/agents/codemie-code/ui.js.map +1 -1
  64. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts +87 -0
  65. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts.map +1 -0
  66. package/dist/agents/codemie-code/utils/progressionEnforcer.js +293 -0
  67. package/dist/agents/codemie-code/utils/progressionEnforcer.js.map +1 -0
  68. package/dist/agents/codemie-code/utils/todoParser.d.ts +41 -0
  69. package/dist/agents/codemie-code/utils/todoParser.d.ts.map +1 -0
  70. package/dist/agents/codemie-code/utils/todoParser.js +305 -0
  71. package/dist/agents/codemie-code/utils/todoParser.js.map +1 -0
  72. package/dist/agents/codemie-code/utils/todoValidator.d.ts +65 -0
  73. package/dist/agents/codemie-code/utils/todoValidator.d.ts.map +1 -0
  74. package/dist/agents/codemie-code/utils/todoValidator.js +249 -0
  75. package/dist/agents/codemie-code/utils/todoValidator.js.map +1 -0
  76. package/dist/agents/codemie-code/validators/planValidator.d.ts +94 -0
  77. package/dist/agents/codemie-code/validators/planValidator.d.ts.map +1 -0
  78. package/dist/agents/codemie-code/validators/planValidator.js +281 -0
  79. package/dist/agents/codemie-code/validators/planValidator.js.map +1 -0
  80. package/dist/agents/registry.d.ts.map +1 -1
  81. package/dist/agents/registry.js +7 -5
  82. package/dist/agents/registry.js.map +1 -1
  83. package/dist/cli/commands/auth.d.ts +3 -0
  84. package/dist/cli/commands/auth.d.ts.map +1 -0
  85. package/dist/cli/commands/auth.js +170 -0
  86. package/dist/cli/commands/auth.js.map +1 -0
  87. package/dist/cli/commands/config.d.ts.map +1 -1
  88. package/dist/cli/commands/config.js +40 -13
  89. package/dist/cli/commands/config.js.map +1 -1
  90. package/dist/cli/commands/doctor.d.ts.map +1 -1
  91. package/dist/cli/commands/doctor.js +209 -16
  92. package/dist/cli/commands/doctor.js.map +1 -1
  93. package/dist/cli/commands/env.js +3 -3
  94. package/dist/cli/commands/env.js.map +1 -1
  95. package/dist/cli/commands/install.d.ts.map +1 -1
  96. package/dist/cli/commands/install.js +2 -1
  97. package/dist/cli/commands/install.js.map +1 -1
  98. package/dist/cli/commands/run.d.ts.map +1 -1
  99. package/dist/cli/commands/run.js +15 -9
  100. package/dist/cli/commands/run.js.map +1 -1
  101. package/dist/cli/commands/setup.d.ts.map +1 -1
  102. package/dist/cli/commands/setup.js +177 -11
  103. package/dist/cli/commands/setup.js.map +1 -1
  104. package/dist/cli/commands/tools.d.ts +6 -0
  105. package/dist/cli/commands/tools.d.ts.map +1 -0
  106. package/dist/cli/commands/tools.js +244 -0
  107. package/dist/cli/commands/tools.js.map +1 -0
  108. package/dist/cli/commands/version.js +1 -1
  109. package/dist/cli/commands/version.js.map +1 -1
  110. package/dist/cli/commands/workflow.d.ts +6 -0
  111. package/dist/cli/commands/workflow.d.ts.map +1 -0
  112. package/dist/cli/commands/workflow.js +424 -0
  113. package/dist/cli/commands/workflow.js.map +1 -0
  114. package/dist/cli/index.js +39 -5
  115. package/dist/cli/index.js.map +1 -1
  116. package/dist/clients/adapters/github.d.ts +17 -0
  117. package/dist/clients/adapters/github.d.ts.map +1 -0
  118. package/dist/clients/adapters/github.js +150 -0
  119. package/dist/clients/adapters/github.js.map +1 -0
  120. package/dist/clients/adapters/gitlab.d.ts +17 -0
  121. package/dist/clients/adapters/gitlab.d.ts.map +1 -0
  122. package/dist/clients/adapters/gitlab.js +147 -0
  123. package/dist/clients/adapters/gitlab.js.map +1 -0
  124. package/dist/clients/registry.d.ts +20 -0
  125. package/dist/clients/registry.d.ts.map +1 -0
  126. package/dist/clients/registry.js +27 -0
  127. package/dist/clients/registry.js.map +1 -0
  128. package/dist/tools/detector.d.ts +33 -0
  129. package/dist/tools/detector.d.ts.map +1 -0
  130. package/dist/tools/detector.js +145 -0
  131. package/dist/tools/detector.js.map +1 -0
  132. package/dist/tools/index.d.ts +8 -0
  133. package/dist/tools/index.d.ts.map +1 -0
  134. package/dist/tools/index.js +8 -0
  135. package/dist/tools/index.js.map +1 -0
  136. package/dist/tools/manager.d.ts +21 -0
  137. package/dist/tools/manager.d.ts.map +1 -0
  138. package/dist/tools/manager.js +104 -0
  139. package/dist/tools/manager.js.map +1 -0
  140. package/dist/tools/registry.d.ts +8 -0
  141. package/dist/tools/registry.d.ts.map +1 -0
  142. package/dist/tools/registry.js +36 -0
  143. package/dist/tools/registry.js.map +1 -0
  144. package/dist/tools/types.d.ts +41 -0
  145. package/dist/tools/types.d.ts.map +1 -0
  146. package/dist/tools/types.js +5 -0
  147. package/dist/tools/types.js.map +1 -0
  148. package/dist/types/sso.d.ts +42 -0
  149. package/dist/types/sso.d.ts.map +1 -0
  150. package/dist/types/sso.js +2 -0
  151. package/dist/types/sso.js.map +1 -0
  152. package/dist/utils/agent-compatibility.d.ts +32 -0
  153. package/dist/utils/agent-compatibility.d.ts.map +1 -0
  154. package/dist/utils/agent-compatibility.js +140 -0
  155. package/dist/utils/agent-compatibility.js.map +1 -0
  156. package/dist/utils/codemie-integration-validator.d.ts +17 -0
  157. package/dist/utils/codemie-integration-validator.d.ts.map +1 -0
  158. package/dist/utils/codemie-integration-validator.js +105 -0
  159. package/dist/utils/codemie-integration-validator.js.map +1 -0
  160. package/dist/utils/codemie-model-fetcher.d.ts +11 -0
  161. package/dist/utils/codemie-model-fetcher.d.ts.map +1 -0
  162. package/dist/utils/codemie-model-fetcher.js +242 -0
  163. package/dist/utils/codemie-model-fetcher.js.map +1 -0
  164. package/dist/utils/config-loader.d.ts +23 -1
  165. package/dist/utils/config-loader.d.ts.map +1 -1
  166. package/dist/utils/config-loader.js +73 -27
  167. package/dist/utils/config-loader.js.map +1 -1
  168. package/dist/utils/credential-store.d.ts +16 -0
  169. package/dist/utils/credential-store.d.ts.map +1 -0
  170. package/dist/utils/credential-store.js +109 -0
  171. package/dist/utils/credential-store.js.map +1 -0
  172. package/dist/utils/first-time.d.ts +1 -1
  173. package/dist/utils/first-time.d.ts.map +1 -1
  174. package/dist/utils/first-time.js +52 -71
  175. package/dist/utils/first-time.js.map +1 -1
  176. package/dist/utils/health-checker.d.ts.map +1 -1
  177. package/dist/utils/health-checker.js +5 -1
  178. package/dist/utils/health-checker.js.map +1 -1
  179. package/dist/utils/model-fetcher.d.ts.map +1 -1
  180. package/dist/utils/model-fetcher.js +15 -2
  181. package/dist/utils/model-fetcher.js.map +1 -1
  182. package/dist/utils/sso-auth.d.ts +15 -0
  183. package/dist/utils/sso-auth.d.ts.map +1 -0
  184. package/dist/utils/sso-auth.js +207 -0
  185. package/dist/utils/sso-auth.js.map +1 -0
  186. package/dist/utils/sso-gateway.d.ts +47 -0
  187. package/dist/utils/sso-gateway.d.ts.map +1 -0
  188. package/dist/utils/sso-gateway.js +298 -0
  189. package/dist/utils/sso-gateway.js.map +1 -0
  190. package/dist/workflows/detector.d.ts +37 -0
  191. package/dist/workflows/detector.d.ts.map +1 -0
  192. package/dist/workflows/detector.js +160 -0
  193. package/dist/workflows/detector.js.map +1 -0
  194. package/dist/workflows/index.d.ts +8 -0
  195. package/dist/workflows/index.d.ts.map +1 -0
  196. package/dist/workflows/index.js +8 -0
  197. package/dist/workflows/index.js.map +1 -0
  198. package/dist/workflows/installer.d.ts +24 -0
  199. package/dist/workflows/installer.d.ts.map +1 -0
  200. package/dist/workflows/installer.js +105 -0
  201. package/dist/workflows/installer.js.map +1 -0
  202. package/dist/workflows/registry.d.ts +29 -0
  203. package/dist/workflows/registry.d.ts.map +1 -0
  204. package/dist/workflows/registry.js +54 -0
  205. package/dist/workflows/registry.js.map +1 -0
  206. package/dist/workflows/templates/github/metadata.d.ts +6 -0
  207. package/dist/workflows/templates/github/metadata.d.ts.map +1 -0
  208. package/dist/workflows/templates/github/metadata.js +111 -0
  209. package/dist/workflows/templates/github/metadata.js.map +1 -0
  210. package/dist/workflows/templates/gitlab/metadata.d.ts +6 -0
  211. package/dist/workflows/templates/gitlab/metadata.d.ts.map +1 -0
  212. package/dist/workflows/templates/gitlab/metadata.js +14 -0
  213. package/dist/workflows/templates/gitlab/metadata.js.map +1 -0
  214. package/dist/workflows/types.d.ts +71 -0
  215. package/dist/workflows/types.d.ts.map +1 -0
  216. package/dist/workflows/types.js +5 -0
  217. package/dist/workflows/types.js.map +1 -0
  218. package/package.json +19 -6
  219. package/src/workflows/templates/github/code-ci.yml +529 -0
  220. package/src/workflows/templates/github/inline-fix.yml +665 -0
  221. package/src/workflows/templates/github/pr-review.yml +677 -0
  222. package/.claude/agents/README.md +0 -298
  223. package/.claude/agents/release-manager.md +0 -857
  224. package/.codemie/guides/git-workflow.md +0 -493
  225. package/CLAUDE.md +0 -225
  226. package/config.example.json +0 -10
  227. package/dist/agents/codemie-code/streaming/events.d.ts +0 -7
  228. package/dist/agents/codemie-code/streaming/events.d.ts.map +0 -1
  229. package/dist/agents/codemie-code/streaming/events.js +0 -7
  230. package/dist/agents/codemie-code/streaming/events.js.map +0 -1
  231. package/dist/agents/codemie-code/streaming/formatter.d.ts +0 -2
  232. package/dist/agents/codemie-code/streaming/formatter.d.ts.map +0 -1
  233. package/dist/agents/codemie-code/streaming/formatter.js +0 -2
  234. package/dist/agents/codemie-code/streaming/formatter.js.map +0 -1
  235. package/dist/agents/codemie-code/streaming/ui.d.ts +0 -2
  236. package/dist/agents/codemie-code/streaming/ui.d.ts.map +0 -1
  237. package/dist/agents/codemie-code/streaming/ui.js +0 -2
  238. package/dist/agents/codemie-code/streaming/ui.js.map +0 -1
  239. package/dist/agents/codemie-code/tools/command.d.ts +0 -2
  240. package/dist/agents/codemie-code/tools/command.d.ts.map +0 -1
  241. package/dist/agents/codemie-code/tools/command.js +0 -2
  242. package/dist/agents/codemie-code/tools/command.js.map +0 -1
  243. package/dist/agents/codemie-code/tools/filesystem.d.ts +0 -2
  244. package/dist/agents/codemie-code/tools/filesystem.d.ts.map +0 -1
  245. package/dist/agents/codemie-code/tools/filesystem.js +0 -2
  246. package/dist/agents/codemie-code/tools/filesystem.js.map +0 -1
  247. package/dist/agents/codemie-code/tools/git.d.ts +0 -2
  248. package/dist/agents/codemie-code/tools/git.d.ts.map +0 -1
  249. package/dist/agents/codemie-code/tools/git.js +0 -2
  250. package/dist/agents/codemie-code/tools/git.js.map +0 -1
  251. package/dist/agents/codemie-code/tools/security.d.ts +0 -2
  252. package/dist/agents/codemie-code/tools/security.d.ts.map +0 -1
  253. package/dist/agents/codemie-code/tools/security.js +0 -2
  254. package/dist/agents/codemie-code/tools/security.js.map +0 -1
  255. package/eslint.config.mjs +0 -43
  256. package/scripts/README.md +0 -80
  257. package/scripts/release.sh +0 -156
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Progress Tracker Utility
3
+ *
4
+ * Provides real-time progress tracking and visualization for todo-based workflows
5
+ */
6
+ import * as clack from '@clack/prompts';
7
+ import chalk from 'chalk';
8
+ import { calculateProgress } from '../utils/todoParser.js';
9
+ import { TodoPanel } from './todoPanel.js';
10
+ /**
11
+ * Progress Tracker for todo-based workflows
12
+ */
13
+ export class ProgressTracker {
14
+ config;
15
+ todos = [];
16
+ todoPanel;
17
+ lastProgressInfo = null;
18
+ isTracking = false;
19
+ updateTimer = null;
20
+ constructor(config = {}) {
21
+ this.config = config;
22
+ this.config = {
23
+ realTimeUpdates: true,
24
+ updateInterval: 1000,
25
+ showCelebrations: true,
26
+ showQualityFeedback: false,
27
+ compact: false,
28
+ ...config
29
+ };
30
+ this.todoPanel = new TodoPanel({
31
+ compact: this.config.compact,
32
+ showProgress: true,
33
+ showTimestamps: false
34
+ });
35
+ }
36
+ /**
37
+ * Start tracking todo progress
38
+ */
39
+ start(initialTodos = []) {
40
+ if (this.isTracking) {
41
+ this.stop();
42
+ }
43
+ this.todos = [...initialTodos];
44
+ this.todoPanel.update(this.todos);
45
+ this.lastProgressInfo = calculateProgress(this.todos);
46
+ this.isTracking = true;
47
+ // Show initial state
48
+ this.displayCurrentState();
49
+ // Start real-time updates if enabled
50
+ if (this.config.realTimeUpdates && this.config.updateInterval) {
51
+ this.updateTimer = setInterval(() => {
52
+ this.checkForUpdates();
53
+ }, this.config.updateInterval);
54
+ }
55
+ }
56
+ /**
57
+ * Stop tracking
58
+ */
59
+ stop() {
60
+ this.isTracking = false;
61
+ if (this.updateTimer) {
62
+ clearInterval(this.updateTimer);
63
+ this.updateTimer = null;
64
+ }
65
+ }
66
+ /**
67
+ * Update todos and refresh display
68
+ */
69
+ updateTodos(newTodos, event, suppressVisualFeedback = false) {
70
+ if (!this.isTracking)
71
+ return;
72
+ // Handle null/undefined gracefully
73
+ if (!newTodos || !Array.isArray(newTodos)) {
74
+ return;
75
+ }
76
+ const previousTodos = [...this.todos];
77
+ this.todos = [...newTodos];
78
+ this.todoPanel.update(this.todos);
79
+ const newProgressInfo = calculateProgress(this.todos);
80
+ const progressChanged = this.hasProgressChanged(newProgressInfo);
81
+ // Show update notification only if not suppressing visual feedback
82
+ if (event && !suppressVisualFeedback) {
83
+ this.handleTodoUpdateEvent(event, previousTodos);
84
+ }
85
+ // Update progress info
86
+ this.lastProgressInfo = newProgressInfo;
87
+ // Show celebrations if progress improved and not suppressing feedback
88
+ if (progressChanged && this.config.showCelebrations && !suppressVisualFeedback) {
89
+ this.checkForCelebrations(newProgressInfo);
90
+ }
91
+ // Display updated state only if not suppressing feedback
92
+ if (!suppressVisualFeedback) {
93
+ this.displayCurrentState();
94
+ }
95
+ }
96
+ /**
97
+ * Handle specific todo update events
98
+ */
99
+ handleTodoUpdateEvent(event, previousTodos) {
100
+ const { changeType, changedIndex, todos } = event;
101
+ switch (changeType) {
102
+ case 'create':
103
+ if (changedIndex !== undefined) {
104
+ const todo = todos[changedIndex];
105
+ clack.note(`Added: ${todo.content}`, '➕ New Todo');
106
+ }
107
+ else {
108
+ // Only show "Todo List Created" if we're showing visual feedback
109
+ // This prevents duplicate messages during planning phases
110
+ if (todos.length > 0) {
111
+ clack.note(`Created ${todos.length} todo${todos.length === 1 ? '' : 's'}`, '📋 Todo List Created');
112
+ }
113
+ }
114
+ break;
115
+ case 'update':
116
+ if (changedIndex !== undefined) {
117
+ const todo = todos[changedIndex];
118
+ const previousTodo = previousTodos[changedIndex];
119
+ if (previousTodo && todo.status !== previousTodo.status) {
120
+ this.showStatusChangeNotification(todo, previousTodo.status, changedIndex);
121
+ }
122
+ }
123
+ break;
124
+ case 'delete':
125
+ clack.note(`Removed ${previousTodos.length} todo${previousTodos.length === 1 ? '' : 's'}`, '🗑️ Todos Cleared');
126
+ break;
127
+ case 'reorder':
128
+ clack.note('Todo order updated', '🔄 Reordered');
129
+ break;
130
+ }
131
+ }
132
+ /**
133
+ * Show status change notification
134
+ */
135
+ showStatusChangeNotification(todo, previousStatus, index) {
136
+ const statusEmoji = {
137
+ 'pending': '⏳',
138
+ 'in_progress': '🔄',
139
+ 'completed': '✅'
140
+ };
141
+ const message = `${statusEmoji[todo.status]} ${todo.content}`;
142
+ // const subtitle = `Status: ${previousStatus} → ${todo.status}`; // Available for future use
143
+ switch (todo.status) {
144
+ case 'in_progress':
145
+ clack.note(message, `🎯 Started Task ${index + 1}`);
146
+ break;
147
+ case 'completed':
148
+ clack.note(message, `✅ Completed Task ${index + 1}`);
149
+ this.showTaskCompletion(todo, index);
150
+ break;
151
+ case 'pending':
152
+ clack.note(message, `⏳ Reset Task ${index + 1}`);
153
+ break;
154
+ }
155
+ }
156
+ /**
157
+ * Show task completion with celebration
158
+ */
159
+ showTaskCompletion(todo, _index) {
160
+ if (!this.config.showCelebrations)
161
+ return;
162
+ const progress = this.lastProgressInfo;
163
+ if (!progress)
164
+ return;
165
+ // Individual task completion
166
+ const completionMessage = chalk.green(`🎉 Great job completing: ${todo.content}`);
167
+ // Check if this was the final task
168
+ if (progress.completed === progress.total && progress.total > 1) {
169
+ clack.outro(chalk.green.bold('🏆 All tasks completed! Excellent work!'));
170
+ }
171
+ else if (progress.completed === progress.total - 1) {
172
+ clack.note(completionMessage + chalk.yellow('\n\n🏁 One more task to go!'), '🎯 Almost There');
173
+ }
174
+ else {
175
+ clack.note(completionMessage, '✨ Task Complete');
176
+ }
177
+ }
178
+ /**
179
+ * Check for milestone celebrations
180
+ */
181
+ checkForCelebrations(progressInfo) {
182
+ if (!this.config.showCelebrations)
183
+ return;
184
+ const { percentage, completed: _completed, total } = progressInfo;
185
+ // Milestone celebrations
186
+ if (percentage === 25 && total >= 4) {
187
+ clack.note('🌟 25% complete - Great start!', '🎯 Milestone');
188
+ }
189
+ else if (percentage === 50 && total >= 4) {
190
+ clack.note('🔥 50% complete - Halfway there!', '🎯 Milestone');
191
+ }
192
+ else if (percentage === 75 && total >= 4) {
193
+ clack.note('⚡ 75% complete - Almost done!', '🎯 Milestone');
194
+ }
195
+ else if (percentage === 100 && total > 0) {
196
+ const celebration = total === 1 ?
197
+ '🎉 Task completed!' :
198
+ `🏆 All ${total} tasks completed! Outstanding work!`;
199
+ clack.outro(chalk.green.bold(celebration));
200
+ }
201
+ }
202
+ /**
203
+ * Display current state
204
+ */
205
+ displayCurrentState() {
206
+ if (!this.isTracking)
207
+ return;
208
+ // Only show progress if we have todos to track
209
+ if (this.todos.length === 0)
210
+ return;
211
+ if (this.config.compact) {
212
+ // Compact single-line display
213
+ console.log(this.todoPanel.renderCompactProgress());
214
+ }
215
+ else {
216
+ // Full panel display (for debug or detailed mode)
217
+ // In normal operation, we rely on individual notifications
218
+ // rather than constantly refreshing the full panel
219
+ }
220
+ }
221
+ /**
222
+ * Check if progress has meaningfully changed
223
+ */
224
+ hasProgressChanged(newProgressInfo) {
225
+ if (!this.lastProgressInfo)
226
+ return true;
227
+ return (newProgressInfo.completed !== this.lastProgressInfo.completed ||
228
+ newProgressInfo.inProgress !== this.lastProgressInfo.inProgress ||
229
+ newProgressInfo.total !== this.lastProgressInfo.total);
230
+ }
231
+ /**
232
+ * Check for updates (for polling mode)
233
+ */
234
+ checkForUpdates() {
235
+ // This would be used if we need to poll for external changes
236
+ // Currently, we rely on explicit updateTodos calls
237
+ }
238
+ /**
239
+ * Show planning phase start
240
+ */
241
+ showPlanningStart() {
242
+ // Don't duplicate planning start message - handled by main UI spinner
243
+ }
244
+ /**
245
+ * Show planning phase completion
246
+ */
247
+ showPlanningComplete(todoCount) {
248
+ const message = `Created plan with ${todoCount} step${todoCount === 1 ? '' : 's'}`;
249
+ clack.log.success(`📋 ${message}`);
250
+ }
251
+ /**
252
+ * Show execution phase start
253
+ */
254
+ showExecutionStart() {
255
+ clack.log.info('🚀 Starting execution phase...');
256
+ }
257
+ /**
258
+ * Show overall completion
259
+ */
260
+ showOverallCompletion(stats) {
261
+ const { totalTime, tasksCompleted } = stats;
262
+ let message = `🏁 Completed ${tasksCompleted} task${tasksCompleted === 1 ? '' : 's'}`;
263
+ if (totalTime) {
264
+ const minutes = Math.round(totalTime / 60000);
265
+ const seconds = Math.round((totalTime % 60000) / 1000);
266
+ if (minutes > 0) {
267
+ message += ` in ${minutes}m ${seconds}s`;
268
+ }
269
+ else {
270
+ message += ` in ${seconds}s`;
271
+ }
272
+ }
273
+ clack.outro(chalk.green.bold(message));
274
+ }
275
+ /**
276
+ * Show error state
277
+ */
278
+ showError(error, todoIndex) {
279
+ let message = `❌ ${error}`;
280
+ if (todoIndex !== undefined && this.todos[todoIndex]) {
281
+ message += `\n📍 While working on: ${this.todos[todoIndex].content}`;
282
+ }
283
+ clack.log.error(message);
284
+ }
285
+ /**
286
+ * Show warning
287
+ */
288
+ showWarning(warning) {
289
+ clack.log.warn(`⚠️ ${warning}`);
290
+ }
291
+ /**
292
+ * Get current progress
293
+ */
294
+ getCurrentProgress() {
295
+ return this.lastProgressInfo;
296
+ }
297
+ /**
298
+ * Get current todos
299
+ */
300
+ getCurrentTodos() {
301
+ return [...this.todos];
302
+ }
303
+ /**
304
+ * Check if currently tracking
305
+ */
306
+ isActive() {
307
+ return this.isTracking;
308
+ }
309
+ }
310
+ /**
311
+ * Global progress tracker instance
312
+ */
313
+ let globalProgressTracker = null;
314
+ /**
315
+ * Get or create global progress tracker
316
+ */
317
+ export function getProgressTracker(config) {
318
+ if (!globalProgressTracker) {
319
+ globalProgressTracker = new ProgressTracker(config);
320
+ }
321
+ return globalProgressTracker;
322
+ }
323
+ /**
324
+ * Reset global progress tracker
325
+ */
326
+ export function resetProgressTracker() {
327
+ if (globalProgressTracker) {
328
+ globalProgressTracker.stop();
329
+ globalProgressTracker = null;
330
+ }
331
+ }
332
+ /**
333
+ * Quick utility to show a progress update
334
+ */
335
+ export function showQuickProgress(todos, message) {
336
+ const progress = calculateProgress(todos);
337
+ const progressText = `${progress.completed}/${progress.total} (${progress.percentage}%)`;
338
+ const displayMessage = message ?
339
+ `${message} - ${progressText}` :
340
+ `Progress: ${progressText}`;
341
+ clack.log.info(`📊 ${displayMessage}`);
342
+ }
343
+ //# sourceMappingURL=progressTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressTracker.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/ui/progressTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
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 type { Todo, ProgressInfo } from '../types.js';
8
+ /**
9
+ * Visual styling configuration for todo display
10
+ */
11
+ export interface TodoDisplayOptions {
12
+ /** Show progress bar */
13
+ showProgress?: boolean;
14
+ /** Show timestamps */
15
+ showTimestamps?: boolean;
16
+ /** Show quality indicators */
17
+ showQuality?: boolean;
18
+ /** Compact display mode */
19
+ compact?: boolean;
20
+ /** Maximum width for content */
21
+ maxWidth?: number;
22
+ }
23
+ /**
24
+ * Todo Panel for rich terminal display
25
+ */
26
+ export declare class TodoPanel {
27
+ private options;
28
+ private todos;
29
+ private lastProgressInfo;
30
+ constructor(options?: TodoDisplayOptions);
31
+ /**
32
+ * Update the todo list and trigger display refresh
33
+ */
34
+ update(todos: Todo[]): void;
35
+ /**
36
+ * Render the todo panel as a formatted string
37
+ */
38
+ render(): string;
39
+ /**
40
+ * Render empty state
41
+ */
42
+ private renderEmptyState;
43
+ /**
44
+ * Render panel header
45
+ */
46
+ private renderHeader;
47
+ /**
48
+ * Render individual todo items
49
+ */
50
+ private renderTodoItems;
51
+ /**
52
+ * Render a single todo item
53
+ */
54
+ private renderTodoItem;
55
+ /**
56
+ * Render progress section
57
+ */
58
+ private renderProgress;
59
+ /**
60
+ * Render current activity section
61
+ */
62
+ private renderCurrentActivity;
63
+ /**
64
+ * Format timestamp for display
65
+ */
66
+ private formatTimestamp;
67
+ /**
68
+ * Show a diff between two todo states
69
+ */
70
+ renderDiff(previousTodos: Todo[], currentTodos: Todo[]): string;
71
+ /**
72
+ * Render a compact single-line progress indicator
73
+ */
74
+ renderCompactProgress(): string;
75
+ /**
76
+ * Show an animated progress update
77
+ */
78
+ showProgressUpdate(message: string, todoIndex?: number): void;
79
+ /**
80
+ * Show completion celebration
81
+ */
82
+ showCompletion(): void;
83
+ /**
84
+ * Display validation warnings
85
+ */
86
+ showValidationWarnings(warnings: string[]): void;
87
+ /**
88
+ * Display quality suggestions
89
+ */
90
+ showQualitySuggestions(suggestions: string[]): void;
91
+ /**
92
+ * Get current todos
93
+ */
94
+ getTodos(): Todo[];
95
+ /**
96
+ * Get current progress info
97
+ */
98
+ getProgressInfo(): ProgressInfo | null;
99
+ }
100
+ /**
101
+ * Utility function to create a quick todo display
102
+ */
103
+ export declare function renderTodoList(todos: Todo[], options?: TodoDisplayOptions): string;
104
+ /**
105
+ * Utility function to show a todo update notification
106
+ */
107
+ export declare function showTodoUpdate(message: string, todos?: Todo[], previousTodos?: Todo[]): void;
108
+ /**
109
+ * Interactive todo status selector
110
+ */
111
+ export declare function selectTodoStatus(currentStatus: Todo['status']): Promise<Todo['status'] | symbol>;
112
+ //# sourceMappingURL=todoPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoPanel.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/ui/todoPanel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,sBAAsB;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,SAAS;IAIR,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,gBAAgB,CAA6B;gBAEjC,OAAO,GAAE,kBAAuB;IAWpD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAK3B;;OAEG;IACH,MAAM,IAAI,MAAM;IA0BhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,cAAc;IA4CtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,MAAM;IAuC/D;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAmB/B;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAY7D;;OAEG;IACH,cAAc,IAAI,IAAI;IAatB;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAWhD;;OAEG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAWnD;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAIlB;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;CAGvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,IAAI,EAAE,EACd,aAAa,CAAC,EAAE,IAAI,EAAE,GACrB,IAAI,CAUN;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAUlC"}