jinzd-ai-cli 0.4.140 → 0.4.142

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-2N4NTO6I.js";
4
+ } from "./chunk-WLZJANJO.js";
5
5
  import "./chunk-2ZD3YTVM.js";
6
- import "./chunk-AD2AFZU6.js";
6
+ import "./chunk-NSTXHD33.js";
7
7
  import "./chunk-PDX44BCA.js";
8
8
 
9
9
  // src/cli/batch.ts
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CONFIG_DIR_NAME,
4
4
  VERSION
5
- } from "./chunk-AD2AFZU6.js";
5
+ } from "./chunk-NSTXHD33.js";
6
6
 
7
7
  // src/diagnostics/crash-log.ts
8
8
  import {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  truncateForPersist
4
- } from "./chunk-4DAHA3N2.js";
4
+ } from "./chunk-Q3ZEZHSU.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-AD2AFZU6.js";
14
+ } from "./chunk-NSTXHD33.js";
15
15
  import {
16
16
  redactJson
17
17
  } from "./chunk-7ZJN4KLV.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CONFIG_DIR_NAME
4
- } from "./chunk-AD2AFZU6.js";
4
+ } from "./chunk-NSTXHD33.js";
5
5
 
6
6
  // src/diagnostics/tool-stats.ts
7
7
  import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  schemaToJsonSchema
