rulesync 6.1.1 → 6.2.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.
package/dist/index.cjs CHANGED
@@ -5347,7 +5347,7 @@ var McpProcessor = class extends FeatureProcessor {
5347
5347
  // src/features/rules/rules-processor.ts
5348
5348
  var import_toon = require("@toon-format/toon");
5349
5349
  var import_node_path97 = require("path");
5350
- var import_mini44 = require("zod/mini");
5350
+ var import_mini45 = require("zod/mini");
5351
5351
 
5352
5352
  // src/constants/general.ts
5353
5353
  var SKILL_FILE_NAME = "SKILL.md";
@@ -7978,39 +7978,12 @@ var CodexCliSubagent = class _CodexCliSubagent extends SimulatedSubagent {
7978
7978
  }
7979
7979
  };
7980
7980
 
7981
- // src/features/subagents/cursor-subagent.ts
7982
- var import_node_path66 = require("path");
7983
- var CursorSubagent = class _CursorSubagent extends SimulatedSubagent {
7984
- static getSettablePaths() {
7985
- return {
7986
- relativeDirPath: (0, import_node_path66.join)(".cursor", "subagents")
7987
- };
7988
- }
7989
- static async fromFile(params) {
7990
- const baseParams = await this.fromFileDefault(params);
7991
- return new _CursorSubagent(baseParams);
7992
- }
7993
- static fromRulesyncSubagent(params) {
7994
- const baseParams = this.fromRulesyncSubagentDefault(params);
7995
- return new _CursorSubagent(baseParams);
7996
- }
7997
- static isTargetedByRulesyncSubagent(rulesyncSubagent) {
7998
- return this.isTargetedByRulesyncSubagentDefault({
7999
- rulesyncSubagent,
8000
- toolTarget: "cursor"
8001
- });
8002
- }
8003
- static forDeletion(params) {
8004
- return new _CursorSubagent(this.forDeletionDefault(params));
8005
- }
8006
- };
8007
-
8008
7981
  // src/features/subagents/geminicli-subagent.ts
