@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.
- package/CLAUDE.md +130 -760
- package/README.md +283 -695
- package/bin/codemie-claude.js +122 -0
- package/bin/codemie-code.js +90 -15
- package/bin/codemie-codex.js +138 -0
- package/bin/codemie.js +1 -1
- package/config.example.json +10 -0
- package/dist/agents/adapters/claude-code.d.ts +2 -2
- package/dist/agents/adapters/claude-code.d.ts.map +1 -1
- package/dist/agents/adapters/claude-code.js +20 -42
- package/dist/agents/adapters/claude-code.js.map +1 -1
- package/dist/agents/adapters/codemie-code.d.ts +11 -2
- package/dist/agents/adapters/codemie-code.d.ts.map +1 -1
- package/dist/agents/adapters/codemie-code.js +93 -25
- package/dist/agents/adapters/codemie-code.js.map +1 -1
- package/dist/agents/adapters/codex.d.ts +2 -2
- package/dist/agents/adapters/codex.d.ts.map +1 -1
- package/dist/agents/adapters/codex.js +31 -24
- package/dist/agents/adapters/codex.js.map +1 -1
- package/dist/agents/codemie-code/agent.d.ts +89 -0
- package/dist/agents/codemie-code/agent.d.ts.map +1 -0
- package/dist/agents/codemie-code/agent.js +523 -0
- package/dist/agents/codemie-code/agent.js.map +1 -0
- package/dist/agents/codemie-code/config.d.ts +40 -0
- package/dist/agents/codemie-code/config.d.ts.map +1 -0
- package/dist/agents/codemie-code/config.js +276 -0
- package/dist/agents/codemie-code/config.js.map +1 -0
- package/dist/agents/codemie-code/filters.d.ts +91 -0
- package/dist/agents/codemie-code/filters.d.ts.map +1 -0
- package/dist/agents/codemie-code/filters.js +328 -0
- package/dist/agents/codemie-code/filters.js.map +1 -0
- package/dist/agents/codemie-code/index.d.ts +78 -0
- package/dist/agents/codemie-code/index.d.ts.map +1 -0
- package/dist/agents/codemie-code/index.js +259 -0
- package/dist/agents/codemie-code/index.js.map +1 -0
- package/dist/agents/codemie-code/prompts.d.ts +11 -0
- package/dist/agents/codemie-code/prompts.d.ts.map +1 -0
- package/dist/agents/codemie-code/prompts.js +31 -0
- package/dist/agents/codemie-code/prompts.js.map +1 -0
- package/dist/agents/codemie-code/streaming/events.d.ts +7 -0
- package/dist/agents/codemie-code/streaming/events.d.ts.map +1 -0
- package/dist/agents/codemie-code/streaming/events.js +7 -0
- package/dist/agents/codemie-code/streaming/events.js.map +1 -0
- package/dist/agents/codemie-code/streaming/formatter.d.ts +2 -0
- package/dist/agents/codemie-code/streaming/formatter.d.ts.map +1 -0
- package/dist/agents/codemie-code/streaming/formatter.js +2 -0
- package/dist/agents/codemie-code/streaming/formatter.js.map +1 -0
- package/dist/agents/codemie-code/streaming/ui.d.ts +2 -0
- package/dist/agents/codemie-code/streaming/ui.d.ts.map +1 -0
- package/dist/agents/codemie-code/streaming/ui.js +2 -0
- package/dist/agents/codemie-code/streaming/ui.js.map +1 -0
- package/dist/agents/codemie-code/tokenUtils.d.ts +108 -0
- package/dist/agents/codemie-code/tokenUtils.d.ts.map +1 -0
- package/dist/agents/codemie-code/tokenUtils.js +220 -0
- package/dist/agents/codemie-code/tokenUtils.js.map +1 -0
- package/dist/agents/codemie-code/toolMetadata.d.ts +15 -0
- package/dist/agents/codemie-code/toolMetadata.d.ts.map +1 -0
- package/dist/agents/codemie-code/toolMetadata.js +315 -0
- package/dist/agents/codemie-code/toolMetadata.js.map +1 -0
- package/dist/agents/codemie-code/tools/command.d.ts +2 -0
- package/dist/agents/codemie-code/tools/command.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/command.js +2 -0
- package/dist/agents/codemie-code/tools/command.js.map +1 -0
- package/dist/agents/codemie-code/tools/filesystem.d.ts +2 -0
- package/dist/agents/codemie-code/tools/filesystem.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/filesystem.js +2 -0
- package/dist/agents/codemie-code/tools/filesystem.js.map +1 -0
- package/dist/agents/codemie-code/tools/git.d.ts +2 -0
- package/dist/agents/codemie-code/tools/git.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/git.js +2 -0
- package/dist/agents/codemie-code/tools/git.js.map +1 -0
- package/dist/agents/codemie-code/tools/index.d.ts +19 -0
- package/dist/agents/codemie-code/tools/index.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/index.js +239 -0
- package/dist/agents/codemie-code/tools/index.js.map +1 -0
- package/dist/agents/codemie-code/tools/security.d.ts +2 -0
- package/dist/agents/codemie-code/tools/security.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/security.js +2 -0
- package/dist/agents/codemie-code/tools/security.js.map +1 -0
- package/dist/agents/codemie-code/types.d.ts +254 -0
- package/dist/agents/codemie-code/types.d.ts.map +1 -0
- package/dist/agents/codemie-code/types.js +35 -0
- package/dist/agents/codemie-code/types.js.map +1 -0
- package/dist/agents/codemie-code/ui.d.ts +83 -0
- package/dist/agents/codemie-code/ui.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui.js +624 -0
- package/dist/agents/codemie-code/ui.js.map +1 -0
- package/dist/agents/registry.d.ts +1 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +7 -13
- package/dist/agents/registry.js.map +1 -1
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +323 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +113 -69
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/env.d.ts +3 -0
- package/dist/cli/commands/env.d.ts.map +1 -0
- package/dist/cli/commands/env.js +19 -0
- package/dist/cli/commands/env.js.map +1 -0
- package/dist/cli/commands/install.js +27 -33
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.js +18 -24
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +291 -31
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +3 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +357 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/uninstall.js +24 -30
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/commands/version.d.ts.map +1 -1
- package/dist/cli/commands/version.js +11 -16
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/index.js +47 -31
- package/dist/cli/index.js.map +1 -1
- package/dist/env/manager.js +9 -46
- package/dist/env/manager.js.map +1 -1
- package/dist/index.d.ts +6 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -43
- package/dist/index.js.map +1 -1
- package/dist/utils/async-tips.d.ts.map +1 -1
- package/dist/utils/async-tips.js +16 -55
- package/dist/utils/async-tips.js.map +1 -1
- package/dist/utils/clipboard.d.ts +16 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +179 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/config-loader.d.ts +96 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +351 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/dirname.d.ts +7 -0
- package/dist/utils/dirname.d.ts.map +1 -0
- package/dist/utils/dirname.js +11 -0
- package/dist/utils/dirname.js.map +1 -0
- package/dist/utils/errors.js +7 -17
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/exec.js +3 -6
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/first-time.d.ts +34 -0
- package/dist/utils/first-time.d.ts.map +1 -0
- package/dist/utils/first-time.js +245 -0
- package/dist/utils/first-time.js.map +1 -0
- package/dist/utils/health-checker.d.ts +20 -0
- package/dist/utils/health-checker.d.ts.map +1 -0
- package/dist/utils/health-checker.js +168 -0
- package/dist/utils/health-checker.js.map +1 -0
- package/dist/utils/logger.js +12 -18
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/model-fetcher.d.ts +21 -0
- package/dist/utils/model-fetcher.d.ts.map +1 -0
- package/dist/utils/model-fetcher.js +137 -0
- package/dist/utils/model-fetcher.js.map +1 -0
- package/dist/utils/tips.d.ts.map +1 -1
- package/dist/utils/tips.js +13 -52
- package/dist/utils/tips.js.map +1 -1
- package/package.json +17 -23
- package/scripts/README.md +80 -0
- package/scripts/release.sh +156 -0
- package/dist/agents/adapters/aider.d.ts +0 -12
- package/dist/agents/adapters/aider.d.ts.map +0 -1
- package/dist/agents/adapters/aider.js +0 -80
- package/dist/agents/adapters/aider.js.map +0 -1
- package/dist/cli/cli.d.ts +0 -4
- package/dist/cli/cli.d.ts.map +0 -1
- package/dist/cli/cli.js +0 -107
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/commands/mcp.d.ts +0 -3
- package/dist/cli/commands/mcp.d.ts.map +0 -1
- package/dist/cli/commands/mcp.js +0 -459
- package/dist/cli/commands/mcp.js.map +0 -1
- package/dist/code/agent-events.d.ts +0 -39
- package/dist/code/agent-events.d.ts.map +0 -1
- package/dist/code/agent-events.js +0 -4
- package/dist/code/agent-events.js.map +0 -1
- package/dist/code/agent.d.ts +0 -19
- package/dist/code/agent.d.ts.map +0 -1
- package/dist/code/agent.js +0 -144
- package/dist/code/agent.js.map +0 -1
- package/dist/code/config.d.ts +0 -13
- package/dist/code/config.d.ts.map +0 -1
- package/dist/code/config.js +0 -41
- package/dist/code/config.js.map +0 -1
- package/dist/code/index.d.ts +0 -19
- package/dist/code/index.d.ts.map +0 -1
- package/dist/code/index.js +0 -400
- package/dist/code/index.js.map +0 -1
- package/dist/code/prompts.d.ts +0 -2
- package/dist/code/prompts.d.ts.map +0 -1
- package/dist/code/prompts.js +0 -45
- package/dist/code/prompts.js.map +0 -1
- package/dist/code/tools/command.d.ts +0 -8
- package/dist/code/tools/command.d.ts.map +0 -1
- package/dist/code/tools/command.js +0 -83
- package/dist/code/tools/command.js.map +0 -1
- package/dist/code/tools/diff-utils.d.ts +0 -2
- package/dist/code/tools/diff-utils.d.ts.map +0 -1
- package/dist/code/tools/diff-utils.js +0 -45
- package/dist/code/tools/diff-utils.js.map +0 -1
- package/dist/code/tools/filesystem.d.ts +0 -11
- package/dist/code/tools/filesystem.d.ts.map +0 -1
- package/dist/code/tools/filesystem.js +0 -442
- package/dist/code/tools/filesystem.js.map +0 -1
- package/dist/code/tools/git.d.ts +0 -7
- package/dist/code/tools/git.d.ts.map +0 -1
- package/dist/code/tools/git.js +0 -111
- package/dist/code/tools/git.js.map +0 -1
- package/dist/code/tools/mcp.d.ts +0 -13
- package/dist/code/tools/mcp.d.ts.map +0 -1
- package/dist/code/tools/mcp.js +0 -230
- package/dist/code/tools/mcp.js.map +0 -1
- package/dist/data/tips.json +0 -118
- package/dist/ui/terminal-ui.d.ts +0 -73
- package/dist/ui/terminal-ui.d.ts.map +0 -1
- package/dist/ui/terminal-ui.js +0 -900
- package/dist/ui/terminal-ui.js.map +0 -1
- package/dist/utils/env-mapper.d.ts +0 -40
- package/dist/utils/env-mapper.d.ts.map +0 -1
- package/dist/utils/env-mapper.js +0 -122
- package/dist/utils/env-mapper.js.map +0 -1
- package/docs/USER_GUIDE.md +0 -573
- package/tests/agent-direct.test.mjs +0 -45
- package/tests/agent-output.test.mjs +0 -64
- package/tests/codemie-code.test.mjs +0 -42
- package/tests/context7-only.test.mjs +0 -42
- package/tests/conversation-flow.test.mjs +0 -63
- package/tests/interactive-simulation.test.mjs +0 -60
- package/tests/live-output.test.mjs +0 -53
- package/tests/mcp-context7.test.mjs +0 -105
- package/tests/mcp-e2e.test.mjs +0 -109
- package/tests/mcp-time-server.test.mjs +0 -58
- package/tests/streaming.test.mjs +0 -57
- package/tests/test-helpers.mjs +0 -94
- package/tests/text-wrapping.test.mjs +0 -33
- package/tests/tool-count.test.mjs +0 -81
- package/tests/ui-format.test.mjs +0 -39
- package/tests/ui-state.test.mjs +0 -72
|
@@ -1,42 +1,110 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class CodeMieCodeAdapter {
|
|
1
|
+
import { logger } from '../../utils/logger.js';
|
|
2
|
+
import { CodeMieCode } from '../codemie-code/index.js';
|
|
3
|
+
import { loadCodeMieConfig } from '../codemie-code/config.js';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { readFileSync } from 'fs';
|
|
6
|
+
import { getDirname } from '../../utils/dirname.js';
|
|
7
|
+
export class CodeMieCodeAdapter {
|
|
9
8
|
name = 'codemie-code';
|
|
10
|
-
displayName = 'CodeMie
|
|
11
|
-
description = 'Built-in
|
|
9
|
+
displayName = 'CodeMie Native';
|
|
10
|
+
description = 'CodeMie Native Agent - Built-in LangGraph-based coding assistant';
|
|
12
11
|
async install() {
|
|
13
|
-
|
|
12
|
+
logger.info('CodeMie Native is built-in and already available');
|
|
13
|
+
// No installation needed - it's built into this package
|
|
14
14
|
}
|
|
15
15
|
async uninstall() {
|
|
16
|
-
|
|
16
|
+
logger.info('CodeMie Native is built-in and cannot be uninstalled');
|
|
17
|
+
// Cannot uninstall built-in agent
|
|
17
18
|
}
|
|
18
19
|
async isInstalled() {
|
|
19
|
-
|
|
20
|
+
// Always installed since it's built-in
|
|
21
|
+
return true;
|
|
20
22
|
}
|
|
21
|
-
async run(args) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
async run(args, envOverrides) {
|
|
24
|
+
logger.info('Starting CodeMie Native Agent...');
|
|
25
|
+
try {
|
|
26
|
+
// Check if we have a valid configuration first
|
|
27
|
+
const workingDir = process.cwd();
|
|
28
|
+
try {
|
|
29
|
+
await loadCodeMieConfig(workingDir);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
throw new Error('CodeMie configuration required. Please run: codemie setup');
|
|
33
|
+
}
|
|
34
|
+
// Determine the mode based on arguments
|
|
35
|
+
if (args.length === 0) {
|
|
36
|
+
// Interactive mode
|
|
37
|
+
await this.runInteractive(workingDir, envOverrides);
|
|
38
|
+
}
|
|
39
|
+
else if (args[0] === '--task' && args[1]) {
|
|
40
|
+
// Single task execution
|
|
41
|
+
const task = args.slice(1).join(' ');
|
|
42
|
+
await this.runTask(workingDir, task, envOverrides);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Default to interactive with arguments as initial message
|
|
46
|
+
const initialMessage = args.join(' ');
|
|
47
|
+
await this.runInteractive(workingDir, envOverrides, initialMessage);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
52
|
+
throw new Error(`Failed to run CodeMie Native: ${errorMessage}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async runInteractive(workingDir, envOverrides, initialMessage) {
|
|
56
|
+
// Set environment variables if provided
|
|
57
|
+
if (envOverrides) {
|
|
58
|
+
Object.assign(process.env, envOverrides);
|
|
59
|
+
}
|
|
60
|
+
const codeMie = new CodeMieCode(workingDir);
|
|
61
|
+
await codeMie.initialize();
|
|
62
|
+
if (initialMessage) {
|
|
63
|
+
// Execute initial message then continue interactively
|
|
64
|
+
console.log(`> ${initialMessage}`);
|
|
65
|
+
await codeMie.executeTask(initialMessage);
|
|
66
|
+
console.log(''); // Add spacing
|
|
67
|
+
}
|
|
68
|
+
// Start interactive session
|
|
69
|
+
await codeMie.startInteractive();
|
|
70
|
+
}
|
|
71
|
+
async runTask(workingDir, task, envOverrides) {
|
|
72
|
+
// Set environment variables if provided
|
|
73
|
+
if (envOverrides) {
|
|
74
|
+
Object.assign(process.env, envOverrides);
|
|
75
|
+
}
|
|
76
|
+
const codeMie = new CodeMieCode(workingDir);
|
|
77
|
+
await codeMie.initialize();
|
|
78
|
+
// Execute single task with modern UI and exit
|
|
79
|
+
const result = await codeMie.executeTaskWithUI(task);
|
|
80
|
+
console.log(result);
|
|
27
81
|
}
|
|
28
82
|
async getVersion() {
|
|
29
|
-
// Read from package.json
|
|
30
83
|
try {
|
|
31
|
-
|
|
32
|
-
const
|
|
84
|
+
// Read version from package.json
|
|
85
|
+
const packageJsonPath = join(getDirname(import.meta.url), '../../../package.json');
|
|
86
|
+
const packageJsonContent = readFileSync(packageJsonPath, 'utf-8');
|
|
33
87
|
const packageJson = JSON.parse(packageJsonContent);
|
|
34
|
-
return packageJson.version
|
|
88
|
+
return `v${packageJson.version} (built-in)`;
|
|
35
89
|
}
|
|
36
90
|
catch {
|
|
37
|
-
return
|
|
91
|
+
return 'unknown (built-in)';
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Test connection and configuration without starting interactive mode
|
|
96
|
+
*/
|
|
97
|
+
async testConnection() {
|
|
98
|
+
try {
|
|
99
|
+
const result = await CodeMieCode.testConnection(process.cwd());
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return {
|
|
104
|
+
success: false,
|
|
105
|
+
error: error instanceof Error ? error.message : String(error)
|
|
106
|
+
};
|
|
38
107
|
}
|
|
39
108
|
}
|
|
40
109
|
}
|
|
41
|
-
exports.CodeMieCodeAdapter = CodeMieCodeAdapter;
|
|
42
110
|
//# sourceMappingURL=codemie-code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codemie-code.js","sourceRoot":"","sources":["../../../src/agents/adapters/codemie-code.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codemie-code.js","sourceRoot":"","sources":["../../../src/agents/adapters/codemie-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 CodexAdapter implements AgentAdapter {
|
|
3
3
|
name: string;
|
|
4
4
|
displayName: string;
|
|
@@ -6,7 +6,7 @@ export declare class CodexAdapter 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=codex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,qBAAa,YAAa,YAAW,YAAY;IAC/C,IAAI,SAAW;IACf,WAAW,SAAW;IACtB,WAAW,SAAwC;IAE7C,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;IA8CzE,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAQ3C"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const logger_1 = require("../../utils/logger");
|
|
6
|
-
const child_process_1 = require("child_process");
|
|
7
|
-
class CodexAdapter {
|
|
1
|
+
import { exec } from '../../utils/exec.js';
|
|
2
|
+
import { logger } from '../../utils/logger.js';
|
|
3
|
+
import { spawn } from 'child_process';
|
|
4
|
+
export class CodexAdapter {
|
|
8
5
|
name = 'codex';
|
|
9
6
|
displayName = 'Codex';
|
|
10
7
|
description = 'OpenAI Codex - AI coding assistant';
|
|
11
8
|
async install() {
|
|
12
|
-
|
|
9
|
+
logger.info('Installing Codex...');
|
|
13
10
|
try {
|
|
14
|
-
// Install via
|
|
15
|
-
await
|
|
16
|
-
|
|
11
|
+
// Install via npm
|
|
12
|
+
await exec('npm', ['install', '-g', '@openai/codex'], { timeout: 120000 });
|
|
13
|
+
logger.success('Codex installed successfully');
|
|
17
14
|
}
|
|
18
15
|
catch (error) {
|
|
19
16
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
@@ -21,10 +18,10 @@ class CodexAdapter {
|
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
20
|
async uninstall() {
|
|
24
|
-
|
|
21
|
+
logger.info('Uninstalling Codex...');
|
|
25
22
|
try {
|
|
26
|
-
await
|
|
27
|
-
|
|
23
|
+
await exec('npm', ['uninstall', '-g', '@openai/codex']);
|
|
24
|
+
logger.success('Codex uninstalled successfully');
|
|
28
25
|
}
|
|
29
26
|
catch (error) {
|
|
30
27
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
@@ -33,22 +30,33 @@ class CodexAdapter {
|
|
|
33
30
|
}
|
|
34
31
|
async isInstalled() {
|
|
35
32
|
try {
|
|
36
|
-
const result = await
|
|
33
|
+
const result = await exec('which', ['codex']);
|
|
37
34
|
return result.code === 0;
|
|
38
35
|
}
|
|
39
36
|
catch {
|
|
40
37
|
return false;
|
|
41
38
|
}
|
|
42
39
|
}
|
|
43
|
-
async run(args) {
|
|
44
|
-
|
|
45
|
-
//
|
|
46
|
-
const env = {
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
async run(args, envOverrides) {
|
|
41
|
+
logger.info('Starting Codex...');
|
|
42
|
+
// Merge environment variables: process.env < envOverrides
|
|
43
|
+
const env = {
|
|
44
|
+
...process.env,
|
|
45
|
+
...envOverrides
|
|
46
|
+
};
|
|
47
|
+
// Build Codex arguments with model if specified
|
|
48
|
+
const codexArgs = [...args];
|
|
49
|
+
// Check if model is already specified in args
|
|
50
|
+
const hasModelArg = args.some((arg, idx) => (arg === '-m' || arg === '--model') && idx < args.length - 1);
|
|
51
|
+
// If model not in args but available in env, add it
|
|
52
|
+
if (!hasModelArg && (envOverrides?.CODEMIE_MODEL || envOverrides?.OPENAI_MODEL)) {
|
|
53
|
+
const model = envOverrides?.CODEMIE_MODEL || envOverrides?.OPENAI_MODEL;
|
|
54
|
+
if (model) {
|
|
55
|
+
codexArgs.unshift('--model', model);
|
|
56
|
+
}
|
|
49
57
|
}
|
|
50
58
|
// Spawn Codex
|
|
51
|
-
const child =
|
|
59
|
+
const child = spawn('codex', codexArgs, {
|
|
52
60
|
stdio: 'inherit',
|
|
53
61
|
env
|
|
54
62
|
});
|
|
@@ -68,7 +76,7 @@ class CodexAdapter {
|
|
|
68
76
|
}
|
|
69
77
|
async getVersion() {
|
|
70
78
|
try {
|
|
71
|
-
const result = await
|
|
79
|
+
const result = await exec('codex', ['--version']);
|
|
72
80
|
return result.stdout.trim();
|
|
73
81
|
}
|
|
74
82
|
catch {
|
|
@@ -76,5 +84,4 @@ class CodexAdapter {
|
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
86
|
}
|
|
79
|
-
exports.CodexAdapter = CodexAdapter;
|
|
80
87
|
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agents/adapters/codex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agents/adapters/codex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,OAAO,YAAY;IACvB,IAAI,GAAG,OAAO,CAAC;IACf,WAAW,GAAG,OAAO,CAAC;IACtB,WAAW,GAAG,oCAAoC,CAAC;IAEnD,KAAK,CAAC,OAAO;QACX,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,kBAAkB;YAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc,EAAE,YAAqC;QAC7D,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEjC,0DAA0D;QAC1D,MAAM,GAAG,GAAsB;YAC7B,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,YAAY;SAChB,CAAC;QAEF,gDAAgD;QAChD,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAE5B,8CAA8C;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACzC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAC7D,CAAC;QAEF,oDAAoD;QACpD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,aAAa,IAAI,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;YAChF,MAAM,KAAK,GAAG,YAAY,EAAE,aAAa,IAAI,YAAY,EAAE,YAAY,CAAC;YACxE,IAAI,KAAK,EAAE,CAAC;gBACV,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,cAAc;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE;YACtC,KAAK,EAAE,SAAS;YAChB,GAAG;SACJ,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CodeMie Native Agent Implementation
|
|
3
|
+
*
|
|
4
|
+
* Core LangGraph ReAct agent using LangChain v1.0+ with streaming support
|
|
5
|
+
*/
|
|
6
|
+
import type { StructuredTool } from '@langchain/core/tools';
|
|
7
|
+
import type { BaseMessage } from '@langchain/core/messages';
|
|
8
|
+
import type { CodeMieConfig, EventCallback, AgentStats } from './types.js';
|
|
9
|
+
import type { ClipboardImage } from '../../utils/clipboard.js';
|
|
10
|
+
export declare class CodeMieAgent {
|
|
11
|
+
private agent;
|
|
12
|
+
private config;
|
|
13
|
+
private tools;
|
|
14
|
+
private conversationHistory;
|
|
15
|
+
private toolCallArgs;
|
|
16
|
+
private currentExecutionSteps;
|
|
17
|
+
private currentStepNumber;
|
|
18
|
+
private currentLLMTokenUsage;
|
|
19
|
+
private isFirstLLMCall;
|
|
20
|
+
private stats;
|
|
21
|
+
constructor(config: CodeMieConfig, tools: StructuredTool[]);
|
|
22
|
+
/**
|
|
23
|
+
* Create the appropriate LLM instance based on provider configuration
|
|
24
|
+
*/
|
|
25
|
+
private createLLM;
|
|
26
|
+
/**
|
|
27
|
+
* Create a HumanMessage with optional image support (multiple images)
|
|
28
|
+
*/
|
|
29
|
+
private createHumanMessage;
|
|
30
|
+
/**
|
|
31
|
+
* Stream a chat interaction with the agent
|
|
32
|
+
*/
|
|
33
|
+
chatStream(message: string, onEvent: EventCallback, images?: ClipboardImage[]): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Process individual stream chunks from LangGraph
|
|
36
|
+
*/
|
|
37
|
+
private processStreamChunk;
|
|
38
|
+
/**
|
|
39
|
+
* Execute a single message without streaming (for non-interactive use)
|
|
40
|
+
*/
|
|
41
|
+
executeMessage(message: string): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Clear conversation history
|
|
44
|
+
*/
|
|
45
|
+
clearHistory(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get current conversation history
|
|
48
|
+
*/
|
|
49
|
+
getHistory(): BaseMessage[];
|
|
50
|
+
/**
|
|
51
|
+
* Get agent runtime statistics
|
|
52
|
+
*/
|
|
53
|
+
getStats(): AgentStats;
|
|
54
|
+
/**
|
|
55
|
+
* Get available tools
|
|
56
|
+
*/
|
|
57
|
+
getTools(): StructuredTool[];
|
|
58
|
+
/**
|
|
59
|
+
* Get agent configuration
|
|
60
|
+
*/
|
|
61
|
+
getConfig(): CodeMieConfig;
|
|
62
|
+
/**
|
|
63
|
+
* Health check for the agent
|
|
64
|
+
*/
|
|
65
|
+
healthCheck(): Promise<{
|
|
66
|
+
status: 'healthy' | 'unhealthy';
|
|
67
|
+
provider: string;
|
|
68
|
+
model: string;
|
|
69
|
+
toolCount: number;
|
|
70
|
+
error?: string;
|
|
71
|
+
}>;
|
|
72
|
+
/**
|
|
73
|
+
* Start a new LLM call step
|
|
74
|
+
*/
|
|
75
|
+
private startLLMStep;
|
|
76
|
+
/**
|
|
77
|
+
* Start a new tool execution step
|
|
78
|
+
*/
|
|
79
|
+
private startToolStep;
|
|
80
|
+
/**
|
|
81
|
+
* Complete an execution step
|
|
82
|
+
*/
|
|
83
|
+
private completeStep;
|
|
84
|
+
/**
|
|
85
|
+
* Update aggregate statistics with token usage
|
|
86
|
+
*/
|
|
87
|
+
private updateStatsWithTokenUsage;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agents/codemie-code/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAA6B,MAAM,YAAY,CAAC;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM/D,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAA2B;IACvD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,KAAK,CAYX;gBAEU,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAmB1D;;OAEG;IACH,OAAO,CAAC,SAAS;IAqEjB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,cAAc,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0KvG;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4F1B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BtD;;OAEG;IACH,YAAY,IAAI,IAAI;IA4BpB;;OAEG;IACH,UAAU,IAAI,WAAW,EAAE;IAI3B;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;OAEG;IACH,QAAQ,IAAI,cAAc,EAAE;IAI5B;;OAEG;IACH,SAAS,IAAI,aAAa;IAQ1B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAsBF;;OAEG;IACH,OAAO,CAAC,YAAY;IA8BpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAclC"}
|