jinzd-ai-cli 0.4.177 → 0.4.178

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.
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigManager
4
- } from "./chunk-FREVMRQ6.js";
4
+ } from "./chunk-L3NRYFYA.js";
5
5
  import "./chunk-TZQHYZKT.js";
6
- import "./chunk-BS33F4AI.js";
6
+ import "./chunk-AJCSBHRD.js";
7
7
  import "./chunk-PDX44BCA.js";
8
8
 
9
9
  // src/cli/batch.ts
@@ -1231,6 +1231,7 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1231
1231
  let thinkingStarted = false;
1232
1232
  let reasoningAccumulator = "";
1233
1233
  let lastFinishReason;
1234
+ let doneEmitted = false;
1234
1235
  for await (const chunk of stream) {
1235
1236
  const choice = chunk.choices[0];
1236
1237
  if (choice?.finish_reason) lastFinishReason = choice.finish_reason;
@@ -1245,6 +1246,7 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1245
1246
  }
1246
1247
  toolCallsEnded = true;
1247
1248
  }
1249
+ doneEmitted = true;
1248
1250
  yield {
1249
1251
  type: "done",
1250
1252
  usage: toUsage(chunk.usage),
@@ -1300,16 +1302,22 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1300
1302
  toolCallsEnded = true;
1301
1303
  }
1302
1304
  }
1303
- if (!toolCallsEnded && toolCallAccumulators.size > 0) {
1304
- for (const [idx] of toolCallAccumulators) {
1305
- yield { type: "tool_call_end", index: idx };
1305
+ if (!doneEmitted) {
1306
+ if (thinkingStarted) {
1307
+ yield { type: "thinking_end" };
1308
+ thinkingStarted = false;
1309
+ }
1310
+ if (!toolCallsEnded && toolCallAccumulators.size > 0) {
1311
+ for (const [idx] of toolCallAccumulators) {
1312
+ yield { type: "tool_call_end", index: idx };
1313
+ }
1306
1314
  }
1315
+ yield {
1316
+ type: "done",
1317
+ ...reasoningAccumulator ? { reasoningContent: reasoningAccumulator } : {},
1318
+ ...lastFinishReason && lastFinishReason !== "stop" ? { finishReason: lastFinishReason } : {}
1319
+ };
1307
1320
  }
1308
- yield {
1309
- type: "done",
1310
- ...reasoningAccumulator ? { reasoningContent: reasoningAccumulator } : {},
1311
- ...lastFinishReason && lastFinishReason !== "stop" ? { finishReason: lastFinishReason } : {}
1312
- };
1313
1321
  } catch (err) {
1314
1322
  if (err instanceof Error && (err.name === "AbortError" || err.name === "TimeoutError")) {
1315
1323
  throw err;
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-BS33F4AI.js";
4
+ } from "./chunk-AJCSBHRD.js";
5
5
 
6
6
  // src/tools/builtin/run-tests.ts
7
7
  import { execSync, spawnSync } from "child_process";
@@ -6,7 +6,7 @@ import { platform } from "os";
6
6
  import chalk from "chalk";
7
7
 
8
8
  // src/core/constants.ts
9
- var VERSION = "0.4.177";
9
+ var VERSION = "0.4.178";
10
10
  var APP_NAME = "ai-cli";
11
11
  var CONFIG_DIR_NAME = ".aicli";
12
12
  var CONFIG_FILE_NAME = "config.json";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.177";
4
+ var VERSION = "0.4.178";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CONFIG_DIR_NAME,
4
4
  VERSION
5
- } from "./chunk-BS33F4AI.js";
5
+ } from "./chunk-AJCSBHRD.js";
6
6
 
7
7
  // src/diagnostics/crash-log.ts
8
8
  import {
@@ -8,7 +8,7 @@ import {
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-BS33F4AI.js";
11
+ } from "./chunk-AJCSBHRD.js";
12
12
 
13
13
  // src/config/config-manager.ts
14
14
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  truncateForPersist
4
- } from "./chunk-6T25OYRW.js";
4
+ } from "./chunk-T7RZN3RN.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-BS33F4AI.js";
14
+ } from "./chunk-AJCSBHRD.js";
15
15
 
16
16
  // src/mcp/client.ts
