jinzd-ai-cli 0.4.124 → 0.4.125

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-NELLBZRA.js";
4
+ } from "./chunk-BMXOYPFZ.js";
5
5
  import "./chunk-2ZD3YTVM.js";
6
- import "./chunk-I6U55T3H.js";
6
+ import "./chunk-GMBLOBW7.js";
7
7
  import "./chunk-PDX44BCA.js";
8
8
 
9
9
  // src/cli/batch.ts
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  CONFIG_DIR_NAME
4
- } from "./chunk-I6U55T3H.js";
4
+ } from "./chunk-GMBLOBW7.js";
5
5
 
6
6
  // src/diagnostics/tool-stats.ts
7
7
  import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync } from "fs";
@@ -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.124";
9
+ var VERSION = "0.4.125";
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
  import {
3
3
  schemaToJsonSchema
4
- } from "./chunk-JW4O67E3.js";
4
+ } from "./chunk-4XI7RRIW.js";
5
5
  import {
6
6
  AuthError,
7
7
  ProviderError,
@@ -5,12 +5,12 @@ import {
5
5
  } from "./chunk-3BICTI5M.js";
6
6
  import {
7
7
  runTestsTool
8
- } from "./chunk-E56SNFYK.js";
8
+ } from "./chunk-IP6IPSZJ.js";
9
9
  import {
10
10
  getDangerLevel,
11
11
  isFileWriteTool,
12
12
  runTool
13
- } from "./chunk-JW4O67E3.js";
13
+ } from "./chunk-4XI7RRIW.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-I6U55T3H.js";
26
+ } from "./chunk-GMBLOBW7.js";
27
27
  import {
28
28
  fileCheckpoints
29
29
  } from "./chunk-4BKXL7SM.js";
@@ -8,7 +8,7 @@ import {
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-I6U55T3H.js";
11
+ } from "./chunk-GMBLOBW7.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
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.124";
4
+ var VERSION = "0.4.125";
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
  TEST_TIMEOUT
4
- } from "./chunk-I6U55T3H.js";
4
+ } from "./chunk-GMBLOBW7.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
  import {
3
3
  truncateForPersist
4
- } from "./chunk-2N6VKUH3.js";
4
+ } from "./chunk-6XPEB6PR.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-I6U55T3H.js";
14
+ } from "./chunk-GMBLOBW7.js";
15
15
  import {
16
16
  redactJson
17
17
  } from "./chunk-7ZJN4KLV.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CONFIG_DIR_NAME,
4
4
  VERSION
5
- } from "./chunk-I6U55T3H.js";
5
+ } from "./chunk-GMBLOBW7.js";
6
6
 
7
7
  // src/diagnostics/crash-log.ts
8
8
  import {
@@ -36,7 +36,7 @@ import {
36
36
  TEST_TIMEOUT,
37
37
  VERSION,
38
38
  buildUserIdentityPrompt
39
- } from "./chunk-I6U55T3H.js";
39
+ } from "./chunk-GMBLOBW7.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-MANQVLVX.js";
5
+ } from "./chunk-ZL5Q2HP4.js";
6
6
  import {
7
7
  ProviderRegistry
8
- } from "./chunk-HMZHKSGB.js";
8
+ } from "./chunk-5ZHTBFZ4.js";
9
9
  import {
10
10
  ConfigManager
11
- } from "./chunk-NELLBZRA.js";
11
+ } from "./chunk-BMXOYPFZ.js";
12
12
  import {
13
13
  getStatsSnapshot,
14
14
  getTopFailingTools,
15
15
  getTopUsedTools,
16
16
  resetStats
17
- } from "./chunk-JW4O67E3.js";
17
+ } from "./chunk-4XI7RRIW.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-I6U55T3H.js";
23
+ } from "./chunk-GMBLOBW7.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-5PMDFNOC.js";
39
+ } from "./chunk-5242JF4Q.js";
40
40
  import {
41
41
  hasSemanticIndex,
42
42
  semanticSearch
@@ -12203,7 +12203,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
12203
12203
  case "test": {
12204
12204
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
12205
12205
  try {
12206
- const { executeTests } = await import("./run-tests-47O4Z3BM.js");
12206
+ const { executeTests } = await import("./run-tests-VX33IWWD.js");
12207
12207
  const argStr = args.join(" ").trim();
12208
12208
  let testArgs = {};
12209
12209
  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-ANBMXQ2E.js");
389
+ const { TaskOrchestrator } = await import("./task-orchestrator-IXBSUOVM.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-2Q4TRDUS.js";
19
+ } from "./chunk-OC3QPVR4.js";
20
20
  import {
21
21
  getConfigDirUsage,
22
22
  listRecentCrashes,
23
23
  writeCrashLog
24
- } from "./chunk-MANQVLVX.js";
24
+ } from "./chunk-ZL5Q2HP4.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-HMZHKSGB.js";
42
+ } from "./chunk-5ZHTBFZ4.js";
43
43
  import {
44
44
  ConfigManager
45
- } from "./chunk-NELLBZRA.js";
45
+ } from "./chunk-BMXOYPFZ.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-2N6VKUH3.js";
64
+ } from "./chunk-6XPEB6PR.js";
65
65
  import "./chunk-3BICTI5M.js";
