@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,224 @@
1
+ /**
2
+ * Planning Tools for CodeMie Agent
3
+ *
4
+ * Implementation of todo management tools with persistent file storage
5
+ */
6
+ import { StructuredTool } from '@langchain/core/tools';
7
+ import { z } from 'zod';
8
+ import { TodoFileStorage } from '../storage/todoStorage.js';
9
+ // Global todo state and storage for integration with plan mode
10
+ let globalTodos = [];
11
+ let eventCallbacks = [];
12
+ let todoStorage = null;
13
+ /**
14
+ * Initialize todo storage for the current working directory
15
+ */
16
+ export function initializeTodoStorage(workingDirectory, debug = false) {
17
+ todoStorage = new TodoFileStorage({
18
+ workingDirectory,
19
+ enableGlobalBackup: true,
20
+ debug
21
+ });
22
+ // Load existing todos on initialization
23
+ todoStorage.loadTodos().then(todos => {
24
+ globalTodos = todos;
25
+ if (debug && todos.length > 0) {
26
+ console.log(`[TodoStorage] Loaded ${todos.length} existing todos`);
27
+ }
28
+ // Emit loaded todos event
29
+ if (todos.length > 0) {
30
+ const todoEvent = {
31
+ type: 'todo_update',
32
+ todos: todos,
33
+ changeType: 'update',
34
+ timestamp: new Date()
35
+ };
36
+ eventCallbacks.forEach(callback => {
37
+ try {
38
+ callback(todoEvent);
39
+ }
40
+ catch (error) {
41
+ console.warn('[TodoStorage] Event callback error:', error);
42
+ }
43
+ });
44
+ }
45
+ }).catch(error => {
46
+ console.warn('[TodoStorage] Failed to load initial todos:', error);
47
+ });
48
+ }
49
+ /**
50
+ * Simple Write Todos Tool
51
+ */
52
+ class WriteSimpleTodosTool extends StructuredTool {
53
+ name = 'write_todos';
54
+ description = 'Create or update a structured todo list for planning and progress tracking';
55
+ schema = z.object({
56
+ todos: z.union([
57
+ z.string(),
58
+ z.array(z.string()),
59
+ z.array(z.object({
60
+ content: z.string(),
61
+ status: z.enum(['pending', 'in_progress', 'completed']).optional()
62
+ }))
63
+ ]).describe('The todo list in various supported formats')
64
+ });
65
+ async _call(input) {
66
+ try {
67
+ // Simple parsing - convert any format to string array
68
+ let todoItems = [];
69
+ if (typeof input.todos === 'string') {
70
+ // Handle string format
71
+ todoItems = input.todos.split('\n')
72
+ .filter(line => line.trim())
73
+ .map(line => line.replace(/^[-*•]\s*/, '').trim())
74
+ .filter(item => item);
75
+ }
76
+ else if (Array.isArray(input.todos)) {
77
+ todoItems = input.todos.map(item => typeof item === 'string' ? item : item.content || String(item));
78
+ }
79
+ if (todoItems.length === 0) {
80
+ return '❌ No valid todos found in input';
81
+ }
82
+ // Create proper Todo objects
83
+ const todos = todoItems.map((content, index) => ({
84
+ content: content.trim(),
85
+ status: 'pending',
86
+ index,
87
+ timestamp: new Date()
88
+ }));
89
+ // Store in global state
90
+ globalTodos = todos;
91
+ // Save to file storage
92
+ if (todoStorage) {
93
+ try {
94
+ await todoStorage.saveTodos(todos);
95
+ }
96
+ catch (error) {
97
+ console.warn('[write_todos] Failed to save to file:', error);
98
+ // Continue execution - file save failure shouldn't break todo creation
99
+ }
100
+ }
101
+ // Emit todo_update event for plan mode integration
102
+ const todoEvent = {
103
+ type: 'todo_update',
104
+ todos: todos,
105
+ changeType: 'create',
106
+ timestamp: new Date()
107
+ };
108
+ // Notify all callbacks (plan mode, UI, etc.)
109
+ eventCallbacks.forEach(callback => {
110
+ try {
111
+ callback(todoEvent);
112
+ }
113
+ catch (error) {
114
+ console.warn('[write_todos] Event callback error:', error);
115
+ }
116
+ });
117
+ // Format response
118
+ const response = `✅ **Todo List Created** (${todoItems.length} items)\n\n` +
119
+ todoItems.map((item, i) => `${i + 1}. ${item}`).join('\n') +
120
+ '\n\n🎯 **Status**: Ready for execution\n' +
121
+ '💡 **Tip**: Use Ctrl+T to view todos during execution';
122
+ return response;
123
+ }
124
+ catch (error) {
125
+ const errorMessage = error instanceof Error ? error.message : String(error);
126
+ return `❌ Error creating todos: ${errorMessage}`;
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * Show Todos Tool with Storage Information
132
+ */
133
+ class ShowSimpleTodosTool extends StructuredTool {
134
+ name = 'show_todos';
135
+ description = 'Display the current todo list with progress information and storage details';
136
+ schema = z.object({});
137
+ async _call() {
138
+ const todos = globalTodos;
139
+ if (todos.length === 0) {
140
+ return `📋 **Current Todo List**\n\n` +
141
+ `No todos currently active.\n` +
142
+ `Use the write_todos tool to create a structured plan.\n\n` +
143
+ `💡 **Tip**: Start with write_todos to create your task list`;
144
+ }
145
+ const completed = todos.filter(t => t.status === 'completed').length;
146
+ const inProgress = todos.filter(t => t.status === 'in_progress').length;
147
+ const pending = todos.filter(t => t.status === 'pending').length;
148
+ const statusIcon = (status) => {
149
+ switch (status) {
150
+ case 'completed': return '✅';
151
+ case 'in_progress': return '🔄';
152
+ case 'pending': return '⏳';
153
+ default: return '○';
154
+ }
155
+ };
156
+ let result = `📋 **Current Todo List** (${todos.length} items)\n\n`;
157
+ todos.forEach((todo, i) => {
158
+ result += `${statusIcon(todo.status)} ${i + 1}. ${todo.content}\n`;
159
+ });
160
+ result += `\n**Progress**: ${completed} completed, ${inProgress} in progress, ${pending} pending`;
161
+ // Add storage information
162
+ const storageInfo = TodoStateManager.getStorageInfo();
163
+ if (storageInfo) {
164
+ result += `\n\n📁 **Storage**: Project todos saved to .codemie/todos.json`;
165
+ result += `\n🔄 **Backup**: Global backup at ~/.codemie/todos/${storageInfo.projectHash}.json`;
166
+ }
167
+ result += `\n💡 **Tip**: Use Ctrl+T to view todos in interactive mode`;
168
+ return result;
169
+ }
170
+ }
171
+ // Export the tools
172
+ export const planningTools = [
173
+ new WriteSimpleTodosTool(),
174
+ new ShowSimpleTodosTool()
175
+ ];
176
+ // Also export individual tools for compatibility
177
+ export const writeTodos = new WriteSimpleTodosTool();
178
+ export const showTodos = new ShowSimpleTodosTool();
179
+ // Todo state manager for plan mode integration
180
+ export class TodoStateManager {
181
+ static addEventCallback(callback) {
182
+ eventCallbacks.push(callback);
183
+ }
184
+ static removeEventCallback(callback) {
185
+ const index = eventCallbacks.indexOf(callback);
186
+ if (index > -1) {
187
+ eventCallbacks.splice(index, 1);
188
+ }
189
+ }
190
+ static getCurrentTodos() {
191
+ return [...globalTodos];
192
+ }
193
+ static async clearTodos() {
194
+ globalTodos = [];
195
+ // Clear file storage
196
+ if (todoStorage) {
197
+ try {
198
+ await todoStorage.clearTodos();
199
+ }
200
+ catch (error) {
201
+ console.warn('[TodoStateManager] Failed to clear file storage:', error);
202
+ }
203
+ }
204
+ // Emit clear event
205
+ const todoEvent = {
206
+ type: 'todo_update',
207
+ todos: [],
208
+ changeType: 'delete',
209
+ timestamp: new Date()
210
+ };
211
+ eventCallbacks.forEach(callback => {
212
+ try {
213
+ callback(todoEvent);
214
+ }
215
+ catch (error) {
216
+ console.warn('[TodoStateManager] Event callback error:', error);
217
+ }
218
+ });
219
+ }
220
+ static getStorageInfo() {
221
+ return todoStorage?.getStorageInfo() || null;
222
+ }
223
+ }
224
+ //# sourceMappingURL=planning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/planning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,418 @@
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
+ import type { FilterConfig } from './filters.js';
8
+ /**
9
+ * Configuration interface for the CodeMie agent
10
+ */
11
+ export interface CodeMieConfig {
12
+ /** Base URL for the LLM API endpoint */
13
+ baseUrl: string;
14
+ /** Authentication token/API key */
15
+ authToken: string;
16
+ /** Model name (e.g., 'gpt-4', 'claude-3-sonnet-20240229') */
17
+ model: string;
18
+ /** LLM provider type */
19
+ provider: 'openai' | 'azure' | 'bedrock' | 'litellm';
20
+ /** Original provider name for display (before normalization) */
21
+ displayProvider?: string;
22
+ /** Request timeout in seconds */
23
+ timeout: number;
24
+ /** Working directory for file operations */
25
+ workingDirectory: string;
26
+ /** Enable debug logging */
27
+ debug: boolean;
28
+ /** Directory filtering configuration */
29
+ directoryFilters?: FilterConfig;
30
+ }
31
+ /**
32
+ * Tool metadata extracted from tool results for enhanced UI display
33
+ */
34
+ export interface ToolMetadata {
35
+ /** File path for file operations */
36
+ filePath?: string;
37
+ /** File size in bytes */
38
+ fileSize?: number;
39
+ /** Content preview (first few lines or characters) */
40
+ contentPreview?: string;
41
+ /** Number of bytes written */
42
+ bytesWritten?: number;
43
+ /** Directory path */
44
+ directoryPath?: string;
45
+ /** Number of files found */
46
+ fileCount?: number;
47
+ /** Number of directories found */
48
+ directoryCount?: number;
49
+ /** Command that was executed */
50
+ command?: string;
51
+ /** Execution time in milliseconds */
52
+ executionTime?: number;
53
+ /** Output preview */
54
+ outputPreview?: string;
55
+ /** Success status */
56
+ success?: boolean;
57
+ /** Error message if applicable */
58
+ errorMessage?: string;
59
+ /** Token usage for the LLM reasoning that led to this tool call */
60
+ tokenUsage?: TokenUsage;
61
+ /** Data processing metrics */
62
+ dataMetrics?: {
63
+ /** Amount of data read/processed (in bytes) */
64
+ bytesProcessed?: number;
65
+ /** Number of lines processed */
66
+ linesProcessed?: number;
67
+ /** Processing efficiency (bytes per token) */
68
+ bytesPerToken?: number;
69
+ };
70
+ }
71
+ /**
72
+ * Agent event types for streaming responses
73
+ */
74
+ export interface AgentEvent {
75
+ /** Event type */
76
+ type: 'thinking_start' | 'thinking_end' | 'content_chunk' | 'tool_call_start' | 'tool_call_progress' | 'tool_call_result' | 'complete' | 'error' | 'todo_update' | 'planning_start' | 'planning_complete' | 'planning_progress' | 'planning_tool_call' | 'planning_discovery' | 'planning_phase_change';
77
+ /** Content chunk for streaming text */
78
+ content?: string;
79
+ /** Tool name being called */
80
+ toolName?: string;
81
+ /** Tool arguments */
82
+ toolArgs?: Record<string, any>;
83
+ /** Tool execution result */
84
+ result?: string;
85
+ /** Enhanced tool metadata for better UI display */
86
+ toolMetadata?: ToolMetadata;
87
+ /** Tool progress information (when type is 'tool_call_progress') */
88
+ toolProgress?: {
89
+ /** Progress percentage (0-100) */
90
+ percentage: number;
91
+ /** Current operation description */
92
+ operation: string;
93
+ /** Additional details */
94
+ details?: string;
95
+ /** Estimated time remaining in ms */
96
+ estimatedTimeRemaining?: number;
97
+ };
98
+ /** Error message if event type is 'error' */
99
+ error?: string;
100
+ /** Todo update information (when type is 'todo_update') */
101
+ todoUpdate?: {
102
+ todos: Todo[];
103
+ changedIndex?: number;
104
+ previousState?: Todo[];
105
+ changeType?: 'create' | 'update' | 'delete' | 'reorder';
106
+ };
107
+ /** Planning phase information */
108
+ planningInfo?: {
109
+ phase: 'starting' | 'in_progress' | 'completed' | 'failed';
110
+ totalSteps?: number;
111
+ currentStep?: number;
112
+ message?: string;
113
+ };
114
+ /** Planning progress streaming (for planning_progress event) */
115
+ planningProgress?: {
116
+ /** Current planning phase */
117
+ phase: 'context_gathering' | 'task_analysis' | 'plan_generation' | 'plan_validation';
118
+ /** Descriptive message for current activity */
119
+ message: string;
120
+ /** Progress within current phase (0-100) */
121
+ phaseProgress?: number;
122
+ /** Overall planning progress (0-100) */
123
+ overallProgress?: number;
124
+ /** Additional details for UI display */
125
+ details?: string;
126
+ };
127
+ /** Planning tool call information (for planning_tool_call event) */
128
+ planningToolCall?: {
129
+ /** Tool being called during planning */
130
+ toolName: string;
131
+ /** Tool arguments */
132
+ args?: Record<string, any>;
133
+ /** Current step within planning phase */
134
+ step: number;
135
+ /** Total steps in current phase */
136
+ totalSteps: number;
137
+ /** Purpose of this tool call */
138
+ purpose: string;
139
+ };
140
+ /** Planning discovery information (for planning_discovery event) */
141
+ planningDiscovery?: {
142
+ /** Type of discovery */
143
+ type: 'project_structure' | 'file_analysis' | 'dependency_analysis' | 'feature_detection';
144
+ /** Discovery summary */
145
+ summary: string;
146
+ /** Discovered data */
147
+ data?: Record<string, any>;
148
+ /** Impact on planning */
149
+ impact?: string;
150
+ };
151
+ /** Planning phase change information (for planning_phase_change event) */
152
+ planningPhaseChange?: {
153
+ /** Previous phase */
154
+ fromPhase: string;
155
+ /** New phase */
156
+ toPhase: string;
157
+ /** Phase transition message */
158
+ message: string;
159
+ /** Summary of previous phase results */
160
+ previousPhaseResults?: Record<string, any>;
161
+ };
162
+ }
163
+ /**
164
+ * Callback function for handling agent events
165
+ */
166
+ export type EventCallback = (event: AgentEvent) => void;
167
+ /**
168
+ * Tool configuration interface
169
+ */
170
+ export interface ToolConfig {
171
+ /** Allowed directories for filesystem operations */
172
+ allowedDirectories: string[];
173
+ /** Working directory for command execution */
174
+ workingDirectory: string;
175
+ /** Enable debug mode for tools */
176
+ debug: boolean;
177
+ }
178
+ /**
179
+ * Agent execution options
180
+ */
181
+ export interface ExecutionOptions {
182
+ /** Maximum recursion limit for agent loops */
183
+ recursionLimit?: number;
184
+ /** Streaming mode configuration */
185
+ streamMode?: 'updates' | 'values' | 'debug';
186
+ /** Request timeout in milliseconds */
187
+ timeout?: number;
188
+ }
189
+ /**
190
+ * Agent initialization result
191
+ */
192
+ export interface InitializationResult {
193
+ /** Whether initialization was successful */
194
+ success: boolean;
195
+ /** Number of tools loaded */
196
+ toolCount: number;
197
+ /** Initialization duration in milliseconds */
198
+ duration: number;
199
+ /** Error message if initialization failed */
200
+ error?: string;
201
+ }
202
+ /**
203
+ * Tool execution context
204
+ */
205
+ export interface ToolContext {
206
+ /** Current working directory */
207
+ workingDirectory: string;
208
+ /** User ID or session identifier */
209
+ sessionId?: string;
210
+ /** Additional metadata */
211
+ metadata?: Record<string, any>;
212
+ }
213
+ /**
214
+ * Token usage details for a single LLM call
215
+ */
216
+ export interface TokenUsage {
217
+ /** Input tokens (prompt) */
218
+ inputTokens: number;
219
+ /** Output tokens (completion) */
220
+ outputTokens: number;
221
+ /** Cached tokens (if supported by provider) */
222
+ cachedTokens?: number;
223
+ /** Total tokens (input + output) */
224
+ totalTokens: number;
225
+ /** Estimated cost in USD (if supported) */
226
+ estimatedCost?: number;
227
+ }
228
+ /**
229
+ * Step execution details with token tracking
230
+ */
231
+ export interface ExecutionStep {
232
+ /** Step number in the execution sequence */
233
+ stepNumber: number;
234
+ /** Type of step */
235
+ type: 'llm_call' | 'tool_execution';
236
+ /** Timestamp when step started */
237
+ startTime: number;
238
+ /** Timestamp when step completed */
239
+ endTime?: number;
240
+ /** Duration in milliseconds */
241
+ duration?: number;
242
+ /** Token usage for this step (only for llm_call type) */
243
+ tokenUsage?: TokenUsage;
244
+ /** Tool name (only for tool_execution type) */
245
+ toolName?: string;
246
+ /** Tool result success status (only for tool_execution type) */
247
+ toolSuccess?: boolean;
248
+ /** Error message if step failed */
249
+ error?: string;
250
+ /** Context for LLM calls to distinguish between different types of reasoning */
251
+ llmContext?: 'initial_input' | 'processing_tool_result' | 'final_response';
252
+ }
253
+ /**
254
+ * Agent runtime statistics with detailed token tracking
255
+ */
256
+ export interface AgentStats {
257
+ /** Total tokens used in input across all steps */
258
+ inputTokens: number;
259
+ /** Total tokens generated in output across all steps */
260
+ outputTokens: number;
261
+ /** Total cached tokens across all steps */
262
+ cachedTokens: number;
263
+ /** Total tokens (input + output) */
264
+ totalTokens: number;
265
+ /** Estimated total cost in USD */
266
+ estimatedTotalCost: number;
267
+ /** Total execution time in milliseconds */
268
+ executionTime: number;
269
+ /** Number of tool calls made */
270
+ toolCalls: number;
271
+ /** Number of successful tool executions */
272
+ successfulTools: number;
273
+ /** Number of failed tool executions */
274
+ failedTools: number;
275
+ /** Number of LLM calls made */
276
+ llmCalls: number;
277
+ /** Detailed execution steps */
278
+ executionSteps: ExecutionStep[];
279
+ }
280
+ /**
281
+ * Provider-specific configuration
282
+ */
283
+ export type ProviderConfig = {
284
+ openai: {
285
+ apiKey: string;
286
+ baseURL?: string;
287
+ organization?: string;
288
+ };
289
+ azure: {
290
+ apiKey: string;
291
+ endpoint: string;
292
+ deploymentName: string;
293
+ apiVersion?: string;
294
+ };
295
+ bedrock: {
296
+ region: string;
297
+ accessKeyId: string;
298
+ secretAccessKey: string;
299
+ };
300
+ litellm: {
301
+ apiKey: string;
302
+ baseURL: string;
303
+ model: string;
304
+ };
305
+ };
306
+ /**
307
+ * Error types for the agent
308
+ */
309
+ export declare class CodeMieAgentError extends Error {
310
+ code: string;
311
+ details?: Record<string, any> | undefined;
312
+ constructor(message: string, code: string, details?: Record<string, any> | undefined);
313
+ }
314
+ export declare class ToolExecutionError extends CodeMieAgentError {
315
+ constructor(toolName: string, message: string, details?: Record<string, any>);
316
+ }
317
+ export declare class ConfigurationError extends CodeMieAgentError {
318
+ constructor(message: string, details?: Record<string, any>);
319
+ }
320
+ /**
321
+ * Todo item for structured planning and progress tracking
322
+ */
323
+ export interface Todo {
324
+ /** The content/description of the todo item */
325
+ content: string;
326
+ /** Current status of the todo */
327
+ status: 'pending' | 'in_progress' | 'completed';
328
+ /** Optional index for ordering and reference */
329
+ index?: number;
330
+ /** Timestamp when todo was created */
331
+ timestamp?: Date;
332
+ /** Timestamp when todo was last updated */
333
+ lastUpdated?: Date;
334
+ /** Optional additional metadata */
335
+ metadata?: Record<string, any>;
336
+ }
337
+ /**
338
+ * Agent state for persistent storage across interactions
339
+ * Inspired by LangChain-Code's Deep Agent state management
340
+ */
341
+ export interface CodeMieAgentState {
342
+ /** Structured todos for planning and progress tracking */
343
+ todos: Todo[];
344
+ /** Virtual files for staging edits before writing to disk */
345
+ files: Record<string, string>;
346
+ /** Current step being executed (0-based index) */
347
+ currentStep?: number;
348
+ /** Whether initial planning phase is complete */
349
+ planningComplete?: boolean;
350
+ /** Planning mode configuration */
351
+ planMode?: {
352
+ enabled: boolean;
353
+ requirePlanning: boolean;
354
+ maxTodos: number;
355
+ enforceSequential: boolean;
356
+ };
357
+ /** Session metadata */
358
+ sessionMetadata?: {
359
+ sessionId: string;
360
+ startTime: Date;
361
+ lastActivity: Date;
362
+ };
363
+ }
364
+ /**
365
+ * Todo update event for streaming interfaces
366
+ */
367
+ export interface TodoUpdateEvent {
368
+ /** Event type */
369
+ type: 'todo_update';
370
+ /** Current todo list */
371
+ todos: Todo[];
372
+ /** Index of changed todo (if specific update) */
373
+ changedIndex?: number;
374
+ /** Previous state for diff calculations */
375
+ previousState?: Todo[];
376
+ /** Type of change that occurred */
377
+ changeType?: 'create' | 'update' | 'delete' | 'reorder';
378
+ /** Timestamp of the update */
379
+ timestamp: Date;
380
+ }
381
+ /**
382
+ * Todo parsing result with validation information
383
+ */
384
+ export interface TodoParseResult {
385
+ /** Successfully parsed todos */
386
+ todos: Todo[];
387
+ /** Parse errors encountered */
388
+ errors: string[];
389
+ /** Warnings about format or content */
390
+ warnings: string[];
391
+ /** Input format detected */
392
+ detectedFormat: 'string_bullets' | 'github_checkboxes' | 'object_array' | 'string_array' | 'mixed';
393
+ }
394
+ /**
395
+ * Progress tracking information
396
+ */
397
+ export interface ProgressInfo {
398
+ /** Total number of todos */
399
+ total: number;
400
+ /** Number of completed todos */
401
+ completed: number;
402
+ /** Number of pending todos */
403
+ pending: number;
404
+ /** Number of in-progress todos (should be 0 or 1) */
405
+ inProgress: number;
406
+ /** Progress percentage (0-100) */
407
+ percentage: number;
408
+ /** Current active todo (if any) */
409
+ currentTodo?: Todo;
410
+ /** Estimated completion based on current pace */
411
+ estimatedCompletion?: Date;
412
+ }
413
+ /**
414
+ * Re-export commonly used types from dependencies
415
+ */
416
+ export type { StructuredTool } from '@langchain/core/tools';
417
+ export type { BaseMessage } from '@langchain/core/messages';
418
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agents/codemie-code/types.ts"],"names":[],"mappings":"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"}