@yama662607/agent-config-sync 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/catalog.d.ts +65 -0
- package/dist/catalog.js +328 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cli-catalog.d.ts +70 -0
- package/dist/cli-catalog.js +433 -0
- package/dist/cli-catalog.js.map +1 -0
- package/dist/cli-diagnostics.d.ts +14 -0
- package/dist/cli-diagnostics.js +177 -0
- package/dist/cli-diagnostics.js.map +1 -0
- package/dist/cli-init.d.ts +8 -0
- package/dist/cli-init.js +77 -0
- package/dist/cli-init.js.map +1 -0
- package/dist/cli-mcp.d.ts +38 -0
- package/dist/cli-mcp.js +179 -0
- package/dist/cli-mcp.js.map +1 -0
- package/dist/cli-skill.d.ts +51 -0
- package/dist/cli-skill.js +239 -0
- package/dist/cli-skill.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +868 -0
- package/dist/cli.js.map +1 -0
- package/dist/config-adapters.d.ts +32 -0
- package/dist/config-adapters.js +410 -0
- package/dist/config-adapters.js.map +1 -0
- package/dist/fs.d.ts +2 -0
- package/dist/fs.js +20 -0
- package/dist/fs.js.map +1 -0
- package/dist/project-discovery.d.ts +20 -0
- package/dist/project-discovery.js +79 -0
- package/dist/project-discovery.js.map +1 -0
- package/dist/prompts/confirm-prompt.d.ts +9 -0
- package/dist/prompts/confirm-prompt.js +54 -0
- package/dist/prompts/confirm-prompt.js.map +1 -0
- package/dist/prompts/custom-multiselect.d.ts +9 -0
- package/dist/prompts/custom-multiselect.js +28 -0
- package/dist/prompts/custom-multiselect.js.map +1 -0
- package/dist/prompts/index.d.ts +5 -0
- package/dist/prompts/index.js +6 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/mcp-prompt.d.ts +5 -0
- package/dist/prompts/mcp-prompt.js +57 -0
- package/dist/prompts/mcp-prompt.js.map +1 -0
- package/dist/prompts/skill-prompt.d.ts +5 -0
- package/dist/prompts/skill-prompt.js +57 -0
- package/dist/prompts/skill-prompt.js.map +1 -0
- package/dist/prompts/target-prompt.d.ts +7 -0
- package/dist/prompts/target-prompt.js +47 -0
- package/dist/prompts/target-prompt.js.map +1 -0
- package/dist/registry.d.ts +49 -0
- package/dist/registry.js +121 -0
- package/dist/registry.js.map +1 -0
- package/dist/skill-adapters.d.ts +53 -0
- package/dist/skill-adapters.js +183 -0
- package/dist/skill-adapters.js.map +1 -0
- package/dist/types.d.ts +151 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +68 -0
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { TargetName, McpRecipe, ConfigReadResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Read and parse a native config file for a target.
|
|
4
|
+
*/
|
|
5
|
+
export declare function readNativeConfig(target: TargetName, configPath: string): Promise<ConfigReadResult<any>>;
|
|
6
|
+
/**
|
|
7
|
+
* Write a native config file atomically.
|
|
8
|
+
*/
|
|
9
|
+
export declare function writeNativeConfig(target: TargetName, configPath: string, config: any): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Add an MCP server to a native config.
|
|
12
|
+
*/
|
|
13
|
+
export declare function addMcpToConfig(target: TargetName, configPath: string, serverName: string, recipe: McpRecipe): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Remove an MCP server from a native config.
|
|
16
|
+
*/
|
|
17
|
+
export declare function removeMcpFromConfig(target: TargetName, configPath: string, serverName: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Enable an MCP server in a native config.
|
|
20
|
+
*/
|
|
21
|
+
export declare function enableMcpInConfig(target: TargetName, configPath: string, serverName: string): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Disable an MCP server in a native config.
|
|
24
|
+
*/
|
|
25
|
+
export declare function disableMcpInConfig(target: TargetName, configPath: string, serverName: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Get all MCP servers from a native config.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getMcpServers(target: TargetName, configPath: string): Promise<Record<string, {
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
recipe?: McpRecipe;
|
|
32
|
+
}>>;
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import TOML from '@iarna/toml';
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Validation
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/** Valid MCP server name pattern (allows npm scoped packages like @scope/package) */
|
|
8
|
+
const SERVER_NAME_PATTERN = /^(@[a-zA-Z0-9._-]+\/)?[a-zA-Z0-9._-]+$/;
|
|
9
|
+
/** Valid command pattern: basename only, no path separators (except npx, node, etc.) */
|
|
10
|
+
const COMMAND_PATTERN = /^[a-zA-Z0-9._-]+$/;
|
|
11
|
+
/**
|
|
12
|
+
* Validate MCP server name.
|
|
13
|
+
* Allows npm scoped packages like @scope/package-name.
|
|
14
|
+
*/
|
|
15
|
+
function validateServerName(serverName) {
|
|
16
|
+
if (!serverName || serverName.length === 0 || serverName.length > 150) {
|
|
17
|
+
throw new Error('Server name must be 1-150 characters');
|
|
18
|
+
}
|
|
19
|
+
if (!SERVER_NAME_PATTERN.test(serverName)) {
|
|
20
|
+
throw new Error('Server name must contain only alphanumeric characters, hyphens, underscores, dots, and optional @scope/ prefix');
|
|
21
|
+
}
|
|
22
|
+
if (serverName.includes('..') || serverName.includes('\\')) {
|
|
23
|
+
throw new Error('Server name cannot contain path traversal characters');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Validate MCP command to prevent command injection.
|
|
28
|
+
* Only allows simple command names without paths or shell metacharacters.
|
|
29
|
+
*/
|
|
30
|
+
function validateCommand(command) {
|
|
31
|
+
if (!command || command.length === 0 || command.length > 200) {
|
|
32
|
+
throw new Error('Command must be 1-200 characters');
|
|
33
|
+
}
|
|
34
|
+
// Check for shell metacharacters
|
|
35
|
+
const dangerousChars = /[;&|`$()<>]/;
|
|
36
|
+
if (dangerousChars.test(command)) {
|
|
37
|
+
throw new Error('Command cannot contain shell metacharacters');
|
|
38
|
+
}
|
|
39
|
+
// For commands with paths, allow common safe prefixes
|
|
40
|
+
if (command.includes('/') || command.includes('\\')) {
|
|
41
|
+
// Only allow specific safe paths
|
|
42
|
+
const allowedPaths = [
|
|
43
|
+
/^npx$/,
|
|
44
|
+
/^npm$/,
|
|
45
|
+
/^node$/,
|
|
46
|
+
/^python$/,
|
|
47
|
+
/^python3$/,
|
|
48
|
+
/^\.\/[a-zA-Z0-9._-]+$/, // Current directory relative
|
|
49
|
+
/^\.\.\/[a-zA-Z0-9._-]+$/, // Parent directory relative (risky but needed)
|
|
50
|
+
];
|
|
51
|
+
const isAllowed = allowedPaths.some(pattern => pattern.test(command));
|
|
52
|
+
if (!isAllowed) {
|
|
53
|
+
throw new Error('Command path not allowed. Use npx, npm, node, or relative paths like ./command');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Validate MCP arguments.
|
|
59
|
+
*/
|
|
60
|
+
function validateArgs(args) {
|
|
61
|
+
for (const arg of args) {
|
|
62
|
+
if (arg.length > 500) {
|
|
63
|
+
throw new Error('Argument too long');
|
|
64
|
+
}
|
|
65
|
+
// Check for shell metacharacters that could escape the argument
|
|
66
|
+
if (/[;&|`$()]/.test(arg)) {
|
|
67
|
+
throw new Error('Arguments cannot contain shell metacharacters');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// Config Reading
|
|
73
|
+
// ============================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Read and parse a native config file for a target.
|
|
76
|
+
*/
|
|
77
|
+
export async function readNativeConfig(target, configPath) {
|
|
78
|
+
try {
|
|
79
|
+
const raw = await fs.readFile(configPath, 'utf8');
|
|
80
|
+
switch (target) {
|
|
81
|
+
case 'claude':
|
|
82
|
+
return parseClaudeConfig(raw);
|
|
83
|
+
case 'codex':
|
|
84
|
+
return parseCodexConfig(raw);
|
|
85
|
+
case 'gemini':
|
|
86
|
+
return parseGeminiConfig(raw);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
if (error.code === 'ENOENT') {
|
|
91
|
+
return { config: null, exists: false };
|
|
92
|
+
}
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function parseClaudeConfig(raw) {
|
|
97
|
+
try {
|
|
98
|
+
const config = JSON.parse(raw);
|
|
99
|
+
return { config, exists: true };
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return { config: null, exists: true, raw };
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function parseCodexConfig(raw) {
|
|
106
|
+
try {
|
|
107
|
+
const config = TOML.parse(raw);
|
|
108
|
+
return { config, exists: true };
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return { config: null, exists: true, raw };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function parseGeminiConfig(raw) {
|
|
115
|
+
try {
|
|
116
|
+
const config = JSON.parse(raw);
|
|
117
|
+
return { config, exists: true };
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return { config: null, exists: true, raw };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ============================================================================
|
|
124
|
+
// Config Writing
|
|
125
|
+
// ============================================================================
|
|
126
|
+
/**
|
|
127
|
+
* Write a native config file atomically.
|
|
128
|
+
*/
|
|
129
|
+
export async function writeNativeConfig(target, configPath, config) {
|
|
130
|
+
const tempPath = `${configPath}.tmp`;
|
|
131
|
+
let content;
|
|
132
|
+
switch (target) {
|
|
133
|
+
case 'claude':
|
|
134
|
+
content = JSON.stringify(config, null, 2);
|
|
135
|
+
break;
|
|
136
|
+
case 'codex':
|
|
137
|
+
content = TOML.stringify(config);
|
|
138
|
+
break;
|
|
139
|
+
case 'gemini':
|
|
140
|
+
content = JSON.stringify(config, null, 2);
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
await fs.mkdir(path.dirname(configPath), { recursive: true });
|
|
144
|
+
await fs.writeFile(tempPath, content, 'utf8');
|
|
145
|
+
await fs.rename(tempPath, configPath);
|
|
146
|
+
}
|
|
147
|
+
// ============================================================================
|
|
148
|
+
// MCP Server Operations
|
|
149
|
+
// ============================================================================
|
|
150
|
+
/**
|
|
151
|
+
* Add an MCP server to a native config.
|
|
152
|
+
*/
|
|
153
|
+
export async function addMcpToConfig(target, configPath, serverName, recipe) {
|
|
154
|
+
// Validate server name
|
|
155
|
+
validateServerName(serverName);
|
|
156
|
+
// Validate recipe content
|
|
157
|
+
if (recipe.command) {
|
|
158
|
+
validateCommand(recipe.command);
|
|
159
|
+
}
|
|
160
|
+
if (recipe.args && recipe.args.length > 0) {
|
|
161
|
+
validateArgs(recipe.args);
|
|
162
|
+
}
|
|
163
|
+
if (recipe.url) {
|
|
164
|
+
// Basic URL validation - ensure it starts with http:// or https://
|
|
165
|
+
try {
|
|
166
|
+
const url = new URL(recipe.url);
|
|
167
|
+
if (url.protocol !== 'http:' && url.protocol !== 'https:') {
|
|
168
|
+
throw new Error('URL must use http or https protocol');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
throw new Error('Invalid URL format');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const result = await readNativeConfig(target, configPath);
|
|
176
|
+
let config;
|
|
177
|
+
switch (target) {
|
|
178
|
+
case 'claude':
|
|
179
|
+
config = result.config ?? { mcpServers: {} };
|
|
180
|
+
break;
|
|
181
|
+
case 'codex':
|
|
182
|
+
config = result.config ?? { mcp_servers: {} };
|
|
183
|
+
break;
|
|
184
|
+
case 'gemini':
|
|
185
|
+
config = result.config ?? { mcpServers: {} };
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
await addMcpServer(target, config, serverName, recipe);
|
|
189
|
+
await writeNativeConfig(target, configPath, config);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Remove an MCP server from a native config.
|
|
193
|
+
*/
|
|
194
|
+
export async function removeMcpFromConfig(target, configPath, serverName) {
|
|
195
|
+
validateServerName(serverName);
|
|
196
|
+
const result = await readNativeConfig(target, configPath);
|
|
197
|
+
if (!result.config) {
|
|
198
|
+
return; // Nothing to remove
|
|
199
|
+
}
|
|
200
|
+
const config = result.config;
|
|
201
|
+
await removeMcpServer(target, config, serverName);
|
|
202
|
+
await writeNativeConfig(target, configPath, config);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Enable an MCP server in a native config.
|
|
206
|
+
*/
|
|
207
|
+
export async function enableMcpInConfig(target, configPath, serverName) {
|
|
208
|
+
validateServerName(serverName);
|
|
209
|
+
const result = await readNativeConfig(target, configPath);
|
|
210
|
+
if (!result.config) {
|
|
211
|
+
return; // Nothing to enable
|
|
212
|
+
}
|
|
213
|
+
const config = result.config;
|
|
214
|
+
await setMcpEnabled(target, config, serverName, true);
|
|
215
|
+
await writeNativeConfig(target, configPath, config);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Disable an MCP server in a native config.
|
|
219
|
+
*/
|
|
220
|
+
export async function disableMcpInConfig(target, configPath, serverName) {
|
|
221
|
+
validateServerName(serverName);
|
|
222
|
+
const result = await readNativeConfig(target, configPath);
|
|
223
|
+
if (!result.config) {
|
|
224
|
+
return; // Nothing to disable
|
|
225
|
+
}
|
|
226
|
+
const config = result.config;
|
|
227
|
+
await setMcpEnabled(target, config, serverName, false);
|
|
228
|
+
await writeNativeConfig(target, configPath, config);
|
|
229
|
+
}
|
|
230
|
+
// ============================================================================
|
|
231
|
+
// Internal Server Operations
|
|
232
|
+
// ============================================================================
|
|
233
|
+
async function addMcpServer(target, config, serverName, recipe) {
|
|
234
|
+
switch (target) {
|
|
235
|
+
case 'claude': {
|
|
236
|
+
const server = {};
|
|
237
|
+
if (recipe.url) {
|
|
238
|
+
server.httpUrl = recipe.url;
|
|
239
|
+
}
|
|
240
|
+
else if (recipe.command) {
|
|
241
|
+
server.command = recipe.command;
|
|
242
|
+
if (recipe.args)
|
|
243
|
+
server.args = recipe.args;
|
|
244
|
+
}
|
|
245
|
+
if (recipe.env)
|
|
246
|
+
server.env = recipe.env;
|
|
247
|
+
config.mcpServers[serverName] = server;
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
case 'codex': {
|
|
251
|
+
const server = { enabled: true };
|
|
252
|
+
if (recipe.url) {
|
|
253
|
+
server.httpUrl = recipe.url;
|
|
254
|
+
}
|
|
255
|
+
else if (recipe.command) {
|
|
256
|
+
server.command = recipe.command;
|
|
257
|
+
if (recipe.args)
|
|
258
|
+
server.args = recipe.args;
|
|
259
|
+
}
|
|
260
|
+
if (recipe.cwd)
|
|
261
|
+
server.cwd = recipe.cwd;
|
|
262
|
+
if (recipe.env)
|
|
263
|
+
server.env = recipe.env;
|
|
264
|
+
config.mcp_servers[serverName] = server;
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
case 'gemini': {
|
|
268
|
+
const server = { enabled: true };
|
|
269
|
+
if (recipe.url) {
|
|
270
|
+
server.url = recipe.url;
|
|
271
|
+
}
|
|
272
|
+
else if (recipe.command) {
|
|
273
|
+
server.command = recipe.command;
|
|
274
|
+
if (recipe.args)
|
|
275
|
+
server.args = recipe.args;
|
|
276
|
+
}
|
|
277
|
+
if (recipe.cwd)
|
|
278
|
+
server.cwd = recipe.cwd;
|
|
279
|
+
config.mcpServers[serverName] = server;
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
async function removeMcpServer(target, config, serverName) {
|
|
285
|
+
switch (target) {
|
|
286
|
+
case 'claude':
|
|
287
|
+
delete config.mcpServers[serverName];
|
|
288
|
+
break;
|
|
289
|
+
case 'codex':
|
|
290
|
+
if (config.mcp_servers) {
|
|
291
|
+
delete config.mcp_servers[serverName];
|
|
292
|
+
}
|
|
293
|
+
break;
|
|
294
|
+
case 'gemini':
|
|
295
|
+
if (config.mcpServers) {
|
|
296
|
+
delete config.mcpServers[serverName];
|
|
297
|
+
}
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
async function setMcpEnabled(target, config, serverName, enabled) {
|
|
302
|
+
switch (target) {
|
|
303
|
+
case 'claude':
|
|
304
|
+
// Claude doesn't have enabled flag - remove when disabled
|
|
305
|
+
if (!enabled) {
|
|
306
|
+
delete config.mcpServers[serverName];
|
|
307
|
+
}
|
|
308
|
+
break;
|
|
309
|
+
case 'codex':
|
|
310
|
+
if (config.mcp_servers?.[serverName]) {
|
|
311
|
+
config.mcp_servers[serverName].enabled = enabled;
|
|
312
|
+
}
|
|
313
|
+
break;
|
|
314
|
+
case 'gemini':
|
|
315
|
+
if (config.mcpServers?.[serverName]) {
|
|
316
|
+
config.mcpServers[serverName].enabled = enabled;
|
|
317
|
+
}
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// ============================================================================
|
|
322
|
+
// Status Queries
|
|
323
|
+
// ============================================================================
|
|
324
|
+
/**
|
|
325
|
+
* Get all MCP servers from a native config.
|
|
326
|
+
*/
|
|
327
|
+
export async function getMcpServers(target, configPath) {
|
|
328
|
+
const result = await readNativeConfig(target, configPath);
|
|
329
|
+
if (!result.config) {
|
|
330
|
+
return {};
|
|
331
|
+
}
|
|
332
|
+
switch (target) {
|
|
333
|
+
case 'claude': {
|
|
334
|
+
const config = result.config;
|
|
335
|
+
const servers = {};
|
|
336
|
+
for (const [name, server] of Object.entries(config.mcpServers)) {
|
|
337
|
+
const recipe = {};
|
|
338
|
+
if (server.httpUrl) {
|
|
339
|
+
recipe.url = server.httpUrl;
|
|
340
|
+
recipe.transport = 'http';
|
|
341
|
+
}
|
|
342
|
+
else if (server.command) {
|
|
343
|
+
recipe.command = server.command;
|
|
344
|
+
recipe.args = server.args ?? [];
|
|
345
|
+
recipe.transport = 'stdio';
|
|
346
|
+
}
|
|
347
|
+
if (server.env)
|
|
348
|
+
recipe.env = server.env;
|
|
349
|
+
servers[name] = {
|
|
350
|
+
enabled: true,
|
|
351
|
+
recipe,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
return servers;
|
|
355
|
+
}
|
|
356
|
+
case 'codex': {
|
|
357
|
+
const config = result.config;
|
|
358
|
+
const servers = {};
|
|
359
|
+
if (config.mcp_servers) {
|
|
360
|
+
for (const [name, server] of Object.entries(config.mcp_servers)) {
|
|
361
|
+
const recipe = {};
|
|
362
|
+
if (server.httpUrl) {
|
|
363
|
+
recipe.url = server.httpUrl;
|
|
364
|
+
recipe.transport = 'http';
|
|
365
|
+
}
|
|
366
|
+
else if (server.command) {
|
|
367
|
+
recipe.command = server.command;
|
|
368
|
+
recipe.args = server.args ?? [];
|
|
369
|
+
recipe.transport = 'stdio';
|
|
370
|
+
}
|
|
371
|
+
if (server.cwd)
|
|
372
|
+
recipe.cwd = server.cwd;
|
|
373
|
+
if (server.env)
|
|
374
|
+
recipe.env = server.env;
|
|
375
|
+
servers[name] = {
|
|
376
|
+
enabled: server.enabled !== false,
|
|
377
|
+
recipe: server.enabled !== false ? recipe : undefined,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return servers;
|
|
382
|
+
}
|
|
383
|
+
case 'gemini': {
|
|
384
|
+
const config = result.config;
|
|
385
|
+
const servers = {};
|
|
386
|
+
if (config.mcpServers) {
|
|
387
|
+
for (const [name, server] of Object.entries(config.mcpServers)) {
|
|
388
|
+
const recipe = {};
|
|
389
|
+
if (server.url) {
|
|
390
|
+
recipe.url = server.url;
|
|
391
|
+
recipe.transport = 'http';
|
|
392
|
+
}
|
|
393
|
+
else if (server.command) {
|
|
394
|
+
recipe.command = server.command;
|
|
395
|
+
recipe.args = server.args ?? [];
|
|
396
|
+
recipe.transport = 'stdio';
|
|
397
|
+
}
|
|
398
|
+
if (server.cwd)
|
|
399
|
+
recipe.cwd = server.cwd;
|
|
400
|
+
servers[name] = {
|
|
401
|
+
enabled: server.enabled !== false,
|
|
402
|
+
recipe: server.enabled !== false && (server.url || server.command) ? recipe : undefined,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return servers;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=config-adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-adapters.js","sourceRoot":"","sources":["../src/config-adapters.ts"],"names":[],"mappings":"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"}
|
package/dist/fs.d.ts
ADDED
package/dist/fs.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export async function writeFileAtomic(absolutePath, content) {
|
|
4
|
+
await fs.mkdir(path.dirname(absolutePath), { recursive: true });
|
|
5
|
+
const tempPath = `${absolutePath}.tmp`;
|
|
6
|
+
await fs.writeFile(tempPath, content, 'utf8');
|
|
7
|
+
await fs.rename(tempPath, absolutePath);
|
|
8
|
+
}
|
|
9
|
+
export async function readFileIfExists(absolutePath) {
|
|
10
|
+
try {
|
|
11
|
+
return await fs.readFile(absolutePath, 'utf8');
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
const maybeError = error;
|
|
15
|
+
if (maybeError.code === 'ENOENT')
|
|
16
|
+
return null;
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=fs.js.map
|
package/dist/fs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,YAAoB,EAAE,OAAe;IACzE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,GAAG,YAAY,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAAoB;IACzD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,KAA8B,CAAC;QAClD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ProjectDiscovery, TargetName } from './types.js';
|
|
2
|
+
/** Skills directory paths for each target relative to project root */
|
|
3
|
+
declare const TARGET_SKILLS_PATHS: Record<TargetName, string>;
|
|
4
|
+
/**
|
|
5
|
+
* Discover the active project from the current working directory.
|
|
6
|
+
* Uses the current directory as the project root.
|
|
7
|
+
*/
|
|
8
|
+
export declare function discoverProject(cwd?: string): Promise<ProjectDiscovery>;
|
|
9
|
+
/**
|
|
10
|
+
* Get the relative path from project root to a config file.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getRelativeConfigPath(projectRoot: string, target: TargetName): string;
|
|
13
|
+
/**
|
|
14
|
+
* Get the relative path from project root to the skills directory.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getSkillsPath(projectRoot: string, target: TargetName): string;
|
|
17
|
+
/**
|
|
18
|
+
* Get the skills directory paths constant.
|
|
19
|
+
*/
|
|
20
|
+
export { TARGET_SKILLS_PATHS };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Constants
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/** Native config file paths for each target relative to project root */
|
|
8
|
+
const TARGET_CONFIG_PATHS = {
|
|
9
|
+
claude: '.mcp.json',
|
|
10
|
+
codex: path.join('.codex', 'config.toml'),
|
|
11
|
+
gemini: path.join('.gemini', 'settings.json'),
|
|
12
|
+
};
|
|
13
|
+
/** Skills directory paths for each target relative to project root */
|
|
14
|
+
const TARGET_SKILLS_PATHS = {
|
|
15
|
+
claude: path.join('.claude', 'skills'),
|
|
16
|
+
codex: path.join('.codex', 'skills'),
|
|
17
|
+
gemini: path.join('.gemini', 'antigravity', 'skills'),
|
|
18
|
+
};
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Project Discovery
|
|
21
|
+
// ============================================================================
|
|
22
|
+
/**
|
|
23
|
+
* Discover the active project from the current working directory.
|
|
24
|
+
* Uses the current directory as the project root.
|
|
25
|
+
*/
|
|
26
|
+
export async function discoverProject(cwd = process.cwd()) {
|
|
27
|
+
const currentDir = path.resolve(cwd);
|
|
28
|
+
const homeDir = os.homedir();
|
|
29
|
+
// Prevent using home directory as project root
|
|
30
|
+
if (currentDir === homeDir || currentDir === path.dirname(homeDir)) {
|
|
31
|
+
throw new Error('Cannot use home directory as project root. ' +
|
|
32
|
+
'Navigate to a project directory first.');
|
|
33
|
+
}
|
|
34
|
+
const targets = await resolveNativeConfigPaths(currentDir);
|
|
35
|
+
return { root: currentDir, targets };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve native config paths for all targets relative to the project root.
|
|
39
|
+
*/
|
|
40
|
+
async function resolveNativeConfigPaths(projectRoot) {
|
|
41
|
+
const targets = new Map();
|
|
42
|
+
for (const [target, relativePath] of Object.entries(TARGET_CONFIG_PATHS)) {
|
|
43
|
+
const fullPath = path.join(projectRoot, relativePath);
|
|
44
|
+
let exists = false;
|
|
45
|
+
try {
|
|
46
|
+
await fs.access(fullPath);
|
|
47
|
+
exists = true;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// File doesn't exist
|
|
51
|
+
}
|
|
52
|
+
targets.set(target, {
|
|
53
|
+
target,
|
|
54
|
+
path: fullPath,
|
|
55
|
+
exists,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return targets;
|
|
59
|
+
}
|
|
60
|
+
// ============================================================================
|
|
61
|
+
// Utilities
|
|
62
|
+
// ============================================================================
|
|
63
|
+
/**
|
|
64
|
+
* Get the relative path from project root to a config file.
|
|
65
|
+
*/
|
|
66
|
+
export function getRelativeConfigPath(projectRoot, target) {
|
|
67
|
+
return TARGET_CONFIG_PATHS[target];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get the relative path from project root to the skills directory.
|
|
71
|
+
*/
|
|
72
|
+
export function getSkillsPath(projectRoot, target) {
|
|
73
|
+
return path.join(projectRoot, TARGET_SKILLS_PATHS[target]);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get the skills directory paths constant.
|
|
77
|
+
*/
|
|
78
|
+
export { TARGET_SKILLS_PATHS };
|
|
79
|
+
//# sourceMappingURL=project-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-discovery.js","sourceRoot":"","sources":["../src/project-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,wEAAwE;AACxE,MAAM,mBAAmB,GAA+B;IACtD,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;IACzC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;CAC9C,CAAC;AAEF,sEAAsE;AACtE,MAAM,mBAAmB,GAA+B;IACtD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;IACtC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC;CACtD,CAAC;AAEF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE7B,+CAA+C;IAC/C,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,6CAA6C;YAC7C,wCAAwC,CACzC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC3D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,WAAmB;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;IAExD,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAA2B,EAAE,CAAC;QACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;YAClB,MAAM;YACN,IAAI,EAAE,QAAQ;YACd,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,MAAkB;IAC3E,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,MAAkB;IACnE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TargetName } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Prompt user to confirm the selection summary.
|
|
4
|
+
* @param targets - Selected target agents
|
|
5
|
+
* @param mcps - Selected MCP server IDs
|
|
6
|
+
* @param skills - Selected skill IDs
|
|
7
|
+
* @returns True if user confirmed, false otherwise
|
|
8
|
+
*/
|
|
9
|
+
export declare function promptConfirm(targets: TargetName[], mcps: string[], skills: string[]): Promise<boolean>;
|