jinzd-ai-cli 0.4.224 → 0.4.225

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 (26) hide show
  1. package/dist/{batch-EQER63CQ.js → batch-OWM7PN4L.js} +2 -2
  2. package/dist/{chunk-35OPVVEK.js → chunk-6ISALPIH.js} +1 -1
  3. package/dist/{chunk-4CZZJQXJ.js → chunk-BWCZYPEU.js} +2 -2
  4. package/dist/{chunk-QJUAQKH2.js → chunk-DUKZBAI4.js} +1 -1
  5. package/dist/{chunk-4RQPCOEE.js → chunk-IZ4VM2P5.js} +3 -3
  6. package/dist/{chunk-HLXQXV23.js → chunk-M4QZYFPN.js} +1 -1
  7. package/dist/{chunk-JDMFVRFG.js → chunk-MFFMRTP6.js} +3 -3
  8. package/dist/{chunk-6FEZAWH5.js → chunk-Q3XNGXNR.js} +3 -3
  9. package/dist/{chunk-JU7OI4BN.js → chunk-RC7FBLFT.js} +1 -1
  10. package/dist/{chunk-34RV4ZKA.js → chunk-YENINV7F.js} +1 -1
  11. package/dist/{chunk-A2AVDSXJ.js → chunk-YUGXAALR.js} +1 -1
  12. package/dist/{ci-UAQFOAMS.js → ci-RTGUV5C3.js} +4 -4
  13. package/dist/{ci-format-MNUHYUTO.js → ci-format-QDBP5WBU.js} +2 -2
  14. package/dist/{constants-PGDTYD2R.js → constants-P4NBXYN5.js} +1 -1
  15. package/dist/{doctor-cli-F6A3GOVY.js → doctor-cli-SEX44HGI.js} +4 -4
  16. package/dist/electron-server.js +2 -2
  17. package/dist/{hub-EDTZKS7E.js → hub-FAKZZQGX.js} +1 -1
  18. package/dist/index.js +37 -22
  19. package/dist/{pr-YC7DMVC5.js → pr-DK6ENTZN.js} +4 -4
  20. package/dist/{run-tests-AUEKHJCC.js → run-tests-COCXP4B6.js} +2 -2
  21. package/dist/{run-tests-S36TE2W2.js → run-tests-P6F27SWN.js} +1 -1
  22. package/dist/{server-LQFHSFN4.js → server-BG3J7GFG.js} +8 -8
  23. package/dist/{server-347YIBHS.js → server-J4W6UZXJ.js} +4 -4
  24. package/dist/{task-orchestrator-FIR5MCND.js → task-orchestrator-6LKQAS74.js} +4 -4
  25. package/dist/{usage-3MXPFFBU.js → usage-IPFSL5WT.js} +2 -2
  26. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ConfigManager
4
- } from "./chunk-35OPVVEK.js";
4
+ } from "./chunk-6ISALPIH.js";
5
5
  import "./chunk-5ULLIOVC.js";
6
- import "./chunk-QJUAQKH2.js";
6
+ import "./chunk-DUKZBAI4.js";
7
7
  import {
8
8
  atomicWriteFileSync
9
9
  } from "./chunk-IW3Q7AE5.js";
@@ -8,7 +8,7 @@ import {
8
8
  CONFIG_FILE_NAME,
9
9
  HISTORY_DIR_NAME,
10
10
  PLUGINS_DIR_NAME
11
- } from "./chunk-QJUAQKH2.js";
11
+ } from "./chunk-DUKZBAI4.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
  truncateForPersist
4
- } from "./chunk-4RQPCOEE.js";
4
+ } from "./chunk-IZ4VM2P5.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-QJUAQKH2.js";
14
+ } from "./chunk-DUKZBAI4.js";
15
15
  import {
16
16
  atomicWriteFileSync
17
17
  } from "./chunk-IW3Q7AE5.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.224";
