jinzd-ai-cli 0.4.245 → 0.4.247

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 (46) hide show
  1. package/README.md +8 -3
  2. package/README.zh-CN.md +8 -3
  3. package/dist/{batch-MRP2KUFC.js → batch-UE7XQMQB.js} +2 -2
  4. package/dist/{chat-index-ALUHFJKI.js → chat-index-7MMTGQNA.js} +2 -2
  5. package/dist/{chat-index-ML5FF5L6.js → chat-index-Q6BKWWAM.js} +1 -1
  6. package/dist/{chunk-JM2DX7OY.js → chunk-3IIKIWT2.js} +1 -1
  7. package/dist/{chunk-H3PEWUFY.js → chunk-3IM53IFO.js} +1 -1
  8. package/dist/{chunk-UM2OVVLP.js → chunk-4EZWVX7G.js} +1 -1
  9. package/dist/{chunk-WKXADWWK.js → chunk-4GKWLTU3.js} +4 -4
  10. package/dist/{chunk-KEAUVMKS.js → chunk-6Q2XAWKP.js} +1 -1
  11. package/dist/{chunk-IGPFYNZA.js → chunk-6RPGQ5CG.js} +1 -1
  12. package/dist/{chunk-K3CF65QH.js → chunk-GLSR2NR3.js} +1 -1
  13. package/dist/{chunk-WWHTQHIN.js → chunk-IP7LPVRW.js} +1 -1
  14. package/dist/{chunk-DT77O33T.js → chunk-JQXXPTWL.js} +1 -1
  15. package/dist/{chunk-XYXVTHOB.js → chunk-KPRU6QY3.js} +4 -5
  16. package/dist/{chunk-PJ3ONBWZ.js → chunk-NYNSYLFY.js} +1 -1
  17. package/dist/{chunk-KWQKQVPH.js → chunk-OBULDJSU.js} +1 -1
  18. package/dist/{chunk-A4MLBB4H.js → chunk-Q2OMGJIQ.js} +28 -15
  19. package/dist/{chunk-BNERFXVO.js → chunk-QCG6UU2S.js} +1 -1
  20. package/dist/{chunk-O357YW7E.js → chunk-REBKFMF3.js} +1 -1
  21. package/dist/{chunk-4UIVLJAP.js → chunk-RZV6WSER.js} +1 -1
  22. package/dist/{chunk-QYQI7ZWK.js → chunk-S7ZS7X23.js} +0 -1
  23. package/dist/{chunk-XH4JPEIZ.js → chunk-TBXMRJHS.js} +1 -1
  24. package/dist/{chunk-Y6KDBGY7.js → chunk-VN6OGMSV.js} +1 -1
  25. package/dist/{chunk-M7BQVFMF.js → chunk-VPM5WRJ2.js} +4 -4
  26. package/dist/{chunk-NV63EYFL.js → chunk-ZWEZNKDW.js} +1 -1
  27. package/dist/{ci-Q3LQQT7K.js → ci-EY6USUO7.js} +5 -5
  28. package/dist/{ci-format-L2WPVFFC.js → ci-format-CZNUUWEV.js} +2 -2
  29. package/dist/{constants-DTPJHB6W.js → constants-UDRMWAPN.js} +1 -1
  30. package/dist/{doctor-cli-AEVPW6VY.js → doctor-cli-GY654USP.js} +5 -5
  31. package/dist/electron-server.js +170 -139
  32. package/dist/{hub-PPNKIMPG.js → hub-L2WX4255.js} +2 -2
  33. package/dist/index.js +29 -30
  34. package/dist/{indexer-4WWS3VIL.js → indexer-M2LJGTY2.js} +1 -1
  35. package/dist/{indexer-2AG4G6B5.js → indexer-VZETNE4H.js} +1 -1
  36. package/dist/{persist-WGIJ6RXY.js → persist-A2QSXYFY.js} +3 -3
  37. package/dist/{persistent-memory-YLB2ZSB2.js → persistent-memory-G24RJ5LA.js} +2 -2
  38. package/dist/{persistent-memory-ZIC4UA2W.js → persistent-memory-JCX3P2CF.js} +2 -2
  39. package/dist/{pr-Z3NX3SG5.js → pr-B5P2M6DV.js} +5 -5
  40. package/dist/{run-tests-WW6VCT23.js → run-tests-N2JQGL4C.js} +2 -2
  41. package/dist/{run-tests-42DWRQAR.js → run-tests-QEIR322E.js} +2 -2
  42. package/dist/{server-KX6WKW6V.js → server-4OAE6OEK.js} +8 -8
  43. package/dist/{server-NNDBF3SH.js → server-QDMMCD3O.js} +112 -92
  44. package/dist/{task-orchestrator-DEDL6YAZ.js → task-orchestrator-VZXU2HK3.js} +8 -9
  45. package/dist/{usage-QAMWSX52.js → usage-LH3LNYAS.js} +2 -2
  46. package/package.json +5 -4
