jinzd-ai-cli 0.4.333 → 0.4.334

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 (36) hide show
  1. package/dist/{batch-TYKULVIK.js → batch-6UJGEEVB.js} +2 -2
  2. package/dist/{chunk-5MUAJ742.js → chunk-27RTBMY7.js} +1 -1
  3. package/dist/{chunk-4TKEA7RE.js → chunk-7GGWVBHG.js} +1 -1
  4. package/dist/{chunk-ZQFOY5FB.js → chunk-DPUZ22D7.js} +1 -1
  5. package/dist/{chunk-3JGBKYCN.js → chunk-DX4Y4CRH.js} +7 -7
  6. package/dist/{chunk-YIEOU7NG.js → chunk-EOYIIGBJ.js} +1 -1
  7. package/dist/{chunk-JTXHWIBO.js → chunk-FHHBPCCZ.js} +1 -1
  8. package/dist/{chunk-NRDCQGAN.js → chunk-KSZEQADY.js} +1 -1
  9. package/dist/{chunk-K4AYNZF7.js → chunk-RQOOEXDU.js} +1 -1
  10. package/dist/{chunk-YUQYVOY2.js → chunk-SZQ2C3HH.js} +1 -1
  11. package/dist/{chunk-H4UIWMA5.js → chunk-XMHVHS2X.js} +4 -4
  12. package/dist/{chunk-ZQ5HR7XN.js → chunk-YTAYWGS4.js} +1 -1
  13. package/dist/{chunk-6WQCZTAJ.js → chunk-YVEBRHSV.js} +4 -4
  14. package/dist/{chunk-A4KKNBG3.js → chunk-YY4QFBBZ.js} +4 -4
  15. package/dist/{chunk-4RVLGIK3.js → chunk-ZK5VCQD2.js} +1 -1
  16. package/dist/{ci-MYKIATCI.js → ci-S7WXRTZ6.js} +5 -5
  17. package/dist/{ci-format-QOXT6E3A.js → ci-format-TPCL2KWQ.js} +2 -2
  18. package/dist/{constants-WK2I2UCZ.js → constants-5VQMHBFU.js} +1 -1
  19. package/dist/{constants-C55HE2E5.js → constants-WJAUJAQQ.js} +1 -1
  20. package/dist/{doctor-cli-63GBR2D3.js → doctor-cli-DYQLNMPT.js} +5 -5
  21. package/dist/electron-server.js +10 -10
  22. package/dist/{hub-J4FZ4GXX.js → hub-A7P2ZBYB.js} +1 -1
  23. package/dist/index.js +18 -18
  24. package/dist/{persistent-memory-AEIRTKWX.js → persistent-memory-SKGOCEGT.js} +2 -2
  25. package/dist/{persistent-memory-6JN7AWD6.js → persistent-memory-WFGBTGWT.js} +2 -2
  26. package/dist/{pr-C53TJRXV.js → pr-IPXLVP2K.js} +5 -5
  27. package/dist/{run-tests-CZLZW5RL.js → run-tests-BG6SGRWQ.js} +2 -2
  28. package/dist/{run-tests-BKFV3HUZ.js → run-tests-TUTI7HIN.js} +2 -2
  29. package/dist/{server-2GYX4CJC.js → server-4QJPQBEW.js} +5 -5
  30. package/dist/{server-2UB74CEK.js → server-S6OROC7S.js} +14 -14
  31. package/dist/{task-orchestrator-EVONAO6V.js → task-orchestrator-6JG5GAXU.js} +5 -5
  32. package/dist/{usage-6Y7K2GNN.js → usage-LPQQ6NGG.js} +2 -2
  33. package/dist/web/client/app.js +8 -4
  34. package/dist/web/client/app.js.br +0 -0
  35. package/dist/web/client/app.js.gz +0 -0
  36. package/package.json +1 -1
@@ -4,12 +4,12 @@ import {
4
4
  } from "./chunk-RS7SKYTS.js";
5
5
  import {
6
6
  ConfigManager
7
- } from "./chunk-ZQFOY5FB.js";
7
+ } from "./chunk-DPUZ22D7.js";
8
8
  import "./chunk-TU3L3PW7.js";
9
9
  import {
10
10
  atomicWriteFileSync
11
11
  } from "./chunk-BMLQPSHP.js";
12
- import "./chunk-JTXHWIBO.js";
12
+ import "./chunk-FHHBPCCZ.js";
13
13
 
14
14
  // src/cli/batch.ts
15
15
  import Anthropic from "@anthropic-ai/sdk";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-BMLQPSHP.js";
18
18
  import {
19
19
  DEFAULT_MAX_TOKENS
20
- } from "./chunk-JTXHWIBO.js";
20
+ } from "./chunk-FHHBPCCZ.js";
21
21
 
22
22
  // src/providers/claude.ts
23
23
  import Anthropic from "@anthropic-ai/sdk";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-QMFMST2T.js";
5
5
  import {
6
6
  TEST_TIMEOUT
7
- } from "./chunk-YUQYVOY2.js";
7
+ } from "./chunk-SZQ2C3HH.js";
8
8
 
9
9
  // src/tools/builtin/run-tests.ts
10
10
  import { spawn as spawn2 } from "child_process";
@@ -11,7 +11,7 @@ import {
11
11
  CONFIG_FILE_NAME,
12
12
  HISTORY_DIR_NAME,
13
13
  PLUGINS_DIR_NAME
14
- } from "./chunk-JTXHWIBO.js";
14
+ } from "./chunk-FHHBPCCZ.js";
15
15
 
16
16
  // src/config/config-manager.ts
17
17
  import { readFileSync, existsSync, mkdirSync } from "fs";
