jinzd-ai-cli 0.4.198 → 0.4.200

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.
Files changed (26) hide show
  1. package/dist/{batch-UPAJJM4S.js → batch-5N4CXARG.js} +2 -2
  2. package/dist/{chunk-JNTNFMUI.js → chunk-2G62CKDL.js} +1 -1
  3. package/dist/{chunk-FTEBOWES.js → chunk-5SA7IACI.js} +2 -2
  4. package/dist/{chunk-YZH2QQXJ.js → chunk-5UR6ZOF4.js} +8 -4
  5. package/dist/{chunk-BJFKN43R.js → chunk-CITDVXXM.js} +1 -1
  6. package/dist/{chunk-FEW6C44P.js → chunk-E44DTERW.js} +2 -0
  7. package/dist/{chunk-JXBI4A26.js → chunk-FQF6YJ6F.js} +4 -4
  8. package/dist/{chunk-VVDR6J33.js → chunk-HUTS2F6Y.js} +1 -1
  9. package/dist/{chunk-BNYDNBQ6.js → chunk-IDMCBIYZ.js} +1 -1
  10. package/dist/{chunk-TJDPET3O.js → chunk-JP6ESDV7.js} +16 -6
  11. package/dist/{chunk-WVOKCJ22.js → chunk-JZCXULOJ.js} +1 -1
  12. package/dist/{chunk-V774Y7YA.js → chunk-NULOZSFA.js} +1 -1
  13. package/dist/{chunk-X666WBI7.js → chunk-TBGVHRCL.js} +1 -1
  14. package/dist/{ci-ULLX35AU.js → ci-2ZSBYWJE.js} +4 -4
  15. package/dist/{constants-S3KQY5XK.js → constants-GMPGZM4D.js} +1 -1
  16. package/dist/{doctor-cli-S5G4BHHP.js → doctor-cli-PG52ECBH.js} +6 -6
  17. package/dist/electron-server.js +27 -11
  18. package/dist/{hub-OV5B5ISN.js → hub-AI4ICH5E.js} +1 -1
  19. package/dist/index.js +28 -29
  20. package/dist/{run-tests-JBP4FQYG.js → run-tests-G2MCAQJL.js} +1 -1
  21. package/dist/{run-tests-JGCDJRGT.js → run-tests-NUWLWMHZ.js} +2 -2
  22. package/dist/{server-JPDJTIPS.js → server-74PZ2PDM.js} +5 -5
  23. package/dist/{server-FLEM3PSQ.js → server-Y3XEAXTC.js} +10 -10
  24. package/dist/{task-orchestrator-BSJQDYPN.js → task-orchestrator-IF3XCVZ7.js} +5 -5
  25. package/dist/{usage-SUWIYMAI.js → usage-7BAT3772.js} +4 -4
  26. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigManager
4
- } from "./chunk-V774Y7YA.js";
4
+ } from "./chunk-NULOZSFA.js";
5
5
  import "./chunk-TZQHYZKT.js";
6
- import "./chunk-BNYDNBQ6.js";
6
+ import "./chunk-IDMCBIYZ.js";
7
7
  import {
8
8
  atomicWriteFileSync
9
9
  } from "./chunk-IW3Q7AE5.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CONFIG_DIR_NAME,
4
4
  VERSION
5
- } from "./chunk-BNYDNBQ6.js";
5
+ } from "./chunk-IDMCBIYZ.js";
6
6
 
7
7
  // src/diagnostics/crash-log.ts
8
8
  import {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  truncateForPersist
4
- } from "./chunk-JXBI4A26.js";
4
+ } from "./chunk-FQF6YJ6F.js";
5
5
  import {
6
6
  APP_NAME,
7
7
  CONFIG_DIR_NAME,
@@ -11,7 +11,7 @@ import {
11
11
  MCP_PROTOCOL_VERSION,
12
12
  MCP_TOOL_PREFIX,
13
13
  VERSION
14
- } from "./chunk-BNYDNBQ6.js";
14
+ } from "./chunk-IDMCBIYZ.js";
15
15
 
16
16
  // src/mcp/client.ts
17
17
  import { spawn } from "child_process";
