@danieldeusing/seedr 0.1.130 → 0.1.131

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # @danieldeusing/seedr
2
2
 
3
3
  Seed your coding agents with capabilities: install curated skills, agents, hooks, plugins,
4
- MCP servers and settings presets for Claude Code, GitHub Copilot, Gemini, OpenAI Codex and
5
- OpenCode with one command.
4
+ MCP servers and settings presets for Claude Code, GitHub Copilot, Google Antigravity, OpenAI
5
+ Codex and OpenCode with one command.
6
6
 
7
7
  ```bash
8
8
  npx @danieldeusing/seedr add # interactive picker
@@ -29,18 +29,11 @@ function mainFileName(type) {
29
29
 
30
30
  // ../registry-ops/src/agents.ts
31
31
  var CANONICAL_AGENTS = ["claude", "copilot", "antigravity", "codex", "opencode"];
32
- var AGENT_ALIASES = { gemini: "antigravity" };
33
- var KNOWN_AGENTS = [...CANONICAL_AGENTS, ...Object.keys(AGENT_ALIASES)];
34
32
  function isCanonicalAgent(value) {
35
33
  return typeof value === "string" && CANONICAL_AGENTS.includes(value);
36
34
  }
37
- function isLegacyAgent(value) {
38
- return typeof value === "string" && Object.hasOwn(AGENT_ALIASES, value);
39
- }
40
35
  function canonicalAgent(value) {
41
- if (isCanonicalAgent(value)) return value;
42
- if (isLegacyAgent(value)) return AGENT_ALIASES[value];
43
- return null;
36
+ return isCanonicalAgent(value) ? value : null;
44
37
  }
45
38
  function canonicalAgents(values) {
46
39
  const present = new Set(values.map(canonicalAgent).filter((a) => a !== null));
@@ -157,9 +150,6 @@ import { existsSync as existsSync10, mkdirSync as mkdirSync8, readFileSync as re
157
150
  import { dirname as dirname4, join as join10, relative as relative3, resolve as resolve2 } from "path";
158
151
  var DEFAULT_LOCK_STALE_MS = 10 * 60 * 1e3;
159
152
 
160
- // ../registry-ops/src/migrate.ts
161
- import { writeFileSync as writeFileSync9 } from "fs";
162
-
163
153
  // src/utils/slug.ts
164
154
  var SLUG_PATTERN2 = /^[a-z0-9][a-z0-9-]*$/;
165
155
  var MAX_SLUG_LENGTH2 = 100;
@@ -846,7 +836,6 @@ var CODING_AGENTS = {
846
836
  contentTypes: { skill: SKILL_DIRECTORY, agent: { path: "agents" } }
847
837
  },
848
838
  antigravity: ANTIGRAVITY,
849
- gemini: ANTIGRAVITY,
850
839
  codex: {
851
840
  name: "OpenAI Codex CLI",
852
841
  shortName: "codex",
@@ -902,7 +891,7 @@ function getSettingsPath(scope, cwd = process.cwd()) {
902
891
  }
903
892
  function getMcpConfigPath(agent, scope, cwd = process.cwd()) {
904
893
  const isUser = scope === "user";
905
- switch (canonicalAgent(agent) ?? agent) {
894
+ switch (agent) {
906
895
  case "claude":
907
896
  return isUser ? claudeUserJsonPath() : join14(cwd, ".mcp.json");
908
897
  case "codex":
@@ -955,8 +944,6 @@ function parseAgentArg(arg) {
955
944
  gh: "copilot",
956
945
  "google-antigravity": "antigravity",
957
946
  agy: "antigravity",
958
- "gemini-code": "antigravity",
959
- gca: "antigravity",
960
947
  "openai-codex": "codex",
961
948
  oc: "opencode"
962
949
  };
@@ -1145,9 +1132,8 @@ function deepMerge(target, source) {
1145
1132
  // src/handlers/skill.ts
1146
1133
  var SLUG_LABEL = "skill slug";
1147
1134
  function readsCentralDir(agent, scope) {
1148
- const canonical = canonicalAgent(agent) ?? agent;
1149
- if (canonical === "antigravity") return scope !== "user";
1150
- return canonical === "codex" || canonical === "opencode";
1135
+ if (agent === "antigravity") return scope !== "user";
1136
+ return agent === "codex" || agent === "opencode";
1151
1137
  }
1152
1138
  var OWNERS_FILE = ".seedr-central-owners.json";
1153
1139
  async function readOwners(scope, cwd) {
@@ -1166,7 +1152,7 @@ async function dropOwner(slug, agent, scope, cwd) {
1166
1152
  const owners = await readOwners(scope, cwd);
1167
1153
  const recorded = owners[slug];
1168
1154
  if (!recorded) return [];
1169
- const remaining = recorded.filter((owner) => owner !== (canonicalAgent(agent) ?? agent));
1155
+ const remaining = recorded.filter((owner) => owner !== agent);
1170
1156
  if (remaining.length > 0) owners[slug] = remaining;
1171
1157
  else delete owners[slug];
1172
1158
  await writeOwners(owners, scope, cwd);
@@ -1296,12 +1282,11 @@ async function getInstalledSkills(agent, scope, cwd = process.cwd()) {
1296
1282
  if (readsCentralDir(agent, scope)) dirs.add(centralSkillsDir(scope, cwd));
1297
1283
  const owners = await readOwners(scope, cwd);
1298
1284
  const centralDir = centralSkillsDir(scope, cwd);
1299
- const canonical = canonicalAgent(agent) ?? agent;
1300
1285
  const isInstalledHere = (entry, dir) => {
1301
1286
  if (entry.name.startsWith(".")) return false;
1302
1287
  if (!entry.isDirectory() && !entry.isSymbolicLink()) return false;
1303
1288
  const recorded = dir === centralDir ? owners[entry.name] : void 0;
1304
- return !recorded || recorded.includes(canonical);
1289
+ return !recorded || recorded.includes(agent);
1305
1290
  };
1306
1291
  const slugs = /* @__PURE__ */ new Set();
1307
1292
  for (const dir of dirs) {
@@ -1357,7 +1342,6 @@ var skillHandler = {
1357
1342
  export {
1358
1343
  ALL_TYPES,
1359
1344
  mainFileName,
1360
- isLegacyAgent,
1361
1345
  canonicalAgent,
1362
1346
  canonicalAgents,
1363
1347
  AGENT_COMPATIBILITY,
package/dist/cli.js CHANGED
@@ -39,7 +39,6 @@ import {
39
39
  intro,
40
40
  isFirstParty,
41
41
  isInteractive,
42
- isLegacyAgent,
43
42
  isTypeSupported,
44
43
  isValidSlug,
45
44
  listItems,
@@ -68,7 +67,7 @@ import {
68
67
  writeFileAtomic,
69
68
  writeJson,
70
69
  writeTextFile
71
- } from "./chunk-USS5HTCG.js";
70
+ } from "./chunk-7RMRI2TO.js";
72
71
 
73
72
  // src/cli.ts
74
73
  import { Command as Command5 } from "commander";
@@ -148,7 +147,7 @@ function isTelemetryDisabled(env = process.env) {
148
147
  return env[TELEMETRY_OPT_OUT_VARIABLE] !== void 0;
149
148
  }
150
149
  function cliVersion() {
151
- return true ? "0.1.130" : "dev";
150
+ return true ? "0.1.131" : "dev";
152
151
  }
153
152
  async function sendEvent(event) {
154
153
  try {
@@ -222,7 +221,7 @@ import chalk2 from "chalk";
222
221
  import ora from "ora";
223
222
  var SLUG_LABEL = "agent slug";
224
223
  function subagentFileName(agent, slug) {
225
- return (canonicalAgent(agent) ?? agent) === "copilot" ? `${slug}.agent.md` : `${slug}.md`;
224
+ return agent === "copilot" ? `${slug}.agent.md` : `${slug}.md`;
226
225
  }
227
226
  async function resolveAgentFilePath(agent, slug, scope, cwd) {
228
227
  const destDir = getContentPath(agent, "agent", scope, cwd);
@@ -1742,17 +1741,17 @@ var openCodeStore = {
1742
1741
  return true;
1743
1742
  }
1744
1743
  };
1745
- var GEMINI_CONFIG_DIR = join5(home, ".gemini", "config");
1746
- var GEMINI_PLUGINS_DIR = join5(GEMINI_CONFIG_DIR, "plugins");
1747
- var GEMINI_IMPORT_MANIFEST_PATH = join5(GEMINI_CONFIG_DIR, "import_manifest.json");
1744
+ var ANTIGRAVITY_CONFIG_DIR = join5(home, ".gemini", "config");
1745
+ var ANTIGRAVITY_PLUGINS_DIR = join5(ANTIGRAVITY_CONFIG_DIR, "plugins");
1746
+ var ANTIGRAVITY_IMPORT_MANIFEST_PATH = join5(ANTIGRAVITY_CONFIG_DIR, "import_manifest.json");
1748
1747
  var antigravityStore = {
1749
1748
  manifestPaths: manifestsFor(),
1750
1749
  userGlobal: true,
1751
1750
  // Filed by name from a tree, so a first-party copy is as good as any other.
1752
1751
  firstParty: true,
1753
- cacheRoot: GEMINI_PLUGINS_DIR,
1752
+ cacheRoot: ANTIGRAVITY_PLUGINS_DIR,
1754
1753
  // Antigravity files plugins by name only — it has no marketplace dimension.
1755
- cachePath: (_marketplace, name) => resolveContained(GEMINI_PLUGINS_DIR, name),
1754
+ cachePath: (_marketplace, name) => resolveContained(ANTIGRAVITY_PLUGINS_DIR, name),
1756
1755
  /**
1757
1756
  * Antigravity discovers a plugin by a `plugin.json` at the tree ROOT, and
1758
1757
  * `.claude-plugin/plugin.json` is not a substitute: the cross-tool matrix
@@ -1776,10 +1775,10 @@ var antigravityStore = {
1776
1775
  },
1777
1776
  mutations: (context) => [
1778
1777
  {
1779
- path: GEMINI_IMPORT_MANIFEST_PATH,
1778
+ path: ANTIGRAVITY_IMPORT_MANIFEST_PATH,
1780
1779
  detail: `imports[] += "${context.name}"`,
1781
1780
  apply: async () => {
1782
- const manifest = await readJson(GEMINI_IMPORT_MANIFEST_PATH);
1781
+ const manifest = await readJson(ANTIGRAVITY_IMPORT_MANIFEST_PATH);
1783
1782
  const imports = manifest.imports || [];
1784
1783
  manifest.imports = [
1785
1784
  ...imports.filter((entry) => entry.name !== context.name),
@@ -1790,24 +1789,24 @@ var antigravityStore = {
1790
1789
  components: ["skills", "hooks"]
1791
1790
  }
1792
1791
  ];
1793
- await writeJson(GEMINI_IMPORT_MANIFEST_PATH, manifest);
1792
+ await writeJson(ANTIGRAVITY_IMPORT_MANIFEST_PATH, manifest);
1794
1793
  }
1795
1794
  }
1796
1795
  ],
1797
1796
  async listInstalled() {
1798
- const manifest = await readJson(GEMINI_IMPORT_MANIFEST_PATH);
1797
+ const manifest = await readJson(ANTIGRAVITY_IMPORT_MANIFEST_PATH);
1799
1798
  return (manifest.imports || []).map((entry) => entry.name);
1800
1799
  },
1801
1800
  async remove(pluginId) {
1802
1801
  const name = splitPluginId(pluginId)?.name ?? pluginId;
1803
- const manifest = await readJson(GEMINI_IMPORT_MANIFEST_PATH);
1802
+ const manifest = await readJson(ANTIGRAVITY_IMPORT_MANIFEST_PATH);
1804
1803
  const imports = manifest.imports || [];
1805
1804
  const remaining = imports.filter((entry) => entry.name !== name);
1806
1805
  if (remaining.length === imports.length) return false;
1807
1806
  manifest.imports = remaining;
1808
- await writeJson(GEMINI_IMPORT_MANIFEST_PATH, manifest);
1807
+ await writeJson(ANTIGRAVITY_IMPORT_MANIFEST_PATH, manifest);
1809
1808
  try {
1810
- await removePathEntry(await resolveContained(GEMINI_PLUGINS_DIR, name));
1809
+ await removePathEntry(await resolveContained(ANTIGRAVITY_PLUGINS_DIR, name));
1811
1810
  } catch {
1812
1811
  }
1813
1812
  return true;
@@ -1830,11 +1829,10 @@ var STORES = {
1830
1829
  copilot: copilotStore,
1831
1830
  codex: codexStore,
1832
1831
  opencode: openCodeStore,
1833
- antigravity: antigravityStore,
1834
- gemini: antigravityStore
1832
+ antigravity: antigravityStore
1835
1833
  };
1836
1834
  function pluginStoreFor(agent) {
1837
- const store = STORES[canonicalAgent(agent) ?? agent];
1835
+ const store = STORES[agent];
1838
1836
  if (!store || !isTypeSupported("plugin", agent)) {
1839
1837
  throw new Error(`Plugins are not supported for ${CODING_AGENTS[agent]?.name ?? agent}`);
1840
1838
  }
@@ -2140,13 +2138,12 @@ var openCodeTarget = {
2140
2138
  var TARGETS = {
2141
2139
  claude: claudeTarget,
2142
2140
  antigravity: antigravityTarget,
2143
- gemini: antigravityTarget,
2144
2141
  copilot: copilotTarget,
2145
2142
  codex: codexTarget,
2146
2143
  opencode: openCodeTarget
2147
2144
  };
2148
2145
  function ruleTargetFor(agent) {
2149
- const target = TARGETS[canonicalAgent(agent) ?? agent];
2146
+ const target = TARGETS[agent];
2150
2147
  if (!target || !isTypeSupported("rule", agent)) {
2151
2148
  throw new Error(`Rules are not supported for ${CODING_AGENTS[agent]?.name ?? agent}`);
2152
2149
  }
@@ -2342,12 +2339,11 @@ function resolveRequestedAgents(agentsArg, item) {
2342
2339
  if (agentsArg === void 0 || agentsArg.trim() === "") {
2343
2340
  return { ok: true, agents: [], explicit: false };
2344
2341
  }
2345
- const deprecationWarning = agentsArg.split(",").map((raw) => raw.trim().toLowerCase()).some((id) => isLegacyAgent(id)) ? "'gemini' is now 'antigravity' (Google Antigravity, installs to .agents/)" : void 0;
2346
2342
  if (agentsArg.trim() === "all") {
2347
2343
  if (compatible.length === 0) {
2348
2344
  return { ok: false, error: `No agent supports ${item.type} "${item.slug}"` };
2349
2345
  }
2350
- return { ok: true, agents: compatible, explicit: true, deprecationWarning };
2346
+ return { ok: true, agents: compatible, explicit: true };
2351
2347
  }
2352
2348
  const { agents, unknown } = parseAgentsArgStrict(agentsArg);
2353
2349
  if (unknown.length > 0) {
@@ -2367,7 +2363,7 @@ function resolveRequestedAgents(agentsArg, item) {
2367
2363
  error: `Cannot install ${item.type} "${item.slug}" for ${incompatible.join(", ")}. Compatible agents: ${compatibleList}. ${reasons.join("; ")}`
2368
2364
  };
2369
2365
  }
2370
- return { ok: true, agents, explicit: true, deprecationWarning };
2366
+ return { ok: true, agents, explicit: true };
2371
2367
  }
2372
2368
  function decideForce(options) {
2373
2369
  return Boolean(options.force) || !options.yes;
@@ -2490,7 +2486,6 @@ async function chooseAgents(options, item) {
2490
2486
  error(resolution.error);
2491
2487
  return null;
2492
2488
  }
2493
- if (resolution.deprecationWarning) warn(resolution.deprecationWarning);
2494
2489
  if (resolution.agents.length > 0) return resolution.agents;
2495
2490
  const compatible = compatibleAgentsFor(item);
2496
2491
  if (compatible.length === 0) {
@@ -2602,7 +2597,7 @@ async function runAdd(name, options, cwd = process.cwd()) {
2602
2597
  }
2603
2598
  var addCommand = new Command("add").description("Install a skill, agent, hook, or other configuration").argument("[name]", "Name of the item to install").option("-t, --type <type>", `Content type: ${TYPE_LIST}`).option(
2604
2599
  "-a, --agents <agents>",
2605
- "Comma-separated coding agents or 'all' (claude,copilot,antigravity,codex,opencode; 'gemini' is a deprecated alias of antigravity). Every named agent must support the item; 'all' means all compatible agents. MCP servers: claude, codex, opencode (copilot's and antigravity's formats are unverified)"
2600
+ "Comma-separated coding agents or 'all' (claude,copilot,antigravity,codex,opencode). Every named agent must support the item; 'all' means all compatible agents. MCP servers: claude, codex, opencode (copilot's and antigravity's formats are unverified)"
2606
2601
  ).option("-s, --scope <scope>", "Installation scope: project, user, or local").option("-m, --method <method>", "Installation method: symlink or copy").option("-y, --yes", "Skip confirmation prompts").option("-f, --force", "Overwrite existing files").option("-n, --dry-run", "Show exactly which files would be written, without writing or reporting anything").addHelpText("after", `
