@codemieai/code 0.0.2 → 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 (360) hide show
  1. package/README.md +357 -719
  2. package/bin/codemie-claude.js +145 -0
  3. package/bin/codemie-code.js +128 -15
  4. package/bin/codemie-codex.js +137 -0
  5. package/bin/codemie.js +1 -1
  6. package/dist/agents/adapters/claude-code.d.ts +7 -2
  7. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  8. package/dist/agents/adapters/claude-code.js +94 -58
  9. package/dist/agents/adapters/claude-code.js.map +1 -1
  10. package/dist/agents/adapters/codemie-code.d.ts +11 -2
  11. package/dist/agents/adapters/codemie-code.d.ts.map +1 -1
  12. package/dist/agents/adapters/codemie-code.js +93 -25
  13. package/dist/agents/adapters/codemie-code.js.map +1 -1
  14. package/dist/agents/adapters/codex.d.ts +7 -2
  15. package/dist/agents/adapters/codex.d.ts.map +1 -1
  16. package/dist/agents/adapters/codex.js +104 -39
  17. package/dist/agents/adapters/codex.js.map +1 -1
  18. package/dist/agents/codemie-code/agent.d.ts +89 -0
  19. package/dist/agents/codemie-code/agent.d.ts.map +1 -0
  20. package/dist/agents/codemie-code/agent.js +689 -0
  21. package/dist/agents/codemie-code/agent.js.map +1 -0
  22. package/dist/agents/codemie-code/config.d.ts +40 -0
  23. package/dist/agents/codemie-code/config.d.ts.map +1 -0
  24. package/dist/agents/codemie-code/config.js +278 -0
  25. package/dist/agents/codemie-code/config.js.map +1 -0
  26. package/dist/agents/codemie-code/filters.d.ts +91 -0
  27. package/dist/agents/codemie-code/filters.d.ts.map +1 -0
  28. package/dist/agents/codemie-code/filters.js +328 -0
  29. package/dist/agents/codemie-code/filters.js.map +1 -0
  30. package/dist/agents/codemie-code/index.d.ts +92 -0
  31. package/dist/agents/codemie-code/index.d.ts.map +1 -0
  32. package/dist/agents/codemie-code/index.js +327 -0
  33. package/dist/agents/codemie-code/index.js.map +1 -0
  34. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts +87 -0
  35. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts.map +1 -0
  36. package/dist/agents/codemie-code/modes/contextAwarePlanning.js +957 -0
  37. package/dist/agents/codemie-code/modes/contextAwarePlanning.js.map +1 -0
  38. package/dist/agents/codemie-code/modes/planMode.d.ts +116 -0
  39. package/dist/agents/codemie-code/modes/planMode.d.ts.map +1 -0
  40. package/dist/agents/codemie-code/modes/planMode.js +537 -0
  41. package/dist/agents/codemie-code/modes/planMode.js.map +1 -0
  42. package/dist/agents/codemie-code/prompts.d.ts +40 -0
  43. package/dist/agents/codemie-code/prompts.d.ts.map +1 -0
  44. package/dist/agents/codemie-code/prompts.js +160 -0
  45. package/dist/agents/codemie-code/prompts.js.map +1 -0
  46. package/dist/agents/codemie-code/storage/todoStorage.d.ts +78 -0
  47. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -0
  48. package/dist/agents/codemie-code/storage/todoStorage.js +225 -0
  49. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -0
  50. package/dist/agents/codemie-code/tokenUtils.d.ts +108 -0
  51. package/dist/agents/codemie-code/tokenUtils.d.ts.map +1 -0
  52. package/dist/agents/codemie-code/tokenUtils.js +220 -0
  53. package/dist/agents/codemie-code/tokenUtils.js.map +1 -0
  54. package/dist/agents/codemie-code/toolMetadata.d.ts +15 -0
  55. package/dist/agents/codemie-code/toolMetadata.d.ts.map +1 -0
  56. package/dist/agents/codemie-code/toolMetadata.js +315 -0
  57. package/dist/agents/codemie-code/toolMetadata.js.map +1 -0
  58. package/dist/agents/codemie-code/tools/index.d.ts +45 -0
  59. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -0
  60. package/dist/agents/codemie-code/tools/index.js +407 -0
  61. package/dist/agents/codemie-code/tools/index.js.map +1 -0
  62. package/dist/agents/codemie-code/tools/planning.d.ts +53 -0
  63. package/dist/agents/codemie-code/tools/planning.d.ts.map +1 -0
  64. package/dist/agents/codemie-code/tools/planning.js +224 -0
  65. package/dist/agents/codemie-code/tools/planning.js.map +1 -0
  66. package/dist/agents/codemie-code/types.d.ts +418 -0
  67. package/dist/agents/codemie-code/types.d.ts.map +1 -0
  68. package/dist/agents/codemie-code/types.js +35 -0
  69. package/dist/agents/codemie-code/types.js.map +1 -0
  70. package/dist/agents/codemie-code/ui/progressTracker.d.ts +125 -0
  71. package/dist/agents/codemie-code/ui/progressTracker.d.ts.map +1 -0
  72. package/dist/agents/codemie-code/ui/progressTracker.js +343 -0
  73. package/dist/agents/codemie-code/ui/progressTracker.js.map +1 -0
  74. package/dist/agents/codemie-code/ui/todoPanel.d.ts +112 -0
  75. package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +1 -0
  76. package/dist/agents/codemie-code/ui/todoPanel.js +318 -0
  77. package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -0
  78. package/dist/agents/codemie-code/ui.d.ts +179 -0
  79. package/dist/agents/codemie-code/ui.d.ts.map +1 -0
  80. package/dist/agents/codemie-code/ui.js +1408 -0
  81. package/dist/agents/codemie-code/ui.js.map +1 -0
  82. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts +87 -0
  83. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts.map +1 -0
  84. package/dist/agents/codemie-code/utils/progressionEnforcer.js +293 -0
  85. package/dist/agents/codemie-code/utils/progressionEnforcer.js.map +1 -0
  86. package/dist/agents/codemie-code/utils/todoParser.d.ts +41 -0
  87. package/dist/agents/codemie-code/utils/todoParser.d.ts.map +1 -0
  88. package/dist/agents/codemie-code/utils/todoParser.js +305 -0
  89. package/dist/agents/codemie-code/utils/todoParser.js.map +1 -0
  90. package/dist/agents/codemie-code/utils/todoValidator.d.ts +65 -0
  91. package/dist/agents/codemie-code/utils/todoValidator.d.ts.map +1 -0
  92. package/dist/agents/codemie-code/utils/todoValidator.js +249 -0
  93. package/dist/agents/codemie-code/utils/todoValidator.js.map +1 -0
  94. package/dist/agents/codemie-code/validators/planValidator.d.ts +94 -0
  95. package/dist/agents/codemie-code/validators/planValidator.d.ts.map +1 -0
  96. package/dist/agents/codemie-code/validators/planValidator.js +281 -0
  97. package/dist/agents/codemie-code/validators/planValidator.js.map +1 -0
  98. package/dist/agents/registry.d.ts +1 -1
  99. package/dist/agents/registry.d.ts.map +1 -1
  100. package/dist/agents/registry.js +11 -15
  101. package/dist/agents/registry.js.map +1 -1
  102. package/dist/cli/commands/auth.d.ts +3 -0
  103. package/dist/cli/commands/auth.d.ts.map +1 -0
  104. package/dist/cli/commands/auth.js +170 -0
  105. package/dist/cli/commands/auth.js.map +1 -0
  106. package/dist/cli/commands/config.d.ts +3 -0
  107. package/dist/cli/commands/config.d.ts.map +1 -0
  108. package/dist/cli/commands/config.js +350 -0
  109. package/dist/cli/commands/config.js.map +1 -0
  110. package/dist/cli/commands/doctor.d.ts.map +1 -1
  111. package/dist/cli/commands/doctor.js +308 -71
  112. package/dist/cli/commands/doctor.js.map +1 -1
  113. package/dist/cli/commands/env.d.ts +3 -0
  114. package/dist/cli/commands/env.d.ts.map +1 -0
  115. package/dist/cli/commands/env.js +19 -0
  116. package/dist/cli/commands/env.js.map +1 -0
  117. package/dist/cli/commands/install.d.ts.map +1 -1
  118. package/dist/cli/commands/install.js +28 -33
  119. package/dist/cli/commands/install.js.map +1 -1
  120. package/dist/cli/commands/list.js +18 -24
  121. package/dist/cli/commands/list.js.map +1 -1
  122. package/dist/cli/commands/run.d.ts.map +1 -1
  123. package/dist/cli/commands/run.js +297 -31
  124. package/dist/cli/commands/run.js.map +1 -1
  125. package/dist/cli/commands/setup.d.ts +3 -0
  126. package/dist/cli/commands/setup.d.ts.map +1 -0
  127. package/dist/cli/commands/setup.js +523 -0
  128. package/dist/cli/commands/setup.js.map +1 -0
  129. package/dist/cli/commands/tools.d.ts +6 -0
  130. package/dist/cli/commands/tools.d.ts.map +1 -0
  131. package/dist/cli/commands/tools.js +244 -0
  132. package/dist/cli/commands/tools.js.map +1 -0
  133. package/dist/cli/commands/uninstall.js +24 -30
  134. package/dist/cli/commands/uninstall.js.map +1 -1
  135. package/dist/cli/commands/version.d.ts.map +1 -1
  136. package/dist/cli/commands/version.js +11 -16
  137. package/dist/cli/commands/version.js.map +1 -1
  138. package/dist/cli/commands/workflow.d.ts +6 -0
  139. package/dist/cli/commands/workflow.d.ts.map +1 -0
  140. package/dist/cli/commands/workflow.js +424 -0
  141. package/dist/cli/commands/workflow.js.map +1 -0
  142. package/dist/cli/index.js +85 -35
  143. package/dist/cli/index.js.map +1 -1
  144. package/dist/clients/adapters/github.d.ts +17 -0
  145. package/dist/clients/adapters/github.d.ts.map +1 -0
  146. package/dist/clients/adapters/github.js +150 -0
  147. package/dist/clients/adapters/github.js.map +1 -0
  148. package/dist/clients/adapters/gitlab.d.ts +17 -0
  149. package/dist/clients/adapters/gitlab.d.ts.map +1 -0
  150. package/dist/clients/adapters/gitlab.js +147 -0
  151. package/dist/clients/adapters/gitlab.js.map +1 -0
  152. package/dist/clients/registry.d.ts +20 -0
  153. package/dist/clients/registry.d.ts.map +1 -0
  154. package/dist/clients/registry.js +27 -0
  155. package/dist/clients/registry.js.map +1 -0
  156. package/dist/env/manager.js +9 -46
  157. package/dist/env/manager.js.map +1 -1
  158. package/dist/index.d.ts +6 -13
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +6 -43
  161. package/dist/index.js.map +1 -1
  162. package/dist/tools/detector.d.ts +33 -0
  163. package/dist/tools/detector.d.ts.map +1 -0
  164. package/dist/tools/detector.js +145 -0
  165. package/dist/tools/detector.js.map +1 -0
  166. package/dist/tools/index.d.ts +8 -0
  167. package/dist/tools/index.d.ts.map +1 -0
  168. package/dist/tools/index.js +8 -0
  169. package/dist/tools/index.js.map +1 -0
  170. package/dist/tools/manager.d.ts +21 -0
  171. package/dist/tools/manager.d.ts.map +1 -0
  172. package/dist/tools/manager.js +104 -0
  173. package/dist/tools/manager.js.map +1 -0
  174. package/dist/tools/registry.d.ts +8 -0
  175. package/dist/tools/registry.d.ts.map +1 -0
  176. package/dist/tools/registry.js +36 -0
  177. package/dist/tools/registry.js.map +1 -0
  178. package/dist/tools/types.d.ts +41 -0
  179. package/dist/tools/types.d.ts.map +1 -0
  180. package/dist/tools/types.js +5 -0
  181. package/dist/tools/types.js.map +1 -0
  182. package/dist/types/sso.d.ts +42 -0
  183. package/dist/types/sso.d.ts.map +1 -0
  184. package/dist/types/sso.js +2 -0
  185. package/dist/types/sso.js.map +1 -0
  186. package/dist/utils/agent-compatibility.d.ts +32 -0
  187. package/dist/utils/agent-compatibility.d.ts.map +1 -0
  188. package/dist/utils/agent-compatibility.js +140 -0
  189. package/dist/utils/agent-compatibility.js.map +1 -0
  190. package/dist/utils/async-tips.d.ts.map +1 -1
  191. package/dist/utils/async-tips.js +16 -55
  192. package/dist/utils/async-tips.js.map +1 -1
  193. package/dist/utils/clipboard.d.ts +16 -0
  194. package/dist/utils/clipboard.d.ts.map +1 -0
  195. package/dist/utils/clipboard.js +179 -0
  196. package/dist/utils/clipboard.js.map +1 -0
  197. package/dist/utils/codemie-integration-validator.d.ts +17 -0
  198. package/dist/utils/codemie-integration-validator.d.ts.map +1 -0
  199. package/dist/utils/codemie-integration-validator.js +105 -0
  200. package/dist/utils/codemie-integration-validator.js.map +1 -0
  201. package/dist/utils/codemie-model-fetcher.d.ts +11 -0
  202. package/dist/utils/codemie-model-fetcher.d.ts.map +1 -0
  203. package/dist/utils/codemie-model-fetcher.js +242 -0
  204. package/dist/utils/codemie-model-fetcher.js.map +1 -0
  205. package/dist/utils/config-loader.d.ts +118 -0
  206. package/dist/utils/config-loader.d.ts.map +1 -0
  207. package/dist/utils/config-loader.js +397 -0
  208. package/dist/utils/config-loader.js.map +1 -0
  209. package/dist/utils/credential-store.d.ts +16 -0
  210. package/dist/utils/credential-store.d.ts.map +1 -0
  211. package/dist/utils/credential-store.js +109 -0
  212. package/dist/utils/credential-store.js.map +1 -0
  213. package/dist/utils/dirname.d.ts +7 -0
  214. package/dist/utils/dirname.d.ts.map +1 -0
  215. package/dist/utils/dirname.js +11 -0
  216. package/dist/utils/dirname.js.map +1 -0
  217. package/dist/utils/errors.js +7 -17
  218. package/dist/utils/errors.js.map +1 -1
  219. package/dist/utils/exec.js +3 -6
  220. package/dist/utils/exec.js.map +1 -1
  221. package/dist/utils/first-time.d.ts +34 -0
  222. package/dist/utils/first-time.d.ts.map +1 -0
  223. package/dist/utils/first-time.js +226 -0
  224. package/dist/utils/first-time.js.map +1 -0
  225. package/dist/utils/health-checker.d.ts +20 -0
  226. package/dist/utils/health-checker.d.ts.map +1 -0
  227. package/dist/utils/health-checker.js +172 -0
  228. package/dist/utils/health-checker.js.map +1 -0
  229. package/dist/utils/logger.js +12 -18
  230. package/dist/utils/logger.js.map +1 -1
  231. package/dist/utils/model-fetcher.d.ts +21 -0
  232. package/dist/utils/model-fetcher.d.ts.map +1 -0
  233. package/dist/utils/model-fetcher.js +150 -0
  234. package/dist/utils/model-fetcher.js.map +1 -0
  235. package/dist/utils/sso-auth.d.ts +15 -0
  236. package/dist/utils/sso-auth.d.ts.map +1 -0
  237. package/dist/utils/sso-auth.js +207 -0
  238. package/dist/utils/sso-auth.js.map +1 -0
  239. package/dist/utils/sso-gateway.d.ts +47 -0
  240. package/dist/utils/sso-gateway.d.ts.map +1 -0
  241. package/dist/utils/sso-gateway.js +298 -0
  242. package/dist/utils/sso-gateway.js.map +1 -0
  243. package/dist/utils/tips.d.ts.map +1 -1
  244. package/dist/utils/tips.js +13 -52
  245. package/dist/utils/tips.js.map +1 -1
  246. package/dist/workflows/detector.d.ts +37 -0
  247. package/dist/workflows/detector.d.ts.map +1 -0
  248. package/dist/workflows/detector.js +160 -0
  249. package/dist/workflows/detector.js.map +1 -0
  250. package/dist/workflows/index.d.ts +8 -0
  251. package/dist/workflows/index.d.ts.map +1 -0
  252. package/dist/workflows/index.js +8 -0
  253. package/dist/workflows/index.js.map +1 -0
  254. package/dist/workflows/installer.d.ts +24 -0
  255. package/dist/workflows/installer.d.ts.map +1 -0
  256. package/dist/workflows/installer.js +105 -0
  257. package/dist/workflows/installer.js.map +1 -0
  258. package/dist/workflows/registry.d.ts +29 -0
  259. package/dist/workflows/registry.d.ts.map +1 -0
  260. package/dist/workflows/registry.js +54 -0
  261. package/dist/workflows/registry.js.map +1 -0
  262. package/dist/workflows/templates/github/metadata.d.ts +6 -0
  263. package/dist/workflows/templates/github/metadata.d.ts.map +1 -0
  264. package/dist/workflows/templates/github/metadata.js +111 -0
  265. package/dist/workflows/templates/github/metadata.js.map +1 -0
  266. package/dist/workflows/templates/gitlab/metadata.d.ts +6 -0
  267. package/dist/workflows/templates/gitlab/metadata.d.ts.map +1 -0
  268. package/dist/workflows/templates/gitlab/metadata.js +14 -0
  269. package/dist/workflows/templates/gitlab/metadata.js.map +1 -0
  270. package/dist/workflows/types.d.ts +71 -0
  271. package/dist/workflows/types.d.ts.map +1 -0
  272. package/dist/workflows/types.js +5 -0
  273. package/dist/workflows/types.js.map +1 -0
  274. package/package.json +32 -25
  275. package/src/workflows/templates/github/code-ci.yml +529 -0
  276. package/src/workflows/templates/github/inline-fix.yml +665 -0
  277. package/src/workflows/templates/github/pr-review.yml +677 -0
  278. package/.claude/agents/README.md +0 -298
  279. package/.claude/agents/release-manager.md +0 -857
  280. package/.codemie/guides/git-workflow.md +0 -493
  281. package/CLAUDE.md +0 -855
  282. package/dist/agents/adapters/aider.d.ts +0 -12
  283. package/dist/agents/adapters/aider.d.ts.map +0 -1
  284. package/dist/agents/adapters/aider.js +0 -80
  285. package/dist/agents/adapters/aider.js.map +0 -1
  286. package/dist/cli/cli.d.ts +0 -4
  287. package/dist/cli/cli.d.ts.map +0 -1
  288. package/dist/cli/cli.js +0 -107
  289. package/dist/cli/cli.js.map +0 -1
  290. package/dist/cli/commands/mcp.d.ts +0 -3
  291. package/dist/cli/commands/mcp.d.ts.map +0 -1
  292. package/dist/cli/commands/mcp.js +0 -459
  293. package/dist/cli/commands/mcp.js.map +0 -1
  294. package/dist/code/agent-events.d.ts +0 -39
  295. package/dist/code/agent-events.d.ts.map +0 -1
  296. package/dist/code/agent-events.js +0 -4
  297. package/dist/code/agent-events.js.map +0 -1
  298. package/dist/code/agent.d.ts +0 -19
  299. package/dist/code/agent.d.ts.map +0 -1
  300. package/dist/code/agent.js +0 -144
  301. package/dist/code/agent.js.map +0 -1
  302. package/dist/code/config.d.ts +0 -13
  303. package/dist/code/config.d.ts.map +0 -1
  304. package/dist/code/config.js +0 -41
  305. package/dist/code/config.js.map +0 -1
  306. package/dist/code/index.d.ts +0 -19
  307. package/dist/code/index.d.ts.map +0 -1
  308. package/dist/code/index.js +0 -400
  309. package/dist/code/index.js.map +0 -1
  310. package/dist/code/prompts.d.ts +0 -2
  311. package/dist/code/prompts.d.ts.map +0 -1
  312. package/dist/code/prompts.js +0 -45
  313. package/dist/code/prompts.js.map +0 -1
  314. package/dist/code/tools/command.d.ts +0 -8
  315. package/dist/code/tools/command.d.ts.map +0 -1
  316. package/dist/code/tools/command.js +0 -83
  317. package/dist/code/tools/command.js.map +0 -1
  318. package/dist/code/tools/diff-utils.d.ts +0 -2
  319. package/dist/code/tools/diff-utils.d.ts.map +0 -1
  320. package/dist/code/tools/diff-utils.js +0 -45
  321. package/dist/code/tools/diff-utils.js.map +0 -1
  322. package/dist/code/tools/filesystem.d.ts +0 -11
  323. package/dist/code/tools/filesystem.d.ts.map +0 -1
  324. package/dist/code/tools/filesystem.js +0 -442
  325. package/dist/code/tools/filesystem.js.map +0 -1
  326. package/dist/code/tools/git.d.ts +0 -7
  327. package/dist/code/tools/git.d.ts.map +0 -1
  328. package/dist/code/tools/git.js +0 -111
  329. package/dist/code/tools/git.js.map +0 -1
  330. package/dist/code/tools/mcp.d.ts +0 -13
  331. package/dist/code/tools/mcp.d.ts.map +0 -1
  332. package/dist/code/tools/mcp.js +0 -230
  333. package/dist/code/tools/mcp.js.map +0 -1
  334. package/dist/data/tips.json +0 -118
  335. package/dist/ui/terminal-ui.d.ts +0 -73
  336. package/dist/ui/terminal-ui.d.ts.map +0 -1
  337. package/dist/ui/terminal-ui.js +0 -900
  338. package/dist/ui/terminal-ui.js.map +0 -1
  339. package/dist/utils/env-mapper.d.ts +0 -40
  340. package/dist/utils/env-mapper.d.ts.map +0 -1
  341. package/dist/utils/env-mapper.js +0 -122
  342. package/dist/utils/env-mapper.js.map +0 -1
  343. package/docs/USER_GUIDE.md +0 -573
  344. package/eslint.config.mjs +0 -43
  345. package/tests/agent-direct.test.mjs +0 -45
  346. package/tests/agent-output.test.mjs +0 -64
  347. package/tests/codemie-code.test.mjs +0 -42
  348. package/tests/context7-only.test.mjs +0 -42
  349. package/tests/conversation-flow.test.mjs +0 -63
  350. package/tests/interactive-simulation.test.mjs +0 -60
  351. package/tests/live-output.test.mjs +0 -53
  352. package/tests/mcp-context7.test.mjs +0 -105
  353. package/tests/mcp-e2e.test.mjs +0 -109
  354. package/tests/mcp-time-server.test.mjs +0 -58
  355. package/tests/streaming.test.mjs +0 -57
  356. package/tests/test-helpers.mjs +0 -94
  357. package/tests/text-wrapping.test.mjs +0 -33
  358. package/tests/tool-count.test.mjs +0 -81
  359. package/tests/ui-format.test.mjs +0 -39
  360. package/tests/ui-state.test.mjs +0 -72
