@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,523 @@
1
+ import { Command } from 'commander';
2
+ import inquirer from 'inquirer';
3
+ import chalk from 'chalk';
4
+ import ora from 'ora';
5
+ import { ConfigLoader } from '../../utils/config-loader.js';
6
+ import { logger } from '../../utils/logger.js';
7
+ import { FirstTimeExperience } from '../../utils/first-time.js';
8
+ import { checkProviderHealth } from '../../utils/health-checker.js';
9
+ import { fetchAvailableModels } from '../../utils/model-fetcher.js';
10
+ import { CodeMieSSO } from '../../utils/sso-auth.js';
11
+ import { fetchCodeMieModels } from '../../utils/codemie-model-fetcher.js';
12
+ import { validateCodeMieIntegrations } from '../../utils/codemie-integration-validator.js';
13
+ const PROVIDERS = [
14
+ {
15
+ name: 'CodeMie SSO (Recommended - Enterprise Authentication)',
16
+ value: 'ai-run-sso',
17
+ baseUrl: '', // Will be resolved from CodeMie URL
18
+ models: [] // Will be fetched from CodeMie /v1/llm_models endpoint
19
+ },
20
+ {
21
+ name: 'LiteLLM Proxy (OpenAI-compatible Gateway)',
22
+ value: 'litellm',
23
+ baseUrl: 'https://litellm.example.com',
24
+ models: ['claude-4-5-sonnet', 'claude-opus-4', 'gpt-4.1', 'gpt-5']
25
+ },
26
+ {
27
+ name: 'AWS Bedrock (Claude via AWS)',
28
+ value: 'bedrock',
29
+ baseUrl: '',
30
+ models: [
31
+ 'us.anthropic.claude-sonnet-4-5-20250929-v1:0',
32
+ 'us.anthropic.claude-opus-4-0-20250514-v1:0',
33
+ 'anthropic.claude-3-5-sonnet-20241022-v2:0'
34
+ ]
35
+ },
36
+ {
37
+ name: 'Azure OpenAI (for GPT models and Codex)',
38
+ value: 'azure',
39
+ baseUrl: '',
40
+ models: []
41
+ }
42
+ ];
43
+ export function createSetupCommand() {
44
+ const command = new Command('setup');
45
+ command
46
+ .description('Interactive setup wizard for CodeMie Code')
47
+ .option('--force', 'Force re-setup even if config exists')
48
+ .action(async (options) => {
49
+ try {
50
+ await runSetupWizard(options.force);
51
+ }
52
+ catch (error) {
53
+ logger.error('Setup failed:', error);
54
+ process.exit(1);
55
+ }
56
+ });
57
+ return command;
58
+ }
59
+ async function runSetupWizard(force) {
60
+ console.log(chalk.bold.cyan('\n╔═══════════════════════════════════════╗'));
61
+ console.log(chalk.bold.cyan('ā•‘ Welcome to CodeMie Code Setup! ā•‘'));
62
+ console.log(chalk.bold.cyan('ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n'));
63
+ // Check if config already exists
64
+ if (!force && await ConfigLoader.hasGlobalConfig()) {
65
+ const { proceed } = await inquirer.prompt([
66
+ {
67
+ type: 'confirm',
68
+ name: 'proceed',
69
+ message: 'Configuration already exists. Do you want to reconfigure?',
70
+ default: false
71
+ }
72
+ ]);
73
+ if (!proceed) {
74
+ console.log(chalk.yellow('\nSetup cancelled. Use --force to reconfigure.\n'));
75
+ return;
76
+ }
77
+ }
78
+ console.log(chalk.dim("Let's configure your AI assistant.\n"));
79
+ // Step 1: Choose provider (ai-run-sso is now first/default)
80
+ const { provider } = await inquirer.prompt([
81
+ {
82
+ type: 'list',
83
+ name: 'provider',
84
+ message: 'Choose your LLM provider:',
85
+ choices: PROVIDERS.map(p => ({ name: p.name, value: p.value })),
86
+ default: 'ai-run-sso' // Make SSO the default
87
+ }
88
+ ]);
89
+ if (provider === 'ai-run-sso') {
90
+ await handleAiRunSSOSetup();
91
+ return; // Early return for SSO flow
92
+ }
93
+ const selectedProvider = PROVIDERS.find(p => p.value === provider);
94
+ // Step 2: Provider details
95
+ let baseUrl = selectedProvider.baseUrl;
96
+ let apiKey = '';
97
+ let model = selectedProvider.models[0] || '';
98
+ // Special handling for AWS Bedrock
99
+ if (provider === 'bedrock') {
100
+ console.log(chalk.bold.cyan('\nšŸ“ AWS Bedrock Configuration\n'));
101
+ console.log(chalk.dim('AWS Bedrock requires AWS access credentials and region configuration.'));
102
+ console.log(chalk.dim('AWS credentials can be configured in multiple ways:\n'));
103
+ console.log(chalk.dim(' 1. AWS CLI profiles (recommended): ~/.aws/credentials'));
104
+ console.log(chalk.dim(' 2. Environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY'));
105
+ console.log(chalk.dim(' 3. IAM roles (for EC2/ECS instances)\n'));
106
+ // Check if AWS credentials might be available
107
+ const hasAwsCli = await (async () => {
108
+ try {
109
+ const { exec } = await import('../../utils/exec.js');
110
+ await exec('aws', ['--version']);
111
+ return true;
112
+ }
113
+ catch {
114
+ return false;
115
+ }
116
+ })();
117
+ const hasAwsEnvVars = !!(process.env.AWS_ACCESS_KEY_ID && process.env.AWS_SECRET_ACCESS_KEY);
118
+ if (!hasAwsCli && !hasAwsEnvVars) {
119
+ console.log(chalk.yellow('āš ļø AWS CLI not detected and no AWS environment variables found.\n'));
120
+ console.log(chalk.dim('Please configure AWS credentials before proceeding:\n'));
121
+ console.log(chalk.cyan(' Option 1: Install and configure AWS CLI'));
122
+ console.log(chalk.white(' $ ') + chalk.green('aws configure'));
123
+ console.log(chalk.dim(' Enter your AWS Access Key ID and Secret Access Key\n'));
124
+ console.log(chalk.cyan(' Option 2: Set environment variables'));
125
+ console.log(chalk.white(' $ ') + chalk.green('export AWS_ACCESS_KEY_ID="your-access-key"'));
126
+ console.log(chalk.white(' $ ') + chalk.green('export AWS_SECRET_ACCESS_KEY="your-secret-key"\n'));
127
+ const { continueAnyway } = await inquirer.prompt([
128
+ {
129
+ type: 'confirm',
130
+ name: 'continueAnyway',
131
+ message: 'Continue with Bedrock setup anyway?',
132
+ default: false
133
+ }
134
+ ]);
135
+ if (!continueAnyway) {
136
+ console.log(chalk.yellow('\nBedrock setup cancelled. Please configure AWS credentials first.\n'));
137
+ process.exit(0);
138
+ }
139
+ }
140
+ else if (hasAwsCli) {
141
+ console.log(chalk.green('āœ“ AWS CLI detected\n'));
142
+ }
143
+ else if (hasAwsEnvVars) {
144
+ console.log(chalk.green('āœ“ AWS environment variables detected\n'));
145
+ }
146
+ // Ask for AWS configuration
147
+ const { awsRegion, awsProfile, useProfile } = await inquirer.prompt([
148
+ {
149
+ type: 'confirm',
150
+ name: 'useProfile',
151
+ message: 'Use AWS CLI profile?',
152
+ default: hasAwsCli,
153
+ when: hasAwsCli
154
+ },
155
+ {
156
+ type: 'input',
157
+ name: 'awsProfile',
158
+ message: 'AWS profile name:',
159
+ default: 'default',
160
+ when: (answers) => answers.useProfile
161
+ },
162
+ {
163
+ type: 'input',
164
+ name: 'awsRegion',
165
+ message: 'AWS Region:',
166
+ default: 'us-west-2',
167
+ validate: (input) => input.trim() !== '' || 'AWS region is required'
168
+ }
169
+ ]);
170
+ // Set environment variables for Bedrock
171
+ process.env.AWS_REGION = awsRegion;
172
+ process.env.CLAUDE_CODE_USE_BEDROCK = '1';
173
+ if (useProfile && awsProfile) {
174
+ process.env.AWS_PROFILE = awsProfile;
175
+ }
176
+ console.log(chalk.green('\nāœ“ Bedrock configuration set'));
177
+ console.log(chalk.dim(' AWS_REGION=' + awsRegion));
178
+ if (useProfile && awsProfile) {
179
+ console.log(chalk.dim(' AWS_PROFILE=' + awsProfile));
180
+ }
181
+ console.log(chalk.dim(' CLAUDE_CODE_USE_BEDROCK=1\n'));
182
+ // For Bedrock, we don't need base URL or API key (uses AWS credentials)
183
+ baseUrl = 'bedrock';
184
+ apiKey = 'bedrock'; // Placeholder
185
+ }
186
+ else if (!baseUrl) {
187
+ // Custom provider - ask for base URL
188
+ const answers = await inquirer.prompt([
189
+ {
190
+ type: 'input',
191
+ name: 'baseUrl',
192
+ message: 'Enter API base URL:',
193
+ validate: (input) => input.trim() !== '' || 'Base URL is required'
194
+ }
195
+ ]);
196
+ baseUrl = answers.baseUrl;
197
+ }
198
+ else {
199
+ // Prompt for base URL directly (no default)
200
+ const { customUrl } = await inquirer.prompt([
201
+ {
202
+ type: 'input',
203
+ name: 'customUrl',
204
+ message: `Enter base URL (default: ${baseUrl}):`,
205
+ validate: (input) => {
206
+ // Allow empty input to use default
207
+ if (input.trim() === '')
208
+ return true;
209
+ // Otherwise validate it's not just whitespace
210
+ return input.trim() !== '' || 'Base URL is required';
211
+ }
212
+ }
213
+ ]);
214
+ // Use custom URL if provided, otherwise keep default
215
+ if (customUrl.trim() !== '') {
216
+ baseUrl = customUrl;
217
+ }
218
+ }
219
+ // API Key (skip for Bedrock as it uses AWS credentials)
220
+ if (provider !== 'bedrock') {
221
+ const { apiKeyInput } = await inquirer.prompt([
222
+ {
223
+ type: 'password',
224
+ name: 'apiKeyInput',
225
+ message: 'Enter your API key:',
226
+ mask: '*',
227
+ validate: (input) => input.trim() !== '' || 'API key is required'
228
+ }
229
+ ]);
230
+ apiKey = apiKeyInput;
231
+ }
232
+ // Step 2.5: Validate credentials and fetch models
233
+ let availableModels = [];
234
+ if (provider !== 'bedrock') {
235
+ const healthSpinner = ora('Validating credentials...').start();
236
+ try {
237
+ const healthCheck = await checkProviderHealth(baseUrl, apiKey);
238
+ if (!healthCheck.success) {
239
+ healthSpinner.fail(chalk.red('Validation failed'));
240
+ console.log(chalk.red(` Error: ${healthCheck.message}\n`));
241
+ const { continueAnyway } = await inquirer.prompt([
242
+ {
243
+ type: 'confirm',
244
+ name: 'continueAnyway',
245
+ message: 'Continue with setup anyway?',
246
+ default: false
247
+ }
248
+ ]);
249
+ if (!continueAnyway) {
250
+ console.log(chalk.yellow('\nSetup cancelled. Please check your credentials.\n'));
251
+ return;
252
+ }
253
+ }
254
+ else {
255
+ healthSpinner.succeed(chalk.green('Credentials validated'));
256
+ // Fetch available models
257
+ const modelsSpinner = ora('Fetching available models...').start();
258
+ try {
259
+ availableModels = await fetchAvailableModels({
260
+ provider,
261
+ baseUrl,
262
+ apiKey,
263
+ model: 'temp', // Temporary, not used for fetching
264
+ timeout: 300
265
+ });
266
+ if (availableModels.length > 0) {
267
+ modelsSpinner.succeed(chalk.green(`Found ${availableModels.length} available models`));
268
+ }
269
+ else {
270
+ modelsSpinner.warn(chalk.yellow('No models found - will use manual entry'));
271
+ }
272
+ }
273
+ catch {
274
+ modelsSpinner.warn(chalk.yellow('Could not fetch models - will use manual entry'));
275
+ availableModels = [];
276
+ }
277
+ }
278
+ }
279
+ catch (error) {
280
+ healthSpinner.fail(chalk.red('Validation error'));
281
+ console.log(chalk.red(` ${error instanceof Error ? error.message : String(error)}\n`));
282
+ const { continueAnyway } = await inquirer.prompt([
283
+ {
284
+ type: 'confirm',
285
+ name: 'continueAnyway',
286
+ message: 'Continue with setup anyway?',
287
+ default: false
288
+ }
289
+ ]);
290
+ if (!continueAnyway) {
291
+ console.log(chalk.yellow('\nSetup cancelled.\n'));
292
+ return;
293
+ }
294
+ }
295
+ }
296
+ // Model selection
297
+ // Use fetched models if available, otherwise fall back to provider defaults
298
+ const modelChoices = availableModels.length > 0
299
+ ? availableModels
300
+ : selectedProvider.models;
301
+ if (modelChoices.length > 0) {
302
+ // Add custom option at the end
303
+ const choices = [
304
+ ...modelChoices,
305
+ { name: chalk.dim('Custom model (manual entry)...'), value: 'custom' }
306
+ ];
307
+ const { selectedModel } = await inquirer.prompt([
308
+ {
309
+ type: 'list',
310
+ name: 'selectedModel',
311
+ message: availableModels.length > 0
312
+ ? `Choose a model (${availableModels.length} available):`
313
+ : 'Choose a model:',
314
+ choices,
315
+ pageSize: 15
316
+ }
317
+ ]);
318
+ if (selectedModel === 'custom') {
319
+ const { customModel } = await inquirer.prompt([
320
+ {
321
+ type: 'input',
322
+ name: 'customModel',
323
+ message: 'Enter model name:',
324
+ validate: (input) => input.trim() !== '' || 'Model is required'
325
+ }
326
+ ]);
327
+ model = customModel;
328
+ }
329
+ else {
330
+ model = selectedModel;
331
+ }
332
+ }
333
+ else {
334
+ const { modelInput } = await inquirer.prompt([
335
+ {
336
+ type: 'input',
337
+ name: 'modelInput',
338
+ message: 'Enter model name:',
339
+ validate: (input) => input.trim() !== '' || 'Model is required'
340
+ }
341
+ ]);
342
+ model = modelInput;
343
+ }
344
+ // Step 3: Save configuration (credentials already validated)
345
+ const config = {
346
+ provider,
347
+ baseUrl,
348
+ apiKey,
349
+ model,
350
+ timeout: 300, // Default timeout for most users
351
+ debug: false
352
+ };
353
+ const spinner = ora('Saving configuration...').start();
354
+ try {
355
+ await ConfigLoader.saveGlobalConfig(config);
356
+ spinner.succeed(chalk.green('Configuration saved to ~/.codemie/config.json'));
357
+ }
358
+ catch (error) {
359
+ spinner.fail(chalk.red('Failed to save configuration'));
360
+ throw error;
361
+ }
362
+ // Success message - use first-time experience utility
363
+ FirstTimeExperience.showPostSetupMessage();
364
+ }
365
+ async function handleAiRunSSOSetup() {
366
+ console.log(chalk.bold.cyan('\nšŸ” CodeMie SSO Configuration\n'));
367
+ // Step 1: Get CodeMie URL
368
+ const { codeMieUrl } = await inquirer.prompt([
369
+ {
370
+ type: 'input',
371
+ name: 'codeMieUrl',
372
+ message: 'Enter CodeMie URL:',
373
+ default: 'https://codemie.lab.epam.com',
374
+ validate: (input) => {
375
+ const trimmed = input.trim();
376
+ if (!trimmed)
377
+ return 'CodeMie URL is required';
378
+ if (!trimmed.startsWith('http'))
379
+ return 'URL must start with http:// or https://';
380
+ try {
381
+ new URL(trimmed);
382
+ return true;
383
+ }
384
+ catch {
385
+ return 'Please enter a valid URL';
386
+ }
387
+ }
388
+ }
389
+ ]);
390
+ // Step 2: Proceed directly to SSO authentication (no connectivity check)
391
+ // Following the same pattern as codemie-ide-plugin which trusts the SSO endpoint
392
+ // Step 3: Launch SSO Authentication
393
+ console.log(chalk.dim('\nStarting SSO authentication...\n'));
394
+ const authSpinner = ora('Launching browser for authentication...').start();
395
+ try {
396
+ const sso = new CodeMieSSO();
397
+ const authResult = await sso.authenticate({ codeMieUrl, timeout: 120000 });
398
+ if (!authResult.success) {
399
+ authSpinner.fail(chalk.red('SSO authentication failed'));
400
+ console.log(chalk.red(` Error: ${authResult.error}\n`));
401
+ return;
402
+ }
403
+ authSpinner.succeed(chalk.green('SSO authentication successful'));
404
+ // Step 4a: Validate CodeMie integrations
405
+ const integrationsSpinner = ora('Checking CodeMie integrations...').start();
406
+ let selectedIntegration;
407
+ try {
408
+ selectedIntegration = await validateCodeMieIntegrations(authResult, integrationsSpinner);
409
+ integrationsSpinner.succeed(chalk.green('CodeMie integrations validated'));
410
+ }
411
+ catch {
412
+ integrationsSpinner.stop();
413
+ // Error details already displayed by validateCodeMieIntegrations
414
+ return;
415
+ }
416
+ // Step 4b: Fetch available models from CodeMie
417
+ const modelsSpinner = ora('Fetching available models from CodeMie...').start();
418
+ try {
419
+ const models = await fetchCodeMieModels(authResult.apiUrl, authResult.cookies);
420
+ modelsSpinner.succeed(chalk.green(`Found ${models.length} available models`));
421
+ // Step 5: Model selection
422
+ const selectedModel = await promptForModelSelection(models);
423
+ // Step 6: Save configuration
424
+ const config = {
425
+ provider: 'ai-run-sso',
426
+ authMethod: 'sso',
427
+ codeMieUrl,
428
+ baseUrl: authResult.apiUrl,
429
+ codeMieIntegration: selectedIntegration,
430
+ apiKey: 'sso-authenticated', // Placeholder - auth via cookies
431
+ model: selectedModel,
432
+ timeout: 300,
433
+ debug: false
434
+ };
435
+ const saveSpinner = ora('Saving configuration...').start();
436
+ await ConfigLoader.saveGlobalConfig(config);
437
+ saveSpinner.succeed(chalk.green('Configuration saved to ~/.codemie/config.json'));
438
+ // Success message
439
+ console.log(chalk.bold.green('\nāœ… CodeMie SSO setup completed successfully!\n'));
440
+ console.log(chalk.cyan(`šŸ”— Connected to: ${codeMieUrl}`));
441
+ console.log(chalk.cyan(`šŸ”‘ Authentication: SSO (session stored securely)`));
442
+ console.log(chalk.cyan(`šŸ¤– Selected Model: ${selectedModel}`));
443
+ console.log(chalk.cyan(`šŸ“ Config saved to: ~/.codemie/config.json\n`));
444
+ console.log(chalk.bold(`šŸš€ Ready to use! Try: ${chalk.white('codemie-code --task "explore current repository"')}\n`));
445
+ console.log(chalk.dim(` Or start interactive mode: ${chalk.white('codemie-code')}\n`));
446
+ console.log(chalk.yellow(`šŸ’” Install additional agents with: ${chalk.white('codemie install claude')}\n`));
447
+ }
448
+ catch (error) {
449
+ modelsSpinner.fail(chalk.red('Failed to fetch models'));
450
+ console.log(chalk.red(` Error: ${error instanceof Error ? error.message : String(error)}\n`));
451
+ // Continue with manual model entry
452
+ const { manualModel } = await inquirer.prompt([
453
+ {
454
+ type: 'input',
455
+ name: 'manualModel',
456
+ message: 'Enter model name manually:',
457
+ default: 'claude-4-5-sonnet',
458
+ validate: (input) => input.trim() !== '' || 'Model name is required'
459
+ }
460
+ ]);
461
+ // Save config with manual model
462
+ const config = {
463
+ provider: 'ai-run-sso',
464
+ authMethod: 'sso',
465
+ codeMieUrl,
466
+ baseUrl: authResult.apiUrl,
467
+ codeMieIntegration: selectedIntegration,
468
+ apiKey: 'sso-authenticated',
469
+ model: manualModel,
470
+ timeout: 300,
471
+ debug: false
472
+ };
473
+ await ConfigLoader.saveGlobalConfig(config);
474
+ console.log(chalk.green('\nāœ… Configuration saved with manual model selection.\n'));
475
+ }
476
+ }
477
+ catch (error) {
478
+ authSpinner.fail(chalk.red('Authentication error'));
479
+ console.log(chalk.red(` ${error instanceof Error ? error.message : String(error)}\n`));
480
+ return;
481
+ }
482
+ }
483
+ async function promptForModelSelection(models) {
484
+ if (models.length === 0) {
485
+ const { manualModel } = await inquirer.prompt([
486
+ {
487
+ type: 'input',
488
+ name: 'manualModel',
489
+ message: 'No models found. Enter model name manually:',
490
+ default: 'claude-4-5-sonnet',
491
+ validate: (input) => input.trim() !== '' || 'Model name is required'
492
+ }
493
+ ]);
494
+ return manualModel;
495
+ }
496
+ // Add custom option at the end
497
+ const choices = [
498
+ ...models,
499
+ { name: chalk.dim('Custom model (manual entry)...'), value: 'custom' }
500
+ ];
501
+ const { selectedModel } = await inquirer.prompt([
502
+ {
503
+ type: 'list',
504
+ name: 'selectedModel',
505
+ message: `Choose a model (${models.length} available):`,
506
+ choices,
507
+ pageSize: 15
508
+ }
509
+ ]);
510
+ if (selectedModel === 'custom') {
511
+ const { customModel } = await inquirer.prompt([
512
+ {
513
+ type: 'input',
514
+ name: 'customModel',
515
+ message: 'Enter model name:',
516
+ validate: (input) => input.trim() !== '' || 'Model is required'
517
+ }
518
+ ]);
519
+ return customModel;
520
+ }
521
+ return selectedModel;
522
+ }
523
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tools management CLI commands
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare function createToolsCommand(): Command;
6
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,kBAAkB,IAAI,OAAO,CA4R5C"}