jinzd-ai-cli 0.4.243 → 0.4.244

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 (31) hide show
  1. package/dist/{batch-CUVZUPRK.js → batch-GLB7ES6K.js} +2 -2
  2. package/dist/{chunk-L5IRDRWG.js → chunk-6IAVHU3I.js} +1 -1
  3. package/dist/{chunk-X73Y4JZI.js → chunk-ACU6T7B3.js} +1 -1
  4. package/dist/{chunk-66CE3E6X.js → chunk-B7KTFHK2.js} +1 -1
  5. package/dist/{chunk-TY4FSEZS.js → chunk-BKTCOL5D.js} +1 -1
  6. package/dist/{chunk-EMFCHE2B.js → chunk-BO5UU3TY.js} +1 -1
  7. package/dist/{chunk-HNJX3N2V.js → chunk-HN4FU37T.js} +3 -3
  8. package/dist/{chunk-PNNZRJ67.js → chunk-M7XY5AK5.js} +1 -1
  9. package/dist/{chunk-PLEXBFCR.js → chunk-MCC5BEZG.js} +1 -1
  10. package/dist/{chunk-H3ARWBYR.js → chunk-OYFDGRYD.js} +2 -2
  11. package/dist/{chunk-QNK7GUUB.js → chunk-P6AUULT2.js} +3 -3
  12. package/dist/{chunk-KILKF2VN.js → chunk-WF7FD7WS.js} +25 -19
  13. package/dist/{chunk-DJGCG7SF.js → chunk-XZI4ULXF.js} +1 -1
  14. package/dist/{chunk-GEWPLNKA.js → chunk-ZQGCX4QD.js} +1 -1
  15. package/dist/{ci-3O3JR6FX.js → ci-V7RGDIER.js} +4 -4
  16. package/dist/{ci-format-KGWF6KOU.js → ci-format-HSUEHAM2.js} +2 -2
  17. package/dist/{constants-NMFRZ5LW.js → constants-OQ6FVQ23.js} +1 -1
  18. package/dist/{doctor-cli-4QUHTJZ4.js → doctor-cli-LABZF3XG.js} +4 -4
  19. package/dist/electron-server.js +27 -21
  20. package/dist/{hub-2GXFPWOR.js → hub-RTFICY6M.js} +1 -1
  21. package/dist/index.js +19 -19
  22. package/dist/{persistent-memory-ZCQKLIC5.js → persistent-memory-OWXDBSZY.js} +2 -2
  23. package/dist/{persistent-memory-VFBRMKGG.js → persistent-memory-P6LU5KDG.js} +2 -2
  24. package/dist/{pr-GIDFO4KP.js → pr-HXJ6ML6M.js} +4 -4
  25. package/dist/{run-tests-WCZBWQFS.js → run-tests-EFWAH43I.js} +2 -2
  26. package/dist/{run-tests-BMH6QJN2.js → run-tests-XJ44FWIK.js} +2 -2
  27. package/dist/{server-A5NGGDMP.js → server-6OPGWJ7S.js} +11 -11
  28. package/dist/{server-FEFIFJDA.js → server-B6WJWV3T.js} +5 -5
  29. package/dist/{task-orchestrator-J2H6OV6R.js → task-orchestrator-KHJYQXWU.js} +5 -5
  30. package/dist/{usage-7WJC234G.js → usage-NW2ZXN6N.js} +2 -2
  31. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigManager
4
- } from "./chunk-X73Y4JZI.js";
4
+ } from "./chunk-ACU6T7B3.js";
5
5
  import "./chunk-5ULLIOVC.js";
6
- import "./chunk-66CE3E6X.js";
6
+ import "./chunk-B7KTFHK2.js";
7
7
  import {
8
8
  atomicWriteFileSync
9
9
  } from "./chunk-IW3Q7AE5.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-66CE3E6X.js";
4
+ } from "./chunk-B7KTFHK2.js";
5
5
 
6
6
  // src/tools/builtin/run-tests.ts
7
7
  import { execSync, spawnSync } from "child_process";
@@ -8,7 +8,7 @@ import {
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-66CE3E6X.js";
11
+ } from "./chunk-B7KTFHK2.js";
12
12
  import {
13
13
  atomicWriteFileSync
14
14
  } from "./chunk-IW3Q7AE5.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.243";
4
+ var VERSION = "0.4.244";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -6,7 +6,7 @@ import {
6
6
  MEMORY_FILE_NAME,
7
7
  MEMORY_MAX_CHARS,
8
8
  MEMORY_STORE_FILE_NAME
9
- } from "./chunk-66CE3E6X.js";
9
+ } from "./chunk-B7KTFHK2.js";
10
10
  import {
11
11
  DEFAULT_PATTERNS,
12
12
  redactString
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CONFIG_DIR_NAME,
4
4
  PLUGINS_DIR_NAME
5
- } from "./chunk-66CE3E6X.js";
5
+ } from "./chunk-B7KTFHK2.js";
6
6
  import {
7
7
  atomicWriteFileSync
8
8
  } from "./chunk-IW3Q7AE5.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-QYQI7ZWK.js";
5
5
  import {
6
6
  ConfigManager
7
- } from "./chunk-X73Y4JZI.js";
7
+ } from "./chunk-ACU6T7B3.js";
8
8
  import {
9
9
  getActivePluginAssets,
10
10
  getPendingHookTrust,
@@ -14,7 +14,7 @@ import {
14
14
  listHooks,
15
15
  listInstalledPlugins,
16
16
  resetStats
17
- } from "./chunk-EMFCHE2B.js";
17
+ } from "./chunk-BO5UU3TY.js";
18
18
  import {
19
19
  getGitRoot
20
20
  } from "./chunk-HOSJZMQS.js";
