jinzd-ai-cli 0.4.46 → 0.4.47

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.
@@ -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.46";
9
+ var VERSION = "0.4.47";
10
10
  var APP_NAME = "ai-cli";
11
11
  var CONFIG_DIR_NAME = ".aicli";
12
12
  var CONFIG_FILE_NAME = "config.json";
@@ -9,7 +9,7 @@ import {
9
9
  SUBAGENT_DEFAULT_MAX_ROUNDS,
10
10
  SUBAGENT_MAX_ROUNDS_LIMIT,
11
11
  runTestsTool
12
- } from "./chunk-R5XH32QG.js";
12
+ } from "./chunk-VW2RWYKJ.js";
13
13
 
14
14
  // src/tools/builtin/bash.ts
15
15
  import { execSync } from "child_process";
@@ -7,7 +7,7 @@ import {
7
7
  ProviderNotFoundError,
8
8
  RateLimitError,
9
9
  schemaToJsonSchema
10
- } from "./chunk-BSO3S6AN.js";
10
+ } from "./chunk-J7OX5EP3.js";
11
11
  import {
12
12
  APP_NAME,
13
13
  CONFIG_DIR_NAME,
@@ -20,7 +20,7 @@ import {
20
20
  MCP_TOOL_PREFIX,
21
21
  PLUGINS_DIR_NAME,
22
22
  VERSION
23
- } from "./chunk-R5XH32QG.js";
23
+ } from "./chunk-VW2RWYKJ.js";
24
24
 
25
25
  // src/config/config-manager.ts
26
26
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
@@ -1546,33 +1546,23 @@ var ZhipuProvider = class extends OpenAICompatibleProvider {
1546
1546
  // src/tools/hallucination.ts
1547
1547
  var HALLUCINATION_PATTERNS = [
1548
1548
  /文件路径[::]\s*`?[^\s`]+\.\w{1,5}/,
1549
- // 文件路径: `path/to/file.ext`(要求文件扩展名)
1550
- /已生成[::!!]/,
1549
+ // 文件路径: `path/to/file.ext`
1550
+ /已(?:生成|保存|写入|创建)(?:完成|成功)[::!!]/,
1551
1551
  // 已生成完成!
1552
- /已保存到?\s*[`'"]/,
1553
- // 已保存到 `path`(要求后跟路径引号)
1554
- /已写入[::!!]/,
1555
- // 已写入!
1556
- /已创建[::!!]/,
1557
- // 已创建!
1552
+ /已(?:保存|写入|创建)到?\s*[`'"]/,
1553
+ // 已保存到 `path`
1558
1554
  /File\s+(?:written|saved|created)\s+(?:to|as|at)/i,
1559
- // File written to / saved as(要求介词)
1560
1555
  /生成完成[!!]/,
1561
- // 生成完成!
1562
1556
  /✅\s*(?:文件|已[生保写创]|第)\S*\.\w{1,5}/,
1563
- // ✅ 文件已保存 path.ext(要求文件扩展名)
1564
- /文件已[成功]?创建/,
1565
- // 文件已成功创建 / 文件已创建
1566
- /教案已[成功]?[生创保写]/,
1567
- // 教案已成功生成 / 教案已保存
1568
- /已成功[保写创生]入?[::!!\s`'"]/,
1569
- // 已成功保存 / 已成功写入 / 已成功创建
1570
- /保存[到至]了?\s*[`'"]/,
1571
- // 保存到了 `path` / 保存至 'path'
1557
+ // ✅ 文件已保存 path.ext
1558
+ /✅\s*已完成[::]?\s*第?\d+\s*课时/,
1559
+ // 已完成:第133课时
1560
+ /(?:教案|文档|文件|代码)已(?:成功)?(?:编写|制作|生成)?并?(?:保存|写入|创建|完成)/,
1561
+ // 教案已经保存
1562
+ /已(?:成功)?(?:保存|写入|完成)了?第?\d+\s*课时的?(?:教案|文档|内容)/,
1563
+ // 已经保存了第133课时的教案
1572
1564
  /内容如下[::]/,
1573
- // 内容如下:(后跟大段文件内容)
1574
1565
  /以下是.*(?:教案|文件|内容)[::]/
1575
- // 以下是xx教案内容:(Kimi 常见模式)
1576
1566
  ];
1577
1567
  function detectsHallucinatedFileOp(content) {
1578
1568
  return HALLUCINATION_PATTERNS.some((pattern) => pattern.test(content));
@@ -8,7 +8,7 @@ import { platform } from "os";
8
8
  import chalk from "chalk";
9
9
 
10
10
  // src/core/constants.ts
11
- var VERSION = "0.4.46";
11
+ var VERSION = "0.4.47";
12
12
  var APP_NAME = "ai-cli";
13
13
  var CONFIG_DIR_NAME = ".aicli";
14
14
  var CONFIG_FILE_NAME = "config.json";
@@ -385,7 +385,7 @@ ${content}`);
385
385
  }
386
386
  }
387
387
  async function runTaskMode(config, providers, configManager, topic) {
388
- const { TaskOrchestrator } = await import("./task-orchestrator-ZTFNMBTW.js");
388
+ const { TaskOrchestrator } = await import("./task-orchestrator-G4UPAHG5.js");
389
389
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
390
390
  let interrupted = false;
391
391
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ import {
24
24
  saveDevState,
25
25
  sessionHasMeaningfulContent,
26
26
  setupProxy
27
- } from "./chunk-IP7FPI3C.js";
27
+ } from "./chunk-PUMVM572.js";
28
28
  import {
29
29
  ToolExecutor,
30
30
  ToolRegistry,
@@ -37,7 +37,7 @@ import {
37
37
  spawnAgentContext,
38
38
  theme,
39
39
  undoStack
40
- } from "./chunk-BSO3S6AN.js";
40
+ } from "./chunk-J7OX5EP3.js";
41
41
  import {
42
42
  fileCheckpoints
43
43
  } from "./chunk-4BKXL7SM.js";
@@ -61,7 +61,7 @@ import {
61
61
  SKILLS_DIR_NAME,
62
62
  VERSION,
63
63
  buildUserIdentityPrompt
64
- } from "./chunk-R5XH32QG.js";
64
+ } from "./chunk-VW2RWYKJ.js";
65
65
 
66
66
  // src/index.ts
67
67
  import { program } from "commander";
@@ -2099,7 +2099,7 @@ ${hint}` : "")
2099
2099
  usage: "/test [command|filter]",
2100
2100
  async execute(args, ctx) {
2101
2101
  try {
2102
- const { executeTests } = await import("./run-tests-RZTULQ3R.js");
2102
+ const { executeTests } = await import("./run-tests-XEPKLO5H.js");
2103
2103
  const argStr = args.join(" ").trim();
2104
2104
  let testArgs = {};
2105
2105
  if (argStr) {
@@ -5484,7 +5484,7 @@ program.command("web").description("Start Web UI server with browser-based chat
5484
5484
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
5485
5485
  process.exit(1);
5486
5486
  }
5487
- const { startWebServer } = await import("./server-2TZ3ZUVZ.js");
5487
+ const { startWebServer } = await import("./server-TQ4GDHKK.js");
5488
5488
  await startWebServer({ port, host: options.host });
5489
5489
  });
5490
5490
  program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | migrate <name>)").action(async (action, username) => {
@@ -5717,7 +5717,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
5717
5717
  }),