@@ -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":"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"}
@@ -0,0 +1,179 @@
1
+ import { CodeMieAgent } from './agent.js';
2
+ import { type ClipboardImage } from '../../utils/clipboard.js';
3
+ /**
4
+ * Terminal UI interface for CodeMie Agent using Clack
5
+ */
6
+ export declare class CodeMieTerminalUI {
7
+ private agent;
8
+ private currentSpinner?;
9
+ private todoPanel;
10
+ private progressTracker;
11
+ private planMode;
12
+ private activePlanningPhase;
13
+ constructor(agent: CodeMieAgent);
14
+ /**
15
+ * Start interactive terminal session
16
+ */
17
+ startInteractive(): Promise<void>;
18
+ /**
19
+ * Get input from user with Shift+Enter multiline support and image pasting
20
+ */
21
+ private getMultilineInput;
22
+ /**
23
+ * Fallback input method for environments without raw mode
24
+ */
25
+ private getFallbackInput;
26
+ /**
27
+ * Handle special commands
28
+ */
29
+ private handleCommand;
30
+ /**
31
+ * Execute task with modern UI feedback
32
+ */
33
+ private executeTaskWithUI;
34
+ /**
35
+ * Show agent statistics
36
+ */
37
+ private showStats;
38
+ /**
39
+ * Show current configuration
40
+ */
41
+ private showConfig;
42
+ /**
43
+ * Run health check with UI feedback
44
+ */
45
+ private runHealthCheck;
46
+ /**
47
+ * Format uptime duration
48
+ */
49
+ private formatUptime;
50
+ /**
51
+ * Execute a single task with minimal UI (for non-interactive mode)
52
+ */
53
+ executeSingleTask(task: string, images?: ClipboardImage[]): Promise<string>;
54
+ /**
55
+ * Execute a task with planning mode and UI streaming (for plan mode)
56
+ */
57
+ executePlanningTask(task: string, _images?: any[], planOnly?: boolean): Promise<string>;
58
+ /**
59
+ * Check if we should show detailed information for a tool
60
+ */
61
+ private shouldShowDetails;
62
+ /**
63
+ * Show additional tool details
64
+ */
65
+ private showToolDetails;
66
+ /**
67
+ * Show task completion summary with token usage
68
+ */
69
+ private showTaskSummary;
70
+ /**
71
+ * Show detailed execution steps breakdown
72
+ */
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;
174
+ /**
175
+ * Cleanup resources
176
+ */
177
+ dispose(): void;
178
+ }
179
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +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;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"}