4
- } from "./chunk-5AKKMT6L.js";
4
+ } from "./chunk-G3CH252E.js";
5
5
  import {
6
6
  AuthError,
7
7
  ProviderError,
@@ -1275,19 +1275,21 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1275
1275
  if (delta?.tool_calls) {
1276
1276
  for (const tc of delta.tool_calls) {
1277
1277
  const idx = tc.index;
1278
- if (tc.id && tc.function?.name) {
1278
+ const existing = toolCallAccumulators.get(idx);
1279
+ if (!existing && tc.id && tc.function?.name) {
1280
+ const initialArgs = tc.function.arguments ?? "";
1279
1281
  toolCallAccumulators.set(idx, {
1280
1282
  id: tc.id,
1281
1283
  name: tc.function.name,
1282
- arguments: tc.function.arguments ?? ""
1284
+ arguments: initialArgs
1283
1285
  });
1284
1286
  yield { type: "tool_call_start", index: idx, id: tc.id, name: tc.function.name };
1285
- } else if (tc.function?.arguments) {
1286
- const acc = toolCallAccumulators.get(idx);
1287
- if (acc) {
1288
- acc.arguments += tc.function.arguments;
1289
- yield { type: "tool_call_delta", index: idx, argumentsDelta: tc.function.arguments };
1287
+ if (initialArgs) {
1288
+ yield { type: "tool_call_delta", index: idx, argumentsDelta: initialArgs };
1290
1289
  }
1290
+ } else if (existing && tc.function?.arguments) {
1291
+ existing.arguments += tc.function.arguments;
1292
+ yield { type: "tool_call_delta", index: idx, argumentsDelta: tc.function.arguments };
1291
1293
  }
1292
1294
  }
1293
1295
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-AD2AFZU6.js";
4
+ } from "./chunk-NSTXHD33.js";
5
5
 
6
6
  // src/tools/builtin/run-tests.ts
7
7
  import { execSync, spawnSync } from "child_process";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.140";
4
+ var VERSION = "0.4.142";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -5,12 +5,12 @@ import {
5
5
  } from "./chunk-3BICTI5M.js";
6
6
  import {
7
7
  runTestsTool
8
- } from "./chunk-FOS7SXFC.js";
8
+ } from "./chunk-KSLJCZCE.js";
9
9
  import {
10
10
  getDangerLevel,
11
11
  isFileWriteTool,
12
12
  runTool
13
- } from "./chunk-5AKKMT6L.js";
13
+ } from "./chunk-G3CH252E.js";
14
14
  import {
15
15
  EnvLoader,
16
16
  NetworkError,
@@ -23,7 +23,7 @@ import {
23
23
  SUBAGENT_ALLOWED_TOOLS,
24
24
  SUBAGENT_DEFAULT_MAX_ROUNDS,
25
25
  SUBAGENT_MAX_ROUNDS_LIMIT
26
- } from "./chunk-AD2AFZU6.js";
26
+ } from "./chunk-NSTXHD33.js";
27
27
  import {
28
28
  fileCheckpoints
29
29
  } from "./chunk-4BKXL7SM.js";
@@ -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.140";
9
+ var VERSION = "0.4.142";
10
10
  var APP_NAME = "ai-cli";
11
11
  var CONFIG_DIR_NAME = ".aicli";
12
12
  var CONFIG_FILE_NAME = "config.json";
@@ -8,7 +8,7 @@ import {
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-AD2AFZU6.js";
11
+ } from "./chunk-NSTXHD33.js";
12
12
 
13
13
  // src/config/config-manager.ts
14
14
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
@@ -247,6 +247,9 @@ var ConfigManager = class {
247
247
  this.configDir = configDir ?? join(homedir(), CONFIG_DIR_NAME);
248
248
  this.configPath = join(this.configDir, CONFIG_FILE_NAME);
249
249
  this.config = this.load();
250
+ if (this.migrateLegacyModels()) {
251
+ this.save();
252
+ }
250
253
  }
251
254
  load() {
252
255
  if (!existsSync(this.configPath)) {
@@ -262,6 +265,49 @@ ${err}`
262
265
  );
263
266
  }
264
267
  }
268
+ /**
269
+ * One-time auto-heal for retired model IDs (v0.4.141+).
270
+ *
271
+ * v0.4.140 dropped `deepseek-chat` / `deepseek-reasoner` from the provider
272
+ * model list but didn't migrate `~/.aicli/config.json`. Users who had ever
273
+ * called `/model` to pin one of these legacy ids would land in a broken
274
+ * state on next startup (banner shows `Model: deepseek-chat`, but `/model`
275
+ * picker no longer lists it).
276
+ *
277
+ * This pass is idempotent — if nothing matches, returns false and no save
278
+ * happens. Safe to run on every load.
279
+ *
280
+ * @returns true if config was modified and should be persisted.
281
+ */
282
+ migrateLegacyModels() {
283
+ const LEGACY_DEEPSEEK = /* @__PURE__ */ new Set(["deepseek-chat", "deepseek-reasoner"]);
284
+ const DEEPSEEK_TARGET = "deepseek-v4-flash";
285
+ let changed = false;
286
+ const dm = this.config.defaultModels;
287
+ if (dm && LEGACY_DEEPSEEK.has(dm.deepseek)) {
288
+ dm.deepseek = DEEPSEEK_TARGET;
289
+ changed = true;
290
+ }
291
+ const mp = this.config.modelParams;
292
+ if (mp) {
293
+ for (const legacy of LEGACY_DEEPSEEK) {
294
+ if (legacy in mp) {
295
+ if (!(DEEPSEEK_TARGET in mp)) {
296
+ mp[DEEPSEEK_TARGET] = mp[legacy];
297
+ }
298
+ delete mp[legacy];
299
+ changed = true;
300
+ }
301
+ }
302
+ }
303
+ if (changed) {
304
+ process.stderr.write(
305
+ `[ai-cli] Migrated retired DeepSeek model ids in config.json \u2192 ${DEEPSEEK_TARGET}
306
+ `
307
+ );
308
+ }
309
+ return changed;
310
+ }
265
311
  save() {
266
312
  mkdirSync(this.configDir, { recursive: true });
267
313
  writeFileSync(this.configPath, JSON.stringify(this.config, null, 2), "utf-8");
@@ -36,7 +36,7 @@ import {
36
36
  TEST_TIMEOUT,
37
37
  VERSION,
38
38
  buildUserIdentityPrompt
39
- } from "./chunk-AD2AFZU6.js";
39
+ } from "./chunk-NSTXHD33.js";
40
40
  import "./chunk-PDX44BCA.js";
41
41
  export {
42
42
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -2,25 +2,25 @@
2
2
  import {
3
3
  getConfigDirUsage,
4
4
  listRecentCrashes
5
- } from "./chunk-KRIMHQIQ.js";
5
+ } from "./chunk-3UZBSMNI.js";
6
6
  import {
7
7
  ProviderRegistry
8
- } from "./chunk-MNFJQEOJ.js";
8
+ } from "./chunk-INPG2HXR.js";
9
9
  import {
10
10
  ConfigManager
11
- } from "./chunk-2N4NTO6I.js";
11
+ } from "./chunk-WLZJANJO.js";
12
12
  import {
13
13
  getStatsSnapshot,
14
14
  getTopFailingTools,
15
15
  getTopUsedTools,
16
16
  resetStats
17
- } from "./chunk-5AKKMT6L.js";
17
+ } from "./chunk-G3CH252E.js";
18
18
  import "./chunk-2ZD3YTVM.js";
19
19
  import {
20
20
  DEV_STATE_FILE_NAME,
21
21
  MEMORY_FILE_NAME,
22
22
  VERSION
23
- } from "./chunk-AD2AFZU6.js";
23
+ } from "./chunk-NSTXHD33.js";
24
24
  import "./chunk-PDX44BCA.js";
25
25
 
26
26
  // src/diagnostics/doctor-cli.ts
@@ -36,7 +36,7 @@ import {
36
36
  VERSION,
37
37
  buildUserIdentityPrompt,
38
38
  runTestsTool
39
- } from "./chunk-NPYZRKFH.js";
39
+ } from "./chunk-UXGHSFGB.js";
40
40
  import {
41
41
  hasSemanticIndex,
42
42
  semanticSearch
@@ -400,6 +400,9 @@ var ConfigManager = class {
400
400
  this.configDir = configDir ?? join(homedir(), CONFIG_DIR_NAME);
401
401
  this.configPath = join(this.configDir, CONFIG_FILE_NAME);
402
402
  this.config = this.load();
403
+ if (this.migrateLegacyModels()) {
404
+ this.save();
405
+ }
403
406
  }
404
407
  load() {
405
408
  if (!existsSync(this.configPath)) {
@@ -415,6 +418,49 @@ ${err}`
415
418
  );
416
419
  }
417
420
  }