17
17
  import { spawn } from "child_process";
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-HDSKW7Q3.js";
6
6
  import {
7
7
  runTestsTool
8
- } from "./chunk-GWTCIEDB.js";
8
+ } from "./chunk-36BLVHJB.js";
9
9
  import {
10
10
  runTool
11
- } from "./chunk-5JACO5OK.js";
11
+ } from "./chunk-WD66FPWL.js";
12
12
  import {
13
13
  getDangerLevel,
14
14
  isFileWriteTool
@@ -25,7 +25,7 @@ import {
25
25
  SUBAGENT_ALLOWED_TOOLS,
26
26
  SUBAGENT_DEFAULT_MAX_ROUNDS,
27
27
  SUBAGENT_MAX_ROUNDS_LIMIT
28
- } from "./chunk-BS33F4AI.js";
28
+ } from "./chunk-AJCSBHRD.js";
29
29
  import {
30
30
  fileCheckpoints
31
31
  } from "./chunk-4BKXL7SM.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CONFIG_DIR_NAME
4
- } from "./chunk-BS33F4AI.js";
4
+ } from "./chunk-AJCSBHRD.js";
5
5
 
6
6
  // src/diagnostics/tool-stats.ts
7
7
  import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync } from "fs";
@@ -6,15 +6,15 @@ import {
6
6
  } from "./chunk-HLWUDRBO.js";
7
7
  import {
8
8
  ProviderRegistry
9
- } from "./chunk-2TG4KU3U.js";
9
+ } from "./chunk-2TWARH5X.js";
10
10
  import "./chunk-HIU2SH4V.js";
11
11
  import {
12
12
  ConfigManager
13
- } from "./chunk-FREVMRQ6.js";
13
+ } from "./chunk-L3NRYFYA.js";
14
14
  import "./chunk-TZQHYZKT.js";
15
15
  import {
16
16
  VERSION
17
- } from "./chunk-BS33F4AI.js";
17
+ } from "./chunk-AJCSBHRD.js";
18
18
  import "./chunk-PDX44BCA.js";
19
19
 
20
20
  // src/cli/ci.ts
@@ -36,7 +36,7 @@ import {
36
36
  TEST_TIMEOUT,
37
37
  VERSION,
38
38
  buildUserIdentityPrompt
39
- } from "./chunk-BS33F4AI.js";
39
+ } from "./chunk-AJCSBHRD.js";
40
40
  import "./chunk-PDX44BCA.js";
41
41
  export {
42
42
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -2,26 +2,26 @@
2
2
  import {
3
3
  getConfigDirUsage,
4
4
  listRecentCrashes
5
- } from "./chunk-QMQZ6IWU.js";
5
+ } from "./chunk-ELZFPOUU.js";
6
6
  import {
7
7
  ProviderRegistry
8
- } from "./chunk-2TG4KU3U.js";
8
+ } from "./chunk-2TWARH5X.js";
9
9
  import {
10
10
  getStatsSnapshot,
11
11
  getTopFailingTools,
12
12
  getTopUsedTools,
13
13
  resetStats
14
- } from "./chunk-5JACO5OK.js";
14
+ } from "./chunk-WD66FPWL.js";
15
15
  import "./chunk-HIU2SH4V.js";
16
16
  import {
17
17
  ConfigManager
18
- } from "./chunk-FREVMRQ6.js";
18
+ } from "./chunk-L3NRYFYA.js";
19
19
  import "./chunk-TZQHYZKT.js";
20
20
  import {
21
21
  DEV_STATE_FILE_NAME,
22
22
  MEMORY_FILE_NAME,
23
23
  VERSION
24
- } from "./chunk-BS33F4AI.js";
24
+ } from "./chunk-AJCSBHRD.js";
25
25
  import "./chunk-PDX44BCA.js";
26
26
 
27
27
  // src/diagnostics/doctor-cli.ts
