@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,327 @@
1
+ /**
2
+ * CodeMie Native Agent - Main Entry Point
3
+ *
4
+ * Orchestrates the entire CodeMie native agent including initialization,
5
+ * tool loading, and interactive/non-interactive execution modes.
6
+ */
7
+ import { CodeMieAgent } from './agent.js';
8
+ import { loadCodeMieConfig, getConfigSummary } from './config.js';
9
+ import { createSystemTools } from './tools/index.js';
10
+ import { CodeMieAgentError } from './types.js';
11
+ import { hasClipboardImage, getClipboardImage } from '../../utils/clipboard.js';
12
+ export class CodeMieCode {
13
+ agent = null;
14
+ config;
15
+ initializationResult = null;
16
+ constructor(workingDir) {
17
+ // Load configuration first - this may throw if config is invalid
18
+ this.config = {}; // Temporary placeholder
19
+ // Actual loading happens in initialize() to handle async operations
20
+ this.workingDirectory = workingDir || process.cwd();
21
+ }
22
+ workingDirectory;
23
+ /**
24
+ * Initialize the CodeMie agent asynchronously
25
+ */
26
+ async initialize(cliOverrides) {
27
+ try {
28
+ // Load configuration with CLI overrides
29
+ this.config = await loadCodeMieConfig(this.workingDirectory, cliOverrides);
30
+ if (this.config.debug) {
31
+ console.log('[DEBUG] Configuration loaded:', getConfigSummary(this.config));
32
+ console.log('[DEBUG] Global SSO cookies set:', !!global.codemieSSOCookies);
33
+ }
34
+ // Create system tools
35
+ const tools = await createSystemTools(this.config);
36
+ if (this.config.debug) {
37
+ console.log(`[DEBUG] Created ${tools.length} system tools`);
38
+ }
39
+ // Initialize the agent
40
+ this.agent = new CodeMieAgent(this.config, tools);
41
+ this.initializationResult = {
42
+ success: true,
43
+ toolCount: tools.length,
44
+ duration: 0
45
+ };
46
+ if (this.config.debug) {
47
+ console.log('[DEBUG] Agent initialized successfully');
48
+ }
49
+ return this.initializationResult;
50
+ }
51
+ catch (error) {
52
+ const errorMessage = error instanceof Error ? error.message : String(error);
53
+ this.initializationResult = {
54
+ success: false,
55
+ toolCount: 0,
56
+ duration: 0,
57
+ error: errorMessage
58
+ };
59
+ if (this.config.debug) {
60
+ console.error('[DEBUG] Initialization failed:', error);
61
+ }
62
+ throw new CodeMieAgentError(`Failed to initialize CodeMie agent: ${errorMessage}`, 'INITIALIZATION_ERROR', { workingDirectory: this.workingDirectory, originalError: error });
63
+ }
64
+ }
65
+ /**
66
+ * Start interactive mode with modern terminal UI
67
+ */
68
+ async startInteractive() {
69
+ if (!this.agent) {
70
+ throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
71
+ }
72
+ // Use modern Clack-based terminal UI
73
+ const { CodeMieTerminalUI } = await import('./ui.js');
74
+ const ui = new CodeMieTerminalUI(this.agent);
75
+ try {
76
+ await ui.startInteractive();
77
+ }
78
+ finally {
79
+ ui.dispose();
80
+ }
81
+ }
82
+ /**
83
+ * Execute a single task (non-interactive mode)
84
+ */
85
+ async executeTask(task) {
86
+ if (!this.agent) {
87
+ throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
88
+ }
89
+ try {
90
+ if (this.config.debug) {
91
+ console.log(`[DEBUG] Executing task: ${task.substring(0, 100)}...`);
92
+ }
93
+ let result = '';
94
+ await this.agent.chatStream(task, (event) => {
95
+ if (event.type === 'content_chunk') {
96
+ result += event.content || '';
97
+ }
98
+ });
99
+ return result;
100
+ }
101
+ catch (error) {
102
+ const errorMessage = error instanceof Error ? error.message : String(error);
103
+ if (this.config.debug) {
104
+ console.error('[DEBUG] Task execution failed:', error);
105
+ }
106
+ throw new CodeMieAgentError(`Task execution failed: ${errorMessage}`, 'TASK_EXECUTION_ERROR', { task, originalError: error });
107
+ }
108
+ }
109
+ /**
110
+ * Execute a single task with modern UI feedback (for CLI usage)
111
+ */
112
+ async executeTaskWithUI(task, options) {
113
+ if (!this.agent) {
114
+ throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
115
+ }
116
+ // Use modern Clack-based terminal UI for single task
117
+ const { CodeMieTerminalUI } = await import('./ui.js');
118
+ const ui = new CodeMieTerminalUI(this.agent);
119
+ try {
120
+ // Enable plan mode if requested
121
+ if (options?.planMode || options?.planOnly) {
122
+ ui.enablePlanMode();
123
+ }
124
+ // Check for clipboard image
125
+ let clipboardImage;
126
+ if (await hasClipboardImage()) {
127
+ clipboardImage = await getClipboardImage() || undefined;
128
+ }
129
+ ui.showTaskWelcome(task);
130
+ let result;
131
+ if (options?.planMode) {
132
+ // Use UI-connected planning execution instead of direct planning
133
+ result = await ui.executePlanningTask(task, clipboardImage ? [clipboardImage] : [], options.planOnly);
134
+ }
135
+ else {
136
+ result = await ui.executeSingleTask(task, clipboardImage ? [clipboardImage] : []);
137
+ }
138
+ // Only show task complete if not plan-only mode
139
+ if (!options?.planOnly) {
140
+ ui.showTaskComplete();
141
+ }
142
+ return result;
143
+ }
144
+ catch (error) {
145
+ const errorMessage = error instanceof Error ? error.message : String(error);
146
+ ui.showError(errorMessage);
147
+ throw error;
148
+ }
149
+ finally {
150
+ ui.dispose();
151
+ }
152
+ }
153
+ /**
154
+ * Execute a task with structured planning mode
155
+ */
156
+ async executeTaskWithPlanning(task, _images = [], planOnly = false) {
157
+ if (!this.agent) {
158
+ throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
159
+ }
160
+ try {
161
+ const { PlanMode } = await import('./modes/planMode.js');
162
+ const planMode = new PlanMode(this.agent, {
163
+ requirePlanning: true,
164
+ enforceSequential: true,
165
+ showPlanningFeedback: true
166
+ });
167
+ if (planOnly) {
168
+ // Only generate plan, don't execute
169
+ const planningResult = await planMode.planningPhase(task);
170
+ if (!planningResult.success) {
171
+ throw new Error(`Planning failed: ${planningResult.error}`);
172
+ }
173
+ return `📋 Plan generated successfully with ${planningResult.todos.length} steps:\n\n` +
174
+ planningResult.todos.map((todo, i) => `${i + 1}. ${todo.content}`).join('\n') +
175
+ `\n\nQuality Score: ${planningResult.qualityScore}/100\n` +
176
+ (planningResult.suggestions.length > 0 ?
177
+ `\nSuggestions:\n${planningResult.suggestions.map((s) => `• ${s}`).join('\n')}` : '') +
178
+ `\n\n🎯 **Plan-only mode**: Plan created. Use --plan flag (without --plan-only) to execute this plan.`;
179
+ }
180
+ // Full planning + execution
181
+ return await planMode.executePlannedTask(task, (event) => {
182
+ // Handle todo updates and planning events
183
+ // Note: planning_start and other UI events are handled by the UI system
184
+ if (event.type === 'planning_complete') {
185
+ console.log(`📋 Plan created with ${event.planningInfo?.totalSteps || 0} steps`);
186
+ }
187
+ else if (event.type === 'todo_update') {
188
+ // Todo updates are handled by the UI system
189
+ }
190
+ });
191
+ }
192
+ catch (error) {
193
+ const errorMessage = error instanceof Error ? error.message : String(error);
194
+ if (this.config.debug) {
195
+ console.error('[DEBUG] Plan mode execution failed:', error);
196
+ }
197
+ throw new CodeMieAgentError(`Plan mode execution failed: ${errorMessage}`, 'PLAN_MODE_ERROR', { task, originalError: error });
198
+ }
199
+ }
200
+ /**
201
+ * Stream a task with event callbacks (for programmatic use)
202
+ */
203
+ async streamTask(task, onEvent) {
204
+ if (!this.agent) {
205
+ throw new CodeMieAgentError('Agent not initialized. Call initialize() first.', 'NOT_INITIALIZED');
206
+ }
207
+ try {
208
+ await this.agent.chatStream(task, onEvent);
209
+ }
210
+ catch (error) {
211
+ throw new CodeMieAgentError(`Streaming task failed: ${error instanceof Error ? error.message : String(error)}`, 'STREAM_TASK_ERROR', { task, originalError: error });
212
+ }
213
+ }
214
+ /**
215
+ * Get agent statistics
216
+ */
217
+ getStats() {
218
+ return this.agent?.getStats() || null;
219
+ }
220
+ /**
221
+ * Get initialization result
222
+ */
223
+ getInitializationResult() {
224
+ return this.initializationResult;
225
+ }
226
+ /**
227
+ * Get agent configuration (sanitized)
228
+ */
229
+ getConfig() {
230
+ return this.agent?.getConfig() || null;
231
+ }
232
+ /**
233
+ * Get the underlying agent instance (for advanced usage)
234
+ */
235
+ getAgent() {
236
+ return this.agent;
237
+ }
238
+ /**
239
+ * Clear conversation history
240
+ */
241
+ clearHistory() {
242
+ if (this.agent) {
243
+ this.agent.clearHistory();
244
+ }
245
+ }
246
+ /**
247
+ * Health check for the entire system
248
+ */
249
+ async healthCheck() {
250
+ try {
251
+ const configStatus = {
252
+ valid: !!this.config,
253
+ provider: this.config?.provider,
254
+ model: this.config?.model,
255
+ workingDirectory: this.config?.workingDirectory
256
+ };
257
+ if (!this.agent) {
258
+ return {
259
+ status: 'unhealthy',
260
+ initialized: false,
261
+ config: configStatus,
262
+ error: 'Agent not initialized'
263
+ };
264
+ }
265
+ const agentStats = this.agent.getStats();
266
+ const agentConfig = this.agent.getConfig();
267
+ return {
268
+ status: 'healthy',
269
+ initialized: true,
270
+ config: configStatus,
271
+ agent: {
272
+ stats: agentStats,
273
+ config: agentConfig ? {
274
+ provider: agentConfig.provider,
275
+ model: agentConfig.model
276
+ } : null
277
+ }
278
+ };
279
+ }
280
+ catch (error) {
281
+ return {
282
+ status: 'unhealthy',
283
+ initialized: !!this.agent,
284
+ config: { valid: false },
285
+ error: error instanceof Error ? error.message : String(error)
286
+ };
287
+ }
288
+ }
289
+ /**
290
+ * Dispose of resources
291
+ */
292
+ async dispose() {
293
+ // Future: Clean up any resources, close connections, etc.
294
+ if (this.config.debug) {
295
+ console.log('[DEBUG] CodeMie agent disposed');
296
+ }
297
+ }
298
+ /**
299
+ * Static method to test connection and configuration
300
+ */
301
+ static async testConnection(workingDir) {
302
+ try {
303
+ const config = await loadCodeMieConfig(workingDir);
304
+ // Basic validation that we can create an agent
305
+ const codeMie = new CodeMieCode(workingDir);
306
+ codeMie.config = config;
307
+ // Try to initialize (this will test tool creation and agent setup)
308
+ const initResult = await codeMie.initialize();
309
+ await codeMie.dispose();
310
+ return {
311
+ success: initResult.success,
312
+ provider: config.provider,
313
+ model: config.model
314
+ };
315
+ }
316
+ catch (error) {
317
+ return {
318
+ success: false,
319
+ error: error instanceof Error ? error.message : String(error)
320
+ };
321
+ }
322
+ }
323
+ }
324
+ export { loadCodeMieConfig, getConfigSummary } from './config.js';
325
+ export { CodeMieAgent } from './agent.js';
326
+ export { formatCost, formatTokens, formatTokenUsageSummary, calculateCost } from './tokenUtils.js';
327
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/codemie-code/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Context-Aware Planning Implementation
3
+ *
4
+ * This module implements intelligent planning that gathers context before creating plans,
5
+ * inspired by proper software engineering practices where understanding comes before action.
6
+ */
7
+ import type { CodeMieAgent } from '../agent.js';
8
+ import type { EventCallback } from '../types.js';
9
+ export interface ContextGatheringConfig {
10
+ maxFilesToRead?: number;
11
+ maxDirectoryDepth?: number;
12
+ includeTests?: boolean;
13
+ includeConfig?: boolean;
14
+ analyzeDependencies?: boolean;
15
+ debug?: boolean;
16
+ }
17
+ export interface ProjectContext {
18
+ projectType: string;
19
+ mainLanguages: string[];
20
+ frameworks: string[];
21
+ projectStructure: Record<string, any>;
22
+ keyFiles: string[];
23
+ existingFeatures: string[];
24
+ dependencies: Record<string, any>;
25
+ testFrameworks: string[];
26
+ buildSystem: string;
27
+ }
28
+ export declare class ContextAwarePlanner {
29
+ private agent;
30
+ private config;
31
+ private eventCallback?;
32
+ constructor(agent: CodeMieAgent, config?: ContextGatheringConfig);
33
+ /**
34
+ * Create a context-aware plan by first gathering information about the project
35
+ */
36
+ createContextAwarePlan(task: string, eventCallback?: EventCallback): Promise<{
37
+ plan: string;
38
+ context: ProjectContext;
39
+ }>;
40
+ /**
41
+ * Phase 1: Gather comprehensive project context using agent's actual tools
42
+ */
43
+ private gatherProjectContext;
44
+ /**
45
+ * Phase 2: Analyze task requirements in project context
46
+ */
47
+ private analyzeTaskInContext;
48
+ /**
49
+ * Phase 3: Generate informed, context-aware plan
50
+ */
51
+ private generateInformedPlan;
52
+ private parseContextFromOutput;
53
+ private extractProjectTypeFromOutput;
54
+ private extractLanguagesFromOutput;
55
+ private extractFrameworksFromOutput;
56
+ private extractKeyFilesFromOutput;
57
+ private extractFeaturesFromOutput;
58
+ private extractDependenciesFromOutput;
59
+ private extractTestFrameworksFromOutput;
60
+ private extractBuildSystemFromOutput;
61
+ private exploreSubdirectories;
62
+ private searchForRelevantFiles;
63
+ private exploreDirectory;
64
+ private readFileViaAgent;
65
+ private detectProjectType;
66
+ private identifyKeyFiles;
67
+ private detectLanguages;
68
+ private detectFrameworks;
69
+ private extractExistingFeatures;
70
+ private detectTestFrameworks;
71
+ private detectBuildSystem;
72
+ private runAgentTool;
73
+ private runAgentAnalysis;
74
+ private log;
75
+ private getToolDisplayName;
76
+ private countSteps;
77
+ private parseDirectoryListing;
78
+ private fileExists;
79
+ private extractFileExtensions;
80
+ private analyzeDependencies;
81
+ private extractTaskType;
82
+ private extractComplexity;
83
+ private extractAffectedAreas;
84
+ private extractRequiredKnowledge;
85
+ private extractDependencies;
86
+ }
87
+ //# sourceMappingURL=contextAwarePlanning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextAwarePlanning.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/modes/contextAwarePlanning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,KAAK,EAAE,YAAY,EAAE,MAAM,GAAE,sBAA2B;IAapE;;OAEG;IACG,sBAAsB,CAC1B,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC;IA4CrD;;OAEG;YACW,oBAAoB;IA0IlC;;OAEG;YACW,oBAAoB;IAgHlC;;OAEG;YACW,oBAAoB;YAgJpB,sBAAsB;IAqBpC,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,4BAA4B;YAYtB,qBAAqB;YAiCrB,sBAAsB;YA0CtB,gBAAgB;YAUhB,gBAAgB;IAY9B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,iBAAiB;YAYX,YAAY;YAkBZ,gBAAgB;IAkB9B,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;YASf,mBAAmB;IAqBjC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,wBAAwB;IAgChC,OAAO,CAAC,mBAAmB;CAoB5B"}