421
+ /**
422
+ * One-time auto-heal for retired model IDs (v0.4.141+).
423
+ *
424
+ * v0.4.140 dropped `deepseek-chat` / `deepseek-reasoner` from the provider
425
+ * model list but didn't migrate `~/.aicli/config.json`. Users who had ever
426
+ * called `/model` to pin one of these legacy ids would land in a broken
427
+ * state on next startup (banner shows `Model: deepseek-chat`, but `/model`
428
+ * picker no longer lists it).
429
+ *
430
+ * This pass is idempotent — if nothing matches, returns false and no save
431
+ * happens. Safe to run on every load.
432
+ *
433
+ * @returns true if config was modified and should be persisted.
434
+ */
435
+ migrateLegacyModels() {
436
+ const LEGACY_DEEPSEEK = /* @__PURE__ */ new Set(["deepseek-chat", "deepseek-reasoner"]);
437
+ const DEEPSEEK_TARGET = "deepseek-v4-flash";
438
+ let changed = false;
439
+ const dm = this.config.defaultModels;
440
+ if (dm && LEGACY_DEEPSEEK.has(dm.deepseek)) {
441
+ dm.deepseek = DEEPSEEK_TARGET;
442
+ changed = true;
443
+ }
444
+ const mp = this.config.modelParams;
445
+ if (mp) {
446
+ for (const legacy of LEGACY_DEEPSEEK) {
447
+ if (legacy in mp) {
448
+ if (!(DEEPSEEK_TARGET in mp)) {
449
+ mp[DEEPSEEK_TARGET] = mp[legacy];
450
+ }
451
+ delete mp[legacy];
452
+ changed = true;
453
+ }
454
+ }
455
+ }
456
+ if (changed) {
457
+ process.stderr.write(
458
+ `[ai-cli] Migrated retired DeepSeek model ids in config.json \u2192 ${DEEPSEEK_TARGET}
459
+ `
460
+ );
461
+ }
462
+ return changed;
463
+ }
418
464
  save() {
419
465
  mkdirSync(this.configDir, { recursive: true });
420
466
  writeFileSync(this.configPath, JSON.stringify(this.config, null, 2), "utf-8");
@@ -1838,19 +1884,21 @@ var OpenAICompatibleProvider = class extends BaseProvider {
1838
1884
  if (delta?.tool_calls) {
1839
1885
  for (const tc of delta.tool_calls) {
1840
1886
  const idx = tc.index;
1841
- if (tc.id && tc.function?.name) {
1887
+ const existing = toolCallAccumulators.get(idx);
1888
+ if (!existing && tc.id && tc.function?.name) {
1889
+ const initialArgs = tc.function.arguments ?? "";
1842
1890
  toolCallAccumulators.set(idx, {
1843
1891
  id: tc.id,
1844
1892
  name: tc.function.name,
1845
- arguments: tc.function.arguments ?? ""
1893
+ arguments: initialArgs
1846
1894
  });
1847
1895
  yield { type: "tool_call_start", index: idx, id: tc.id, name: tc.function.name };
1848
- } else if (tc.function?.arguments) {
1849
- const acc = toolCallAccumulators.get(idx);
1850
- if (acc) {
1851
- acc.arguments += tc.function.arguments;
1852
- yield { type: "tool_call_delta", index: idx, argumentsDelta: tc.function.arguments };
1896
+ if (initialArgs) {
1897
+ yield { type: "tool_call_delta", index: idx, argumentsDelta: initialArgs };
1853
1898
  }
1899
+ } else if (existing && tc.function?.arguments) {
1900
+ existing.arguments += tc.function.arguments;
1901
+ yield { type: "tool_call_delta", index: idx, argumentsDelta: tc.function.arguments };
1854
1902
  }
1855
1903
  }
1856
1904
  }
@@ -12500,7 +12548,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
12500
12548
  case "test": {
12501
12549
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
12502
12550
  try {
12503
- const { executeTests } = await import("./run-tests-GT4O5DUI.js");
12551
+ const { executeTests } = await import("./run-tests-3AYPKO5U.js");
12504
12552
  const argStr = args.join(" ").trim();
12505
12553
  let testArgs = {};
12506
12554
  if (argStr) {
@@ -386,7 +386,7 @@ ${content}`);
386
386
  }
387
387
  }
388
388
  async function runTaskMode(config, providers, configManager, topic) {
389
- const { TaskOrchestrator } = await import("./task-orchestrator-44SGHO6C.js");
389
+ const { TaskOrchestrator } = await import("./task-orchestrator-O4FTLSHK.js");
390
390
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
391
391
  let interrupted = false;
392
392
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -16,12 +16,12 @@ import {
16
16
  saveDevState,
17
17
  sessionHasMeaningfulContent,
18
18
  setupProxy
19
- } from "./chunk-RYIR3ILH.js";
19
+ } from "./chunk-DES5NNPU.js";
20
20
  import {
21
21
  getConfigDirUsage,
22
22
  listRecentCrashes,
23
23
  writeCrashLog
24
- } from "./chunk-KRIMHQIQ.js";
24
+ } from "./chunk-3UZBSMNI.js";
25
25
  import {
26
26
  CONTENT_ONLY_STREAM_REMINDER,
27
27
  HALLUCINATION_CORRECTION_MESSAGE,
@@ -39,10 +39,10 @@ import {
39
39
  looksLikeDocumentBody,
40
40
  stripPseudoToolCalls,
41
41
  stripToolCallReminder
42
- } from "./chunk-MNFJQEOJ.js";
42
+ } from "./chunk-INPG2HXR.js";
43
43
  import {
44
44
  ConfigManager
45
- } from "./chunk-2N4NTO6I.js";
45
+ } from "./chunk-WLZJANJO.js";
46
46
  import {
47
47
  ToolExecutor,
48
48
  ToolRegistry,
@@ -61,16 +61,16 @@ import {
61
61
  spawnAgentContext,
62
62
  theme,
63
63
  undoStack
64
- } from "./chunk-4DAHA3N2.js";
64
+ } from "./chunk-Q3ZEZHSU.js";
65
65
  import "./chunk-3BICTI5M.js";
66
66
  import "./chunk-2DXY7UGF.js";
67
- import "./chunk-FOS7SXFC.js";
67
+ import "./chunk-KSLJCZCE.js";
68
68
  import {
69
69
  getStatsSnapshot,
70
70
  getTopFailingTools,
71
71
  getTopUsedTools,
72
72
  installFlushOnExit
73
- } from "./chunk-5AKKMT6L.js";
73
+ } from "./chunk-G3CH252E.js";
74
74
  import "./chunk-2ZD3YTVM.js";
75
75
  import {
76
76
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -93,7 +93,7 @@ import {
93
93
  SKILLS_DIR_NAME,
94
94
  VERSION,
95
95
  buildUserIdentityPrompt
96
- } from "./chunk-AD2AFZU6.js";
96
+ } from "./chunk-NSTXHD33.js";
97
97
  import {
98
98
  formatGitContextForPrompt,
99
99
  getGitContext,
@@ -1812,7 +1812,7 @@ No tools match "${filter}".
1812
1812
  const { join: join6 } = await import("path");
1813
1813
  const { existsSync: existsSync6 } = await import("fs");
1814
1814
  const { getGitRoot: getGitRoot2 } = await import("./git-context-7KIP4X2V.js");
1815
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-KJT23X6O.js");
1815
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-QDFO3IJP.js");
1816
1816
  const { approveProject, hashMcpFile } = await import("./project-trust-IFM7FXEV.js");
1817
1817
  const cwd = process.cwd();
1818
1818
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -2873,7 +2873,7 @@ ${hint}` : "")
2873
2873
  usage: "/test [command|filter]",
2874
2874
  async execute(args, ctx) {
2875
2875
  try {
2876
- const { executeTests } = await import("./run-tests-O7S67WVO.js");
2876
+ const { executeTests } = await import("./run-tests-QER6ETNZ.js");
2877
2877
  const argStr = args.join(" ").trim();
2878
2878
  let testArgs = {};
2879
2879
  if (argStr) {
@@ -7379,7 +7379,7 @@ program.command("web").description("Start Web UI server with browser-based chat
7379
7379
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
7380
7380
  process.exit(1);
7381
7381
  }
7382
- const { startWebServer } = await import("./server-VNKVLTHN.js");
7382
+ const { startWebServer } = await import("./server-FFPJP2GQ.js");
7383
7383
  await startWebServer({ port, host: options.host });
7384
7384
  });
7385
7385
  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) => {
@@ -7546,12 +7546,12 @@ program.command("sessions").description("List recent conversation sessions").opt
7546
7546
  console.log(footer + "\n");
7547
7547
  });
7548
7548
  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) => {
7549
- const { runDoctorCli } = await import("./doctor-cli-NNUQ5G7R.js");
7549
+ const { runDoctorCli } = await import("./doctor-cli-CLKZYOOI.js");
7550
7550
  await runDoctorCli({ json: !!options.json, resetStats: !!options.resetStats });
7551
7551
  });
7552
7552
  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) => {
7553
7553
  try {
7554
- const batch = await import("./batch-VAJVUO72.js");
7554
+ const batch = await import("./batch-MJUH762U.js");
7555
7555
  switch (action) {
7556
7556
  case "submit":
7557
7557
  if (!arg) {
@@ -7594,7 +7594,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
7594
7594
  }
7595
7595
  });
7596
7596
  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) => {
7597
- const { startMcpServer } = await import("./server-KJV3F3KF.js");
7597
+ const { startMcpServer } = await import("./server-PBOIZFFD.js");
7598
7598
  await startMcpServer({
7599
7599
  allowDestructive: !!options.allowDestructive,
7600
7600
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7721,7 +7721,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
7721
7721
  }),
7722
7722
  config.get("customProviders")
7723
7723
  );
7724
- const { startHub } = await import("./hub-WHMSIB7P.js");
7724
+ const { startHub } = await import("./hub-X4ISNM7B.js");
7725
7725
  await startHub(
7726
7726
  {
7727
7727
  topic: topic ?? "",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-NPYZRKFH.js";
4
+ } from "./chunk-UXGHSFGB.js";
5
5
  import "./chunk-3RG5ZIWI.js";
6
6
  export {
7
7
  executeTests,
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-FOS7SXFC.js";
6
- import "./chunk-AD2AFZU6.js";
5
+ } from "./chunk-KSLJCZCE.js";
6
+ import "./chunk-NSTXHD33.js";
7
7
  import "./chunk-PDX44BCA.js";
8
8
  export {
9
9
  executeTests,
@@ -14,7 +14,7 @@ import {
14
14
  loadDevState,
15
15
  persistToolRound,
16
16
  setupProxy
17
- } from "./chunk-RYIR3ILH.js";
17
+ } from "./chunk-DES5NNPU.js";
18
18
  import {
19
19
  CONTENT_ONLY_STREAM_REMINDER,
20
20
  HALLUCINATION_CORRECTION_MESSAGE,
@@ -28,10 +28,10 @@ import {
28
28
  looksLikeDocumentBody,
29
29
  stripPseudoToolCalls,
30
30
  stripToolCallReminder
31
- } from "./chunk-MNFJQEOJ.js";
31
+ } from "./chunk-INPG2HXR.js";
32
32
  import {
33
33
  ConfigManager
34
- } from "./chunk-2N4NTO6I.js";
34
+ } from "./chunk-WLZJANJO.js";
35
35
  import {
36
36
  ToolExecutor,
37
37
  ToolRegistry,
@@ -49,14 +49,14 @@ import {
49
49
  spawnAgentContext,
50
50
  truncateOutput,
51
51
  undoStack
52
- } from "./chunk-4DAHA3N2.js";
52
+ } from "./chunk-Q3ZEZHSU.js";
53
53
  import "./chunk-3BICTI5M.js";
54
54
  import "./chunk-2DXY7UGF.js";
55
- import "./chunk-FOS7SXFC.js";
55
+ import "./chunk-KSLJCZCE.js";
56
56
  import {
57
57
  getDangerLevel,
58
58
  runTool
59
- } from "./chunk-5AKKMT6L.js";
59
+ } from "./chunk-G3CH252E.js";
60
60
  import "./chunk-2ZD3YTVM.js";
61
61
  import {
62
62
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -76,7 +76,7 @@ import {
76
76
  SKILLS_DIR_NAME,
77
77
  VERSION,
78
78
  buildUserIdentityPrompt
79
- } from "./chunk-AD2AFZU6.js";
79
+ } from "./chunk-NSTXHD33.js";
80
80
  import {
81
81
  formatGitContextForPrompt,
82
82
  getGitContext,
@@ -2460,7 +2460,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
2460
2460
  case "test": {
2461
2461
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
2462
2462
  try {
2463
- const { executeTests } = await import("./run-tests-O7S67WVO.js");
2463
+ const { executeTests } = await import("./run-tests-QER6ETNZ.js");
2464
2464
  const argStr = args.join(" ").trim();
2465
2465
  let testArgs = {};
2466
2466
  if (argStr) {
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ToolRegistry
4
- } from "./chunk-4DAHA3N2.js";
4
+ } from "./chunk-Q3ZEZHSU.js";
5
5
  import "./chunk-3BICTI5M.js";
6
6
  import "./chunk-2DXY7UGF.js";
7
- import "./chunk-FOS7SXFC.js";
7
+ import "./chunk-KSLJCZCE.js";
8
8
  import {
9
9
  getDangerLevel,
10
10
  runTool,
11
11
  schemaToJsonSchema
12
- } from "./chunk-5AKKMT6L.js";
12
+ } from "./chunk-G3CH252E.js";
13
13
  import "./chunk-2ZD3YTVM.js";
14
14
  import {
15
15
  VERSION
16
- } from "./chunk-AD2AFZU6.js";
16
+ } from "./chunk-NSTXHD33.js";
17
17
  import "./chunk-4BKXL7SM.js";
18
18
  import "./chunk-7ZJN4KLV.js";
19
19
  import "./chunk-KHYD3WXE.js";
@@ -3,18 +3,18 @@ import {
3
3
  ToolRegistry,
4
4
  googleSearchContext,
5
5
  truncateOutput
6
- } from "./chunk-4DAHA3N2.js";
6
+ } from "./chunk-Q3ZEZHSU.js";
7
7
  import "./chunk-3BICTI5M.js";
8
8
  import "./chunk-2DXY7UGF.js";
9
- import "./chunk-FOS7SXFC.js";
9
+ import "./chunk-KSLJCZCE.js";
10
10
  import {
11
11
  getDangerLevel,
12
12
  runTool
13
- } from "./chunk-5AKKMT6L.js";
13
+ } from "./chunk-G3CH252E.js";
14
14
  import "./chunk-2ZD3YTVM.js";
15
15
  import {
16
16
  SUBAGENT_ALLOWED_TOOLS
17
- } from "./chunk-AD2AFZU6.js";
17
+ } from "./chunk-NSTXHD33.js";
18
18
  import "./chunk-4BKXL7SM.js";
19
19
  import "./chunk-7ZJN4KLV.js";
20
20
  import "./chunk-KHYD3WXE.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.140",
3
+ "version": "0.4.142",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",