@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,35 @@
1
+ /**
2
+ * CodeMie Agent Types
3
+ *
4
+ * Core TypeScript definitions for the CodeMie native coding agent
5
+ * using LangChain v1.0+ and LangGraph v1.0+
6
+ */
7
+ /**
8
+ * Error types for the agent
9
+ */
10
+ export class CodeMieAgentError extends Error {
11
+ code;
12
+ details;
13
+ constructor(message, code, details) {
14
+ super(message);
15
+ this.code = code;
16
+ this.details = details;
17
+ this.name = 'CodeMieAgentError';
18
+ }
19
+ }
20
+ export class ToolExecutionError extends CodeMieAgentError {
21
+ constructor(toolName, message, details) {
22
+ super(`Tool '${toolName}' failed: ${message}`, 'TOOL_EXECUTION_ERROR', {
23
+ toolName,
24
+ ...details
25
+ });
26
+ this.name = 'ToolExecutionError';
27
+ }
28
+ }
29
+ export class ConfigurationError extends CodeMieAgentError {
30
+ constructor(message, details) {
31
+ super(message, 'CONFIGURATION_ERROR', details);
32
+ this.name = 'ConfigurationError';
33
+ }
34
+ }
35
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/agents/codemie-code/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+XH;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAGjC;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,OAA6B;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAsB;QAGpC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IACvD,YACE,QAAgB,EAChB,OAAe,EACf,OAA6B;QAE7B,KAAK,CAAC,SAAS,QAAQ,aAAa,OAAO,EAAE,EAAE,sBAAsB,EAAE;YACrE,QAAQ;YACR,GAAG,OAAO;SACX,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IACvD,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Progress Tracker Utility
3
+ *
4
+ * Provides real-time progress tracking and visualization for todo-based workflows
5
+ */
6
+ import type { Todo, ProgressInfo, TodoUpdateEvent } from '../types.js';
7
+ /**
8
+ * Progress tracking configuration
9
+ */
10
+ export interface ProgressTrackerConfig {
11
+ /** Show real-time updates */
12
+ realTimeUpdates?: boolean;
13
+ /** Update interval in milliseconds */
14
+ updateInterval?: number;
15
+ /** Show completion celebrations */
16
+ showCelebrations?: boolean;
17
+ /** Show quality feedback */
18
+ showQualityFeedback?: boolean;
19
+ /** Compact display mode */
20
+ compact?: boolean;
21
+ }
22
+ /**
23
+ * Progress Tracker for todo-based workflows
24
+ */
25
+ export declare class ProgressTracker {
26
+ private config;
27
+ private todos;
28
+ private todoPanel;
29
+ private lastProgressInfo;
30
+ private isTracking;
31
+ private updateTimer;
32
+ constructor(config?: ProgressTrackerConfig);
33
+ /**
34
+ * Start tracking todo progress
35
+ */
36
+ start(initialTodos?: Todo[]): void;
37
+ /**
38
+ * Stop tracking
39
+ */
40
+ stop(): void;
41
+ /**
42
+ * Update todos and refresh display
43
+ */
44
+ updateTodos(newTodos: Todo[], event?: TodoUpdateEvent, suppressVisualFeedback?: boolean): void;
45
+ /**
46
+ * Handle specific todo update events
47
+ */
48
+ private handleTodoUpdateEvent;
49
+ /**
50
+ * Show status change notification
51
+ */
52
+ private showStatusChangeNotification;
53
+ /**
54
+ * Show task completion with celebration
55
+ */
56
+ private showTaskCompletion;
57
+ /**
58
+ * Check for milestone celebrations
59
+ */
60
+ private checkForCelebrations;
61
+ /**
62
+ * Display current state
63
+ */
64
+ private displayCurrentState;
65
+ /**
66
+ * Check if progress has meaningfully changed
67
+ */
68
+ private hasProgressChanged;
69
+ /**
70
+ * Check for updates (for polling mode)
71
+ */
72
+ private checkForUpdates;
73
+ /**
74
+ * Show planning phase start
75
+ */
76
+ showPlanningStart(): void;
77
+ /**
78
+ * Show planning phase completion
79
+ */
80
+ showPlanningComplete(todoCount: number): void;
81
+ /**
82
+ * Show execution phase start
83
+ */
84
+ showExecutionStart(): void;
85
+ /**
86
+ * Show overall completion
87
+ */
88
+ showOverallCompletion(stats: {
89
+ totalTime?: number;
90
+ tasksCompleted: number;
91
+ }): void;
92
+ /**
93
+ * Show error state
94
+ */
95
+ showError(error: string, todoIndex?: number): void;
96
+ /**
97
+ * Show warning
98
+ */
99
+ showWarning(warning: string): void;
100
+ /**
101
+ * Get current progress
102
+ */
103
+ getCurrentProgress(): ProgressInfo | null;
104
+ /**
105
+ * Get current todos
106
+ */
107
+ getCurrentTodos(): Todo[];
108
+ /**
109
+ * Check if currently tracking
110
+ */
111
+ isActive(): boolean;
112
+ }
113
+ /**
114
+ * Get or create global progress tracker
115
+ */
116
+ export declare function getProgressTracker(config?: ProgressTrackerConfig): ProgressTracker;
117
+ /**
118
+ * Reset global progress tracker
119
+ */
120
+ export declare function resetProgressTracker(): void;
121
+ /**
122
+ * Quick utility to show a progress update
123
+ */
124
+ export declare function showQuickProgress(todos: Todo[], message?: string): void;
125
+ //# sourceMappingURL=progressTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressTracker.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/ui/progressTracker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,eAAe;IAOd,OAAO,CAAC,MAAM;IAN1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAA+B;gBAE9B,MAAM,GAAE,qBAA0B;IAiBtD;;OAEG;IACH,KAAK,CAAC,YAAY,GAAE,IAAI,EAAO,GAAG,IAAI;IAqBtC;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,sBAAsB,GAAE,OAAe,GAAG,IAAI;IAkCrG;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsC7B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA0BpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK7C;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAmBlF;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAUlD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,kBAAkB,IAAI,YAAY,GAAG,IAAI;IAIzC;;OAEG;IACH,eAAe,IAAI,IAAI,EAAE;IAIzB;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGpB;AAOD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAKlF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CASvE"}
@@ -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"}