rulesync 8.17.0 → 8.18.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.
@@ -8016,14 +8016,21 @@ var ClineMcp = class _ClineMcp extends ToolMcp {
8016
8016
  // src/features/mcp/codexcli-mcp.ts
8017
8017
  var import_node_path54 = require("path");
8018
8018
  var smolToml3 = __toESM(require("smol-toml"), 1);
8019
+ var MAX_REMOVE_EMPTY_ENTRIES_DEPTH = 32;
8020
+ var PROTOTYPE_POLLUTION_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
8021
+ function isPlainObject2(value) {
8022
+ if (!isRecord(value)) return false;
8023
+ const proto = Object.getPrototypeOf(value);
8024
+ return proto === null || proto === Object.prototype;
8025
+ }
8019
8026
  function convertFromCodexFormat(codexMcp) {
8020
8027
  const result = {};
8021
8028
  for (const [name, config] of Object.entries(codexMcp)) {
8022
- if (typeof config !== "object" || config === null || Array.isArray(config)) {
8023
- continue;
8024
- }
8029
+ if (PROTOTYPE_POLLUTION_KEYS.has(name)) continue;
8030
+ if (!isRecord(config)) continue;
8025
8031
  const converted = {};
8026
8032
  for (const [key, value] of Object.entries(config)) {
8033
+ if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
8027
8034
  if (key === "enabled") {
8028
8035
  if (value === false) {
8029
8036
  converted["disabled"] = true;
@@ -8045,8 +8052,11 @@ function convertFromCodexFormat(codexMcp) {
8045
8052
  function convertToCodexFormat(mcpServers) {
8046
8053
  const result = {};
8047
8054
  for (const [name, config] of Object.entries(mcpServers)) {
8055
+ if (PROTOTYPE_POLLUTION_KEYS.has(name)) continue;
8056
+ if (!isRecord(config)) continue;
8048
8057
  const converted = {};
8049
8058
  for (const [key, value] of Object.entries(config)) {
8059
+ if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
8050
8060
  if (key === "disabled") {
8051
8061
  if (value === true) {
8052
8062
  converted["enabled"] = false;
@@ -8128,6 +8138,14 @@ var CodexcliMcp = class _CodexcliMcp extends ToolMcp {
8128
8138
  const mcpServers = rulesyncMcp.getJson().mcpServers;
8129
8139
  const converted = convertToCodexFormat(mcpServers);
8130
8140
  const filteredMcpServers = this.removeEmptyEntries(converted);
8141
+ for (const name of Object.keys(converted)) {
8142
+ if (!Object.hasOwn(filteredMcpServers, name)) {
8143
+ warnWithFallback(
8144
+ void 0,
8145
+ `MCP server "${name}" had no non-empty configuration and was dropped from the codex CLI config`
8146
+ );
8147
+ }
8148
+ }
8131
8149
  configToml["mcp_servers"] = filteredMcpServers;
8132
8150
  return new _CodexcliMcp({
8133
8151
  outputRoot,
@@ -8147,13 +8165,21 @@ var CodexcliMcp = class _CodexcliMcp extends ToolMcp {
8147
8165
  validate() {
8148
8166
  return { success: true, error: null };
8149
8167
  }
8150
- static removeEmptyEntries(obj) {
8168
+ static removeEmptyEntries(obj, depth = 0) {
8151
8169
  if (!obj) return {};
8170
+ if (depth > MAX_REMOVE_EMPTY_ENTRIES_DEPTH) {
8171
+ warnWithFallback(
8172
+ void 0,
8173
+ `removeEmptyEntries: maximum recursion depth (${MAX_REMOVE_EMPTY_ENTRIES_DEPTH}) exceeded; empty nested objects may remain`
8174
+ );
8175
+ return obj;
8176
+ }
8152
8177
  const filtered = {};
8153
8178
  for (const [key, value] of Object.entries(obj)) {
8179
+ if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
8154
8180
  if (value === null) continue;
8155
- if (typeof value === "object" && !Array.isArray(value)) {
8156
- const cleaned = this.removeEmptyEntries(value);
8181
+ if (isPlainObject2(value)) {
8182
+ const cleaned = this.removeEmptyEntries(value, depth + 1);
8157
8183
  if (Object.keys(cleaned).length === 0) continue;
8158
8184
  filtered[key] = cleaned;
8159
8185
  continue;
@@ -9846,7 +9872,13 @@ var toolMcpFactories = /* @__PURE__ */ new Map([
9846
9872
  class: KiloMcp,
9847
9873
  meta: {
9848
9874
  supportsProject: true,
9849
- supportsGlobal: false,
9875
+ // Kilo CLI reads global MCP from `~/.config/kilo/kilo.json` (or
9876
+ // `kilo.jsonc`). The path machinery in `KiloMcp.getSettablePaths`
9877
+ // already routes global mode to that location; only this flag
9878
+ // was gating it off. Kilo is an OpenCode fork and uses an
9879
+ // identical native MCP schema, so global parity with opencode
9880
+ // is the natural state.
9881
+ supportsGlobal: true,
9850
9882
  supportsEnabledTools: false,
9851
9883
  supportsDisabledTools: false
9852
9884
  }
@@ -12967,7 +12999,7 @@ var PermissionsProcessor = class extends FeatureProcessor {
12967
12999
  // src/features/rules/rules-processor.ts
12968
13000
  var import_node_path154 = require("path");
12969
13001
  var import_toon = require("@toon-format/toon");
12970
- var import_mini79 = require("zod/mini");
13002
+ var import_mini80 = require("zod/mini");
12971
13003
 
12972
13004
  // src/constants/general.ts
12973
13005
  var SKILL_FILE_NAME = "SKILL.md";
@@ -17919,7 +17951,7 @@ var RovodevSubagent = class _RovodevSubagent extends ToolSubagent {
17919
17951
 
17920
17952
  // src/features/subagents/subagents-processor.ts
17921
17953
  var import_node_path125 = require("path");
17922
- var import_mini72 = require("zod/mini");
17954
+ var import_mini73 = require("zod/mini");
17923
17955
 
17924
17956
  // src/features/subagents/claudecode-subagent.ts
17925
17957
  var import_node_path113 = require("path");
@@ -19079,6 +19111,7 @@ var JunieSubagent = class _JunieSubagent extends ToolSubagent {
19079
19111
 
19080
19112
  // src/features/subagents/kilo-subagent.ts
19081
19113
  var import_node_path121 = require("path");
19114
+ var import_mini71 = require("zod/mini");
19082
19115
 
19083
19116
  // src/features/subagents/opencode-style-subagent.ts
19084
19117
  var import_node_path120 = require("path");
@@ -19145,7 +19178,13 @@ var OpenCodeStyleSubagent = class extends ToolSubagent {
19145
19178
  };
19146
19179
 
19147
19180
  // src/features/subagents/kilo-subagent.ts
19148
- var KiloSubagentFrontmatterSchema = OpenCodeStyleSubagentFrontmatterSchema;
19181
+ var KiloSubagentFrontmatterSchema = import_mini71.z.looseObject({
19182
+ description: import_mini71.z.optional(import_mini71.z.string()),
19183
+ // Kilo's documented default for user-defined agents is "all":
19184
+ // available both as a top-level pick and as a subagent.
19185
+ mode: import_mini71.z._default(import_mini71.z.string(), "all"),
19186
+ name: import_mini71.z.optional(import_mini71.z.string())
19187
+ });
19149
19188
  var KiloSubagent = class _KiloSubagent extends OpenCodeStyleSubagent {
19150
19189
  getToolTarget() {
19151
19190
  return "kilo";
@@ -19165,12 +19204,11 @@ var KiloSubagent = class _KiloSubagent extends OpenCodeStyleSubagent {
19165
19204
  }) {
19166
19205
  const rulesyncFrontmatter = rulesyncSubagent.getFrontmatter();
19167
19206
  const kiloSection = rulesyncFrontmatter.kilo ?? {};
19168
- const kiloFrontmatter = {
19207
+ const kiloFrontmatter = KiloSubagentFrontmatterSchema.parse({
19169
19208
  ...kiloSection,
19170
19209
  description: rulesyncFrontmatter.description,
19171
- mode: typeof kiloSection.mode === "string" ? kiloSection.mode : "subagent",
19172
19210
  ...rulesyncFrontmatter.name && { name: rulesyncFrontmatter.name }
19173
- };
19211
+ });
19174
19212
  const body = rulesyncSubagent.getBody();
19175
19213
  const fileContent = stringifyFrontmatter(body, kiloFrontmatter);
19176
19214
  const paths = this.getSettablePaths({ global });
@@ -19219,38 +19257,40 @@ var KiloSubagent = class _KiloSubagent extends OpenCodeStyleSubagent {
19219
19257
  static forDeletion({
19220
19258
  outputRoot = process.cwd(),
19221
19259
  relativeDirPath,
19222
- relativeFilePath
19260
+ relativeFilePath,
19261
+ global = false
19223
19262
  }) {
19224
19263
  return new _KiloSubagent({
19225
19264
  outputRoot,
19226
19265
  relativeDirPath,
19227
19266
  relativeFilePath,
19228
- frontmatter: { description: "", mode: "subagent" },
19267
+ frontmatter: { description: "", mode: "all" },
19229
19268
  body: "",
19230
19269
  fileContent: "",
19231
- validate: false
19270
+ validate: false,
19271
+ global
19232
19272
  });
19233
19273
  }
19234
19274
  };
19235
19275
 
19236
19276
  // src/features/subagents/kiro-subagent.ts
19237
19277
  var import_node_path122 = require("path");
19238
- var import_mini71 = require("zod/mini");
19239
- var KiroCliSubagentJsonSchema = import_mini71.z.looseObject({
19240
- name: import_mini71.z.string(),
19241
- description: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.string())),
19242
- prompt: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.string())),
19243
- tools: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.array(import_mini71.z.string()))),
19244
- toolAliases: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.record(import_mini71.z.string(), import_mini71.z.string()))),
19245
- toolSettings: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.unknown())),
19246
- toolSchema: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.unknown())),
19247
- hooks: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.record(import_mini71.z.string(), import_mini71.z.array(import_mini71.z.unknown())))),
19248
- model: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.string())),
19249
- mcpServers: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.record(import_mini71.z.string(), import_mini71.z.unknown()))),
19250
- useLegacyMcpJson: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.boolean())),
19251
- resources: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.array(import_mini71.z.string()))),
19252
- allowedTools: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.array(import_mini71.z.string()))),
19253
- includeMcpJson: import_mini71.z.optional(import_mini71.z.nullable(import_mini71.z.boolean()))
19278
+ var import_mini72 = require("zod/mini");
19279
+ var KiroCliSubagentJsonSchema = import_mini72.z.looseObject({
19280
+ name: import_mini72.z.string(),
19281
+ description: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.string())),
19282
+ prompt: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.string())),
19283
+ tools: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.array(import_mini72.z.string()))),
19284
+ toolAliases: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.record(import_mini72.z.string(), import_mini72.z.string()))),
19285
+ toolSettings: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.unknown())),
19286
+ toolSchema: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.unknown())),
19287
+ hooks: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.record(import_mini72.z.string(), import_mini72.z.array(import_mini72.z.unknown())))),
19288
+ model: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.string())),
19289
+ mcpServers: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.record(import_mini72.z.string(), import_mini72.z.unknown()))),
19290
+ useLegacyMcpJson: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.boolean())),
19291
+ resources: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.array(import_mini72.z.string()))),
19292
+ allowedTools: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.array(import_mini72.z.string()))),
19293
+ includeMcpJson: import_mini72.z.optional(import_mini72.z.nullable(import_mini72.z.boolean()))
19254
19294
  });
