jinzd-ai-cli 0.4.230 → 0.4.232
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.
- package/dist/{batch-T74D2CCK.js → batch-D6XYKHHA.js} +2 -2
- package/dist/{chunk-S6SFZP3G.js → chunk-2FZACYUE.js} +1 -1
- package/dist/{chunk-T3A74XGG.js → chunk-2HWL45PG.js} +1 -1
- package/dist/{chunk-ITEGK3IN.js → chunk-6VSAKQTN.js} +1 -1
- package/dist/{chunk-6GSDDDEO.js → chunk-EPDW73H7.js} +1 -1
- package/dist/{chunk-SARJYCDV.js → chunk-KIQ2ICMV.js} +3 -3
- package/dist/{chunk-DKPHVQUA.js → chunk-LKTYTDEJ.js} +1 -1
- package/dist/{chunk-LMKCS5XH.js → chunk-RRMLRCPW.js} +3 -3
- package/dist/{chunk-F2DUNYGY.js → chunk-TJVM535A.js} +46 -34
- package/dist/{chunk-7I4GGVIS.js → chunk-XVR4YKRC.js} +1 -1
- package/dist/{chunk-SKUNYJDW.js → chunk-YDGKT6RI.js} +2 -2
- package/dist/{ci-ADQTAYOZ.js → ci-OR57Z7QF.js} +4 -4
- package/dist/{ci-format-KZSTHIEW.js → ci-format-DMMS2ZFK.js} +2 -2
- package/dist/{constants-JTHN5JSQ.js → constants-7GZKINR5.js} +1 -1
- package/dist/{doctor-cli-XTIL3RTQ.js → doctor-cli-ZD37GAZD.js} +4 -4
- package/dist/electron-server.js +17 -7
- package/dist/{hub-BHHNMBCY.js → hub-VFYFUSM6.js} +1 -1
- package/dist/index.js +18 -18
- package/dist/{pr-NUHU64NS.js → pr-YF6TXJYE.js} +4 -4
- package/dist/{run-tests-M45ZJPR6.js → run-tests-BNZZDCTU.js} +1 -1
- package/dist/{run-tests-HZMY436A.js → run-tests-HEDDC6DJ.js} +2 -2
- package/dist/{server-Q7MNZB4X.js → server-C52P6IDO.js} +4 -4
- package/dist/{server-RCAFE2LO.js → server-HCDI2EID.js} +8 -8
- package/dist/{task-orchestrator-IVSLED6U.js → task-orchestrator-QIEHYRGK.js} +4 -4
- package/dist/{usage-KNMT35C2.js → usage-4AAMJBBM.js} +2 -2
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigManager
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LKTYTDEJ.js";
|
|
5
5
|
import "./chunk-5ULLIOVC.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-EPDW73H7.js";
|
|
7
7
|
import {
|
|
8
8
|
atomicWriteFileSync
|
|
9
9
|
} from "./chunk-IW3Q7AE5.js";
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
listHooks,
|
|
12
12
|
listInstalledPlugins,
|
|
13
13
|
resetStats
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-6VSAKQTN.js";
|
|
15
15
|
import {
|
|
16
16
|
ConfigManager
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-LKTYTDEJ.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-
|
|
29
|
+
} from "./chunk-EPDW73H7.js";
|
|
30
30
|
|
|
31
31
|
// src/diagnostics/doctor-report.ts
|
|
32
32
|
import { existsSync as existsSync3, statSync as statSync2 } from "fs";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
evaluateCiGate,
|
|
4
4
|
normalizeCiThresholds
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-2HWL45PG.js";
|
|
6
6
|
import {
|
|
7
7
|
buildReviewPrompt,
|
|
8
8
|
buildSecurityReviewPrompt,
|
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
} from "./chunk-62R7CACG.js";
|
|
14
14
|
import {
|
|
15
15
|
ConfigManager
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-LKTYTDEJ.js";
|
|
17
17
|
import {
|
|
18
18
|
VERSION
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-EPDW73H7.js";
|
|
20
20
|
|
|
21
21
|
// src/cli/ci.ts
|
|
22
22
|
import { execFileSync } from "child_process";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
runHook,
|
|
15
15
|
runLifecycleHooks,
|
|
16
16
|
runTool
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-6VSAKQTN.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-
|
|
36
|
+
} from "./chunk-2FZACYUE.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-
|
|
46
|
+
} from "./chunk-EPDW73H7.js";
|
|
47
47
|
import {
|
|
48
48
|
loadChatIndex,
|
|
49
49
|
searchChatMemory
|
|
@@ -58,14 +58,39 @@ import {
|
|
|
58
58
|
|
|
59
59
|
// src/tools/shell-pool.ts
|
|
60
60
|
import { spawn } from "child_process";
|
|
61
|
+
import { platform as platform2 } from "os";
|
|
62
|
+
|
|
63
|
+
// src/tools/win-shell.ts
|
|
61
64
|
import { platform } from "os";
|
|
62
65
|
var IS_WINDOWS = platform() === "win32";
|
|
63
|
-
var
|
|
66
|
+
var WIN_UTF8_PREAMBLE = "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $OutputEncoding = [System.Text.Encoding]::UTF8; ";
|
|
67
|
+
function shellInvocation(command) {
|
|
68
|
+
if (IS_WINDOWS) {
|
|
69
|
+
return {
|
|
70
|
+
shell: "powershell.exe",
|
|
71
|
+
args: ["-NoProfile", "-NonInteractive", "-Command", WIN_UTF8_PREAMBLE + command]
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return { shell: process.env["SHELL"] ?? "/bin/bash", args: ["-c", command] };
|
|
75
|
+
}
|
|
76
|
+
function decodeWindowsBuffer(buf) {
|
|
77
|
+
const utf8 = buf.toString("utf-8");
|
|
78
|
+
if (!utf8.includes("\uFFFD")) return utf8;
|
|
79
|
+
try {
|
|
80
|
+
return new TextDecoder("gbk").decode(buf);
|
|
81
|
+
} catch {
|
|
82
|
+
return utf8;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// src/tools/shell-pool.ts
|
|
87
|
+
var IS_WINDOWS2 = platform2() === "win32";
|
|
88
|
+
var SHELL = IS_WINDOWS2 ? "powershell.exe" : process.env["SHELL"] ?? "/bin/bash";
|
|
64
89
|
var pool = /* @__PURE__ */ new Map();
|
|
65
90
|
var IDLE_EVICT_MS = 5 * 6e4;
|
|
66
91
|
var evictionTimer = null;
|
|
67
92
|
function spawnShell(cwd) {
|
|
68
|
-
const shellArgs =
|
|
93
|
+
const shellArgs = IS_WINDOWS2 ? ["-NoProfile", "-NonInteractive", "-Command", "-"] : ["-s"];
|
|
69
94
|
const proc = spawn(SHELL, shellArgs, {
|
|
70
95
|
cwd,
|
|
71
96
|
windowsHide: true,
|
|
@@ -114,7 +139,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
|
|
|
114
139
|
const id = `${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
|
|
115
140
|
const markerStart = `AICLI_MARKER_START:${id}`;
|
|
116
141
|
const markerEnd = `AICLI_MARKER_END:${id}`;
|
|
117
|
-
const wrappedCmd =
|
|
142
|
+
const wrappedCmd = IS_WINDOWS2 ? `${WIN_UTF8_PREAMBLE} echo "${markerStart}"; ${command}; echo "${markerEnd}:0"` : `echo "${markerStart}"; ${command}; echo "${markerEnd}:$?"`;
|
|
118
143
|
return new Promise((resolve8) => {
|
|
119
144
|
let stdout = "";
|
|
120
145
|
let stderr = "";
|
|
@@ -124,7 +149,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
|
|
|
124
149
|
const markerStartPattern = `AICLI_MARKER_START:${id}`;
|
|
125
150
|
const markerEndPattern = `AICLI_MARKER_END:${id}`;
|
|
126
151
|
const onData = (chunk) => {
|
|
127
|
-
stdout += chunk.toString("utf-8");
|
|
152
|
+
stdout += IS_WINDOWS2 ? decodeWindowsBuffer(chunk) : chunk.toString("utf-8");
|
|
128
153
|
if (!resolved && stdout.includes(markerEndPattern)) {
|
|
129
154
|
const endLine = stdout.split("\n").find((l) => l.includes(markerEndPattern));
|
|
130
155
|
const exitCode = endLine ? parseEndMarker(endLine, markerEndPattern) : null;
|
|
@@ -135,7 +160,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
|
|
|
135
160
|
}
|
|
136
161
|
};
|
|
137
162
|
const onErr = (chunk) => {
|
|
138
|
-
stderr += chunk.toString("utf-8");
|
|
163
|
+
stderr += IS_WINDOWS2 ? decodeWindowsBuffer(chunk) : chunk.toString("utf-8");
|
|
139
164
|
};
|
|
140
165
|
const proc = entry.proc;
|
|
141
166
|
proc.stdout?.on("data", onData);
|
|
@@ -407,29 +432,6 @@ function runWithSessionKey(sessionKey, fn) {
|
|
|
407
432
|
return als.run({ sessionKey: key }, fn);
|
|
408
433
|
}
|
|
409
434
|
|
|
410
|
-
// src/tools/win-shell.ts
|
|
411
|
-
import { platform as platform2 } from "os";
|
|
412
|
-
var IS_WINDOWS2 = platform2() === "win32";
|
|
413
|
-
var WIN_UTF8_PREAMBLE = "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $OutputEncoding = [System.Text.Encoding]::UTF8; ";
|
|
414
|
-
function shellInvocation(command) {
|
|
415
|
-
if (IS_WINDOWS2) {
|
|
416
|
-
return {
|
|
417
|
-
shell: "powershell.exe",
|
|
418
|
-
args: ["-NoProfile", "-NonInteractive", "-Command", WIN_UTF8_PREAMBLE + command]
|
|
419
|
-
};
|
|
420
|
-
}
|
|
421
|
-
return { shell: process.env["SHELL"] ?? "/bin/bash", args: ["-c", command] };
|
|
422
|
-
}
|
|
423
|
-
function decodeWindowsBuffer(buf) {
|
|
424
|
-
const utf8 = buf.toString("utf-8");
|
|
425
|
-
if (!utf8.includes("\uFFFD")) return utf8;
|
|
426
|
-
try {
|
|
427
|
-
return new TextDecoder("gbk").decode(buf);
|
|
428
|
-
} catch {
|
|
429
|
-
return utf8;
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
|
|
433
435
|
// src/tools/builtin/bash.ts
|
|
434
436
|
var IS_WINDOWS3 = platform3() === "win32";
|
|
435
437
|
var SHELL2 = IS_WINDOWS3 ? "powershell.exe" : process.env["SHELL"] ?? "/bin/bash";
|
|
@@ -817,7 +819,7 @@ function pushBashUndoEntries(beforeSnapshot, parsedTargetsBefore, cwd) {
|
|
|
817
819
|
}
|
|
818
820
|
function runShell(command, opts) {
|
|
819
821
|
return new Promise((resolvePromise) => {
|
|
820
|
-
const shellArgs = IS_WINDOWS3 ? ["-NoProfile", "-NonInteractive", "-Command", command] : ["-c", command];
|
|
822
|
+
const shellArgs = IS_WINDOWS3 ? ["-NoProfile", "-NonInteractive", "-Command", WIN_UTF8_PREAMBLE + command] : ["-c", command];
|
|
821
823
|
const child = spawn2(SHELL2, shellArgs, {
|
|
822
824
|
cwd: opts.cwd,
|
|
823
825
|
env: opts.env,
|
|
@@ -1219,7 +1221,17 @@ Current working directory: ${process.cwd()}
|
|
|
1219
1221
|
Please use list_dir to verify the file path and retry.`
|
|
1220
1222
|
);
|
|
1221
1223
|
}
|
|
1222
|
-
const
|
|
1224
|
+
const st = statSync2(normalizedPath);
|
|
1225
|
+
if (st.isDirectory()) {
|
|
1226
|
+
const entries = readdirSync2(normalizedPath, { withFileTypes: true }).slice(0, 10);
|
|
1227
|
+
const listing = entries.map((e) => `${e.isDirectory() ? "\u{1F4C1}" : "\u{1F4C4}"} ${e.name}`).join("\n");
|
|
1228
|
+
return `[Directory: ${filePath}]
|
|
1229
|
+
This path is a directory, not a file. Use list_dir to browse it.
|
|
1230
|
+
` + (listing ? `
|
|
1231
|
+
First 10 entries:
|
|
1232
|
+
${listing}` : "");
|
|
1233
|
+
}
|
|
1234
|
+
const { size } = st;
|
|
1223
1235
|
if (size > MAX_FILE_BYTES) {
|
|
1224
1236
|
const mb = (size / 1024 / 1024).toFixed(1);
|
|
1225
1237
|
return `[File too large: ${filePath} (${mb} MB)]
|
|
@@ -5788,7 +5800,7 @@ function capChunks(chunks) {
|
|
|
5788
5800
|
}
|
|
5789
5801
|
function decodeField(chunks) {
|
|
5790
5802
|
const buf = Buffer.concat(chunks);
|
|
5791
|
-
const text =
|
|
5803
|
+
const text = IS_WINDOWS ? decodeWindowsBuffer(buf) : buf.toString("utf-8");
|
|
5792
5804
|
return text.length > MAX_OUTPUT_CHARS ? "... [truncated] ...\n" + text.slice(-MAX_OUTPUT_CHARS) : text;
|
|
5793
5805
|
}
|
|
5794
5806
|
function appendOutput(task, field, chunk) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
truncateForPersist
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TJVM535A.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-
|
|
14
|
+
} from "./chunk-EPDW73H7.js";
|
|
15
15
|
import {
|
|
16
16
|
atomicWriteFileSync
|
|
17
17
|
} from "./chunk-IW3Q7AE5.js";
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
CI_COMMENT_MARKER,
|
|
4
4
|
countSeverity,
|
|
5
5
|
runCi
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-RRMLRCPW.js";
|
|
7
|
+
import "./chunk-2HWL45PG.js";
|
|
8
8
|
import "./chunk-HLWUDRBO.js";
|
|
9
9
|
import "./chunk-62R7CACG.js";
|
|
10
10
|
import "./chunk-ODYTXQ26.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-LKTYTDEJ.js";
|
|
12
12
|
import "./chunk-5ULLIOVC.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-EPDW73H7.js";
|
|
14
14
|
import "./chunk-IW3Q7AE5.js";
|
|
15
15
|
export {
|
|
16
16
|
CI_COMMENT_MARKER,
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
formatDoctorReport,
|
|
4
4
|
runDoctorCli
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KIQ2ICMV.js";
|
|
6
6
|
import "./chunk-62R7CACG.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-6VSAKQTN.js";
|
|
8
8
|
import "./chunk-ODYTXQ26.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-LKTYTDEJ.js";
|
|
10
10
|
import "./chunk-5ULLIOVC.js";
|
|
11
11
|
import "./chunk-HOSJZMQS.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-EPDW73H7.js";
|
|
13
13
|
import "./chunk-IW3Q7AE5.js";
|
|
14
14
|
export {
|
|
15
15
|
formatDoctorReport,
|
package/dist/electron-server.js
CHANGED
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
VERSION,
|
|
39
39
|
buildUserIdentityPrompt,
|
|
40
40
|
runTestsTool
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-XVR4YKRC.js";
|
|
42
42
|
import {
|
|
43
43
|
hasSemanticIndex,
|
|
44
44
|
semanticSearch
|
|
@@ -4947,7 +4947,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
|
|
|
4947
4947
|
const id = `${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
|
|
4948
4948
|
const markerStart = `AICLI_MARKER_START:${id}`;
|
|
4949
4949
|
const markerEnd = `AICLI_MARKER_END:${id}`;
|
|
4950
|
-
const wrappedCmd = IS_WINDOWS2 ?
|
|
4950
|
+
const wrappedCmd = IS_WINDOWS2 ? `${WIN_UTF8_PREAMBLE} echo "${markerStart}"; ${command}; echo "${markerEnd}:0"` : `echo "${markerStart}"; ${command}; echo "${markerEnd}:$?"`;
|
|
4951
4951
|
return new Promise((resolve14) => {
|
|
4952
4952
|
let stdout = "";
|
|
4953
4953
|
let stderr = "";
|
|
@@ -4957,7 +4957,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
|
|
|
4957
4957
|
const markerStartPattern = `AICLI_MARKER_START:${id}`;
|
|
4958
4958
|
const markerEndPattern = `AICLI_MARKER_END:${id}`;
|
|
4959
4959
|
const onData = (chunk) => {
|
|
4960
|
-
stdout += chunk.toString("utf-8");
|
|
4960
|
+
stdout += IS_WINDOWS2 ? decodeWindowsBuffer(chunk) : chunk.toString("utf-8");
|
|
4961
4961
|
if (!resolved && stdout.includes(markerEndPattern)) {
|
|
4962
4962
|
const endLine = stdout.split("\n").find((l) => l.includes(markerEndPattern));
|
|
4963
4963
|
const exitCode = endLine ? parseEndMarker(endLine, markerEndPattern) : null;
|
|
@@ -4968,7 +4968,7 @@ async function execInPool(sessionKey, command, timeout, cwd, abortSignal) {
|
|
|
4968
4968
|
}
|
|
4969
4969
|
};
|
|
4970
4970
|
const onErr = (chunk) => {
|
|
4971
|
-
stderr += chunk.toString("utf-8");
|
|
4971
|
+
stderr += IS_WINDOWS2 ? decodeWindowsBuffer(chunk) : chunk.toString("utf-8");
|
|
4972
4972
|
};
|
|
4973
4973
|
const proc = entry.proc;
|
|
4974
4974
|
proc.stdout?.on("data", onData);
|
|
@@ -5459,7 +5459,7 @@ function pushBashUndoEntries(beforeSnapshot, parsedTargetsBefore, cwd) {
|
|
|
5459
5459
|
}
|
|
5460
5460
|
function runShell(command, opts) {
|
|
5461
5461
|
return new Promise((resolvePromise) => {
|
|
5462
|
-
const shellArgs = IS_WINDOWS3 ? ["-NoProfile", "-NonInteractive", "-Command", command] : ["-c", command];
|
|
5462
|
+
const shellArgs = IS_WINDOWS3 ? ["-NoProfile", "-NonInteractive", "-Command", WIN_UTF8_PREAMBLE + command] : ["-c", command];
|
|
5463
5463
|
const child = spawn2(SHELL2, shellArgs, {
|
|
5464
5464
|
cwd: opts.cwd,
|
|
5465
5465
|
env: opts.env,
|
|
@@ -5861,7 +5861,17 @@ Current working directory: ${process.cwd()}
|
|
|
5861
5861
|
Please use list_dir to verify the file path and retry.`
|
|
5862
5862
|
);
|
|
5863
5863
|
}
|
|
5864
|
-
const
|
|
5864
|
+
const st = statSync3(normalizedPath);
|
|
5865
|
+
if (st.isDirectory()) {
|
|
5866
|
+
const entries = readdirSync3(normalizedPath, { withFileTypes: true }).slice(0, 10);
|
|
5867
|
+
const listing = entries.map((e) => `${e.isDirectory() ? "\u{1F4C1}" : "\u{1F4C4}"} ${e.name}`).join("\n");
|
|
5868
|
+
return `[Directory: ${filePath}]
|
|
5869
|
+
This path is a directory, not a file. Use list_dir to browse it.
|
|
5870
|
+
` + (listing ? `
|
|
5871
|
+
First 10 entries:
|
|
5872
|
+
${listing}` : "");
|
|
5873
|
+
}
|
|
5874
|
+
const { size } = st;
|
|
5865
5875
|
if (size > MAX_FILE_BYTES) {
|
|
5866
5876
|
const mb = (size / 1024 / 1024).toFixed(1);
|
|
5867
5877
|
return `[File too large: ${filePath} (${mb} MB)]
|
|
@@ -15866,7 +15876,7 @@ async function handleSecurityReview(args, ctx) {
|
|
|
15866
15876
|
async function handleTest(args, ctx) {
|
|
15867
15877
|
ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
15868
15878
|
try {
|
|
15869
|
-
const { executeTests } = await import("./run-tests-
|
|
15879
|
+
const { executeTests } = await import("./run-tests-BNZZDCTU.js");
|
|
15870
15880
|
const argStr = args.join(" ").trim();
|
|
15871
15881
|
let testArgs = {};
|
|
15872
15882
|
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-
|
|
157
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-QIEHYRGK.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-
|
|
17
|
+
} from "./chunk-YDGKT6RI.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-
|
|
55
|
+
} from "./chunk-TJVM535A.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-
|
|
77
|
+
} from "./chunk-KIQ2ICMV.js";
|
|
78
78
|
import {
|
|
79
79
|
ProviderRegistry
|
|
80
80
|
} from "./chunk-62R7CACG.js";
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
trustHook,
|
|
95
95
|
trustPlugin,
|
|
96
96
|
untrustHook
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-6VSAKQTN.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-ODYTXQ26.js";
|
|
117
117
|
import {
|
|
118
118
|
ConfigManager
|
|
119
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-LKTYTDEJ.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-
|
|
133
|
+
import "./chunk-2FZACYUE.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-
|
|
152
|
+
} from "./chunk-EPDW73H7.js";
|
|
153
153
|
import {
|
|
154
154
|
buildChatIndex,
|
|
155
155
|
clearChatIndex,
|
|
@@ -1821,7 +1821,7 @@ No tools match "${filter}".
|
|
|
1821
1821
|
const { join: join7 } = await import("path");
|
|
1822
1822
|
const { existsSync: existsSync6 } = await import("fs");
|
|
1823
1823
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
|
|
1824
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
1824
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-7GZKINR5.js");
|
|
1825
1825
|
const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
|
|
1826
1826
|
const cwd = process.cwd();
|
|
1827
1827
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -2800,7 +2800,7 @@ function createReviewCommands() {
|
|
|
2800
2800
|
usage: "/test [command|filter]",
|
|
2801
2801
|
async execute(args, ctx) {
|
|
2802
2802
|
try {
|
|
2803
|
-
const { executeTests } = await import("./run-tests-
|
|
2803
|
+
const { executeTests } = await import("./run-tests-HEDDC6DJ.js");
|
|
2804
2804
|
const argStr = args.join(" ").trim();
|
|
2805
2805
|
let testArgs = {};
|
|
2806
2806
|
if (argStr) {
|
|
@@ -7745,7 +7745,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
7745
7745
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
7746
7746
|
process.exit(1);
|
|
7747
7747
|
}
|
|
7748
|
-
const { startWebServer } = await import("./server-
|
|
7748
|
+
const { startWebServer } = await import("./server-HCDI2EID.js");
|
|
7749
7749
|
await startWebServer({ port, host: options.host });
|
|
7750
7750
|
});
|
|
7751
7751
|
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) => {
|
|
@@ -7912,11 +7912,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
7912
7912
|
console.log(footer + "\n");
|
|
7913
7913
|
});
|
|
7914
7914
|
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) => {
|
|
7915
|
-
const { runUsageCli } = await import("./usage-
|
|
7915
|
+
const { runUsageCli } = await import("./usage-4AAMJBBM.js");
|
|
7916
7916
|
await runUsageCli(options);
|
|
7917
7917
|
});
|
|
7918
7918
|
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) => {
|
|
7919
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
7919
|
+
const { runDoctorCli } = await import("./doctor-cli-ZD37GAZD.js");
|
|
7920
7920
|
const argv = process.argv.slice(2);
|
|
7921
7921
|
await runDoctorCli({
|
|
7922
7922
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -7925,7 +7925,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
7925
7925
|
});
|
|
7926
7926
|
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) => {
|
|
7927
7927
|
try {
|
|
7928
|
-
const batch = await import("./batch-
|
|
7928
|
+
const batch = await import("./batch-D6XYKHHA.js");
|
|
7929
7929
|
switch (action) {
|
|
7930
7930
|
case "submit":
|
|
7931
7931
|
if (!arg) {
|
|
@@ -7968,7 +7968,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
7968
7968
|
}
|
|
7969
7969
|
});
|
|
7970
7970
|
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) => {
|
|
7971
|
-
const { startMcpServer } = await import("./server-
|
|
7971
|
+
const { startMcpServer } = await import("./server-C52P6IDO.js");
|
|
7972
7972
|
await startMcpServer({
|
|
7973
7973
|
allowDestructive: !!options.allowDestructive,
|
|
7974
7974
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -7981,7 +7981,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
7981
7981
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
7982
7982
|
process.exit(1);
|
|
7983
7983
|
}
|
|
7984
|
-
const { runPrCli } = await import("./pr-
|
|
7984
|
+
const { runPrCli } = await import("./pr-YF6TXJYE.js");
|
|
7985
7985
|
const result = await runPrCli({
|
|
7986
7986
|
action,
|
|
7987
7987
|
target,
|
|
@@ -8001,8 +8001,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8001
8001
|
process.exit(result.exitCode);
|
|
8002
8002
|
});
|
|
8003
8003
|
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) => {
|
|
8004
|
-
const { runCi } = await import("./ci-
|
|
8005
|
-
const { formatCiResult } = await import("./ci-format-
|
|
8004
|
+
const { runCi } = await import("./ci-OR57Z7QF.js");
|
|
8005
|
+
const { formatCiResult } = await import("./ci-format-DMMS2ZFK.js");
|
|
8006
8006
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
8007
8007
|
if (formats > 1) {
|
|
8008
8008
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -8160,7 +8160,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
8160
8160
|
config.get("customProviders"),
|
|
8161
8161
|
config.getConfigDir()
|
|
8162
8162
|
);
|
|
8163
|
-
const { startHub } = await import("./hub-
|
|
8163
|
+
const { startHub } = await import("./hub-VFYFUSM6.js");
|
|
8164
8164
|
await startHub(
|
|
8165
8165
|
{
|
|
8166
8166
|
topic: topic ?? "",
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
countSeverity,
|
|
4
4
|
runCi
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-RRMLRCPW.js";
|
|
6
|
+
import "./chunk-2HWL45PG.js";
|
|
7
7
|
import {
|
|
8
8
|
buildReviewPrompt,
|
|
9
9
|
buildSecurityReviewPrompt,
|
|
@@ -15,11 +15,11 @@ import {
|
|
|
15
15
|
import "./chunk-ODYTXQ26.js";
|
|
16
16
|
import {
|
|
17
17
|
ConfigManager
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LKTYTDEJ.js";
|
|
19
19
|
import "./chunk-5ULLIOVC.js";
|
|
20
20
|
import {
|
|
21
21
|
VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-EPDW73H7.js";
|
|
23
23
|
import "./chunk-IW3Q7AE5.js";
|
|
24
24
|
|
|
25
25
|
// src/cli/pr.ts
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ToolRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TJVM535A.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-
|
|
11
|
+
} from "./chunk-6VSAKQTN.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-
|
|
19
|
+
import "./chunk-2FZACYUE.js";
|
|
20
20
|
import {
|
|
21
21
|
VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-EPDW73H7.js";
|
|
23
23
|
import "./chunk-NVUCDUXE.js";
|
|
24
24
|
import "./chunk-KHYD3WXE.js";
|
|
25
25
|
import "./chunk-B5TYJO7V.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
scanDirTree,
|
|
24
24
|
scanProject,
|
|
25
25
|
setupProxy
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-YDGKT6RI.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-
|
|
70
|
+
} from "./chunk-TJVM535A.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-
|
|
87
|
+
} from "./chunk-KIQ2ICMV.js";
|
|
88
88
|
import {
|
|
89
89
|
ProviderRegistry
|
|
90
90
|
} from "./chunk-62R7CACG.js";
|
|
@@ -102,7 +102,7 @@ import {
|
|
|
102
102
|
runTool,
|
|
103
103
|
setPluginEnabled,
|
|
104
104
|
trustPlugin
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-6VSAKQTN.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-ODYTXQ26.js";
|
|
122
122
|
import {
|
|
123
123
|
ConfigManager
|
|
124
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-LKTYTDEJ.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-
|
|
132
|
+
import "./chunk-2FZACYUE.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-
|
|
149
|
+
} from "./chunk-EPDW73H7.js";
|
|
150
150
|
import "./chunk-NVUCDUXE.js";
|
|
151
151
|
import "./chunk-KHYD3WXE.js";
|
|
152
152
|
import {
|
|
@@ -1593,7 +1593,7 @@ async function handleSecurityReview(args, ctx) {
|
|
|
1593
1593
|
async function handleTest(args, ctx) {
|
|
1594
1594
|
ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
1595
1595
|
try {
|
|
1596
|
-
const { executeTests } = await import("./run-tests-
|
|
1596
|
+
const { executeTests } = await import("./run-tests-HEDDC6DJ.js");
|
|
1597
1597
|
const argStr = args.join(" ").trim();
|
|
1598
1598
|
let testArgs = {};
|
|
1599
1599
|
if (argStr) {
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
ToolRegistry,
|
|
4
4
|
googleSearchContext,
|
|
5
5
|
truncateOutput
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TJVM535A.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-
|
|
13
|
+
} from "./chunk-6VSAKQTN.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-
|
|
21
|
+
import "./chunk-2FZACYUE.js";
|
|
22
22
|
import {
|
|
23
23
|
SUBAGENT_ALLOWED_TOOLS
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-EPDW73H7.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-
|
|
11
|
+
} from "./chunk-LKTYTDEJ.js";
|
|
12
12
|
import "./chunk-5ULLIOVC.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-EPDW73H7.js";
|
|
14
14
|
import "./chunk-IW3Q7AE5.js";
|
|
15
15
|
|
|
16
16
|
// src/cli/usage.ts
|