rulesync 16.26.1 → 16.28.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.
@@ -444,34 +444,34 @@ const isFeatureValueEnabled = (value) => {
444
444
  const parseCommaSeparatedList = (value) => value.split(",").map((s) => s.trim()).filter(Boolean);
445
445
  //#endregion
446
446
  //#region src/constants/rulesync-paths.ts
447
- const { join: join$305 } = node_path.posix;
447
+ const { join: join$307 } = node_path.posix;
448
448
  const RULESYNC_CONFIG_RELATIVE_FILE_PATH = "rulesync.jsonc";
449
449
  const RULESYNC_LOCAL_CONFIG_RELATIVE_FILE_PATH = "rulesync.local.jsonc";
450
450
  const RULESYNC_RELATIVE_DIR_PATH = ".rulesync";
451
451
  const RULES_FEATURE_SUBDIR = "rules";
452
- const CURATED_RULES_FEATURE_SUBDIR = join$305(RULES_FEATURE_SUBDIR, ".curated");
452
+ const CURATED_RULES_FEATURE_SUBDIR = join$307(RULES_FEATURE_SUBDIR, ".curated");
453
453
  const COMMANDS_FEATURE_SUBDIR = "commands";
454
454
  const SUBAGENTS_FEATURE_SUBDIR = "subagents";
455
455
  const CHECKS_FEATURE_SUBDIR = "checks";
456
456
  const SKILLS_FEATURE_SUBDIR = "skills";
457
- const CURATED_SKILLS_FEATURE_SUBDIR = join$305(SKILLS_FEATURE_SUBDIR, ".curated");
458
- const RULESYNC_RULES_RELATIVE_DIR_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, RULES_FEATURE_SUBDIR);
459
- const RULESYNC_CURATED_RULES_RELATIVE_DIR_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, CURATED_RULES_FEATURE_SUBDIR);
460
- const RULESYNC_COMMANDS_RELATIVE_DIR_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, COMMANDS_FEATURE_SUBDIR);
461
- const RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, SUBAGENTS_FEATURE_SUBDIR);
462
- const RULESYNC_CHECKS_RELATIVE_DIR_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, CHECKS_FEATURE_SUBDIR);
463
- const RULESYNC_MCP_RELATIVE_FILE_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, "mcp.jsonc");
464
- const RULESYNC_HOOKS_RELATIVE_FILE_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, "hooks.jsonc");
465
- const RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, "permissions.jsonc");
466
- join$305(RULESYNC_RELATIVE_DIR_PATH, "mcp.json");
467
- const RULESYNC_HOOKS_LEGACY_RELATIVE_FILE_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, "hooks.json");
468
- const RULESYNC_PERMISSIONS_LEGACY_RELATIVE_FILE_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, "permissions.json");
457
+ const CURATED_SKILLS_FEATURE_SUBDIR = join$307(SKILLS_FEATURE_SUBDIR, ".curated");
458
+ const RULESYNC_RULES_RELATIVE_DIR_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, RULES_FEATURE_SUBDIR);
459
+ const RULESYNC_CURATED_RULES_RELATIVE_DIR_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, CURATED_RULES_FEATURE_SUBDIR);
460
+ const RULESYNC_COMMANDS_RELATIVE_DIR_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, COMMANDS_FEATURE_SUBDIR);
461
+ const RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, SUBAGENTS_FEATURE_SUBDIR);
462
+ const RULESYNC_CHECKS_RELATIVE_DIR_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, CHECKS_FEATURE_SUBDIR);
463
+ const RULESYNC_MCP_RELATIVE_FILE_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, "mcp.jsonc");
464
+ const RULESYNC_HOOKS_RELATIVE_FILE_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, "hooks.jsonc");
465
+ const RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, "permissions.jsonc");
466
+ join$307(RULESYNC_RELATIVE_DIR_PATH, "mcp.json");
467
+ const RULESYNC_HOOKS_LEGACY_RELATIVE_FILE_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, "hooks.json");
468
+ const RULESYNC_PERMISSIONS_LEGACY_RELATIVE_FILE_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, "permissions.json");
469
469
  const RULESYNC_AIIGNORE_FILE_NAME = ".aiignore";
470
- const RULESYNC_AIIGNORE_RELATIVE_FILE_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, ".aiignore");
470
+ const RULESYNC_AIIGNORE_RELATIVE_FILE_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, ".aiignore");
471
471
  const RULESYNC_IGNORE_RELATIVE_FILE_PATH = ".rulesyncignore";
472
472
  const RULESYNC_OVERVIEW_FILE_NAME = "overview.md";
473
- const RULESYNC_SKILLS_RELATIVE_DIR_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, SKILLS_FEATURE_SUBDIR);
474
- const RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH = join$305(RULESYNC_RELATIVE_DIR_PATH, CURATED_SKILLS_FEATURE_SUBDIR);
473
+ const RULESYNC_SKILLS_RELATIVE_DIR_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, SKILLS_FEATURE_SUBDIR);
474
+ const RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH = join$307(RULESYNC_RELATIVE_DIR_PATH, CURATED_SKILLS_FEATURE_SUBDIR);
475
475
  const RULESYNC_SOURCES_LOCK_RELATIVE_FILE_PATH = "rulesync.lock";
476
476
  const RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH = "rulesync-npm.lock.json";
477
477
  const RULESYNC_MCP_FILE_NAME = "mcp.jsonc";
@@ -529,7 +529,8 @@ const rulesProcessorToolTargetTuple = [
529
529
  "devin",
530
530
  "zcode",
531
531
  "zed",
532
- "zoocode"
532
+ "zoocode",
533
+ "pool"
533
534
  ];