@@ -83,10 +83,14 @@ var HALLUCINATION_PATTERNS = [
83
83
  // 已成功保存 / 已成功写入 / 已成功创建
84
84
  /保存[到至]了?\s*[`'"]/,
85
85
  // 保存到了 `path` / 保存至 'path'
86
- /内容如下[::]/,
87
- // 内容如下:(后跟大段文件内容)
88
- /以下是.*(?:教案|文件|内容)[::]/
89
- // 以下是xx教案内容:(Kimi 常见模式)
86
+ // 「教案/文件…内容如下:」后跟正文 dump。要求紧邻一个**文档类名词**——否则
87
+ // “这张图片的内容如下:”这类纯描述会被误判成虚假写入声明,在加载了写文件工具的
88
+ // 普通对话/视觉问答里白触发一轮重试(v0.4.200 实战:GLM-5V-Turbo 描述图片时命中
89
+ // `内容如下:`)。文档名词覆盖本应用实际生成的产物(教案/试卷/讲义…)。
90
+ /(?:文件|教案|试卷|讲义|课件|课程|文档|脚本|配置|程序|报告|表格|清单|笔记)[^\n。.!!??]{0,8}内容如下[::]/,
91
+ // 以下是xx教案[内容]:(Kimi 常见 dump 模式)。同样要求文档类名词,排除
92
+ // “以下是图片的内容:”“以下是修改后的内容:”这类描述/对话。
93
+ /以下是[^\n。.!!??]*?(?:教案|试卷|讲义|课件|课程|文件|文档|脚本|配置|程序|报告|表格|清单)[^\n。.!!??]{0,8}(?:内容)?[::]/
90
94
  ];
91
95
  function detectsHallucinatedFileOp(content) {
92
96
  return HALLUCINATION_PATTERNS.some((pattern) => pattern.test(content));
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  computeCost,
4
4
  formatCost
5
- } from "./chunk-FEW6C44P.js";
5
+ } from "./chunk-E44DTERW.js";
6
6
  import {
7
7
  atomicWriteFileSync
8
8
  } from "./chunk-IW3Q7AE5.js";
@@ -61,6 +61,8 @@ var PRICING_TABLE = {
61
61
  "glm-5": { input: 0.85, output: 2.85 },
62
62
  // GLM-5.2(2026-06)官方直连 API 定价 $1.40 / $4.40。
63
63
  "glm-5.2": { input: 1.4, output: 4.4 },
64
+ // GLM-5V-Turbo(2026-04 视觉编程旗舰)官方直连 API 定价 $1.20 / $4.00。
65
+ "glm-5v-turbo": { input: 1.2, output: 4 },
64
66
  "glm-5.1": { input: 0.95, output: 3.15 },
65
67
  "glm-5.1-reasoning": { input: 1.4, output: 4.4 },
66
68
  "glm-5.1-air": { input: 0.4, output: 1.2 },
@@ -5,15 +5,15 @@ import {
5
5
  } from "./chunk-T2NL5ZIA.js";
6
6
  import {
7
7
  runTestsTool
8
- } from "./chunk-VVDR6J33.js";
8
+ } from "./chunk-HUTS2F6Y.js";
9
9
  import {
10
10
  runTool
11
- } from "./chunk-WVOKCJ22.js";
11
+ } from "./chunk-JZCXULOJ.js";
12
12
  import {
13
13
  getDangerLevel,
14
14
  isFileWriteTool,
15
15
  runLeanAgentLoop
16
- } from "./chunk-YZH2QQXJ.js";
16
+ } from "./chunk-5UR6ZOF4.js";
17
17
  import {
18
18
  EnvLoader,
19
19
  NetworkError,
@@ -26,7 +26,7 @@ import {
26
26
  SUBAGENT_ALLOWED_TOOLS,
27
27
  SUBAGENT_DEFAULT_MAX_ROUNDS,
28
28
  SUBAGENT_MAX_ROUNDS_LIMIT
29
- } from "./chunk-BNYDNBQ6.js";
29
+ } from "./chunk-IDMCBIYZ.js";
30
30
  import {
31
31
  fileCheckpoints
32
32
  } from "./chunk-4BKXL7SM.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-BNYDNBQ6.js";
4
+ } from "./chunk-IDMCBIYZ.js";
5
5
 
6
6
  // src/tools/builtin/run-tests.ts
7
7
  import { execSync, spawnSync } from "child_process";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.198";
4
+ var VERSION = "0.4.200";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -3,7 +3,7 @@ import {
3
3
  detectsHallucinatedFileOp,
4
4
  repairToolCallArguments,
5
5
  schemaToJsonSchema
6
- } from "./chunk-YZH2QQXJ.js";
6
+ } from "./chunk-5UR6ZOF4.js";
7
7
  import {
8
8
  AuthError,
9
9
  ProviderError,
@@ -1492,16 +1492,26 @@ var ZhipuProvider = class extends OpenAICompatibleProvider {
1492
1492
  // ── GLM-5.2 系列(2026-06 最新旗舰,主打代码工程) ──
1493
1493
  // 744B MoE / 40B active,与 5.1 同底座,后训练强化超长上下文代码任务。
1494
1494
  // 思考模式 High/Max 由请求参数控制,不另列 model id。
1495
- // 注:1M 上下文变体 `glm-5.2[1m]` 仅在 GLM Coding Plan 的 Anthropic 兼容端点可用,
1496
- // provider 走 OpenAI 兼容的 paas/v4 端点,该端点 `glm-5.2[1m]` 会返回
1497
- // 「模型不存在」,故不收录;标准 `glm-5.2` 上下文按 5.1 同口径 200K。
1495
+ // 上下文:标准 `glm-5.2` paas/v4 上原生即 1M(open.bigmodel.cn/pricing 定价页
1496
+ // 实测口径 1M,¥8/¥28)。曾被移除的 `glm-5.2[1m]` 是 *带后缀的 model code*——那个
1497
+ // code 只在 GLM Coding Plan 的 Anthropic 兼容端点存在,paas/v4 不认会报「模型不存在」;
1498
+ // 1M 能力本身在标准 code 上就有,无需后缀。
1498
1499
  {
1499
1500
  id: "glm-5.2",
1500
- displayName: "GLM-5.2 (2026-06 Flagship, 200K, Coding)",
1501
- contextWindow: 204800,
1501
+ displayName: "GLM-5.2 (2026-06 Flagship, 1M, Coding)",
1502
+ contextWindow: 1048576,
1502
1503
  supportsStreaming: true,
1503
1504
  supportsThinking: true
1504
1505
  },
1506
+ // 视觉编程旗舰:原生多模态(图片 / 短视频 / 文本同上下文)。API model code = `glm-5v-turbo`
1507
+ // (Z.ai 官方文档代码示例确认)。REPL 用 `@./pic.png` 引用本地图即可走 vision 请求;
1508
+ // getVisionModelHint 已识别 `5v` 不拦截。
1509
+ {
1510
+ id: "glm-5v-turbo",
1511
+ displayName: "GLM-5V-Turbo (Multimodal Vision + Coding)",
1512
+ contextWindow: 202752,
1513
+ supportsStreaming: true
1514
+ },
1505
1515
  // ── GLM-5.1 系列(2026-04 旗舰,主打长程 Agent + 代码工程) ──
1506
1516
  {
1507
1517
  id: "glm-5.1",
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CONFIG_DIR_NAME
4
- } from "./chunk-BNYDNBQ6.js";
4
+ } from "./chunk-IDMCBIYZ.js";
5
5
  import {
6
6
  atomicWriteFileSync
7
7
  } from "./chunk-IW3Q7AE5.js";
@@ -8,7 +8,7 @@ import {
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-BNYDNBQ6.js";
11
+ } from "./chunk-IDMCBIYZ.js";
12
12
 
13
13
  // src/config/config-manager.ts
14
14
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
@@ -6,7 +6,7 @@ import { platform } from "os";
6
6
  import chalk from "chalk";
7
7
 
8
8
  // src/core/constants.ts
9
- var VERSION = "0.4.198";
9
+ var VERSION = "0.4.200";
10
10
  var APP_NAME = "ai-cli";
11
11
  var CONFIG_DIR_NAME = ".aicli";
12
12
  var CONFIG_FILE_NAME = "config.json";
@@ -6,15 +6,15 @@ import {
6
6
  } from "./chunk-HLWUDRBO.js";
7
7
  import {
8
8
  ProviderRegistry
9
- } from "./chunk-TJDPET3O.js";
10
- import "./chunk-YZH2QQXJ.js";
9
+ } from "./chunk-JP6ESDV7.js";
10
+ import "./chunk-5UR6ZOF4.js";
11
11
  import {
12
12
  ConfigManager
13
- } from "./chunk-V774Y7YA.js";
13
+ } from "./chunk-NULOZSFA.js";
14
14
  import "./chunk-TZQHYZKT.js";
15
15
  import {
16
16
  VERSION
17
- } from "./chunk-BNYDNBQ6.js";
17
+ } from "./chunk-IDMCBIYZ.js";
18
18
 
19
19
  // src/cli/ci.ts
20
20
  import { execFileSync, execSync } from "child_process";
@@ -36,7 +36,7 @@ import {
36
36
  TEST_TIMEOUT,
37
37
  VERSION,
38
38
  buildUserIdentityPrompt
39
- } from "./chunk-BNYDNBQ6.js";
39
+ } from "./chunk-IDMCBIYZ.js";
40
40
  export {
41
41
  AGENTIC_BEHAVIOR_GUIDELINE,
42
42
  APP_NAME,
@@ -2,26 +2,26 @@
2
2
  import {
3
3
  getConfigDirUsage,
4
4
  listRecentCrashes
5
- } from "./chunk-JNTNFMUI.js";
5
+ } from "./chunk-2G62CKDL.js";
6
6
  import {
7
7
  ProviderRegistry
8
- } from "./chunk-TJDPET3O.js";
8
+ } from "./chunk-JP6ESDV7.js";
9
9
  import {
10
10
  getStatsSnapshot,
11
11
  getTopFailingTools,
12
12
  getTopUsedTools,
13
13
  resetStats
14
- } from "./chunk-WVOKCJ22.js";
15
- import "./chunk-YZH2QQXJ.js";
14
+ } from "./chunk-JZCXULOJ.js";
15
+ import "./chunk-5UR6ZOF4.js";
16
16
  import {
17
17
  ConfigManager
18
- } from "./chunk-V774Y7YA.js";
18
+ } from "./chunk-NULOZSFA.js";
19
19
  import "./chunk-TZQHYZKT.js";
20
20
  import {
21
21
  DEV_STATE_FILE_NAME,
22
22
  MEMORY_FILE_NAME,
23
23
  VERSION
24
- } from "./chunk-BNYDNBQ6.js";
24
+ } from "./chunk-IDMCBIYZ.js";
25
25
  import "./chunk-IW3Q7AE5.js";
26
26
 
27
27
  // src/diagnostics/doctor-cli.ts
@@ -36,7 +36,7 @@ import {
36
36
  VERSION,
37
37
  buildUserIdentityPrompt,
38
38
  runTestsTool
39
- } from "./chunk-X666WBI7.js";
39
+ } from "./chunk-TBGVHRCL.js";
40
40
  import {
41
41
  hasSemanticIndex,
42
42
  semanticSearch
@@ -1591,10 +1591,14 @@ var HALLUCINATION_PATTERNS = [
1591
1591
  // 已成功保存 / 已成功写入 / 已成功创建
1592
1592
  /保存[到至]了?\s*[`'"]/,
1593
1593
  // 保存到了 `path` / 保存至 'path'
1594
- /内容如下[::]/,
1595
- // 内容如下:(后跟大段文件内容)
1596
- /以下是.*(?:教案|文件|内容)[::]/
1597
- // 以下是xx教案内容:(Kimi 常见模式)
1594
+ // 「教案/文件…内容如下:」后跟正文 dump。要求紧邻一个**文档类名词**——否则
1595
+ // “这张图片的内容如下:”这类纯描述会被误判成虚假写入声明,在加载了写文件工具的
1596
+ // 普通对话/视觉问答里白触发一轮重试(v0.4.200 实战:GLM-5V-Turbo 描述图片时命中
1597
+ // `内容如下:`)。文档名词覆盖本应用实际生成的产物(教案/试卷/讲义…)。
1598
+ /(?:文件|教案|试卷|讲义|课件|课程|文档|脚本|配置|程序|报告|表格|清单|笔记)[^\n。.!!??]{0,8}内容如下[::]/,
1599
+ // 以下是xx教案[内容]:(Kimi 常见 dump 模式)。同样要求文档类名词,排除
1600
+ // “以下是图片的内容:”“以下是修改后的内容:”这类描述/对话。
1601
+ /以下是[^\n。.!!??]*?(?:教案|试卷|讲义|课件|课程|文件|文档|脚本|配置|程序|报告|表格|清单)[^\n。.!!??]{0,8}(?:内容)?[::]/
1598
1602
  ];
1599
1603
  function detectsHallucinatedFileOp(content) {
1600
1604
  return HALLUCINATION_PATTERNS.some((pattern) => pattern.test(content));
@@ -3126,16 +3130,26 @@ var ZhipuProvider = class extends OpenAICompatibleProvider {
3126
3130
  // ── GLM-5.2 系列(2026-06 最新旗舰,主打代码工程) ──
3127
3131
  // 744B MoE / 40B active,与 5.1 同底座,后训练强化超长上下文代码任务。
3128
3132
  // 思考模式 High/Max 由请求参数控制,不另列 model id。
3129
- // 注:1M 上下文变体 `glm-5.2[1m]` 仅在 GLM Coding Plan 的 Anthropic 兼容端点可用,
3130
- // provider 走 OpenAI 兼容的 paas/v4 端点,该端点 `glm-5.2[1m]` 会返回
3131
- // 「模型不存在」,故不收录;标准 `glm-5.2` 上下文按 5.1 同口径 200K。
3133
+ // 上下文:标准 `glm-5.2` paas/v4 上原生即 1M(open.bigmodel.cn/pricing 定价页
3134
+ // 实测口径 1M,¥8/¥28)。曾被移除的 `glm-5.2[1m]` 是 *带后缀的 model code*——那个
3135
+ // code 只在 GLM Coding Plan 的 Anthropic 兼容端点存在,paas/v4 不认会报「模型不存在」;
3136
+ // 1M 能力本身在标准 code 上就有,无需后缀。
3132
3137
  {
3133
3138
  id: "glm-5.2",
3134
- displayName: "GLM-5.2 (2026-06 Flagship, 200K, Coding)",
3135
- contextWindow: 204800,
3139
+ displayName: "GLM-5.2 (2026-06 Flagship, 1M, Coding)",
3140
+ contextWindow: 1048576,
3136
3141
  supportsStreaming: true,
3137
3142
  supportsThinking: true
3138
3143
  },
3144
+ // 视觉编程旗舰:原生多模态(图片 / 短视频 / 文本同上下文)。API model code = `glm-5v-turbo`
3145
+ // (Z.ai 官方文档代码示例确认)。REPL 用 `@./pic.png` 引用本地图即可走 vision 请求;
3146
+ // getVisionModelHint 已识别 `5v` 不拦截。
3147
+ {
3148
+ id: "glm-5v-turbo",
3149
+ displayName: "GLM-5V-Turbo (Multimodal Vision + Coding)",
3150
+ contextWindow: 202752,
3151
+ supportsStreaming: true
3152
+ },
3139
3153
  // ── GLM-5.1 系列(2026-04 旗舰,主打长程 Agent + 代码工程) ──
3140
3154
  {
3141
3155
  id: "glm-5.1",
@@ -11459,6 +11473,8 @@ var PRICING_TABLE = {
11459
11473
  "glm-5": { input: 0.85, output: 2.85 },
11460
11474
  // GLM-5.2(2026-06)官方直连 API 定价 $1.40 / $4.40。
11461
11475
  "glm-5.2": { input: 1.4, output: 4.4 },
11476
+ // GLM-5V-Turbo(2026-04 视觉编程旗舰)官方直连 API 定价 $1.20 / $4.00。
11477
+ "glm-5v-turbo": { input: 1.2, output: 4 },
11462
11478
  "glm-5.1": { input: 0.95, output: 3.15 },
11463
11479
  "glm-5.1-reasoning": { input: 1.4, output: 4.4 },
11464
11480
  "glm-5.1-air": { input: 0.4, output: 1.2 },
@@ -14235,7 +14251,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
14235
14251
  case "test": {
14236
14252
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
14237
14253
  try {
14238
- const { executeTests } = await import("./run-tests-JBP4FQYG.js");
14254
+ const { executeTests } = await import("./run-tests-G2MCAQJL.js");
14239
14255
  const argStr = args.join(" ").trim();
14240
14256
  let testArgs = {};
14241
14257
  if (argStr) {
@@ -154,7 +154,7 @@ ${content}`);
154
154
  }
155
155
  }
156
156
  async function runTaskMode(config, providers, configManager, topic) {
157
- const { TaskOrchestrator } = await import("./task-orchestrator-BSJQDYPN.js");
157
+ const { TaskOrchestrator } = await import("./task-orchestrator-IF3XCVZ7.js");
158
158
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
159
159
  let interrupted = false;
160
160
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  saveDevState,
16
16
  sessionHasMeaningfulContent,
17
17
  setupProxy
18
- } from "./chunk-FTEBOWES.js";
18
+ } from "./chunk-5SA7IACI.js";
19
19
  import {
20
20
  ToolExecutor,
21
21
  ToolRegistry,
@@ -35,36 +35,36 @@ import {
35
35
  spawnAgentContext,
36
36
  theme,
37
37
  undoStack
38
- } from "./chunk-JXBI4A26.js";
38
+ } from "./chunk-FQF6YJ6F.js";
39
39
  import "./chunk-T2NL5ZIA.js";
40
40
  import "./chunk-BXP6YZ2P.js";
41
- import "./chunk-VVDR6J33.js";
41
+ import "./chunk-HUTS2F6Y.js";
42
42
  import {
43
43
  SessionManager,
44
44
  getContentText
45
45
  } from "./chunk-MC34ISJU.js";
46
46
  import {
47
47
  CostTracker
48
- } from "./chunk-BJFKN43R.js";
48
+ } from "./chunk-CITDVXXM.js";
49
49
  import {
50
50
  computeCost,
51
51
  formatCost,
52
52
  getPricing
53
- } from "./chunk-FEW6C44P.js";
53
+ } from "./chunk-E44DTERW.js";
54
54
  import {
55
55
  getConfigDirUsage,
56
56
  listRecentCrashes,
57
57
  writeCrashLog
58
- } from "./chunk-JNTNFMUI.js";
58
+ } from "./chunk-2G62CKDL.js";
59
59
  import {
60
60
  ProviderRegistry
61
- } from "./chunk-TJDPET3O.js";
61
+ } from "./chunk-JP6ESDV7.js";
62
62
  import {
63
63
  getStatsSnapshot,
64
64
  getTopFailingTools,
65
65
  getTopUsedTools,
66
66
  installFlushOnExit
67
- } from "./chunk-WVOKCJ22.js";
67
+ } from "./chunk-JZCXULOJ.js";
68
68
  import {
69
69
  CONTENT_ONLY_STREAM_REMINDER,
70
70
  TEE_FINAL_USER_NUDGE,
@@ -82,10 +82,10 @@ import {
82
82
  runAgentLoop,
83
83
  stripToolCallReminder,
84
84
  teeStreamErrorSummary
85
- } from "./chunk-YZH2QQXJ.js";
85
+ } from "./chunk-5UR6ZOF4.js";
86
86
  import {
87
87
  ConfigManager
88
- } from "./chunk-V774Y7YA.js";
88
+ } from "./chunk-NULOZSFA.js";
89
89
  import {
90
90
  AuthError,
91
91
  ProviderError,
@@ -112,7 +112,7 @@ import {
112
112
  SKILLS_DIR_NAME,
113
113
  VERSION,
114
114
  buildUserIdentityPrompt
115
- } from "./chunk-BNYDNBQ6.js";
115
+ } from "./chunk-IDMCBIYZ.js";
116
116
  import {
117
117
  formatGitContextForPrompt,
118
118
  getGitContext,
@@ -1827,7 +1827,7 @@ No tools match "${filter}".
1827
1827
  const { join: join5 } = await import("path");
1828
1828
  const { existsSync: existsSync5 } = await import("fs");
1829
1829
  const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
1830
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-S3KQY5XK.js");
1830
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-GMPGZM4D.js");
1831
1831
  const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
1832
1832
  const cwd = process.cwd();
1833
1833
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -2888,7 +2888,7 @@ ${hint}` : "")
2888
2888
  usage: "/test [command|filter]",
2889
2889
  async execute(args, ctx) {
2890
2890
  try {
2891
- const { executeTests } = await import("./run-tests-JGCDJRGT.js");
2891
+ const { executeTests } = await import("./run-tests-NUWLWMHZ.js");
2892
2892
  const argStr = args.join(" ").trim();
2893
2893
  let testArgs = {};
2894
2894
  if (argStr) {
@@ -5812,7 +5812,8 @@ Session '${this.resumeSessionId}' not found.
5812
5812
  const provider = this.currentProvider;
5813
5813
  if (provider === "claude") return null;
5814
5814
  if (provider === "gemini") return null;
5815
- if (model.includes("vision") || model.includes("vl") || model.endsWith(".6v") || // glm-4.6v
5815
+ if (model.includes("vision") || model.includes("vl") || model.includes("5v") || // glm-5v-turbo(智谱视觉编程旗舰)
5816
+ model.endsWith(".6v") || // glm-4.6v
5816
5817
  model.endsWith("-v")) return null;
5817
5818
  if (provider === "kimi") {
5818
5819
  if (model.startsWith("moonshot-v1-")) {
@@ -6321,14 +6322,12 @@ Session '${this.resumeSessionId}' not found.
6321
6322
  stopSpinner();
6322
6323
  process.stdout.write(visible);
6323
6324
  },
6324
- onThinkingStart: () => {
6325
- stopSpinner();
6326
- process.stdout.write(theme.dim("<think>"));
6327
- },
6328
- // thinking_delta 内容折叠,不显示详情(与现有行为一致)
6329
- onThinkingEnd: () => {
6330
- process.stdout.write(theme.dim("</think>"));
6331
- },
6325
+ // think 块彻底静默折叠(东叔偏好,v0.4.169):thinking_start/end 不打印任何
6326
+ // 标记。此前这两个钩子写 dim('<think>')/dim('</think>'),当 provider 经 thinking_*
6327
+ // 事件传 reasoning(delta 已折叠)时,终端就漏出空壳 `<think></think>`——thinking
6328
+ // 模型(GLM-5.2 / GLM-5V-Turbo / DeepSeek thinking…)一律中招,且与 renderStream
6329
+ // 路径(ThinkTagFilter 静默吞)不一致(v0.4.200)。spinner 不在此停,思考期间继续
6330
+ // 转动作活动反馈,首个可见 content / 工具调用到达时由 onText / onToolCallStart 停。
6332
6331
  onToolCallStart: (_index, _id, name) => {
6333
6332
  stopSpinner();
6334
6333
  process.stdout.write(
@@ -7266,7 +7265,7 @@ program.command("web").description("Start Web UI server with browser-based chat
7266
7265
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
7267
7266
  process.exit(1);
7268
7267
  }
7269
- const { startWebServer } = await import("./server-FLEM3PSQ.js");
7268
+ const { startWebServer } = await import("./server-Y3XEAXTC.js");
7270
7269
  await startWebServer({ port, host: options.host });
7271
7270
  });
7272
7271
  program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | logout-all <name> | migrate <name>)").action(async (action, username) => {
@@ -7433,16 +7432,16 @@ program.command("sessions").description("List recent conversation sessions").opt
7433
7432
  console.log(footer + "\n");
7434
7433
  });
7435
7434
  program.command("usage").description("Show token + cost usage grouped by provider/model (cross-session)").option("--days <n>", "Only the last N days (inclusive of today)").option("--month <ym>", "Only a specific month, format YYYY-MM (e.g. 2026-06)").option("--json", "Output as JSON (for scripting)").action(async (options) => {
7436
- const { runUsageCli } = await import("./usage-SUWIYMAI.js");
7435
+ const { runUsageCli } = await import("./usage-7BAT3772.js");
7437
7436
  await runUsageCli(options);
7438
7437
  });
7439
7438
  program.command("doctor").description("Health check: API keys, config, MCP, recent crashes, tool usage, disk usage").option("--json", "Output as JSON (for scripting)").option("--reset-stats", "Reset accumulated tool usage statistics").action(async (options) => {
7440
- const { runDoctorCli } = await import("./doctor-cli-S5G4BHHP.js");
7439
+ const { runDoctorCli } = await import("./doctor-cli-PG52ECBH.js");
7441
7440
  await runDoctorCli({ json: !!options.json, resetStats: !!options.resetStats });
7442
7441
  });
7443
7442
  program.command("batch <action> [arg] [arg2]").description("Anthropic Message Batches: submit | list | status <id> | results <id> [out] | cancel <id>").option("--dry-run", "Parse and validate input without submitting (submit only)").action(async (action, arg, arg2, options) => {
7444
7443
  try {
7445
- const batch = await import("./batch-UPAJJM4S.js");
7444
+ const batch = await import("./batch-5N4CXARG.js");
7446
7445
  switch (action) {
7447
7446
  case "submit":
7448
7447
  if (!arg) {
@@ -7485,7 +7484,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
7485
7484
  }
7486
7485
  });
7487
7486
  program.command("mcp-serve").description("Start an MCP server over STDIO, exposing aicli's built-in tools to Claude Desktop / Cursor / other MCP clients").option("--allow-destructive", "Allow bash / run_interactive / task_create (always destructive in MCP mode)").option("--allow-outside-cwd", "Allow tool path arguments to escape the sandbox root \u2014 disabled by default").option("--tools <list>", "Comma-separated whitelist of tools to expose (default: all eligible tools)").option("--cwd <path>", "Working directory AND sandbox root (default: current directory)").action(async (options) => {
7488
- const { startMcpServer } = await import("./server-JPDJTIPS.js");
7487
+ const { startMcpServer } = await import("./server-74PZ2PDM.js");
7489
7488
  await startMcpServer({
7490
7489
  allowDestructive: !!options.allowDestructive,
7491
7490
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7494,7 +7493,7 @@ program.command("mcp-serve").description("Start an MCP server over STDIO, exposi
7494
7493
  });
7495
7494
  });
7496
7495
  program.command("ci").description("Headless PR review (code + security) \u2014 reads git/gh diff, optionally posts to PR. Designed for GitHub Actions.").option("--pr <num>", "PR number; diff fetched via `gh pr diff <num>`", (v) => parseInt(v, 10)).option("--base <ref>", "Base ref for `git diff <ref>...HEAD` (ignored when --pr set)").option("--post", "Post review as a PR comment (requires gh CLI + GH_TOKEN, needs --pr)").option("--no-update", "Always create a new comment instead of updating the previous aicli review").option("--skip-code", "Skip the code review section").option("--skip-security", "Skip the security review section").option("--detailed", "Use the detailed code-review prompt").option("--max-diff <n>", "Max diff chars sent to the model (default 30000)", (v) => parseInt(v, 10)).option("--provider <id>", "Override provider (default: config.defaultProvider)").option("--model <id>", "Override model").option("--dry-run", "Print result to stdout instead of posting (overrides --post)").action(async (options) => {
7497
- const { runCi } = await import("./ci-ULLX35AU.js");
7496
+ const { runCi } = await import("./ci-2ZSBYWJE.js");
7498
7497
  const result = await runCi({
7499
7498
  pr: options.pr,
7500
7499
  base: options.base,
@@ -7640,7 +7639,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
7640
7639
  }),
7641
7640
  config.get("customProviders")
7642
7641
  );
7643
- const { startHub } = await import("./hub-OV5B5ISN.js");
7642
+ const { startHub } = await import("./hub-AI4ICH5E.js");
7644
7643
  await startHub(
7645
7644
  {
7646
7645
  topic: topic ?? "",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-X666WBI7.js";
4
+ } from "./chunk-TBGVHRCL.js";
5
5
  export {
6
6
  executeTests,
7
7
  runTestsTool
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-VVDR6J33.js";
6
- import "./chunk-BNYDNBQ6.js";
5
+ } from "./chunk-HUTS2F6Y.js";
6
+ import "./chunk-IDMCBIYZ.js";
7
7
  export {
8
8
  executeTests,
9
9
  runTestsTool
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ToolRegistry
4
- } from "./chunk-JXBI4A26.js";
4
+ } from "./chunk-FQF6YJ6F.js";
5
5
  import "./chunk-T2NL5ZIA.js";
6
6
  import "./chunk-BXP6YZ2P.js";
7
- import "./chunk-VVDR6J33.js";
7
+ import "./chunk-HUTS2F6Y.js";
8
8
  import {
9
9
  runTool
10
- } from "./chunk-WVOKCJ22.js";
10
+ } from "./chunk-JZCXULOJ.js";
11
11
  import {
12
12
  getDangerLevel,
13
13
  schemaToJsonSchema
14
- } from "./chunk-YZH2QQXJ.js";
14
+ } from "./chunk-5UR6ZOF4.js";
15
15
  import "./chunk-TZQHYZKT.js";
16
16
  import {
17
17
  VERSION
18
- } from "./chunk-BNYDNBQ6.js";
18
+ } from "./chunk-IDMCBIYZ.js";
19
19
  import "./chunk-4BKXL7SM.js";
20
20
  import "./chunk-TB4W4Y4T.js";
21
21
  import "./chunk-KHYD3WXE.js";
@@ -19,7 +19,7 @@ import {
19
19
  loadDevState,
20
20
  persistToolRound,
21
21
  setupProxy
22
- } from "./chunk-FTEBOWES.js";
22
+ } from "./chunk-5SA7IACI.js";
23
23
  import {
24
24
  ToolExecutor,
25
25
  ToolRegistry,
@@ -38,10 +38,10 @@ import {
38
38
  spawnAgentContext,
39
39
  truncateOutput,
40
40
  undoStack
41
- } from "./chunk-JXBI4A26.js";
41
+ } from "./chunk-FQF6YJ6F.js";
42
42
  import "./chunk-T2NL5ZIA.js";
43
43
  import "./chunk-BXP6YZ2P.js";
44
- import "./chunk-VVDR6J33.js";
44
+ import "./chunk-HUTS2F6Y.js";
45
45
  import {
46
46
  SessionManager,
47
47
  getContentText
@@ -49,13 +49,13 @@ import {
49
49
  import {
50
50
  computeCost,
51
51
  formatCost
52
- } from "./chunk-FEW6C44P.js";
52
+ } from "./chunk-E44DTERW.js";
53
53
  import {
54
54
  ProviderRegistry
55
- } from "./chunk-TJDPET3O.js";
55
+ } from "./chunk-JP6ESDV7.js";
56
56
  import {
57
57
  runTool
58
- } from "./chunk-WVOKCJ22.js";
58
+ } from "./chunk-JZCXULOJ.js";
59
59
  import {
60
60
  CONTENT_ONLY_STREAM_REMINDER,
61
61
  TEE_FINAL_USER_NUDGE,
@@ -70,10 +70,10 @@ import {
70
70
  runAgentLoop,
71
71
  stripToolCallReminder,
72
72
  teeStreamErrorSummary
73
- } from "./chunk-YZH2QQXJ.js";
73
+ } from "./chunk-5UR6ZOF4.js";
74
74
  import {
75
75
  ConfigManager
76
- } from "./chunk-V774Y7YA.js";
76
+ } from "./chunk-NULOZSFA.js";
77
77
  import "./chunk-TZQHYZKT.js";
78
78
  import {
79
79
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -93,7 +93,7 @@ import {
93
93
  SKILLS_DIR_NAME,
94
94
  VERSION,
95
95
  buildUserIdentityPrompt
96
- } from "./chunk-BNYDNBQ6.js";
96
+ } from "./chunk-IDMCBIYZ.js";
97
97
  import {
98
98
  formatGitContextForPrompt,
99
99
  getGitContext,
@@ -2454,7 +2454,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
2454
2454
  case "test": {
2455
2455
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
2456
2456
  try {
2457
- const { executeTests } = await import("./run-tests-JGCDJRGT.js");
2457
+ const { executeTests } = await import("./run-tests-NUWLWMHZ.js");
2458
2458
  const argStr = args.join(" ").trim();
2459
2459
  let testArgs = {};
2460
2460
  if (argStr) {
@@ -3,21 +3,21 @@ import {
3
3
  ToolRegistry,
4
4
  googleSearchContext,
5
5
  truncateOutput
6
- } from "./chunk-JXBI4A26.js";
6
+ } from "./chunk-FQF6YJ6F.js";
7
7
  import "./chunk-T2NL5ZIA.js";
8
8
  import "./chunk-BXP6YZ2P.js";
9
- import "./chunk-VVDR6J33.js";
9
+ import "./chunk-HUTS2F6Y.js";
10
10
  import {
11
11
  runTool
12
- } from "./chunk-WVOKCJ22.js";
12
+ } from "./chunk-JZCXULOJ.js";
13
13
  import {
14
14
  getDangerLevel,
15
15
  runLeanAgentLoop
16
- } from "./chunk-YZH2QQXJ.js";
16
+ } from "./chunk-5UR6ZOF4.js";
17
17
  import "./chunk-TZQHYZKT.js";
18
18
  import {
19
19
  SUBAGENT_ALLOWED_TOOLS
20
- } from "./chunk-BNYDNBQ6.js";
20
+ } from "./chunk-IDMCBIYZ.js";
21
21
  import "./chunk-4BKXL7SM.js";
22
22
  import "./chunk-TB4W4Y4T.js";
23
23
  import "./chunk-KHYD3WXE.js";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CostTracker
4
- } from "./chunk-BJFKN43R.js";
4
+ } from "./chunk-CITDVXXM.js";
5
5
  import {
6
6
  formatCost,
7
7
  getPricing
8
- } from "./chunk-FEW6C44P.js";
8
+ } from "./chunk-E44DTERW.js";
9
9
  import {
10
10
  ConfigManager
11
- } from "./chunk-V774Y7YA.js";
11
+ } from "./chunk-NULOZSFA.js";
12
12
  import "./chunk-TZQHYZKT.js";
13
- import "./chunk-BNYDNBQ6.js";
13
+ import "./chunk-IDMCBIYZ.js";
14
14
  import "./chunk-IW3Q7AE5.js";
15
15
 
16
16
  // src/cli/usage.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.198",
3
+ "version": "0.4.200",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",