nomoreide 0.1.92 → 0.1.93

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.
Files changed (33) hide show
  1. package/README.md +22 -1
  2. package/dist/cli/commands.d.ts +2 -0
  3. package/dist/cli/commands.js +32 -3
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/core/agent-env-writers.d.ts +19 -0
  6. package/dist/core/agent-env-writers.js +220 -8
  7. package/dist/core/agent-env-writers.js.map +1 -1
  8. package/dist/core/agent-profiles/apply.d.ts +16 -0
  9. package/dist/core/agent-profiles/apply.js +24 -11
  10. package/dist/core/agent-profiles/apply.js.map +1 -1
  11. package/dist/core/agent-profiles/builtin.d.ts +8 -0
  12. package/dist/core/agent-profiles/builtin.js +33 -0
  13. package/dist/core/agent-profiles/builtin.js.map +1 -0
  14. package/dist/core/agent-profiles/debug-setup.d.ts +18 -0
  15. package/dist/core/agent-profiles/debug-setup.js +237 -0
  16. package/dist/core/agent-profiles/debug-setup.js.map +1 -0
  17. package/dist/core/agent-profiles/index.d.ts +3 -1
  18. package/dist/core/agent-profiles/index.js +3 -1
  19. package/dist/core/agent-profiles/index.js.map +1 -1
  20. package/dist/mcp/server.d.ts +1 -0
  21. package/dist/mcp/server.js +8 -0
  22. package/dist/mcp/server.js.map +1 -1
  23. package/dist/mcp/tools/services.d.ts +2 -0
  24. package/dist/mcp/tools/services.js +18 -9
  25. package/dist/mcp/tools/services.js.map +1 -1
  26. package/dist/web/client/assets/{code-editor-KPRIkcWr.js → code-editor-C9RcL5cM.js} +1 -1
  27. package/dist/web/client/assets/{index-Czn4YU1U.js → index-94L5mFZd.js} +3 -3
  28. package/dist/web/client/index.html +1 -1
  29. package/package.json +2 -1
  30. package/profiles/nomoreide-debug/profile.json +19 -0
  31. package/profiles/nomoreide-debug/skills/nomoreide-debug/SKILL.md +38 -0
  32. package/profiles/nomoreide-debug/skills/nomoreide-debug/agents/openai.yaml +13 -0
  33. package/profiles/nomoreide-debug/skills/nomoreide-debug/evals/evals.json +23 -0
package/README.md CHANGED
@@ -69,7 +69,28 @@ Use the agent-specific commands below to connect NoMoreIDE as an MCP server.
69
69
 
70
70
  ## Connect Your AI Agent
71
71
 
72
- NoMoreIDE runs as a **local stdio MCP server**. Pick your agent CLI and paste the one-liner — that's it.
72
+ Install the NoMoreIDE MCP server together with its triggerable debugging skill:
73
+
74
+ ```bash
75
+ npx -y nomoreide setup codex
76
+ npx -y nomoreide setup claude
77
+ npx -y nomoreide setup gemini
78
+ ```
79
+
80
+ Run the command for your agent, then start a new agent session. The skill routes
81
+ run, start, debug, crash, log, health, and port-conflict requests through the
82
+ shared NoMoreIDE daemon instead of launching duplicate development processes.
83
+ NoMoreIDE also advertises the same behavior through MCP initialization
84
+ instructions for clients that support them.
85
+
86
+ Setup is idempotent. If an existing user-level `nomoreide` MCP or
87
+ `nomoreide-debug` skill has different contents, setup stops without changing
88
+ it. Review the conflict, then rerun with `--force` to replace it and preserve a
89
+ backup. Project-scoped MCPs and skills are not changed by this user-level setup
90
+ and can override it inside that project.
91
+
92
+ The agent-specific commands below install only the local stdio MCP server and
93
+ remain available for manual setup.
73
94
 
74
95
  ### Claude Code
75
96
 
@@ -1,6 +1,8 @@
1
1
  import { type DaemonConnection } from "../core/daemon-client.js";
