claude-autopm 2.8.5 → 2.8.6

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.
@@ -918,13 +918,34 @@ See: https://github.com/rafeekpro/ClaudeAutoPM
918
918
  }
919
919
 
920
920
  for (const command of metadata.commands) {
921
- if (!command.file) continue;
922
- const sourcePath = path.join(pluginPath, command.file);
923
- const targetPath = path.join(targetDir, path.basename(command.file));
921
+ // Handle subdirectory collections with auto-discovery
922
+ if (command.subdirectory && command.discovery === 'auto') {
923
+ const commandsSourceDir = path.join(pluginPath, command.subdirectory);
924
+
925
+ if (fs.existsSync(commandsSourceDir)) {
926
+ // Auto-discover all .md files in subdirectory
927
+ const files = fs.readdirSync(commandsSourceDir);
928
+ for (const file of files) {
929
+ if (file.endsWith('.md')) {
930
+ const sourcePath = path.join(commandsSourceDir, file);
931
+ const targetPath = path.join(targetDir, file);
932
+
933
+ if (fs.existsSync(sourcePath) && !fs.existsSync(targetPath)) {
934
+ fs.copyFileSync(sourcePath, targetPath);
935
+ commandsInstalled++;
936
+ }
937
+ }
938
+ }
939
+ }
940
+ } else if (command.file) {
941
+ // Handle individual command files
942
+ const sourcePath = path.join(pluginPath, command.file);
943
+ const targetPath = path.join(targetDir, path.basename(command.file));
924
944
 
925
- if (fs.existsSync(sourcePath) && !fs.existsSync(targetPath)) {
926
- fs.copyFileSync(sourcePath, targetPath);
927
- commandsInstalled++;
945
+ if (fs.existsSync(sourcePath) && !fs.existsSync(targetPath)) {
946
+ fs.copyFileSync(sourcePath, targetPath);
947
+ commandsInstalled++;
948
+ }
928
949
  }
929
950
  }
930
951
  }
@@ -1020,9 +1041,11 @@ See: https://github.com/rafeekpro/ClaudeAutoPM
1020
1041
  }
1021
1042
  }
1022
1043
 
1044
+ const displayName = metadata.displayName || metadata.name || pluginName;
1045
+
1023
1046
  installedPlugins.push({
1024
1047
  name: pluginName,
1025
- displayName: metadata.displayName,
1048
+ displayName: displayName,
1026
1049
  agents: agentsInstalled,
1027
1050
  commands: commandsInstalled,
1028
1051
  rules: rulesInstalled
@@ -1033,7 +1056,7 @@ See: https://github.com/rafeekpro/ClaudeAutoPM
1033
1056
  if (commandsInstalled > 0) summary.push(`${commandsInstalled} commands`);
1034
1057
  if (rulesInstalled > 0) summary.push(`${rulesInstalled} rules`);
1035
1058
 
1036
- this.printSuccess(`${metadata.displayName} installed (${summary.join(', ') || 'no resources'})`);
1059
+ this.printSuccess(`${displayName} installed (${summary.join(', ') || 'no resources'})`);
1037
1060
  } catch (error) {
1038
1061
  failedPlugins.push({ name: pluginName, error: error.message });
1039
1062
  this.printWarning(`Failed to install ${pluginName}: ${error.message}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-autopm",
3
- "version": "2.8.5",
3
+ "version": "2.8.6",
4
4
  "description": "Autonomous Project Management Framework for Claude Code - Advanced AI-powered development automation",
5
5
  "main": "bin/autopm.js",
6
6
  "workspaces": [
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@claudeautopm/plugin-core",
3
3
  "version": "2.0.0",
4
+ "displayName": "Core Framework",
4
5
  "description": "Core framework functionality for ClaudeAutoPM",
5
6
  "schemaVersion": "2.0",
6
7
  "metadata": {