rulesync 14.0.0 → 14.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli/index.cjs +19 -8
- package/dist/cli/index.js +19 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/{import-CSnC5vl7.js → import-BN4K49Ta.js} +300 -35
- package/dist/import-BN4K49Ta.js.map +1 -0
- package/dist/{import-Dh9PCQKq.cjs → import-CDKxRD_F.cjs} +324 -47
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +13 -13
- package/dist/import-CSnC5vl7.js.map +0 -1
package/README.md
CHANGED
|
@@ -119,7 +119,7 @@ The tables below show whether each tool supports a given feature (✅ = supporte
|
|
|
119
119
|
| Devin Desktop | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
|
|
120
120
|
| Warp | ✅ | ✅ | ✅ | | | ✅ | | ✅ | |
|
|
121
121
|
| Replit | ✅ | | | | | ✅ | | | |
|
|
122
|
-
| Pi Coding Agent | ✅ | | | ✅ | | ✅ |
|
|
122
|
+
| Pi Coding Agent | ✅ | | | ✅ | | ✅ | ✅ | | |
|
|
123
123
|
| Zed | ✅ | ✅ | ✅ | | | ✅ | | ✅ | |
|
|
124
124
|
|
|
125
125
|
<!-- SUPPORTED_TOOLS_AI:END -->
|
package/dist/cli/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const require_import = require("../import-
|
|
2
|
+
const require_import = require("../import-CDKxRD_F.cjs");
|
|
3
3
|
let commander = require("commander");
|
|
4
4
|
let zod_mini = require("zod/mini");
|
|
5
5
|
let node_path = require("node:path");
|
|
@@ -55,7 +55,7 @@ async function convertCommand(logger, options) {
|
|
|
55
55
|
...options,
|
|
56
56
|
targets: [fromTool, ...toTools],
|
|
57
57
|
features: options.features ?? ["*"]
|
|
58
|
-
});
|
|
58
|
+
}, { logger });
|
|
59
59
|
const isPreview = config.isPreviewMode();
|
|
60
60
|
const modePrefix = isPreview ? "[DRY RUN] " : "";
|
|
61
61
|
logger.debug(`Converting files from ${fromTool} to ${toTools.join(", ")}...`);
|
|
@@ -1670,7 +1670,10 @@ const groupEntriesByDestination = ({ entries, resolveDestination }) => {
|
|
|
1670
1670
|
const gitignoreCommand = async (logger, options) => {
|
|
1671
1671
|
const gitignorePath = (0, node_path.join)(process.cwd(), ".gitignore");
|
|
1672
1672
|
const gitattributesPath = (0, node_path.join)(process.cwd(), ".gitattributes");
|
|
1673
|
-
const config = await require_import.ConfigResolver.resolve({
|
|
1673
|
+
const config = await require_import.ConfigResolver.resolve({
|
|
1674
|
+
verbose: options?.verbose,
|
|
1675
|
+
silent: options?.silent
|
|
1676
|
+
}, { logger });
|
|
1674
1677
|
const resolvedEntries = resolveGitignoreEntries({
|
|
1675
1678
|
targets: options?.targets,
|
|
1676
1679
|
features: options?.features,
|
|
@@ -5281,7 +5284,7 @@ async function runRulesyncInstall(logger, options) {
|
|
|
5281
5284
|
configPath: options.configPath,
|
|
5282
5285
|
verbose: options.verbose,
|
|
5283
5286
|
silent: options.silent
|
|
5284
|
-
})).getSources();
|
|
5287
|
+
}, { logger })).getSources();
|
|
5285
5288
|
if (apmExists && sources.length > 0) throw new Error("Both apm.yml and rulesync.jsonc `sources` are defined. Pass --mode apm or --mode rulesync to disambiguate.");
|
|
5286
5289
|
if (sources.length === 0) {
|
|
5287
5290
|
if (apmExists) {
|
|
@@ -5336,7 +5339,7 @@ async function runGhInstall(logger, options) {
|
|
|
5336
5339
|
configPath: options.configPath,
|
|
5337
5340
|
verbose: options.verbose,
|
|
5338
5341
|
silent: options.silent
|
|
5339
|
-
})).getSources();
|
|
5342
|
+
}, { logger })).getSources();
|
|
5340
5343
|
if (sources.length === 0) {
|
|
5341
5344
|
logger.warn("No sources defined in configuration. Nothing to install.");
|
|
5342
5345
|
return;
|
|
@@ -7667,10 +7670,16 @@ function wrapCommand$1({ name, errorCode, handler, getVersion, loggerFactory = c
|
|
|
7667
7670
|
globalOpts,
|
|
7668
7671
|
getVersion
|
|
7669
7672
|
});
|
|
7670
|
-
|
|
7673
|
+
const cliLoggerOptions = {
|
|
7671
7674
|
verbose: Boolean(globalOpts.verbose) || Boolean(options.verbose),
|
|
7672
7675
|
silent: Boolean(globalOpts.silent) || Boolean(options.silent)
|
|
7676
|
+
};
|
|
7677
|
+
require_import.warnOnConflictingFlags({
|
|
7678
|
+
...cliLoggerOptions,
|
|
7679
|
+
jsonMode: logger.jsonMode
|
|
7673
7680
|
});
|
|
7681
|
+
logger.configure(cliLoggerOptions);
|
|
7682
|
+
require_import.fallbackLogger.configure(cliLoggerOptions);
|
|
7674
7683
|
try {
|
|
7675
7684
|
await handler(logger, options, globalOpts, positionalArgs);
|
|
7676
7685
|
logger.outputJson(true);
|
|
@@ -7684,7 +7693,7 @@ function wrapCommand$1({ name, errorCode, handler, getVersion, loggerFactory = c
|
|
|
7684
7693
|
}
|
|
7685
7694
|
//#endregion
|
|
7686
7695
|
//#region src/cli/index.ts
|
|
7687
|
-
const getVersion = () => "14.
|
|
7696
|
+
const getVersion = () => "14.1.0";
|
|
7688
7697
|
function wrapCommand(name, errorCode, handler) {
|
|
7689
7698
|
return wrapCommand$1({
|
|
7690
7699
|
name,
|
|
@@ -7706,7 +7715,9 @@ const main = async () => {
|
|
|
7706
7715
|
const resolvedTargets = await resolveGitignoreTargets({ cliTargets });
|
|
7707
7716
|
await gitignoreCommand(logger, {
|
|
7708
7717
|
targets: resolvedTargets ? [...resolvedTargets] : void 0,
|
|
7709
|
-
features: cliFeatures
|
|
7718
|
+
features: cliFeatures,
|
|
7719
|
+
verbose: options.verbose,
|
|
7720
|
+
silent: options.silent
|
|
7710
7721
|
});
|
|
7711
7722
|
}));
|
|
7712
7723
|
program.command("fetch <source>").description("Fetch files from a Git repository (GitHub/GitLab)").option("-t, --target <target>", "Target format to interpret files as (e.g., 'rulesync', 'claudecode'). Default: rulesync").option("-f, --features <features>", `Comma-separated list of features to fetch (${require_import.ALL_FEATURES.join(",")}) or '*' for all`, parseCommaSeparatedList).option("-r, --ref <ref>", "Branch, tag, or commit SHA to fetch from").option("-p, --path <path>", "Subdirectory path within the repository").option("-o, --output <dir>", "Output directory (default: .rulesync)").option("-c, --conflict <strategy>", "Conflict resolution strategy: skip, overwrite (default: overwrite)").option("--token <token>", "Git provider token for private repositories").option("-V, --verbose", "Verbose output").option("-s, --silent", "Suppress all output").action(wrapCommand("fetch", "FETCH_FAILED", async (logger, options, _globalOpts, positionalArgs) => {
|
package/dist/cli/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as
|
|
2
|
+
import { $ as getFileSize, A as CLAUDECODE_SETTINGS_LOCAL_FILE_NAME, At as RULESYNC_OVERVIEW_FILE_NAME, B as findControlCharacter, Bt as formatError, C as CommandsProcessor, Ct as RULESYNC_IGNORE_RELATIVE_FILE_PATH, D as CLAUDECODE_DIR, Dt as RULESYNC_MCP_RELATIVE_FILE_PATH, E as CODEXCLI_DIR, Et as RULESYNC_MCP_JSONC_FILE_NAME, F as RulesyncCheck, Ft as RULESYNC_RELATIVE_DIR_PATH, G as CLIError, H as JsonLogger, Ht as ALL_FEATURES_WITH_WILDCARD, I as RulesyncCheckFrontmatterSchema, It as RULESYNC_RULES_RELATIVE_DIR_PATH, J as createTempDirectory, K as ErrorCodes, L as stringifyFrontmatter, Lt as RULESYNC_SKILLS_RELATIVE_DIR_PATH, M as RulesyncCommand, Mt as RULESYNC_PERMISSIONS_JSONC_FILE_NAME, N as RulesyncCommandFrontmatterSchema, Nt as RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH, O as CLAUDECODE_LOCAL_RULE_FILE_NAME, Ot as RULESYNC_MCP_SCHEMA_URL, P as ChecksProcessor, Pt as RULESYNC_PERMISSIONS_SCHEMA_URL, Q as findFilesByGlobs, R as loadYaml, Rt as RULESYNC_SOURCES_LOCK_RELATIVE_FILE_PATH, S as RulesyncHooks, St as RULESYNC_HOOKS_RELATIVE_FILE_PATH, T as CODEXCLI_BASH_RULES_FILE_NAME, Tt as RULESYNC_MCP_FILE_NAME, U as fallbackLogger, V as ConsoleLogger, Vt as ALL_FEATURES, W as warnOnConflictingFlags, X as ensureDir, Y as directoryExists, Z as fileExists, _ as McpProcessor, _t as RULESYNC_CONFIG_RELATIVE_FILE_PATH, a as convertFromTool, at as removeFile, b as RulesyncIgnore, bt as RULESYNC_HOOKS_FILE_NAME, c as RulesyncRuleFrontmatterSchema, ct as writeFileContent, d as RulesyncSubagentFrontmatterSchema, dt as ToolTargetSchema, et as getHomeDirectory, f as SkillsProcessor, ft as MAX_FILE_SIZE, g as RulesyncPermissions, gt as RULESYNC_COMMANDS_RELATIVE_DIR_PATH, h as RulesyncSkillFrontmatterSchema, ht as RULESYNC_CHECKS_RELATIVE_DIR_PATH, i as getProcessorRegistryEntry, it as removeDirectory, j as CLAUDECODE_SKILLS_DIR_PATH, jt as RULESYNC_PERMISSIONS_FILE_NAME, k as CLAUDECODE_MEMORIES_DIR_NAME, kt as RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH, l as SubagentsProcessor, lt as ALL_TOOL_TARGETS, m as RulesyncSkill, mt as RULESYNC_AIIGNORE_RELATIVE_FILE_PATH, n as checkRulesyncDirExists, nt as listDirectoryFiles, o as RulesProcessor, ot as removeTempDirectory, p as getLocalSkillDirNames, pt as RULESYNC_AIIGNORE_FILE_NAME, q as checkPathTraversal, r as generate, rt as readFileContent, s as RulesyncRule, st as toPosixPath, t as importFromTool, tt as isSymlink, u as RulesyncSubagent, ut as ALL_TOOL_TARGETS_WITH_WILDCARD, v as RulesyncMcp, vt as RULESYNC_CONFIG_SCHEMA_URL, w as SKILL_FILE_NAME$1, wt as RULESYNC_LOCAL_CONFIG_RELATIVE_FILE_PATH, x as HooksProcessor, xt as RULESYNC_HOOKS_JSONC_FILE_NAME, y as IgnoreProcessor, yt as RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH, z as ConfigResolver, zt as RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH } from "../import-BN4K49Ta.js";
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { nonnegative, optional, refine, z } from "zod/mini";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
@@ -53,7 +53,7 @@ async function convertCommand(logger, options) {
|
|
|
53
53
|
...options,
|
|
54
54
|
targets: [fromTool, ...toTools],
|
|
55
55
|
features: options.features ?? ["*"]
|
|
56
|
-
});
|
|
56
|
+
}, { logger });
|
|
57
57
|
const isPreview = config.isPreviewMode();
|
|
58
58
|
const modePrefix = isPreview ? "[DRY RUN] " : "";
|
|
59
59
|
logger.debug(`Converting files from ${fromTool} to ${toTools.join(", ")}...`);
|
|
@@ -1668,7 +1668,10 @@ const groupEntriesByDestination = ({ entries, resolveDestination }) => {
|
|
|
1668
1668
|
const gitignoreCommand = async (logger, options) => {
|
|
1669
1669
|
const gitignorePath = join(process.cwd(), ".gitignore");
|
|
1670
1670
|
const gitattributesPath = join(process.cwd(), ".gitattributes");
|
|
1671
|
-
const config = await ConfigResolver.resolve({
|
|
1671
|
+
const config = await ConfigResolver.resolve({
|
|
1672
|
+
verbose: options?.verbose,
|
|
1673
|
+
silent: options?.silent
|
|
1674
|
+
}, { logger });
|
|
1672
1675
|
const resolvedEntries = resolveGitignoreEntries({
|
|
1673
1676
|
targets: options?.targets,
|
|
1674
1677
|
features: options?.features,
|
|
@@ -5279,7 +5282,7 @@ async function runRulesyncInstall(logger, options) {
|
|
|
5279
5282
|
configPath: options.configPath,
|
|
5280
5283
|
verbose: options.verbose,
|
|
5281
5284
|
silent: options.silent
|
|
5282
|
-
})).getSources();
|
|
5285
|
+
}, { logger })).getSources();
|
|
5283
5286
|
if (apmExists && sources.length > 0) throw new Error("Both apm.yml and rulesync.jsonc `sources` are defined. Pass --mode apm or --mode rulesync to disambiguate.");
|
|
5284
5287
|
if (sources.length === 0) {
|
|
5285
5288
|
if (apmExists) {
|
|
@@ -5334,7 +5337,7 @@ async function runGhInstall(logger, options) {
|
|
|
5334
5337
|
configPath: options.configPath,
|
|
5335
5338
|
verbose: options.verbose,
|
|
5336
5339
|
silent: options.silent
|
|
5337
|
-
})).getSources();
|
|
5340
|
+
}, { logger })).getSources();
|
|
5338
5341
|
if (sources.length === 0) {
|
|
5339
5342
|
logger.warn("No sources defined in configuration. Nothing to install.");
|
|
5340
5343
|
return;
|
|
@@ -7665,10 +7668,16 @@ function wrapCommand$1({ name, errorCode, handler, getVersion, loggerFactory = c
|
|
|
7665
7668
|
globalOpts,
|
|
7666
7669
|
getVersion
|
|
7667
7670
|
});
|
|
7668
|
-
|
|
7671
|
+
const cliLoggerOptions = {
|
|
7669
7672
|
verbose: Boolean(globalOpts.verbose) || Boolean(options.verbose),
|
|
7670
7673
|
silent: Boolean(globalOpts.silent) || Boolean(options.silent)
|
|
7674
|
+
};
|
|
7675
|
+
warnOnConflictingFlags({
|
|
7676
|
+
...cliLoggerOptions,
|
|
7677
|
+
jsonMode: logger.jsonMode
|
|
7671
7678
|
});
|
|
7679
|
+
logger.configure(cliLoggerOptions);
|
|
7680
|
+
fallbackLogger.configure(cliLoggerOptions);
|
|
7672
7681
|
try {
|
|
7673
7682
|
await handler(logger, options, globalOpts, positionalArgs);
|
|
7674
7683
|
logger.outputJson(true);
|
|
@@ -7682,7 +7691,7 @@ function wrapCommand$1({ name, errorCode, handler, getVersion, loggerFactory = c
|
|
|
7682
7691
|
}
|
|
7683
7692
|
//#endregion
|
|
7684
7693
|
//#region src/cli/index.ts
|
|
7685
|
-
const getVersion = () => "14.
|
|
7694
|
+
const getVersion = () => "14.1.0";
|
|
7686
7695
|
function wrapCommand(name, errorCode, handler) {
|
|
7687
7696
|
return wrapCommand$1({
|
|
7688
7697
|
name,
|
|
@@ -7704,7 +7713,9 @@ const main = async () => {
|
|
|
7704
7713
|
const resolvedTargets = await resolveGitignoreTargets({ cliTargets });
|
|
7705
7714
|
await gitignoreCommand(logger, {
|
|
7706
7715
|
targets: resolvedTargets ? [...resolvedTargets] : void 0,
|
|
7707
|
-
features: cliFeatures
|
|
7716
|
+
features: cliFeatures,
|
|
7717
|
+
verbose: options.verbose,
|
|
7718
|
+
silent: options.silent
|
|
7708
7719
|
});
|
|
7709
7720
|
}));
|
|
7710
7721
|
program.command("fetch <source>").description("Fetch files from a Git repository (GitHub/GitLab)").option("-t, --target <target>", "Target format to interpret files as (e.g., 'rulesync', 'claudecode'). Default: rulesync").option("-f, --features <features>", `Comma-separated list of features to fetch (${ALL_FEATURES.join(",")}) or '*' for all`, parseCommaSeparatedList).option("-r, --ref <ref>", "Branch, tag, or commit SHA to fetch from").option("-p, --path <path>", "Subdirectory path within the repository").option("-o, --output <dir>", "Output directory (default: .rulesync)").option("-c, --conflict <strategy>", "Conflict resolution strategy: skip, overwrite (default: overwrite)").option("--token <token>", "Git provider token for private repositories").option("-V, --verbose", "Verbose output").option("-s, --silent", "Suppress all output").action(wrapCommand("fetch", "FETCH_FAILED", async (logger, options, _globalOpts, positionalArgs) => {
|