2
2
  export interface CliOptions {
3
3
  configPath?: string;
4
+ cwd?: string;
5
+ homeDir?: string;
4
6
  stdout?: (line: string) => void;
5
7
  stderr?: (line: string) => void;
6
8
  /** Injectable for tests; defaults to the machine-global daemon. */
@@ -1,5 +1,6 @@
1
1
  import { ConfigStore, ConfigValidationError, defaultGlobalConfigPath, } from "../core/config-store.js";
2
2
  import { createDaemonConnection, } from "../core/daemon-client.js";
3
+ import { DebugSetupConflictError, installBundledDebugSetup, } from "../core/agent-profiles/index.js";
3
4
  import { runAgentsCli } from "./agents.js";
4
5
  import { UsageError } from "./errors.js";
5
6
  import { parseFlags } from "./flags.js";
@@ -7,9 +8,14 @@ import { runGitCli } from "./git.js";
7
8
  import { runProfileCli } from "./profile.js";
8
9
  const USAGE = "Usage: nomoreide [mcp|setup|tui|web|daemon|git|agents|profile|list|logs|start|stop|restart|add]";
9
10
  const MCP_SETUP_LINES = [
10
- "NoMoreIDE MCP setup",
11
+ "NoMoreIDE MCP + automatic debugging setup",
11
12
  "",
12
- "Claude Code:",
13
+ "Recommended (installs the MCP and nomoreide-debug skill):",
14
+ " npx -y nomoreide setup codex [--force]",
15
+ " npx -y nomoreide setup claude [--force]",
16
+ " npx -y nomoreide setup gemini [--force]",
17
+ "",
18
+ "Manual MCP-only setup — Claude Code:",
13
19
  " claude mcp add --transport stdio nomoreide -- npx -y nomoreide",
14
20
  "",
15
21
  "Codex CLI:",
@@ -35,6 +41,20 @@ export async function runCli(args, options = {}) {
35
41
  try {
36
42
  const [command, subcommand, ...rest] = args;
37
43
  if (command === "setup") {
44
+ if (subcommand) {
45
+ const agent = setupAgent(subcommand);
46
+ const result = await installBundledDebugSetup({
47
+ cwd: options.cwd ?? process.cwd(),
48
+ homeDir: options.homeDir,
49
+ agent,
50
+ force: rest.includes("--force"),
51
+ });
52
+ stdout(`Installed NoMoreIDE debugging for ${subcommand}: MCP ${result.mcp}, skill ${result.skill}`);
53
+ for (const backup of result.backups)
54
+ stdout(`Backup: ${backup}`);
55
+ stdout(`Start a new ${subcommand} session, then verify the nomoreide MCP is connected.`);
56
+ return 0;
57
+ }
38
58
  for (const line of MCP_SETUP_LINES) {
39
59
  stdout(line);
40
60
  }
@@ -162,7 +182,16 @@ export async function runCli(args, options = {}) {
162
182
  }
163
183
  catch (error) {
164
184
  stderr(error instanceof Error ? error.message : String(error));
165
- return error instanceof UsageError || error instanceof ConfigValidationError ? 1 : 2;
185
+ return error instanceof UsageError ||
186
+ error instanceof ConfigValidationError ||
187
+ error instanceof DebugSetupConflictError
188
+ ? 1
189
+ : 2;
166
190
  }
167
191
  }
192
+ function setupAgent(value) {
193
+ if (value === "claude" || value === "codex" || value === "gemini")
194
+ return value;
195
+ throw new UsageError("setup agent must be one of: claude, codex, gemini");
196
+ }
168
197
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,GAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,KAAK,GACT,iGAAiG,CAAC;AAEpG,MAAM,eAAe,GAAG;IACtB,2CAA2C;IAC3C,EAAE;IACF,2DAA2D;IAC3D,0CAA0C;IAC1C,2CAA2C;IAC3C,2CAA2C;IAC3C,EAAE;IACF,sCAAsC;IACtC,kEAAkE;IAClE,EAAE;IACF,YAAY;IACZ,+CAA+C;IAC/C,EAAE;IACF,aAAa;IACb,mCAAmC;IACnC,4EAA4E;IAC5E,EAAE;IACF,gCAAgC;IAChC,QAAQ;IACR,EAAE;IACF,kCAAkC;IAClC,oLAAoL;CACrL,CAAC;AAYF,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAc,EACd,UAAsB,EAAE;IAExB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,OAAO,CAAC,UAAU,IAAI,uBAAuB,EAAE,CAChD,CAAC;IACF,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAE5C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;oBAC5C,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBACjC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK;oBACL,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;iBAChC,CAAC,CAAC;gBACH,MAAM,CACJ,qCAAqC,UAAU,SAAS,MAAM,CAAC,GAAG,WAAW,MAAM,CAAC,KAAK,EAAE,CAC5F,CAAC;gBACF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;gBACjE,MAAM,CAAC,eAAe,UAAU,uDAAuD,CAAC,CAAC;gBACzF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,MAAM,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAuC,CAAC;YAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAEtC,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC1B,MAAM,IAAI,UAAU,CAAC,+BAA+B,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM,WAAW,CAAC,eAAe,CAAC;oBAChC,IAAI;oBACJ,IAAI,EAAE,gBAAgB;oBACtB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBAC/B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,IAAI;oBACJ,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,OAAO;oBAAE,MAAM,IAAI,UAAU,CAAC,uBAAuB,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,CAAC,GAAG;oBAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBAC1D,MAAM,WAAW,CAAC,eAAe,CAAC;oBAChC,IAAI;oBACJ,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI;oBACJ,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,OAAO;oBAAE,MAAM,IAAI,UAAU,CAAC,uBAAuB,CAAC,CAAC;gBAClE,MAAM,WAAW,CAAC,eAAe,CAAC;oBAChC,IAAI;oBACJ,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBAC/B,IAAI;oBACJ,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YACrC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,UAAU,CAAC,yBAAyB,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,WAAW,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,CACJ,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,GAAG,KAAK,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,EAAE,CAC9E,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,SAAS,CAAC,CAAC;YAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,UAAU,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,UAAU,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,MAAM,GACV,OAAO,KAAK,OAAO;gBACjB,CAAC,CAAC,QAAQ;oBACR,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBAChC,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;gBACnC,CAAC,CAAC,OAAO,KAAK,MAAM;oBAClB,CAAC,CAAC,QAAQ;wBACR,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;wBAC/B,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBAClC,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,OAAO,KAAK,YAAY,UAAU;YAChC,KAAK,YAAY,qBAAqB;YACtC,KAAK,YAAY,uBAAuB;YACxC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChF,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,CAAC;AAC5E,CAAC"}
@@ -22,6 +22,16 @@ export interface AddMcpOptions extends McpMutationOptions {
22
22
  remoteEntry?: RemoteMcpEntry;
23
23
  }
24
24
  export declare function addMcp(options: AddMcpOptions): Promise<WriteOutcome>;
25
+ /** Add a local MCP server to Gemini CLI's `~/.gemini/settings.json`. */
26
+ export declare function addGeminiMcp(options: WriterOptions & {
27
+ key: string;
28
+ entry: AgentMcpEntry;
29
+ }): Promise<WriteOutcome>;
30
+ /** Add one local Codex MCP table without rebuilding unrelated MCP sections. */
31
+ export declare function addCodexMcpPreservingConfig(options: WriterOptions & {
32
+ key: string;
33
+ entry: AgentMcpEntry;
34
+ }): Promise<WriteOutcome>;
25
35
  export declare function removeMcp(options: McpMutationOptions): Promise<WriteOutcome>;
26
36
  export interface SkillLocation {
27
37
  agent: AgentName;
@@ -41,6 +51,15 @@ export interface CopySkillOptions extends WriterOptions {
41
51
  source: SkillLocation;
42
52
  target: SkillLocation;
43
53
  }
54
+ export interface InstallSkillFromDirectoryOptions extends WriterOptions {
55
+ sourceDir: string;
56
+ target: SkillLocation;
57
+ }
58
+ /**
59
+ * Install a skill from a packaged directory, preserving any replaced skill in
60
+ * the central backup area and preparing the new copy before removing the old.
61
+ */
62
+ export declare function installSkillFromDirectory(options: InstallSkillFromDirectoryOptions): Promise<WriteOutcome>;
44
63
  export declare function copySkill(options: CopySkillOptions): Promise<WriteOutcome>;
45
64
  export interface RemoveSkillOptions extends WriterOptions {
46
65
  location: SkillLocation;
@@ -14,6 +14,7 @@ import { constants } from "node:fs";
14
14
  import { copyFile, cp, mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
15
15
  import { homedir } from "node:os";
16
16
  import path from "node:path";
17
+ import { parse as parseToml } from "smol-toml";
17
18
  import { readAntigravityConfig, readCodexConfig, } from "./agent-env/index.js";
18
19
  export function formatTimestamp() {
19
20
  const now = new Date();
@@ -84,6 +85,91 @@ export async function addMcp(options) {
84
85
  servers[key] = remoteEntry ? toAntigravityRemoteEntry(remoteEntry) : toAntigravityEntry(entry);
85
86
  });
86
87
  }
88
+ /** Add a local MCP server to Gemini CLI's `~/.gemini/settings.json`. */
89
+ export async function addGeminiMcp(options) {
90
+ const homeDir = options.homeDir ?? homedir();
91
+ const configPath = path.join(homeDir, ".gemini", "settings.json");
92
+ const backups = [];
93
+ let existing = {};
94
+ let source;
95
+ try {
96
+ source = await readFile(configPath, "utf8");
97
+ }
98
+ catch (error) {
99
+ if (error.code !== "ENOENT")
100
+ throw error;
101
+ }
102
+ if (source !== undefined) {
103
+ let parsed;
104
+ try {
105
+ parsed = JSON.parse(source);
106
+ }
107
+ catch {
108
+ throw new Error(`Gemini CLI settings contain invalid JSON: ${configPath}`);
109
+ }
110
+ if (!isRecord(parsed)) {
111
+ throw new Error(`Gemini CLI settings must contain a JSON object: ${configPath}`);
112
+ }
113
+ existing = parsed;
114
+ if (existing.mcpServers !== undefined && !isRecord(existing.mcpServers)) {
115
+ throw new Error(`Gemini CLI mcpServers must contain a JSON object: ${configPath}`);
116
+ }
117
+ const backup = await backupFile(configPath);
118
+ if (backup)
119
+ backups.push(backup);
120
+ }
121
+ const servers = (existing.mcpServers ?? {});
122
+ servers[options.key] = {
123
+ command: options.entry.command,
124
+ args: options.entry.args ?? [],
125
+ ...(options.entry.env ? { env: options.entry.env } : {}),
126
+ };
127
+ existing.mcpServers = servers;
128
+ await mkdir(path.dirname(configPath), { recursive: true });
129
+ await atomicWriteJson(configPath, existing);
130
+ return { backups };
131
+ }
132
+ /** Add one local Codex MCP table without rebuilding unrelated MCP sections. */
133
+ export async function addCodexMcpPreservingConfig(options) {
134
+ const homeDir = options.homeDir ?? homedir();
135
+ const configPath = path.join(homeDir, ".codex", "config.toml");
136
+ const backups = [];
137
+ let existingContent = "";
138
+ try {
139
+ existingContent = await readFile(configPath, "utf8");
140
+ }
141
+ catch (error) {
142
+ if (error.code !== "ENOENT")
143
+ throw error;
144
+ }
145
+ const section = buildCodexLocalMcpSection(options.key, options.entry);
146
+ if (existingContent.trim()) {
147
+ let parsed;
148
+ try {
149
+ parsed = parseToml(existingContent);
150
+ }
151
+ catch {
152
+ throw new Error(`Codex configuration contains invalid TOML: ${configPath}`);
153
+ }
154
+ const servers = isRecord(parsed.mcp_servers) ? parsed.mcp_servers : undefined;
155
+ existingContent = replaceCodexMcpSection(existingContent, options.key, section, servers ? options.key in servers : false);
156
+ try {
157
+ parseToml(existingContent);
158
+ }
159
+ catch {
160
+ throw new Error(`Codex MCP "${options.key}" could not be replaced safely in ${configPath}`);
161
+ }
162
+ const backup = await backupFile(configPath);
163
+ if (backup)
164
+ backups.push(backup);
165
+ }
166
+ else {
167
+ existingContent = section;
168
+ }
169
+ await mkdir(path.dirname(configPath), { recursive: true });
170
+ await atomicWrite(configPath, `${existingContent.trimEnd()}\n`);
171
+ return { backups };
172
+ }
87
173
  export async function removeMcp(options) {
88
174
  const { agent, key, scope } = options;
89
175
  if (agent === "claude") {
@@ -112,15 +198,33 @@ async function mutateClaudeConfig(options, scope, mutate) {
112
198
  const configPath = path.join(homeDir, ".claude.json");
113
199
  const backups = [];
114
200
  let existing = {};
201
+ let source;
115
202
  try {
116
- existing = JSON.parse(await readFile(configPath, "utf8"));
203
+ source = await readFile(configPath, "utf8");
204
+ }
205
+ catch (error) {
206
+ if (error.code !== "ENOENT")
207
+ throw error;
208
+ }
209
+ if (source !== undefined) {
210
+ let parsed;
211
+ try {
212
+ parsed = JSON.parse(source);
213
+ }
214
+ catch {
215
+ throw new Error(`Claude configuration contains invalid JSON: ${configPath}`);
216
+ }
217
+ if (!isRecord(parsed)) {
218
+ throw new Error(`Claude configuration must contain a JSON object: ${configPath}`);
219
+ }
220
+ existing = parsed;
221
+ if (scope === "user" && existing.mcpServers !== undefined && !isRecord(existing.mcpServers)) {
222
+ throw new Error(`Claude mcpServers must contain a JSON object: ${configPath}`);
223
+ }
117
224
  const backup = await backupFile(configPath);
118
225
  if (backup)
119
226
  backups.push(backup);
120
227
  }
121
- catch {
122
- // fresh config
123
- }
124
228
  if (scope === "user") {
125
229
  const servers = (existing.mcpServers ?? {});
126
230
  mutate(servers);
@@ -225,9 +329,78 @@ function buildCodexMcpToml(state) {
225
329
  }
226
330
  return lines.join("\n").trim();
227
331
  }
332
+ function buildCodexLocalMcpSection(name, entry) {
333
+ const lines = [
334
+ `[mcp_servers.${name}]`,
335
+ `command = ${tomlStr(entry.command)}`,
336
+ ];
337
+ if (entry.args && entry.args.length > 0) {
338
+ lines.push(`args = [${entry.args.map(tomlStr).join(", ")}]`);
339
+ }
340
+ if (entry.env && Object.keys(entry.env).length > 0) {
341
+ lines.push("", `[mcp_servers.${name}.env]`);
342
+ for (const [key, value] of Object.entries(entry.env)) {
343
+ lines.push(`${key} = ${tomlStr(value)}`);
344
+ }
345
+ }
346
+ return lines.join("\n");
347
+ }
348
+ function replaceCodexMcpSection(content, name, section, hasExistingTarget = false) {
349
+ const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
350
+ const key = `(?:${escaped}|"${escaped}"|'${escaped}')`;
351
+ const targetTable = new RegExp(`^\\s*\\[mcp_servers\\.${key}(?:\\.[^\\]]+)?\\]\\s*(?:#.*)?$`);
352
+ const dottedAssignment = new RegExp(`^\\s*mcp_servers\\.${key}\\s*=`);
353
+ const rootAssignment = new RegExp(`^\\s*${key}\\s*=`);
354
+ const lines = content.split("\n");
355
+ const result = [];
356
+ let skipping = false;
357
+ let inserted = false;
358
+ let appendSection = false;
359
+ let inRootMcpTable = false;
360
+ let atTopLevel = true;
361
+ for (const line of lines) {
362
+ if (/^\s*\[[^\]]+\]\s*(?:#.*)?$/.test(line)) {
363
+ if (targetTable.test(line)) {
364
+ if (!inserted) {
365
+ result.push(section);
366
+ inserted = true;
367
+ }
368
+ skipping = true;
369
+ continue;
370
+ }
371
+ skipping = false;
372
+ inRootMcpTable = /^\s*\[mcp_servers\]\s*(?:#.*)?$/.test(line);
373
+ atTopLevel = false;
374
+ }
375
+ if (!skipping &&
376
+ ((atTopLevel && dottedAssignment.test(line)) ||
377
+ (inRootMcpTable && rootAssignment.test(line)))) {
378
+ inserted = true;
379
+ appendSection = true;
380
+ continue;
381
+ }
382
+ if (!skipping)
383
+ result.push(line);
384
+ }
385
+ if (appendSection) {
386
+ const prefix = result.join("\n").trimEnd();
387
+ return prefix ? `${prefix}\n\n${section}` : section;
388
+ }
389
+ if (!inserted) {
390
+ if (hasExistingTarget) {
391
+ throw new Error(`Codex MCP "${name}" uses an unsupported TOML layout.`);
392
+ }
393
+ const prefix = result.join("\n").trimEnd();
394
+ return prefix ? `${prefix}\n\n${section}` : section;
395
+ }
396
+ return result.join("\n");
397
+ }
228
398
  function tomlStr(value) {
229
399
  return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
230
400
  }
401
+ function isRecord(value) {
402
+ return value !== null && typeof value === "object" && !Array.isArray(value);
403
+ }
231
404
  /* ---- Antigravity: JSON mcpServers at the live candidate path ---- */
232
405
  async function mutateAntigravityConfig(options, mutate) {
233
406
  const homeDir = options.homeDir ?? homedir();
@@ -339,6 +512,27 @@ async function resolveExistingSkillDirs(location, cwd, homeDir) {
339
512
  }
340
513
  return existing;
341
514
  }
515
+ /**
516
+ * Install a skill from a packaged directory, preserving any replaced skill in
517
+ * the central backup area and preparing the new copy before removing the old.
518
+ */
519
+ export async function installSkillFromDirectory(options) {
520
+ const targetDir = getSkillDir(options.target, options.cwd, options.homeDir);
521
+ const stagingDir = `${targetDir}.tmp.${process.pid}.${Date.now()}`;
522
+ await mkdir(path.dirname(targetDir), { recursive: true });
523
+ await rm(stagingDir, { recursive: true, force: true });
524
+ await cp(options.sourceDir, stagingDir, { recursive: true });
525
+ const backup = await backupSkillDir(options, targetDir);
526
+ try {
527
+ await rm(targetDir, { recursive: true, force: true });
528
+ await rename(stagingDir, targetDir);
529
+ }
530
+ catch (error) {
531
+ await rm(stagingDir, { recursive: true, force: true });
532
+ throw error;
533
+ }
534
+ return { backups: backup ? [backup] : [] };
535
+ }
342
536
  export async function copySkill(options) {
343
537
  const [sourceDir] = await resolveExistingSkillDirs(options.source, options.cwd, options.homeDir);
344
538
  const targetDir = getSkillDir(options.target, options.cwd, options.homeDir);
@@ -401,10 +595,28 @@ async function backupSkillDir(options, skillDir) {
401
595
  return null;
402
596
  }
403
597
  const homeDir = options.homeDir ?? homedir();
404
- const backupDir = path.join(homeDir, ".config", "nomoreide", "agent-env-backups", `${path.basename(skillDir)}.${formatTimestamp()}`);
405
- await mkdir(path.dirname(backupDir), { recursive: true });
406
- await cp(skillDir, backupDir, { recursive: true });
407
- return backupDir;
598
+ const backupBase = path.join(homeDir, ".config", "nomoreide", "agent-env-backups", `${path.basename(skillDir)}.${formatTimestamp()}`);
599
+ await mkdir(path.dirname(backupBase), { recursive: true });
600
+ for (let attempt = 0; attempt < 100; attempt++) {
601
+ const backupDir = attempt === 0 ? backupBase : `${backupBase}-${attempt}`;
602
+ try {
603
+ await mkdir(backupDir);
604
+ }
605
+ catch (error) {
606
+ if (error.code === "EEXIST")
607
+ continue;
608
+ throw error;
609
+ }
610
+ try {
611
+ await cp(skillDir, backupDir, { recursive: true });
612
+ return backupDir;
613
+ }
614
+ catch (error) {
615
+ await rm(backupDir, { recursive: true, force: true });
616
+ throw error;
617
+ }
618
+ }
619
+ throw new Error(`Could not allocate a unique backup path for skill "${path.basename(skillDir)}".`);
408
620
  }
409
621
  /* ---- Snapshot: back up an agent's config file before bulk operations ---- */
410
622
  export async function snapshotAgentConfig(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-env-writers.js","sourceRoot":"","sources":["../../src/core/agent-env-writers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,eAAe,GAIhB,MAAM,sBAAsB,CAAC;AAe9B,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AACtJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,IAAI,GAAG,GAAG,QAAQ,QAAQ,eAAe,EAAE,EAAE,CAAC;IACpD,2EAA2E;IAC3E,uEAAuE;IACvE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;YAC9D,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IAAI,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAChC,OAAO,IAAI,CAAC,CAAC,sDAAsD;QACrE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,OAAe;IACjE,MAAM,OAAO,GAAG,GAAG,QAAQ,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAChD,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAa;IAC5D,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AAeD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAsB;IACjD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1D,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,oDAAoD,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAM,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,sEAAsE;QACtE,sEAAsE;QACtE,OAAO,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3D,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW;gBACxB,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE;gBAC5D,CAAC,CAAC;oBACE,OAAO,EAAE,KAAM,CAAC,OAAO;oBACvB,GAAG,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3C,CAAC;QACR,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1C,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,WAAW;gBAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;;gBACtD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAM,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,uBAAuB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QAClD,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAM,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA2B;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEtC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YACpD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1C,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,uBAAuB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAElF,KAAK,UAAU,kBAAkB,CAC/B,OAAsB,EACtB,KAAoB,EACpB,MAAkD;IAElD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAE3C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChB,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAA4C,CAAC;QACtF,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC/E,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;QAC5E,MAAM,CAAC,OAAO,CAAC,CAAC;QAChB,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;QACtC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IACzC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAqB;IAChD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QAChD,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E,KAAK,UAAU,iBAAiB,CAC9B,OAAsB,EACtB,MAGU;IAEV,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,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,IAAI,CAAC;QACH,eAAe,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE;QACrC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE;KAClD,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,CAAC;IAEd,6EAA6E;IAC7E,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/E,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,WAAW,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnE,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAG1B;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,CAAC;YACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AAED,uEAAuE;AAEvE,KAAK,UAAU,uBAAuB,CACpC,OAAsB,EACtB,MAAkD;IAElD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IAC7C,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA4B,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IACvE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChB,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC;IAE9B,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAoB;IAC9C,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAqB;IACrD,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7E,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,yBAAyB,CACtC,OAAsB,EACtB,KAA8B,EAC9B,MAAkD;IAElD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAA4B,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,aAAa;IACf,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAA4B,CAAC;IACjE,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IACxE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChB,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAExB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,QAAuB,EAAE,GAAW,EAAE,OAAgB;IAChF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,2IAA2I,CAC5I,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,wBAAwB,CACrC,QAAuB,EACvB,GAAW,EACX,OAAgB;IAEhB,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,MAAM,CAAC,SAAS,mBAAmB,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAC7I,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,kEAAkE;QAClE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,MAAM,CAAC,SAAS,mBAAmB,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAC7I,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,OAAsB,EAAE,QAAgB;IACpE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,OAAO,EACP,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,EAAE,CAClD,CAAC;IACF,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA6C;IAE7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;IAC7C,MAAM,UAAU,GACd,OAAO,CAAC,KAAK,KAAK,QAAQ;QACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;QACpC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO;YACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;YAC7C,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAEhF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"agent-env-writers.js","sourceRoot":"","sources":["../../src/core/agent-env-writers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type AgentName } from "../agent-env/index.js";
2
2
  import { type ProfileStoreOptions } from "./store.js";
3
+ import type { Profile } from "./types.js";
3
4
  export type ProfileItemStatus = "add" | "identical" | "conflict";
4
5
  export interface ProfileApplyItem {
5
6
  category: "mcp" | "skill";
@@ -24,6 +25,16 @@ export interface ProfileApplyOptions extends ProfileStoreOptions {
24
25
  skills?: string[];
25
26
  };
26
27
  }
28
+ export interface ProfileContentsApplyOptions extends ProfileStoreOptions {
29
+ cwd: string;
30
+ profile: Profile;
31
+ skillsDir: string;
32
+ agent: AgentName;
33
+ skip?: {
34
+ mcps?: string[];
35
+ skills?: string[];
36
+ };
37
+ }
27
38
  export declare function previewProfileApply(options: Omit<ProfileApplyOptions, "skip">): Promise<ProfileApplyPreview>;
28
39
  export interface ProfileApplyResult {
29
40
  profile: string;
@@ -34,3 +45,8 @@ export interface ProfileApplyResult {
34
45
  backups: string[];
35
46
  }
36
47
  export declare function applyProfile(options: ProfileApplyOptions): Promise<ProfileApplyResult>;
48
+ /**
49
+ * Apply an already-loaded profile. Built-in profiles use this path directly
50
+ * so their read-only package assets never collide with user-created profiles.
51
+ */
52
+ export declare function applyProfileContents(options: ProfileContentsApplyOptions): Promise<ProfileApplyResult>;
@@ -5,9 +5,8 @@
5
5
  * `applyProfile` snapshots the agent's config, writes through the
6
6
  * write-guarded agent-env-writers layer, and reports every backup created.
7
7
  */
8
- import { cp, mkdir, rm } from "node:fs/promises";
9
8
  import path from "node:path";
10
- import { addMcp, getSkillDir, snapshotAgentConfig } from "../agent-env-writers.js";
9
+ import { addMcp, installSkillFromDirectory, snapshotAgentConfig, } from "../agent-env-writers.js";
11
10
  import { readAllAgentConfigs, } from "../agent-env/index.js";
12
11
  import { findUnresolvedCredentialKeys } from "./credentials.js";
13
12
  import { getProfile, profileSkillsDir, pathExists } from "./store.js";
@@ -51,6 +50,21 @@ export async function previewProfileApply(options) {
51
50
  }
52
51
  export async function applyProfile(options) {
53
52
  const profile = await getProfile(options.name, options);
53
+ return await applyProfileContents({
54
+ cwd: options.cwd,
55
+ homeDir: options.homeDir,
56
+ profile,
57
+ skillsDir: profileSkillsDir(options.name, options),
58
+ agent: options.agent,
59
+ skip: options.skip,
60
+ });
61
+ }
62
+ /**
63
+ * Apply an already-loaded profile. Built-in profiles use this path directly
64
+ * so their read-only package assets never collide with user-created profiles.
65
+ */
66
+ export async function applyProfileContents(options) {
67
+ const { profile } = options;
54
68
  const base = { cwd: options.cwd, homeDir: options.homeDir };
55
69
  const skipMcps = new Set(options.skip?.mcps ?? []);
56
70
  const skipSkills = new Set(options.skip?.skills ?? []);
@@ -87,12 +101,18 @@ export async function applyProfile(options) {
87
101
  skipped.push(`skill "${skill.name}"`);
88
102
  continue;
89
103
  }
90
- const sourceDir = path.join(profileSkillsDir(options.name, options), path.basename(skill.name));
104
+ const sourceDir = path.join(options.skillsDir, path.basename(skill.name));
91
105
  if (!(await pathExists(sourceDir))) {
92
106
  skipped.push(`skill "${skill.name}" (missing from profile bundle)`);
93
107
  continue;
94
108
  }
95
- await installProfileSkill(sourceDir, skill.name, options);
109
+ const outcome = await installSkillFromDirectory({
110
+ cwd: options.cwd,
111
+ homeDir: options.homeDir,
112
+ sourceDir,
113
+ target: { agent: options.agent, skillName: skill.name, scope: "user" },
114
+ });
115
+ backups.push(...outcome.backups);
96
116
  skillsApplied.push(skill.name);
97
117
  }
98
118
  return {
@@ -104,13 +124,6 @@ export async function applyProfile(options) {
104
124
  backups,
105
125
  };
106
126
  }
107
- /** Copy a bundled skill dir into the agent's user skills dir (idempotent overwrite). */
108
- async function installProfileSkill(sourceDir, skillName, options) {
109
- const targetDir = getSkillDir({ agent: options.agent, skillName, scope: "user" }, options.cwd, options.homeDir);
110
- await mkdir(path.dirname(targetDir), { recursive: true });
111
- await rm(targetDir, { recursive: true, force: true });
112
- await cp(sourceDir, targetDir, { recursive: true });
113
- }
114
127
  async function readLiveConfig(options) {
115
128
  const configs = await readAllAgentConfigs({ cwd: options.cwd, homeDir: options.homeDir });
116
129
  const config = configs.find((candidate) => candidate.agent === options.agent);