@codemieai/code 0.0.3 → 0.0.5

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 (257) hide show
  1. package/README.md +375 -325
  2. package/bin/codemie-claude.js +23 -0
  3. package/bin/codemie-code.js +49 -11
  4. package/bin/codemie-codex.js +12 -13
  5. package/dist/agents/adapters/claude-code.d.ts +5 -0
  6. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  7. package/dist/agents/adapters/claude-code.js +76 -18
  8. package/dist/agents/adapters/claude-code.js.map +1 -1
  9. package/dist/agents/adapters/codex.d.ts +5 -0
  10. package/dist/agents/adapters/codex.d.ts.map +1 -1
  11. package/dist/agents/adapters/codex.js +75 -17
  12. package/dist/agents/adapters/codex.js.map +1 -1
  13. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  14. package/dist/agents/codemie-code/agent.js +187 -21
  15. package/dist/agents/codemie-code/agent.js.map +1 -1
  16. package/dist/agents/codemie-code/config.d.ts.map +1 -1
  17. package/dist/agents/codemie-code/config.js +29 -27
  18. package/dist/agents/codemie-code/config.js.map +1 -1
  19. package/dist/agents/codemie-code/index.d.ts +16 -2
  20. package/dist/agents/codemie-code/index.d.ts.map +1 -1
  21. package/dist/agents/codemie-code/index.js +74 -6
  22. package/dist/agents/codemie-code/index.js.map +1 -1
  23. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts +87 -0
  24. package/dist/agents/codemie-code/modes/contextAwarePlanning.d.ts.map +1 -0
  25. package/dist/agents/codemie-code/modes/contextAwarePlanning.js +957 -0
  26. package/dist/agents/codemie-code/modes/contextAwarePlanning.js.map +1 -0
  27. package/dist/agents/codemie-code/modes/planMode.d.ts +116 -0
  28. package/dist/agents/codemie-code/modes/planMode.d.ts.map +1 -0
  29. package/dist/agents/codemie-code/modes/planMode.js +537 -0
  30. package/dist/agents/codemie-code/modes/planMode.js.map +1 -0
  31. package/dist/agents/codemie-code/prompts.d.ts +29 -0
  32. package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
  33. package/dist/agents/codemie-code/prompts.js +129 -0
  34. package/dist/agents/codemie-code/prompts.js.map +1 -1
  35. package/dist/agents/codemie-code/storage/todoStorage.d.ts +78 -0
  36. package/dist/agents/codemie-code/storage/todoStorage.d.ts.map +1 -0
  37. package/dist/agents/codemie-code/storage/todoStorage.js +225 -0
  38. package/dist/agents/codemie-code/storage/todoStorage.js.map +1 -0
  39. package/dist/agents/codemie-code/tokenUtils.js +1 -1
  40. package/dist/agents/codemie-code/tokenUtils.js.map +1 -1
  41. package/dist/agents/codemie-code/tools/index.d.ts +26 -0
  42. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
  43. package/dist/agents/codemie-code/tools/index.js +182 -14
  44. package/dist/agents/codemie-code/tools/index.js.map +1 -1
  45. package/dist/agents/codemie-code/tools/planning.d.ts +53 -0
  46. package/dist/agents/codemie-code/tools/planning.d.ts.map +1 -0
  47. package/dist/agents/codemie-code/tools/planning.js +224 -0
  48. package/dist/agents/codemie-code/tools/planning.js.map +1 -0
  49. package/dist/agents/codemie-code/types.d.ts +170 -6
  50. package/dist/agents/codemie-code/types.d.ts.map +1 -1
  51. package/dist/agents/codemie-code/types.js.map +1 -1
  52. package/dist/agents/codemie-code/ui/progressTracker.d.ts +125 -0
  53. package/dist/agents/codemie-code/ui/progressTracker.d.ts.map +1 -0
  54. package/dist/agents/codemie-code/ui/progressTracker.js +343 -0
  55. package/dist/agents/codemie-code/ui/progressTracker.js.map +1 -0
  56. package/dist/agents/codemie-code/ui/todoPanel.d.ts +112 -0
  57. package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +1 -0
  58. package/dist/agents/codemie-code/ui/todoPanel.js +318 -0
  59. package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -0
  60. package/dist/agents/codemie-code/ui.d.ts +106 -10
  61. package/dist/agents/codemie-code/ui.d.ts.map +1 -1
  62. package/dist/agents/codemie-code/ui.js +913 -129
  63. package/dist/agents/codemie-code/ui.js.map +1 -1
  64. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts +87 -0
  65. package/dist/agents/codemie-code/utils/progressionEnforcer.d.ts.map +1 -0
  66. package/dist/agents/codemie-code/utils/progressionEnforcer.js +293 -0
  67. package/dist/agents/codemie-code/utils/progressionEnforcer.js.map +1 -0
  68. package/dist/agents/codemie-code/utils/todoParser.d.ts +41 -0
  69. package/dist/agents/codemie-code/utils/todoParser.d.ts.map +1 -0
  70. package/dist/agents/codemie-code/utils/todoParser.js +305 -0
  71. package/dist/agents/codemie-code/utils/todoParser.js.map +1 -0
  72. package/dist/agents/codemie-code/utils/todoValidator.d.ts +65 -0
  73. package/dist/agents/codemie-code/utils/todoValidator.d.ts.map +1 -0
  74. package/dist/agents/codemie-code/utils/todoValidator.js +249 -0
  75. package/dist/agents/codemie-code/utils/todoValidator.js.map +1 -0
  76. package/dist/agents/codemie-code/validators/planValidator.d.ts +94 -0
  77. package/dist/agents/codemie-code/validators/planValidator.d.ts.map +1 -0
  78. package/dist/agents/codemie-code/validators/planValidator.js +281 -0
  79. package/dist/agents/codemie-code/validators/planValidator.js.map +1 -0
  80. package/dist/agents/registry.d.ts.map +1 -1
  81. package/dist/agents/registry.js +7 -5
  82. package/dist/agents/registry.js.map +1 -1
  83. package/dist/cli/commands/auth.d.ts +3 -0
  84. package/dist/cli/commands/auth.d.ts.map +1 -0
  85. package/dist/cli/commands/auth.js +170 -0
  86. package/dist/cli/commands/auth.js.map +1 -0
  87. package/dist/cli/commands/config.d.ts.map +1 -1
  88. package/dist/cli/commands/config.js +40 -13
  89. package/dist/cli/commands/config.js.map +1 -1
  90. package/dist/cli/commands/doctor.d.ts.map +1 -1
  91. package/dist/cli/commands/doctor.js +209 -16
  92. package/dist/cli/commands/doctor.js.map +1 -1
  93. package/dist/cli/commands/env.js +3 -3
  94. package/dist/cli/commands/env.js.map +1 -1
  95. package/dist/cli/commands/install.d.ts.map +1 -1
  96. package/dist/cli/commands/install.js +2 -1
  97. package/dist/cli/commands/install.js.map +1 -1
  98. package/dist/cli/commands/run.d.ts.map +1 -1
  99. package/dist/cli/commands/run.js +15 -9
  100. package/dist/cli/commands/run.js.map +1 -1
  101. package/dist/cli/commands/setup.d.ts.map +1 -1
  102. package/dist/cli/commands/setup.js +177 -11
  103. package/dist/cli/commands/setup.js.map +1 -1
  104. package/dist/cli/commands/tools.d.ts +6 -0
  105. package/dist/cli/commands/tools.d.ts.map +1 -0
  106. package/dist/cli/commands/tools.js +244 -0
  107. package/dist/cli/commands/tools.js.map +1 -0
  108. package/dist/cli/commands/version.js +1 -1
  109. package/dist/cli/commands/version.js.map +1 -1
  110. package/dist/cli/commands/workflow.d.ts +6 -0
  111. package/dist/cli/commands/workflow.d.ts.map +1 -0
  112. package/dist/cli/commands/workflow.js +424 -0
  113. package/dist/cli/commands/workflow.js.map +1 -0
  114. package/dist/cli/index.js +39 -5
  115. package/dist/cli/index.js.map +1 -1
  116. package/dist/clients/adapters/github.d.ts +17 -0
  117. package/dist/clients/adapters/github.d.ts.map +1 -0
  118. package/dist/clients/adapters/github.js +150 -0
  119. package/dist/clients/adapters/github.js.map +1 -0
  120. package/dist/clients/adapters/gitlab.d.ts +17 -0
  121. package/dist/clients/adapters/gitlab.d.ts.map +1 -0
  122. package/dist/clients/adapters/gitlab.js +147 -0
  123. package/dist/clients/adapters/gitlab.js.map +1 -0
  124. package/dist/clients/registry.d.ts +20 -0
  125. package/dist/clients/registry.d.ts.map +1 -0
  126. package/dist/clients/registry.js +27 -0
  127. package/dist/clients/registry.js.map +1 -0
  128. package/dist/tools/detector.d.ts +33 -0
  129. package/dist/tools/detector.d.ts.map +1 -0
  130. package/dist/tools/detector.js +145 -0
  131. package/dist/tools/detector.js.map +1 -0
  132. package/dist/tools/index.d.ts +8 -0
  133. package/dist/tools/index.d.ts.map +1 -0
  134. package/dist/tools/index.js +8 -0
  135. package/dist/tools/index.js.map +1 -0
  136. package/dist/tools/manager.d.ts +21 -0
  137. package/dist/tools/manager.d.ts.map +1 -0
  138. package/dist/tools/manager.js +104 -0
  139. package/dist/tools/manager.js.map +1 -0
  140. package/dist/tools/registry.d.ts +8 -0
  141. package/dist/tools/registry.d.ts.map +1 -0
  142. package/dist/tools/registry.js +36 -0
  143. package/dist/tools/registry.js.map +1 -0
  144. package/dist/tools/types.d.ts +41 -0
  145. package/dist/tools/types.d.ts.map +1 -0
  146. package/dist/tools/types.js +5 -0
  147. package/dist/tools/types.js.map +1 -0
  148. package/dist/types/sso.d.ts +42 -0
  149. package/dist/types/sso.d.ts.map +1 -0
  150. package/dist/types/sso.js +2 -0
  151. package/dist/types/sso.js.map +1 -0
  152. package/dist/utils/agent-compatibility.d.ts +32 -0
  153. package/dist/utils/agent-compatibility.d.ts.map +1 -0
  154. package/dist/utils/agent-compatibility.js +140 -0
  155. package/dist/utils/agent-compatibility.js.map +1 -0
  156. package/dist/utils/codemie-integration-validator.d.ts +17 -0
  157. package/dist/utils/codemie-integration-validator.d.ts.map +1 -0
  158. package/dist/utils/codemie-integration-validator.js +105 -0
  159. package/dist/utils/codemie-integration-validator.js.map +1 -0
  160. package/dist/utils/codemie-model-fetcher.d.ts +11 -0
  161. package/dist/utils/codemie-model-fetcher.d.ts.map +1 -0
  162. package/dist/utils/codemie-model-fetcher.js +242 -0
  163. package/dist/utils/codemie-model-fetcher.js.map +1 -0
  164. package/dist/utils/config-loader.d.ts +23 -1
  165. package/dist/utils/config-loader.d.ts.map +1 -1
  166. package/dist/utils/config-loader.js +73 -27
  167. package/dist/utils/config-loader.js.map +1 -1
  168. package/dist/utils/credential-store.d.ts +16 -0
  169. package/dist/utils/credential-store.d.ts.map +1 -0
  170. package/dist/utils/credential-store.js +109 -0
  171. package/dist/utils/credential-store.js.map +1 -0
  172. package/dist/utils/first-time.d.ts +1 -1
  173. package/dist/utils/first-time.d.ts.map +1 -1
  174. package/dist/utils/first-time.js +52 -71
  175. package/dist/utils/first-time.js.map +1 -1
  176. package/dist/utils/health-checker.d.ts.map +1 -1
  177. package/dist/utils/health-checker.js +5 -1
  178. package/dist/utils/health-checker.js.map +1 -1
  179. package/dist/utils/model-fetcher.d.ts.map +1 -1
  180. package/dist/utils/model-fetcher.js +15 -2
  181. package/dist/utils/model-fetcher.js.map +1 -1
  182. package/dist/utils/sso-auth.d.ts +15 -0
  183. package/dist/utils/sso-auth.d.ts.map +1 -0
  184. package/dist/utils/sso-auth.js +207 -0
  185. package/dist/utils/sso-auth.js.map +1 -0
  186. package/dist/utils/sso-gateway.d.ts +47 -0
  187. package/dist/utils/sso-gateway.d.ts.map +1 -0
  188. package/dist/utils/sso-gateway.js +298 -0
  189. package/dist/utils/sso-gateway.js.map +1 -0
  190. package/dist/workflows/detector.d.ts +37 -0
  191. package/dist/workflows/detector.d.ts.map +1 -0
  192. package/dist/workflows/detector.js +160 -0
  193. package/dist/workflows/detector.js.map +1 -0
  194. package/dist/workflows/index.d.ts +8 -0
  195. package/dist/workflows/index.d.ts.map +1 -0
  196. package/dist/workflows/index.js +8 -0
  197. package/dist/workflows/index.js.map +1 -0
  198. package/dist/workflows/installer.d.ts +24 -0
  199. package/dist/workflows/installer.d.ts.map +1 -0
  200. package/dist/workflows/installer.js +105 -0
  201. package/dist/workflows/installer.js.map +1 -0
  202. package/dist/workflows/registry.d.ts +29 -0
  203. package/dist/workflows/registry.d.ts.map +1 -0
  204. package/dist/workflows/registry.js +54 -0
  205. package/dist/workflows/registry.js.map +1 -0
  206. package/dist/workflows/templates/github/metadata.d.ts +6 -0
  207. package/dist/workflows/templates/github/metadata.d.ts.map +1 -0
  208. package/dist/workflows/templates/github/metadata.js +111 -0
  209. package/dist/workflows/templates/github/metadata.js.map +1 -0
  210. package/dist/workflows/templates/gitlab/metadata.d.ts +6 -0
  211. package/dist/workflows/templates/gitlab/metadata.d.ts.map +1 -0
  212. package/dist/workflows/templates/gitlab/metadata.js +14 -0
  213. package/dist/workflows/templates/gitlab/metadata.js.map +1 -0
  214. package/dist/workflows/types.d.ts +71 -0
  215. package/dist/workflows/types.d.ts.map +1 -0
  216. package/dist/workflows/types.js +5 -0
  217. package/dist/workflows/types.js.map +1 -0
  218. package/package.json +19 -6
  219. package/src/workflows/templates/github/code-ci.yml +529 -0
  220. package/src/workflows/templates/github/inline-fix.yml +665 -0
  221. package/src/workflows/templates/github/pr-review.yml +677 -0
  222. package/.claude/agents/README.md +0 -298
  223. package/.claude/agents/release-manager.md +0 -857
  224. package/.codemie/guides/git-workflow.md +0 -493
  225. package/CLAUDE.md +0 -225
  226. package/config.example.json +0 -10
  227. package/dist/agents/codemie-code/streaming/events.d.ts +0 -7
  228. package/dist/agents/codemie-code/streaming/events.d.ts.map +0 -1
  229. package/dist/agents/codemie-code/streaming/events.js +0 -7
  230. package/dist/agents/codemie-code/streaming/events.js.map +0 -1
  231. package/dist/agents/codemie-code/streaming/formatter.d.ts +0 -2
  232. package/dist/agents/codemie-code/streaming/formatter.d.ts.map +0 -1
  233. package/dist/agents/codemie-code/streaming/formatter.js +0 -2
  234. package/dist/agents/codemie-code/streaming/formatter.js.map +0 -1
  235. package/dist/agents/codemie-code/streaming/ui.d.ts +0 -2
  236. package/dist/agents/codemie-code/streaming/ui.d.ts.map +0 -1
  237. package/dist/agents/codemie-code/streaming/ui.js +0 -2
  238. package/dist/agents/codemie-code/streaming/ui.js.map +0 -1
  239. package/dist/agents/codemie-code/tools/command.d.ts +0 -2
  240. package/dist/agents/codemie-code/tools/command.d.ts.map +0 -1
  241. package/dist/agents/codemie-code/tools/command.js +0 -2
  242. package/dist/agents/codemie-code/tools/command.js.map +0 -1
  243. package/dist/agents/codemie-code/tools/filesystem.d.ts +0 -2
  244. package/dist/agents/codemie-code/tools/filesystem.d.ts.map +0 -1
  245. package/dist/agents/codemie-code/tools/filesystem.js +0 -2
  246. package/dist/agents/codemie-code/tools/filesystem.js.map +0 -1
  247. package/dist/agents/codemie-code/tools/git.d.ts +0 -2
  248. package/dist/agents/codemie-code/tools/git.d.ts.map +0 -1
  249. package/dist/agents/codemie-code/tools/git.js +0 -2
  250. package/dist/agents/codemie-code/tools/git.js.map +0 -1
  251. package/dist/agents/codemie-code/tools/security.d.ts +0 -2
  252. package/dist/agents/codemie-code/tools/security.d.ts.map +0 -1
  253. package/dist/agents/codemie-code/tools/security.js +0 -2
  254. package/dist/agents/codemie-code/tools/security.js.map +0 -1
  255. package/eslint.config.mjs +0 -43
  256. package/scripts/README.md +0 -80
  257. package/scripts/release.sh +0 -156