package/README.md CHANGED
@@ -1,8 +1,13 @@
1
1
  **English** | [中文](README.zh-CN.md)
2
2
 
3
- # ai-cli
4
-
5
- > A cross-platform AI coding assistant — CLI, Web UI, and Desktop App — with multi-provider support and agentic tool calling
3
+ # ai-cli
4
+
5
+ <!-- AICLI:DOCS_DEFAULT_WEB_PORT=3000 -->
6
+ <!-- AICLI:DOCS_BUILTIN_TOOL_COUNT=30 -->
7
+ <!-- AICLI:DOCS_REPL_COMMAND_COUNT=48 -->
8
+ <!-- AICLI:DOCS_MEMORY_SOURCE=memory.jsonl -->
9
+
10
+ > A cross-platform AI coding assistant — CLI, Web UI, and Desktop App — with multi-provider support and agentic tool calling
6
11
 
7
12
  [![npm version](https://img.shields.io/npm/v/jinzd-ai-cli)](https://www.npmjs.com/package/jinzd-ai-cli)
8
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
package/README.zh-CN.md CHANGED
@@ -1,8 +1,13 @@
1
1
  [English](README.md) | **中文**
2
2
 
3
- # ai-cli
4
-
5
- > 跨平台 AI 编程助手 — CLI 终端、Web 界面、桌面应用三合一,支持 10 大 Provider(含本地 Ollama)与 Agentic 工具调用
3
+ # ai-cli
4
+
5
+ <!-- AICLI:DOCS_DEFAULT_WEB_PORT=3000 -->
6
+ <!-- AICLI:DOCS_BUILTIN_TOOL_COUNT=30 -->
7
+ <!-- AICLI:DOCS_REPL_COMMAND_COUNT=48 -->
8
+ <!-- AICLI:DOCS_MEMORY_SOURCE=memory.jsonl -->
9
+
10
+ > 跨平台 AI 编程助手 — CLI 终端、Web 界面、桌面应用三合一,支持 10 大 Provider(含本地 Ollama)与 Agentic 工具调用
6
11
 
7
12
  [![npm version](https://img.shields.io/npm/v/jinzd-ai-cli)](https://www.npmjs.com/package/jinzd-ai-cli)
8
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigManager
4
- } from "./chunk-XH4JPEIZ.js";
4
+ } from "./chunk-TBXMRJHS.js";
5
5
  import "./chunk-5ULLIOVC.js";
6
- import "./chunk-KEAUVMKS.js";
6
+ import "./chunk-6Q2XAWKP.js";
7
7
  import {
8
8
  atomicWriteFileSync
9
9
  } from "./chunk-IW3Q7AE5.js";
@@ -6,9 +6,9 @@ import {
6
6
  getChatIndexStatus,
7
7
  loadChatIndex,
8
8
  searchChatMemory
9
- } from "./chunk-IGPFYNZA.js";
9
+ } from "./chunk-6RPGQ5CG.js";
10
10
  import "./chunk-KHYD3WXE.js";
11
- import "./chunk-PJ3ONBWZ.js";
11
+ import "./chunk-NYNSYLFY.js";
12
12
  import "./chunk-B5TYJO7V.js";
13
13
  import "./chunk-IW3Q7AE5.js";
14
14
  export {
@@ -5,7 +5,7 @@ import {
5
5
  getChatIndexStatus,
6
6
  loadChatIndex,
7
7
  searchChatMemory
8
- } from "./chunk-NV63EYFL.js";
8
+ } from "./chunk-ZWEZNKDW.js";
9
9
  import "./chunk-YVTASHS5.js";
10
10
  import "./chunk-JV5N65KN.js";
11
11
  import "./chunk-6BUTA5VW.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-KEAUVMKS.js";
4
+ } from "./chunk-6Q2XAWKP.js";
5
5
 
6
6
  // src/tools/builtin/run-tests.ts
7
7
  import { execSync, spawnSync } from "child_process";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CONFIG_DIR_NAME,
