@noanswer/context-compose
Version:
Orchestrate complex AI interactions with Context Compose. A powerful CLI and server for building, validating, and managing context for large language models using the Model Context Protocol (MCP).
51 lines • 1.76 kB
JavaScript
import fs from 'node:fs';
import inquirer from 'inquirer';
import { handleError, logError } from '../../core/errors.js';
import { executeInitTool } from '../../core/tools/init.js';
async function confirmOverwrite() {
const { overwrite } = await inquirer.prompt([
{
type: 'confirm',
name: 'overwrite',
message: 'A .contextcompose directory already exists. Do you want to overwrite it?',
default: false,
},
]);
return overwrite;
}
/**
* Initializes the project by creating a .contextcompose directory and necessary files.
* @param program - The commander program instance.
*/
export function initCommand(program) {
program
.command('init')
.description('Initializes the project configuration.')
.action(async () => {
try {
if (fs.existsSync('.contextcompose')) {
const overwrite = await confirmOverwrite();
if (!overwrite) {
console.info('Operation cancelled.');
process.exit(0);
}
}
const result = await executeInitTool({ projectRoot: process.cwd() });
if (result.success) {
console.info(result.message);
process.exit(0);
}
else {
console.error(`❌ ${result.message}`);
process.exit(1);
}
}
catch (error) {
logError(error, { command: 'init', cwd: process.cwd() });
const errorInfo = handleError(error);
console.error(`❌ ${errorInfo.message}`);
process.exit(errorInfo.statusCode >= 500 ? 1 : 0);
}
});
}
//# sourceMappingURL=init.js.map