@@ -26,7 +26,7 @@ import {
26
26
  MCP_PROJECT_CONFIG_NAME,
27
27
  MEMORY_FILE_NAME,
28
28
  VERSION
29
- } from "./chunk-66CE3E6X.js";
29
+ } from "./chunk-B7KTFHK2.js";
30
30
 
31
31
  // src/diagnostics/doctor-report.ts
32
32
  import { existsSync as existsSync3, statSync as statSync2 } from "fs";
@@ -6,7 +6,7 @@ import {
6
6
  MEMORY_FILE_NAME,
7
7
  MEMORY_MAX_CHARS,
8
8
  MEMORY_STORE_FILE_NAME
9
- } from "./chunk-GEWPLNKA.js";
9
+ } from "./chunk-ZQGCX4QD.js";
10
10
  import {
11
11
  atomicWriteFileSync
12
12
  } from "./chunk-6BUTA5VW.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TEST_TIMEOUT
3
- } from "./chunk-GEWPLNKA.js";
3
+ } from "./chunk-ZQGCX4QD.js";
4
4
 
5
5
  // src/tools/builtin/run-tests.ts
6
6
  import { execSync, spawnSync } from "child_process";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  truncateForPersist
4
- } from "./chunk-KILKF2VN.js";
4
+ } from "./chunk-WF7FD7WS.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-66CE3E6X.js";
14
+ } from "./chunk-B7KTFHK2.js";
15
15
  import {
16
16
  atomicWriteFileSync
17
17
  } from "./chunk-IW3Q7AE5.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  evaluateCiGate,
4
4
  normalizeCiThresholds
5
- } from "./chunk-DJGCG7SF.js";
5
+ } from "./chunk-XZI4ULXF.js";
6
6
  import {
7
7
  buildReviewPrompt,
8
8
  buildSecurityReviewPrompt,
@@ -13,10 +13,10 @@ import {
13
13
  } from "./chunk-QYQI7ZWK.js";
14
14
  import {
15
15
  ConfigManager
16
- } from "./chunk-X73Y4JZI.js";
16
+ } from "./chunk-ACU6T7B3.js";
17
17
  import {
18
18
  VERSION
19
- } from "./chunk-66CE3E6X.js";
19
+ } from "./chunk-B7KTFHK2.js";
20
20
 
21
21
  // src/cli/ci.ts
22
22
  import { execFileSync } from "child_process";
@@ -7,7 +7,7 @@ import {
7
7
  searchPersistentMemories,
8
8
  touchMemoryReferences,
9
9
  updateMemoryEntry
10
- } from "./chunk-TY4FSEZS.js";
10
+ } from "./chunk-BKTCOL5D.js";
11
11
  import {
12
12
  indexProject
13
13
  } from "./chunk-K3CF65QH.js";
@@ -23,7 +23,7 @@ import {
23
23
  runHook,
24
24
  runLifecycleHooks,
25
25
  runTool
26
- } from "./chunk-EMFCHE2B.js";
26
+ } from "./chunk-BO5UU3TY.js";
27
27
  import {
28
28
  getDangerLevel,
29
29
  isFileWriteTool,
@@ -39,14 +39,14 @@ import {
39
39
  } from "./chunk-4BKXL7SM.js";
40
40
  import {
41
41
  runTestsTool
42
- } from "./chunk-L5IRDRWG.js";
42
+ } from "./chunk-6IAVHU3I.js";
43
43
  import {
44
44
  CONFIG_DIR_NAME,
45
45
  DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
46
46
  SUBAGENT_ALLOWED_TOOLS,
47
47
  SUBAGENT_DEFAULT_MAX_ROUNDS,
48
48
  SUBAGENT_MAX_ROUNDS_LIMIT
49
- } from "./chunk-66CE3E6X.js";
49
+ } from "./chunk-B7KTFHK2.js";
50
50
  import {
51
51
  loadChatIndex,
52
52
  searchChatMemory
@@ -558,6 +558,10 @@ Important rules:
558
558
  [The user pressed Ctrl+C while this command was running. Stop the current task, summarize what was done so far, and wait for the user's next instruction. Do NOT retry this command or continue with further tool calls unless explicitly asked.]`
559
559
  );
560
560
  }
561
+ if (timedOut) {
562
+ pushBashUndoEntries(beforeSnapshot, parsedTargetsBefore, effectiveCwd);
563
+ throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT));
564
+ }
561
565
  if (status !== 0 || timedOut) {
562
566
  const poolStdout = (stdout ?? "").trim();
563
567
  const poolStderr = (stderr ?? "").trim();
@@ -619,21 +623,7 @@ ${combined || formatFailureFallback(status)}
619
623
  const execErr = err;
620
624
  const isTimeout = execErr.code === "ETIMEDOUT" || execErr.status == null && execErr.signal === "SIGTERM" || /ETIMEDOUT/i.test(execErr.message ?? "");
621
625
  if (isTimeout) {
622
- const seconds = Math.round(timeout / 1e3);
623
- throw new ToolError(
624
- "bash",
625
- `Command timed out after ${seconds}s.
626
-
627
- The previous command ran for longer than the timeout limit and was killed. This usually means it is scanning a large filesystem tree (recursive Get-ChildItem / find), compressing a big archive, or waiting on a network request.
628
-
629
- How to recover (pick ONE \u2014 do NOT retry the same command):
630
- 1. Pass an explicit longer timeout, e.g. timeout: ${Math.min(timeout * 2, MAX_TIMEOUT)}
631
- 2. Use a non-recursive / narrower alternative (e.g. 'Get-ChildItem -File' without -Recurse, or limit depth with -Depth 1)
632
- 3. Split the work into smaller batches (process subdirectories one at a time)
633
- 4. For size/count queries, use '(Get-ChildItem X).Count' per directory instead of one giant pipeline
634
-
635
- [Do NOT retry the identical command \u2014 it will time out again.]`
636
- );
626
+ throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT));
637
627
  }
