@codemieai/code 0.0.2 → 0.0.3

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 (243) hide show
  1. package/CLAUDE.md +130 -760
  2. package/README.md +283 -695
  3. package/bin/codemie-claude.js +122 -0
  4. package/bin/codemie-code.js +90 -15
  5. package/bin/codemie-codex.js +138 -0
  6. package/bin/codemie.js +1 -1
  7. package/config.example.json +10 -0
  8. package/dist/agents/adapters/claude-code.d.ts +2 -2
  9. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  10. package/dist/agents/adapters/claude-code.js +20 -42
  11. package/dist/agents/adapters/claude-code.js.map +1 -1
  12. package/dist/agents/adapters/codemie-code.d.ts +11 -2
  13. package/dist/agents/adapters/codemie-code.d.ts.map +1 -1
  14. package/dist/agents/adapters/codemie-code.js +93 -25
  15. package/dist/agents/adapters/codemie-code.js.map +1 -1
  16. package/dist/agents/adapters/codex.d.ts +2 -2
  17. package/dist/agents/adapters/codex.d.ts.map +1 -1
  18. package/dist/agents/adapters/codex.js +31 -24
  19. package/dist/agents/adapters/codex.js.map +1 -1
  20. package/dist/agents/codemie-code/agent.d.ts +89 -0
  21. package/dist/agents/codemie-code/agent.d.ts.map +1 -0
  22. package/dist/agents/codemie-code/agent.js +523 -0
  23. package/dist/agents/codemie-code/agent.js.map +1 -0
  24. package/dist/agents/codemie-code/config.d.ts +40 -0
  25. package/dist/agents/codemie-code/config.d.ts.map +1 -0
  26. package/dist/agents/codemie-code/config.js +276 -0
  27. package/dist/agents/codemie-code/config.js.map +1 -0
  28. package/dist/agents/codemie-code/filters.d.ts +91 -0
  29. package/dist/agents/codemie-code/filters.d.ts.map +1 -0
  30. package/dist/agents/codemie-code/filters.js +328 -0
  31. package/dist/agents/codemie-code/filters.js.map +1 -0
  32. package/dist/agents/codemie-code/index.d.ts +78 -0
  33. package/dist/agents/codemie-code/index.d.ts.map +1 -0
  34. package/dist/agents/codemie-code/index.js +259 -0
  35. package/dist/agents/codemie-code/index.js.map +1 -0
  36. package/dist/agents/codemie-code/prompts.d.ts +11 -0
  37. package/dist/agents/codemie-code/prompts.d.ts.map +1 -0
  38. package/dist/agents/codemie-code/prompts.js +31 -0
  39. package/dist/agents/codemie-code/prompts.js.map +1 -0
  40. package/dist/agents/codemie-code/streaming/events.d.ts +7 -0
  41. package/dist/agents/codemie-code/streaming/events.d.ts.map +1 -0
  42. package/dist/agents/codemie-code/streaming/events.js +7 -0
  43. package/dist/agents/codemie-code/streaming/events.js.map +1 -0
  44. package/dist/agents/codemie-code/streaming/formatter.d.ts +2 -0
  45. package/dist/agents/codemie-code/streaming/formatter.d.ts.map +1 -0
  46. package/dist/agents/codemie-code/streaming/formatter.js +2 -0
  47. package/dist/agents/codemie-code/streaming/formatter.js.map +1 -0
  48. package/dist/agents/codemie-code/streaming/ui.d.ts +2 -0
  49. package/dist/agents/codemie-code/streaming/ui.d.ts.map +1 -0
  50. package/dist/agents/codemie-code/streaming/ui.js +2 -0
  51. package/dist/agents/codemie-code/streaming/ui.js.map +1 -0
  52. package/dist/agents/codemie-code/tokenUtils.d.ts +108 -0
  53. package/dist/agents/codemie-code/tokenUtils.d.ts.map +1 -0
  54. package/dist/agents/codemie-code/tokenUtils.js +220 -0
  55. package/dist/agents/codemie-code/tokenUtils.js.map +1 -0
  56. package/dist/agents/codemie-code/toolMetadata.d.ts +15 -0
  57. package/dist/agents/codemie-code/toolMetadata.d.ts.map +1 -0
  58. package/dist/agents/codemie-code/toolMetadata.js +315 -0
  59. package/dist/agents/codemie-code/toolMetadata.js.map +1 -0
  60. package/dist/agents/codemie-code/tools/command.d.ts +2 -0
  61. package/dist/agents/codemie-code/tools/command.d.ts.map +1 -0
  62. package/dist/agents/codemie-code/tools/command.js +2 -0
  63. package/dist/agents/codemie-code/tools/command.js.map +1 -0
  64. package/dist/agents/codemie-code/tools/filesystem.d.ts +2 -0
  65. package/dist/agents/codemie-code/tools/filesystem.d.ts.map +1 -0
  66. package/dist/agents/codemie-code/tools/filesystem.js +2 -0
  67. package/dist/agents/codemie-code/tools/filesystem.js.map +1 -0
  68. package/dist/agents/codemie-code/tools/git.d.ts +2 -0
  69. package/dist/agents/codemie-code/tools/git.d.ts.map +1 -0
  70. package/dist/agents/codemie-code/tools/git.js +2 -0
  71. package/dist/agents/codemie-code/tools/git.js.map +1 -0
  72. package/dist/agents/codemie-code/tools/index.d.ts +19 -0
  73. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -0
  74. package/dist/agents/codemie-code/tools/index.js +239 -0
  75. package/dist/agents/codemie-code/tools/index.js.map +1 -0
  76. package/dist/agents/codemie-code/tools/security.d.ts +2 -0
  77. package/dist/agents/codemie-code/tools/security.d.ts.map +1 -0
  78. package/dist/agents/codemie-code/tools/security.js +2 -0
  79. package/dist/agents/codemie-code/tools/security.js.map +1 -0
  80. package/dist/agents/codemie-code/types.d.ts +254 -0
  81. package/dist/agents/codemie-code/types.d.ts.map +1 -0
  82. package/dist/agents/codemie-code/types.js +35 -0
  83. package/dist/agents/codemie-code/types.js.map +1 -0
  84. package/dist/agents/codemie-code/ui.d.ts +83 -0
  85. package/dist/agents/codemie-code/ui.d.ts.map +1 -0
  86. package/dist/agents/codemie-code/ui.js +624 -0
  87. package/dist/agents/codemie-code/ui.js.map +1 -0
  88. package/dist/agents/registry.d.ts +1 -1
  89. package/dist/agents/registry.d.ts.map +1 -1
  90. package/dist/agents/registry.js +7 -13
  91. package/dist/agents/registry.js.map +1 -1
  92. package/dist/cli/commands/config.d.ts +3 -0
  93. package/dist/cli/commands/config.d.ts.map +1 -0
  94. package/dist/cli/commands/config.js +323 -0
  95. package/dist/cli/commands/config.js.map +1 -0
  96. package/dist/cli/commands/doctor.d.ts.map +1 -1
  97. package/dist/cli/commands/doctor.js +113 -69
  98. package/dist/cli/commands/doctor.js.map +1 -1
  99. package/dist/cli/commands/env.d.ts +3 -0
  100. package/dist/cli/commands/env.d.ts.map +1 -0
  101. package/dist/cli/commands/env.js +19 -0
  102. package/dist/cli/commands/env.js.map +1 -0
  103. package/dist/cli/commands/install.js +27 -33
  104. package/dist/cli/commands/install.js.map +1 -1
  105. package/dist/cli/commands/list.js +18 -24
  106. package/dist/cli/commands/list.js.map +1 -1
  107. package/dist/cli/commands/run.d.ts.map +1 -1
  108. package/dist/cli/commands/run.js +291 -31
  109. package/dist/cli/commands/run.js.map +1 -1
  110. package/dist/cli/commands/setup.d.ts +3 -0
  111. package/dist/cli/commands/setup.d.ts.map +1 -0
  112. package/dist/cli/commands/setup.js +357 -0
  113. package/dist/cli/commands/setup.js.map +1 -0
  114. package/dist/cli/commands/uninstall.js +24 -30
  115. package/dist/cli/commands/uninstall.js.map +1 -1
  116. package/dist/cli/commands/version.d.ts.map +1 -1
  117. package/dist/cli/commands/version.js +11 -16
  118. package/dist/cli/commands/version.js.map +1 -1
  119. package/dist/cli/index.js +47 -31
  120. package/dist/cli/index.js.map +1 -1
  121. package/dist/env/manager.js +9 -46
  122. package/dist/env/manager.js.map +1 -1
  123. package/dist/index.d.ts +6 -13
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +6 -43
  126. package/dist/index.js.map +1 -1
  127. package/dist/utils/async-tips.d.ts.map +1 -1
  128. package/dist/utils/async-tips.js +16 -55
  129. package/dist/utils/async-tips.js.map +1 -1
  130. package/dist/utils/clipboard.d.ts +16 -0
  131. package/dist/utils/clipboard.d.ts.map +1 -0
  132. package/dist/utils/clipboard.js +179 -0
  133. package/dist/utils/clipboard.js.map +1 -0
  134. package/dist/utils/config-loader.d.ts +96 -0
  135. package/dist/utils/config-loader.d.ts.map +1 -0
  136. package/dist/utils/config-loader.js +351 -0
  137. package/dist/utils/config-loader.js.map +1 -0
  138. package/dist/utils/dirname.d.ts +7 -0
  139. package/dist/utils/dirname.d.ts.map +1 -0
  140. package/dist/utils/dirname.js +11 -0
  141. package/dist/utils/dirname.js.map +1 -0
  142. package/dist/utils/errors.js +7 -17
  143. package/dist/utils/errors.js.map +1 -1
  144. package/dist/utils/exec.js +3 -6
  145. package/dist/utils/exec.js.map +1 -1
  146. package/dist/utils/first-time.d.ts +34 -0
  147. package/dist/utils/first-time.d.ts.map +1 -0
  148. package/dist/utils/first-time.js +245 -0
  149. package/dist/utils/first-time.js.map +1 -0
  150. package/dist/utils/health-checker.d.ts +20 -0
  151. package/dist/utils/health-checker.d.ts.map +1 -0
  152. package/dist/utils/health-checker.js +168 -0
  153. package/dist/utils/health-checker.js.map +1 -0
  154. package/dist/utils/logger.js +12 -18
  155. package/dist/utils/logger.js.map +1 -1
  156. package/dist/utils/model-fetcher.d.ts +21 -0
  157. package/dist/utils/model-fetcher.d.ts.map +1 -0
  158. package/dist/utils/model-fetcher.js +137 -0
  159. package/dist/utils/model-fetcher.js.map +1 -0
  160. package/dist/utils/tips.d.ts.map +1 -1
  161. package/dist/utils/tips.js +13 -52
  162. package/dist/utils/tips.js.map +1 -1
  163. package/package.json +17 -23
  164. package/scripts/README.md +80 -0
  165. package/scripts/release.sh +156 -0
  166. package/dist/agents/adapters/aider.d.ts +0 -12
  167. package/dist/agents/adapters/aider.d.ts.map +0 -1
  168. package/dist/agents/adapters/aider.js +0 -80
  169. package/dist/agents/adapters/aider.js.map +0 -1
  170. package/dist/cli/cli.d.ts +0 -4
  171. package/dist/cli/cli.d.ts.map +0 -1
  172. package/dist/cli/cli.js +0 -107
  173. package/dist/cli/cli.js.map +0 -1
  174. package/dist/cli/commands/mcp.d.ts +0 -3
  175. package/dist/cli/commands/mcp.d.ts.map +0 -1
  176. package/dist/cli/commands/mcp.js +0 -459
  177. package/dist/cli/commands/mcp.js.map +0 -1
  178. package/dist/code/agent-events.d.ts +0 -39
  179. package/dist/code/agent-events.d.ts.map +0 -1
  180. package/dist/code/agent-events.js +0 -4
  181. package/dist/code/agent-events.js.map +0 -1
  182. package/dist/code/agent.d.ts +0 -19
  183. package/dist/code/agent.d.ts.map +0 -1
  184. package/dist/code/agent.js +0 -144
  185. package/dist/code/agent.js.map +0 -1
  186. package/dist/code/config.d.ts +0 -13
  187. package/dist/code/config.d.ts.map +0 -1
  188. package/dist/code/config.js +0 -41
  189. package/dist/code/config.js.map +0 -1
  190. package/dist/code/index.d.ts +0 -19
  191. package/dist/code/index.d.ts.map +0 -1
  192. package/dist/code/index.js +0 -400
  193. package/dist/code/index.js.map +0 -1
  194. package/dist/code/prompts.d.ts +0 -2
  195. package/dist/code/prompts.d.ts.map +0 -1
  196. package/dist/code/prompts.js +0 -45
  197. package/dist/code/prompts.js.map +0 -1
  198. package/dist/code/tools/command.d.ts +0 -8
  199. package/dist/code/tools/command.d.ts.map +0 -1
  200. package/dist/code/tools/command.js +0 -83
  201. package/dist/code/tools/command.js.map +0 -1
  202. package/dist/code/tools/diff-utils.d.ts +0 -2
  203. package/dist/code/tools/diff-utils.d.ts.map +0 -1
  204. package/dist/code/tools/diff-utils.js +0 -45
  205. package/dist/code/tools/diff-utils.js.map +0 -1
  206. package/dist/code/tools/filesystem.d.ts +0 -11
  207. package/dist/code/tools/filesystem.d.ts.map +0 -1
  208. package/dist/code/tools/filesystem.js +0 -442
  209. package/dist/code/tools/filesystem.js.map +0 -1
  210. package/dist/code/tools/git.d.ts +0 -7
  211. package/dist/code/tools/git.d.ts.map +0 -1
  212. package/dist/code/tools/git.js +0 -111
  213. package/dist/code/tools/git.js.map +0 -1
  214. package/dist/code/tools/mcp.d.ts +0 -13
  215. package/dist/code/tools/mcp.d.ts.map +0 -1
  216. package/dist/code/tools/mcp.js +0 -230
  217. package/dist/code/tools/mcp.js.map +0 -1
  218. package/dist/data/tips.json +0 -118
  219. package/dist/ui/terminal-ui.d.ts +0 -73
  220. package/dist/ui/terminal-ui.d.ts.map +0 -1
  221. package/dist/ui/terminal-ui.js +0 -900
  222. package/dist/ui/terminal-ui.js.map +0 -1
  223. package/dist/utils/env-mapper.d.ts +0 -40
  224. package/dist/utils/env-mapper.d.ts.map +0 -1
  225. package/dist/utils/env-mapper.js +0 -122
  226. package/dist/utils/env-mapper.js.map +0 -1
  227. package/docs/USER_GUIDE.md +0 -573
  228. package/tests/agent-direct.test.mjs +0 -45
  229. package/tests/agent-output.test.mjs +0 -64
  230. package/tests/codemie-code.test.mjs +0 -42
  231. package/tests/context7-only.test.mjs +0 -42
  232. package/tests/conversation-flow.test.mjs +0 -63
  233. package/tests/interactive-simulation.test.mjs +0 -60
  234. package/tests/live-output.test.mjs +0 -53
  235. package/tests/mcp-context7.test.mjs +0 -105
  236. package/tests/mcp-e2e.test.mjs +0 -109
  237. package/tests/mcp-time-server.test.mjs +0 -58
  238. package/tests/streaming.test.mjs +0 -57
  239. package/tests/test-helpers.mjs +0 -94
  240. package/tests/text-wrapping.test.mjs +0 -33
  241. package/tests/tool-count.test.mjs +0 -81
  242. package/tests/ui-format.test.mjs +0 -39
  243. package/tests/ui-state.test.mjs +0 -72