@@ -36,7 +36,7 @@ import {
36
36
  VERSION,
37
37
  buildUserIdentityPrompt,
38
38
  runTestsTool
39
- } from "./chunk-4ZV2XIGC.js";
39
+ } from "./chunk-4NHWF2XY.js";
40
40
  import {
41
41
  hasSemanticIndex,
42
42
  semanticSearch
@@ -1880,6 +1880,7 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1880
1880
  let thinkingStarted = false;
1881
1881
  let reasoningAccumulator = "";
1882
1882
  let lastFinishReason;
1883
+ let doneEmitted = false;
1883
1884
  for await (const chunk of stream) {
1884
1885
  const choice = chunk.choices[0];
1885
1886
  if (choice?.finish_reason) lastFinishReason = choice.finish_reason;
@@ -1894,6 +1895,7 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1894
1895
  }
1895
1896
  toolCallsEnded = true;
1896
1897
  }
1898
+ doneEmitted = true;
1897
1899
  yield {
1898
1900
  type: "done",
1899
1901
  usage: toUsage(chunk.usage),
@@ -1949,16 +1951,22 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1949
1951
  toolCallsEnded = true;
1950
1952
  }
1951
1953
  }
1952
- if (!toolCallsEnded && toolCallAccumulators.size > 0) {
1953
- for (const [idx] of toolCallAccumulators) {
1954
- yield { type: "tool_call_end", index: idx };
1954
+ if (!doneEmitted) {
1955
+ if (thinkingStarted) {
1956
+ yield { type: "thinking_end" };
1957
+ thinkingStarted = false;
1958
+ }
1959
+ if (!toolCallsEnded && toolCallAccumulators.size > 0) {
1960
+ for (const [idx] of toolCallAccumulators) {
1961
+ yield { type: "tool_call_end", index: idx };
1962
+ }
1955
1963
  }
1964
+ yield {
1965
+ type: "done",
1966
+ ...reasoningAccumulator ? { reasoningContent: reasoningAccumulator } : {},
1967
+ ...lastFinishReason && lastFinishReason !== "stop" ? { finishReason: lastFinishReason } : {}
1968
+ };
1956
1969
  }
1957
- yield {
1958
- type: "done",
1959
- ...reasoningAccumulator ? { reasoningContent: reasoningAccumulator } : {},
1960
- ...lastFinishReason && lastFinishReason !== "stop" ? { finishReason: lastFinishReason } : {}
1961
- };
1962
1970
  } catch (err) {
1963
1971
  if (err instanceof Error && (err.name === "AbortError" || err.name === "TimeoutError")) {
1964
1972
  throw err;
@@ -12617,9 +12625,9 @@ This fresh stream has NO tools. Produce ONLY the document body: start with a mar
12617
12625
  break;
12618
12626
  }
12619
12627
  case "done":
12620
- usage = event.usage;
12621
- rawContent = event.rawContent;
12622
- reasoningContent = event.reasoningContent;
12628
+ if (event.usage) usage = event.usage;
12629
+ if (event.rawContent) rawContent = event.rawContent;
12630
+ if (event.reasoningContent) reasoningContent = event.reasoningContent;
12623
12631
  break;
12624
12632
  }
12625
12633
  }