4
4
  PLUGINS_DIR_NAME
5
- } from "./chunk-KEAUVMKS.js";
5
+ } from "./chunk-6Q2XAWKP.js";
6
6
  import {
7
7
  atomicWriteFileSync
8
8
  } from "./chunk-IW3Q7AE5.js";
@@ -1,5 +1,5 @@
1
1
  // src/core/constants.ts
2
- var VERSION = "0.4.245";
2
+ var VERSION = "0.4.247";
3
3
  var APP_NAME = "ai-cli";
4
4
  var CONFIG_DIR_NAME = ".aicli";
5
5
  var CONFIG_FILE_NAME = "config.json";
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ProviderRegistry
4
- } from "./chunk-QYQI7ZWK.js";
4
+ } from "./chunk-S7ZS7X23.js";
5
5
  import {
6
6
  ConfigManager
7
- } from "./chunk-XH4JPEIZ.js";
7
+ } from "./chunk-TBXMRJHS.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-H3PEWUFY.js";
17
+ } from "./chunk-3IM53IFO.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-KEAUVMKS.js";
29
+ } from "./chunk-6Q2XAWKP.js";
30
30
 
31
31
  // src/diagnostics/doctor-report.ts
32
32
  import { existsSync as existsSync3, statSync as statSync2 } 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.245";
4
+ var VERSION = "0.4.247";
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
  } from "./chunk-KHYD3WXE.js";
7
7
  import {
8
8
  getIndexMtimeMap
9
- } from "./chunk-PJ3ONBWZ.js";
9
+ } from "./chunk-NYNSYLFY.js";
10
10
  import {
11
11
  redactString
12
12
  } from "./chunk-B5TYJO7V.js";
@@ -547,7 +547,7 @@ async function parseSource(file, source, language) {
547
547
  default:
548
548
  return extractTsJs(root, file, lang);
549
549
  }
550
- } catch (err) {
550
+ } catch {
551
551
  return [];
552
552
  }
553
553
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TEST_TIMEOUT
3
- } from "./chunk-UM2OVVLP.js";
3
+ } from "./chunk-4EZWVX7G.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
  SessionManager
4
- } from "./chunk-KWQKQVPH.js";
4
+ } from "./chunk-OBULDJSU.js";
5
5
 
6
6
  // src/hub/persist.ts
7
7
  import { join } from "path";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  truncateForPersist
4
- } from "./chunk-A4MLBB4H.js";
4
+ } from "./chunk-Q2OMGJIQ.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-KEAUVMKS.js";
14
+ } from "./chunk-6Q2XAWKP.js";
15
15
  import {
16
16
  atomicWriteFileSync
17
17
  } from "./chunk-IW3Q7AE5.js";
@@ -163,12 +163,11 @@ var McpClient = class {
163
163
  method,
164
164
  ...params !== void 0 ? { params } : {}
165
165
  };
166
- let timer;
167
166
  const cleanup = () => {
168
167
  this.pendingRequests.delete(id);
169
168
  clearTimeout(timer);
170
169
  };