638
628
  if ("status" in execErr && execErr.status !== void 0) {
639
629
  const stderr = IS_WINDOWS3 && Buffer.isBuffer(execErr.stderr) ? decodeWindowsBuffer(execErr.stderr).trim() : execErr.stderr?.toString().trim() ?? "";
@@ -658,6 +648,22 @@ ${combined || execErr.message || formatFailureFallback(execErr.status)}
658
648
  function formatFailureHeader(status) {
659
649
  return typeof status === "number" ? `Exit code ${status}:` : "Command failed before exit code could be determined:";
660
650
  }
651
+ function formatTimeoutMessage(timeout, maxTimeout) {
652
+ const seconds = Math.round(timeout / 1e3);
653
+ return [
654
+ `Command timed out after ${seconds}s.`,
655
+ "",
656
+ "The previous command ran for longer than the timeout limit and was killed. This usually means it is scanning a large filesystem tree (recursive Get-ChildItem / find), compressing a big archive, or waiting on a network request.",
657
+ "",
658
+ "How to recover (pick ONE \u2014 do NOT retry the same command):",
659
+ ` 1. Pass an explicit longer timeout, e.g. timeout: ${Math.min(timeout * 2, maxTimeout)}`,
660
+ " 2. Use a non-recursive / narrower alternative (e.g. 'Get-ChildItem -File' without -Recurse, or limit depth with -Depth 1)",
661
+ " 3. Split the work into smaller batches (process subdirectories one at a time)",
662
+ " 4. For size/count queries, use '(Get-ChildItem X).Count' per directory instead of one giant pipeline",
663
+ "",
664
+ "[Do NOT retry the identical command \u2014 it will time out again.]"
665
+ ].join(String.fromCharCode(10));
666
+ }
661
667
  function formatFailureFallback(status) {
662
668
  return typeof status === "number" ? `exit ${status}` : "The shell process ended before reporting a numeric exit code.";
663
669
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  VERSION
4
- } from "./chunk-66CE3E6X.js";
4
+ } from "./chunk-B7KTFHK2.js";
5
5
 
6
6
  // src/cli/ci-format.ts
7
7
  var DEFAULT_CI_THRESHOLDS = {
@@ -1,5 +1,5 @@
1
1
  // src/core/constants.ts
2
- var VERSION = "0.4.243";
2
+ var VERSION = "0.4.244";
3
3
  var APP_NAME = "ai-cli";
4
4
  var CONFIG_DIR_NAME = ".aicli";
5
5
  var CONFIG_FILE_NAME = "config.json";
@@ -3,14 +3,14 @@ import {
3
3
  CI_COMMENT_MARKER,
4
4
  countSeverity,
5
5
  runCi
6
- } from "./chunk-QNK7GUUB.js";
7
- import "./chunk-DJGCG7SF.js";
6
+ } from "./chunk-P6AUULT2.js";
7
+ import "./chunk-XZI4ULXF.js";
8
8
  import "./chunk-HLWUDRBO.js";
9
9
  import "./chunk-QYQI7ZWK.js";
10
- import "./chunk-X73Y4JZI.js";
10
+ import "./chunk-ACU6T7B3.js";
11
11
  import "./chunk-O3XSFPYH.js";
12
12
  import "./chunk-5ULLIOVC.js";
13
- import "./chunk-66CE3E6X.js";
13
+ import "./chunk-B7KTFHK2.js";
14
14
  import "./chunk-IW3Q7AE5.js";
15
15
  export {
16
16
  CI_COMMENT_MARKER,
@@ -6,8 +6,8 @@ import {
6
6
  formatCiResult,
7
7
  formatCiSarif,
8
8
  normalizeCiThresholds
9
- } from "./chunk-DJGCG7SF.js";
10
- import "./chunk-66CE3E6X.js";
9
+ } from "./chunk-XZI4ULXF.js";
10
+ import "./chunk-B7KTFHK2.js";
11
11
  export {
12
12
  DEFAULT_CI_THRESHOLDS,
13
13
  detectCiGateSignals,
@@ -38,7 +38,7 @@ import {
38
38
  TEST_TIMEOUT,
39
39
  VERSION,
40
40
  buildUserIdentityPrompt
41
- } from "./chunk-66CE3E6X.js";
41
+ } from "./chunk-B7KTFHK2.js";
42
42
  export {
43
43
  AGENTIC_BEHAVIOR_GUIDELINE,
44
44
  APP_NAME,
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  formatDoctorReport,
4
4
  runDoctorCli
5
- } from "./chunk-HNJX3N2V.js";
5
+ } from "./chunk-HN4FU37T.js";
6
6
  import "./chunk-QYQI7ZWK.js";