5718
5718
  config.get("customProviders")
5719
5719
  );
5720
- const { startHub } = await import("./hub-IO6QCF5C.js");
5720
+ const { startHub } = await import("./hub-BB7XPZBK.js");
5721
5721
  await startHub(
5722
5722
  {
5723
5723
  topic: topic ?? "",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-TMYJUJIY.js";
4
+ } from "./chunk-DISJMBZ6.js";
5
5
  export {
6
6
  executeTests,
7
7
  runTestsTool
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-R5XH32QG.js";
5
+ } from "./chunk-VW2RWYKJ.js";
6
6
  export {
7
7
  executeTests,
8
8
  runTestsTool
@@ -15,7 +15,7 @@ import {
15
15
  hadPreviousWriteToolCalls,
16
16
  loadDevState,
17
17
  setupProxy
18
- } from "./chunk-IP7FPI3C.js";
18
+ } from "./chunk-PUMVM572.js";
19
19
  import {
20
20
  AuthManager
21
21
  } from "./chunk-BYNY5JPB.js";
@@ -33,7 +33,7 @@ import {
33
33
  spawnAgentContext,
34
34
  truncateOutput,
35
35
  undoStack
36
- } from "./chunk-BSO3S6AN.js";
36
+ } from "./chunk-J7OX5EP3.js";
37
37
  import "./chunk-4BKXL7SM.js";
38
38
  import {
39
39
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -52,7 +52,7 @@ import {
52
52
  SKILLS_DIR_NAME,
53
53
  VERSION,
54
54
  buildUserIdentityPrompt
55
- } from "./chunk-R5XH32QG.js";
55
+ } from "./chunk-VW2RWYKJ.js";
56
56
 
57
57
  // src/web/server.ts
58
58
  import express from "express";
@@ -1606,7 +1606,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
1606
1606
  case "test": {
1607
1607
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
1608
1608
  try {
1609
- const { executeTests } = await import("./run-tests-RZTULQ3R.js");
1609
+ const { executeTests } = await import("./run-tests-XEPKLO5H.js");
1610
1610
  const argStr = args.join(" ").trim();
1611
1611
  let testArgs = {};
1612
1612
  if (argStr) {
@@ -4,11 +4,11 @@ import {
4
4
  getDangerLevel,
5
5
  googleSearchContext,
6
6
  truncateOutput
7
- } from "./chunk-BSO3S6AN.js";
7
+ } from "./chunk-J7OX5EP3.js";
8
8
  import "./chunk-4BKXL7SM.js";
9
9
  import {
10
10
  SUBAGENT_ALLOWED_TOOLS
11
- } from "./chunk-R5XH32QG.js";
11
+ } from "./chunk-VW2RWYKJ.js";
12
12
 
13
13
  // src/hub/task-orchestrator.ts
14
14
  import { createInterface } from "readline";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.46",
3
+ "version": "0.4.47",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",