@@ -16,7 +16,7 @@ import {
16
16
  setPreferredAgentName,
17
17
  truncateForPersist,
18
18
  undoStack
19
- } from "./chunk-A4KKNBG3.js";
19
+ } from "./chunk-YY4QFBBZ.js";
20
20
  import {
21
21
  buildReviewPrompt,
22
22
  buildSecurityReviewPrompt
@@ -51,7 +51,7 @@ import {
51
51
  touchMemoryReferences,
52
52
  updateMemoryApproval,
53
53
  updateMemoryEntry
54
- } from "./chunk-4RVLGIK3.js";
54
+ } from "./chunk-ZK5VCQD2.js";
55
55
  import {
56
56
  theme
57
57
  } from "./chunk-5C76XDDF.js";
@@ -65,7 +65,7 @@ import {
65
65
  import {
66
66
  buildDoctorReport,
67
67
  formatDoctorReport
68
- } from "./chunk-H4UIWMA5.js";
68
+ } from "./chunk-XMHVHS2X.js";
69
69
  import {
70
70
  describePlugin,
71
71
  getActivePluginAssets,
@@ -80,7 +80,7 @@ import {
80
80
  trustHook,
81
81
  trustPlugin,
82
82
  untrustHook
83
- } from "./chunk-YIEOU7NG.js";
83
+ } from "./chunk-EOYIIGBJ.js";
84
84
  import {
85
85
  isCleanDocumentBody,
86
86
  stripOuterCodeFence
@@ -109,7 +109,7 @@ import {
109
109
  MCP_TOOL_PREFIX,
110
110
  REPO_URL,
111
111
  VERSION
112
- } from "./chunk-JTXHWIBO.js";
112
+ } from "./chunk-FHHBPCCZ.js";
113
113
 
114
114
  // src/skills/manager.ts
115
115
  import { existsSync, readdirSync, mkdirSync, statSync } from "fs";
@@ -2445,7 +2445,7 @@ No tools match "${filter}".
2445
2445
  const { join: join6 } = await import("path");
2446
2446
  const { existsSync: existsSync6 } = await import("fs");
2447
2447
  const { getGitRoot } = await import("./git-context-EXOEHQSF.js");
2448
- const { MCP_PROJECT_CONFIG_NAME } = await import("./constants-WK2I2UCZ.js");
2448
+ const { MCP_PROJECT_CONFIG_NAME } = await import("./constants-5VQMHBFU.js");
2449
2449
  const { approveProject, hashMcpFile } = await import("./project-trust-KGG2BWKC.js");
2450
2450
  const cwd = process.cwd();
2451
2451
  const projectRoot = getGitRoot(cwd) ?? cwd;
@@ -3553,7 +3553,7 @@ function createReviewCommands() {
3553
3553
  usage: "/test [command|filter]",
3554
3554
  async execute(args, ctx) {
3555
3555
  try {
3556
- const { executeTests } = await import("./run-tests-CZLZW5RL.js");
3556
+ const { executeTests } = await import("./run-tests-BG6SGRWQ.js");
3557
3557
  const argStr = args.join(" ").trim();
3558
3558
  let testArgs = {};
3559
3559
  if (argStr) {
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  CONFIG_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-JTXHWIBO.js";
11
+ } from "./chunk-FHHBPCCZ.js";
12
12
 
13
13
  // src/diagnostics/tool-stats.ts
14
14
  import { mkdirSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.333";
4
+ var VERSION = "0.4.334";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  VERSION
4
- } from "./chunk-JTXHWIBO.js";
4
+ } from "./chunk-FHHBPCCZ.js";
5
5
 
6
6
  // src/cli/ci-format.ts
7
7
  var DEFAULT_CI_THRESHOLDS = {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-JTXHWIBO.js";
4
+ } from "./chunk-FHHBPCCZ.js";
5
5
  import {
6
6
  getExecutionConfigDir,
7
7
  getExecutionSignal
@@ -1,5 +1,5 @@
1
1
  // src/core/constants.ts
2
- var VERSION = "0.4.333";
2
+ var VERSION = "0.4.334";
3
3
  var APP_NAME = "ai-cli";
4
4
  var CONFIG_DIR_NAME = ".aicli";
5
5
  var CONFIG_FILE_NAME = "config.json";
@@ -8,13 +8,13 @@ import {
8
8
  listHooks,
9
9
  listInstalledPlugins,
10
10
  resetStats
11
- } from "./chunk-YIEOU7NG.js";
11
+ } from "./chunk-EOYIIGBJ.js";
12
12
  import {
13
13
  ProviderRegistry
14
- } from "./chunk-5MUAJ742.js";
14
+ } from "./chunk-27RTBMY7.js";
15
15
  import {
16
16
  ConfigManager
17
- } from "./chunk-ZQFOY5FB.js";
17
+ } from "./chunk-DPUZ22D7.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-JTXHWIBO.js";
29
+ } from "./chunk-FHHBPCCZ.js";
30
30
 
31
31
  // src/diagnostics/doctor-report.ts
32
32
  import { existsSync as existsSync3, statSync as statSync2 } from "fs";
@@ -12,7 +12,7 @@ import {
12
12
  MEMORY_FILE_NAME,
13
13
  MEMORY_MAX_CHARS,
14
14
  MEMORY_STORE_FILE_NAME
15
- } from "./chunk-YUQYVOY2.js";
15
+ } from "./chunk-SZQ2C3HH.js";
16
16
 
17
17
  // src/memory/persistent-memory.ts
18
18
  import { copyFileSync, existsSync, mkdirSync, readFileSync, statSync } from "fs";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  evaluateCiGate,
4
4
  normalizeCiThresholds
5
- } from "./chunk-NRDCQGAN.js";
5
+ } from "./chunk-KSZEQADY.js";
6
6
  import {
7
7
  buildReviewPrompt,
8
8
  buildSecurityReviewPrompt,
@@ -13,13 +13,13 @@ import {
13
13
  } from "./chunk-6YZEZFX5.js";
14
14
  import {
15
15
  ProviderRegistry
16
- } from "./chunk-5MUAJ742.js";
16
+ } from "./chunk-27RTBMY7.js";
17
17
  import {
18
18
  ConfigManager
19
- } from "./chunk-ZQFOY5FB.js";
19
+ } from "./chunk-DPUZ22D7.js";
20
20
  import {
21
21
  VERSION
22
- } from "./chunk-JTXHWIBO.js";
22
+ } from "./chunk-FHHBPCCZ.js";
23
23
 