@@ -0,0 +1,122 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * CodeMie Claude Direct Agent
5
+ * Direct executable for the claude agent (bypasses registry)
6
+ */
7
+
8
+ import { ClaudeCodeAdapter } from '../dist/agents/adapters/claude-code.js';
9
+ import { ConfigLoader } from '../dist/utils/config-loader.js';
10
+ import { logger } from '../dist/utils/logger.js';
11
+ import { Command } from 'commander';
12
+ import { readFileSync } from 'fs';
13
+ import { join } from 'path';
14
+ import { getDirname } from '../dist/utils/dirname.js';
15
+
16
+ const program = new Command();
17
+
18
+ // Read version from package.json
19
+ let version = '1.0.0';
20
+ try {
21
+ const packageJsonPath = join(getDirname(import.meta.url), '../package.json');
22
+ const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');
23
+ const packageJson = JSON.parse(packageJsonContent);
24
+ version = packageJson.version;
25
+ } catch {
26
+ // Use default version if unable to read
27
+ }
28
+
29
+ program
30
+ .name('codemie-claude')
31
+ .description('CodeMie Claude - Direct access to Claude Code agent')
32
+ .version(version)
33
+ .option('-m, --model <model>', 'Override model')
34
+ .option('-p, --provider <provider>', 'Override provider')
35
+ .option('--api-key <key>', 'Override API key')
36
+ .option('--base-url <url>', 'Override base URL')
37
+ .option('--timeout <seconds>', 'Override timeout (in seconds)', parseInt)
38
+ .allowUnknownOption() // Allow passing unknown options to Claude
39
+ .passThroughOptions() // Pass through options to Claude
40
+ .argument('[args...]', 'Arguments to pass to Claude Code')
41
+ .action(async (args, options) => {
42
+ try {
43
+ const adapter = new ClaudeCodeAdapter();
44
+
45
+ // Check if Claude Code is installed
46
+ if (!(await adapter.isInstalled())) {
47
+ logger.error('Claude Code is not installed. Install it first with: codemie install claude');
48
+ process.exit(1);
49
+ }
50
+
51
+ // Load configuration with CLI overrides
52
+ const config = await ConfigLoader.load(process.cwd(), {
53
+ model: options.model,
54
+ provider: options.provider,
55
+ apiKey: options.apiKey,
56
+ baseUrl: options.baseUrl,
57
+ timeout: options.timeout
58
+ });
59
+
60
+ // Validate essential configuration
61
+ if (!config.baseUrl || !config.apiKey || !config.model) {
62
+ logger.error('Configuration incomplete. Run: codemie setup');
63
+ process.exit(1);
64
+ }
65
+
66
+ // Export provider-specific environment variables
67
+ const providerEnv = ConfigLoader.exportProviderEnvVars(config);
68
+
69
+ // Collect all arguments to pass to Claude
70
+ const claudeArgs = [...args];
71
+
72
+ // Add back unknown options that were parsed
73
+ const knownOptions = ['model', 'provider', 'apiKey', 'baseUrl', 'timeout'];
74
+ for (const [key, value] of Object.entries(options)) {
75
+ if (knownOptions.includes(key)) continue;
76
+
77
+ if (key.length === 1) {
78
+ claudeArgs.push(`-${key}`);
79
+ } else {
80
+ claudeArgs.push(`--${key}`);
81
+ }
82
+
83
+ if (value !== true && value !== undefined) {
84
+ claudeArgs.push(String(value));
85
+ }
86
+ }
87
+
88
+ // Run Claude Code directly
89
+ logger.info(`Starting Claude Code with model ${config.model}...`);
90
+ await adapter.run(claudeArgs, providerEnv);
91
+ } catch (error) {
92
+ logger.error('Failed to run Claude Code:', error);
93
+ process.exit(1);
94
+ }
95
+ });
96
+
97
+ // Add health check command
98
+ program
99
+ .command('health')
100
+ .description('Check Claude Code health and installation')
101
+ .action(async () => {
102
+ try {
103
+ const adapter = new ClaudeCodeAdapter();
104
+
105
+ if (await adapter.isInstalled()) {
106
+ const version = await adapter.getVersion();
107
+ logger.success('Claude Code is installed and ready');
108
+ if (version) {
109
+ console.log(`Version: ${version}`);
110
+ }
111
+ } else {
112
+ logger.error('Claude Code is not installed');
113
+ console.log('Install with: codemie install claude');
114
+ process.exit(1);
115
+ }
116
+ } catch (error) {
117
+ logger.error('Health check failed:', error);
118
+ process.exit(1);
119
+ }
120
+ });
121
+
122
+ program.parse(process.argv);
@@ -1,23 +1,98 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * CodeMie Code - AI Coding Assistant
5
- * Entry point for the codemie-code executable
4
+ * CodeMie Native Agent
5
+ * Direct executable for the codemie-code agent
6
6
  */