@@ -0,0 +1,104 @@
1
+ /**
2
+ * VCS tools installation and management
3
+ */
4
+ import { execSync } from 'node:child_process';
5
+ import { getToolInfo } from './registry.js';
6
+ import { isToolInstalled } from './detector.js';
7
+ /**
8
+ * Install a tool via npm
9
+ */
10
+ export async function installTool(tool, options = {}) {
11
+ const toolInfo = getToolInfo(tool);
12
+ const { global = true, force = false } = options;
13
+ // Check if already installed
14
+ if (isToolInstalled(tool) && !force) {
15
+ throw new Error(`${toolInfo.displayName} is already installed. Use --force to reinstall.`);
16
+ }
17
+ try {
18
+ const globalFlag = global ? '-g' : '';
19
+ const forceFlag = force ? '--force' : '';
20
+ console.log(`Installing ${toolInfo.displayName} via npm...`);
21
+ // Install via npm
22
+ execSync(`npm install ${globalFlag} ${forceFlag} ${toolInfo.npmPackage}`, {
23
+ stdio: 'inherit',
24
+ });
25
+ console.log(`āœ… ${toolInfo.displayName} installed successfully`);
26
+ }
27
+ catch (error) {
28
+ throw new Error(`Failed to install ${toolInfo.displayName}: ${error instanceof Error ? error.message : String(error)}`);
29
+ }
30
+ }
31
+ /**
32
+ * Uninstall a tool
33
+ */
34
+ export async function uninstallTool(tool) {
35
+ const toolInfo = getToolInfo(tool);
36
+ if (!isToolInstalled(tool)) {
37
+ throw new Error(`${toolInfo.displayName} is not installed`);
38
+ }
39
+ try {
40
+ console.log(`Uninstalling ${toolInfo.displayName}...`);
41
+ execSync(`npm uninstall -g ${toolInfo.npmPackage}`, {
42
+ stdio: 'inherit',
43
+ });
44
+ console.log(`āœ… ${toolInfo.displayName} uninstalled successfully`);
45
+ }
46
+ catch (error) {
47
+ throw new Error(`Failed to uninstall ${toolInfo.displayName}: ${error instanceof Error ? error.message : String(error)}`);
48
+ }
49
+ }
50
+ /**
51
+ * Update a tool
52
+ */
53
+ export async function updateTool(tool) {
54
+ const toolInfo = getToolInfo(tool);
55
+ if (!isToolInstalled(tool)) {
56
+ throw new Error(`${toolInfo.displayName} is not installed. Install it first with: codemie tools install ${tool}`);
57
+ }
58
+ try {
59
+ console.log(`Updating ${toolInfo.displayName}...`);
60
+ execSync(`npm update -g ${toolInfo.npmPackage}`, {
61
+ stdio: 'inherit',
62
+ });
63
+ console.log(`āœ… ${toolInfo.displayName} updated successfully`);
64
+ }
65
+ catch (error) {
66
+ throw new Error(`Failed to update ${toolInfo.displayName}: ${error instanceof Error ? error.message : String(error)}`);
67
+ }
68
+ }
69
+ /**
70
+ * Authenticate a tool
71
+ */
72
+ export async function authenticateTool(tool, token) {
73
+ const toolInfo = getToolInfo(tool);
74
+ if (!isToolInstalled(tool)) {
75
+ throw new Error(`${toolInfo.displayName} is not installed. Install it first with: codemie tools install ${tool}`);
76
+ }
77
+ try {
78
+ console.log(`Authenticating ${toolInfo.displayName}...`);
79
+ if (token) {
80
+ // Authenticate with token
81
+ if (tool === 'gh') {
82
+ execSync(`echo ${token} | gh auth login --with-token`, {
83
+ stdio: 'inherit',
84
+ });
85
+ }
86
+ else if (tool === 'glab') {
87
+ execSync(`glab auth login --token ${token}`, {
88
+ stdio: 'inherit',
89
+ });
90
+ }
91
+ }
92
+ else {
93
+ // Interactive authentication
94
+ execSync(toolInfo.authCommand, {
95
+ stdio: 'inherit',
96
+ });
97
+ }
98
+ console.log(`āœ… ${toolInfo.displayName} authenticated successfully`);
99
+ }
100
+ catch (error) {
101
+ throw new Error(`Failed to authenticate ${toolInfo.displayName}: ${error instanceof Error ? error.message : String(error)}`);
102
+ }
103
+ }
104
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/tools/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * VCS tools registry
3
+ */
4
+ import type { ToolInfo, VCSTool } from './types.js';
5
+ export declare const TOOLS: Record<VCSTool, ToolInfo>;
6
+ export declare function getToolInfo(tool: VCSTool): ToolInfo;
7
+ export declare function getAllTools(): ToolInfo[];
8
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAyB3C,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAEnD;AAED,wBAAgB,WAAW,IAAI,QAAQ,EAAE,CAExC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * VCS tools registry
3
+ */
4
+ export const TOOLS = {
5
+ gh: {
6
+ name: 'gh',
7
+ displayName: 'GitHub CLI',
8
+ packageName: 'gh',
9
+ description: 'GitHub official command-line tool',
10
+ npmPackage: '@github/gh',
11
+ checkCommand: 'gh --version',
12
+ versionCommand: 'gh --version',
13
+ authCheckCommand: 'gh auth status',
14
+ authCommand: 'gh auth login',
15
+ docsUrl: 'https://cli.github.com/',
16
+ },
17
+ glab: {
18
+ name: 'glab',
19
+ displayName: 'GitLab CLI',
20
+ packageName: 'glab',
21
+ description: 'GitLab official command-line tool',
22
+ npmPackage: 'glab-cli',
23
+ checkCommand: 'glab --version',
24
+ versionCommand: 'glab --version',
25
+ authCheckCommand: 'glab auth status',
26
+ authCommand: 'glab auth login',
27
+ docsUrl: 'https://gitlab.com/gitlab-org/cli',
28
+ },
29
+ };
30
+ export function getToolInfo(tool) {
31
+ return TOOLS[tool];
32
+ }
33
+ export function getAllTools() {
34
+ return Object.values(TOOLS);
35
+ }
36
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,KAAK,GAA8B;IAC9C,EAAE,EAAE;QACF,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,mCAAmC;QAChD,UAAU,EAAE,YAAY;QACxB,YAAY,EAAE,cAAc;QAC5B,cAAc,EAAE,cAAc;QAC9B,gBAAgB,EAAE,gBAAgB;QAClC,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,yBAAyB;KACnC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,mCAAmC;QAChD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,gBAAgB;QAC9B,cAAc,EAAE,gBAAgB;QAChC,gBAAgB,EAAE,kBAAkB;QACpC,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,mCAAmC;KAC7C;CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * VCS Tools management types
3
+ */
4
+ export type VCSTool = 'gh' | 'glab';
5
+ export interface ToolInfo {
6
+ name: VCSTool;
7
+ displayName: string;
8
+ packageName: string;
9
+ description: string;
10
+ npmPackage: string;
11
+ checkCommand: string;
12
+ versionCommand: string;
13
+ authCheckCommand: string;
14
+ authCommand: string;
15
+ docsUrl: string;
16
+ }
17
+ export interface ToolStatus {
18
+ tool: VCSTool;
19
+ installed: boolean;
20
+ version: string | null;
21
+ authenticated: boolean;
22
+ authUser: string | null;
23
+ installationMethod: 'npm' | 'system' | null;
24
+ }
25
+ export interface ToolInstallOptions {
26
+ global?: boolean;
27
+ force?: boolean;
28
+ }
29
+ export interface ToolAuthOptions {
30
+ token?: string;
31
+ interactive?: boolean;
32
+ }
33
+ export interface ToolsCheckResult {
34
+ git: {
35
+ installed: boolean;
36
+ version: string | null;
37
+ };
38
+ gh: ToolStatus;
39
+ glab: ToolStatus;
40
+ }
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE;QACH,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CAClB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * VCS Tools management types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,42 @@
1
+ export interface SSOAuthConfig {
2
+ codeMieUrl: string;
3
+ timeout?: number;
4
+ }
5
+ export interface SSOAuthResult {
6
+ success: boolean;
7
+ apiUrl?: string;
8
+ cookies?: Record<string, string>;
9
+ error?: string;
10
+ }
11
+ export interface CodeMieModel {
12
+ id?: string;
13
+ base_name?: string;
14
+ deployment_name?: string;
15
+ label?: string;
16
+ name?: string;
17
+ description?: string;
18
+ context_length?: number;
19
+ provider?: string;
20
+ multimodal?: boolean;
21
+ react_agent?: boolean;
22
+ enabled?: boolean;
23
+ default?: boolean;
24
+ }
25
+ export interface SSOCredentials {
26
+ cookies: Record<string, string>;
27
+ apiUrl: string;
28
+ expiresAt?: number;
29
+ }
30
+ export interface CodeMieIntegration {
31
+ id: string;
32
+ alias: string;
33
+ project_name: string;
34
+ credential_type: string;
35
+ created_at?: string;
36
+ updated_at?: string;
37
+ }
38
+ export interface CodeMieIntegrationsResponse {
39
+ integrations?: CodeMieIntegration[];
40
+ [key: string]: any;
41
+ }
42
+ //# sourceMappingURL=sso.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.d.ts","sourceRoot":"","sources":["../../src/types/sso.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAEpC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sso.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.js","sourceRoot":"","sources":["../../src/types/sso.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { CodeMieConfigOptions } from './config-loader.js';
2
+ /**
3
+ * Validation result with helpful error information
4
+ */
5
+ export interface CompatibilityResult {
6
+ valid: boolean;
7
+ error?: string;
8
+ suggestions?: string[];
9
+ }
10
+ /**
11
+ * Validate if an agent supports the configured provider
12
+ */
13
+ export declare function validateProviderCompatibility(agentName: string, config: CodeMieConfigOptions): CompatibilityResult;
14
+ /**
15
+ * Validate if an agent supports the configured model
16
+ */
17
+ export declare function validateModelCompatibility(agentName: string, config: CodeMieConfigOptions): CompatibilityResult;
18
+ /**
19
+ * Display compatibility error with suggestions
20
+ */
21
+ export declare function displayCompatibilityError(result: CompatibilityResult, logger: {
22
+ error: (msg: string) => void;
23
+ }): void;
24
+ /**
25
+ * Get supported providers for an agent
26
+ */
27
+ export declare function getSupportedProviders(agentName: string): string[];
28
+ /**
29
+ * Check if agent supports a specific provider
30
+ */
31
+ export declare function supportsProvider(agentName: string, provider: string): boolean;
32
+ //# sourceMappingURL=agent-compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-compatibility.d.ts","sourceRoot":"","sources":["../../src/utils/agent-compatibility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAiC1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAuCrB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAkCrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACvC,IAAI,CAiCN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAGjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK7E"}
@@ -0,0 +1,140 @@
1
+ import chalk from 'chalk';
2
+ /**
3
+ * Centralized agent compatibility rules
4
+ * Add new agents or update provider support here
5
+ */
6
+ const AGENT_COMPATIBILITY = {
7
+ 'claude': {
8
+ supportedProviders: ['bedrock', 'openai', 'azure', 'litellm', 'ai-run-sso'],
9
+ blockedModelPatterns: [] // Claude accepts both Claude and GPT models
10
+ },
11
+ 'codex': {
12
+ supportedProviders: ['openai', 'azure', 'litellm'],
13
+ blockedModelPatterns: [
14
+ /^claude/i, // Block any Claude models
15
+ /bedrock.*claude/i // Block Bedrock Claude models
16
+ ]
17
+ },
18
+ 'codemie-code': {
19
+ supportedProviders: ['bedrock', 'openai', 'azure', 'litellm', 'ai-run-sso'],
20
+ blockedModelPatterns: [] // Supports all models via LangChain
21
+ }
22
+ };
23
+ /**
24
+ * Validate if an agent supports the configured provider
25
+ */
26
+ export function validateProviderCompatibility(agentName, config) {
27
+ const compatibility = AGENT_COMPATIBILITY[agentName];
28
+ // If no rules defined, block by default for security
29
+ if (!compatibility) {
30
+ return {
31
+ valid: false,
32
+ error: `Unknown agent '${agentName}'`,
33
+ suggestions: ['Check agent name and try again']
34
+ };
35
+ }
36
+ const provider = config.provider || 'unknown';
37
+ // Check if provider is in supported list
38
+ if (!compatibility.supportedProviders.includes(provider)) {
39
+ const suggestions = [
40
+ `Supported providers: ${compatibility.supportedProviders.join(', ')}`,
41
+ 'Run setup to choose a different provider: codemie setup'
42
+ ];
43
+ // Add direct environment variable configuration hint for Anthropic agents
44
+ if (agentName === 'claude') {
45
+ suggestions.push('Or configure environment variables directly:', ' export ANTHROPIC_BASE_URL="https://litellm....."', ' export ANTHROPIC_AUTH_TOKEN="sk...."', ' export ANTHROPIC_MODEL="claude-4-5-sonnet"');
46
+ }
47
+ return {
48
+ valid: false,
49
+ error: `Provider '${provider}' is not supported by ${agentName}`,
50
+ suggestions
51
+ };
52
+ }
53
+ return { valid: true };
54
+ }
55
+ /**
56
+ * Validate if an agent supports the configured model
57
+ */
58
+ export function validateModelCompatibility(agentName, config) {
59
+ const compatibility = AGENT_COMPATIBILITY[agentName];
60
+ // If no rules defined, block by default for security
61
+ if (!compatibility) {
62
+ return {
63
+ valid: false,
64
+ error: `Unknown agent '${agentName}'`,
65
+ suggestions: ['Check agent name and try again']
66
+ };
67
+ }
68
+ const model = config.model || 'unknown';
69
+ // Check if model matches any blocked pattern
70
+ if (compatibility.blockedModelPatterns) {
71
+ const isBlocked = compatibility.blockedModelPatterns.some(pattern => pattern.test(model));
72
+ if (isBlocked) {
73
+ return {
74
+ valid: false,
75
+ error: `Model '${model}' is not compatible with ${agentName}`,
76
+ suggestions: [
77
+ `${agentName} requires OpenAI-compatible models (e.g., gpt-5, gpt-4o)`,
78
+ `Switch model: codemie config set model gpt-4o`,
79
+ `Override for this session: codemie-${agentName} --model gpt-4o`
80
+ ]
81
+ };
82
+ }
83
+ }
84
+ return { valid: true };
85
+ }
86
+ /**
87
+ * Display compatibility error with suggestions
88
+ */
89
+ export function displayCompatibilityError(result, logger) {
90
+ if (result.error) {
91
+ logger.error(result.error);
92
+ }
93
+ if (result.suggestions && result.suggestions.length > 0) {
94
+ if (result.suggestions[0].toLowerCase().startsWith('supported')) {
95
+ console.log(chalk.dim(`\n${result.suggestions[0]}`));
96
+ // Display remaining suggestions as numbered options
97
+ if (result.suggestions.length > 1) {
98
+ console.log(chalk.dim('\nOptions:'));
99
+ result.suggestions.slice(1).forEach((suggestion, index) => {
100
+ // Don't number lines that start with whitespace (continuation lines)
101
+ if (suggestion.startsWith(' ')) {
102
+ console.log(chalk.dim(suggestion));
103
+ }
104
+ else {
105
+ console.log(chalk.dim(` ${index + 1}. ${suggestion}`));
106
+ }
107
+ });
108
+ }
109
+ }
110
+ else {
111
+ console.log(chalk.dim('\nOptions:'));
112
+ result.suggestions.forEach((suggestion, index) => {
113
+ // Don't number lines that start with whitespace (continuation lines)
114
+ if (suggestion.startsWith(' ')) {
115
+ console.log(chalk.dim(suggestion));
116
+ }
117
+ else {
118
+ console.log(chalk.dim(` ${index + 1}. ${suggestion}`));
119
+ }
120
+ });
121
+ }
122
+ }
123
+ }
124
+ /**
125
+ * Get supported providers for an agent
126
+ */
127
+ export function getSupportedProviders(agentName) {
128
+ const compatibility = AGENT_COMPATIBILITY[agentName];
129
+ return compatibility?.supportedProviders || [];
130
+ }
131
+ /**
132
+ * Check if agent supports a specific provider
133
+ */
134
+ export function supportsProvider(agentName, provider) {
135
+ const compatibility = AGENT_COMPATIBILITY[agentName];
136
+ if (!compatibility)
137
+ return false; // Default to false for security
138
+ return compatibility.supportedProviders.includes(provider);
139
+ }
140
+ //# sourceMappingURL=agent-compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-compatibility.js","sourceRoot":"","sources":["../../src/utils/agent-compatibility.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { SSOAuthResult } from '../types/sso.js';
2
+ /**
3
+ * Validates that the user has required CodeMie integrations and prompts for selection
4
+ */
5
+ export declare function validateCodeMieIntegrations(authResult: SSOAuthResult, spinner?: any): Promise<{
6
+ id: string;
7
+ alias: string;
8
+ }>;
9
+ /**
10
+ * Validates that a specific integration alias exists and is of type LiteLLM
11
+ */
12
+ export declare function validateIntegrationAlias(apiUrl: string, cookies: Record<string, string>, integrationAlias: string): Promise<boolean>;
13
+ /**
14
+ * Gets all available integration types for debugging/informational purposes
15
+ */
16
+ export declare function getAvailableIntegrationTypes(apiUrl: string, cookies: Record<string, string>): Promise<string[]>;
17
+ //# sourceMappingURL=codemie-integration-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemie-integration-validator.d.ts","sourceRoot":"","sources":["../../src/utils/codemie-integration-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGpE;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,aAAa,EACzB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBxC;AAuED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB"}
@@ -0,0 +1,105 @@
1
+ import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
3
+ import { fetchCodeMieIntegrations, CODEMIE_ENDPOINTS } from './codemie-model-fetcher.js';
4
+ /**
5
+ * Validates that the user has required CodeMie integrations and prompts for selection
6
+ */
7
+ export async function validateCodeMieIntegrations(authResult, spinner) {
8
+ const integrations = await fetchCodeMieIntegrations(authResult.apiUrl, authResult.cookies, CODEMIE_ENDPOINTS.USER_SETTINGS);
9
+ // Integrations are already filtered by API for LiteLLM type
10
+ if (integrations.length === 0) {
11
+ console.log(chalk.red('\nāŒ No CodeMie LiteLLM integration found\n'));
12
+ console.log(chalk.yellow('šŸ“‹ Required Setup Steps:'));
13
+ console.log(chalk.white(' 1. Contact your support team to request a LiteLLM key'));
14
+ console.log(chalk.white(' 2. In CodeMie, go to Integrations → User Integrations'));
15
+ console.log(chalk.white(' 3. Add the key as a new integration with type "LiteLLM"'));
16
+ console.log(chalk.white(' 4. Re-run: codemie setup\n'));
17
+ throw new Error('CodeMie LiteLLM integration setup required');
18
+ }
19
+ // Return selected integration ID and alias
20
+ return await promptForIntegrationSelection(integrations, spinner);
21
+ }
22
+ /**
23
+ * Prompts user to select from available LiteLLM integrations
24
+ */
25
+ async function promptForIntegrationSelection(integrations, spinner) {
26
+ if (integrations.length === 1) {
27
+ // Auto-select single integration with confirmation
28
+ const integration = integrations[0];
29
+ const displayName = integration.project_name
30
+ ? `${integration.alias} (${integration.project_name})`
31
+ : integration.alias;
32
+ // Stop spinner before showing prompt
33
+ if (spinner) {
34
+ spinner.stop();
35
+ }
36
+ const { confirm } = await inquirer.prompt([{
37
+ type: 'confirm',
38
+ name: 'confirm',
39
+ message: `Use CodeMie LiteLLM integration "${displayName}"?`,
40
+ default: true
41
+ }]);
42
+ if (!confirm) {
43
+ throw new Error('Setup cancelled by user');
44
+ }
45
+ console.log(chalk.green(`āœ“ Selected integration: ${displayName}`));
46
+ return { id: integration.id, alias: integration.alias };
47
+ }
48
+ // Multiple integrations - show selection list
49
+ // Stop spinner before showing prompt
50
+ if (spinner) {
51
+ spinner.stop();
52
+ }
53
+ const choices = integrations.map(integration => {
54
+ // Show both alias and project_name
55
+ const displayName = integration.project_name && integration.project_name.trim() !== ''
56
+ ? `${integration.alias} (${integration.project_name})`
57
+ : integration.alias;
58
+ return {
59
+ name: displayName,
60
+ value: integration.id
61
+ };
62
+ });
63
+ const { selectedId } = await inquirer.prompt([{
64
+ type: 'list',
65
+ name: 'selectedId',
66
+ message: `Choose a CodeMie LiteLLM integration (${integrations.length} available):`,
67
+ choices,
68
+ pageSize: 15
69
+ }]);
70
+ const selectedIntegration = integrations.find(i => i.id === selectedId);
71
+ const displayName = selectedIntegration?.project_name
72
+ ? `${selectedIntegration.alias} (${selectedIntegration.project_name})`
73
+ : selectedIntegration?.alias || selectedId;
74
+ console.log(chalk.green(`āœ“ Selected integration: ${displayName}`));
75
+ return { id: selectedId, alias: selectedIntegration?.alias || '' };
76
+ }
77
+ /**
78
+ * Validates that a specific integration alias exists and is of type LiteLLM
79
+ */
80
+ export async function validateIntegrationAlias(apiUrl, cookies, integrationAlias) {
81
+ try {
82
+ const integrations = await fetchCodeMieIntegrations(apiUrl, cookies);
83
+ const integration = integrations.find(i => i.alias === integrationAlias && i.credential_type === 'LiteLLM');
84
+ return !!integration;
85
+ }
86
+ catch (error) {
87
+ console.error('Error validating integration alias:', error);
88
+ return false;
89
+ }
90
+ }
91
+ /**
92
+ * Gets all available integration types for debugging/informational purposes
93
+ */
94
+ export async function getAvailableIntegrationTypes(apiUrl, cookies) {
95
+ try {
96
+ const integrations = await fetchCodeMieIntegrations(apiUrl, cookies);
97
+ const types = [...new Set(integrations.map(i => i.credential_type))];
98
+ return types.sort();
99
+ }
100
+ catch (error) {
101
+ console.error('Error fetching integration types:', error);
102
+ return [];
103
+ }
104
+ }
105
+ //# sourceMappingURL=codemie-integration-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemie-integration-validator.js","sourceRoot":"","sources":["../../src/utils/codemie-integration-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { CodeMieIntegration } from '../types/sso.js';
2
+ export declare const CODEMIE_ENDPOINTS: {
3
+ readonly MODELS: "/v1/llm_models";
4
+ readonly USER_SETTINGS: "/v1/settings/user";
5
+ };
6
+ export declare function fetchCodeMieModels(apiUrl: string, cookies: Record<string, string>): Promise<string[]>;
7
+ export declare function fetchCodeMieModelsFromConfig(): Promise<string[]>;
8
+ export declare function fetchCodeMieIntegrations(apiUrl: string, cookies: Record<string, string>, endpointPath?: string): Promise<CodeMieIntegration[]>;
9
+ export declare function fetchCodeMieIntegrationsFromConfig(): Promise<CodeMieIntegration[]>;
10
+ export declare function validateCodeMieConnectivity(): Promise<void>;
11
+ //# sourceMappingURL=codemie-model-fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemie-model-fetcher.d.ts","sourceRoot":"","sources":["../../src/utils/codemie-model-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,kBAAkB,EAA+B,MAAM,iBAAiB,CAAC;AAMhG,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC,CA4FnB;AAED,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAStE;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,YAAY,GAAE,MAAwC,GACrD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyC/B;AA4GD,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CASxF;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAKjE"}