rulesync 16.24.0 → 16.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.cjs +24 -18
- package/dist/cli/index.js +24 -18
- package/dist/cli/index.js.map +1 -1
- package/dist/{import-C0WSCbU9.cjs → import-CI0pN6s5.cjs} +64 -38
- package/dist/{import-DyWRanf6.js → import-DL8paEMP.js} +65 -39
- package/dist/{import-DyWRanf6.js.map → import-DL8paEMP.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +20 -20
|
@@ -22827,8 +22827,10 @@ function definitionsToHermesEntries({ event, sourceEvent = event, definitions, l
|
|
|
22827
22827
|
for (const definition of definitions) {
|
|
22828
22828
|
if ((definition.type ?? "command") !== "command" || typeof definition.command !== "string" || definition.command === "") continue;
|
|
22829
22829
|
const entry = { command: definition.command };
|
|
22830
|
-
if (typeof definition.matcher === "string" && definition.matcher !== "")
|
|
22831
|
-
|
|
22830
|
+
if (typeof definition.matcher === "string" && definition.matcher !== "") {
|
|
22831
|
+
if (supportsMatcher) entry.matcher = definition.matcher;
|
|
22832
|
+
else logger?.warn(`matcher "${definition.matcher}" on "${sourceEvent}" hook will be ignored — Hermes Agent only supports matchers on pre_tool_call/post_tool_call`);
|
|
22833
|
+
}
|
|
22832
22834
|
if (typeof definition.timeout === "number") entry.timeout = definition.timeout;
|
|
22833
22835
|
if (typeof definition.failClosed === "boolean") {
|
|
22834
22836
|
if (event === HERMESAGENT_FAIL_CLOSED_EVENT) entry.fail_closed = definition.failClosed;
|
|
@@ -24056,8 +24058,10 @@ function canonicalToKiroHooks({ config, logger }) {
|
|
|
24056
24058
|
key: eventName
|
|
24057
24059
|
}) ?? eventName;
|
|
24058
24060
|
const entries = buildKiroEntriesForEvent(definitions);
|
|
24059
|
-
if (entries.length > 0)
|
|
24060
|
-
|
|
24061
|
+
if (entries.length > 0) {
|
|
24062
|
+
if (kiro[kiroEventName]) kiro[kiroEventName].push(...entries);
|
|
24063
|
+
else kiro[kiroEventName] = entries;
|
|
24064
|
+
}
|
|
24061
24065
|
}
|
|
24062
24066
|
return kiro;
|
|
24063
24067
|
}
|
|
@@ -24883,8 +24887,10 @@ function canonicalToReasonixHooks({ config, toolOverrideHooks, logger }) {
|
|
|
24883
24887
|
if ((def.type ?? "command") !== "command") continue;
|
|
24884
24888
|
if (typeof def.command !== "string") continue;
|
|
24885
24889
|
const entry = { command: def.command };
|
|
24886
|
-
if (typeof def.matcher === "string" && def.matcher !== "")
|
|
24887
|
-
|
|
24890
|
+
if (typeof def.matcher === "string" && def.matcher !== "") {
|
|
24891
|
+
if (isMatcherEvent) entry.match = def.matcher;
|
|
24892
|
+
else logger?.warn(`matcher "${def.matcher}" on "${event}" hook will be ignored — Reasonix's "${reasonixEvent}" event does not support matchers`);
|
|
24893
|
+
}
|
|
24888
24894
|
if (typeof def.description === "string" && def.description !== "") entry.description = def.description;
|
|
24889
24895
|
if (typeof def.timeout === "number") entry.timeout = Math.round(def.timeout * 1e3);
|
|
24890
24896
|
entries.push(entry);
|
|
@@ -28452,12 +28458,16 @@ function convertFromCodexFormat(codexMcp) {
|
|
|
28452
28458
|
} else if (key === "oauth" && isRecord$1(value)) converted[key] = mapOauthFromCodex(value);
|
|
28453
28459
|
else if (Object.hasOwn(CODEX_TO_RULESYNC_FIELD_MAP, key)) {
|
|
28454
28460
|
const mappedKey = CODEX_TO_RULESYNC_FIELD_MAP[key];
|
|
28455
|
-
if (mappedKey)
|
|
28456
|
-
|
|
28461
|
+
if (mappedKey) {
|
|
28462
|
+
if (isValidRenamedArray(key, value)) converted[mappedKey] = value;
|
|
28463
|
+
else warnWithFallback(void 0, `Ignored malformed array for ${key} in MCP server ${name}`);
|
|
28464
|
+
}
|
|
28457
28465
|
} else if (Object.hasOwn(CODEX_TO_RULESYNC_SCALAR_FIELD_MAP, key)) {
|
|
28458
28466
|
const mappedKey = CODEX_TO_RULESYNC_SCALAR_FIELD_MAP[key];
|
|
28459
|
-
if (mappedKey)
|
|
28460
|
-
|
|
28467
|
+
if (mappedKey) {
|
|
28468
|
+
if (typeof value === "string") converted[mappedKey] = value;
|
|
28469
|
+
else warnWithFallback(void 0, `Ignored malformed value for ${key} in MCP server ${name}: expected a string`);
|
|
28470
|
+
}
|
|
28461
28471
|
} else converted[key] = value;
|
|
28462
28472
|
}
|
|
28463
28473
|
restateCanonicalTransport(converted);
|
|
@@ -28489,12 +28499,16 @@ function convertToCodexFormat(mcpServers) {
|
|
|
28489
28499
|
} else if (key === "oauth" && isRecord$1(value)) converted[key] = mapOauthToCodex(value);
|
|
28490
28500
|
else if (Object.hasOwn(RULESYNC_TO_CODEX_FIELD_MAP, key)) {
|
|
28491
28501
|
const mappedKey = RULESYNC_TO_CODEX_FIELD_MAP[key];
|
|
28492
|
-
if (mappedKey)
|
|
28493
|
-
|
|
28502
|
+
if (mappedKey) {
|
|
28503
|
+
if (isValidRenamedArray(key, value)) converted[mappedKey] = value;
|
|
28504
|
+
else warnWithFallback(void 0, `[CodexCliMcp] Skipping invalid value type for mapped key '${key}': expected string array, got ${typeof value}`);
|
|
28505
|
+
}
|
|
28494
28506
|
} else if (Object.hasOwn(RULESYNC_TO_CODEX_SCALAR_FIELD_MAP, key)) {
|
|
28495
28507
|
const mappedKey = RULESYNC_TO_CODEX_SCALAR_FIELD_MAP[key];
|
|
28496
|
-
if (mappedKey)
|
|
28497
|
-
|
|
28508
|
+
if (mappedKey) {
|
|
28509
|
+
if (typeof value === "string") converted[mappedKey] = value;
|
|
28510
|
+
else warnWithFallback(void 0, `[CodexCliMcp] Skipping invalid value type for mapped key '${key}': expected string, got ${typeof value}`);
|
|
28511
|
+
}
|
|
28498
28512
|
} else converted[key] = value;
|
|
28499
28513
|
}
|
|
28500
28514
|
const previousName = originalNames.get(codexName);
|
|
@@ -28738,8 +28752,10 @@ function resolveRemoteMcpUrl(serverConfig) {
|
|
|
28738
28752
|
/** The `command` array a `local` server is spawned with, `args` merged in. */
|
|
28739
28753
|
function resolveLocalMcpCommand(serverConfig) {
|
|
28740
28754
|
const commandArray = [];
|
|
28741
|
-
if (serverConfig.command)
|
|
28742
|
-
|
|
28755
|
+
if (serverConfig.command) {
|
|
28756
|
+
if (Array.isArray(serverConfig.command)) commandArray.push(...serverConfig.command);
|
|
28757
|
+
else commandArray.push(serverConfig.command);
|
|
28758
|
+
}
|
|
28743
28759
|
if (serverConfig.args) commandArray.push(...serverConfig.args);
|
|
28744
28760
|
return commandArray;
|
|
28745
28761
|
}
|
|
@@ -29276,8 +29292,10 @@ function toDeepagentsServer({ name, server, logger }) {
|
|
|
29276
29292
|
const { enabledTools, disabledTools, type: _type, transport, ...rest } = server;
|
|
29277
29293
|
const converted = { ...rest };
|
|
29278
29294
|
const normalized = normalizeDeepagentsTransport(rawTransport);
|
|
29279
|
-
if (normalized !== void 0)
|
|
29280
|
-
|
|
29295
|
+
if (normalized !== void 0) {
|
|
29296
|
+
if (transport !== void 0) converted.transport = normalized;
|
|
29297
|
+
else converted.type = normalized;
|
|
29298
|
+
}
|
|
29281
29299
|
if (enabledTools !== void 0 && disabledTools !== void 0) return warnAndSkipMcpServer({
|
|
29282
29300
|
toolName: TOOL_NAME,
|
|
29283
29301
|
serverName: name,
|
|
@@ -29292,8 +29310,10 @@ function toDeepagentsServer({ name, server, logger }) {
|
|
|
29292
29310
|
logger
|
|
29293
29311
|
});
|
|
29294
29312
|
converted.allowedTools = enabledTools;
|
|
29295
|
-
} else if (disabledTools !== void 0)
|
|
29296
|
-
|
|
29313
|
+
} else if (disabledTools !== void 0) {
|
|
29314
|
+
if (disabledTools.length === 0) logger?.warn(`${TOOL_NAME} MCP: dropping the empty disabledTools list on "${name}"; it denies nothing, and deepagents rejects the empty form.`);
|
|
29315
|
+
else converted.disabledTools = disabledTools;
|
|
29316
|
+
}
|
|
29297
29317
|
return converted;
|
|
29298
29318
|
}
|
|
29299
29319
|
/** Lift dcode's spellings back into the canonical model. */
|
|
@@ -32230,14 +32250,16 @@ function rulesyncMcpServerToReasonix(name, server, logger) {
|
|
|
32230
32250
|
name,
|
|
32231
32251
|
...type !== void 0 && { type }
|
|
32232
32252
|
};
|
|
32233
|
-
if (server.command !== void 0)
|
|
32234
|
-
|
|
32235
|
-
|
|
32236
|
-
|
|
32237
|
-
|
|
32238
|
-
|
|
32239
|
-
|
|
32240
|
-
|
|
32253
|
+
if (server.command !== void 0) {
|
|
32254
|
+
if (Array.isArray(server.command)) {
|
|
32255
|
+
const [command, ...commandArgs] = server.command;
|
|
32256
|
+
if (command !== void 0) plugin.command = command;
|
|
32257
|
+
const args = [...commandArgs, ...server.args ?? []];
|
|
32258
|
+
if (args.length > 0) plugin.args = args;
|
|
32259
|
+
} else {
|
|
32260
|
+
plugin.command = server.command;
|
|
32261
|
+
if (server.args !== void 0) plugin.args = server.args;
|
|
32262
|
+
}
|
|
32241
32263
|
}
|
|
32242
32264
|
for (const field of REASONIX_PLUGIN_FIELDS) {
|
|
32243
32265
|
if (field === "type" || field === "command" || field === "args") continue;
|
|
@@ -33305,14 +33327,16 @@ function rulesyncMcpServerToVibe(name, server, existing) {
|
|
|
33305
33327
|
name,
|
|
33306
33328
|
...transport !== void 0 && { transport }
|
|
33307
33329
|
};
|
|
33308
|
-
if (server.command !== void 0)
|
|
33309
|
-
|
|
33310
|
-
|
|
33311
|
-
|
|
33312
|
-
|
|
33313
|
-
|
|
33314
|
-
|
|
33315
|
-
|
|
33330
|
+
if (server.command !== void 0) {
|
|
33331
|
+
if (Array.isArray(server.command)) {
|
|
33332
|
+
const [command, ...commandArgs] = server.command;
|
|
33333
|
+
if (command !== void 0) vibeServer.command = command;
|
|
33334
|
+
const args = [...commandArgs, ...server.args ?? []];
|
|
33335
|
+
if (args.length > 0) vibeServer.args = args;
|
|
33336
|
+
} else {
|
|
33337
|
+
vibeServer.command = server.command;
|
|
33338
|
+
if (server.args !== void 0) vibeServer.args = server.args;
|
|
33339
|
+
}
|
|
33316
33340
|
}
|
|
33317
33341
|
const hasStructuredAuth = serverRecord.auth !== void 0;
|
|
33318
33342
|
for (const field of VIBE_MCP_SERVER_FIELDS) {
|
|
@@ -65210,8 +65234,10 @@ var RooRule = class RooRule extends ToolRule {
|
|
|
65210
65234
|
nonRootPath: this.getSettablePaths().nonRoot
|
|
65211
65235
|
});
|
|
65212
65236
|
const mode = rulesyncRule.getFrontmatter().roo?.mode;
|
|
65213
|
-
if (!params.root && mode !== void 0 && mode !== "")
|
|
65214
|
-
|
|
65237
|
+
if (!params.root && mode !== void 0 && mode !== "") {
|
|
65238
|
+
if (!ROO_MODE_SLUG_PATTERN.test(mode)) warnWithFallback(void 0, `Ignoring roo.mode "${mode}" on ${rulesyncRule.getRelativeFilePath()}: a mode slug may contain only letters, digits and hyphens. Writing the rule to ${params.relativeDirPath} instead.`);
|
|
65239
|
+
else params.relativeDirPath = (0, node_path.join)((0, node_path.dirname)(params.relativeDirPath), rooModeRulesDirName(mode));
|
|
65240
|
+
}
|
|
65215
65241
|
return new RooRule(params);
|
|
65216
65242
|
}
|
|
65217
65243
|
/**
|
|
@@ -22802,8 +22802,10 @@ function definitionsToHermesEntries({ event, sourceEvent = event, definitions, l
|
|
|
22802
22802
|
for (const definition of definitions) {
|
|
22803
22803
|
if ((definition.type ?? "command") !== "command" || typeof definition.command !== "string" || definition.command === "") continue;
|
|
22804
22804
|
const entry = { command: definition.command };
|
|
22805
|
-
if (typeof definition.matcher === "string" && definition.matcher !== "")
|
|
22806
|
-
|
|
22805
|
+
if (typeof definition.matcher === "string" && definition.matcher !== "") {
|
|
22806
|
+
if (supportsMatcher) entry.matcher = definition.matcher;
|
|
22807
|
+
else logger?.warn(`matcher "${definition.matcher}" on "${sourceEvent}" hook will be ignored — Hermes Agent only supports matchers on pre_tool_call/post_tool_call`);
|
|
22808
|
+
}
|
|
22807
22809
|
if (typeof definition.timeout === "number") entry.timeout = definition.timeout;
|
|
22808
22810
|
if (typeof definition.failClosed === "boolean") {
|
|
22809
22811
|
if (event === HERMESAGENT_FAIL_CLOSED_EVENT) entry.fail_closed = definition.failClosed;
|
|
@@ -24031,8 +24033,10 @@ function canonicalToKiroHooks({ config, logger }) {
|
|
|
24031
24033
|
key: eventName
|
|
24032
24034
|
}) ?? eventName;
|
|
24033
24035
|
const entries = buildKiroEntriesForEvent(definitions);
|
|
24034
|
-
if (entries.length > 0)
|
|
24035
|
-
|
|
24036
|
+
if (entries.length > 0) {
|
|
24037
|
+
if (kiro[kiroEventName]) kiro[kiroEventName].push(...entries);
|
|
24038
|
+
else kiro[kiroEventName] = entries;
|
|
24039
|
+
}
|
|
24036
24040
|
}
|
|
24037
24041
|
return kiro;
|
|
24038
24042
|
}
|
|
@@ -24858,8 +24862,10 @@ function canonicalToReasonixHooks({ config, toolOverrideHooks, logger }) {
|
|
|
24858
24862
|
if ((def.type ?? "command") !== "command") continue;
|
|
24859
24863
|
if (typeof def.command !== "string") continue;
|
|
24860
24864
|
const entry = { command: def.command };
|
|
24861
|
-
if (typeof def.matcher === "string" && def.matcher !== "")
|
|
24862
|
-
|
|
24865
|
+
if (typeof def.matcher === "string" && def.matcher !== "") {
|
|
24866
|
+
if (isMatcherEvent) entry.match = def.matcher;
|
|
24867
|
+
else logger?.warn(`matcher "${def.matcher}" on "${event}" hook will be ignored — Reasonix's "${reasonixEvent}" event does not support matchers`);
|
|
24868
|
+
}
|
|
24863
24869
|
if (typeof def.description === "string" && def.description !== "") entry.description = def.description;
|
|
24864
24870
|
if (typeof def.timeout === "number") entry.timeout = Math.round(def.timeout * 1e3);
|
|
24865
24871
|
entries.push(entry);
|
|
@@ -28427,12 +28433,16 @@ function convertFromCodexFormat(codexMcp) {
|
|
|
28427
28433
|
} else if (key === "oauth" && isRecord$1(value)) converted[key] = mapOauthFromCodex(value);
|
|
28428
28434
|
else if (Object.hasOwn(CODEX_TO_RULESYNC_FIELD_MAP, key)) {
|
|
28429
28435
|
const mappedKey = CODEX_TO_RULESYNC_FIELD_MAP[key];
|
|
28430
|
-
if (mappedKey)
|
|
28431
|
-
|
|
28436
|
+
if (mappedKey) {
|
|
28437
|
+
if (isValidRenamedArray(key, value)) converted[mappedKey] = value;
|
|
28438
|
+
else warnWithFallback(void 0, `Ignored malformed array for ${key} in MCP server ${name}`);
|
|
28439
|
+
}
|
|
28432
28440
|
} else if (Object.hasOwn(CODEX_TO_RULESYNC_SCALAR_FIELD_MAP, key)) {
|
|
28433
28441
|
const mappedKey = CODEX_TO_RULESYNC_SCALAR_FIELD_MAP[key];
|
|
28434
|
-
if (mappedKey)
|
|
28435
|
-
|
|
28442
|
+
if (mappedKey) {
|
|
28443
|
+
if (typeof value === "string") converted[mappedKey] = value;
|
|
28444
|
+
else warnWithFallback(void 0, `Ignored malformed value for ${key} in MCP server ${name}: expected a string`);
|
|
28445
|
+
}
|
|
28436
28446
|
} else converted[key] = value;
|
|
28437
28447
|
}
|
|
28438
28448
|
restateCanonicalTransport(converted);
|
|
@@ -28464,12 +28474,16 @@ function convertToCodexFormat(mcpServers) {
|
|
|
28464
28474
|
} else if (key === "oauth" && isRecord$1(value)) converted[key] = mapOauthToCodex(value);
|
|
28465
28475
|
else if (Object.hasOwn(RULESYNC_TO_CODEX_FIELD_MAP, key)) {
|
|
28466
28476
|
const mappedKey = RULESYNC_TO_CODEX_FIELD_MAP[key];
|
|
28467
|
-
if (mappedKey)
|
|
28468
|
-
|
|
28477
|
+
if (mappedKey) {
|
|
28478
|
+
if (isValidRenamedArray(key, value)) converted[mappedKey] = value;
|
|
28479
|
+
else warnWithFallback(void 0, `[CodexCliMcp] Skipping invalid value type for mapped key '${key}': expected string array, got ${typeof value}`);
|
|
28480
|
+
}
|
|
28469
28481
|
} else if (Object.hasOwn(RULESYNC_TO_CODEX_SCALAR_FIELD_MAP, key)) {
|
|
28470
28482
|
const mappedKey = RULESYNC_TO_CODEX_SCALAR_FIELD_MAP[key];
|
|
28471
|
-
if (mappedKey)
|
|
28472
|
-
|
|
28483
|
+
if (mappedKey) {
|
|
28484
|
+
if (typeof value === "string") converted[mappedKey] = value;
|
|
28485
|
+
else warnWithFallback(void 0, `[CodexCliMcp] Skipping invalid value type for mapped key '${key}': expected string, got ${typeof value}`);
|
|
28486
|
+
}
|
|
28473
28487
|
} else converted[key] = value;
|
|
28474
28488
|
}
|
|
28475
28489
|
const previousName = originalNames.get(codexName);
|
|
@@ -28713,8 +28727,10 @@ function resolveRemoteMcpUrl(serverConfig) {
|
|
|
28713
28727
|
/** The `command` array a `local` server is spawned with, `args` merged in. */
|
|
28714
28728
|
function resolveLocalMcpCommand(serverConfig) {
|
|
28715
28729
|
const commandArray = [];
|
|
28716
|
-
if (serverConfig.command)
|
|
28717
|
-
|
|
28730
|
+
if (serverConfig.command) {
|
|
28731
|
+
if (Array.isArray(serverConfig.command)) commandArray.push(...serverConfig.command);
|
|
28732
|
+
else commandArray.push(serverConfig.command);
|
|
28733
|
+
}
|
|
28718
28734
|
if (serverConfig.args) commandArray.push(...serverConfig.args);
|
|
28719
28735
|
return commandArray;
|
|
28720
28736
|
}
|
|
@@ -29251,8 +29267,10 @@ function toDeepagentsServer({ name, server, logger }) {
|
|
|
29251
29267
|
const { enabledTools, disabledTools, type: _type, transport, ...rest } = server;
|
|
29252
29268
|
const converted = { ...rest };
|
|
29253
29269
|
const normalized = normalizeDeepagentsTransport(rawTransport);
|
|
29254
|
-
if (normalized !== void 0)
|
|
29255
|
-
|
|
29270
|
+
if (normalized !== void 0) {
|
|
29271
|
+
if (transport !== void 0) converted.transport = normalized;
|
|
29272
|
+
else converted.type = normalized;
|
|
29273
|
+
}
|
|
29256
29274
|
if (enabledTools !== void 0 && disabledTools !== void 0) return warnAndSkipMcpServer({
|
|
29257
29275
|
toolName: TOOL_NAME,
|
|
29258
29276
|
serverName: name,
|
|
@@ -29267,8 +29285,10 @@ function toDeepagentsServer({ name, server, logger }) {
|
|
|
29267
29285
|
logger
|
|
29268
29286
|
});
|
|
29269
29287
|
converted.allowedTools = enabledTools;
|
|
29270
|
-
} else if (disabledTools !== void 0)
|
|
29271
|
-
|
|
29288
|
+
} else if (disabledTools !== void 0) {
|
|
29289
|
+
if (disabledTools.length === 0) logger?.warn(`${TOOL_NAME} MCP: dropping the empty disabledTools list on "${name}"; it denies nothing, and deepagents rejects the empty form.`);
|
|
29290
|
+
else converted.disabledTools = disabledTools;
|
|
29291
|
+
}
|
|
29272
29292
|
return converted;
|
|
29273
29293
|
}
|
|
29274
29294
|
/** Lift dcode's spellings back into the canonical model. */
|
|
@@ -32205,14 +32225,16 @@ function rulesyncMcpServerToReasonix(name, server, logger) {
|
|
|
32205
32225
|
name,
|
|
32206
32226
|
...type !== void 0 && { type }
|
|
32207
32227
|
};
|
|
32208
|
-
if (server.command !== void 0)
|
|
32209
|
-
|
|
32210
|
-
|
|
32211
|
-
|
|
32212
|
-
|
|
32213
|
-
|
|
32214
|
-
|
|
32215
|
-
|
|
32228
|
+
if (server.command !== void 0) {
|
|
32229
|
+
if (Array.isArray(server.command)) {
|
|
32230
|
+
const [command, ...commandArgs] = server.command;
|
|
32231
|
+
if (command !== void 0) plugin.command = command;
|
|
32232
|
+
const args = [...commandArgs, ...server.args ?? []];
|
|
32233
|
+
if (args.length > 0) plugin.args = args;
|
|
32234
|
+
} else {
|
|
32235
|
+
plugin.command = server.command;
|
|
32236
|
+
if (server.args !== void 0) plugin.args = server.args;
|
|
32237
|
+
}
|
|
32216
32238
|
}
|
|
32217
32239
|
for (const field of REASONIX_PLUGIN_FIELDS) {
|
|
32218
32240
|
if (field === "type" || field === "command" || field === "args") continue;
|
|
@@ -33280,14 +33302,16 @@ function rulesyncMcpServerToVibe(name, server, existing) {
|
|
|
33280
33302
|
name,
|
|
33281
33303
|
...transport !== void 0 && { transport }
|
|
33282
33304
|
};
|
|
33283
|
-
if (server.command !== void 0)
|
|
33284
|
-
|
|
33285
|
-
|
|
33286
|
-
|
|
33287
|
-
|
|
33288
|
-
|
|
33289
|
-
|
|
33290
|
-
|
|
33305
|
+
if (server.command !== void 0) {
|
|
33306
|
+
if (Array.isArray(server.command)) {
|
|
33307
|
+
const [command, ...commandArgs] = server.command;
|
|
33308
|
+
if (command !== void 0) vibeServer.command = command;
|
|
33309
|
+
const args = [...commandArgs, ...server.args ?? []];
|
|
33310
|
+
if (args.length > 0) vibeServer.args = args;
|
|
33311
|
+
} else {
|
|
33312
|
+
vibeServer.command = server.command;
|
|
33313
|
+
if (server.args !== void 0) vibeServer.args = server.args;
|
|
33314
|
+
}
|
|
33291
33315
|
}
|
|
33292
33316
|
const hasStructuredAuth = serverRecord.auth !== void 0;
|
|
33293
33317
|
for (const field of VIBE_MCP_SERVER_FIELDS) {
|
|
@@ -65185,8 +65209,10 @@ var RooRule = class RooRule extends ToolRule {
|
|
|
65185
65209
|
nonRootPath: this.getSettablePaths().nonRoot
|
|
65186
65210
|
});
|
|
65187
65211
|
const mode = rulesyncRule.getFrontmatter().roo?.mode;
|
|
65188
|
-
if (!params.root && mode !== void 0 && mode !== "")
|
|
65189
|
-
|
|
65212
|
+
if (!params.root && mode !== void 0 && mode !== "") {
|
|
65213
|
+
if (!ROO_MODE_SLUG_PATTERN.test(mode)) warnWithFallback(void 0, `Ignoring roo.mode "${mode}" on ${rulesyncRule.getRelativeFilePath()}: a mode slug may contain only letters, digits and hyphens. Writing the rule to ${params.relativeDirPath} instead.`);
|
|
65214
|
+
else params.relativeDirPath = join(dirname(params.relativeDirPath), rooModeRulesDirName(mode));
|
|
65215
|
+
}
|
|
65190
65216
|
return new RooRule(params);
|
|
65191
65217
|
}
|
|
65192
65218
|
/**
|
|
@@ -69422,4 +69448,4 @@ async function importChecksCore(params) {
|
|
|
69422
69448
|
//#endregion
|
|
69423
69449
|
export { RulesyncCheckFrontmatterSchema as $, ALL_TOOL_TARGETS_WITH_WILDCARD as $t, FACTORYDROID_DIR as A, RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH as An, fileExists as At, RulesyncSkillFrontmatterSchema as B, stripControlCharacters as Bn, readFileContent as Bt, CODEXCLI_BASH_RULES_FILE_NAME as C, RULESYNC_PERMISSIONS_LEGACY_FILE_NAME as Cn, assertDirectoryIfExists as Ct, CLAUDECODE_MEMORIES_DIR_NAME as D, RULESYNC_RULES_RELATIVE_DIR_PATH as Dn, createTempDirectory as Dt, CLAUDECODE_LOCAL_RULE_FILE_NAME as E, RULESYNC_RELATIVE_DIR_PATH as En, checkPathTraversal as Et, AUGMENTCODE_SETTINGS_LOCAL_FILE_NAME as F, formatError as Fn, isSymlink as Ft, RulesyncIgnore as G, removeFileStrict as Gt, RulesyncRuleFrontmatterSchema as H, stripHiddenCharacters as Hn, removeDirectory as Ht, getLocalSkillDirNames as I, truncateText as In, listDirectoryEntryNames as It, resolveRulesyncSourceWritePath as J, runWithDirectoryRollback as Jt, RulesyncHooks as K, removeTempDirectory as Kt, RulesyncSubagent as L, hasDeceptiveHiddenCharacters as Ln, listFilePathsRecursively as Lt, caseFoldIdentity as M, ALL_FEATURES as Mn, getHomeDirectory as Mt, groupSpellingsByCaseFoldedIdentity as N, ALL_FEATURES_WITH_WILDCARD as Nn, isFileNotFoundError as Nt, CLAUDECODE_SETTINGS_LOCAL_FILE_NAME as O, RULESYNC_SKILLS_RELATIVE_DIR_PATH as On, directoryExists as Ot, AUGMENTCODE_DIR as P, DEPRECATED_FEATURE_REPLACEMENTS as Pn, isFileSystemError as Pt, RulesyncCheck as Q, ALL_TOOL_TARGETS as Qt, RulesyncSubagentFrontmatterSchema as R, hasEnclosingMarkOutsideKeycap as Rn, listSubdirectoryNames as Rt, ChecksProcessor as S, RULESYNC_PERMISSIONS_FILE_NAME as Sn, applyFileMode as St, CLAUDECODE_DIR as T, RULESYNC_PERMISSIONS_SCHEMA_URL as Tn, assertWritablePathInsideRoot as Tt, RulesyncPermissions as U, removeDirectoryStrict as Ut, RulesyncRule as V, stripControlCharactersKeepingLineFeeds as Vn, readFileContentOrNull as Vt, RulesyncMcp as W, removeFile as Wt, RulesyncCommand as X, writeFileBuffer as Xt, parseJsonc as Y, toPosixPath as Yt, RulesyncCommandFrontmatterSchema as Z, writeFileContent as Zt, IgnoreProcessor as _, RULESYNC_MCP_FILE_NAME as _n, withFallbackLoggerTarget as _t, getProcessorRegistryEntry as a, RULESYNC_AIIGNORE_RELATIVE_FILE_PATH as an, mergeInputRootConfigs as at, QWENCODE_DIR as b, RULESYNC_MCP_SCHEMA_URL as bn, CLIError as bt, RulesProcessor as c, RULESYNC_CONFIG_RELATIVE_FILE_PATH as cn, ConfigFileSchema as ct, CODEBUDDY_DIR as d, RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH as dn, findControlCharacter as dt, PACKAGING_TOOL_TARGETS as en, stringifyFrontmatter as et, CODEBUDDY_LOCAL_RULE_FILE_NAME as f, RULESYNC_HOOKS_FILE_NAME as fn, ConsoleLogger as ft, McpProcessor as g, RULESYNC_LOCAL_CONFIG_RELATIVE_FILE_PATH as gn, warnOnConflictingFlags as gt, shortenToWidth as h, RULESYNC_IGNORE_RELATIVE_FILE_PATH as hn, fallbackLogger as ht, inspectInputRoots as i, RULESYNC_AIIGNORE_FILE_NAME as in, ConfigResolver as it, FACTORYDROID_SETTINGS_LOCAL_FILE_NAME as j, parseCommaSeparatedList as jn, getFileSize as jt, CLAUDECODE_SKILLS_DIR_PATH as k, RULESYNC_SOURCES_LOCK_RELATIVE_FILE_PATH as kn, ensureDir as kt, SubagentsProcessor as l, RULESYNC_CONFIG_SCHEMA_URL as ln, GITIGNORE_DESTINATION_KEY as lt, displayWidthOf as m, RULESYNC_HOOKS_RELATIVE_FILE_PATH as mn, WarningCollectingLogger as mt, formatSourceLoadFailure as n, CURATED_RULES_FEATURE_SUBDIR as nn, SHARED_USER_MANAGED_CONFIG_PATHS as nt, convertFromTool as o, RULESYNC_CHECKS_RELATIVE_DIR_PATH as on, resolveEffectiveInputRoots as ot, ELLIPSIS_WIDTH as p, RULESYNC_HOOKS_LEGACY_FILE_NAME as pn, JsonLogger as pt, getRulesyncSourceCandidates as q, resolvePath as qt, generate as r, MAX_FILE_SIZE as rn, SKILL_FILE_NAME as rt, isPackagingToolTarget as s, RULESYNC_COMMANDS_RELATIVE_DIR_PATH as sn, CONFLICTING_TARGET_PAIRS as st, importFromTool as t, ToolTargetSchema as tn, loadYaml as tt, SkillsProcessor as u, RULESYNC_CURATED_RULES_RELATIVE_DIR_PATH as un, SourceEntrySchema as ut, HooksProcessor as v, RULESYNC_MCP_LEGACY_FILE_NAME as vn, resetRunWarningState as vt, CODEXCLI_DIR as w, RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH as wn, assertTreeContainsNoSymlinks as wt, QWENCODE_LOCAL_RULE_FILE_NAME as x, RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH as xn, ErrorCodes as xt, CommandsProcessor as y, RULESYNC_MCP_RELATIVE_FILE_PATH as yn, withWarnOnceScope as yt, RulesyncSkill as z, quoteForLog as zn, pathEscapesRoot as zt };
|
|
69424
69450
|
|
|
69425
|
-
//# sourceMappingURL=import-
|
|
69451
|
+
//# sourceMappingURL=import-DL8paEMP.js.map
|