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.
- package/README.md +22 -1
- package/dist/cli/commands.d.ts +2 -0
- package/dist/cli/commands.js +32 -3
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/agent-env-writers.d.ts +19 -0
- package/dist/core/agent-env-writers.js +220 -8
- package/dist/core/agent-env-writers.js.map +1 -1
- package/dist/core/agent-profiles/apply.d.ts +16 -0
- package/dist/core/agent-profiles/apply.js +24 -11
- package/dist/core/agent-profiles/apply.js.map +1 -1
- package/dist/core/agent-profiles/builtin.d.ts +8 -0
- package/dist/core/agent-profiles/builtin.js +33 -0
- package/dist/core/agent-profiles/builtin.js.map +1 -0
- package/dist/core/agent-profiles/debug-setup.d.ts +18 -0
- package/dist/core/agent-profiles/debug-setup.js +237 -0
- package/dist/core/agent-profiles/debug-setup.js.map +1 -0
- package/dist/core/agent-profiles/index.d.ts +3 -1
- package/dist/core/agent-profiles/index.js +3 -1
- package/dist/core/agent-profiles/index.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +8 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/services.d.ts +2 -0
- package/dist/mcp/tools/services.js +18 -9
- package/dist/mcp/tools/services.js.map +1 -1
- package/dist/web/client/assets/{code-editor-KPRIkcWr.js → code-editor-C9RcL5cM.js} +1 -1
- package/dist/web/client/assets/{index-Czn4YU1U.js → index-94L5mFZd.js} +3 -3
- package/dist/web/client/index.html +1 -1
- package/package.json +2 -1
- package/profiles/nomoreide-debug/profile.json +19 -0
- package/profiles/nomoreide-debug/skills/nomoreide-debug/SKILL.md +38 -0
- package/profiles/nomoreide-debug/skills/nomoreide-debug/agents/openai.yaml +13 -0
- 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
|
-
|
|
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
|
|
package/dist/cli/commands.d.ts
CHANGED
|
@@ -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. */
|
package/dist/cli/commands.js
CHANGED
|
@@ -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
|
-
"
|
|
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 ||
|
|
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
|
package/dist/cli/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,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,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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
|
|
405
|
-
await mkdir(path.dirname(
|
|
406
|
-
|
|
407
|
-
|
|
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":"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"}
|
|
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,
|
|
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(
|
|
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
|
|
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);
|