8009
- var import_node_path67 = require("path");
7982
+ var import_node_path66 = require("path");
8010
7983
  var GeminiCliSubagent = class _GeminiCliSubagent extends SimulatedSubagent {
8011
7984
  static getSettablePaths() {
8012
7985
  return {
8013
- relativeDirPath: (0, import_node_path67.join)(".gemini", "subagents")
7986
+ relativeDirPath: (0, import_node_path66.join)(".gemini", "subagents")
8014
7987
  };
8015
7988
  }
8016
7989
  static async fromFile(params) {
@@ -8033,11 +8006,11 @@ var GeminiCliSubagent = class _GeminiCliSubagent extends SimulatedSubagent {
8033
8006
  };
8034
8007
 
8035
8008
  // src/features/subagents/roo-subagent.ts
8036
- var import_node_path68 = require("path");
8009
+ var import_node_path67 = require("path");
8037
8010
  var RooSubagent = class _RooSubagent extends SimulatedSubagent {
8038
8011
  static getSettablePaths() {
8039
8012
  return {
8040
- relativeDirPath: (0, import_node_path68.join)(".roo", "subagents")
8013
+ relativeDirPath: (0, import_node_path67.join)(".roo", "subagents")
8041
8014
  };
8042
8015
  }
8043
8016
  static async fromFile(params) {
@@ -8061,14 +8034,14 @@ var RooSubagent = class _RooSubagent extends SimulatedSubagent {
8061
8034
 
8062
8035
  // src/features/subagents/subagents-processor.ts
8063
8036
  var import_node_path74 = require("path");
8064
- var import_mini37 = require("zod/mini");
8037
+ var import_mini38 = require("zod/mini");
8065
8038
 
8066
8039
  // src/features/subagents/claudecode-subagent.ts
8067
- var import_node_path70 = require("path");
8040
+ var import_node_path69 = require("path");
8068
8041
  var import_mini33 = require("zod/mini");
8069
8042
 
8070
8043
  // src/features/subagents/rulesync-subagent.ts
8071
- var import_node_path69 = require("path");
8044
+ var import_node_path68 = require("path");
8072
8045
  var import_mini32 = require("zod/mini");
8073
8046
  var RulesyncSubagentFrontmatterSchema = import_mini32.z.looseObject({
8074
8047
  targets: RulesyncTargetsSchema,
@@ -8083,7 +8056,7 @@ var RulesyncSubagent = class _RulesyncSubagent extends RulesyncFile {
8083
8056
  const result = RulesyncSubagentFrontmatterSchema.safeParse(frontmatter);
8084
8057
  if (!result.success) {
8085
8058
  throw new Error(
8086
- `Invalid frontmatter in ${(0, import_node_path69.join)(rest.relativeDirPath, rest.relativeFilePath)}: ${formatError(result.error)}`
8059
+ `Invalid frontmatter in ${(0, import_node_path68.join)(rest.relativeDirPath, rest.relativeFilePath)}: ${formatError(result.error)}`
8087
8060
  );
8088
8061
  }
8089
8062
  }
@@ -8116,7 +8089,7 @@ var RulesyncSubagent = class _RulesyncSubagent extends RulesyncFile {
8116
8089
  return {
8117
8090
  success: false,
8118
8091
  error: new Error(
8119
- `Invalid frontmatter in ${(0, import_node_path69.join)(this.relativeDirPath, this.relativeFilePath)}: ${formatError(result.error)}`
8092
+ `Invalid frontmatter in ${(0, import_node_path68.join)(this.relativeDirPath, this.relativeFilePath)}: ${formatError(result.error)}`
8120
8093
  )
8121
8094
  };
8122
8095
  }
@@ -8125,14 +8098,14 @@ var RulesyncSubagent = class _RulesyncSubagent extends RulesyncFile {
8125
8098
  relativeFilePath
8126
8099
  }) {
8127
8100
  const fileContent = await readFileContent(
8128
- (0, import_node_path69.join)(process.cwd(), RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH, relativeFilePath)
8101
+ (0, import_node_path68.join)(process.cwd(), RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH, relativeFilePath)
8129
8102
  );
8130
8103
  const { frontmatter, body: content } = parseFrontmatter(fileContent);
8131
8104
  const result = RulesyncSubagentFrontmatterSchema.safeParse(frontmatter);
8132
8105
  if (!result.success) {
8133
8106
  throw new Error(`Invalid frontmatter in ${relativeFilePath}: ${formatError(result.error)}`);
8134
8107
  }
8135
- const filename = (0, import_node_path69.basename)(relativeFilePath);
8108
+ const filename = (0, import_node_path68.basename)(relativeFilePath);
8136
8109
  return new _RulesyncSubagent({
8137
8110
  baseDir: process.cwd(),
8138
8111
  relativeDirPath: this.getSettablePaths().relativeDirPath,
@@ -8160,7 +8133,7 @@ var ClaudecodeSubagent = class _ClaudecodeSubagent extends ToolSubagent {
8160
8133
  const result = ClaudecodeSubagentFrontmatterSchema.safeParse(frontmatter);
8161
8134
  if (!result.success) {
8162
8135
  throw new Error(
8163
- `Invalid frontmatter in ${(0, import_node_path70.join)(rest.relativeDirPath, rest.relativeFilePath)}: ${formatError(result.error)}`
8136
+ `Invalid frontmatter in ${(0, import_node_path69.join)(rest.relativeDirPath, rest.relativeFilePath)}: ${formatError(result.error)}`
8164
8137
  );
8165
8138
  }
8166
8139
  }
@@ -8172,7 +8145,7 @@ var ClaudecodeSubagent = class _ClaudecodeSubagent extends ToolSubagent {
8172
8145
  }
8173
8146
  static getSettablePaths(_options = {}) {
8174
8147
  return {
8175
- relativeDirPath: (0, import_node_path70.join)(".claude", "agents")
8148
+ relativeDirPath: (0, import_node_path69.join)(".claude", "agents")
8176
8149
  };
8177
8150
  }
8178
8151
  getFrontmatter() {
@@ -8246,7 +8219,7 @@ var ClaudecodeSubagent = class _ClaudecodeSubagent extends ToolSubagent {
8246
8219
  return {
8247
8220
  success: false,
8248
8221
  error: new Error(
8249
- `Invalid frontmatter in ${(0, import_node_path70.join)(this.relativeDirPath, this.relativeFilePath)}: ${formatError(result.error)}`
8222
+ `Invalid frontmatter in ${(0, import_node_path69.join)(this.relativeDirPath, this.relativeFilePath)}: ${formatError(result.error)}`
8250
8223
  )
8251
8224
  };
8252
8225
  }
@@ -8264,7 +8237,7 @@ var ClaudecodeSubagent = class _ClaudecodeSubagent extends ToolSubagent {
8264
8237
  global = false
8265
8238
  }) {
8266
8239
  const paths = this.getSettablePaths({ global });
8267
- const filePath = (0, import_node_path70.join)(baseDir, paths.relativeDirPath, relativeFilePath);
8240
+ const filePath = (0, import_node_path69.join)(baseDir, paths.relativeDirPath, relativeFilePath);
8268
8241
  const fileContent = await readFileContent(filePath);
8269
8242
  const { frontmatter, body: content } = parseFrontmatter(fileContent);
8270
8243
  const result = ClaudecodeSubagentFrontmatterSchema.safeParse(frontmatter);
@@ -8299,7 +8272,7 @@ var ClaudecodeSubagent = class _ClaudecodeSubagent extends ToolSubagent {
8299
8272
  };
8300
8273
 
8301
8274
  // src/features/subagents/copilot-subagent.ts
8302
- var import_node_path71 = require("path");
8275
+ var import_node_path70 = require("path");
8303
8276
  var import_mini34 = require("zod/mini");
8304
8277
  var REQUIRED_TOOL = "agent/runSubagent";
8305
8278
  var CopilotSubagentFrontmatterSchema = import_mini34.z.looseObject({
@@ -8325,7 +8298,7 @@ var CopilotSubagent = class _CopilotSubagent extends ToolSubagent {
8325
8298
  const result = CopilotSubagentFrontmatterSchema.safeParse(frontmatter);
8326
8299
  if (!result.success) {
8327
8300
  throw new Error(
8328
- `Invalid frontmatter in ${(0, import_node_path71.join)(rest.relativeDirPath, rest.relativeFilePath)}: ${formatError(result.error)}`
8301
+ `Invalid frontmatter in ${(0, import_node_path70.join)(rest.relativeDirPath, rest.relativeFilePath)}: ${formatError(result.error)}`
8329
8302
  );
8330
8303
  }
8331
8304
  }
@@ -8337,7 +8310,7 @@ var CopilotSubagent = class _CopilotSubagent extends ToolSubagent {
8337
8310
  }
8338
8311
  static getSettablePaths(_options = {}) {
8339
8312
  return {
8340
- relativeDirPath: (0, import_node_path71.join)(".github", "agents")
8313
+ relativeDirPath: (0, import_node_path70.join)(".github", "agents")
8341
8314
  };
8342
8315
  }
8343
8316
  getFrontmatter() {
@@ -8411,7 +8384,7 @@ var CopilotSubagent = class _CopilotSubagent extends ToolSubagent {
8411
8384
  return {
8412
8385
  success: false,
8413
8386
  error: new Error(
8414
- `Invalid frontmatter in ${(0, import_node_path71.join)(this.relativeDirPath, this.relativeFilePath)}: ${formatError(result.error)}`
8387
+ `Invalid frontmatter in ${(0, import_node_path70.join)(this.relativeDirPath, this.relativeFilePath)}: ${formatError(result.error)}`
8415
8388
  )
8416
8389
  };
8417
8390
  }
@@ -8429,7 +8402,7 @@ var CopilotSubagent = class _CopilotSubagent extends ToolSubagent {
8429
8402
  global = false
8430
8403
  }) {
8431
8404
  const paths = this.getSettablePaths({ global });
8432
- const filePath = (0, import_node_path71.join)(baseDir, paths.relativeDirPath, relativeFilePath);
8405
+ const filePath = (0, import_node_path70.join)(baseDir, paths.relativeDirPath, relativeFilePath);
8433
8406
  const fileContent = await readFileContent(filePath);
8434
8407
  const { frontmatter, body: content } = parseFrontmatter(fileContent);
8435
8408
  const result = CopilotSubagentFrontmatterSchema.safeParse(frontmatter);
@@ -8464,24 +8437,171 @@ var CopilotSubagent = class _CopilotSubagent extends ToolSubagent {
8464
8437
  }
8465
8438
  };
8466
8439
 
8467
- // src/features/subagents/kiro-subagent.ts
8468
- var import_node_path72 = require("path");
8440
+ // src/features/subagents/cursor-subagent.ts
8441
+ var import_node_path71 = require("path");
8469
8442
  var import_mini35 = require("zod/mini");
8470
- var KiroCliSubagentJsonSchema = import_mini35.z.looseObject({
8443
+ var CursorSubagentFrontmatterSchema = import_mini35.z.looseObject({
8471
8444
  name: import_mini35.z.string(),
8472
- description: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.string())),
8473
- prompt: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.string())),
8474
- tools: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.array(import_mini35.z.string()))),
8475
- toolAliases: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.record(import_mini35.z.string(), import_mini35.z.string()))),
8476
- toolSettings: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.unknown())),
8477
- toolSchema: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.unknown())),
8478
- hooks: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.record(import_mini35.z.string(), import_mini35.z.array(import_mini35.z.unknown())))),
8479
- model: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.string())),
8480
- mcpServers: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.record(import_mini35.z.string(), import_mini35.z.unknown()))),
8481
- useLegacyMcpJson: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.boolean())),
8482
- resources: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.array(import_mini35.z.string()))),
8483
- allowedTools: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.array(import_mini35.z.string()))),
8484
- includeMcpJson: import_mini35.z.optional(import_mini35.z.nullable(import_mini35.z.boolean()))
8445
+ description: import_mini35.z.string()
8446
+ });
8447
+ var CursorSubagent = class _CursorSubagent extends ToolSubagent {
8448
+ frontmatter;
8449
+ body;
8450
+ constructor({ frontmatter, body, ...rest }) {
8451
+ if (rest.validate !== false) {
8452
+ const result = CursorSubagentFrontmatterSchema.safeParse(frontmatter);
8453
+ if (!result.success) {
8454
+ throw new Error(
8455
+ `Invalid frontmatter in ${(0, import_node_path71.join)(rest.relativeDirPath, rest.relativeFilePath)}: ${formatError(result.error)}`
8456
+ );
8457
+ }
8458
+ }
8459
+ super({
8460
+ ...rest
8461
+ });
8462
+ this.frontmatter = frontmatter;
8463
+ this.body = body;
8464
+ }
8465
+ static getSettablePaths(_options = {}) {
8466
+ return {
8467
+ relativeDirPath: (0, import_node_path71.join)(".cursor", "agents")
8468
+ };
8469
+ }
8470
+ getFrontmatter() {
8471
+ return this.frontmatter;
8472
+ }
8473
+ getBody() {
8474
+ return this.body;
8475
+ }
8476
+ toRulesyncSubagent() {
8477
+ const { name, description, ...rest } = this.frontmatter;
8478
+ const rulesyncFrontmatter = {
8479
+ targets: ["*"],
8480
+ name,
8481
+ description,
8482
+ cursor: {
8483
+ ...rest
8484
+ }
8485
+ };
8486
+ return new RulesyncSubagent({
8487
+ baseDir: ".",
8488
+ // RulesyncSubagent baseDir is always the project root directory
8489
+ frontmatter: rulesyncFrontmatter,
8490
+ body: this.body,
8491
+ relativeDirPath: RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH,
8492
+ relativeFilePath: this.getRelativeFilePath(),
8493
+ validate: true
8494
+ });
8495
+ }
8496
+ static fromRulesyncSubagent({
8497
+ baseDir = process.cwd(),
8498
+ rulesyncSubagent,
8499
+ validate = true,
8500
+ global = false
8501
+ }) {
8502
+ const rulesyncFrontmatter = rulesyncSubagent.getFrontmatter();
8503
+ const cursorSection = rulesyncFrontmatter.cursor ?? {};
8504
+ const cursorFrontmatter = {
8505
+ name: rulesyncFrontmatter.name,
8506
+ description: rulesyncFrontmatter.description,
8507
+ ...cursorSection
8508
+ };
8509
+ const body = rulesyncSubagent.getBody();
8510
+ const fileContent = stringifyFrontmatter(body, cursorFrontmatter);
8511
+ const paths = this.getSettablePaths({ global });
8512
+ return new _CursorSubagent({
8513
+ baseDir,
8514
+ frontmatter: cursorFrontmatter,
8515
+ body,
8516
+ relativeDirPath: paths.relativeDirPath,
8517
+ relativeFilePath: rulesyncSubagent.getRelativeFilePath(),
8518
+ fileContent,
8519
+ validate,
8520
+ global
8521
+ });
8522
+ }
8523
+ validate() {
8524
+ if (!this.frontmatter) {
8525
+ return { success: true, error: null };
8526
+ }
8527
+ const result = CursorSubagentFrontmatterSchema.safeParse(this.frontmatter);
8528
+ if (result.success) {
8529
+ return { success: true, error: null };
8530
+ } else {
8531
+ return {
8532
+ success: false,
8533
+ error: new Error(
8534
+ `Invalid frontmatter in ${(0, import_node_path71.join)(this.relativeDirPath, this.relativeFilePath)}: ${formatError(result.error)}`
8535
+ )
8536
+ };
8537
+ }
8538
+ }
8539
+ static isTargetedByRulesyncSubagent(rulesyncSubagent) {
8540
+ return this.isTargetedByRulesyncSubagentDefault({
8541
+ rulesyncSubagent,
8542
+ toolTarget: "cursor"
8543
+ });
8544
+ }
8545
+ static async fromFile({
8546
+ baseDir = process.cwd(),
8547
+ relativeFilePath,
8548
+ validate = true,
8549
+ global = false
8550
+ }) {
8551
+ const paths = this.getSettablePaths({ global });
8552
+ const filePath = (0, import_node_path71.join)(baseDir, paths.relativeDirPath, relativeFilePath);
8553
+ const fileContent = await readFileContent(filePath);
8554
+ const { frontmatter, body: content } = parseFrontmatter(fileContent);
8555
+ const result = CursorSubagentFrontmatterSchema.safeParse(frontmatter);
8556
+ if (!result.success) {
8557
+ throw new Error(`Invalid frontmatter in ${filePath}: ${formatError(result.error)}`);
8558
+ }
8559
+ return new _CursorSubagent({
8560
+ baseDir,
8561
+ relativeDirPath: paths.relativeDirPath,
8562
+ relativeFilePath,
8563
+ frontmatter: result.data,
8564
+ body: content.trim(),
8565
+ fileContent,
8566
+ validate,
8567
+ global
8568
+ });
8569
+ }
8570
+ static forDeletion({
8571
+ baseDir = process.cwd(),
8572
+ relativeDirPath,
8573
+ relativeFilePath
8574
+ }) {
8575
+ return new _CursorSubagent({
8576
+ baseDir,
8577
+ relativeDirPath,
8578
+ relativeFilePath,
8579
+ frontmatter: { name: "", description: "" },
8580
+ body: "",
8581
+ fileContent: "",
8582
+ validate: false
8583
+ });
8584
+ }
8585
+ };
8586
+
8587
+ // src/features/subagents/kiro-subagent.ts
8588
+ var import_node_path72 = require("path");
8589
+ var import_mini36 = require("zod/mini");
8590
+ var KiroCliSubagentJsonSchema = import_mini36.z.looseObject({
8591
+ name: import_mini36.z.string(),
8592
+ description: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.string())),
8593
+ prompt: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.string())),
8594
+ tools: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.array(import_mini36.z.string()))),
8595
+ toolAliases: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.record(import_mini36.z.string(), import_mini36.z.string()))),
8596
+ toolSettings: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.unknown())),
8597
+ toolSchema: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.unknown())),
8598
+ hooks: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.record(import_mini36.z.string(), import_mini36.z.array(import_mini36.z.unknown())))),
8599
+ model: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.string())),
8600
+ mcpServers: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.record(import_mini36.z.string(), import_mini36.z.unknown()))),
8601
+ useLegacyMcpJson: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.boolean())),
8602
+ resources: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.array(import_mini36.z.string()))),
8603
+ allowedTools: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.array(import_mini36.z.string()))),
8604
+ includeMcpJson: import_mini36.z.optional(import_mini36.z.nullable(import_mini36.z.boolean()))
8485
8605
  });
