jinzd-ai-cli 0.4.242 → 0.4.243
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-D3UHL432.js → batch-CUVZUPRK.js} +2 -2
- package/dist/{chunk-Y4CMNXZH.js → chunk-66CE3E6X.js} +1 -1
- package/dist/{chunk-LHINXQZF.js → chunk-DJGCG7SF.js} +1 -1
- package/dist/{chunk-J363BGOH.js → chunk-EMFCHE2B.js} +1 -1
- package/dist/{chunk-MKLPAQT6.js → chunk-GEWPLNKA.js} +1 -1
- package/dist/{chunk-PSP6UIKL.js → chunk-H3ARWBYR.js} +2 -2
- package/dist/{chunk-FRNWQIG6.js → chunk-HNJX3N2V.js} +3 -3
- package/dist/{chunk-FEMPCNX3.js → chunk-KILKF2VN.js} +28 -12
- package/dist/{chunk-6ZWNXHNH.js → chunk-L5IRDRWG.js} +1 -1
- package/dist/{chunk-MC2ZNPBC.js → chunk-PLEXBFCR.js} +1 -1
- package/dist/{chunk-UWV2NBCO.js → chunk-PNNZRJ67.js} +107 -2
- package/dist/{chunk-OO2PHOXD.js → chunk-QNK7GUUB.js} +3 -3
- package/dist/{chunk-D27TMEOV.js → chunk-TY4FSEZS.js} +107 -2
- package/dist/{chunk-WMAXYDCB.js → chunk-X73Y4JZI.js} +1 -1
- package/dist/{ci-WSED3Z6V.js → ci-3O3JR6FX.js} +4 -4
- package/dist/{ci-format-6AYL2X2J.js → ci-format-KGWF6KOU.js} +2 -2
- package/dist/{constants-FJ3L5GYO.js → constants-NMFRZ5LW.js} +1 -1
- package/dist/{doctor-cli-HCP56MKH.js → doctor-cli-4QUHTJZ4.js} +4 -4
- package/dist/electron-server.js +94 -78
- package/dist/{hub-K5MYSVEF.js → hub-2GXFPWOR.js} +1 -1
- package/dist/index.js +91 -25
- package/dist/{persistent-memory-EYAKL2XA.js → persistent-memory-VFBRMKGG.js} +12 -2
- package/dist/{persistent-memory-HWFNDQFQ.js → persistent-memory-ZCQKLIC5.js} +12 -2
- package/dist/{pr-OICMUN6R.js → pr-GIDFO4KP.js} +4 -4
- package/dist/{run-tests-DSEW5HED.js → run-tests-BMH6QJN2.js} +2 -2
- package/dist/{run-tests-B3FSE5NV.js → run-tests-WCZBWQFS.js} +2 -2
- package/dist/{server-2FS65CQZ.js → server-A5NGGDMP.js} +11 -11
- package/dist/{server-EDCGPEGC.js → server-FEFIFJDA.js} +5 -5
- package/dist/{task-orchestrator-WCZYV3TE.js → task-orchestrator-J2H6OV6R.js} +5 -5
- package/dist/{usage-WVUYNLOD.js → usage-7WJC234G.js} +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
scanProject,
|
|
18
18
|
sessionHasMeaningfulContent,
|
|
19
19
|
setupProxy
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-H3ARWBYR.js";
|
|
21
21
|
import {
|
|
22
22
|
computeCost,
|
|
23
23
|
formatCost,
|
|
@@ -50,9 +50,10 @@ import {
|
|
|
50
50
|
spawnAgentContext,
|
|
51
51
|
theme,
|
|
52
52
|
undoStack
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-KILKF2VN.js";
|
|
54
54
|
import {
|
|
55
55
|
addMemoryEntry,
|
|
56
|
+
backupMemoryStore,
|
|
56
57
|
clearMemoryEntries,
|
|
57
58
|
countPendingMemories,
|
|
58
59
|
deleteMemoryEntry,
|
|
@@ -62,6 +63,7 @@ import {
|
|
|
62
63
|
findSimilarMemory,
|
|
63
64
|
formatMemoryForPrompt,
|
|
64
65
|
isMemoryExpired,
|
|
66
|
+
isMemoryStale,
|
|
65
67
|
listMemoryEntries,
|
|
66
68
|
listOrphanedProjectMemories,
|
|
67
69
|
loadMemoryEntries,
|
|
@@ -69,9 +71,12 @@ import {
|
|
|
69
71
|
memoryStorePath,
|
|
70
72
|
parseWritableScope,
|
|
71
73
|
rebindMemoryProject,
|
|
74
|
+
restoreMemoryEntries,
|
|
75
|
+
searchPersistentMemories,
|
|
76
|
+
touchMemoryReferences,
|
|
72
77
|
updateMemoryApproval,
|
|
73
78
|
updateMemoryEntry
|
|
74
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-TY4FSEZS.js";
|
|
75
80
|
import "./chunk-K3CF65QH.js";
|
|
76
81
|
import "./chunk-UUSRWSSX.js";
|
|
77
82
|
import "./chunk-CKH4KQ4E.js";
|
|
@@ -85,13 +90,13 @@ import {
|
|
|
85
90
|
formatDoctorReport,
|
|
86
91
|
loadContextFiles,
|
|
87
92
|
writeCrashLog
|
|
88
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-HNJX3N2V.js";
|
|
89
94
|
import {
|
|
90
95
|
ProviderRegistry
|
|
91
96
|
} from "./chunk-QYQI7ZWK.js";
|
|
92
97
|
import {
|
|
93
98
|
ConfigManager
|
|
94
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-X73Y4JZI.js";
|
|
95
100
|
import {
|
|
96
101
|
describePlugin,
|
|
97
102
|
getActivePluginAssets,
|
|
@@ -108,7 +113,7 @@ import {
|
|
|
108
113
|
trustHook,
|
|
109
114
|
trustPlugin,
|
|
110
115
|
untrustHook
|
|
111
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-EMFCHE2B.js";
|
|
112
117
|
import {
|
|
113
118
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
114
119
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -141,7 +146,7 @@ import {
|
|
|
141
146
|
import {
|
|
142
147
|
fileCheckpoints
|
|
143
148
|
} from "./chunk-4BKXL7SM.js";
|
|
144
|
-
import "./chunk-
|
|
149
|
+
import "./chunk-L5IRDRWG.js";
|
|
145
150
|
import {
|
|
146
151
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
147
152
|
AUTHOR,
|
|
@@ -160,7 +165,7 @@ import {
|
|
|
160
165
|
SKILLS_DIR_NAME,
|
|
161
166
|
VERSION,
|
|
162
167
|
buildUserIdentityPrompt
|
|
163
|
-
} from "./chunk-
|
|
168
|
+
} from "./chunk-66CE3E6X.js";
|
|
164
169
|
import {
|
|
165
170
|
buildChatIndex,
|
|
166
171
|
clearChatIndex,
|
|
@@ -1382,7 +1387,7 @@ No tools match "${filter}".
|
|
|
1382
1387
|
const { join: join6 } = await import("path");
|
|
1383
1388
|
const { existsSync: existsSync5 } = await import("fs");
|
|
1384
1389
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
|
|
1385
|
-
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-
|
|
1390
|
+
const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-NMFRZ5LW.js");
|
|
1386
1391
|
const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
|
|
1387
1392
|
const cwd = process.cwd();
|
|
1388
1393
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -2361,7 +2366,7 @@ function createReviewCommands() {
|
|
|
2361
2366
|
usage: "/test [command|filter]",
|
|
2362
2367
|
async execute(args, ctx) {
|
|
2363
2368
|
try {
|
|
2364
|
-
const { executeTests } = await import("./run-tests-
|
|
2369
|
+
const { executeTests } = await import("./run-tests-BMH6QJN2.js");
|
|
2365
2370
|
const argStr = args.join(" ").trim();
|
|
2366
2371
|
let testArgs = {};
|
|
2367
2372
|
if (argStr) {
|
|
@@ -2717,7 +2722,7 @@ function createMemoryCommands() {
|
|
|
2717
2722
|
{
|
|
2718
2723
|
name: "memory",
|
|
2719
2724
|
description: "Governed persistent memory + chat memory recall index",
|
|
2720
|
-
usage: "/memory [show|add|edit|approve|reject|delete|expire|rebind|clear|export|path|rebuild|refresh|status|recall|index-clear]",
|
|
2725
|
+
usage: "/memory [show|add|edit|approve|reject|delete|expire|rebind|clear|backup|restore|export|path|rebuild|refresh|status|recall|index-clear]",
|
|
2721
2726
|
async execute(args, ctx) {
|
|
2722
2727
|
const configDir = ctx.config.getConfigDir();
|
|
2723
2728
|
const sub = args[0] ?? "show";
|
|
@@ -2792,15 +2797,31 @@ function createMemoryCommands() {
|
|
|
2792
2797
|
ctx.renderer.printInfo("Usage: /memory recall <query>");
|
|
2793
2798
|
return;
|
|
2794
2799
|
}
|
|
2800
|
+
const persistentHits = searchPersistentMemories(configDir, query, process.cwd(), 3);
|
|
2801
|
+
if (persistentHits.length > 0) {
|
|
2802
|
+
touchMemoryReferences(configDir, persistentHits.map((h) => h.entry.id));
|
|
2803
|
+
console.log(theme.heading(`
|
|
2804
|
+
\u{1F4DD} Persistent memory \u2014 ${persistentHits.length} hit(s):
|
|
2805
|
+
`));
|
|
2806
|
+
for (const [i, h] of persistentHits.entries()) {
|
|
2807
|
+
console.log(theme.accent(` [${i + 1}] id ${h.entry.id.slice(0, 8)} \xB7 ${h.entry.scope} \xB7 coverage ${h.score.toFixed(2)}`));
|
|
2808
|
+
console.log(theme.dim(" ") + h.entry.content.replace(/\n/g, "\n "));
|
|
2809
|
+
console.log();
|
|
2810
|
+
}
|
|
2811
|
+
}
|
|
2795
2812
|
try {
|
|
2796
2813
|
const hits = await searchChatMemory(query, { topK: 5, minScore: 0.2 });
|
|
2797
2814
|
if (hits.length === 0) {
|
|
2798
|
-
|
|
2815
|
+
if (persistentHits.length === 0) {
|
|
2816
|
+
console.log(theme.warning(` No memories matched "${query}" (persistent + chat index).`));
|
|
2817
|
+
} else {
|
|
2818
|
+
console.log(theme.dim(` (no chat-history hits above score 0.20)`));
|
|
2819
|
+
}
|
|
2799
2820
|
console.log();
|
|
2800
2821
|
return;
|
|
2801
2822
|
}
|
|
2802
2823
|
console.log(theme.heading(`
|
|
2803
|
-
\u{1F9E0}
|
|
2824
|
+
\u{1F9E0} Chat history recall for "${query}" \u2014 ${hits.length} hit(s):
|
|
2804
2825
|
`));
|
|
2805
2826
|
for (const [i, h] of hits.entries()) {
|
|
2806
2827
|
const ts = h.chunk.timestamp.slice(0, 16).replace("T", " ");
|
|
@@ -2866,6 +2887,15 @@ function createMemoryCommands() {
|
|
|
2866
2887
|
entries = entries.filter((m) => m.content.toLowerCase().includes(searchText) || m.id.startsWith(searchText));
|
|
2867
2888
|
filters.push(`search:"${searchText}"`);
|
|
2868
2889
|
}
|
|
2890
|
+
const staleDays = typeof parsed.flags.stale === "string" ? Number(parsed.flags.stale) : void 0;
|
|
2891
|
+
if (staleDays !== void 0) {
|
|
2892
|
+
if (!Number.isFinite(staleDays) || staleDays <= 0) {
|
|
2893
|
+
ctx.renderer.renderError("Usage: /memory show --stale <days> (positive number)");
|
|
2894
|
+
return;
|
|
2895
|
+
}
|
|
2896
|
+
entries = entries.filter((m) => isMemoryStale(m, staleDays));
|
|
2897
|
+
filters.push(`stale>${staleDays}d`);
|
|
2898
|
+
}
|
|
2869
2899
|
if (entries.length === 0) {
|
|
2870
2900
|
ctx.renderer.printInfo(filters.length > 0 ? `No memory entries match [${filters.join(", ")}]` : "Memory is empty");
|
|
2871
2901
|
return;
|
|
@@ -2880,7 +2910,8 @@ function createMemoryCommands() {
|
|
|
2880
2910
|
entry.sourceProject ? `project ${entry.sourceProject}` : ""
|
|
2881
2911
|
].filter(Boolean).join(" \xB7 ");
|
|
2882
2912
|
console.log(theme.accent(` ${entry.id.slice(0, 8)} ${status} scope:${entry.scope} sensitivity:${entry.sensitivity}`));
|
|
2883
|
-
|
|
2913
|
+
const lastRef = entry.lastReferencedAt ? ` \xB7 last-referenced: ${entry.lastReferencedAt.slice(0, 10)}` : "";
|
|
2914
|
+
console.log(theme.dim(` source: ${source} \xB7 created: ${entry.createdAt.replace("T", " ").slice(0, 19)}${lastRef}${entry.expiresAt ? ` \xB7 expires: ${entry.expiresAt}` : ""}`));
|
|
2884
2915
|
console.log(" " + entry.content.replace(/\n/g, "\n "));
|
|
2885
2916
|
console.log();
|
|
2886
2917
|
}
|
|
@@ -3022,12 +3053,35 @@ function createMemoryCommands() {
|
|
|
3022
3053
|
if (result.backupPath) {
|
|
3023
3054
|
ctx.renderer.printInfo(`Backup saved: ${result.backupPath}`);
|
|
3024
3055
|
}
|
|
3056
|
+
} else if (sub === "backup") {
|
|
3057
|
+
const parsed = parseFlags(args.slice(1));
|
|
3058
|
+
try {
|
|
3059
|
+
const result = backupMemoryStore(configDir, typeof parsed.flags.out === "string" ? parsed.flags.out : void 0);
|
|
3060
|
+
ctx.renderer.printSuccess(`Backed up ${result.count} entr${result.count > 1 ? "ies" : "y"} to ${result.backupPath}`);
|
|
3061
|
+
} catch (err) {
|
|
3062
|
+
ctx.renderer.renderError(err instanceof Error ? err.message : String(err));
|
|
3063
|
+
}
|
|
3064
|
+
} else if (sub === "restore") {
|
|
3065
|
+
const file = args[1];
|
|
3066
|
+
if (!file) {
|
|
3067
|
+
ctx.renderer.printInfo("Usage: /memory restore <file> (accepts .jsonl backups or /memory export JSON)");
|
|
3068
|
+
return;
|
|
3069
|
+
}
|
|
3070
|
+
try {
|
|
3071
|
+
const result = restoreMemoryEntries(configDir, file);
|
|
3072
|
+
ctx.renderer.printSuccess(`Restored ${result.imported} entr${result.imported === 1 ? "y" : "ies"} (${result.skipped} duplicate${result.skipped === 1 ? "" : "s"} skipped)`);
|
|
3073
|
+
if (result.backupPath) ctx.renderer.printInfo(`Pre-restore backup: ${result.backupPath}`);
|
|
3074
|
+
const pending = countPendingMemories(configDir);
|
|
3075
|
+
if (pending > 0) ctx.renderer.printInfo(`${pending} entr${pending > 1 ? "ies" : "y"} pending approval \u2014 /memory show --pending`);
|
|
3076
|
+
} catch (err) {
|
|
3077
|
+
ctx.renderer.renderError(`Restore failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
3078
|
+
}
|
|
3025
3079
|
} else if (sub === "path") {
|
|
3026
3080
|
console.log(theme.accent(memoryStorePath(configDir)));
|
|
3027
3081
|
console.log(theme.dim(memoryMarkdownPath(configDir)));
|
|
3028
3082
|
} else {
|
|
3029
3083
|
ctx.renderer.printInfo(
|
|
3030
|
-
"Governed persistent memory: show [--pending|--orphaned|--scope <s>|--search <text>] | add | edit <id> <text> | approve/reject/delete/expire <id> | rebind <id> <path> | clear | export [--format json|md] [--out <file>] | path\nChat memory index (cross-session recall): rebuild | refresh | status | recall <query> | index-clear"
|
|
3084
|
+
"Governed persistent memory: show [--pending|--orphaned|--stale <days>|--scope <s>|--search <text>] | add | edit <id> <text> | approve/reject/delete/expire <id> | rebind <id> <path> | clear | backup [--out <file>] | restore <file> | export [--format json|md] [--out <file>] | path\nChat memory index (cross-session recall): rebuild | refresh | status | recall <query> | index-clear"
|
|
3031
3085
|
);
|
|
3032
3086
|
}
|
|
3033
3087
|
}
|
|
@@ -6164,7 +6218,19 @@ Session '${this.resumeSessionId}' not found.
|
|
|
6164
6218
|
chunks: initial.chunks,
|
|
6165
6219
|
sessions: initial.sessions
|
|
6166
6220
|
};
|
|
6167
|
-
if (!initial.exists)
|
|
6221
|
+
if (!initial.exists) {
|
|
6222
|
+
try {
|
|
6223
|
+
const sessionCount = this.sessions.listSessions().length;
|
|
6224
|
+
if (sessionCount >= 5) {
|
|
6225
|
+
process.stdout.write(theme.dim(
|
|
6226
|
+
` \u{1F4A1} ${sessionCount} past sessions have no memory index \u2014 run /memory rebuild to enable cross-session recall (first run downloads ~117 MB)
|
|
6227
|
+
`
|
|
6228
|
+
));
|
|
6229
|
+
}
|
|
6230
|
+
} catch {
|
|
6231
|
+
}
|
|
6232
|
+
return;
|
|
6233
|
+
}
|
|
6168
6234
|
const stats = await buildChatIndex2({ full: false });
|
|
6169
6235
|
const after = getChatIndexStatus2();
|
|
6170
6236
|
this.chatMemoryStatus = {
|
|
@@ -7948,7 +8014,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
7948
8014
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
7949
8015
|
process.exit(1);
|
|
7950
8016
|
}
|
|
7951
|
-
const { startWebServer } = await import("./server-
|
|
8017
|
+
const { startWebServer } = await import("./server-A5NGGDMP.js");
|
|
7952
8018
|
await startWebServer({ port, host: options.host });
|
|
7953
8019
|
});
|
|
7954
8020
|
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) => {
|
|
@@ -8115,11 +8181,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
8115
8181
|
console.log(footer + "\n");
|
|
8116
8182
|
});
|
|
8117
8183
|
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) => {
|
|
8118
|
-
const { runUsageCli } = await import("./usage-
|
|
8184
|
+
const { runUsageCli } = await import("./usage-7WJC234G.js");
|
|
8119
8185
|
await runUsageCli(options);
|
|
8120
8186
|
});
|
|
8121
8187
|
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) => {
|
|
8122
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
8188
|
+
const { runDoctorCli } = await import("./doctor-cli-4QUHTJZ4.js");
|
|
8123
8189
|
const argv = process.argv.slice(2);
|
|
8124
8190
|
await runDoctorCli({
|
|
8125
8191
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -8128,7 +8194,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
8128
8194
|
});
|
|
8129
8195
|
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) => {
|
|
8130
8196
|
try {
|
|
8131
|
-
const batch = await import("./batch-
|
|
8197
|
+
const batch = await import("./batch-CUVZUPRK.js");
|
|
8132
8198
|
switch (action) {
|
|
8133
8199
|
case "submit":
|
|
8134
8200
|
if (!arg) {
|
|
@@ -8171,7 +8237,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
8171
8237
|
}
|
|
8172
8238
|
});
|
|
8173
8239
|
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) => {
|
|
8174
|
-
const { startMcpServer } = await import("./server-
|
|
8240
|
+
const { startMcpServer } = await import("./server-FEFIFJDA.js");
|
|
8175
8241
|
await startMcpServer({
|
|
8176
8242
|
allowDestructive: !!options.allowDestructive,
|
|
8177
8243
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -8184,7 +8250,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8184
8250
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
8185
8251
|
process.exit(1);
|
|
8186
8252
|
}
|
|
8187
|
-
const { runPrCli } = await import("./pr-
|
|
8253
|
+
const { runPrCli } = await import("./pr-GIDFO4KP.js");
|
|
8188
8254
|
const result = await runPrCli({
|
|
8189
8255
|
action,
|
|
8190
8256
|
target,
|
|
@@ -8204,8 +8270,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8204
8270
|
process.exit(result.exitCode);
|
|
8205
8271
|
});
|
|
8206
8272
|
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) => {
|
|
8207
|
-
const { runCi } = await import("./ci-
|
|
8208
|
-
const { formatCiResult } = await import("./ci-format-
|
|
8273
|
+
const { runCi } = await import("./ci-3O3JR6FX.js");
|
|
8274
|
+
const { formatCiResult } = await import("./ci-format-KGWF6KOU.js");
|
|
8209
8275
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
8210
8276
|
if (formats > 1) {
|
|
8211
8277
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -8363,7 +8429,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
8363
8429
|
config.get("customProviders"),
|
|
8364
8430
|
config.getConfigDir()
|
|
8365
8431
|
);
|
|
8366
|
-
const { startHub } = await import("./hub-
|
|
8432
|
+
const { startHub } = await import("./hub-2GXFPWOR.js");
|
|
8367
8433
|
await startHub(
|
|
8368
8434
|
{
|
|
8369
8435
|
topic: topic ?? "",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
addMemoryEntry,
|
|
4
|
+
backupMemoryStore,
|
|
4
5
|
clearMemoryEntries,
|
|
5
6
|
countPendingMemories,
|
|
6
7
|
deleteMemoryEntry,
|
|
@@ -11,6 +12,7 @@ import {
|
|
|
11
12
|
formatMemoryForPrompt,
|
|
12
13
|
getProjectKey,
|
|
13
14
|
isMemoryExpired,
|
|
15
|
+
isMemoryStale,
|
|
14
16
|
isMemoryVisibleInProject,
|
|
15
17
|
listMemoryEntries,
|
|
16
18
|
listOrphanedProjectMemories,
|
|
@@ -20,16 +22,20 @@ import {
|
|
|
20
22
|
parseWritableScope,
|
|
21
23
|
rebindMemoryProject,
|
|
22
24
|
renderMemoryMarkdown,
|
|
25
|
+
restoreMemoryEntries,
|
|
26
|
+
searchPersistentMemories,
|
|
23
27
|
syncLegacyMarkdown,
|
|
28
|
+
touchMemoryReferences,
|
|
24
29
|
updateMemoryApproval,
|
|
25
30
|
updateMemoryEntry
|
|
26
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-TY4FSEZS.js";
|
|
27
32
|
import "./chunk-HOSJZMQS.js";
|
|
28
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-66CE3E6X.js";
|
|
29
34
|
import "./chunk-B5TYJO7V.js";
|
|
30
35
|
import "./chunk-IW3Q7AE5.js";
|
|
31
36
|
export {
|
|
32
37
|
addMemoryEntry,
|
|
38
|
+
backupMemoryStore,
|
|
33
39
|
clearMemoryEntries,
|
|
34
40
|
countPendingMemories,
|
|
35
41
|
deleteMemoryEntry,
|
|
@@ -40,6 +46,7 @@ export {
|
|
|
40
46
|
formatMemoryForPrompt,
|
|
41
47
|
getProjectKey,
|
|
42
48
|
isMemoryExpired,
|
|
49
|
+
isMemoryStale,
|
|
43
50
|
isMemoryVisibleInProject,
|
|
44
51
|
listMemoryEntries,
|
|
45
52
|
listOrphanedProjectMemories,
|
|
@@ -49,7 +56,10 @@ export {
|
|
|
49
56
|
parseWritableScope,
|
|
50
57
|
rebindMemoryProject,
|
|
51
58
|
renderMemoryMarkdown,
|
|
59
|
+
restoreMemoryEntries,
|
|
60
|
+
searchPersistentMemories,
|
|
52
61
|
syncLegacyMarkdown,
|
|
62
|
+
touchMemoryReferences,
|
|
53
63
|
updateMemoryApproval,
|
|
54
64
|
updateMemoryEntry
|
|
55
65
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
addMemoryEntry,
|
|
3
|
+
backupMemoryStore,
|
|
3
4
|
clearMemoryEntries,
|
|
4
5
|
countPendingMemories,
|
|
5
6
|
deleteMemoryEntry,
|
|
@@ -10,6 +11,7 @@ import {
|
|
|
10
11
|
formatMemoryForPrompt,
|
|
11
12
|
getProjectKey,
|
|
12
13
|
isMemoryExpired,
|
|
14
|
+
isMemoryStale,
|
|
13
15
|
isMemoryVisibleInProject,
|
|
14
16
|
listMemoryEntries,
|
|
15
17
|
listOrphanedProjectMemories,
|
|
@@ -19,15 +21,19 @@ import {
|
|
|
19
21
|
parseWritableScope,
|
|
20
22
|
rebindMemoryProject,
|
|
21
23
|
renderMemoryMarkdown,
|
|
24
|
+
restoreMemoryEntries,
|
|
25
|
+
searchPersistentMemories,
|
|
22
26
|
syncLegacyMarkdown,
|
|
27
|
+
touchMemoryReferences,
|
|
23
28
|
updateMemoryApproval,
|
|
24
29
|
updateMemoryEntry
|
|
25
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-PNNZRJ67.js";
|
|
26
31
|
import "./chunk-YVTASHS5.js";
|
|
27
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-GEWPLNKA.js";
|
|
28
33
|
import "./chunk-6BUTA5VW.js";
|
|
29
34
|
export {
|
|
30
35
|
addMemoryEntry,
|
|
36
|
+
backupMemoryStore,
|
|
31
37
|
clearMemoryEntries,
|
|
32
38
|
countPendingMemories,
|
|
33
39
|
deleteMemoryEntry,
|
|
@@ -38,6 +44,7 @@ export {
|
|
|
38
44
|
formatMemoryForPrompt,
|
|
39
45
|
getProjectKey,
|
|
40
46
|
isMemoryExpired,
|
|
47
|
+
isMemoryStale,
|
|
41
48
|
isMemoryVisibleInProject,
|
|
42
49
|
listMemoryEntries,
|
|
43
50
|
listOrphanedProjectMemories,
|
|
@@ -47,7 +54,10 @@ export {
|
|
|
47
54
|
parseWritableScope,
|
|
48
55
|
rebindMemoryProject,
|
|
49
56
|
renderMemoryMarkdown,
|
|
57
|
+
restoreMemoryEntries,
|
|
58
|
+
searchPersistentMemories,
|
|
50
59
|
syncLegacyMarkdown,
|
|
60
|
+
touchMemoryReferences,
|
|
51
61
|
updateMemoryApproval,
|
|
52
62
|
updateMemoryEntry
|
|
53
63
|
};
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
countSeverity,
|
|
4
4
|
runCi
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-QNK7GUUB.js";
|
|
6
|
+
import "./chunk-DJGCG7SF.js";
|
|
7
7
|
import {
|
|
8
8
|
buildReviewPrompt,
|
|
9
9
|
buildSecurityReviewPrompt,
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
} from "./chunk-QYQI7ZWK.js";
|
|
15
15
|
import {
|
|
16
16
|
ConfigManager
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-X73Y4JZI.js";
|
|
18
18
|
import "./chunk-O3XSFPYH.js";
|
|
19
19
|
import "./chunk-5ULLIOVC.js";
|
|
20
20
|
import {
|
|
21
21
|
VERSION
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-66CE3E6X.js";
|
|
23
23
|
import "./chunk-IW3Q7AE5.js";
|
|
24
24
|
|
|
25
25
|
// src/cli/pr.ts
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
scanDirTree,
|
|
24
24
|
scanProject,
|
|
25
25
|
setupProxy
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-H3ARWBYR.js";
|
|
27
27
|
import {
|
|
28
28
|
computeCost,
|
|
29
29
|
formatCost,
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
spawnAgentContext,
|
|
64
64
|
truncateOutput,
|
|
65
65
|
undoStack
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-KILKF2VN.js";
|
|
67
67
|
import {
|
|
68
68
|
addMemoryEntry,
|
|
69
69
|
clearMemoryEntries,
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
parseWritableScope,
|
|
78
78
|
updateMemoryApproval,
|
|
79
79
|
updateMemoryEntry
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-TY4FSEZS.js";
|
|
81
81
|
import "./chunk-K3CF65QH.js";
|
|
82
82
|
import "./chunk-UUSRWSSX.js";
|
|
83
83
|
import "./chunk-CKH4KQ4E.js";
|
|
@@ -90,13 +90,13 @@ import {
|
|
|
90
90
|
buildDoctorReport,
|
|
91
91
|
formatDoctorReport,
|
|
92
92
|
loadContextFiles
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-HNJX3N2V.js";
|
|
94
94
|
import {
|
|
95
95
|
ProviderRegistry
|
|
96
96
|
} from "./chunk-QYQI7ZWK.js";
|
|
97
97
|
import {
|
|
98
98
|
ConfigManager
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-X73Y4JZI.js";
|
|
100
100
|
import {
|
|
101
101
|
describePlugin,
|
|
102
102
|
getActivePluginAssets,
|
|
@@ -111,7 +111,7 @@ import {
|
|
|
111
111
|
runTool,
|
|
112
112
|
setPluginEnabled,
|
|
113
113
|
trustPlugin
|
|
114
|
-
} from "./chunk-
|
|
114
|
+
} from "./chunk-EMFCHE2B.js";
|
|
115
115
|
import {
|
|
116
116
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
117
117
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -135,7 +135,7 @@ import {
|
|
|
135
135
|
getGitRoot
|
|
136
136
|
} from "./chunk-HOSJZMQS.js";
|
|
137
137
|
import "./chunk-4BKXL7SM.js";
|
|
138
|
-
import "./chunk-
|
|
138
|
+
import "./chunk-L5IRDRWG.js";
|
|
139
139
|
import {
|
|
140
140
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
141
141
|
AUTHOR,
|
|
@@ -151,7 +151,7 @@ import {
|
|
|
151
151
|
SKILLS_DIR_NAME,
|
|
152
152
|
VERSION,
|
|
153
153
|
buildUserIdentityPrompt
|
|
154
|
-
} from "./chunk-
|
|
154
|
+
} from "./chunk-66CE3E6X.js";
|
|
155
155
|
import "./chunk-IGPFYNZA.js";
|
|
156
156
|
import "./chunk-KHYD3WXE.js";
|
|
157
157
|
import "./chunk-PJ3ONBWZ.js";
|
|
@@ -803,7 +803,7 @@ Cache: write=${cacheCreate} read=${cacheRead}` : "";
|
|
|
803
803
|
Cost: ${formatCost(cost)}` : "";
|
|
804
804
|
let memoryLine = "";
|
|
805
805
|
try {
|
|
806
|
-
const { countPendingMemories } = await import("./persistent-memory-
|
|
806
|
+
const { countPendingMemories } = await import("./persistent-memory-VFBRMKGG.js");
|
|
807
807
|
const pending = countPendingMemories(ctx.config.getConfigDir());
|
|
808
808
|
if (pending > 0) memoryLine = `
|
|
809
809
|
Memory: \u26A0 ${pending} pending approval \u2014 see the Memory panel or /memory`;
|
|
@@ -1612,7 +1612,7 @@ async function handleSecurityReview(args, ctx) {
|
|
|
1612
1612
|
async function handleTest(args, ctx) {
|
|
1613
1613
|
ctx.send({ type: "info", message: "\u{1F9EA} Running tests..." });
|
|
1614
1614
|
try {
|
|
1615
|
-
const { executeTests } = await import("./run-tests-
|
|
1615
|
+
const { executeTests } = await import("./run-tests-BMH6QJN2.js");
|
|
1616
1616
|
const argStr = args.join(" ").trim();
|
|
1617
1617
|
let testArgs = {};
|
|
1618
1618
|
if (argStr) {
|
|
@@ -1876,7 +1876,7 @@ async function handleMemory(args, ctx) {
|
|
|
1876
1876
|
ctx.handleMemoryManage(sub, args[1], sub === "expire" ? args[2] : void 0);
|
|
1877
1877
|
} else if (sub === "export") {
|
|
1878
1878
|
if (args[1] === "md") {
|
|
1879
|
-
const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-
|
|
1879
|
+
const { exportMemoryEntries: exportMemoryEntries2 } = await import("./persistent-memory-VFBRMKGG.js");
|
|
1880
1880
|
ctx.send({
|
|
1881
1881
|
type: "export_data",
|
|
1882
1882
|
format: "md",
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ToolRegistry
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-KILKF2VN.js";
|
|
5
|
+
import "./chunk-TY4FSEZS.js";
|
|
6
6
|
import "./chunk-K3CF65QH.js";
|
|
7
7
|
import "./chunk-UUSRWSSX.js";
|
|
8
8
|
import "./chunk-CKH4KQ4E.js";
|
|
9
9
|
import "./chunk-BXP6YZ2P.js";
|
|
10
10
|
import {
|
|
11
11
|
runTool
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EMFCHE2B.js";
|
|
13
13
|
import {
|
|
14
14
|
getDangerLevel,
|
|
15
15
|
schemaToJsonSchema
|
|
@@ -17,10 +17,10 @@ import {
|
|
|
17
17
|
import "./chunk-5ULLIOVC.js";
|
|
18
18
|
import "./chunk-HOSJZMQS.js";
|
|
19
19
|
import "./chunk-4BKXL7SM.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-L5IRDRWG.js";
|
|
21
21
|
import {
|
|
22
22
|
VERSION
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-66CE3E6X.js";
|
|
24
24
|
import "./chunk-IGPFYNZA.js";
|
|
25
25
|
import "./chunk-KHYD3WXE.js";
|
|
26
26
|
import "./chunk-PJ3ONBWZ.js";
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
ToolRegistry,
|
|
4
4
|
googleSearchContext,
|
|
5
5
|
truncateOutput
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-KILKF2VN.js";
|
|
7
|
+
import "./chunk-TY4FSEZS.js";
|
|
8
8
|
import "./chunk-K3CF65QH.js";
|
|
9
9
|
import "./chunk-UUSRWSSX.js";
|
|
10
10
|
import "./chunk-CKH4KQ4E.js";
|
|
11
11
|
import "./chunk-BXP6YZ2P.js";
|
|
12
12
|
import {
|
|
13
13
|
runTool
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-EMFCHE2B.js";
|
|
15
15
|
import {
|
|
16
16
|
getDangerLevel,
|
|
17
17
|
runLeanAgentLoop
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
import "./chunk-5ULLIOVC.js";
|
|
20
20
|
import "./chunk-HOSJZMQS.js";
|
|
21
21
|
import "./chunk-4BKXL7SM.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-L5IRDRWG.js";
|
|
23
23
|
import {
|
|
24
24
|
SUBAGENT_ALLOWED_TOOLS
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-66CE3E6X.js";
|
|
26
26
|
import "./chunk-IGPFYNZA.js";
|
|
27
27
|
import "./chunk-KHYD3WXE.js";
|
|
28
28
|
import "./chunk-PJ3ONBWZ.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
} from "./chunk-E44DTERW.js";
|
|
9
9
|
import {
|
|
10
10
|
ConfigManager
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-X73Y4JZI.js";
|
|
12
12
|
import "./chunk-5ULLIOVC.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-66CE3E6X.js";
|
|
14
14
|
import "./chunk-IW3Q7AE5.js";
|
|
15
15
|
|
|
16
16
|
// src/cli/usage.ts
|