jinzd-ai-cli 0.4.280 → 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-F27NOTWC.js → batch-SBP6H7IK.js} +2 -2
- package/dist/{chunk-NHJ4GHL4.js → chunk-6IRG727F.js} +1 -1
- package/dist/{chunk-CP5LAA52.js → chunk-7XKIDSJT.js} +4 -4
- package/dist/{chunk-EOP775JU.js → chunk-EVD6CCO2.js} +1 -1
- package/dist/{chunk-B3FHA6IN.js → chunk-GSGJABL6.js} +3 -3
- package/dist/{chunk-VQCFEA4Z.js → chunk-HJDJAI7T.js} +1 -1
- package/dist/{chunk-CGDYO52A.js → chunk-IUVDZVZ4.js} +19 -0
- package/dist/{chunk-UBPRUSAF.js → chunk-JQU4GYET.js} +1 -1
- package/dist/{chunk-IIO2SMEJ.js → chunk-KDXA7RXA.js} +74 -4
- package/dist/{chunk-UMWDNNPS.js → chunk-LNUWIY6M.js} +1 -1
- package/dist/{chunk-MX75TNE5.js → chunk-NUJTNH76.js} +1 -1
- package/dist/{chunk-PUC277TH.js → chunk-RHSCROLG.js} +1 -1
- package/dist/{chunk-V7EZ4SDC.js → chunk-SGUPIQYT.js} +1 -1
- package/dist/{chunk-PN42JO74.js → chunk-TNIMHTKG.js} +1 -1
- package/dist/{chunk-TAIZZY3N.js → chunk-WMHLWCZQ.js} +3 -3
- package/dist/{chunk-LPZNOYRJ.js → chunk-YRPL7A3S.js} +1 -1
- package/dist/{ci-HJ4OVHCM.js → ci-VAAMX44S.js} +4 -4
- package/dist/{ci-format-NKJRZ3QI.js → ci-format-RMULFSB5.js} +2 -2
- package/dist/{constants-6LCZOBJC.js → constants-PXLMEBJY.js} +1 -1
- package/dist/{doctor-cli-7JGPC5G4.js → doctor-cli-C2DFYU2M.js} +4 -4
- package/dist/electron-server.js +147 -59
- package/dist/{hub-NX7HYN7V.js → hub-XIU3YTOE.js} +2 -2
- package/dist/index.js +81 -86
- package/dist/{persist-PQM4BRI4.js → persist-S77WRVLD.js} +2 -2
- package/dist/{persistent-memory-MHHX7F25.js → persistent-memory-ACXKU6RV.js} +2 -2
- package/dist/{persistent-memory-E6WECUTW.js → persistent-memory-TA224ZFQ.js} +2 -2
- package/dist/{pr-GLUFBQLI.js → pr-J74HW44E.js} +4 -4
- package/dist/{run-tests-YPJDOEJA.js → run-tests-4KTX5YMO.js} +2 -2
- package/dist/{run-tests-LWAFPVS3.js → run-tests-JLZ2KIGV.js} +2 -2
- package/dist/{server-CXXYIPMU.js → server-226R6675.js} +77 -66
- package/dist/{server-P6DI27CY.js → server-4CZXYGJN.js} +5 -5
- package/dist/{task-orchestrator-FW4LBPTS.js → task-orchestrator-6C3R7KSK.js} +5 -5
- package/dist/{usage-CJUHQDT2.js → usage-FY3TEJJS.js} +2 -2
- package/package.json +1 -1
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,
|
|
@@ -17,6 +18,7 @@ import {
|
|
|
17
18
|
checkpointRestoredMessage,
|
|
18
19
|
checkpointSavedMessage,
|
|
19
20
|
clearDevState,
|
|
21
|
+
clearedSessionMessage,
|
|
20
22
|
costSourceNote,
|
|
21
23
|
decideDeferredSave,
|
|
22
24
|
decideModel,
|
|
@@ -25,6 +27,8 @@ import {
|
|
|
25
27
|
evaluateContextPressure,
|
|
26
28
|
filterMemoryEntries,
|
|
27
29
|
formatCheckpointList,
|
|
30
|
+
formatForkReport,
|
|
31
|
+
formatRewindReport,
|
|
28
32
|
formatSessionSummaryLine,
|
|
29
33
|
loadDevState,
|
|
30
34
|
parseBatchDeleteArgs,
|
|
@@ -33,11 +37,13 @@ import {
|
|
|
33
37
|
parseExportArgs,
|
|
34
38
|
parseMemoryShowFilters,
|
|
35
39
|
parseModelCommand,
|
|
40
|
+
parseRewindArgs,
|
|
36
41
|
parseRouteCommand,
|
|
37
42
|
parseSessionListArgs,
|
|
38
43
|
parseSimpleYaml,
|
|
39
44
|
persistToolRound,
|
|
40
45
|
readGitDiff,
|
|
46
|
+
resolveForkPoint,
|
|
41
47
|
resolveModelSwitch,
|
|
42
48
|
resolveProviderSwitch,
|
|
43
49
|
resolveSessionRef,
|
|
@@ -53,7 +59,7 @@ import {
|
|
|
53
59
|
setupProxy,
|
|
54
60
|
snapshotFile,
|
|
55
61
|
stripRoutingTags
|
|
56
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-KDXA7RXA.js";
|
|
57
63
|
import {
|
|
58
64
|
CostTracker,
|
|
59
65
|
computeCost,
|
|
@@ -83,7 +89,7 @@ import {
|
|
|
83
89
|
setMaxOutputCap,
|
|
84
90
|
spawnAgentContext,
|
|
85
91
|
undoStack
|
|
86
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-7XKIDSJT.js";
|
|
87
93
|
import {
|
|
88
94
|
buildReviewPrompt,
|
|
89
95
|
buildSecurityReviewPrompt
|
|
@@ -124,7 +130,7 @@ import {
|
|
|
124
130
|
touchMemoryReferences,
|
|
125
131
|
updateMemoryApproval,
|
|
126
132
|
updateMemoryEntry
|
|
127
|
-
} from "./chunk-
|
|
133
|
+
} from "./chunk-SGUPIQYT.js";
|
|
128
134
|
import "./chunk-4DEMGCK4.js";
|
|
129
135
|
import "./chunk-UUSRWSSX.js";
|
|
130
136
|
import "./chunk-CKH4KQ4E.js";
|
|
@@ -137,7 +143,7 @@ import {
|
|
|
137
143
|
import {
|
|
138
144
|
SessionManager,
|
|
139
145
|
getContentText
|
|
140
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-IUVDZVZ4.js";
|
|
141
147
|
import "./chunk-NYNSYLFY.js";
|
|
142
148
|
import {
|
|
143
149
|
DEFAULT_PATTERNS,
|
|
@@ -148,7 +154,7 @@ import {
|
|
|
148
154
|
formatDoctorReport,
|
|
149
155
|
loadContextFiles,
|
|
150
156
|
writeCrashLog
|
|
151
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-GSGJABL6.js";
|
|
152
158
|
import {
|
|
153
159
|
describePlugin,
|
|
154
160
|
getActivePluginAssets,
|
|
@@ -165,14 +171,14 @@ import {
|
|
|
165
171
|
trustHook,
|
|
166
172
|
trustPlugin,
|
|
167
173
|
untrustHook
|
|
168
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-LNUWIY6M.js";
|
|
169
175
|
import {
|
|
170
176
|
ProviderRegistry,
|
|
171
177
|
listBuiltInProviderMetadata
|
|
172
178
|
} from "./chunk-UGY5SVNX.js";
|
|
173
179
|
import {
|
|
174
180
|
ConfigManager
|
|
175
|
-
} from "./chunk-
|
|
181
|
+
} from "./chunk-EVD6CCO2.js";
|
|
176
182
|
import {
|
|
177
183
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
178
184
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -210,7 +216,7 @@ import {
|
|
|
210
216
|
import {
|
|
211
217
|
fileCheckpoints
|
|
212
218
|
} from "./chunk-4BKXL7SM.js";
|
|
213
|
-
import "./chunk-
|
|
219
|
+
import "./chunk-HJDJAI7T.js";
|
|
214
220
|
import {
|
|
215
221
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
216
222
|
AUTHOR,
|
|
@@ -228,7 +234,7 @@ import {
|
|
|
228
234
|
SKILLS_DIR_NAME,
|
|
229
235
|
VERSION,
|
|
230
236
|
buildUserIdentityPrompt
|
|
231
|
-
} from "./chunk-
|
|
237
|
+
} from "./chunk-JQU4GYET.js";
|
|
232
238
|
|
|
233
239
|
// src/index.ts
|
|
234
240
|
import { program } from "commander";
|
|
@@ -1346,7 +1352,7 @@ No tools match "${filter}".
|
|
|
1346
1352
|
const { join: join6 } = await import("path");
|
|
1347
1353
|
const { existsSync: existsSync6 } = await import("fs");
|
|
1348
1354
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
|
|
1349
|
-
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");
|
|
1350
1356
|
const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
|
|
1351
1357
|
const cwd = process.cwd();
|
|
1352
1358
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -1936,24 +1942,26 @@ function createReviewCommands() {
|
|
|
1936
1942
|
name: "rewind",
|
|
1937
1943
|
description: "Rewind conversation to a previous message and restore file states",
|
|
1938
1944
|
usage: "/rewind [list | <n>]",
|
|
1939
|
-
execute(args, ctx) {
|
|
1945
|
+
async execute(args, ctx) {
|
|
1940
1946
|
const session = ctx.sessions.current;
|
|
1941
1947
|
if (!session || session.messages.length === 0) {
|
|
1942
1948
|
console.log(theme.dim(" No messages to rewind."));
|
|
1943
1949
|
return;
|
|
1944
1950
|
}
|
|
1945
|
-
const
|
|
1946
|
-
if (
|
|
1947
|
-
|
|
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());
|
|
1948
1958
|
console.log(theme.heading(`
|
|
1949
|
-
Conversation messages (${
|
|
1959
|
+
Conversation messages (${rows.length} total):
|
|
1950
1960
|
`));
|
|
1951
|
-
for (
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
const hasCheckpoint = fileCheckpoints.getMessageIndices().includes(i) ? " \u{1F4CC}" : "";
|
|
1956
|
-
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
|
+
);
|
|
1957
1965
|
}
|
|
1958
1966
|
console.log();
|
|
1959
1967
|
console.log(theme.dim(" Usage: /rewind <n> \u2014 rewind to message N (1-based)"));
|
|
@@ -1961,28 +1969,21 @@ function createReviewCommands() {
|
|
|
1961
1969
|
console.log();
|
|
1962
1970
|
return;
|
|
1963
1971
|
}
|
|
1964
|
-
const
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
const
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
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
|
+
});
|
|
1975
1984
|
console.log(theme.success(`
|
|
1976
|
-
|
|
1977
|
-
console.log(theme.dim(`
|
|
1978
|
-
if (restored > 0 || deleted > 0) {
|
|
1979
|
-
console.log(theme.dim(` Files restored: ${restored}, files deleted: ${deleted}`));
|
|
1980
|
-
for (const f of files) {
|
|
1981
|
-
console.log(theme.dim(` ${f}`));
|
|
1982
|
-
}
|
|
1983
|
-
} else {
|
|
1984
|
-
console.log(theme.dim(" No file changes to revert."));
|
|
1985
|
-
}
|
|
1985
|
+
${lines[0]}`));
|
|
1986
|
+
for (const line of lines.slice(1)) console.log(theme.dim(` ${line}`));
|
|
1986
1987
|
console.log();
|
|
1987
1988
|
}
|
|
1988
1989
|
},
|
|
@@ -2266,7 +2267,7 @@ function createReviewCommands() {
|
|
|
2266
2267
|
usage: "/test [command|filter]",
|
|
2267
2268
|
async execute(args, ctx) {
|
|
2268
2269
|
try {
|
|
2269
|
-
const { executeTests } = await import("./run-tests-
|
|
2270
|
+
const { executeTests } = await import("./run-tests-4KTX5YMO.js");
|
|
2270
2271
|
const argStr = args.join(" ").trim();
|
|
2271
2272
|
let testArgs = {};
|
|
2272
2273
|
if (argStr) {
|
|
@@ -2348,39 +2349,29 @@ Summary: ${fileMap.size} file(s) \u2014 ${newFiles} new, ${modifiedFiles} modifi
|
|
|
2348
2349
|
ctx.renderer.printInfo("No active session to fork.");
|
|
2349
2350
|
return;
|
|
2350
2351
|
}
|
|
2351
|
-
const
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
const cp = session.checkpoints.find((c) => c.name === sub);
|
|
2356
|
-
if (!cp) {
|
|
2357
|
-
const available = session.checkpoints.map((c) => c.name);
|
|
2358
|
-
if (available.length > 0) {
|
|
2359
|
-
ctx.renderer.printInfo(
|
|
2360
|
-
`Checkpoint "${sub}" not found. Available: ${available.join(", ")}`
|
|
2361
|
-
);
|
|
2362
|
-
} else {
|
|
2363
|
-
ctx.renderer.printInfo(
|
|
2364
|
-
`Checkpoint "${sub}" not found. No checkpoints saved. Use /checkpoint save <name> first.`
|
|
2365
|
-
);
|
|
2366
|
-
}
|
|
2367
|
-
return;
|
|
2368
|
-
}
|
|
2369
|
-
messageCount = cp.messageIndex;
|
|
2370
|
-
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;
|
|
2371
2356
|
}
|
|
2372
2357
|
try {
|
|
2373
|
-
const originalId = session.id
|
|
2358
|
+
const originalId = session.id;
|
|
2374
2359
|
const originalTitle = session.title ?? "(untitled)";
|
|
2375
|
-
const forked = await ctx.forkSession(messageCount);
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
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();
|
|
2384
2375
|
ctx.refreshPrompt();
|
|
2385
2376
|
} catch (err) {
|
|
2386
2377
|
ctx.renderer.renderError(
|
|
@@ -3018,13 +3009,17 @@ function createSessionCommands() {
|
|
|
3018
3009
|
return [
|
|
3019
3010
|
{
|
|
3020
3011
|
name: "clear",
|
|
3021
|
-
description: "
|
|
3012
|
+
description: "Start a new session (previous conversation is kept)",
|
|
3022
3013
|
usage: "/clear",
|
|
3023
|
-
execute(_args, ctx) {
|
|
3024
|
-
ctx.sessions.current
|
|
3014
|
+
async execute(_args, ctx) {
|
|
3015
|
+
const prior = ctx.sessions.current;
|
|
3016
|
+
const priorId = prior?.id ?? null;
|
|
3017
|
+
const priorCount = prior?.messages.length ?? 0;
|
|
3018
|
+
if (priorCount > 0) await ctx.sessions.save();
|
|
3019
|
+
ctx.sessions.createSession(ctx.getCurrentProvider(), ctx.getCurrentModel());
|
|
3025
3020
|
ctx.resetSessionTokenUsage();
|
|
3026
3021
|
ctx.clearDevState();
|
|
3027
|
-
ctx.renderer.printInfo(
|
|
3022
|
+
ctx.renderer.printInfo(clearedSessionMessage(priorId, priorCount));
|
|
3028
3023
|
}
|
|
3029
3024
|
},
|
|
3030
3025
|
{
|
|
@@ -7269,7 +7264,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
7269
7264
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
7270
7265
|
process.exit(1);
|
|
7271
7266
|
}
|
|
7272
|
-
const { startWebServer } = await import("./server-
|
|
7267
|
+
const { startWebServer } = await import("./server-226R6675.js");
|
|
7273
7268
|
await startWebServer({ port, host: options.host });
|
|
7274
7269
|
});
|
|
7275
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) => {
|
|
@@ -7436,11 +7431,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
7436
7431
|
console.log(footer + "\n");
|
|
7437
7432
|
});
|
|
7438
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) => {
|
|
7439
|
-
const { runUsageCli } = await import("./usage-
|
|
7434
|
+
const { runUsageCli } = await import("./usage-FY3TEJJS.js");
|
|
7440
7435
|
await runUsageCli(options);
|
|
7441
7436
|
});
|
|
7442
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) => {
|
|
7443
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
7438
|
+
const { runDoctorCli } = await import("./doctor-cli-C2DFYU2M.js");
|
|
7444
7439
|
const argv = process.argv.slice(2);
|
|
7445
7440
|
await runDoctorCli({
|
|
7446
7441
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -7449,7 +7444,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
7449
7444
|
});
|
|
7450
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) => {
|
|
7451
7446
|
try {
|
|
7452
|
-
const batch = await import("./batch-
|
|
7447
|
+
const batch = await import("./batch-SBP6H7IK.js");
|
|
7453
7448
|
switch (action) {
|
|
7454
7449
|
case "submit":
|
|
7455
7450
|
if (!arg) {
|
|
@@ -7492,7 +7487,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
7492
7487
|
}
|
|
7493
7488
|
});
|
|
7494
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) => {
|
|
7495
|
-
const { startMcpServer } = await import("./server-
|
|
7490
|
+
const { startMcpServer } = await import("./server-4CZXYGJN.js");
|
|
7496
7491
|
await startMcpServer({
|
|
7497
7492
|
allowDestructive: !!options.allowDestructive,
|
|
7498
7493
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -7505,7 +7500,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
7505
7500
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
7506
7501
|
process.exit(1);
|
|
7507
7502
|
}
|
|
7508
|
-
const { runPrCli } = await import("./pr-
|
|
7503
|
+
const { runPrCli } = await import("./pr-J74HW44E.js");
|
|
7509
7504
|
const result = await runPrCli({
|
|
7510
7505
|
action,
|
|
7511
7506
|
target,
|
|
@@ -7525,8 +7520,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
7525
7520
|
process.exit(result.exitCode);
|
|
7526
7521
|
});
|
|
7527
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) => {
|
|
7528
|
-
const { runCi } = await import("./ci-
|
|
7529
|
-
const { formatCiResult } = await import("./ci-format-
|
|
7523
|
+
const { runCi } = await import("./ci-VAAMX44S.js");
|
|
7524
|
+
const { formatCiResult } = await import("./ci-format-RMULFSB5.js");
|
|
7530
7525
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
7531
7526
|
if (formats > 1) {
|
|
7532
7527
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -7684,7 +7679,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
7684
7679
|
config.get("customProviders"),
|
|
7685
7680
|
config.getConfigDir()
|
|
7686
7681
|
);
|
|
7687
|
-
const { startHub } = await import("./hub-
|
|
7682
|
+
const { startHub } = await import("./hub-XIU3YTOE.js");
|
|
7688
7683
|
await startHub(
|
|
7689
7684
|
{
|
|
7690
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";
|