8486
8606
  var KiroSubagent = class _KiroSubagent extends ToolSubagent {
8487
8607
  body;
@@ -8603,11 +8723,11 @@ var KiroSubagent = class _KiroSubagent extends ToolSubagent {
8603
8723
 
8604
8724
  // src/features/subagents/opencode-subagent.ts
8605
8725
  var import_node_path73 = require("path");
8606
- var import_mini36 = require("zod/mini");
8607
- var OpenCodeSubagentFrontmatterSchema = import_mini36.z.looseObject({
8608
- description: import_mini36.z.string(),
8609
- mode: import_mini36.z.literal("subagent"),
8610
- name: import_mini36.z.optional(import_mini36.z.string())
8726
+ var import_mini37 = require("zod/mini");
8727
+ var OpenCodeSubagentFrontmatterSchema = import_mini37.z.looseObject({
8728
+ description: import_mini37.z.string(),
8729
+ mode: import_mini37.z.literal("subagent"),
8730
+ name: import_mini37.z.optional(import_mini37.z.string())
8611
8731
  });
8612
8732
  var OpenCodeSubagent = class _OpenCodeSubagent extends ToolSubagent {
8613
8733
  frontmatter;
@@ -8762,7 +8882,7 @@ var subagentsProcessorToolTargetTuple = [
8762
8882
  "opencode",
8763
8883
  "roo"
8764
8884
  ];
8765
- var SubagentsProcessorToolTargetSchema = import_mini37.z.enum(subagentsProcessorToolTargetTuple);
8885
+ var SubagentsProcessorToolTargetSchema = import_mini38.z.enum(subagentsProcessorToolTargetTuple);
8766
8886
  var toolSubagentFactories = /* @__PURE__ */ new Map([
8767
8887
  [
8768
8888
  "agentsmd",
@@ -8803,7 +8923,7 @@ var toolSubagentFactories = /* @__PURE__ */ new Map([
8803
8923
  "cursor",
8804
8924
  {
8805
8925
  class: CursorSubagent,
8806
- meta: { supportsSimulated: true, supportsGlobal: false, filePattern: "*.md" }
8926
+ meta: { supportsSimulated: false, supportsGlobal: false, filePattern: "*.md" }
8807
8927
  }
8808
8928
  ],
8809
8929
  [
@@ -9018,42 +9138,42 @@ var import_node_path76 = require("path");
9018
9138
 
9019
9139
  // src/features/rules/rulesync-rule.ts
9020
9140
  var import_node_path75 = require("path");
9021
- var import_mini38 = require("zod/mini");
9022
- var RulesyncRuleFrontmatterSchema = import_mini38.z.object({
9023
- root: import_mini38.z.optional(import_mini38.z.boolean()),
9024
- localRoot: import_mini38.z.optional(import_mini38.z.boolean()),
9025
- targets: import_mini38.z.optional(RulesyncTargetsSchema),
9026
- description: import_mini38.z.optional(import_mini38.z.string()),
9027
- globs: import_mini38.z.optional(import_mini38.z.array(import_mini38.z.string())),
9028
- agentsmd: import_mini38.z.optional(
9029
- import_mini38.z.object({
9141
+ var import_mini39 = require("zod/mini");
9142
+ var RulesyncRuleFrontmatterSchema = import_mini39.z.object({
9143
+ root: import_mini39.z.optional(import_mini39.z.boolean()),
9144
+ localRoot: import_mini39.z.optional(import_mini39.z.boolean()),
9145
+ targets: import_mini39.z.optional(RulesyncTargetsSchema),
9146
+ description: import_mini39.z.optional(import_mini39.z.string()),
9147
+ globs: import_mini39.z.optional(import_mini39.z.array(import_mini39.z.string())),
9148
+ agentsmd: import_mini39.z.optional(
9149
+ import_mini39.z.object({
9030
9150
  // @example "path/to/subproject"
9031
- subprojectPath: import_mini38.z.optional(import_mini38.z.string())
9151
+ subprojectPath: import_mini39.z.optional(import_mini39.z.string())
9032
9152
  })
9033
9153
  ),
9034
- claudecode: import_mini38.z.optional(
9035
- import_mini38.z.object({
9154
+ claudecode: import_mini39.z.optional(
9155
+ import_mini39.z.object({
9036
9156
  // Glob patterns for conditional rules (takes precedence over globs)
9037
9157
  // @example "src/**/*.ts, tests/**/*.test.ts"
9038
- paths: import_mini38.z.optional(import_mini38.z.string())
9158
+ paths: import_mini39.z.optional(import_mini39.z.string())
9039
9159
  })
9040
9160
  ),
9041
- cursor: import_mini38.z.optional(
9042
- import_mini38.z.object({
9043
- alwaysApply: import_mini38.z.optional(import_mini38.z.boolean()),
9044
- description: import_mini38.z.optional(import_mini38.z.string()),
9045
- globs: import_mini38.z.optional(import_mini38.z.array(import_mini38.z.string()))
9161
+ cursor: import_mini39.z.optional(
9162
+ import_mini39.z.object({
9163
+ alwaysApply: import_mini39.z.optional(import_mini39.z.boolean()),
9164
+ description: import_mini39.z.optional(import_mini39.z.string()),
9165
+ globs: import_mini39.z.optional(import_mini39.z.array(import_mini39.z.string()))
9046
9166
  })
9047
9167
  ),
9048
- copilot: import_mini38.z.optional(
9049
- import_mini38.z.object({
9050
- excludeAgent: import_mini38.z.optional(import_mini38.z.union([import_mini38.z.literal("code-review"), import_mini38.z.literal("coding-agent")]))
9168
+ copilot: import_mini39.z.optional(
9169
+ import_mini39.z.object({
9170
+ excludeAgent: import_mini39.z.optional(import_mini39.z.union([import_mini39.z.literal("code-review"), import_mini39.z.literal("coding-agent")]))
9051
9171
  })
9052
9172
  ),
9053
- antigravity: import_mini38.z.optional(
9054
- import_mini38.z.looseObject({
9055
- trigger: import_mini38.z.optional(import_mini38.z.string()),
9056
- globs: import_mini38.z.optional(import_mini38.z.array(import_mini38.z.string()))
9173
+ antigravity: import_mini39.z.optional(
9174
+ import_mini39.z.looseObject({
9175
+ trigger: import_mini39.z.optional(import_mini39.z.string()),
9176
+ globs: import_mini39.z.optional(import_mini39.z.array(import_mini39.z.string()))
9057
9177
  })
9058
9178
  )
9059
9179
  });
@@ -9354,20 +9474,20 @@ var AgentsMdRule = class _AgentsMdRule extends ToolRule {
9354
9474
 
9355
9475
  // src/features/rules/antigravity-rule.ts
9356
9476
  var import_node_path78 = require("path");
9357
- var import_mini39 = require("zod/mini");
9358
- var AntigravityRuleFrontmatterSchema = import_mini39.z.looseObject({
9359
- trigger: import_mini39.z.optional(
9360
- import_mini39.z.union([
9361
- import_mini39.z.literal("always_on"),
9362
- import_mini39.z.literal("glob"),
9363
- import_mini39.z.literal("manual"),
9364
- import_mini39.z.literal("model_decision"),
9365
- import_mini39.z.string()
9477
+ var import_mini40 = require("zod/mini");
9478
+ var AntigravityRuleFrontmatterSchema = import_mini40.z.looseObject({
9479
+ trigger: import_mini40.z.optional(
9480
+ import_mini40.z.union([
9481
+ import_mini40.z.literal("always_on"),
9482
+ import_mini40.z.literal("glob"),
9483
+ import_mini40.z.literal("manual"),
9484
+ import_mini40.z.literal("model_decision"),
9485
+ import_mini40.z.string()
9366
9486
  // accepts any string for forward compatibility
9367
9487
  ])
9368
9488
  ),
9369
- globs: import_mini39.z.optional(import_mini39.z.string()),
9370
- description: import_mini39.z.optional(import_mini39.z.string())
9489
+ globs: import_mini40.z.optional(import_mini40.z.string()),
9490
+ description: import_mini40.z.optional(import_mini40.z.string())
9371
9491
  });
9372
9492
  function parseGlobsString(globs) {
9373
9493
  if (!globs) {
@@ -9945,9 +10065,9 @@ var ClaudecodeLegacyRule = class _ClaudecodeLegacyRule extends ToolRule {
9945
10065
 
9946
10066
  // src/features/rules/claudecode-rule.ts
9947
10067
  var import_node_path82 = require("path");
9948
- var import_mini40 = require("zod/mini");
9949
- var ClaudecodeRuleFrontmatterSchema = import_mini40.z.object({
9950
- paths: import_mini40.z.optional(import_mini40.z.string())
10068
+ var import_mini41 = require("zod/mini");
10069
+ var ClaudecodeRuleFrontmatterSchema = import_mini41.z.object({
10070
+ paths: import_mini41.z.optional(import_mini41.z.string())
9951
10071
  });
9952
10072
  var ClaudecodeRule = class _ClaudecodeRule extends ToolRule {
9953
10073
  frontmatter;
@@ -10155,9 +10275,9 @@ var ClaudecodeRule = class _ClaudecodeRule extends ToolRule {
10155
10275
 
10156
10276
  // src/features/rules/cline-rule.ts
10157
10277
  var import_node_path83 = require("path");
10158
- var import_mini41 = require("zod/mini");
10159
- var ClineRuleFrontmatterSchema = import_mini41.z.object({
10160
- description: import_mini41.z.string()
10278
+ var import_mini42 = require("zod/mini");
10279
+ var ClineRuleFrontmatterSchema = import_mini42.z.object({
10280
+ description: import_mini42.z.string()
10161
10281
  });
10162
10282
  var ClineRule = class _ClineRule extends ToolRule {
10163
10283
  static getSettablePaths() {
@@ -10334,11 +10454,11 @@ var CodexcliRule = class _CodexcliRule extends ToolRule {
10334
10454
 
10335
10455
  // src/features/rules/copilot-rule.ts
10336
10456
  var import_node_path85 = require("path");
10337
- var import_mini42 = require("zod/mini");
10338
- var CopilotRuleFrontmatterSchema = import_mini42.z.object({
10339
- description: import_mini42.z.optional(import_mini42.z.string()),
10340
- applyTo: import_mini42.z.optional(import_mini42.z.string()),
10341
- excludeAgent: import_mini42.z.optional(import_mini42.z.union([import_mini42.z.literal("code-review"), import_mini42.z.literal("coding-agent")]))
10457
+ var import_mini43 = require("zod/mini");
10458
+ var CopilotRuleFrontmatterSchema = import_mini43.z.object({
10459
+ description: import_mini43.z.optional(import_mini43.z.string()),
10460
+ applyTo: import_mini43.z.optional(import_mini43.z.string()),
10461
+ excludeAgent: import_mini43.z.optional(import_mini43.z.union([import_mini43.z.literal("code-review"), import_mini43.z.literal("coding-agent")]))
10342
10462
  });
10343
10463
  var CopilotRule = class _CopilotRule extends ToolRule {
10344
10464
  frontmatter;
@@ -10522,11 +10642,11 @@ var CopilotRule = class _CopilotRule extends ToolRule {
10522
10642
 
10523
10643
  // src/features/rules/cursor-rule.ts
10524
10644
  var import_node_path86 = require("path");
10525
- var import_mini43 = require("zod/mini");
10526
- var CursorRuleFrontmatterSchema = import_mini43.z.object({
10527
- description: import_mini43.z.optional(import_mini43.z.string()),
10528
- globs: import_mini43.z.optional(import_mini43.z.string()),
10529
- alwaysApply: import_mini43.z.optional(import_mini43.z.boolean())
10645
+ var import_mini44 = require("zod/mini");
10646
+ var CursorRuleFrontmatterSchema = import_mini44.z.object({
10647
+ description: import_mini44.z.optional(import_mini44.z.string()),
10648
+ globs: import_mini44.z.optional(import_mini44.z.string()),
10649
+ alwaysApply: import_mini44.z.optional(import_mini44.z.boolean())
10530
10650
  });
10531
10651
  var CursorRule = class _CursorRule extends ToolRule {
10532
10652
  frontmatter;
@@ -11532,7 +11652,7 @@ var rulesProcessorToolTargets = [
11532
11652
  "warp",
11533
11653
  "windsurf"
11534
11654
  ];
11535
- var RulesProcessorToolTargetSchema = import_mini44.z.enum(rulesProcessorToolTargets);
11655
+ var RulesProcessorToolTargetSchema = import_mini45.z.enum(rulesProcessorToolTargets);
11536
11656
  var toolRuleFactories = /* @__PURE__ */ new Map([
11537
11657
  [
11538
11658
  "agentsmd",
@@ -11624,11 +11744,7 @@ var toolRuleFactories = /* @__PURE__ */ new Map([
11624
11744
  meta: {
11625
11745
  extension: "mdc",
11626
11746
  supportsGlobal: false,
11627
- ruleDiscoveryMode: "auto",
11628
- additionalConventions: {
11629
- subagents: { subagentClass: CursorSubagent }
11630
- },
11631
- createsSeparateConventionsRule: true
11747
+ ruleDiscoveryMode: "auto"
11632
11748
  }
11633
11749
  }
11634
11750
  ],
@@ -13084,11 +13200,11 @@ Keep the summary concise and ready to reuse in future tasks.`
13084
13200
  var import_fastmcp = require("fastmcp");
13085
13201
 
13086
13202
  // src/mcp/tools.ts
13087
- var import_mini51 = require("zod/mini");
13203
+ var import_mini52 = require("zod/mini");
13088
13204
 
13089
13205
  // src/mcp/commands.ts
13090
13206
  var import_node_path101 = require("path");
13091
- var import_mini45 = require("zod/mini");
13207
+ var import_mini46 = require("zod/mini");
13092
13208
  var maxCommandSizeBytes = 1024 * 1024;
13093
13209
  var maxCommandsCount = 1e3;
13094
13210
  async function listCommands() {
@@ -13207,17 +13323,17 @@ async function deleteCommand({ relativePathFromCwd }) {
13207
13323
  }
13208
13324
  }
13209
13325
  var commandToolSchemas = {
13210
- listCommands: import_mini45.z.object({}),
13211
- getCommand: import_mini45.z.object({
13212
- relativePathFromCwd: import_mini45.z.string()
13326
+ listCommands: import_mini46.z.object({}),
13327
+ getCommand: import_mini46.z.object({
13328
+ relativePathFromCwd: import_mini46.z.string()
13213
13329
  }),
13214
- putCommand: import_mini45.z.object({
13215
- relativePathFromCwd: import_mini45.z.string(),
13330
+ putCommand: import_mini46.z.object({
13331
+ relativePathFromCwd: import_mini46.z.string(),
13216
13332
  frontmatter: RulesyncCommandFrontmatterSchema,
13217
- body: import_mini45.z.string()
13333
+ body: import_mini46.z.string()
13218
13334
  }),
13219
- deleteCommand: import_mini45.z.object({
13220
- relativePathFromCwd: import_mini45.z.string()
13335
+ deleteCommand: import_mini46.z.object({
13336
+ relativePathFromCwd: import_mini46.z.string()
13221
13337
  })
13222
13338
  };
13223
13339
  var commandTools = {
@@ -13266,7 +13382,7 @@ var commandTools = {
13266
13382
 
13267
13383
  // src/mcp/ignore.ts
13268
13384
  var import_node_path102 = require("path");
13269
- var import_mini46 = require("zod/mini");
13385
+ var import_mini47 = require("zod/mini");
13270
13386
  var maxIgnoreFileSizeBytes = 100 * 1024;
13271
13387
  async function getIgnoreFile() {
13272
13388
  const ignoreFilePath = (0, import_node_path102.join)(process.cwd(), RULESYNC_AIIGNORE_RELATIVE_FILE_PATH);
@@ -13323,11 +13439,11 @@ async function deleteIgnoreFile() {
13323
13439
  }
13324
13440
  }
13325
13441
  var ignoreToolSchemas = {
13326
- getIgnoreFile: import_mini46.z.object({}),
13327
- putIgnoreFile: import_mini46.z.object({
13328
- content: import_mini46.z.string()
13442
+ getIgnoreFile: import_mini47.z.object({}),
13443
+ putIgnoreFile: import_mini47.z.object({
13444
+ content: import_mini47.z.string()
13329
13445
  }),
13330
- deleteIgnoreFile: import_mini46.z.object({})
13446
+ deleteIgnoreFile: import_mini47.z.object({})
13331
13447
  };
13332
13448
  var ignoreTools = {
13333
13449
  getIgnoreFile: {
@@ -13361,7 +13477,7 @@ var ignoreTools = {
13361
13477
 
13362
13478
  // src/mcp/mcp.ts
13363
13479
  var import_node_path103 = require("path");
13364
- var import_mini47 = require("zod/mini");
13480
+ var import_mini48 = require("zod/mini");
13365
13481
  var maxMcpSizeBytes = 1024 * 1024;
13366
13482
  async function getMcpFile() {
13367
13483
  const config = await ConfigResolver.resolve({});
@@ -13451,11 +13567,11 @@ async function deleteMcpFile() {
13451
13567
  }
13452
13568
  }
13453
13569
  var mcpToolSchemas = {
13454
- getMcpFile: import_mini47.z.object({}),
13455
- putMcpFile: import_mini47.z.object({
13456
- content: import_mini47.z.string()
13570
+ getMcpFile: import_mini48.z.object({}),
13571
+ putMcpFile: import_mini48.z.object({
13572
+ content: import_mini48.z.string()
13457
13573
  }),
13458
- deleteMcpFile: import_mini47.z.object({})
13574
+ deleteMcpFile: import_mini48.z.object({})
13459
13575
  };
13460
13576
  var mcpTools = {
13461
13577
  getMcpFile: {
@@ -13489,7 +13605,7 @@ var mcpTools = {
13489
13605
 
13490
13606
  // src/mcp/rules.ts
13491
13607
  var import_node_path104 = require("path");
13492
- var import_mini48 = require("zod/mini");
13608
+ var import_mini49 = require("zod/mini");
13493
13609
  var maxRuleSizeBytes = 1024 * 1024;
13494
13610
  var maxRulesCount = 1e3;
13495
13611
  async function listRules() {
@@ -13608,17 +13724,17 @@ async function deleteRule({ relativePathFromCwd }) {
13608
13724
  }
13609
13725
  }
13610
13726
  var ruleToolSchemas = {
13611
- listRules: import_mini48.z.object({}),
13612
- getRule: import_mini48.z.object({
13613
- relativePathFromCwd: import_mini48.z.string()
13727
+ listRules: import_mini49.z.object({}),
13728
+ getRule: import_mini49.z.object({
13729
+ relativePathFromCwd: import_mini49.z.string()
13614
13730
  }),
13615
- putRule: import_mini48.z.object({
13616
- relativePathFromCwd: import_mini48.z.string(),
13731
+ putRule: import_mini49.z.object({
13732
+ relativePathFromCwd: import_mini49.z.string(),
13617
13733
  frontmatter: RulesyncRuleFrontmatterSchema,
13618
- body: import_mini48.z.string()
13734
+ body: import_mini49.z.string()
13619
13735
  }),
13620
- deleteRule: import_mini48.z.object({
13621
- relativePathFromCwd: import_mini48.z.string()
13736
+ deleteRule: import_mini49.z.object({
13737
+ relativePathFromCwd: import_mini49.z.string()
13622
13738
  })
13623
13739
  };
13624
13740
  var ruleTools = {
@@ -13667,7 +13783,7 @@ var ruleTools = {
13667
13783
 
13668
13784
  // src/mcp/skills.ts
13669
13785
  var import_node_path105 = require("path");
13670
- var import_mini49 = require("zod/mini");
13786
+ var import_mini50 = require("zod/mini");
13671
13787
  var maxSkillSizeBytes = 1024 * 1024;
13672
13788
  var maxSkillsCount = 1e3;
13673
13789
  function aiDirFileToMcpSkillFile(file) {
@@ -13835,23 +13951,23 @@ async function deleteSkill({
13835
13951
  );
13836
13952
  }
13837
13953
  }
13838
- var McpSkillFileSchema = import_mini49.z.object({
13839
- name: import_mini49.z.string(),
13840
- body: import_mini49.z.string()
13954
+ var McpSkillFileSchema = import_mini50.z.object({
13955
+ name: import_mini50.z.string(),
13956
+ body: import_mini50.z.string()
13841
13957
  });
13842
13958
  var skillToolSchemas = {
13843
- listSkills: import_mini49.z.object({}),
13844
- getSkill: import_mini49.z.object({
13845
- relativeDirPathFromCwd: import_mini49.z.string()
13959
+ listSkills: import_mini50.z.object({}),
13960
+ getSkill: import_mini50.z.object({
13961
+ relativeDirPathFromCwd: import_mini50.z.string()
13846
13962
  }),
13847
- putSkill: import_mini49.z.object({
13848
- relativeDirPathFromCwd: import_mini49.z.string(),
13963
+ putSkill: import_mini50.z.object({
13964
+ relativeDirPathFromCwd: import_mini50.z.string(),
13849
13965
  frontmatter: RulesyncSkillFrontmatterSchema,
13850
- body: import_mini49.z.string(),
13851
- otherFiles: import_mini49.z.optional(import_mini49.z.array(McpSkillFileSchema))
13966
+ body: import_mini50.z.string(),
13967
+ otherFiles: import_mini50.z.optional(import_mini50.z.array(McpSkillFileSchema))
13852
13968
  }),
13853
- deleteSkill: import_mini49.z.object({
13854
- relativeDirPathFromCwd: import_mini49.z.string()
13969
+ deleteSkill: import_mini50.z.object({
13970
+ relativeDirPathFromCwd: import_mini50.z.string()
13855
13971
  })
13856
13972
  };
13857
13973
  var skillTools = {
@@ -13901,7 +14017,7 @@ var skillTools = {
13901
14017
 
13902
14018
  // src/mcp/subagents.ts
13903
14019
  var import_node_path106 = require("path");
13904
- var import_mini50 = require("zod/mini");
14020
+ var import_mini51 = require("zod/mini");
13905
14021
  var maxSubagentSizeBytes = 1024 * 1024;
13906
14022
  var maxSubagentsCount = 1e3;
13907
14023
  async function listSubagents() {
@@ -14025,17 +14141,17 @@ async function deleteSubagent({ relativePathFromCwd }) {
14025
14141
  }
14026
14142
  }
14027
14143
  var subagentToolSchemas = {
14028
- listSubagents: import_mini50.z.object({}),
14029
- getSubagent: import_mini50.z.object({
14030
- relativePathFromCwd: import_mini50.z.string()
14144
+ listSubagents: import_mini51.z.object({}),
14145
+ getSubagent: import_mini51.z.object({
14146
+ relativePathFromCwd: import_mini51.z.string()
14031
14147
  }),
14032
- putSubagent: import_mini50.z.object({
14033
- relativePathFromCwd: import_mini50.z.string(),
14148
+ putSubagent: import_mini51.z.object({
14149
+ relativePathFromCwd: import_mini51.z.string(),
14034
14150
  frontmatter: RulesyncSubagentFrontmatterSchema,
14035
- body: import_mini50.z.string()
14151
+ body: import_mini51.z.string()
14036
14152
  }),
14037
- deleteSubagent: import_mini50.z.object({
14038
- relativePathFromCwd: import_mini50.z.string()
14153
+ deleteSubagent: import_mini51.z.object({
14154
+ relativePathFromCwd: import_mini51.z.string()
14039
14155
  })
14040
14156
  };
14041
14157
  var subagentTools = {
@@ -14083,20 +14199,20 @@ var subagentTools = {
14083
14199
  };
14084
14200
 
14085
14201
  // src/mcp/tools.ts
14086
- var rulesyncFeatureSchema = import_mini51.z.enum(["rule", "command", "subagent", "skill", "ignore", "mcp"]);
14087
- var rulesyncOperationSchema = import_mini51.z.enum(["list", "get", "put", "delete"]);
14088
- var skillFileSchema = import_mini51.z.object({
14089
- name: import_mini51.z.string(),
14090
- body: import_mini51.z.string()
14202
+ var rulesyncFeatureSchema = import_mini52.z.enum(["rule", "command", "subagent", "skill", "ignore", "mcp"]);
14203
+ var rulesyncOperationSchema = import_mini52.z.enum(["list", "get", "put", "delete"]);
14204
+ var skillFileSchema = import_mini52.z.object({
14205
+ name: import_mini52.z.string(),
14206
+ body: import_mini52.z.string()
14091
14207
  });
14092
- var rulesyncToolSchema = import_mini51.z.object({
14208
+ var rulesyncToolSchema = import_mini52.z.object({
14093
14209
  feature: rulesyncFeatureSchema,
14094
14210
  operation: rulesyncOperationSchema,
14095
- targetPathFromCwd: import_mini51.z.optional(import_mini51.z.string()),
14096
- frontmatter: import_mini51.z.optional(import_mini51.z.unknown()),
14097
- body: import_mini51.z.optional(import_mini51.z.string()),
14098
- otherFiles: import_mini51.z.optional(import_mini51.z.array(skillFileSchema)),
14099
- content: import_mini51.z.optional(import_mini51.z.string())
14211
+ targetPathFromCwd: import_mini52.z.optional(import_mini52.z.string()),
14212
+ frontmatter: import_mini52.z.optional(import_mini52.z.unknown()),
14213
+ body: import_mini52.z.optional(import_mini52.z.string()),
14214
+ otherFiles: import_mini52.z.optional(import_mini52.z.array(skillFileSchema)),
14215
+ content: import_mini52.z.optional(import_mini52.z.string())
14100
14216
  });
14101
14217
  var supportedOperationsByFeature = {
14102
14218
  rule: ["list", "get", "put", "delete"],
@@ -14292,7 +14408,7 @@ async function mcpCommand({ version }) {
14292
14408
  }
14293
14409
 
14294
14410
  // src/cli/index.ts
14295
- var getVersion = () => "6.1.1";
14411
+ var getVersion = () => "6.2.0";
14296
14412
  var main = async () => {
14297
14413
  const program = new import_commander.Command();
14298
14414
  const version = getVersion();
@@ -14359,7 +14475,7 @@ var main = async () => {
14359
14475
  "Generate simulated commands. This feature is only available for copilot, cursor and codexcli."
14360
14476
  ).option(
14361
14477
  "--simulate-subagents",
14362
- "Generate simulated subagents. This feature is only available for copilot, cursor and codexcli."
14478
+ "Generate simulated subagents. This feature is only available for copilot and codexcli."
14363
14479
  ).option(
14364
14480
  "--simulate-skills",
14365
14481
  "Generate simulated skills. This feature is only available for copilot, cursor and codexcli."