4
+ var VERSION = "0.4.225";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -14,7 +14,7 @@ import {
14
14
  runHook,
15
15
  runLifecycleHooks,
16
16
  runTool
17
- } from "./chunk-A2AVDSXJ.js";
17
+ } from "./chunk-YUGXAALR.js";
18
18
  import {
19
19
  getDangerLevel,
20
20
  isFileWriteTool,
@@ -33,7 +33,7 @@ import {
33
33
  } from "./chunk-4BKXL7SM.js";
34
34
  import {
35
35
  runTestsTool
36
- } from "./chunk-JU7OI4BN.js";
36
+ } from "./chunk-RC7FBLFT.js";
37
37
  import {
38
38
  CONFIG_DIR_NAME,
39
39
  DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
@@ -43,7 +43,7 @@ import {
43
43
  SUBAGENT_ALLOWED_TOOLS,
44
44
  SUBAGENT_DEFAULT_MAX_ROUNDS,
45
45
  SUBAGENT_MAX_ROUNDS_LIMIT
46
- } from "./chunk-QJUAQKH2.js";
46
+ } from "./chunk-DUKZBAI4.js";
47
47
  import {
48
48
  loadChatIndex,
49
49
  searchChatMemory
@@ -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.224";
9
+ var VERSION = "0.4.225";
10
10
  var APP_NAME = "ai-cli";
11
11
  var CONFIG_DIR_NAME = ".aicli";
12
12
  var CONFIG_FILE_NAME = "config.json";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  evaluateCiGate,
4
4
  normalizeCiThresholds
5
- } from "./chunk-34RV4ZKA.js";
5
+ } from "./chunk-YENINV7F.js";
6
6
  import {
7
7
  buildReviewPrompt,
8
8
  buildSecurityReviewPrompt,
@@ -13,10 +13,10 @@ import {
13
13
  } from "./chunk-PUBCJF7E.js";
14
14
  import {
15
15
  ConfigManager
16
- } from "./chunk-35OPVVEK.js";
16
+ } from "./chunk-6ISALPIH.js";
17
17
  import {
18
18
  VERSION
19
- } from "./chunk-QJUAQKH2.js";
19
+ } from "./chunk-DUKZBAI4.js";
20
20
 
21
21
  // src/cli/ci.ts
22
22
  import { execFileSync } from "child_process";
@@ -11,10 +11,10 @@ import {
11
11
  listHooks,
12
12
  listInstalledPlugins,
13
13
  resetStats
14
- } from "./chunk-A2AVDSXJ.js";
14
+ } from "./chunk-YUGXAALR.js";
15
15
  import {
16
16
  ConfigManager
17
- } from "./chunk-35OPVVEK.js";
17
+ } from "./chunk-6ISALPIH.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-QJUAQKH2.js";
29
+ } from "./chunk-DUKZBAI4.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
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-QJUAQKH2.js";
4
+ } from "./chunk-DUKZBAI4.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
  VERSION
4
- } from "./chunk-QJUAQKH2.js";
4
+ } from "./chunk-DUKZBAI4.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
  CONFIG_DIR_NAME,
4
4
  PLUGINS_DIR_NAME
5
- } from "./chunk-QJUAQKH2.js";
5
+ } from "./chunk-DUKZBAI4.js";
6
6
  import {
7
7
  atomicWriteFileSync
8
8
  } from "./chunk-IW3Q7AE5.js";
@@ -3,14 +3,14 @@ import {
3
3
  CI_COMMENT_MARKER,
4
4
  countSeverity,
5
5
  runCi
6
- } from "./chunk-JDMFVRFG.js";
7
- import "./chunk-34RV4ZKA.js";
6
+ } from "./chunk-MFFMRTP6.js";
7
+ import "./chunk-YENINV7F.js";
8
8
  import "./chunk-HLWUDRBO.js";
9
9
  import "./chunk-PUBCJF7E.js";
10
10
  import "./chunk-XPBEJB27.js";
11
- import "./chunk-35OPVVEK.js";
11
+ import "./chunk-6ISALPIH.js";
12
12
  import "./chunk-5ULLIOVC.js";