171
- timer = setTimeout(() => {
170
+ const timer = setTimeout(() => {
172
171
  cleanup();
173
172
  reject(new Error(`MCP request [${method}] timed out (internal)`));
174
173
  }, MCP_CALL_TIMEOUT * 2);
@@ -953,7 +952,7 @@ function autoTrimSessionIfNeeded(session, sizeLimit = SESSION_SIZE_LIMIT) {
953
952
  const originalSize = JSON.stringify(session.toJSON()).length;
954
953
  if (originalSize <= sizeLimit) return false;
955
954
  const snapshotLen = session.messages.length;
956
- let working = cloneMessages(session.messages.slice(0, snapshotLen));
955
+ const working = cloneMessages(session.messages.slice(0, snapshotLen));
957
956
  let committedSize = originalSize;
958
957
  let anyTrim = false;
959
958
  let keepRecent = 10;
@@ -163,7 +163,7 @@ function rebuildIndex(historyDir) {
163
163
  return idx;
164
164
  }
165
165
  function updateSessionInIndex(historyDir, meta, filePath) {
166
- let idx = loadIndex(historyDir);
166
+ const idx = loadIndex(historyDir);
167
167
  if (!idx) {
168
168
  rebuildIndex(historyDir);
169
169
  return;
@@ -6,7 +6,7 @@ import {
6
6
  safeDate,
7
7
  searchCandidates,
8
8
  updateSessionInIndex
9
- } from "./chunk-PJ3ONBWZ.js";
9
+ } from "./chunk-NYNSYLFY.js";
10
10
  import {
11
11
  redactJson
12
12
  } from "./chunk-B5TYJO7V.js";
@@ -7,10 +7,10 @@ import {
7
7
  searchPersistentMemories,
8
8
  touchMemoryReferences,
9
9
  updateMemoryEntry
10
- } from "./chunk-4UIVLJAP.js";
10
+ } from "./chunk-RZV6WSER.js";
11
11
  import {
12
12
  indexProject
13
- } from "./chunk-K3CF65QH.js";
13
+ } from "./chunk-GLSR2NR3.js";
14
14
  import {
15
15
  hasSemanticIndex,
16
16
  semanticSearch
@@ -23,7 +23,7 @@ import {
23
23
  runHook,
24
24
  runLifecycleHooks,
25
25
  runTool
26
- } from "./chunk-H3PEWUFY.js";
26
+ } from "./chunk-3IM53IFO.js";
27
27
  import {
28
28
  getDangerLevel,
29
29
  isFileWriteTool,
@@ -39,18 +39,18 @@ import {
39
39
  } from "./chunk-4BKXL7SM.js";
40
40
  import {
41
41
  runTestsTool
42
- } from "./chunk-JM2DX7OY.js";
42
+ } from "./chunk-3IIKIWT2.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-KEAUVMKS.js";
49
+ } from "./chunk-6Q2XAWKP.js";
50
50
  import {
51
51
  loadChatIndex,
52
52
  searchChatMemory
53
- } from "./chunk-IGPFYNZA.js";
53
+ } from "./chunk-6RPGQ5CG.js";
54
54
  import {
55
55
  atomicWriteFileSync
56
56
  } from "./chunk-IW3Q7AE5.js";
@@ -193,7 +193,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
193
193
  stdout += IS_WINDOWS2 ? decodeWindowsBuffer(chunk) : chunk.toString("utf-8");
194
194
  if (!resolved && stdout.includes(markerEndPattern)) {
195
195
  const endLine = stdout.split("\n").find((l) => l.includes(markerEndPattern));
196
- const exitCode = endLine ? parseEndMarker(endLine, markerEndPattern) : null;
196
+ const exitCode = endLine ? parseEndMarker(endLine) : null;
197
197
  stdout = stripMarkerOutput(stdout, markerStartPattern, markerEndPattern);
198
198
  resolved = true;
199
199
  cleanup();
@@ -250,7 +250,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
250
250
  }
251
251
  try {
252
252
  proc.stdin?.write(wrappedCmd + "\n");
253
- } catch (err) {
253
+ } catch {
254
254
  if (!resolved) {
255
255
  cleanup();
256
256
  pool.delete(sessionKey);
@@ -258,7 +258,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
258
258
  }
259
259
  });
260
260
  }
261
- function parseEndMarker(line, markerEndPattern) {
261
+ function parseEndMarker(line) {
262
262
  const idx = line.lastIndexOf(":");
263
263
  if (idx < 0) return null;
264
264
  const code = line.slice(idx + 1).trim();
@@ -596,7 +596,7 @@ Important rules:
596
596
  }
597
597
  if (timedOut) {
598
598
  pushBashUndoEntries(beforeSnapshot, parsedTargetsBefore, effectiveCwd);
599
- throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT));
599
+ throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT, command));
600
600
  }
601
601
  if (status !== 0 || timedOut) {
602
602
  const poolStdout = (stdout ?? "").trim();
@@ -659,7 +659,7 @@ ${combined || formatFailureFallback(status)}
659
659
  const execErr = err;
660
660
  const isTimeout = execErr.code === "ETIMEDOUT" || execErr.status == null && execErr.signal === "SIGTERM" || /ETIMEDOUT/i.test(execErr.message ?? "");
661
661
  if (isTimeout) {
662
- throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT));
662
+ throw new ToolError("bash", formatTimeoutMessage(timeout, MAX_TIMEOUT, command));
663
663
  }
