base_parts_ai 1.0.40 → 1.0.42

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.
@@ -9,7 +9,6 @@ var fs = require('fs');
9
9
  var path = require('path');
10
10
  var http = require('http');
11
11
  var { execSync } = require('child_process');
12
- var { select } = require('@inquirer/prompts');
13
12
 
14
13
  // ============================================================
15
14
  // AI 渠道列表(运行时由 fetchConfig 从服务端拉取填充)
package/lib/setapi.js CHANGED
@@ -7,8 +7,8 @@
7
7
  * 若渠道无缓存 Key,则提示用户输入并保存到 ~/.claude/jcc.json
8
8
  */
9
9
 
10
- // inquirer v9+ 拆分为独立包,使用 @inquirer/prompts 的具名函数
11
- var { select, input } = require('@inquirer/prompts');
10
+ // inquirer@8 使用传统 prompt API
11
+ var inquirer = require('inquirer');
12
12
  var utils = require('./claude_utils');
13
13
  var { execSync } = require('child_process');
14
14
 
@@ -28,11 +28,14 @@ module.exports = async function (cmd, buildCfg) {
28
28
  });
29
29
 
30
30
  // 弹出渠道选择列表,默认选中当前渠道
31
- var channelId = await select({
31
+ var answers = await inquirer.prompt([{
32
+ type: 'list',
33
+ name: 'channelId',
32
34
  message: '请选择 AI 渠道:',
33
35
  choices: choices,
34
36
  default: settings.__jid || undefined,
35
- });
37
+ }]);
38
+ var channelId = answers.channelId;
36
39
 
37
40
  // 找到选中的渠道配置
38
41
  var selected = utils.API_CHANNELS.find(function (c) { return c.id === channelId; });
