jinzd-ai-cli 0.4.100 → 0.4.101

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-4Y3CQKOA.js";
4
+ } from "./chunk-GXR2VZDI.js";
5
5
  import "./chunk-2ZD3YTVM.js";
6
- import "./chunk-VUNOH5LH.js";
6
+ import "./chunk-3MEH7D36.js";
7
7
 
8
8
  // src/cli/batch.ts
9
9
  import Anthropic from "@anthropic-ai/sdk";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/core/constants.ts
4
- var VERSION = "0.4.100";
4
+ var VERSION = "0.4.101";
5
5
  var APP_NAME = "ai-cli";
6
6
  var CONFIG_DIR_NAME = ".aicli";
7
7
  var CONFIG_FILE_NAME = "config.json";
@@ -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.100";
9
+ var VERSION = "0.4.101";
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-VUNOH5LH.js";
11
+ } from "./chunk-3MEH7D36.js";
12
12
 
13
13
  // src/config/config-manager.ts
14
14
  import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-6VRJGH25.js";
24
24
  import {
25
25
  runTestsTool
26
- } from "./chunk-NXJF4NTB.js";
26
+ } from "./chunk-TFCBOPQV.js";
27
27
  import {
28
28
  CONFIG_DIR_NAME,
29
29
  DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
@@ -31,7 +31,7 @@ import {
31
31
  SUBAGENT_ALLOWED_TOOLS,
32
32
  SUBAGENT_DEFAULT_MAX_ROUNDS,
33
33
  SUBAGENT_MAX_ROUNDS_LIMIT
34
- } from "./chunk-VUNOH5LH.js";
34
+ } from "./chunk-3MEH7D36.js";
35
35
 
36
36
  // src/tools/types.ts
37
37
  function isFileWriteTool(name) {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  TEST_TIMEOUT
4
- } from "./chunk-VUNOH5LH.js";
4
+ } from "./chunk-3MEH7D36.js";
5
5
 
6
6
  // src/tools/builtin/run-tests.ts
7
7
  import { execSync } from "child_process";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  schemaToJsonSchema,
4
4
  truncateForPersist
5
- } from "./chunk-7KSCEXT5.js";
5
+ } from "./chunk-MBPA2FMK.js";
6
6
  import {
7
7
  AuthError,
8
8
  ProviderError,
@@ -21,7 +21,7 @@ import {
21
21
  MCP_PROTOCOL_VERSION,
22
22
  MCP_TOOL_PREFIX,
23
23
  VERSION
24
- } from "./chunk-VUNOH5LH.js";
24
+ } from "./chunk-3MEH7D36.js";
25
25
 
26
26
  // src/providers/claude.ts
27
27
  import Anthropic from "@anthropic-ai/sdk";
