jinzd-ai-cli 0.4.331 → 0.4.333
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-OOHC5POO.js → batch-TYKULVIK.js} +2 -2
- package/dist/{chunk-L3FDFFD2.js → chunk-3JGBKYCN.js} +7 -7
- package/dist/{chunk-56ME7PB2.js → chunk-4RVLGIK3.js} +1 -1
- package/dist/{chunk-TF2FNRDZ.js → chunk-4TKEA7RE.js} +1 -1
- package/dist/{chunk-QFF2PTI3.js → chunk-5MUAJ742.js} +1 -1
- package/dist/{chunk-MJSK6ZYR.js → chunk-6WQCZTAJ.js} +4 -4
- package/dist/{chunk-RZDRBFAB.js → chunk-A4KKNBG3.js} +4 -4
- package/dist/{chunk-MN25ELTF.js → chunk-DAAR4XOY.js} +3 -1
- package/dist/{chunk-EWARNWJ4.js → chunk-H4UIWMA5.js} +4 -4
- package/dist/{chunk-YCDF6FNR.js → chunk-JTXHWIBO.js} +1 -1
- package/dist/{chunk-6BGW25LG.js → chunk-K4AYNZF7.js} +1 -1
- package/dist/{chunk-NOLK5C4U.js → chunk-NP2GRK2N.js} +1 -1
- package/dist/{chunk-IJNDIOOQ.js → chunk-NRDCQGAN.js} +1 -1
- package/dist/{chunk-Q26V2PNA.js → chunk-YIEOU7NG.js} +1 -1
- package/dist/{chunk-DTVN2LDU.js → chunk-YUQYVOY2.js} +1 -1
- package/dist/{chunk-R3XIU7NS.js → chunk-ZQ5HR7XN.js} +1 -1
- package/dist/{chunk-CM5C7ZSM.js → chunk-ZQFOY5FB.js} +1 -1
- package/dist/{ci-HNYUXJUE.js → ci-MYKIATCI.js} +5 -5
- package/dist/{ci-format-ZLBEAU7Z.js → ci-format-QOXT6E3A.js} +2 -2
- package/dist/{constants-JM6MK5SS.js → constants-C55HE2E5.js} +1 -1
- package/dist/{constants-4EH6Y6VI.js → constants-WK2I2UCZ.js} +1 -1
- package/dist/{doctor-cli-VCNERMX5.js → doctor-cli-63GBR2D3.js} +5 -5
- package/dist/electron-server.js +13 -11
- package/dist/{hub-3OXLWTEP.js → hub-J4FZ4GXX.js} +4 -4
- package/dist/{hub-server-LJWXNEWK.js → hub-server-HOQ6S3NK.js} +1 -1
- package/dist/index.js +18 -18
- package/dist/{persistent-memory-LMVWIHMX.js → persistent-memory-6JN7AWD6.js} +2 -2
- package/dist/{persistent-memory-PAS7NAPQ.js → persistent-memory-AEIRTKWX.js} +2 -2
- package/dist/{pr-IMR62OHN.js → pr-C53TJRXV.js} +5 -5
- package/dist/{run-tests-MQVGE6FK.js → run-tests-BKFV3HUZ.js} +2 -2
- package/dist/{run-tests-2TVEWCQI.js → run-tests-CZLZW5RL.js} +2 -2
- package/dist/{server-55X6MCGX.js → server-2GYX4CJC.js} +5 -5
- package/dist/{server-6MS2NGEJ.js → server-2UB74CEK.js} +16 -16
- package/dist/{task-orchestrator-KIDJB7NP.js → task-orchestrator-EVONAO6V.js} +5 -5
- package/dist/{usage-X2CQYAUA.js → usage-6Y7K2GNN.js} +2 -2
- package/dist/web/client/app.js +21 -16
- package/dist/web/client/app.js.br +0 -0
- package/dist/web/client/app.js.gz +0 -0
- package/dist/web/client/index.html +2 -1
- package/dist/web/client/index.html.br +0 -0
- package/dist/web/client/index.html.gz +0 -0
- package/dist/web/client/style.css +1 -0
- package/dist/web/client/style.css.br +0 -0
- package/dist/web/client/style.css.gz +0 -0
- package/package.json +1 -1
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
} from "./chunk-RS7SKYTS.js";
|
|
5
5
|
import {
|
|
6
6
|
ConfigManager
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZQFOY5FB.js";
|
|
8
8
|
import "./chunk-TU3L3PW7.js";
|
|
9
9
|
import {
|
|
10
10
|
atomicWriteFileSync
|
|
11
11
|
} from "./chunk-BMLQPSHP.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-JTXHWIBO.js";
|
|
13
13
|
|
|
14
14
|
// src/cli/batch.ts
|
|
15
15
|
import Anthropic from "@anthropic-ai/sdk";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
setPreferredAgentName,
|
|
17
17
|
truncateForPersist,
|
|
18
18
|
undoStack
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-A4KKNBG3.js";
|
|
20
20
|
import {
|
|
21
21
|
buildReviewPrompt,
|
|
22
22
|
buildSecurityReviewPrompt
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
touchMemoryReferences,
|
|
52
52
|
updateMemoryApproval,
|
|
53
53
|
updateMemoryEntry
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-4RVLGIK3.js";
|
|
55
55
|
import {
|
|
56
56
|
theme
|
|
57
57
|
} from "./chunk-5C76XDDF.js";
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
import {
|
|
66
66
|
buildDoctorReport,
|
|
67
67
|
formatDoctorReport
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-H4UIWMA5.js";
|
|
69
69
|
import {
|
|
70
70
|
describePlugin,
|
|
71
71
|
getActivePluginAssets,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
trustHook,
|
|
81
81
|
trustPlugin,
|
|
82
82
|
untrustHook
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-YIEOU7NG.js";
|
|
84
84
|
import {
|
|
85
85
|
isCleanDocumentBody,
|
|
86
86
|
stripOuterCodeFence
|
|
@@ -109,7 +109,7 @@ import {
|
|
|
109
109
|
MCP_TOOL_PREFIX,
|
|
110
110
|
REPO_URL,
|
|
111
111
|
VERSION
|
|
112
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-JTXHWIBO.js";
|
|
113
113
|
|
|
114
114
|
// src/skills/manager.ts
|
|
115
115
|
import { existsSync, readdirSync, mkdirSync, statSync } from "fs";
|
|
@@ -2445,7 +2445,7 @@ No tools match "${filter}".
|
|
|
2445
2445
|
const { join: join6 } = await import("path");
|
|
2446
2446
|
const { existsSync: existsSync6 } = await import("fs");
|
|
2447
2447
|
const { getGitRoot } = await import("./git-context-EXOEHQSF.js");
|
|
2448
|
-
const { MCP_PROJECT_CONFIG_NAME } = await import("./constants-
|
|
2448
|
+
const { MCP_PROJECT_CONFIG_NAME } = await import("./constants-WK2I2UCZ.js");
|
|
2449
2449
|
const { approveProject, hashMcpFile } = await import("./project-trust-KGG2BWKC.js");
|
|
2450
2450
|
const cwd = process.cwd();
|
|
2451
2451
|
const projectRoot = getGitRoot(cwd) ?? cwd;
|
|
@@ -3553,7 +3553,7 @@ function createReviewCommands() {
|
|
|
3553
3553
|
usage: "/test [command|filter]",
|
|
3554
3554
|
async execute(args, ctx) {
|
|
3555
3555
|
try {
|
|
3556
|
-
const { executeTests } = await import("./run-tests-
|
|
3556
|
+
const { executeTests } = await import("./run-tests-CZLZW5RL.js");
|
|
3557
3557
|
const argStr = args.join(" ").trim();
|
|
3558
3558
|
let testArgs = {};
|
|
3559
3559
|
if (argStr) {
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
MEMORY_FILE_NAME,
|
|
14
14
|
MEMORY_MAX_CHARS,
|
|
15
15
|
MEMORY_STORE_FILE_NAME
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-JTXHWIBO.js";
|
|
17
17
|
|
|
18
18
|
// src/memory/persistent-memory.ts
|
|
19
19
|
import { copyFileSync, existsSync, mkdirSync, readFileSync, statSync } from "fs";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
evaluateCiGate,
|
|
4
4
|
normalizeCiThresholds
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-NRDCQGAN.js";
|
|
6
6
|
import {
|
|
7
7
|
buildReviewPrompt,
|
|
8
8
|
buildSecurityReviewPrompt,
|
|
@@ -13,13 +13,13 @@ import {
|
|
|
13
13
|
} from "./chunk-6YZEZFX5.js";
|
|
14
14
|
import {
|
|
15
15
|
ProviderRegistry
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-5MUAJ742.js";
|
|
17
17
|
import {
|
|
18
18
|
ConfigManager
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ZQFOY5FB.js";
|
|
20
20
|
import {
|
|
21
21
|
VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-JTXHWIBO.js";
|
|
23
23
|
|
|
24
24
|
// src/cli/ci.ts
|
|
25
25
|
import { execFileSync } from "child_process";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
searchPersistentMemories,
|
|
12
12
|
touchMemoryReferences,
|
|
13
13
|
updateMemoryEntry
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4RVLGIK3.js";
|
|
15
15
|
import {
|
|
16
16
|
indexProject
|
|
17
17
|
} from "./chunk-RWRZVQCB.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
runHook,
|
|
31
31
|
runLifecycleHooks,
|
|
32
32
|
runTool
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-YIEOU7NG.js";
|
|
34
34
|
import {
|
|
35
35
|
getDangerLevel,
|
|
36
36
|
isFileWriteTool
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
recoverGbkMojibake,
|
|
67
67
|
runTestsTool,
|
|
68
68
|
shellInvocation
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-K4AYNZF7.js";
|
|
70
70
|
import {
|
|
71
71
|
CONFIG_DIR_NAME,
|
|
72
72
|
DEFAULT_MAX_TOOL_OUTPUT_CHARS_CAP,
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
SUBAGENT_ALLOWED_TOOLS,
|
|
76
76
|
SUBAGENT_DEFAULT_MAX_ROUNDS,
|
|
77
77
|
SUBAGENT_MAX_ROUNDS_LIMIT
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-JTXHWIBO.js";
|
|
79
79
|
import {
|
|
80
80
|
getCurrentSessionKey,
|
|
81
81
|
getExecutionConfigDir,
|
|
@@ -26,8 +26,10 @@ function stripThinkBlocks(raw) {
|
|
|
26
26
|
const filter = new ThinkTagFilter();
|
|
27
27
|
return filter.push(raw) + filter.flush();
|
|
28
28
|
}
|
|
29
|
+
var REASONING_ONLY_NOTICE = "(no reply this round \u2014 reasoning ran past the output limit)";
|
|
29
30
|
function parseTurn(raw) {
|
|
30
|
-
|
|
31
|
+
let trimmed = stripThinkBlocks(raw).trim();
|
|
32
|
+
if (!trimmed && /<think>/i.test(raw)) trimmed = REASONING_ONLY_NOTICE;
|
|
31
33
|
const upper = trimmed.toUpperCase();
|
|
32
34
|
if (upper.startsWith(PASS_MARKER) || upper === PASS_MARKER) {
|
|
33
35
|
return { content: "", passed: true, converged: false };
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
listHooks,
|
|
9
9
|
listInstalledPlugins,
|
|
10
10
|
resetStats
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YIEOU7NG.js";
|
|
12
12
|
import {
|
|
13
13
|
ProviderRegistry
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5MUAJ742.js";
|
|
15
15
|
import {
|
|
16
16
|
ConfigManager
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-ZQFOY5FB.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-JTXHWIBO.js";
|
|
30
30
|
|
|
31
31
|
// src/diagnostics/doctor-report.ts
|
|
32
32
|
import { existsSync as existsSync3, statSync as statSync2 } from "fs";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
MEMORY_FILE_NAME,
|
|
13
13
|
MEMORY_MAX_CHARS,
|
|
14
14
|
MEMORY_STORE_FILE_NAME
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YUQYVOY2.js";
|
|
16
16
|
|
|
17
17
|
// src/memory/persistent-memory.ts
|
|
18
18
|
import { copyFileSync, existsSync, mkdirSync, readFileSync, statSync } from "fs";
|
|
@@ -3,17 +3,17 @@ import {
|
|
|
3
3
|
CI_COMMENT_MARKER,
|
|
4
4
|
countSeverity,
|
|
5
5
|
runCi
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-6WQCZTAJ.js";
|
|
7
|
+
import "./chunk-NRDCQGAN.js";
|
|
8
8
|
import "./chunk-HLWUDRBO.js";
|
|
9
9
|
import "./chunk-6YZEZFX5.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-5MUAJ742.js";
|
|
11
|
+
import "./chunk-ZQFOY5FB.js";
|
|
12
12
|
import "./chunk-W4P2KJZN.js";
|
|
13
13
|
import "./chunk-C6GA7H5D.js";
|
|
14
14
|
import "./chunk-TU3L3PW7.js";
|
|
15
15
|
import "./chunk-BMLQPSHP.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-JTXHWIBO.js";
|
|
17
17
|
export {
|
|
18
18
|
CI_COMMENT_MARKER,
|
|
19
19
|
countSeverity,
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
formatDoctorReport,
|
|
4
4
|
runDoctorCli
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-H4UIWMA5.js";
|
|
6
|
+
import "./chunk-YIEOU7NG.js";
|
|
7
7
|
import "./chunk-RS7SKYTS.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-5MUAJ742.js";
|
|
9
|
+
import "./chunk-ZQFOY5FB.js";
|
|
10
10
|
import "./chunk-W4P2KJZN.js";
|
|
11
11
|
import "./chunk-C6GA7H5D.js";
|
|
12
12
|
import "./chunk-TU3L3PW7.js";
|
|
13
13
|
import "./chunk-HOSJZMQS.js";
|
|
14
14
|
import "./chunk-BMLQPSHP.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-JTXHWIBO.js";
|
|
16
16
|
export {
|
|
17
17
|
formatDoctorReport,
|
|
18
18
|
runDoctorCli
|
package/dist/electron-server.js
CHANGED
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
touchMemoryReferences,
|
|
56
56
|
updateMemoryApproval,
|
|
57
57
|
updateMemoryEntry
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-ZQ5HR7XN.js";
|
|
59
59
|
import {
|
|
60
60
|
DEFAULT_PATTERNS,
|
|
61
61
|
redactJson,
|
|
@@ -81,7 +81,7 @@ import {
|
|
|
81
81
|
recoverGbkMojibake,
|
|
82
82
|
runTestsTool,
|
|
83
83
|
shellInvocation
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-4TKEA7RE.js";
|
|
85
85
|
import {
|
|
86
86
|
getCurrentSessionKey,
|
|
87
87
|
getExecutionConfigDir,
|
|
@@ -123,7 +123,7 @@ import {
|
|
|
123
123
|
SUBAGENT_MAX_ROUNDS_LIMIT,
|
|
124
124
|
VERSION,
|
|
125
125
|
buildUserIdentityPrompt
|
|
126
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-YUQYVOY2.js";
|
|
127
127
|
|
|
128
128
|
// src/web/access.ts
|
|
129
129
|
import { randomBytes, timingSafeEqual } from "crypto";
|
|
@@ -16008,8 +16008,10 @@ function stripThinkBlocks(raw) {
|
|
|
16008
16008
|
const filter = new ThinkTagFilter();
|
|
16009
16009
|
return filter.push(raw) + filter.flush();
|
|
16010
16010
|
}
|
|
16011
|
+
var REASONING_ONLY_NOTICE = "(no reply this round \u2014 reasoning ran past the output limit)";
|
|
16011
16012
|
function parseTurn(raw) {
|
|
16012
|
-
|
|
16013
|
+
let trimmed = stripThinkBlocks(raw).trim();
|
|
16014
|
+
if (!trimmed && /<think>/i.test(raw)) trimmed = REASONING_ONLY_NOTICE;
|
|
16013
16015
|
const upper = trimmed.toUpperCase();
|
|
16014
16016
|
if (upper.startsWith(PASS_MARKER) || upper === PASS_MARKER) {
|
|
16015
16017
|
return { content: "", passed: true, converged: false };
|
|
@@ -17942,7 +17944,7 @@ Cache: write=${cacheCreate} read=${cacheRead}` : "";
|
|
|
17942
17944
|
Cost: ${formatCost(cost)}` : "";
|
|
17943
17945
|
let memoryLine = "";
|
|
17944
17946
|
try {
|
|
17945
|
-
const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-
|
|
17947
|
+
const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-6JN7AWD6.js");
|
|
17946
17948
|
const pending = countPendingMemories2(ctx.config.getConfigDir());
|
|
17947
17949
|
if (pending > 0) memoryLine = `
|
|
17948
17950
|
Memory: \u26A0 ${pending} pending approval \u2014 see the Memory panel or /memory`;
|
|
@@ -18930,7 +18932,7 @@ async function handleTest(args, ctx) {
|
|
|
18930
18932
|
const isCommand = argStr.includes(" ") || /^(mvn|gradle|npm|pytest|cargo|go)\b/.test(argStr);
|
|
18931
18933
|
testArgs = isCommand ? { command: argStr } : { filter: argStr };
|
|
18932
18934
|
}
|
|
18933
|
-
const runTests = ctx.runTests ?? (await import("./run-tests-
|
|
18935
|
+
const runTests = ctx.runTests ?? (await import("./run-tests-BKFV3HUZ.js")).executeTests;
|
|
18934
18936
|
const report = await runTests(testArgs);
|
|
18935
18937
|
ctx.send({ type: "info", message: report });
|
|
18936
18938
|
} catch (err) {
|
|
@@ -19321,7 +19323,7 @@ async function handleMemory(args, ctx) {
|
|
|
19321
19323
|
}
|
|
19322
19324
|
if (intent.kind === "status") {
|
|
19323
19325
|
const { getChatIndexStatus: getChatIndexStatus2 } = await import("./chat-index-RLVLQRRC.js");
|
|
19324
|
-
const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-
|
|
19326
|
+
const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-6JN7AWD6.js");
|
|
19325
19327
|
const memories = listMemoryEntries2(configDir, { includeExpired: true, includeRejected: true });
|
|
19326
19328
|
const injected = formatMemoryForPrompt2(configDir, process.cwd(), ctx.config.get("memory")?.maxChars);
|
|
19327
19329
|
const view = buildMemoryStatusView({
|
|
@@ -19344,7 +19346,7 @@ async function handleMemory(args, ctx) {
|
|
|
19344
19346
|
return;
|
|
19345
19347
|
}
|
|
19346
19348
|
if (intent.kind === "recall") {
|
|
19347
|
-
const { searchPersistentMemories: searchPersistentMemories2, touchMemoryReferences: touchMemoryReferences2 } = await import("./persistent-memory-
|
|
19349
|
+
const { searchPersistentMemories: searchPersistentMemories2, touchMemoryReferences: touchMemoryReferences2 } = await import("./persistent-memory-6JN7AWD6.js");
|
|
19348
19350
|
const { searchChatMemory: searchChatMemory2 } = await import("./chat-index-RLVLQRRC.js");
|
|
19349
19351
|
const persistentHits = searchPersistentMemories2(configDir, intent.query, process.cwd(), 3);
|
|
19350
19352
|
if (persistentHits.length > 0) {
|
|
@@ -19465,7 +19467,7 @@ async function handleMemory(args, ctx) {
|
|
|
19465
19467
|
ctx.handleMemoryManage(intent.action, args[1], intent.action === "expire" ? args[2] : void 0);
|
|
19466
19468
|
} else if (intent.kind === "export") {
|
|
19467
19469
|
if (args[1] === "md") {
|
|
19468
|
-
const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-
|
|
19470
|
+
const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-6JN7AWD6.js");
|
|
19469
19471
|
ctx.send({
|
|
19470
19472
|
type: "export_data",
|
|
19471
19473
|
format: "md",
|
|
@@ -20471,7 +20473,7 @@ No tools match "${filter}".
|
|
|
20471
20473
|
const { join: join27 } = await import("path");
|
|
20472
20474
|
const { existsSync: existsSync33 } = await import("fs");
|
|
20473
20475
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-VNCA2GU7.js");
|
|
20474
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
20476
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-C55HE2E5.js");
|
|
20475
20477
|
const { approveProject, hashMcpFile } = await import("./project-trust-6CJB5ZMX.js");
|
|
20476
20478
|
const cwd = process.cwd();
|
|
20477
20479
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -21390,7 +21392,7 @@ function createReviewCommands() {
|
|
|
21390
21392
|
usage: "/test [command|filter]",
|
|
21391
21393
|
async execute(args, ctx) {
|
|
21392
21394
|
try {
|
|
21393
|
-
const { executeTests } = await import("./run-tests-
|
|
21395
|
+
const { executeTests } = await import("./run-tests-BKFV3HUZ.js");
|
|
21394
21396
|
const argStr = args.join(" ").trim();
|
|
21395
21397
|
let testArgs = {};
|
|
21396
21398
|
if (argStr) {
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
listPresets,
|
|
11
11
|
parseRolesJson,
|
|
12
12
|
resolveRoleProviders
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-NP2GRK2N.js";
|
|
14
|
+
import "./chunk-DAAR4XOY.js";
|
|
15
15
|
import {
|
|
16
16
|
thinkingParamsFor
|
|
17
17
|
} from "./chunk-6YZEZFX5.js";
|
|
@@ -148,7 +148,7 @@ ${content}`);
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
async function runTaskMode(config, providers, configManager, topic) {
|
|
151
|
-
const { TaskOrchestrator } = await import("./task-orchestrator-
|
|
151
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-EVONAO6V.js");
|
|
152
152
|
const orchestrator = new TaskOrchestrator(config, providers, configManager);
|
|
153
153
|
let interrupted = false;
|
|
154
154
|
const onSigint = () => {
|
|
@@ -184,7 +184,7 @@ async function runTaskMode(config, providers, configManager, topic) {
|
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
async function runDistributedDiscussion(config, providers, topic, port) {
|
|
187
|
-
const { HubServer } = await import("./hub-server-
|
|
187
|
+
const { HubServer } = await import("./hub-server-HOQ6S3NK.js");
|
|
188
188
|
const hub = new HubServer(config, providers, port);
|
|
189
189
|
let interrupted = false;
|
|
190
190
|
const onSigint = () => {
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
setupProxy,
|
|
25
25
|
snapshotFile,
|
|
26
26
|
stripRoutingTags
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-3JGBKYCN.js";
|
|
28
28
|
import {
|
|
29
29
|
CostTracker,
|
|
30
30
|
getPricing,
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
setMaxOutputCap,
|
|
48
48
|
spawnAgentContext,
|
|
49
49
|
undoStack
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-A4KKNBG3.js";
|
|
51
51
|
import "./chunk-HLWUDRBO.js";
|
|
52
52
|
import {
|
|
53
53
|
NO_THINKING,
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
countPendingMemories,
|
|
61
61
|
detectStaleLegacyMarkdownEdit,
|
|
62
62
|
formatMemoryForPrompt
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-4RVLGIK3.js";
|
|
64
64
|
import "./chunk-RWRZVQCB.js";
|
|
65
65
|
import "./chunk-B3MPYI4E.js";
|
|
66
66
|
import "./chunk-M6HLYG33.js";
|
|
@@ -81,22 +81,22 @@ import {
|
|
|
81
81
|
import {
|
|
82
82
|
loadContextFiles,
|
|
83
83
|
writeCrashLog
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-H4UIWMA5.js";
|
|
85
85
|
import {
|
|
86
86
|
getActivePluginAssets,
|
|
87
87
|
getPendingHookTrust,
|
|
88
88
|
installFlushOnExit,
|
|
89
89
|
mergePluginHooks,
|
|
90
90
|
runLifecycleHooks
|
|
91
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-YIEOU7NG.js";
|
|
92
92
|
import "./chunk-RS7SKYTS.js";
|
|
93
93
|
import {
|
|
94
94
|
ProviderRegistry,
|
|
95
95
|
listBuiltInProviderMetadata
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-5MUAJ742.js";
|
|
97
97
|
import {
|
|
98
98
|
ConfigManager
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-ZQFOY5FB.js";
|
|
100
100
|
import "./chunk-W4P2KJZN.js";
|
|
101
101
|
import {
|
|
102
102
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
@@ -135,7 +135,7 @@ import {
|
|
|
135
135
|
isInterrupted,
|
|
136
136
|
requestInterrupt,
|
|
137
137
|
resetInterrupt
|
|
138
|
-
} from "./chunk-
|
|
138
|
+
} from "./chunk-K4AYNZF7.js";
|
|
139
139
|
import {
|
|
140
140
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
141
141
|
AUTHOR,
|
|
@@ -153,7 +153,7 @@ import {
|
|
|
153
153
|
SKILLS_DIR_NAME,
|
|
154
154
|
VERSION,
|
|
155
155
|
buildUserIdentityPrompt
|
|
156
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-JTXHWIBO.js";
|
|
157
157
|
import "./chunk-SXIJLSVF.js";
|
|
158
158
|
|
|
159
159
|
// src/index.ts
|
|
@@ -4119,7 +4119,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
4119
4119
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
4120
4120
|
process.exit(1);
|
|
4121
4121
|
}
|
|
4122
|
-
const { startWebServer, WebStartupError } = await import("./server-
|
|
4122
|
+
const { startWebServer, WebStartupError } = await import("./server-2UB74CEK.js");
|
|
4123
4123
|
try {
|
|
4124
4124
|
await startWebServer({ port, host: options.host, externalOrigin: options.externalOrigin });
|
|
4125
4125
|
} catch (err) {
|
|
@@ -4296,11 +4296,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
4296
4296
|
console.log(footer + "\n");
|
|
4297
4297
|
});
|
|
4298
4298
|
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) => {
|
|
4299
|
-
const { runUsageCli } = await import("./usage-
|
|
4299
|
+
const { runUsageCli } = await import("./usage-6Y7K2GNN.js");
|
|
4300
4300
|
await runUsageCli(options);
|
|
4301
4301
|
});
|
|
4302
4302
|
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) => {
|
|
4303
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
4303
|
+
const { runDoctorCli } = await import("./doctor-cli-63GBR2D3.js");
|
|
4304
4304
|
const argv = process.argv.slice(2);
|
|
4305
4305
|
await runDoctorCli({
|
|
4306
4306
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -4309,7 +4309,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
4309
4309
|
});
|
|
4310
4310
|
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) => {
|
|
4311
4311
|
try {
|
|
4312
|
-
const batch = await import("./batch-
|
|
4312
|
+
const batch = await import("./batch-TYKULVIK.js");
|
|
4313
4313
|
switch (action) {
|
|
4314
4314
|
case "submit":
|
|
4315
4315
|
if (!arg) {
|
|
@@ -4352,7 +4352,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
4352
4352
|
}
|
|
4353
4353
|
});
|
|
4354
4354
|
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) => {
|
|
4355
|
-
const { startMcpServer } = await import("./server-
|
|
4355
|
+
const { startMcpServer } = await import("./server-2GYX4CJC.js");
|
|
4356
4356
|
await startMcpServer({
|
|
4357
4357
|
allowDestructive: !!options.allowDestructive,
|
|
4358
4358
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -4365,7 +4365,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
4365
4365
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
4366
4366
|
process.exit(1);
|
|
4367
4367
|
}
|
|
4368
|
-
const { runPrCli } = await import("./pr-
|
|
4368
|
+
const { runPrCli } = await import("./pr-C53TJRXV.js");
|
|
4369
4369
|
const result = await runPrCli({
|
|
4370
4370
|
action,
|
|
4371
4371
|
target,
|
|
@@ -4385,8 +4385,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
4385
4385
|
process.exit(result.exitCode);
|
|
4386
4386
|
});
|
|
4387
4387
|
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) => {
|
|
4388
|
-
const { runCi } = await import("./ci-
|
|
4389
|
-
const { formatCiResult } = await import("./ci-format-
|
|
4388
|
+
const { runCi } = await import("./ci-MYKIATCI.js");
|
|
4389
|
+
const { formatCiResult } = await import("./ci-format-QOXT6E3A.js");
|
|
4390
4390
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
4391
4391
|
if (formats > 1) {
|
|
4392
4392
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -4545,7 +4545,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
4545
4545
|
config.get("customProviders"),
|
|
4546
4546
|
config.getConfigDir()
|
|
4547
4547
|
);
|
|
4548
|
-
const { startHub } = await import("./hub-
|
|
4548
|
+
const { startHub } = await import("./hub-J4FZ4GXX.js");
|
|
4549
4549
|
await startHub(
|
|
4550
4550
|
{
|
|
4551
4551
|
topic: topic ?? "",
|
|
@@ -27,11 +27,11 @@ import {
|
|
|
27
27
|
touchMemoryReferences,
|
|
28
28
|
updateMemoryApproval,
|
|
29
29
|
updateMemoryEntry
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ZQ5HR7XN.js";
|
|
31
31
|
import "./chunk-FSC6KEWU.js";
|
|
32
32
|
import "./chunk-2XMUCC42.js";
|
|
33
33
|
import "./chunk-CGLYJRFA.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-YUQYVOY2.js";
|
|
35
35
|
export {
|
|
36
36
|
addMemoryEntry,
|
|
37
37
|
backupMemoryStore,
|
|
@@ -28,11 +28,11 @@ import {
|
|
|
28
28
|
touchMemoryReferences,
|
|
29
29
|
updateMemoryApproval,
|
|
30
30
|
updateMemoryEntry
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-4RVLGIK3.js";
|
|
32
32
|
import "./chunk-3FEZSLGI.js";
|
|
33
33
|
import "./chunk-HOSJZMQS.js";
|
|
34
34
|
import "./chunk-BMLQPSHP.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-JTXHWIBO.js";
|
|
36
36
|
export {
|
|
37
37
|
addMemoryEntry,
|
|
38
38
|
backupMemoryStore,
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
countSeverity,
|
|
4
4
|
runCi
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-6WQCZTAJ.js";
|
|
6
|
+
import "./chunk-NRDCQGAN.js";
|
|
7
7
|
import {
|
|
8
8
|
buildReviewPrompt,
|
|
9
9
|
buildSecurityReviewPrompt,
|
|
@@ -14,17 +14,17 @@ import {
|
|
|
14
14
|
} from "./chunk-6YZEZFX5.js";
|
|
15
15
|
import {
|
|
16
16
|
ProviderRegistry
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-5MUAJ742.js";
|
|
18
18
|
import {
|
|
19
19
|
ConfigManager
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-ZQFOY5FB.js";
|
|
21
21
|
import "./chunk-W4P2KJZN.js";
|
|
22
22
|
import "./chunk-C6GA7H5D.js";
|
|
23
23
|
import "./chunk-TU3L3PW7.js";
|
|
24
24
|
import "./chunk-BMLQPSHP.js";
|
|
25
25
|
import {
|
|
26
26
|
VERSION
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-JTXHWIBO.js";
|
|
28
28
|
|
|
29
29
|
// src/cli/pr.ts
|
|
30
30
|
import { execFileSync } from "child_process";
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
executeTests,
|
|
3
3
|
runTestProcess,
|
|
4
4
|
runTestsTool
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4TKEA7RE.js";
|
|
6
6
|
import "./chunk-QMFMST2T.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-YUQYVOY2.js";
|
|
8
8
|
export {
|
|
9
9
|
executeTests,
|
|
10
10
|
runTestProcess,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ToolRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-A4KKNBG3.js";
|
|
5
5
|
import "./chunk-6JHACXB3.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-4RVLGIK3.js";
|
|
7
7
|
import "./chunk-RWRZVQCB.js";
|
|
8
8
|
import "./chunk-B3MPYI4E.js";
|
|
9
9
|
import "./chunk-M6HLYG33.js";
|
|
@@ -14,7 +14,7 @@ import "./chunk-JL44HGZC.js";
|
|
|
14
14
|
import "./chunk-3FEZSLGI.js";
|
|
15
15
|
import {
|
|
16
16
|
runTool
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-YIEOU7NG.js";
|
|
18
18
|
import "./chunk-RS7SKYTS.js";
|
|
19
19
|
import {
|
|
20
20
|
getDangerLevel,
|
|
@@ -25,10 +25,10 @@ import "./chunk-TU3L3PW7.js";
|
|
|
25
25
|
import "./chunk-HOSJZMQS.js";
|
|
26
26
|
import "./chunk-BMLQPSHP.js";
|
|
27
27
|
import "./chunk-JJFJWD35.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-K4AYNZF7.js";
|
|
29
29
|
import {
|
|
30
30
|
VERSION
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-JTXHWIBO.js";
|
|
32
32
|
import "./chunk-SXIJLSVF.js";
|
|
33
33
|
|
|
34
34
|
// src/mcp/server.ts
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
getPreset,
|
|
11
11
|
loadCustomPresets,
|
|
12
12
|
resolveRoleProviders
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-NP2GRK2N.js";
|
|
14
|
+
import "./chunk-DAAR4XOY.js";
|
|
15
15
|
import {
|
|
16
16
|
AuthManager,
|
|
17
17
|
TOKEN_EXPIRY_MS
|
|
@@ -88,7 +88,7 @@ import {
|
|
|
88
88
|
skillHistoryNote,
|
|
89
89
|
snapshotFile,
|
|
90
90
|
stripRoutingTags
|
|
91
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-3JGBKYCN.js";
|
|
92
92
|
import {
|
|
93
93
|
CNY_PER_USD,
|
|
94
94
|
CostTracker,
|
|
@@ -132,7 +132,7 @@ import {
|
|
|
132
132
|
spawnAgentContext,
|
|
133
133
|
truncateOutput,
|
|
134
134
|
undoStack
|
|
135
|
-
} from "./chunk-
|
|
135
|
+
} from "./chunk-A4KKNBG3.js";
|
|
136
136
|
import {
|
|
137
137
|
buildReviewPrompt,
|
|
138
138
|
buildSecurityReviewPrompt
|
|
@@ -159,7 +159,7 @@ import {
|
|
|
159
159
|
restoreMemoryEntries,
|
|
160
160
|
updateMemoryApproval,
|
|
161
161
|
updateMemoryEntry
|
|
162
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-4RVLGIK3.js";
|
|
163
163
|
import "./chunk-RWRZVQCB.js";
|
|
164
164
|
import "./chunk-B3MPYI4E.js";
|
|
165
165
|
import "./chunk-M6HLYG33.js";
|
|
@@ -178,7 +178,7 @@ import {
|
|
|
178
178
|
buildDoctorReport,
|
|
179
179
|
formatDoctorReport,
|
|
180
180
|
loadContextFiles
|
|
181
|
-
} from "./chunk-
|
|
181
|
+
} from "./chunk-H4UIWMA5.js";
|
|
182
182
|
import {
|
|
183
183
|
describePlugin,
|
|
184
184
|
getActivePluginAssets,
|
|
@@ -193,14 +193,14 @@ import {
|
|
|
193
193
|
runTool,
|
|
194
194
|
setPluginEnabled,
|
|
195
195
|
trustPlugin
|
|
196
|
-
} from "./chunk-
|
|
196
|
+
} from "./chunk-YIEOU7NG.js";
|
|
197
197
|
import "./chunk-RS7SKYTS.js";
|
|
198
198
|
import {
|
|
199
199
|
ProviderRegistry
|
|
200
|
-
} from "./chunk-
|
|
200
|
+
} from "./chunk-5MUAJ742.js";
|
|
201
201
|
import {
|
|
202
202
|
ConfigManager
|
|
203
|
-
} from "./chunk-
|
|
203
|
+
} from "./chunk-ZQFOY5FB.js";
|
|
204
204
|
import {
|
|
205
205
|
getDangerLevel
|
|
206
206
|
} from "./chunk-W4P2KJZN.js";
|
|
@@ -235,7 +235,7 @@ import {
|
|
|
235
235
|
import {
|
|
236
236
|
assertReadablePath
|
|
237
237
|
} from "./chunk-JJFJWD35.js";
|
|
238
|
-
import "./chunk-
|
|
238
|
+
import "./chunk-K4AYNZF7.js";
|
|
239
239
|
import {
|
|
240
240
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
241
241
|
AUTHOR,
|
|
@@ -251,7 +251,7 @@ import {
|
|
|
251
251
|
SKILLS_DIR_NAME,
|
|
252
252
|
VERSION,
|
|
253
253
|
buildUserIdentityPrompt
|
|
254
|
-
} from "./chunk-
|
|
254
|
+
} from "./chunk-JTXHWIBO.js";
|
|
255
255
|
import {
|
|
256
256
|
runWithExecutionContext,
|
|
257
257
|
runWithSessionKey
|
|
@@ -983,7 +983,7 @@ Cache: write=${cacheCreate} read=${cacheRead}` : "";
|
|
|
983
983
|
Cost: ${formatCost(cost)}` : "";
|
|
984
984
|
let memoryLine = "";
|
|
985
985
|
try {
|
|
986
|
-
const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-
|
|
986
|
+
const { countPendingMemories: countPendingMemories2 } = await import("./persistent-memory-AEIRTKWX.js");
|
|
987
987
|
const pending = countPendingMemories2(ctx.config.getConfigDir());
|
|
988
988
|
if (pending > 0) memoryLine = `
|
|
989
989
|
Memory: \u26A0 ${pending} pending approval \u2014 see the Memory panel or /memory`;
|
|
@@ -1912,7 +1912,7 @@ async function handleTest(args, ctx) {
|
|
|
1912
1912
|
const isCommand = argStr.includes(" ") || /^(mvn|gradle|npm|pytest|cargo|go)\b/.test(argStr);
|
|
1913
1913
|
testArgs = isCommand ? { command: argStr } : { filter: argStr };
|
|
1914
1914
|
}
|
|
1915
|
-
const runTests = ctx.runTests ?? (await import("./run-tests-
|
|
1915
|
+
const runTests = ctx.runTests ?? (await import("./run-tests-CZLZW5RL.js")).executeTests;
|
|
1916
1916
|
const report = await runTests(testArgs);
|
|
1917
1917
|
ctx.send({ type: "info", message: report });
|
|
1918
1918
|
} catch (err) {
|
|
@@ -2188,7 +2188,7 @@ async function handleMemory(args, ctx) {
|
|
|
2188
2188
|
}
|
|
2189
2189
|
if (intent.kind === "status") {
|
|
2190
2190
|
const { getChatIndexStatus } = await import("./chat-index-7CLR4CBG.js");
|
|
2191
|
-
const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-
|
|
2191
|
+
const { listMemoryEntries: listMemoryEntries2, isMemoryExpired: isMemoryExpired2, formatMemoryForPrompt: formatMemoryForPrompt2 } = await import("./persistent-memory-AEIRTKWX.js");
|
|
2192
2192
|
const memories = listMemoryEntries2(configDir, { includeExpired: true, includeRejected: true });
|
|
2193
2193
|
const injected = formatMemoryForPrompt2(configDir, process.cwd(), ctx.config.get("memory")?.maxChars);
|
|
2194
2194
|
const view = buildMemoryStatusView({
|
|
@@ -2211,7 +2211,7 @@ async function handleMemory(args, ctx) {
|
|
|
2211
2211
|
return;
|
|
2212
2212
|
}
|
|
2213
2213
|
if (intent.kind === "recall") {
|
|
2214
|
-
const { searchPersistentMemories, touchMemoryReferences } = await import("./persistent-memory-
|
|
2214
|
+
const { searchPersistentMemories, touchMemoryReferences } = await import("./persistent-memory-AEIRTKWX.js");
|
|
2215
2215
|
const { searchChatMemory } = await import("./chat-index-7CLR4CBG.js");
|
|
2216
2216
|
const persistentHits = searchPersistentMemories(configDir, intent.query, process.cwd(), 3);
|
|
2217
2217
|
if (persistentHits.length > 0) {
|
|
@@ -2332,7 +2332,7 @@ async function handleMemory(args, ctx) {
|
|
|
2332
2332
|
ctx.handleMemoryManage(intent.action, args[1], intent.action === "expire" ? args[2] : void 0);
|
|
2333
2333
|
} else if (intent.kind === "export") {
|
|
2334
2334
|
if (args[1] === "md") {
|
|
2335
|
-
const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-
|
|
2335
|
+
const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-AEIRTKWX.js");
|
|
2336
2336
|
ctx.send({
|
|
2337
2337
|
type: "export_data",
|
|
2338
2338
|
format: "md",
|
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
googleSearchContext,
|
|
5
5
|
isToolCapableProvider,
|
|
6
6
|
truncateOutput
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-A4KKNBG3.js";
|
|
8
8
|
import "./chunk-6JHACXB3.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-4RVLGIK3.js";
|
|
10
10
|
import "./chunk-RWRZVQCB.js";
|
|
11
11
|
import "./chunk-B3MPYI4E.js";
|
|
12
12
|
import "./chunk-M6HLYG33.js";
|
|
@@ -17,7 +17,7 @@ import "./chunk-JL44HGZC.js";
|
|
|
17
17
|
import "./chunk-3FEZSLGI.js";
|
|
18
18
|
import {
|
|
19
19
|
runTool
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-YIEOU7NG.js";
|
|
21
21
|
import "./chunk-RS7SKYTS.js";
|
|
22
22
|
import {
|
|
23
23
|
getDangerLevel
|
|
@@ -31,10 +31,10 @@ import {
|
|
|
31
31
|
atomicWriteFileSync
|
|
32
32
|
} from "./chunk-BMLQPSHP.js";
|
|
33
33
|
import "./chunk-JJFJWD35.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-K4AYNZF7.js";
|
|
35
35
|
import {
|
|
36
36
|
SUBAGENT_ALLOWED_TOOLS
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-JTXHWIBO.js";
|
|
38
38
|
import "./chunk-SXIJLSVF.js";
|
|
39
39
|
|
|
40
40
|
// src/hub/task-orchestrator.ts
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
import "./chunk-RS7SKYTS.js";
|
|
10
10
|
import {
|
|
11
11
|
ConfigManager
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ZQFOY5FB.js";
|
|
13
13
|
import "./chunk-TU3L3PW7.js";
|
|
14
14
|
import "./chunk-BMLQPSHP.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-JTXHWIBO.js";
|
|
16
16
|
|
|
17
17
|
// src/cli/usage.ts
|
|
18
18
|
function classifyRowCost(row) {
|
package/dist/web/client/app.js
CHANGED
|
@@ -3203,6 +3203,24 @@ function hubAgentContainer(roleId) {
|
|
|
3203
3203
|
|
|
3204
3204
|
function hubColor(c) { return HUB_COLORS[c] || '#9ca3af'; }
|
|
3205
3205
|
|
|
3206
|
+
/** Open a new turn block for roleId (its lane in lane mode, else the flow) and make it the stream slot. */
|
|
3207
|
+
function hubOpenTurn(roleId) {
|
|
3208
|
+
const role = hubRoles[roleId] || { name: roleId, color: 'white' };
|
|
3209
|
+
hubStreamEl = document.createElement('div');
|
|
3210
|
+
if (hubLaneMode) {
|
|
3211
|
+
// Column header already shows the role name — just the body here.
|
|
3212
|
+
hubStreamEl.className = 'hub-msg';
|
|
3213
|
+
hubStreamEl.innerHTML = `<div class="hub-body text-sm"></div>`;
|
|
3214
|
+
} else {
|
|
3215
|
+
hubStreamEl.className = 'hub-msg border-l-2 pl-2 my-2';
|
|
3216
|
+
hubStreamEl.style.borderColor = hubColor(role.color);
|
|
3217
|
+
hubStreamEl.innerHTML = `<div class="text-xs font-bold mb-1" style="color:${hubColor(role.color)}">${escapeHtml(role.name)}</div><div class="hub-body text-sm"></div>`;
|
|
3218
|
+
}
|
|
3219
|
+
hubAgentContainer(roleId).appendChild(hubStreamEl);
|
|
3220
|
+
hubStreamRoleId = roleId;
|
|
3221
|
+
hubStreamEl._raw = '';
|
|
3222
|
+
}
|
|
3223
|
+
|
|
3206
3224
|
/** Sync the `custom:` entries of the preset dropdown with `<configDir>/hub-roles/*.json`. */
|
|
3207
3225
|
function updateHubPresets(list) {
|
|
3208
3226
|
const select = document.getElementById('hub-preset');
|
|
@@ -3302,28 +3320,15 @@ function hubEvent(ev) {
|
|
|
3302
3320
|
break;
|
|
3303
3321
|
}
|
|
3304
3322
|
case 'agent_token': {
|
|
3305
|
-
if (hubStreamRoleId !== ev.roleId || !hubStreamEl)
|
|
3306
|
-
const role = hubRoles[ev.roleId] || { name: ev.roleId, color: 'white' };
|
|
3307
|
-
hubStreamEl = document.createElement('div');
|
|
3308
|
-
if (hubLaneMode) {
|
|
3309
|
-
// Column header already shows the role name — just the body here.
|
|
3310
|
-
hubStreamEl.className = 'hub-msg';
|
|
3311
|
-
hubStreamEl.innerHTML = `<div class="hub-body text-sm"></div>`;
|
|
3312
|
-
} else {
|
|
3313
|
-
hubStreamEl.className = 'hub-msg border-l-2 pl-2 my-2';
|
|
3314
|
-
hubStreamEl.style.borderColor = hubColor(role.color);
|
|
3315
|
-
hubStreamEl.innerHTML = `<div class="text-xs font-bold mb-1" style="color:${hubColor(role.color)}">${escapeHtml(role.name)}</div><div class="hub-body text-sm"></div>`;
|
|
3316
|
-
}
|
|
3317
|
-
hubAgentContainer(ev.roleId).appendChild(hubStreamEl);
|
|
3318
|
-
hubStreamRoleId = ev.roleId;
|
|
3319
|
-
hubStreamEl._raw = '';
|
|
3320
|
-
}
|
|
3323
|
+
if (hubStreamRoleId !== ev.roleId || !hubStreamEl) hubOpenTurn(ev.roleId);
|
|
3321
3324
|
hubStreamEl._raw += ev.token;
|
|
3322
3325
|
appendStreamText(hubStreamEl.querySelector('.hub-body'), ev.token);
|
|
3323
3326
|
scrollToBottom();
|
|
3324
3327
|
break;
|
|
3325
3328
|
}
|
|
3326
3329
|
case 'agent_spoke':
|
|
3330
|
+
// 一个 token 都没流出来(推理被截断后只剩提示、或 provider 不支持流式)时也要画出这条发言
|
|
3331
|
+
if (!hubStreamEl && ev.message?.content) hubOpenTurn(ev.roleId);
|
|
3327
3332
|
if (hubStreamEl) renderMarkdown(hubStreamEl.querySelector('.hub-body'), ev.message?.content ?? hubStreamEl._raw);
|
|
3328
3333
|
// Streaming already rendered the body; finalize the stream slot.
|
|
3329
3334
|
hubStreamEl = null; hubStreamRoleId = null;
|
|
Binary file
|
|
Binary file
|
|
@@ -116,7 +116,8 @@
|
|
|
116
116
|
<!-- Sidebar -->
|
|
117
117
|
<aside id="sidebar" class="sidebar bg-base-200 border-r border-base-content/10 flex flex-col flex-shrink-0 overflow-hidden">
|
|
118
118
|
<!-- Sidebar tabs -->
|
|
119
|
-
|
|
119
|
+
<!-- flex-wrap:7 个标签在 18rem 侧栏里放不下,不换行时 🏛 Hub 被挤出可视区、根本点不到 -->
|
|
120
|
+
<div class="flex flex-wrap border-b border-base-content/10 flex-shrink-0" role="tablist" aria-label="Sidebar sections">
|
|
120
121
|
<button id="sidebar-tab-dashboard" class="sidebar-tab active flex-1 text-xs font-semibold py-2 px-1 text-center" data-tab="dashboard" role="tab" aria-controls="tab-dashboard" aria-selected="true" title="Agent control dashboard" aria-label="Agent control dashboard">⌘ Dash</button>
|
|
121
122
|
<button id="sidebar-tab-sessions" class="sidebar-tab flex-1 text-xs font-semibold py-2 px-1 text-center" data-tab="sessions" role="tab" aria-controls="tab-sessions" aria-selected="false" tabindex="-1">📋 Sessions</button>
|
|
122
123
|
<button id="sidebar-tab-branches" class="sidebar-tab flex-1 text-xs font-semibold py-2 px-1 text-center" data-tab="branches" role="tab" aria-controls="tab-branches" aria-selected="false" tabindex="-1" title="Conversation branches (B2)" aria-label="Conversation branches (B2)">🌿 Branches</button>
|
|
Binary file
|
|
Binary file
|
|
@@ -263,6 +263,7 @@
|
|
|
263
263
|
/* ── Sidebar tabs ──────────────────────────────────── */
|
|
264
264
|
.sidebar-tab {
|
|
265
265
|
cursor: pointer;
|
|
266
|
+
white-space: nowrap; /* 图标与文字不拆行;放不下时整个标签换到下一行(标签栏 flex-wrap) */
|
|
266
267
|
opacity: 0.5;
|
|
267
268
|
transition: all 0.15s;
|
|
268
269
|
border-bottom: 2px solid transparent;
|
|
Binary file
|
|
Binary file
|