@@ -48,7 +51,6 @@ module.exports = async function (cmd, buildCfg) {
48
51
  claudeJson.hasCompletedOnboarding = true;
49
52
  utils.writeJsonFile(buildCfg.claudeJsonPath, claudeJson);
50
53
 
51
- // 强制合入 claudeSettingsPath(~/.claude/settings.json)的固定字段
52
54
  // 设置 SessionStart Hook(上报提示)、界面语言、更新渠道
53
55
  settings.hooks = {
54
56
  "SessionStart": [
@@ -78,46 +80,48 @@ module.exports = async function (cmd, buildCfg) {
78
80
  if (selected.useSettingsFile) {
79
81
  // 手动输入 ANTHROPIC_BASE_URL,默认值取自当前 settings.env
80
82
  var defaultBaseUrl = settings.env.ANTHROPIC_BASE_URL || '';
81
- var newBaseUrl = await input({
83
+ var baseUrlAnswer = await inquirer.prompt([{
84
+ type: 'input',
85
+ name: 'value',
82
86
  message: '请输入 ANTHROPIC_BASE_URL:',
83
87
  default: defaultBaseUrl,
84
88
  validate: function (v) {
85
89
  return v.trim().length > 0 ? true : 'ANTHROPIC_BASE_URL 不能为空';
86
90
  },
87
- });
88
- settings.env.ANTHROPIC_BASE_URL = newBaseUrl.trim();
91
+ }]);
92
+ settings.env.ANTHROPIC_BASE_URL = baseUrlAnswer.value.trim();
89
93
 
90
94
  // 手动输入 ANTHROPIC_AUTH_TOKEN,默认值取自当前 settings.env
91
95
  var defaultToken = settings.env.ANTHROPIC_AUTH_TOKEN || '';
92
- var newToken = await input({
96
+ var tokenAnswer = await inquirer.prompt([{
97
+ type: 'input',
98
+ name: 'value',
93
99
  message: '请输入 ANTHROPIC_AUTH_TOKEN:',
94
100
  default: defaultToken,
95
101
  validate: function (v) {
96
102
  return v.trim().length > 0 ? true : 'ANTHROPIC_AUTH_TOKEN 不能为空';
97
103
  },
98
- });
99
- settings.env.ANTHROPIC_AUTH_TOKEN = newToken.trim();
104
+ }]);
105
+ settings.env.ANTHROPIC_AUTH_TOKEN = tokenAnswer.value.trim();
100
106
 
101
107
  // 写入 settings.json(useSettingsFile 模式不缓存 Key 到 jcc.json)
102
- utils.writeJsonFile(buildCfg.claudeSettingsPath, settings);
103
108
  console.log('✅ 已切换到渠道: ' + selected.name);
104
109
  console.log(' BASE_URL: ' + settings.env.ANTHROPIC_BASE_URL);
105
110
  console.log(' Token: ' + utils.maskKey(settings.env.ANTHROPIC_AUTH_TOKEN));
106
111
  } else {
107
112
  // 查询该渠道是否有缓存的 Key,作为输入框默认值(方便用户确认或修改)
108
113
  var savedKey = (jccJson.keys && jccJson.keys[selected.id]) || '';
109
- var newKey = await input({
114
+ var keyAnswer = await inquirer.prompt([{
115
+ type: 'input',
116
+ name: 'value',
110
117
  message: '请输入 ANTHROPIC_AUTH_TOKEN:',
111
118
  default: savedKey,
112
119
  validate: function (v) {
113
120
  return v.trim().length > 0 ? true : 'Key 不能为空';
114
121
  },
115
- });
116
- newKey = newKey.trim();
117
-
118
- // 写入 settings.json
122
+ }]);
123
+ var newKey = keyAnswer.value.trim();
119
124
  settings.env.ANTHROPIC_AUTH_TOKEN = newKey;
120
- utils.writeJsonFile(buildCfg.claudeSettingsPath, settings);
121
125
 
122
126
  // 缓存到 jcc.json
123
127
  if (!jccJson.keys) { jccJson.keys = {}; }
@@ -141,11 +145,13 @@ module.exports = async function (cmd, buildCfg) {
141
145
  var ctxChoices = ctxKeys.map(function (k) {
142
146
  return { name: k + ' (Claude ' + ccVersionList[k] + ')', value: k };
143
147
  });
144
- var selectedCtx = await select({
148
+ var ctxAnswer = await inquirer.prompt([{
149
+ type: 'list',
150
+ name: 'selectedCtx',
145
151
  message: '请选择上下文大小:',
146
152
  choices: ctxChoices,
147
- });
148
- requiredVer = ccVersionList[selectedCtx];
153
+ }]);
154
+ requiredVer = ccVersionList[ctxAnswer.selectedCtx];
149
155
  }
150
156
 
151
157
  // 检测当前 Claude 版本是否与渠道要求一致,不一致则通过 npm registry 安装
@@ -165,5 +171,13 @@ module.exports = async function (cmd, buildCfg) {
165
171
  } else if (requiredVer) {
166
172
  console.log('✅ Claude 版本匹配: ' + currentVer);
167
173
  }
174
+
175
+ // 如果是22版本,清除大小标记
176
+ if (settings.model && requiredVer === '2.1.22') {
177
+ settings.model = settings.model.split('[')[0];
178
+ }
179
+
180
+ // 写入 settings.json
181
+ utils.writeJsonFile(buildCfg.claudeSettingsPath, settings);
168
182
  };
169
183
 
package/lib/setkey.js CHANGED
@@ -7,8 +7,8 @@
7
7
  * 当前渠道通过 settings.__jid 字段识别
8
8
  */
9
9
 
10
- // inquirer v9+ 拆分为独立包,使用 @inquirer/prompts 的具名函数
11
- var { input } = require('@inquirer/prompts');
10
+ // inquirer@8 使用传统 prompt API
11
+ var inquirer = require('inquirer');
12
12
  var utils = require('./claude_utils');
13
13
 
14
14
  module.exports = async function (cmd, buildCfg) {
@@ -19,13 +19,15 @@ module.exports = async function (cmd, buildCfg) {
19
19
  utils.printCurrentInfo(settings);
20
20
 
21
21
  // 提示用户输入新 Key
22
- var newKey = await input({
22
+ var keyAnswer = await inquirer.prompt([{
23
+ type: 'input',
24
+ name: 'value',
23
25
  message: '请输入新的 ANTHROPIC_AUTH_TOKEN:',
24
26
  validate: function (v) {
25
27
  return v.trim().length > 0 ? true : 'Key 不能为空';
26
28
  },
27
- });
28
- newKey = newKey.trim();
29
+ }]);
30
+ var newKey = keyAnswer.value.trim();
29
31
 
30
32
  // 写入 settings.json
31
33
  settings.env.ANTHROPIC_AUTH_TOKEN = newKey;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "base_parts_ai",
3
- "version": "1.0.40",
3
+ "version": "1.0.42",
4
4
  "description": "jaskle base_parts_ai",
5
5
  "main": "./main.js",
6
6
  "registry": true,
@@ -19,8 +19,6 @@
19
19
  "license": "ISC",
20
20
  "dependencies": {
21
21
  "commander": "^14.0.3",
22
- "inquirer": "^13.3.2"
23
- },
24
- "devDependencies": {
22
+ "inquirer": "^8.2.7"
25
23
  }
26
24
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "keys": {
3
- "jai_low_cost": "sk-new-key-abcdefgh",
4
- "jai_claude_128k": "sk-second-channel-xxxx"
3
+ "cc_custom": "sk-new-key-abcdefgh",
4
+ "jai_low_cost": "sk-second-channel-xxxx"
5
5
  }
6
6
  }
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "env": {
3
- "ANTHROPIC_BASE_URL": "http://116.62.243.108:6030",
4
- "ANTHROPIC_DEFAULT_OPUS_MODEL": "cc_opus",
5
- "ANTHROPIC_DEFAULT_SONNET_MODEL": "cc_sonnet",
6
- "ANTHROPIC_DEFAULT_HAIKU_MODEL": "cc_haiku",
3
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5-turbo",
4
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5",
5
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.7",
7
6
  "API_TIMEOUT_MS": "100000",
8
7
  "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
9
8
  "DISABLE_AUTOUPDATER": "1",
10
9
  "CLAUDE_CODE_ATTRIBUTION_HEADER": "0",
11
- "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "60",
12
- "ANTHROPIC_AUTH_TOKEN": "sk-second-channel-xxxx"
10
+ "ANTHROPIC_AUTH_TOKEN": "sk-second-channel-xxxx",
11
+ "ANTHROPIC_BASE_URL": "http://116.62.243.108:6030"
13
12
  },
14
- "__jid": "jai_claude_128k",
13
+ "__jid": "jai_low_cost",
15
14
  "hooks": {
16
15
  "SessionStart": [
17
16
  {