monomind 1.9.0 → 1.9.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monomind",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "Monomind - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -959,19 +959,28 @@ async function copySkills(targetDir, options, result) {
959
959
  result.errors.push('Could not find source skills directory');
960
960
  return;
961
961
  }
962
- // Copy each skill
963
- for (const skillName of [...new Set(skillsToCopy)]) {
962
+ // Remove stale skill directories no longer in the current version's map
963
+ const knownSkills = new Set([...new Set(skillsToCopy)]);
964
+ if (fs.existsSync(targetSkillsDir)) {
965
+ for (const existing of fs.readdirSync(targetSkillsDir)) {
966
+ if (!knownSkills.has(existing)) {
967
+ const stalePath = path.join(targetSkillsDir, existing);
968
+ fs.rmSync(stalePath, { recursive: true, force: true });
969
+ result.created.files.push(`[cleaned] .claude/skills/${existing} (stale)`);
970
+ }
971
+ }
972
+ }
973
+ // Always copy/overwrite skills (never skip — ensures new version content lands)
974
+ for (const skillName of knownSkills) {
964
975
  const sourcePath = path.join(sourceSkillsDir, skillName);
965
976
  const targetPath = path.join(targetSkillsDir, skillName);
966
977
  if (fs.existsSync(sourcePath)) {
967
- if (!fs.existsSync(targetPath) || options.force) {
968
- copyDirRecursive(sourcePath, targetPath);
969
- result.created.files.push(`.claude/skills/${skillName}`);
970
- result.summary.skillsCount++;
971
- }
972
- else {
973
- result.skipped.push(`.claude/skills/${skillName}`);
978
+ if (fs.existsSync(targetPath)) {
979
+ fs.rmSync(targetPath, { recursive: true, force: true });
974
980
  }
981
+ copyDirRecursive(sourcePath, targetPath);
982
+ result.created.files.push(`.claude/skills/${skillName}`);
983
+ result.summary.skillsCount++;
975
984
  }
976
985
  }
977
986
  }
@@ -1038,24 +1047,33 @@ async function copyCommands(targetDir, options, result) {
1038
1047
  result.errors.push('Could not find source commands directory');
1039
1048
  return;
1040
1049
  }
1041
- // Copy each command/directory
1042
- for (const cmdName of [...new Set(commandsToCopy)]) {
1050
+ // Remove stale command files/directories no longer in the current version's map
1051
+ const knownCommands = new Set([...new Set(commandsToCopy)]);
1052
+ if (fs.existsSync(targetCommandsDir)) {
1053
+ for (const existing of fs.readdirSync(targetCommandsDir)) {
1054
+ if (!knownCommands.has(existing)) {
1055
+ const stalePath = path.join(targetCommandsDir, existing);
1056
+ fs.rmSync(stalePath, { recursive: true, force: true });
1057
+ result.created.files.push(`[cleaned] .claude/commands/${existing} (stale)`);
1058
+ }
1059
+ }
1060
+ }
1061
+ // Always copy/overwrite commands (never skip — ensures new version content lands)
1062
+ for (const cmdName of knownCommands) {
1043
1063
  const sourcePath = path.join(sourceCommandsDir, cmdName);
1044
1064
  const targetPath = path.join(targetCommandsDir, cmdName);
1045
1065
  if (fs.existsSync(sourcePath)) {
1046
- if (!fs.existsSync(targetPath) || options.force) {
1047
- if (fs.statSync(sourcePath).isDirectory()) {
1048
- copyDirRecursive(sourcePath, targetPath);
1049
- }
1050
- else {
1051
- fs.copyFileSync(sourcePath, targetPath);
1052
- }
1053
- result.created.files.push(`.claude/commands/${cmdName}`);
1054
- result.summary.commandsCount++;
1066
+ if (fs.existsSync(targetPath)) {
1067
+ fs.rmSync(targetPath, { recursive: true, force: true });
1068
+ }
1069
+ if (fs.statSync(sourcePath).isDirectory()) {
1070
+ copyDirRecursive(sourcePath, targetPath);
1055
1071
  }
1056
1072
  else {
1057
- result.skipped.push(`.claude/commands/${cmdName}`);
1073
+ fs.copyFileSync(sourcePath, targetPath);
1058
1074
  }
1075
+ result.created.files.push(`.claude/commands/${cmdName}`);
1076
+ result.summary.commandsCount++;
1059
1077
  }
1060
1078
  }
1061
1079
  }
@@ -1094,21 +1112,30 @@ async function copyAgents(targetDir, options, result) {
1094
1112
  result.errors.push('Could not find source agents directory');
1095
1113
  return;
1096
1114
  }
1097
- // Copy each agent category
1098
- for (const agentCategory of [...new Set(agentsToCopy)]) {
1115
+ // Remove stale agent category directories no longer in the current version's map
1116
+ const knownAgents = new Set([...new Set(agentsToCopy)]);
1117
+ if (fs.existsSync(targetAgentsDir)) {
1118
+ for (const existing of fs.readdirSync(targetAgentsDir)) {
1119
+ if (!knownAgents.has(existing)) {
1120
+ const stalePath = path.join(targetAgentsDir, existing);
1121
+ fs.rmSync(stalePath, { recursive: true, force: true });
1122
+ result.created.files.push(`[cleaned] .claude/agents/${existing} (stale)`);
1123
+ }
1124
+ }
1125
+ }
1126
+ // Always copy/overwrite agents (never skip — ensures new version content lands)
1127
+ for (const agentCategory of knownAgents) {
1099
1128
  const sourcePath = path.join(sourceAgentsDir, agentCategory);
1100
1129
  const targetPath = path.join(targetAgentsDir, agentCategory);
1101
1130
  if (fs.existsSync(sourcePath)) {
1102
- if (!fs.existsSync(targetPath) || options.force) {
1103
- copyDirRecursive(sourcePath, targetPath);
1104
- // Count agent files (.md only — .yaml agents were migrated to .md)
1105
- const mdFiles = countFiles(sourcePath, '.md');
1106
- result.summary.agentsCount += mdFiles;
1107
- result.created.files.push(`.claude/agents/${agentCategory}`);
1108
- }
1109
- else {
1110
- result.skipped.push(`.claude/agents/${agentCategory}`);
1131
+ if (fs.existsSync(targetPath)) {
1132
+ fs.rmSync(targetPath, { recursive: true, force: true });
1111
1133
  }
1134
+ copyDirRecursive(sourcePath, targetPath);
1135
+ // Count agent files (.md only — .yaml agents were migrated to .md)
1136
+ const mdFiles = countFiles(sourcePath, '.md');
1137
+ result.summary.agentsCount += mdFiles;
1138
+ result.created.files.push(`.claude/agents/${agentCategory}`);
1112
1139
  }
1113
1140
  }
1114
1141
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monoes/monomindcli",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "type": "module",
5
5
  "description": "Monomind CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
6
6
  "main": "dist/src/index.js",