13
- import "./chunk-QJUAQKH2.js";
13
+ import "./chunk-DUKZBAI4.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-34RV4ZKA.js";
10
- import "./chunk-QJUAQKH2.js";
9
+ } from "./chunk-YENINV7F.js";
10
+ import "./chunk-DUKZBAI4.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-QJUAQKH2.js";
41
+ } from "./chunk-DUKZBAI4.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-6FEZAWH5.js";
5
+ } from "./chunk-Q3XNGXNR.js";
6
6
  import "./chunk-PUBCJF7E.js";
7
- import "./chunk-A2AVDSXJ.js";
7
+ import "./chunk-YUGXAALR.js";
8
8
  import "./chunk-XPBEJB27.js";
9
- import "./chunk-35OPVVEK.js";
9
+ import "./chunk-6ISALPIH.js";
10
10
  import "./chunk-5ULLIOVC.js";
11
11
  import "./chunk-HOSJZMQS.js";
12
- import "./chunk-QJUAQKH2.js";
12
+ import "./chunk-DUKZBAI4.js";
13
13
  import "./chunk-IW3Q7AE5.js";
14
14
  export {
15
15
  formatDoctorReport,
@@ -38,7 +38,7 @@ import {
38
38
  VERSION,
39
39
  buildUserIdentityPrompt,
40
40
  runTestsTool
41
- } from "./chunk-HLXQXV23.js";
41
+ } from "./chunk-M4QZYFPN.js";
42
42
  import {
43
43
  hasSemanticIndex,
44
44
  semanticSearch
@@ -15973,7 +15973,7 @@ async function handleSecurityReview(args, ctx) {
15973
15973
  async function handleTest(args, ctx) {
15974
15974
  ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
15975
15975
  try {
15976
- const { executeTests } = await import("./run-tests-S36TE2W2.js");
15976
+ const { executeTests } = await import("./run-tests-P6F27SWN.js");
15977
15977
  const argStr = args.join(" ").trim();
15978
15978
  let testArgs = {};
15979
15979
  if (argStr) {
@@ -154,7 +154,7 @@ ${content}`);
154
154
  }
155
155
  }
156
156
  async function runTaskMode(config, providers, configManager, topic) {
157
- const { TaskOrchestrator } = await import("./task-orchestrator-FIR5MCND.js");
157
+ const { TaskOrchestrator } = await import("./task-orchestrator-6LKQAS74.js");
158
158
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
159
159
  let interrupted = false;
160
160
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  scanProject,
15
15
  sessionHasMeaningfulContent,
16
16
  setupProxy
17
- } from "./chunk-4CZZJQXJ.js";
17
+ } from "./chunk-BWCZYPEU.js";
18
18
  import {
19
19
  buildReviewPrompt,
20
20
  buildSecurityReviewPrompt
@@ -52,7 +52,7 @@ import {
52
52
  theme,
53
53
  undoStack,
54
54
  updateMemoryApproval
55
- } from "./chunk-4RQPCOEE.js";
55
+ } from "./chunk-IZ4VM2P5.js";
56
56
  import "./chunk-K3CF65QH.js";
57
57
  import "./chunk-UUSRWSSX.js";
58
58
  import "./chunk-CKH4KQ4E.js";
@@ -74,7 +74,7 @@ import {
74
74
  formatDoctorReport,
75
75
  loadContextFiles,
76
76
  writeCrashLog
77
- } from "./chunk-6FEZAWH5.js";
77
+ } from "./chunk-Q3XNGXNR.js";
78
78
  import {
79
79
  ProviderRegistry
80
80
  } from "./chunk-PUBCJF7E.js";
@@ -94,7 +94,7 @@ import {
94
94
  trustHook,
95
95
  trustPlugin,
96
96
  untrustHook
97
- } from "./chunk-A2AVDSXJ.js";
97
+ } from "./chunk-YUGXAALR.js";
98
98
  import {
99
99
  CONTENT_ONLY_STREAM_REMINDER,
100
100
  TEE_FINAL_USER_NUDGE,
@@ -116,7 +116,7 @@ import {
116
116
  } from "./chunk-XPBEJB27.js";
117
117
  import {
118
118
  ConfigManager
119
- } from "./chunk-35OPVVEK.js";
119
+ } from "./chunk-6ISALPIH.js";
120
120
  import {
121
121
  AuthError,
122
122
  ProviderError,
@@ -130,7 +130,7 @@ import {
130
130
  import {
131
131
  fileCheckpoints
132
132
  } from "./chunk-4BKXL7SM.js";
133
- import "./chunk-JU7OI4BN.js";
133
+ import "./chunk-RC7FBLFT.js";
134
134
  import {
135
135
  AGENTIC_BEHAVIOR_GUIDELINE,
136
136
  AUTHOR,
@@ -149,7 +149,7 @@ import {
149
149
  SKILLS_DIR_NAME,
150
150
  VERSION,
151
151
  buildUserIdentityPrompt
152
- } from "./chunk-QJUAQKH2.js";
152
+ } from "./chunk-DUKZBAI4.js";
153
153
  import {
154
154
  buildChatIndex,
155
155
  clearChatIndex,
@@ -763,6 +763,7 @@ function parseSessionListArgs(args) {
763
763
  let limit = DEFAULT_SESSION_LIST_LIMIT;
764
764
  let all = false;
765
765
  const filter = {};
766
+ const warnings = [];
766
767
  let search = null;
767
768
  let days = null;
768
769
  let since = null;
@@ -788,6 +789,15 @@ function parseSessionListArgs(args) {
788
789
  const vals = val.slice(eq + 1).split(",").map((s) => s.trim().toLowerCase());
789
790
  if (key === "provider") filter.provider = vals;
790
791
  else if (key === "model") filter.model = vals;
792
+ else if (key === "messages") {
793
+ const n = Number(vals[0]);
794
+ if (Number.isFinite(n) && n >= 0) filter.messages = n;
795
+ else warnings.push(`Invalid filter value for "messages": expected a non-negative integer, got "${vals[0]}"`);
796
+ } else {
797
+ warnings.push(`Unknown filter key: "${key}". Supported keys: provider, model, messages`);
798
+ }
799
+ } else {
800
+ warnings.push(`Invalid --filter syntax: "${val}". Expected key=value`);
791
801
  }
792
802
  } else if ((a === "--search" || a === "-s") && i + 1 < args.length) {
793
803
  search = args[++i];
@@ -814,7 +824,7 @@ function parseSessionListArgs(args) {
814
824
  }
815
825
  }
816
826
  if (all) limit = -1;
817
- return { limit, all, filter, search, days, since, sort, json, stale, verbose };
827
+ return { limit, all, filter, search, days, since, sort, json, stale, verbose, warnings };
818
828
  }
819
829
  function renderTranscriptMessage(msg, renderer) {
820
830
  if (msg.role === "user") {
@@ -1022,7 +1032,7 @@ function createMiscCommands() {
1022
1032
  rows: [
1023
1033
  ["/clear", "Clear conversation history"],
1024
1034
  ["/compact [instruction]", "Summarize & compress history"],
1025
- ["/session new|list|load|show|page|remove", "Manage saved sessions (show = transcript + continue)"],
1035
+ ["/session new|list [--filter k=v]|load|show|page|remove", "Manage saved sessions (list: --filter provider=/model=/messages=)"],
1026
1036
  ["/checkpoint [save|restore|delete] <name>", "Session checkpoints"],
1027
1037
  ["/fork [checkpoint]", "Fork session from checkpoint or current"],
1028
1038
  ["/branch [list|new|switch|delete|rename|diff|cherry-pick]", "Conversation branches"],
@@ -1823,7 +1833,7 @@ No tools match "${filter}".
1823
1833
  const { join: join7 } = await import("path");
1824
1834
  const { existsSync: existsSync6 } = await import("fs");
1825
1835
  const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
1826
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-PGDTYD2R.js");
1836
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-P4NBXYN5.js");
1827
1837
  const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
1828
1838
  const cwd = process.cwd();
1829
1839
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -2802,7 +2812,7 @@ function createReviewCommands() {
2802
2812
  usage: "/test [command|filter]",
2803
2813
  async execute(args, ctx) {
2804
2814
  try {
2805
- const { executeTests } = await import("./run-tests-AUEKHJCC.js");
2815
+ const { executeTests } = await import("./run-tests-COCXP4B6.js");
2806
2816
  const argStr = args.join(" ").trim();
2807
2817
  let testArgs = {};
2808
2818
  if (argStr) {
@@ -3421,7 +3431,7 @@ function createSessionCommands() {
3421
3431
  {
3422
3432
  name: "session",
3423
3433
  description: "Session management",
3424
- usage: "/session new|list [--limit N|--all] [--filter k=v] [--search kw] [--days N|--stale N] [--sort f[:o]] [--json] [--verbose]|load <id>|show <id> [page]|page <n>|remove <id>|clean --stale N [--dry-run]",
3434
+ usage: "/session new|list [--limit N|--all] [--filter provider=|model=|messages=N] [--search kw] [--days N|--stale N] [--sort f[:o]] [--json] [--verbose]|load <id>|show <id> [page]|page <n>|remove <id>|clean --stale N [--dry-run]",
3425
3435
  async execute(args, ctx) {
3426
3436
  const sub = args[0];
3427
3437
  if (sub === "new") {
@@ -3433,22 +3443,27 @@ function createSessionCommands() {
3433
3443
  ctx.renderer.printSuccess("New session started.");
3434
3444
  } else if (sub === "list") {
3435
3445
  const opts = parseSessionListArgs(args);
3446
+ for (const w of opts.warnings) {
3447
+ ctx.renderer.printInfo(`\u26A0 ${w}`);
3448
+ }
3436
3449
  const needFileSize = opts.verbose || opts.sort.field === "size";
3437
3450
  let allSessions = ctx.sessions.listSessions({ includeFileSize: needFileSize });
3438
3451
  if (allSessions.length === 0) {
3439
3452
  ctx.renderer.printInfo("No saved sessions.");
3440
3453
  return;
3441
3454
  }
3442
- const hasFilters = opts.filter.provider || opts.filter.model;
3455
+ const hasFilters = opts.filter.provider || opts.filter.model || opts.filter.messages !== void 0;
3443
3456
  const hasSearch = !!opts.search;
3444
3457
  const hasTimeFilter = opts.days !== null || opts.since !== null;
3445
3458
  const hasStale = opts.stale !== null;
3446
3459
  if (hasFilters) {
3447
3460
  const p = opts.filter.provider;
3448
3461
  const m = opts.filter.model;
3462
+ const msg = opts.filter.messages;
3449
3463
  allSessions = allSessions.filter((s) => {
3450
3464
  if (p && !p.includes(s.provider.toLowerCase())) return false;
3451
3465
  if (m && !m.some((kw) => s.model.toLowerCase().includes(kw))) return false;
3466
+ if (msg !== void 0 && s.messageCount !== msg) return false;
3452
3467
  return true;
3453
3468
  });
3454
3469
  }
@@ -7649,7 +7664,7 @@ program.command("web").description("Start Web UI server with browser-based chat
7649
7664
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
7650
7665
  process.exit(1);
7651
7666
  }
7652
- const { startWebServer } = await import("./server-LQFHSFN4.js");
7667
+ const { startWebServer } = await import("./server-BG3J7GFG.js");
7653
7668
  await startWebServer({ port, host: options.host });
7654
7669
  });
7655
7670
  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) => {
@@ -7816,11 +7831,11 @@ program.command("sessions").description("List recent conversation sessions").opt
7816
7831
  console.log(footer + "\n");
7817
7832
  });
7818
7833
  program.command("usage").description("Show token + cost usage grouped by provider/model (cross-session)").option("--days <n>", "Only the last N days (inclusive of today)").option("--month <ym>", "Only a specific month, format YYYY-MM (e.g. 2026-06)").option("--json", "Output as JSON (for scripting)").action(async (options) => {
7819
- const { runUsageCli } = await import("./usage-3MXPFFBU.js");
7834
+ const { runUsageCli } = await import("./usage-IPFSL5WT.js");
7820
7835
  await runUsageCli(options);
7821
7836
  });
7822
7837
  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) => {
7823
- const { runDoctorCli } = await import("./doctor-cli-F6A3GOVY.js");
7838
+ const { runDoctorCli } = await import("./doctor-cli-SEX44HGI.js");
7824
7839
  const argv = process.argv.slice(2);
7825
7840
  await runDoctorCli({
7826
7841
  json: !!options.json || argv.includes("--json"),
@@ -7829,7 +7844,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
7829
7844
  });
7830
7845
  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) => {
7831
7846
  try {
7832
- const batch = await import("./batch-EQER63CQ.js");
7847
+ const batch = await import("./batch-OWM7PN4L.js");
7833
7848
  switch (action) {
7834
7849
  case "submit":
7835
7850
  if (!arg) {
@@ -7872,7 +7887,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
7872
7887
  }
7873
7888
  });
7874
7889
  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) => {
7875
- const { startMcpServer } = await import("./server-347YIBHS.js");
7890
+ const { startMcpServer } = await import("./server-J4W6UZXJ.js");
7876
7891
  await startMcpServer({
7877
7892
  allowDestructive: !!options.allowDestructive,
7878
7893
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7885,7 +7900,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
7885
7900
  console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
7886
7901
  process.exit(1);
7887
7902
  }
7888
- const { runPrCli } = await import("./pr-YC7DMVC5.js");
7903
+ const { runPrCli } = await import("./pr-DK6ENTZN.js");
7889
7904
  const result = await runPrCli({
7890
7905
  action,
7891
7906
  target,
@@ -7905,8 +7920,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
7905
7920
  process.exit(result.exitCode);
7906
7921
  });
7907
7922
  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 or URL; diff fetched via gh pr diff <value>", (v) => /^#?\d+$/.test(v) ? parseInt(v.replace(/^#/, ""), 10) : v).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)").option("--json", "Output a structured JSON report").option("--markdown", "Output Markdown report (default)").option("--sarif", "Output SARIF 2.1.0 for code scanning artifacts").option("--fail-on-security-high", "Fail when the security review contains HIGH/CRITICAL findings (default)").option("--no-fail-on-security-high", "Do not fail on security HIGH/CRITICAL findings").option("--fail-on-test-failure", "Fail when the report mentions test failures (default)").option("--no-fail-on-test-failure", "Do not fail on test failure findings").option("--fail-on-lint-failure", "Fail when the report mentions lint/typecheck failures (default)").option("--no-fail-on-lint-failure", "Do not fail on lint/typecheck failure findings").action(async (options) => {
7908
- const { runCi } = await import("./ci-UAQFOAMS.js");
7909
- const { formatCiResult } = await import("./ci-format-MNUHYUTO.js");
7923
+ const { runCi } = await import("./ci-RTGUV5C3.js");
7924
+ const { formatCiResult } = await import("./ci-format-QDBP5WBU.js");
7910
7925
  const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
7911
7926
  if (formats > 1) {
7912
7927
  console.error("Choose only one output format: --json, --markdown, or --sarif.");
@@ -8064,7 +8079,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
8064
8079
  config.get("customProviders"),
8065
8080
  config.getConfigDir()
8066
8081
  );
8067
- const { startHub } = await import("./hub-EDTZKS7E.js");
8082
+ const { startHub } = await import("./hub-FAKZZQGX.js");
8068
8083
  await startHub(
8069
8084
  {
8070
8085
  topic: topic ?? "",
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  countSeverity,
4
4
  runCi
5
- } from "./chunk-JDMFVRFG.js";
6
- import "./chunk-34RV4ZKA.js";
5
+ } from "./chunk-MFFMRTP6.js";
6
+ import "./chunk-YENINV7F.js";
7
7
  import {
8
8
  buildReviewPrompt,
9
9
  buildSecurityReviewPrompt,
@@ -15,11 +15,11 @@ import {
15
15
  import "./chunk-XPBEJB27.js";
16
16
  import {
17
17
  ConfigManager
18
- } from "./chunk-35OPVVEK.js";
18
+ } from "./chunk-6ISALPIH.js";
19
19
  import "./chunk-5ULLIOVC.js";
20
20
  import {
21
21
  VERSION
22
- } from "./chunk-QJUAQKH2.js";
22
+ } from "./chunk-DUKZBAI4.js";
23
23
  import "./chunk-IW3Q7AE5.js";
24
24
 
25
25
  // src/cli/pr.ts
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-JU7OI4BN.js";
6
- import "./chunk-QJUAQKH2.js";
5
+ } from "./chunk-RC7FBLFT.js";
6
+ import "./chunk-DUKZBAI4.js";
7
7
  export {
8
8
  executeTests,
9
9
  runTestsTool
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-HLXQXV23.js";
4
+ } from "./chunk-M4QZYFPN.js";
5
5
  export {
6
6
  executeTests,
7
7
  runTestsTool
@@ -23,7 +23,7 @@ import {
23
23
  scanDirTree,
24
24
  scanProject,
25
25
  setupProxy
26
- } from "./chunk-4CZZJQXJ.js";
26
+ } from "./chunk-BWCZYPEU.js";
27
27
  import {
28
28
  buildReviewPrompt,
29
29
  buildSecurityReviewPrompt
@@ -67,7 +67,7 @@ import {
67
67
  truncateOutput,
68
68
  undoStack,
69
69
  updateMemoryApproval
70
- } from "./chunk-4RQPCOEE.js";
70
+ } from "./chunk-IZ4VM2P5.js";
71
71
  import "./chunk-K3CF65QH.js";
72
72
  import "./chunk-UUSRWSSX.js";
73
73
  import "./chunk-CKH4KQ4E.js";
@@ -84,7 +84,7 @@ import {
84
84
  buildDoctorReport,
85
85
  formatDoctorReport,
86
86
  loadContextFiles
87
- } from "./chunk-6FEZAWH5.js";
87
+ } from "./chunk-Q3XNGXNR.js";
88
88
  import {
89
89
  ProviderRegistry
90
90
  } from "./chunk-PUBCJF7E.js";
@@ -102,7 +102,7 @@ import {
102
102
  runTool,
103
103
  setPluginEnabled,
104
104
  trustPlugin
105
- } from "./chunk-A2AVDSXJ.js";
105
+ } from "./chunk-YUGXAALR.js";
106
106
  import {
107
107
  CONTENT_ONLY_STREAM_REMINDER,
108
108
  TEE_FINAL_USER_NUDGE,
@@ -121,7 +121,7 @@ import {
121
121
  } from "./chunk-XPBEJB27.js";
122
122
  import {
123
123
  ConfigManager
124
- } from "./chunk-35OPVVEK.js";
124
+ } from "./chunk-6ISALPIH.js";
125
125
  import "./chunk-5ULLIOVC.js";
126
126
  import {
127
127
  formatGitContextForPrompt,
@@ -129,7 +129,7 @@ import {
129
129
  getGitRoot
130
130
  } from "./chunk-HOSJZMQS.js";
131
131
  import "./chunk-4BKXL7SM.js";
132
- import "./chunk-JU7OI4BN.js";
132
+ import "./chunk-RC7FBLFT.js";
133
133
  import {
134
134
  AGENTIC_BEHAVIOR_GUIDELINE,
135
135
  AUTHOR,
@@ -146,7 +146,7 @@ import {
146
146
  SKILLS_DIR_NAME,
147
147
  VERSION,
148
148
  buildUserIdentityPrompt
149
- } from "./chunk-QJUAQKH2.js";
149
+ } from "./chunk-DUKZBAI4.js";
150
150
  import "./chunk-NVUCDUXE.js";
151
151
  import "./chunk-KHYD3WXE.js";
152
152
  import {
@@ -1554,7 +1554,7 @@ async function handleSecurityReview(args, ctx) {
1554
1554
  async function handleTest(args, ctx) {
1555
1555
  ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
1556
1556
  try {
1557
- const { executeTests } = await import("./run-tests-AUEKHJCC.js");
1557
+ const { executeTests } = await import("./run-tests-COCXP4B6.js");
1558
1558
  const argStr = args.join(" ").trim();
1559
1559
  let testArgs = {};
1560
1560
  if (argStr) {
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ToolRegistry
4
- } from "./chunk-4RQPCOEE.js";
4
+ } from "./chunk-IZ4VM2P5.js";
5
5
  import "./chunk-K3CF65QH.js";
6
6
  import "./chunk-UUSRWSSX.js";
7
7
  import "./chunk-CKH4KQ4E.js";
8
8
  import "./chunk-BXP6YZ2P.js";
9
9
  import {
10
10
  runTool
11
- } from "./chunk-A2AVDSXJ.js";
11
+ } from "./chunk-YUGXAALR.js";
12
12
  import {
13
13
  getDangerLevel,
14
14
  schemaToJsonSchema
@@ -16,10 +16,10 @@ import {
16
16
  import "./chunk-5ULLIOVC.js";
17
17
  import "./chunk-HOSJZMQS.js";
18
18
  import "./chunk-4BKXL7SM.js";
19
- import "./chunk-JU7OI4BN.js";
19
+ import "./chunk-RC7FBLFT.js";
20
20
  import {
21
21
  VERSION
22
- } from "./chunk-QJUAQKH2.js";
22
+ } from "./chunk-DUKZBAI4.js";
23
23
  import "./chunk-NVUCDUXE.js";
24
24
  import "./chunk-KHYD3WXE.js";
25
25
  import "./chunk-B5TYJO7V.js";
@@ -3,14 +3,14 @@ import {
3
3
  ToolRegistry,
4
4
  googleSearchContext,
5
5
  truncateOutput
6
- } from "./chunk-4RQPCOEE.js";
6
+ } from "./chunk-IZ4VM2P5.js";
7
7
  import "./chunk-K3CF65QH.js";
8
8
  import "./chunk-UUSRWSSX.js";
9
9
  import "./chunk-CKH4KQ4E.js";
10
10
  import "./chunk-BXP6YZ2P.js";
11
11
  import {
12
12
  runTool
13
- } from "./chunk-A2AVDSXJ.js";
13
+ } from "./chunk-YUGXAALR.js";
14
14
  import {
15
15
  getDangerLevel,
16
16
  runLeanAgentLoop
@@ -18,10 +18,10 @@ import {
18
18
  import "./chunk-5ULLIOVC.js";
19
19
  import "./chunk-HOSJZMQS.js";
20
20
  import "./chunk-4BKXL7SM.js";
21
- import "./chunk-JU7OI4BN.js";
21
+ import "./chunk-RC7FBLFT.js";
22
22
  import {
23
23
  SUBAGENT_ALLOWED_TOOLS
24
- } from "./chunk-QJUAQKH2.js";
24
+ } from "./chunk-DUKZBAI4.js";
25
25
  import "./chunk-NVUCDUXE.js";
26
26
  import "./chunk-KHYD3WXE.js";
27
27
  import "./chunk-B5TYJO7V.js";
@@ -8,9 +8,9 @@ import {
8
8
  } from "./chunk-E44DTERW.js";
9
9
  import {
10
10
  ConfigManager
11
- } from "./chunk-35OPVVEK.js";
11
+ } from "./chunk-6ISALPIH.js";
12
12
  import "./chunk-5ULLIOVC.js";
13
- import "./chunk-QJUAQKH2.js";
13
+ import "./chunk-DUKZBAI4.js";
14
14
  import "./chunk-IW3Q7AE5.js";
15
15
 
16
16
  // src/cli/usage.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.224",
3
+ "version": "0.4.225",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",