proagents 1.6.6 → 1.6.7
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/lib/commands/init.js +72 -0
- package/package.json +1 -1
package/lib/commands/init.js
CHANGED
|
@@ -595,6 +595,35 @@ function detectProjectType(targetDir) {
|
|
|
595
595
|
return detectedTypes;
|
|
596
596
|
}
|
|
597
597
|
|
|
598
|
+
/**
|
|
599
|
+
* Prompt user for .gitignore preference
|
|
600
|
+
*/
|
|
601
|
+
async function promptGitignoreChoice() {
|
|
602
|
+
const rl = createInterface({
|
|
603
|
+
input: process.stdin,
|
|
604
|
+
output: process.stdout
|
|
605
|
+
});
|
|
606
|
+
|
|
607
|
+
const question = (prompt) => new Promise(resolve => rl.question(prompt, resolve));
|
|
608
|
+
|
|
609
|
+
console.log(chalk.bold('\nGit Ignore Settings'));
|
|
610
|
+
console.log(chalk.gray('─'.repeat(40) + '\n'));
|
|
611
|
+
|
|
612
|
+
console.log(chalk.cyan('What to ignore in .gitignore?'));
|
|
613
|
+
console.log(chalk.white(' 1. Local data only') + chalk.green(' (recommended for teams)'));
|
|
614
|
+
console.log(chalk.gray(' Ignores: cache, learning, sessions, active-features'));
|
|
615
|
+
console.log(chalk.gray(' Shares: prompts, templates, config with team'));
|
|
616
|
+
console.log('');
|
|
617
|
+
console.log(chalk.white(' 2. Entire .proagents/ folder') + chalk.gray(' (solo developers)'));
|
|
618
|
+
console.log(chalk.gray(' Nothing shared with git'));
|
|
619
|
+
console.log('');
|
|
620
|
+
|
|
621
|
+
const choice = await question(chalk.yellow(' Choose (1 or 2, default=1): '));
|
|
622
|
+
rl.close();
|
|
623
|
+
|
|
624
|
+
return choice.trim() === '2' ? 'full' : 'local';
|
|
625
|
+
}
|
|
626
|
+
|
|
598
627
|
/**
|
|
599
628
|
* Interactive prompt for project configuration
|
|
600
629
|
*/
|
|
@@ -879,6 +908,49 @@ Generated by [ProAgents](https://github.com/prakashpro3/proAgents)
|
|
|
879
908
|
}
|
|
880
909
|
console.log(chalk.green('✓ Created docs/ folder structure'));
|
|
881
910
|
|
|
911
|
+
// Add .proagents/ to .gitignore - prompt user for preference
|
|
912
|
+
const gitignorePath = join(targetDir, '.gitignore');
|
|
913
|
+
const existingGitignore = existsSync(gitignorePath) ? readFileSync(gitignorePath, 'utf-8') : '';
|
|
914
|
+
|
|
915
|
+
if (!existingGitignore.includes('.proagents')) {
|
|
916
|
+
// Prompt user for gitignore preference
|
|
917
|
+
const gitignoreChoice = await promptGitignoreChoice();
|
|
918
|
+
|
|
919
|
+
let gitignoreEntries;
|
|
920
|
+
if (gitignoreChoice === 'full') {
|
|
921
|
+
// Ignore entire .proagents/ folder
|
|
922
|
+
gitignoreEntries = [
|
|
923
|
+
'# ProAgents - Entire folder ignored (not shared with team)',
|
|
924
|
+
'.proagents/',
|
|
925
|
+
''
|
|
926
|
+
].join('\n');
|
|
927
|
+
} else {
|
|
928
|
+
// Default: Ignore only local data
|
|
929
|
+
gitignoreEntries = [
|
|
930
|
+
'# ProAgents - Local data only (workflow config shared with team)',
|
|
931
|
+
'.proagents/cache/',
|
|
932
|
+
'.proagents/.learning/',
|
|
933
|
+
'.proagents/sessions/',
|
|
934
|
+
'.proagents/active-features/',
|
|
935
|
+
'.proagents/backups/',
|
|
936
|
+
'.proagents/*.log',
|
|
937
|
+
''
|
|
938
|
+
].join('\n');
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
if (existingGitignore) {
|
|
942
|
+
writeFileSync(gitignorePath, existingGitignore + '\n' + gitignoreEntries);
|
|
943
|
+
} else {
|
|
944
|
+
writeFileSync(gitignorePath, gitignoreEntries);
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
if (gitignoreChoice === 'full') {
|
|
948
|
+
console.log(chalk.green('✓ Added .proagents/ to .gitignore (entire folder)'));
|
|
949
|
+
} else {
|
|
950
|
+
console.log(chalk.green('✓ Added .proagents/ local data to .gitignore'));
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
|
|
882
954
|
// Create placeholder CHANGELOG.md if not exists
|
|
883
955
|
const changelogPath = join(targetDir, 'CHANGELOG.md');
|
|
884
956
|
if (!existsSync(changelogPath)) {
|