jinzd-ai-cli 0.4.40 → 0.4.42
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/{chunk-Y4B6HE6J.js → chunk-LU7HXPO6.js} +5 -14
- package/dist/{chunk-KPHYJOJT.js → chunk-SJVTPIZR.js} +18 -18
- package/dist/{chunk-CYBC7PWO.js → chunk-WTYDYRPD.js} +2 -2
- package/dist/{chunk-RVJMWZEJ.js → chunk-ZE36SAKZ.js} +2 -2
- package/dist/{hub-YFHYOGDB.js → hub-GVQRTUUZ.js} +6 -8
- package/dist/index.js +12 -13
- package/dist/{run-tests-AXMJPIO7.js → run-tests-6SHMCMGJ.js} +1 -1
- package/dist/{run-tests-5CFPPABG.js → run-tests-ARFAMDVH.js} +1 -1
- package/dist/{server-QJSBW5NP.js → server-5Z5TLTUF.js} +9 -10
- package/dist/{task-orchestrator-7B3UBHMI.js → task-orchestrator-O5242DVR.js} +4 -8
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
ProviderNotFoundError,
|
|
8
8
|
RateLimitError,
|
|
9
9
|
schemaToJsonSchema
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-SJVTPIZR.js";
|
|
11
11
|
import {
|
|
12
12
|
APP_NAME,
|
|
13
13
|
CONFIG_DIR_NAME,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
MCP_TOOL_PREFIX,
|
|
21
21
|
PLUGINS_DIR_NAME,
|
|
22
22
|
VERSION
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ZE36SAKZ.js";
|
|
24
24
|
|
|
25
25
|
// src/config/config-manager.ts
|
|
26
26
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
@@ -1073,7 +1073,7 @@ var OpenAICompatibleProvider = class extends BaseProvider {
|
|
|
1073
1073
|
let thinkingStarted = false;
|
|
1074
1074
|
for await (const chunk of stream) {
|
|
1075
1075
|
const choice = chunk.choices[0];
|
|
1076
|
-
const done = choice?.finish_reason != null
|
|
1076
|
+
const done = choice?.finish_reason != null;
|
|
1077
1077
|
if (!choice && chunk.usage) {
|
|
1078
1078
|
yield {
|
|
1079
1079
|
delta: "",
|
|
@@ -2104,10 +2104,6 @@ var OllamaProvider = class extends OpenAICompatibleProvider {
|
|
|
2104
2104
|
// 本地推理可能较慢,默认 2 分钟
|
|
2105
2105
|
/** 动态模型列表 */
|
|
2106
2106
|
dynamicModels = [];
|
|
2107
|
-
/** 是否已成功连接过 Ollama */
|
|
2108
|
-
connected = false;
|
|
2109
|
-
/** base URL(不含 /v1),用于错误提示 */
|
|
2110
|
-
ollamaHost = "http://127.0.0.1:11434";
|
|
2111
2107
|
info = {
|
|
2112
2108
|
id: "ollama",
|
|
2113
2109
|
displayName: "Ollama (Local)",
|
|
@@ -2119,7 +2115,6 @@ var OllamaProvider = class extends OpenAICompatibleProvider {
|
|
|
2119
2115
|
};
|
|
2120
2116
|
async initialize(apiKey, options) {
|
|
2121
2117
|
const baseUrl = options?.baseUrl ?? this.defaultBaseUrl;
|
|
2122
|
-
this.ollamaHost = baseUrl.replace(/\/v1\/?$/, "");
|
|
2123
2118
|
await super.initialize(apiKey || "ollama", { ...options, baseUrl });
|
|
2124
2119
|
await this.tryConnect();
|
|
2125
2120
|
}
|
|
@@ -2132,7 +2127,6 @@ var OllamaProvider = class extends OpenAICompatibleProvider {
|
|
|
2132
2127
|
const response = await this.client.models.list();
|
|
2133
2128
|
const modelIds = response.data.map((m) => m.id);
|
|
2134
2129
|
if (modelIds.length === 0) {
|
|
2135
|
-
this.connected = false;
|
|
2136
2130
|
return false;
|
|
2137
2131
|
}
|
|
2138
2132
|
this.dynamicModels = modelIds.map((id) => ({
|
|
@@ -2150,12 +2144,10 @@ var OllamaProvider = class extends OpenAICompatibleProvider {
|
|
|
2150
2144
|
defaultModel,
|
|
2151
2145
|
models: this.dynamicModels
|
|
2152
2146
|
});
|
|
2153
|
-
this.connected = true;
|
|
2154
2147
|
return true;
|
|
2155
2148
|
} catch (err) {
|
|
2156
2149
|
process.stderr.write(`[ollama] connect failed: ${err instanceof Error ? err.message : String(err)}
|
|
2157
2150
|
`);
|
|
2158
|
-
this.connected = false;
|
|
2159
2151
|
return false;
|
|
2160
2152
|
}
|
|
2161
2153
|
}
|
|
@@ -2510,12 +2502,11 @@ function extractJsonField(header, field) {
|
|
|
2510
2502
|
return m ? m[1] : void 0;
|
|
2511
2503
|
}
|
|
2512
2504
|
var SessionManager = class {
|
|
2505
|
+
_current = null;
|
|
2506
|
+
historyDir;
|
|
2513
2507
|
constructor(config) {
|
|
2514
|
-
this.config = config;
|
|
2515
2508
|
this.historyDir = config.getHistoryDir();
|
|
2516
2509
|
}
|
|
2517
|
-
_current = null;
|
|
2518
|
-
historyDir;
|
|
2519
2510
|
get current() {
|
|
2520
2511
|
return this._current;
|
|
2521
2512
|
}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
SUBAGENT_DEFAULT_MAX_ROUNDS,
|
|
10
10
|
SUBAGENT_MAX_ROUNDS_LIMIT,
|
|
11
11
|
runTestsTool
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ZE36SAKZ.js";
|
|
13
13
|
|
|
14
14
|
// src/tools/builtin/bash.ts
|
|
15
15
|
import { execSync } from "child_process";
|
|
@@ -1382,7 +1382,7 @@ var ToolExecutor = class {
|
|
|
1382
1382
|
rl.resume();
|
|
1383
1383
|
process.stdout.write(prompt);
|
|
1384
1384
|
this.confirming = true;
|
|
1385
|
-
return new Promise((
|
|
1385
|
+
return new Promise((resolve4) => {
|
|
1386
1386
|
let completed = false;
|
|
1387
1387
|
const cleanup = (result) => {
|
|
1388
1388
|
if (completed) return;
|
|
@@ -1392,7 +1392,7 @@ var ToolExecutor = class {
|
|
|
1392
1392
|
rl.pause();
|
|
1393
1393
|
rlAny.output = savedOutput;
|
|
1394
1394
|
this.confirming = false;
|
|
1395
|
-
|
|
1395
|
+
resolve4(result);
|
|
1396
1396
|
};
|
|
1397
1397
|
const onLine = (line) => {
|
|
1398
1398
|
const trimmed = line.trim();
|
|
@@ -1562,7 +1562,7 @@ var ToolExecutor = class {
|
|
|
1562
1562
|
rl.resume();
|
|
1563
1563
|
process.stdout.write(color("Proceed? [y/N] (type y + Enter to confirm) "));
|
|
1564
1564
|
this.confirming = true;
|
|
1565
|
-
return new Promise((
|
|
1565
|
+
return new Promise((resolve4) => {
|
|
1566
1566
|
let completed = false;
|
|
1567
1567
|
const cleanup = (answer) => {
|
|
1568
1568
|
if (completed) return;
|
|
@@ -1572,7 +1572,7 @@ var ToolExecutor = class {
|
|
|
1572
1572
|
rl.pause();
|
|
1573
1573
|
rlAny.output = savedOutput;
|
|
1574
1574
|
this.confirming = false;
|
|
1575
|
-
|
|
1575
|
+
resolve4(answer === "y");
|
|
1576
1576
|
};
|
|
1577
1577
|
const onLine = (line) => {
|
|
1578
1578
|
const trimmed = line.trim();
|
|
@@ -2386,13 +2386,13 @@ var runInteractiveTool = {
|
|
|
2386
2386
|
args: {
|
|
2387
2387
|
type: "array",
|
|
2388
2388
|
description: 'Arguments array for the executable, e.g. ["workspace/guess.py"] or ["-c", "print(1)"]',
|
|
2389
|
-
items: { type: "string" },
|
|
2389
|
+
items: { type: "string", description: "A single argument string" },
|
|
2390
2390
|
required: true
|
|
2391
2391
|
},
|
|
2392
2392
|
stdin_lines: {
|
|
2393
2393
|
type: "array",
|
|
2394
2394
|
description: `Input lines to feed to the program's stdin in order. E.g. for a guessing game: ["50", "25", "37"]. Each line gets a newline appended automatically.`,
|
|
2395
|
-
items: { type: "string" },
|
|
2395
|
+
items: { type: "string", description: "A single stdin input line" },
|
|
2396
2396
|
required: true
|
|
2397
2397
|
},
|
|
2398
2398
|
timeout: {
|
|
@@ -2433,7 +2433,7 @@ var runInteractiveTool = {
|
|
|
2433
2433
|
PYTHONDONTWRITEBYTECODE: "1"
|
|
2434
2434
|
};
|
|
2435
2435
|
const prefixWarnings = [argsTypeWarning, stdinTypeWarning].filter(Boolean).join("");
|
|
2436
|
-
return new Promise((
|
|
2436
|
+
return new Promise((resolve4) => {
|
|
2437
2437
|
const child = spawn(executable, cmdArgs.map(String), {
|
|
2438
2438
|
cwd: process.cwd(),
|
|
2439
2439
|
env,
|
|
@@ -2466,22 +2466,22 @@ var runInteractiveTool = {
|
|
|
2466
2466
|
setTimeout(writeNextLine, 400);
|
|
2467
2467
|
const timer = setTimeout(() => {
|
|
2468
2468
|
child.kill();
|
|
2469
|
-
|
|
2469
|
+
resolve4(`${prefixWarnings}[Timeout after ${timeout}ms]
|
|
2470
2470
|
${buildOutput(stdout, stderr)}`);
|
|
2471
2471
|
}, timeout);
|
|
2472
2472
|
child.on("close", (code) => {
|
|
2473
2473
|
clearTimeout(timer);
|
|
2474
2474
|
const output = buildOutput(stdout, stderr);
|
|
2475
2475
|
if (code !== 0 && code !== null) {
|
|
2476
|
-
|
|
2476
|
+
resolve4(`${prefixWarnings}Exit code ${code}:
|
|
2477
2477
|
${output}`);
|
|
2478
2478
|
} else {
|
|
2479
|
-
|
|
2479
|
+
resolve4(`${prefixWarnings}${output || "(no output)"}`);
|
|
2480
2480
|
}
|
|
2481
2481
|
});
|
|
2482
2482
|
child.on("error", (err) => {
|
|
2483
2483
|
clearTimeout(timer);
|
|
2484
|
-
|
|
2484
|
+
resolve4(
|
|
2485
2485
|
`${prefixWarnings}Failed to start process "${executable}": ${err.message}
|
|
2486
2486
|
Hint: On Windows, use the full path to the executable, e.g.:
|
|
2487
2487
|
C:\\Users\\Jinzd\\anaconda3\\envs\\python312\\python.exe`
|
|
@@ -2826,7 +2826,7 @@ function promptUser(rl, question) {
|
|
|
2826
2826
|
console.log();
|
|
2827
2827
|
console.log(chalk4.cyan("\u2753 ") + chalk4.bold(question));
|
|
2828
2828
|
process.stdout.write(chalk4.cyan("> "));
|
|
2829
|
-
return new Promise((
|
|
2829
|
+
return new Promise((resolve4) => {
|
|
2830
2830
|
let completed = false;
|
|
2831
2831
|
const cleanup = (answer) => {
|
|
2832
2832
|
if (completed) return;
|
|
@@ -2836,7 +2836,7 @@ function promptUser(rl, question) {
|
|
|
2836
2836
|
rl.pause();
|
|
2837
2837
|
rlAny.output = savedOutput;
|
|
2838
2838
|
askUserContext.prompting = false;
|
|
2839
|
-
|
|
2839
|
+
resolve4(answer);
|
|
2840
2840
|
};
|
|
2841
2841
|
const onLine = (line) => {
|
|
2842
2842
|
cleanup(line);
|
|
@@ -3087,7 +3087,7 @@ function resolveConfig() {
|
|
|
3087
3087
|
}
|
|
3088
3088
|
return { apiKey, cx };
|
|
3089
3089
|
}
|
|
3090
|
-
function formatResults(query, data,
|
|
3090
|
+
function formatResults(query, data, _requested) {
|
|
3091
3091
|
const items = data.items ?? [];
|
|
3092
3092
|
if (items.length === 0) {
|
|
3093
3093
|
const info2 = data.searchInformation;
|
|
@@ -3875,7 +3875,7 @@ ${commitOutput.trim()}`;
|
|
|
3875
3875
|
// src/tools/builtin/notebook-edit.ts
|
|
3876
3876
|
import { readFileSync as readFileSync6, existsSync as existsSync11 } from "fs";
|
|
3877
3877
|
import { writeFile } from "fs/promises";
|
|
3878
|
-
import { resolve as
|
|
3878
|
+
import { resolve as resolve3, extname as extname2 } from "path";
|
|
3879
3879
|
var notebookEditTool = {
|
|
3880
3880
|
definition: {
|
|
3881
3881
|
name: "notebook_edit",
|
|
@@ -3924,8 +3924,8 @@ var notebookEditTool = {
|
|
|
3924
3924
|
if (!Number.isInteger(cellIndexRaw) || cellIndexRaw < 1) {
|
|
3925
3925
|
throw new ToolError("notebook_edit", "cell_index must be a positive integer (1-based)");
|
|
3926
3926
|
}
|
|
3927
|
-
const absPath =
|
|
3928
|
-
if (
|
|
3927
|
+
const absPath = resolve3(filePath);
|
|
3928
|
+
if (extname2(absPath).toLowerCase() !== ".ipynb") {
|
|
3929
3929
|
throw new ToolError("notebook_edit", "path must point to a .ipynb file");
|
|
3930
3930
|
}
|
|
3931
3931
|
if (!existsSync11(absPath)) {
|
|
@@ -6,7 +6,7 @@ import { platform } from "os";
|
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
|
|
8
8
|
// src/core/constants.ts
|
|
9
|
-
var VERSION = "0.4.
|
|
9
|
+
var VERSION = "0.4.42";
|
|
10
10
|
var APP_NAME = "ai-cli";
|
|
11
11
|
var CONFIG_DIR_NAME = ".aicli";
|
|
12
12
|
var CONFIG_FILE_NAME = "config.json";
|
|
@@ -302,7 +302,7 @@ function parseGenericOutput(output) {
|
|
|
302
302
|
}
|
|
303
303
|
return null;
|
|
304
304
|
}
|
|
305
|
-
function formatReport(summary, framework, output,
|
|
305
|
+
function formatReport(summary, framework, output, _exitCode) {
|
|
306
306
|
const status = summary.failures + summary.errors > 0 ? "FAILED \u2717" : "PASSED \u2713";
|
|
307
307
|
const lines = [];
|
|
308
308
|
lines.push(`## Test Results \u2014 ${status}`);
|
|
@@ -8,7 +8,7 @@ import { platform } from "os";
|
|
|
8
8
|
import chalk from "chalk";
|
|
9
9
|
|
|
10
10
|
// src/core/constants.ts
|
|
11
|
-
var VERSION = "0.4.
|
|
11
|
+
var VERSION = "0.4.42";
|
|
12
12
|
var APP_NAME = "ai-cli";
|
|
13
13
|
var CONFIG_DIR_NAME = ".aicli";
|
|
14
14
|
var CONFIG_FILE_NAME = "config.json";
|
|
@@ -306,7 +306,7 @@ function parseGenericOutput(output) {
|
|
|
306
306
|
}
|
|
307
307
|
return null;
|
|
308
308
|
}
|
|
309
|
-
function formatReport(summary, framework, output,
|
|
309
|
+
function formatReport(summary, framework, output, _exitCode) {
|
|
310
310
|
const status = summary.failures + summary.errors > 0 ? "FAILED \u2717" : "PASSED \u2713";
|
|
311
311
|
const lines = [];
|
|
312
312
|
lines.push(`## Test Results \u2014 ${status}`);
|
|
@@ -8,9 +8,12 @@ import {
|
|
|
8
8
|
|
|
9
9
|
// src/hub/discuss.ts
|
|
10
10
|
var DiscussionOrchestrator = class {
|
|
11
|
+
agents = [];
|
|
12
|
+
state;
|
|
13
|
+
aborted = false;
|
|
14
|
+
/** Callback for rendering events */
|
|
15
|
+
onEvent;
|
|
11
16
|
constructor(config, providers) {
|
|
12
|
-
this.config = config;
|
|
13
|
-
this.providers = providers;
|
|
14
17
|
this.agents = config.roles.map(
|
|
15
18
|
(role) => new HubAgent(role, providers, config.defaultProvider, config.defaultModel, config.context)
|
|
16
19
|
);
|
|
@@ -22,11 +25,6 @@ var DiscussionOrchestrator = class {
|
|
|
22
25
|
finished: false
|
|
23
26
|
};
|
|
24
27
|
}
|
|
25
|
-
agents = [];
|
|
26
|
-
state;
|
|
27
|
-
aborted = false;
|
|
28
|
-
/** Callback for rendering events */
|
|
29
|
-
onEvent;
|
|
30
28
|
/** Get all agents */
|
|
31
29
|
getAgents() {
|
|
32
30
|
return this.agents;
|
|
@@ -387,7 +385,7 @@ ${content}`);
|
|
|
387
385
|
}
|
|
388
386
|
}
|
|
389
387
|
async function runTaskMode(config, providers, configManager, topic) {
|
|
390
|
-
const { TaskOrchestrator } = await import("./task-orchestrator-
|
|
388
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-O5242DVR.js");
|
|
391
389
|
const orchestrator = new TaskOrchestrator(config, providers, configManager);
|
|
392
390
|
let interrupted = false;
|
|
393
391
|
const onSigint = () => {
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
saveDevState,
|
|
25
25
|
sessionHasMeaningfulContent,
|
|
26
26
|
setupProxy
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-LU7HXPO6.js";
|
|
28
28
|
import {
|
|
29
29
|
ToolExecutor,
|
|
30
30
|
ToolRegistry,
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
spawnAgentContext,
|
|
38
38
|
theme,
|
|
39
39
|
undoStack
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-SJVTPIZR.js";
|
|
41
41
|
import {
|
|
42
42
|
fileCheckpoints
|
|
43
43
|
} from "./chunk-4BKXL7SM.js";
|
|
@@ -61,7 +61,7 @@ import {
|
|
|
61
61
|
SKILLS_DIR_NAME,
|
|
62
62
|
VERSION,
|
|
63
63
|
buildUserIdentityPrompt
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-ZE36SAKZ.js";
|
|
65
65
|
|
|
66
66
|
// src/index.ts
|
|
67
67
|
import { program } from "commander";
|
|
@@ -2022,7 +2022,7 @@ ${hint}` : "")
|
|
|
2022
2022
|
const sub = args[0];
|
|
2023
2023
|
if (sub === "list" || !sub) {
|
|
2024
2024
|
const msgs = session.messages;
|
|
2025
|
-
console.log(theme.
|
|
2025
|
+
console.log(theme.heading(`
|
|
2026
2026
|
Conversation messages (${msgs.length} total):
|
|
2027
2027
|
`));
|
|
2028
2028
|
for (let i = 0; i < msgs.length; i++) {
|
|
@@ -2099,7 +2099,7 @@ ${hint}` : "")
|
|
|
2099
2099
|
usage: "/test [command|filter]",
|
|
2100
2100
|
async execute(args, ctx) {
|
|
2101
2101
|
try {
|
|
2102
|
-
const { executeTests } = await import("./run-tests-
|
|
2102
|
+
const { executeTests } = await import("./run-tests-6SHMCMGJ.js");
|
|
2103
2103
|
const argStr = args.join(" ").trim();
|
|
2104
2104
|
let testArgs = {};
|
|
2105
2105
|
if (argStr) {
|
|
@@ -5018,8 +5018,6 @@ You have a maximum of ${MAX_TOOL_ROUNDS} tool call rounds for this task. Plan ef
|
|
|
5018
5018
|
for (const rfc of readFileCalls) {
|
|
5019
5019
|
const filePath = rfc.arguments?.path;
|
|
5020
5020
|
if (filePath) {
|
|
5021
|
-
const key = `read_file:${filePath}`;
|
|
5022
|
-
const prevCount = roundToolHistory.flat().length > 0 ? roundToolHistory.filter((rh) => rh.tools.includes("read_file")).length : 0;
|
|
5023
5021
|
const fileReadCount = extraMessages.filter((msg) => {
|
|
5024
5022
|
const m = msg;
|
|
5025
5023
|
if (m.role !== "assistant") return false;
|
|
@@ -5115,10 +5113,11 @@ You have a maximum of ${MAX_TOOL_ROUNDS} tool call rounds for this task. Plan ef
|
|
|
5115
5113
|
process.stdout.write(theme.dim(" (Press ") + theme.info("n") + theme.dim(" or ") + theme.info("Esc") + theme.dim(" to stop)\n"));
|
|
5116
5114
|
this.teardownInterjectionListener();
|
|
5117
5115
|
const pauseResponse = await new Promise((resolve3) => {
|
|
5118
|
-
const
|
|
5119
|
-
|
|
5116
|
+
const rlWithOutput = this.rl;
|
|
5117
|
+
const savedOutput = rlWithOutput.output;
|
|
5118
|
+
rlWithOutput.output = process.stdout;
|
|
5120
5119
|
this.rl.question(theme.warning(" \u25B8 "), (answer) => {
|
|
5121
|
-
|
|
5120
|
+
rlWithOutput.output = savedOutput;
|
|
5122
5121
|
resolve3(answer.trim());
|
|
5123
5122
|
});
|
|
5124
5123
|
});
|
|
@@ -5470,7 +5469,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
5470
5469
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
5471
5470
|
process.exit(1);
|
|
5472
5471
|
}
|
|
5473
|
-
const { startWebServer } = await import("./server-
|
|
5472
|
+
const { startWebServer } = await import("./server-5Z5TLTUF.js");
|
|
5474
5473
|
await startWebServer({ port, host: options.host });
|
|
5475
5474
|
});
|
|
5476
5475
|
program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | migrate <name>)").action(async (action, username) => {
|
|
@@ -5703,7 +5702,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
5703
5702
|
}),
|
|
5704
5703
|
config.get("customProviders")
|
|
5705
5704
|
);
|
|
5706
|
-
const { startHub } = await import("./hub-
|
|
5705
|
+
const { startHub } = await import("./hub-GVQRTUUZ.js");
|
|
5707
5706
|
await startHub(
|
|
5708
5707
|
{
|
|
5709
5708
|
topic: topic ?? "",
|
|
@@ -5714,7 +5713,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
5714
5713
|
mode: options.task === true ? "task" : void 0,
|
|
5715
5714
|
maxRounds: options.maxRounds ? parseInt(options.maxRounds, 10) : void 0,
|
|
5716
5715
|
listPresets: options.presets === true,
|
|
5717
|
-
contextFiles: options.context
|
|
5716
|
+
contextFiles: Array.isArray(options.context) && options.context.length > 0 ? options.context : void 0,
|
|
5718
5717
|
distributed: options.distributed === true,
|
|
5719
5718
|
taskRounds: options.taskRounds ? parseInt(options.taskRounds, 10) : void 0,
|
|
5720
5719
|
port: options.port ? parseInt(options.port, 10) : void 0
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
hadPreviousWriteToolCalls,
|
|
16
16
|
loadDevState,
|
|
17
17
|
setupProxy
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LU7HXPO6.js";
|
|
19
19
|
import {
|
|
20
20
|
AuthManager
|
|
21
21
|
} from "./chunk-BYNY5JPB.js";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
spawnAgentContext,
|
|
34
34
|
truncateOutput,
|
|
35
35
|
undoStack
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-SJVTPIZR.js";
|
|
37
37
|
import "./chunk-4BKXL7SM.js";
|
|
38
38
|
import {
|
|
39
39
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
SKILLS_DIR_NAME,
|
|
53
53
|
VERSION,
|
|
54
54
|
buildUserIdentityPrompt
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-ZE36SAKZ.js";
|
|
56
56
|
|
|
57
57
|
// src/web/server.ts
|
|
58
58
|
import express from "express";
|
|
@@ -180,7 +180,7 @@ var ToolExecutorWeb = class _ToolExecutorWeb {
|
|
|
180
180
|
if (filePath && existsSync(filePath)) {
|
|
181
181
|
try {
|
|
182
182
|
const old = readFileSync(filePath, "utf-8");
|
|
183
|
-
return renderDiff(old, newContent, filePath);
|
|
183
|
+
return renderDiff(old, newContent, { filePath });
|
|
184
184
|
} catch {
|
|
185
185
|
}
|
|
186
186
|
}
|
|
@@ -192,7 +192,7 @@ var ToolExecutorWeb = class _ToolExecutorWeb {
|
|
|
192
192
|
const oldStr = String(call.arguments["old_str"] ?? "");
|
|
193
193
|
const newStr = String(call.arguments["new_str"] ?? "");
|
|
194
194
|
if (oldStr || newStr) {
|
|
195
|
-
return renderDiff(oldStr, newStr, String(call.arguments["path"] ?? "file"));
|
|
195
|
+
return renderDiff(oldStr, newStr, { filePath: String(call.arguments["path"] ?? "file") });
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
return void 0;
|
|
@@ -535,7 +535,7 @@ var SessionHandler = class _SessionHandler {
|
|
|
535
535
|
const providerList = this.providers.listAvailable().map((p) => ({
|
|
536
536
|
id: p.info.id,
|
|
537
537
|
displayName: p.info.displayName,
|
|
538
|
-
models: p.info.models.map((m) => ({ id: m.id, name: m.
|
|
538
|
+
models: p.info.models.map((m) => ({ id: m.id, name: m.displayName ?? m.id }))
|
|
539
539
|
}));
|
|
540
540
|
this.send({
|
|
541
541
|
type: "status",
|
|
@@ -1606,7 +1606,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
|
|
|
1606
1606
|
case "test": {
|
|
1607
1607
|
this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
1608
1608
|
try {
|
|
1609
|
-
const { executeTests } = await import("./run-tests-
|
|
1609
|
+
const { executeTests } = await import("./run-tests-6SHMCMGJ.js");
|
|
1610
1610
|
const argStr = args.join(" ").trim();
|
|
1611
1611
|
let testArgs = {};
|
|
1612
1612
|
if (argStr) {
|
|
@@ -1808,7 +1808,6 @@ ${this.config.toFormattedJSON()}
|
|
|
1808
1808
|
}
|
|
1809
1809
|
const sub = args[0];
|
|
1810
1810
|
if (sub === "reconnect") {
|
|
1811
|
-
const targetId = args[1];
|
|
1812
1811
|
this.send({ type: "info", message: "\u{1F504} Reconnecting MCP servers..." });
|
|
1813
1812
|
try {
|
|
1814
1813
|
await this.mcpManager.reconnectAll();
|
|
@@ -1915,7 +1914,7 @@ Add .md files to create commands.` });
|
|
|
1915
1914
|
lines.push("Add .js files to the plugins directory and set allowPlugins:true in config.");
|
|
1916
1915
|
} else {
|
|
1917
1916
|
for (const t of pluginTools) {
|
|
1918
|
-
lines.push(` \u2022 ${t.name} \u2014 ${t.description}`);
|
|
1917
|
+
lines.push(` \u2022 ${t.definition.name} \u2014 ${t.definition.description}`);
|
|
1919
1918
|
}
|
|
1920
1919
|
}
|
|
1921
1920
|
this.send({ type: "info", message: lines.join("\n") });
|
|
@@ -2578,7 +2577,7 @@ async function startWebServer(options = {}) {
|
|
|
2578
2577
|
providers: availableProviders.map((p) => ({
|
|
2579
2578
|
id: p.info.id,
|
|
2580
2579
|
displayName: p.info.displayName,
|
|
2581
|
-
models: p.info.models.map((m) => ({ id: m.id, name: m.
|
|
2580
|
+
models: p.info.models.map((m) => ({ id: m.id, name: m.displayName ?? m.id }))
|
|
2582
2581
|
})),
|
|
2583
2582
|
tools: toolRegistry.getDefinitions().length,
|
|
2584
2583
|
cwd: process.cwd(),
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
getDangerLevel,
|
|
5
5
|
googleSearchContext,
|
|
6
6
|
truncateOutput
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SJVTPIZR.js";
|
|
8
8
|
import "./chunk-4BKXL7SM.js";
|
|
9
9
|
import {
|
|
10
10
|
SUBAGENT_ALLOWED_TOOLS
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZE36SAKZ.js";
|
|
12
12
|
|
|
13
13
|
// src/hub/task-orchestrator.ts
|
|
14
14
|
import { createInterface } from "readline";
|
|
@@ -157,11 +157,8 @@ var TaskToolExecutor = class {
|
|
|
157
157
|
this.onToolCall = onToolCall;
|
|
158
158
|
this.onToolResult = onToolResult;
|
|
159
159
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
setRoundInfo(current, total) {
|
|
163
|
-
this.round = current;
|
|
164
|
-
this.totalRounds = total;
|
|
160
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
161
|
+
setRoundInfo(_current, _total) {
|
|
165
162
|
}
|
|
166
163
|
async execute(call) {
|
|
167
164
|
const tool = this.registry.get(call.name);
|
|
@@ -360,7 +357,6 @@ Example:
|
|
|
360
357
|
if (!Array.isArray(parsed) || parsed.length === 0) {
|
|
361
358
|
throw new Error("Empty task list");
|
|
362
359
|
}
|
|
363
|
-
const validRoleIds = new Set(roles.map((r) => r.id));
|
|
364
360
|
for (let i = 0; i < parsed.length; i++) {
|
|
365
361
|
const t = parsed[i];
|
|
366
362
|
if (typeof t !== "object" || t === null) {
|