24
24
  // src/cli/ci.ts
25
25
  import { execFileSync } from "child_process";
@@ -11,7 +11,7 @@ import {
11
11
  searchPersistentMemories,
12
12
  touchMemoryReferences,
13
13
  updateMemoryEntry
14
- } from "./chunk-4RVLGIK3.js";
14
+ } from "./chunk-ZK5VCQD2.js";
15
15
  import {
16
16
  indexProject
17
17
  } from "./chunk-RWRZVQCB.js";
@@ -30,7 +30,7 @@ import {
30
30
  runHook,
31
31
  runLifecycleHooks,
32
32
  runTool
33
- } from "./chunk-YIEOU7NG.js";
33
+ } from "./chunk-EOYIIGBJ.js";
34
34
  import {
35
35
  getDangerLevel,
36
36
  isFileWriteTool
@@ -66,7 +66,7 @@ import {
66
66
  recoverGbkMojibake,
67
67
  runTestsTool,
68
68
  shellInvocation
69
- } from "./chunk-K4AYNZF7.js";
69
+ } from "./chunk-RQOOEXDU.js";
70
70
  import {
71
71
  CONFIG_DIR_NAME,
72
72
  DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
@@ -75,7 +75,7 @@ import {
75
75
  SUBAGENT_ALLOWED_TOOLS,
76
76
  SUBAGENT_DEFAULT_MAX_ROUNDS,
77
77
  SUBAGENT_MAX_ROUNDS_LIMIT
78
- } from "./chunk-JTXHWIBO.js";
78
+ } from "./chunk-FHHBPCCZ.js";
79
79
  import {
80
80
  getCurrentSessionKey,
81
81
  getExecutionConfigDir,
@@ -13,7 +13,7 @@ import {
13
13
  MEMORY_FILE_NAME,
14
14
  MEMORY_MAX_CHARS,
15
15
  MEMORY_STORE_FILE_NAME
16
- } from "./chunk-JTXHWIBO.js";
16
+ } from "./chunk-FHHBPCCZ.js";
17
17
 
18
18
  // src/memory/persistent-memory.ts
19
19
  import { copyFileSync, existsSync, mkdirSync, readFileSync, statSync } from "fs";
@@ -3,17 +3,17 @@ import {
3
3
  CI_COMMENT_MARKER,
4
4
  countSeverity,
5
5
  runCi
6
- } from "./chunk-6WQCZTAJ.js";
7
- import "./chunk-NRDCQGAN.js";
6
+ } from "./chunk-YVEBRHSV.js";
7
+ import "./chunk-KSZEQADY.js";
8
8
  import "./chunk-HLWUDRBO.js";
9
9
  import "./chunk-6YZEZFX5.js";
10
- import "./chunk-5MUAJ742.js";
11
- import "./chunk-ZQFOY5FB.js";
10
+ import "./chunk-27RTBMY7.js";
11
+ import "./chunk-DPUZ22D7.js";
12
12
  import "./chunk-W4P2KJZN.js";
13
13
  import "./chunk-C6GA7H5D.js";
14
14
  import "./chunk-TU3L3PW7.js";
15
15
  import "./chunk-BMLQPSHP.js";
16
- import "./chunk-JTXHWIBO.js";
16
+ import "./chunk-FHHBPCCZ.js";
17
17
  export {
18
18
  CI_COMMENT_MARKER,
19
19
  countSeverity,
@@ -6,8 +6,8 @@ import {
6
6
  formatCiResult,
7
7
  formatCiSarif,
8
8
  normalizeCiThresholds
9
- } from "./chunk-NRDCQGAN.js";
10
- import "./chunk-JTXHWIBO.js";
9
+ } from "./chunk-KSZEQADY.js";
10
+ import "./chunk-FHHBPCCZ.js";
11
11
  export {
12
12
  DEFAULT_CI_THRESHOLDS,
13
13
  detectCiGateSignals,
@@ -39,7 +39,7 @@ import {
39
39
  TEST_TIMEOUT,
40
40
  VERSION,
41
41
  buildUserIdentityPrompt
42
- } from "./chunk-JTXHWIBO.js";
42
+ } from "./chunk-FHHBPCCZ.js";
43
43
  export {
44
44
  AGENTIC_BEHAVIOR_GUIDELINE,
45
45
  APP_NAME,
@@ -38,7 +38,7 @@ import {
38
38
  TEST_TIMEOUT,
39
39
  VERSION,
40
40
  buildUserIdentityPrompt
41
- } from "./chunk-YUQYVOY2.js";
41
+ } from "./chunk-SZQ2C3HH.js";
42
42
  export {
43
43
  AGENTIC_BEHAVIOR_GUIDELINE,
44
44
  APP_NAME,
@@ -2,17 +2,17 @@
2
2
  import {
3
3
  formatDoctorReport,
4
4
  runDoctorCli
5
- } from "./chunk-H4UIWMA5.js";
6
- import "./chunk-YIEOU7NG.js";
5
+ } from "./chunk-XMHVHS2X.js";
6
+ import "./chunk-EOYIIGBJ.js";
7
7
  import "./chunk-RS7SKYTS.js";
8
- import "./chunk-5MUAJ742.js";
9
- import "./chunk-ZQFOY5FB.js";
8
+ import "./chunk-27RTBMY7.js";
9
+ import "./chunk-DPUZ22D7.js";
10
10
  import "./chunk-W4P2KJZN.js";
11
11
  import "./chunk-C6GA7H5D.js";
12
12
  import "./chunk-TU3L3PW7.js";
13
13
  import "./chunk-HOSJZMQS.js";
14
14
  import "./chunk-BMLQPSHP.js";