664
664
  if ("status" in execErr && execErr.status !== void 0) {
665
665
  const stderr = IS_WINDOWS3 && Buffer.isBuffer(execErr.stderr) ? decodeWindowsBuffer(execErr.stderr).trim() : execErr.stderr?.toString().trim() ?? "";
@@ -684,11 +684,24 @@ ${combined || execErr.message || formatFailureFallback(execErr.status)}
684
684
  function formatFailureHeader(status) {
685
685
  return typeof status === "number" ? `Exit code ${status}:` : "Command failed before exit code could be determined:";
686
686
  }
687
- function formatTimeoutMessage(timeout, maxTimeout) {
687
+ function looksLikeTestCommand(command) {
688
+ return (
689
+ // jest / vitest / mocha / pytest(可带 npx/yarn/pnpm 前缀,或跟在 cd xxx; 之后)
690
+ /(?:^|[;&|(\s])(?:npx\s+|yarn\s+(?:run\s+)?|pnpm\s+(?:run\s+|exec\s+)?)?(?:jest|vitest|mocha|pytest)\b/.test(command) || // npm test / npm run test:xxx / yarn test / pnpm test
691
+ /(?:^|[;&|(\s])(?:npm|yarn|pnpm)\s+(?:run\s+)?test\b/.test(command) || // go test / cargo test
692
+ /(?:^|[;&|(\s])(?:go|cargo)\s+test\b/.test(command)
693
+ );
694
+ }
695
+ function formatTimeoutMessage(timeout, maxTimeout, command) {
688
696
  const seconds = Math.round(timeout / 1e3);
697
+ const testRunnerHint = command !== void 0 && looksLikeTestCommand(command) ? [
698
+ "This looks like a TEST run. Prefer the 'run_tests' tool instead of running the test runner through bash: it has a 5-minute timeout, auto-detects the framework, and returns a structured summary (no findstr/grep filtering needed).",
699
+ ""
700
+ ] : [];
689
701
  return [
690
702
  `Command timed out after ${seconds}s.`,
691
703
  "",
704
+ ...testRunnerHint,
692
705
  "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.",
693
706
  "",
694
707
  "How to recover (pick ONE \u2014 do NOT retry the same command):",
@@ -2325,7 +2338,7 @@ var ToolExecutor = class {
2325
2338
  };
2326
2339
  }
2327
2340
  if (permission.action === "auto-approve" && networkPermission?.action !== "confirm") {
2328
- this.printToolCall(call);
2341
+ if (!toolCallAlreadyPrinted) this.printToolCall(call);
2329
2342
  try {
2330
2343
  const rawContent = await runTool(tool, call.arguments, call.name);
2331
2344
  const content = truncateOutput(rawContent, call.name);
@@ -2931,7 +2944,7 @@ Do NOT split a long document into many write_file(append=true) calls. That patte
2931
2944
  const mode = appendMode ? "appended" : "written";
2932
2945
  void (async () => {
2933
2946
  try {
2934
- const { updateFile } = await import("./indexer-2AG4G6B5.js");
2947
+ const { updateFile } = await import("./indexer-VZETNE4H.js");
2935
2948
  await updateFile(process.cwd(), filePath);
2936
2949
  } catch {
2937
2950
  }
@@ -4350,7 +4363,7 @@ var webFetchTool = {
4350
4363
  } else {
4351
4364
  const title = extractTitle(rawHtml);
4352
4365
  const desc = extractDescription(rawHtml);
4353
- let body = htmlToText(rawHtml);
4366
+ const body = htmlToText(rawHtml);
4354
4367
  const header = [
4355
4368
  title ? `# ${title}` : "",
4356
4369
  desc ? `> ${desc}` : "",
@@ -546,7 +546,7 @@ async function parseSource(file, source, language) {
546
546
  default:
547
547
  return extractTsJs(root, file, lang);
548
548
  }
549
- } catch (err) {
549
+ } catch {
550
550
  return [];
551
551
  }
552
552
  }
@@ -6,7 +6,7 @@ import {
6
6
  MEMORY_FILE_NAME,
7
7
  MEMORY_MAX_CHARS,
8
8
  MEMORY_STORE_FILE_NAME
9
- } from "./chunk-UM2OVVLP.js";
9
+ } from "./chunk-4EZWVX7G.js";
10
10
  import {
11
11
  atomicWriteFileSync
12
12
  } from "./chunk-6BUTA5VW.js";
@@ -6,7 +6,7 @@ import {
6
6
  MEMORY_FILE_NAME,
7
7
  MEMORY_MAX_CHARS,
8
8
  MEMORY_STORE_FILE_NAME
9
- } from "./chunk-KEAUVMKS.js";
9
+ } from "./chunk-6Q2XAWKP.js";
10
10
  import {
11
11
  DEFAULT_PATTERNS,
12
12
  redactString
@@ -1164,7 +1164,6 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1164
1164
  const message = firstChoice.message;
1165
1165
  const finishReason = firstChoice.finish_reason;
1166
1166
  const usage = toUsage(response.usage);
1167
- const contentStr = typeof message.content === "string" ? message.content : "";
1168
1167
  const hasToolCalls = !!(message.tool_calls && message.tool_calls.length > 0);
1169
1168
  const reasoningContent = message.reasoning_content;
1170
1169
  if (message.tool_calls && message.tool_calls.length > 0) {
@@ -8,7 +8,7 @@ import {
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-KEAUVMKS.js";
11
+ } from "./chunk-6Q2XAWKP.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
  import {
3
3
  VERSION
4
- } from "./chunk-KEAUVMKS.js";
4
+ } from "./chunk-6Q2XAWKP.js";
5
5
 
6
6
  // src/cli/ci-format.ts
7
7
  var DEFAULT_CI_THRESHOLDS = {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  evaluateCiGate,
4
4
  normalizeCiThresholds
5
- } from "./chunk-Y6KDBGY7.js";
5
+ } from "./chunk-VN6OGMSV.js";
6
6
  import {
7
7
  buildReviewPrompt,
8
8
  buildSecurityReviewPrompt,
@@ -10,13 +10,13 @@ import {
10
10
  } from "./chunk-HLWUDRBO.js";
11
11
  import {
12
12
  ProviderRegistry
13
- } from "./chunk-QYQI7ZWK.js";
13
+ } from "./chunk-S7ZS7X23.js";
14
14
  import {
15
15
  ConfigManager
16
- } from "./chunk-XH4JPEIZ.js";
16
+ } from "./chunk-TBXMRJHS.js";
17
17
  import {
18
18
  VERSION
19
- } from "./chunk-KEAUVMKS.js";
19
+ } from "./chunk-6Q2XAWKP.js";
20
20
 
21
21
  // src/cli/ci.ts
22
22
  import { execFileSync } from "child_process";
@@ -176,7 +176,7 @@ function rebuildIndex(historyDir2) {
176
176
  return idx;
177
177
  }
178
178
  function updateSessionInIndex(historyDir2, meta, filePath) {
179
- let idx = loadIndex(historyDir2);
179
+ const idx = loadIndex(historyDir2);
180
180
  if (!idx) {
181
181
  rebuildIndex(historyDir2);
182
182
  return;
@@ -3,14 +3,14 @@ import {
3
3
  CI_COMMENT_MARKER,
4
4
  countSeverity,
5
5
  runCi
6
- } from "./chunk-M7BQVFMF.js";
7
- import "./chunk-Y6KDBGY7.js";
6
+ } from "./chunk-VPM5WRJ2.js";
7
+ import "./chunk-VN6OGMSV.js";
8
8
  import "./chunk-HLWUDRBO.js";
9
- import "./chunk-QYQI7ZWK.js";
10
- import "./chunk-XH4JPEIZ.js";
9
+ import "./chunk-S7ZS7X23.js";
10
+ import "./chunk-TBXMRJHS.js";
11
11
  import "./chunk-O3XSFPYH.js";
12
12
  import "./chunk-5ULLIOVC.js";
13
- import "./chunk-KEAUVMKS.js";
13
+ import "./chunk-6Q2XAWKP.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-Y6KDBGY7.js";
10
- import "./chunk-KEAUVMKS.js";
9
+ } from "./chunk-VN6OGMSV.js";
10
+ import "./chunk-6Q2XAWKP.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-KEAUVMKS.js";
41
+ } from "./chunk-6Q2XAWKP.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-WKXADWWK.js";
6
- import "./chunk-QYQI7ZWK.js";
7
- import "./chunk-XH4JPEIZ.js";
8
- import "./chunk-H3PEWUFY.js";
5
+ } from "./chunk-4GKWLTU3.js";
6
+ import "./chunk-S7ZS7X23.js";
7
+ import "./chunk-TBXMRJHS.js";
8
+ import "./chunk-3IM53IFO.js";
9
9
  import "./chunk-O3XSFPYH.js";
10
10
  import "./chunk-5ULLIOVC.js";
11
11
  import "./chunk-HOSJZMQS.js";
12
- import "./chunk-KEAUVMKS.js";
12
+ import "./chunk-6Q2XAWKP.js";
13
13
  import "./chunk-IW3Q7AE5.js";
14
14
  export {
15
15
  formatDoctorReport,