@@ -36,7 +36,7 @@ import {
36
36
  VERSION,
37
37
  buildUserIdentityPrompt,
38
38
  runTestsTool
39
- } from "./chunk-WWODV2IK.js";
39
+ } from "./chunk-5EQP4IAM.js";
40
40
  import {
41
41
  hasSemanticIndex,
42
42
  semanticSearch
@@ -11485,7 +11485,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
11485
11485
  case "test": {
11486
11486
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
11487
11487
  try {
11488
- const { executeTests } = await import("./run-tests-ASV6RF2W.js");
11488
+ const { executeTests } = await import("./run-tests-7LVMNX4S.js");
11489
11489
  const argStr = args.join(" ").trim();
11490
11490
  let testArgs = {};
11491
11491
  if (argStr) {
@@ -12174,16 +12174,17 @@ Add .md files to create commands.` });
12174
12174
  };
12175
12175
  }
12176
12176
  getFilteredToolDefs() {
12177
+ const excludeWeb = (t) => t.name !== "save_last_response";
12177
12178
  if (this.planMode) {
12178
12179
  return {
12179
- toolDefs: this.toolRegistry.getDefinitions().filter((t) => PLAN_MODE_READONLY_TOOLS.has(t.name)),
12180
+ toolDefs: this.toolRegistry.getDefinitions().filter((t) => PLAN_MODE_READONLY_TOOLS.has(t.name) && excludeWeb(t)),
12180
12181
  mcpBudgetNote: null
12181
12182
  };
12182
12183
  }
12183
12184
  const skillFilter = this.skillManager?.getActiveToolFilter();
12184
12185
  if (skillFilter) {
12185
12186
  return {
12186
- toolDefs: this.toolRegistry.getDefinitions().filter((t) => skillFilter.has(t.name)),
12187
+ toolDefs: this.toolRegistry.getDefinitions().filter((t) => skillFilter.has(t.name) && excludeWeb(t)),
12187
12188
  mcpBudgetNote: null
12188
12189
  };
12189
12190
  }
@@ -12191,9 +12192,9 @@ Add .md files to create commands.` });
12191
12192
  if (contextWindow > 0) {
12192
12193
  const toolBudget = Math.floor(contextWindow * 0.2);
12193
12194
  const { definitions, systemNote } = this.toolRegistry.getDefinitionsWithBudget(toolBudget, this.usedMcpToolNames);
12194
- return { toolDefs: definitions, mcpBudgetNote: systemNote };
12195
+ return { toolDefs: definitions.filter(excludeWeb), mcpBudgetNote: systemNote };
12195
12196
  }
12196
- return { toolDefs: this.toolRegistry.getDefinitions(), mcpBudgetNote: null };
12197
+ return { toolDefs: this.toolRegistry.getDefinitions().filter(excludeWeb), mcpBudgetNote: null };
12197
12198
  }
12198
12199
  /**
12199
12200
  * Find first matching context file in a directory.
@@ -385,7 +385,7 @@ ${content}`);
385
385
  }
386
386
  }
387
387
  async function runTaskMode(config, providers, configManager, topic) {
388
- const { TaskOrchestrator } = await import("./task-orchestrator-VOWDS3AR.js");
388
+ const { TaskOrchestrator } = await import("./task-orchestrator-ZATGIRNE.js");
389
389
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
390
390
  let interrupted = false;
391
391
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -28,10 +28,10 @@ import {
28
28
  saveDevState,
29
29
  sessionHasMeaningfulContent,
30
30
  setupProxy
31
- } from "./chunk-DUTKX4KD.js";
31
+ } from "./chunk-VWZW5JWK.js";
32
32
  import {
33
33
  ConfigManager
34
- } from "./chunk-4Y3CQKOA.js";
34
+ } from "./chunk-GXR2VZDI.js";
35
35
  import {
36
36
  ToolExecutor,
37
37
  ToolRegistry,
@@ -50,7 +50,7 @@ import {
50
50
  spawnAgentContext,
51
51
  theme,
52
52
  undoStack
53
- } from "./chunk-7KSCEXT5.js";
53
+ } from "./chunk-MBPA2FMK.js";
54
54
  import "./chunk-2ZD3YTVM.js";
55
55
  import {
56
56
  fileCheckpoints
@@ -68,7 +68,7 @@ import "./chunk-KJLJPUY2.js";
68
68
  import "./chunk-6VRJGH25.js";
69
69
  import "./chunk-2DXY7UGF.js";
70
70
  import "./chunk-KHYD3WXE.js";
71
- import "./chunk-NXJF4NTB.js";
71
+ import "./chunk-TFCBOPQV.js";
72
72
  import {
73
73
  AGENTIC_BEHAVIOR_GUIDELINE,
74
74
  AUTHOR,
@@ -90,7 +90,7 @@ import {
90
90
  SKILLS_DIR_NAME,
91
91
  VERSION,
92
92
  buildUserIdentityPrompt
93
- } from "./chunk-VUNOH5LH.js";
93
+ } from "./chunk-3MEH7D36.js";
94
94
 
95
95
  // src/index.ts
96
96
  import { program } from "commander";
@@ -2610,7 +2610,7 @@ ${hint}` : "")
2610
2610
  usage: "/test [command|filter]",
2611
2611
  async execute(args, ctx) {
2612
2612
  try {
2613
- const { executeTests } = await import("./run-tests-J4UIFHR3.js");
2613
+ const { executeTests } = await import("./run-tests-IG45VWEM.js");
2614
2614
  const argStr = args.join(" ").trim();
2615
2615
  let testArgs = {};
2616
2616
  if (argStr) {
@@ -6749,7 +6749,7 @@ program.command("web").description("Start Web UI server with browser-based chat
6749
6749
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
6750
6750
  process.exit(1);
6751
6751
  }
6752
- const { startWebServer } = await import("./server-QHNF2N2Q.js");
6752
+ const { startWebServer } = await import("./server-UBHVIJA6.js");
6753
6753
  await startWebServer({ port, host: options.host });
6754
6754
  });
6755
6755
  program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | migrate <name>)").action(async (action, username) => {
@@ -6872,7 +6872,7 @@ program.command("sessions").description("List recent conversation sessions").act
6872
6872
  });
6873
6873
  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) => {
6874
6874
  try {
6875
- const batch = await import("./batch-6S5U2JDF.js");
6875
+ const batch = await import("./batch-DL3IJ7JQ.js");
6876
6876
  switch (action) {
6877
6877
  case "submit":
6878
6878
  if (!arg) {
@@ -6915,7 +6915,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
6915
6915
  }
6916
6916
  });
6917
6917
  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) => {
6918
- const { startMcpServer } = await import("./server-EMJPXELL.js");
6918
+ const { startMcpServer } = await import("./server-X5DQ5V6S.js");
6919
6919
  await startMcpServer({
6920
6920
  allowDestructive: !!options.allowDestructive,
6921
6921
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7042,7 +7042,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
7042
7042
  }),
7043
7043
  config.get("customProviders")
7044
7044
  );
7045
- const { startHub } = await import("./hub-IV5FAEWL.js");
7045
+ const { startHub } = await import("./hub-O5OX6KWP.js");
7046
7046
  await startHub(
7047
7047
  {
7048
7048
  topic: topic ?? "",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-WWODV2IK.js";
4
+ } from "./chunk-5EQP4IAM.js";
5
5
  export {
6
6
  executeTests,
7
7
  runTestsTool
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-NXJF4NTB.js";
6
- import "./chunk-VUNOH5LH.js";
5
+ } from "./chunk-TFCBOPQV.js";
6
+ import "./chunk-3MEH7D36.js";
7
7
  export {
8
8
  executeTests,
9
9
  runTestsTool
@@ -21,10 +21,10 @@ import {
21
21
  loadDevState,
22
22
  persistToolRound,
23
23
  setupProxy
24
- } from "./chunk-DUTKX4KD.js";
24
+ } from "./chunk-VWZW5JWK.js";
25
25
  import {
26
26
  ConfigManager
27
- } from "./chunk-4Y3CQKOA.js";
27
+ } from "./chunk-GXR2VZDI.js";
28
28
  import {
29
29
  ToolExecutor,
30
30
  ToolRegistry,
@@ -42,7 +42,7 @@ import {
42
42
  spawnAgentContext,
43
43
  truncateOutput,
44
44
  undoStack
45
- } from "./chunk-7KSCEXT5.js";
45
+ } from "./chunk-MBPA2FMK.js";
46
46
  import "./chunk-2ZD3YTVM.js";
47
47
  import "./chunk-4BKXL7SM.js";
48
48
  import "./chunk-ANYYM4CF.js";
@@ -51,7 +51,7 @@ import "./chunk-KJLJPUY2.js";
51
51
  import "./chunk-6VRJGH25.js";
52
52
  import "./chunk-2DXY7UGF.js";
53
53
  import "./chunk-KHYD3WXE.js";
54
- import "./chunk-NXJF4NTB.js";
54
+ import "./chunk-TFCBOPQV.js";
55
55
  import {
56
56
  AGENTIC_BEHAVIOR_GUIDELINE,
57
57
  AUTHOR,
@@ -70,7 +70,7 @@ import {
70
70
  SKILLS_DIR_NAME,
71
71
  VERSION,
72
72
  buildUserIdentityPrompt
73
- } from "./chunk-VUNOH5LH.js";
73
+ } from "./chunk-3MEH7D36.js";
74
74
 
75
75
  // src/web/server.ts
76
76
  import express from "express";
@@ -2248,7 +2248,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
2248
2248
  case "test": {
2249
2249
  this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
2250
2250
  try {
2251
- const { executeTests } = await import("./run-tests-J4UIFHR3.js");
2251
+ const { executeTests } = await import("./run-tests-IG45VWEM.js");
2252
2252
  const argStr = args.join(" ").trim();
2253
2253
  let testArgs = {};
2254
2254
  if (argStr) {
@@ -2937,16 +2937,17 @@ Add .md files to create commands.` });
2937
2937
  };
2938
2938
  }
2939
2939
  getFilteredToolDefs() {
2940
+ const excludeWeb = (t) => t.name !== "save_last_response";
2940
2941
  if (this.planMode) {
2941
2942
  return {
2942
- toolDefs: this.toolRegistry.getDefinitions().filter((t) => PLAN_MODE_READONLY_TOOLS.has(t.name)),
2943
+ toolDefs: this.toolRegistry.getDefinitions().filter((t) => PLAN_MODE_READONLY_TOOLS.has(t.name) && excludeWeb(t)),
2943
2944
  mcpBudgetNote: null
2944
2945
  };
2945
2946
  }
2946
2947
  const skillFilter = this.skillManager?.getActiveToolFilter();
2947
2948
  if (skillFilter) {
2948
2949
  return {
2949
- toolDefs: this.toolRegistry.getDefinitions().filter((t) => skillFilter.has(t.name)),
2950
+ toolDefs: this.toolRegistry.getDefinitions().filter((t) => skillFilter.has(t.name) && excludeWeb(t)),
2950
2951
  mcpBudgetNote: null
2951
2952
  };
2952
2953
  }
@@ -2954,9 +2955,9 @@ Add .md files to create commands.` });
2954
2955
  if (contextWindow > 0) {
2955
2956
  const toolBudget = Math.floor(contextWindow * 0.2);
2956
2957
  const { definitions, systemNote } = this.toolRegistry.getDefinitionsWithBudget(toolBudget, this.usedMcpToolNames);
2957
- return { toolDefs: definitions, mcpBudgetNote: systemNote };
2958
+ return { toolDefs: definitions.filter(excludeWeb), mcpBudgetNote: systemNote };
2958
2959
  }
2959
- return { toolDefs: this.toolRegistry.getDefinitions(), mcpBudgetNote: null };
2960
+ return { toolDefs: this.toolRegistry.getDefinitions().filter(excludeWeb), mcpBudgetNote: null };
2960
2961
  }
2961
2962
  /**
2962
2963
  * Find first matching context file in a directory.
@@ -3,7 +3,7 @@ import {
3
3
  ToolRegistry,
4
4
  getDangerLevel,
5
5
  schemaToJsonSchema
6
- } from "./chunk-7KSCEXT5.js";
6
+ } from "./chunk-MBPA2FMK.js";
7
7
  import "./chunk-2ZD3YTVM.js";
8
8
  import "./chunk-4BKXL7SM.js";
9
9
  import "./chunk-ANYYM4CF.js";
@@ -12,10 +12,10 @@ import "./chunk-KJLJPUY2.js";
12
12
  import "./chunk-6VRJGH25.js";
13
13
  import "./chunk-2DXY7UGF.js";
14
14
  import "./chunk-KHYD3WXE.js";
15
- import "./chunk-NXJF4NTB.js";
15
+ import "./chunk-TFCBOPQV.js";
16
16
  import {
17
17
  VERSION
18
- } from "./chunk-VUNOH5LH.js";
18
+ } from "./chunk-3MEH7D36.js";
19
19
 
20
20
  // src/mcp/server.ts
21
21
  import { createInterface } from "readline";
@@ -4,7 +4,7 @@ import {
4
4
  getDangerLevel,
5
5
  googleSearchContext,
6
6
  truncateOutput
7
- } from "./chunk-7KSCEXT5.js";
7
+ } from "./chunk-MBPA2FMK.js";
8
8
  import "./chunk-2ZD3YTVM.js";
9
9
  import "./chunk-4BKXL7SM.js";
10
10
  import "./chunk-ANYYM4CF.js";
@@ -13,10 +13,10 @@ import "./chunk-KJLJPUY2.js";
13
13
  import "./chunk-6VRJGH25.js";
14
14
  import "./chunk-2DXY7UGF.js";
15
15
  import "./chunk-KHYD3WXE.js";
16
- import "./chunk-NXJF4NTB.js";
16
+ import "./chunk-TFCBOPQV.js";
17
17
  import {
18
18
  SUBAGENT_ALLOWED_TOOLS
19
- } from "./chunk-VUNOH5LH.js";
19
+ } from "./chunk-3MEH7D36.js";
20
20
 
21
21
  // src/hub/task-orchestrator.ts
22
22
  import { createInterface } from "readline";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinzd-ai-cli",
3
- "version": "0.4.100",
3
+ "version": "0.4.101",
4
4
  "description": "Cross-platform REPL-style AI CLI with multi-provider support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",