7
- import "./chunk-X73Y4JZI.js";
8
- import "./chunk-EMFCHE2B.js";
7
+ import "./chunk-ACU6T7B3.js";
8
+ import "./chunk-BO5UU3TY.js";
9
9
  import "./chunk-O3XSFPYH.js";
10
10
  import "./chunk-5ULLIOVC.js";
11
11
  import "./chunk-HOSJZMQS.js";
12
- import "./chunk-66CE3E6X.js";
12
+ import "./chunk-B7KTFHK2.js";
13
13
  import "./chunk-IW3Q7AE5.js";
14
14
  export {
15
15
  formatDoctorReport,
@@ -34,14 +34,14 @@ import {
34
34
  touchMemoryReferences,
35
35
  updateMemoryApproval,
36
36
  updateMemoryEntry
37
- } from "./chunk-PNNZRJ67.js";
37
+ } from "./chunk-M7XY5AK5.js";
38
38
  import {
39
39
  redactJson,
40
40
  scanString
41
41
  } from "./chunk-YVTASHS5.js";
42
42
  import {
43
43
  runTestsTool
44
- } from "./chunk-PLEXBFCR.js";
44
+ } from "./chunk-MCC5BEZG.js";
45
45
  import {
46
46
  AGENTIC_BEHAVIOR_GUIDELINE,
47
47
  APP_NAME,
@@ -73,7 +73,7 @@ import {
73
73
  SUBAGENT_MAX_ROUNDS_LIMIT,
74
74
  VERSION,
75
75
  buildUserIdentityPrompt
76
- } from "./chunk-GEWPLNKA.js";
76
+ } from "./chunk-ZQGCX4QD.js";
77
77
  import {
78
78
  hasSemanticIndex,
79
79
  semanticSearch
@@ -5205,6 +5205,10 @@ Important rules:
5205
5205
  [The user pressed Ctrl+C while this command was running. Stop the current task, summarize what was done so far, and wait for the user's next instruction. Do NOT retry this command or continue with further tool calls unless explicitly asked.]`
5206
5206
  );
5207
5207
  }
5208
+ if (timedOut) {
5209
+ pushBashUndoEntries(beforeSnapshot, parsedTargetsBefore, effectiveCwd);
5210
+ throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT));
5211
+ }
5208
5212
  if (status !== 0 || timedOut) {
5209
5213
  const poolStdout = (stdout ?? "").trim();
5210
5214
  const poolStderr = (stderr ?? "").trim();
@@ -5266,21 +5270,7 @@ ${combined || formatFailureFallback(status)}
5266
5270
  const execErr = err;
5267
5271
  const isTimeout = execErr.code === "ETIMEDOUT" || execErr.status == null && execErr.signal === "SIGTERM" || /ETIMEDOUT/i.test(execErr.message ?? "");
5268
5272
  if (isTimeout) {
5269
- const seconds = Math.round(timeout / 1e3);
5270
- throw new ToolError(
5271
- "bash",
5272
- `Command timed out after ${seconds}s.
5273
-
5274
- The previous command ran for longer than the timeout limit and was killed. This usually means it is scanning a large filesystem tree (recursive Get-ChildItem / find), compressing a big archive, or waiting on a network request.
5275
-
5276
- How to recover (pick ONE \u2014 do NOT retry the same command):
5277
- 1. Pass an explicit longer timeout, e.g. timeout: ${Math.min(timeout * 2, MAX_TIMEOUT)}
5278
- 2. Use a non-recursive / narrower alternative (e.g. 'Get-ChildItem -File' without -Recurse, or limit depth with -Depth 1)
5279
- 3. Split the work into smaller batches (process subdirectories one at a time)
5280
- 4. For size/count queries, use '(Get-ChildItem X).Count' per directory instead of one giant pipeline
5281
-
5282
- [Do NOT retry the identical command \u2014 it will time out again.]`
5283
- );
5273
+ throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT));
5284
5274
  }
