rulesync 7.14.0 → 7.15.0

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.
@@ -19,7 +19,9 @@ function formatError(error) {
19
19
  import { consola } from "consola";
20
20
 
21
21
  // src/utils/vitest.ts
22
- var isEnvTest = process.env.NODE_ENV === "test";
22
+ function isEnvTest() {
23
+ return process.env.NODE_ENV === "test";
24
+ }
23
25
 
24
26
  // src/utils/logger.ts
25
27
  var Logger = class {
@@ -49,27 +51,27 @@ var Logger = class {
49
51
  return this._silent;
50
52
  }
51
53
  info(message, ...args) {
52
- if (isEnvTest || this._silent) return;
54
+ if (isEnvTest() || this._silent) return;
53
55
  this.console.info(message, ...args);
54
56
  }
55
57
  // Success (always shown unless silent)
56
58
  success(message, ...args) {
57
- if (isEnvTest || this._silent) return;
59
+ if (isEnvTest() || this._silent) return;
58
60
  this.console.success(message, ...args);
59
61
  }
60
62
  // Warning (always shown unless silent)
61
63
  warn(message, ...args) {
62
- if (isEnvTest || this._silent) return;
64
+ if (isEnvTest() || this._silent) return;
63
65
  this.console.warn(message, ...args);
64
66
  }
65
67
  // Error (always shown, even in silent mode)
66
68
  error(message, ...args) {
67
- if (isEnvTest) return;
69
+ if (isEnvTest()) return;
68
70
  this.console.error(message, ...args);
69
71
  }
70
72
  // Debug level (shown only in verbose mode)
71
73
  debug(message, ...args) {
72
- if (isEnvTest || this._silent) return;
74
+ if (isEnvTest() || this._silent) return;
73
75
  if (this._verbose) {
74
76
  this.console.info(message, ...args);
75
77
  }
@@ -301,8 +303,14 @@ async function removeFile(filepath) {
301
303
  }
302
304
  }
303
305
  function getHomeDirectory() {
304
- if (isEnvTest) {
305
- throw new Error("getHomeDirectory() must be mocked in test environment");
306
+ const homeDirFromEnv = process.env.HOME_DIR;
307
+ if (homeDirFromEnv) {
308
+ return homeDirFromEnv;
309
+ }
310
+ if (isEnvTest()) {
311
+ throw new Error(
312
+ "getHomeDirectory() must be mocked in test environment, or set HOME_DIR environment variable"
313
+ );
306
314
  }
307
315
  return os.homedir();
308
316
  }
@@ -7751,6 +7759,7 @@ var SimulatedSkill = class extends ToolSkill {
7751
7759
  }
7752
7760
  }
7753
7761
  static fromRulesyncSkillDefault({
7762
+ baseDir = process.cwd(),
7754
7763
  rulesyncSkill,
7755
7764
  validate = true
7756
7765
  }) {
@@ -7760,7 +7769,7 @@ var SimulatedSkill = class extends ToolSkill {
7760
7769
  description: rulesyncFrontmatter.description
7761
7770
  };
7762
7771
  return {
7763
- baseDir: rulesyncSkill.getBaseDir(),
7772
+ baseDir,
7764
7773
  relativeDirPath: this.getSettablePaths().relativeDirPath,
7765
7774
  dirName: rulesyncSkill.getDirName(),
7766
7775
  frontmatter: simulatedFrontmatter,
@@ -8246,6 +8255,7 @@ var AgentsSkillsSkill = class _AgentsSkillsSkill extends ToolSkill {
8246
8255
  });
8247
8256
  }
8248
8257
  static fromRulesyncSkill({
8258
+ baseDir = process.cwd(),
8249
8259
  rulesyncSkill,
8250
8260
  validate = true,
8251
8261
  global = false
@@ -8257,7 +8267,7 @@ var AgentsSkillsSkill = class _AgentsSkillsSkill extends ToolSkill {
8257
8267
  description: rulesyncFrontmatter.description
8258
8268
  };
8259
8269
  return new _AgentsSkillsSkill({
8260
- baseDir: rulesyncSkill.getBaseDir(),
8270
+ baseDir,
8261
8271
  relativeDirPath: settablePaths.relativeDirPath,
8262
8272
  dirName: rulesyncSkill.getDirName(),
8263
8273
  frontmatter: agentsSkillsFrontmatter,
@@ -8407,6 +8417,7 @@ var AntigravitySkill = class _AntigravitySkill extends ToolSkill {
8407
8417
  });
8408
8418
  }
8409
8419
  static fromRulesyncSkill({
8420
+ baseDir = process.cwd(),
8410
8421
  rulesyncSkill,
8411
8422
  validate = true,
8412
8423
  global = false
@@ -8418,7 +8429,7 @@ var AntigravitySkill = class _AntigravitySkill extends ToolSkill {
8418
8429
  };
8419
8430
  const settablePaths = _AntigravitySkill.getSettablePaths({ global });
8420
8431
  return new _AntigravitySkill({
8421
- baseDir: rulesyncSkill.getBaseDir(),
8432
+ baseDir,
8422
8433
  relativeDirPath: settablePaths.relativeDirPath,
8423
8434
  dirName: rulesyncSkill.getDirName(),
8424
8435
  frontmatter: antigravityFrontmatter,
@@ -8573,6 +8584,7 @@ var ClaudecodeSkill = class _ClaudecodeSkill extends ToolSkill {
8573
8584
  });
8574
8585
  }
8575
8586
  static fromRulesyncSkill({
8587
+ baseDir = process.cwd(),
8576
8588
  rulesyncSkill,
8577
8589
  validate = true,
8578
8590
  global = false
@@ -8593,7 +8605,7 @@ var ClaudecodeSkill = class _ClaudecodeSkill extends ToolSkill {
8593
8605
  };
8594
8606
  const settablePaths = _ClaudecodeSkill.getSettablePaths({ global });
8595
8607
  return new _ClaudecodeSkill({
8596
- baseDir: rulesyncSkill.getBaseDir(),
8608
+ baseDir,
8597
8609
  relativeDirPath: settablePaths.relativeDirPath,
8598
8610
  dirName: rulesyncSkill.getDirName(),
8599
8611
  frontmatter: claudecodeFrontmatter,
@@ -8743,6 +8755,7 @@ var ClineSkill = class _ClineSkill extends ToolSkill {
8743
8755
  });
8744
8756
  }
8745
8757
  static fromRulesyncSkill({
8758
+ baseDir = process.cwd(),
8746
8759
  rulesyncSkill,
8747
8760
  validate = true,
8748
8761
  global = false
@@ -8754,7 +8767,7 @@ var ClineSkill = class _ClineSkill extends ToolSkill {
8754
8767
  description: rulesyncFrontmatter.description
8755
8768
  };
8756
8769
  return new _ClineSkill({
8757
- baseDir: rulesyncSkill.getBaseDir(),
8770
+ baseDir,
8758
8771
  relativeDirPath: settablePaths.relativeDirPath,
8759
8772
  dirName: clineFrontmatter.name,
8760
8773
  frontmatter: clineFrontmatter,
@@ -8919,6 +8932,7 @@ var CodexCliSkill = class _CodexCliSkill extends ToolSkill {
8919
8932
  });
8920
8933
  }
8921
8934
  static fromRulesyncSkill({
8935
+ baseDir = process.cwd(),
8922
8936
  rulesyncSkill,
8923
8937
  validate = true,
8924
8938
  global = false
@@ -8935,7 +8949,7 @@ var CodexCliSkill = class _CodexCliSkill extends ToolSkill {
8935
8949
  }
8936
8950
  };
8937
8951
  return new _CodexCliSkill({
8938
- baseDir: rulesyncSkill.getBaseDir(),
8952
+ baseDir,
8939
8953
  relativeDirPath: settablePaths.relativeDirPath,
8940
8954
  dirName: rulesyncSkill.getDirName(),
8941
8955
  frontmatter: codexFrontmatter,
@@ -9086,6 +9100,7 @@ var CopilotSkill = class _CopilotSkill extends ToolSkill {
9086
9100
  });
9087
9101
  }
9088
9102
  static fromRulesyncSkill({
9103
+ baseDir = process.cwd(),
9089
9104
  rulesyncSkill,
9090
9105
  validate = true,
9091
9106
  global = false
@@ -9098,7 +9113,7 @@ var CopilotSkill = class _CopilotSkill extends ToolSkill {
9098
9113
  license: rulesyncFrontmatter.copilot?.license
9099
9114
  };
9100
9115
  return new _CopilotSkill({
9101
- baseDir: rulesyncSkill.getBaseDir(),
9116
+ baseDir,
9102
9117
  relativeDirPath: settablePaths.relativeDirPath,
9103
9118
  dirName: rulesyncSkill.getDirName(),
9104
9119
  frontmatter: copilotFrontmatter,
@@ -9241,6 +9256,7 @@ var CursorSkill = class _CursorSkill extends ToolSkill {
9241
9256
  });
9242
9257
  }
9243
9258
  static fromRulesyncSkill({
9259
+ baseDir = process.cwd(),
9244
9260
  rulesyncSkill,
9245
9261
  validate = true,
9246
9262
  global = false
@@ -9252,7 +9268,7 @@ var CursorSkill = class _CursorSkill extends ToolSkill {
9252
9268
  description: rulesyncFrontmatter.description
9253
9269
  };
9254
9270
  return new _CursorSkill({
9255
- baseDir: rulesyncSkill.getBaseDir(),
9271
+ baseDir,
9256
9272
  relativeDirPath: settablePaths.relativeDirPath,
9257
9273
  dirName: rulesyncSkill.getDirName(),
9258
9274
  frontmatter: cursorFrontmatter,
@@ -9397,6 +9413,7 @@ var GeminiCliSkill = class _GeminiCliSkill extends ToolSkill {
9397
9413
  });
9398
9414
  }
9399
9415
  static fromRulesyncSkill({
9416
+ baseDir = process.cwd(),
9400
9417
  rulesyncSkill,
9401
9418
  validate = true,
9402
9419
  global = false
@@ -9408,7 +9425,7 @@ var GeminiCliSkill = class _GeminiCliSkill extends ToolSkill {
9408
9425
  description: rulesyncFrontmatter.description
9409
9426
  };
9410
9427
  return new _GeminiCliSkill({
9411
- baseDir: rulesyncSkill.getBaseDir(),
9428
+ baseDir,
9412
9429
  relativeDirPath: settablePaths.relativeDirPath,
9413
9430
  dirName: rulesyncSkill.getDirName(),
9414
9431
  frontmatter: geminiCliFrontmatter,
@@ -9737,6 +9754,7 @@ var KiloSkill = class _KiloSkill extends ToolSkill {
9737
9754
  });
9738
9755
  }
9739
9756
  static fromRulesyncSkill({
9757
+ baseDir = process.cwd(),
9740
9758
  rulesyncSkill,
9741
9759
  validate = true,
9742
9760
  global = false
@@ -9748,7 +9766,7 @@ var KiloSkill = class _KiloSkill extends ToolSkill {
9748
9766
  description: rulesyncFrontmatter.description
9749
9767
  };
9750
9768
  return new _KiloSkill({
9751
- baseDir: rulesyncSkill.getBaseDir(),
9769
+ baseDir,
9752
9770
  relativeDirPath: settablePaths.relativeDirPath,
9753
9771
  dirName: kiloFrontmatter.name,
9754
9772
  frontmatter: kiloFrontmatter,
@@ -9912,6 +9930,7 @@ var KiroSkill = class _KiroSkill extends ToolSkill {
9912
9930
  });
9913
9931
  }
9914
9932
  static fromRulesyncSkill({
9933
+ baseDir = process.cwd(),
9915
9934
  rulesyncSkill,
9916
9935
  validate = true,
9917
9936
  global = false
@@ -9923,7 +9942,7 @@ var KiroSkill = class _KiroSkill extends ToolSkill {
9923
9942
  description: rulesyncFrontmatter.description
9924
9943
  };
9925
9944
  return new _KiroSkill({
9926
- baseDir: rulesyncSkill.getBaseDir(),
9945
+ baseDir,
9927
9946
  relativeDirPath: settablePaths.relativeDirPath,
9928
9947
  dirName: rulesyncSkill.getDirName(),
9929
9948
  frontmatter: kiroFrontmatter,
@@ -10083,6 +10102,7 @@ var OpenCodeSkill = class _OpenCodeSkill extends ToolSkill {
10083
10102
  });
10084
10103
  }
10085
10104
  static fromRulesyncSkill({
10105
+ baseDir = process.cwd(),
10086
10106
  rulesyncSkill,
10087
10107
  validate = true,
10088
10108
  global = false
@@ -10095,7 +10115,7 @@ var OpenCodeSkill = class _OpenCodeSkill extends ToolSkill {
10095
10115
  };
10096
10116
  const settablePaths = _OpenCodeSkill.getSettablePaths({ global });
10097
10117
  return new _OpenCodeSkill({
10098
- baseDir: rulesyncSkill.getBaseDir(),
10118
+ baseDir,
10099
10119
  relativeDirPath: settablePaths.relativeDirPath,
10100
10120
  dirName: rulesyncSkill.getDirName(),
10101
10121
  frontmatter: opencodeFrontmatter,
@@ -10240,6 +10260,7 @@ var ReplitSkill = class _ReplitSkill extends ToolSkill {
10240
10260
  });
10241
10261
  }
10242
10262
  static fromRulesyncSkill({
10263
+ baseDir = process.cwd(),
10243
10264
  rulesyncSkill,
10244
10265
  validate = true,
10245
10266
  global = false
@@ -10251,7 +10272,7 @@ var ReplitSkill = class _ReplitSkill extends ToolSkill {
10251
10272
  description: rulesyncFrontmatter.description
10252
10273
  };
10253
10274
  return new _ReplitSkill({
10254
- baseDir: rulesyncSkill.getBaseDir(),
10275
+ baseDir,
10255
10276
  relativeDirPath: settablePaths.relativeDirPath,
10256
10277
  dirName: rulesyncSkill.getDirName(),
10257
10278
  frontmatter: replitFrontmatter,
@@ -10404,6 +10425,7 @@ var RooSkill = class _RooSkill extends ToolSkill {
10404
10425
  });
10405
10426
  }
10406
10427
  static fromRulesyncSkill({
10428
+ baseDir = process.cwd(),
10407
10429
  rulesyncSkill,
10408
10430
  validate = true,
10409
10431
  global = false
@@ -10415,7 +10437,7 @@ var RooSkill = class _RooSkill extends ToolSkill {
10415
10437
  description: rulesyncFrontmatter.description
10416
10438
  };
10417
10439
  return new _RooSkill({
10418
- baseDir: rulesyncSkill.getBaseDir(),
10440
+ baseDir,
10419
10441
  relativeDirPath: settablePaths.relativeDirPath,
10420
10442
  dirName: rooFrontmatter.name,
10421
10443
  frontmatter: rooFrontmatter,
@@ -10695,6 +10717,7 @@ var SkillsProcessor = class extends DirFeatureProcessor {
10695
10717
  return null;
10696
10718
  }
10697
10719
  return factory.class.fromRulesyncSkill({
10720
+ baseDir: this.baseDir,
10698
10721
  rulesyncSkill,
10699
10722
  global: this.global
10700
10723
  });
@@ -69,7 +69,9 @@ function formatError(error) {
69
69
  var import_consola = require("consola");
70
70
 
71
71
  // src/utils/vitest.ts
72
- var isEnvTest = process.env.NODE_ENV === "test";
72
+ function isEnvTest() {
73
+ return process.env.NODE_ENV === "test";
74
+ }
73
75
 
74
76
  // src/utils/logger.ts
75
77
  var Logger = class {
@@ -99,27 +101,27 @@ var Logger = class {
99
101
  return this._silent;
100
102
  }
101
103
  info(message, ...args) {
102
- if (isEnvTest || this._silent) return;
104
+ if (isEnvTest() || this._silent) return;
103
105
  this.console.info(message, ...args);
104
106
  }
105
107
  // Success (always shown unless silent)
106
108
  success(message, ...args) {
107
- if (isEnvTest || this._silent) return;
109
+ if (isEnvTest() || this._silent) return;
108
110
  this.console.success(message, ...args);
109
111
  }
110
112
  // Warning (always shown unless silent)
111
113
  warn(message, ...args) {
112
- if (isEnvTest || this._silent) return;
114
+ if (isEnvTest() || this._silent) return;
113
115
  this.console.warn(message, ...args);
114
116
  }
115
117
  // Error (always shown, even in silent mode)
116
118
  error(message, ...args) {
117
- if (isEnvTest) return;
119
+ if (isEnvTest()) return;
118
120
  this.console.error(message, ...args);
119
121
  }
120
122
  // Debug level (shown only in verbose mode)
121
123
  debug(message, ...args) {
122
- if (isEnvTest || this._silent) return;
124
+ if (isEnvTest() || this._silent) return;
123
125
  if (this._verbose) {
124
126
  this.console.info(message, ...args);
125
127
  }
@@ -303,8 +305,14 @@ async function removeFile(filepath) {
303
305
  }
304
306
  }
305
307
  function getHomeDirectory() {
306
- if (isEnvTest) {
307
- throw new Error("getHomeDirectory() must be mocked in test environment");
308
+ const homeDirFromEnv = process.env.HOME_DIR;
309
+ if (homeDirFromEnv) {
310
+ return homeDirFromEnv;
311
+ }
312
+ if (isEnvTest()) {
313
+ throw new Error(
314
+ "getHomeDirectory() must be mocked in test environment, or set HOME_DIR environment variable"
315
+ );
308
316
  }
309
317
  return import_node_os.default.homedir();
310
318
  }
@@ -7464,6 +7472,7 @@ var SimulatedSkill = class extends ToolSkill {
7464
7472
  }
7465
7473
  }
7466
7474
  static fromRulesyncSkillDefault({
7475
+ baseDir = process.cwd(),
7467
7476
  rulesyncSkill,
7468
7477
  validate = true
7469
7478
  }) {
@@ -7473,7 +7482,7 @@ var SimulatedSkill = class extends ToolSkill {
7473
7482
  description: rulesyncFrontmatter.description
7474
7483
  };
7475
7484
  return {
7476
- baseDir: rulesyncSkill.getBaseDir(),
7485
+ baseDir,
7477
7486
  relativeDirPath: this.getSettablePaths().relativeDirPath,
7478
7487
  dirName: rulesyncSkill.getDirName(),
7479
7488
  frontmatter: simulatedFrontmatter,
@@ -7959,6 +7968,7 @@ var AgentsSkillsSkill = class _AgentsSkillsSkill extends ToolSkill {
7959
7968
  });
7960
7969
  }
7961
7970
  static fromRulesyncSkill({
7971
+ baseDir = process.cwd(),
7962
7972
  rulesyncSkill,
7963
7973
  validate = true,
7964
7974
  global = false
@@ -7970,7 +7980,7 @@ var AgentsSkillsSkill = class _AgentsSkillsSkill extends ToolSkill {
7970
7980
  description: rulesyncFrontmatter.description
7971
7981
  };
7972
7982
  return new _AgentsSkillsSkill({
7973
- baseDir: rulesyncSkill.getBaseDir(),
7983
+ baseDir,
7974
7984
  relativeDirPath: settablePaths.relativeDirPath,
7975
7985
  dirName: rulesyncSkill.getDirName(),
7976
7986
  frontmatter: agentsSkillsFrontmatter,
@@ -8120,6 +8130,7 @@ var AntigravitySkill = class _AntigravitySkill extends ToolSkill {
8120
8130
  });
8121
8131
  }
8122
8132
  static fromRulesyncSkill({
8133
+ baseDir = process.cwd(),
8123
8134
  rulesyncSkill,
8124
8135
  validate = true,
8125
8136
  global = false
@@ -8131,7 +8142,7 @@ var AntigravitySkill = class _AntigravitySkill extends ToolSkill {
8131
8142
  };
8132
8143
  const settablePaths = _AntigravitySkill.getSettablePaths({ global });
8133
8144
  return new _AntigravitySkill({
8134
- baseDir: rulesyncSkill.getBaseDir(),
8145
+ baseDir,
8135
8146
  relativeDirPath: settablePaths.relativeDirPath,
8136
8147
  dirName: rulesyncSkill.getDirName(),
8137
8148
  frontmatter: antigravityFrontmatter,
@@ -8286,6 +8297,7 @@ var ClaudecodeSkill = class _ClaudecodeSkill extends ToolSkill {
8286
8297
  });
8287
8298
  }
8288
8299
  static fromRulesyncSkill({
8300
+ baseDir = process.cwd(),
8289
8301
  rulesyncSkill,
8290
8302
  validate = true,
8291
8303
  global = false
@@ -8306,7 +8318,7 @@ var ClaudecodeSkill = class _ClaudecodeSkill extends ToolSkill {
8306
8318
  };
8307
8319
  const settablePaths = _ClaudecodeSkill.getSettablePaths({ global });
8308
8320
  return new _ClaudecodeSkill({
8309
- baseDir: rulesyncSkill.getBaseDir(),
8321
+ baseDir,
8310
8322
  relativeDirPath: settablePaths.relativeDirPath,
8311
8323
  dirName: rulesyncSkill.getDirName(),
8312
8324
  frontmatter: claudecodeFrontmatter,
@@ -8456,6 +8468,7 @@ var ClineSkill = class _ClineSkill extends ToolSkill {
8456
8468
  });
8457
8469
  }
8458
8470
  static fromRulesyncSkill({
8471
+ baseDir = process.cwd(),
8459
8472
  rulesyncSkill,
8460
8473
  validate = true,
8461
8474
  global = false
@@ -8467,7 +8480,7 @@ var ClineSkill = class _ClineSkill extends ToolSkill {
8467
8480
  description: rulesyncFrontmatter.description
8468
8481
  };
8469
8482
  return new _ClineSkill({
8470
- baseDir: rulesyncSkill.getBaseDir(),
8483
+ baseDir,
8471
8484
  relativeDirPath: settablePaths.relativeDirPath,
8472
8485
  dirName: clineFrontmatter.name,
8473
8486
  frontmatter: clineFrontmatter,
@@ -8632,6 +8645,7 @@ var CodexCliSkill = class _CodexCliSkill extends ToolSkill {
8632
8645
  });
8633
8646
  }
8634
8647
  static fromRulesyncSkill({
8648
+ baseDir = process.cwd(),
8635
8649
  rulesyncSkill,
8636
8650
  validate = true,
8637
8651
  global = false
@@ -8648,7 +8662,7 @@ var CodexCliSkill = class _CodexCliSkill extends ToolSkill {
8648
8662
  }
8649
8663
  };
8650
8664
  return new _CodexCliSkill({
8651
- baseDir: rulesyncSkill.getBaseDir(),
8665
+ baseDir,
8652
8666
  relativeDirPath: settablePaths.relativeDirPath,
8653
8667
  dirName: rulesyncSkill.getDirName(),
8654
8668
  frontmatter: codexFrontmatter,
@@ -8799,6 +8813,7 @@ var CopilotSkill = class _CopilotSkill extends ToolSkill {
8799
8813
  });
8800
8814
  }
8801
8815
  static fromRulesyncSkill({
8816
+ baseDir = process.cwd(),
8802
8817
  rulesyncSkill,
8803
8818
  validate = true,
8804
8819
  global = false
@@ -8811,7 +8826,7 @@ var CopilotSkill = class _CopilotSkill extends ToolSkill {
8811
8826
  license: rulesyncFrontmatter.copilot?.license
8812
8827
  };
8813
8828
  return new _CopilotSkill({
8814
- baseDir: rulesyncSkill.getBaseDir(),
8829
+ baseDir,
8815
8830
  relativeDirPath: settablePaths.relativeDirPath,
8816
8831
  dirName: rulesyncSkill.getDirName(),
8817
8832
  frontmatter: copilotFrontmatter,
@@ -8954,6 +8969,7 @@ var CursorSkill = class _CursorSkill extends ToolSkill {
8954
8969
  });
8955
8970
  }
8956
8971
  static fromRulesyncSkill({
8972
+ baseDir = process.cwd(),
8957
8973
  rulesyncSkill,
8958
8974
  validate = true,
8959
8975
  global = false
@@ -8965,7 +8981,7 @@ var CursorSkill = class _CursorSkill extends ToolSkill {
8965
8981
  description: rulesyncFrontmatter.description
8966
8982
  };
8967
8983
  return new _CursorSkill({
8968
- baseDir: rulesyncSkill.getBaseDir(),
8984
+ baseDir,
8969
8985
  relativeDirPath: settablePaths.relativeDirPath,
8970
8986
  dirName: rulesyncSkill.getDirName(),
8971
8987
  frontmatter: cursorFrontmatter,
@@ -9110,6 +9126,7 @@ var GeminiCliSkill = class _GeminiCliSkill extends ToolSkill {
9110
9126
  });
9111
9127
  }
9112
9128
  static fromRulesyncSkill({
9129
+ baseDir = process.cwd(),
9113
9130
  rulesyncSkill,
9114
9131
  validate = true,
9115
9132
  global = false
@@ -9121,7 +9138,7 @@ var GeminiCliSkill = class _GeminiCliSkill extends ToolSkill {
9121
9138
  description: rulesyncFrontmatter.description
9122
9139
  };
9123
9140
  return new _GeminiCliSkill({
9124
- baseDir: rulesyncSkill.getBaseDir(),
9141
+ baseDir,
9125
9142
  relativeDirPath: settablePaths.relativeDirPath,
9126
9143
  dirName: rulesyncSkill.getDirName(),
9127
9144
  frontmatter: geminiCliFrontmatter,
@@ -9450,6 +9467,7 @@ var KiloSkill = class _KiloSkill extends ToolSkill {
9450
9467
  });
9451
9468
  }
9452
9469
  static fromRulesyncSkill({
9470
+ baseDir = process.cwd(),
9453
9471
  rulesyncSkill,
9454
9472
  validate = true,
9455
9473
  global = false
@@ -9461,7 +9479,7 @@ var KiloSkill = class _KiloSkill extends ToolSkill {
9461
9479
  description: rulesyncFrontmatter.description
9462
9480
  };
9463
9481
  return new _KiloSkill({
9464
- baseDir: rulesyncSkill.getBaseDir(),
9482
+ baseDir,
9465
9483
  relativeDirPath: settablePaths.relativeDirPath,
9466
9484
  dirName: kiloFrontmatter.name,
9467
9485
  frontmatter: kiloFrontmatter,
@@ -9625,6 +9643,7 @@ var KiroSkill = class _KiroSkill extends ToolSkill {
9625
9643
  });
9626
9644
  }
9627
9645
  static fromRulesyncSkill({
9646
+ baseDir = process.cwd(),
9628
9647
  rulesyncSkill,
9629
9648
  validate = true,
9630
9649
  global = false
@@ -9636,7 +9655,7 @@ var KiroSkill = class _KiroSkill extends ToolSkill {
9636
9655
  description: rulesyncFrontmatter.description
9637
9656
  };
9638
9657
  return new _KiroSkill({
9639
- baseDir: rulesyncSkill.getBaseDir(),
9658
+ baseDir,
9640
9659
  relativeDirPath: settablePaths.relativeDirPath,
9641
9660
  dirName: rulesyncSkill.getDirName(),
9642
9661
  frontmatter: kiroFrontmatter,
@@ -9796,6 +9815,7 @@ var OpenCodeSkill = class _OpenCodeSkill extends ToolSkill {
9796
9815
  });
9797
9816
  }
9798
9817
  static fromRulesyncSkill({
9818
+ baseDir = process.cwd(),
9799
9819
  rulesyncSkill,
9800
9820
  validate = true,
9801
9821
  global = false
@@ -9808,7 +9828,7 @@ var OpenCodeSkill = class _OpenCodeSkill extends ToolSkill {
9808
9828
  };
9809
9829
  const settablePaths = _OpenCodeSkill.getSettablePaths({ global });
9810
9830
  return new _OpenCodeSkill({
9811
- baseDir: rulesyncSkill.getBaseDir(),
9831
+ baseDir,
9812
9832
  relativeDirPath: settablePaths.relativeDirPath,
9813
9833
  dirName: rulesyncSkill.getDirName(),
9814
9834
  frontmatter: opencodeFrontmatter,
@@ -9953,6 +9973,7 @@ var ReplitSkill = class _ReplitSkill extends ToolSkill {
9953
9973
  });
9954
9974
  }
9955
9975
  static fromRulesyncSkill({
9976
+ baseDir = process.cwd(),
9956
9977
  rulesyncSkill,
9957
9978
  validate = true,
9958
9979
  global = false
@@ -9964,7 +9985,7 @@ var ReplitSkill = class _ReplitSkill extends ToolSkill {
9964
9985
  description: rulesyncFrontmatter.description
9965
9986
  };
9966
9987
  return new _ReplitSkill({
9967
- baseDir: rulesyncSkill.getBaseDir(),
9988
+ baseDir,
9968
9989
  relativeDirPath: settablePaths.relativeDirPath,
9969
9990
  dirName: rulesyncSkill.getDirName(),
9970
9991
  frontmatter: replitFrontmatter,
@@ -10117,6 +10138,7 @@ var RooSkill = class _RooSkill extends ToolSkill {
10117
10138
  });
10118
10139
  }
10119
10140
  static fromRulesyncSkill({
10141
+ baseDir = process.cwd(),
10120
10142
  rulesyncSkill,
10121
10143
  validate = true,
10122
10144
  global = false
@@ -10128,7 +10150,7 @@ var RooSkill = class _RooSkill extends ToolSkill {
10128
10150
  description: rulesyncFrontmatter.description
10129
10151
  };
10130
10152
  return new _RooSkill({
10131
- baseDir: rulesyncSkill.getBaseDir(),
10153
+ baseDir,
10132
10154
  relativeDirPath: settablePaths.relativeDirPath,
10133
10155
  dirName: rooFrontmatter.name,
10134
10156
  frontmatter: rooFrontmatter,
@@ -10408,6 +10430,7 @@ var SkillsProcessor = class extends DirFeatureProcessor {
10408
10430
  return null;
10409
10431
  }
10410
10432
  return factory.class.fromRulesyncSkill({
10433
+ baseDir: this.baseDir,
10411
10434
  rulesyncSkill,
10412
10435
  global: this.global
10413
10436
  });
@@ -20920,7 +20943,7 @@ async function updateCommand(currentVersion, options) {
20920
20943
  }
20921
20944
 
20922
20945
  // src/cli/index.ts
20923
- var getVersion = () => "7.14.0";
20946
+ var getVersion = () => "7.15.0";
20924
20947
  var main = async () => {
20925
20948
  const program = new import_commander.Command();
20926
20949
  const version = getVersion();
package/dist/cli/index.js CHANGED
@@ -62,7 +62,7 @@ import {
62
62
  removeTempDirectory,
63
63
  stringifyFrontmatter,
64
64
  writeFileContent
65
- } from "../chunk-UWNVSK5V.js";
65
+ } from "../chunk-L5AQUWUM.js";
66
66
 
67
67
  // src/cli/index.ts
68
68
  import { Command } from "commander";
@@ -4110,7 +4110,7 @@ async function updateCommand(currentVersion, options) {
4110
4110
  }
4111
4111
 
4112
4112
  // src/cli/index.ts
4113
- var getVersion = () => "7.14.0";
4113
+ var getVersion = () => "7.15.0";
4114
4114
  var main = async () => {
4115
4115
  const program = new Command();
4116
4116
  const version = getVersion();
package/dist/index.cjs CHANGED
@@ -90,7 +90,9 @@ var import_globby = require("globby");
90
90
  var import_consola = require("consola");
91
91
 
92
92
  // src/utils/vitest.ts
93
- var isEnvTest = process.env.NODE_ENV === "test";
93
+ function isEnvTest() {
94
+ return process.env.NODE_ENV === "test";
95
+ }
94
96
 
95
97
  // src/utils/logger.ts
96
98
  var Logger = class {
@@ -120,27 +122,27 @@ var Logger = class {
120
122
  return this._silent;
121
123
  }
122
124
  info(message, ...args) {
123
- if (isEnvTest || this._silent) return;
125
+ if (isEnvTest() || this._silent) return;
124
126
  this.console.info(message, ...args);
125
127
  }
126
128
  // Success (always shown unless silent)
127
129
  success(message, ...args) {
128
- if (isEnvTest || this._silent) return;
130
+ if (isEnvTest() || this._silent) return;
129
131
  this.console.success(message, ...args);
130
132
  }
131
133
  // Warning (always shown unless silent)
132
134
  warn(message, ...args) {
133
- if (isEnvTest || this._silent) return;
135
+ if (isEnvTest() || this._silent) return;
134
136
  this.console.warn(message, ...args);
135
137
  }
136
138
  // Error (always shown, even in silent mode)
137
139
  error(message, ...args) {
138
- if (isEnvTest) return;
140
+ if (isEnvTest()) return;
139
141
  this.console.error(message, ...args);
140
142
  }
141
143
  // Debug level (shown only in verbose mode)
142
144
  debug(message, ...args) {
143
- if (isEnvTest || this._silent) return;
145
+ if (isEnvTest() || this._silent) return;
144
146
  if (this._verbose) {
145
147
  this.console.info(message, ...args);
146
148
  }
@@ -268,8 +270,14 @@ async function removeFile(filepath) {
268
270
  }
269
271
  }
270
272
  function getHomeDirectory() {
271
- if (isEnvTest) {
272
- throw new Error("getHomeDirectory() must be mocked in test environment");
273
+ const homeDirFromEnv = process.env.HOME_DIR;
274
+ if (homeDirFromEnv) {
275
+ return homeDirFromEnv;
276
+ }
277
+ if (isEnvTest()) {
278
+ throw new Error(
279
+ "getHomeDirectory() must be mocked in test environment, or set HOME_DIR environment variable"
280
+ );
273
281
  }
274
282
  return import_node_os.default.homedir();
275
283
  }
@@ -7761,6 +7769,7 @@ var SimulatedSkill = class extends ToolSkill {
7761
7769
  }
7762
7770
  }
7763
7771
  static fromRulesyncSkillDefault({
7772
+ baseDir = process.cwd(),
7764
7773
  rulesyncSkill,
7765
7774
  validate = true
7766
7775
  }) {
@@ -7770,7 +7779,7 @@ var SimulatedSkill = class extends ToolSkill {
7770
7779
  description: rulesyncFrontmatter.description
7771
7780
  };
7772
7781
  return {
7773
- baseDir: rulesyncSkill.getBaseDir(),
7782
+ baseDir,
7774
7783
  relativeDirPath: this.getSettablePaths().relativeDirPath,
7775
7784
  dirName: rulesyncSkill.getDirName(),
7776
7785
  frontmatter: simulatedFrontmatter,
@@ -8256,6 +8265,7 @@ var AgentsSkillsSkill = class _AgentsSkillsSkill extends ToolSkill {
8256
8265
  });
8257
8266
  }
8258
8267
  static fromRulesyncSkill({
8268
+ baseDir = process.cwd(),
8259
8269
  rulesyncSkill,
8260
8270
  validate = true,
8261
8271
  global = false
@@ -8267,7 +8277,7 @@ var AgentsSkillsSkill = class _AgentsSkillsSkill extends ToolSkill {
8267
8277
  description: rulesyncFrontmatter.description
8268
8278
  };
8269
8279
  return new _AgentsSkillsSkill({
8270
- baseDir: rulesyncSkill.getBaseDir(),
8280
+ baseDir,
8271
8281
  relativeDirPath: settablePaths.relativeDirPath,
8272
8282
  dirName: rulesyncSkill.getDirName(),
8273
8283
  frontmatter: agentsSkillsFrontmatter,
@@ -8417,6 +8427,7 @@ var AntigravitySkill = class _AntigravitySkill extends ToolSkill {
8417
8427
  });
8418
8428
  }
8419
8429
  static fromRulesyncSkill({
8430
+ baseDir = process.cwd(),
8420
8431
  rulesyncSkill,
8421
8432
  validate = true,
8422
8433
  global = false
@@ -8428,7 +8439,7 @@ var AntigravitySkill = class _AntigravitySkill extends ToolSkill {
8428
8439
  };
8429
8440
  const settablePaths = _AntigravitySkill.getSettablePaths({ global });
8430
8441
  return new _AntigravitySkill({
8431
- baseDir: rulesyncSkill.getBaseDir(),
8442
+ baseDir,
8432
8443
  relativeDirPath: settablePaths.relativeDirPath,
8433
8444
  dirName: rulesyncSkill.getDirName(),
8434
8445
  frontmatter: antigravityFrontmatter,
@@ -8583,6 +8594,7 @@ var ClaudecodeSkill = class _ClaudecodeSkill extends ToolSkill {
8583
8594
  });
8584
8595
  }
8585
8596
  static fromRulesyncSkill({
8597
+ baseDir = process.cwd(),
8586
8598
  rulesyncSkill,
8587
8599
  validate = true,
8588
8600
  global = false
@@ -8603,7 +8615,7 @@ var ClaudecodeSkill = class _ClaudecodeSkill extends ToolSkill {
8603
8615
  };
8604
8616
  const settablePaths = _ClaudecodeSkill.getSettablePaths({ global });
8605
8617
  return new _ClaudecodeSkill({
8606
- baseDir: rulesyncSkill.getBaseDir(),
8618
+ baseDir,
8607
8619
  relativeDirPath: settablePaths.relativeDirPath,
8608
8620
  dirName: rulesyncSkill.getDirName(),
8609
8621
  frontmatter: claudecodeFrontmatter,
@@ -8753,6 +8765,7 @@ var ClineSkill = class _ClineSkill extends ToolSkill {
8753
8765
  });
8754
8766
  }
8755
8767
  static fromRulesyncSkill({
8768
+ baseDir = process.cwd(),
8756
8769
  rulesyncSkill,
8757
8770
  validate = true,
8758
8771
  global = false
@@ -8764,7 +8777,7 @@ var ClineSkill = class _ClineSkill extends ToolSkill {
8764
8777
  description: rulesyncFrontmatter.description
8765
8778
  };
8766
8779
  return new _ClineSkill({
8767
- baseDir: rulesyncSkill.getBaseDir(),
8780
+ baseDir,
8768
8781
  relativeDirPath: settablePaths.relativeDirPath,
8769
8782
  dirName: clineFrontmatter.name,
8770
8783
  frontmatter: clineFrontmatter,
@@ -8929,6 +8942,7 @@ var CodexCliSkill = class _CodexCliSkill extends ToolSkill {
8929
8942
  });
8930
8943
  }
8931
8944
  static fromRulesyncSkill({
8945
+ baseDir = process.cwd(),
8932
8946
  rulesyncSkill,
8933
8947
  validate = true,
8934
8948
  global = false
@@ -8945,7 +8959,7 @@ var CodexCliSkill = class _CodexCliSkill extends ToolSkill {
8945
8959
  }
8946
8960
  };
8947
8961
  return new _CodexCliSkill({
8948
- baseDir: rulesyncSkill.getBaseDir(),
8962
+ baseDir,
8949
8963
  relativeDirPath: settablePaths.relativeDirPath,
8950
8964
  dirName: rulesyncSkill.getDirName(),
8951
8965
  frontmatter: codexFrontmatter,
@@ -9096,6 +9110,7 @@ var CopilotSkill = class _CopilotSkill extends ToolSkill {
9096
9110
  });
9097
9111
  }
9098
9112
  static fromRulesyncSkill({
9113
+ baseDir = process.cwd(),
9099
9114
  rulesyncSkill,
9100
9115
  validate = true,
9101
9116
  global = false
@@ -9108,7 +9123,7 @@ var CopilotSkill = class _CopilotSkill extends ToolSkill {
9108
9123
  license: rulesyncFrontmatter.copilot?.license
9109
9124
  };
9110
9125
  return new _CopilotSkill({
9111
- baseDir: rulesyncSkill.getBaseDir(),
9126
+ baseDir,
9112
9127
  relativeDirPath: settablePaths.relativeDirPath,
9113
9128
  dirName: rulesyncSkill.getDirName(),
9114
9129
  frontmatter: copilotFrontmatter,
@@ -9251,6 +9266,7 @@ var CursorSkill = class _CursorSkill extends ToolSkill {
9251
9266
  });
9252
9267
  }
9253
9268
  static fromRulesyncSkill({
9269
+ baseDir = process.cwd(),
9254
9270
  rulesyncSkill,
9255
9271
  validate = true,
9256
9272
  global = false
@@ -9262,7 +9278,7 @@ var CursorSkill = class _CursorSkill extends ToolSkill {
9262
9278
  description: rulesyncFrontmatter.description
9263
9279
  };
9264
9280
  return new _CursorSkill({
9265
- baseDir: rulesyncSkill.getBaseDir(),
9281
+ baseDir,
9266
9282
  relativeDirPath: settablePaths.relativeDirPath,
9267
9283
  dirName: rulesyncSkill.getDirName(),
9268
9284
  frontmatter: cursorFrontmatter,
@@ -9407,6 +9423,7 @@ var GeminiCliSkill = class _GeminiCliSkill extends ToolSkill {
9407
9423
  });
9408
9424
  }
9409
9425
  static fromRulesyncSkill({
9426
+ baseDir = process.cwd(),
9410
9427
  rulesyncSkill,
9411
9428
  validate = true,
9412
9429
  global = false
@@ -9418,7 +9435,7 @@ var GeminiCliSkill = class _GeminiCliSkill extends ToolSkill {
9418
9435
  description: rulesyncFrontmatter.description
9419
9436
  };
9420
9437
  return new _GeminiCliSkill({
9421
- baseDir: rulesyncSkill.getBaseDir(),
9438
+ baseDir,
9422
9439
  relativeDirPath: settablePaths.relativeDirPath,
9423
9440
  dirName: rulesyncSkill.getDirName(),
9424
9441
  frontmatter: geminiCliFrontmatter,
@@ -9747,6 +9764,7 @@ var KiloSkill = class _KiloSkill extends ToolSkill {
9747
9764
  });
9748
9765
  }
9749
9766
  static fromRulesyncSkill({
9767
+ baseDir = process.cwd(),
9750
9768
  rulesyncSkill,
9751
9769
  validate = true,
9752
9770
  global = false
@@ -9758,7 +9776,7 @@ var KiloSkill = class _KiloSkill extends ToolSkill {
9758
9776
  description: rulesyncFrontmatter.description
9759
9777
  };
9760
9778
  return new _KiloSkill({
9761
- baseDir: rulesyncSkill.getBaseDir(),
9779
+ baseDir,
9762
9780
  relativeDirPath: settablePaths.relativeDirPath,
9763
9781
  dirName: kiloFrontmatter.name,
9764
9782
  frontmatter: kiloFrontmatter,
@@ -9922,6 +9940,7 @@ var KiroSkill = class _KiroSkill extends ToolSkill {
9922
9940
  });
9923
9941
  }
9924
9942
  static fromRulesyncSkill({
9943
+ baseDir = process.cwd(),
9925
9944
  rulesyncSkill,
9926
9945
  validate = true,
9927
9946
  global = false
@@ -9933,7 +9952,7 @@ var KiroSkill = class _KiroSkill extends ToolSkill {
9933
9952
  description: rulesyncFrontmatter.description
9934
9953
  };
9935
9954
  return new _KiroSkill({
9936
- baseDir: rulesyncSkill.getBaseDir(),
9955
+ baseDir,
9937
9956
  relativeDirPath: settablePaths.relativeDirPath,
9938
9957
  dirName: rulesyncSkill.getDirName(),
9939
9958
  frontmatter: kiroFrontmatter,
@@ -10093,6 +10112,7 @@ var OpenCodeSkill = class _OpenCodeSkill extends ToolSkill {
10093
10112
  });
10094
10113
  }
10095
10114
  static fromRulesyncSkill({
10115
+ baseDir = process.cwd(),
10096
10116
  rulesyncSkill,
10097
10117
  validate = true,
10098
10118
  global = false
@@ -10105,7 +10125,7 @@ var OpenCodeSkill = class _OpenCodeSkill extends ToolSkill {
10105
10125
  };
10106
10126
  const settablePaths = _OpenCodeSkill.getSettablePaths({ global });
10107
10127
  return new _OpenCodeSkill({
10108
- baseDir: rulesyncSkill.getBaseDir(),
10128
+ baseDir,
10109
10129
  relativeDirPath: settablePaths.relativeDirPath,
10110
10130
  dirName: rulesyncSkill.getDirName(),
10111
10131
  frontmatter: opencodeFrontmatter,
@@ -10250,6 +10270,7 @@ var ReplitSkill = class _ReplitSkill extends ToolSkill {
10250
10270
  });
10251
10271
  }
10252
10272
  static fromRulesyncSkill({
10273
+ baseDir = process.cwd(),
10253
10274
  rulesyncSkill,
10254
10275
  validate = true,
10255
10276
  global = false
@@ -10261,7 +10282,7 @@ var ReplitSkill = class _ReplitSkill extends ToolSkill {
10261
10282
  description: rulesyncFrontmatter.description
10262
10283
  };
10263
10284
  return new _ReplitSkill({
10264
- baseDir: rulesyncSkill.getBaseDir(),
10285
+ baseDir,
10265
10286
  relativeDirPath: settablePaths.relativeDirPath,
10266
10287
  dirName: rulesyncSkill.getDirName(),
10267
10288
  frontmatter: replitFrontmatter,
@@ -10414,6 +10435,7 @@ var RooSkill = class _RooSkill extends ToolSkill {
10414
10435
  });
10415
10436
  }
10416
10437
  static fromRulesyncSkill({
10438
+ baseDir = process.cwd(),
10417
10439
  rulesyncSkill,
10418
10440
  validate = true,
10419
10441
  global = false
@@ -10425,7 +10447,7 @@ var RooSkill = class _RooSkill extends ToolSkill {
10425
10447
  description: rulesyncFrontmatter.description
10426
10448
  };
10427
10449
  return new _RooSkill({
10428
- baseDir: rulesyncSkill.getBaseDir(),
10450
+ baseDir,
10429
10451
  relativeDirPath: settablePaths.relativeDirPath,
10430
10452
  dirName: rooFrontmatter.name,
10431
10453
  frontmatter: rooFrontmatter,
@@ -10705,6 +10727,7 @@ var SkillsProcessor = class extends DirFeatureProcessor {
10705
10727
  return null;
10706
10728
  }
10707
10729
  return factory.class.fromRulesyncSkill({
10730
+ baseDir: this.baseDir,
10708
10731
  rulesyncSkill,
10709
10732
  global: this.global
10710
10733
  });
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  generate,
7
7
  importFromTool,
8
8
  logger
9
- } from "./chunk-UWNVSK5V.js";
9
+ } from "./chunk-L5AQUWUM.js";
10
10
 
11
11
  // src/index.ts
12
12
  async function generate2(options = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rulesync",
3
- "version": "7.14.0",
3
+ "version": "7.15.0",
4
4
  "description": "Unified AI rules management CLI tool that generates configuration files for various AI development tools",
5
5
  "keywords": [
6
6
  "ai",