jinzd-ai-cli 0.4.262 → 0.4.263
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/README.md +19 -14
- package/README.zh-CN.md +21 -16
- package/THIRD_PARTY_NOTICES.md +88 -0
- package/dist/{batch-2B7UUX27.js → batch-AN47AYCZ.js} +2 -2
- package/dist/{chunk-XZNRZGG2.js → chunk-3OBY7WSS.js} +1 -0
- package/dist/{chunk-ZQZEBPAQ.js → chunk-3RHY2HF7.js} +1 -1
- package/dist/{chunk-JFXKQPKY.js → chunk-5K2LFD7D.js} +1 -1
- package/dist/{chunk-BS44XEZ4.js → chunk-7YCA2BD3.js} +1 -1
- package/dist/{chunk-FWBSGBB7.js → chunk-B27MLWFJ.js} +4 -4
- package/dist/{chunk-D6DHS5GL.js → chunk-GKI7B4BD.js} +7 -6
- package/dist/{chunk-2XPJRRBB.js → chunk-GMZTY7DA.js} +4 -4
- package/dist/{chunk-WAAFA32V.js → chunk-MJICIIBW.js} +1 -1
- package/dist/{chunk-A6JLBNAI.js → chunk-MTZ6XHJD.js} +2 -2
- package/dist/{chunk-DQY2DDGS.js → chunk-QG4NG7KJ.js} +1 -1
- package/dist/{chunk-JEJHNVA2.js → chunk-QMB7QYZC.js} +1 -1
- package/dist/{chunk-25HFWCM3.js → chunk-TL5MD5XU.js} +31 -19
- package/dist/{chunk-KWYJFLXY.js → chunk-VKBGOFEO.js} +1 -1
- package/dist/{chunk-KMS3LBO3.js → chunk-VUZAKIZ5.js} +1 -1
- package/dist/{chunk-MTIS7H6V.js → chunk-WM4VTGAF.js} +3 -1
- package/dist/{chunk-HPDI4F5F.js → chunk-XST4N2JM.js} +1 -1
- package/dist/{chunk-EZ6QLHOS.js → chunk-YRD6M5XI.js} +30 -5
- package/dist/{ci-G6OZDH4H.js → ci-JTO7LN5S.js} +6 -6
- package/dist/{ci-format-BRS7G5X5.js → ci-format-2VGHOLBA.js} +2 -2
- package/dist/{constants-24AD5JQV.js → constants-HLSJL5HQ.js} +1 -1
- package/dist/{doctor-cli-WWZRFGQJ.js → doctor-cli-JML4FGH4.js} +6 -6
- package/dist/electron-server.js +94 -34
- package/dist/{hub-2DYZQVEN.js → hub-6EYFGJRT.js} +1 -1
- package/dist/index.js +103 -56
- package/dist/{persistent-memory-DFSZZSYP.js → persistent-memory-ANIMO5CF.js} +2 -2
- package/dist/{persistent-memory-LJT37XVO.js → persistent-memory-MPBPSZDN.js} +2 -2
- package/dist/{pr-OOIQPCBX.js → pr-XE7NGT6U.js} +6 -6
- package/dist/{run-tests-ICTVJSJN.js → run-tests-ME5KED57.js} +2 -2
- package/dist/{run-tests-W4TG4OQV.js → run-tests-TF7UPUWW.js} +2 -2
- package/dist/{server-GTVYIHBG.js → server-BIYJEJK3.js} +6 -6
- package/dist/{server-IXUVVPTV.js → server-VKA4FR2Z.js} +37 -18
- package/dist/{task-orchestrator-6MHSDOFR.js → task-orchestrator-2RAKLFWN.js} +6 -6
- package/dist/{usage-23I3ZJZO.js → usage-5F5Q3GGR.js} +4 -4
- package/dist/web/client/app.js +1 -1
- package/package.json +13 -10
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CostTracker
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QG4NG7KJ.js";
|
|
5
5
|
import {
|
|
6
6
|
McpManager,
|
|
7
7
|
SNAPSHOT_PROMPT,
|
|
@@ -17,12 +17,12 @@ import {
|
|
|
17
17
|
scanProject,
|
|
18
18
|
sessionHasMeaningfulContent,
|
|
19
19
|
setupProxy
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-MTZ6XHJD.js";
|
|
21
21
|
import {
|
|
22
22
|
computeCost,
|
|
23
23
|
formatCost,
|
|
24
24
|
getPricing
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-YRD6M5XI.js";
|
|
26
26
|
import {
|
|
27
27
|
buildReviewPrompt,
|
|
28
28
|
buildSecurityReviewPrompt
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
spawnAgentContext,
|
|
51
51
|
theme,
|
|
52
52
|
undoStack
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-GKI7B4BD.js";
|
|
54
54
|
import {
|
|
55
55
|
addMemoryEntry,
|
|
56
56
|
backupMemoryStore,
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
touchMemoryReferences,
|
|
77
77
|
updateMemoryApproval,
|
|
78
78
|
updateMemoryEntry
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-VUZAKIZ5.js";
|
|
80
80
|
import "./chunk-GLSR2NR3.js";
|
|
81
81
|
import "./chunk-UUSRWSSX.js";
|
|
82
82
|
import "./chunk-CKH4KQ4E.js";
|
|
@@ -90,14 +90,14 @@ import {
|
|
|
90
90
|
formatDoctorReport,
|
|
91
91
|
loadContextFiles,
|
|
92
92
|
writeCrashLog
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-B27MLWFJ.js";
|
|
94
94
|
import {
|
|
95
95
|
ProviderRegistry,
|
|
96
96
|
listBuiltInProviderMetadata
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-TL5MD5XU.js";
|
|
98
98
|
import {
|
|
99
99
|
ConfigManager
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-WM4VTGAF.js";
|
|
101
101
|
import {
|
|
102
102
|
describePlugin,
|
|
103
103
|
getActivePluginAssets,
|
|
@@ -114,7 +114,7 @@ import {
|
|
|
114
114
|
trustHook,
|
|
115
115
|
trustPlugin,
|
|
116
116
|
untrustHook
|
|
117
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-QMB7QYZC.js";
|
|
118
118
|
import {
|
|
119
119
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
120
120
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -134,7 +134,7 @@ import {
|
|
|
134
134
|
stripOuterCodeFence,
|
|
135
135
|
stripToolCallReminder,
|
|
136
136
|
teeStreamErrorSummary
|
|
137
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-3OBY7WSS.js";
|
|
138
138
|
import {
|
|
139
139
|
AuthError,
|
|
140
140
|
ProviderError,
|
|
@@ -148,7 +148,7 @@ import {
|
|
|
148
148
|
import {
|
|
149
149
|
fileCheckpoints
|
|
150
150
|
} from "./chunk-4BKXL7SM.js";
|
|
151
|
-
import "./chunk-
|
|
151
|
+
import "./chunk-XST4N2JM.js";
|
|
152
152
|
import {
|
|
153
153
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
154
154
|
AUTHOR,
|
|
@@ -167,7 +167,7 @@ import {
|
|
|
167
167
|
SKILLS_DIR_NAME,
|
|
168
168
|
VERSION,
|
|
169
169
|
buildUserIdentityPrompt
|
|
170
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-VKBGOFEO.js";
|
|
171
171
|
import {
|
|
172
172
|
buildChatIndex,
|
|
173
173
|
clearChatIndex,
|
|
@@ -1139,21 +1139,28 @@ function createProviderCommands() {
|
|
|
1139
1139
|
{
|
|
1140
1140
|
name: "think",
|
|
1141
1141
|
description: "Toggle Extended Thinking mode (deep reasoning for supported models)",
|
|
1142
|
-
usage: "/think [on|off|status]",
|
|
1142
|
+
usage: "/think [on|off|low|high|max|status]",
|
|
1143
1143
|
execute(args, ctx) {
|
|
1144
1144
|
const sub = args[0]?.toLowerCase() ?? "toggle";
|
|
1145
1145
|
if (sub === "on") {
|
|
1146
1146
|
ctx.setThinkingMode(true);
|
|
1147
1147
|
ctx.renderer.printSuccess("Extended Thinking enabled \u{1F4AD}");
|
|
1148
1148
|
console.log(theme.dim(" AI will now use deep reasoning before answering."));
|
|
1149
|
-
console.log(theme.dim(" Supported:
|
|
1149
|
+
console.log(theme.dim(" Supported: DeepSeek V4, Claude Sonnet/Opus, GLM-5"));
|
|
1150
1150
|
console.log(theme.dim(" Use /think off to disable."));
|
|
1151
1151
|
console.log();
|
|
1152
1152
|
return;
|
|
1153
1153
|
}
|
|
1154
1154
|
if (sub === "off") {
|
|
1155
|
-
ctx.setThinkingMode(
|
|
1156
|
-
ctx.renderer.printSuccess("Extended Thinking disabled
|
|
1155
|
+
ctx.setThinkingMode(false);
|
|
1156
|
+
ctx.renderer.printSuccess("Extended Thinking disabled.");
|
|
1157
|
+
console.log();
|
|
1158
|
+
return;
|
|
1159
|
+
}
|
|
1160
|
+
if (sub === "low" || sub === "high" || sub === "max") {
|
|
1161
|
+
ctx.setThinkingMode(true);
|
|
1162
|
+
ctx.setThinkingEffort(sub);
|
|
1163
|
+
ctx.renderer.printSuccess(`Extended Thinking enabled (effort: ${sub}).`);
|
|
1157
1164
|
console.log();
|
|
1158
1165
|
return;
|
|
1159
1166
|
}
|
|
@@ -1161,13 +1168,14 @@ function createProviderCommands() {
|
|
|
1161
1168
|
const mode = ctx.getThinkingMode();
|
|
1162
1169
|
const label = mode === true ? theme.accent("ON (runtime override)") : mode === false ? theme.dim("OFF (runtime override)") : theme.dim("using config value");
|
|
1163
1170
|
console.log(` Extended Thinking: ${label}`);
|
|
1171
|
+
console.log(` Reasoning effort: ${ctx.getThinkingEffort() ?? "using config/default (high for DeepSeek V4)"}`);
|
|
1164
1172
|
console.log();
|
|
1165
1173
|
return;
|
|
1166
1174
|
}
|
|
1167
1175
|
const current = ctx.getThinkingMode();
|
|
1168
1176
|
if (current === true) {
|
|
1169
|
-
ctx.setThinkingMode(
|
|
1170
|
-
ctx.renderer.printSuccess("Extended Thinking disabled
|
|
1177
|
+
ctx.setThinkingMode(false);
|
|
1178
|
+
ctx.renderer.printSuccess("Extended Thinking disabled.");
|
|
1171
1179
|
} else {
|
|
1172
1180
|
ctx.setThinkingMode(true);
|
|
1173
1181
|
ctx.renderer.printSuccess("Extended Thinking enabled \u{1F4AD}");
|
|
@@ -1399,7 +1407,7 @@ No tools match "${filter}".
|
|
|
1399
1407
|
const { join: join6 } = await import("path");
|
|
1400
1408
|
const { existsSync: existsSync6 } = await import("fs");
|
|
1401
1409
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
|
|
1402
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
1410
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-HLSJL5HQ.js");
|
|
1403
1411
|
const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
|
|
1404
1412
|
const cwd = process.cwd();
|
|
1405
1413
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -2387,7 +2395,7 @@ function createReviewCommands() {
|
|
|
2387
2395
|
usage: "/test [command|filter]",
|
|
2388
2396
|
async execute(args, ctx) {
|
|
2389
2397
|
try {
|
|
2390
|
-
const { executeTests } = await import("./run-tests-
|
|
2398
|
+
const { executeTests } = await import("./run-tests-ME5KED57.js");
|
|
2391
2399
|
const argStr = args.join(" ").trim();
|
|
2392
2400
|
let testArgs = {};
|
|
2393
2401
|
if (argStr) {
|
|
@@ -3943,7 +3951,7 @@ function createMiscCommands() {
|
|
|
3943
3951
|
["/provider <name>", "Switch AI provider"],
|
|
3944
3952
|
["/model [name|refresh|cache]", "Switch model or refresh live model cache"],
|
|
3945
3953
|
["/route [on|off|show|test <msg>]", "Smart model routing rules"],
|
|
3946
|
-
["/think [on|off|status]", "
|
|
3954
|
+
["/think [on|off|low|high|max|status]", "Control Extended Thinking and effort"],
|
|
3947
3955
|
["/plan [execute|exit|status]", "Enter/manage Plan Mode (read-only)"],
|
|
3948
3956
|
["/auto [on|off|status]", "Rule-based low-risk auto approval"],
|
|
3949
3957
|
["/permissions recently-denied|clear-denied", "Inspect permission and Auto Mode decisions"],
|
|
@@ -5301,6 +5309,49 @@ function writeStartupNotice(line, promptShown, redraw) {
|
|
|
5301
5309
|
}
|
|
5302
5310
|
}
|
|
5303
5311
|
|
|
5312
|
+
// src/repl/unicode-backspace.ts
|
|
5313
|
+
function removePreviousGrapheme(line, cursor) {
|
|
5314
|
+
if (cursor <= 0) return { line, cursor };
|
|
5315
|
+
const prefix = line.slice(0, cursor);
|
|
5316
|
+
let start = 0;
|
|
5317
|
+
const segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
|
|
5318
|
+
for (const segment of segmenter.segment(prefix)) start = segment.index;
|
|
5319
|
+
return {
|
|
5320
|
+
line: line.slice(0, start) + line.slice(cursor),
|
|
5321
|
+
cursor: start
|
|
5322
|
+
};
|
|
5323
|
+
}
|
|
5324
|
+
function installUnicodeBackspaceRepair(input2, rl, shouldHandle = () => true) {
|
|
5325
|
+
const editable = rl;
|
|
5326
|
+
let previous = { line: editable.line, cursor: editable.cursor };
|
|
5327
|
+
const onKeypress = (_character, key) => {
|
|
5328
|
+
const current = { line: editable.line, cursor: editable.cursor };
|
|
5329
|
+
if (key?.name === "backspace" && shouldHandle() && previous.cursor > 0 && current.line === previous.line && current.cursor === previous.cursor) {
|
|
5330
|
+
const repaired = removePreviousGrapheme(current.line, current.cursor);
|
|
5331
|
+
editable.line = repaired.line;
|
|
5332
|
+
editable.cursor = repaired.cursor;
|
|
5333
|
+
editable._refreshLine?.();
|
|
5334
|
+
previous = repaired;
|
|
5335
|
+
return;
|
|
5336
|
+
}
|
|
5337
|
+
previous = current;
|
|
5338
|
+
};
|
|
5339
|
+
input2.on("keypress", onKeypress);
|
|
5340
|
+
return () => input2.off("keypress", onKeypress);
|
|
5341
|
+
}
|
|
5342
|
+
|
|
5343
|
+
// src/repl/chat-params.ts
|
|
5344
|
+
function chatParamsFrom(params) {
|
|
5345
|
+
return {
|
|
5346
|
+
temperature: params.temperature,
|
|
5347
|
+
maxTokens: params.maxTokens,
|
|
5348
|
+
timeout: params.timeout,
|
|
5349
|
+
thinking: params.thinking,
|
|
5350
|
+
thinkingEffort: params.thinkingEffort,
|
|
5351
|
+
thinkingBudget: params.thinkingBudget
|
|
5352
|
+
};
|
|
5353
|
+
}
|
|
5354
|
+
|
|
5304
5355
|
// src/core/model-router.ts
|
|
5305
5356
|
var TAG_REGEX = /(?:^|\s)#([a-zA-Z][\w-]{0,31})\b/g;
|
|
5306
5357
|
function extractTags(message) {
|
|
@@ -5651,6 +5702,7 @@ var Repl = class {
|
|
|
5651
5702
|
running = false;
|
|
5652
5703
|
/** 是否已注册 bracketed-paste 的 process.exit 还原钩子(只注册一次) */
|
|
5653
5704
|
bracketedPasteRestoreHooked = false;
|
|
5705
|
+
disposeUnicodeBackspaceRepair = null;
|
|
5654
5706
|
renderer;
|
|
5655
5707
|
commands;
|
|
5656
5708
|
toolRegistry;
|
|
@@ -6108,7 +6160,7 @@ ${ctxLine}` : "")
|
|
|
6108
6160
|
const skillTag = activeSkill ? theme.toolCall(`[${activeSkill.meta.name}]`) : "";
|
|
6109
6161
|
const planTag = this.planMode ? theme.warning("[PLAN]") : "";
|
|
6110
6162
|
const modelParams = this.getModelParams();
|
|
6111
|
-
const thinkTag = modelParams.thinking ? theme.accent(
|
|
6163
|
+
const thinkTag = modelParams.thinking ? theme.accent(`[THINK:${modelParams.thinkingEffort ?? "high"}]`) : "";
|
|
6112
6164
|
const promptStr = theme.success(`[${this.currentProvider}]`) + skillTag + planTag + thinkTag + chalk5.white(" > ");
|
|
6113
6165
|
this.rl.setPrompt(promptStr);
|
|
6114
6166
|
}
|
|
@@ -6403,6 +6455,11 @@ Session '${this.resumeSessionId}' not found.
|
|
|
6403
6455
|
}
|
|
6404
6456
|
}
|
|
6405
6457
|
this.setupClipboardPaste();
|
|
6458
|
+
this.disposeUnicodeBackspaceRepair = installUnicodeBackspaceRepair(
|
|
6459
|
+
process.stdin,
|
|
6460
|
+
this.rl,
|
|
6461
|
+
() => !this.streamAbortController && !this.toolExecutor.confirming && !askUserContext.prompting && !this.selecting
|
|
6462
|
+
);
|
|
6406
6463
|
this.enableBracketedPaste();
|
|
6407
6464
|
this.rl.on("SIGINT", () => {
|
|
6408
6465
|
if (this.streamAbortController) {
|
|
@@ -6647,6 +6704,7 @@ Session '${this.resumeSessionId}' not found.
|
|
|
6647
6704
|
*/
|
|
6648
6705
|
/** 运行时 thinking 模式覆盖:null=使用配置值,true/false=运行时覆盖 */
|
|
6649
6706
|
runtimeThinking = null;
|
|
6707
|
+
runtimeThinkingEffort = null;
|
|
6650
6708
|
getModelParams(modelOverride) {
|
|
6651
6709
|
const allParams = this.config.get("modelParams");
|
|
6652
6710
|
const modelId = modelOverride ?? this.currentModel;
|
|
@@ -6655,6 +6713,7 @@ Session '${this.resumeSessionId}' not found.
|
|
|
6655
6713
|
...params,
|
|
6656
6714
|
maxTokens: params.maxTokens ?? DEFAULT_MAX_TOKENS,
|
|
6657
6715
|
thinking: this.runtimeThinking ?? params.thinking,
|
|
6716
|
+
thinkingEffort: this.runtimeThinkingEffort ?? params.thinkingEffort,
|
|
6658
6717
|
thinkingBudget: params.thinkingBudget
|
|
6659
6718
|
};
|
|
6660
6719
|
}
|
|
@@ -7074,11 +7133,7 @@ Session '${this.resumeSessionId}' not found.
|
|
|
7074
7133
|
systemPrompt: chatStable,
|
|
7075
7134
|
systemPromptVolatile: chatVolatile,
|
|
7076
7135
|
stream: true,
|
|
7077
|
-
|
|
7078
|
-
maxTokens: modelParams.maxTokens,
|
|
7079
|
-
timeout: modelParams.timeout,
|
|
7080
|
-
thinking: modelParams.thinking,
|
|
7081
|
-
thinkingBudget: modelParams.thinkingBudget,
|
|
7136
|
+
...chatParamsFrom(modelParams),
|
|
7082
7137
|
signal: ac.signal
|
|
7083
7138
|
});
|
|
7084
7139
|
const showTokens = this.shouldShowTokens();
|
|
@@ -7109,11 +7164,7 @@ Session '${this.resumeSessionId}' not found.
|
|
|
7109
7164
|
systemPrompt: chatStable,
|
|
7110
7165
|
systemPromptVolatile: chatVolatile,
|
|
7111
7166
|
stream: false,
|
|
7112
|
-
|
|
7113
|
-
maxTokens: modelParams.maxTokens,
|
|
7114
|
-
timeout: modelParams.timeout,
|
|
7115
|
-
thinking: modelParams.thinking,
|
|
7116
|
-
thinkingBudget: modelParams.thinkingBudget
|
|
7167
|
+
...chatParamsFrom(modelParams)
|
|
7117
7168
|
});
|
|
7118
7169
|
spinner.stop();
|
|
7119
7170
|
this.renderer.renderResponse(response.content);
|
|
@@ -7248,11 +7299,7 @@ ${mcpBudgetNote}` : "");
|
|
|
7248
7299
|
systemPrompt,
|
|
7249
7300
|
systemPromptVolatile,
|
|
7250
7301
|
stream: false,
|
|
7251
|
-
|
|
7252
|
-
maxTokens: modelParams.maxTokens,
|
|
7253
|
-
timeout: modelParams.timeout,
|
|
7254
|
-
thinking: modelParams.thinking,
|
|
7255
|
-
thinkingBudget: modelParams.thinkingBudget,
|
|
7302
|
+
...chatParamsFrom(modelParams),
|
|
7256
7303
|
...extraMessages.length > 0 ? { _extraMessages: extraMessages } : {}
|
|
7257
7304
|
};
|
|
7258
7305
|
const fallbackOpts = this.getFallbackOptions(spinner);
|
|
@@ -7320,11 +7367,7 @@ ${mcpBudgetNote}` : "");
|
|
|
7320
7367
|
systemPrompt,
|
|
7321
7368
|
systemPromptVolatile,
|
|
7322
7369
|
stream: false,
|
|
7323
|
-
|
|
7324
|
-
maxTokens: modelParams.maxTokens,
|
|
7325
|
-
timeout: modelParams.timeout,
|
|
7326
|
-
thinking: modelParams.thinking,
|
|
7327
|
-
thinkingBudget: modelParams.thinkingBudget,
|
|
7370
|
+
...chatParamsFrom(modelParams),
|
|
7328
7371
|
signal,
|
|
7329
7372
|
_extraMessages: summaryExtra
|
|
7330
7373
|
},
|
|
@@ -7687,11 +7730,7 @@ Tip: You can continue the conversation by asking the AI to proceed.`
|
|
|
7687
7730
|
systemPrompt: teeSystemPrompt,
|
|
7688
7731
|
systemPromptVolatile,
|
|
7689
7732
|
stream: true,
|
|
7690
|
-
|
|
7691
|
-
maxTokens: modelParams.maxTokens,
|
|
7692
|
-
timeout: modelParams.timeout,
|
|
7693
|
-
thinking: modelParams.thinking,
|
|
7694
|
-
thinkingBudget: modelParams.thinkingBudget,
|
|
7733
|
+
...chatParamsFrom(modelParams),
|
|
7695
7734
|
signal: teeAc.signal,
|
|
7696
7735
|
_extraMessages: teeExtraMessages
|
|
7697
7736
|
});
|
|
@@ -7938,6 +7977,11 @@ Tip: You can continue the conversation by asking the AI to proceed.`
|
|
|
7938
7977
|
this.runtimeThinking = value;
|
|
7939
7978
|
this.refreshPrompt();
|
|
7940
7979
|
},
|
|
7980
|
+
getThinkingEffort: () => this.runtimeThinkingEffort,
|
|
7981
|
+
setThinkingEffort: (value) => {
|
|
7982
|
+
this.runtimeThinkingEffort = value;
|
|
7983
|
+
this.refreshPrompt();
|
|
7984
|
+
},
|
|
7941
7985
|
getMcpManager: () => this.mcpManager,
|
|
7942
7986
|
getMcpServerSource: (serverId) => this.mcpServerSources.get(serverId),
|
|
7943
7987
|
chatOnce: async (prompt, options) => {
|
|
@@ -7950,6 +7994,7 @@ Tip: You can continue the conversation by asking the AI to proceed.`
|
|
|
7950
7994
|
systemPrompt: coStable,
|
|
7951
7995
|
systemPromptVolatile: coVolatile,
|
|
7952
7996
|
stream: false,
|
|
7997
|
+
...chatParamsFrom(modelParams),
|
|
7953
7998
|
temperature: options?.temperature ?? 0.3,
|
|
7954
7999
|
maxTokens: options?.maxTokens ?? modelParams.maxTokens ?? 4096,
|
|
7955
8000
|
timeout: modelParams.timeout ?? 6e4
|
|
@@ -8013,6 +8058,8 @@ Tip: You can continue the conversation by asking the AI to proceed.`
|
|
|
8013
8058
|
`);
|
|
8014
8059
|
});
|
|
8015
8060
|
this.disableBracketedPaste();
|
|
8061
|
+
this.disposeUnicodeBackspaceRepair?.();
|
|
8062
|
+
this.disposeUnicodeBackspaceRepair = null;
|
|
8016
8063
|
this.rl.close();
|
|
8017
8064
|
console.log(theme.dim("\nGoodbye!"));
|
|
8018
8065
|
process.exit(0);
|
|
@@ -8115,7 +8162,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
8115
8162
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
8116
8163
|
process.exit(1);
|
|
8117
8164
|
}
|
|
8118
|
-
const { startWebServer } = await import("./server-
|
|
8165
|
+
const { startWebServer } = await import("./server-VKA4FR2Z.js");
|
|
8119
8166
|
await startWebServer({ port, host: options.host });
|
|
8120
8167
|
});
|
|
8121
8168
|
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) => {
|
|
@@ -8282,11 +8329,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
8282
8329
|
console.log(footer + "\n");
|
|
8283
8330
|
});
|
|
8284
8331
|
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) => {
|
|
8285
|
-
const { runUsageCli } = await import("./usage-
|
|
8332
|
+
const { runUsageCli } = await import("./usage-5F5Q3GGR.js");
|
|
8286
8333
|
await runUsageCli(options);
|
|
8287
8334
|
});
|
|
8288
8335
|
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) => {
|
|
8289
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
8336
|
+
const { runDoctorCli } = await import("./doctor-cli-JML4FGH4.js");
|
|
8290
8337
|
const argv = process.argv.slice(2);
|
|
8291
8338
|
await runDoctorCli({
|
|
8292
8339
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -8295,7 +8342,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
8295
8342
|
});
|
|
8296
8343
|
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) => {
|
|
8297
8344
|
try {
|
|
8298
|
-
const batch = await import("./batch-
|
|
8345
|
+
const batch = await import("./batch-AN47AYCZ.js");
|
|
8299
8346
|
switch (action) {
|
|
8300
8347
|
case "submit":
|
|
8301
8348
|
if (!arg) {
|
|
@@ -8338,7 +8385,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
8338
8385
|
}
|
|
8339
8386
|
});
|
|
8340
8387
|
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) => {
|
|
8341
|
-
const { startMcpServer } = await import("./server-
|
|
8388
|
+
const { startMcpServer } = await import("./server-BIYJEJK3.js");
|
|
8342
8389
|
await startMcpServer({
|
|
8343
8390
|
allowDestructive: !!options.allowDestructive,
|
|
8344
8391
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -8351,7 +8398,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8351
8398
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
8352
8399
|
process.exit(1);
|
|
8353
8400
|
}
|
|
8354
|
-
const { runPrCli } = await import("./pr-
|
|
8401
|
+
const { runPrCli } = await import("./pr-XE7NGT6U.js");
|
|
8355
8402
|
const result = await runPrCli({
|
|
8356
8403
|
action,
|
|
8357
8404
|
target,
|
|
@@ -8371,8 +8418,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8371
8418
|
process.exit(result.exitCode);
|
|
8372
8419
|
});
|
|
8373
8420
|
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) => {
|
|
8374
|
-
const { runCi } = await import("./ci-
|
|
8375
|
-
const { formatCiResult } = await import("./ci-format-
|
|
8421
|
+
const { runCi } = await import("./ci-JTO7LN5S.js");
|
|
8422
|
+
const { formatCiResult } = await import("./ci-format-2VGHOLBA.js");
|
|
8376
8423
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
8377
8424
|
if (formats > 1) {
|
|
8378
8425
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -8530,7 +8577,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
8530
8577
|
config.get("customProviders"),
|
|
8531
8578
|
config.getConfigDir()
|
|
8532
8579
|
);
|
|
8533
|
-
const { startHub } = await import("./hub-
|
|
8580
|
+
const { startHub } = await import("./hub-6EYFGJRT.js");
|
|
8534
8581
|
await startHub(
|
|
8535
8582
|
{
|
|
8536
8583
|
topic: topic ?? "",
|
|
@@ -27,9 +27,9 @@ import {
|
|
|
27
27
|
touchMemoryReferences,
|
|
28
28
|
updateMemoryApproval,
|
|
29
29
|
updateMemoryEntry
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-5K2LFD7D.js";
|
|
31
31
|
import "./chunk-YVTASHS5.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-3RHY2HF7.js";
|
|
33
33
|
import "./chunk-6BUTA5VW.js";
|
|
34
34
|
export {
|
|
35
35
|
addMemoryEntry,
|
|
@@ -28,9 +28,9 @@ import {
|
|
|
28
28
|
touchMemoryReferences,
|
|
29
29
|
updateMemoryApproval,
|
|
30
30
|
updateMemoryEntry
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-VUZAKIZ5.js";
|
|
32
32
|
import "./chunk-HOSJZMQS.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-VKBGOFEO.js";
|
|
34
34
|
import "./chunk-B5TYJO7V.js";
|
|
35
35
|
import "./chunk-IW3Q7AE5.js";
|
|
36
36
|
export {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
countSeverity,
|
|
4
4
|
runCi
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-GMZTY7DA.js";
|
|
6
|
+
import "./chunk-MJICIIBW.js";
|
|
7
7
|
import {
|
|
8
8
|
buildReviewPrompt,
|
|
9
9
|
buildSecurityReviewPrompt,
|
|
@@ -11,15 +11,15 @@ import {
|
|
|
11
11
|
} from "./chunk-HLWUDRBO.js";
|
|
12
12
|
import {
|
|
13
13
|
ProviderRegistry
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TL5MD5XU.js";
|
|
15
15
|
import {
|
|
16
16
|
ConfigManager
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-WM4VTGAF.js";
|
|
18
|
+
import "./chunk-3OBY7WSS.js";
|
|
19
19
|
import "./chunk-TU3L3PW7.js";
|
|
20
20
|
import {
|
|
21
21
|
VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-VKBGOFEO.js";
|
|
23
23
|
import "./chunk-IW3Q7AE5.js";
|
|
24
24
|
|
|
25
25
|
// src/cli/pr.ts
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ToolRegistry
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-GKI7B4BD.js";
|
|
5
|
+
import "./chunk-VUZAKIZ5.js";
|
|
6
6
|
import "./chunk-GLSR2NR3.js";
|
|
7
7
|
import "./chunk-UUSRWSSX.js";
|
|
8
8
|
import "./chunk-CKH4KQ4E.js";
|
|
9
9
|
import "./chunk-BXP6YZ2P.js";
|
|
10
10
|
import {
|
|
11
11
|
runTool
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QMB7QYZC.js";
|
|
13
13
|
import {
|
|
14
14
|
getDangerLevel,
|
|
15
15
|
schemaToJsonSchema
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-3OBY7WSS.js";
|
|
17
17
|
import "./chunk-TU3L3PW7.js";
|
|
18
18
|
import "./chunk-HOSJZMQS.js";
|
|
19
19
|
import "./chunk-4BKXL7SM.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-XST4N2JM.js";
|
|
21
21
|
import {
|
|
22
22
|
VERSION
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-VKBGOFEO.js";
|
|
24
24
|
import "./chunk-6RPGQ5CG.js";
|
|
25
25
|
import "./chunk-KHYD3WXE.js";
|
|
26
26
|
import "./chunk-NYNSYLFY.js";
|