@@ -13638,7 +13646,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
13638
13646
  case "test": {
13639
13647
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
13640
13648
  try {
13641
- const { executeTests } = await import("./run-tests-D5K4ZMDN.js");
13649
+ const { executeTests } = await import("./run-tests-XU6P7FYH.js");
13642
13650
  const argStr = args.join(" ").trim();
13643
13651
  let testArgs = {};
13644
13652
  if (argStr) {
@@ -155,7 +155,7 @@ ${content}`);
155
155
  }
156
156
  }
157
157
  async function runTaskMode(config, providers, configManager, topic) {
158
- const { TaskOrchestrator } = await import("./task-orchestrator-T5C7M26Z.js");
158
+ const { TaskOrchestrator } = await import("./task-orchestrator-3TE6CK7H.js");
159
159
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
160
160
  let interrupted = false;
161
161
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import {
18
18
  saveDevState,
19
19
  sessionHasMeaningfulContent,
20
20
  setupProxy
21
- } from "./chunk-J2P7TRYK.js";
21
+ } from "./chunk-SBXHYSC5.js";
22
22
  import {
23
23
  ToolExecutor,
24
24
  ToolRegistry,
@@ -37,10 +37,10 @@ import {
37
37
  spawnAgentContext,
38
38
  theme,
39
39
  undoStack
40
- } from "./chunk-6T25OYRW.js";
40
+ } from "./chunk-T7RZN3RN.js";
41
41
  import "./chunk-HDSKW7Q3.js";
42
42
  import "./chunk-ZWVIDFGY.js";
43
- import "./chunk-GWTCIEDB.js";
43
+ import "./chunk-36BLVHJB.js";
44
44
  import {
45
45
  SessionManager,
46
46
  getContentText
@@ -49,7 +49,7 @@ import {
49
49
  getConfigDirUsage,
50
50
  listRecentCrashes,
51
51
  writeCrashLog
52
- } from "./chunk-QMQZ6IWU.js";
52
+ } from "./chunk-ELZFPOUU.js";
53
53
  import {
54
54
  CONTENT_ONLY_STREAM_REMINDER,
55
55
  HALLUCINATION_CORRECTION_MESSAGE,
@@ -68,17 +68,17 @@ import {
68
68
  looksLikeDocumentBody,
69
69
  stripPseudoToolCalls,
70
70
  stripToolCallReminder
71
- } from "./chunk-2TG4KU3U.js";
71
+ } from "./chunk-2TWARH5X.js";
72
72
  import {
73
73
  getStatsSnapshot,
74
74
  getTopFailingTools,
75
75
  getTopUsedTools,
76
76
  installFlushOnExit
77
- } from "./chunk-5JACO5OK.js";
77
+ } from "./chunk-WD66FPWL.js";
78
78
  import "./chunk-HIU2SH4V.js";
79
79
  import {
80
80
  ConfigManager
81
- } from "./chunk-FREVMRQ6.js";
81
+ } from "./chunk-L3NRYFYA.js";
82
82
  import {
83
83
  AuthError,
84
84
  ProviderError,
@@ -105,7 +105,7 @@ import {
105
105
  SKILLS_DIR_NAME,
106
106
  VERSION,
107
107
  buildUserIdentityPrompt
108
- } from "./chunk-BS33F4AI.js";
108
+ } from "./chunk-AJCSBHRD.js";
109
109
  import {
110
110
  formatGitContextForPrompt,
111
111
  getGitContext,
@@ -1786,7 +1786,7 @@ No tools match "${filter}".
1786
1786
  const { join: join6 } = await import("path");
1787
1787
  const { existsSync: existsSync6 } = await import("fs");
1788
1788
  const { getGitRoot: getGitRoot2 } = await import("./git-context-7KIP4X2V.js");
1789
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-M342AGRU.js");
1789
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-BVFYYWX2.js");
1790
1790
  const { approveProject, hashMcpFile } = await import("./project-trust-IFM7FXEV.js");
1791
1791
  const cwd = process.cwd();
1792
1792
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -2847,7 +2847,7 @@ ${hint}` : "")
2847
2847
  usage: "/test [command|filter]",
2848
2848
  async execute(args, ctx) {
2849
2849
  try {
2850
- const { executeTests } = await import("./run-tests-IPISVPII.js");
2850
+ const { executeTests } = await import("./run-tests-V4S7XNLG.js");
2851
2851
  const argStr = args.join(" ").trim();
2852
2852
  let testArgs = {};
2853
2853
  if (argStr) {
@@ -7633,7 +7633,7 @@ program.command("web").description("Start Web UI server with browser-based chat
7633
7633
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
7634
7634
  process.exit(1);
7635
7635
  }
7636
- const { startWebServer } = await import("./server-4PSO44EU.js");
7636
+ const { startWebServer } = await import("./server-QQ6QSD7B.js");
7637
7637
  await startWebServer({ port, host: options.host });
7638
7638
  });
7639
7639
  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) => {
@@ -7800,12 +7800,12 @@ program.command("sessions").description("List recent conversation sessions").opt
7800
7800
  console.log(footer + "\n");
7801
7801
  });
7802
7802
  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) => {
7803
- const { runDoctorCli } = await import("./doctor-cli-QH3RPU6D.js");
7803
+ const { runDoctorCli } = await import("./doctor-cli-UA2HYATE.js");
7804
7804
  await runDoctorCli({ json: !!options.json, resetStats: !!options.resetStats });
7805
7805
  });