19255
19295
  var KiroSubagent = class _KiroSubagent extends ToolSubagent {
19256
19296
  body;
@@ -19616,7 +19656,7 @@ var subagentsProcessorToolTargetTuple = [
19616
19656
  "rovodev",
19617
19657
  "takt"
19618
19658
  ];
19619
- var SubagentsProcessorToolTargetSchema = import_mini72.z.enum(subagentsProcessorToolTargetTuple);
19659
+ var SubagentsProcessorToolTargetSchema = import_mini73.z.enum(subagentsProcessorToolTargetTuple);
19620
19660
  var toolSubagentFactories = /* @__PURE__ */ new Map([
19621
19661
  [
19622
19662
  "agentsmd",
@@ -19945,48 +19985,48 @@ var import_node_path127 = require("path");
19945
19985
 
19946
19986
  // src/features/rules/rulesync-rule.ts
19947
19987
  var import_node_path126 = require("path");
19948
- var import_mini73 = require("zod/mini");
19949
- var RulesyncRuleFrontmatterSchema = import_mini73.z.object({
19950
- root: import_mini73.z.optional(import_mini73.z.boolean()),
19951
- localRoot: import_mini73.z.optional(import_mini73.z.boolean()),
19952
- targets: import_mini73.z._default(RulesyncTargetsSchema, ["*"]),
19953
- description: import_mini73.z.optional(import_mini73.z.string()),
19954
- globs: import_mini73.z.optional(import_mini73.z.array(import_mini73.z.string())),
19955
- agentsmd: import_mini73.z.optional(
19956
- import_mini73.z.looseObject({
19988
+ var import_mini74 = require("zod/mini");
19989
+ var RulesyncRuleFrontmatterSchema = import_mini74.z.object({
19990
+ root: import_mini74.z.optional(import_mini74.z.boolean()),
19991
+ localRoot: import_mini74.z.optional(import_mini74.z.boolean()),
19992
+ targets: import_mini74.z._default(RulesyncTargetsSchema, ["*"]),
19993
+ description: import_mini74.z.optional(import_mini74.z.string()),
19994
+ globs: import_mini74.z.optional(import_mini74.z.array(import_mini74.z.string())),
19995
+ agentsmd: import_mini74.z.optional(
19996
+ import_mini74.z.looseObject({
19957
19997
  // @example "path/to/subproject"
19958
- subprojectPath: import_mini73.z.optional(import_mini73.z.string())
19998
+ subprojectPath: import_mini74.z.optional(import_mini74.z.string())
19959
19999
  })
19960
20000
  ),
19961
- claudecode: import_mini73.z.optional(
19962
- import_mini73.z.looseObject({
20001
+ claudecode: import_mini74.z.optional(
20002
+ import_mini74.z.looseObject({
19963
20003
  // Glob patterns for conditional rules (takes precedence over globs)
19964
20004
  // @example ["src/**/*.ts", "tests/**/*.test.ts"]
19965
- paths: import_mini73.z.optional(import_mini73.z.array(import_mini73.z.string()))
20005
+ paths: import_mini74.z.optional(import_mini74.z.array(import_mini74.z.string()))
19966
20006
  })
19967
20007
  ),
19968
- cursor: import_mini73.z.optional(
19969
- import_mini73.z.looseObject({
19970
- alwaysApply: import_mini73.z.optional(import_mini73.z.boolean()),
19971
- description: import_mini73.z.optional(import_mini73.z.string()),
19972
- globs: import_mini73.z.optional(import_mini73.z.array(import_mini73.z.string()))
20008
+ cursor: import_mini74.z.optional(
20009
+ import_mini74.z.looseObject({
20010
+ alwaysApply: import_mini74.z.optional(import_mini74.z.boolean()),
20011
+ description: import_mini74.z.optional(import_mini74.z.string()),
20012
+ globs: import_mini74.z.optional(import_mini74.z.array(import_mini74.z.string()))
19973
20013
  })
19974
20014
  ),
19975
- copilot: import_mini73.z.optional(
19976
- import_mini73.z.looseObject({
19977
- excludeAgent: import_mini73.z.optional(import_mini73.z.union([import_mini73.z.literal("code-review"), import_mini73.z.literal("coding-agent")]))
20015
+ copilot: import_mini74.z.optional(
20016
+ import_mini74.z.looseObject({
20017
+ excludeAgent: import_mini74.z.optional(import_mini74.z.union([import_mini74.z.literal("code-review"), import_mini74.z.literal("coding-agent")]))
19978
20018
  })
19979
20019
  ),
19980
- antigravity: import_mini73.z.optional(
19981
- import_mini73.z.looseObject({
19982
- trigger: import_mini73.z.optional(import_mini73.z.string()),
19983
- globs: import_mini73.z.optional(import_mini73.z.array(import_mini73.z.string()))
20020
+ antigravity: import_mini74.z.optional(
20021
+ import_mini74.z.looseObject({
20022
+ trigger: import_mini74.z.optional(import_mini74.z.string()),
20023
+ globs: import_mini74.z.optional(import_mini74.z.array(import_mini74.z.string()))
19984
20024
  })
19985
20025
  ),
19986
- takt: import_mini73.z.optional(
19987
- import_mini73.z.looseObject({
20026
+ takt: import_mini74.z.optional(
20027
+ import_mini74.z.looseObject({
19988
20028
  // Rename the emitted file stem (e.g. "coder.md" → "{name}.md").
19989
- name: import_mini73.z.optional(import_mini73.z.string())
20029
+ name: import_mini74.z.optional(import_mini74.z.string())
19990
20030
  })
19991
20031
  )
19992
20032
  });
@@ -20287,20 +20327,20 @@ var AgentsMdRule = class _AgentsMdRule extends ToolRule {
20287
20327
 
20288
20328
  // src/features/rules/antigravity-rule.ts
20289
20329
  var import_node_path129 = require("path");
20290
- var import_mini74 = require("zod/mini");
20291
- var AntigravityRuleFrontmatterSchema = import_mini74.z.looseObject({
20292
- trigger: import_mini74.z.optional(
20293
- import_mini74.z.union([
20294
- import_mini74.z.literal("always_on"),
20295
- import_mini74.z.literal("glob"),
20296
- import_mini74.z.literal("manual"),
20297
- import_mini74.z.literal("model_decision"),
20298
- import_mini74.z.string()
20330
+ var import_mini75 = require("zod/mini");
20331
+ var AntigravityRuleFrontmatterSchema = import_mini75.z.looseObject({
20332
+ trigger: import_mini75.z.optional(
20333
+ import_mini75.z.union([
20334
+ import_mini75.z.literal("always_on"),
20335
+ import_mini75.z.literal("glob"),
20336
+ import_mini75.z.literal("manual"),
20337
+ import_mini75.z.literal("model_decision"),
20338
+ import_mini75.z.string()
20299
20339
  // accepts any string for forward compatibility
20300
20340
  ])
20301
20341
  ),
20302
- globs: import_mini74.z.optional(import_mini74.z.string()),
20303
- description: import_mini74.z.optional(import_mini74.z.string())
20342
+ globs: import_mini75.z.optional(import_mini75.z.string()),
20343
+ description: import_mini75.z.optional(import_mini75.z.string())
20304
20344
  });
20305
20345
  function parseGlobsString(globs) {
20306
20346
  if (!globs) {
@@ -20887,9 +20927,9 @@ var ClaudecodeLegacyRule = class _ClaudecodeLegacyRule extends ToolRule {
20887
20927
 
20888
20928
  // src/features/rules/claudecode-rule.ts
20889
20929
  var import_node_path133 = require("path");
20890
- var import_mini75 = require("zod/mini");
20891
- var ClaudecodeRuleFrontmatterSchema = import_mini75.z.object({
20892
- paths: import_mini75.z.optional(import_mini75.z.array(import_mini75.z.string()))
20930
+ var import_mini76 = require("zod/mini");
20931
+ var ClaudecodeRuleFrontmatterSchema = import_mini76.z.object({
20932
+ paths: import_mini76.z.optional(import_mini76.z.array(import_mini76.z.string()))
20893
20933
  });
20894
20934
  var ClaudecodeRule = class _ClaudecodeRule extends ToolRule {
20895
20935
  frontmatter;
@@ -21105,9 +21145,9 @@ var ClaudecodeRule = class _ClaudecodeRule extends ToolRule {
21105
21145
 
21106
21146
  // src/features/rules/cline-rule.ts
21107
21147
  var import_node_path134 = require("path");
21108
- var import_mini76 = require("zod/mini");
21109
- var ClineRuleFrontmatterSchema = import_mini76.z.object({
21110
- description: import_mini76.z.string()
21148
+ var import_mini77 = require("zod/mini");
21149
+ var ClineRuleFrontmatterSchema = import_mini77.z.object({
21150
+ description: import_mini77.z.string()
21111
21151
  });
21112
21152
  var ClineRule = class _ClineRule extends ToolRule {
21113
21153
  static getSettablePaths(_options = {}) {
@@ -21286,11 +21326,11 @@ var CodexcliRule = class _CodexcliRule extends ToolRule {
21286
21326
 
21287
21327
  // src/features/rules/copilot-rule.ts
21288
21328
  var import_node_path136 = require("path");
21289
- var import_mini77 = require("zod/mini");
21290
- var CopilotRuleFrontmatterSchema = import_mini77.z.object({
21291
- description: import_mini77.z.optional(import_mini77.z.string()),
21292
- applyTo: import_mini77.z.optional(import_mini77.z.string()),
21293
- excludeAgent: import_mini77.z.optional(import_mini77.z.union([import_mini77.z.literal("code-review"), import_mini77.z.literal("coding-agent")]))
21329
+ var import_mini78 = require("zod/mini");
21330
+ var CopilotRuleFrontmatterSchema = import_mini78.z.object({
21331
+ description: import_mini78.z.optional(import_mini78.z.string()),
21332
+ applyTo: import_mini78.z.optional(import_mini78.z.string()),
21333
+ excludeAgent: import_mini78.z.optional(import_mini78.z.union([import_mini78.z.literal("code-review"), import_mini78.z.literal("coding-agent")]))
21294
21334
  });
21295
21335
  var normalizeRelativePath = (path5) => path5.replace(/\\/g, "/").replace(/\/+/g, "/");
21296
21336
  var sameRelativePath = (leftDir, leftFile, rightDir, rightFile) => normalizeRelativePath((0, import_node_path136.join)(leftDir, leftFile)) === normalizeRelativePath((0, import_node_path136.join)(rightDir, rightFile));
@@ -21544,11 +21584,11 @@ var CopilotcliRule = class _CopilotcliRule extends CopilotRule {
21544
21584
 
21545
21585
  // src/features/rules/cursor-rule.ts
21546
21586
  var import_node_path137 = require("path");
21547
- var import_mini78 = require("zod/mini");
21548
- var CursorRuleFrontmatterSchema = import_mini78.z.object({
21549
- description: import_mini78.z.optional(import_mini78.z.string()),
21550
- globs: import_mini78.z.optional(import_mini78.z.string()),
21551
- alwaysApply: import_mini78.z.optional(import_mini78.z.boolean())
21587
+ var import_mini79 = require("zod/mini");
21588
+ var CursorRuleFrontmatterSchema = import_mini79.z.object({
21589
+ description: import_mini79.z.optional(import_mini79.z.string()),
21590
+ globs: import_mini79.z.optional(import_mini79.z.string()),
21591
+ alwaysApply: import_mini79.z.optional(import_mini79.z.boolean())
21552
21592
  });
21553
21593
  var CursorRule = class _CursorRule extends ToolRule {
21554
21594
  frontmatter;
@@ -23431,11 +23471,11 @@ var rulesProcessorToolTargets = [
23431
23471
  "warp",
23432
23472
  "windsurf"
23433
23473
  ];
23434
- var RulesProcessorToolTargetSchema = import_mini79.z.enum(rulesProcessorToolTargets);
23474
+ var RulesProcessorToolTargetSchema = import_mini80.z.enum(rulesProcessorToolTargets);
23435
23475
  var formatRulePaths = (rules) => rules.map((r) => (0, import_node_path154.join)(r.getRelativeDirPath(), r.getRelativeFilePath())).join(", ");
23436
- var RulesFeatureOptionsSchema = import_mini79.z.looseObject({
23437
- ruleDiscoveryMode: import_mini79.z.optional(import_mini79.z.enum(["none", "explicit"])),
23438
- includeLocalRoot: import_mini79.z.optional(import_mini79.z.boolean())
23476
+ var RulesFeatureOptionsSchema = import_mini80.z.looseObject({
23477
+ ruleDiscoveryMode: import_mini80.z.optional(import_mini80.z.enum(["none", "explicit"])),
23478
+ includeLocalRoot: import_mini80.z.optional(import_mini80.z.boolean())
23439
23479
  });
23440
23480
  var resolveRuleDiscoveryMode = ({
23441
23481
  defaultMode,
@@ -23456,8 +23496,8 @@ var resolveRuleDiscoveryMode = ({
23456
23496
  }
23457
23497
  return parsed.data.ruleDiscoveryMode === "none" ? "auto" : "toon";
23458
23498
  };
23459
- var IncludeLocalRootSchema = import_mini79.z.looseObject({
23460
- includeLocalRoot: import_mini79.z.optional(import_mini79.z.boolean())
23499
+ var IncludeLocalRootSchema = import_mini80.z.looseObject({
23500
+ includeLocalRoot: import_mini80.z.optional(import_mini80.z.boolean())
23461
23501
  });
23462
23502
  var resolveIncludeLocalRoot = (options) => {
23463
23503
  if (!options) return true;
@@ -24736,51 +24776,51 @@ var import_request_error = require("@octokit/request-error");
24736
24776
  var import_rest = require("@octokit/rest");
24737
24777
 
24738
24778
  // src/types/fetch.ts
24739
- var import_mini81 = require("zod/mini");
24779
+ var import_mini82 = require("zod/mini");
24740
24780
 
24741
24781
  // src/types/fetch-targets.ts
24742
- var import_mini80 = require("zod/mini");
24782
+ var import_mini81 = require("zod/mini");
24743
24783
  var ALL_FETCH_TARGETS = ["rulesync", ...ALL_TOOL_TARGETS];
24744
- var FetchTargetSchema = import_mini80.z.enum(ALL_FETCH_TARGETS);
24784
+ var FetchTargetSchema = import_mini81.z.enum(ALL_FETCH_TARGETS);
24745
24785
 
24746
24786
  // src/types/fetch.ts
24747
- var ConflictStrategySchema = import_mini81.z.enum(["skip", "overwrite"]);
24748
- var GitHubFileTypeSchema = import_mini81.z.enum(["file", "dir", "symlink", "submodule"]);
24749
- var GitHubFileEntrySchema = import_mini81.z.looseObject({
24750
- name: import_mini81.z.string(),
24751
- path: import_mini81.z.string(),
24752
- sha: import_mini81.z.string(),
24753
- size: import_mini81.z.number(),
24787
+ var ConflictStrategySchema = import_mini82.z.enum(["skip", "overwrite"]);
24788
+ var GitHubFileTypeSchema = import_mini82.z.enum(["file", "dir", "symlink", "submodule"]);
24789
+ var GitHubFileEntrySchema = import_mini82.z.looseObject({
24790
+ name: import_mini82.z.string(),
24791
+ path: import_mini82.z.string(),
24792
+ sha: import_mini82.z.string(),
24793
+ size: import_mini82.z.number(),
24754
24794
  type: GitHubFileTypeSchema,
24755
- download_url: import_mini81.z.nullable(import_mini81.z.string())
24795
+ download_url: import_mini82.z.nullable(import_mini82.z.string())
24756
24796
  });
24757
- var FetchOptionsSchema = import_mini81.z.looseObject({
24758
- target: import_mini81.z.optional(FetchTargetSchema),
24759
- features: import_mini81.z.optional(import_mini81.z.array(import_mini81.z.enum(ALL_FEATURES_WITH_WILDCARD))),
24760
- ref: import_mini81.z.optional(import_mini81.z.string()),
24761
- path: import_mini81.z.optional(import_mini81.z.string()),
24762
- output: import_mini81.z.optional(import_mini81.z.string()),
24763
- conflict: import_mini81.z.optional(ConflictStrategySchema),
24764
- token: import_mini81.z.optional(import_mini81.z.string()),
24765
- verbose: import_mini81.z.optional(import_mini81.z.boolean()),
24766
- silent: import_mini81.z.optional(import_mini81.z.boolean())
24797
+ var FetchOptionsSchema = import_mini82.z.looseObject({
24798
+ target: import_mini82.z.optional(FetchTargetSchema),
24799
+ features: import_mini82.z.optional(import_mini82.z.array(import_mini82.z.enum(ALL_FEATURES_WITH_WILDCARD))),
24800
+ ref: import_mini82.z.optional(import_mini82.z.string()),
24801
+ path: import_mini82.z.optional(import_mini82.z.string()),
24802
+ output: import_mini82.z.optional(import_mini82.z.string()),
24803
+ conflict: import_mini82.z.optional(ConflictStrategySchema),
24804
+ token: import_mini82.z.optional(import_mini82.z.string()),
24805
+ verbose: import_mini82.z.optional(import_mini82.z.boolean()),
24806
+ silent: import_mini82.z.optional(import_mini82.z.boolean())
24767
24807
  });
24768
- var FetchFileStatusSchema = import_mini81.z.enum(["created", "overwritten", "skipped"]);
24769
- var GitHubRepoInfoSchema = import_mini81.z.looseObject({
24770
- default_branch: import_mini81.z.string(),
24771
- private: import_mini81.z.boolean()
24808
+ var FetchFileStatusSchema = import_mini82.z.enum(["created", "overwritten", "skipped"]);
24809
+ var GitHubRepoInfoSchema = import_mini82.z.looseObject({
24810
+ default_branch: import_mini82.z.string(),
24811
+ private: import_mini82.z.boolean()
24772
24812
  });
24773
- var GitHubReleaseAssetSchema = import_mini81.z.looseObject({
24774
- name: import_mini81.z.string(),
24775
- browser_download_url: import_mini81.z.string(),
24776
- size: import_mini81.z.number()
24813
+ var GitHubReleaseAssetSchema = import_mini82.z.looseObject({
24814
+ name: import_mini82.z.string(),
24815
+ browser_download_url: import_mini82.z.string(),
24816
+ size: import_mini82.z.number()
24777
24817
  });
24778
- var GitHubReleaseSchema = import_mini81.z.looseObject({
24779
- tag_name: import_mini81.z.string(),
24780
- name: import_mini81.z.nullable(import_mini81.z.string()),
24781
- prerelease: import_mini81.z.boolean(),
24782
- draft: import_mini81.z.boolean(),
24783
- assets: import_mini81.z.array(GitHubReleaseAssetSchema)
24818
+ var GitHubReleaseSchema = import_mini82.z.looseObject({
24819
+ tag_name: import_mini82.z.string(),
24820
+ name: import_mini82.z.nullable(import_mini82.z.string()),
24821
+ prerelease: import_mini82.z.boolean(),
24822
+ draft: import_mini82.z.boolean(),
24823
+ assets: import_mini82.z.array(GitHubReleaseAssetSchema)
24784
24824
  });
24785
24825
 
24786
24826
  // src/lib/github-client.ts
@@ -25081,9 +25121,9 @@ async function listDirectoryRecursive(params) {
25081
25121
  }
25082
25122
 
25083
25123
  // src/types/git-provider.ts
25084
- var import_mini82 = require("zod/mini");
25124
+ var import_mini83 = require("zod/mini");
25085
25125
  var ALL_GIT_PROVIDERS = ["github", "gitlab"];
25086
- var GitProviderSchema = import_mini82.z.enum(ALL_GIT_PROVIDERS);
25126
+ var GitProviderSchema = import_mini83.z.enum(ALL_GIT_PROVIDERS);
25087
25127
 
25088
25128
  // src/lib/source-parser.ts
25089
25129
  var GITHUB_HOSTS = /* @__PURE__ */ new Set(["github.com", "www.github.com"]);
@@ -27366,40 +27406,40 @@ var import_promise2 = require("es-toolkit/promise");
27366
27406
  // src/lib/apm/apm-lock.ts
27367
27407
  var import_node_path159 = require("path");
27368
27408
  var import_js_yaml3 = require("js-yaml");
27369
- var import_mini83 = require("zod/mini");
27409
+ var import_mini84 = require("zod/mini");
27370
27410
  var APM_LOCKFILE_FILE_NAME = "rulesync-apm.lock.yaml";
27371
27411
  var APM_LOCKFILE_VERSION = "1";
27372
27412
  var RULESYNC_CONTENT_HASH_REGEX = /^sha256:[0-9a-f]{64}$/;
27373
- var ApmLockDependencySchema = import_mini83.z.looseObject({
27374
- repo_url: import_mini83.z.string(),
27375
- resolved_commit: (0, import_mini83.optional)(
27376
- import_mini83.z.string().check((0, import_mini83.refine)((v) => /^[0-9a-f]{40}$/.test(v), "resolved_commit must be a 40-char hex SHA"))
27413
+ var ApmLockDependencySchema = import_mini84.z.looseObject({
27414
+ repo_url: import_mini84.z.string(),
27415
+ resolved_commit: (0, import_mini84.optional)(
27416
+ import_mini84.z.string().check((0, import_mini84.refine)((v) => /^[0-9a-f]{40}$/.test(v), "resolved_commit must be a 40-char hex SHA"))
27377
27417
  ),
27378
- resolved_ref: (0, import_mini83.optional)(import_mini83.z.string()),
27379
- version: (0, import_mini83.optional)(import_mini83.z.string()),
27380
- depth: import_mini83.z.int().check((0, import_mini83.nonnegative)()),
27381
- resolved_by: (0, import_mini83.optional)(import_mini83.z.string()),
27382
- package_type: import_mini83.z.string(),
27418
+ resolved_ref: (0, import_mini84.optional)(import_mini84.z.string()),
27419
+ version: (0, import_mini84.optional)(import_mini84.z.string()),
27420
+ depth: import_mini84.z.int().check((0, import_mini84.nonnegative)()),
27421
+ resolved_by: (0, import_mini84.optional)(import_mini84.z.string()),
27422
+ package_type: import_mini84.z.string(),
27383
27423
  // Intentionally loose: the upstream `apm` CLI may write content_hash values
27384
27424
  // that do not match the strict rulesync format. We accept any string on read
27385
27425
  // so that a lockfile produced by `apm` round-trips through rulesync without
27386
27426
  // throwing. Rulesync itself always writes values matching
27387
27427
  // `RULESYNC_CONTENT_HASH_REGEX`, and `--frozen` integrity checks only
27388
27428
  // enforce the comparison when the recorded hash matches that shape.
27389
- content_hash: (0, import_mini83.optional)(import_mini83.z.string()),
27390
- is_dev: (0, import_mini83.optional)(import_mini83.z.boolean()),
27391
- deployed_files: import_mini83.z.array(import_mini83.z.string()),
27392
- source: (0, import_mini83.optional)(import_mini83.z.string()),
27393
- local_path: (0, import_mini83.optional)(import_mini83.z.string()),
27394
- virtual_path: (0, import_mini83.optional)(import_mini83.z.string()),
27395
- is_virtual: (0, import_mini83.optional)(import_mini83.z.boolean())
27429
+ content_hash: (0, import_mini84.optional)(import_mini84.z.string()),
27430
+ is_dev: (0, import_mini84.optional)(import_mini84.z.boolean()),
27431
+ deployed_files: import_mini84.z.array(import_mini84.z.string()),
27432
+ source: (0, import_mini84.optional)(import_mini84.z.string()),
27433
+ local_path: (0, import_mini84.optional)(import_mini84.z.string()),
27434
+ virtual_path: (0, import_mini84.optional)(import_mini84.z.string()),
27435
+ is_virtual: (0, import_mini84.optional)(import_mini84.z.boolean())
27396
27436
  });
27397
- var ApmLockSchema = import_mini83.z.looseObject({
27398
- lockfile_version: import_mini83.z.literal("1"),
27399
- generated_at: import_mini83.z.string(),
27400
- apm_version: import_mini83.z.string(),
27401
- dependencies: import_mini83.z.array(ApmLockDependencySchema),
27402
- mcp_servers: (0, import_mini83.optional)(import_mini83.z.array(import_mini83.z.string()))
27437
+ var ApmLockSchema = import_mini84.z.looseObject({
27438
+ lockfile_version: import_mini84.z.literal("1"),
27439
+ generated_at: import_mini84.z.string(),
27440
+ apm_version: import_mini84.z.string(),
27441
+ dependencies: import_mini84.z.array(ApmLockDependencySchema),
27442
+ mcp_servers: (0, import_mini84.optional)(import_mini84.z.array(import_mini84.z.string()))
27403
27443
  });
27404
27444
  function getApmLockPath(projectRoot) {
27405
27445
  return (0, import_node_path159.join)(projectRoot, APM_LOCKFILE_FILE_NAME);
@@ -27459,22 +27499,22 @@ function findApmLockDependency(lock, repoUrl) {
27459
27499
  // src/lib/apm/apm-manifest.ts
27460
27500
  var import_node_path160 = require("path");
27461
27501
  var import_js_yaml4 = require("js-yaml");
27462
- var import_mini84 = require("zod/mini");
27502
+ var import_mini85 = require("zod/mini");
27463
27503
  var APM_MANIFEST_FILE_NAME = "apm.yml";
27464
- var ApmObjectDependencySchema = import_mini84.z.looseObject({
27465
- git: (0, import_mini84.optional)(import_mini84.z.string()),
27466
- source: (0, import_mini84.optional)(import_mini84.z.string()),
27467
- path: (0, import_mini84.optional)(import_mini84.z.string()),
27468
- ref: (0, import_mini84.optional)(import_mini84.z.string()),
27469
- alias: (0, import_mini84.optional)(import_mini84.z.string())
27504
+ var ApmObjectDependencySchema = import_mini85.z.looseObject({
27505
+ git: (0, import_mini85.optional)(import_mini85.z.string()),
27506
+ source: (0, import_mini85.optional)(import_mini85.z.string()),
27507
+ path: (0, import_mini85.optional)(import_mini85.z.string()),
27508
+ ref: (0, import_mini85.optional)(import_mini85.z.string()),
27509
+ alias: (0, import_mini85.optional)(import_mini85.z.string())
27470
27510
  });
27471
- var ApmDependencyInputSchema = import_mini84.z.union([import_mini84.z.string(), ApmObjectDependencySchema]);
27472
- var ApmManifestSchema = import_mini84.z.looseObject({
27473
- name: (0, import_mini84.optional)(import_mini84.z.string()),
27474
- version: (0, import_mini84.optional)(import_mini84.z.string()),
27475
- dependencies: (0, import_mini84.optional)(
27476
- import_mini84.z.looseObject({
27477
- apm: (0, import_mini84.optional)(import_mini84.z.array(ApmDependencyInputSchema))
27511
+ var ApmDependencyInputSchema = import_mini85.z.union([import_mini85.z.string(), ApmObjectDependencySchema]);
27512
+ var ApmManifestSchema = import_mini85.z.looseObject({
27513
+ name: (0, import_mini85.optional)(import_mini85.z.string()),
27514
+ version: (0, import_mini85.optional)(import_mini85.z.string()),
27515
+ dependencies: (0, import_mini85.optional)(
27516
+ import_mini85.z.looseObject({
27517
+ apm: (0, import_mini85.optional)(import_mini85.z.array(ApmDependencyInputSchema))
27478
27518
  })
27479
27519
  )
27480
27520
  });
@@ -27996,29 +28036,29 @@ ${rest}`;
27996
28036
  // src/lib/gh/gh-lock.ts
27997
28037
  var import_node_path162 = require("path");
27998
28038
  var import_js_yaml6 = require("js-yaml");
27999
- var import_mini85 = require("zod/mini");
28039
+ var import_mini86 = require("zod/mini");
28000
28040
  var GH_LOCKFILE_FILE_NAME = "rulesync-gh.lock.yaml";
28001
28041
  var GH_LOCKFILE_VERSION = "1";
28002
28042
  var RULESYNC_CONTENT_HASH_REGEX2 = /^sha256:[0-9a-f]{64}$/;
28003
- var ScopeSchema = import_mini85.z.enum(["project", "user"]);
28004
- var GhLockInstallationSchema = import_mini85.z.looseObject({
28005
- source: import_mini85.z.string(),
28006
- owner: import_mini85.z.string(),
28007
- repo: import_mini85.z.string(),
28008
- agent: import_mini85.z.string(),
28043
+ var ScopeSchema = import_mini86.z.enum(["project", "user"]);
28044
+ var GhLockInstallationSchema = import_mini86.z.looseObject({
28045
+ source: import_mini86.z.string(),
28046
+ owner: import_mini86.z.string(),
28047
+ repo: import_mini86.z.string(),
28048
+ agent: import_mini86.z.string(),
28009
28049
  scope: ScopeSchema,
28010
- skill: import_mini85.z.string(),
28011
- requested_ref: (0, import_mini85.optional)(import_mini85.z.string()),
28012
- resolved_ref: import_mini85.z.string(),
28013
- resolved_commit: import_mini85.z.string().check((0, import_mini85.refine)((v) => /^[0-9a-f]{40}$/.test(v), "resolved_commit must be a 40-char hex SHA")),
28014
- install_dir: import_mini85.z.string(),
28015
- deployed_files: import_mini85.z.array(import_mini85.z.string()),
28016
- content_hash: (0, import_mini85.optional)(import_mini85.z.string())
28050
+ skill: import_mini86.z.string(),
28051
+ requested_ref: (0, import_mini86.optional)(import_mini86.z.string()),
28052
+ resolved_ref: import_mini86.z.string(),
28053
+ resolved_commit: import_mini86.z.string().check((0, import_mini86.refine)((v) => /^[0-9a-f]{40}$/.test(v), "resolved_commit must be a 40-char hex SHA")),
28054
+ install_dir: import_mini86.z.string(),
28055
+ deployed_files: import_mini86.z.array(import_mini86.z.string()),
28056
+ content_hash: (0, import_mini86.optional)(import_mini86.z.string())
28017
28057
  });
28018
- var GhLockSchema = import_mini85.z.looseObject({
28019
- lockfile_version: import_mini85.z.literal("1"),
28020
- generated_at: import_mini85.z.string(),
28021
- installations: import_mini85.z.array(GhLockInstallationSchema)
28058
+ var GhLockSchema = import_mini86.z.looseObject({
28059
+ lockfile_version: import_mini86.z.literal("1"),
28060
+ generated_at: import_mini86.z.string(),
28061
+ installations: import_mini86.z.array(GhLockInstallationSchema)
28022
28062
  });
28023
28063
  function getGhLockPath(projectRoot) {
28024
28064
  return (0, import_node_path162.join)(projectRoot, GH_LOCKFILE_FILE_NAME);
@@ -28703,27 +28743,27 @@ async function walkDirectory(dir, outputRoot, depth = 0, ctx = { totalFiles: 0,
28703
28743
  // src/lib/sources-lock.ts
28704
28744
  var import_node_crypto3 = require("crypto");
28705
28745
  var import_node_path166 = require("path");
28706
- var import_mini86 = require("zod/mini");
28746
+ var import_mini87 = require("zod/mini");
28707
28747
  var LOCKFILE_VERSION = 1;
28708
- var LockedSkillSchema = import_mini86.z.object({
28709
- integrity: import_mini86.z.string()
28748
+ var LockedSkillSchema = import_mini87.z.object({
28749
+ integrity: import_mini87.z.string()
28710
28750
  });
28711
- var LockedSourceSchema = import_mini86.z.object({
28712
- requestedRef: (0, import_mini86.optional)(import_mini86.z.string()),
28713
- resolvedRef: import_mini86.z.string().check((0, import_mini86.refine)((v) => /^[0-9a-f]{40}$/.test(v), "resolvedRef must be a 40-character hex SHA")),
28714
- resolvedAt: (0, import_mini86.optional)(import_mini86.z.string()),
28715
- skills: import_mini86.z.record(import_mini86.z.string(), LockedSkillSchema)
28751
+ var LockedSourceSchema = import_mini87.z.object({
28752
+ requestedRef: (0, import_mini87.optional)(import_mini87.z.string()),
28753
+ resolvedRef: import_mini87.z.string().check((0, import_mini87.refine)((v) => /^[0-9a-f]{40}$/.test(v), "resolvedRef must be a 40-character hex SHA")),
28754
+ resolvedAt: (0, import_mini87.optional)(import_mini87.z.string()),
28755
+ skills: import_mini87.z.record(import_mini87.z.string(), LockedSkillSchema)
28716
28756
  });
28717
- var SourcesLockSchema = import_mini86.z.object({
28718
- lockfileVersion: import_mini86.z.number(),
28719
- sources: import_mini86.z.record(import_mini86.z.string(), LockedSourceSchema)
28757
+ var SourcesLockSchema = import_mini87.z.object({
28758
+ lockfileVersion: import_mini87.z.number(),
28759
+ sources: import_mini87.z.record(import_mini87.z.string(), LockedSourceSchema)
28720
28760
  });
28721
- var LegacyLockedSourceSchema = import_mini86.z.object({
28722
- resolvedRef: import_mini86.z.string(),
28723
- skills: import_mini86.z.array(import_mini86.z.string())
28761
+ var LegacyLockedSourceSchema = import_mini87.z.object({
28762
+ resolvedRef: import_mini87.z.string(),
28763
+ skills: import_mini87.z.array(import_mini87.z.string())
28724
28764
  });
28725
- var LegacySourcesLockSchema = import_mini86.z.object({
28726
- sources: import_mini86.z.record(import_mini86.z.string(), LegacyLockedSourceSchema)
28765
+ var LegacySourcesLockSchema = import_mini87.z.object({
28766
+ sources: import_mini87.z.record(import_mini87.z.string(), LegacyLockedSourceSchema)
28727
28767
  });
28728
28768
  function migrateLegacyLock(params) {
28729
28769
  const { legacy, logger: logger5 } = params;
@@ -29496,11 +29536,11 @@ async function runGhInstall(logger5, options) {
29496
29536
  var import_fastmcp = require("fastmcp");
29497
29537
 
29498
29538
  // src/mcp/tools.ts
29499
- var import_mini98 = require("zod/mini");
29539
+ var import_mini99 = require("zod/mini");
29500
29540
 
29501
29541
  // src/mcp/commands.ts
29502
29542
  var import_node_path168 = require("path");
29503
- var import_mini87 = require("zod/mini");
29543
+ var import_mini88 = require("zod/mini");
29504
29544
  var logger = new ConsoleLogger({ verbose: false, silent: true });
29505
29545
  var maxCommandSizeBytes = 1024 * 1024;
29506
29546
  var maxCommandsCount = 1e3;
@@ -29628,17 +29668,17 @@ async function deleteCommand({ relativePathFromCwd }) {
29628
29668
  }
29629
29669
  }
29630
29670
  var commandToolSchemas = {
29631
- listCommands: import_mini87.z.object({}),
29632
- getCommand: import_mini87.z.object({
29633
- relativePathFromCwd: import_mini87.z.string()
29671
+ listCommands: import_mini88.z.object({}),
29672
+ getCommand: import_mini88.z.object({
29673
+ relativePathFromCwd: import_mini88.z.string()
29634
29674
  }),
29635
- putCommand: import_mini87.z.object({
29636
- relativePathFromCwd: import_mini87.z.string(),
29675
+ putCommand: import_mini88.z.object({
29676
+ relativePathFromCwd: import_mini88.z.string(),
29637
29677
  frontmatter: RulesyncCommandFrontmatterSchema,
29638
- body: import_mini87.z.string()
29678
+ body: import_mini88.z.string()
29639
29679
  }),
29640
- deleteCommand: import_mini87.z.object({
29641
- relativePathFromCwd: import_mini87.z.string()
29680
+ deleteCommand: import_mini88.z.object({
29681
+ relativePathFromCwd: import_mini88.z.string()
29642
29682
  })
29643
29683
  };
29644
29684
  var commandTools = {
@@ -29686,13 +29726,13 @@ var commandTools = {
29686
29726
  };
29687
29727
 
29688
29728
  // src/mcp/convert.ts
29689
- var import_mini88 = require("zod/mini");
29690
- var convertOptionsSchema = import_mini88.z.object({
29691
- from: import_mini88.z.string(),
29692
- to: import_mini88.z.array(import_mini88.z.string()),
29693
- features: import_mini88.z.optional(import_mini88.z.array(import_mini88.z.string())),
29694
- global: import_mini88.z.optional(import_mini88.z.boolean()),
29695
- dryRun: import_mini88.z.optional(import_mini88.z.boolean())
29729
+ var import_mini89 = require("zod/mini");
29730
+ var convertOptionsSchema = import_mini89.z.object({
29731
+ from: import_mini89.z.string(),
29732
+ to: import_mini89.z.array(import_mini89.z.string()),
29733
+ features: import_mini89.z.optional(import_mini89.z.array(import_mini89.z.string())),
29734
+ global: import_mini89.z.optional(import_mini89.z.boolean()),
29735
+ dryRun: import_mini89.z.optional(import_mini89.z.boolean())
29696
29736
  });
29697
29737
  function parseToolTarget2(value, label) {
29698
29738
  const result = ToolTargetSchema.safeParse(value);
@@ -29788,15 +29828,15 @@ var convertTools = {
29788
29828
  };
29789
29829
 
29790
29830
  // src/mcp/generate.ts
29791
- var import_mini89 = require("zod/mini");
29792
- var generateOptionsSchema = import_mini89.z.object({
29793
- targets: import_mini89.z.optional(import_mini89.z.array(import_mini89.z.string())),
29794
- features: import_mini89.z.optional(import_mini89.z.array(import_mini89.z.string())),
29795
- delete: import_mini89.z.optional(import_mini89.z.boolean()),
29796
- global: import_mini89.z.optional(import_mini89.z.boolean()),
29797
- simulateCommands: import_mini89.z.optional(import_mini89.z.boolean()),
29798
- simulateSubagents: import_mini89.z.optional(import_mini89.z.boolean()),
29799
- simulateSkills: import_mini89.z.optional(import_mini89.z.boolean())
29831
+ var import_mini90 = require("zod/mini");
29832
+ var generateOptionsSchema = import_mini90.z.object({
29833
+ targets: import_mini90.z.optional(import_mini90.z.array(import_mini90.z.string())),
29834
+ features: import_mini90.z.optional(import_mini90.z.array(import_mini90.z.string())),
29835
+ delete: import_mini90.z.optional(import_mini90.z.boolean()),
29836
+ global: import_mini90.z.optional(import_mini90.z.boolean()),
29837
+ simulateCommands: import_mini90.z.optional(import_mini90.z.boolean()),
29838
+ simulateSubagents: import_mini90.z.optional(import_mini90.z.boolean()),
29839
+ simulateSkills: import_mini90.z.optional(import_mini90.z.boolean())
29800
29840
  });
29801
29841
  async function executeGenerate(options = {}) {
29802
29842
  try {
@@ -29876,7 +29916,7 @@ var generateTools = {
29876
29916
 
29877
29917
  // src/mcp/hooks.ts
29878
29918
  var import_node_path169 = require("path");
29879
- var import_mini90 = require("zod/mini");
29919
+ var import_mini91 = require("zod/mini");
29880
29920
  var maxHooksSizeBytes = 1024 * 1024;
29881
29921
  async function getHooksFile() {
29882
29922
  try {
@@ -29965,11 +30005,11 @@ async function deleteHooksFile() {
29965
30005
  }
29966
30006
  }
29967
30007
  var hooksToolSchemas = {
29968
- getHooksFile: import_mini90.z.object({}),
29969
- putHooksFile: import_mini90.z.object({
29970
- content: import_mini90.z.string()
30008
+ getHooksFile: import_mini91.z.object({}),
30009
+ putHooksFile: import_mini91.z.object({
30010
+ content: import_mini91.z.string()
29971
30011
  }),
29972
- deleteHooksFile: import_mini90.z.object({})
30012
+ deleteHooksFile: import_mini91.z.object({})
29973
30013
  };
29974
30014
  var hooksTools = {
29975
30015
  getHooksFile: {
@@ -30003,7 +30043,7 @@ var hooksTools = {
30003
30043
 
30004
30044
  // src/mcp/ignore.ts
30005
30045
  var import_node_path170 = require("path");
30006
- var import_mini91 = require("zod/mini");
30046
+ var import_mini92 = require("zod/mini");
30007
30047
  var maxIgnoreFileSizeBytes = 100 * 1024;
30008
30048
  async function getIgnoreFile() {
30009
30049
  const ignoreFilePath = (0, import_node_path170.join)(process.cwd(), RULESYNC_AIIGNORE_RELATIVE_FILE_PATH);
@@ -30066,11 +30106,11 @@ async function deleteIgnoreFile() {
30066
30106
  }
30067
30107
  }
30068
30108
  var ignoreToolSchemas = {
30069
- getIgnoreFile: import_mini91.z.object({}),
30070
- putIgnoreFile: import_mini91.z.object({
30071
- content: import_mini91.z.string()
30109
+ getIgnoreFile: import_mini92.z.object({}),
30110
+ putIgnoreFile: import_mini92.z.object({
30111
+ content: import_mini92.z.string()
30072
30112
  }),
30073
- deleteIgnoreFile: import_mini91.z.object({})
30113
+ deleteIgnoreFile: import_mini92.z.object({})
30074
30114
  };
30075
30115
  var ignoreTools = {
30076
30116
  getIgnoreFile: {
@@ -30103,11 +30143,11 @@ var ignoreTools = {
30103
30143
  };
30104
30144
 
30105
30145
  // src/mcp/import.ts
30106
- var import_mini92 = require("zod/mini");
30107
- var importOptionsSchema = import_mini92.z.object({
30108
- target: import_mini92.z.string(),
30109
- features: import_mini92.z.optional(import_mini92.z.array(import_mini92.z.string())),
30110
- global: import_mini92.z.optional(import_mini92.z.boolean())
30146
+ var import_mini93 = require("zod/mini");
30147
+ var importOptionsSchema = import_mini93.z.object({
30148
+ target: import_mini93.z.string(),
30149
+ features: import_mini93.z.optional(import_mini93.z.array(import_mini93.z.string())),
30150
+ global: import_mini93.z.optional(import_mini93.z.boolean())
30111
30151
  });
30112
30152
  async function executeImport(options) {
30113
30153
  try {
@@ -30179,7 +30219,7 @@ var importTools = {
30179
30219
 
30180
30220
  // src/mcp/mcp.ts
30181
30221
  var import_node_path171 = require("path");
30182
- var import_mini93 = require("zod/mini");
30222
+ var import_mini94 = require("zod/mini");
30183
30223
  var maxMcpSizeBytes = 1024 * 1024;
30184
30224
  async function getMcpFile() {
30185
30225
  try {
@@ -30281,11 +30321,11 @@ async function deleteMcpFile() {
30281
30321
  }
30282
30322
  }
30283
30323
  var mcpToolSchemas = {
30284
- getMcpFile: import_mini93.z.object({}),
30285
- putMcpFile: import_mini93.z.object({
30286
- content: import_mini93.z.string()
30324
+ getMcpFile: import_mini94.z.object({}),
30325
+ putMcpFile: import_mini94.z.object({
30326
+ content: import_mini94.z.string()
30287
30327
  }),
30288
- deleteMcpFile: import_mini93.z.object({})
30328
+ deleteMcpFile: import_mini94.z.object({})
30289
30329
  };
30290
30330
  var mcpTools = {
30291
30331
  getMcpFile: {
@@ -30319,7 +30359,7 @@ var mcpTools = {
30319
30359
 
30320
30360
  // src/mcp/permissions.ts
30321
30361
  var import_node_path172 = require("path");
30322
- var import_mini94 = require("zod/mini");
30362
+ var import_mini95 = require("zod/mini");
30323
30363
  var maxPermissionsSizeBytes = 1024 * 1024;
30324
30364
  async function getPermissionsFile() {
30325
30365
  try {
@@ -30408,11 +30448,11 @@ async function deletePermissionsFile() {
30408
30448
  }
30409
30449
  }
30410
30450
  var permissionsToolSchemas = {
30411
- getPermissionsFile: import_mini94.z.object({}),
30412
- putPermissionsFile: import_mini94.z.object({
30413
- content: import_mini94.z.string()
30451
+ getPermissionsFile: import_mini95.z.object({}),
30452
+ putPermissionsFile: import_mini95.z.object({
30453
+ content: import_mini95.z.string()
30414
30454
  }),
30415
- deletePermissionsFile: import_mini94.z.object({})
30455
+ deletePermissionsFile: import_mini95.z.object({})
30416
30456
  };
30417
30457
  var permissionsTools = {
30418
30458
  getPermissionsFile: {
@@ -30446,7 +30486,7 @@ var permissionsTools = {
30446
30486
 
30447
30487
  // src/mcp/rules.ts
30448
30488
  var import_node_path173 = require("path");
30449
- var import_mini95 = require("zod/mini");
30489
+ var import_mini96 = require("zod/mini");
30450
30490
  var logger2 = new ConsoleLogger({ verbose: false, silent: true });
30451
30491
  var maxRuleSizeBytes = 1024 * 1024;
30452
30492
  var maxRulesCount = 1e3;
@@ -30570,17 +30610,17 @@ async function deleteRule({ relativePathFromCwd }) {
30570
30610
  }
30571
30611
  }
30572
30612
  var ruleToolSchemas = {
30573
- listRules: import_mini95.z.object({}),
30574
- getRule: import_mini95.z.object({
30575
- relativePathFromCwd: import_mini95.z.string()
30613
+ listRules: import_mini96.z.object({}),
30614
+ getRule: import_mini96.z.object({
30615
+ relativePathFromCwd: import_mini96.z.string()
30576
30616
  }),
30577
- putRule: import_mini95.z.object({
30578
- relativePathFromCwd: import_mini95.z.string(),
30617
+ putRule: import_mini96.z.object({
30618
+ relativePathFromCwd: import_mini96.z.string(),
30579
30619
  frontmatter: RulesyncRuleFrontmatterSchema,
30580
- body: import_mini95.z.string()
30620
+ body: import_mini96.z.string()
30581
30621
  }),
30582
- deleteRule: import_mini95.z.object({
30583
- relativePathFromCwd: import_mini95.z.string()
30622
+ deleteRule: import_mini96.z.object({
30623
+ relativePathFromCwd: import_mini96.z.string()
30584
30624
  })
30585
30625
  };
30586
30626
  var ruleTools = {
@@ -30629,7 +30669,7 @@ var ruleTools = {
30629
30669
 
30630
30670
  // src/mcp/skills.ts
30631
30671
  var import_node_path174 = require("path");
30632
- var import_mini96 = require("zod/mini");
30672
+ var import_mini97 = require("zod/mini");
30633
30673
  var logger3 = new ConsoleLogger({ verbose: false, silent: true });
30634
30674
  var maxSkillSizeBytes = 1024 * 1024;
30635
30675
  var maxSkillsCount = 1e3;
@@ -30802,23 +30842,23 @@ async function deleteSkill({
30802
30842
  );
30803
30843
  }
30804
30844
  }
30805
- var McpSkillFileSchema = import_mini96.z.object({
30806
- name: import_mini96.z.string(),
30807
- body: import_mini96.z.string()
30845
+ var McpSkillFileSchema = import_mini97.z.object({
30846
+ name: import_mini97.z.string(),
30847
+ body: import_mini97.z.string()
30808
30848
  });
30809
30849
  var skillToolSchemas = {
30810
- listSkills: import_mini96.z.object({}),
30811
- getSkill: import_mini96.z.object({
30812
- relativeDirPathFromCwd: import_mini96.z.string()
30850
+ listSkills: import_mini97.z.object({}),
30851
+ getSkill: import_mini97.z.object({
30852
+ relativeDirPathFromCwd: import_mini97.z.string()
30813
30853
  }),
30814
- putSkill: import_mini96.z.object({
30815
- relativeDirPathFromCwd: import_mini96.z.string(),
30854
+ putSkill: import_mini97.z.object({
30855
+ relativeDirPathFromCwd: import_mini97.z.string(),
30816
30856
  frontmatter: RulesyncSkillFrontmatterSchema,
30817
- body: import_mini96.z.string(),
30818
- otherFiles: import_mini96.z.optional(import_mini96.z.array(McpSkillFileSchema))
30857
+ body: import_mini97.z.string(),
30858
+ otherFiles: import_mini97.z.optional(import_mini97.z.array(McpSkillFileSchema))
30819
30859
  }),
30820
- deleteSkill: import_mini96.z.object({
30821
- relativeDirPathFromCwd: import_mini96.z.string()
30860
+ deleteSkill: import_mini97.z.object({
30861
+ relativeDirPathFromCwd: import_mini97.z.string()
30822
30862
  })
30823
30863
  };
30824
30864
  var skillTools = {
@@ -30868,7 +30908,7 @@ var skillTools = {
30868
30908
 
30869
30909
  // src/mcp/subagents.ts
30870
30910
  var import_node_path175 = require("path");
30871
- var import_mini97 = require("zod/mini");
30911
+ var import_mini98 = require("zod/mini");
30872
30912
  var logger4 = new ConsoleLogger({ verbose: false, silent: true });
30873
30913
  var maxSubagentSizeBytes = 1024 * 1024;
30874
30914
  var maxSubagentsCount = 1e3;
@@ -30997,17 +31037,17 @@ async function deleteSubagent({ relativePathFromCwd }) {
30997
31037
  }
30998
31038
  }
30999
31039
  var subagentToolSchemas = {
31000
- listSubagents: import_mini97.z.object({}),
31001
- getSubagent: import_mini97.z.object({
31002
- relativePathFromCwd: import_mini97.z.string()
31040
+ listSubagents: import_mini98.z.object({}),
31041
+ getSubagent: import_mini98.z.object({
31042
+ relativePathFromCwd: import_mini98.z.string()
31003
31043
  }),
31004
- putSubagent: import_mini97.z.object({
31005
- relativePathFromCwd: import_mini97.z.string(),
31044
+ putSubagent: import_mini98.z.object({
31045
+ relativePathFromCwd: import_mini98.z.string(),
31006
31046
  frontmatter: RulesyncSubagentFrontmatterSchema,
31007
- body: import_mini97.z.string()
31047
+ body: import_mini98.z.string()
31008
31048
  }),
31009
- deleteSubagent: import_mini97.z.object({
31010
- relativePathFromCwd: import_mini97.z.string()
31049
+ deleteSubagent: import_mini98.z.object({
31050
+ relativePathFromCwd: import_mini98.z.string()
31011
31051
  })
31012
31052
  };
31013
31053
  var subagentTools = {
@@ -31055,7 +31095,7 @@ var subagentTools = {
31055
31095
  };
31056
31096
 
31057
31097
  // src/mcp/tools.ts
31058
- var rulesyncFeatureSchema = import_mini98.z.enum([
31098
+ var rulesyncFeatureSchema = import_mini99.z.enum([
31059
31099
  "rule",
31060
31100
  "command",
31061
31101
  "subagent",
@@ -31068,22 +31108,22 @@ var rulesyncFeatureSchema = import_mini98.z.enum([
31068
31108
  "import",
31069
31109
  "convert"
31070
31110
  ]);
31071
- var rulesyncOperationSchema = import_mini98.z.enum(["list", "get", "put", "delete", "run"]);
31072
- var skillFileSchema = import_mini98.z.object({
31073
- name: import_mini98.z.string(),
31074
- body: import_mini98.z.string()
31111
+ var rulesyncOperationSchema = import_mini99.z.enum(["list", "get", "put", "delete", "run"]);
31112
+ var skillFileSchema = import_mini99.z.object({
31113
+ name: import_mini99.z.string(),
31114
+ body: import_mini99.z.string()
31075
31115
  });
31076
- var rulesyncToolSchema = import_mini98.z.object({
31116
+ var rulesyncToolSchema = import_mini99.z.object({
31077
31117
  feature: rulesyncFeatureSchema,
31078
31118
  operation: rulesyncOperationSchema,
31079
- targetPathFromCwd: import_mini98.z.optional(import_mini98.z.string()),
31080
- frontmatter: import_mini98.z.optional(import_mini98.z.unknown()),
31081
- body: import_mini98.z.optional(import_mini98.z.string()),
31082
- otherFiles: import_mini98.z.optional(import_mini98.z.array(skillFileSchema)),
31083
- content: import_mini98.z.optional(import_mini98.z.string()),
31084
- generateOptions: import_mini98.z.optional(generateOptionsSchema),
31085
- importOptions: import_mini98.z.optional(importOptionsSchema),
31086
- convertOptions: import_mini98.z.optional(convertOptionsSchema)
31119
+ targetPathFromCwd: import_mini99.z.optional(import_mini99.z.string()),
31120
+ frontmatter: import_mini99.z.optional(import_mini99.z.unknown()),
31121
+ body: import_mini99.z.optional(import_mini99.z.string()),
31122
+ otherFiles: import_mini99.z.optional(import_mini99.z.array(skillFileSchema)),
31123
+ content: import_mini99.z.optional(import_mini99.z.string()),
31124
+ generateOptions: import_mini99.z.optional(generateOptionsSchema),
31125
+ importOptions: import_mini99.z.optional(importOptionsSchema),
31126
+ convertOptions: import_mini99.z.optional(convertOptionsSchema)
31087
31127
  });
31088
31128
  var supportedOperationsByFeature = {
31089
31129
  rule: ["list", "get", "put", "delete"],
@@ -31753,7 +31793,7 @@ function wrapCommand({
31753
31793
  }
31754
31794
 
31755
31795
  // src/cli/index.ts
31756
- var getVersion = () => "8.17.0";
31796
+ var getVersion = () => "8.18.0";
31757
31797
  function wrapCommand2(name, errorCode, handler) {
31758
31798
  return wrapCommand({ name, errorCode, handler, getVersion });
31759
31799
  }