ai-dev-diary
Version:
Intelligent development diary system for AI-assisted projects
111 lines • 4.25 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.initCommand = void 0;
const commander_1 = require("commander");
const chalk_1 = __importDefault(require("chalk"));
const inquirer_1 = __importDefault(require("inquirer"));
const ora_1 = __importDefault(require("ora"));
const boxen_1 = __importDefault(require("boxen"));
const diary_manager_1 = require("../core/diary-manager");
const github_1 = require("../utils/github");
exports.initCommand = new commander_1.Command('init')
.description('Initialize AI diary in current project')
.option('-y, --yes', 'Skip prompts and use defaults')
.action(async (options) => {
const diaryManager = new diary_manager_1.DiaryManager();
if (diaryManager.isInitialized()) {
console.log(chalk_1.default.yellow('⚠️ Diary already initialized in this project'));
return;
}
console.log((0, boxen_1.default)(chalk_1.default.blue.bold('AI Development Diary Setup') +
'\n\n' +
chalk_1.default.gray('This will create a .ai-diary directory in your project\n' +
'to track insights, mistakes, and learnings.'), {
padding: 1,
margin: 1,
borderStyle: 'round',
borderColor: 'blue',
}));
let config = {};
const detectedUsername = await (0, github_1.detectGitHubUsername)();
if (!options.yes) {
const answers = await inquirer_1.default.prompt([
{
type: 'input',
name: 'author',
message: 'Your name:',
default: options.author || detectedUsername || process.env.USER || 'Unknown',
},
{
type: 'input',
name: 'team',
message: 'Team name (optional):',
},
{
type: 'confirm',
name: 'gitIntegration',
message: 'Enable Git integration?',
default: true,
},
{
type: 'list',
name: 'aiModel',
message: 'Primary AI model:',
choices: [
'claude-3',
'gpt-4',
'gpt-3.5',
'other',
],
default: 'claude-3',
},
]);
config = {
author: answers.author,
team: answers.team || undefined,
ai: {
model: answers.aiModel,
autoContext: true,
},
git: {
autoEntries: answers.gitIntegration,
linkCommits: answers.gitIntegration,
},
};
}
else {
config = {
author: options.author || detectedUsername || process.env.USER || 'Unknown',
teamMode: options.team || false,
githubUsername: detectedUsername || undefined,
ai: {
model: 'claude-3',
autoContext: true,
},
git: {
autoEntries: true,
linkCommits: true,
},
};
}
const spinner = (0, ora_1.default)('Initializing diary...').start();
try {
await diaryManager.initialize(config);
spinner.succeed('Diary initialized successfully!');
console.log('\n' + chalk_1.default.green('✅ Setup complete!'));
console.log('\nNext steps:');
console.log(chalk_1.default.gray(' 1. Create your first entry:') + chalk_1.default.cyan(' ai-diary entry'));
console.log(chalk_1.default.gray(' 2. View current context:') + chalk_1.default.cyan(' ai-diary context read'));
console.log(chalk_1.default.gray(' 3. Install git hooks:') + chalk_1.default.cyan(' ai-diary install-hooks'));
console.log('\n' + chalk_1.default.gray('For more help:') + chalk_1.default.cyan(' ai-diary --help'));
}
catch (error) {
spinner.fail('Failed to initialize diary');
console.error(chalk_1.default.red(error));
process.exit(1);
}
});
//# sourceMappingURL=init.js.map