@imenam/mcp-github 1.1.45

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Log a message to a file at the root of the disk.
3
+ * @param message The message to log
4
+ * @param prefix Optional prefix to override the current default prefix
5
+ */
6
+ export declare function logToFile(message: string, prefix?: string): void;
7
+ /**
8
+ * Override console.error to also log to file.
9
+ * console.log is usually redirected to console.error in MCP servers to avoid breaking stdout.
10
+ * @param prefix Prefix to identify the source in logs
11
+ */
12
+ export declare function setupLogging(prefix: string): void;
13
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,QA4B7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,QAsB1C"}
package/dist/logger.js ADDED
@@ -0,0 +1,59 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ let currentPrefix = "";
4
+ /**
5
+ * Log a message to a file at the root of the disk.
6
+ * @param message The message to log
7
+ * @param prefix Optional prefix to override the current default prefix
8
+ */
9
+ export function logToFile(message, prefix = "") {
10
+ const logDir = process.platform === 'win32'
11
+ ? 'C:\\var\\log\\restricted-github-mcp'
12
+ : '/var/log/restricted-github-mcp';
13
+ const logFile = path.join(logDir, 'server.log');
14
+ const now = new Date().toLocaleString('fr-FR', {
15
+ year: 'numeric',
16
+ month: '2-digit',
17
+ day: '2-digit',
18
+ hour: '2-digit',
19
+ minute: '2-digit',
20
+ second: '2-digit',
21
+ });
22
+ const effectivePrefix = prefix || currentPrefix;
23
+ const label = effectivePrefix ? ` [${effectivePrefix}]` : "";
24
+ const logEntry = `[${now}] [PID ${process.pid}]${label} ${message}\n`;
25
+ try {
26
+ if (!fs.existsSync(logDir)) {
27
+ fs.mkdirSync(logDir, { recursive: true });
28
+ }
29
+ fs.appendFileSync(logFile, logEntry);
30
+ }
31
+ catch (error) {
32
+ // On ne log pas l'erreur de log ici pour éviter une boucle infinie
33
+ // mais on l'affiche sur stderr
34
+ process.stderr.write(`Critical: Failed to write to log file: ${error}\n`);
35
+ }
36
+ }
37
+ /**
38
+ * Override console.error to also log to file.
39
+ * console.log is usually redirected to console.error in MCP servers to avoid breaking stdout.
40
+ * @param prefix Prefix to identify the source in logs
41
+ */
42
+ export function setupLogging(prefix) {
43
+ currentPrefix = prefix;
44
+ // Rediriger console.log vers console.error immédiatement pour protéger stdout
45
+ // si nous sommes dans le processus Master (MCP)
46
+ if (prefix === "MASTER") {
47
+ console.log = (...args) => {
48
+ console.error(...args);
49
+ };
50
+ }
51
+ const originalError = console.error;
52
+ console.error = (...args) => {
53
+ const message = args.map(arg => typeof arg === 'object' ? JSON.stringify(arg, null, 2) : arg).join(' ');
54
+ logToFile(message, prefix);
55
+ originalError.apply(console, args);
56
+ };
57
+ logToFile('--- Logging system initialized ---', prefix);
58
+ }
59
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,IAAI,aAAa,GAAG,EAAE,CAAC;AAGvB;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,SAAiB,EAAE;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;QACzC,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,gCAAgC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE;QAC7C,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,IAAI,aAAa,CAAC;IAChD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,UAAU,OAAO,CAAC,GAAG,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC;IAEtE,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mEAAmE;QACnE,+BAA+B;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,IAAI,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,aAAa,GAAG,MAAM,CAAC;IAEvB,8EAA8E;IAC9E,gDAAgD;IAChD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IAEpC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC7B,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,SAAS,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * GitHub-specific configuration data (stored in configs.json)
3
+ */
4
+ export interface GitHubConfigData {
5
+ TARGET_REPO: string;
6
+ TARGET_BRANCH: string;
7
+ BASE_BRANCH: string;
8
+ READ_ONLY: boolean;
9
+ INCLUDE_PUBLIC: boolean;
10
+ INCLUDE_NOT_OWNED: boolean;
11
+ }
12
+ /**
13
+ * Storage structure for multiple configurations
14
+ */
15
+ export interface ConfigsStorage {
16
+ configurations: Record<string, GitHubConfigData>;
17
+ currentConfig: string;
18
+ }
19
+ /**
20
+ * Full configuration (global + GitHub config)
21
+ */
22
+ export interface Config {
23
+ GITHUB_TOKEN: string;
24
+ TARGET_REPO: string;
25
+ TARGET_BRANCH: string;
26
+ BASE_BRANCH: string;
27
+ READ_ONLY: boolean;
28
+ INCLUDE_PUBLIC: boolean;
29
+ INCLUDE_NOT_OWNED: boolean;
30
+ PROXY_URL: string;
31
+ GUI_PATH: string;
32
+ GUI_NAME: string;
33
+ AGENT_NAME: string;
34
+ CLONE_DIR: string;
35
+ SSH_HOST: string;
36
+ SSH_USER: string;
37
+ SSH_PORT: number;
38
+ SSH_KEY_PATH: string;
39
+ SSH_REMOTE_PATH: string;
40
+ TEST_COMMAND: string;
41
+ REPO_PATH: string;
42
+ }
43
+ /**
44
+ * Reload global environment variables from root .env
45
+ */
46
+ export declare function reloadGlobalEnv(): void;
47
+ /**
48
+ * Load configs storage file
49
+ */
50
+ export declare function loadConfigsStorage(): ConfigsStorage;
51
+ /**
52
+ * Save configs storage file
53
+ */
54
+ export declare function saveConfigsStorage(storage: ConfigsStorage): void;
55
+ /**
56
+ * Get all configuration names
57
+ */
58
+ export declare function getAllConfigNames(): string[];
59
+ /**
60
+ * Get configuration by name
61
+ */
62
+ export declare function getConfigByName(name: string): GitHubConfigData | null;
63
+ /**
64
+ * Get current configuration name
65
+ */
66
+ export declare function getCurrentConfigName(): string;
67
+ /**
68
+ * Get current active GitHub configuration
69
+ */
70
+ export declare function getCurrentGitHubConfig(): GitHubConfigData | null;
71
+ /**
72
+ * Save a configuration (create or update)
73
+ */
74
+ export declare function saveConfiguration(name: string, config: GitHubConfigData): void;
75
+ /**
76
+ * Delete a configuration
77
+ */
78
+ export declare function deleteConfiguration(name: string): boolean;
79
+ /**
80
+ * Set current configuration (just updates the pointer in configs.json)
81
+ */
82
+ export declare function setCurrentConfiguration(name: string): boolean;
83
+ /**
84
+ * Update GitHub configuration in the current active config
85
+ */
86
+ export declare function updateGitHubConfig(updates: Partial<GitHubConfigData>): void;
87
+ /**
88
+ * Load and return full configuration (global + current GitHub config)
89
+ */
90
+ export declare function getConfig(): Config;
91
+ /**
92
+ * Met à jour ou ajoute une clé dans le fichier .env de manière non-destructive.
93
+ * Pour les clés métier GitHub, met à jour configs.json à la place.
94
+ */
95
+ export declare function updateEnvFile(key: string, value: string | boolean): Promise<void>;
96
+ /**
97
+ * Migrate from legacy .env format to multi-config
98
+ * Creates a "Configuration par défaut" from current root .env GitHub variables
99
+ */
100
+ export declare function migrateFromLegacyEnv(): void;
101
+ /**
102
+ * Envoie un message via IPC de manière sécurisée
103
+ */
104
+ export declare function safeSend(target: NodeJS.Process | any, msg: any): boolean;
105
+ /**
106
+ * Filtre les erreurs IPC attendues
107
+ */
108
+ export declare function setupIpcErrorHandlers(): void;
109
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAuDA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,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,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;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC;AA6BD;;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,CA2BlC;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,CA4B3C;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"}
@@ -0,0 +1,349 @@
1
+ import fs from "fs/promises";
2
+ import fsSync from "fs";
3
+ import path from "path";
4
+ import { fileURLToPath } from "url";
5
+ import dotenv from "dotenv";
6
+ import { logToFile } from "../logger.js";
7
+ // ============================================================================
8
+ // PATHS & INITIALIZATION
9
+ // ============================================================================
10
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
11
+ const rootDir = path.resolve(__dirname, "../..");
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
+ }
18
+ /**
19
+ * Resolve data path based on MCP_DATA_DIR environment variable
20
+ */
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}`);
31
+ }
32
+ catch (err) {
33
+ logToFile(`[Config] Failed to create persistence directory ${resolvedPath}, falling back to root: ${err.message}`);
34
+ return rootDir;
35
+ }
36
+ }
37
+ return resolvedPath;
38
+ }
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 });
53
+ }
54
+ }
55
+ /**
56
+ * Get global configuration from root .env
57
+ */
58
+ function getGlobalConfig() {
59
+ reloadGlobalEnv();
60
+ const cloneDir = process.env.CLONE_DIR || "./";
61
+ return {
62
+ GITHUB_TOKEN: process.env.GITHUB_TOKEN || "",
63
+ PROXY_URL: process.env.PROXY_URL || "",
64
+ GUI_PATH: process.env.GUI_PATH || "/github-mcp",
65
+ GUI_NAME: process.env.GUI_NAME || "GitHub MCP Config",
66
+ AGENT_NAME: process.env.AGENT_NAME || "",
67
+ REPO_PATH: process.env.REPO_PATH || "",
68
+ CLONE_DIR: path.isAbsolute(cloneDir) ? cloneDir : path.resolve(rootDir, cloneDir),
69
+ SSH_HOST: process.env.SSH_HOST || "",
70
+ SSH_USER: process.env.SSH_USER || "",
71
+ SSH_PORT: parseInt(process.env.SSH_PORT || "22", 10),
72
+ SSH_KEY_PATH: process.env.SSH_KEY_PATH || "",
73
+ SSH_REMOTE_PATH: process.env.SSH_REMOTE_PATH || "",
74
+ TEST_COMMAND: process.env.TEST_COMMAND || "",
75
+ };
76
+ }
77
+ // ============================================================================
78
+ // MULTI-CONFIGURATION MANAGEMENT (configs.json)
79
+ // ============================================================================
80
+ /**
81
+ * Load configs storage file
82
+ */
83
+ export function loadConfigsStorage() {
84
+ try {
85
+ if (fsSync.existsSync(configsPath)) {
86
+ const content = fsSync.readFileSync(configsPath, "utf8");
87
+ const parsed = JSON.parse(content);
88
+ if (parsed.configurations && typeof parsed.currentConfig === "string") {
89
+ return parsed;
90
+ }
91
+ }
92
+ }
93
+ catch (error) {
94
+ logToFile(`[Config] Error loading configs storage: ${error.message}`);
95
+ }
96
+ return { configurations: {}, currentConfig: "" };
97
+ }
98
+ /**
99
+ * Save configs storage file
100
+ */
101
+ export function saveConfigsStorage(storage) {
102
+ fsSync.writeFileSync(configsPath, JSON.stringify(storage, null, 2));
103
+ }
104
+ /**
105
+ * Get all configuration names
106
+ */
107
+ export function getAllConfigNames() {
108
+ const storage = loadConfigsStorage();
109
+ return Object.keys(storage.configurations);
110
+ }
111
+ /**
112
+ * Get configuration by name
113
+ */
114
+ export function getConfigByName(name) {
115
+ const storage = loadConfigsStorage();
116
+ return storage.configurations[name] || null;
117
+ }
118
+ /**
119
+ * Get current configuration name
120
+ */
121
+ export function getCurrentConfigName() {
122
+ const storage = loadConfigsStorage();
123
+ return storage.currentConfig;
124
+ }
125
+ /**
126
+ * Get current active GitHub configuration
127
+ */
128
+ export function getCurrentGitHubConfig() {
129
+ const storage = loadConfigsStorage();
130
+ if (storage.currentConfig && storage.configurations[storage.currentConfig]) {
131
+ return storage.configurations[storage.currentConfig] ?? null;
132
+ }
133
+ return null;
134
+ }
135
+ /**
136
+ * Save a configuration (create or update)
137
+ */
138
+ export function saveConfiguration(name, config) {
139
+ const storage = loadConfigsStorage();
140
+ storage.configurations[name] = config;
141
+ saveConfigsStorage(storage);
142
+ logToFile(`[Config] Saved configuration "${name}"`);
143
+ }
144
+ /**
145
+ * Delete a configuration
146
+ */
147
+ export function deleteConfiguration(name) {
148
+ const storage = loadConfigsStorage();
149
+ if (storage.configurations[name]) {
150
+ delete storage.configurations[name];
151
+ // If we deleted the current config, clear it
152
+ if (storage.currentConfig === name) {
153
+ storage.currentConfig = "";
154
+ }
155
+ saveConfigsStorage(storage);
156
+ logToFile(`[Config] Deleted configuration "${name}"`);
157
+ return true;
158
+ }
159
+ return false;
160
+ }
161
+ /**
162
+ * Set current configuration (just updates the pointer in configs.json)
163
+ */
164
+ export function setCurrentConfiguration(name) {
165
+ const storage = loadConfigsStorage();
166
+ const config = storage.configurations[name];
167
+ if (!config) {
168
+ return false;
169
+ }
170
+ storage.currentConfig = name;
171
+ saveConfigsStorage(storage);
172
+ logToFile(`[Config] Switched to configuration "${name}"`);
173
+ return true;
174
+ }
175
+ /**
176
+ * Update GitHub configuration in the current active config
177
+ */
178
+ export function updateGitHubConfig(updates) {
179
+ const storage = loadConfigsStorage();
180
+ if (!storage.currentConfig) {
181
+ logToFile("[Config] No active configuration to update");
182
+ return;
183
+ }
184
+ const currentConfig = storage.configurations[storage.currentConfig];
185
+ if (!currentConfig) {
186
+ logToFile("[Config] Current configuration not found");
187
+ return;
188
+ }
189
+ // Merge updates
190
+ storage.configurations[storage.currentConfig] = {
191
+ ...currentConfig,
192
+ ...updates,
193
+ };
194
+ saveConfigsStorage(storage);
195
+ logToFile(`[Config] Updated configuration "${storage.currentConfig}"`);
196
+ }
197
+ // ============================================================================
198
+ // UNIFIED CONFIG ACCESS
199
+ // ============================================================================
200
+ /**
201
+ * Load and return full configuration (global + current GitHub config)
202
+ */
203
+ export function getConfig() {
204
+ const globalConfig = getGlobalConfig();
205
+ const githubConfig = getCurrentGitHubConfig();
206
+ return {
207
+ // Global (from root .env)
208
+ GITHUB_TOKEN: globalConfig.GITHUB_TOKEN,
209
+ PROXY_URL: globalConfig.PROXY_URL,
210
+ GUI_PATH: globalConfig.GUI_PATH,
211
+ GUI_NAME: globalConfig.GUI_NAME,
212
+ AGENT_NAME: globalConfig.AGENT_NAME,
213
+ REPO_PATH: globalConfig.REPO_PATH,
214
+ CLONE_DIR: globalConfig.CLONE_DIR,
215
+ SSH_HOST: globalConfig.SSH_HOST,
216
+ SSH_USER: globalConfig.SSH_USER,
217
+ SSH_PORT: globalConfig.SSH_PORT,
218
+ SSH_KEY_PATH: globalConfig.SSH_KEY_PATH,
219
+ SSH_REMOTE_PATH: globalConfig.SSH_REMOTE_PATH,
220
+ TEST_COMMAND: globalConfig.TEST_COMMAND,
221
+ // GitHub-specific (from configs.json)
222
+ TARGET_REPO: githubConfig?.TARGET_REPO || "",
223
+ TARGET_BRANCH: githubConfig?.TARGET_BRANCH || "",
224
+ BASE_BRANCH: githubConfig?.BASE_BRANCH || "main",
225
+ READ_ONLY: githubConfig?.READ_ONLY ?? false,
226
+ INCLUDE_PUBLIC: githubConfig?.INCLUDE_PUBLIC ?? false,
227
+ INCLUDE_NOT_OWNED: githubConfig?.INCLUDE_NOT_OWNED ?? false,
228
+ };
229
+ }
230
+ // ============================================================================
231
+ // ENV FILE UPDATES
232
+ // ============================================================================
233
+ // Keys that are stored in .env (global/runtime)
234
+ const GLOBAL_ENV_KEYS = ["PROXY_URL", "GUI_PATH", "GUI_NAME", "AGENT_NAME", "REPO_PATH", "MCP_DATA_DIR", "CLONE_DIR"];
235
+ /**
236
+ * Met à jour ou ajoute une clé dans le fichier .env de manière non-destructive.
237
+ * Pour les clés métier GitHub, met à jour configs.json à la place.
238
+ */
239
+ export async function updateEnvFile(key, value) {
240
+ const stringValue = typeof value === "boolean" ? String(value) : value;
241
+ if (GLOBAL_ENV_KEYS.includes(key)) {
242
+ // Write to .env file
243
+ try {
244
+ let envContent = "";
245
+ if (fsSync.existsSync(rootEnvPath)) {
246
+ envContent = await fs.readFile(rootEnvPath, "utf-8");
247
+ }
248
+ const lines = envContent.split(/\r?\n/);
249
+ let keyFound = false;
250
+ const newLines = lines.map((line) => {
251
+ if (line.trim().startsWith(`${key}=`)) {
252
+ keyFound = true;
253
+ return `${key}=${stringValue}`;
254
+ }
255
+ return line;
256
+ });
257
+ if (!keyFound) {
258
+ if (newLines.length > 0) {
259
+ const lastLine = newLines[newLines.length - 1];
260
+ if (lastLine !== undefined && lastLine.trim() !== "") {
261
+ newLines.push("");
262
+ }
263
+ }
264
+ newLines.push(`${key}=${stringValue}`);
265
+ }
266
+ await fs.writeFile(rootEnvPath, newLines.join("\n").trim() + "\n");
267
+ logToFile(`[Config] .env mis à jour : ${key}=${stringValue}`);
268
+ // Force reload in current process
269
+ dotenv.config({ path: rootEnvPath, override: true });
270
+ }
271
+ catch (error) {
272
+ logToFile(`[Config] Erreur lors de la mise à jour de .env: ${error.message}`);
273
+ throw error;
274
+ }
275
+ }
276
+ else {
277
+ // GitHub-specific key -> update configs.json
278
+ const booleanKeys = ["READ_ONLY", "INCLUDE_PUBLIC", "INCLUDE_NOT_OWNED"];
279
+ const updateValue = booleanKeys.includes(key)
280
+ ? stringValue === "true"
281
+ : stringValue;
282
+ updateGitHubConfig({ [key]: updateValue });
283
+ }
284
+ }
285
+ // ============================================================================
286
+ // MIGRATION
287
+ // ============================================================================
288
+ /**
289
+ * Migrate from legacy .env format to multi-config
290
+ * Creates a "Configuration par défaut" from current root .env GitHub variables
291
+ */
292
+ export function migrateFromLegacyEnv() {
293
+ const storage = loadConfigsStorage();
294
+ // Only migrate if no configs exist yet
295
+ if (Object.keys(storage.configurations).length === 0) {
296
+ reloadGlobalEnv();
297
+ const targetRepo = process.env.TARGET_REPO;
298
+ if (targetRepo) {
299
+ const defaultName = "Configuration par défaut";
300
+ const configData = {
301
+ TARGET_REPO: targetRepo || "",
302
+ TARGET_BRANCH: process.env.TARGET_BRANCH || "",
303
+ BASE_BRANCH: process.env.BASE_BRANCH || "main",
304
+ READ_ONLY: process.env.READ_ONLY === "true",
305
+ INCLUDE_PUBLIC: process.env.INCLUDE_PUBLIC === "true",
306
+ INCLUDE_NOT_OWNED: process.env.INCLUDE_NOT_OWNED === "true",
307
+ };
308
+ storage.configurations[defaultName] = configData;
309
+ storage.currentConfig = defaultName;
310
+ saveConfigsStorage(storage);
311
+ logToFile(`[Config] Migrated legacy .env GitHub config to "${defaultName}"`);
312
+ }
313
+ }
314
+ }
315
+ // ============================================================================
316
+ // IPC UTILITIES
317
+ // ============================================================================
318
+ /**
319
+ * Envoie un message via IPC de manière sécurisée
320
+ */
321
+ export function safeSend(target, msg) {
322
+ if (target && typeof target.send === "function" && target.connected) {
323
+ try {
324
+ return target.send(msg);
325
+ }
326
+ catch (err) {
327
+ logToFile(`[IPC] Échec envoi message: ${err.message}`);
328
+ return false;
329
+ }
330
+ }
331
+ return false;
332
+ }
333
+ /**
334
+ * Filtre les erreurs IPC attendues
335
+ */
336
+ export function setupIpcErrorHandlers() {
337
+ process.on("error", (err) => {
338
+ if (err.code === "ERR_IPC_CHANNEL_CLOSED") {
339
+ logToFile("[IPC] Canal fermé (attendu lors d'une déconnexion).");
340
+ return;
341
+ }
342
+ logToFile(`[Process] Erreur: ${err.message}`);
343
+ });
344
+ process.on("disconnect", () => {
345
+ logToFile("[Process] Déconnecté du parent, arrêt.");
346
+ process.exit(0);
347
+ });
348
+ }
349
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface SshExecResult {
2
+ stdout: string;
3
+ stderr: string;
4
+ code: number | null;
5
+ }
6
+ /**
7
+ * Vérifie que toutes les variables SSH sont définies et que la clé existe sur disque.
8
+ * Lève une erreur explicite avec le nom de la variable manquante.
9
+ */
10
+ export declare function assertSshConfig(): void;
11
+ /**
12
+ * Ouvre une connexion SSH, exécute `command` dans SSH_REMOTE_PATH, ferme.
13
+ * Ne lève pas d'exception si exit code != 0 — c'est à l'appelant de décider.
14
+ */
15
+ export declare function execRemote(command: string): Promise<SshExecResult>;
16
+ //# sourceMappingURL=ssh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../../src/utils/ssh.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAWtC;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA8BxE"}