15
- import "./chunk-JTXHWIBO.js";
15
+ import "./chunk-FHHBPCCZ.js";
16
16
  export {
17
17
  formatDoctorReport,
18
18
  runDoctorCli
@@ -55,7 +55,7 @@ import {
55
55
  touchMemoryReferences,
56
56
  updateMemoryApproval,
57
57
  updateMemoryEntry
58
- } from "./chunk-ZQ5HR7XN.js";
58
+ } from "./chunk-YTAYWGS4.js";
59
59
  import {
60
60
  DEFAULT_PATTERNS,
61
61
  redactJson,
@@ -81,7 +81,7 @@ import {
81
81
  recoverGbkMojibake,
82
82
  runTestsTool,
83
83
  shellInvocation
84
- } from "./chunk-4TKEA7RE.js";
84
+ } from "./chunk-7GGWVBHG.js";
85
85
  import {
86
86
  getCurrentSessionKey,
87
87
  getExecutionConfigDir,
@@ -123,7 +123,7 @@ import {
123
123
  SUBAGENT_MAX_ROUNDS_LIMIT,
124
124
  VERSION,
125
125
  buildUserIdentityPrompt
126
- } from "./chunk-YUQYVOY2.js";
126
+ } from "./chunk-SZQ2C3HH.js";
127
127
 
128
128
  // src/web/access.ts
129
129
  import { randomBytes, timingSafeEqual } from "crypto";
@@ -17944,7 +17944,7 @@ Cache: write=${cacheCreate} read=${cacheRead}` : "";
17944
17944
  Cost: ${formatCost(cost)}` : "";
17945
17945
  let memoryLine = "";
