jinzd-ai-cli 0.4.115 → 0.4.116
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-SHNIUSW2.js → batch-GRHEH3JF.js} +2 -2
- package/dist/{chunk-KQZU2VS5.js → chunk-BXDHW7JO.js} +1 -1
- package/dist/{chunk-OHUHYWBR.js → chunk-H3F2E4MD.js} +1 -1
- package/dist/{chunk-UZLNS3QG.js → chunk-KRTQDZMY.js} +1 -1
- package/dist/{chunk-FMPWML3F.js → chunk-QMT4T4PH.js} +2 -2
- package/dist/{chunk-PEMNYHIS.js → chunk-VJE5V4H2.js} +1 -1
- package/dist/{chunk-TJGRPTJS.js → chunk-YTP26DOV.js} +31 -3
- package/dist/{constants-Y6LRE5TI.js → constants-NWATGC4A.js} +1 -1
- package/dist/electron-server.js +31 -3
- package/dist/{hub-E3WMJGYK.js → hub-YNP5HCTT.js} +1 -1
- package/dist/index.js +62 -15
- package/dist/{run-tests-7VYL7OVA.js → run-tests-OKQEMYZK.js} +1 -1
- package/dist/{run-tests-TWE7TJ4T.js → run-tests-QOZZHW4L.js} +2 -2
- package/dist/{server-3P5BYK74.js → server-HI6GVBD3.js} +3 -3
- package/dist/{server-RODHACCH.js → server-IX6L4W2L.js} +6 -6
- package/dist/{task-orchestrator-24IGVXYP.js → task-orchestrator-SCH3JUKT.js} +3 -3
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigManager
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KRTQDZMY.js";
|
|
5
5
|
import "./chunk-2ZD3YTVM.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-H3F2E4MD.js";
|
|
7
7
|
import "./chunk-PDX44BCA.js";
|
|
8
8
|
|
|
9
9
|
// src/cli/batch.ts
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
schemaToJsonSchema,
|
|
4
4
|
truncateForPersist
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YTP26DOV.js";
|
|
6
6
|
import {
|
|
7
7
|
AuthError,
|
|
8
8
|
ProviderError,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
MCP_PROTOCOL_VERSION,
|
|
19
19
|
MCP_TOOL_PREFIX,
|
|
20
20
|
VERSION
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-H3F2E4MD.js";
|
|
22
22
|
import {
|
|
23
23
|
redactJson
|
|
24
24
|
} from "./chunk-7ZJN4KLV.js";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-3BICTI5M.js";
|
|
6
6
|
import {
|
|
7
7
|
runTestsTool
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VJE5V4H2.js";
|
|
9
9
|
import {
|
|
10
10
|
EnvLoader,
|
|
11
11
|
NetworkError,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
SUBAGENT_ALLOWED_TOOLS,
|
|
19
19
|
SUBAGENT_DEFAULT_MAX_ROUNDS,
|
|
20
20
|
SUBAGENT_MAX_ROUNDS_LIMIT
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-H3F2E4MD.js";
|
|
22
22
|
import {
|
|
23
23
|
fileCheckpoints
|
|
24
24
|
} from "./chunk-4BKXL7SM.js";
|
|
@@ -400,12 +400,15 @@ How to recover (pick ONE \u2014 do NOT retry the same command):
|
|
|
400
400
|
const stderr = IS_WINDOWS && Buffer.isBuffer(execErr.stderr) ? execErr.stderr.toString("utf-8").trim() : execErr.stderr?.toString().trim() ?? "";
|
|
401
401
|
const stdout = IS_WINDOWS && Buffer.isBuffer(execErr.stdout) ? execErr.stdout.toString("utf-8").trim() : execErr.stdout?.toString().trim() ?? "";
|
|
402
402
|
const combined = [stdout, stderr].filter(Boolean).join("\n");
|
|
403
|
+
const hint = buildErrorHint(command, combined);
|
|
403
404
|
throw new ToolError(
|
|
404
405
|
"bash",
|
|
405
406
|
`Exit code ${execErr.status}:
|
|
406
407
|
${combined || (execErr.message ?? "Unknown error")}
|
|
407
408
|
|
|
408
|
-
|
|
409
|
+
` + (hint ? `${hint}
|
|
410
|
+
|
|
411
|
+
` : "") + `[Command failed. Report this error to the user. Do not retry with variant commands.]`
|
|
409
412
|
);
|
|
410
413
|
}
|
|
411
414
|
}
|
|
@@ -429,6 +432,31 @@ function fixWindowsDeleteCommand(command) {
|
|
|
429
432
|
}
|
|
430
433
|
);
|
|
431
434
|
}
|
|
435
|
+
function buildErrorHint(command, stderr) {
|
|
436
|
+
const hints = [];
|
|
437
|
+
if (IS_WINDOWS && /\|\|/.test(command) && /(\|\||is not a valid argument|不是此版本中的有效|ParserError|Unexpected token)/i.test(stderr)) {
|
|
438
|
+
hints.push(
|
|
439
|
+
`Hint: PowerShell parses '||' as a pipeline operator (PS 5.x) or logical-or (PS 7+), it CANNOT be passed inline as SQL string concatenation. Workaround: write the SQL to a local .sql file with write_file, then 'scp' it to the remote host and run 'psql -f /tmp/x.sql'. Do NOT try to escape || or wrap the command differently \u2014 it will not work.`
|
|
440
|
+
);
|
|
441
|
+
}
|
|
442
|
+
if (IS_WINDOWS && /\bpython3\b/.test(command) && /(not recognized|is not recognized|无法将.*识别)/i.test(stderr)) {
|
|
443
|
+
hints.push(
|
|
444
|
+
`Hint: On Windows the launcher is 'python' (or 'py'), not 'python3'. Replace 'python3' with 'python' and retry.`
|
|
445
|
+
);
|
|
446
|
+
}
|
|
447
|
+
if (IS_WINDOWS && /^\s*ssh\b/.test(command) && /\\"/.test(command) && /(syntax error|ERROR:|ParserError|unexpected|parser|意外的|语法|不是此版本)/i.test(stderr)) {
|
|
448
|
+
hints.push(
|
|
449
|
+
`Hint: SSH + nested quotes ("...\\"...\\"") is fragile across PS \u2192 ssh \u2192 remote-shell \u2192 psql layers. Use the file-based flow: (1) write_file locally to a .sql file, (2) 'scp x.sql root@host:/tmp/', (3) 'ssh root@host "sudo -u postgres psql -d <db> -f /tmp/x.sql"'. Or for remote-only SQL: 'ssh host "cat > /tmp/x.sql << \\'SQLEOF\\'\\n...\\nSQLEOF"' then run psql -f. Avoid inline psql -c with embedded quotes.`
|
|
450
|
+
);
|
|
451
|
+
}
|
|
452
|
+
const colMissing = stderr.match(/column "([^"]+)" does not exist/i);
|
|
453
|
+
if (colMissing) {
|
|
454
|
+
hints.push(
|
|
455
|
+
`Hint: PostgreSQL says column "${colMissing[1]}" does not exist. Do NOT retry with a guess \u2014 query the actual schema first: \`psql -c "\\d <table>"\` or \`SELECT column_name FROM information_schema.columns WHERE table_name='<table>';\`. Common pitfall: not every table has a 'deleted' soft-delete column.`
|
|
456
|
+
);
|
|
457
|
+
}
|
|
458
|
+
return hints.length > 0 ? hints.map((h) => `\u{1F4A1} ${h}`).join("\n\n") : null;
|
|
459
|
+
}
|
|
432
460
|
function snapshotDir(dir) {
|
|
433
461
|
try {
|
|
434
462
|
return new Set(readdirSync(dir).map((name) => resolve(dir, name)));
|
package/dist/electron-server.js
CHANGED
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
VERSION,
|
|
37
37
|
buildUserIdentityPrompt,
|
|
38
38
|
runTestsTool
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-BXDHW7JO.js";
|
|
40
40
|
import {
|
|
41
41
|
hasSemanticIndex,
|
|
42
42
|
semanticSearch
|
|
@@ -3964,12 +3964,15 @@ How to recover (pick ONE \u2014 do NOT retry the same command):
|
|
|
3964
3964
|
const stderr = IS_WINDOWS && Buffer.isBuffer(execErr.stderr) ? execErr.stderr.toString("utf-8").trim() : execErr.stderr?.toString().trim() ?? "";
|
|
3965
3965
|
const stdout = IS_WINDOWS && Buffer.isBuffer(execErr.stdout) ? execErr.stdout.toString("utf-8").trim() : execErr.stdout?.toString().trim() ?? "";
|
|
3966
3966
|
const combined = [stdout, stderr].filter(Boolean).join("\n");
|
|
3967
|
+
const hint = buildErrorHint(command, combined);
|
|
3967
3968
|
throw new ToolError(
|
|
3968
3969
|
"bash",
|
|
3969
3970
|
`Exit code ${execErr.status}:
|
|
3970
3971
|
${combined || (execErr.message ?? "Unknown error")}
|
|
3971
3972
|
|
|
3972
|
-
|
|
3973
|
+
` + (hint ? `${hint}
|
|
3974
|
+
|
|
3975
|
+
` : "") + `[Command failed. Report this error to the user. Do not retry with variant commands.]`
|
|
3973
3976
|
);
|
|
3974
3977
|
}
|
|
3975
3978
|
}
|
|
@@ -3993,6 +3996,31 @@ function fixWindowsDeleteCommand(command) {
|
|
|
3993
3996
|
}
|
|
3994
3997
|
);
|
|
3995
3998
|
}
|
|
3999
|
+
function buildErrorHint(command, stderr) {
|
|
4000
|
+
const hints = [];
|
|
4001
|
+
if (IS_WINDOWS && /\|\|/.test(command) && /(\|\||is not a valid argument|不是此版本中的有效|ParserError|Unexpected token)/i.test(stderr)) {
|
|
4002
|
+
hints.push(
|
|
4003
|
+
`Hint: PowerShell parses '||' as a pipeline operator (PS 5.x) or logical-or (PS 7+), it CANNOT be passed inline as SQL string concatenation. Workaround: write the SQL to a local .sql file with write_file, then 'scp' it to the remote host and run 'psql -f /tmp/x.sql'. Do NOT try to escape || or wrap the command differently \u2014 it will not work.`
|
|
4004
|
+
);
|
|
4005
|
+
}
|
|
4006
|
+
if (IS_WINDOWS && /\bpython3\b/.test(command) && /(not recognized|is not recognized|无法将.*识别)/i.test(stderr)) {
|
|
4007
|
+
hints.push(
|
|
4008
|
+
`Hint: On Windows the launcher is 'python' (or 'py'), not 'python3'. Replace 'python3' with 'python' and retry.`
|
|
4009
|
+
);
|
|
4010
|
+
}
|
|
4011
|
+
if (IS_WINDOWS && /^\s*ssh\b/.test(command) && /\\"/.test(command) && /(syntax error|ERROR:|ParserError|unexpected|parser|意外的|语法|不是此版本)/i.test(stderr)) {
|
|
4012
|
+
hints.push(
|
|
4013
|
+
`Hint: SSH + nested quotes ("...\\"...\\"") is fragile across PS \u2192 ssh \u2192 remote-shell \u2192 psql layers. Use the file-based flow: (1) write_file locally to a .sql file, (2) 'scp x.sql root@host:/tmp/', (3) 'ssh root@host "sudo -u postgres psql -d <db> -f /tmp/x.sql"'. Or for remote-only SQL: 'ssh host "cat > /tmp/x.sql << \\'SQLEOF\\'\\n...\\nSQLEOF"' then run psql -f. Avoid inline psql -c with embedded quotes.`
|
|
4014
|
+
);
|
|
4015
|
+
}
|
|
4016
|
+
const colMissing = stderr.match(/column "([^"]+)" does not exist/i);
|
|
4017
|
+
if (colMissing) {
|
|
4018
|
+
hints.push(
|
|
4019
|
+
`Hint: PostgreSQL says column "${colMissing[1]}" does not exist. Do NOT retry with a guess \u2014 query the actual schema first: \`psql -c "\\d <table>"\` or \`SELECT column_name FROM information_schema.columns WHERE table_name='<table>';\`. Common pitfall: not every table has a 'deleted' soft-delete column.`
|
|
4020
|
+
);
|
|
4021
|
+
}
|
|
4022
|
+
return hints.length > 0 ? hints.map((h) => `\u{1F4A1} ${h}`).join("\n\n") : null;
|
|
4023
|
+
}
|
|
3996
4024
|
function snapshotDir(dir) {
|
|
3997
4025
|
try {
|
|
3998
4026
|
return new Set(readdirSync2(dir).map((name) => resolve(dir, name)));
|
|
@@ -12040,7 +12068,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
|
|
|
12040
12068
|
case "test": {
|
|
12041
12069
|
this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
12042
12070
|
try {
|
|
12043
|
-
const { executeTests } = await import("./run-tests-
|
|
12071
|
+
const { executeTests } = await import("./run-tests-OKQEMYZK.js");
|
|
12044
12072
|
const argStr = args.join(" ").trim();
|
|
12045
12073
|
let testArgs = {};
|
|
12046
12074
|
if (argStr) {
|
|
@@ -386,7 +386,7 @@ ${content}`);
|
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
388
|
async function runTaskMode(config, providers, configManager, topic) {
|
|
389
|
-
const { TaskOrchestrator } = await import("./task-orchestrator-
|
|
389
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-SCH3JUKT.js");
|
|
390
390
|
const orchestrator = new TaskOrchestrator(config, providers, configManager);
|
|
391
391
|
let interrupted = false;
|
|
392
392
|
const onSigint = () => {
|
package/dist/index.js
CHANGED
|
@@ -32,10 +32,10 @@ import {
|
|
|
32
32
|
setupProxy,
|
|
33
33
|
stripPseudoToolCalls,
|
|
34
34
|
stripToolCallReminder
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-QMT4T4PH.js";
|
|
36
36
|
import {
|
|
37
37
|
ConfigManager
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-KRTQDZMY.js";
|
|
39
39
|
import {
|
|
40
40
|
ToolExecutor,
|
|
41
41
|
ToolRegistry,
|
|
@@ -54,10 +54,10 @@ import {
|
|
|
54
54
|
spawnAgentContext,
|
|
55
55
|
theme,
|
|
56
56
|
undoStack
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-YTP26DOV.js";
|
|
58
58
|
import "./chunk-3BICTI5M.js";
|
|
59
59
|
import "./chunk-2DXY7UGF.js";
|
|
60
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-VJE5V4H2.js";
|
|
61
61
|
import "./chunk-2ZD3YTVM.js";
|
|
62
62
|
import {
|
|
63
63
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
SKILLS_DIR_NAME,
|
|
81
81
|
VERSION,
|
|
82
82
|
buildUserIdentityPrompt
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-H3F2E4MD.js";
|
|
84
84
|
import {
|
|
85
85
|
formatGitContextForPrompt,
|
|
86
86
|
getGitContext,
|
|
@@ -976,6 +976,42 @@ var CommandRegistry = class {
|
|
|
976
976
|
return [...this.commands.values()];
|
|
977
977
|
}
|
|
978
978
|
};
|
|
979
|
+
async function promptSkillHistoryAction(ctx, fromLabel, toLabel) {
|
|
980
|
+
const session = ctx.sessions.current;
|
|
981
|
+
const msgCount = session?.messages.length ?? 0;
|
|
982
|
+
if (msgCount === 0 || !session) return true;
|
|
983
|
+
const choice = await ctx.select(
|
|
984
|
+
`Switching skill: ${fromLabel} \u2192 ${toLabel} (${msgCount} message(s) in context)`,
|
|
985
|
+
[
|
|
986
|
+
{ value: "clear", label: "Clear history", hint: "recommended \u2014 fresh start under new skill" },
|
|
987
|
+
{ value: "fork", label: "Fork to new branch", hint: "preserve old branch, start fresh on new one" },
|
|
988
|
+
{ value: "keep", label: "Keep history", hint: "old skill actions may bias new skill" },
|
|
989
|
+
{ value: "cancel", label: "Cancel", hint: "do not switch skill" }
|
|
990
|
+
],
|
|
991
|
+
0
|
|
992
|
+
);
|
|
993
|
+
if (!choice || choice === "cancel") return false;
|
|
994
|
+
if (choice === "clear") {
|
|
995
|
+
session.clear();
|
|
996
|
+
ctx.resetSessionTokenUsage();
|
|
997
|
+
ctx.clearDevState();
|
|
998
|
+
ctx.renderer.printInfo(` History cleared (${msgCount} message(s) removed).`);
|
|
999
|
+
} else if (choice === "fork") {
|
|
1000
|
+
try {
|
|
1001
|
+
const branchTitle = toLabel === "(none)" ? `pre-deactivate-${fromLabel}` : `skill-${toLabel}`;
|
|
1002
|
+
const newId = session.createBranch(0, branchTitle);
|
|
1003
|
+
await ctx.sessions.save();
|
|
1004
|
+
ctx.renderer.printInfo(` Forked to fresh branch "${newId}" (old branch preserved).`);
|
|
1005
|
+
} catch (err) {
|
|
1006
|
+
ctx.renderer.renderError(`Fork failed: ${err.message}`);
|
|
1007
|
+
return false;
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
if (choice === "keep") {
|
|
1011
|
+
ctx.renderer.printInfo(" Keeping history. Use /clear later if the new skill misbehaves.");
|
|
1012
|
+
}
|
|
1013
|
+
return true;
|
|
1014
|
+
}
|
|
979
1015
|
function createDefaultCommands() {
|
|
980
1016
|
return [
|
|
981
1017
|
{
|
|
@@ -1612,7 +1648,7 @@ ${text}
|
|
|
1612
1648
|
const { join: join6 } = await import("path");
|
|
1613
1649
|
const { existsSync: existsSync6 } = await import("fs");
|
|
1614
1650
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-7KIP4X2V.js");
|
|
1615
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
1651
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-NWATGC4A.js");
|
|
1616
1652
|
const { approveProject, hashMcpFile } = await import("./project-trust-IFM7FXEV.js");
|
|
1617
1653
|
const cwd = process.cwd();
|
|
1618
1654
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -1875,7 +1911,7 @@ ${text}
|
|
|
1875
1911
|
name: "skill",
|
|
1876
1912
|
description: "Manage agent skills (reusable prompt packs)",
|
|
1877
1913
|
usage: "/skill [name|off|list|reload]",
|
|
1878
|
-
execute(args, ctx) {
|
|
1914
|
+
async execute(args, ctx) {
|
|
1879
1915
|
const sub = args[0]?.toLowerCase();
|
|
1880
1916
|
const manager = ctx.getSkillManager();
|
|
1881
1917
|
if (!manager) {
|
|
@@ -1908,10 +1944,13 @@ ${text}
|
|
|
1908
1944
|
return;
|
|
1909
1945
|
}
|
|
1910
1946
|
if (sub === "off" || sub === "none" || sub === "deactivate") {
|
|
1911
|
-
|
|
1947
|
+
const prev2 = manager.getActive();
|
|
1948
|
+
if (!prev2) {
|
|
1912
1949
|
ctx.renderer.printInfo("No skill is currently active.");
|
|
1913
1950
|
return;
|
|
1914
1951
|
}
|
|
1952
|
+
const proceed2 = await promptSkillHistoryAction(ctx, prev2.meta.name, "(none)");
|
|
1953
|
+
if (!proceed2) return;
|
|
1915
1954
|
manager.deactivate();
|
|
1916
1955
|
ctx.refreshPrompt();
|
|
1917
1956
|
ctx.renderer.printSuccess("Skill deactivated.");
|
|
@@ -1922,11 +1961,19 @@ ${text}
|
|
|
1922
1961
|
ctx.renderer.printSuccess(`Reloaded: ${count} skill(s) found.`);
|
|
1923
1962
|
return;
|
|
1924
1963
|
}
|
|
1925
|
-
const
|
|
1926
|
-
if (!
|
|
1964
|
+
const target = manager.listSkills().find((s) => s.meta.name === sub);
|
|
1965
|
+
if (!target) {
|
|
1927
1966
|
ctx.renderer.renderError(`Skill '${sub}' not found. Use /skill list to see available skills.`);
|
|
1928
1967
|
return;
|
|
1929
1968
|
}
|
|
1969
|
+
const prev = manager.getActive();
|
|
1970
|
+
if (prev?.meta.name === sub) {
|
|
1971
|
+
ctx.renderer.printInfo(`Skill '${sub}' is already active.`);
|
|
1972
|
+
return;
|
|
1973
|
+
}
|
|
1974
|
+
const proceed = await promptSkillHistoryAction(ctx, prev?.meta.name ?? "(none)", sub);
|
|
1975
|
+
if (!proceed) return;
|
|
1976
|
+
const skill = manager.activate(sub);
|
|
1930
1977
|
ctx.refreshPrompt();
|
|
1931
1978
|
ctx.renderer.printSuccess(`Skill activated: ${skill.meta.name} \u2014 ${skill.meta.description}`);
|
|
1932
1979
|
if (skill.meta.tools) {
|
|
@@ -2662,7 +2709,7 @@ ${hint}` : "")
|
|
|
2662
2709
|
usage: "/test [command|filter]",
|
|
2663
2710
|
async execute(args, ctx) {
|
|
2664
2711
|
try {
|
|
2665
|
-
const { executeTests } = await import("./run-tests-
|
|
2712
|
+
const { executeTests } = await import("./run-tests-QOZZHW4L.js");
|
|
2666
2713
|
const argStr = args.join(" ").trim();
|
|
2667
2714
|
let testArgs = {};
|
|
2668
2715
|
if (argStr) {
|
|
@@ -6955,7 +7002,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
6955
7002
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
6956
7003
|
process.exit(1);
|
|
6957
7004
|
}
|
|
6958
|
-
const { startWebServer } = await import("./server-
|
|
7005
|
+
const { startWebServer } = await import("./server-IX6L4W2L.js");
|
|
6959
7006
|
await startWebServer({ port, host: options.host });
|
|
6960
7007
|
});
|
|
6961
7008
|
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) => {
|
|
@@ -7091,7 +7138,7 @@ program.command("sessions").description("List recent conversation sessions").act
|
|
|
7091
7138
|
});
|
|
7092
7139
|
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) => {
|
|
7093
7140
|
try {
|
|
7094
|
-
const batch = await import("./batch-
|
|
7141
|
+
const batch = await import("./batch-GRHEH3JF.js");
|
|
7095
7142
|
switch (action) {
|
|
7096
7143
|
case "submit":
|
|
7097
7144
|
if (!arg) {
|
|
@@ -7134,7 +7181,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
7134
7181
|
}
|
|
7135
7182
|
});
|
|
7136
7183
|
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) => {
|
|
7137
|
-
const { startMcpServer } = await import("./server-
|
|
7184
|
+
const { startMcpServer } = await import("./server-HI6GVBD3.js");
|
|
7138
7185
|
await startMcpServer({
|
|
7139
7186
|
allowDestructive: !!options.allowDestructive,
|
|
7140
7187
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -7261,7 +7308,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
7261
7308
|
}),
|
|
7262
7309
|
config.get("customProviders")
|
|
7263
7310
|
);
|
|
7264
|
-
const { startHub } = await import("./hub-
|
|
7311
|
+
const { startHub } = await import("./hub-YNP5HCTT.js");
|
|
7265
7312
|
await startHub(
|
|
7266
7313
|
{
|
|
7267
7314
|
topic: topic ?? "",
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
ToolRegistry,
|
|
4
4
|
getDangerLevel,
|
|
5
5
|
schemaToJsonSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YTP26DOV.js";
|
|
7
7
|
import "./chunk-3BICTI5M.js";
|
|
8
8
|
import "./chunk-2DXY7UGF.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-VJE5V4H2.js";
|
|
10
10
|
import "./chunk-2ZD3YTVM.js";
|
|
11
11
|
import {
|
|
12
12
|
VERSION
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-H3F2E4MD.js";
|
|
14
14
|
import "./chunk-4BKXL7SM.js";
|
|
15
15
|
import "./chunk-7ZJN4KLV.js";
|
|
16
16
|
import "./chunk-KHYD3WXE.js";
|
|
@@ -26,10 +26,10 @@ import {
|
|
|
26
26
|
setupProxy,
|
|
27
27
|
stripPseudoToolCalls,
|
|
28
28
|
stripToolCallReminder
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-QMT4T4PH.js";
|
|
30
30
|
import {
|
|
31
31
|
ConfigManager
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-KRTQDZMY.js";
|
|
33
33
|
import {
|
|
34
34
|
ToolExecutor,
|
|
35
35
|
ToolRegistry,
|
|
@@ -47,10 +47,10 @@ import {
|
|
|
47
47
|
spawnAgentContext,
|
|
48
48
|
truncateOutput,
|
|
49
49
|
undoStack
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-YTP26DOV.js";
|
|
51
51
|
import "./chunk-3BICTI5M.js";
|
|
52
52
|
import "./chunk-2DXY7UGF.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-VJE5V4H2.js";
|
|
54
54
|
import "./chunk-2ZD3YTVM.js";
|
|
55
55
|
import {
|
|
56
56
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
SKILLS_DIR_NAME,
|
|
71
71
|
VERSION,
|
|
72
72
|
buildUserIdentityPrompt
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-H3F2E4MD.js";
|
|
74
74
|
import {
|
|
75
75
|
formatGitContextForPrompt,
|
|
76
76
|
getGitContext,
|
|
@@ -2443,7 +2443,7 @@ ${undoResults.map((r) => ` \u2022 ${r}`).join("\n")}` });
|
|
|
2443
2443
|
case "test": {
|
|
2444
2444
|
this.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
2445
2445
|
try {
|
|
2446
|
-
const { executeTests } = await import("./run-tests-
|
|
2446
|
+
const { executeTests } = await import("./run-tests-QOZZHW4L.js");
|
|
2447
2447
|
const argStr = args.join(" ").trim();
|
|
2448
2448
|
let testArgs = {};
|
|
2449
2449
|
if (argStr) {
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
getDangerLevel,
|
|
5
5
|
googleSearchContext,
|
|
6
6
|
truncateOutput
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YTP26DOV.js";
|
|
8
8
|
import "./chunk-3BICTI5M.js";
|
|
9
9
|
import "./chunk-2DXY7UGF.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-VJE5V4H2.js";
|
|
11
11
|
import "./chunk-2ZD3YTVM.js";
|
|
12
12
|
import {
|
|
13
13
|
SUBAGENT_ALLOWED_TOOLS
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-H3F2E4MD.js";
|
|
15
15
|
import "./chunk-4BKXL7SM.js";
|
|
16
16
|
import "./chunk-7ZJN4KLV.js";
|
|
17
17
|
import "./chunk-KHYD3WXE.js";
|