@arvoretech/hub 0.17.0 → 0.17.2

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.
@@ -117,7 +117,7 @@ async function checkAndAutoRegenerate(hubDir) {
117
117
  return;
118
118
  }
119
119
  console.log(chalk.yellow("\n Detected outdated configs, auto-regenerating..."));
120
- const { generators: generators2 } = await import("./generate-TBAEF7R5.js");
120
+ const { generators: generators2 } = await import("./generate-6CIWB5FN.js");
121
121
  const generator = generators2[result.editor];
122
122
  if (!generator) {
123
123
  console.log(chalk.red(` Unknown editor '${result.editor}' in cache. Run 'hub generate' manually.`));
@@ -734,6 +734,13 @@ async function syncRemoteSources(config, hubDir, skillsDir, steeringDir) {
734
734
  console.log(chalk3.yellow(` ${result.errors.length} remote source(s) failed`));
735
735
  }
736
736
  }
737
+ function getRemoteSkillNames(config) {
738
+ const names = /* @__PURE__ */ new Set();
739
+ for (const source of config.remote_sources ?? []) {
740
+ if (source.type === "skill") names.add(source.name);
741
+ }
742
+ return names;
743
+ }
737
744
  function buildDesignSection(config) {
738
745
  const design = config.design;
739
746
  if (!design) return null;
@@ -1052,12 +1059,14 @@ ${content}`;
1052
1059
  console.log(chalk3.yellow(" No agents/ directory found, skipping agent copy"));
1053
1060
  }
1054
1061
  const skillsDir = resolve2(hubDir, "skills");
1062
+ const remoteSkillsCursor = getRemoteSkillNames(config);
1055
1063
  try {
1056
1064
  const skillFolders = await readdir2(skillsDir);
1057
1065
  const cursorSkillsDir = join4(cursorDir, "skills");
1058
1066
  await mkdir4(cursorSkillsDir, { recursive: true });
1059
1067
  let count = 0;
1060
1068
  for (const folder of skillFolders) {
1069
+ if (remoteSkillsCursor.has(folder)) continue;
1061
1070
  const skillFile = join4(skillsDir, folder, "SKILL.md");
1062
1071
  try {
1063
1072
  await readFile4(skillFile);
@@ -1964,10 +1973,12 @@ async function generateOpenCode(config, hubDir) {
1964
1973
  console.log(chalk3.yellow(" No agents/ directory found, skipping agent copy"));
1965
1974
  }
1966
1975
  const skillsDir = resolve2(hubDir, "skills");
1976
+ const remoteSkillsOC = getRemoteSkillNames(config);
1967
1977
  try {
1968
1978
  const skillFolders = await readdir2(skillsDir);
1969
1979
  let count = 0;
1970
1980
  for (const folder of skillFolders) {
1981
+ if (remoteSkillsOC.has(folder)) continue;
1971
1982
  const skillFile = join4(skillsDir, folder, "SKILL.md");
1972
1983
  try {
1973
1984
  await readFile4(skillFile);
@@ -2501,12 +2512,14 @@ async function generateClaudeCode(config, hubDir) {
2501
2512
  console.log(chalk3.yellow(" No agents/ directory found, skipping agent copy"));
2502
2513
  }
2503
2514
  const skillsDir = resolve2(hubDir, "skills");
2515
+ const remoteSkillsClaude = getRemoteSkillNames(config);
2504
2516
  try {
2505
2517
  const skillFolders = await readdir2(skillsDir);
2506
2518
  const claudeSkillsDir = join4(claudeDir, "skills");
2507
2519
  await mkdir4(claudeSkillsDir, { recursive: true });
2508
2520
  let count = 0;
2509
2521
  for (const folder of skillFolders) {
2522
+ if (remoteSkillsClaude.has(folder)) continue;
2510
2523
  const skillFile = join4(skillsDir, folder, "SKILL.md");
2511
2524
  try {
2512
2525
  await readFile4(skillFile);
@@ -2710,12 +2723,14 @@ async function generateKiro(config, hubDir) {
2710
2723
  console.log(chalk3.yellow(" No agents/ directory found, skipping agent copy"));
2711
2724
  }
2712
2725
  const skillsDir = resolve2(hubDir, "skills");
2726
+ const remoteSkillsKiro = getRemoteSkillNames(config);
2713
2727
  try {
2714
2728
  const skillFolders = await readdir2(skillsDir);
2715
2729
  const kiroSkillsDir = join4(kiroDir, "skills");
2716
2730
  await mkdir4(kiroSkillsDir, { recursive: true });
2717
2731
  let count = 0;
2718
2732
  for (const folder of skillFolders) {
2733
+ if (remoteSkillsKiro.has(folder)) continue;
2719
2734
  const skillFile = join4(skillsDir, folder, "SKILL.md");
2720
2735
  try {
2721
2736
  await readFile4(skillFile);
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateCommand,
3
3
  generators
4
- } from "./chunk-Z4AZNX6V.js";
4
+ } from "./chunk-JYQ26DXR.js";
5
5
  import "./chunk-VMN4KGAK.js";
6
6
  export {
7
7
  generateCommand,
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  horizontalLine,
7
7
  personaCommand,
8
8
  symbols
9
- } from "./chunk-Z4AZNX6V.js";
9
+ } from "./chunk-JYQ26DXR.js";
10
10
  import {
11
11
  loadHubConfig,
12
12
  resolveConfigPath
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arvoretech/hub",
3
- "version": "0.17.0",
3
+ "version": "0.17.2",
4
4
  "description": "CLI for managing AI-aware multi-repository workspaces",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",