66
66
  import "./chunk-2DXY7UGF.js";
67
- import "./chunk-E56SNFYK.js";
67
+ import "./chunk-IP6IPSZJ.js";
68
68
  import {
69
69
  getStatsSnapshot,
70
70
  getTopFailingTools,
71
71
  getTopUsedTools,
72
72
  installFlushOnExit
73
- } from "./chunk-JW4O67E3.js";
73
+ } from "./chunk-4XI7RRIW.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-I6U55T3H.js";
96
+ } from "./chunk-GMBLOBW7.js";
97
97
  import {
98
98
  formatGitContextForPrompt,
99
99
  getGitContext,
@@ -1748,7 +1748,7 @@ No tools match "${filter}".
1748
1748
  const { join: join6 } = await import("path");
1749
1749
  const { existsSync: existsSync6 } = await import("fs");
1750
1750
  const { getGitRoot: getGitRoot2 } = await import("./git-context-7KIP4X2V.js");
1751
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-SQ6ER44V.js");
1751
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-QBA3BYQM.js");
1752
1752
  const { approveProject, hashMcpFile } = await import("./project-trust-IFM7FXEV.js");
1753
1753
  const cwd = process.cwd();
1754
1754
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -2809,7 +2809,7 @@ ${hint}` : "")
2809
2809
  usage: "/test [command|filter]",
2810
2810
  async execute(args, ctx) {
2811
2811
  try {
2812
- const { executeTests } = await import("./run-tests-V7Q3ZJW2.js");
2812
+ const { executeTests } = await import("./run-tests-27C4WSR6.js");
2813
2813
  const argStr = args.join(" ").trim();
2814
2814
  let testArgs = {};
2815
2815
  if (argStr) {
@@ -5063,10 +5063,17 @@ ${response.content.trim()}
5063
5063
  timestamp: /* @__PURE__ */ new Date()
5064
5064
  };
5065
5065
  const beforeCount = session.messages.length;
5066
+ const ctxWindow = this.getContextWindowSize();
5067
+ const tokensBefore = ctxWindow > 0 ? this.estimateConversationTokens() : 0;
5066
5068
  const removedCount = session.compact(summaryMsg, ackMsg, COMPACT_KEEP_LAST);
5067
5069
  const afterCount = session.messages.length;
5070
+ const tokensAfter = ctxWindow > 0 ? this.estimateConversationTokens() : 0;
5071
+ const pctBefore = ctxWindow > 0 ? Math.round(tokensBefore / ctxWindow * 100) : 0;
5072
+ const pctAfter = ctxWindow > 0 ? Math.round(tokensAfter / ctxWindow * 100) : 0;
5073
+ const ctxLine = ctxWindow > 0 ? ` Context: ${pctBefore}% \u2192 ${pctAfter}% (freed ~${Math.round((tokensBefore - tokensAfter) / 1e3)}K tokens)` : "";
5068
5074
  this.renderer.printSuccess(
5069
- `Session compacted: ${beforeCount} \u2192 ${afterCount} messages (${removedCount} compressed into summary, ${COMPACT_KEEP_LAST} recent preserved)`
5075
+ `Session compacted: ${beforeCount} \u2192 ${afterCount} messages (${removedCount} compressed into summary, ${COMPACT_KEEP_LAST} recent preserved)` + (ctxLine ? `
5076
+ ${ctxLine}` : "")
5070
5077
  );
5071
5078
  return true;
5072
5079
  } catch (err) {
@@ -7169,7 +7176,7 @@ program.command("web").description("Start Web UI server with browser-based chat
7169
7176
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
7170
7177
  process.exit(1);
7171
7178
  }
7172
- const { startWebServer } = await import("./server-NASNKJZP.js");
7179
+ const { startWebServer } = await import("./server-4PNBZPHM.js");
7173
7180
  await startWebServer({ port, host: options.host });
7174
7181
  });
7175
7182
  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) => {
@@ -7336,12 +7343,12 @@ program.command("sessions").description("List recent conversation sessions").opt
7336
7343
  console.log(footer + "\n");
7337
7344
  });
7338
7345
  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) => {
7339
- const { runDoctorCli } = await import("./doctor-cli-YTMFJ6QY.js");
7346
+ const { runDoctorCli } = await import("./doctor-cli-3PDBXO2M.js");
7340
7347
  await runDoctorCli({ json: !!options.json, resetStats: !!options.resetStats });
7341
7348
  });
7342
7349
  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) => {
7343
7350
  try {
7344
- const batch = await import("./batch-CZPE7S25.js");
7351
+ const batch = await import("./batch-TCWNELYW.js");
7345
7352
  switch (action) {
7346
7353
  case "submit":
7347
7354
  if (!arg) {
@@ -7384,7 +7391,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
7384
7391
  }
7385
7392
  });
7386
7393
  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) => {
7387
- const { startMcpServer } = await import("./server-QOVMOY2G.js");
7394
+ const { startMcpServer } = await import("./server-KNAD5HBQ.js");
7388
7395
  await startMcpServer({
7389
7396
  allowDestructive: !!options.allowDestructive,
7390
7397
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7511,7 +7518,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
7511
7518
  }),
7512
7519
  config.get("customProviders")
7513
7520
  );
7514
- const { startHub } = await import("./hub-KMLZPWBX.js");
7521
+ const { startHub } = await import("./hub-RH34TBP2.js");
7515
7522
  await startHub(
7516
7523
  {
7517
7524
  topic: topic ?? "",
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-E56SNFYK.js";
6
- import "./chunk-I6U55T3H.js";
5
+ } from "./chunk-IP6IPSZJ.js";
6
+ import "./chunk-GMBLOBW7.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-5PMDFNOC.js";
4
+ } from "./chunk-5242JF4Q.js";
5
5
  import "./chunk-3RG5ZIWI.js";
6
6
  export {
7
7
  executeTests,
@@ -14,7 +14,7 @@ import {
14
14
  loadDevState,
15
15
  persistToolRound,
16
16
  setupProxy
17
- } from "./chunk-2Q4TRDUS.js";
17
+ } from "./chunk-OC3QPVR4.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-HMZHKSGB.js";
31
+ } from "./chunk-5ZHTBFZ4.js";
32
32
  import {
33
33
  ConfigManager
34
- } from "./chunk-NELLBZRA.js";
34
+ } from "./chunk-BMXOYPFZ.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-2N6VKUH3.js";
52
+ } from "./chunk-6XPEB6PR.js";
53
53
  import "./chunk-3BICTI5M.js";
54
54
  import "./chunk-2DXY7UGF.js";
55
- import "./chunk-E56SNFYK.js";
55
+ import "./chunk-IP6IPSZJ.js";
56
56
  import {
57
57
  getDangerLevel,
58
58
  runTool
59
- } from "./chunk-JW4O67E3.js";
59
+ } from "./chunk-4XI7RRIW.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-I6U55T3H.js";
79
+ } from "./chunk-GMBLOBW7.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-V7Q3ZJW2.js");
2463
+ const { executeTests } = await import("./run-tests-27C4WSR6.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-2N6VKUH3.js";
4
+ } from "./chunk-6XPEB6PR.js";
5
5
  import "./chunk-3BICTI5M.js";
6
6
  import "./chunk-2DXY7UGF.js";
7
- import "./chunk-E56SNFYK.js";
7
+ import "./chunk-IP6IPSZJ.js";
8
8
  import {
9
9
  getDangerLevel,
10
10
  runTool,
11
11
  schemaToJsonSchema
12
- } from "./chunk-JW4O67E3.js";
12
+ } from "./chunk-4XI7RRIW.js";
13
13
  import "./chunk-2ZD3YTVM.js";
14
14
  import {
15
15
  VERSION
16
- } from "./chunk-I6U55T3H.js";
16
+ } from "./chunk-GMBLOBW7.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-2N6VKUH3.js";
6
+ } from "./chunk-6XPEB6PR.js";
7
7
  import "./chunk-3BICTI5M.js";
8
8
  import "./chunk-2DXY7UGF.js";
9
- import "./chunk-E56SNFYK.js";
9
+ import "./chunk-IP6IPSZJ.js";
10
10
  import {
11
11
  getDangerLevel,
12
12
  runTool
13
- } from "./chunk-JW4O67E3.js";
13
+ } from "./chunk-4XI7RRIW.js";
14
14
  import "./chunk-2ZD3YTVM.js";
15
15
  import {
16
16
  SUBAGENT_ALLOWED_TOOLS
17
- } from "./chunk-I6U55T3H.js";
17
+ } from "./chunk-GMBLOBW7.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.124",
3
+ "version": "0.4.125",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",