ccman 3.3.28 → 3.3.29

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/index.js CHANGED
@@ -354,7 +354,7 @@ function writeCodexConfigOverwrite(provider) {
354
354
  removeDeprecatedKeys(nextConfig);
355
355
  const providerKey = resolveCodexProviderKey(provider);
356
356
  nextConfig.model_provider = providerKey;
357
- nextConfig.model = provider.model || nextConfig.model || "gpt-5.4";
357
+ nextConfig.model = provider.model || nextConfig.model || "gpt-5.5";
358
358
  nextConfig.model_providers = {
359
359
  [providerKey]: buildManagedProvider(provider, providerKey)
360
360
  };
@@ -372,7 +372,7 @@ function writeCodexConfigMerge(provider) {
372
372
  const providerKey = resolveCodexProviderKey(provider);
373
373
  removeDeprecatedKeys(nextConfig);
374
374
  nextConfig.model_provider = providerKey;
375
- nextConfig.model = provider.model || nextConfig.model || "gpt-5.4";
375
+ nextConfig.model = provider.model || nextConfig.model || "gpt-5.5";
376
376
  const existingProviders = nextConfig.model_providers && typeof nextConfig.model_providers === "object" && !Array.isArray(nextConfig.model_providers) ? { ...nextConfig.model_providers } : {};
377
377
  const lowerProviderKey = providerKey.toLowerCase();
378
378
  for (const key of Object.keys(existingProviders)) {
@@ -417,8 +417,8 @@ var init_codex = __esm({
417
417
  __filename = fileURLToPath2(import.meta.url);
418
418
  __dirname = path3.dirname(__filename);
419
419
  CODEX_DEFAULT_CONFIG = {
420
- model: "gpt-5.4",
421
- review_model: "gpt-5.4",
420
+ model: "gpt-5.5",
421
+ review_model: "gpt-5.5",
422
422
  model_reasoning_effort: "xhigh",
423
423
  plan_mode_reasoning_effort: "xhigh",
424
424
  model_reasoning_summary: "auto",
@@ -546,6 +546,7 @@ var init_claude = __esm({
546
546
  __filename2 = fileURLToPath3(import.meta.url);
547
547
  __dirname2 = path4.dirname(__filename2);
548
548
  CLAUDE_CONFIG_TEMPLATE = {
549
+ model: "sonnet",
549
550
  env: {
550
551
  ANTHROPIC_AUTH_TOKEN: "{{apiKey}}",
551
552
  ANTHROPIC_BASE_URL: "{{baseUrl}}",
@@ -1012,12 +1013,16 @@ function writeGeminiConfig(provider, options = {}) {
1012
1013
  ...existingEnv,
1013
1014
  ...templateEnv
1014
1015
  };
1016
+ const existingGeminiModel = existingEnv.GEMINI_MODEL;
1015
1017
  if (!templateEnv.GOOGLE_GEMINI_BASE_URL) {
1016
1018
  delete env.GOOGLE_GEMINI_BASE_URL;
1017
1019
  }
1018
1020
  if (!templateEnv.GEMINI_API_KEY) {
1019
1021
  delete env.GEMINI_API_KEY;
1020
1022
  }
1023
+ if (options.mode !== "overwrite" && existingGeminiModel) {
1024
+ env.GEMINI_MODEL = existingGeminiModel;
1025
+ }
1021
1026
  let modelMeta = null;
1022
1027
  if (provider.model && provider.model.trim().length > 0) {
1023
1028
  try {
@@ -1037,7 +1042,7 @@ function writeGeminiConfig(provider, options = {}) {
1037
1042
  }
1038
1043
  }
1039
1044
  }
1040
- if (!env.GEMINI_MODEL && modelMeta.defaultModel) {
1045
+ if (modelMeta.defaultModel && (!existingGeminiModel || options.mode === "overwrite")) {
1041
1046
  env.GEMINI_MODEL = modelMeta.defaultModel;
1042
1047
  }
1043
1048
  }
@@ -1065,7 +1070,8 @@ var init_gemini2 = __esm({
1065
1070
  GEMINI_ENV_TEMPLATE = [
1066
1071
  "# Managed by ccman",
1067
1072
  "GOOGLE_GEMINI_BASE_URL={{baseUrl}}",
1068
- "GEMINI_API_KEY={{apiKey}}"
1073
+ "GEMINI_API_KEY={{apiKey}}",
1074
+ "GEMINI_MODEL=gemini-3.5-flash"
1069
1075
  ].join("\n");
1070
1076
  }
1071
1077
  });
@@ -1145,17 +1151,6 @@ function enforceModelStoreFalse(models) {
1145
1151
  high: {},
1146
1152
  xhigh: {}
1147
1153
  }
1148
- },
1149
- [OPENCODE_SECONDARY_MODEL_KEY]: {
1150
- options: {
1151
- store: false
1152
- },
1153
- variants: {
1154
- low: {},
1155
- medium: {},
1156
- high: {},
1157
- xhigh: {}
1158
- }
1159
1154
  }
1160
1155
  });
1161
1156
  }
@@ -1195,7 +1190,7 @@ function writeOpenCodeConfig(provider, options = {}) {
1195
1190
  };
1196
1191
  writeJSON(configPath, nextConfig);
1197
1192
  }
1198
- var OPENCODE_SCHEMA, OPENCODE_PROVIDER_KEY, OPENCODE_MODEL, OPENCODE_MODEL_KEY, OPENCODE_SECONDARY_MODEL_KEY, __filename4, __dirname4, DEFAULT_MODELS, OPENCODE_CONFIG_TEMPLATE;
1193
+ var OPENCODE_SCHEMA, OPENCODE_PROVIDER_KEY, OPENCODE_MODEL, OPENCODE_MODEL_KEY, __filename4, __dirname4, DEFAULT_MODELS, OPENCODE_CONFIG_TEMPLATE;
1199
1194
  var init_opencode2 = __esm({
1200
1195
  "../core/dist/writers/opencode.js"() {
1201
1196
  "use strict";
@@ -1204,26 +1199,13 @@ var init_opencode2 = __esm({
1204
1199
  init_template();
1205
1200
  OPENCODE_SCHEMA = "https://opencode.ai/config.json";
1206
1201
  OPENCODE_PROVIDER_KEY = "openai";
1207
- OPENCODE_MODEL = "openai/gpt-5.4";
1208
- OPENCODE_MODEL_KEY = "gpt-5.4";
1209
- OPENCODE_SECONDARY_MODEL_KEY = "gpt-5.3-codex";
1202
+ OPENCODE_MODEL = "openai/gpt-5.5";
1203
+ OPENCODE_MODEL_KEY = "gpt-5.5";
1210
1204
  __filename4 = fileURLToPath5(import.meta.url);
1211
1205
  __dirname4 = path7.dirname(__filename4);
1212
1206
  DEFAULT_MODELS = {
1213
1207
  [OPENCODE_MODEL_KEY]: {
1214
- name: "GPT-5.4",
1215
- options: {
1216
- store: false
1217
- },
1218
- variants: {
1219
- low: {},
1220
- medium: {},
1221
- high: {},
1222
- xhigh: {}
1223
- }
1224
- },
1225
- [OPENCODE_SECONDARY_MODEL_KEY]: {
1226
- name: "GPT-5.3 Codex",
1208
+ name: "GPT-5.5",
1227
1209
  options: {
1228
1210
  store: false
1229
1211
  },
@@ -1376,10 +1358,10 @@ function writeOpenClawConfig(provider, options = {}) {
1376
1358
  defaults: {
1377
1359
  ...nextOpenClawConfig.agents?.defaults || {},
1378
1360
  workspace: homeDir,
1379
- imageModel: nextOpenClawConfig.agents?.defaults?.imageModel || `${providerName}/gpt-5.4`,
1361
+ imageModel: nextOpenClawConfig.agents?.defaults?.imageModel || `${providerName}/gpt-5.5`,
1380
1362
  model: {
1381
1363
  ...nextOpenClawConfig.agents?.defaults?.model || {},
1382
- primary: nextOpenClawConfig.agents?.defaults?.model?.primary || `${providerName}/gpt-5.4`
1364
+ primary: nextOpenClawConfig.agents?.defaults?.model?.primary || `${providerName}/gpt-5.5`
1383
1365
  }
1384
1366
  }
1385
1367
  }
@@ -1397,8 +1379,8 @@ function writeOpenClawConfig(provider, options = {}) {
1397
1379
  const mergedAgents = deepMerge(nextOpenClawConfig.agents || {}, existingOpenClawConfig.agents || {});
1398
1380
  const mergedDefaults = mergedAgents.defaults || {};
1399
1381
  const mergedModel = mergedDefaults.model || {};
1400
- const templatePrimary = nextOpenClawConfig.agents?.defaults?.model?.primary || `${providerName}/gpt-5.4`;
1401
- const templateImageModel = nextOpenClawConfig.agents?.defaults?.imageModel || `${providerName}/gpt-5.4`;
1382
+ const templatePrimary = nextOpenClawConfig.agents?.defaults?.model?.primary || `${providerName}/gpt-5.5`;
1383
+ const templateImageModel = nextOpenClawConfig.agents?.defaults?.imageModel || `${providerName}/gpt-5.5`;
1402
1384
  const workspace = typeof mergedDefaults.workspace === "string" && mergedDefaults.workspace.trim() ? mergedDefaults.workspace : homeDir;
1403
1385
  const finalOpenClawConfig = {
1404
1386
  ...existingOpenClawConfig,
@@ -1425,7 +1407,7 @@ function writeOpenClawConfig(provider, options = {}) {
1425
1407
  writeJSON(configPath, finalOpenClawConfig);
1426
1408
  writeJSON(modelsPath, finalModelsConfig);
1427
1409
  }
1428
- var DEFAULT_PROVIDER_NAME, PRIMARY_MODEL_ID, SECONDARY_MODEL_ID, PRIMARY_MODEL_INPUTS, SECONDARY_MODEL_INPUTS, __filename5, __dirname5, OPENCLAW_CONFIG_TEMPLATE, OPENCLAW_MODELS_TEMPLATE;
1410
+ var DEFAULT_PROVIDER_NAME, PRIMARY_MODEL_ID, PRIMARY_MODEL_INPUTS, __filename5, __dirname5, OPENCLAW_CONFIG_TEMPLATE, OPENCLAW_MODELS_TEMPLATE;
1429
1411
  var init_openclaw2 = __esm({
1430
1412
  "../core/dist/writers/openclaw.js"() {
1431
1413
  "use strict";
@@ -1433,10 +1415,8 @@ var init_openclaw2 = __esm({
1433
1415
  init_file();
1434
1416
  init_template();
1435
1417
  DEFAULT_PROVIDER_NAME = "gmn";
1436
- PRIMARY_MODEL_ID = "gpt-5.4";
1437
- SECONDARY_MODEL_ID = "gpt-5.3-codex";
1418
+ PRIMARY_MODEL_ID = "gpt-5.5";
1438
1419
  PRIMARY_MODEL_INPUTS = ["text", "image"];
1439
- SECONDARY_MODEL_INPUTS = ["text", "image"];
1440
1420
  __filename5 = fileURLToPath6(import.meta.url);
1441
1421
  __dirname5 = path8.dirname(__filename5);
1442
1422
  OPENCLAW_CONFIG_TEMPLATE = {
@@ -1454,24 +1434,14 @@ var init_openclaw2 = __esm({
1454
1434
  authHeader: true,
1455
1435
  models: [
1456
1436
  {
1457
- id: "gpt-5.4",
1458
- name: "gpt-5.4",
1437
+ id: "gpt-5.5",
1438
+ name: "gpt-5.5",
1459
1439
  api: "openai-responses",
1460
1440
  reasoning: true,
1461
1441
  input: PRIMARY_MODEL_INPUTS,
1462
1442
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
1463
1443
  contextWindow: 105e4,
1464
1444
  maxTokens: 128e3
1465
- },
1466
- {
1467
- id: SECONDARY_MODEL_ID,
1468
- name: SECONDARY_MODEL_ID,
1469
- api: "openai-responses",
1470
- reasoning: false,
1471
- input: SECONDARY_MODEL_INPUTS,
1472
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
1473
- contextWindow: 4e5,
1474
- maxTokens: 128e3
1475
1445
  }
1476
1446
  ]
1477
1447
  }
@@ -1480,9 +1450,9 @@ var init_openclaw2 = __esm({
1480
1450
  agents: {
1481
1451
  defaults: {
1482
1452
  workspace: "",
1483
- imageModel: "{{providerName}}/gpt-5.4",
1453
+ imageModel: "{{providerName}}/gpt-5.5",
1484
1454
  model: {
1485
- primary: "{{providerName}}/gpt-5.4"
1455
+ primary: "{{providerName}}/gpt-5.5"
1486
1456
  },
1487
1457
  thinkingDefault: "xhigh"
1488
1458
  }
@@ -1501,24 +1471,14 @@ var init_openclaw2 = __esm({
1501
1471
  },
1502
1472
  models: [
1503
1473
  {
1504
- id: "gpt-5.4",
1505
- name: "gpt-5.4",
1474
+ id: "gpt-5.5",
1475
+ name: "gpt-5.5",
1506
1476
  api: "openai-responses",
1507
1477
  reasoning: true,
1508
1478
  input: PRIMARY_MODEL_INPUTS,
1509
1479
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
1510
1480
  contextWindow: 105e4,
1511
1481
  maxTokens: 128e3
1512
- },
1513
- {
1514
- id: SECONDARY_MODEL_ID,
1515
- name: SECONDARY_MODEL_ID,
1516
- api: "openai-responses",
1517
- reasoning: false,
1518
- input: SECONDARY_MODEL_INPUTS,
1519
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
1520
- contextWindow: 4e5,
1521
- maxTokens: 128e3
1522
1482
  }
1523
1483
  ]
1524
1484
  }
@@ -1,4 +1,5 @@
1
1
  {
2
+ "model": "sonnet",
2
3
  "env": {
3
4
  "ANTHROPIC_AUTH_TOKEN": "{{apiKey}}",
4
5
  "ANTHROPIC_BASE_URL": "{{baseUrl}}",
@@ -11,4 +12,3 @@
11
12
  },
12
13
  "alwaysThinkingEnabled": true
13
14
  }
14
-
@@ -1,5 +1,5 @@
1
- model = "gpt-5.4"
2
- review_model = "gpt-5.4"
1
+ model = "gpt-5.5"
2
+ review_model = "gpt-5.5"
3
3
  model_reasoning_effort = "xhigh"
4
4
  plan_mode_reasoning_effort = "xhigh"
5
5
  model_reasoning_summary = "auto"
@@ -10,24 +10,14 @@
10
10
  },
11
11
  "models": [
12
12
  {
13
- "id": "gpt-5.4",
14
- "name": "gpt-5.4",
13
+ "id": "gpt-5.5",
14
+ "name": "gpt-5.5",
15
15
  "api": "openai-responses",
16
16
  "reasoning": true,
17
17
  "input": ["text", "image"],
18
18
  "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
19
19
  "contextWindow": 1050000,
20
20
  "maxTokens": 128000
21
- },
22
- {
23
- "id": "gpt-5.3-codex",
24
- "name": "gpt-5.3-codex",
25
- "api": "openai-responses",
26
- "reasoning": false,
27
- "input": ["text", "image"],
28
- "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
29
- "contextWindow": 400000,
30
- "maxTokens": 128000
31
21
  }
32
22
  ]
33
23
  }
@@ -12,24 +12,14 @@
12
12
  "authHeader": true,
13
13
  "models": [
14
14
  {
15
- "id": "gpt-5.4",
16
- "name": "gpt-5.4",
15
+ "id": "gpt-5.5",
16
+ "name": "gpt-5.5",
17
17
  "api": "openai-responses",
18
18
  "reasoning": true,
19
19
  "input": ["text", "image"],
20
20
  "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
21
21
  "contextWindow": 1050000,
22
22
  "maxTokens": 128000
23
- },
24
- {
25
- "id": "gpt-5.3-codex",
26
- "name": "gpt-5.3-codex",
27
- "api": "openai-responses",
28
- "reasoning": false,
29
- "input": ["text", "image"],
30
- "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
31
- "contextWindow": 400000,
32
- "maxTokens": 128000
33
23
  }
34
24
  ]
35
25
  }
@@ -38,9 +28,9 @@
38
28
  "agents": {
39
29
  "defaults": {
40
30
  "workspace": "",
41
- "imageModel": "{{providerName}}/gpt-5.4",
31
+ "imageModel": "{{providerName}}/gpt-5.5",
42
32
  "model": {
43
- "primary": "{{providerName}}/gpt-5.4"
33
+ "primary": "{{providerName}}/gpt-5.5"
44
34
  },
45
35
  "thinkingDefault": "xhigh"
46
36
  }
@@ -6,20 +6,8 @@
6
6
  "apiKey": "{{apiKey}}"
7
7
  },
8
8
  "models": {
9
- "gpt-5.3-codex": {
10
- "name": "GPT-5.3 Codex",
11
- "options": {
12
- "store": false
13
- },
14
- "variants": {
15
- "low": {},
16
- "medium": {},
17
- "high": {},
18
- "xhigh": {}
19
- }
20
- },
21
- "gpt-5.4": {
22
- "name": "GPT-5.4",
9
+ "gpt-5.5": {
10
+ "name": "GPT-5.5",
23
11
  "options": {
24
12
  "store": false
25
13
  },
@@ -46,5 +34,5 @@
46
34
  }
47
35
  },
48
36
  "$schema": "https://opencode.ai/config.json",
49
- "model": "openai/gpt-5.4"
37
+ "model": "openai/gpt-5.5"
50
38
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccman",
3
- "version": "3.3.28",
3
+ "version": "3.3.29",
4
4
  "type": "module",
5
5
  "description": "Manage Codex, Claude Code, Gemini CLI, OpenCode, OpenClaw, and MCP API service provider configurations",
6
6
  "main": "./dist/index.js",