@codemieai/code 0.0.1
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/agents/README.md +298 -0
- package/.claude/agents/release-manager.md +857 -0
- package/CLAUDE.md +856 -0
- package/LICENSE +201 -0
- package/README.md +917 -0
- package/bin/codemie-code.js +23 -0
- package/bin/codemie.js +8 -0
- package/dist/agents/adapters/aider.d.ts +12 -0
- package/dist/agents/adapters/aider.d.ts.map +1 -0
- package/dist/agents/adapters/aider.js +80 -0
- package/dist/agents/adapters/aider.js.map +1 -0
- package/dist/agents/adapters/claude-code.d.ts +12 -0
- package/dist/agents/adapters/claude-code.d.ts.map +1 -0
- package/dist/agents/adapters/claude-code.js +98 -0
- package/dist/agents/adapters/claude-code.js.map +1 -0
- package/dist/agents/adapters/codemie-code.d.ts +12 -0
- package/dist/agents/adapters/codemie-code.d.ts.map +1 -0
- package/dist/agents/adapters/codemie-code.js +42 -0
- package/dist/agents/adapters/codemie-code.js.map +1 -0
- package/dist/agents/adapters/codex.d.ts +12 -0
- package/dist/agents/adapters/codex.d.ts.map +1 -0
- package/dist/agents/adapters/codex.js +80 -0
- package/dist/agents/adapters/codex.js.map +1 -0
- package/dist/agents/registry.d.ts +18 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +35 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/cli/cli.d.ts +4 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +107 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +128 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/install.d.ts +3 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +76 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +3 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +50 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +459 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/run.d.ts +3 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +41 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +3 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +71 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/commands/version.d.ts +3 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +28 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +50 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/code/agent-events.d.ts +39 -0
- package/dist/code/agent-events.d.ts.map +1 -0
- package/dist/code/agent-events.js +4 -0
- package/dist/code/agent-events.js.map +1 -0
- package/dist/code/agent.d.ts +19 -0
- package/dist/code/agent.d.ts.map +1 -0
- package/dist/code/agent.js +144 -0
- package/dist/code/agent.js.map +1 -0
- package/dist/code/config.d.ts +13 -0
- package/dist/code/config.d.ts.map +1 -0
- package/dist/code/config.js +41 -0
- package/dist/code/config.js.map +1 -0
- package/dist/code/index.d.ts +19 -0
- package/dist/code/index.d.ts.map +1 -0
- package/dist/code/index.js +400 -0
- package/dist/code/index.js.map +1 -0
- package/dist/code/prompts.d.ts +2 -0
- package/dist/code/prompts.d.ts.map +1 -0
- package/dist/code/prompts.js +45 -0
- package/dist/code/prompts.js.map +1 -0
- package/dist/code/tools/command.d.ts +8 -0
- package/dist/code/tools/command.d.ts.map +1 -0
- package/dist/code/tools/command.js +83 -0
- package/dist/code/tools/command.js.map +1 -0
- package/dist/code/tools/diff-utils.d.ts +2 -0
- package/dist/code/tools/diff-utils.d.ts.map +1 -0
- package/dist/code/tools/diff-utils.js +45 -0
- package/dist/code/tools/diff-utils.js.map +1 -0
- package/dist/code/tools/filesystem.d.ts +11 -0
- package/dist/code/tools/filesystem.d.ts.map +1 -0
- package/dist/code/tools/filesystem.js +442 -0
- package/dist/code/tools/filesystem.js.map +1 -0
- package/dist/code/tools/git.d.ts +7 -0
- package/dist/code/tools/git.d.ts.map +1 -0
- package/dist/code/tools/git.js +111 -0
- package/dist/code/tools/git.js.map +1 -0
- package/dist/code/tools/mcp.d.ts +13 -0
- package/dist/code/tools/mcp.d.ts.map +1 -0
- package/dist/code/tools/mcp.js +230 -0
- package/dist/code/tools/mcp.js.map +1 -0
- package/dist/data/tips.json +118 -0
- package/dist/env/manager.d.ts +14 -0
- package/dist/env/manager.d.ts.map +1 -0
- package/dist/env/manager.js +99 -0
- package/dist/env/manager.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/terminal-ui.d.ts +73 -0
- package/dist/ui/terminal-ui.d.ts.map +1 -0
- package/dist/ui/terminal-ui.js +900 -0
- package/dist/ui/terminal-ui.js.map +1 -0
- package/dist/utils/async-tips.d.ts +64 -0
- package/dist/utils/async-tips.d.ts.map +1 -0
- package/dist/utils/async-tips.js +242 -0
- package/dist/utils/async-tips.js.map +1 -0
- package/dist/utils/env-mapper.d.ts +40 -0
- package/dist/utils/env-mapper.d.ts.map +1 -0
- package/dist/utils/env-mapper.js +122 -0
- package/dist/utils/env-mapper.js.map +1 -0
- package/dist/utils/errors.d.ts +25 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +58 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exec.d.ts +12 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +49 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +53 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/tips.d.ts +35 -0
- package/dist/utils/tips.d.ts.map +1 -0
- package/dist/utils/tips.js +132 -0
- package/dist/utils/tips.js.map +1 -0
- package/docs/USER_GUIDE.md +573 -0
- package/eslint.config.mjs +43 -0
- package/package.json +66 -0
- package/tests/agent-direct.test.mjs +45 -0
- package/tests/agent-output.test.mjs +64 -0
- package/tests/codemie-code.test.mjs +42 -0
- package/tests/context7-only.test.mjs +42 -0
- package/tests/conversation-flow.test.mjs +63 -0
- package/tests/interactive-simulation.test.mjs +60 -0
- package/tests/live-output.test.mjs +53 -0
- package/tests/mcp-context7.test.mjs +105 -0
- package/tests/mcp-e2e.test.mjs +109 -0
- package/tests/mcp-time-server.test.mjs +58 -0
- package/tests/streaming.test.mjs +57 -0
- package/tests/test-helpers.mjs +94 -0
- package/tests/text-wrapping.test.mjs +33 -0
- package/tests/tool-count.test.mjs +81 -0
- package/tests/ui-format.test.mjs +39 -0
- package/tests/ui-state.test.mjs +72 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDoctorCommand = createDoctorCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const tips_1 = require("../../utils/tips");
|
|
9
|
+
const exec_1 = require("../../utils/exec");
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const registry_1 = require("../../agents/registry");
|
|
12
|
+
function createDoctorCommand() {
|
|
13
|
+
const command = new commander_1.Command('doctor');
|
|
14
|
+
command
|
|
15
|
+
.description('Check system health and configuration')
|
|
16
|
+
.action(async () => {
|
|
17
|
+
console.log(chalk_1.default.bold('\n🔍 CodeMie Code Health Check\n'));
|
|
18
|
+
let hasIssues = false;
|
|
19
|
+
// Check Node.js version
|
|
20
|
+
console.log(chalk_1.default.bold('Node.js:'));
|
|
21
|
+
try {
|
|
22
|
+
const nodeVersion = process.version;
|
|
23
|
+
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);
|
|
24
|
+
if (majorVersion >= 18) {
|
|
25
|
+
console.log(` ${chalk_1.default.green('✓')} Version ${nodeVersion}`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
console.log(` ${chalk_1.default.yellow('⚠')} Version ${nodeVersion} (recommended: >= 18.0.0)`);
|
|
29
|
+
hasIssues = true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
console.log(` ${chalk_1.default.red('✗')} Failed to check version`);
|
|
34
|
+
hasIssues = true;
|
|
35
|
+
}
|
|
36
|
+
console.log();
|
|
37
|
+
// Check npm
|
|
38
|
+
console.log(chalk_1.default.bold('npm:'));
|
|
39
|
+
try {
|
|
40
|
+
const result = await (0, exec_1.exec)('npm', ['--version']);
|
|
41
|
+
console.log(` ${chalk_1.default.green('✓')} Version ${result.stdout}`);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
console.log(` ${chalk_1.default.red('✗')} npm not found`);
|
|
45
|
+
hasIssues = true;
|
|
46
|
+
}
|
|
47
|
+
console.log();
|
|
48
|
+
// Check git
|
|
49
|
+
console.log(chalk_1.default.bold('git:'));
|
|
50
|
+
try {
|
|
51
|
+
const result = await (0, exec_1.exec)('git', ['--version']);
|
|
52
|
+
console.log(` ${chalk_1.default.green('✓')} ${result.stdout}`);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
console.log(` ${chalk_1.default.yellow('⚠')} git not found (optional)`);
|
|
56
|
+
}
|
|
57
|
+
console.log();
|
|
58
|
+
// Check AI Configuration
|
|
59
|
+
console.log(chalk_1.default.bold('AI Configuration:'));
|
|
60
|
+
// Check for any valid base URL
|
|
61
|
+
const baseUrl = process.env.CODEMIE_BASE_URL ||
|
|
62
|
+
process.env.ANTHROPIC_BASE_URL ||
|
|
63
|
+
process.env.OPENAI_BASE_URL;
|
|
64
|
+
// Check for any valid auth token
|
|
65
|
+
const authToken = process.env.CODEMIE_AUTH_TOKEN ||
|
|
66
|
+
process.env.CODEMIE_API_KEY ||
|
|
67
|
+
process.env.ANTHROPIC_AUTH_TOKEN ||
|
|
68
|
+
process.env.ANTHROPIC_API_KEY ||
|
|
69
|
+
process.env.OPENAI_AUTH_TOKEN ||
|
|
70
|
+
process.env.OPENAI_API_KEY;
|
|
71
|
+
if (baseUrl) {
|
|
72
|
+
console.log(` ${chalk_1.default.green('✓')} Base URL: ${baseUrl}`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.log(` ${chalk_1.default.red('✗')} Base URL not set`);
|
|
76
|
+
console.log(` Set: CODEMIE_BASE_URL (or provider-specific: ANTHROPIC_BASE_URL, OPENAI_BASE_URL)`);
|
|
77
|
+
hasIssues = true;
|
|
78
|
+
}
|
|
79
|
+
if (authToken) {
|
|
80
|
+
const masked = authToken.substring(0, 4) + '***';
|
|
81
|
+
console.log(` ${chalk_1.default.green('✓')} Auth Token: ${masked}`);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.log(` ${chalk_1.default.red('✗')} Auth Token not set`);
|
|
85
|
+
console.log(` Set: CODEMIE_AUTH_TOKEN (or provider-specific: ANTHROPIC_AUTH_TOKEN, OPENAI_API_KEY)`);
|
|
86
|
+
hasIssues = true;
|
|
87
|
+
}
|
|
88
|
+
// Check model configuration
|
|
89
|
+
const model = process.env.CODEMIE_MODEL ||
|
|
90
|
+
process.env.ANTHROPIC_MODEL ||
|
|
91
|
+
process.env.OPENAI_MODEL;
|
|
92
|
+
if (model) {
|
|
93
|
+
console.log(` ${chalk_1.default.green('✓')} Model: ${model}`);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.log(` ${chalk_1.default.yellow('⚠')} Model not set (will use default: claude-4-5-sonnet)`);
|
|
97
|
+
}
|
|
98
|
+
console.log();
|
|
99
|
+
// Check installed agents
|
|
100
|
+
console.log(chalk_1.default.bold('Installed Agents:'));
|
|
101
|
+
const installedAgents = await registry_1.AgentRegistry.getInstalledAgents();
|
|
102
|
+
if (installedAgents.length > 0) {
|
|
103
|
+
for (const agent of installedAgents) {
|
|
104
|
+
const version = await agent.getVersion();
|
|
105
|
+
const versionStr = version ? ` (${version})` : '';
|
|
106
|
+
console.log(` ${chalk_1.default.green('✓')} ${agent.displayName}${versionStr}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
console.log(` ${chalk_1.default.yellow('⚠')} No agents installed (CodeMie Code is built-in)`);
|
|
111
|
+
}
|
|
112
|
+
console.log();
|
|
113
|
+
// Summary
|
|
114
|
+
if (hasIssues) {
|
|
115
|
+
console.log(chalk_1.default.yellow('⚠ Some issues detected. Please resolve them for optimal performance.\n'));
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.log(chalk_1.default.green('✓ All checks passed!\n'));
|
|
120
|
+
// Show a helpful tip after successful health check (unless in assistant context)
|
|
121
|
+
if (!process.env.CODEMIE_IN_ASSISTANT) {
|
|
122
|
+
tips_1.tipDisplay.showRandomTip();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return command;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,IAAI,OAAO,CA4E9C"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createInstallCommand = createInstallCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const registry_1 = require("../../agents/registry");
|
|
9
|
+
const logger_1 = require("../../utils/logger");
|
|
10
|
+
const async_tips_1 = require("../../utils/async-tips");
|
|
11
|
+
const errors_1 = require("../../utils/errors");
|
|
12
|
+
const ora_1 = __importDefault(require("ora"));
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
function createInstallCommand() {
|
|
15
|
+
const command = new commander_1.Command('install');
|
|
16
|
+
command
|
|
17
|
+
.description('Install an agent')
|
|
18
|
+
.argument('[agent]', 'Agent name to install')
|
|
19
|
+
.action(async (agentName) => {
|
|
20
|
+
try {
|
|
21
|
+
// If no agent name provided, show available agents
|
|
22
|
+
if (!agentName) {
|
|
23
|
+
const agents = registry_1.AgentRegistry.getAllAgents();
|
|
24
|
+
console.log();
|
|
25
|
+
console.log(chalk_1.default.bold('Available agents to install:\n'));
|
|
26
|
+
for (const agent of agents) {
|
|
27
|
+
const installed = await agent.isInstalled();
|
|
28
|
+
const status = installed ? chalk_1.default.green('✓ installed') : chalk_1.default.yellow('○ not installed');
|
|
29
|
+
const version = installed ? await agent.getVersion() : null;
|
|
30
|
+
const versionStr = version ? chalk_1.default.gray(` (${version})`) : '';
|
|
31
|
+
console.log(chalk_1.default.bold(` ${agent.displayName}`) + versionStr);
|
|
32
|
+
console.log(` Command: ${chalk_1.default.cyan(`codemie install ${agent.name}`)}`);
|
|
33
|
+
console.log(` Status: ${status}`);
|
|
34
|
+
console.log(` ${chalk_1.default.gray(agent.description)}`);
|
|
35
|
+
console.log();
|
|
36
|
+
}
|
|
37
|
+
console.log(chalk_1.default.cyan('💡 Tip:') + ' Run ' + chalk_1.default.blueBright('codemie install <agent>') + ' to install an agent');
|
|
38
|
+
console.log();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const agent = registry_1.AgentRegistry.getAgent(agentName);
|
|
42
|
+
if (!agent) {
|
|
43
|
+
throw new errors_1.AgentInstallationError(agentName, `Unknown agent. Use 'codemie list' to see available agents.`);
|
|
44
|
+
}
|
|
45
|
+
// Check if already installed
|
|
46
|
+
if (await agent.isInstalled()) {
|
|
47
|
+
logger_1.logger.info(`${agent.displayName} is already installed`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const spinner = (0, ora_1.default)(`Installing ${agent.displayName}...`).start();
|
|
51
|
+
try {
|
|
52
|
+
// Show tips during installation
|
|
53
|
+
const installPromise = agent.install();
|
|
54
|
+
const stopTips = async_tips_1.asyncTipDisplay.showDuring(installPromise);
|
|
55
|
+
await installPromise;
|
|
56
|
+
stopTips();
|
|
57
|
+
spinner.succeed(`${agent.displayName} installed successfully`);
|
|
58
|
+
// Show how to run the newly installed agent
|
|
59
|
+
console.log();
|
|
60
|
+
console.log(chalk_1.default.cyan('💡 Next steps:'));
|
|
61
|
+
console.log(chalk_1.default.white(` Run the agent with:`), chalk_1.default.blueBright(`codemie run ${agentName}`));
|
|
62
|
+
console.log();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
spinner.fail(`Failed to install ${agent.displayName}`);
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
logger_1.logger.error('Installation failed:', error);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return command;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,iBAAiB,IAAI,OAAO,CA2C3C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createListCommand = createListCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const registry_1 = require("../../agents/registry");
|
|
9
|
+
const logger_1 = require("../../utils/logger");
|
|
10
|
+
const tips_1 = require("../../utils/tips");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
function createListCommand() {
|
|
13
|
+
const command = new commander_1.Command('list');
|
|
14
|
+
command
|
|
15
|
+
.description('List all available agents')
|
|
16
|
+
.option('-i, --installed', 'Show only installed agents')
|
|
17
|
+
.action(async (options) => {
|
|
18
|
+
try {
|
|
19
|
+
const agents = options.installed
|
|
20
|
+
? await registry_1.AgentRegistry.getInstalledAgents()
|
|
21
|
+
: registry_1.AgentRegistry.getAllAgents();
|
|
22
|
+
if (agents.length === 0) {
|
|
23
|
+
logger_1.logger.info(options.installed ? 'No agents installed' : 'No agents available');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk_1.default.bold('\nAvailable Agents:\n'));
|
|
27
|
+
for (const agent of agents) {
|
|
28
|
+
const installed = await agent.isInstalled();
|
|
29
|
+
const status = installed ? chalk_1.default.green('✓ installed') : chalk_1.default.gray('not installed');
|
|
30
|
+
const version = installed ? await agent.getVersion() : null;
|
|
31
|
+
const versionStr = version ? chalk_1.default.gray(` (${version})`) : '';
|
|
32
|
+
console.log(chalk_1.default.bold(` ${agent.displayName}`) + versionStr);
|
|
33
|
+
console.log(` Command: ${chalk_1.default.cyan(agent.name)}`);
|
|
34
|
+
console.log(` Status: ${status}`);
|
|
35
|
+
console.log(` ${chalk_1.default.gray(agent.description)}`);
|
|
36
|
+
console.log();
|
|
37
|
+
}
|
|
38
|
+
// Show a helpful tip after listing agents (unless in assistant context)
|
|
39
|
+
if (!options.installed && !process.env.CODEMIE_IN_ASSISTANT) {
|
|
40
|
+
tips_1.tipDisplay.showRandomTip();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger_1.logger.error('Failed to list agents:', error);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return command;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":";;;;;AAMA,8CA2CC;AAjDD,yCAAoC;AACpC,oDAAsD;AACtD,+CAA4C;AAC5C,2CAA8C;AAC9C,kDAA0B;AAE1B,SAAgB,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;SACJ,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS;gBAC9B,CAAC,CAAC,MAAM,wBAAa,CAAC,kBAAkB,EAAE;gBAC1C,CAAC,CAAC,wBAAa,CAAC,YAAY,EAAE,CAAC;YAEjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAEjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YAED,wEAAwE;YACxE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;gBAC5D,iBAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,eAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,gBAAgB,IAAI,OAAO,CAyD1C"}
|