2607
2602
  Telemetry: ${TELEMETRY_HELP_TEXT}.`).action(async (name, options) => {
2608
2603
  try {
@@ -2998,7 +2993,7 @@ var initCommand = new Command4("init").description("Initialize coding agent conf
2998
2993
  // package.json
2999
2994
  var package_default = {
3000
2995
  name: "@danieldeusing/seedr",
3001
- version: "0.1.130",
2996
+ version: "0.1.131",
3002
2997
  description: "Seed your projects with AI configurations",
3003
2998
  type: "module",
3004
2999
  bin: {
@@ -3045,7 +3040,7 @@ var package_default = {
3045
3040
  "ai",
3046
3041
  "claude",
3047
3042
  "copilot",
3048
- "gemini",
3043
+ "antigravity",
3049
3044
  "codex",
3050
3045
  "opencode",
3051
3046
  "configuration",
package/dist/index.d.ts CHANGED
@@ -43,10 +43,7 @@ interface InstalledItem {
43
43
  installedAt: string;
44
44
  }
45
45
 
46
- /**
47
- * Where each agent keeps what. The deprecated `gemini` id shares Antigravity's
48
- * layout, so an old flag or an unmigrated item still installs to the right place.
49
- */
46
+ /** Where each agent keeps what. */
50
47
  declare const CODING_AGENTS: Record<CodingAgent, CodingAgentConfig>;
51
48
  /** The agents `--agents all` expands to: canonical ids only. */
52
49
  declare const ALL_AGENTS: CodingAgent[];
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  loadManifest,
16
16
  searchItems,
17
17
  uninstallSkill
18
- } from "./chunk-USS5HTCG.js";
18
+ } from "./chunk-7RMRI2TO.js";
19
19
  export {
20
20
  ALL_AGENTS,
21
21
  CODING_AGENTS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danieldeusing/seedr",
3
- "version": "0.1.130",
3
+ "version": "0.1.131",
4
4
  "description": "Seed your projects with AI configurations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -47,7 +47,7 @@
47
47
  "ai",
48
48
  "claude",
49
49
  "copilot",
50
- "gemini",
50
+ "antigravity",
51
51
  "codex",
52
52
  "opencode",
53
53
  "configuration",