@cloudbase/cli 2.8.0-beta.7 → 2.8.0-beta.8

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.
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getDefaultModelByBaseUrl = exports.BASE_URL_MODEL_MAPPING = exports.getAgentConfigValidator = exports.getDefaultConfig = exports.CLOUDBASE_PROVIDERS = exports.AGENTS = exports.NONE = exports.AIDER = exports.CODEX = exports.QWEN = exports.CLAUDE = exports.DEFAULT_CONFIG = exports.CLOUDBASE_MCP_CONFIG_PATH = exports.CLAUDE_CODE_ROUTER_CONFIG_PATH = exports.ENV_LOCAL_PATH = exports.CONFIG_PATH = void 0;
6
+ exports.getDefaultModelByBaseUrl = exports.BASE_URL_MODEL_MAPPING = exports.getAgentConfigValidator = exports.getDefaultConfig = exports.CLOUDBASE_PROVIDERS = exports.AGENTS = exports.NONE = exports.AIDER = exports.CODEX = exports.QWEN = exports.CLAUDE = exports.DEFAULT_CONFIG = exports.CLOUDBASE_MCP_CONFIG_PATH = exports.CLAUDE_CODE_ROUTER_LOG_PATH = exports.CLAUDE_CODE_ROUTER_CONFIG_PATH = exports.ENV_LOCAL_PATH = exports.CONFIG_PATH = void 0;
7
7
  const os_1 = __importDefault(require("os"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const v3_1 = __importDefault(require("zod/v3"));
10
10
  exports.CONFIG_PATH = path_1.default.join(process.cwd(), 'cloudbaserc.json');
11
11
  exports.ENV_LOCAL_PATH = path_1.default.join(process.cwd(), '.env.local');
12
12
  exports.CLAUDE_CODE_ROUTER_CONFIG_PATH = path_1.default.join(os_1.default.homedir(), '.claude-code-router', 'config.json');
13
+ exports.CLAUDE_CODE_ROUTER_LOG_PATH = path_1.default.join(os_1.default.homedir(), '.claude-code-router', 'claude-code-router.log');
13
14
  exports.CLOUDBASE_MCP_CONFIG_PATH = path_1.default.join(os_1.default.homedir(), '.cloudbase-env-id');
14
15
  exports.DEFAULT_CONFIG = `{
15
16
  "envId": "{{env.ENV_ID}}"
@@ -105,18 +106,18 @@ exports.NONE = {
105
106
  };
106
107
  exports.AGENTS = [exports.CLAUDE, exports.QWEN, exports.CODEX, exports.AIDER, exports.NONE];
107
108
  exports.CLOUDBASE_PROVIDERS = [
109
+ {
110
+ name: 'Kimi',
111
+ value: 'kimi-exp',
112
+ models: ['kimi-k2-instruct-local'],
113
+ transformer: undefined
114
+ },
108
115
  {
109
116
  name: 'DeepSeek',
110
117
  value: 'deepseek',
111
118
  models: ['deepseek-v3'],
112
119
  transformer: 'deepseek'
113
120
  },
114
- {
115
- name: 'Kimi',
116
- value: 'kimi',
117
- models: ['Kimi-K2-Instruct-Online-128K'],
118
- transformer: undefined
119
- },
120
121
  {
121
122
  name: '自定义',
122
123
  value: 'custom',
@@ -359,38 +359,6 @@ class AICommandRouter {
359
359
  yield this.modifyMCPConfigs(extractDir, log);
360
360
  });
361
361
  }
362
- validateTemplateIntegrity(templateType, extractDir, log) {
363
- return __awaiter(this, void 0, void 0, function* () {
364
- const fs = yield Promise.resolve().then(() => __importStar(require('fs-extra')));
365
- const path = yield Promise.resolve().then(() => __importStar(require('path')));
366
- const requiredFiles = {
367
- rules: ['.mcp.json', 'CLAUDE.md'],
368
- react: ['package.json', 'src/', 'public/', 'cloudbaserc.json'],
369
- vue: ['package.json', 'src/', 'public/', 'cloudbaserc.json'],
370
- miniprogram: ['app.js', 'app.json', 'pages/', 'cloudbaserc.json'],
371
- uniapp: ['pages.json', 'manifest.json', 'pages/', 'cloudbaserc.json']
372
- };
373
- const files = requiredFiles[templateType] || [];
374
- const missingFiles = [];
375
- for (const file of files) {
376
- const filePath = path.join(extractDir, file);
377
- if (!(yield fs.pathExists(filePath))) {
378
- missingFiles.push(file);
379
- }
380
- }
381
- if (missingFiles.length > 0) {
382
- log.warn(`⚠️ 模板解压不完整,缺失文件: ${missingFiles.join(', ')}`);
383
- log.info('💡 建议重新下载模板或检查网络连接');
384
- if (templateType === 'miniprogram' && missingFiles.some((f) => f.includes('pages/'))) {
385
- log.warn('⚠️ 小程序 pages 文件夹缺失,可能影响项目正常运行');
386
- log.info('💡 请重新运行 tcb ai 并选择下载 miniprogram 模板');
387
- }
388
- }
389
- else {
390
- log.info('✅ 模板完整性校验通过,所有必要文件已解压');
391
- }
392
- });
393
- }
394
362
  getInstallCommand(agent) {
395
363
  switch (agent) {
396
364
  case 'claude':
@@ -454,6 +422,9 @@ class AICommandRouter {
454
422
  log.info('💡 可能是参数错误或配置问题');
455
423
  log.info('🔧 请检查 API 密钥、模型名称等配置是否正确');
456
424
  }
425
+ if (command === 'ccr') {
426
+ log.info(`🔧 请前往 ${const_1.CLAUDE_CODE_ROUTER_LOG_PATH} 查看日志`);
427
+ }
457
428
  reject(new Error(errorMsg));
458
429
  }
459
430
  });
@@ -597,7 +568,7 @@ class AICommandRouter {
597
568
  while (current < max) {
598
569
  current++;
599
570
  if (current > max) {
600
- throw new Error('ccr 重启完成失败');
571
+ throw new Error(`ccr 重启完成失败,可前往 ${const_1.CLAUDE_CODE_ROUTER_LOG_PATH} 查看日志`);
601
572
  }
602
573
  log.info(`${current}/${max}等待 ccr 重启完成...`);
603
574
  const isRunning = yield this.isClaudeCodeRouterRunning();
@@ -708,7 +679,8 @@ class AICommandRouter {
708
679
  config.Router === null) {
709
680
  config.Router = {};
710
681
  }
711
- config.Router.default = 'cloudbase,deepseek-v3';
682
+ config.Router.default = `cloudbase,${model}`;
683
+ config.Log = true;
712
684
  yield fs.writeJson(const_1.CLAUDE_CODE_ROUTER_CONFIG_PATH, config, { spaces: 2 });
713
685
  log.debug('✅ claude-code-router 配置完成');
714
686
  }
@@ -124,7 +124,8 @@ class AISetupWizard {
124
124
  {
125
125
  type: 'confirm',
126
126
  name: 'shouldUpdateEnvId',
127
- message: `当前使用的 envId 为 ${configEnvId},是否需要更新?`
127
+ message: `当前使用的 envId 为 ${configEnvId},是否需要更新?`,
128
+ default: false
128
129
  }
129
130
  ]);
130
131
  if (shouldUpdateEnvId) {
@@ -493,7 +494,7 @@ class AISetupWizard {
493
494
  name: 'selectedProvider',
494
495
  message: '选择大模型供应商:',
495
496
  choices: const_1.CLOUDBASE_PROVIDERS.map(p => ({ name: p.name, value: p.value })),
496
- default: 'deepseek'
497
+ default: 'kimi-exp'
497
498
  }
498
499
  ]);
499
500
  if (selectedProvider === 'custom') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/cli",
3
- "version": "2.8.0-beta.7",
3
+ "version": "2.8.0-beta.8",
4
4
  "description": "cli tool for cloudbase",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -39,7 +39,7 @@
39
39
  "@cloudbase/iac-core": "0.0.3-alpha.11",
40
40
  "@cloudbase/lowcode-cli": "^0.22.2",
41
41
  "@cloudbase/manager-node": "4.3.3",
42
- "@cloudbase/toolbox": "^0.7.5",
42
+ "@cloudbase/toolbox": "^0.7.7",
43
43
  "@dotenvx/dotenvx": "^1.48.3",
44
44
  "address": "^1.1.2",
45
45
  "camelcase-keys": "^7.0.2",
@@ -2,6 +2,7 @@ import z from 'zod/v3';
2
2
  export declare const CONFIG_PATH: string;
3
3
  export declare const ENV_LOCAL_PATH: string;
4
4
  export declare const CLAUDE_CODE_ROUTER_CONFIG_PATH: string;
5
+ export declare const CLAUDE_CODE_ROUTER_LOG_PATH: string;
5
6
  export declare const CLOUDBASE_MCP_CONFIG_PATH: string;
6
7
  export declare const DEFAULT_CONFIG = "{\n \"envId\": \"{{env.ENV_ID}}\"\n}";
7
8
  export declare const CLAUDE: {
@@ -299,15 +300,15 @@ export declare const AGENTS: readonly [{
299
300
  value: string;
300
301
  }];
301
302
  export declare const CLOUDBASE_PROVIDERS: readonly [{
303
+ readonly name: "Kimi";
304
+ readonly value: "kimi-exp";
305
+ readonly models: readonly ["kimi-k2-instruct-local"];
306
+ readonly transformer: any;
307
+ }, {
302
308
  readonly name: "DeepSeek";
303
309
  readonly value: "deepseek";
304
310
  readonly models: readonly ["deepseek-v3"];
305
311
  readonly transformer: "deepseek";
306
- }, {
307
- readonly name: "Kimi";
308
- readonly value: "kimi";
309
- readonly models: readonly ["Kimi-K2-Instruct-Online-128K"];
310
- readonly transformer: any;
311
312
  }, {
312
313
  readonly name: "自定义";
313
314
  readonly value: "custom";
@@ -13,7 +13,6 @@ export declare class AICommandRouter {
13
13
  private promptForTemplateDownload;
14
14
  private downloadTemplate;
15
15
  private downloadAndExtractTemplate;
16
- private validateTemplateIntegrity;
17
16
  private getInstallCommand;
18
17
  private shouldCheckOverwrite;
19
18
  private executeCommand;