5285
5275
  if ("status" in execErr && execErr.status !== void 0) {
5286
5276
  const stderr = IS_WINDOWS3 && Buffer.isBuffer(execErr.stderr) ? decodeWindowsBuffer(execErr.stderr).trim() : execErr.stderr?.toString().trim() ?? "";
@@ -5305,6 +5295,22 @@ ${combined || execErr.message || formatFailureFallback(execErr.status)}
5305
5295
  function formatFailureHeader(status) {
5306
5296
  return typeof status === "number" ? `Exit code ${status}:` : "Command failed before exit code could be determined:";
5307
5297
  }
5298
+ function formatTimeoutMessage(timeout, maxTimeout) {
5299
+ const seconds = Math.round(timeout / 1e3);
5300
+ return [
5301
+ `Command timed out after ${seconds}s.`,
5302
+ "",
5303
+ "The previous command ran for longer than the timeout limit and was killed. This usually means it is scanning a large filesystem tree (recursive Get-ChildItem / find), compressing a big archive, or waiting on a network request.",
5304
+ "",
5305
+ "How to recover (pick ONE \u2014 do NOT retry the same command):",
5306
+ ` 1. Pass an explicit longer timeout, e.g. timeout: ${Math.min(timeout * 2, maxTimeout)}`,
5307
+ " 2. Use a non-recursive / narrower alternative (e.g. 'Get-ChildItem -File' without -Recurse, or limit depth with -Depth 1)",
5308
+ " 3. Split the work into smaller batches (process subdirectories one at a time)",
5309
+ " 4. For size/count queries, use '(Get-ChildItem X).Count' per directory instead of one giant pipeline",
5310
+ "",
5311
+ "[Do NOT retry the identical command \u2014 it will time out again.]"
5312
+ ].join(String.fromCharCode(10));
5313
+ }
5308
5314
  function formatFailureFallback(status) {
5309
5315
  return typeof status === "number" ? `exit ${status}` : "The shell process ended before reporting a numeric exit code.";
5310
5316
  }
@@ -15083,7 +15089,7 @@ Cache: write=${cacheCreate} read=${cacheRead}` : "";
15083
15089
  Cost: ${formatCost(cost)}` : "";
15084
15090
  let memoryLine = "";
15085
15091
  try {
15086
- const { countPendingMemories } = await import("./persistent-memory-ZCQKLIC5.js");
15092
+ const { countPendingMemories } = await import("./persistent-memory-OWXDBSZY.js");
15087
15093
  const pending = countPendingMemories(ctx.config.getConfigDir());
15088
15094
  if (pending > 0) memoryLine = `
15089
15095
  Memory: \u26A0 ${pending} pending approval \u2014 see the Memory panel or /memory`;
@@ -15892,7 +15898,7 @@ async function handleSecurityReview(args, ctx) {
15892
15898
  async function handleTest(args, ctx) {
15893
15899
  ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
15894
15900
  try {
15895
- const { executeTests } = await import("./run-tests-WCZBWQFS.js");
15901
+ const { executeTests } = await import("./run-tests-EFWAH43I.js");
15896
15902
  const argStr = args.join(" ").trim();
15897
15903
  let testArgs = {};
15898
15904
  if (argStr) {
@@ -16156,7 +16162,7 @@ async function handleMemory(args, ctx) {
16156
16162
  ctx.handleMemoryManage(sub, args[1], sub === "expire" ? args[2] : void 0);
16157
16163
  } else if (sub === "export") {
16158
16164
  if (args[1] === "md") {
16159
- const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-ZCQKLIC5.js");
16165
+ const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-OWXDBSZY.js");
16160
16166
  ctx.send({
16161
16167
  type: "export_data",
16162
16168
  format: "md",
@@ -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-J2H6OV6R.js");
157
+ const { TaskOrchestrator } = await import("./task-orchestrator-KHJYQXWU.js");
158
158
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
159
159
  let interrupted = false;
160
160
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  scanProject,
18
18
  sessionHasMeaningfulContent,
19
19
  setupProxy
20
- } from "./chunk-H3ARWBYR.js";
20
+ } from "./chunk-OYFDGRYD.js";
21
21
  import {
22
22
  computeCost,
23
23
  formatCost,
@@ -50,7 +50,7 @@ import {
50
50
  spawnAgentContext,
51
51
  theme,
52
52
  undoStack
53
- } from "./chunk-KILKF2VN.js";
53
+ } from "./chunk-WF7FD7WS.js";
54
54
  import {
55
55
  addMemoryEntry,
56
56
  backupMemoryStore,
@@ -76,7 +76,7 @@ import {
76
76
  touchMemoryReferences,
77
77
  updateMemoryApproval,
78
78
  updateMemoryEntry
79
- } from "./chunk-TY4FSEZS.js";
79
+ } from "./chunk-BKTCOL5D.js";
80
80
  import "./chunk-K3CF65QH.js";
81
81
  import "./chunk-UUSRWSSX.js";
82
82
  import "./chunk-CKH4KQ4E.js";
@@ -90,13 +90,13 @@ import {
90
90
  formatDoctorReport,
91
91
  loadContextFiles,
92
92
  writeCrashLog
93
- } from "./chunk-HNJX3N2V.js";
93
+ } from "./chunk-HN4FU37T.js";
94
94
  import {
95
95
  ProviderRegistry
96
96
  } from "./chunk-QYQI7ZWK.js";
97
97
  import {
98
98
  ConfigManager
99
- } from "./chunk-X73Y4JZI.js";
99
+ } from "./chunk-ACU6T7B3.js";
100
100
  import {
101
101
  describePlugin,
102
102
  getActivePluginAssets,
@@ -113,7 +113,7 @@ import {
113
113
  trustHook,
114
114
  trustPlugin,
115
115
  untrustHook
116
- } from "./chunk-EMFCHE2B.js";
116
+ } from "./chunk-BO5UU3TY.js";
117
117
  import {
118
118
  CONTENT_ONLY_STREAM_REMINDER,
119
119
  TEE_FINAL_USER_NUDGE,
@@ -146,7 +146,7 @@ import {
146
146
  import {
147
147
  fileCheckpoints
148
148
  } from "./chunk-4BKXL7SM.js";
149
- import "./chunk-L5IRDRWG.js";
149
+ import "./chunk-6IAVHU3I.js";
150
150
  import {
151
151
  AGENTIC_BEHAVIOR_GUIDELINE,
152
152
  AUTHOR,
@@ -165,7 +165,7 @@ import {
165
165
  SKILLS_DIR_NAME,
166
166
  VERSION,
167
167
  buildUserIdentityPrompt
168
- } from "./chunk-66CE3E6X.js";
168
+ } from "./chunk-B7KTFHK2.js";
169
169
  import {
170
170
  buildChatIndex,
171
171
  clearChatIndex,
@@ -1387,7 +1387,7 @@ No tools match "${filter}".
1387
1387
  const { join: join6 } = await import("path");
1388
1388
  const { existsSync: existsSync5 } = await import("fs");
1389
1389
  const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
1390
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-NMFRZ5LW.js");
1390
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-OQ6FVQ23.js");
1391
1391
  const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
1392
1392
  const cwd = process.cwd();
1393
1393
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -2366,7 +2366,7 @@ function createReviewCommands() {
2366
2366
  usage: "/test [command|filter]",
2367
2367
  async execute(args, ctx) {
2368
2368
  try {
2369
- const { executeTests } = await import("./run-tests-BMH6QJN2.js");
2369
+ const { executeTests } = await import("./run-tests-XJ44FWIK.js");
2370
2370
  const argStr = args.join(" ").trim();
2371
2371
  let testArgs = {};
2372
2372
  if (argStr) {
@@ -8014,7 +8014,7 @@ program.command("web").description("Start Web UI server with browser-based chat
8014
8014
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
8015
8015
  process.exit(1);
8016
8016
  }
8017
- const { startWebServer } = await import("./server-A5NGGDMP.js");
8017
+ const { startWebServer } = await import("./server-6OPGWJ7S.js");
8018
8018
  await startWebServer({ port, host: options.host });
8019
8019
  });
8020
8020
  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) => {
@@ -8181,11 +8181,11 @@ program.command("sessions").description("List recent conversation sessions").opt
8181
8181
  console.log(footer + "\n");
8182
8182
  });
8183
8183
  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) => {
8184
- const { runUsageCli } = await import("./usage-7WJC234G.js");
8184
+ const { runUsageCli } = await import("./usage-NW2ZXN6N.js");
8185
8185
  await runUsageCli(options);
8186
8186
  });
8187
8187
  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) => {
8188
- const { runDoctorCli } = await import("./doctor-cli-4QUHTJZ4.js");
8188
+ const { runDoctorCli } = await import("./doctor-cli-LABZF3XG.js");
8189
8189
  const argv = process.argv.slice(2);
8190
8190
  await runDoctorCli({
8191
8191
  json: !!options.json || argv.includes("--json"),
@@ -8194,7 +8194,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
8194
8194
  });
8195
8195
  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) => {
8196
8196
  try {
8197
- const batch = await import("./batch-CUVZUPRK.js");
8197
+ const batch = await import("./batch-GLB7ES6K.js");
8198
8198
  switch (action) {
8199
8199
  case "submit":
8200
8200
  if (!arg) {
@@ -8237,7 +8237,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
8237
8237
  }
8238
8238
  });
8239
8239
  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) => {
8240
- const { startMcpServer } = await import("./server-FEFIFJDA.js");
8240
+ const { startMcpServer } = await import("./server-B6WJWV3T.js");
8241
8241
  await startMcpServer({
8242
8242
  allowDestructive: !!options.allowDestructive,
8243
8243
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -8250,7 +8250,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
8250
8250
  console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
8251
8251
  process.exit(1);
8252
8252
  }
8253
- const { runPrCli } = await import("./pr-GIDFO4KP.js");
8253
+ const { runPrCli } = await import("./pr-HXJ6ML6M.js");
8254
8254
  const result = await runPrCli({
8255
8255
  action,
8256
8256
  target,
@@ -8270,8 +8270,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
8270
8270
  process.exit(result.exitCode);
8271
8271
  });
8272
8272
  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 or URL; diff fetched via gh pr diff <value>", (v) => /^#?\d+$/.test(v) ? parseInt(v.replace(/^#/, ""), 10) : v).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)").option("--json", "Output a structured JSON report").option("--markdown", "Output Markdown report (default)").option("--sarif", "Output SARIF 2.1.0 for code scanning artifacts").option("--fail-on-security-high", "Fail when the security review contains HIGH/CRITICAL findings (default)").option("--no-fail-on-security-high", "Do not fail on security HIGH/CRITICAL findings").option("--fail-on-test-failure", "Fail when the report mentions test failures (default)").option("--no-fail-on-test-failure", "Do not fail on test failure findings").option("--fail-on-lint-failure", "Fail when the report mentions lint/typecheck failures (default)").option("--no-fail-on-lint-failure", "Do not fail on lint/typecheck failure findings").action(async (options) => {
8273
- const { runCi } = await import("./ci-3O3JR6FX.js");
8274
- const { formatCiResult } = await import("./ci-format-KGWF6KOU.js");
8273
+ const { runCi } = await import("./ci-V7RGDIER.js");
8274
+ const { formatCiResult } = await import("./ci-format-HSUEHAM2.js");
8275
8275
  const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
8276
8276
  if (formats > 1) {
8277
8277
  console.error("Choose only one output format: --json, --markdown, or --sarif.");
@@ -8429,7 +8429,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
8429
8429
  config.get("customProviders"),
8430
8430
  config.getConfigDir()
8431
8431
  );
8432
- const { startHub } = await import("./hub-2GXFPWOR.js");
8432
+ const { startHub } = await import("./hub-RTFICY6M.js");
8433
8433
  await startHub(
8434
8434
  {
8435
8435
  topic: topic ?? "",
@@ -27,9 +27,9 @@ import {
27
27
  touchMemoryReferences,
28
28
  updateMemoryApproval,
29
29
  updateMemoryEntry
30
- } from "./chunk-PNNZRJ67.js";
30
+ } from "./chunk-M7XY5AK5.js";
31
31
  import "./chunk-YVTASHS5.js";
32
- import "./chunk-GEWPLNKA.js";
32
+ import "./chunk-ZQGCX4QD.js";
33
33
  import "./chunk-6BUTA5VW.js";
34
34
  export {
35
35
  addMemoryEntry,
@@ -28,9 +28,9 @@ import {
28
28
  touchMemoryReferences,
29
29
  updateMemoryApproval,
30
30
  updateMemoryEntry
31
- } from "./chunk-TY4FSEZS.js";
31
+ } from "./chunk-BKTCOL5D.js";
32
32
  import "./chunk-HOSJZMQS.js";
33
- import "./chunk-66CE3E6X.js";
33
+ import "./chunk-B7KTFHK2.js";
34
34
  import "./chunk-B5TYJO7V.js";
35
35
  import "./chunk-IW3Q7AE5.js";
36
36
  export {
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  countSeverity,
4
4
  runCi
5
- } from "./chunk-QNK7GUUB.js";
6
- import "./chunk-DJGCG7SF.js";
5
+ } from "./chunk-P6AUULT2.js";
6
+ import "./chunk-XZI4ULXF.js";
7
7
  import {
8
8
  buildReviewPrompt,
9
9
  buildSecurityReviewPrompt,
@@ -14,12 +14,12 @@ import {
14
14
  } from "./chunk-QYQI7ZWK.js";
15
15
  import {
16
16
  ConfigManager
17
- } from "./chunk-X73Y4JZI.js";
17
+ } from "./chunk-ACU6T7B3.js";
18
18
  import "./chunk-O3XSFPYH.js";
19
19
  import "./chunk-5ULLIOVC.js";
20
20
  import {
21
21
  VERSION
22
- } from "./chunk-66CE3E6X.js";
22
+ } from "./chunk-B7KTFHK2.js";
23
23
  import "./chunk-IW3Q7AE5.js";
24
24
 
25
25
  // src/cli/pr.ts
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-PLEXBFCR.js";
5
- import "./chunk-GEWPLNKA.js";
4
+ } from "./chunk-MCC5BEZG.js";
5
+ import "./chunk-ZQGCX4QD.js";
6
6
  export {
7
7
  executeTests,
8
8
  runTestsTool
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-L5IRDRWG.js";
6
- import "./chunk-66CE3E6X.js";
5
+ } from "./chunk-6IAVHU3I.js";
6
+ import "./chunk-B7KTFHK2.js";
7
7
  export {
8
8
  executeTests,
9
9
  runTestsTool
@@ -23,7 +23,7 @@ import {
23
23
  scanDirTree,
24
24
  scanProject,
25
25
  setupProxy
26
- } from "./chunk-H3ARWBYR.js";
26
+ } from "./chunk-OYFDGRYD.js";
27
27
  import {
28
28
  computeCost,
29
29
  formatCost,
@@ -63,7 +63,7 @@ import {
63
63
  spawnAgentContext,
64
64
  truncateOutput,
65
65
  undoStack
66
- } from "./chunk-KILKF2VN.js";
66
+ } from "./chunk-WF7FD7WS.js";
67
67
  import {
68
68
  addMemoryEntry,
69
69
  clearMemoryEntries,
@@ -77,7 +77,7 @@ import {
77
77
  parseWritableScope,
78
78
  updateMemoryApproval,
79
79
  updateMemoryEntry
80
- } from "./chunk-TY4FSEZS.js";
80
+ } from "./chunk-BKTCOL5D.js";
81
81
  import "./chunk-K3CF65QH.js";
82
82
  import "./chunk-UUSRWSSX.js";
83
83
  import "./chunk-CKH4KQ4E.js";
@@ -90,13 +90,13 @@ import {
90
90
  buildDoctorReport,
91
91
  formatDoctorReport,
92
92
  loadContextFiles
93
- } from "./chunk-HNJX3N2V.js";
93
+ } from "./chunk-HN4FU37T.js";
94
94
  import {
95
95
  ProviderRegistry
96
96
  } from "./chunk-QYQI7ZWK.js";
97
97
  import {
98
98
  ConfigManager
99
- } from "./chunk-X73Y4JZI.js";
99
+ } from "./chunk-ACU6T7B3.js";
100
100
  import {
101
101
  describePlugin,
102
102
  getActivePluginAssets,
@@ -111,7 +111,7 @@ import {
111
111
  runTool,
112
112
  setPluginEnabled,
113
113
  trustPlugin
114
- } from "./chunk-EMFCHE2B.js";
114
+ } from "./chunk-BO5UU3TY.js";
115
115
  import {
116
116
  CONTENT_ONLY_STREAM_REMINDER,
117
117
  TEE_FINAL_USER_NUDGE,
@@ -135,7 +135,7 @@ import {
135
135
  getGitRoot
136
136
  } from "./chunk-HOSJZMQS.js";
137
137
  import "./chunk-4BKXL7SM.js";
138
- import "./chunk-L5IRDRWG.js";
138
+ import "./chunk-6IAVHU3I.js";
139
139
  import {
140
140
  AGENTIC_BEHAVIOR_GUIDELINE,
141
141
  AUTHOR,
@@ -151,7 +151,7 @@ import {
151
151
  SKILLS_DIR_NAME,
152
152
  VERSION,
153
153
  buildUserIdentityPrompt
154
- } from "./chunk-66CE3E6X.js";
154
+ } from "./chunk-B7KTFHK2.js";
155
155
  import "./chunk-IGPFYNZA.js";
156
156
  import "./chunk-KHYD3WXE.js";
157
157
  import "./chunk-PJ3ONBWZ.js";
@@ -803,7 +803,7 @@ Cache: write=${cacheCreate} read=${cacheRead}` : "";
803
803
  Cost: ${formatCost(cost)}` : "";
804
804
  let memoryLine = "";
805
805
  try {
806
- const { countPendingMemories } = await import("./persistent-memory-VFBRMKGG.js");
806
+ const { countPendingMemories } = await import("./persistent-memory-P6LU5KDG.js");
807
807
  const pending = countPendingMemories(ctx.config.getConfigDir());
808
808
  if (pending > 0) memoryLine = `
809
809
  Memory: \u26A0 ${pending} pending approval \u2014 see the Memory panel or /memory`;
@@ -1612,7 +1612,7 @@ async function handleSecurityReview(args, ctx) {
1612
1612
  async function handleTest(args, ctx) {
1613
1613
  ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
1614
1614
  try {
1615
- const { executeTests } = await import("./run-tests-BMH6QJN2.js");
1615
+ const { executeTests } = await import("./run-tests-XJ44FWIK.js");
1616
1616
  const argStr = args.join(" ").trim();
1617
1617
  let testArgs = {};
1618
1618
  if (argStr) {
@@ -1876,7 +1876,7 @@ async function handleMemory(args, ctx) {
1876
1876
  ctx.handleMemoryManage(sub, args[1], sub === "expire" ? args[2] : void 0);
1877
1877
  } else if (sub === "export") {
1878
1878
  if (args[1] === "md") {
1879
- const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-VFBRMKGG.js");
1879
+ const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-P6LU5KDG.js");
1880
1880
  ctx.send({
1881
1881
  type: "export_data",
1882
1882
  format: "md",
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ToolRegistry
4
- } from "./chunk-KILKF2VN.js";
5
- import "./chunk-TY4FSEZS.js";
4
+ } from "./chunk-WF7FD7WS.js";
5
+ import "./chunk-BKTCOL5D.js";
6
6
  import "./chunk-K3CF65QH.js";
7
7
  import "./chunk-UUSRWSSX.js";
8
8
  import "./chunk-CKH4KQ4E.js";
9
9
  import "./chunk-BXP6YZ2P.js";
10
10
  import {
11
11
  runTool
12
- } from "./chunk-EMFCHE2B.js";
12
+ } from "./chunk-BO5UU3TY.js";
13
13
  import {
14
14
  getDangerLevel,
15
15
  schemaToJsonSchema
@@ -17,10 +17,10 @@ import {
17
17
  import "./chunk-5ULLIOVC.js";
18
18
  import "./chunk-HOSJZMQS.js";
19
19
  import "./chunk-4BKXL7SM.js";
20
- import "./chunk-L5IRDRWG.js";
20
+ import "./chunk-6IAVHU3I.js";
21
21
  import {
22
22
  VERSION
23
- } from "./chunk-66CE3E6X.js";
23
+ } from "./chunk-B7KTFHK2.js";
24
24
  import "./chunk-IGPFYNZA.js";
25
25
  import "./chunk-KHYD3WXE.js";
26
26
  import "./chunk-PJ3ONBWZ.js";
@@ -3,15 +3,15 @@ import {
3
3
  ToolRegistry,
4
4
  googleSearchContext,
5
5
  truncateOutput
6
- } from "./chunk-KILKF2VN.js";
7
- import "./chunk-TY4FSEZS.js";
6
+ } from "./chunk-WF7FD7WS.js";
7
+ import "./chunk-BKTCOL5D.js";
8
8
  import "./chunk-K3CF65QH.js";
9
9
  import "./chunk-UUSRWSSX.js";
10
10
  import "./chunk-CKH4KQ4E.js";
11
11
  import "./chunk-BXP6YZ2P.js";
12
12
  import {
13
13
  runTool
14
- } from "./chunk-EMFCHE2B.js";
14
+ } from "./chunk-BO5UU3TY.js";
15
15
  import {
16
16
  getDangerLevel,
17
17
  runLeanAgentLoop
@@ -19,10 +19,10 @@ import {
19
19
  import "./chunk-5ULLIOVC.js";
20
20
  import "./chunk-HOSJZMQS.js";
21
21
  import "./chunk-4BKXL7SM.js";
22
- import "./chunk-L5IRDRWG.js";
22
+ import "./chunk-6IAVHU3I.js";
23
23
  import {
24
24
  SUBAGENT_ALLOWED_TOOLS
25
- } from "./chunk-66CE3E6X.js";
25
+ } from "./chunk-B7KTFHK2.js";
26
26
  import "./chunk-IGPFYNZA.js";
27
27
  import "./chunk-KHYD3WXE.js";
28
28
  import "./chunk-PJ3ONBWZ.js";
@@ -8,9 +8,9 @@ import {
8
8
  } from "./chunk-E44DTERW.js";
9
9
  import {
10
10
  ConfigManager
11
- } from "./chunk-X73Y4JZI.js";
11
+ } from "./chunk-ACU6T7B3.js";
12
12
  import "./chunk-5ULLIOVC.js";
13
- import "./chunk-66CE3E6X.js";
13
+ import "./chunk-B7KTFHK2.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.243",
3
+ "version": "0.4.244",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",