jinzd-ai-cli 0.4.168 → 0.4.170

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-5FWNJ2RK.js";
4
+ } from "./chunk-E5UKN2FB.js";
5
5
  import "./chunk-TZQHYZKT.js";
6
- import "./chunk-ZMULUSO7.js";
6
+ import "./chunk-PTXA4BGU.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
  truncateForPersist
4
- } from "./chunk-4K6LAJJC.js";
4
+ } from "./chunk-7ORSZ7UO.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-ZMULUSO7.js";
14
+ } from "./chunk-PTXA4BGU.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-YD4HRLLT.js";
8
+ } from "./chunk-PUUJZGAS.js";
9
9
  import {
10
10
  runTool
11
- } from "./chunk-VTZ4WZ7B.js";
11
+ } from "./chunk-SPJ5NO5Z.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-ZMULUSO7.js";
28
+ } from "./chunk-PTXA4BGU.js";
29
29
  import {
30
30
  fileCheckpoints
31
31
  } 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-ZMULUSO7.js";
11
+ } from "./chunk-PTXA4BGU.js";
12
12
 
13
13
  // src/config/config-manager.ts
14
14
  import { readFileSync, writeFileSync, existsSync, mkdirSync } 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.168";
9
+ var VERSION = "0.4.170";
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.168";
4
+ var VERSION = "0.4.170";
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-ZMULUSO7.js";
4
+ } from "./chunk-PTXA4BGU.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
  VERSION
5
- } from "./chunk-ZMULUSO7.js";
5
+ } from "./chunk-PTXA4BGU.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
  CONFIG_DIR_NAME
4
- } from "./chunk-ZMULUSO7.js";
4
+ } from "./chunk-PTXA4BGU.js";
5
5
 
6
6
  // src/diagnostics/tool-stats.ts
7
7
  import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync } from "fs";
@@ -10,11 +10,11 @@ import {
10
10
  import "./chunk-NXXNLLSG.js";
11
11
  import {
12
12
  ConfigManager
13
- } from "./chunk-5FWNJ2RK.js";
13
+ } from "./chunk-E5UKN2FB.js";
14
14
  import "./chunk-TZQHYZKT.js";
15
15
  import {
16
16
  VERSION
17
- } from "./chunk-ZMULUSO7.js";
17
+ } from "./chunk-PTXA4BGU.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-ZMULUSO7.js";
39
+ } from "./chunk-PTXA4BGU.js";
40
40
  import "./chunk-PDX44BCA.js";
41
41
  export {
42
42
  AGENTIC_BEHAVIOR_GUIDELINE,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  getConfigDirUsage,
4
4
  listRecentCrashes
5
- } from "./chunk-6Z6CXOZH.js";
5
+ } from "./chunk-Q466H3NV.js";
6
6
  import {
7
7
  ProviderRegistry
8
8
  } from "./chunk-GNJOC6ZN.js";
@@ -11,17 +11,17 @@ import {
11
11
  getTopFailingTools,
12
12
  getTopUsedTools,
13
13
  resetStats
14
- } from "./chunk-VTZ4WZ7B.js";
14
+ } from "./chunk-SPJ5NO5Z.js";
15
15
  import "./chunk-NXXNLLSG.js";
