jinzd-ai-cli 0.4.281 → 0.4.282
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-237ZXBQD.js → batch-SBP6H7IK.js} +2 -2
- package/dist/{chunk-WUIOUJA2.js → chunk-6IRG727F.js} +1 -1
- package/dist/{chunk-FHRIDE2T.js → chunk-7XKIDSJT.js} +4 -4
- package/dist/{chunk-4XJVSMZ6.js → chunk-EVD6CCO2.js} +1 -1
- package/dist/{chunk-BVGSR3BA.js → chunk-GSGJABL6.js} +3 -3
- package/dist/{chunk-J3RWNQOF.js → chunk-HJDJAI7T.js} +1 -1
- package/dist/{chunk-6NO5FZW6.js → chunk-IUVDZVZ4.js} +18 -0
- package/dist/{chunk-2FCKZ3OS.js → chunk-JQU4GYET.js} +1 -1
- package/dist/{chunk-J5TXHFDO.js → chunk-KDXA7RXA.js} +70 -4
- package/dist/{chunk-L7C34TFI.js → chunk-LNUWIY6M.js} +1 -1
- package/dist/{chunk-VB54ILH7.js → chunk-NUJTNH76.js} +1 -1
- package/dist/{chunk-IXEKDAIX.js → chunk-RHSCROLG.js} +1 -1
- package/dist/{chunk-H2VE4TTN.js → chunk-SGUPIQYT.js} +1 -1
- package/dist/{chunk-5GYOQ7EF.js → chunk-TNIMHTKG.js} +1 -1
- package/dist/{chunk-UTJQXG4P.js → chunk-WMHLWCZQ.js} +3 -3
- package/dist/{chunk-JT2A2M4F.js → chunk-YRPL7A3S.js} +1 -1
- package/dist/{ci-LXRTYJ6F.js → ci-VAAMX44S.js} +4 -4
- package/dist/{ci-format-II3OT2VU.js → ci-format-RMULFSB5.js} +2 -2
- package/dist/{constants-X53QCUTP.js → constants-PXLMEBJY.js} +1 -1
- package/dist/{doctor-cli-6JCJEQR4.js → doctor-cli-C2DFYU2M.js} +4 -4
- package/dist/electron-server.js +136 -56
- package/dist/{hub-RXAFF7QI.js → hub-XIU3YTOE.js} +2 -2
- package/dist/index.js +72 -82
- package/dist/{persist-TBQILDSE.js → persist-S77WRVLD.js} +2 -2
- package/dist/{persistent-memory-7CKJLS25.js → persistent-memory-ACXKU6RV.js} +2 -2
- package/dist/{persistent-memory-WAKFKH2I.js → persistent-memory-TA224ZFQ.js} +2 -2
- package/dist/{pr-DZTRHAMG.js → pr-J74HW44E.js} +4 -4
- package/dist/{run-tests-XGCNUT5S.js → run-tests-4KTX5YMO.js} +2 -2
- package/dist/{run-tests-4ESYEROQ.js → run-tests-JLZ2KIGV.js} +2 -2
- package/dist/{server-6RYXFG3H.js → server-226R6675.js} +69 -63
- package/dist/{server-EFA7UP4I.js → server-4CZXYGJN.js} +5 -5
- package/dist/{task-orchestrator-H3AEIHR3.js → task-orchestrator-6C3R7KSK.js} +5 -5
- package/dist/{usage-W7TZWHY7.js → usage-FY3TEJJS.js} +2 -2
- package/package.json +1 -1
|
@@ -143,7 +143,7 @@ ${content}`);
|
|
|
143
143
|
const state = await runDiscussion(config, providers, options.topic);
|
|
144
144
|
if (options.save !== false && state.messages.length > 0) {
|
|
145
145
|
try {
|
|
146
|
-
const { persistDiscussion } = await import("./persist-
|
|
146
|
+
const { persistDiscussion } = await import("./persist-S77WRVLD.js");
|
|
147
147
|
const { path } = await persistDiscussion(state, configManager, defaultProvider, defaultModel);
|
|
148
148
|
console.log(chalk.dim(`
|
|
149
149
|
\u{1F4BE} Saved to history \u2014 open it in the Web UI and hit \u{1F3AC} to replay.
|
|
@@ -158,7 +158,7 @@ ${content}`);
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
async function runTaskMode(config, providers, configManager, topic) {
|
|
161
|
-
const { TaskOrchestrator } = await import("./task-orchestrator-
|
|
161
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-6C3R7KSK.js");
|
|
162
162
|
const orchestrator = new TaskOrchestrator(config, providers, configManager);
|
|
163
163
|
let interrupted = false;
|
|
164
164
|
const onSigint = () => {
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
armDeferredSave,
|
|
11
11
|
autoTrimSessionIfNeeded,
|
|
12
12
|
buildInitPrompt,
|
|
13
|
+
buildRewindList,
|
|
13
14
|
buildSessionCostReport,
|
|
14
15
|
buildSessionExport,
|
|
15
16
|
checkpointDeletedMessage,
|
|
@@ -26,6 +27,8 @@ import {
|
|
|
26
27
|
evaluateContextPressure,
|
|
27
28
|
filterMemoryEntries,
|
|
28
29
|
formatCheckpointList,
|
|
30
|
+
formatForkReport,
|
|
31
|
+
formatRewindReport,
|
|
29
32
|
formatSessionSummaryLine,
|
|
30
33
|
loadDevState,
|
|
31
34
|
parseBatchDeleteArgs,
|
|
@@ -34,11 +37,13 @@ import {
|
|
|
34
37
|
parseExportArgs,
|
|
35
38
|
parseMemoryShowFilters,
|
|
36
39
|
parseModelCommand,
|
|
40
|
+
parseRewindArgs,
|
|
37
41
|
parseRouteCommand,
|
|
38
42
|
parseSessionListArgs,
|
|
39
43
|
parseSimpleYaml,
|
|
40
44
|
persistToolRound,
|
|
41
45
|
readGitDiff,
|
|
46
|
+
resolveForkPoint,
|
|
42
47
|
resolveModelSwitch,
|
|
43
48
|
resolveProviderSwitch,
|
|
44
49
|
resolveSessionRef,
|
|
@@ -54,7 +59,7 @@ import {
|
|
|
54
59
|
setupProxy,
|
|
55
60
|
snapshotFile,
|
|
56
61
|
stripRoutingTags
|
|
57
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-KDXA7RXA.js";
|
|
58
63
|
import {
|
|
59
64
|
CostTracker,
|
|
60
65
|
computeCost,
|
|
@@ -84,7 +89,7 @@ import {
|
|
|
84
89
|
setMaxOutputCap,
|
|
85
90
|
spawnAgentContext,
|
|
86
91
|
undoStack
|
|
87
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-7XKIDSJT.js";
|
|
88
93
|
import {
|
|
89
94
|
buildReviewPrompt,
|
|
90
95
|
buildSecurityReviewPrompt
|
|
@@ -125,7 +130,7 @@ import {
|
|
|
125
130
|
touchMemoryReferences,
|
|
126
131
|
updateMemoryApproval,
|
|
127
132
|
updateMemoryEntry
|
|
128
|
-
} from "./chunk-
|
|
133
|
+
} from "./chunk-SGUPIQYT.js";
|
|
129
134
|
import "./chunk-4DEMGCK4.js";
|
|
130
135
|
import "./chunk-UUSRWSSX.js";
|
|
131
136
|
import "./chunk-CKH4KQ4E.js";
|
|
@@ -138,7 +143,7 @@ import {
|
|
|
138
143
|
import {
|
|
139
144
|
SessionManager,
|
|
140
145
|
getContentText
|
|
141
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-IUVDZVZ4.js";
|
|
142
147
|
import "./chunk-NYNSYLFY.js";
|
|
143
148
|
import {
|
|
144
149
|
DEFAULT_PATTERNS,
|
|
@@ -149,7 +154,7 @@ import {
|
|
|
149
154
|
formatDoctorReport,
|
|
150
155
|
loadContextFiles,
|
|
151
156
|
writeCrashLog
|
|
152
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-GSGJABL6.js";
|
|
153
158
|
import {
|
|
154
159
|
describePlugin,
|
|
155
160
|
getActivePluginAssets,
|
|
@@ -166,14 +171,14 @@ import {
|
|
|
166
171
|
trustHook,
|
|
167
172
|
trustPlugin,
|
|
168
173
|
untrustHook
|
|
169
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-LNUWIY6M.js";
|
|
170
175
|
import {
|
|
171
176
|
ProviderRegistry,
|
|
172
177
|
listBuiltInProviderMetadata
|
|
173
178
|
} from "./chunk-UGY5SVNX.js";
|
|
174
179
|
import {
|
|
175
180
|
ConfigManager
|
|
176
|
-
} from "./chunk-
|
|
181
|
+
} from "./chunk-EVD6CCO2.js";
|
|
177
182
|
import {
|
|
178
183
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
179
184
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -211,7 +216,7 @@ import {
|
|
|
211
216
|
import {
|
|
212
217
|
fileCheckpoints
|
|
213
218
|
} from "./chunk-4BKXL7SM.js";
|
|
214
|
-
import "./chunk-
|
|
219
|
+
import "./chunk-HJDJAI7T.js";
|
|
215
220
|
import {
|
|
216
221
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
217
222
|
AUTHOR,
|
|
@@ -229,7 +234,7 @@ import {
|
|
|
229
234
|
SKILLS_DIR_NAME,
|
|
230
235
|
VERSION,
|
|
231
236
|
buildUserIdentityPrompt
|
|
232
|
-
} from "./chunk-
|
|
237
|
+
} from "./chunk-JQU4GYET.js";
|
|
233
238
|
|
|
234
239
|
// src/index.ts
|
|
235
240
|
import { program } from "commander";
|
|
@@ -1347,7 +1352,7 @@ No tools match "${filter}".
|
|
|
1347
1352
|
const { join: join6 } = await import("path");
|
|
1348
1353
|
const { existsSync: existsSync6 } = await import("fs");
|
|
1349
1354
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
|
|
1350
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
1355
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-PXLMEBJY.js");
|
|
1351
1356
|
const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
|
|
1352
1357
|
const cwd = process.cwd();
|
|
1353
1358
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -1937,24 +1942,26 @@ function createReviewCommands() {
|
|
|
1937
1942
|
name: "rewind",
|
|
1938
1943
|
description: "Rewind conversation to a previous message and restore file states",
|
|
1939
1944
|
usage: "/rewind [list | <n>]",
|
|
1940
|
-
execute(args, ctx) {
|
|
1945
|
+
async execute(args, ctx) {
|
|
1941
1946
|
const session = ctx.sessions.current;
|
|
1942
1947
|
if (!session || session.messages.length === 0) {
|
|
1943
1948
|
console.log(theme.dim(" No messages to rewind."));
|
|
1944
1949
|
return;
|
|
1945
1950
|
}
|
|
1946
|
-
const
|
|
1947
|
-
if (
|
|
1948
|
-
|
|
1951
|
+
const intent = parseRewindArgs(args, session.messages.length);
|
|
1952
|
+
if (intent.kind === "invalid") {
|
|
1953
|
+
ctx.renderer.renderError(intent.message);
|
|
1954
|
+
return;
|
|
1955
|
+
}
|
|
1956
|
+
if (intent.kind === "list") {
|
|
1957
|
+
const rows = buildRewindList(session.messages, fileCheckpoints.getMessageIndices());
|
|
1949
1958
|
console.log(theme.heading(`
|
|
1950
|
-
Conversation messages (${
|
|
1959
|
+
Conversation messages (${rows.length} total):
|
|
1951
1960
|
`));
|
|
1952
|
-
for (
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
const hasCheckpoint = fileCheckpoints.getMessageIndices().includes(i) ? " \u{1F4CC}" : "";
|
|
1957
|
-
console.log(theme.dim(` [${String(i + 1).padStart(3)}]`) + ` ${theme.info(role)} ${text}${hasCheckpoint}`);
|
|
1961
|
+
for (const row of rows) {
|
|
1962
|
+
console.log(
|
|
1963
|
+
theme.dim(` [${String(row.index).padStart(3)}]`) + ` ${theme.info(row.role.padEnd(10))} ${row.preview}${row.hasCheckpoint ? " \u{1F4CC}" : ""}`
|
|
1964
|
+
);
|
|
1958
1965
|
}
|
|
1959
1966
|
console.log();
|
|
1960
1967
|
console.log(theme.dim(" Usage: /rewind <n> \u2014 rewind to message N (1-based)"));
|
|
@@ -1962,28 +1969,21 @@ function createReviewCommands() {
|
|
|
1962
1969
|
console.log();
|
|
1963
1970
|
return;
|
|
1964
1971
|
}
|
|
1965
|
-
const
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
const
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1972
|
+
const messagesRemoved = session.messages.length - intent.target;
|
|
1973
|
+
const { restored, deleted, files } = fileCheckpoints.restoreToMessageIndex(intent.target);
|
|
1974
|
+
session.truncateTo(intent.target);
|
|
1975
|
+
await ctx.sessions.save();
|
|
1976
|
+
ctx.resetSessionTokenUsage();
|
|
1977
|
+
const lines = formatRewindReport({
|
|
1978
|
+
target: intent.target,
|
|
1979
|
+
messagesRemoved,
|
|
1980
|
+
filesRestored: restored,
|
|
1981
|
+
filesDeleted: deleted,
|
|
1982
|
+
files
|
|
1983
|
+
});
|
|
1976
1984
|
console.log(theme.success(`
|
|
1977
|
-
|
|
1978
|
-
console.log(theme.dim(`
|
|
1979
|
-
if (restored > 0 || deleted > 0) {
|
|
1980
|
-
console.log(theme.dim(` Files restored: ${restored}, files deleted: ${deleted}`));
|
|
1981
|
-
for (const f of files) {
|
|
1982
|
-
console.log(theme.dim(` ${f}`));
|
|
1983
|
-
}
|
|
1984
|
-
} else {
|
|
1985
|
-
console.log(theme.dim(" No file changes to revert."));
|
|
1986
|
-
}
|
|
1985
|
+
${lines[0]}`));
|
|
1986
|
+
for (const line of lines.slice(1)) console.log(theme.dim(` ${line}`));
|
|
1987
1987
|
console.log();
|
|
1988
1988
|
}
|
|
1989
1989
|
},
|
|
@@ -2267,7 +2267,7 @@ function createReviewCommands() {
|
|
|
2267
2267
|
usage: "/test [command|filter]",
|
|
2268
2268
|
async execute(args, ctx) {
|
|
2269
2269
|
try {
|
|
2270
|
-
const { executeTests } = await import("./run-tests-
|
|
2270
|
+
const { executeTests } = await import("./run-tests-4KTX5YMO.js");
|
|
2271
2271
|
const argStr = args.join(" ").trim();
|
|
2272
2272
|
let testArgs = {};
|
|
2273
2273
|
if (argStr) {
|
|
@@ -2349,39 +2349,29 @@ Summary: ${fileMap.size} file(s) \u2014 ${newFiles} new, ${modifiedFiles} modifi
|
|
|
2349
2349
|
ctx.renderer.printInfo("No active session to fork.");
|
|
2350
2350
|
return;
|
|
2351
2351
|
}
|
|
2352
|
-
const
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
const cp = session.checkpoints.find((c) => c.name === sub);
|
|
2357
|
-
if (!cp) {
|
|
2358
|
-
const available = session.checkpoints.map((c) => c.name);
|
|
2359
|
-
if (available.length > 0) {
|
|
2360
|
-
ctx.renderer.printInfo(
|
|
2361
|
-
`Checkpoint "${sub}" not found. Available: ${available.join(", ")}`
|
|
2362
|
-
);
|
|
2363
|
-
} else {
|
|
2364
|
-
ctx.renderer.printInfo(
|
|
2365
|
-
`Checkpoint "${sub}" not found. No checkpoints saved. Use /checkpoint save <name> first.`
|
|
2366
|
-
);
|
|
2367
|
-
}
|
|
2368
|
-
return;
|
|
2369
|
-
}
|
|
2370
|
-
messageCount = cp.messageIndex;
|
|
2371
|
-
fromLabel = `checkpoint "${cp.name}" (${cp.messageIndex} messages)`;
|
|
2352
|
+
const point = resolveForkPoint(session, args.join(" ").trim());
|
|
2353
|
+
if (!point.ok) {
|
|
2354
|
+
ctx.renderer.printInfo(point.message);
|
|
2355
|
+
return;
|
|
2372
2356
|
}
|
|
2373
2357
|
try {
|
|
2374
|
-
const originalId = session.id
|
|
2358
|
+
const originalId = session.id;
|
|
2375
2359
|
const originalTitle = session.title ?? "(untitled)";
|
|
2376
|
-
const forked = await ctx.forkSession(messageCount);
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2360
|
+
const forked = await ctx.forkSession(point.messageCount);
|
|
2361
|
+
const lines = formatForkReport({
|
|
2362
|
+
originalId,
|
|
2363
|
+
originalTitle,
|
|
2364
|
+
forkedId: forked.id,
|
|
2365
|
+
forkedTitle: forked.title ?? "(untitled)",
|
|
2366
|
+
fromLabel: point.fromLabel,
|
|
2367
|
+
messageCount: forked.messages.length,
|
|
2368
|
+
checkpointCount: forked.checkpoints.length
|
|
2369
|
+
});
|
|
2370
|
+
console.log(theme.heading(`
|
|
2371
|
+
${lines[0]}
|
|
2372
|
+
`));
|
|
2373
|
+
for (const line of lines.slice(1)) console.log(theme.dim(line));
|
|
2374
|
+
console.log();
|
|
2385
2375
|
ctx.refreshPrompt();
|
|
2386
2376
|
} catch (err) {
|
|
2387
2377
|
ctx.renderer.renderError(
|
|
@@ -7274,7 +7264,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
7274
7264
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
7275
7265
|
process.exit(1);
|
|
7276
7266
|
}
|
|
7277
|
-
const { startWebServer } = await import("./server-
|
|
7267
|
+
const { startWebServer } = await import("./server-226R6675.js");
|
|
7278
7268
|
await startWebServer({ port, host: options.host });
|
|
7279
7269
|
});
|
|
7280
7270
|
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) => {
|
|
@@ -7441,11 +7431,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
7441
7431
|
console.log(footer + "\n");
|
|
7442
7432
|
});
|
|
7443
7433
|
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) => {
|
|
7444
|
-
const { runUsageCli } = await import("./usage-
|
|
7434
|
+
const { runUsageCli } = await import("./usage-FY3TEJJS.js");
|
|
7445
7435
|
await runUsageCli(options);
|
|
7446
7436
|
});
|
|
7447
7437
|
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) => {
|
|
7448
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
7438
|
+
const { runDoctorCli } = await import("./doctor-cli-C2DFYU2M.js");
|
|
7449
7439
|
const argv = process.argv.slice(2);
|
|
7450
7440
|
await runDoctorCli({
|
|
7451
7441
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -7454,7 +7444,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
7454
7444
|
});
|
|
7455
7445
|
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) => {
|
|
7456
7446
|
try {
|
|
7457
|
-
const batch = await import("./batch-
|
|
7447
|
+
const batch = await import("./batch-SBP6H7IK.js");
|
|
7458
7448
|
switch (action) {
|
|
7459
7449
|
case "submit":
|
|
7460
7450
|
if (!arg) {
|
|
@@ -7497,7 +7487,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
7497
7487
|
}
|
|
7498
7488
|
});
|
|
7499
7489
|
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) => {
|
|
7500
|
-
const { startMcpServer } = await import("./server-
|
|
7490
|
+
const { startMcpServer } = await import("./server-4CZXYGJN.js");
|
|
7501
7491
|
await startMcpServer({
|
|
7502
7492
|
allowDestructive: !!options.allowDestructive,
|
|
7503
7493
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -7510,7 +7500,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
7510
7500
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
7511
7501
|
process.exit(1);
|
|
7512
7502
|
}
|
|
7513
|
-
const { runPrCli } = await import("./pr-
|
|
7503
|
+
const { runPrCli } = await import("./pr-J74HW44E.js");
|
|
7514
7504
|
const result = await runPrCli({
|
|
7515
7505
|
action,
|
|
7516
7506
|
target,
|
|
@@ -7530,8 +7520,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
7530
7520
|
process.exit(result.exitCode);
|
|
7531
7521
|
});
|
|
7532
7522
|
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) => {
|
|
7533
|
-
const { runCi } = await import("./ci-
|
|
7534
|
-
const { formatCiResult } = await import("./ci-format-
|
|
7523
|
+
const { runCi } = await import("./ci-VAAMX44S.js");
|
|
7524
|
+
const { formatCiResult } = await import("./ci-format-RMULFSB5.js");
|
|
7535
7525
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
7536
7526
|
if (formats > 1) {
|
|
7537
7527
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -7689,7 +7679,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
7689
7679
|
config.get("customProviders"),
|
|
7690
7680
|
config.getConfigDir()
|
|
7691
7681
|
);
|
|
7692
|
-
const { startHub } = await import("./hub-
|
|
7682
|
+
const { startHub } = await import("./hub-XIU3YTOE.js");
|
|
7693
7683
|
await startHub(
|
|
7694
7684
|
{
|
|
7695
7685
|
topic: topic ?? "",
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
discussionToMessages,
|
|
4
4
|
persistDiscussion
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-NUJTNH76.js";
|
|
6
|
+
import "./chunk-IUVDZVZ4.js";
|
|
7
7
|
import "./chunk-NYNSYLFY.js";
|
|
8
8
|
import "./chunk-3FEZSLGI.js";
|
|
9
9
|
import "./chunk-IW3Q7AE5.js";
|
|
@@ -28,11 +28,11 @@ import {
|
|
|
28
28
|
touchMemoryReferences,
|
|
29
29
|
updateMemoryApproval,
|
|
30
30
|
updateMemoryEntry
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-SGUPIQYT.js";
|
|
32
32
|
import "./chunk-3FEZSLGI.js";
|
|
33
33
|
import "./chunk-HOSJZMQS.js";
|
|
34
34
|
import "./chunk-IW3Q7AE5.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-JQU4GYET.js";
|
|
36
36
|
export {
|
|
37
37
|
addMemoryEntry,
|
|
38
38
|
backupMemoryStore,
|
|
@@ -27,9 +27,9 @@ import {
|
|
|
27
27
|
touchMemoryReferences,
|
|
28
28
|
updateMemoryApproval,
|
|
29
29
|
updateMemoryEntry
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-RHSCROLG.js";
|
|
31
31
|
import "./chunk-FSC6KEWU.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-TNIMHTKG.js";
|
|
33
33
|
import "./chunk-6BUTA5VW.js";
|
|
34
34
|
export {
|
|
35
35
|
addMemoryEntry,
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
countSeverity,
|
|
4
4
|
runCi
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-WMHLWCZQ.js";
|
|
6
|
+
import "./chunk-YRPL7A3S.js";
|
|
7
7
|
import {
|
|
8
8
|
buildReviewPrompt,
|
|
9
9
|
buildSecurityReviewPrompt,
|
|
@@ -17,13 +17,13 @@ import {
|
|
|
17
17
|
} from "./chunk-UGY5SVNX.js";
|
|
18
18
|
import {
|
|
19
19
|
ConfigManager
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-EVD6CCO2.js";
|
|
21
21
|
import "./chunk-TEXT4DAT.js";
|
|
22
22
|
import "./chunk-TU3L3PW7.js";
|
|
23
23
|
import "./chunk-IW3Q7AE5.js";
|
|
24
24
|
import {
|
|
25
25
|
VERSION
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-JQU4GYET.js";
|
|
27
27
|
|
|
28
28
|
// src/cli/pr.ts
|
|
29
29
|
import { execFileSync } from "child_process";
|