17946
17946
  try {
17947
- const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-6JN7AWD6.js");
17947
+ const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-WFGBTGWT.js");
17948
17948
  const pending = countPendingMemories2(ctx.config.getConfigDir());
17949
17949
  if (pending > 0) memoryLine = `
17950
17950
  Memory: \u26A0 ${pending} pending approval \u2014 see the Memory panel or /memory`;
@@ -18932,7 +18932,7 @@ async function handleTest(args, ctx) {
18932
18932
  const isCommand = argStr.includes(" ") || /^(mvn|gradle|npm|pytest|cargo|go)\b/.test(argStr);
18933
18933
  testArgs = isCommand ? { command: argStr } : { filter: argStr };
18934
18934
  }
18935
- const runTests = ctx.runTests ?? (await import("./run-tests-BKFV3HUZ.js")).executeTests;
18935
+ const runTests = ctx.runTests ?? (await import("./run-tests-TUTI7HIN.js")).executeTests;
18936
18936
  const report = await runTests(testArgs);
18937
18937
  ctx.send({ type: "info", message: report });
18938
18938
  } catch (err) {
@@ -19323,7 +19323,7 @@ async function handleMemory(args, ctx) {
19323
19323
  }
19324
19324
  if (intent.kind === "status") {
19325
19325
  const { getChatIndexStatus: getChatIndexStatus2 } = await import("./chat-index-RLVLQRRC.js");
19326
- const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-6JN7AWD6.js");
19326
+ const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-WFGBTGWT.js");
19327
19327
  const memories = listMemoryEntries2(configDir, { includeExpired: true, includeRejected: true });
19328
19328
  const injected = formatMemoryForPrompt2(configDir, process.cwd(), ctx.config.get("memory")?.maxChars);
19329
19329
  const view = buildMemoryStatusView({
@@ -19346,7 +19346,7 @@ async function handleMemory(args, ctx) {
19346
19346
  return;
19347
19347
  }
19348
19348
  if (intent.kind === "recall") {
19349
- const { searchPersistentMemories: searchPersistentMemories2, touchMemoryReferences: touchMemoryReferences2 } = await import("./persistent-memory-6JN7AWD6.js");
19349
+ const { searchPersistentMemories: searchPersistentMemories2, touchMemoryReferences: touchMemoryReferences2 } = await import("./persistent-memory-WFGBTGWT.js");
19350
19350
  const { searchChatMemory: searchChatMemory2 } = await import("./chat-index-RLVLQRRC.js");
19351
19351
  const persistentHits = searchPersistentMemories2(configDir, intent.query, process.cwd(), 3);
19352
19352
  if (persistentHits.length > 0) {
@@ -19467,7 +19467,7 @@ async function handleMemory(args, ctx) {
19467
19467
  ctx.handleMemoryManage(intent.action, args[1], intent.action === "expire" ? args[2] : void 0);
19468
19468
  } else if (intent.kind === "export") {
19469
19469
  if (args[1] === "md") {
19470
- const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-6JN7AWD6.js");
19470
+ const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-WFGBTGWT.js");
19471
19471
  ctx.send({
19472
19472
  type: "export_data",
19473
19473
  format: "md",
@@ -20473,7 +20473,7 @@ No tools match "${filter}".
20473
20473
  const { join: join27 } = await import("path");
20474
20474
  const { existsSync: existsSync33 } = await import("fs");
20475
20475
  const { getGitRoot: getGitRoot2 } = await import("./git-context-VNCA2GU7.js");
20476
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-C55HE2E5.js");
20476
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-WJAUJAQQ.js");
20477
20477
  const { approveProject, hashMcpFile } = await import("./project-trust-6CJB5ZMX.js");
20478
20478
  const cwd = process.cwd();
20479
20479
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -21392,7 +21392,7 @@ function createReviewCommands() {
21392
21392
  usage: "/test [command|filter]",
21393
21393
  async execute(args, ctx) {
21394
21394
  try {
21395
- const { executeTests } = await import("./run-tests-BKFV3HUZ.js");
21395
+ const { executeTests } = await import("./run-tests-TUTI7HIN.js");
21396
21396
  const argStr = args.join(" ").trim();
21397
21397
  let testArgs = {};
21398
21398
  if (argStr) {
@@ -148,7 +148,7 @@ ${content}`);
148
148
  }
149
149
  }
150
150
  async function runTaskMode(config, providers, configManager, topic) {
151
- const { TaskOrchestrator } = await import("./task-orchestrator-EVONAO6V.js");
151
+ const { TaskOrchestrator } = await import("./task-orchestrator-6JG5GAXU.js");
152
152
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
153
153
  let interrupted = false;
154
154
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ import {
24
24
  setupProxy,
25
25
  snapshotFile,
26
26
  stripRoutingTags
27
- } from "./chunk-3JGBKYCN.js";
27
+ } from "./chunk-DX4Y4CRH.js";
28
28
  import {
29
29
  CostTracker,
30
30
  getPricing,
@@ -47,7 +47,7 @@ import {
47
47
  setMaxOutputCap,
48
48
  spawnAgentContext,
49
49
  undoStack
50
- } from "./chunk-A4KKNBG3.js";
50
+ } from "./chunk-YY4QFBBZ.js";
51
51
  import "./chunk-HLWUDRBO.js";
52
52
  import {
53
53
  NO_THINKING,
@@ -60,7 +60,7 @@ import {
60
60
  countPendingMemories,
61
61
  detectStaleLegacyMarkdownEdit,
62
62
  formatMemoryForPrompt
63
- } from "./chunk-4RVLGIK3.js";
63
+ } from "./chunk-ZK5VCQD2.js";
64
64
  import "./chunk-RWRZVQCB.js";
65
65
  import "./chunk-B3MPYI4E.js";
66
66
  import "./chunk-M6HLYG33.js";
@@ -81,22 +81,22 @@ import {
81
81
  import {
82
82
  loadContextFiles,
83
83
  writeCrashLog
84
- } from "./chunk-H4UIWMA5.js";
84
+ } from "./chunk-XMHVHS2X.js";
85
85
  import {
86
86
  getActivePluginAssets,
87
87
  getPendingHookTrust,
88
88
  installFlushOnExit,
89
89
  mergePluginHooks,
90
90
  runLifecycleHooks
91
- } from "./chunk-YIEOU7NG.js";
91
+ } from "./chunk-EOYIIGBJ.js";
92
92
  import "./chunk-RS7SKYTS.js";
93
93
  import {
94
94
  ProviderRegistry,
95
95
  listBuiltInProviderMetadata
96
- } from "./chunk-5MUAJ742.js";
96
+ } from "./chunk-27RTBMY7.js";
97
97
  import {
98
98
  ConfigManager
99
- } from "./chunk-ZQFOY5FB.js";
99
+ } from "./chunk-DPUZ22D7.js";
100
100
  import "./chunk-W4P2KJZN.js";
101
101
  import {
102
102
  CONTENT_ONLY_STREAM_REMINDER,
@@ -135,7 +135,7 @@ import {
135
135
  isInterrupted,
136
136
  requestInterrupt,
137
137
  resetInterrupt
138
- } from "./chunk-K4AYNZF7.js";
138
+ } from "./chunk-RQOOEXDU.js";
139
139
  import {
140
140
  AGENTIC_BEHAVIOR_GUIDELINE,
141
141
  AUTHOR,
@@ -153,7 +153,7 @@ import {
153
153
  SKILLS_DIR_NAME,
154
154
  VERSION,
155
155
  buildUserIdentityPrompt
156
- } from "./chunk-JTXHWIBO.js";
156
+ } from "./chunk-FHHBPCCZ.js";
157
157
  import "./chunk-SXIJLSVF.js";
158
158
 
159
159
  // src/index.ts
@@ -4119,7 +4119,7 @@ program.command("web").description("Start Web UI server with browser-based chat
4119
4119
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
4120
4120
  process.exit(1);
4121
4121
  }
4122
- const { startWebServer, WebStartupError } = await import("./server-2UB74CEK.js");
4122
+ const { startWebServer, WebStartupError } = await import("./server-S6OROC7S.js");
4123
4123
  try {
4124
4124
  await startWebServer({ port, host: options.host, externalOrigin: options.externalOrigin });
4125
4125
  } catch (err) {
@@ -4296,11 +4296,11 @@ program.command("sessions").description("List recent conversation sessions").opt
4296
4296
  console.log(footer + "\n");
4297
4297
  });
4298
4298
  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) => {
4299
- const { runUsageCli } = await import("./usage-6Y7K2GNN.js");
4299
+ const { runUsageCli } = await import("./usage-LPQQ6NGG.js");
4300
4300
  await runUsageCli(options);
4301
4301
  });
4302
4302
  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) => {
4303
- const { runDoctorCli } = await import("./doctor-cli-63GBR2D3.js");
4303
+ const { runDoctorCli } = await import("./doctor-cli-DYQLNMPT.js");
4304
4304
  const argv = process.argv.slice(2);
4305
4305
  await runDoctorCli({
4306
4306
  json: !!options.json || argv.includes("--json"),
@@ -4309,7 +4309,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
4309
4309
  });
4310
4310
  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) => {
4311
4311
  try {
4312
- const batch = await import("./batch-TYKULVIK.js");
4312
+ const batch = await import("./batch-6UJGEEVB.js");
4313
4313
  switch (action) {
4314
4314
  case "submit":
4315
4315
  if (!arg) {
@@ -4352,7 +4352,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
4352
4352
  }
4353
4353
  });
4354
4354
  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) => {
4355
- const { startMcpServer } = await import("./server-2GYX4CJC.js");
4355
+ const { startMcpServer } = await import("./server-4QJPQBEW.js");
4356
4356
  await startMcpServer({
4357
4357
  allowDestructive: !!options.allowDestructive,
4358
4358
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -4365,7 +4365,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
4365
4365
  console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
4366
4366
  process.exit(1);
4367
4367
  }
4368
- const { runPrCli } = await import("./pr-C53TJRXV.js");
4368
+ const { runPrCli } = await import("./pr-IPXLVP2K.js");
4369
4369
  const result = await runPrCli({
4370
4370
  action,
4371
4371
  target,
@@ -4385,8 +4385,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
4385
4385
  process.exit(result.exitCode);
4386
4386
  });
4387
4387
  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) => {
4388
- const { runCi } = await import("./ci-MYKIATCI.js");
4389
- const { formatCiResult } = await import("./ci-format-QOXT6E3A.js");
4388
+ const { runCi } = await import("./ci-S7WXRTZ6.js");
4389
+ const { formatCiResult } = await import("./ci-format-TPCL2KWQ.js");
4390
4390
  const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
4391
4391
  if (formats > 1) {
4392
4392
  console.error("Choose only one output format: --json, --markdown, or --sarif.");
@@ -4545,7 +4545,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
4545
4545
  config.get("customProviders"),
4546
4546
  config.getConfigDir()
4547
4547
  );
4548
- const { startHub } = await import("./hub-J4FZ4GXX.js");
4548
+ const { startHub } = await import("./hub-A7P2ZBYB.js");
4549
4549
  await startHub(
4550
4550
  {
4551
4551
  topic: topic ?? "",
@@ -28,11 +28,11 @@ import {
28
28
  touchMemoryReferences,
29
29
  updateMemoryApproval,
30
30
  updateMemoryEntry
31
- } from "./chunk-4RVLGIK3.js";
31
+ } from "./chunk-ZK5VCQD2.js";
32
32
  import "./chunk-3FEZSLGI.js";
33
33
  import "./chunk-HOSJZMQS.js";
34
34
  import "./chunk-BMLQPSHP.js";
35
- import "./chunk-JTXHWIBO.js";
35
+ import "./chunk-FHHBPCCZ.js";
36
36
  export {
37
37
  addMemoryEntry,
38
38
  backupMemoryStore,
@@ -27,11 +27,11 @@ import {
27
27
  touchMemoryReferences,
28
28
  updateMemoryApproval,
29
29
  updateMemoryEntry
30
- } from "./chunk-ZQ5HR7XN.js";
30
+ } from "./chunk-YTAYWGS4.js";
31
31
  import "./chunk-FSC6KEWU.js";
32
32
  import "./chunk-2XMUCC42.js";
33
33
  import "./chunk-CGLYJRFA.js";
34
- import "./chunk-YUQYVOY2.js";
34
+ import "./chunk-SZQ2C3HH.js";
35
35
  export {
36
36
  addMemoryEntry,
37
37
  backupMemoryStore,
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  countSeverity,
4
4
  runCi
5
- } from "./chunk-6WQCZTAJ.js";
6
- import "./chunk-NRDCQGAN.js";
5
+ } from "./chunk-YVEBRHSV.js";
6
+ import "./chunk-KSZEQADY.js";
7
7
  import {
8
8
  buildReviewPrompt,
9
9
  buildSecurityReviewPrompt,
@@ -14,17 +14,17 @@ import {
14
14
  } from "./chunk-6YZEZFX5.js";
15
15
  import {
16
16
  ProviderRegistry
17
- } from "./chunk-5MUAJ742.js";
17
+ } from "./chunk-27RTBMY7.js";
18
18
  import {
19
19
  ConfigManager
20
- } from "./chunk-ZQFOY5FB.js";
20
+ } from "./chunk-DPUZ22D7.js";
21
21
  import "./chunk-W4P2KJZN.js";
22
22
  import "./chunk-C6GA7H5D.js";
23
23
  import "./chunk-TU3L3PW7.js";
24
24
  import "./chunk-BMLQPSHP.js";
25
25
  import {
26
26
  VERSION
27
- } from "./chunk-JTXHWIBO.js";
27
+ } from "./chunk-FHHBPCCZ.js";
28
28
 
29
29
  // src/cli/pr.ts
30
30
  import { execFileSync } from "child_process";
@@ -3,8 +3,8 @@ import {
3
3
  executeTests,
4
4
  runTestProcess,
5
5
  runTestsTool
6
- } from "./chunk-K4AYNZF7.js";
7
- import "./chunk-JTXHWIBO.js";
6
+ } from "./chunk-RQOOEXDU.js";
7
+ import "./chunk-FHHBPCCZ.js";
8
8
  import "./chunk-SXIJLSVF.js";
9
9
  export {
10
10
  executeTests,
@@ -2,9 +2,9 @@ import {
2
2
  executeTests,
3
3
  runTestProcess,
4
4
  runTestsTool
5
- } from "./chunk-4TKEA7RE.js";
5
+ } from "./chunk-7GGWVBHG.js";
6
6
  import "./chunk-QMFMST2T.js";
7
- import "./chunk-YUQYVOY2.js";
7
+ import "./chunk-SZQ2C3HH.js";
8
8
  export {
9
9
  executeTests,
10
10
  runTestProcess,
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ToolRegistry
4
- } from "./chunk-A4KKNBG3.js";
4
+ } from "./chunk-YY4QFBBZ.js";
5
5
  import "./chunk-6JHACXB3.js";
6
- import "./chunk-4RVLGIK3.js";
6
+ import "./chunk-ZK5VCQD2.js";
7
7
  import "./chunk-RWRZVQCB.js";
8
8
  import "./chunk-B3MPYI4E.js";
9
9
  import "./chunk-M6HLYG33.js";
@@ -14,7 +14,7 @@ import "./chunk-JL44HGZC.js";
14
14
  import "./chunk-3FEZSLGI.js";
15
15
  import {
16
16
  runTool
17
- } from "./chunk-YIEOU7NG.js";
17
+ } from "./chunk-EOYIIGBJ.js";
18
18
  import "./chunk-RS7SKYTS.js";
19
19
  import {
20
20
  getDangerLevel,
@@ -25,10 +25,10 @@ import "./chunk-TU3L3PW7.js";
25
25
  import "./chunk-HOSJZMQS.js";
26
26
  import "./chunk-BMLQPSHP.js";
27
27
  import "./chunk-JJFJWD35.js";
28
- import "./chunk-K4AYNZF7.js";
28
+ import "./chunk-RQOOEXDU.js";
29
29
  import {
30
30
  VERSION
31
- } from "./chunk-JTXHWIBO.js";
31
+ } from "./chunk-FHHBPCCZ.js";
32
32
  import "./chunk-SXIJLSVF.js";
33
33
 
34
34
  // src/mcp/server.ts
@@ -88,7 +88,7 @@ import {
88
88
  skillHistoryNote,
89
89
  snapshotFile,
90
90
  stripRoutingTags
91
- } from "./chunk-3JGBKYCN.js";
91
+ } from "./chunk-DX4Y4CRH.js";
92
92
  import {
93
93
  CNY_PER_USD,
94
94
  CostTracker,
@@ -132,7 +132,7 @@ import {
132
132
  spawnAgentContext,
133
133
  truncateOutput,
134
134
  undoStack
135
- } from "./chunk-A4KKNBG3.js";
135
+ } from "./chunk-YY4QFBBZ.js";
136
136
  import {
137
137
  buildReviewPrompt,
138
138
  buildSecurityReviewPrompt
@@ -159,7 +159,7 @@ import {
159
159
  restoreMemoryEntries,
160
160
  updateMemoryApproval,
161
161
  updateMemoryEntry
162
- } from "./chunk-4RVLGIK3.js";
162
+ } from "./chunk-ZK5VCQD2.js";
163
163
  import "./chunk-RWRZVQCB.js";
164
164
  import "./chunk-B3MPYI4E.js";
165
165
  import "./chunk-M6HLYG33.js";
@@ -178,7 +178,7 @@ import {
178
178
  buildDoctorReport,
179
179
  formatDoctorReport,
180
180
  loadContextFiles
181
- } from "./chunk-H4UIWMA5.js";
181
+ } from "./chunk-XMHVHS2X.js";
182
182
  import {
183
183
  describePlugin,
184
184
  getActivePluginAssets,
@@ -193,14 +193,14 @@ import {
193
193
  runTool,
194
194
  setPluginEnabled,
195
195
  trustPlugin
196
- } from "./chunk-YIEOU7NG.js";
196
+ } from "./chunk-EOYIIGBJ.js";
197
197
  import "./chunk-RS7SKYTS.js";
198
198
  import {
199
199
  ProviderRegistry
200
- } from "./chunk-5MUAJ742.js";
200
+ } from "./chunk-27RTBMY7.js";
201
201
  import {
202
202
  ConfigManager
203
- } from "./chunk-ZQFOY5FB.js";
203
+ } from "./chunk-DPUZ22D7.js";
204
204
  import {
205
205
  getDangerLevel
206
206
  } from "./chunk-W4P2KJZN.js";
@@ -235,7 +235,7 @@ import {
235
235
  import {
236
236
  assertReadablePath
237
237
  } from "./chunk-JJFJWD35.js";
238
- import "./chunk-K4AYNZF7.js";
238
+ import "./chunk-RQOOEXDU.js";
239
239
  import {
240
240
  AGENTIC_BEHAVIOR_GUIDELINE,
241
241
  AUTHOR,
@@ -251,7 +251,7 @@ import {
251
251
  SKILLS_DIR_NAME,
252
252
  VERSION,
253
253
  buildUserIdentityPrompt
254
- } from "./chunk-JTXHWIBO.js";
254
+ } from "./chunk-FHHBPCCZ.js";
255
255
  import {
256
256
  runWithExecutionContext,
257
257
  runWithSessionKey
@@ -983,7 +983,7 @@ Cache: write=${cacheCreate} read=${cacheRead}` : "";
983
983
  Cost: ${formatCost(cost)}` : "";
984
984
  let memoryLine = "";
985
985
  try {
986
- const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-AEIRTKWX.js");
986
+ const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-SKGOCEGT.js");
987
987
  const pending = countPendingMemories2(ctx.config.getConfigDir());
988
988
  if (pending > 0) memoryLine = `
989
989
  Memory: \u26A0 ${pending} pending approval \u2014 see the Memory panel or /memory`;
@@ -1912,7 +1912,7 @@ async function handleTest(args, ctx) {
1912
1912
  const isCommand = argStr.includes(" ") || /^(mvn|gradle|npm|pytest|cargo|go)\b/.test(argStr);
1913
1913
  testArgs = isCommand ? { command: argStr } : { filter: argStr };
1914
1914
  }
1915
- const runTests = ctx.runTests ?? (await import("./run-tests-CZLZW5RL.js")).executeTests;
1915
+ const runTests = ctx.runTests ?? (await import("./run-tests-BG6SGRWQ.js")).executeTests;
1916
1916
  const report = await runTests(testArgs);
1917
1917
  ctx.send({ type: "info", message: report });
1918
1918
  } catch (err) {
@@ -2188,7 +2188,7 @@ async function handleMemory(args, ctx) {
2188
2188
  }
2189
2189
  if (intent.kind === "status") {
2190
2190
  const { getChatIndexStatus } = await import("./chat-index-7CLR4CBG.js");
2191
- const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-AEIRTKWX.js");
2191
+ const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-SKGOCEGT.js");
2192
2192
  const memories = listMemoryEntries2(configDir, { includeExpired: true, includeRejected: true });
2193
2193
  const injected = formatMemoryForPrompt2(configDir, process.cwd(), ctx.config.get("memory")?.maxChars);
2194
2194
  const view = buildMemoryStatusView({
@@ -2211,7 +2211,7 @@ async function handleMemory(args, ctx) {
2211
2211
  return;
2212
2212
  }
2213
2213
  if (intent.kind === "recall") {
2214
- const { searchPersistentMemories, touchMemoryReferences } = await import("./persistent-memory-AEIRTKWX.js");
2214
+ const { searchPersistentMemories, touchMemoryReferences } = await import("./persistent-memory-SKGOCEGT.js");
2215
2215
  const { searchChatMemory } = await import("./chat-index-7CLR4CBG.js");
2216
2216
  const persistentHits = searchPersistentMemories(configDir, intent.query, process.cwd(), 3);
2217
2217
  if (persistentHits.length > 0) {
@@ -2332,7 +2332,7 @@ async function handleMemory(args, ctx) {
2332
2332
  ctx.handleMemoryManage(intent.action, args[1], intent.action === "expire" ? args[2] : void 0);
2333
2333
  } else if (intent.kind === "export") {
2334
2334
  if (args[1] === "md") {
2335
- const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-AEIRTKWX.js");
2335
+ const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-SKGOCEGT.js");
2336
2336
  ctx.send({
2337
2337
  type: "export_data",
2338
2338
  format: "md",
@@ -4,9 +4,9 @@ import {
4
4
  googleSearchContext,
5
5
  isToolCapableProvider,
6
6
  truncateOutput
7
- } from "./chunk-A4KKNBG3.js";
7
+ } from "./chunk-YY4QFBBZ.js";
8
8
  import "./chunk-6JHACXB3.js";
9
- import "./chunk-4RVLGIK3.js";
9
+ import "./chunk-ZK5VCQD2.js";
10
10
  import "./chunk-RWRZVQCB.js";
11
11
  import "./chunk-B3MPYI4E.js";
12
12
  import "./chunk-M6HLYG33.js";
@@ -17,7 +17,7 @@ import "./chunk-JL44HGZC.js";
17
17
  import "./chunk-3FEZSLGI.js";
18
18
  import {
19
19
  runTool
20
- } from "./chunk-YIEOU7NG.js";
20
+ } from "./chunk-EOYIIGBJ.js";
21
21
  import "./chunk-RS7SKYTS.js";
22
22
  import {
23
23
  getDangerLevel
@@ -31,10 +31,10 @@ import {
31
31
  atomicWriteFileSync
32
32
  } from "./chunk-BMLQPSHP.js";
33
33
  import "./chunk-JJFJWD35.js";
34
- import "./chunk-K4AYNZF7.js";
34
+ import "./chunk-RQOOEXDU.js";
35
35
  import {
36
36
  SUBAGENT_ALLOWED_TOOLS
37
- } from "./chunk-JTXHWIBO.js";
37
+ } from "./chunk-FHHBPCCZ.js";
38
38
  import "./chunk-SXIJLSVF.js";
39
39
 
40
40
  // src/hub/task-orchestrator.ts
@@ -9,10 +9,10 @@ import {
9
9
  import "./chunk-RS7SKYTS.js";
10
10
  import {
11
11
  ConfigManager
12
- } from "./chunk-ZQFOY5FB.js";
12
+ } from "./chunk-DPUZ22D7.js";
13
13
  import "./chunk-TU3L3PW7.js";
14
14
  import "./chunk-BMLQPSHP.js";
15
- import "./chunk-JTXHWIBO.js";
15
+ import "./chunk-FHHBPCCZ.js";
16
16
 
17
17
  // src/cli/usage.ts
18
18
  function classifyRowCost(row) {
@@ -3290,7 +3290,8 @@ function hubStarted(msg) {
3290
3290
  const col = document.createElement('div');
3291
3291
  col.className = 'hub-lane flex-1 min-w-[200px] border rounded-lg overflow-hidden';
3292
3292
  col.style.borderColor = hubColor(r.color);
3293
- col.innerHTML = `<div class="text-xs font-bold px-2 py-1" style="background:${hubColor(r.color)}22;color:${hubColor(r.color)}">${escapeHtml(r.name)}</div><div class="hub-lane-body p-2 text-sm flex flex-col gap-2"></div>`;
3293
+ // 每列限高、内部滚动:不限高时几轮下来三列越拉越长,正在输出的那段被推出画面
3294
+ col.innerHTML = `<div class="text-xs font-bold px-2 py-1" style="background:${hubColor(r.color)}22;color:${hubColor(r.color)}">${escapeHtml(r.name)}</div><div class="hub-lane-body p-2 text-sm flex flex-col gap-2 overflow-y-auto" style="max-height:55vh"></div>`;
3294
3295
  lanes.appendChild(col);
3295
3296
  hubLaneBody[r.id] = col.querySelector('.hub-lane-body');
3296
3297
  }
@@ -3323,6 +3324,7 @@ function hubEvent(ev) {
3323
3324
  if (hubStreamRoleId !== ev.roleId || !hubStreamEl) hubOpenTurn(ev.roleId);
3324
3325
  hubStreamEl._raw += ev.token;
3325
3326
  appendStreamText(hubStreamEl.querySelector('.hub-body'), ev.token);
3327
+ if (hubLaneMode && hubLaneBody[ev.roleId]) hubLaneBody[ev.roleId].scrollTop = hubLaneBody[ev.roleId].scrollHeight;
3326
3328
  scrollToBottom();
3327
3329
  break;
3328
3330
  }
@@ -3410,10 +3412,12 @@ function hubReview(msg) {
3410
3412
  answered = true;
3411
3413
  const message = input.value.trim();
3412
3414
  send({ type: 'hub_steer', requestId: msg.requestId, action, message: message || undefined });
3413
- card.querySelectorAll('input,button').forEach(e => e.disabled = true);
3414
- card.querySelector('.text-sm').textContent = action === 'stop'
3415
+ // 答完收成一行:整张卡片留着会一轮叠一张,把讨论内容推出画面
3416
+ card.className = 'hub-review hub-review-done text-xs opacity-70 my-1 pl-2';
3417
+ card.textContent = action === 'stop'
3415
3418
  ? '🧭 Stopping…'
3416
- : (message ? `🧭 Steered: ${message}` : '🧭 Continuing…');
3419
+ : (message ? `🧭 Steered: ${message}` : `🧭 Round ${msg.round}/${msg.maxRounds} → continue`);
3420
+ if (message) card.classList.add('font-semibold');
3417
3421
  };
3418
3422
  contBtn.addEventListener('click', () => finish('continue'));
3419
3423
  stopBtn.addEventListener('click', () => finish('stop'));
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.333",
3
+ "version": "0.4.334",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",