rulesync 3.34.0 → 4.0.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/README.md +0 -14
- package/dist/index.cjs +15 -139
- package/dist/index.js +75 -199
- package/package.json +20 -18
package/README.md
CHANGED
|
@@ -57,15 +57,6 @@ chmod +x rulesync
|
|
|
57
57
|
sudo mv rulesync /usr/local/bin/
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
#### macOS (Intel)
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
curl -L https://github.com/dyoshikawa/rulesync/releases/latest/download/rulesync-darwin-x64 -o rulesync
|
|
64
|
-
chmod +x rulesync
|
|
65
|
-
# Place the binary wherever set PATH
|
|
66
|
-
sudo mv rulesync /usr/local/bin/
|
|
67
|
-
```
|
|
68
|
-
|
|
69
60
|
#### macOS (Apple Silicon)
|
|
70
61
|
|
|
71
62
|
```bash
|
|
@@ -266,11 +257,6 @@ Example:
|
|
|
266
257
|
"simulateSubagents": false, // Generate simulated subagents
|
|
267
258
|
"simulateSkills": false, // Generate simulated skills
|
|
268
259
|
"modularMcp": false // Enable modular-mcp for context compression (experimental, Claude Code only)
|
|
269
|
-
|
|
270
|
-
// Deprecated experimental options (for backward compatibility)
|
|
271
|
-
// "experimentalGlobal": false,
|
|
272
|
-
// "experimentalSimulateCommands": false,
|
|
273
|
-
// "experimentalSimulateSubagents": false
|
|
274
260
|
}
|
|
275
261
|
```
|
|
276
262
|
|
package/dist/index.cjs
CHANGED
|
@@ -292,11 +292,7 @@ var ConfigParamsSchema = import_mini3.z.object({
|
|
|
292
292
|
simulateCommands: (0, import_mini3.optional)(import_mini3.z.boolean()),
|
|
293
293
|
simulateSubagents: (0, import_mini3.optional)(import_mini3.z.boolean()),
|
|
294
294
|
simulateSkills: (0, import_mini3.optional)(import_mini3.z.boolean()),
|
|
295
|
-
modularMcp: (0, import_mini3.optional)(import_mini3.z.boolean())
|
|
296
|
-
// Deprecated experimental options (for backward compatibility)
|
|
297
|
-
experimentalGlobal: (0, import_mini3.optional)(import_mini3.z.boolean()),
|
|
298
|
-
experimentalSimulateCommands: (0, import_mini3.optional)(import_mini3.z.boolean()),
|
|
299
|
-
experimentalSimulateSubagents: (0, import_mini3.optional)(import_mini3.z.boolean())
|
|
295
|
+
modularMcp: (0, import_mini3.optional)(import_mini3.z.boolean())
|
|
300
296
|
});
|
|
301
297
|
var PartialConfigParamsSchema = import_mini3.z.partial(ConfigParamsSchema);
|
|
302
298
|
var ConfigFileSchema = import_mini3.z.object({
|
|
@@ -330,10 +326,7 @@ var Config = class {
|
|
|
330
326
|
simulateCommands,
|
|
331
327
|
simulateSubagents,
|
|
332
328
|
simulateSkills,
|
|
333
|
-
modularMcp
|
|
334
|
-
experimentalGlobal,
|
|
335
|
-
experimentalSimulateCommands,
|
|
336
|
-
experimentalSimulateSubagents
|
|
329
|
+
modularMcp
|
|
337
330
|
}) {
|
|
338
331
|
this.validateConflictingTargets(targets);
|
|
339
332
|
this.baseDirs = baseDirs;
|
|
@@ -341,9 +334,9 @@ var Config = class {
|
|
|
341
334
|
this.features = features;
|
|
342
335
|
this.verbose = verbose;
|
|
343
336
|
this.delete = isDelete;
|
|
344
|
-
this.global = global ??
|
|
345
|
-
this.simulateCommands = simulateCommands ??
|
|
346
|
-
this.simulateSubagents = simulateSubagents ??
|
|
337
|
+
this.global = global ?? false;
|
|
338
|
+
this.simulateCommands = simulateCommands ?? false;
|
|
339
|
+
this.simulateSubagents = simulateSubagents ?? false;
|
|
347
340
|
this.simulateSkills = simulateSkills ?? false;
|
|
348
341
|
this.modularMcp = modularMcp ?? false;
|
|
349
342
|
}
|
|
@@ -397,19 +390,6 @@ var Config = class {
|
|
|
397
390
|
getModularMcp() {
|
|
398
391
|
return this.modularMcp;
|
|
399
392
|
}
|
|
400
|
-
// Deprecated getters for backward compatibility
|
|
401
|
-
/** @deprecated Use getGlobal() instead */
|
|
402
|
-
getExperimentalGlobal() {
|
|
403
|
-
return this.global;
|
|
404
|
-
}
|
|
405
|
-
/** @deprecated Use getSimulateCommands() instead */
|
|
406
|
-
getExperimentalSimulateCommands() {
|
|
407
|
-
return this.simulateCommands;
|
|
408
|
-
}
|
|
409
|
-
/** @deprecated Use getSimulateSubagents() instead */
|
|
410
|
-
getExperimentalSimulateSubagents() {
|
|
411
|
-
return this.simulateSubagents;
|
|
412
|
-
}
|
|
413
393
|
};
|
|
414
394
|
|
|
415
395
|
// src/config/config-resolver.ts
|
|
@@ -424,10 +404,7 @@ var getDefaults = () => ({
|
|
|
424
404
|
simulateCommands: false,
|
|
425
405
|
simulateSubagents: false,
|
|
426
406
|
simulateSkills: false,
|
|
427
|
-
modularMcp: false
|
|
428
|
-
experimentalGlobal: false,
|
|
429
|
-
experimentalSimulateCommands: false,
|
|
430
|
-
experimentalSimulateSubagents: false
|
|
407
|
+
modularMcp: false
|
|
431
408
|
});
|
|
432
409
|
var ConfigResolver = class {
|
|
433
410
|
static async resolve({
|
|
@@ -441,10 +418,7 @@ var ConfigResolver = class {
|
|
|
441
418
|
simulateCommands,
|
|
442
419
|
simulateSubagents,
|
|
443
420
|
simulateSkills,
|
|
444
|
-
modularMcp
|
|
445
|
-
experimentalGlobal,
|
|
446
|
-
experimentalSimulateCommands,
|
|
447
|
-
experimentalSimulateSubagents
|
|
421
|
+
modularMcp
|
|
448
422
|
}) {
|
|
449
423
|
const validatedConfigPath = resolvePath(configPath, process.cwd());
|
|
450
424
|
let configByFile = {};
|
|
@@ -460,21 +434,9 @@ var ConfigResolver = class {
|
|
|
460
434
|
throw error;
|
|
461
435
|
}
|
|
462
436
|
}
|
|
463
|
-
const
|
|
464
|
-
const
|
|
465
|
-
const
|
|
466
|
-
if (deprecatedGlobal !== void 0) {
|
|
467
|
-
warnDeprecatedOptions({ experimentalGlobal: deprecatedGlobal });
|
|
468
|
-
}
|
|
469
|
-
if (deprecatedCommands !== void 0) {
|
|
470
|
-
warnDeprecatedOptions({ experimentalSimulateCommands: deprecatedCommands });
|
|
471
|
-
}
|
|
472
|
-
if (deprecatedSubagents !== void 0) {
|
|
473
|
-
warnDeprecatedOptions({ experimentalSimulateSubagents: deprecatedSubagents });
|
|
474
|
-
}
|
|
475
|
-
const resolvedGlobal = global ?? configByFile.global ?? experimentalGlobal ?? configByFile.experimentalGlobal ?? getDefaults().global;
|
|
476
|
-
const resolvedSimulateCommands = simulateCommands ?? configByFile.simulateCommands ?? experimentalSimulateCommands ?? configByFile.experimentalSimulateCommands ?? getDefaults().simulateCommands;
|
|
477
|
-
const resolvedSimulateSubagents = simulateSubagents ?? configByFile.simulateSubagents ?? experimentalSimulateSubagents ?? configByFile.experimentalSimulateSubagents ?? getDefaults().simulateSubagents;
|
|
437
|
+
const resolvedGlobal = global ?? configByFile.global ?? getDefaults().global;
|
|
438
|
+
const resolvedSimulateCommands = simulateCommands ?? configByFile.simulateCommands ?? getDefaults().simulateCommands;
|
|
439
|
+
const resolvedSimulateSubagents = simulateSubagents ?? configByFile.simulateSubagents ?? getDefaults().simulateSubagents;
|
|
478
440
|
const resolvedSimulateSkills = simulateSkills ?? configByFile.simulateSkills ?? getDefaults().simulateSkills;
|
|
479
441
|
const configParams = {
|
|
480
442
|
targets: targets ?? configByFile.targets ?? getDefaults().targets,
|
|
@@ -494,25 +456,6 @@ var ConfigResolver = class {
|
|
|
494
456
|
return new Config(configParams);
|
|
495
457
|
}
|
|
496
458
|
};
|
|
497
|
-
function warnDeprecatedOptions({
|
|
498
|
-
experimentalGlobal,
|
|
499
|
-
experimentalSimulateCommands,
|
|
500
|
-
experimentalSimulateSubagents
|
|
501
|
-
}) {
|
|
502
|
-
if (experimentalGlobal !== void 0) {
|
|
503
|
-
logger.warn("'experimentalGlobal' option is deprecated. Please use 'global' instead.");
|
|
504
|
-
}
|
|
505
|
-
if (experimentalSimulateCommands !== void 0) {
|
|
506
|
-
logger.warn(
|
|
507
|
-
"'experimentalSimulateCommands' option is deprecated. Please use 'simulateCommands' instead."
|
|
508
|
-
);
|
|
509
|
-
}
|
|
510
|
-
if (experimentalSimulateSubagents !== void 0) {
|
|
511
|
-
logger.warn(
|
|
512
|
-
"'experimentalSimulateSubagents' option is deprecated. Please use 'simulateSubagents' instead."
|
|
513
|
-
);
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
459
|
function getBaseDirsInLightOfGlobal({
|
|
517
460
|
baseDirs,
|
|
518
461
|
global
|
|
@@ -6220,9 +6163,6 @@ var RulesyncRule = class _RulesyncRule extends RulesyncFile {
|
|
|
6220
6163
|
return {
|
|
6221
6164
|
recommended: {
|
|
6222
6165
|
relativeDirPath: RULESYNC_RULES_RELATIVE_DIR_PATH
|
|
6223
|
-
},
|
|
6224
|
-
legacy: {
|
|
6225
|
-
relativeDirPath: RULESYNC_RELATIVE_DIR_PATH
|
|
6226
6166
|
}
|
|
6227
6167
|
};
|
|
6228
6168
|
}
|
|
@@ -6245,44 +6185,6 @@ var RulesyncRule = class _RulesyncRule extends RulesyncFile {
|
|
|
6245
6185
|
};
|
|
6246
6186
|
}
|
|
6247
6187
|
}
|
|
6248
|
-
static async fromFileLegacy({
|
|
6249
|
-
relativeFilePath,
|
|
6250
|
-
validate = true
|
|
6251
|
-
}) {
|
|
6252
|
-
const legacyPath = (0, import_node_path63.join)(
|
|
6253
|
-
process.cwd(),
|
|
6254
|
-
this.getSettablePaths().legacy.relativeDirPath,
|
|
6255
|
-
relativeFilePath
|
|
6256
|
-
);
|
|
6257
|
-
const recommendedPath = (0, import_node_path63.join)(
|
|
6258
|
-
this.getSettablePaths().recommended.relativeDirPath,
|
|
6259
|
-
relativeFilePath
|
|
6260
|
-
);
|
|
6261
|
-
logger.warn(`\u26A0\uFE0F Using deprecated path "${legacyPath}". Please migrate to "${recommendedPath}"`);
|
|
6262
|
-
const fileContent = await readFileContent(legacyPath);
|
|
6263
|
-
const { frontmatter, body: content } = parseFrontmatter(fileContent);
|
|
6264
|
-
const result = RulesyncRuleFrontmatterSchema.safeParse(frontmatter);
|
|
6265
|
-
if (!result.success) {
|
|
6266
|
-
throw new Error(`Invalid frontmatter in ${legacyPath}: ${formatError(result.error)}`);
|
|
6267
|
-
}
|
|
6268
|
-
const validatedFrontmatter = {
|
|
6269
|
-
root: result.data.root ?? false,
|
|
6270
|
-
targets: result.data.targets ?? ["*"],
|
|
6271
|
-
description: result.data.description ?? "",
|
|
6272
|
-
globs: result.data.globs ?? [],
|
|
6273
|
-
agentsmd: result.data.agentsmd,
|
|
6274
|
-
cursor: result.data.cursor
|
|
6275
|
-
};
|
|
6276
|
-
const filename = (0, import_node_path63.basename)(legacyPath);
|
|
6277
|
-
return new _RulesyncRule({
|
|
6278
|
-
baseDir: process.cwd(),
|
|
6279
|
-
relativeDirPath: this.getSettablePaths().recommended.relativeDirPath,
|
|
6280
|
-
relativeFilePath: filename,
|
|
6281
|
-
frontmatter: validatedFrontmatter,
|
|
6282
|
-
body: content.trim(),
|
|
6283
|
-
validate
|
|
6284
|
-
});
|
|
6285
|
-
}
|
|
6286
6188
|
static async fromFile({
|
|
6287
6189
|
relativeFilePath,
|
|
6288
6190
|
validate = true
|
|
@@ -8710,13 +8612,6 @@ var RulesProcessor = class extends FeatureProcessor {
|
|
|
8710
8612
|
}
|
|
8711
8613
|
return rulesyncRules;
|
|
8712
8614
|
}
|
|
8713
|
-
async loadRulesyncFilesLegacy() {
|
|
8714
|
-
const legacyFiles = await findFilesByGlobs((0, import_node_path84.join)(RULESYNC_RELATIVE_DIR_PATH, "*.md"));
|
|
8715
|
-
logger.debug(`Found ${legacyFiles.length} legacy rulesync files`);
|
|
8716
|
-
return Promise.all(
|
|
8717
|
-
legacyFiles.map((file) => RulesyncRule.fromFileLegacy({ relativeFilePath: (0, import_node_path84.basename)(file) }))
|
|
8718
|
-
);
|
|
8719
|
-
}
|
|
8720
8615
|
/**
|
|
8721
8616
|
* Implementation of abstract method from FeatureProcessor
|
|
8722
8617
|
* Load tool-specific rule configurations and parse them into ToolRule instances
|
|
@@ -8948,10 +8843,7 @@ async function generateRules(config, options) {
|
|
|
8948
8843
|
const oldToolFiles = await processor.loadToolFiles({ forDeletion: true });
|
|
8949
8844
|
await processor.removeAiFiles(oldToolFiles);
|
|
8950
8845
|
}
|
|
8951
|
-
|
|
8952
|
-
if (rulesyncFiles.length === 0) {
|
|
8953
|
-
rulesyncFiles = await processor.loadRulesyncFilesLegacy();
|
|
8954
|
-
}
|
|
8846
|
+
const rulesyncFiles = await processor.loadRulesyncFiles();
|
|
8955
8847
|
const toolFiles = await processor.convertRulesyncFilesToToolFiles(rulesyncFiles);
|
|
8956
8848
|
const writtenCount = await processor.writeAiFiles(toolFiles);
|
|
8957
8849
|
totalRulesOutputs += writtenCount;
|
|
@@ -10709,7 +10601,7 @@ async function mcpCommand({ version }) {
|
|
|
10709
10601
|
}
|
|
10710
10602
|
|
|
10711
10603
|
// src/cli/index.ts
|
|
10712
|
-
var getVersion = () => "
|
|
10604
|
+
var getVersion = () => "4.0.1";
|
|
10713
10605
|
var main = async () => {
|
|
10714
10606
|
const program = new import_commander.Command();
|
|
10715
10607
|
const version = getVersion();
|
|
@@ -10733,18 +10625,14 @@ var main = async () => {
|
|
|
10733
10625
|
(value) => {
|
|
10734
10626
|
return value.split(",").map((f) => f.trim());
|
|
10735
10627
|
}
|
|
10736
|
-
).option("-V, --verbose", "Verbose output").option("-g, --global", "Import for global(user scope) configuration files").
|
|
10737
|
-
"--experimental-global",
|
|
10738
|
-
"Import for global(user scope) configuration files (deprecated: use --global instead)"
|
|
10739
|
-
).action(async (options) => {
|
|
10628
|
+
).option("-V, --verbose", "Verbose output").option("-g, --global", "Import for global(user scope) configuration files").action(async (options) => {
|
|
10740
10629
|
try {
|
|
10741
10630
|
await importCommand({
|
|
10742
10631
|
targets: options.targets,
|
|
10743
10632
|
features: options.features,
|
|
10744
10633
|
verbose: options.verbose,
|
|
10745
10634
|
configPath: options.config,
|
|
10746
|
-
global: options.global
|
|
10747
|
-
experimentalGlobal: options.experimentalGlobal
|
|
10635
|
+
global: options.global
|
|
10748
10636
|
});
|
|
10749
10637
|
} catch (error) {
|
|
10750
10638
|
logger.error(formatError(error));
|
|
@@ -10783,15 +10671,6 @@ var main = async () => {
|
|
|
10783
10671
|
).option(
|
|
10784
10672
|
"--simulate-skills",
|
|
10785
10673
|
"Generate simulated skills. This feature is only available for copilot, cursor and codexcli."
|
|
10786
|
-
).option(
|
|
10787
|
-
"--experimental-global",
|
|
10788
|
-
"Generate for global(user scope) configuration files (deprecated: use --global instead)"
|
|
10789
|
-
).option(
|
|
10790
|
-
"--experimental-simulate-commands",
|
|
10791
|
-
"Generate simulated commands (deprecated: use --simulate-commands instead)"
|
|
10792
|
-
).option(
|
|
10793
|
-
"--experimental-simulate-subagents",
|
|
10794
|
-
"Generate simulated subagents (deprecated: use --simulate-subagents instead)"
|
|
10795
10674
|
).option(
|
|
10796
10675
|
"--modular-mcp",
|
|
10797
10676
|
"Generate modular-mcp configuration for context compression (experimental)"
|
|
@@ -10808,10 +10687,7 @@ var main = async () => {
|
|
|
10808
10687
|
simulateCommands: options.simulateCommands,
|
|
10809
10688
|
simulateSubagents: options.simulateSubagents,
|
|
10810
10689
|
simulateSkills: options.simulateSkills,
|
|
10811
|
-
modularMcp: options.modularMcp
|
|
10812
|
-
experimentalGlobal: options.experimentalGlobal,
|
|
10813
|
-
experimentalSimulateCommands: options.experimentalSimulateCommands,
|
|
10814
|
-
experimentalSimulateSubagents: options.experimentalSimulateSubagents
|
|
10690
|
+
modularMcp: options.modularMcp
|
|
10815
10691
|
});
|
|
10816
10692
|
} catch (error) {
|
|
10817
10693
|
logger.error(formatError(error));
|
package/dist/index.js
CHANGED
|
@@ -89,7 +89,7 @@ import { parse as parseJsonc } from "jsonc-parser";
|
|
|
89
89
|
import { globSync } from "fs";
|
|
90
90
|
import { mkdir, readdir, readFile, rm, stat, writeFile } from "fs/promises";
|
|
91
91
|
import os from "os";
|
|
92
|
-
import {
|
|
92
|
+
import { dirname, join, relative, resolve } from "path";
|
|
93
93
|
import { kebabCase } from "es-toolkit";
|
|
94
94
|
async function ensureDir(dirPath) {
|
|
95
95
|
try {
|
|
@@ -269,11 +269,7 @@ var ConfigParamsSchema = z3.object({
|
|
|
269
269
|
simulateCommands: optional(z3.boolean()),
|
|
270
270
|
simulateSubagents: optional(z3.boolean()),
|
|
271
271
|
simulateSkills: optional(z3.boolean()),
|
|
272
|
-
modularMcp: optional(z3.boolean())
|
|
273
|
-
// Deprecated experimental options (for backward compatibility)
|
|
274
|
-
experimentalGlobal: optional(z3.boolean()),
|
|
275
|
-
experimentalSimulateCommands: optional(z3.boolean()),
|
|
276
|
-
experimentalSimulateSubagents: optional(z3.boolean())
|
|
272
|
+
modularMcp: optional(z3.boolean())
|
|
277
273
|
});
|
|
278
274
|
var PartialConfigParamsSchema = z3.partial(ConfigParamsSchema);
|
|
279
275
|
var ConfigFileSchema = z3.object({
|
|
@@ -307,10 +303,7 @@ var Config = class {
|
|
|
307
303
|
simulateCommands,
|
|
308
304
|
simulateSubagents,
|
|
309
305
|
simulateSkills,
|
|
310
|
-
modularMcp
|
|
311
|
-
experimentalGlobal,
|
|
312
|
-
experimentalSimulateCommands,
|
|
313
|
-
experimentalSimulateSubagents
|
|
306
|
+
modularMcp
|
|
314
307
|
}) {
|
|
315
308
|
this.validateConflictingTargets(targets);
|
|
316
309
|
this.baseDirs = baseDirs;
|
|
@@ -318,9 +311,9 @@ var Config = class {
|
|
|
318
311
|
this.features = features;
|
|
319
312
|
this.verbose = verbose;
|
|
320
313
|
this.delete = isDelete;
|
|
321
|
-
this.global = global ??
|
|
322
|
-
this.simulateCommands = simulateCommands ??
|
|
323
|
-
this.simulateSubagents = simulateSubagents ??
|
|
314
|
+
this.global = global ?? false;
|
|
315
|
+
this.simulateCommands = simulateCommands ?? false;
|
|
316
|
+
this.simulateSubagents = simulateSubagents ?? false;
|
|
324
317
|
this.simulateSkills = simulateSkills ?? false;
|
|
325
318
|
this.modularMcp = modularMcp ?? false;
|
|
326
319
|
}
|
|
@@ -374,19 +367,6 @@ var Config = class {
|
|
|
374
367
|
getModularMcp() {
|
|
375
368
|
return this.modularMcp;
|
|
376
369
|
}
|
|
377
|
-
// Deprecated getters for backward compatibility
|
|
378
|
-
/** @deprecated Use getGlobal() instead */
|
|
379
|
-
getExperimentalGlobal() {
|
|
380
|
-
return this.global;
|
|
381
|
-
}
|
|
382
|
-
/** @deprecated Use getSimulateCommands() instead */
|
|
383
|
-
getExperimentalSimulateCommands() {
|
|
384
|
-
return this.simulateCommands;
|
|
385
|
-
}
|
|
386
|
-
/** @deprecated Use getSimulateSubagents() instead */
|
|
387
|
-
getExperimentalSimulateSubagents() {
|
|
388
|
-
return this.simulateSubagents;
|
|
389
|
-
}
|
|
390
370
|
};
|
|
391
371
|
|
|
392
372
|
// src/config/config-resolver.ts
|
|
@@ -401,10 +381,7 @@ var getDefaults = () => ({
|
|
|
401
381
|
simulateCommands: false,
|
|
402
382
|
simulateSubagents: false,
|
|
403
383
|
simulateSkills: false,
|
|
404
|
-
modularMcp: false
|
|
405
|
-
experimentalGlobal: false,
|
|
406
|
-
experimentalSimulateCommands: false,
|
|
407
|
-
experimentalSimulateSubagents: false
|
|
384
|
+
modularMcp: false
|
|
408
385
|
});
|
|
409
386
|
var ConfigResolver = class {
|
|
410
387
|
static async resolve({
|
|
@@ -418,10 +395,7 @@ var ConfigResolver = class {
|
|
|
418
395
|
simulateCommands,
|
|
419
396
|
simulateSubagents,
|
|
420
397
|
simulateSkills,
|
|
421
|
-
modularMcp
|
|
422
|
-
experimentalGlobal,
|
|
423
|
-
experimentalSimulateCommands,
|
|
424
|
-
experimentalSimulateSubagents
|
|
398
|
+
modularMcp
|
|
425
399
|
}) {
|
|
426
400
|
const validatedConfigPath = resolvePath(configPath, process.cwd());
|
|
427
401
|
let configByFile = {};
|
|
@@ -437,21 +411,9 @@ var ConfigResolver = class {
|
|
|
437
411
|
throw error;
|
|
438
412
|
}
|
|
439
413
|
}
|
|
440
|
-
const
|
|
441
|
-
const
|
|
442
|
-
const
|
|
443
|
-
if (deprecatedGlobal !== void 0) {
|
|
444
|
-
warnDeprecatedOptions({ experimentalGlobal: deprecatedGlobal });
|
|
445
|
-
}
|
|
446
|
-
if (deprecatedCommands !== void 0) {
|
|
447
|
-
warnDeprecatedOptions({ experimentalSimulateCommands: deprecatedCommands });
|
|
448
|
-
}
|
|
449
|
-
if (deprecatedSubagents !== void 0) {
|
|
450
|
-
warnDeprecatedOptions({ experimentalSimulateSubagents: deprecatedSubagents });
|
|
451
|
-
}
|
|
452
|
-
const resolvedGlobal = global ?? configByFile.global ?? experimentalGlobal ?? configByFile.experimentalGlobal ?? getDefaults().global;
|
|
453
|
-
const resolvedSimulateCommands = simulateCommands ?? configByFile.simulateCommands ?? experimentalSimulateCommands ?? configByFile.experimentalSimulateCommands ?? getDefaults().simulateCommands;
|
|
454
|
-
const resolvedSimulateSubagents = simulateSubagents ?? configByFile.simulateSubagents ?? experimentalSimulateSubagents ?? configByFile.experimentalSimulateSubagents ?? getDefaults().simulateSubagents;
|
|
414
|
+
const resolvedGlobal = global ?? configByFile.global ?? getDefaults().global;
|
|
415
|
+
const resolvedSimulateCommands = simulateCommands ?? configByFile.simulateCommands ?? getDefaults().simulateCommands;
|
|
416
|
+
const resolvedSimulateSubagents = simulateSubagents ?? configByFile.simulateSubagents ?? getDefaults().simulateSubagents;
|
|
455
417
|
const resolvedSimulateSkills = simulateSkills ?? configByFile.simulateSkills ?? getDefaults().simulateSkills;
|
|
456
418
|
const configParams = {
|
|
457
419
|
targets: targets ?? configByFile.targets ?? getDefaults().targets,
|
|
@@ -471,25 +433,6 @@ var ConfigResolver = class {
|
|
|
471
433
|
return new Config(configParams);
|
|
472
434
|
}
|
|
473
435
|
};
|
|
474
|
-
function warnDeprecatedOptions({
|
|
475
|
-
experimentalGlobal,
|
|
476
|
-
experimentalSimulateCommands,
|
|
477
|
-
experimentalSimulateSubagents
|
|
478
|
-
}) {
|
|
479
|
-
if (experimentalGlobal !== void 0) {
|
|
480
|
-
logger.warn("'experimentalGlobal' option is deprecated. Please use 'global' instead.");
|
|
481
|
-
}
|
|
482
|
-
if (experimentalSimulateCommands !== void 0) {
|
|
483
|
-
logger.warn(
|
|
484
|
-
"'experimentalSimulateCommands' option is deprecated. Please use 'simulateCommands' instead."
|
|
485
|
-
);
|
|
486
|
-
}
|
|
487
|
-
if (experimentalSimulateSubagents !== void 0) {
|
|
488
|
-
logger.warn(
|
|
489
|
-
"'experimentalSimulateSubagents' option is deprecated. Please use 'simulateSubagents' instead."
|
|
490
|
-
);
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
436
|
function getBaseDirsInLightOfGlobal({
|
|
494
437
|
baseDirs,
|
|
495
438
|
global
|
|
@@ -519,7 +462,7 @@ var RULESYNC_OVERVIEW_FILE_NAME = "overview.md";
|
|
|
519
462
|
var RULESYNC_SKILLS_RELATIVE_DIR_PATH = join2(RULESYNC_RELATIVE_DIR_PATH, "skills");
|
|
520
463
|
|
|
521
464
|
// src/features/commands/commands-processor.ts
|
|
522
|
-
import { basename as
|
|
465
|
+
import { basename as basename12, join as join14 } from "path";
|
|
523
466
|
import { z as z12 } from "zod/mini";
|
|
524
467
|
|
|
525
468
|
// src/types/feature-processor.ts
|
|
@@ -553,7 +496,7 @@ var FeatureProcessor = class {
|
|
|
553
496
|
};
|
|
554
497
|
|
|
555
498
|
// src/features/commands/agentsmd-command.ts
|
|
556
|
-
import { basename as
|
|
499
|
+
import { basename as basename2, join as join4 } from "path";
|
|
557
500
|
|
|
558
501
|
// src/utils/frontmatter.ts
|
|
559
502
|
import matter from "gray-matter";
|
|
@@ -605,7 +548,7 @@ function parseFrontmatter(content) {
|
|
|
605
548
|
}
|
|
606
549
|
|
|
607
550
|
// src/features/commands/simulated-command.ts
|
|
608
|
-
import { basename
|
|
551
|
+
import { basename, join as join3 } from "path";
|
|
609
552
|
import { z as z4 } from "zod/mini";
|
|
610
553
|
|
|
611
554
|
// src/types/ai-file.ts
|
|
@@ -842,7 +785,7 @@ var SimulatedCommand = class _SimulatedCommand extends ToolCommand {
|
|
|
842
785
|
return {
|
|
843
786
|
baseDir,
|
|
844
787
|
relativeDirPath: _SimulatedCommand.getSettablePaths().relativeDirPath,
|
|
845
|
-
relativeFilePath:
|
|
788
|
+
relativeFilePath: basename(relativeFilePath),
|
|
846
789
|
frontmatter: result.data,
|
|
847
790
|
body: content.trim(),
|
|
848
791
|
validate
|
|
@@ -885,7 +828,7 @@ var AgentsmdCommand = class _AgentsmdCommand extends SimulatedCommand {
|
|
|
885
828
|
return new _AgentsmdCommand({
|
|
886
829
|
baseDir,
|
|
887
830
|
relativeDirPath: _AgentsmdCommand.getSettablePaths().relativeDirPath,
|
|
888
|
-
relativeFilePath:
|
|
831
|
+
relativeFilePath: basename2(relativeFilePath),
|
|
889
832
|
frontmatter: result.data,
|
|
890
833
|
body: content.trim(),
|
|
891
834
|
validate
|
|
@@ -900,11 +843,11 @@ var AgentsmdCommand = class _AgentsmdCommand extends SimulatedCommand {
|
|
|
900
843
|
};
|
|
901
844
|
|
|
902
845
|
// src/features/commands/antigravity-command.ts
|
|
903
|
-
import { basename as
|
|
846
|
+
import { basename as basename4, join as join6 } from "path";
|
|
904
847
|
import { z as z6 } from "zod/mini";
|
|
905
848
|
|
|
906
849
|
// src/features/commands/rulesync-command.ts
|
|
907
|
-
import { basename as
|
|
850
|
+
import { basename as basename3, join as join5 } from "path";
|
|
908
851
|
import { z as z5 } from "zod/mini";
|
|
909
852
|
|
|
910
853
|
// src/types/rulesync-file.ts
|
|
@@ -982,7 +925,7 @@ var RulesyncCommand = class _RulesyncCommand extends RulesyncFile {
|
|
|
982
925
|
if (!result.success) {
|
|
983
926
|
throw new Error(`Invalid frontmatter in ${relativeFilePath}: ${formatError(result.error)}`);
|
|
984
927
|
}
|
|
985
|
-
const filename =
|
|
928
|
+
const filename = basename3(relativeFilePath);
|
|
986
929
|
return new _RulesyncCommand({
|
|
987
930
|
baseDir: process.cwd(),
|
|
988
931
|
relativeDirPath: _RulesyncCommand.getSettablePaths().relativeDirPath,
|
|
@@ -1107,7 +1050,7 @@ var AntigravityCommand = class _AntigravityCommand extends ToolCommand {
|
|
|
1107
1050
|
return new _AntigravityCommand({
|
|
1108
1051
|
baseDir,
|
|
1109
1052
|
relativeDirPath: _AntigravityCommand.getSettablePaths().relativeDirPath,
|
|
1110
|
-
relativeFilePath:
|
|
1053
|
+
relativeFilePath: basename4(relativeFilePath),
|
|
1111
1054
|
frontmatter: result.data,
|
|
1112
1055
|
body: content.trim(),
|
|
1113
1056
|
fileContent,
|
|
@@ -1117,7 +1060,7 @@ var AntigravityCommand = class _AntigravityCommand extends ToolCommand {
|
|
|
1117
1060
|
};
|
|
1118
1061
|
|
|
1119
1062
|
// src/features/commands/claudecode-command.ts
|
|
1120
|
-
import { basename as
|
|
1063
|
+
import { basename as basename5, join as join7 } from "path";
|
|
1121
1064
|
import { z as z7 } from "zod/mini";
|
|
1122
1065
|
var ClaudecodeCommandFrontmatterSchema = z7.looseObject({
|
|
1123
1066
|
description: z7.string(),
|
|
@@ -1238,7 +1181,7 @@ var ClaudecodeCommand = class _ClaudecodeCommand extends ToolCommand {
|
|
|
1238
1181
|
return new _ClaudecodeCommand({
|
|
1239
1182
|
baseDir,
|
|
1240
1183
|
relativeDirPath: paths.relativeDirPath,
|
|
1241
|
-
relativeFilePath:
|
|
1184
|
+
relativeFilePath: basename5(relativeFilePath),
|
|
1242
1185
|
frontmatter: result.data,
|
|
1243
1186
|
body: content.trim(),
|
|
1244
1187
|
validate
|
|
@@ -1247,7 +1190,7 @@ var ClaudecodeCommand = class _ClaudecodeCommand extends ToolCommand {
|
|
|
1247
1190
|
};
|
|
1248
1191
|
|
|
1249
1192
|
// src/features/commands/codexcli-command.ts
|
|
1250
|
-
import { basename as
|
|
1193
|
+
import { basename as basename6, join as join8 } from "path";
|
|
1251
1194
|
var CodexcliCommand = class _CodexcliCommand extends ToolCommand {
|
|
1252
1195
|
static getSettablePaths({ global } = {}) {
|
|
1253
1196
|
if (!global) {
|
|
@@ -1313,7 +1256,7 @@ var CodexcliCommand = class _CodexcliCommand extends ToolCommand {
|
|
|
1313
1256
|
return new _CodexcliCommand({
|
|
1314
1257
|
baseDir,
|
|
1315
1258
|
relativeDirPath: paths.relativeDirPath,
|
|
1316
|
-
relativeFilePath:
|
|
1259
|
+
relativeFilePath: basename6(relativeFilePath),
|
|
1317
1260
|
fileContent: content.trim(),
|
|
1318
1261
|
validate
|
|
1319
1262
|
});
|
|
@@ -1321,7 +1264,7 @@ var CodexcliCommand = class _CodexcliCommand extends ToolCommand {
|
|
|
1321
1264
|
};
|
|
1322
1265
|
|
|
1323
1266
|
// src/features/commands/copilot-command.ts
|
|
1324
|
-
import { basename as
|
|
1267
|
+
import { basename as basename7, join as join9 } from "path";
|
|
1325
1268
|
import { z as z8 } from "zod/mini";
|
|
1326
1269
|
var CopilotCommandFrontmatterSchema = z8.looseObject({
|
|
1327
1270
|
mode: z8.literal("agent"),
|
|
@@ -1434,7 +1377,7 @@ var CopilotCommand = class _CopilotCommand extends ToolCommand {
|
|
|
1434
1377
|
return new _CopilotCommand({
|
|
1435
1378
|
baseDir,
|
|
1436
1379
|
relativeDirPath: paths.relativeDirPath,
|
|
1437
|
-
relativeFilePath:
|
|
1380
|
+
relativeFilePath: basename7(relativeFilePath),
|
|
1438
1381
|
frontmatter: result.data,
|
|
1439
1382
|
body: content.trim(),
|
|
1440
1383
|
validate
|
|
@@ -1449,7 +1392,7 @@ var CopilotCommand = class _CopilotCommand extends ToolCommand {
|
|
|
1449
1392
|
};
|
|
1450
1393
|
|
|
1451
1394
|
// src/features/commands/cursor-command.ts
|
|
1452
|
-
import { basename as
|
|
1395
|
+
import { basename as basename8, join as join10 } from "path";
|
|
1453
1396
|
var CursorCommand = class _CursorCommand extends ToolCommand {
|
|
1454
1397
|
static getSettablePaths(_options = {}) {
|
|
1455
1398
|
return {
|
|
@@ -1512,7 +1455,7 @@ var CursorCommand = class _CursorCommand extends ToolCommand {
|
|
|
1512
1455
|
return new _CursorCommand({
|
|
1513
1456
|
baseDir,
|
|
1514
1457
|
relativeDirPath: paths.relativeDirPath,
|
|
1515
|
-
relativeFilePath:
|
|
1458
|
+
relativeFilePath: basename8(relativeFilePath),
|
|
1516
1459
|
fileContent: content.trim(),
|
|
1517
1460
|
validate
|
|
1518
1461
|
});
|
|
@@ -1520,7 +1463,7 @@ var CursorCommand = class _CursorCommand extends ToolCommand {
|
|
|
1520
1463
|
};
|
|
1521
1464
|
|
|
1522
1465
|
// src/features/commands/geminicli-command.ts
|
|
1523
|
-
import { basename as
|
|
1466
|
+
import { basename as basename9, join as join11 } from "path";
|
|
1524
1467
|
import { parse as parseToml } from "smol-toml";
|
|
1525
1468
|
import { z as z9 } from "zod/mini";
|
|
1526
1469
|
var GeminiCliCommandFrontmatterSchema = z9.looseObject({
|
|
@@ -1625,7 +1568,7 @@ ${geminiFrontmatter.prompt}
|
|
|
1625
1568
|
return new _GeminiCliCommand({
|
|
1626
1569
|
baseDir,
|
|
1627
1570
|
relativeDirPath: paths.relativeDirPath,
|
|
1628
|
-
relativeFilePath:
|
|
1571
|
+
relativeFilePath: basename9(relativeFilePath),
|
|
1629
1572
|
fileContent,
|
|
1630
1573
|
validate
|
|
1631
1574
|
});
|
|
@@ -1647,7 +1590,7 @@ ${geminiFrontmatter.prompt}
|
|
|
1647
1590
|
};
|
|
1648
1591
|
|
|
1649
1592
|
// src/features/commands/opencode-command.ts
|
|
1650
|
-
import { basename as
|
|
1593
|
+
import { basename as basename10, join as join12 } from "path";
|
|
1651
1594
|
import { optional as optional2, z as z10 } from "zod/mini";
|
|
1652
1595
|
var OpenCodeCommandFrontmatterSchema = z10.looseObject({
|
|
1653
1596
|
description: z10.string(),
|
|
@@ -1758,7 +1701,7 @@ var OpenCodeCommand = class _OpenCodeCommand extends ToolCommand {
|
|
|
1758
1701
|
return new _OpenCodeCommand({
|
|
1759
1702
|
baseDir,
|
|
1760
1703
|
relativeDirPath: paths.relativeDirPath,
|
|
1761
|
-
relativeFilePath:
|
|
1704
|
+
relativeFilePath: basename10(relativeFilePath),
|
|
1762
1705
|
frontmatter: result.data,
|
|
1763
1706
|
body: content.trim(),
|
|
1764
1707
|
validate
|
|
@@ -1773,7 +1716,7 @@ var OpenCodeCommand = class _OpenCodeCommand extends ToolCommand {
|
|
|
1773
1716
|
};
|
|
1774
1717
|
|
|
1775
1718
|
// src/features/commands/roo-command.ts
|
|
1776
|
-
import { basename as
|
|
1719
|
+
import { basename as basename11, join as join13 } from "path";
|
|
1777
1720
|
import { optional as optional3, z as z11 } from "zod/mini";
|
|
1778
1721
|
var RooCommandFrontmatterSchema = z11.looseObject({
|
|
1779
1722
|
description: z11.string(),
|
|
@@ -1889,7 +1832,7 @@ var RooCommand = class _RooCommand extends ToolCommand {
|
|
|
1889
1832
|
return new _RooCommand({
|
|
1890
1833
|
baseDir,
|
|
1891
1834
|
relativeDirPath: _RooCommand.getSettablePaths().relativeDirPath,
|
|
1892
|
-
relativeFilePath:
|
|
1835
|
+
relativeFilePath: basename11(relativeFilePath),
|
|
1893
1836
|
frontmatter: result.data,
|
|
1894
1837
|
body: content.trim(),
|
|
1895
1838
|
fileContent,
|
|
@@ -2060,7 +2003,7 @@ var CommandsProcessor = class extends FeatureProcessor {
|
|
|
2060
2003
|
);
|
|
2061
2004
|
const rulesyncCommands = await Promise.all(
|
|
2062
2005
|
rulesyncCommandPaths.map(
|
|
2063
|
-
(path3) => RulesyncCommand.fromFile({ relativeFilePath:
|
|
2006
|
+
(path3) => RulesyncCommand.fromFile({ relativeFilePath: basename12(path3) })
|
|
2064
2007
|
)
|
|
2065
2008
|
);
|
|
2066
2009
|
logger.info(`Successfully loaded ${rulesyncCommands.length} rulesync commands`);
|
|
@@ -2082,7 +2025,7 @@ var CommandsProcessor = class extends FeatureProcessor {
|
|
|
2082
2025
|
commandFilePaths.map(
|
|
2083
2026
|
(path3) => factory.class.fromFile({
|
|
2084
2027
|
baseDir: this.baseDir,
|
|
2085
|
-
relativeFilePath:
|
|
2028
|
+
relativeFilePath: basename12(path3),
|
|
2086
2029
|
global: this.global
|
|
2087
2030
|
})
|
|
2088
2031
|
)
|
|
@@ -4298,7 +4241,7 @@ var McpProcessor = class extends FeatureProcessor {
|
|
|
4298
4241
|
};
|
|
4299
4242
|
|
|
4300
4243
|
// src/features/rules/rules-processor.ts
|
|
4301
|
-
import { basename as
|
|
4244
|
+
import { basename as basename20, join as join82 } from "path";
|
|
4302
4245
|
import { encode } from "@toon-format/toon";
|
|
4303
4246
|
import { z as z34 } from "zod/mini";
|
|
4304
4247
|
|
|
@@ -4316,7 +4259,7 @@ import { z as z19 } from "zod/mini";
|
|
|
4316
4259
|
import { join as join40 } from "path";
|
|
4317
4260
|
|
|
4318
4261
|
// src/types/ai-dir.ts
|
|
4319
|
-
import path2, { basename as
|
|
4262
|
+
import path2, { basename as basename13, join as join39, relative as relative3, resolve as resolve4 } from "path";
|
|
4320
4263
|
var AiDir = class {
|
|
4321
4264
|
/**
|
|
4322
4265
|
* @example "."
|
|
@@ -4413,7 +4356,7 @@ var AiDir = class {
|
|
|
4413
4356
|
const dirPath = join39(baseDir, relativeDirPath, dirName);
|
|
4414
4357
|
const glob = join39(dirPath, "**", "*");
|
|
4415
4358
|
const filePaths = await findFilesByGlobs(glob, { type: "file" });
|
|
4416
|
-
const filteredPaths = filePaths.filter((filePath) =>
|
|
4359
|
+
const filteredPaths = filePaths.filter((filePath) => basename13(filePath) !== excludeFileName);
|
|
4417
4360
|
const files = await Promise.all(
|
|
4418
4361
|
filteredPaths.map(async (filePath) => {
|
|
4419
4362
|
const fileBuffer = await readFileBuffer(filePath);
|
|
@@ -5040,7 +4983,7 @@ var GeminiCliSkill = class _GeminiCliSkill extends SimulatedSkill {
|
|
|
5040
4983
|
};
|
|
5041
4984
|
|
|
5042
4985
|
// src/features/skills/skills-processor.ts
|
|
5043
|
-
import { basename as
|
|
4986
|
+
import { basename as basename14, join as join50 } from "path";
|
|
5044
4987
|
import { z as z23 } from "zod/mini";
|
|
5045
4988
|
|
|
5046
4989
|
// src/types/dir-feature-processor.ts
|
|
@@ -5367,7 +5310,7 @@ var SkillsProcessor = class extends DirFeatureProcessor {
|
|
|
5367
5310
|
const paths = RulesyncSkill.getSettablePaths();
|
|
5368
5311
|
const rulesyncSkillsDirPath = join50(this.baseDir, paths.relativeDirPath);
|
|
5369
5312
|
const dirPaths = await findFilesByGlobs(join50(rulesyncSkillsDirPath, "*"), { type: "dir" });
|
|
5370
|
-
const dirNames = dirPaths.map((path3) =>
|
|
5313
|
+
const dirNames = dirPaths.map((path3) => basename14(path3));
|
|
5371
5314
|
const rulesyncSkills = await Promise.all(
|
|
5372
5315
|
dirNames.map(
|
|
5373
5316
|
(dirName) => RulesyncSkill.fromDir({ baseDir: this.baseDir, dirName, global: this.global })
|
|
@@ -5385,7 +5328,7 @@ var SkillsProcessor = class extends DirFeatureProcessor {
|
|
|
5385
5328
|
const paths = factory.class.getSettablePaths({ global: this.global });
|
|
5386
5329
|
const skillsDirPath = join50(this.baseDir, paths.relativeDirPath);
|
|
5387
5330
|
const dirPaths = await findFilesByGlobs(join50(skillsDirPath, "*"), { type: "dir" });
|
|
5388
|
-
const dirNames = dirPaths.map((path3) =>
|
|
5331
|
+
const dirNames = dirPaths.map((path3) => basename14(path3));
|
|
5389
5332
|
const toolSkills = await Promise.all(
|
|
5390
5333
|
dirNames.map(
|
|
5391
5334
|
(dirName) => factory.class.fromDir({
|
|
@@ -5438,7 +5381,7 @@ var SkillsProcessor = class extends DirFeatureProcessor {
|
|
|
5438
5381
|
import { join as join52 } from "path";
|
|
5439
5382
|
|
|
5440
5383
|
// src/features/subagents/simulated-subagent.ts
|
|
5441
|
-
import { basename as
|
|
5384
|
+
import { basename as basename15, join as join51 } from "path";
|
|
5442
5385
|
import { z as z24 } from "zod/mini";
|
|
5443
5386
|
|
|
5444
5387
|
// src/features/subagents/tool-subagent.ts
|
|
@@ -5557,7 +5500,7 @@ var SimulatedSubagent = class extends ToolSubagent {
|
|
|
5557
5500
|
return {
|
|
5558
5501
|
baseDir,
|
|
5559
5502
|
relativeDirPath: this.getSettablePaths().relativeDirPath,
|
|
5560
|
-
relativeFilePath:
|
|
5503
|
+
relativeFilePath: basename15(relativeFilePath),
|
|
5561
5504
|
frontmatter: result.data,
|
|
5562
5505
|
body: content.trim(),
|
|
5563
5506
|
validate
|
|
@@ -5709,7 +5652,7 @@ var RooSubagent = class _RooSubagent extends SimulatedSubagent {
|
|
|
5709
5652
|
};
|
|
5710
5653
|
|
|
5711
5654
|
// src/features/subagents/subagents-processor.ts
|
|
5712
|
-
import { basename as
|
|
5655
|
+
import { basename as basename17, join as join60 } from "path";
|
|
5713
5656
|
import { z as z27 } from "zod/mini";
|
|
5714
5657
|
|
|
5715
5658
|
// src/features/subagents/claudecode-subagent.ts
|
|
@@ -5717,7 +5660,7 @@ import { join as join59 } from "path";
|
|
|
5717
5660
|
import { z as z26 } from "zod/mini";
|
|
5718
5661
|
|
|
5719
5662
|
// src/features/subagents/rulesync-subagent.ts
|
|
5720
|
-
import { basename as
|
|
5663
|
+
import { basename as basename16, join as join58 } from "path";
|
|
5721
5664
|
import { z as z25 } from "zod/mini";
|
|
5722
5665
|
var RulesyncSubagentFrontmatterSchema = z25.looseObject({
|
|
5723
5666
|
targets: RulesyncTargetsSchema,
|
|
@@ -5781,7 +5724,7 @@ var RulesyncSubagent = class _RulesyncSubagent extends RulesyncFile {
|
|
|
5781
5724
|
if (!result.success) {
|
|
5782
5725
|
throw new Error(`Invalid frontmatter in ${relativeFilePath}: ${formatError(result.error)}`);
|
|
5783
5726
|
}
|
|
5784
|
-
const filename =
|
|
5727
|
+
const filename = basename16(relativeFilePath);
|
|
5785
5728
|
return new _RulesyncSubagent({
|
|
5786
5729
|
baseDir: process.cwd(),
|
|
5787
5730
|
relativeDirPath: this.getSettablePaths().relativeDirPath,
|
|
@@ -6096,7 +6039,7 @@ var SubagentsProcessor = class extends FeatureProcessor {
|
|
|
6096
6039
|
subagentFilePaths.map(
|
|
6097
6040
|
(path3) => factory.class.fromFile({
|
|
6098
6041
|
baseDir: this.baseDir,
|
|
6099
|
-
relativeFilePath:
|
|
6042
|
+
relativeFilePath: basename17(path3),
|
|
6100
6043
|
global: this.global
|
|
6101
6044
|
})
|
|
6102
6045
|
)
|
|
@@ -6135,7 +6078,7 @@ import { join as join63 } from "path";
|
|
|
6135
6078
|
import { join as join62 } from "path";
|
|
6136
6079
|
|
|
6137
6080
|
// src/features/rules/rulesync-rule.ts
|
|
6138
|
-
import { basename as
|
|
6081
|
+
import { basename as basename18, join as join61 } from "path";
|
|
6139
6082
|
import { z as z28 } from "zod/mini";
|
|
6140
6083
|
var RulesyncRuleFrontmatterSchema = z28.object({
|
|
6141
6084
|
root: z28.optional(z28.optional(z28.boolean())),
|
|
@@ -6197,9 +6140,6 @@ var RulesyncRule = class _RulesyncRule extends RulesyncFile {
|
|
|
6197
6140
|
return {
|
|
6198
6141
|
recommended: {
|
|
6199
6142
|
relativeDirPath: RULESYNC_RULES_RELATIVE_DIR_PATH
|
|
6200
|
-
},
|
|
6201
|
-
legacy: {
|
|
6202
|
-
relativeDirPath: RULESYNC_RELATIVE_DIR_PATH
|
|
6203
6143
|
}
|
|
6204
6144
|
};
|
|
6205
6145
|
}
|
|
@@ -6222,44 +6162,6 @@ var RulesyncRule = class _RulesyncRule extends RulesyncFile {
|
|
|
6222
6162
|
};
|
|
6223
6163
|
}
|
|
6224
6164
|
}
|
|
6225
|
-
static async fromFileLegacy({
|
|
6226
|
-
relativeFilePath,
|
|
6227
|
-
validate = true
|
|
6228
|
-
}) {
|
|
6229
|
-
const legacyPath = join61(
|
|
6230
|
-
process.cwd(),
|
|
6231
|
-
this.getSettablePaths().legacy.relativeDirPath,
|
|
6232
|
-
relativeFilePath
|
|
6233
|
-
);
|
|
6234
|
-
const recommendedPath = join61(
|
|
6235
|
-
this.getSettablePaths().recommended.relativeDirPath,
|
|
6236
|
-
relativeFilePath
|
|
6237
|
-
);
|
|
6238
|
-
logger.warn(`\u26A0\uFE0F Using deprecated path "${legacyPath}". Please migrate to "${recommendedPath}"`);
|
|
6239
|
-
const fileContent = await readFileContent(legacyPath);
|
|
6240
|
-
const { frontmatter, body: content } = parseFrontmatter(fileContent);
|
|
6241
|
-
const result = RulesyncRuleFrontmatterSchema.safeParse(frontmatter);
|
|
6242
|
-
if (!result.success) {
|
|
6243
|
-
throw new Error(`Invalid frontmatter in ${legacyPath}: ${formatError(result.error)}`);
|
|
6244
|
-
}
|
|
6245
|
-
const validatedFrontmatter = {
|
|
6246
|
-
root: result.data.root ?? false,
|
|
6247
|
-
targets: result.data.targets ?? ["*"],
|
|
6248
|
-
description: result.data.description ?? "",
|
|
6249
|
-
globs: result.data.globs ?? [],
|
|
6250
|
-
agentsmd: result.data.agentsmd,
|
|
6251
|
-
cursor: result.data.cursor
|
|
6252
|
-
};
|
|
6253
|
-
const filename = basename19(legacyPath);
|
|
6254
|
-
return new _RulesyncRule({
|
|
6255
|
-
baseDir: process.cwd(),
|
|
6256
|
-
relativeDirPath: this.getSettablePaths().recommended.relativeDirPath,
|
|
6257
|
-
relativeFilePath: filename,
|
|
6258
|
-
frontmatter: validatedFrontmatter,
|
|
6259
|
-
body: content.trim(),
|
|
6260
|
-
validate
|
|
6261
|
-
});
|
|
6262
|
-
}
|
|
6263
6165
|
static async fromFile({
|
|
6264
6166
|
relativeFilePath,
|
|
6265
6167
|
validate = true
|
|
@@ -6283,7 +6185,7 @@ var RulesyncRule = class _RulesyncRule extends RulesyncFile {
|
|
|
6283
6185
|
agentsmd: result.data.agentsmd,
|
|
6284
6186
|
cursor: result.data.cursor
|
|
6285
6187
|
};
|
|
6286
|
-
const filename =
|
|
6188
|
+
const filename = basename18(filePath);
|
|
6287
6189
|
return new _RulesyncRule({
|
|
6288
6190
|
baseDir: process.cwd(),
|
|
6289
6191
|
relativeDirPath: this.getSettablePaths().recommended.relativeDirPath,
|
|
@@ -7583,7 +7485,7 @@ var CopilotRule = class _CopilotRule extends ToolRule {
|
|
|
7583
7485
|
};
|
|
7584
7486
|
|
|
7585
7487
|
// src/features/rules/cursor-rule.ts
|
|
7586
|
-
import { basename as
|
|
7488
|
+
import { basename as basename19, join as join73 } from "path";
|
|
7587
7489
|
import { z as z33 } from "zod/mini";
|
|
7588
7490
|
var CursorRuleFrontmatterSchema = z33.object({
|
|
7589
7491
|
description: z33.optional(z33.string()),
|
|
@@ -7734,7 +7636,7 @@ var CursorRule = class _CursorRule extends ToolRule {
|
|
|
7734
7636
|
return new _CursorRule({
|
|
7735
7637
|
baseDir,
|
|
7736
7638
|
relativeDirPath: this.getSettablePaths().nonRoot.relativeDirPath,
|
|
7737
|
-
relativeFilePath:
|
|
7639
|
+
relativeFilePath: basename19(relativeFilePath),
|
|
7738
7640
|
frontmatter: result.data,
|
|
7739
7641
|
body: content.trim(),
|
|
7740
7642
|
validate
|
|
@@ -8670,7 +8572,7 @@ var RulesProcessor = class extends FeatureProcessor {
|
|
|
8670
8572
|
const files = await findFilesByGlobs(join82(RULESYNC_RULES_RELATIVE_DIR_PATH, "*.md"));
|
|
8671
8573
|
logger.debug(`Found ${files.length} rulesync files`);
|
|
8672
8574
|
const rulesyncRules = await Promise.all(
|
|
8673
|
-
files.map((file) => RulesyncRule.fromFile({ relativeFilePath:
|
|
8575
|
+
files.map((file) => RulesyncRule.fromFile({ relativeFilePath: basename20(file) }))
|
|
8674
8576
|
);
|
|
8675
8577
|
const rootRules = rulesyncRules.filter((rule) => rule.getFrontmatter().root);
|
|
8676
8578
|
if (rootRules.length > 1) {
|
|
@@ -8687,13 +8589,6 @@ var RulesProcessor = class extends FeatureProcessor {
|
|
|
8687
8589
|
}
|
|
8688
8590
|
return rulesyncRules;
|
|
8689
8591
|
}
|
|
8690
|
-
async loadRulesyncFilesLegacy() {
|
|
8691
|
-
const legacyFiles = await findFilesByGlobs(join82(RULESYNC_RELATIVE_DIR_PATH, "*.md"));
|
|
8692
|
-
logger.debug(`Found ${legacyFiles.length} legacy rulesync files`);
|
|
8693
|
-
return Promise.all(
|
|
8694
|
-
legacyFiles.map((file) => RulesyncRule.fromFileLegacy({ relativeFilePath: basename21(file) }))
|
|
8695
|
-
);
|
|
8696
|
-
}
|
|
8697
8592
|
/**
|
|
8698
8593
|
* Implementation of abstract method from FeatureProcessor
|
|
8699
8594
|
* Load tool-specific rule configurations and parse them into ToolRule instances
|
|
@@ -8719,7 +8614,7 @@ var RulesProcessor = class extends FeatureProcessor {
|
|
|
8719
8614
|
rootFilePaths.map(
|
|
8720
8615
|
(filePath) => factory.class.fromFile({
|
|
8721
8616
|
baseDir: this.baseDir,
|
|
8722
|
-
relativeFilePath:
|
|
8617
|
+
relativeFilePath: basename20(filePath),
|
|
8723
8618
|
global: this.global
|
|
8724
8619
|
})
|
|
8725
8620
|
)
|
|
@@ -8737,7 +8632,7 @@ var RulesProcessor = class extends FeatureProcessor {
|
|
|
8737
8632
|
nonRootFilePaths.map(
|
|
8738
8633
|
(filePath) => factory.class.fromFile({
|
|
8739
8634
|
baseDir: this.baseDir,
|
|
8740
|
-
relativeFilePath:
|
|
8635
|
+
relativeFilePath: basename20(filePath),
|
|
8741
8636
|
global: this.global
|
|
8742
8637
|
})
|
|
8743
8638
|
)
|
|
@@ -8925,10 +8820,7 @@ async function generateRules(config, options) {
|
|
|
8925
8820
|
const oldToolFiles = await processor.loadToolFiles({ forDeletion: true });
|
|
8926
8821
|
await processor.removeAiFiles(oldToolFiles);
|
|
8927
8822
|
}
|
|
8928
|
-
|
|
8929
|
-
if (rulesyncFiles.length === 0) {
|
|
8930
|
-
rulesyncFiles = await processor.loadRulesyncFilesLegacy();
|
|
8931
|
-
}
|
|
8823
|
+
const rulesyncFiles = await processor.loadRulesyncFiles();
|
|
8932
8824
|
const toolFiles = await processor.convertRulesyncFilesToToolFiles(rulesyncFiles);
|
|
8933
8825
|
const writtenCount = await processor.writeAiFiles(toolFiles);
|
|
8934
8826
|
totalRulesOutputs += writtenCount;
|
|
@@ -9654,7 +9546,7 @@ Attention, again, you are just the planner, so though you can read any files and
|
|
|
9654
9546
|
import { FastMCP } from "fastmcp";
|
|
9655
9547
|
|
|
9656
9548
|
// src/mcp/commands.ts
|
|
9657
|
-
import { basename as
|
|
9549
|
+
import { basename as basename21, join as join85 } from "path";
|
|
9658
9550
|
import { z as z35 } from "zod/mini";
|
|
9659
9551
|
var maxCommandSizeBytes = 1024 * 1024;
|
|
9660
9552
|
var maxCommandsCount = 1e3;
|
|
@@ -9691,7 +9583,7 @@ async function getCommand({ relativePathFromCwd }) {
|
|
|
9691
9583
|
relativePath: relativePathFromCwd,
|
|
9692
9584
|
intendedRootDir: process.cwd()
|
|
9693
9585
|
});
|
|
9694
|
-
const filename =
|
|
9586
|
+
const filename = basename21(relativePathFromCwd);
|
|
9695
9587
|
try {
|
|
9696
9588
|
const command = await RulesyncCommand.fromFile({
|
|
9697
9589
|
relativeFilePath: filename
|
|
@@ -9716,7 +9608,7 @@ async function putCommand({
|
|
|
9716
9608
|
relativePath: relativePathFromCwd,
|
|
9717
9609
|
intendedRootDir: process.cwd()
|
|
9718
9610
|
});
|
|
9719
|
-
const filename =
|
|
9611
|
+
const filename = basename21(relativePathFromCwd);
|
|
9720
9612
|
const estimatedSize = JSON.stringify(frontmatter).length + body.length;
|
|
9721
9613
|
if (estimatedSize > maxCommandSizeBytes) {
|
|
9722
9614
|
throw new Error(
|
|
@@ -9760,7 +9652,7 @@ async function deleteCommand({ relativePathFromCwd }) {
|
|
|
9760
9652
|
relativePath: relativePathFromCwd,
|
|
9761
9653
|
intendedRootDir: process.cwd()
|
|
9762
9654
|
});
|
|
9763
|
-
const filename =
|
|
9655
|
+
const filename = basename21(relativePathFromCwd);
|
|
9764
9656
|
const fullPath = join85(process.cwd(), RULESYNC_COMMANDS_RELATIVE_DIR_PATH, filename);
|
|
9765
9657
|
try {
|
|
9766
9658
|
await removeFile(fullPath);
|
|
@@ -10055,7 +9947,7 @@ var mcpTools = {
|
|
|
10055
9947
|
};
|
|
10056
9948
|
|
|
10057
9949
|
// src/mcp/rules.ts
|
|
10058
|
-
import { basename as
|
|
9950
|
+
import { basename as basename22, join as join88 } from "path";
|
|
10059
9951
|
import { z as z38 } from "zod/mini";
|
|
10060
9952
|
var maxRuleSizeBytes = 1024 * 1024;
|
|
10061
9953
|
var maxRulesCount = 1e3;
|
|
@@ -10093,7 +9985,7 @@ async function getRule({ relativePathFromCwd }) {
|
|
|
10093
9985
|
relativePath: relativePathFromCwd,
|
|
10094
9986
|
intendedRootDir: process.cwd()
|
|
10095
9987
|
});
|
|
10096
|
-
const filename =
|
|
9988
|
+
const filename = basename22(relativePathFromCwd);
|
|
10097
9989
|
try {
|
|
10098
9990
|
const rule = await RulesyncRule.fromFile({
|
|
10099
9991
|
relativeFilePath: filename,
|
|
@@ -10119,7 +10011,7 @@ async function putRule({
|
|
|
10119
10011
|
relativePath: relativePathFromCwd,
|
|
10120
10012
|
intendedRootDir: process.cwd()
|
|
10121
10013
|
});
|
|
10122
|
-
const filename =
|
|
10014
|
+
const filename = basename22(relativePathFromCwd);
|
|
10123
10015
|
const estimatedSize = JSON.stringify(frontmatter).length + body.length;
|
|
10124
10016
|
if (estimatedSize > maxRuleSizeBytes) {
|
|
10125
10017
|
throw new Error(
|
|
@@ -10161,7 +10053,7 @@ async function deleteRule({ relativePathFromCwd }) {
|
|
|
10161
10053
|
relativePath: relativePathFromCwd,
|
|
10162
10054
|
intendedRootDir: process.cwd()
|
|
10163
10055
|
});
|
|
10164
|
-
const filename =
|
|
10056
|
+
const filename = basename22(relativePathFromCwd);
|
|
10165
10057
|
const fullPath = join88(process.cwd(), RULESYNC_RULES_RELATIVE_DIR_PATH, filename);
|
|
10166
10058
|
try {
|
|
10167
10059
|
await removeFile(fullPath);
|
|
@@ -10233,7 +10125,7 @@ var ruleTools = {
|
|
|
10233
10125
|
};
|
|
10234
10126
|
|
|
10235
10127
|
// src/mcp/skills.ts
|
|
10236
|
-
import { basename as
|
|
10128
|
+
import { basename as basename23, dirname as dirname2, join as join89 } from "path";
|
|
10237
10129
|
import { z as z39 } from "zod/mini";
|
|
10238
10130
|
var maxSkillSizeBytes = 1024 * 1024;
|
|
10239
10131
|
var maxSkillsCount = 1e3;
|
|
@@ -10250,7 +10142,7 @@ function mcpSkillFileToAiDirFile(file) {
|
|
|
10250
10142
|
};
|
|
10251
10143
|
}
|
|
10252
10144
|
function extractDirName(relativeDirPathFromCwd) {
|
|
10253
|
-
const dirName =
|
|
10145
|
+
const dirName = basename23(relativeDirPathFromCwd);
|
|
10254
10146
|
if (!dirName) {
|
|
10255
10147
|
throw new Error(`Invalid path: ${relativeDirPathFromCwd}`);
|
|
10256
10148
|
}
|
|
@@ -10262,7 +10154,7 @@ async function listSkills() {
|
|
|
10262
10154
|
const skillDirPaths = await findFilesByGlobs(join89(skillsDir, "*"), { type: "dir" });
|
|
10263
10155
|
const skills = await Promise.all(
|
|
10264
10156
|
skillDirPaths.map(async (dirPath) => {
|
|
10265
|
-
const dirName =
|
|
10157
|
+
const dirName = basename23(dirPath);
|
|
10266
10158
|
if (!dirName) return null;
|
|
10267
10159
|
try {
|
|
10268
10160
|
const skill = await RulesyncSkill.fromDir({
|
|
@@ -10467,7 +10359,7 @@ var skillTools = {
|
|
|
10467
10359
|
};
|
|
10468
10360
|
|
|
10469
10361
|
// src/mcp/subagents.ts
|
|
10470
|
-
import { basename as
|
|
10362
|
+
import { basename as basename24, join as join90 } from "path";
|
|
10471
10363
|
import { z as z40 } from "zod/mini";
|
|
10472
10364
|
var maxSubagentSizeBytes = 1024 * 1024;
|
|
10473
10365
|
var maxSubagentsCount = 1e3;
|
|
@@ -10507,7 +10399,7 @@ async function getSubagent({ relativePathFromCwd }) {
|
|
|
10507
10399
|
relativePath: relativePathFromCwd,
|
|
10508
10400
|
intendedRootDir: process.cwd()
|
|
10509
10401
|
});
|
|
10510
|
-
const filename =
|
|
10402
|
+
const filename = basename24(relativePathFromCwd);
|
|
10511
10403
|
try {
|
|
10512
10404
|
const subagent = await RulesyncSubagent.fromFile({
|
|
10513
10405
|
relativeFilePath: filename,
|
|
@@ -10533,7 +10425,7 @@ async function putSubagent({
|
|
|
10533
10425
|
relativePath: relativePathFromCwd,
|
|
10534
10426
|
intendedRootDir: process.cwd()
|
|
10535
10427
|
});
|
|
10536
|
-
const filename =
|
|
10428
|
+
const filename = basename24(relativePathFromCwd);
|
|
10537
10429
|
const estimatedSize = JSON.stringify(frontmatter).length + body.length;
|
|
10538
10430
|
if (estimatedSize > maxSubagentSizeBytes) {
|
|
10539
10431
|
throw new Error(
|
|
@@ -10575,7 +10467,7 @@ async function deleteSubagent({ relativePathFromCwd }) {
|
|
|
10575
10467
|
relativePath: relativePathFromCwd,
|
|
10576
10468
|
intendedRootDir: process.cwd()
|
|
10577
10469
|
});
|
|
10578
|
-
const filename =
|
|
10470
|
+
const filename = basename24(relativePathFromCwd);
|
|
10579
10471
|
const fullPath = join90(process.cwd(), RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH, filename);
|
|
10580
10472
|
try {
|
|
10581
10473
|
await removeFile(fullPath);
|
|
@@ -10686,7 +10578,7 @@ async function mcpCommand({ version }) {
|
|
|
10686
10578
|
}
|
|
10687
10579
|
|
|
10688
10580
|
// src/cli/index.ts
|
|
10689
|
-
var getVersion = () => "
|
|
10581
|
+
var getVersion = () => "4.0.1";
|
|
10690
10582
|
var main = async () => {
|
|
10691
10583
|
const program = new Command();
|
|
10692
10584
|
const version = getVersion();
|
|
@@ -10710,18 +10602,14 @@ var main = async () => {
|
|
|
10710
10602
|
(value) => {
|
|
10711
10603
|
return value.split(",").map((f) => f.trim());
|
|
10712
10604
|
}
|
|
10713
|
-
).option("-V, --verbose", "Verbose output").option("-g, --global", "Import for global(user scope) configuration files").
|
|
10714
|
-
"--experimental-global",
|
|
10715
|
-
"Import for global(user scope) configuration files (deprecated: use --global instead)"
|
|
10716
|
-
).action(async (options) => {
|
|
10605
|
+
).option("-V, --verbose", "Verbose output").option("-g, --global", "Import for global(user scope) configuration files").action(async (options) => {
|
|
10717
10606
|
try {
|
|
10718
10607
|
await importCommand({
|
|
10719
10608
|
targets: options.targets,
|
|
10720
10609
|
features: options.features,
|
|
10721
10610
|
verbose: options.verbose,
|
|
10722
10611
|
configPath: options.config,
|
|
10723
|
-
global: options.global
|
|
10724
|
-
experimentalGlobal: options.experimentalGlobal
|
|
10612
|
+
global: options.global
|
|
10725
10613
|
});
|
|
10726
10614
|
} catch (error) {
|
|
10727
10615
|
logger.error(formatError(error));
|
|
@@ -10760,15 +10648,6 @@ var main = async () => {
|
|
|
10760
10648
|
).option(
|
|
10761
10649
|
"--simulate-skills",
|
|
10762
10650
|
"Generate simulated skills. This feature is only available for copilot, cursor and codexcli."
|
|
10763
|
-
).option(
|
|
10764
|
-
"--experimental-global",
|
|
10765
|
-
"Generate for global(user scope) configuration files (deprecated: use --global instead)"
|
|
10766
|
-
).option(
|
|
10767
|
-
"--experimental-simulate-commands",
|
|
10768
|
-
"Generate simulated commands (deprecated: use --simulate-commands instead)"
|
|
10769
|
-
).option(
|
|
10770
|
-
"--experimental-simulate-subagents",
|
|
10771
|
-
"Generate simulated subagents (deprecated: use --simulate-subagents instead)"
|
|
10772
10651
|
).option(
|
|
10773
10652
|
"--modular-mcp",
|
|
10774
10653
|
"Generate modular-mcp configuration for context compression (experimental)"
|
|
@@ -10785,10 +10664,7 @@ var main = async () => {
|
|
|
10785
10664
|
simulateCommands: options.simulateCommands,
|
|
10786
10665
|
simulateSubagents: options.simulateSubagents,
|
|
10787
10666
|
simulateSkills: options.simulateSkills,
|
|
10788
|
-
modularMcp: options.modularMcp
|
|
10789
|
-
experimentalGlobal: options.experimentalGlobal,
|
|
10790
|
-
experimentalSimulateCommands: options.experimentalSimulateCommands,
|
|
10791
|
-
experimentalSimulateSubagents: options.experimentalSimulateSubagents
|
|
10667
|
+
modularMcp: options.modularMcp
|
|
10792
10668
|
});
|
|
10793
10669
|
} catch (error) {
|
|
10794
10670
|
logger.error(formatError(error));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rulesync",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"description": "Unified AI rules management CLI tool that generates configuration files for various AI development tools",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -36,46 +36,49 @@
|
|
|
36
36
|
"pre-commit": "pnpm exec lint-staged"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@modelcontextprotocol/sdk": "1.
|
|
39
|
+
"@modelcontextprotocol/sdk": "1.25.1",
|
|
40
40
|
"@toon-format/toon": "2.1.0",
|
|
41
|
+
"@valibot/to-json-schema": "1.5.0",
|
|
41
42
|
"commander": "14.0.2",
|
|
42
43
|
"consola": "3.4.2",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
44
|
+
"effect": "3.19.13",
|
|
45
|
+
"es-toolkit": "1.43.0",
|
|
46
|
+
"fastmcp": "3.25.4",
|
|
45
47
|
"gray-matter": "4.0.3",
|
|
46
48
|
"js-yaml": "4.1.1",
|
|
47
49
|
"jsonc-parser": "3.3.1",
|
|
48
50
|
"smol-toml": "1.5.2",
|
|
49
|
-
"
|
|
51
|
+
"sury": "11.0.0-alpha.4",
|
|
52
|
+
"zod": "4.2.1"
|
|
50
53
|
},
|
|
51
54
|
"devDependencies": {
|
|
52
|
-
"@anthropic-ai/claude-agent-sdk": "0.1.
|
|
53
|
-
"@biomejs/biome": "2.3.
|
|
55
|
+
"@anthropic-ai/claude-agent-sdk": "0.1.75",
|
|
56
|
+
"@biomejs/biome": "2.3.10",
|
|
54
57
|
"@eslint/js": "9.39.2",
|
|
55
58
|
"@secretlint/secretlint-rule-preset-recommend": "11.2.5",
|
|
56
59
|
"@tsconfig/node24": "24.0.3",
|
|
57
60
|
"@types/js-yaml": "4.0.9",
|
|
58
|
-
"@types/node": "25.0.
|
|
59
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
60
|
-
"@vitest/coverage-v8": "4.0.
|
|
61
|
+
"@types/node": "25.0.3",
|
|
62
|
+
"@typescript/native-preview": "7.0.0-dev.20251220.1",
|
|
63
|
+
"@vitest/coverage-v8": "4.0.16",
|
|
61
64
|
"cspell": "9.4.0",
|
|
62
65
|
"eslint": "9.39.2",
|
|
63
66
|
"eslint-plugin-import": "2.32.0",
|
|
64
67
|
"eslint-plugin-no-type-assertion": "1.3.0",
|
|
65
|
-
"eslint-plugin-oxlint": "1.
|
|
66
|
-
"eslint-plugin-strict-dependencies": "1.3.
|
|
68
|
+
"eslint-plugin-oxlint": "1.34.0",
|
|
69
|
+
"eslint-plugin-strict-dependencies": "1.3.29",
|
|
67
70
|
"eslint-plugin-zod-import": "0.3.0",
|
|
68
|
-
"knip": "5.
|
|
71
|
+
"knip": "5.76.1",
|
|
69
72
|
"lint-staged": "16.2.7",
|
|
70
|
-
"oxlint": "1.
|
|
73
|
+
"oxlint": "1.34.0",
|
|
71
74
|
"secretlint": "11.2.5",
|
|
72
75
|
"simple-git-hooks": "2.13.1",
|
|
73
|
-
"sort-package-json": "3.
|
|
76
|
+
"sort-package-json": "3.6.0",
|
|
74
77
|
"tsup": "8.5.1",
|
|
75
78
|
"tsx": "4.21.0",
|
|
76
79
|
"typescript": "5.9.3",
|
|
77
|
-
"typescript-eslint": "8.
|
|
78
|
-
"vitest": "4.0.
|
|
80
|
+
"typescript-eslint": "8.50.0",
|
|
81
|
+
"vitest": "4.0.16"
|
|
79
82
|
},
|
|
80
83
|
"engines": {
|
|
81
84
|
"node": ">=22.0.0"
|
|
@@ -87,7 +90,6 @@
|
|
|
87
90
|
"bcheck": "biome check .",
|
|
88
91
|
"bcheck:fix": "biome check --write .",
|
|
89
92
|
"build": "tsup src/cli/index.ts --format cjs,esm --dts --clean",
|
|
90
|
-
"bundle:deno": "tsup --config tsup.deno.config.ts",
|
|
91
93
|
"check": "pnpm run bcheck && pnpm run oxlint && pnpm run eslint && pnpm run typecheck",
|
|
92
94
|
"cicheck": "pnpm run cicheck:code && pnpm run cicheck:content",
|
|
93
95
|
"cicheck:code": "pnpm run check && pnpm run test",
|