nomoreide 0.1.78 → 0.1.79

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.
@@ -1,9 +1,11 @@
1
1
  import type { AgentEnvReadOptions, AgentLiveConfig } from "./types.js";
2
2
  /**
3
3
  * Codex CLI stores MCP servers as `[mcp_servers.*]` TOML sections in
4
- * `~/.codex/config.toml` and skills as SKILL.md dirs under `~/.codex/skills/`.
5
- * The TOML subset parser is deliberate the config format only uses flat
6
- * sections with string/array values, and a dependency-free parse mirrors what
7
- * brainctl shipped and tested.
4
+ * `~/.codex/config.toml`. Skills follow the Agent Skills standard:
5
+ * `~/.agents/skills/` for personal skills (legacy `~/.codex/skills/` is still
6
+ * read) and `<repo>/.agents/skills/` for project skills. The TOML subset
7
+ * parser is deliberate — the config format only uses flat sections with
8
+ * string/array values, and a dependency-free parse mirrors what brainctl
9
+ * shipped and tested.
8
10
  */
9
11
  export declare function readCodexConfig(options: AgentEnvReadOptions): Promise<AgentLiveConfig>;
@@ -3,19 +3,21 @@ import { homedir } from "node:os";
3
3
  import path from "node:path";
4
4
  import { mergeManagedPluginsIntoSkills, readManagedPlugins } from "./managed-plugins.js";
5
5
  import { readCodexPlugins } from "./plugin-reader.js";
6
- import { filterPluginOwnedMcps, readBrainctlProjectMcps, readSkillDirs, } from "./shared.js";
6
+ import { filterPluginOwnedMcps, readBrainctlProjectMcps, readProjectSkills, readSkillDirs, } from "./shared.js";
7
7
  /**
8
8
  * Codex CLI stores MCP servers as `[mcp_servers.*]` TOML sections in
9
- * `~/.codex/config.toml` and skills as SKILL.md dirs under `~/.codex/skills/`.
10
- * The TOML subset parser is deliberate the config format only uses flat
11
- * sections with string/array values, and a dependency-free parse mirrors what
12
- * brainctl shipped and tested.
9
+ * `~/.codex/config.toml`. Skills follow the Agent Skills standard:
10
+ * `~/.agents/skills/` for personal skills (legacy `~/.codex/skills/` is still
11
+ * read) and `<repo>/.agents/skills/` for project skills. The TOML subset
12
+ * parser is deliberate — the config format only uses flat sections with
13
+ * string/array values, and a dependency-free parse mirrors what brainctl
14
+ * shipped and tested.
13
15
  */
14
16
  export async function readCodexConfig(options) {
15
17
  const homeDir = options.homeDir ?? homedir();
16
18
  const configPath = path.join(homeDir, ".codex", "config.toml");
17
19
  const projectMaps = await readBrainctlProjectMcps(options.cwd, "codex");
18
- const skills = await readCodexSkills(homeDir);
20
+ const skills = await readCodexSkills(homeDir, options.cwd);
19
21
  try {
20
22
  const source = await readFile(configPath, "utf8");
21
23
  const { mcpServers, remoteMcpServers } = parseCodexToml(source);
@@ -34,21 +36,37 @@ export async function readCodexConfig(options) {
34
36
  };
35
37
  }
36
38
  }