7806
7806
  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) => {
7807
7807
  try {
7808
- const batch = await import("./batch-BHE7FE6R.js");
7808
+ const batch = await import("./batch-PWRFYRZG.js");
7809
7809
  switch (action) {
7810
7810
  case "submit":
7811
7811
  if (!arg) {
@@ -7848,7 +7848,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
7848
7848
  }
7849
7849
  });
7850
7850
  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) => {
7851
- const { startMcpServer } = await import("./server-GQAF6AZW.js");
7851
+ const { startMcpServer } = await import("./server-5BXP3DM3.js");
7852
7852
  await startMcpServer({
7853
7853
  allowDestructive: !!options.allowDestructive,
7854
7854
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7857,7 +7857,7 @@ program.command("mcp-serve").description("Start an MCP server over STDIO, exposi
7857
7857
  });
7858
7858
  });
7859
7859
  program.command("ci").description("Headless PR review (code + security) \u2014 reads git/gh diff, optionally posts to PR. Designed for GitHub Actions.").option("--pr <num>", "PR number; diff fetched via `gh pr diff <num>`", (v) => parseInt(v, 10)).option("--base <ref>", "Base ref for `git diff <ref>...HEAD` (ignored when --pr set)").option("--post", "Post review as a PR comment (requires gh CLI + GH_TOKEN, needs --pr)").option("--no-update", "Always create a new comment instead of updating the previous aicli review").option("--skip-code", "Skip the code review section").option("--skip-security", "Skip the security review section").option("--detailed", "Use the detailed code-review prompt").option("--max-diff <n>", "Max diff chars sent to the model (default 30000)", (v) => parseInt(v, 10)).option("--provider <id>", "Override provider (default: config.defaultProvider)").option("--model <id>", "Override model").option("--dry-run", "Print result to stdout instead of posting (overrides --post)").action(async (options) => {
7860
- const { runCi } = await import("./ci-4D5KW4VX.js");
7860
+ const { runCi } = await import("./ci-WGXHPB6C.js");
7861
7861
  const result = await runCi({
7862
7862
  pr: options.pr,
7863
7863
  base: options.base,
@@ -8002,7 +8002,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
8002
8002
  }),
8003
8003
  config.get("customProviders")
8004
8004
  );
8005
- const { startHub } = await import("./hub-UAZ4BAFN.js");
8005
+ const { startHub } = await import("./hub-MB6PUS75.js");
8006
8006
  await startHub(
8007
8007
  {
8008
8008
  topic: topic ?? "",
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-GWTCIEDB.js";
6
- import "./chunk-BS33F4AI.js";
5
+ } from "./chunk-36BLVHJB.js";
6
+ import "./chunk-AJCSBHRD.js";
7
7
  import "./chunk-PDX44BCA.js";
8
8
  export {
9
9
  executeTests,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-4ZV2XIGC.js";
4
+ } from "./chunk-4NHWF2XY.js";
5
5
  import "./chunk-3RG5ZIWI.js";
6
6
  export {
7
7
  executeTests,
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ToolRegistry
4
- } from "./chunk-6T25OYRW.js";
4
+ } from "./chunk-T7RZN3RN.js";
5
5
  import "./chunk-HDSKW7Q3.js";
6
6
  import "./chunk-ZWVIDFGY.js";
7
- import "./chunk-GWTCIEDB.js";
7
+ import "./chunk-36BLVHJB.js";
8
8
  import {
9
9
  runTool
10
- } from "./chunk-5JACO5OK.js";
10
+ } from "./chunk-WD66FPWL.js";
11
11
  import {
12
12
  getDangerLevel,
13
13
  schemaToJsonSchema
@@ -15,7 +15,7 @@ import {
15
15
  import "./chunk-TZQHYZKT.js";
16
16
  import {
17
17
  VERSION
18
- } from "./chunk-BS33F4AI.js";
18
+ } from "./chunk-AJCSBHRD.js";
19
19
  import "./chunk-4BKXL7SM.js";
20
20
  import "./chunk-MM3F43H6.js";
21
21
  import "./chunk-KHYD3WXE.js";
@@ -21,7 +21,7 @@ import {
21
21
  loadDevState,
22
22
  persistToolRound,
23
23
  setupProxy
24
- } from "./chunk-J2P7TRYK.js";
24
+ } from "./chunk-SBXHYSC5.js";
25
25
  import {
26
26
  ToolExecutor,
27
27
  ToolRegistry,
@@ -39,10 +39,10 @@ import {
39
39
  spawnAgentContext,
40
40
  truncateOutput,
41
41
  undoStack
42
- } from "./chunk-6T25OYRW.js";
42
+ } from "./chunk-T7RZN3RN.js";
43
43
  import "./chunk-HDSKW7Q3.js";
