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.
@@ -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)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proagents",
3
- "version": "1.6.6",
3
+ "version": "1.6.7",
4
4
  "description": "AI-agnostic development workflow framework that automates the full software development lifecycle",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",