7
7
 
8
- const { runCLI } = require('../dist/cli/cli.js');
9
- const { logger } = require('../dist/utils/logger.js');
8
+ import { CodeMieCode } from '../dist/agents/codemie-code/index.js';
9
+ import { loadCodeMieConfig } from '../dist/agents/codemie-code/config.js';
10
+ import { logger } from '../dist/utils/logger.js';
11
+ import { Command } from 'commander';
12
+ import { readFileSync } from 'fs';
13
+ import { join } from 'path';
14
+ import { getDirname } from '../dist/utils/dirname.js';
10
15
 
11
- async function main() {
12
- try {
13
- await runCLI();
14
- } catch (error) {
15
- logger.error('Failed to run CodeMie Code:', error);
16
- process.exit(1);
17
- }
16
+ const program = new Command();
17
+
18
+ // Read version from package.json
19
+ let version = '1.0.0';
20
+ try {
21
+ const packageJsonPath = join(getDirname(import.meta.url), '../package.json');
22
+ const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');
23
+ const packageJson = JSON.parse(packageJsonContent);
24
+ version = packageJson.version;
25
+ } catch {
26
+ // Use default version if unable to read
18
27
  }
19
28
 
20
- main().catch((error) => {
21
- console.error('Unhandled error:', error);
22
- process.exit(1);
23
- });
29
+ program
30
+ .name('codemie-code')
31
+ .description('CodeMie Native Agent - Built-in LangGraph-based coding assistant')
32
+ .version(version)
33
+ .option('--task <task>', 'Execute a single task and exit')
34
+ .option('--debug', 'Enable debug logging')
35
+ .argument('[message...]', 'Initial message or conversation starter')
36
+ .action(async (message, options) => {
37
+ try {
38
+ const workingDir = process.cwd();
39
+
40
+ // Check configuration
41
+ try {
42
+ await loadCodeMieConfig(workingDir);
43
+ } catch (error) {
44
+ logger.error('CodeMie configuration required. Please run: codemie setup');
45
+ process.exit(1);
46
+ }
47
+
48
+ // Initialize the agent
49
+ const codeMie = new CodeMieCode(workingDir);
50
+ await codeMie.initialize();
51
+
52
+ if (options.task) {
53
+ // Single task execution with modern UI
54
+ const result = await codeMie.executeTaskWithUI(options.task);
55
+ console.log(result);
56
+ } else if (message.length > 0) {
57
+ // Execute initial message then continue interactively
58
+ const initialMessage = message.join(' ');
59
+ console.log(`> ${initialMessage}`);
60
+ await codeMie.executeTaskWithUI(initialMessage);
61
+ console.log(''); // Add spacing
62
+
63
+ // Start interactive session
64
+ await codeMie.startInteractive();
65
+ } else {
66
+ // Pure interactive mode
67
+ await codeMie.startInteractive();
68
+ }
69
+ } catch (error) {
70
+ logger.error('Failed to run CodeMie Native:', error);
71
+ process.exit(1);
72
+ }
73
+ });
74
+
75
+ // Add health check command
76
+ program
77
+ .command('health')
78
+ .description('Check CodeMie Native health and configuration')
79
+ .action(async () => {
80
+ try {
81
+ const result = await CodeMieCode.testConnection(process.cwd());
82
+
83
+ if (result.success) {
84
+ logger.success('CodeMie Native is healthy');
85
+ console.log(`Provider: ${result.provider}`);
86
+ console.log(`Model: ${result.model}`);
87
+ } else {
88
+ logger.error('CodeMie Native health check failed:');
89
+ console.log(result.error);
90
+ process.exit(1);
91
+ }
92
+ } catch (error) {
93
+ logger.error('Health check failed:', error);
94
+ process.exit(1);
95
+ }
96
+ });
97
+
98
+ program.parse(process.argv);
@@ -0,0 +1,138 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * CodeMie Codex Direct Agent
5
+ * Direct executable for the codex agent (bypasses registry)
6
+ */
7
+
8
+ import { CodexAdapter } from '../dist/agents/adapters/codex.js';
9
+ import { ConfigLoader } from '../dist/utils/config-loader.js';
10
+ import { logger } from '../dist/utils/logger.js';
11
+ import { Command } from 'commander';
12
+ import { readFileSync } from 'fs';
13
+ import { join } from 'path';
14
+ import { getDirname } from '../dist/utils/dirname.js';
15
+
16
+ const program = new Command();
17
+
18
+ // Read version from package.json
19
+ let version = '1.0.0';
20
+ try {
21
+ const packageJsonPath = join(getDirname(import.meta.url), '../package.json');
22
+ const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');
23
+ const packageJson = JSON.parse(packageJsonContent);
24
+ version = packageJson.version;
25
+ } catch {
26
+ // Use default version if unable to read
27
+ }
28
+
29
+ program
30
+ .name('codemie-codex')
31
+ .description('CodeMie Codex - Direct access to OpenAI Codex agent')
32
+ .version(version)
33
+ .option('-m, --model <model>', 'Override model (must be OpenAI-compatible)')
34
+ .option('-p, --provider <provider>', 'Override provider')
35
+ .option('--api-key <key>', 'Override API key')
36
+ .option('--base-url <url>', 'Override base URL')
37
+ .option('--timeout <seconds>', 'Override timeout (in seconds)', parseInt)
38
+ .allowUnknownOption() // Allow passing unknown options to Codex
39
+ .passThroughOptions() // Pass through options to Codex
40
+ .argument('[args...]', 'Arguments to pass to Codex')
41
+ .action(async (args, options) => {
42
+ try {
43
+ const adapter = new CodexAdapter();
44
+
45
+ // Check if Codex is installed
46
+ if (!(await adapter.isInstalled())) {
47
+ logger.error('Codex is not installed. Install it first with: codemie install codex');
48
+ process.exit(1);
49
+ }
50
+
51
+ // Load configuration with CLI overrides
52
+ const config = await ConfigLoader.load(process.cwd(), {
53
+ model: options.model,
54
+ provider: options.provider,
55
+ apiKey: options.apiKey,
56
+ baseUrl: options.baseUrl,
57
+ timeout: options.timeout
58
+ });
59
+
60
+ // Validate essential configuration
61
+ if (!config.baseUrl || !config.apiKey || !config.model) {
62
+ logger.error('Configuration incomplete. Run: codemie setup');
63
+ process.exit(1);
64
+ }
65
+
66
+ // Validate model compatibility with Codex (OpenAI models only)
67
+ const currentModel = config.model;
68
+ const claudePatterns = [/^claude/i, /anthropic/i, /bedrock.*claude/i];
69
+ const isClaudeModel = claudePatterns.some(pattern => pattern.test(currentModel));
70
+
71
+ if (isClaudeModel) {
72
+ logger.error(`Model '${currentModel}' is not compatible with Codex`);
73
+ console.log('Codex requires OpenAI-compatible models (e.g., gpt-5, gpt-4o, gpt-4.1)');
74
+ console.log('Claude models are not supported due to API incompatibilities');
75
+ console.log('\nOptions:');
76
+ console.log(' 1. Switch to an OpenAI model: codemie config set model gpt-4o');
77
+ console.log(' 2. Use Claude agent instead: codemie-claude');
78
+ console.log(' 3. Override model for this session: codemie-codex --model gpt-4o');
79
+ process.exit(1);
80
+ }
81
+
82
+ // Export provider-specific environment variables
83
+ const providerEnv = ConfigLoader.exportProviderEnvVars(config);
84
+
85
+ // Collect all arguments to pass to Codex
86
+ const codexArgs = [...args];
87
+
88
+ // Add back unknown options that were parsed
89
+ const knownOptions = ['model', 'provider', 'apiKey', 'baseUrl', 'timeout'];
90
+ for (const [key, value] of Object.entries(options)) {
91
+ if (knownOptions.includes(key)) continue;
92
+
93
+ if (key.length === 1) {
94
+ codexArgs.push(`-${key}`);
95
+ } else {
96
+ codexArgs.push(`--${key}`);
97
+ }
98
+
99
+ if (value !== true && value !== undefined) {
100
+ codexArgs.push(String(value));
101
+ }
102
+ }
103
+
104
+ // Run Codex directly
105
+ logger.info(`Starting Codex with model ${config.model}...`);
106
+ await adapter.run(codexArgs, providerEnv);
107
+ } catch (error) {
108
+ logger.error('Failed to run Codex:', error);
109
+ process.exit(1);
110
+ }
111
+ });
112
+
113
+ // Add health check command
114
+ program
115
+ .command('health')
116
+ .description('Check Codex health and installation')
117
+ .action(async () => {
118
+ try {
119
+ const adapter = new CodexAdapter();
120
+
121
+ if (await adapter.isInstalled()) {
122
+ const version = await adapter.getVersion();
123
+ logger.success('Codex is installed and ready');
124
+ if (version) {
125
+ console.log(`Version: ${version}`);
126
+ }
127
+ } else {
128
+ logger.error('Codex is not installed');
129
+ console.log('Install with: codemie install codex');
130
+ process.exit(1);
131
+ }
132
+ } catch (error) {
133
+ logger.error('Health check failed:', error);
134
+ process.exit(1);
135
+ }
136
+ });
137
+
138
+ program.parse(process.argv);
package/bin/codemie.js CHANGED
@@ -5,4 +5,4 @@
5
5
  * Entry point for the codemie executable
6
6
  */
7
7
 
8
- require('../dist/cli/index.js');
8
+ import '../dist/cli/index.js';
@@ -0,0 +1,10 @@
1
+ {
2
+ "provider": "ai-run",
3
+ "baseUrl": "https://litellm.codemie.example.com",
4
+ "apiKey": "your-litellm-api-key-here",
5
+ "model": "claude-4-5-sonnet",
6
+ "timeout": 300,
7
+ "debug": false,
8
+ "allowedDirs": ["/home/user/projects"],
9
+ "ignorePatterns": ["node_modules", ".git", "dist", "build"]
10
+ }
@@ -1,4 +1,4 @@
1
- import { AgentAdapter } from '../registry';
1
+ import { AgentAdapter } from '../registry.js';
2
2
  export declare class ClaudeCodeAdapter implements AgentAdapter {
3
3
  name: string;
4
4
  displayName: string;
@@ -6,7 +6,7 @@ export declare class ClaudeCodeAdapter implements AgentAdapter {
6
6
  install(): Promise<void>;
7
7
  uninstall(): Promise<void>;
8
8
  isInstalled(): Promise<boolean>;
9
- run(args: string[]): Promise<void>;
9
+ run(args: string[], envOverrides?: Record<string, string>): Promise<void>;
10
10
  getVersion(): Promise<string | null>;
11
11
  }
12
12
  //# sourceMappingURL=claude-code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,qBAAa,iBAAkB,YAAW,YAAY;IACpD,IAAI,SAAY;IAChB,WAAW,SAAiB;IAC5B,WAAW,SAA+C;IAEpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAYxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDlC,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAQ3C"}
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,qBAAa,iBAAkB,YAAW,YAAY;IACpD,IAAI,SAAY;IAChB,WAAW,SAAiB;IAC5B,WAAW,SAA+C;IAEpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAYxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzE,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAQ3C"}
@@ -1,19 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClaudeCodeAdapter = void 0;
4
- const exec_1 = require("../../utils/exec");
5
- const logger_1 = require("../../utils/logger");
6
- const child_process_1 = require("child_process");
7
- class ClaudeCodeAdapter {
1
+ import { exec } from '../../utils/exec.js';
2
+ import { logger } from '../../utils/logger.js';
3
+ import { spawn } from 'child_process';
4
+ export class ClaudeCodeAdapter {
8
5
  name = 'claude';
9
6
  displayName = 'Claude Code';
10
7
  description = 'Anthropic Claude Code - official CLI tool';
11
8
  async install() {
12
- logger_1.logger.info('Installing Claude Code...');
9
+ logger.info('Installing Claude Code...');
13
10
  try {
14
11
  // Install via npm
15
- await (0, exec_1.exec)('npm', ['install', '-g', '@anthropic-ai/claude-code'], { timeout: 120000 });
16
- logger_1.logger.success('Claude Code installed successfully');
12
+ await exec('npm', ['install', '-g', '@anthropic-ai/claude-code'], { timeout: 120000 });
13
+ logger.success('Claude Code installed successfully');
17
14
  }
18
15
  catch (error) {
19
16
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -21,10 +18,10 @@ class ClaudeCodeAdapter {
21
18
  }
22
19
  }
23
20
  async uninstall() {
24
- logger_1.logger.info('Uninstalling Claude Code...');
21
+ logger.info('Uninstalling Claude Code...');
25
22
  try {
26
- await (0, exec_1.exec)('npm', ['uninstall', '-g', '@anthropic-ai/claude-code']);
27
- logger_1.logger.success('Claude Code uninstalled successfully');
23
+ await exec('npm', ['uninstall', '-g', '@anthropic-ai/claude-code']);
24
+ logger.success('Claude Code uninstalled successfully');
28
25
  }
29
26
  catch (error) {
30
27
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -33,40 +30,22 @@ class ClaudeCodeAdapter {
33
30
  }
34
31
  async isInstalled() {
35
32
  try {
36
- const result = await (0, exec_1.exec)('which', ['claude']);
33
+ const result = await exec('which', ['claude']);
37
34
  return result.code === 0;
38
35
  }
39
36
  catch {
40
37
  return false;
41
38
  }
42
39
  }
43
- async run(args) {
44
- logger_1.logger.info('Starting Claude Code...');
45
- // Prepare environment variables
46
- // Convert generic CODEMIE_* config to ANTHROPIC_* that Claude Code expects
47
- const env = { ...process.env };
48
- // Map our generic env vars to Anthropic-specific ones
49
- if (!env.ANTHROPIC_BASE_URL && env.CODEMIE_BASE_URL) {
50
- env.ANTHROPIC_BASE_URL = env.CODEMIE_BASE_URL;
51
- }
52
- if (!env.ANTHROPIC_AUTH_TOKEN && env.CODEMIE_AUTH_TOKEN) {
53
- env.ANTHROPIC_AUTH_TOKEN = env.CODEMIE_AUTH_TOKEN;
54
- }
55
- if (!env.ANTHROPIC_API_KEY && env.CODEMIE_AUTH_TOKEN) {
56
- env.ANTHROPIC_API_KEY = env.CODEMIE_AUTH_TOKEN;
57
- }
58
- if (!env.ANTHROPIC_MODEL && env.CODEMIE_MODEL) {
59
- env.ANTHROPIC_MODEL = env.CODEMIE_MODEL;
60
- }
61
- // Set subagent model to match the main model
62
- if (!env.CLAUDE_CODE_SUBAGENT_MODEL && env.CODEMIE_MODEL) {
63
- env.CLAUDE_CODE_SUBAGENT_MODEL = env.CODEMIE_MODEL;
64
- }
65
- else if (!env.CLAUDE_CODE_SUBAGENT_MODEL && env.ANTHROPIC_MODEL) {
66
- env.CLAUDE_CODE_SUBAGENT_MODEL = env.ANTHROPIC_MODEL;
67
- }
40
+ async run(args, envOverrides) {
41
+ logger.info('Starting Claude Code...');
42
+ // Merge environment variables: process.env < envOverrides
43
+ const env = {
44
+ ...process.env,
45
+ ...envOverrides
46
+ };
68
47
  // Spawn Claude Code
69
- const child = (0, child_process_1.spawn)('claude', args, {
48
+ const child = spawn('claude', args, {
70
49
  stdio: 'inherit',
71
50
  env
72
51
  });
@@ -86,7 +65,7 @@ class ClaudeCodeAdapter {
86
65
  }
87
66
  async getVersion() {
88
67
  try {
89
- const result = await (0, exec_1.exec)('claude', ['--version']);
68
+ const result = await exec('claude', ['--version']);
90
69
  return result.stdout.trim();
91
70
  }
92
71
  catch {
@@ -94,5 +73,4 @@ class ClaudeCodeAdapter {
94
73
  }
95
74
  }
96
75
  }
97
- exports.ClaudeCodeAdapter = ClaudeCodeAdapter;
98
76
  //# sourceMappingURL=claude-code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/agents/adapters/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/agents/adapters/claude-code.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AgentAdapter } from '../registry';
1
+ import { AgentAdapter } from '../registry.js';
2
2
  export declare class CodeMieCodeAdapter implements AgentAdapter {
3
3
  name: string;
4
4
  displayName: string;
@@ -6,7 +6,16 @@ export declare class CodeMieCodeAdapter implements AgentAdapter {
6
6
  install(): Promise<void>;
7
7
  uninstall(): Promise<void>;
8
8
  isInstalled(): Promise<boolean>;
9
- run(args: string[]): Promise<void>;
9
+ run(args: string[], envOverrides?: Record<string, string>): Promise<void>;
10
+ private runInteractive;
11
+ private runTask;
10
12
  getVersion(): Promise<string | null>;
13
+ /**
14
+ * Test connection and configuration without starting interactive mode
15
+ */
16
+ testConnection(): Promise<{
17
+ success: boolean;
18
+ error?: string;
19
+ }>;
11
20
  }
12
21
  //# sourceMappingURL=codemie-code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codemie-code.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/codemie-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,qBAAa,kBAAmB,YAAW,YAAY;IACrD,IAAI,SAAkB;IACtB,WAAW,SAAkB;IAC7B,WAAW,SAAqD;IAE1D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASlC,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAW3C"}
1
+ {"version":3,"file":"codemie-code.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/codemie-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,qBAAa,kBAAmB,YAAW,YAAY;IACrD,IAAI,SAAkB;IACtB,WAAW,SAAoB;IAC/B,WAAW,SAAsE;IAE3E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAgCjE,cAAc;YAwBd,OAAO;IAkBf,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY1C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAWtE"}