37
- async function readCodexSkills(homeDir) {
39
+ async function readCodexSkills(homeDir, cwd) {
38
40
  const nativePlugins = await readCodexPlugins({
39
41
  configTomlPath: path.join(homeDir, ".codex", "config.toml"),
40
42
  pluginsCacheDir: path.join(homeDir, ".codex", "plugins", "cache"),
41
43
  });
42
44
  const managedPlugins = await readManagedPlugins({ agent: "codex", homeDir });
43
- let localSkills = [];
45
+ // Personal skills: the Agent Skills standard dir wins over the legacy dir
46
+ // when the same name exists in both.
47
+ const localSkills = dedupeSkillsByName([
48
+ ...(await readSkillDirsSafe(path.join(homeDir, ".agents", "skills"))),
49
+ ...(await readSkillDirsSafe(path.join(homeDir, ".codex", "skills"))),
50
+ ]);
51
+ const projectSkills = await readProjectSkills(cwd, path.join(".agents", "skills"));
52
+ const allPlugins = dedupePluginsByName([...managedPlugins, ...nativePlugins]);
53
+ return [...mergeManagedPluginsIntoSkills(localSkills, allPlugins), ...projectSkills];
54
+ }
55
+ async function readSkillDirsSafe(skillsDir) {
44
56
  try {
45
- localSkills = await readSkillDirs(path.join(homeDir, ".codex", "skills"));
57
+ return await readSkillDirs(skillsDir);
46
58
  }
47
59
  catch {
48
- localSkills = [];
60
+ return [];
49
61
  }
50
- const allPlugins = dedupePluginsByName([...managedPlugins, ...nativePlugins]);
51
- return mergeManagedPluginsIntoSkills(localSkills, allPlugins);
62
+ }
63
+ function dedupeSkillsByName(skills) {
64
+ const seen = new Map();
65
+ for (const skill of skills) {
66
+ if (!seen.has(skill.name))
67
+ seen.set(skill.name, skill);
68
+ }
69
+ return Array.from(seen.values());
52
70
  }
53
71
  function dedupePluginsByName(plugins) {
54
72
  const seen = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"codex-reader.js","sourceRoot":"","sources":["../../../src/core/agent-env/codex-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-reader.js","sourceRoot":"","sources":["../../../src/core/agent-env/codex-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,GACd,MAAM,aAAa,CAAC;AASrB;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA4B;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,qBAAqB,CACpC,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,EAChD,MAAM,CACP,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,OAAO;YACd,UAAU;YACV,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;YACpB,GAAG,WAAW;YACd,MAAM;SACP,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,GAAW;IACzD,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC;QAC3C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;QAC3D,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;KAClE,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAE7E,0EAA0E;IAC1E,qCAAqC;IACrC,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,GAAG,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrE,GAAG,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;KACrE,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnF,MAAM,UAAU,GAAG,mBAAmB,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,6BAA6B,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IAChD,IAAI,CAAC;QACH,OAAO,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAyB;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA0B;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IAIpC,MAAM,UAAU,GAAkC,EAAE,CAAC;IACrD,MAAM,gBAAgB,GAAmC,EAAE,CAAC;IAE5D,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,YAAY,GAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClD,IAAI,UAAU,GAA2B,EAAE,CAAC;IAC5C,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,IAAI,UAAU,EAAE,CAAC;YACf,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,YAAY,CAAC,GAAG,GAAG,UAAU,CAAC;YACtE,UAAU,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,iCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClE,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,EAAE,CAAC;YACR,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/B,UAAU,GAAG,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC;YAClB,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,KAAK,EAAE,CAAC;YACR,aAAa,GAAG,IAAI,CAAC;YACrB,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/B,UAAU,GAAG,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC;YAClB,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa;YAAE,SAAS;QAEzC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YACzB,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -4,11 +4,12 @@ export declare function parseEnvObject(value: unknown): Record<string, string> |
4
4
  export declare function readSkillDirs(skillsDir: string, scope?: "user" | "project"): Promise<AgentSkillEntry[]>;
5
5
  /**
6
6
  * Walk from `cwd` up to the repo root (first ancestor containing `.git`, or
7
- * the filesystem root) and emit skills declared in `<ancestor>/.claude/skills/`
8
- * with `scope: "project"`. Only Claude reads project-scoped skills; the closer
9
- * ancestor wins on name collisions.
7
+ * the filesystem root) and emit skills declared in `<ancestor>/<skillsSubdir>`
8
+ * with `scope: "project"`. Claude reads `.claude/skills/`, Codex reads the
9
+ * Agent Skills standard `.agents/skills/`; the closer ancestor wins on name
10
+ * collisions.
10
11
  */
11
- export declare function readProjectSkills(cwd: string): Promise<AgentSkillEntry[]>;
12
+ export declare function readProjectSkills(cwd: string, skillsSubdir?: string): Promise<AgentSkillEntry[]>;
12
13
  export interface McpMaps {
13
14
  mcpServers: Record<string, AgentMcpEntry>;
14
15
  remoteMcpServers: Record<string, RemoteMcpEntry>;
@@ -28,17 +28,18 @@ export async function readSkillDirs(skillsDir, scope = "user") {
28
28
  }
29
29
  /**
30
30
  * Walk from `cwd` up to the repo root (first ancestor containing `.git`, or
31
- * the filesystem root) and emit skills declared in `<ancestor>/.claude/skills/`
32
- * with `scope: "project"`. Only Claude reads project-scoped skills; the closer
33
- * ancestor wins on name collisions.
31
+ * the filesystem root) and emit skills declared in `<ancestor>/<skillsSubdir>`
32
+ * with `scope: "project"`. Claude reads `.claude/skills/`, Codex reads the
33
+ * Agent Skills standard `.agents/skills/`; the closer ancestor wins on name
34
+ * collisions.
34
35
  */
35
- export async function readProjectSkills(cwd) {
36
+ export async function readProjectSkills(cwd, skillsSubdir = path.join(".claude", "skills")) {
36
37
  const seen = new Map();
37
38
  let current = path.resolve(cwd);
38
39
  const visited = new Set();
39
40
  while (!visited.has(current)) {
40
41
  visited.add(current);
41
- const skillsDir = path.join(current, ".claude", "skills");
42
+ const skillsDir = path.join(current, skillsSubdir);
42
43
  try {
43
44
  const entries = await readSkillDirs(skillsDir, "project");
44
45
  for (const entry of entries) {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/core/agent-env/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/core/agent-env/shared.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,9 @@
6
6
  */
7
7
  import { z } from "zod";
8
8
  import { type AgentName } from "./agent-env/index.js";
9
- /** One staged mutation. `name` is the MCP key or the skill directory name. */
9
+ /** One staged mutation. `name` is the MCP key, skill directory, or plugin name. */
10
10
  export declare const pendingChangeSchema: z.ZodObject<{
11
- category: z.ZodEnum<["mcp", "skill"]>;
11
+ category: z.ZodEnum<["mcp", "skill", "plugin"]>;
12
12
  action: z.ZodEnum<["copy", "move", "remove"]>;
13
13
  name: z.ZodString;
14
14
  sourceAgent: z.ZodEnum<["claude", "codex", "antigravity"]>;
@@ -18,7 +18,7 @@ export declare const pendingChangeSchema: z.ZodObject<{
18
18
  }, "strip", z.ZodTypeAny, {
19
19
  action: "remove" | "copy" | "move";
20
20
  name: string;
21
- category: "skill" | "mcp";
21
+ category: "skill" | "plugin" | "mcp";
22
22
  sourceAgent: "claude" | "codex" | "antigravity";
23
23
  sourceScope: "user" | "project";
24
24
  targetAgent?: "claude" | "codex" | "antigravity" | undefined;
@@ -26,7 +26,7 @@ export declare const pendingChangeSchema: z.ZodObject<{
26
26
  }, {
27
27
  action: "remove" | "copy" | "move";
28
28
  name: string;
29
- category: "skill" | "mcp";
29
+ category: "skill" | "plugin" | "mcp";
30
30
  sourceAgent: "claude" | "codex" | "antigravity";
31
31
  sourceScope?: "user" | "project" | undefined;
32
32
  targetAgent?: "claude" | "codex" | "antigravity" | undefined;
@@ -34,7 +34,7 @@ export declare const pendingChangeSchema: z.ZodObject<{
34
34
  }>;
35
35
  export type PendingChange = z.infer<typeof pendingChangeSchema>;
36
36
  export declare const pendingChangesSchema: z.ZodArray<z.ZodObject<{
37
- category: z.ZodEnum<["mcp", "skill"]>;
37
+ category: z.ZodEnum<["mcp", "skill", "plugin"]>;
38
38
  action: z.ZodEnum<["copy", "move", "remove"]>;
39
39
  name: z.ZodString;
40
40
  sourceAgent: z.ZodEnum<["claude", "codex", "antigravity"]>;
@@ -44,7 +44,7 @@ export declare const pendingChangesSchema: z.ZodArray<z.ZodObject<{
44
44
  }, "strip", z.ZodTypeAny, {
45
45
  action: "remove" | "copy" | "move";
46
46
  name: string;
47
- category: "skill" | "mcp";
47
+ category: "skill" | "plugin" | "mcp";
48
48
  sourceAgent: "claude" | "codex" | "antigravity";
49
49
  sourceScope: "user" | "project";
50
50
  targetAgent?: "claude" | "codex" | "antigravity" | undefined;
@@ -52,7 +52,7 @@ export declare const pendingChangesSchema: z.ZodArray<z.ZodObject<{
52
52
  }, {
53
53
  action: "remove" | "copy" | "move";
54
54
  name: string;
55
- category: "skill" | "mcp";
55
+ category: "skill" | "plugin" | "mcp";
56
56
  sourceAgent: "claude" | "codex" | "antigravity";
57
57
  sourceScope?: "user" | "project" | undefined;
58
58
  targetAgent?: "claude" | "codex" | "antigravity" | undefined;
@@ -7,11 +7,12 @@
7
7
  import { z } from "zod";
8
8
  import { readAllAgentConfigs, AGENT_NAMES, } from "./agent-env/index.js";
9
9
  import { addMcp, copySkill, moveSkill, removeMcp, removeSkill, snapshotAgentConfig, } from "./agent-env-writers.js";
10
+ import { isRemovablePlugin, removePlugin } from "./agent-env-plugin-uninstall.js";
10
11
  const agentNameSchema = z.enum(["claude", "codex", "antigravity"]);
11
12
  const scopeSchema = z.enum(["user", "project"]);
12
- /** One staged mutation. `name` is the MCP key or the skill directory name. */
13
+ /** One staged mutation. `name` is the MCP key, skill directory, or plugin name. */
13
14
  export const pendingChangeSchema = z.object({
14
- category: z.enum(["mcp", "skill"]),
15
+ category: z.enum(["mcp", "skill", "plugin"]),
15
16
  action: z.enum(["copy", "move", "remove"]),
16
17
  name: z.string().min(1),
17
18
  sourceAgent: agentNameSchema,
@@ -65,6 +66,33 @@ function previewOne(change, byAgent) {
65
66
  const source = byAgent.get(change.sourceAgent);
66
67
  if (!source)
67
68
  return fail(`Unknown agent "${change.sourceAgent}".`);
69
+ if (change.category === "plugin") {
70
+ if (change.action !== "remove") {
71
+ return fail(`Plugins are managed installs; install "${change.name}" through the target agent's plugin marketplace instead of copying files.`);
72
+ }
73
+ if (change.targetAgent)
74
+ return fail("A remove cannot have a target agent.");
75
+ const plugin = source.skills.find((candidate) => candidate.kind === "plugin" && candidate.name === change.name);
76
+ if (!plugin) {
77
+ return fail(`Plugin "${change.name}" not found in ${AGENT_LABELS[change.sourceAgent]}.`);
78
+ }
79
+ if (!isRemovablePlugin(change.sourceAgent, plugin)) {
80
+ return fail(`Plugin "${change.name}" can't be uninstalled from here — no install path or marketplace source was detected.`);
81
+ }
82
+ const contents = [
83
+ [plugin.pluginSkills?.length, "skills"],
84
+ [plugin.pluginMcps?.length, "MCPs"],
85
+ [plugin.pluginAgents?.length, "agents"],
86
+ [plugin.pluginCommands?.length, "commands"],
87
+ ]
88
+ .filter(([count]) => count > 0)
89
+ .map(([count, label]) => `${count} ${label}`)
90
+ .join(", ");
91
+ if (contents) {
92
+ warnings.push(`Uninstalling "${change.name}" removes ${contents}.`);
93
+ }
94
+ return { change, ok: true, summary: describeChange(change), warnings };
95
+ }
68
96
  if (change.action !== "remove") {
69
97
  if (!change.targetAgent)
70
98
  return fail(`A ${change.action} needs a target agent.`);
@@ -72,8 +100,8 @@ function previewOne(change, byAgent) {
72
100
  if (change.targetAgent === change.sourceAgent && targetScope === change.sourceScope) {
73
101
  return fail(`Source and target are the same; nothing to ${change.action}.`);
74
102
  }
75
- if (change.category === "skill" && targetScope === "project" && change.targetAgent !== "claude") {
76
- return fail(`${AGENT_LABELS[change.targetAgent]} has no project-scoped skills; only Claude reads .claude/skills/.`);
103
+ if (change.category === "skill" && targetScope === "project" && change.targetAgent === "antigravity") {
104
+ return fail(`${AGENT_LABELS[change.targetAgent]} has no project-scoped skills; Claude reads .claude/skills/ and Codex reads .agents/skills/.`);
77
105
  }
78
106
  }
79
107
  else if (change.targetAgent) {
@@ -121,9 +149,12 @@ function previewOne(change, byAgent) {
121
149
  return { change, ok: true, summary: describeChange(change), warnings };
122
150
  }
123
151
  export function describeChange(change) {
124
- const kind = change.category === "mcp" ? "MCP" : "skill";
152
+ const kind = change.category === "mcp" ? "MCP" : change.category;
125
153
  const from = `${AGENT_LABELS[change.sourceAgent]} (${change.sourceScope})`;
126
154
  if (change.action === "remove") {
155
+ if (change.category === "plugin") {
156
+ return `Uninstall plugin "${change.name}" from ${AGENT_LABELS[change.sourceAgent]}`;
157
+ }
127
158
  return `Remove ${kind} "${change.name}" from ${from}`;
128
159
  }
129
160
  const targetScope = change.targetScope ?? "user";
@@ -184,6 +215,14 @@ export async function applyChanges(options) {
184
215
  }
185
216
  async function applyOne(change, byAgent, options) {
186
217
  const base = { cwd: options.cwd, homeDir: options.homeDir };
218
+ if (change.category === "plugin") {
219
+ const source = byAgent.get(change.sourceAgent);
220
+ const plugin = source.skills.find((candidate) => candidate.kind === "plugin" && candidate.name === change.name);
221
+ if (!plugin) {
222
+ throw new Error(`Plugin "${change.name}" not found in ${AGENT_LABELS[change.sourceAgent]}.`);
223
+ }
224
+ return removePlugin({ ...base, agent: change.sourceAgent, plugin });
225
+ }
187
226
  if (change.category === "mcp") {
188
227
  const source = byAgent.get(change.sourceAgent);
189
228
  const { entry, remoteEntry } = findMcp(source, change.name, change.sourceScope);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-env-actions.js","sourceRoot":"","sources":["../../src/core/agent-env-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-env-actions.js","sourceRoot":"","sources":["../../src/core/agent-env-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AgentName, AgentSkillEntry } from "./agent-env/index.js";
2
+ import { type WriteOutcome, type WriterOptions } from "./agent-env-writers.js";
3
+ export type RunClaudeCli = (args: string[]) => Promise<void>;
4
+ export interface RemovePluginOptions extends WriterOptions {
5
+ agent: AgentName;
6
+ plugin: AgentSkillEntry;
7
+ /** Injectable for tests; defaults to spawning `claude` from PATH. */
8
+ runClaudeCli?: RunClaudeCli;
9
+ }
10
+ export declare function isRemovablePlugin(agent: AgentName, plugin: AgentSkillEntry): boolean;
11
+ export declare function removePlugin(options: RemovePluginOptions): Promise<WriteOutcome>;
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Plugin uninstall writers — the plugin counterpart to the skill/MCP writers
3
+ * in `agent-env-writers.ts`, ported from brainctl's plugin-install-uninstall
4
+ * service. Three removal paths:
5
+ *
6
+ * - Claude native plugin → delegate to `claude plugin uninstall` so a live
7
+ * Claude Code session drops it from memory (direct fs edits get
8
+ * resurrected by running sessions).
9
+ * - Codex native plugin → strip its `[plugins."name@marketplace"]` section
10
+ * from `~/.codex/config.toml` (backup + atomic write) and delete its
11
+ * plugins-cache directory.
12
+ * - brainctl-managed → delete the skill/command dirs and agent files it
13
+ * installed, remove its MCP entries, then drop its record from
14
+ * `~/.brainctl/managed-plugins.json`.
15
+ *
16
+ * Callers go through the staged preview → apply flow in agent-env-actions.
17
+ */
18
+ import { spawn } from "node:child_process";
19
+ import { readFile, rm, unlink } from "node:fs/promises";
20
+ import { homedir } from "node:os";
21
+ import path from "node:path";
22
+ import { atomicWrite, backupFile, removeMcp, removeSkill, } from "./agent-env-writers.js";
23
+ export function isRemovablePlugin(agent, plugin) {
24
+ if (plugin.kind !== "plugin")
25
+ return false;
26
+ if (plugin.managed)
27
+ return true;
28
+ const native = agent === "claude" || agent === "codex";
29
+ return native && !!plugin.installPath && !!plugin.source;
30
+ }
31
+ export async function removePlugin(options) {
32
+ const { agent, plugin } = options;
33
+ if (plugin.kind !== "plugin") {
34
+ throw new Error(`"${plugin.name}" is not a plugin entry.`);
35
+ }
36
+ if (plugin.managed)
37
+ return removeManagedPlugin(options);
38
+ if (agent === "claude")
39
+ return removeClaudeNativePlugin(options);
40
+ if (agent === "codex")
41
+ return removeCodexNativePlugin(options);
42
+ throw new Error(`Plugin uninstall is not supported for ${agent}.`);
43
+ }
44
+ /* ---- Claude: delegate to the claude CLI ---- */
45
+ async function removeClaudeNativePlugin(options) {
46
+ const { plugin } = options;
47
+ const pluginKey = `${plugin.name}@${plugin.source}`;
48
+ const run = options.runClaudeCli ?? defaultRunClaudeCli;
49
+ await run(["plugin", "uninstall", pluginKey, "--scope", "user"]);
50
+ return { backups: [] };
51
+ }
52
+ function defaultRunClaudeCli(args) {
53
+ return new Promise((resolve, reject) => {
54
+ const child = spawn("claude", args, { stdio: ["ignore", "pipe", "pipe"] });
55
+ let output = "";
56
+ child.stdout?.on("data", (chunk) => (output += chunk.toString()));
57
+ child.stderr?.on("data", (chunk) => (output += chunk.toString()));
58
+ child.on("error", (error) => {
59
+ reject(new Error(`Failed to invoke \`claude\` CLI: ${error.message}. Is Claude Code on PATH?`));
60
+ });
61
+ child.on("exit", (code) => {
62
+ if (code === 0)
63
+ resolve();
64
+ else {
65
+ const detail = output.trim();
66
+ reject(new Error(`\`claude ${args.join(" ")}\` exited ${code}${detail ? `: ${detail}` : ""}`));
67
+ }
68
+ });
69
+ });
70
+ }
71
+ /* ---- Codex: config.toml section + plugins cache directory ---- */
72
+ async function removeCodexNativePlugin(options) {
73
+ const { plugin } = options;
74
+ const homeDir = options.homeDir ?? homedir();
75
+ const cacheRoot = path.join(homeDir, ".codex", "plugins", "cache");
76
+ const resolvedInstall = path.resolve(plugin.installPath ?? "");
77
+ if (!resolvedInstall.startsWith(cacheRoot + path.sep)) {
78
+ throw new Error(`Refusing to remove Codex plugin files outside ${cacheRoot}: ${resolvedInstall || "(no install path)"}`);
79
+ }
80
+ const backups = [];
81
+ const configPath = path.join(homeDir, ".codex", "config.toml");
82
+ try {
83
+ const existing = await readFile(configPath, "utf8");
84
+ const next = stripCodexPluginSection(existing, `${plugin.name}@${plugin.source}`);
85
+ if (next !== existing) {
86
+ const backup = await backupFile(configPath);
87
+ if (backup)
88
+ backups.push(backup);
89
+ await atomicWrite(configPath, next);
90
+ }
91
+ }
92
+ catch {
93
+ // no config.toml — cache dir removal below still applies
94
+ }
95
+ // installPath is the version dir; its parent is the plugin's cache root.
96
+ await rm(path.dirname(resolvedInstall), { recursive: true, force: true });
97
+ return { backups };
98
+ }
99
+ function stripCodexPluginSection(content, pluginKey) {
100
+ const target = `[plugins."${pluginKey}"]`;
101
+ const result = [];
102
+ let inTarget = false;
103
+ for (const line of content.split("\n")) {
104
+ const trimmed = line.trim();
105
+ if (trimmed === target) {
106
+ inTarget = true;
107
+ continue;
108
+ }
109
+ if (inTarget && /^\[/.test(trimmed))
110
+ inTarget = false;
111
+ if (!inTarget)
112
+ result.push(line);
113
+ }
114
+ return result.join("\n");
115
+ }
116
+ /* ---- brainctl-managed: installed files + registry record ---- */
117
+ async function removeManagedPlugin(options) {
118
+ const { agent, plugin } = options;
119
+ const base = { cwd: options.cwd, homeDir: options.homeDir };
120
+ const backups = [];
121
+ // brainctl materialized plugin skills AND commands as skill dirs on agents
122
+ // without a native plugin system.
123
+ for (const skillName of [...(plugin.pluginSkills ?? []), ...(plugin.pluginCommands ?? [])]) {
124
+ const outcome = await removeSkill({
125
+ ...base,
126
+ location: { agent, skillName, scope: "user" },
127
+ });
128
+ backups.push(...outcome.backups);
129
+ }
130
+ for (const key of plugin.pluginMcps ?? []) {
131
+ const outcome = await removeMcp({ ...base, agent, key, scope: "user" });
132
+ backups.push(...outcome.backups);
133
+ }
134
+ for (const agentName of plugin.pluginAgents ?? []) {
135
+ const filePath = subagentFilePath(agent, agentName, options.homeDir);
136
+ if (filePath)
137
+ await unlink(filePath).catch(() => { });
138
+ }
139
+ const registryBackup = await removeManagedRegistryRecord(agent, plugin.name, options.homeDir);
140
+ if (registryBackup)
141
+ backups.push(registryBackup);
142
+ return { backups };
143
+ }
144
+ function subagentFilePath(agent, agentName, homeDir) {
145
+ const home = homeDir ?? homedir();
146
+ const safeName = path.basename(agentName);
147
+ if (agent === "claude")
148
+ return path.join(home, ".claude", "agents", `${safeName}.md`);
149
+ if (agent === "codex")
150
+ return path.join(home, ".codex", "agents", `${safeName}.toml`);
151
+ return null;
152
+ }
153
+ async function removeManagedRegistryRecord(agent, pluginName, homeDirOverride) {
154
+ const homeDir = homeDirOverride ?? homedir();
155
+ const registryPath = path.join(homeDir, ".brainctl", "managed-plugins.json");
156
+ let data;
157
+ try {
158
+ data = JSON.parse(await readFile(registryPath, "utf8"));
159
+ }
160
+ catch {
161
+ return null;
162
+ }
163
+ const entries = data.agents?.[agent] ?? [];
164
+ const next = entries.filter((entry) => entry.name !== pluginName);
165
+ if (next.length === entries.length)
166
+ return null;
167
+ const backup = await backupFile(registryPath);
168
+ data.agents = { ...data.agents, [agent]: next };
169
+ await atomicWrite(registryPath, JSON.stringify(data, null, 2) + "\n");
170
+ return backup;
171
+ }
172
+ //# sourceMappingURL=agent-env-plugin-uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-env-plugin-uninstall.js","sourceRoot":"","sources":["../../src/core/agent-env-plugin-uninstall.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,12 @@ export interface SkillLocation {
29
29
  scope: AgentEnvScope;
30
30
  }
31
31
  /**
32
- * Resolve the directory holding a skill's SKILL.md. Project scope is
33
- * Claude-only Codex and Antigravity have no project-skills concept.
32
+ * Resolve the directory a skill's SKILL.md is written to. Claude reads
33
+ * `.claude/skills/`, Codex the Agent Skills standard `.agents/skills/` (user
34
+ * and project); Antigravity has no project-skills concept. New Codex skills
35
+ * always land in `~/.agents/skills/` — the legacy `~/.codex/skills/` dir is
36
+ * only consulted when resolving an existing skill (see
37
+ * `resolveExistingSkillDirs`).
34
38
  */
35
39
  export declare function getSkillDir(location: SkillLocation, cwd: string, homeDir?: string): string;
36
40
  export interface CopySkillOptions extends WriterOptions {