534
535
  const ignoreProcessorToolTargetTuple = [
535
536
  "aiassistant",
@@ -22596,6 +22597,66 @@ const DEEPAGENTS_MCP_FILE_NAME = ".mcp.json";
22596
22597
  const DEEPAGENTS_CONFIG_FILE_NAME = "config.toml";
22597
22598
  const DEEPAGENTS_HOOKS_FILE_NAME = "hooks.json";
22598
22599
  //#endregion
22600
+ //#region src/utils/deepagents.ts
22601
+ const DEEPAGENTS_HOME_ENV = "DEEPAGENTS_HOME";
22602
+ /**
22603
+ * The profile root dcode reads when `DEEPAGENTS_HOME` is set, or `undefined`
22604
+ * when the default `~/.deepagents/` applies.
22605
+ *
22606
+ * Upstream captures the variable once at launch and accepts exactly two
22607
+ * spellings: an absolute path, or one beginning with `~/` (expanded against the
22608
+ * launch home). Anything else — a bare `~`, a `~user` form, a relative path —
22609
+ * makes dcode refuse to start, so the same value is rejected here rather than
22610
+ * resolved against the working directory: there is no location such a value
22611
+ * could name that dcode would read.
22612
+ *
22613
+ * @see https://github.com/langchain-ai/deepagents/blob/main/libs/code/deepagents_code/_paths.py
22614
+ */
22615
+ function getDeepagentsHome() {
22616
+ const configured = process.env[DEEPAGENTS_HOME_ENV]?.trim();
22617
+ if (!configured) return void 0;
22618
+ let root;
22619
+ if (configured.startsWith("~/")) root = (0, node_path.resolve)(getHomeDirectory(), configured.slice(2).replace(/^\/+/, ""));
22620
+ else if ((0, node_path.isAbsolute)(configured)) root = (0, node_path.resolve)(configured);
22621
+ else throw new Error(`Invalid ${DEEPAGENTS_HOME_ENV} ${JSON.stringify(configured)}: dcode accepts only an absolute path or a path beginning with "~/", so it would not start with this value. Unset it or point it at an absolute path.`);
22622
+ if (root === (0, node_path.resolve)(getHomeDirectory())) throw new Error(`Invalid ${DEEPAGENTS_HOME_ENV} ${JSON.stringify(configured)}: the home directory itself cannot be a profile, so dcode would not start with this value. Point it at a subdirectory such as "~/.deepagents".`);
22623
+ return root;
22624
+ }
22625
+ /**
22626
+ * Map a canonical `.deepagents/...` path constant onto the directory rulesync
22627
+ * actually writes in the requested scope.
22628
+ *
22629
+ * Project scope keeps the constant as-is (the project tree is `.deepagents/`
22630
+ * everywhere). Global scope without an override keeps it too, under the home
22631
+ * output root. When `DEEPAGENTS_HOME` is set, that directory *is* the profile
22632
+ * root, so the `.deepagents` prefix is stripped: `~/.deepagents/agent/skills`
22633
+ * becomes `$DEEPAGENTS_HOME/agent/skills`.
22634
+ */
22635
+ function getDeepagentsRelativeDirPath({ global, relativeDirPath }) {
22636
+ if (!global || !getDeepagentsHome()) return relativeDirPath;
22637
+ const relativePath = (0, node_path.relative)(DEEPAGENTS_DIR, relativeDirPath);
22638
+ try {
22639
+ checkPathTraversal({
22640
+ relativePath: relativeDirPath,
22641
+ intendedRootDir: "."
22642
+ });
22643
+ checkPathTraversal({
22644
+ relativePath,
22645
+ intendedRootDir: DEEPAGENTS_DIR
22646
+ });
22647
+ } catch {
22648
+ throw new Error(`deepagents global path must be within ${DEEPAGENTS_DIR}: ${relativeDirPath}`);
22649
+ }
22650
+ return relativePath || ".";
22651
+ }
22652
+ function getDeepagentsRulesyncOutputRoot({ nativeOutputRoot, global }) {
22653
+ return getToolRulesyncOutputRoot({
22654
+ nativeOutputRoot,
22655
+ global,
22656
+ toolHome: getDeepagentsHome
22657
+ });
22658
+ }
22659
+ //#endregion
22599
22660
  //#region src/features/hooks/deepagents-hooks.ts
22600
22661
  function isRecord(value) {
22601
22662
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -22710,9 +22771,12 @@ var DeepagentsHooks = class DeepagentsHooks extends ToolHooks {
22710
22771
  isDeletable() {
22711
22772
  return true;
22712
22773
  }
22713
- static getSettablePaths(_options = {}) {
22774
+ static getSettablePaths({ global = false } = {}) {
22714
22775
  return {
22715
- relativeDirPath: DEEPAGENTS_DIR,
22776
+ relativeDirPath: getDeepagentsRelativeDirPath({
22777
+ global,
22778
+ relativeDirPath: DEEPAGENTS_DIR
22779
+ }),
22716
22780
  relativeFilePath: DEEPAGENTS_HOOKS_FILE_NAME
22717
22781
  };
22718
22782
  }
@@ -22724,7 +22788,8 @@ var DeepagentsHooks = class DeepagentsHooks extends ToolHooks {
22724
22788
  relativeDirPath: paths.relativeDirPath,
22725
22789
  relativeFilePath: paths.relativeFilePath,
22726
22790
  fileContent,
22727
- validate
22791
+ validate,
22792
+ global
22728
22793
  });
22729
22794
  }
22730
22795
  static fromRulesyncHooks({ outputRoot = process.cwd(), rulesyncHooks, validate = true, global = false }) {
@@ -22748,10 +22813,16 @@ var DeepagentsHooks = class DeepagentsHooks extends ToolHooks {
22748
22813
  }
22749
22814
  const rawHooks = isRecord(parsed) ? parsed.hooks : void 0;
22750
22815
  const hooks = Array.isArray(rawHooks) ? deepagentsLegacyToCanonicalHooks(rawHooks) : isRecord(rawHooks) ? deepagentsToCanonicalHooks(rawHooks) : {};
22751
- return this.toRulesyncHooksDefault({ fileContent: JSON.stringify(buildImportedHooksConfig({
22752
- hooks,
22753
- overrideKey: "deepagents"
22754
- }), null, 2) });
22816
+ return this.toRulesyncHooksDefault({
22817
+ outputRoot: getDeepagentsRulesyncOutputRoot({
22818
+ nativeOutputRoot: this.outputRoot,
22819
+ global: this.global
22820
+ }),
22821
+ fileContent: JSON.stringify(buildImportedHooksConfig({
22822
+ hooks,
22823
+ overrideKey: "deepagents"
22824
+ }), null, 2)
22825
+ });
22755
22826
  }
22756
22827
  validate() {
22757
22828
  return {
@@ -30099,9 +30170,12 @@ var DeepagentsMcp = class DeepagentsMcp extends ToolMcp {
30099
30170
  isDeletable() {
30100
30171
  return !this.global;
30101
30172
  }
30102
- static getSettablePaths(_options = {}) {
30173
+ static getSettablePaths({ global = false } = {}) {
30103
30174
  return {
30104
- relativeDirPath: DEEPAGENTS_DIR,
30175
+ relativeDirPath: getDeepagentsRelativeDirPath({
30176
+ global,
30177
+ relativeDirPath: DEEPAGENTS_DIR
30178
+ }),
30105
30179
  relativeFilePath: DEEPAGENTS_MCP_FILE_NAME
30106
30180
  };
30107
30181
  }
@@ -30118,7 +30192,8 @@ var DeepagentsMcp = class DeepagentsMcp extends ToolMcp {
30118
30192
  relativeDirPath: paths.relativeDirPath,
30119
30193
  relativeFilePath: paths.relativeFilePath,
30120
30194
  fileContent: JSON.stringify(newJson, null, 2),
30121
- validate
30195
+ validate,
30196
+ global
30122
30197
  });
30123
30198
  }
30124
30199
  static async fromRulesyncMcp({ outputRoot = process.cwd(), rulesyncMcp, validate = true, global = false, logger }) {
@@ -30149,7 +30224,13 @@ var DeepagentsMcp = class DeepagentsMcp extends ToolMcp {
30149
30224
  toRulesyncMcp() {
30150
30225
  const servers = isRecord$1(this.json.mcpServers) ? this.json.mcpServers : {};
30151
30226
  const mcpServers = Object.fromEntries(Object.entries(servers).map(([name, server]) => [name, isRecord$1(server) ? toRulesyncServer(server) : server]));
30152
- return this.toRulesyncMcpDefault({ fileContent: JSON.stringify({ mcpServers }, null, 2) });
30227
+ return this.toRulesyncMcpDefault({
30228
+ outputRoot: getDeepagentsRulesyncOutputRoot({
30229
+ nativeOutputRoot: this.outputRoot,
30230
+ global: this.global
30231
+ }),
30232
+ fileContent: JSON.stringify({ mcpServers }, null, 2)
30233
+ });
30153
30234
  }
30154
30235
  validate() {
30155
30236
  return {
@@ -39978,9 +40059,12 @@ var DeepagentsPermissions = class DeepagentsPermissions extends ToolPermissions
39978
40059
  shouldSkipCreationWhenPayloadEmpty() {
39979
40060
  return true;
39980
40061
  }
39981
- static getSettablePaths(_options) {
40062
+ static getSettablePaths({ global = false } = {}) {
39982
40063
  return {
39983
- relativeDirPath: DEEPAGENTS_DIR,
40064
+ relativeDirPath: getDeepagentsRelativeDirPath({
40065
+ global,
40066
+ relativeDirPath: DEEPAGENTS_DIR
40067
+ }),
39984
40068
  relativeFilePath: DEEPAGENTS_CONFIG_FILE_NAME
39985
40069
  };
39986
40070
  }
@@ -40079,7 +40163,14 @@ var DeepagentsPermissions = class DeepagentsPermissions extends ToolPermissions
40079
40163
  if (Object.keys(startupOverride).length > 0) deepagents.startup = startupOverride;
40080
40164
  if (Object.keys(extensionsOverride).length > 0) deepagents.extensions = extensionsOverride;
40081
40165
  if (Object.keys(deepagents).length > 0) result.deepagents = deepagents;
40082
- return this.toRulesyncPermissionsDefault({ fileContent: JSON.stringify(result, null, 2) });
40166
+ return RulesyncPermissions.fromImportedFileContent({
40167
+ outputRoot: getDeepagentsRulesyncOutputRoot({
40168
+ nativeOutputRoot: this.outputRoot,
40169
+ global: this.global
40170
+ }),
40171
+ sourcePath: this.getRelativePathFromCwd(),
40172
+ fileContent: JSON.stringify(result, null, 2)
40173
+ });
40083
40174
  }
40084
40175
  validate() {
40085
40176
  return {
@@ -51806,7 +51897,10 @@ var DeepagentsSkill = class DeepagentsSkill extends ToolSkill {
51806
51897
  }
51807
51898
  }
51808
51899
  static getSettablePaths({ global = false } = {}) {
51809
- return { relativeDirPath: global ? DEEPAGENTS_GLOBAL_SKILLS_DIR_PATH : DEEPAGENTS_SKILLS_DIR_PATH };
51900
+ return { relativeDirPath: getDeepagentsRelativeDirPath({
51901
+ global,
51902
+ relativeDirPath: global ? DEEPAGENTS_GLOBAL_SKILLS_DIR_PATH : DEEPAGENTS_SKILLS_DIR_PATH
51903
+ }) };
51810
51904
  }
51811
51905
  getFrontmatter() {
51812
51906
  return DeepagentsSkillFrontmatterSchema.parse(this.requireMainFileFrontmatter());
@@ -51846,7 +51940,10 @@ var DeepagentsSkill = class DeepagentsSkill extends ToolSkill {
51846
51940
  ...Object.keys(deepagentsBlock).length > 0 && { deepagents: deepagentsBlock }
51847
51941
  };
51848
51942
  return new RulesyncSkill({
51849
- outputRoot: this.outputRoot,
51943
+ outputRoot: getDeepagentsRulesyncOutputRoot({
51944
+ nativeOutputRoot: this.outputRoot,
51945
+ global: this.global
51946
+ }),
51850
51947
  relativeDirPath: RULESYNC_SKILLS_RELATIVE_DIR_PATH,
51851
51948
  dirName: this.getDirName(),
51852
51949
  frontmatter: rulesyncFrontmatter,
@@ -57941,7 +58038,10 @@ var DeepagentsSubagent = class DeepagentsSubagent extends ToolSubagent {
57941
58038
  this.body = body;
57942
58039
  }
57943
58040
  static getSettablePaths({ global = false } = {}) {
57944
- return { relativeDirPath: global ? DEEPAGENTS_GLOBAL_AGENTS_DIR_PATH : DEEPAGENTS_AGENTS_DIR_PATH };
58041
+ return { relativeDirPath: getDeepagentsRelativeDirPath({
58042
+ global,
58043
+ relativeDirPath: global ? DEEPAGENTS_GLOBAL_AGENTS_DIR_PATH : DEEPAGENTS_AGENTS_DIR_PATH
58044
+ }) };
57945
58045
  }
57946
58046
  getFrontmatter() {
57947
58047
  return this.frontmatter;
@@ -57960,7 +58060,10 @@ var DeepagentsSubagent = class DeepagentsSubagent extends ToolSubagent {
57960
58060
  ...Object.keys(deepagentsSection).length > 0 && { deepagents: deepagentsSection }
57961
58061
  };
57962
58062
  return new RulesyncSubagent({
57963
- outputRoot: this.getOutputRoot(),
58063
+ outputRoot: getDeepagentsRulesyncOutputRoot({
58064
+ nativeOutputRoot: this.getOutputRoot(),
58065
+ global: this.global
58066
+ }),
57964
58067
  frontmatter: rulesyncFrontmatter,
57965
58068
  body: this.body,
57966
58069
  relativeDirPath: RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH,
@@ -58003,7 +58106,8 @@ var DeepagentsSubagent = class DeepagentsSubagent extends ToolSubagent {
58003
58106
  relativeDirPath: paths.relativeDirPath,
58004
58107
  relativeFilePath: (0, node_path.join)(subagentName, DEEPAGENTS_SUBAGENT_FILE_NAME),
58005
58108
  fileContent,
58006
- validate
58109
+ validate,
58110
+ global
58007
58111
  });
58008
58112
  }
58009
58113
  validate() {
@@ -58041,7 +58145,8 @@ var DeepagentsSubagent = class DeepagentsSubagent extends ToolSubagent {
58041
58145
  frontmatter: result.data,
58042
58146
  body: content.trim(),
58043
58147
  fileContent,
58044
- validate
58148
+ validate,
58149
+ global
58045
58150
  });
58046
58151
  }
58047
58152
  static forDeletion({ outputRoot = process.cwd(), relativeDirPath, relativeFilePath }) {
@@ -64047,7 +64152,10 @@ var DeepagentsRule = class DeepagentsRule extends ToolRule {
64047
64152
  }
64048
64153
  static getSettablePaths({ global = false } = {}) {
64049
64154
  return { root: {
64050
- relativeDirPath: global ? DEEPAGENTS_GLOBAL_DIR : DEEPAGENTS_DIR,
64155
+ relativeDirPath: getDeepagentsRelativeDirPath({
64156
+ global,
64157
+ relativeDirPath: global ? DEEPAGENTS_GLOBAL_DIR : DEEPAGENTS_DIR
64158
+ }),
64051
64159
  relativeFilePath: DEEPAGENTS_RULE_FILE_NAME
64052
64160
  } };
64053
64161
  }
@@ -64061,17 +64169,19 @@ var DeepagentsRule = class DeepagentsRule extends ToolRule {
64061
64169
  relativeFilePath: settablePaths.root.relativeFilePath,
64062
64170
  fileContent,
64063
64171
  validate,
64064
- root: true
64172
+ root: true,
64173
+ global
64065
64174
  });
64066
64175
  }
64067
- static forDeletion({ outputRoot = process.cwd(), relativeDirPath, relativeFilePath }) {
64176
+ static forDeletion({ outputRoot = process.cwd(), relativeDirPath, relativeFilePath, global = false }) {
64177
+ const isRoot = relativeFilePath === "AGENTS.md" && relativeDirPath === this.getSettablePaths({ global }).root.relativeDirPath;
64068
64178
  return new DeepagentsRule({
64069
64179
  outputRoot,
64070
64180
  relativeDirPath,
64071
64181
  relativeFilePath,
64072
64182
  fileContent: "",
64073
64183
  validate: false,
64074
- root: relativeFilePath === "AGENTS.md" && (relativeDirPath === ".deepagents" || relativeDirPath === DEEPAGENTS_GLOBAL_DIR)
64184
+ root: isRoot
64075
64185
  });
64076
64186
  }
64077
64187
  static fromRulesyncRule({ outputRoot = process.cwd(), rulesyncRule, validate = true, global = false }) {
@@ -65796,6 +65906,132 @@ var PiRule = class PiRule extends ToolRule {
65796
65906
  }
65797
65907
  };
65798
65908
  //#endregion
65909
+ //#region src/constants/pool-paths.ts
65910
+ /**
65911
+ * Pool (Poolside's coding agent CLI) configuration-layout conventions.
65912
+ *
65913
+ * Pool reads `AGENTS.md` instruction files the same way the AGENTS.md standard
65914
+ * describes them: the personal `~/.config/poolside/AGENTS.md` (Pool itself
65915
+ * honours `XDG_CONFIG_HOME` upstream; rulesync writes only the XDG-default
65916
+ * path), the project-root `AGENTS.md`, and nested per-directory
65917
+ * `AGENTS.md` files from the repository root down through the working
65918
+ * directory, deeper files taking precedence. It skips ignored directories
65919
+ * (`.git/`, `node_modules/`, cache directories, repository ignore rules).
65920
+ *
65921
+ * @see https://docs.poolside.ai/agent-instructions
65922
+ * @see https://github.com/poolsideai/pool
65923
+ */
65924
+ /** Global config directory for Pool, relative to the home directory. */
65925
+ const POOL_GLOBAL_DIR = (0, node_path.join)(".config", "poolside");
65926
+ //#endregion
65927
+ //#region src/features/rules/pool-rule.ts
65928
+ var PoolRule = class PoolRule extends ToolRule {
65929
+ static getSettablePaths({ global = false } = {}) {
65930
+ if (global) return { root: {
65931
+ relativeDirPath: POOL_GLOBAL_DIR,
65932
+ relativeFilePath: AGENTSMD_RULE_FILE_NAME
65933
+ } };
65934
+ return { root: {
65935
+ relativeDirPath: ".",
65936
+ relativeFilePath: AGENTSMD_RULE_FILE_NAME
65937
+ } };
65938
+ }
65939
+ /**
65940
+ * Pool reads personal, project, and directory-level `AGENTS.md` files: inside
65941
+ * a git repository it loads every `AGENTS.md` from the repository root down
65942
+ * through the working directory (deeper files take precedence), skipping
65943
+ * ignored directories. Nested files are therefore a real scoping surface, not
65944
+ * just the root file's overflow.
65945
+ *
65946
+ * The scan mirrors the AGENTS.md standard's nested discovery — same file
65947
+ * name, same exclusions, import-only, project scope — because it discovers
65948
+ * literally the same files.
65949
+ * @see https://docs.poolside.ai/agent-instructions
65950
+ */
65951
+ static getNestedFilePatterns() {
65952
+ return this.buildNestedFilePatterns({ fileName: AGENTSMD_RULE_FILE_NAME });
65953
+ }
65954
+ /**
65955
+ * The subproject directory this rule scopes, or `undefined` for the root file
65956
+ * (project or global).
65957
+ */
65958
+ getSubprojectPath() {
65959
+ return this.getNestedSubprojectPath({ fileName: AGENTSMD_RULE_FILE_NAME });
65960
+ }
65961
+ static async fromFile({ outputRoot = process.cwd(), relativeFilePath: _relativeFilePath, relativeDirPath: overrideDirPath, validate = true, global = false }) {
65962
+ const { root } = this.getSettablePaths({ global });
65963
+ if (overrideDirPath !== void 0 && overrideDirPath !== root.relativeDirPath && overrideDirPath !== ".") {
65964
+ const fileContent = await readFileContent((0, node_path.join)(outputRoot, overrideDirPath, AGENTSMD_RULE_FILE_NAME));
65965
+ return new PoolRule({
65966
+ outputRoot,
65967
+ relativeDirPath: overrideDirPath,
65968
+ relativeFilePath: AGENTSMD_RULE_FILE_NAME,
65969
+ fileContent,
65970
+ validate,
65971
+ root: false
65972
+ });
65973
+ }
65974
+ const fileContent = await readFileContent((0, node_path.join)(outputRoot, root.relativeDirPath, root.relativeFilePath));
65975
+ return new PoolRule({
65976
+ outputRoot,
65977
+ relativeDirPath: root.relativeDirPath,
65978
+ relativeFilePath: root.relativeFilePath,
65979
+ fileContent,
65980
+ validate,
65981
+ root: true
65982
+ });
65983
+ }
65984
+ static fromRulesyncRule({ outputRoot = process.cwd(), rulesyncRule, validate = true, global = false }) {
65985
+ const { root } = this.getSettablePaths({ global });
65986
+ const frontmatter = rulesyncRule.getFrontmatter();
65987
+ const isRoot = frontmatter.root ?? false;
65988
+ const subprojectPath = frontmatter.agentsmd?.subprojectPath;
65989
+ if (!global && !isRoot && subprojectPath) return new PoolRule({
65990
+ outputRoot,
65991
+ relativeDirPath: (0, node_path.join)(subprojectPath),
65992
+ relativeFilePath: AGENTSMD_RULE_FILE_NAME,
65993
+ fileContent: rulesyncRule.getBody(),
65994
+ validate,
65995
+ root: false
65996
+ });
65997
+ return new PoolRule({
65998
+ outputRoot,
65999
+ relativeDirPath: root.relativeDirPath,
66000
+ relativeFilePath: root.relativeFilePath,
66001
+ fileContent: rulesyncRule.getBody(),
66002
+ validate,
66003
+ root: isRoot
66004
+ });
66005
+ }
66006
+ toRulesyncRule() {
66007
+ const subprojectPath = this.getSubprojectPath();
66008
+ if (subprojectPath === void 0) return this.toRulesyncRuleDefault();
66009
+ return this.toRulesyncRuleNestedAgentsmd({ subprojectPath });
66010
+ }
66011
+ validate() {
66012
+ return {
66013
+ success: true,
66014
+ error: null
66015
+ };
66016
+ }
66017
+ static forDeletion({ outputRoot = process.cwd(), relativeDirPath, relativeFilePath }) {
66018
+ return new PoolRule({
66019
+ outputRoot,
66020
+ relativeDirPath,
66021
+ relativeFilePath,
66022
+ fileContent: "",
66023
+ validate: false,
66024
+ root: relativeFilePath === "AGENTS.md" && (relativeDirPath === "." || relativeDirPath === POOL_GLOBAL_DIR)
66025
+ });
66026
+ }
66027
+ static isTargetedByRulesyncRule(rulesyncRule) {
66028
+ return this.isTargetedByRulesyncRuleDefault({
66029
+ rulesyncRule,
66030
+ toolTarget: "pool"
66031
+ });
66032
+ }
66033
+ };
66034
+ //#endregion
65799
66035
  //#region src/features/rules/qwencode-rule.ts
65800
66036
  /**
65801
66037
  * Frontmatter schema for Qwen Code path-based context rules (`.qwen/rules/*.md`).
@@ -67435,6 +67671,15 @@ const toolRuleFactories = /* @__PURE__ */ new Map([
67435
67671
  supportsGlobal: true,
67436
67672
  ruleDiscoveryMode: "auto"
67437
67673
  }
67674
+ }],
67675
+ ["pool", {
67676
+ class: PoolRule,
67677
+ meta: {
67678
+ extension: "md",
67679
+ supportsGlobal: true,
67680
+ ruleDiscoveryMode: "auto",
67681
+ collisionPolicy: "fold"
67682
+ }
67438
67683
  }]
67439
67684
  ]);
67440
67685
  const allToolTargetKeys = [...toolRuleFactories.keys()];
@@ -68513,12 +68758,13 @@ async function assertPluginRootSafe(params) {
68513
68758
  //#region src/utils/tool-output-root.ts
68514
68759
  /** The environment variable each tool reads for its profile root. */
68515
68760
  const TOOL_HOME_ENV_VARS = {
68761
+ deepagents: "DEEPAGENTS_HOME",
68516
68762
  hermesagent: "HERMES_HOME",
68517
68763
  "kimi-code": "KIMI_CODE_HOME"
68518
68764
  };
68519
68765
  /**
68520
- * Substitute a tool's home override (`HERMES_HOME`, `KIMI_CODE_HOME`) for the
68521
- * output root in global scope.
68766
+ * Substitute a tool's home override (`DEEPAGENTS_HOME`, `HERMES_HOME`,
68767
+ * `KIMI_CODE_HOME`) for the output root in global scope.
68522
68768
  *
68523
68769
  * The override wins over `--output-roots`: it names where the tool itself reads
68524
68770
  * its profile, so writing anywhere else would produce files the tool ignores.
@@ -68533,7 +68779,7 @@ function resolveToolOutputRoot({ outputRoot, toolTarget, global }) {
68533
68779
  const resolved = toolTarget === "hermesagent" ? resolveHermesagentOutputRoot({
68534
68780
  outputRoot,
68535
68781
  global
68536
- }) : toolTarget === "kimi-code" ? getKimiCodeHome() ?? outputRoot : outputRoot;
68782
+ }) : toolTarget === "kimi-code" ? getKimiCodeHome() ?? outputRoot : toolTarget === "deepagents" ? getDeepagentsHome() ?? outputRoot : outputRoot;
68537
68783
  if (resolved === outputRoot) return resolved;
68538
68784
  try {
68539
68785
  validateOutputRoot(resolved);
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_import = require("./import-LjMdFijG.cjs");
2
+ const require_import = require("./import-hiWvR9cE.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
@@ -14,7 +14,7 @@ declare const FeatureSchema: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
14
14
  type Feature = z.infer<typeof FeatureSchema>;
15
15
  //#endregion
16
16
  //#region src/types/tool-target-tuples.d.ts
17
- declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codebuddy", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kimi-code", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "crush", "cursor", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "reasonix", "roo", "devin", "vibe", "warp", "zed", "zoocode"], readonly ["aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "musecode", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "devin", "warp", "zcode"], readonly ["kilo", "agentsmd", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "vibe", "zcode"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["amp", "cline", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "kilo", "cursor", "claudecode", "claudecode-plugin", "codexcli", "copilot", "copilotcli", "opencode", "pi", "factorydroid", "goose", "hermesagent", "kimi-code", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli", "zcode"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "zed", "zoocode"], readonly ["amp", "augmentcode", "cursor", "factorydroid", "hermesagent", "rovodev", "takt"]];
17
+ declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codebuddy", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kimi-code", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode", "pool"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "crush", "cursor", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "reasonix", "roo", "devin", "vibe", "warp", "zed", "zoocode"], readonly ["aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "musecode", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "devin", "warp", "zcode"], readonly ["kilo", "agentsmd", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "vibe", "zcode"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["amp", "cline", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "kilo", "cursor", "claudecode", "claudecode-plugin", "codexcli", "copilot", "copilotcli", "opencode", "pi", "factorydroid", "goose", "hermesagent", "kimi-code", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli", "zcode"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "zed", "zoocode"], readonly ["amp", "augmentcode", "cursor", "factorydroid", "hermesagent", "rovodev", "takt"]];
18
18
  //#endregion
19
19
  //#region src/types/tool-targets.d.ts
20
20
  type AllToolTarget = (typeof ALL_TOOL_TARGET_TUPLES)[number][number];
@@ -54,6 +54,7 @@ declare const ToolTargetSchema: z.ZodMiniEnum<{
54
54
  musecode: "musecode";
55
55
  opencode: "opencode";
56
56
  pi: "pi";
57
+ pool: "pool";
57
58
  qwencode: "qwencode";
58
59
  reasonix: "reasonix";
59
60
  replit: "replit";
@@ -333,6 +334,7 @@ declare const RulesyncSkillFrontmatterSchemaInternal: z.ZodMiniObject<{
333
334
  musecode: "musecode";
334
335
  opencode: "opencode";
335
336
  pi: "pi";
337
+ pool: "pool";
336
338
  qwencode: "qwencode";
337
339
  reasonix: "reasonix";
338
340
  replit: "replit";
@@ -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":";;qBAaa;cA+BP,eAAa,EAAA,uBAAA,EAAA;;;;;;;;;IAAoE,EAAA;KAE3E,UAAU,EAAE,aAAa;;;cC8QxB;;;KClTR,wBAAwB;qBAEhB,4BAA4B,kBAAkB;cAM9C,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEjB,aAAa,EAAE,aAAa;;;KCH5B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KCWU;EAEN;EACA;;EAGA;EACA,OAAO;;KAqBD;EACV;EACA,YAAY;;;;;;;;EAQZ;;;;;;;EAOA;;KAmnBU;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;SAyBU,QAAQ,SAAS,qBAAqB,QAAQ;EAI3D;EAIA;EAIA;;;;;;;;;;;;;;;;;;;;;EAwBA;;;;;;;;;;;;;EAgBA;EAqBA;EAqBA;IAEM;IACA;IACA,cAAc;;EAMpB,iBAAiB;;;;EAOjB;EAIA;EAIA,YAAY,cAAc,cAAc,cAAc;;;;;;;;;;iBAajC;;iBAWN;;;;;;iBASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkCA;iBA8CM;;;;;iBA6GN;;;;;;;iBAsDM;;;;;;;;;;;;;;;;;;;;;;;;;;mBA+FE,kBACrB,oBACA,yBACA,iBACA,0BACC,QAAQ;WAwGF,YAAY;;;;cC70CjB,wCAAsC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqV1C,EAAA,KAAA;KAMU;EACV;EACA;EACA;EACA;EACA;EACA;EACA,yBAAyB;EACzB,WAAW;EACX;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ;IACR;IACA;IACA;IACA;IACA;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;;EAEF;IACE;IACA;MACE;MACA;MACA;MACA;MACA;MACA;;IAEF;MACE;;IAEF;MACE,QAAQ;QACN;QACA;QACA;QACA;QACA;;;;EAIN;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;;EAEF;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb,MAAM;EACN,QAAQ;EACR,MAAM;EACN;IACE;IACA;IACA;IACA;IACA;IACA,cAAc;IACd;;EAEF;IACE;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ;IACR;IACA;;EAEF;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;;EAEF,cAAc;EACd;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA,WAAW;;;KAKH,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;;;;KCznB9B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;;;;;;EAMA;;;;;EAKA,0BAA0B;;KAuZhB;;;KCjbA;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KC/CG;EACH;EACA;EACA;EACA;;YAGU,kBAAkB;EAC5B,UAAU;EACV,WAAW;EACX;;;;;;;;;;;;;EAaA;;;;;;;;EAQA;EACA;EACA;EACA;EACA;EACA;EACA;;YAGU,gBAAgB;EAC1B,QAAQ;EACR,WAAW;;YAGD,iBAAiB;EAC3B,MAAM;EACN,IAAI;EACJ,WAAW;EACX;;wBAGoB,SAAS,UAAS,kBAAuB,QAAQ;wBAyBjD,eAAe,SAAS,gBAAgB,QAAQ;wBAehD,gBAAgB,SAAS,iBAAiB,QAAQ"}
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":";;qBAaa;cA+BP,eAAa,EAAA,uBAAA,EAAA;;;;;;;;;IAAoE,EAAA;KAE3E,UAAU,EAAE,aAAa;;;cC+QxB;;;KCnTR,wBAAwB;qBAEhB,4BAA4B,kBAAkB;cAM9C,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEjB,aAAa,EAAE,aAAa;;;KCH5B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KCWU;EAEN;EACA;;EAGA;EACA,OAAO;;KAqBD;EACV;EACA,YAAY;;;;;;;;EAQZ;;;;;;;EAOA;;KAmnBU;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;SAyBU,QAAQ,SAAS,qBAAqB,QAAQ;EAI3D;EAIA;EAIA;;;;;;;;;;;;;;;;;;;;;EAwBA;;;;;;;;;;;;;EAgBA;EAqBA;EAqBA;IAEM;IACA;IACA,cAAc;;EAMpB,iBAAiB;;;;EAOjB;EAIA;EAIA,YAAY,cAAc,cAAc,cAAc;;;;;;;;;;iBAajC;;iBAWN;;;;;;iBASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkCA;iBA8CM;;;;;iBA6GN;;;;;;;iBAsDM;;;;;;;;;;;;;;;;;;;;;;;;;;mBA+FE,kBACrB,oBACA,yBACA,iBACA,0BACC,QAAQ;WAwGF,YAAY;;;;cC70CjB,wCAAsC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqV1C,EAAA,KAAA;KAMU;EACV;EACA;EACA;EACA;EACA;EACA;EACA,yBAAyB;EACzB,WAAW;EACX;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ;IACR;IACA;IACA;IACA;IACA;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;;EAEF;IACE;IACA;MACE;MACA;MACA;MACA;MACA;MACA;;IAEF;MACE;;IAEF;MACE,QAAQ;QACN;QACA;QACA;QACA;QACA;;;;EAIN;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;;EAEF;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb,MAAM;EACN,QAAQ;EACR,MAAM;EACN;IACE;IACA;IACA;IACA;IACA;IACA,cAAc;IACd;;EAEF;IACE;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ;IACR;IACA;;EAEF;IACE;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;;EAEF;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;;EAEF,cAAc;EACd;IACE;IACA,yBAAyB;IACzB,WAAW;IACX;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;IACA,yBAAyB;IACzB,WAAW;;EAEb;IACE;IACA;IACA,WAAW;;;KAKH,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;;;;KCznB9B;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;;;;;;EAMA;;;;;EAKA,0BAA0B;;KAuZhB;;;KCjbA;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;KC/CG;EACH;EACA;EACA;EACA;;YAGU,kBAAkB;EAC5B,UAAU;EACV,WAAW;EACX;;;;;;;;;;;;;EAaA;;;;;;;;EAQA;EACA;EACA;EACA;EACA;EACA;EACA;;YAGU,gBAAgB;EAC1B,QAAQ;EACR,WAAW;;YAGD,iBAAiB;EAC3B,MAAM;EACN,IAAI;EACJ,WAAW;EACX;;wBAGoB,SAAS,UAAS,kBAAuB,QAAQ;wBAyBjD,eAAe,SAAS,gBAAgB,QAAQ;wBAehD,gBAAgB,SAAS,iBAAiB,QAAQ"}
package/dist/index.d.ts CHANGED
@@ -14,7 +14,7 @@ declare const FeatureSchema: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
14
14
  type Feature = z.infer<typeof FeatureSchema>;
15
15
  //#endregion
16
16
  //#region src/types/tool-target-tuples.d.ts
17
- declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codebuddy", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kimi-code", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "crush", "cursor", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "reasonix", "roo", "devin", "vibe", "warp", "zed", "zoocode"], readonly ["aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "musecode", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "devin", "warp", "zcode"], readonly ["kilo", "agentsmd", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "vibe", "zcode"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["amp", "cline", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "kilo", "cursor", "claudecode", "claudecode-plugin", "codexcli", "copilot", "copilotcli", "opencode", "pi", "factorydroid", "goose", "hermesagent", "kimi-code", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli", "zcode"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "zed", "zoocode"], readonly ["amp", "augmentcode", "cursor", "factorydroid", "hermesagent", "rovodev", "takt"]];
17
+ declare const ALL_TOOL_TARGET_TUPLES: readonly [readonly ["agentsmd", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "augmentcode-legacy", "claudecode", "claudecode-legacy", "cline", "codebuddy", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kimi-code", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode", "pool"], readonly ["aiassistant", "antigravity-cli", "augmentcode", "claudecode", "claudecode-legacy", "cline", "crush", "cursor", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "qwencode", "reasonix", "roo", "devin", "vibe", "warp", "zed", "zoocode"], readonly ["aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "kilo", "kiro", "kiro-cli", "kiro-ide", "junie", "musecode", "opencode", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["agentsmd", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "cursor", "factorydroid", "goose", "grokcli", "hermesagent", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "devin", "warp", "zcode"], readonly ["kilo", "agentsmd", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kiro", "kiro-cli", "kiro-ide", "opencode", "qwencode", "reasonix", "roo", "zoocode", "rovodev", "takt", "vibe", "zcode"], readonly ["agentsmd", "agentsskills", "aiassistant", "amp", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "augmentcode", "claudecode", "claudecode-plugin", "claudecode-legacy", "cline", "codexcli", "copilot", "copilotcli", "crush", "cursor", "deepagents", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "musecode", "opencode", "pi", "qwencode", "reasonix", "replit", "roo", "rovodev", "takt", "vibe", "warp", "devin", "zcode", "zed", "zoocode"], readonly ["amp", "cline", "antigravity-cli", "antigravity-ide", "antigravity-plugin", "kilo", "cursor", "claudecode", "claudecode-plugin", "codexcli", "copilot", "copilotcli", "opencode", "pi", "factorydroid", "goose", "hermesagent", "kimi-code", "deepagents", "kiro", "kiro-cli", "kiro-ide", "devin", "augmentcode", "junie", "vibe", "qwencode", "reasonix", "grokcli", "zcode"], readonly ["amp", "antigravity-cli", "antigravity-ide", "augmentcode", "claudecode", "cline", "codexcli", "copilot", "copilotcli", "cursor", "deepagents", "devin", "factorydroid", "goose", "grokcli", "hermesagent", "kimi-code", "junie", "kilo", "kiro", "kiro-cli", "kiro-ide", "opencode", "pi", "qwencode", "reasonix", "roo", "rovodev", "takt", "vibe", "warp", "zed", "zoocode"], readonly ["amp", "augmentcode", "cursor", "factorydroid", "hermesagent", "rovodev", "takt"]];
18
18
  //#endregion
19
19
  //#region src/types/tool-targets.d.ts
20
20
  type AllToolTarget = (typeof ALL_TOOL_TARGET_TUPLES)[number][number];
@@ -54,6 +54,7 @@ declare const ToolTargetSchema: z.ZodMiniEnum<{
54
54
  musecode: "musecode";
55
55
  opencode: "opencode";
56
56
  pi: "pi";
57
+ pool: "pool";
57
58
  qwencode: "qwencode";
58
59
  reasonix: "reasonix";
59
60
  replit: "replit";
@@ -333,6 +334,7 @@ declare const RulesyncSkillFrontmatterSchemaInternal: z.ZodMiniObject<{
333
334
  musecode: "musecode";
334
335
  opencode: "opencode";
335
336
  pi: "pi";
337
+ pool: "pool";
336
338
  qwencode: "qwencode";
337
339
  reasonix: "reasonix";
338
340
  replit: "replit";