rulesync 13.0.0 → 14.0.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 +913 -24
- package/dist/cli/index.js +913 -24
- package/dist/cli/index.js.map +1 -1
- package/dist/{import-CMSHVMqU.js → import-CSnC5vl7.js} +194 -14
- package/dist/import-CSnC5vl7.js.map +1 -0
- package/dist/{import-nbmxtKYi.cjs → import-Dh9PCQKq.cjs} +212 -26
- 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 +1 -1
- package/dist/import-CMSHVMqU.js.map +0 -1
|
@@ -116,27 +116,28 @@ function formatError(error) {
|
|
|
116
116
|
}
|
|
117
117
|
//#endregion
|
|
118
118
|
//#region src/constants/rulesync-paths.ts
|
|
119
|
-
const { join: join$
|
|
119
|
+
const { join: join$257 } = node_path.posix;
|
|
120
120
|
const RULESYNC_CONFIG_RELATIVE_FILE_PATH = "rulesync.jsonc";
|
|
121
121
|
const RULESYNC_LOCAL_CONFIG_RELATIVE_FILE_PATH = "rulesync.local.jsonc";
|
|
122
122
|
const RULESYNC_RELATIVE_DIR_PATH = ".rulesync";
|
|
123
|
-
const RULESYNC_RULES_RELATIVE_DIR_PATH = join$
|
|
124
|
-
const RULESYNC_COMMANDS_RELATIVE_DIR_PATH = join$
|
|
125
|
-
const RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH = join$
|
|
126
|
-
const RULESYNC_CHECKS_RELATIVE_DIR_PATH = join$
|
|
127
|
-
const RULESYNC_MCP_RELATIVE_FILE_PATH = join$
|
|
128
|
-
const RULESYNC_HOOKS_RELATIVE_FILE_PATH = join$
|
|
129
|
-
const RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH = join$
|
|
130
|
-
const RULESYNC_MCP_JSONC_RELATIVE_FILE_PATH = join$
|
|
131
|
-
const RULESYNC_HOOKS_JSONC_RELATIVE_FILE_PATH = join$
|
|
132
|
-
const RULESYNC_PERMISSIONS_JSONC_RELATIVE_FILE_PATH = join$
|
|
123
|
+
const RULESYNC_RULES_RELATIVE_DIR_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "rules");
|
|
124
|
+
const RULESYNC_COMMANDS_RELATIVE_DIR_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "commands");
|
|
125
|
+
const RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "subagents");
|
|
126
|
+
const RULESYNC_CHECKS_RELATIVE_DIR_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "checks");
|
|
127
|
+
const RULESYNC_MCP_RELATIVE_FILE_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "mcp.json");
|
|
128
|
+
const RULESYNC_HOOKS_RELATIVE_FILE_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "hooks.json");
|
|
129
|
+
const RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "permissions.json");
|
|
130
|
+
const RULESYNC_MCP_JSONC_RELATIVE_FILE_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "mcp.jsonc");
|
|
131
|
+
const RULESYNC_HOOKS_JSONC_RELATIVE_FILE_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "hooks.jsonc");
|
|
132
|
+
const RULESYNC_PERMISSIONS_JSONC_RELATIVE_FILE_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "permissions.jsonc");
|
|
133
133
|
const RULESYNC_AIIGNORE_FILE_NAME = ".aiignore";
|
|
134
|
-
const RULESYNC_AIIGNORE_RELATIVE_FILE_PATH = join$
|
|
134
|
+
const RULESYNC_AIIGNORE_RELATIVE_FILE_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, ".aiignore");
|
|
135
135
|
const RULESYNC_IGNORE_RELATIVE_FILE_PATH = ".rulesyncignore";
|
|
136
136
|
const RULESYNC_OVERVIEW_FILE_NAME = "overview.md";
|
|
137
|
-
const RULESYNC_SKILLS_RELATIVE_DIR_PATH = join$
|
|
138
|
-
const RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH = join$
|
|
137
|
+
const RULESYNC_SKILLS_RELATIVE_DIR_PATH = join$257(RULESYNC_RELATIVE_DIR_PATH, "skills");
|
|
138
|
+
const RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH = join$257(RULESYNC_SKILLS_RELATIVE_DIR_PATH, ".curated");
|
|
139
139
|
const RULESYNC_SOURCES_LOCK_RELATIVE_FILE_PATH = "rulesync.lock";
|
|
140
|
+
const RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH = "rulesync-npm.lock.json";
|
|
140
141
|
const RULESYNC_MCP_FILE_NAME = "mcp.json";
|
|
141
142
|
const RULESYNC_HOOKS_FILE_NAME = "hooks.json";
|
|
142
143
|
const RULESYNC_PERMISSIONS_FILE_NAME = "permissions.json";
|
|
@@ -369,6 +370,7 @@ const permissionsProcessorToolTargetTuple = [
|
|
|
369
370
|
"claudecode",
|
|
370
371
|
"cline",
|
|
371
372
|
"codexcli",
|
|
373
|
+
"copilot",
|
|
372
374
|
"cursor",
|
|
373
375
|
"devin",
|
|
374
376
|
"factorydroid",
|
|
@@ -880,9 +882,15 @@ const GITIGNORE_DESTINATION_KEY = "gitignoreDestination";
|
|
|
880
882
|
const SourceEntrySchema = zod_mini.z.object({
|
|
881
883
|
source: zod_mini.z.string().check((0, zod_mini.minLength)(1, "source must be a non-empty string")),
|
|
882
884
|
skills: (0, zod_mini.optional)(zod_mini.z.array(zod_mini.z.string())),
|
|
883
|
-
transport: (0, zod_mini.optional)(zod_mini.z.enum([
|
|
885
|
+
transport: (0, zod_mini.optional)(zod_mini.z.enum([
|
|
886
|
+
"github",
|
|
887
|
+
"git",
|
|
888
|
+
"npm"
|
|
889
|
+
])),
|
|
884
890
|
ref: (0, zod_mini.optional)(zod_mini.z.string().check((0, zod_mini.refine)((v) => !v.startsWith("-"), "ref must not start with \"-\""), (0, zod_mini.refine)((v) => !hasControlCharacters(v), "ref must not contain control characters"))),
|
|
885
891
|
path: (0, zod_mini.optional)(zod_mini.z.string().check((0, zod_mini.refine)((v) => !v.includes(".."), "path must not contain \"..\""), (0, zod_mini.refine)((v) => !(0, node_path.isAbsolute)(v), "path must not be absolute"), (0, zod_mini.refine)((v) => !hasControlCharacters(v), "path must not contain control characters"))),
|
|
892
|
+
registry: (0, zod_mini.optional)(zod_mini.z.string().check((0, zod_mini.refine)((v) => v.startsWith("https://") || v.startsWith("http://"), "registry must be an http(s) URL"), (0, zod_mini.refine)((v) => !hasControlCharacters(v), "registry must not contain control characters"))),
|
|
893
|
+
tokenEnv: (0, zod_mini.optional)(zod_mini.z.string().check((0, zod_mini.refine)((v) => /^[A-Za-z_][A-Za-z0-9_]*$/.test(v), "tokenEnv must be a valid environment variable name"))),
|
|
886
894
|
agent: (0, zod_mini.optional)(zod_mini.z.enum([
|
|
887
895
|
"github-copilot",
|
|
888
896
|
"claude-code",
|
|
@@ -892,7 +900,7 @@ const SourceEntrySchema = zod_mini.z.object({
|
|
|
892
900
|
"antigravity"
|
|
893
901
|
])),
|
|
894
902
|
scope: (0, zod_mini.optional)(zod_mini.z.enum(["project", "user"]))
|
|
895
|
-
});
|
|
903
|
+
}).check((0, zod_mini.refine)((entry) => entry.registry === void 0 && entry.tokenEnv === void 0 || entry.transport === "npm", "\"registry\" and \"tokenEnv\" are only valid with transport \"npm\""));
|
|
896
904
|
const ConfigParamsSchema = zod_mini.z.object({
|
|
897
905
|
outputRoots: zod_mini.z.union([zod_mini.z.array(zod_mini.z.string()), zod_mini.z.record(zod_mini.z.string(), zod_mini.z.union([zod_mini.z.string(), zod_mini.z.array(zod_mini.z.string())]))]),
|
|
898
906
|
targets: RulesyncConfigTargetsSchema,
|
|
@@ -3264,6 +3272,7 @@ const COPILOT_HOOKS_DIR_PATH = (0, node_path.join)(GITHUB_DIR, "hooks");
|
|
|
3264
3272
|
const COPILOT_HOOKS_FILE_NAME = "copilot-hooks.json";
|
|
3265
3273
|
const COPILOT_MCP_DIR = ".vscode";
|
|
3266
3274
|
const COPILOT_MCP_FILE_NAME = "mcp.json";
|
|
3275
|
+
const COPILOT_VSCODE_SETTINGS_FILE_NAME = "settings.json";
|
|
3267
3276
|
const COPILOTCLI_MCP_FILE_NAME = "mcp-config.json";
|
|
3268
3277
|
const COPILOTCLI_PROJECT_MCP_FILE_NAME = "mcp.json";
|
|
3269
3278
|
const COPILOTCLI_AGENTS_DIR_PATH = (0, node_path.join)(COPILOT_DIR, "agents");
|
|
@@ -4670,6 +4679,15 @@ const SHARED_CONFIG_OWNERSHIP = {
|
|
|
4670
4679
|
}
|
|
4671
4680
|
}
|
|
4672
4681
|
},
|
|
4682
|
+
".vscode/settings.json": {
|
|
4683
|
+
format: "jsonc",
|
|
4684
|
+
invalidRootPolicy: "error",
|
|
4685
|
+
jsoncParseErrors: "error",
|
|
4686
|
+
features: { permissions: {
|
|
4687
|
+
kind: "replace-owned-keys",
|
|
4688
|
+
ownedKeys: ["chat.tools.terminal.autoApprove"]
|
|
4689
|
+
} }
|
|
4690
|
+
},
|
|
4673
4691
|
".qwen/settings.json": {
|
|
4674
4692
|
format: "json",
|
|
4675
4693
|
features: {
|
|
@@ -6637,7 +6655,8 @@ const HookDefinitionSchema = zod_mini.z.looseObject({
|
|
|
6637
6655
|
server: zod_mini.z.optional(safeString),
|
|
6638
6656
|
tool: zod_mini.z.optional(safeString),
|
|
6639
6657
|
input: zod_mini.z.optional(zod_mini.z.looseObject({})),
|
|
6640
|
-
model: zod_mini.z.optional(safeString)
|
|
6658
|
+
model: zod_mini.z.optional(safeString),
|
|
6659
|
+
if: zod_mini.z.optional(safeString)
|
|
6641
6660
|
});
|
|
6642
6661
|
/**
|
|
6643
6662
|
* All canonical hook event names.
|
|
@@ -7697,6 +7716,22 @@ function importBooleanPassthroughFields({ h, converterConfig }) {
|
|
|
7697
7716
|
return Object.fromEntries((converterConfig.booleanPassthroughFields ?? []).filter(({ tool }) => typeof h[tool] === "boolean").map(({ canonical, tool }) => [canonical, h[tool]]));
|
|
7698
7717
|
}
|
|
7699
7718
|
/**
|
|
7719
|
+
* Emit the configured string passthrough fields on the tool side, mapping each
|
|
7720
|
+
* canonical field name to its (possibly renamed) tool field name. Only non-empty
|
|
7721
|
+
* string values are carried through.
|
|
7722
|
+
*/
|
|
7723
|
+
function emitStringPassthroughFields({ def, converterConfig }) {
|
|
7724
|
+
return Object.fromEntries((converterConfig.stringPassthroughFields ?? []).filter(({ canonical }) => typeof def[canonical] === "string" && def[canonical] !== "").map(({ canonical, tool }) => [tool, def[canonical]]));
|
|
7725
|
+
}
|
|
7726
|
+
/**
|
|
7727
|
+
* Import the configured string passthrough fields back into canonical fields,
|
|
7728
|
+
* reversing {@link emitStringPassthroughFields}. Only non-empty string values
|
|
7729
|
+
* are read.
|
|
7730
|
+
*/
|
|
7731
|
+
function importStringPassthroughFields({ h, converterConfig }) {
|
|
7732
|
+
return Object.fromEntries((converterConfig.stringPassthroughFields ?? []).filter(({ tool }) => typeof h[tool] === "string" && h[tool] !== "").map(({ canonical, tool }) => [canonical, h[tool]]));
|
|
7733
|
+
}
|
|
7734
|
+
/**
|
|
7700
7735
|
* Emit the payload fields specific to a hook type — `url`/`headers`/
|
|
7701
7736
|
* `allowedEnvVars` for http, `server`/`tool`/`input` for mcp_tool, `model`
|
|
7702
7737
|
* for prompt/agent. https://code.claude.com/docs/en/hooks
|
|
@@ -7733,6 +7768,10 @@ function buildToolHooks({ defs, converterConfig }) {
|
|
|
7733
7768
|
def,
|
|
7734
7769
|
converterConfig
|
|
7735
7770
|
}),
|
|
7771
|
+
...emitStringPassthroughFields({
|
|
7772
|
+
def,
|
|
7773
|
+
converterConfig
|
|
7774
|
+
}),
|
|
7736
7775
|
type: hookType,
|
|
7737
7776
|
...command !== void 0 && command !== null && { command },
|
|
7738
7777
|
...def.timeout !== void 0 && def.timeout !== null && { timeout: def.timeout },
|
|
@@ -7873,6 +7912,10 @@ function toolHookToCanonical({ h, rawEntry, converterConfig }) {
|
|
|
7873
7912
|
h,
|
|
7874
7913
|
converterConfig
|
|
7875
7914
|
}),
|
|
7915
|
+
...importStringPassthroughFields({
|
|
7916
|
+
h,
|
|
7917
|
+
converterConfig
|
|
7918
|
+
}),
|
|
7876
7919
|
...rawEntry.matcher !== void 0 && rawEntry.matcher !== null && rawEntry.matcher !== "" && { matcher: rawEntry.matcher }
|
|
7877
7920
|
};
|
|
7878
7921
|
}
|
|
@@ -8444,7 +8487,11 @@ const CLAUDE_CONVERTER_CONFIG = {
|
|
|
8444
8487
|
"mcp_tool",
|
|
8445
8488
|
"agent"
|
|
8446
8489
|
]),
|
|
8447
|
-
emitsPromptModel: true
|
|
8490
|
+
emitsPromptModel: true,
|
|
8491
|
+
stringPassthroughFields: [{
|
|
8492
|
+
canonical: "if",
|
|
8493
|
+
tool: "if"
|
|
8494
|
+
}]
|
|
8448
8495
|
};
|
|
8449
8496
|
var ClaudecodeHooks = class ClaudecodeHooks extends ToolHooks {
|
|
8450
8497
|
constructor(params) {
|
|
@@ -18242,6 +18289,7 @@ const PermissionsConfigSchema = zod_mini.z.looseObject({
|
|
|
18242
18289
|
kiro: zod_mini.z.optional(KiroPermissionsOverrideSchema),
|
|
18243
18290
|
codexcli: zod_mini.z.optional(CodexcliPermissionsOverrideSchema),
|
|
18244
18291
|
"antigravity-ide": zod_mini.z.optional(CanonicalPermissionsOverrideSchema),
|
|
18292
|
+
copilot: zod_mini.z.optional(CanonicalPermissionsOverrideSchema),
|
|
18245
18293
|
devin: zod_mini.z.optional(CanonicalPermissionsOverrideSchema),
|
|
18246
18294
|
goose: zod_mini.z.optional(CanonicalPermissionsOverrideSchema),
|
|
18247
18295
|
grokcli: zod_mini.z.optional(CanonicalPermissionsOverrideSchema),
|
|
@@ -20745,6 +20793,135 @@ function mapBashActionToDecision(action) {
|
|
|
20745
20793
|
return "forbidden";
|
|
20746
20794
|
}
|
|
20747
20795
|
//#endregion
|
|
20796
|
+
//#region src/features/permissions/copilot-permissions.ts
|
|
20797
|
+
/**
|
|
20798
|
+
* The flat, dotted VS Code setting key this adapter manages. VS Code stores
|
|
20799
|
+
* settings with dotted keys flat at the document top level, so this is a single
|
|
20800
|
+
* literal key — not a nested `chat.tools.terminal` path.
|
|
20801
|
+
* @see https://code.visualstudio.com/docs/agents/approvals
|
|
20802
|
+
*/
|
|
20803
|
+
const AUTO_APPROVE_KEY = "chat.tools.terminal.autoApprove";
|
|
20804
|
+
/**
|
|
20805
|
+
* The canonical permission category this adapter maps. Only shell/terminal
|
|
20806
|
+
* commands (`bash`) have a clean, high-fidelity representation in VS Code's
|
|
20807
|
+
* `chat.tools.terminal.autoApprove` map; other categories (read/edit/webfetch/
|
|
20808
|
+
* …) have no terminal-command equivalent and are intentionally not mapped.
|
|
20809
|
+
*/
|
|
20810
|
+
const TERMINAL_CATEGORY = "bash";
|
|
20811
|
+
function asAutoApproveMap(value) {
|
|
20812
|
+
if (!isPlainObject$1(value)) return {};
|
|
20813
|
+
const result = {};
|
|
20814
|
+
for (const [pattern, flag] of Object.entries(value)) if (typeof flag === "boolean") result[pattern] = flag;
|
|
20815
|
+
return result;
|
|
20816
|
+
}
|
|
20817
|
+
/**
|
|
20818
|
+
* Permissions generator for GitHub Copilot Chat in VS Code.
|
|
20819
|
+
*
|
|
20820
|
+
* VS Code has no standalone, environment-agnostic Copilot policy file (like
|
|
20821
|
+
* `.claude/settings.json`); project-level terminal auto-approvals are managed
|
|
20822
|
+
* through the workspace `chat.tools.terminal.autoApprove` map inside
|
|
20823
|
+
* `.vscode/settings.json`. That file is a general workspace settings file with
|
|
20824
|
+
* many unrelated keys, so reads and writes merge into the existing JSON
|
|
20825
|
+
* (touching only the one managed key) and the file is never deleted.
|
|
20826
|
+
*
|
|
20827
|
+
* Scope is deliberately limited to `chat.tools.terminal.autoApprove` — the one
|
|
20828
|
+
* clean, non-lossy mapping. The canonical `bash` category's per-pattern rules
|
|
20829
|
+
* map as: `allow` → `true` (auto-approve), `deny` → `false` (never approve),
|
|
20830
|
+
* and `ask` → the entry is OMITTED (VS Code then falls through to its default
|
|
20831
|
+
* in-chat approval prompt, i.e. "ask"). Only project scope is modeled: VS Code's
|
|
20832
|
+
* user-scope settings.json lives at a platform-dependent path outside rulesync's
|
|
20833
|
+
* home-relative global model.
|
|
20834
|
+
*/
|
|
20835
|
+
var CopilotPermissions = class CopilotPermissions extends ToolPermissions {
|
|
20836
|
+
constructor(params) {
|
|
20837
|
+
super({
|
|
20838
|
+
...params,
|
|
20839
|
+
fileContent: params.fileContent ?? "{}"
|
|
20840
|
+
});
|
|
20841
|
+
}
|
|
20842
|
+
/**
|
|
20843
|
+
* `.vscode/settings.json` is a user-managed workspace file with unrelated
|
|
20844
|
+
* settings, so it must not be deleted.
|
|
20845
|
+
*/
|
|
20846
|
+
isDeletable() {
|
|
20847
|
+
return false;
|
|
20848
|
+
}
|
|
20849
|
+
static getSettablePaths(_options = {}) {
|
|
20850
|
+
return {
|
|
20851
|
+
relativeDirPath: COPILOT_MCP_DIR,
|
|
20852
|
+
relativeFilePath: COPILOT_VSCODE_SETTINGS_FILE_NAME
|
|
20853
|
+
};
|
|
20854
|
+
}
|
|
20855
|
+
static async fromFile({ outputRoot = process.cwd(), validate = true }) {
|
|
20856
|
+
const paths = CopilotPermissions.getSettablePaths();
|
|
20857
|
+
const fileContent = await readFileContentOrNull((0, node_path.join)(outputRoot, paths.relativeDirPath, paths.relativeFilePath)) ?? "{}";
|
|
20858
|
+
return new CopilotPermissions({
|
|
20859
|
+
outputRoot,
|
|
20860
|
+
relativeDirPath: paths.relativeDirPath,
|
|
20861
|
+
relativeFilePath: paths.relativeFilePath,
|
|
20862
|
+
fileContent,
|
|
20863
|
+
validate
|
|
20864
|
+
});
|
|
20865
|
+
}
|
|
20866
|
+
static async fromRulesyncPermissions({ outputRoot = process.cwd(), rulesyncPermissions }) {
|
|
20867
|
+
const paths = CopilotPermissions.getSettablePaths();
|
|
20868
|
+
const filePath = (0, node_path.join)(outputRoot, paths.relativeDirPath, paths.relativeFilePath);
|
|
20869
|
+
const existingContent = await readFileContentOrNull(filePath) ?? "{}";
|
|
20870
|
+
const rules = rulesyncPermissions.getJson().permission[TERMINAL_CATEGORY] ?? {};
|
|
20871
|
+
const autoApprove = {};
|
|
20872
|
+
for (const [pattern, action] of Object.entries(rules)) if (action === "allow") autoApprove[pattern] = true;
|
|
20873
|
+
else if (action === "deny") autoApprove[pattern] = false;
|
|
20874
|
+
const patchValue = Object.keys(autoApprove).length > 0 ? autoApprove : void 0;
|
|
20875
|
+
return new CopilotPermissions({
|
|
20876
|
+
outputRoot,
|
|
20877
|
+
relativeDirPath: paths.relativeDirPath,
|
|
20878
|
+
relativeFilePath: paths.relativeFilePath,
|
|
20879
|
+
fileContent: applySharedConfigPatch({
|
|
20880
|
+
fileKey: sharedConfigFileKey(paths),
|
|
20881
|
+
feature: "permissions",
|
|
20882
|
+
existingContent,
|
|
20883
|
+
patch: { [AUTO_APPROVE_KEY]: patchValue },
|
|
20884
|
+
filePath
|
|
20885
|
+
}),
|
|
20886
|
+
validate: true
|
|
20887
|
+
});
|
|
20888
|
+
}
|
|
20889
|
+
toRulesyncPermissions() {
|
|
20890
|
+
let settings;
|
|
20891
|
+
try {
|
|
20892
|
+
settings = parseSharedConfig({
|
|
20893
|
+
format: "jsonc",
|
|
20894
|
+
fileContent: this.getFileContent() || "{}",
|
|
20895
|
+
filePath: (0, node_path.join)(this.getRelativeDirPath(), this.getRelativeFilePath()),
|
|
20896
|
+
invalidRootPolicy: "error",
|
|
20897
|
+
jsoncParseErrors: "error"
|
|
20898
|
+
});
|
|
20899
|
+
} catch (error) {
|
|
20900
|
+
throw new Error(`Failed to parse Copilot VS Code settings in ${(0, node_path.join)(this.getRelativeDirPath(), this.getRelativeFilePath())}: ${formatError(error)}`, { cause: error });
|
|
20901
|
+
}
|
|
20902
|
+
const autoApprove = asAutoApproveMap(settings[AUTO_APPROVE_KEY]);
|
|
20903
|
+
const rules = {};
|
|
20904
|
+
for (const [pattern, flag] of Object.entries(autoApprove)) rules[pattern] = flag ? "allow" : "deny";
|
|
20905
|
+
const permission = Object.keys(rules).length > 0 ? { [TERMINAL_CATEGORY]: rules } : {};
|
|
20906
|
+
return this.toRulesyncPermissionsDefault({ fileContent: JSON.stringify({ permission }, null, 2) });
|
|
20907
|
+
}
|
|
20908
|
+
validate() {
|
|
20909
|
+
return {
|
|
20910
|
+
success: true,
|
|
20911
|
+
error: null
|
|
20912
|
+
};
|
|
20913
|
+
}
|
|
20914
|
+
static forDeletion({ outputRoot = process.cwd(), relativeDirPath, relativeFilePath }) {
|
|
20915
|
+
return new CopilotPermissions({
|
|
20916
|
+
outputRoot,
|
|
20917
|
+
relativeDirPath,
|
|
20918
|
+
relativeFilePath,
|
|
20919
|
+
fileContent: "{}",
|
|
20920
|
+
validate: false
|
|
20921
|
+
});
|
|
20922
|
+
}
|
|
20923
|
+
};
|
|
20924
|
+
//#endregion
|
|
20748
20925
|
//#region src/features/permissions/cursor-permissions.ts
|
|
20749
20926
|
/**
|
|
20750
20927
|
* Mapping from rulesync canonical tool category names (lowercase) to Cursor CLI
|
|
@@ -24635,6 +24812,14 @@ const toolPermissionsFactories = /* @__PURE__ */ new Map([
|
|
|
24635
24812
|
supportsImport: true
|
|
24636
24813
|
}
|
|
24637
24814
|
}],
|
|
24815
|
+
["copilot", {
|
|
24816
|
+
class: CopilotPermissions,
|
|
24817
|
+
meta: {
|
|
24818
|
+
supportsProject: true,
|
|
24819
|
+
supportsGlobal: false,
|
|
24820
|
+
supportsImport: true
|
|
24821
|
+
}
|
|
24822
|
+
}],
|
|
24638
24823
|
["cursor", {
|
|
24639
24824
|
class: CursorPermissions,
|
|
24640
24825
|
meta: {
|
|
@@ -31748,7 +31933,6 @@ var CodexCliSubagent = class CodexCliSubagent extends ToolSubagent {
|
|
|
31748
31933
|
};
|
|
31749
31934
|
//#endregion
|
|
31750
31935
|
//#region src/features/subagents/copilot-subagent.ts
|
|
31751
|
-
const REQUIRED_TOOL = "agent/runSubagent";
|
|
31752
31936
|
const CopilotSubagentFrontmatterSchema = zod_mini.z.looseObject({
|
|
31753
31937
|
name: zod_mini.z.string(),
|
|
31754
31938
|
description: zod_mini.z.optional(zod_mini.z.string()),
|
|
@@ -31758,10 +31942,6 @@ const normalizeTools = (tools) => {
|
|
|
31758
31942
|
if (!tools) return [];
|
|
31759
31943
|
return Array.isArray(tools) ? tools : [tools];
|
|
31760
31944
|
};
|
|
31761
|
-
const ensureRequiredTool = (tools) => {
|
|
31762
|
-
const mergedTools = /* @__PURE__ */ new Set([REQUIRED_TOOL, ...tools]);
|
|
31763
|
-
return Array.from(mergedTools);
|
|
31764
|
-
};
|
|
31765
31945
|
const toCopilotAgentFilePath = (relativeFilePath) => {
|
|
31766
31946
|
if (relativeFilePath.endsWith(".agent.md")) return relativeFilePath;
|
|
31767
31947
|
if (relativeFilePath.endsWith(".md")) return relativeFilePath.replace(/\.md$/, ".agent.md");
|
|
@@ -31815,14 +31995,14 @@ var CopilotSubagent = class CopilotSubagent extends ToolSubagent {
|
|
|
31815
31995
|
static fromRulesyncSubagent({ outputRoot = process.cwd(), rulesyncSubagent, validate = true, global = false }) {
|
|
31816
31996
|
const rulesyncFrontmatter = rulesyncSubagent.getFrontmatter();
|
|
31817
31997
|
const copilotSection = rulesyncFrontmatter.copilot ?? {};
|
|
31998
|
+
const { tools: _rawTools, ...copilotRest } = copilotSection;
|
|
31818
31999
|
const toolsField = copilotSection.tools;
|
|
31819
32000
|
const userTools = normalizeTools(Array.isArray(toolsField) || typeof toolsField === "string" ? toolsField : void 0);
|
|
31820
|
-
const mergedTools = ensureRequiredTool(userTools);
|
|
31821
32001
|
const copilotFrontmatter = {
|
|
31822
32002
|
name: rulesyncFrontmatter.name,
|
|
31823
32003
|
description: rulesyncFrontmatter.description,
|
|
31824
|
-
...
|
|
31825
|
-
...
|
|
32004
|
+
...copilotRest,
|
|
32005
|
+
...userTools.length > 0 && { tools: userTools }
|
|
31826
32006
|
};
|
|
31827
32007
|
const body = rulesyncSubagent.getBody();
|
|
31828
32008
|
const fileContent = stringifyFrontmatter(body, copilotFrontmatter);
|
|
@@ -41970,6 +42150,12 @@ Object.defineProperty(exports, "RULESYNC_MCP_SCHEMA_URL", {
|
|
|
41970
42150
|
return RULESYNC_MCP_SCHEMA_URL;
|
|
41971
42151
|
}
|
|
41972
42152
|
});
|
|
42153
|
+
Object.defineProperty(exports, "RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH", {
|
|
42154
|
+
enumerable: true,
|
|
42155
|
+
get: function() {
|
|
42156
|
+
return RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH;
|
|
42157
|
+
}
|
|
42158
|
+
});
|
|
41973
42159
|
Object.defineProperty(exports, "RULESYNC_OVERVIEW_FILE_NAME", {
|
|
41974
42160
|
enumerable: true,
|
|
41975
42161
|
get: function() {
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_import = require("./import-
|
|
2
|
+
const require_import = require("./import-Dh9PCQKq.cjs");
|
|
3
3
|
//#region src/index.ts
|
|
4
4
|
async function generate(options = {}) {
|
|
5
5
|
const { silent = true, verbose = false, ...rest } = options;
|
package/dist/index.d.cts
CHANGED
|
@@ -15,7 +15,7 @@ declare const FeatureSchema: z.ZodMiniEnum<{
|
|
|
15
15
|
type Feature = z.infer<typeof FeatureSchema>;
|
|
16
16
|
//#endregion
|
|
17
17
|
//#region src/types/tool-target-tuples.d.ts
|
|
18
|
-
declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "cursor", "goose", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "roo", "devin", "vibe", "warp", "zed"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "devin"], readonly ["kilo", "agentsmd", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["antigravity-cli", "antigravity-ide", "kilo", "cursor", "claudecode", "codexcli", "copilot", "copilotcli", "opencode", "factorydroid", "goose", "hermesagent", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "cursor", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "rovodev", "takt", "vibe", "warp", "zed"], readonly ["amp"]];
|
|
18
|
+
declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "cursor", "goose", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "roo", "devin", "vibe", "warp", "zed"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "devin"], readonly ["kilo", "agentsmd", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["antigravity-cli", "antigravity-ide", "kilo", "cursor", "claudecode", "codexcli", "copilot", "copilotcli", "opencode", "factorydroid", "goose", "hermesagent", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "copilot", "cursor", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "rovodev", "takt", "vibe", "warp", "zed"], readonly ["amp"]];
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region src/types/tool-targets.d.ts
|
|
21
21
|
type AllToolTarget = (typeof ALL_TOOL_TARGET_TUPLES)[number][number];
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/features.ts","../src/types/tool-target-tuples.ts","../src/types/tool-targets.ts","../src/lib/convert.ts","../src/types/ai-dir.ts","../src/features/skills/rulesync-skill.ts","../src/lib/generate.ts","../src/lib/import.ts","../src/index.ts"],"mappings":";;cAEa;cAcP,eAAa,EAAA;;;;;;;;;;;KAEP,UAAU,EAAE,aAAa;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/features.ts","../src/types/tool-target-tuples.ts","../src/types/tool-targets.ts","../src/lib/convert.ts","../src/types/ai-dir.ts","../src/features/skills/rulesync-skill.ts","../src/lib/generate.ts","../src/lib/import.ts","../src/index.ts"],"mappings":";;cAEa;cAcP,eAAa,EAAA;;;;;;;;;;;KAEP,UAAU,EAAE,aAAa;;;cC6OxB;;;KCrPR,wBAAwB;cAEhB,4BAA4B,kBAAkB;cAM9C,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEjB,aAAa,EAAE,aAAa;;;KCN5B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KCnBU;EAEN;EACA;;EAGA;EACA,OAAO;;KAGD;EACV;EACA,YAAY;;KAGF;EACV;EACA;EACA;EACA;IACE;IACA;IACA,cAAc;;EAEhB,aAAa;EACb;;KAGU,qBAAqB,KAC/B;uBAIoB;;;;qBAID;;;;qBAKA;;;;qBAKA;;;;YAKT;IACR;IACA;IACA,cAAc;;;;;YAMN,YAAY;;;;qBAKH;EAEnB,cACE,YACA,iBACA,SACA,UACA,YACA,UACC;SAcU,QAAQ,SAAS,qBAAqB,QAAQ;EAI3D;EAIA;EAIA;EAIA;EAqBA;IAEM;IACA;IACA,cAAc;;EAMpB,iBAAiB;;;;EAOjB;EAIA;EAIA,YAAY,cAAc,cAAc,cAAc;;;;;;;;;;;mBAc/B,kBACrB,oBACA,yBACA,iBACA,0BACC,QAAQ;WAmBF,YAAY;;;;cCrLjB,wCAAsC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8LhC;EACV;EACA;EACA;EACA;EACA;EACA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ;IACR;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;MACE;MACA;MACA;MACA;MACA;MACA;;IAEF;MACE;;IAEF;MACE,QAAQ;QACN;QACA;QACA;QACA;QACA;;;;EAIN;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;;EAEF;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA,gBAAgB;IAChB,WAAW;;EAEb;IACE;;EAEF;IACE;IACA;IACA,gBAAgB;IAChB,WAAW;;EAEb,MAAM;EACN,QAAQ;EACR;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA,WAAW;;EAEb;IACE;IACA;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;IACA;;EAEF;IACE;IACA;;;KAKQ,2BAA2B,EAAE,aAAa;KAO1C;EACV;EACA;EACA;EACA,aAAa;EACb;EACA,aAAa;EACb;EACA;;KAGU;EACV;;KAGU;EACV;EACA;EACA;EACA;;;;;;cAOW,sBAAsB;EACjC,cACE,YACA,iBACA,SACA,aACA,MACA,YACA,UACA,UACC;SAsBI,oBAAoB;EAU3B,kBAAkB;EAQlB;EAIA,YAAY;SAcC,UACX,YACA,iBACA,SACA,UACC,6BAA6B,QAAQ;;;;KChZ9B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;;;;KCPU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KCjCG;EACH;EACA;EACA;EACA;;KAGU,kBAAkB;EAC5B,UAAU;EACV,WAAW;EACX;;;;;;;EAOA;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU,gBAAgB;EAC1B,QAAQ;EACR,WAAW;;KAGD,iBAAiB;EAC3B,MAAM;EACN,IAAI;EACJ,WAAW;EACX;;iBAGoB,SAAS,UAAS,kBAAuB,QAAQ;iBAqBjD,eAAe,SAAS,gBAAgB,QAAQ;iBAehD,gBAAgB,SAAS,iBAAiB,QAAQ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ declare const FeatureSchema: z.ZodMiniEnum<{
|
|
|
15
15
|
type Feature = z.infer<typeof FeatureSchema>;
|
|
16
16
|
//#endregion
|
|
17
17
|
//#region src/types/tool-target-tuples.d.ts
|
|
18
|
-
declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "cursor", "goose", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "roo", "devin", "vibe", "warp", "zed"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "devin"], readonly ["kilo", "agentsmd", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["antigravity-cli", "antigravity-ide", "kilo", "cursor", "claudecode", "codexcli", "copilot", "copilotcli", "opencode", "factorydroid", "goose", "hermesagent", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "cursor", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "rovodev", "takt", "vibe", "warp", "zed"], readonly ["amp"]];
|
|
18
|
+
declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "cursor", "goose", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "roo", "devin", "vibe", "warp", "zed"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "devin"], readonly ["kilo", "agentsmd", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zed"], readonly ["antigravity-cli", "antigravity-ide", "kilo", "cursor", "claudecode", "codexcli", "copilot", "copilotcli", "opencode", "factorydroid", "goose", "hermesagent", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "copilot", "cursor", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "rovodev", "takt", "vibe", "warp", "zed"], readonly ["amp"]];
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region src/types/tool-targets.d.ts
|
|
21
21
|
type AllToolTarget = (typeof ALL_TOOL_TARGET_TUPLES)[number][number];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/features.ts","../src/types/tool-target-tuples.ts","../src/types/tool-targets.ts","../src/lib/convert.ts","../src/types/ai-dir.ts","../src/features/skills/rulesync-skill.ts","../src/lib/generate.ts","../src/lib/import.ts","../src/index.ts"],"mappings":";;cAEa;cAcP,eAAa,EAAA;;;;;;;;;;;KAEP,UAAU,EAAE,aAAa;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/features.ts","../src/types/tool-target-tuples.ts","../src/types/tool-targets.ts","../src/lib/convert.ts","../src/types/ai-dir.ts","../src/features/skills/rulesync-skill.ts","../src/lib/generate.ts","../src/lib/import.ts","../src/index.ts"],"mappings":";;cAEa;cAcP,eAAa,EAAA;;;;;;;;;;;KAEP,UAAU,EAAE,aAAa;;;cC6OxB;;;KCrPR,wBAAwB;cAEhB,4BAA4B,kBAAkB;cAM9C,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEjB,aAAa,EAAE,aAAa;;;KCN5B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KCnBU;EAEN;EACA;;EAGA;EACA,OAAO;;KAGD;EACV;EACA,YAAY;;KAGF;EACV;EACA;EACA;EACA;IACE;IACA;IACA,cAAc;;EAEhB,aAAa;EACb;;KAGU,qBAAqB,KAC/B;uBAIoB;;;;qBAID;;;;qBAKA;;;;qBAKA;;;;YAKT;IACR;IACA;IACA,cAAc;;;;;YAMN,YAAY;;;;qBAKH;EAEnB,cACE,YACA,iBACA,SACA,UACA,YACA,UACC;SAcU,QAAQ,SAAS,qBAAqB,QAAQ;EAI3D;EAIA;EAIA;EAIA;EAqBA;IAEM;IACA;IACA,cAAc;;EAMpB,iBAAiB;;;;EAOjB;EAIA;EAIA,YAAY,cAAc,cAAc,cAAc;;;;;;;;;;;mBAc/B,kBACrB,oBACA,yBACA,iBACA,0BACC,QAAQ;WAmBF,YAAY;;;;cCrLjB,wCAAsC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8LhC;EACV;EACA;EACA;EACA;EACA;EACA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ;IACR;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;MACE;MACA;MACA;MACA;MACA;MACA;;IAEF;MACE;;IAEF;MACE,QAAQ;QACN;QACA;QACA;QACA;QACA;;;;EAIN;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;;EAEF;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA,gBAAgB;IAChB,WAAW;;EAEb;IACE;;EAEF;IACE;IACA;IACA,gBAAgB;IAChB,WAAW;;EAEb,MAAM;EACN,QAAQ;EACR;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA,WAAW;;EAEb;IACE;IACA;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;IACA;;EAEF;IACE;IACA;;;KAKQ,2BAA2B,EAAE,aAAa;KAO1C;EACV;EACA;EACA;EACA,aAAa;EACb;EACA,aAAa;EACb;EACA;;KAGU;EACV;;KAGU;EACV;EACA;EACA;EACA;;;;;;cAOW,sBAAsB;EACjC,cACE,YACA,iBACA,SACA,aACA,MACA,YACA,UACA,UACC;SAsBI,oBAAoB;EAU3B,kBAAkB;EAQlB;EAIA,YAAY;SAcC,UACX,YACA,iBACA,SACA,UACC,6BAA6B,QAAQ;;;;KChZ9B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;;;;KCPU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KCjCG;EACH;EACA;EACA;EACA;;KAGU,kBAAkB;EAC5B,UAAU;EACV,WAAW;EACX;;;;;;;EAOA;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU,gBAAgB;EAC1B,QAAQ;EACR,WAAW;;KAGD,iBAAiB;EAC3B,MAAM;EACN,IAAI;EACJ,WAAW;EACX;;iBAGoB,SAAS,UAAS,kBAAuB,QAAQ;iBAqBjD,eAAe,SAAS,gBAAgB,QAAQ;iBAehD,gBAAgB,SAAS,iBAAiB,QAAQ"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { V as ConsoleLogger, a as convertFromTool$1, n as checkRulesyncDirExists, r as generate$1, st as ALL_TOOL_TARGETS, t as importFromTool$1, z as ConfigResolver, zt as ALL_FEATURES } from "./import-CSnC5vl7.js";
|
|
2
2
|
//#region src/index.ts
|
|
3
3
|
async function generate(options = {}) {
|
|
4
4
|
const { silent = true, verbose = false, ...rest } = options;
|