aicodeswitch 3.0.8 → 3.0.9
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/server/main.js
CHANGED
|
@@ -81,7 +81,7 @@ const asyncHandler = (handler) => (req, res, next) => {
|
|
|
81
81
|
next(err);
|
|
82
82
|
});
|
|
83
83
|
};
|
|
84
|
-
const writeClaudeConfig = (dbManager) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
+
const writeClaudeConfig = (dbManager, enableAgentTeams) => __awaiter(void 0, void 0, void 0, function* () {
|
|
85
85
|
try {
|
|
86
86
|
const homeDir = os_1.default.homedir();
|
|
87
87
|
const port = process.env.PORT ? parseInt(process.env.PORT, 10) : 4567;
|
|
@@ -115,14 +115,20 @@ const writeClaudeConfig = (dbManager) => __awaiter(void 0, void 0, void 0, funct
|
|
|
115
115
|
if (!fs_1.default.existsSync(claudeDir)) {
|
|
116
116
|
fs_1.default.mkdirSync(claudeDir, { recursive: true });
|
|
117
117
|
}
|
|
118
|
+
// 构建环境变量配置
|
|
119
|
+
const claudeSettingsEnv = {
|
|
120
|
+
ANTHROPIC_AUTH_TOKEN: config.apiKey || "api_key",
|
|
121
|
+
ANTHROPIC_API_KEY: "",
|
|
122
|
+
ANTHROPIC_BASE_URL: `http://${host}:${port}/claude-code`,
|
|
123
|
+
API_TIMEOUT_MS: "3000000",
|
|
124
|
+
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1
|
|
125
|
+
};
|
|
126
|
+
// 如果启用Agent Teams功能,添加对应的环境变量
|
|
127
|
+
if (enableAgentTeams) {
|
|
128
|
+
claudeSettingsEnv.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1";
|
|
129
|
+
}
|
|
118
130
|
const claudeSettings = {
|
|
119
|
-
env:
|
|
120
|
-
ANTHROPIC_AUTH_TOKEN: config.apiKey || "api_key",
|
|
121
|
-
ANTHROPIC_API_KEY: "",
|
|
122
|
-
ANTHROPIC_BASE_URL: `http://${host}:${port}/claude-code`,
|
|
123
|
-
API_TIMEOUT_MS: "3000000",
|
|
124
|
-
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1
|
|
125
|
-
}
|
|
131
|
+
env: claudeSettingsEnv
|
|
126
132
|
};
|
|
127
133
|
fs_1.default.writeFileSync(claudeSettingsPath, JSON.stringify(claudeSettings, null, 2));
|
|
128
134
|
// Claude Code .claude.json
|
|
@@ -167,6 +173,53 @@ const writeClaudeConfig = (dbManager) => __awaiter(void 0, void 0, void 0, funct
|
|
|
167
173
|
return false;
|
|
168
174
|
}
|
|
169
175
|
});
|
|
176
|
+
/**
|
|
177
|
+
* 更新Claude Code配置中的Agent Teams设置
|
|
178
|
+
* 此函数假设配置文件已经被代理覆盖,直接修改环境变量而不重新备份
|
|
179
|
+
*/
|
|
180
|
+
const updateClaudeAgentTeamsConfig = (enableAgentTeams) => __awaiter(void 0, void 0, void 0, function* () {
|
|
181
|
+
try {
|
|
182
|
+
const homeDir = os_1.default.homedir();
|
|
183
|
+
const claudeSettingsPath = path_1.default.join(homeDir, '.claude/settings.json');
|
|
184
|
+
// 检查配置文件是否存在
|
|
185
|
+
if (!fs_1.default.existsSync(claudeSettingsPath)) {
|
|
186
|
+
console.error('Claude settings.json does not exist');
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
// 读取当前配置
|
|
190
|
+
const currentContent = fs_1.default.readFileSync(claudeSettingsPath, 'utf-8');
|
|
191
|
+
const currentConfig = JSON.parse(currentContent);
|
|
192
|
+
// 检查是否是代理配置
|
|
193
|
+
const configStatus = (0, config_metadata_1.checkClaudeConfigStatus)();
|
|
194
|
+
if (!configStatus.isOverwritten) {
|
|
195
|
+
console.error('Claude config is not overwritten by proxy. Please activate a route first.');
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
// 更新或删除Agent Teams环境变量
|
|
199
|
+
if (enableAgentTeams) {
|
|
200
|
+
currentConfig.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1";
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
delete currentConfig.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS;
|
|
204
|
+
}
|
|
205
|
+
// 写入更新后的配置
|
|
206
|
+
fs_1.default.writeFileSync(claudeSettingsPath, JSON.stringify(currentConfig, null, 2));
|
|
207
|
+
// 更新元数据中的当前配置hash
|
|
208
|
+
const metadata = (0, config_metadata_1.loadMetadata)('claude');
|
|
209
|
+
if (metadata && metadata.files[0]) {
|
|
210
|
+
metadata.files[0].currentHash = (0, crypto_1.createHash)('sha256')
|
|
211
|
+
.update(fs_1.default.readFileSync(claudeSettingsPath, 'utf-8'))
|
|
212
|
+
.digest('hex');
|
|
213
|
+
metadata.timestamp = Date.now();
|
|
214
|
+
(0, config_metadata_1.saveMetadata)(metadata);
|
|
215
|
+
}
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
console.error('Failed to update Claude Agent Teams config:', error);
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
});
|
|
170
223
|
const writeCodexConfig = (dbManager) => __awaiter(void 0, void 0, void 0, function* () {
|
|
171
224
|
try {
|
|
172
225
|
const homeDir = os_1.default.homedir();
|
|
@@ -1303,14 +1356,21 @@ ${instruction}
|
|
|
1303
1356
|
fs_1.default.rmSync(skillDir, { recursive: true, force: true });
|
|
1304
1357
|
res.json({ success: true });
|
|
1305
1358
|
})));
|
|
1306
|
-
app.post('/api/write-config/claude', asyncHandler((
|
|
1307
|
-
const
|
|
1359
|
+
app.post('/api/write-config/claude', asyncHandler((req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1360
|
+
const enableAgentTeams = req.body.enableAgentTeams;
|
|
1361
|
+
const result = yield writeClaudeConfig(dbManager, enableAgentTeams);
|
|
1308
1362
|
res.json(result);
|
|
1309
1363
|
})));
|
|
1310
1364
|
app.post('/api/write-config/codex', asyncHandler((_req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1311
1365
|
const result = yield writeCodexConfig(dbManager);
|
|
1312
1366
|
res.json(result);
|
|
1313
1367
|
})));
|
|
1368
|
+
// 更新Claude Code配置中的Agent Teams设置(当路由已激活时)
|
|
1369
|
+
app.post('/api/update-claude-agent-teams', asyncHandler((req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1370
|
+
const { enableAgentTeams } = req.body;
|
|
1371
|
+
const result = yield updateClaudeAgentTeamsConfig(enableAgentTeams);
|
|
1372
|
+
res.json(result);
|
|
1373
|
+
})));
|
|
1314
1374
|
app.post('/api/restore-config/claude', asyncHandler((_req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1315
1375
|
const result = yield restoreClaudeConfig();
|
|
1316
1376
|
res.json(result);
|