restricted-github-mcp 1.1.39 → 1.1.40
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/dist/config-server.d.ts.map +1 -1
- package/dist/config-server.js +94 -1
- package/dist/config-server.js.map +1 -1
- package/dist/utils/config.d.ts +85 -11
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +284 -44
- package/dist/utils/config.js.map +1 -1
- package/package.json +1 -1
- package/public/index.html +1017 -841
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-server.d.ts","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-server.d.ts","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"AAqEA;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAczD;AAED,wBAAsB,iBAAiB,kBAoZtC"}
|
package/dist/config-server.js
CHANGED
|
@@ -4,7 +4,7 @@ import fs from "fs";
|
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
5
|
import { Octokit } from "octokit";
|
|
6
6
|
import { logToFile } from "./logger.js";
|
|
7
|
-
import { getConfig, updateEnvFile, safeSend } from "./utils/config.js";
|
|
7
|
+
import { getConfig, updateEnvFile, safeSend, migrateFromLegacyEnv, getAllConfigNames, getConfigByName, saveConfiguration, deleteConfiguration, setCurrentConfiguration, getCurrentConfigName, } from "./utils/config.js";
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
9
|
const __dirname = path.dirname(__filename);
|
|
10
10
|
const DEFAULT_PORT = 3000;
|
|
@@ -67,6 +67,8 @@ export async function unregisterFromProxy() {
|
|
|
67
67
|
}
|
|
68
68
|
export async function startConfigServer() {
|
|
69
69
|
logToFile("[GUI] Initializing config server...");
|
|
70
|
+
// Migrate legacy .env to multi-config format on startup
|
|
71
|
+
migrateFromLegacyEnv();
|
|
70
72
|
// Tentative d'enregistrement auprès du proxy
|
|
71
73
|
const proxyPort = await tryProxyRegistration();
|
|
72
74
|
const port = proxyPort ?? DEFAULT_PORT;
|
|
@@ -279,6 +281,97 @@ export async function startConfigServer() {
|
|
|
279
281
|
res.status(500).json({ error: msg });
|
|
280
282
|
}
|
|
281
283
|
});
|
|
284
|
+
// =========================================================================
|
|
285
|
+
// Multi-configuration management endpoints
|
|
286
|
+
// =========================================================================
|
|
287
|
+
app.get("/api/configs", (req, res) => {
|
|
288
|
+
logToFile("[GUI] GET /api/configs called");
|
|
289
|
+
try {
|
|
290
|
+
const names = getAllConfigNames();
|
|
291
|
+
const current = getCurrentConfigName();
|
|
292
|
+
res.json({ names, current });
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
const msg = `[GUI] Failed to get configs: ${error.message}`;
|
|
296
|
+
logToFile(msg);
|
|
297
|
+
res.status(500).json({ error: msg });
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
app.get("/api/configs/:name", (req, res) => {
|
|
301
|
+
logToFile(`[GUI] GET /api/configs/${req.params.name} called`);
|
|
302
|
+
try {
|
|
303
|
+
const config = getConfigByName(req.params.name);
|
|
304
|
+
if (config) {
|
|
305
|
+
res.json(config);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
res.status(404).json({ error: "Configuration not found" });
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
const msg = `[GUI] Failed to get config: ${error.message}`;
|
|
313
|
+
logToFile(msg);
|
|
314
|
+
res.status(500).json({ error: msg });
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
app.post("/api/configs", async (req, res) => {
|
|
318
|
+
logToFile("[GUI] POST /api/configs called");
|
|
319
|
+
const { name, config } = req.body;
|
|
320
|
+
if (!name || !config) {
|
|
321
|
+
return res.status(400).json({ error: "Name and config are required" });
|
|
322
|
+
}
|
|
323
|
+
try {
|
|
324
|
+
saveConfiguration(name, config);
|
|
325
|
+
// Set as current if no current config
|
|
326
|
+
if (!getCurrentConfigName()) {
|
|
327
|
+
setCurrentConfiguration(name);
|
|
328
|
+
}
|
|
329
|
+
safeSend(process, { type: "CONFIG_UPDATED" });
|
|
330
|
+
res.json({ message: `Configuration "${name}" saved` });
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
const msg = `[GUI] Failed to save config: ${error.message}`;
|
|
334
|
+
logToFile(msg);
|
|
335
|
+
res.status(500).json({ error: msg });
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
app.delete("/api/configs/:name", (req, res) => {
|
|
339
|
+
logToFile(`[GUI] DELETE /api/configs/${req.params.name} called`);
|
|
340
|
+
try {
|
|
341
|
+
const success = deleteConfiguration(req.params.name);
|
|
342
|
+
if (success) {
|
|
343
|
+
safeSend(process, { type: "CONFIG_UPDATED" });
|
|
344
|
+
res.json({ message: `Configuration "${req.params.name}" deleted` });
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
res.status(404).json({ error: "Configuration not found" });
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
const msg = `[GUI] Failed to delete config: ${error.message}`;
|
|
352
|
+
logToFile(msg);
|
|
353
|
+
res.status(500).json({ error: msg });
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
app.post("/api/configs/:name/activate", (req, res) => {
|
|
357
|
+
logToFile(`[GUI] POST /api/configs/${req.params.name}/activate called`);
|
|
358
|
+
try {
|
|
359
|
+
const success = setCurrentConfiguration(req.params.name);
|
|
360
|
+
if (success) {
|
|
361
|
+
safeSend(process, { type: "CONFIG_UPDATED" });
|
|
362
|
+
res.json({ message: `Switched to configuration "${req.params.name}"` });
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
res.status(404).json({ error: "Configuration not found" });
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
catch (error) {
|
|
369
|
+
const msg = `[GUI] Failed to activate config: ${error.message}`;
|
|
370
|
+
logToFile(msg);
|
|
371
|
+
res.status(500).json({ error: msg });
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
// =========================================================================
|
|
282
375
|
app.post("/api/restart", (req, res) => {
|
|
283
376
|
logToFile("[GUI] POST /api/restart called (Full MCP)");
|
|
284
377
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-server.js","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-server.js","sourceRoot":"","sources":["../src/config-server.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,25 +1,99 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* GitHub-specific configuration data (stored in configs.json)
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
4
|
+
export interface GitHubConfigData {
|
|
5
|
+
GITHUB_TOKEN: string;
|
|
6
|
+
TARGET_REPO: string;
|
|
7
|
+
TARGET_BRANCH: string;
|
|
8
|
+
BASE_BRANCH: string;
|
|
9
|
+
PROJECT_PATH: string;
|
|
10
|
+
READ_ONLY: boolean;
|
|
11
|
+
INCLUDE_PUBLIC: boolean;
|
|
12
|
+
INCLUDE_NOT_OWNED: boolean;
|
|
13
|
+
}
|
|
5
14
|
/**
|
|
6
|
-
*
|
|
15
|
+
* Storage structure for multiple configurations
|
|
7
16
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
17
|
+
export interface ConfigsStorage {
|
|
18
|
+
configurations: Record<string, GitHubConfigData>;
|
|
19
|
+
currentConfig: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Full configuration (global + GitHub config)
|
|
23
|
+
*/
|
|
24
|
+
export interface Config {
|
|
25
|
+
GITHUB_TOKEN: string;
|
|
26
|
+
TARGET_REPO: string;
|
|
27
|
+
TARGET_BRANCH: string;
|
|
11
28
|
BASE_BRANCH: string;
|
|
12
|
-
|
|
13
|
-
REPO_PATH: string | undefined;
|
|
29
|
+
PROJECT_PATH: string;
|
|
14
30
|
READ_ONLY: boolean;
|
|
15
31
|
INCLUDE_PUBLIC: boolean;
|
|
16
32
|
INCLUDE_NOT_OWNED: boolean;
|
|
17
|
-
PROXY_URL: string
|
|
18
|
-
PROJECT_PATH: string | undefined;
|
|
33
|
+
PROXY_URL: string;
|
|
19
34
|
GUI_PATH: string;
|
|
20
35
|
GUI_NAME: string;
|
|
21
36
|
AGENT_NAME: string;
|
|
22
|
-
|
|
37
|
+
REPO_PATH: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reload global environment variables from root .env
|
|
41
|
+
*/
|
|
42
|
+
export declare function reloadGlobalEnv(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Load configs storage file
|
|
45
|
+
*/
|
|
46
|
+
export declare function loadConfigsStorage(): ConfigsStorage;
|
|
47
|
+
/**
|
|
48
|
+
* Save configs storage file
|
|
49
|
+
*/
|
|
50
|
+
export declare function saveConfigsStorage(storage: ConfigsStorage): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get all configuration names
|
|
53
|
+
*/
|
|
54
|
+
export declare function getAllConfigNames(): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Get configuration by name
|
|
57
|
+
*/
|
|
58
|
+
export declare function getConfigByName(name: string): GitHubConfigData | null;
|
|
59
|
+
/**
|
|
60
|
+
* Get current configuration name
|
|
61
|
+
*/
|
|
62
|
+
export declare function getCurrentConfigName(): string;
|
|
63
|
+
/**
|
|
64
|
+
* Get current active GitHub configuration
|
|
65
|
+
*/
|
|
66
|
+
export declare function getCurrentGitHubConfig(): GitHubConfigData | null;
|
|
67
|
+
/**
|
|
68
|
+
* Save a configuration (create or update)
|
|
69
|
+
*/
|
|
70
|
+
export declare function saveConfiguration(name: string, config: GitHubConfigData): void;
|
|
71
|
+
/**
|
|
72
|
+
* Delete a configuration
|
|
73
|
+
*/
|
|
74
|
+
export declare function deleteConfiguration(name: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Set current configuration (just updates the pointer in configs.json)
|
|
77
|
+
*/
|
|
78
|
+
export declare function setCurrentConfiguration(name: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Update GitHub configuration in the current active config
|
|
81
|
+
*/
|
|
82
|
+
export declare function updateGitHubConfig(updates: Partial<GitHubConfigData>): void;
|
|
83
|
+
/**
|
|
84
|
+
* Load and return full configuration (global + current GitHub config)
|
|
85
|
+
*/
|
|
86
|
+
export declare function getConfig(): Config;
|
|
87
|
+
/**
|
|
88
|
+
* Met à jour ou ajoute une clé dans le fichier .env de manière non-destructive.
|
|
89
|
+
* Pour les clés métier GitHub, met à jour configs.json à la place.
|
|
90
|
+
*/
|
|
91
|
+
export declare function updateEnvFile(key: string, value: string | boolean): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Migrate from legacy .env format to multi-config
|
|
94
|
+
* Creates a "Configuration par défaut" from current root .env GitHub variables
|
|
95
|
+
*/
|
|
96
|
+
export declare function migrateFromLegacyEnv(): void;
|
|
23
97
|
/**
|
|
24
98
|
* Envoie un message via IPC de manière sécurisée
|
|
25
99
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAuDA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IAErB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAE3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAoBD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAanD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAG5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAGrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,GAAG,IAAI,CAMhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAK9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAazD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAa7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAsB3E;AAMD;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAsBlC;AASD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDvF;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAgC3C;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAUxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,SAapC"}
|
package/dist/utils/config.js
CHANGED
|
@@ -4,72 +4,312 @@ import path from "path";
|
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
5
|
import dotenv from "dotenv";
|
|
6
6
|
import { logToFile } from "../logger.js";
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// PATHS & INITIALIZATION
|
|
9
|
+
// ============================================================================
|
|
7
10
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
8
11
|
const rootDir = path.resolve(__dirname, "../..");
|
|
9
|
-
|
|
12
|
+
// Root .env contains global variables (MCP_DATA_DIR, AGENT_NAME, PROXY_URL, etc.)
|
|
13
|
+
const rootEnvPath = path.join(rootDir, ".env");
|
|
14
|
+
// Load root .env to get global variables
|
|
15
|
+
if (fsSync.existsSync(rootEnvPath)) {
|
|
16
|
+
dotenv.config({ path: rootEnvPath });
|
|
17
|
+
}
|
|
10
18
|
/**
|
|
11
|
-
*
|
|
19
|
+
* Resolve data path based on MCP_DATA_DIR environment variable
|
|
12
20
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
keyFound = true;
|
|
24
|
-
return `${key}=${value}`;
|
|
21
|
+
function getDataDir() {
|
|
22
|
+
const persistenceDir = process.env.MCP_DATA_DIR;
|
|
23
|
+
if (persistenceDir) {
|
|
24
|
+
const resolvedPath = path.isAbsolute(persistenceDir)
|
|
25
|
+
? persistenceDir
|
|
26
|
+
: path.resolve(rootDir, persistenceDir);
|
|
27
|
+
if (!fsSync.existsSync(resolvedPath)) {
|
|
28
|
+
try {
|
|
29
|
+
fsSync.mkdirSync(resolvedPath, { recursive: true });
|
|
30
|
+
logToFile(`[Config] Created persistence directory: ${resolvedPath}`);
|
|
25
31
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (newLines.length > 0) {
|
|
30
|
-
const lastLine = newLines[newLines.length - 1];
|
|
31
|
-
if (lastLine !== undefined && lastLine.trim() !== "") {
|
|
32
|
-
newLines.push("");
|
|
33
|
-
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
logToFile(`[Config] Failed to create persistence directory ${resolvedPath}, falling back to root: ${err.message}`);
|
|
34
|
+
return rootDir;
|
|
34
35
|
}
|
|
35
|
-
newLines.push(`${key}=${value}`);
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
logToFile(`[Config] .env mis à jour : ${key}=${value}`);
|
|
39
|
-
// Forcer le rechargement immédiat dans le processus courant
|
|
40
|
-
dotenv.config({ path: envPath, override: true });
|
|
37
|
+
return resolvedPath;
|
|
41
38
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
return rootDir;
|
|
40
|
+
}
|
|
41
|
+
const dataDir = getDataDir();
|
|
42
|
+
// configs.json is in the data directory (contains GitHub-specific configurations)
|
|
43
|
+
const configsPath = path.join(dataDir, "configs.json");
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// GLOBAL ENVIRONMENT VARIABLES (from root .env)
|
|
46
|
+
// ============================================================================
|
|
47
|
+
/**
|
|
48
|
+
* Reload global environment variables from root .env
|
|
49
|
+
*/
|
|
50
|
+
export function reloadGlobalEnv() {
|
|
51
|
+
if (fsSync.existsSync(rootEnvPath)) {
|
|
52
|
+
dotenv.config({ path: rootEnvPath, override: true });
|
|
45
53
|
}
|
|
46
54
|
}
|
|
47
55
|
/**
|
|
48
|
-
*
|
|
56
|
+
* Get global configuration from root .env
|
|
49
57
|
*/
|
|
50
|
-
|
|
51
|
-
|
|
58
|
+
function getGlobalConfig() {
|
|
59
|
+
reloadGlobalEnv();
|
|
52
60
|
return {
|
|
53
|
-
|
|
54
|
-
TARGET_BRANCH: process.env.TARGET_BRANCH,
|
|
55
|
-
BASE_BRANCH: process.env.BASE_BRANCH || "main",
|
|
56
|
-
TARGET_REPO: process.env.TARGET_REPO,
|
|
57
|
-
REPO_PATH: process.env.REPO_PATH,
|
|
58
|
-
READ_ONLY: process.env.READ_ONLY === "true",
|
|
59
|
-
INCLUDE_PUBLIC: process.env.INCLUDE_PUBLIC === "true",
|
|
60
|
-
INCLUDE_NOT_OWNED: process.env.INCLUDE_NOT_OWNED === "true",
|
|
61
|
-
PROXY_URL: process.env.PROXY_URL,
|
|
62
|
-
PROJECT_PATH: process.env.PROJECT_PATH,
|
|
61
|
+
PROXY_URL: process.env.PROXY_URL || "",
|
|
63
62
|
GUI_PATH: process.env.GUI_PATH || "/github-mcp",
|
|
64
63
|
GUI_NAME: process.env.GUI_NAME || "GitHub MCP Config",
|
|
65
64
|
AGENT_NAME: process.env.AGENT_NAME || "",
|
|
65
|
+
REPO_PATH: process.env.REPO_PATH || "",
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// ============================================================================
|
|
69
|
+
// MULTI-CONFIGURATION MANAGEMENT (configs.json)
|
|
70
|
+
// ============================================================================
|
|
71
|
+
/**
|
|
72
|
+
* Load configs storage file
|
|
73
|
+
*/
|
|
74
|
+
export function loadConfigsStorage() {
|
|
75
|
+
try {
|
|
76
|
+
if (fsSync.existsSync(configsPath)) {
|
|
77
|
+
const content = fsSync.readFileSync(configsPath, "utf8");
|
|
78
|
+
const parsed = JSON.parse(content);
|
|
79
|
+
if (parsed.configurations && typeof parsed.currentConfig === "string") {
|
|
80
|
+
return parsed;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
logToFile(`[Config] Error loading configs storage: ${error.message}`);
|
|
86
|
+
}
|
|
87
|
+
return { configurations: {}, currentConfig: "" };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Save configs storage file
|
|
91
|
+
*/
|
|
92
|
+
export function saveConfigsStorage(storage) {
|
|
93
|
+
fsSync.writeFileSync(configsPath, JSON.stringify(storage, null, 2));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get all configuration names
|
|
97
|
+
*/
|
|
98
|
+
export function getAllConfigNames() {
|
|
99
|
+
const storage = loadConfigsStorage();
|
|
100
|
+
return Object.keys(storage.configurations);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get configuration by name
|
|
104
|
+
*/
|
|
105
|
+
export function getConfigByName(name) {
|
|
106
|
+
const storage = loadConfigsStorage();
|
|
107
|
+
return storage.configurations[name] || null;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get current configuration name
|
|
111
|
+
*/
|
|
112
|
+
export function getCurrentConfigName() {
|
|
113
|
+
const storage = loadConfigsStorage();
|
|
114
|
+
return storage.currentConfig;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get current active GitHub configuration
|
|
118
|
+
*/
|
|
119
|
+
export function getCurrentGitHubConfig() {
|
|
120
|
+
const storage = loadConfigsStorage();
|
|
121
|
+
if (storage.currentConfig && storage.configurations[storage.currentConfig]) {
|
|
122
|
+
return storage.configurations[storage.currentConfig] ?? null;
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Save a configuration (create or update)
|
|
128
|
+
*/
|
|
129
|
+
export function saveConfiguration(name, config) {
|
|
130
|
+
const storage = loadConfigsStorage();
|
|
131
|
+
storage.configurations[name] = config;
|
|
132
|
+
saveConfigsStorage(storage);
|
|
133
|
+
logToFile(`[Config] Saved configuration "${name}"`);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Delete a configuration
|
|
137
|
+
*/
|
|
138
|
+
export function deleteConfiguration(name) {
|
|
139
|
+
const storage = loadConfigsStorage();
|
|
140
|
+
if (storage.configurations[name]) {
|
|
141
|
+
delete storage.configurations[name];
|
|
142
|
+
// If we deleted the current config, clear it
|
|
143
|
+
if (storage.currentConfig === name) {
|
|
144
|
+
storage.currentConfig = "";
|
|
145
|
+
}
|
|
146
|
+
saveConfigsStorage(storage);
|
|
147
|
+
logToFile(`[Config] Deleted configuration "${name}"`);
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Set current configuration (just updates the pointer in configs.json)
|
|
154
|
+
*/
|
|
155
|
+
export function setCurrentConfiguration(name) {
|
|
156
|
+
const storage = loadConfigsStorage();
|
|
157
|
+
const config = storage.configurations[name];
|
|
158
|
+
if (!config) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
storage.currentConfig = name;
|
|
162
|
+
saveConfigsStorage(storage);
|
|
163
|
+
logToFile(`[Config] Switched to configuration "${name}"`);
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Update GitHub configuration in the current active config
|
|
168
|
+
*/
|
|
169
|
+
export function updateGitHubConfig(updates) {
|
|
170
|
+
const storage = loadConfigsStorage();
|
|
171
|
+
if (!storage.currentConfig) {
|
|
172
|
+
logToFile("[Config] No active configuration to update");
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const currentConfig = storage.configurations[storage.currentConfig];
|
|
176
|
+
if (!currentConfig) {
|
|
177
|
+
logToFile("[Config] Current configuration not found");
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
// Merge updates
|
|
181
|
+
storage.configurations[storage.currentConfig] = {
|
|
182
|
+
...currentConfig,
|
|
183
|
+
...updates,
|
|
184
|
+
};
|
|
185
|
+
saveConfigsStorage(storage);
|
|
186
|
+
logToFile(`[Config] Updated configuration "${storage.currentConfig}"`);
|
|
187
|
+
}
|
|
188
|
+
// ============================================================================
|
|
189
|
+
// UNIFIED CONFIG ACCESS
|
|
190
|
+
// ============================================================================
|
|
191
|
+
/**
|
|
192
|
+
* Load and return full configuration (global + current GitHub config)
|
|
193
|
+
*/
|
|
194
|
+
export function getConfig() {
|
|
195
|
+
const globalConfig = getGlobalConfig();
|
|
196
|
+
const githubConfig = getCurrentGitHubConfig();
|
|
197
|
+
return {
|
|
198
|
+
// GitHub-specific (from configs.json)
|
|
199
|
+
GITHUB_TOKEN: githubConfig?.GITHUB_TOKEN || "",
|
|
200
|
+
TARGET_REPO: githubConfig?.TARGET_REPO || "",
|
|
201
|
+
TARGET_BRANCH: githubConfig?.TARGET_BRANCH || "",
|
|
202
|
+
BASE_BRANCH: githubConfig?.BASE_BRANCH || "main",
|
|
203
|
+
PROJECT_PATH: githubConfig?.PROJECT_PATH || "",
|
|
204
|
+
READ_ONLY: githubConfig?.READ_ONLY ?? false,
|
|
205
|
+
INCLUDE_PUBLIC: githubConfig?.INCLUDE_PUBLIC ?? false,
|
|
206
|
+
INCLUDE_NOT_OWNED: githubConfig?.INCLUDE_NOT_OWNED ?? false,
|
|
207
|
+
// Global (from root .env)
|
|
208
|
+
PROXY_URL: globalConfig.PROXY_URL,
|
|
209
|
+
GUI_PATH: globalConfig.GUI_PATH,
|
|
210
|
+
GUI_NAME: globalConfig.GUI_NAME,
|
|
211
|
+
AGENT_NAME: globalConfig.AGENT_NAME,
|
|
212
|
+
// Runtime state
|
|
213
|
+
REPO_PATH: globalConfig.REPO_PATH,
|
|
66
214
|
};
|
|
67
215
|
}
|
|
216
|
+
// ============================================================================
|
|
217
|
+
// ENV FILE UPDATES
|
|
218
|
+
// ============================================================================
|
|
219
|
+
// Keys that are stored in .env (global/runtime)
|
|
220
|
+
const GLOBAL_ENV_KEYS = ["PROXY_URL", "GUI_PATH", "GUI_NAME", "AGENT_NAME", "REPO_PATH", "MCP_DATA_DIR"];
|
|
221
|
+
/**
|
|
222
|
+
* Met à jour ou ajoute une clé dans le fichier .env de manière non-destructive.
|
|
223
|
+
* Pour les clés métier GitHub, met à jour configs.json à la place.
|
|
224
|
+
*/
|
|
225
|
+
export async function updateEnvFile(key, value) {
|
|
226
|
+
const stringValue = typeof value === "boolean" ? String(value) : value;
|
|
227
|
+
if (GLOBAL_ENV_KEYS.includes(key)) {
|
|
228
|
+
// Write to .env file
|
|
229
|
+
try {
|
|
230
|
+
let envContent = "";
|
|
231
|
+
if (fsSync.existsSync(rootEnvPath)) {
|
|
232
|
+
envContent = await fs.readFile(rootEnvPath, "utf-8");
|
|
233
|
+
}
|
|
234
|
+
const lines = envContent.split(/\r?\n/);
|
|
235
|
+
let keyFound = false;
|
|
236
|
+
const newLines = lines.map((line) => {
|
|
237
|
+
if (line.trim().startsWith(`${key}=`)) {
|
|
238
|
+
keyFound = true;
|
|
239
|
+
return `${key}=${stringValue}`;
|
|
240
|
+
}
|
|
241
|
+
return line;
|
|
242
|
+
});
|
|
243
|
+
if (!keyFound) {
|
|
244
|
+
if (newLines.length > 0) {
|
|
245
|
+
const lastLine = newLines[newLines.length - 1];
|
|
246
|
+
if (lastLine !== undefined && lastLine.trim() !== "") {
|
|
247
|
+
newLines.push("");
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
newLines.push(`${key}=${stringValue}`);
|
|
251
|
+
}
|
|
252
|
+
await fs.writeFile(rootEnvPath, newLines.join("\n").trim() + "\n");
|
|
253
|
+
logToFile(`[Config] .env mis à jour : ${key}=${stringValue}`);
|
|
254
|
+
// Force reload in current process
|
|
255
|
+
dotenv.config({ path: rootEnvPath, override: true });
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
logToFile(`[Config] Erreur lors de la mise à jour de .env: ${error.message}`);
|
|
259
|
+
throw error;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
// GitHub-specific key -> update configs.json
|
|
264
|
+
const booleanKeys = ["READ_ONLY", "INCLUDE_PUBLIC", "INCLUDE_NOT_OWNED"];
|
|
265
|
+
const updateValue = booleanKeys.includes(key)
|
|
266
|
+
? stringValue === "true"
|
|
267
|
+
: stringValue;
|
|
268
|
+
updateGitHubConfig({ [key]: updateValue });
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// ============================================================================
|
|
272
|
+
// MIGRATION
|
|
273
|
+
// ============================================================================
|
|
274
|
+
/**
|
|
275
|
+
* Migrate from legacy .env format to multi-config
|
|
276
|
+
* Creates a "Configuration par défaut" from current root .env GitHub variables
|
|
277
|
+
*/
|
|
278
|
+
export function migrateFromLegacyEnv() {
|
|
279
|
+
const storage = loadConfigsStorage();
|
|
280
|
+
// Only migrate if no configs exist yet
|
|
281
|
+
if (Object.keys(storage.configurations).length === 0) {
|
|
282
|
+
reloadGlobalEnv();
|
|
283
|
+
const githubToken = process.env.GITHUB_TOKEN;
|
|
284
|
+
const targetRepo = process.env.TARGET_REPO;
|
|
285
|
+
// Check if there's any GitHub config data in root .env
|
|
286
|
+
if (githubToken || targetRepo) {
|
|
287
|
+
const defaultName = "Configuration par défaut";
|
|
288
|
+
const configData = {
|
|
289
|
+
GITHUB_TOKEN: githubToken || "",
|
|
290
|
+
TARGET_REPO: targetRepo || "",
|
|
291
|
+
TARGET_BRANCH: process.env.TARGET_BRANCH || "",
|
|
292
|
+
BASE_BRANCH: process.env.BASE_BRANCH || "main",
|
|
293
|
+
PROJECT_PATH: process.env.PROJECT_PATH || "",
|
|
294
|
+
READ_ONLY: process.env.READ_ONLY === "true",
|
|
295
|
+
INCLUDE_PUBLIC: process.env.INCLUDE_PUBLIC === "true",
|
|
296
|
+
INCLUDE_NOT_OWNED: process.env.INCLUDE_NOT_OWNED === "true",
|
|
297
|
+
};
|
|
298
|
+
storage.configurations[defaultName] = configData;
|
|
299
|
+
storage.currentConfig = defaultName;
|
|
300
|
+
saveConfigsStorage(storage);
|
|
301
|
+
logToFile(`[Config] Migrated legacy .env GitHub config to "${defaultName}"`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
// ============================================================================
|
|
306
|
+
// IPC UTILITIES
|
|
307
|
+
// ============================================================================
|
|
68
308
|
/**
|
|
69
309
|
* Envoie un message via IPC de manière sécurisée
|
|
70
310
|
*/
|
|
71
311
|
export function safeSend(target, msg) {
|
|
72
|
-
if (target && typeof target.send ===
|
|
312
|
+
if (target && typeof target.send === "function" && target.connected) {
|
|
73
313
|
try {
|
|
74
314
|
return target.send(msg);
|
|
75
315
|
}
|