jinzd-ai-cli 0.4.174 → 0.4.176
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-NYDSLSQQ.js → batch-VIYQSLSG.js} +2 -2
- package/dist/{chunk-BFFVAX6T.js → chunk-2TG4KU3U.js} +1 -1
- package/dist/{chunk-55AZZTM3.js → chunk-DJY3DSAZ.js} +1 -1
- package/dist/{chunk-OGYNMTI4.js → chunk-G37OWJDM.js} +1 -1
- package/dist/{chunk-NXXNLLSG.js → chunk-HIU2SH4V.js} +2 -1
- package/dist/{chunk-VFAB4TSA.js → chunk-IMPP3CAB.js} +2 -2
- package/dist/{chunk-W4QGEWLW.js → chunk-KUL6WUPU.js} +1 -1
- package/dist/{chunk-IUOQCYNI.js → chunk-MG4YYOKZ.js} +1 -1
- package/dist/{chunk-TOTEUETI.js → chunk-RIVZNS3K.js} +17 -6
- package/dist/{chunk-6MA2GO25.js → chunk-V5OG2P7N.js} +39 -7
- package/dist/{chunk-RUJQ5OUB.js → chunk-VRCBXH2W.js} +1 -1
- package/dist/{chunk-PUNGJXZ2.js → chunk-VY577XWM.js} +1 -1
- package/dist/{chunk-7SV3L665.js → chunk-YPG5ZVO7.js} +1 -1
- package/dist/{ci-GE6SUN73.js → ci-XVSELKNA.js} +4 -4
- package/dist/{constants-6YMKZ4FP.js → constants-EWUKG5X5.js} +1 -1
- package/dist/{doctor-cli-X7EEABHT.js → doctor-cli-LUSRKICK.js} +6 -6
- package/dist/electron-server.js +56 -12
- package/dist/{hub-T4RAQOCW.js → hub-72YGVU55.js} +2 -2
- package/dist/index.js +18 -18
- package/dist/{persist-UI6WRBGB.js → persist-A3R2IAYU.js} +2 -2
- package/dist/{run-tests-SQWR2AUT.js → run-tests-TXIH4BQT.js} +2 -2
- package/dist/{run-tests-TTFXGXAZ.js → run-tests-WSWMBYU7.js} +1 -1
- package/dist/{server-RZSYTRB3.js → server-6GNEHLZC.js} +5 -5
- package/dist/{server-TB4O7YZU.js → server-HKFR5HA4.js} +11 -11
- package/dist/{task-orchestrator-I7K37OML.js → task-orchestrator-S7IHDVV7.js} +5 -5
- 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-G37OWJDM.js";
|
|
5
5
|
import "./chunk-TZQHYZKT.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-KUL6WUPU.js";
|
|
7
7
|
import "./chunk-PDX44BCA.js";
|
|
8
8
|
|
|
9
9
|
// src/cli/batch.ts
|
|
@@ -21,7 +21,8 @@ function getDangerLevel(toolName, args) {
|
|
|
21
21
|
if (/\btee\b|\bcp\b|\bmv\b|\bln\s+-s/.test(cmd)) return "write";
|
|
22
22
|
if (/\bchmod\b|\bchown\b/.test(cmd)) return "write";
|
|
23
23
|
if (/\bSet-Content\b|\bOut-File\b|\bAdd-Content\b|\bCopy-Item\b|\bMove-Item\b|\bSet-ItemProperty\b|\bNew-ItemProperty\b/i.test(cmd)) return "write";
|
|
24
|
-
if (/\b(python3?|node|deno|bun|perl|ruby|php)
|
|
24
|
+
if (/\b(python3?|node|deno|bun|perl|ruby|php|bash|sh|zsh|pwsh|powershell)(\.exe)?\b[^\n]*?\s-(?:Command|EncodedCommand|c|e|p|r)\b/i.test(cmd)) return "write";
|
|
25
|
+
if (/\bcmd(\.exe)?\s+\/[ck]\b/i.test(cmd)) return "write";
|
|
25
26
|
return "safe";
|
|
26
27
|
}
|
|
27
28
|
if (toolName === "write_file") return "write";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
truncateForPersist
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V5OG2P7N.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-KUL6WUPU.js";
|
|
15
15
|
|
|
16
16
|
// src/mcp/client.ts
|
|
17
17
|
import { spawn } from "child_process";
|
|
@@ -383,6 +383,10 @@ var Session = class _Session {
|
|
|
383
383
|
id: this.id,
|
|
384
384
|
provider: this.provider,
|
|
385
385
|
model: this.model,
|
|
386
|
+
// 7th audit P1: active-branch 消息数,放在 messages 数组之前,
|
|
387
|
+
// 保证落在文件前 1KB 内 —— readSessionMeta() 只读 header 即可拿到,
|
|
388
|
+
// 不再为数消息把整个 session 文件读进内存。
|
|
389
|
+
messageCount: this.messages.length,
|
|
386
390
|
created: this.created.toISOString(),
|
|
387
391
|
updated: this.updated.toISOString(),
|
|
388
392
|
title: this.title,
|
|
@@ -529,6 +533,10 @@ function extractJsonField(header, field) {
|
|
|
529
533
|
const m = header.match(re);
|
|
530
534
|
return m ? m[1] : void 0;
|
|
531
535
|
}
|
|
536
|
+
function extractJsonNumberField(header, field) {
|
|
537
|
+
const m = header.match(new RegExp(`"${field}"\\s*:\\s*(\\d+)`));
|
|
538
|
+
return m ? Number(m[1]) : void 0;
|
|
539
|
+
}
|
|
532
540
|
var SessionManager = class {
|
|
533
541
|
_current = null;
|
|
534
542
|
historyDir;
|
|
@@ -643,12 +651,15 @@ var SessionManager = class {
|
|
|
643
651
|
const updated = extractJsonField(header, "updated");
|
|
644
652
|
const title = extractJsonField(header, "title");
|
|
645
653
|
if (id && provider && model) {
|
|
646
|
-
let messageCount =
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
654
|
+
let messageCount = extractJsonNumberField(header, "messageCount");
|
|
655
|
+
if (messageCount === void 0) {
|
|
656
|
+
messageCount = 0;
|
|
657
|
+
try {
|
|
658
|
+
const full = readFileSync(filePath, "utf-8");
|
|
659
|
+
const matches = full.match(/"role"\s*:/g);
|
|
660
|
+
messageCount = matches ? matches.length : 0;
|
|
661
|
+
} catch {
|
|
662
|
+
}
|
|
652
663
|
}
|
|
653
664
|
return {
|
|
654
665
|
id,
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
} from "./chunk-HDSKW7Q3.js";
|
|
6
6
|
import {
|
|
7
7
|
runTestsTool
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YPG5ZVO7.js";
|
|
9
9
|
import {
|
|
10
10
|
runTool
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VY577XWM.js";
|
|
12
12
|
import {
|
|
13
13
|
getDangerLevel,
|
|
14
14
|
isFileWriteTool
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-HIU2SH4V.js";
|
|
16
16
|
import {
|
|
17
17
|
EnvLoader,
|
|
18
18
|
NetworkError,
|
|
@@ -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-
|
|
28
|
+
} from "./chunk-KUL6WUPU.js";
|
|
29
29
|
import {
|
|
30
30
|
fileCheckpoints
|
|
31
31
|
} from "./chunk-4BKXL7SM.js";
|
|
@@ -3269,6 +3269,38 @@ function extractDescription(html) {
|
|
|
3269
3269
|
return m ? m[1].trim() : "";
|
|
3270
3270
|
}
|
|
3271
3271
|
var MAX_OUTPUT = 16e3;
|
|
3272
|
+
var MAX_BODY_BYTES = 2e6;
|
|
3273
|
+
async function readBodyCapped(resp, maxBytes) {
|
|
3274
|
+
const body = resp.body;
|
|
3275
|
+
if (!body) {
|
|
3276
|
+
const buf = new Uint8Array(await resp.arrayBuffer());
|
|
3277
|
+
return buf.length > maxBytes ? buf.slice(0, maxBytes) : buf;
|
|
3278
|
+
}
|
|
3279
|
+
const reader = body.getReader();
|
|
3280
|
+
const chunks = [];
|
|
3281
|
+
let total = 0;
|
|
3282
|
+
while (total < maxBytes) {
|
|
3283
|
+
const { done, value } = await reader.read();
|
|
3284
|
+
if (done) break;
|
|
3285
|
+
chunks.push(value);
|
|
3286
|
+
total += value.length;
|
|
3287
|
+
}
|
|
3288
|
+
if (total >= maxBytes) {
|
|
3289
|
+
try {
|
|
3290
|
+
await reader.cancel();
|
|
3291
|
+
} catch {
|
|
3292
|
+
}
|
|
3293
|
+
}
|
|
3294
|
+
const out = new Uint8Array(Math.min(total, maxBytes));
|
|
3295
|
+
let offset = 0;
|
|
3296
|
+
for (const c of chunks) {
|
|
3297
|
+
if (offset >= out.length) break;
|
|
3298
|
+
const take = Math.min(c.length, out.length - offset);
|
|
3299
|
+
out.set(take === c.length ? c : c.subarray(0, take), offset);
|
|
3300
|
+
offset += take;
|
|
3301
|
+
}
|
|
3302
|
+
return out;
|
|
3303
|
+
}
|
|
3272
3304
|
function parseIpPart(s) {
|
|
3273
3305
|
if (/^0x[0-9a-f]+$/i.test(s)) return parseInt(s, 16);
|
|
3274
3306
|
if (/^0[0-7]+$/.test(s)) return parseInt(s, 8);
|
|
@@ -3439,15 +3471,15 @@ var webFetchTool = {
|
|
|
3439
3471
|
resp = r;
|
|
3440
3472
|
break;
|
|
3441
3473
|
}
|
|
3442
|
-
clearTimeout(timeoutId);
|
|
3443
3474
|
if (!resp) throw new NetworkError(`Too many redirects (>${MAX_REDIRECTS}): ${url}`);
|
|
3444
3475
|
finalUrl = currentUrl;
|
|
3445
3476
|
contentType = resp.headers.get("content-type") ?? "";
|
|
3446
3477
|
if (!resp.ok) {
|
|
3447
3478
|
throw new NetworkError(`HTTP ${resp.status} ${resp.statusText}`, resp.status);
|
|
3448
3479
|
}
|
|
3449
|
-
const
|
|
3450
|
-
|
|
3480
|
+
const bodyBytes = await readBodyCapped(resp, MAX_BODY_BYTES);
|
|
3481
|
+
clearTimeout(timeoutId);
|
|
3482
|
+
rawHtml = new TextDecoder("utf-8", { fatal: false }).decode(bodyBytes);
|
|
3451
3483
|
} catch (err) {
|
|
3452
3484
|
clearTimeout(timeoutId);
|
|
3453
3485
|
if (err.name === "AbortError") {
|
|
@@ -6,15 +6,15 @@ import {
|
|
|
6
6
|
} from "./chunk-HLWUDRBO.js";
|
|
7
7
|
import {
|
|
8
8
|
ProviderRegistry
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-2TG4KU3U.js";
|
|
10
|
+
import "./chunk-HIU2SH4V.js";
|
|
11
11
|
import {
|
|
12
12
|
ConfigManager
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-G37OWJDM.js";
|
|
14
14
|
import "./chunk-TZQHYZKT.js";
|
|
15
15
|
import {
|
|
16
16
|
VERSION
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-KUL6WUPU.js";
|
|
18
18
|
import "./chunk-PDX44BCA.js";
|
|
19
19
|
|
|
20
20
|
// src/cli/ci.ts
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getConfigDirUsage,
|
|
4
4
|
listRecentCrashes
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MG4YYOKZ.js";
|
|
6
6
|
import {
|
|
7
7
|
ProviderRegistry
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2TG4KU3U.js";
|
|
9
9
|
import {
|
|
10
10
|
getStatsSnapshot,
|
|
11
11
|
getTopFailingTools,
|
|
12
12
|
getTopUsedTools,
|
|
13
13
|
resetStats
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-VY577XWM.js";
|
|
15
|
+
import "./chunk-HIU2SH4V.js";
|
|
16
16
|
import {
|
|
17
17
|
ConfigManager
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-G37OWJDM.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-
|
|
24
|
+
} from "./chunk-KUL6WUPU.js";
|
|
25
25
|
import "./chunk-PDX44BCA.js";
|
|
26
26
|
|
|
27
27
|
// src/diagnostics/doctor-cli.ts
|
package/dist/electron-server.js
CHANGED
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
VERSION,
|
|
37
37
|
buildUserIdentityPrompt,
|
|
38
38
|
runTestsTool
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-DJY3DSAZ.js";
|
|
40
40
|
import {
|
|
41
41
|
hasSemanticIndex,
|
|
42
42
|
semanticSearch
|
|
@@ -639,7 +639,8 @@ function getDangerLevel(toolName, args) {
|
|
|
639
639
|
if (/\btee\b|\bcp\b|\bmv\b|\bln\s+-s/.test(cmd)) return "write";
|
|
640
640
|
if (/\bchmod\b|\bchown\b/.test(cmd)) return "write";
|
|
641
641
|
if (/\bSet-Content\b|\bOut-File\b|\bAdd-Content\b|\bCopy-Item\b|\bMove-Item\b|\bSet-ItemProperty\b|\bNew-ItemProperty\b/i.test(cmd)) return "write";
|
|
642
|
-
if (/\b(python3?|node|deno|bun|perl|ruby|php)
|
|
642
|
+
if (/\b(python3?|node|deno|bun|perl|ruby|php|bash|sh|zsh|pwsh|powershell)(\.exe)?\b[^\n]*?\s-(?:Command|EncodedCommand|c|e|p|r)\b/i.test(cmd)) return "write";
|
|
643
|
+
if (/\bcmd(\.exe)?\s+\/[ck]\b/i.test(cmd)) return "write";
|
|
643
644
|
return "safe";
|
|
644
645
|
}
|
|
645
646
|
if (toolName === "write_file") return "write";
|
|
@@ -3581,6 +3582,10 @@ var Session = class _Session {
|
|
|
3581
3582
|
id: this.id,
|
|
3582
3583
|
provider: this.provider,
|
|
3583
3584
|
model: this.model,
|
|
3585
|
+
// 7th audit P1: active-branch 消息数,放在 messages 数组之前,
|
|
3586
|
+
// 保证落在文件前 1KB 内 —— readSessionMeta() 只读 header 即可拿到,
|
|
3587
|
+
// 不再为数消息把整个 session 文件读进内存。
|
|
3588
|
+
messageCount: this.messages.length,
|
|
3584
3589
|
created: this.created.toISOString(),
|
|
3585
3590
|
updated: this.updated.toISOString(),
|
|
3586
3591
|
title: this.title,
|
|
@@ -3727,6 +3732,10 @@ function extractJsonField(header, field) {
|
|
|
3727
3732
|
const m = header.match(re);
|
|
3728
3733
|
return m ? m[1] : void 0;
|
|
3729
3734
|
}
|
|
3735
|
+
function extractJsonNumberField(header, field) {
|
|
3736
|
+
const m = header.match(new RegExp(`"${field}"\\s*:\\s*(\\d+)`));
|
|
3737
|
+
return m ? Number(m[1]) : void 0;
|
|
3738
|
+
}
|
|
3730
3739
|
var SessionManager = class {
|
|
3731
3740
|
_current = null;
|
|
3732
3741
|
historyDir;
|
|
@@ -3841,12 +3850,15 @@ var SessionManager = class {
|
|
|
3841
3850
|
const updated = extractJsonField(header, "updated");
|
|
3842
3851
|
const title = extractJsonField(header, "title");
|
|
3843
3852
|
if (id && provider && model) {
|
|
3844
|
-
let messageCount =
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3853
|
+
let messageCount = extractJsonNumberField(header, "messageCount");
|
|
3854
|
+
if (messageCount === void 0) {
|
|
3855
|
+
messageCount = 0;
|
|
3856
|
+
try {
|
|
3857
|
+
const full = readFileSync2(filePath, "utf-8");
|
|
3858
|
+
const matches = full.match(/"role"\s*:/g);
|
|
3859
|
+
messageCount = matches ? matches.length : 0;
|
|
3860
|
+
} catch {
|
|
3861
|
+
}
|
|
3850
3862
|
}
|
|
3851
3863
|
return {
|
|
3852
3864
|
id,
|
|
@@ -7225,6 +7237,38 @@ function extractDescription(html) {
|
|
|
7225
7237
|
return m ? m[1].trim() : "";
|
|
7226
7238
|
}
|
|
7227
7239
|
var MAX_OUTPUT = 16e3;
|
|
7240
|
+
var MAX_BODY_BYTES = 2e6;
|
|
7241
|
+
async function readBodyCapped(resp, maxBytes) {
|
|
7242
|
+
const body = resp.body;
|
|
7243
|
+
if (!body) {
|
|
7244
|
+
const buf = new Uint8Array(await resp.arrayBuffer());
|
|
7245
|
+
return buf.length > maxBytes ? buf.slice(0, maxBytes) : buf;
|
|
7246
|
+
}
|
|
7247
|
+
const reader = body.getReader();
|
|
7248
|
+
const chunks = [];
|
|
7249
|
+
let total = 0;
|
|
7250
|
+
while (total < maxBytes) {
|
|
7251
|
+
const { done, value } = await reader.read();
|
|
7252
|
+
if (done) break;
|
|
7253
|
+
chunks.push(value);
|
|
7254
|
+
total += value.length;
|
|
7255
|
+
}
|
|
7256
|
+
if (total >= maxBytes) {
|
|
7257
|
+
try {
|
|
7258
|
+
await reader.cancel();
|
|
7259
|
+
} catch {
|
|
7260
|
+
}
|
|
7261
|
+
}
|
|
7262
|
+
const out = new Uint8Array(Math.min(total, maxBytes));
|
|
7263
|
+
let offset = 0;
|
|
7264
|
+
for (const c of chunks) {
|
|
7265
|
+
if (offset >= out.length) break;
|
|
7266
|
+
const take = Math.min(c.length, out.length - offset);
|
|
7267
|
+
out.set(take === c.length ? c : c.subarray(0, take), offset);
|
|
7268
|
+
offset += take;
|
|
7269
|
+
}
|
|
7270
|
+
return out;
|
|
7271
|
+
}
|
|
7228
7272
|
function parseIpPart(s) {
|
|
7229
7273
|
if (/^0x[0-9a-f]+$/i.test(s)) return parseInt(s, 16);
|
|
7230
7274
|
if (/^0[0-7]+$/.test(s)) return parseInt(s, 8);
|
|
@@ -7395,15 +7439,15 @@ var webFetchTool = {
|
|
|
7395
7439
|
resp = r;
|
|
7396
7440
|
break;
|
|
7397
7441
|
}
|
|
7398
|
-
clearTimeout(timeoutId);
|
|
7399
7442
|
if (!resp) throw new NetworkError(`Too many redirects (>${MAX_REDIRECTS}): ${url}`);
|
|
7400
7443
|
finalUrl = currentUrl;
|
|
7401
7444
|
contentType = resp.headers.get("content-type") ?? "";
|
|
7402
7445
|
if (!resp.ok) {
|
|
7403
7446
|
throw new NetworkError(`HTTP ${resp.status} ${resp.statusText}`, resp.status);
|
|
7404
7447
|
}
|
|
7405
|
-
const
|
|
7406
|
-
|
|
7448
|
+
const bodyBytes = await readBodyCapped(resp, MAX_BODY_BYTES);
|
|
7449
|
+
clearTimeout(timeoutId);
|
|
7450
|
+
rawHtml = new TextDecoder("utf-8", { fatal: false }).decode(bodyBytes);
|
|
7407
7451
|
} catch (err) {
|
|
7408
7452
|
clearTimeout(timeoutId);
|
|
7409
7453
|
if (err.name === "AbortError") {
|
|
@@ -13594,7 +13638,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
|
|
|
13594
13638
|
case "test": {
|
|
13595
13639
|
this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
13596
13640
|
try {
|
|
13597
|
-
const { executeTests } = await import("./run-tests-
|
|
13641
|
+
const { executeTests } = await import("./run-tests-WSWMBYU7.js");
|
|
13598
13642
|
const argStr = args.join(" ").trim();
|
|
13599
13643
|
let testArgs = {};
|
|
13600
13644
|
if (argStr) {
|
|
@@ -140,7 +140,7 @@ ${content}`);
|
|
|
140
140
|
const state = await runDiscussion(config, providers, options.topic);
|
|
141
141
|
if (options.save !== false && state.messages.length > 0) {
|
|
142
142
|
try {
|
|
143
|
-
const { persistDiscussion } = await import("./persist-
|
|
143
|
+
const { persistDiscussion } = await import("./persist-A3R2IAYU.js");
|
|
144
144
|
const { path } = await persistDiscussion(state, configManager, defaultProvider, defaultModel);
|
|
145
145
|
console.log(chalk.dim(`
|
|
146
146
|
\u{1F4BE} Saved to history \u2014 open it in the Web UI and hit \u{1F3AC} to replay.
|
|
@@ -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-
|
|
158
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-S7IHDVV7.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-
|
|
21
|
+
} from "./chunk-IMPP3CAB.js";
|
|
22
22
|
import {
|
|
23
23
|
ToolExecutor,
|
|
24
24
|
ToolRegistry,
|
|
@@ -37,19 +37,19 @@ import {
|
|
|
37
37
|
spawnAgentContext,
|
|
38
38
|
theme,
|
|
39
39
|
undoStack
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-V5OG2P7N.js";
|
|
41
41
|
import "./chunk-HDSKW7Q3.js";
|
|
42
42
|
import "./chunk-ZWVIDFGY.js";
|
|
43
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-YPG5ZVO7.js";
|
|
44
44
|
import {
|
|
45
45
|
SessionManager,
|
|
46
46
|
getContentText
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-RIVZNS3K.js";
|
|
48
48
|
import {
|
|
49
49
|
getConfigDirUsage,
|
|
50
50
|
listRecentCrashes,
|
|
51
51
|
writeCrashLog
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-MG4YYOKZ.js";
|
|
53
53
|
import {
|
|
54
54
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
55
55
|
HALLUCINATION_CORRECTION_MESSAGE,
|
|
@@ -68,17 +68,17 @@ import {
|
|
|
68
68
|
looksLikeDocumentBody,
|
|
69
69
|
stripPseudoToolCalls,
|
|
70
70
|
stripToolCallReminder
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-2TG4KU3U.js";
|
|
72
72
|
import {
|
|
73
73
|
getStatsSnapshot,
|
|
74
74
|
getTopFailingTools,
|
|
75
75
|
getTopUsedTools,
|
|
76
76
|
installFlushOnExit
|
|
77
|
-
} from "./chunk-
|
|
78
|
-
import "./chunk-
|
|
77
|
+
} from "./chunk-VY577XWM.js";
|
|
78
|
+
import "./chunk-HIU2SH4V.js";
|
|
79
79
|
import {
|
|
80
80
|
ConfigManager
|
|
81
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-G37OWJDM.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-
|
|
108
|
+
} from "./chunk-KUL6WUPU.js";
|
|
109
109
|
import {
|
|
110
110
|
formatGitContextForPrompt,
|
|
111
111
|
getGitContext,
|
|
@@ -1786,7 +1786,7 @@ No tools match "${filter}".
|
|
|
1786
1786
|
const { join: join6 } = await import("path");
|
|
1787
1787
|
const { existsSync: existsSync6 } = await import("fs");
|
|
1788
1788
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-7KIP4X2V.js");
|
|
1789
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
1789
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-EWUKG5X5.js");
|
|
1790
1790
|
const { approveProject, hashMcpFile } = await import("./project-trust-IFM7FXEV.js");
|
|
1791
1791
|
const cwd = process.cwd();
|
|
1792
1792
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -2847,7 +2847,7 @@ ${hint}` : "")
|
|
|
2847
2847
|
usage: "/test [command|filter]",
|
|
2848
2848
|
async execute(args, ctx) {
|
|
2849
2849
|
try {
|
|
2850
|
-
const { executeTests } = await import("./run-tests-
|
|
2850
|
+
const { executeTests } = await import("./run-tests-TXIH4BQT.js");
|
|
2851
2851
|
const argStr = args.join(" ").trim();
|
|
2852
2852
|
let testArgs = {};
|
|
2853
2853
|
if (argStr) {
|
|
@@ -7633,7 +7633,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
7633
7633
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
7634
7634
|
process.exit(1);
|
|
7635
7635
|
}
|
|
7636
|
-
const { startWebServer } = await import("./server-
|
|
7636
|
+
const { startWebServer } = await import("./server-HKFR5HA4.js");
|
|
7637
7637
|
await startWebServer({ port, host: options.host });
|
|
7638
7638
|
});
|
|
7639
7639
|
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) => {
|
|
@@ -7800,12 +7800,12 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
7800
7800
|
console.log(footer + "\n");
|
|
7801
7801
|
});
|
|
7802
7802
|
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) => {
|
|
7803
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
7803
|
+
const { runDoctorCli } = await import("./doctor-cli-LUSRKICK.js");
|
|
7804
7804
|
await runDoctorCli({ json: !!options.json, resetStats: !!options.resetStats });
|
|
7805
7805
|
});
|
|
7806
7806
|
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) => {
|
|
7807
7807
|
try {
|
|
7808
|
-
const batch = await import("./batch-
|
|
7808
|
+
const batch = await import("./batch-VIYQSLSG.js");
|
|
7809
7809
|
switch (action) {
|
|
7810
7810
|
case "submit":
|
|
7811
7811
|
if (!arg) {
|
|
@@ -7848,7 +7848,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
7848
7848
|
}
|
|
7849
7849
|
});
|
|
7850
7850
|
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) => {
|
|
7851
|
-
const { startMcpServer } = await import("./server-
|
|
7851
|
+
const { startMcpServer } = await import("./server-6GNEHLZC.js");
|
|
7852
7852
|
await startMcpServer({
|
|
7853
7853
|
allowDestructive: !!options.allowDestructive,
|
|
7854
7854
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -7857,7 +7857,7 @@ program.command("mcp-serve").description("Start an MCP server over STDIO, exposi
|
|
|
7857
7857
|
});
|
|
7858
7858
|
});
|
|
7859
7859
|
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) => {
|
|
7860
|
-
const { runCi } = await import("./ci-
|
|
7860
|
+
const { runCi } = await import("./ci-XVSELKNA.js");
|
|
7861
7861
|
const result = await runCi({
|
|
7862
7862
|
pr: options.pr,
|
|
7863
7863
|
base: options.base,
|
|
@@ -8002,7 +8002,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
8002
8002
|
}),
|
|
8003
8003
|
config.get("customProviders")
|
|
8004
8004
|
);
|
|
8005
|
-
const { startHub } = await import("./hub-
|
|
8005
|
+
const { startHub } = await import("./hub-72YGVU55.js");
|
|
8006
8006
|
await startHub(
|
|
8007
8007
|
{
|
|
8008
8008
|
topic: topic ?? "",
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ToolRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V5OG2P7N.js";
|
|
5
5
|
import "./chunk-HDSKW7Q3.js";
|
|
6
6
|
import "./chunk-ZWVIDFGY.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-YPG5ZVO7.js";
|
|
8
8
|
import {
|
|
9
9
|
runTool
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VY577XWM.js";
|
|
11
11
|
import {
|
|
12
12
|
getDangerLevel,
|
|
13
13
|
schemaToJsonSchema
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HIU2SH4V.js";
|
|
15
15
|
import "./chunk-TZQHYZKT.js";
|
|
16
16
|
import {
|
|
17
17
|
VERSION
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-KUL6WUPU.js";
|
|
19
19
|
import "./chunk-4BKXL7SM.js";
|
|
20
20
|
import "./chunk-MM3F43H6.js";
|
|
21
21
|
import "./chunk-KHYD3WXE.js";
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import "./chunk-NZ4X6GUC.js";
|
|
8
8
|
import {
|
|
9
9
|
persistDiscussion
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VRCBXH2W.js";
|
|
11
11
|
import {
|
|
12
12
|
AuthManager,
|
|
13
13
|
TOKEN_EXPIRY_MS
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
loadDevState,
|
|
22
22
|
persistToolRound,
|
|
23
23
|
setupProxy
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-IMPP3CAB.js";
|
|
25
25
|
import {
|
|
26
26
|
ToolExecutor,
|
|
27
27
|
ToolRegistry,
|
|
@@ -39,14 +39,14 @@ import {
|
|
|
39
39
|
spawnAgentContext,
|
|
40
40
|
truncateOutput,
|
|
41
41
|
undoStack
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-V5OG2P7N.js";
|
|
43
43
|
import "./chunk-HDSKW7Q3.js";
|
|
44
44
|
import "./chunk-ZWVIDFGY.js";
|
|
45
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-YPG5ZVO7.js";
|
|
46
46
|
import {
|
|
47
47
|
SessionManager,
|
|
48
48
|
getContentText
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-RIVZNS3K.js";
|
|
50
50
|
import {
|
|
51
51
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
52
52
|
HALLUCINATION_CORRECTION_MESSAGE,
|
|
@@ -61,16 +61,16 @@ import {
|
|
|
61
61
|
looksLikeDocumentBody,
|
|
62
62
|
stripPseudoToolCalls,
|
|
63
63
|
stripToolCallReminder
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-2TG4KU3U.js";
|
|
65
65
|
import {
|
|
66
66
|
runTool
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-VY577XWM.js";
|
|
68
68
|
import {
|
|
69
69
|
getDangerLevel
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-HIU2SH4V.js";
|
|
71
71
|
import {
|
|
72
72
|
ConfigManager
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-G37OWJDM.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-
|
|
93
|
+
} from "./chunk-KUL6WUPU.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-
|
|
2580
|
+
const { executeTests } = await import("./run-tests-TXIH4BQT.js");
|
|
2581
2581
|
const argStr = args.join(" ").trim();
|
|
2582
2582
|
let testArgs = {};
|
|
2583
2583
|
if (argStr) {
|
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
ToolRegistry,
|
|
4
4
|
googleSearchContext,
|
|
5
5
|
truncateOutput
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-V5OG2P7N.js";
|
|
7
7
|
import "./chunk-HDSKW7Q3.js";
|
|
8
8
|
import "./chunk-ZWVIDFGY.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-YPG5ZVO7.js";
|
|
10
10
|
import {
|
|
11
11
|
runTool
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VY577XWM.js";
|
|
13
13
|
import {
|
|
14
14
|
getDangerLevel
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-HIU2SH4V.js";
|
|
16
16
|
import "./chunk-TZQHYZKT.js";
|
|
17
17
|
import {
|
|
18
18
|
SUBAGENT_ALLOWED_TOOLS
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-KUL6WUPU.js";
|
|
20
20
|
import "./chunk-4BKXL7SM.js";
|
|
21
21
|
import "./chunk-MM3F43H6.js";
|
|
22
22
|
import "./chunk-KHYD3WXE.js";
|