44
44
  import "./chunk-ZWVIDFGY.js";
45
- import "./chunk-GWTCIEDB.js";
45
+ import "./chunk-36BLVHJB.js";
46
46
  import {
47
47
  SessionManager,
48
48
  getContentText
@@ -61,16 +61,16 @@ import {
61
61
  looksLikeDocumentBody,
62
62
  stripPseudoToolCalls,
63
63
  stripToolCallReminder
64
- } from "./chunk-2TG4KU3U.js";
64
+ } from "./chunk-2TWARH5X.js";
65
65
  import {
66
66
  runTool
67
- } from "./chunk-5JACO5OK.js";
67
+ } from "./chunk-WD66FPWL.js";
68
68
  import {
69
69
  getDangerLevel
70
70
  } from "./chunk-HIU2SH4V.js";
71
71
  import {
72
72
  ConfigManager
73
- } from "./chunk-FREVMRQ6.js";
73
+ } from "./chunk-L3NRYFYA.js";
74
74
  import "./chunk-TZQHYZKT.js";
75
75
  import {
76
76
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -90,7 +90,7 @@ import {
90
90
  SKILLS_DIR_NAME,
91
91
  VERSION,
92
92
  buildUserIdentityPrompt
93
- } from "./chunk-BS33F4AI.js";
93
+ } from "./chunk-AJCSBHRD.js";
94
94
  import {
95
95
  formatGitContextForPrompt,
96
96
  getGitContext,
@@ -1556,9 +1556,9 @@ This fresh stream has NO tools. Produce ONLY the document body: start with a mar
1556
1556
  break;
1557
1557
  }
1558
1558
  case "done":
1559
- usage = event.usage;
1560
- rawContent = event.rawContent;
1561
- reasoningContent = event.reasoningContent;
1559
+ if (event.usage) usage = event.usage;
1560
+ if (event.rawContent) rawContent = event.rawContent;
1561
+ if (event.reasoningContent) reasoningContent = event.reasoningContent;
1562
1562
  break;
1563
1563
  }
1564
1564
  }
@@ -2577,7 +2577,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
2577
2577
  case "test": {
2578
2578
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
2579
2579
  try {
2580
- const { executeTests } = await import("./run-tests-IPISVPII.js");
2580
+ const { executeTests } = await import("./run-tests-V4S7XNLG.js");
2581
2581
  const argStr = args.join(" ").trim();
2582
2582
  let testArgs = {};
2583
2583
  if (argStr) {
@@ -3,20 +3,20 @@ import {
3
3
  ToolRegistry,
4
4
  googleSearchContext,
5
5
  truncateOutput
6
- } from "./chunk-6T25OYRW.js";
6
+ } from "./chunk-T7RZN3RN.js";
7
7
  import "./chunk-HDSKW7Q3.js";
8
8
  import "./chunk-ZWVIDFGY.js";
9
- import "./chunk-GWTCIEDB.js";
9
+ import "./chunk-36BLVHJB.js";
10
10
  import {
11
11
  runTool
12
- } from "./chunk-5JACO5OK.js";
12
+ } from "./chunk-WD66FPWL.js";
13
13
  import {
14
14
  getDangerLevel
15
15
  } from "./chunk-HIU2SH4V.js";
16
16
  import "./chunk-TZQHYZKT.js";
17
17
  import {
18
18
  SUBAGENT_ALLOWED_TOOLS
19
- } from "./chunk-BS33F4AI.js";
19
+ } from "./chunk-AJCSBHRD.js";
20
20
  import "./chunk-4BKXL7SM.js";
21
21
  import "./chunk-MM3F43H6.js";
22
22
  import "./chunk-KHYD3WXE.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.177",
3
+ "version": "0.4.178",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",