@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.
Files changed (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/catalog.d.ts +65 -0
  4. package/dist/catalog.js +328 -0
  5. package/dist/catalog.js.map +1 -0
  6. package/dist/cli-catalog.d.ts +70 -0
  7. package/dist/cli-catalog.js +433 -0
  8. package/dist/cli-catalog.js.map +1 -0
  9. package/dist/cli-diagnostics.d.ts +14 -0
  10. package/dist/cli-diagnostics.js +177 -0
  11. package/dist/cli-diagnostics.js.map +1 -0
  12. package/dist/cli-init.d.ts +8 -0
  13. package/dist/cli-init.js +77 -0
  14. package/dist/cli-init.js.map +1 -0
  15. package/dist/cli-mcp.d.ts +38 -0
  16. package/dist/cli-mcp.js +179 -0
  17. package/dist/cli-mcp.js.map +1 -0
  18. package/dist/cli-skill.d.ts +51 -0
  19. package/dist/cli-skill.js +239 -0
  20. package/dist/cli-skill.js.map +1 -0
  21. package/dist/cli.d.ts +2 -0
  22. package/dist/cli.js +868 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/config-adapters.d.ts +32 -0
  25. package/dist/config-adapters.js +410 -0
  26. package/dist/config-adapters.js.map +1 -0
  27. package/dist/fs.d.ts +2 -0
  28. package/dist/fs.js +20 -0
  29. package/dist/fs.js.map +1 -0
  30. package/dist/project-discovery.d.ts +20 -0
  31. package/dist/project-discovery.js +79 -0
  32. package/dist/project-discovery.js.map +1 -0
  33. package/dist/prompts/confirm-prompt.d.ts +9 -0
  34. package/dist/prompts/confirm-prompt.js +54 -0
  35. package/dist/prompts/confirm-prompt.js.map +1 -0
  36. package/dist/prompts/custom-multiselect.d.ts +9 -0
  37. package/dist/prompts/custom-multiselect.js +28 -0
  38. package/dist/prompts/custom-multiselect.js.map +1 -0
  39. package/dist/prompts/index.d.ts +5 -0
  40. package/dist/prompts/index.js +6 -0
  41. package/dist/prompts/index.js.map +1 -0
  42. package/dist/prompts/mcp-prompt.d.ts +5 -0
  43. package/dist/prompts/mcp-prompt.js +57 -0
  44. package/dist/prompts/mcp-prompt.js.map +1 -0
  45. package/dist/prompts/skill-prompt.d.ts +5 -0
  46. package/dist/prompts/skill-prompt.js +57 -0
  47. package/dist/prompts/skill-prompt.js.map +1 -0
  48. package/dist/prompts/target-prompt.d.ts +7 -0
  49. package/dist/prompts/target-prompt.js +47 -0
  50. package/dist/prompts/target-prompt.js.map +1 -0
  51. package/dist/registry.d.ts +49 -0
  52. package/dist/registry.js +121 -0
  53. package/dist/registry.js.map +1 -0
  54. package/dist/skill-adapters.d.ts +53 -0
  55. package/dist/skill-adapters.js +183 -0
  56. package/dist/skill-adapters.js.map +1 -0
  57. package/dist/types.d.ts +151 -0
  58. package/dist/types.js +9 -0
  59. package/dist/types.js.map +1 -0
  60. package/package.json +68 -0
@@ -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":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,aAAa,CAAC;AAa/B,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,qFAAqF;AACrF,MAAM,mBAAmB,GAAG,wCAAwC,CAAC;AAErE,wFAAwF;AACxF,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C;;;GAGG;AACH,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;IACpI,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,iCAAiC;IACjC,MAAM,cAAc,GAAG,aAAa,CAAC;IACrC,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,iCAAiC;QACjC,MAAM,YAAY,GAAG;YACnB,OAAO;YACP,OAAO;YACP,QAAQ;YACR,UAAU;YACV,WAAW;YACX,uBAAuB,EAAG,6BAA6B;YACvD,yBAAyB,EAAE,+CAA+C;SAC3E,CAAC;QAEF,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAc;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,gEAAgE;QAChE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAkB,EAAE,UAAkB;IAC3E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAElD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAChC,KAAK,OAAO;gBACV,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC/B,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAkB,EAClB,UAAkB,EAClB,MAAW;IAEX,MAAM,QAAQ,GAAG,GAAG,UAAU,MAAM,CAAC;IAErC,IAAI,OAAe,CAAC;IACpB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM;QACR,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAa,CAAC,CAAC;YACxC,MAAM;QACR,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM;IACV,CAAC;IAED,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,MAAiB;IAEjB,uBAAuB;IACvB,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,0BAA0B;IAC1B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,mEAAmE;QACnE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1D,IAAI,MAAW,CAAC;IAChB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC7C,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;YAC9C,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC7C,MAAM;IACV,CAAC;IAED,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAkB,EAClB,UAAkB,EAClB,UAAkB;IAElB,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,oBAAoB;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAkB,EAClB,UAAkB,EAClB,UAAkB;IAElB,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,oBAAoB;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAkB,EAClB,UAAkB,EAClB,UAAkB;IAElB,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,qBAAqB;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,KAAK,UAAU,YAAY,CACzB,MAAkB,EAClB,MAAW,EACX,UAAkB,EAClB,MAAiB;IAEjB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;YAC9B,CAAC;iBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAChC,IAAI,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,IAAI,MAAM,CAAC,GAAG;gBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACvC,MAA0B,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;YAC5D,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;YAC9B,CAAC;iBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAChC,IAAI,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,IAAI,MAAM,CAAC,GAAG;gBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACxC,IAAI,MAAM,CAAC,GAAG;gBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACvC,MAAsB,CAAC,WAAY,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;YAC1D,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YAC1B,CAAC;iBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAChC,IAAI,MAAM,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC;YACD,IAAI,MAAM,CAAC,GAAG;gBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;YACvC,MAAyB,CAAC,UAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;YAC5D,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAAkB,EAClB,MAAW,EACX,UAAkB;IAElB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAQ,MAA0B,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1D,MAAM;QAER,KAAK,OAAO;YACV,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;YACD,MAAM;QAER,KAAK,QAAQ;YACX,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,MAAkB,EAClB,MAAW,EACX,UAAkB,EAClB,OAAgB;IAEhB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,0DAA0D;YAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAQ,MAA0B,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM;QAER,KAAK,OAAO;YACV,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAoB,CAAC,OAAO,GAAG,OAAO,CAAC;YACvE,CAAC;YACD,MAAM;QAER,KAAK,QAAQ;YACX,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAqB,CAAC,OAAO,GAAG,OAAO,CAAC;YACvE,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAkB,EAClB,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,MAAyB,CAAC;YAChD,MAAM,OAAO,GAA4D,EAAE,CAAC;YAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAc,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5B,CAAC;qBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC1B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBAChC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;gBAC7B,CAAC;gBACD,IAAI,MAAM,CAAC,GAAG;oBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,GAAG;oBACd,OAAO,EAAE,IAAI;oBACb,MAAM;iBACP,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,CAAC,MAAqB,CAAC;YAC5C,MAAM,OAAO,GAA6D,EAAE,CAAC;YAC7E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;oBAChE,MAAM,MAAM,GAAc,EAAE,CAAC;oBAC7B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;wBAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;oBAC5B,CAAC;yBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC1B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;wBAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;wBAChC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;oBAC7B,CAAC;oBACD,IAAI,MAAM,CAAC,GAAG;wBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;oBACxC,IAAI,MAAM,CAAC,GAAG;wBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC,GAAG;wBACd,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK;wBACjC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;qBACtD,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,MAAwB,CAAC;YAC/C,MAAM,OAAO,GAA6D,EAAE,CAAC;YAC7E,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/D,MAAM,MAAM,GAAc,EAAE,CAAC;oBAC7B,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;wBACf,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;wBACxB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;oBAC5B,CAAC;yBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC1B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;wBAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;wBAChC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC;oBAC7B,CAAC;oBACD,IAAI,MAAM,CAAC,GAAG;wBAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC,GAAG;wBACd,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK;wBACjC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;qBACxF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/fs.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function writeFileAtomic(absolutePath: string, content: string): Promise<void>;
2
+ export declare function readFileIfExists(absolutePath: string): Promise<string | null>;
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>;