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.
@@ -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((_req, res) => __awaiter(void 0, void 0, void 0, function* () {
1307
- const result = yield writeClaudeConfig(dbManager);
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);