16
16
  import {
17
17
  ConfigManager
18
- } from "./chunk-5FWNJ2RK.js";
18
+ } from "./chunk-E5UKN2FB.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-ZMULUSO7.js";
24
+ } from "./chunk-PTXA4BGU.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-V5ULFCOM.js";
39
+ } from "./chunk-NVBUA6YL.js";
40
40
  import {
41
41
  hasSemanticIndex,
42
42
  semanticSearch
@@ -13548,7 +13548,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
13548
13548
  case "test": {
13549
13549
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
13550
13550
  try {
13551
- const { executeTests } = await import("./run-tests-V7MVZOR3.js");
13551
+ const { executeTests } = await import("./run-tests-KP7Y34MG.js");
13552
13552
  const argStr = args.join(" ").trim();
13553
13553
  let testArgs = {};
13554
13554
  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-KWDFEU7P.js");
158
+ const { TaskOrchestrator } = await import("./task-orchestrator-PY5AF2US.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-ME7R5BZL.js";
21
+ } from "./chunk-2C2DGQ5M.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-4K6LAJJC.js";
40
+ } from "./chunk-7ORSZ7UO.js";
41
41
  import "./chunk-HDSKW7Q3.js";
42
42
  import "./chunk-ZWVIDFGY.js";
43
- import "./chunk-YD4HRLLT.js";
43
+ import "./chunk-PUUJZGAS.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-6Z6CXOZH.js";
52
+ } from "./chunk-Q466H3NV.js";
53
53
  import {
54
54
  CONTENT_ONLY_STREAM_REMINDER,
55
55
  HALLUCINATION_CORRECTION_MESSAGE,
@@ -74,11 +74,11 @@ import {
74
74
  getTopFailingTools,
75
75
  getTopUsedTools,
76
76
  installFlushOnExit
77
- } from "./chunk-VTZ4WZ7B.js";
77
+ } from "./chunk-SPJ5NO5Z.js";
78
78
  import "./chunk-NXXNLLSG.js";
79
79
  import {
80
80
  ConfigManager
81
- } from "./chunk-5FWNJ2RK.js";
81
+ } from "./chunk-E5UKN2FB.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-ZMULUSO7.js";
108
+ } from "./chunk-PTXA4BGU.js";
109
109
  import {
110
110
  formatGitContextForPrompt,
111
111
  getGitContext,
@@ -208,6 +208,13 @@ function isInterruptedSession(messages) {
208
208
  import chalk from "chalk";
209
209
  import { createWriteStream, mkdirSync } from "fs";
210
210
  import { dirname } from "path";
211
+ function partialTagTail(s, tag) {
212
+ const max = Math.min(s.length, tag.length - 1);
213
+ for (let k = max; k > 0; k--) {
214
+ if (s.endsWith(tag.slice(0, k))) return k;
215
+ }
216
+ return 0;
217
+ }
211
218
  function fmtContextWindow(tokens) {
212
219
  if (tokens >= 1e6) return `${Math.round(tokens / 1e5) / 10}M`;
213
220
  if (tokens >= 1e3) return `${Math.round(tokens / 1024)}K`;
@@ -489,37 +496,46 @@ var Renderer = class {
489
496
  let fullContent = "";
490
497
  let usage;
491
498
  let inThinking = false;
492
- let thinkingShown = false;
493
- let buf = "";
494
- const flushBuf = () => {
495
- if (!buf) return;
496
- let out = buf;
497
- while (!inThinking) {
498
- const openIdx = out.indexOf("<think>");
499
- if (openIdx === -1) break;
500
- if (openIdx > 0) process.stdout.write(out.slice(0, openIdx));
501
- inThinking = true;
502
- if (!thinkingShown) {
503
- process.stdout.write(theme.dim("\n\u{1F4AD} Thinking...\n"));
504
- thinkingShown = true;
505
- }
506
- out = out.slice(openIdx + "<think>".length);
507
- }
508
- if (inThinking) {
509
- const closeIdx = out.indexOf("</think>");
510
- if (closeIdx !== -1) {
511
- inThinking = false;
512
- out = out.slice(closeIdx + "</think>".length);
513
- buf = out;
514
- flushBuf();
515
- return;
499
+ let thinkBuf = "";
500
+ const emitText = (raw) => {
501
+ thinkBuf += raw;
502
+ let out = "";
503
+ while (thinkBuf.length > 0) {
504
+ if (!inThinking) {
505
+ const open = thinkBuf.indexOf("<think>");
506
+ if (open === -1) {
507
+ const keep = partialTagTail(thinkBuf, "<think>");
508
+ out += thinkBuf.slice(0, thinkBuf.length - keep);
509
+ thinkBuf = thinkBuf.slice(thinkBuf.length - keep);
510
+ break;
511
+ }
512
+ out += thinkBuf.slice(0, open);
513
+ thinkBuf = thinkBuf.slice(open + "<think>".length);
514
+ inThinking = true;
516
515
  } else {
517
- buf = "";
518
- return;
516
+ const close = thinkBuf.indexOf("</think>");
517
+ if (close === -1) {
518
+ const keep = partialTagTail(thinkBuf, "</think>");
519
+ thinkBuf = thinkBuf.slice(thinkBuf.length - keep);
520
+ break;
521
+ }
522
+ thinkBuf = thinkBuf.slice(close + "</think>".length);
523
+ inThinking = false;
519
524
  }
520
525
  }
521
- if (out) process.stdout.write(out);
522
- buf = "";
526
+ if (out) {
527
+ process.stdout.write(out);
528
+ if (fileStream) fileStream.write(out);
529
+ fullContent += out;
530
+ }
531
+ };
532
+ const flushTail = () => {
533
+ if (!inThinking && thinkBuf) {
534
+ process.stdout.write(thinkBuf);
535
+ if (fileStream) fileStream.write(thinkBuf);
536
+ fullContent += thinkBuf;
537
+ thinkBuf = "";
538
+ }
523
539
  };
524
540
  let interrupted = false;
525
541
  let streamErr = null;
@@ -533,23 +549,19 @@ var Renderer = class {
533
549
  usage = chunk.usage;
534
550
  }
535
551
  if (chunk.done) {
536
- flushBuf();
537
552
  break;
538
553
  }
539
554
  if (!chunk.delta) continue;
540
- fullContent += chunk.delta;
541
- buf += chunk.delta;
542
- if (fileStream) fileStream.write(chunk.delta);
543
- flushBuf();
555
+ emitText(chunk.delta);
544
556
  }
545
557
  } catch (err) {
546
558
  if (err?.name === "AbortError") {
547
559
  interrupted = true;
548
- if (!inThinking) flushBuf();
549
560
  } else {
550
561
  streamErr = err;
551
562
  }
552
563
  }
564
+ flushTail();
553
565
  if (interrupted) {
554
566
  process.stdout.write(theme.dim(" [interrupted]\n"));
555
567
  }
@@ -598,14 +610,7 @@ var Renderer = class {
598
610
  process.stdout.write(theme.accent("Assistant: "));
599
611
  let displayed = content;
600
612
  if (content.includes("<think>")) {
601
- let hasThinking = false;
602
- displayed = content.replace(/<think>[\s\S]*?<\/think>/g, () => {
603
- hasThinking = true;
604
- return "";
605
- }).trimStart();
606
- if (hasThinking) {
607
- process.stdout.write(theme.dim("\n\u{1F4AD} Thinking...\n"));
608
- }
613
+ displayed = content.replace(/<think>[\s\S]*?<\/think>/g, "").trimStart();
609
614
  }
610
615
  const finalOutput = this.wrapWidth > 0 ? wrapText(displayed, this.wrapWidth) : displayed;
611
616
  process.stdout.write(finalOutput);
@@ -619,14 +624,7 @@ var Renderer = class {
619
624
  process.stdout.write(theme.accent("Assistant: "));
620
625
  let displayed = content;
621
626
  if (content.includes("<think>")) {
622
- let hasThinking = false;
623
- displayed = content.replace(/<think>[\s\S]*?<\/think>/g, () => {
624
- hasThinking = true;
625
- return "";
626
- }).trimStart();
627
- if (hasThinking) {
628
- process.stdout.write(theme.dim("\n\u{1F4AD} Thinking...\n"));
629
- }
627
+ displayed = content.replace(/<think>[\s\S]*?<\/think>/g, "").trimStart();
630
628
  }
631
629
  if (this.wrapWidth > 0) {
632
630
  displayed = wrapText(displayed, this.wrapWidth);
@@ -1788,7 +1786,7 @@ No tools match "${filter}".
1788
1786
  const { join: join6 } = await import("path");
1789
1787
  const { existsSync: existsSync6 } = await import("fs");
1790
1788
  const { getGitRoot: getGitRoot2 } = await import("./git-context-7KIP4X2V.js");
1791
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-IOB32OGD.js");
1789
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-DX4RNM5O.js");
1792
1790
  const { approveProject, hashMcpFile } = await import("./project-trust-IFM7FXEV.js");
1793
1791
  const cwd = process.cwd();
1794
1792
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -2849,7 +2847,7 @@ ${hint}` : "")
2849
2847
  usage: "/test [command|filter]",
2850
2848
  async execute(args, ctx) {
2851
2849
  try {
2852
- const { executeTests } = await import("./run-tests-RPBZ2IAC.js");
2850
+ const { executeTests } = await import("./run-tests-JUG5WK6N.js");
2853
2851
  const argStr = args.join(" ").trim();
2854
2852
  let testArgs = {};
2855
2853
  if (argStr) {
@@ -4700,7 +4698,7 @@ var FREE_ROUND_TOOLS = /* @__PURE__ */ new Set(["write_todos"]);
4700
4698
  var MAX_CONSECUTIVE_FREE_ROUNDS = 3;
4701
4699
  var MAX_REPEATED_TOOL_CALLS = 2;
4702
4700
  var DEFAULT_AUTO_PAUSE_INTERVAL = 50;
4703
- function partialTagTail(s, tag) {
4701
+ function partialTagTail2(s, tag) {
4704
4702
  const max = Math.min(s.length, tag.length - 1);
4705
4703
  for (let k = max; k > 0; k--) {
4706
4704
  if (s.endsWith(tag.slice(0, k))) return k;
@@ -6398,7 +6396,7 @@ Session '${this.resumeSessionId}' not found.
6398
6396
  if (!inThink) {
6399
6397
  const open = thinkBuf.indexOf("<think>");
6400
6398
  if (open === -1) {
6401
- const keep = partialTagTail(thinkBuf, "<think>");
6399
+ const keep = partialTagTail2(thinkBuf, "<think>");
6402
6400
  out += thinkBuf.slice(0, thinkBuf.length - keep);
6403
6401
  thinkBuf = thinkBuf.slice(thinkBuf.length - keep);
6404
6402
  break;
@@ -6406,14 +6404,11 @@ Session '${this.resumeSessionId}' not found.
6406
6404
  out += thinkBuf.slice(0, open);
6407
6405
  thinkBuf = thinkBuf.slice(open + "<think>".length);
6408
6406
  inThink = true;
6409
- if (!thinkShown) {
6410
- process.stdout.write(theme.dim("\n\u{1F4AD} Thinking...\n"));
6411
- thinkShown = true;
6412
- }
6407
+ thinkShown = true;
6413
6408
  } else {
6414
6409
  const close = thinkBuf.indexOf("</think>");
6415
6410
  if (close === -1) {
6416
- const keep = partialTagTail(thinkBuf, "</think>");
6411
+ const keep = partialTagTail2(thinkBuf, "</think>");
6417
6412
  thinkBuf = thinkBuf.slice(thinkBuf.length - keep);
6418
6413
  break;
6419
6414
  }
@@ -7601,7 +7596,7 @@ program.command("web").description("Start Web UI server with browser-based chat
7601
7596
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
7602
7597
  process.exit(1);
7603
7598
  }
7604
- const { startWebServer } = await import("./server-S5OBTPL7.js");
7599
+ const { startWebServer } = await import("./server-JXCJRJN5.js");
7605
7600
  await startWebServer({ port, host: options.host });
7606
7601
  });
7607
7602
  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) => {
@@ -7768,12 +7763,12 @@ program.command("sessions").description("List recent conversation sessions").opt
7768
7763
  console.log(footer + "\n");
7769
7764
  });
7770
7765
  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) => {
7771
- const { runDoctorCli } = await import("./doctor-cli-6B7IBG7B.js");
7766
+ const { runDoctorCli } = await import("./doctor-cli-323ZXFCH.js");
7772
7767
  await runDoctorCli({ json: !!options.json, resetStats: !!options.resetStats });
7773
7768
  });
7774
7769
  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) => {
7775
7770
  try {
7776
- const batch = await import("./batch-3LFXB2YA.js");
7771
+ const batch = await import("./batch-CAV4XSEF.js");
7777
7772
  switch (action) {
7778
7773
  case "submit":
7779
7774
  if (!arg) {
@@ -7816,7 +7811,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
7816
7811
  }
7817
7812
  });
7818
7813
  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) => {
7819
- const { startMcpServer } = await import("./server-JORD3KAA.js");
7814
+ const { startMcpServer } = await import("./server-VQTTNO3M.js");
7820
7815
  await startMcpServer({
7821
7816
  allowDestructive: !!options.allowDestructive,
7822
7817
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7825,7 +7820,7 @@ program.command("mcp-serve").description("Start an MCP server over STDIO, exposi
7825
7820
  });
7826
7821
  });
7827
7822
  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) => {
7828
- const { runCi } = await import("./ci-WLOVQACD.js");
7823
+ const { runCi } = await import("./ci-VERENT2L.js");
7829
7824
  const result = await runCi({
7830
7825
  pr: options.pr,
7831
7826
  base: options.base,
@@ -7970,7 +7965,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
7970
7965
  }),
7971
7966
  config.get("customProviders")
7972
7967
  );
7973
- const { startHub } = await import("./hub-J2DLTQFC.js");
7968
+ const { startHub } = await import("./hub-IZL5HKHA.js");
7974
7969
  await startHub(
7975
7970
  {
7976
7971
  topic: topic ?? "",
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-YD4HRLLT.js";
6
- import "./chunk-ZMULUSO7.js";
5
+ } from "./chunk-PUUJZGAS.js";
6
+ import "./chunk-PTXA4BGU.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-V5ULFCOM.js";
4
+ } from "./chunk-NVBUA6YL.js";
5
5
  import "./chunk-3RG5ZIWI.js";
6
6
  export {
7
7
  executeTests,
@@ -21,7 +21,7 @@ import {
21
21
  loadDevState,
22
22
  persistToolRound,
23
23
  setupProxy
24
- } from "./chunk-ME7R5BZL.js";
24
+ } from "./chunk-2C2DGQ5M.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-4K6LAJJC.js";
42
+ } from "./chunk-7ORSZ7UO.js";
43
43
  import "./chunk-HDSKW7Q3.js";
44
44
  import "./chunk-ZWVIDFGY.js";
45
- import "./chunk-YD4HRLLT.js";
45
+ import "./chunk-PUUJZGAS.js";
46
46
  import {
47
47
  SessionManager,
48
48
  getContentText
@@ -64,13 +64,13 @@ import {
64
64
  } from "./chunk-GNJOC6ZN.js";
65
65
  import {
66
66
  runTool
67
- } from "./chunk-VTZ4WZ7B.js";
67
+ } from "./chunk-SPJ5NO5Z.js";
68
68
  import {
69
69
  getDangerLevel
70
70
  } from "./chunk-NXXNLLSG.js";
71
71
  import {
72
72
  ConfigManager
73
- } from "./chunk-5FWNJ2RK.js";
73
+ } from "./chunk-E5UKN2FB.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-ZMULUSO7.js";
93
+ } from "./chunk-PTXA4BGU.js";
94
94
  import {
95
95
  formatGitContextForPrompt,
96
96
  getGitContext,
@@ -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-RPBZ2IAC.js");
2580
+ const { executeTests } = await import("./run-tests-JUG5WK6N.js");
2581
2581
  const argStr = args.join(" ").trim();
2582
2582
  let testArgs = {};
2583
2583
  if (argStr) {
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ToolRegistry
4
- } from "./chunk-4K6LAJJC.js";
4
+ } from "./chunk-7ORSZ7UO.js";
5
5
  import "./chunk-HDSKW7Q3.js";
6
6
  import "./chunk-ZWVIDFGY.js";
7
- import "./chunk-YD4HRLLT.js";
7
+ import "./chunk-PUUJZGAS.js";
8
8
  import {
9
9
  runTool
10
- } from "./chunk-VTZ4WZ7B.js";
10
+ } from "./chunk-SPJ5NO5Z.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-ZMULUSO7.js";
18
+ } from "./chunk-PTXA4BGU.js";
19
19
  import "./chunk-4BKXL7SM.js";
20
20
  import "./chunk-MM3F43H6.js";
21
21
  import "./chunk-KHYD3WXE.js";
@@ -3,20 +3,20 @@ import {
3
3
  ToolRegistry,
4
4
  googleSearchContext,
5
5
  truncateOutput
6
- } from "./chunk-4K6LAJJC.js";
6
+ } from "./chunk-7ORSZ7UO.js";
7
7
  import "./chunk-HDSKW7Q3.js";
8
8
  import "./chunk-ZWVIDFGY.js";
9
- import "./chunk-YD4HRLLT.js";
9
+ import "./chunk-PUUJZGAS.js";
10
10
  import {
11
11
  runTool
12
- } from "./chunk-VTZ4WZ7B.js";
12
+ } from "./chunk-SPJ5NO5Z.js";
13
13
  import {
14
14
  getDangerLevel
15
15
  } from "./chunk-NXXNLLSG.js";
16
16
  import "./chunk-TZQHYZKT.js";
17
17
  import {
18
18
  SUBAGENT_ALLOWED_TOOLS
19
- } from "./chunk-ZMULUSO7.js";
19
+ } from "./chunk-PTXA4BGU.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.168",
3
+ "version": "0.4.170",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",