jinzd-ai-cli 0.4.246 → 0.4.248
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/README.md +8 -3
- package/README.zh-CN.md +8 -3
- package/dist/{batch-AHW7WALD.js → batch-CC3LCNXM.js} +2 -2
- package/dist/{chat-index-ALUHFJKI.js → chat-index-7MMTGQNA.js} +2 -2
- package/dist/{chat-index-ML5FF5L6.js → chat-index-Q6BKWWAM.js} +1 -1
- package/dist/{chunk-DJDEXHOT.js → chunk-23ZIOVZR.js} +4 -4
- package/dist/{chunk-QYQI7ZWK.js → chunk-2QZMITSL.js} +13 -1
- package/dist/{chunk-IGPFYNZA.js → chunk-6RPGQ5CG.js} +1 -1
- package/dist/{chunk-XK22CVID.js → chunk-BIZFOVNA.js} +1 -1
- package/dist/{chunk-YVMACMXW.js → chunk-EWLXBTSC.js} +1 -1
- package/dist/{chunk-OMSOAFXY.js → chunk-G77EIVBY.js} +1 -1
- package/dist/{chunk-K3CF65QH.js → chunk-GLSR2NR3.js} +1 -1
- package/dist/{chunk-CJ3BPLHZ.js → chunk-GS5XW5UJ.js} +1 -1
- package/dist/{chunk-E44DTERW.js → chunk-GUOLPI33.js} +3 -0
- package/dist/{chunk-6Y42RN5H.js → chunk-HTOKVD7R.js} +4 -4
- package/dist/{chunk-DT77O33T.js → chunk-JQXXPTWL.js} +1 -1
- package/dist/{chunk-PJ3ONBWZ.js → chunk-NYNSYLFY.js} +1 -1
- package/dist/{chunk-KWQKQVPH.js → chunk-OBULDJSU.js} +1 -1
- package/dist/{chunk-LEKOBVOQ.js → chunk-OHV7DYIS.js} +4 -5
- package/dist/{chunk-LZGPGPA6.js → chunk-PNFQDFHK.js} +1 -1
- package/dist/{chunk-BNERFXVO.js → chunk-QCG6UU2S.js} +1 -1
- package/dist/{chunk-Z7JROM3J.js → chunk-SAZGFYBU.js} +1 -1
- package/dist/{chunk-P2LB6S4I.js → chunk-SHG2QSQA.js} +1 -1
- package/dist/{chunk-USJF35NB.js → chunk-U3QWCBRG.js} +1 -1
- package/dist/{chunk-GQYRPBIQ.js → chunk-WYRW2W4O.js} +12 -12
- package/dist/{chunk-WYNPWHXB.js → chunk-Z4LVPM3N.js} +1 -1
- package/dist/{chunk-NV63EYFL.js → chunk-ZWEZNKDW.js} +1 -1
- package/dist/{chunk-YQUBYTDR.js → chunk-ZX3ZYRU7.js} +1 -1
- package/dist/{ci-VOGIC6S4.js → ci-KFVU4CHS.js} +5 -5
- package/dist/{ci-format-BHCSMT5U.js → ci-format-IFFCSCCN.js} +2 -2
- package/dist/{constants-J4OLBH72.js → constants-3C4JLZVQ.js} +1 -1
- package/dist/{doctor-cli-IR3E3XHB.js → doctor-cli-XJOK5LJZ.js} +5 -5
- package/dist/electron-server.js +170 -136
- package/dist/{hub-SFFFYMGO.js → hub-6TQFYGZO.js} +2 -2
- package/dist/index.js +31 -32
- package/dist/{indexer-4WWS3VIL.js → indexer-M2LJGTY2.js} +1 -1
- package/dist/{indexer-2AG4G6B5.js → indexer-VZETNE4H.js} +1 -1
- package/dist/{persist-WGIJ6RXY.js → persist-A2QSXYFY.js} +3 -3
- package/dist/{persistent-memory-EKZ2JF7M.js → persistent-memory-JBWBMA56.js} +2 -2
- package/dist/{persistent-memory-3KH2EVHA.js → persistent-memory-QQXFCUNL.js} +2 -2
- package/dist/{pr-BNS3OHDM.js → pr-TMPU2U2P.js} +5 -5
- package/dist/{run-tests-PW4WC4OG.js → run-tests-2A3CASVZ.js} +2 -2
- package/dist/{run-tests-ZKHXKCQB.js → run-tests-NNML2XVV.js} +2 -2
- package/dist/{server-D2ID3GYA.js → server-6L5XRY4K.js} +113 -93
- package/dist/{server-3HLBEWNZ.js → server-ANNA57CP.js} +8 -8
- package/dist/{task-orchestrator-FMCI4RPX.js → task-orchestrator-URY32ZSQ.js} +8 -9
- package/dist/{usage-DPLNMDSJ.js → usage-J46NVHYR.js} +4 -4
- package/package.json +5 -4
|
@@ -139,7 +139,7 @@ ${content}`);
|
|
|
139
139
|
const state = await runDiscussion(config, providers, options.topic);
|
|
140
140
|
if (options.save !== false && state.messages.length > 0) {
|
|
141
141
|
try {
|
|
142
|
-
const { persistDiscussion } = await import("./persist-
|
|
142
|
+
const { persistDiscussion } = await import("./persist-A2QSXYFY.js");
|
|
143
143
|
const { path } = await persistDiscussion(state, configManager, defaultProvider, defaultModel);
|
|
144
144
|
console.log(chalk.dim(`
|
|
145
145
|
\u{1F4BE} Saved to history \u2014 open it in the Web UI and hit \u{1F3AC} to replay.
|
|
@@ -154,7 +154,7 @@ ${content}`);
|
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
async function runTaskMode(config, providers, configManager, topic) {
|
|
157
|
-
const { TaskOrchestrator } = await import("./task-orchestrator-
|
|
157
|
+
const { TaskOrchestrator } = await import("./task-orchestrator-URY32ZSQ.js");
|
|
158
158
|
const orchestrator = new TaskOrchestrator(config, providers, configManager);
|
|
159
159
|
let interrupted = false;
|
|
160
160
|
const onSigint = () => {
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CostTracker
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-EWLXBTSC.js";
|
|
5
5
|
import {
|
|
6
6
|
McpManager,
|
|
7
7
|
SNAPSHOT_PROMPT,
|
|
@@ -17,12 +17,12 @@ import {
|
|
|
17
17
|
scanProject,
|
|
18
18
|
sessionHasMeaningfulContent,
|
|
19
19
|
setupProxy
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-OHV7DYIS.js";
|
|
21
21
|
import {
|
|
22
22
|
computeCost,
|
|
23
23
|
formatCost,
|
|
24
24
|
getPricing
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-GUOLPI33.js";
|
|
26
26
|
import {
|
|
27
27
|
buildReviewPrompt,
|
|
28
28
|
buildSecurityReviewPrompt
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
spawnAgentContext,
|
|
51
51
|
theme,
|
|
52
52
|
undoStack
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-WYRW2W4O.js";
|
|
54
54
|
import {
|
|
55
55
|
addMemoryEntry,
|
|
56
56
|
backupMemoryStore,
|
|
@@ -76,27 +76,27 @@ import {
|
|
|
76
76
|
touchMemoryReferences,
|
|
77
77
|
updateMemoryApproval,
|
|
78
78
|
updateMemoryEntry
|
|
79
|
-
} from "./chunk-
|
|
80
|
-
import "./chunk-
|
|
79
|
+
} from "./chunk-SAZGFYBU.js";
|
|
80
|
+
import "./chunk-GLSR2NR3.js";
|
|
81
81
|
import "./chunk-UUSRWSSX.js";
|
|
82
82
|
import "./chunk-CKH4KQ4E.js";
|
|
83
83
|
import "./chunk-BXP6YZ2P.js";
|
|
84
84
|
import {
|
|
85
85
|
SessionManager,
|
|
86
86
|
getContentText
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-OBULDJSU.js";
|
|
88
88
|
import {
|
|
89
89
|
buildDoctorReport,
|
|
90
90
|
formatDoctorReport,
|
|
91
91
|
loadContextFiles,
|
|
92
92
|
writeCrashLog
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-23ZIOVZR.js";
|
|
94
94
|
import {
|
|
95
95
|
ProviderRegistry
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-2QZMITSL.js";
|
|
97
97
|
import {
|
|
98
98
|
ConfigManager
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-G77EIVBY.js";
|
|
100
100
|
import {
|
|
101
101
|
describePlugin,
|
|
102
102
|
getActivePluginAssets,
|
|
@@ -113,7 +113,7 @@ import {
|
|
|
113
113
|
trustHook,
|
|
114
114
|
trustPlugin,
|
|
115
115
|
untrustHook
|
|
116
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-Z4LVPM3N.js";
|
|
117
117
|
import {
|
|
118
118
|
CONTENT_ONLY_STREAM_REMINDER,
|
|
119
119
|
TEE_FINAL_USER_NUDGE,
|
|
@@ -146,7 +146,7 @@ import {
|
|
|
146
146
|
import {
|
|
147
147
|
fileCheckpoints
|
|
148
148
|
} from "./chunk-4BKXL7SM.js";
|
|
149
|
-
import "./chunk-
|
|
149
|
+
import "./chunk-BIZFOVNA.js";
|
|
150
150
|
import {
|
|
151
151
|
AGENTIC_BEHAVIOR_GUIDELINE,
|
|
152
152
|
AUTHOR,
|
|
@@ -165,15 +165,15 @@ import {
|
|
|
165
165
|
SKILLS_DIR_NAME,
|
|
166
166
|
VERSION,
|
|
167
167
|
buildUserIdentityPrompt
|
|
168
|
-
} from "./chunk-
|
|
168
|
+
} from "./chunk-ZX3ZYRU7.js";
|
|
169
169
|
import {
|
|
170
170
|
buildChatIndex,
|
|
171
171
|
clearChatIndex,
|
|
172
172
|
getChatIndexStatus,
|
|
173
173
|
searchChatMemory
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-6RPGQ5CG.js";
|
|
175
175
|
import "./chunk-KHYD3WXE.js";
|
|
176
|
-
import "./chunk-
|
|
176
|
+
import "./chunk-NYNSYLFY.js";
|
|
177
177
|
import {
|
|
178
178
|
DEFAULT_PATTERNS,
|
|
179
179
|
scanString
|
|
@@ -1387,7 +1387,7 @@ No tools match "${filter}".
|
|
|
1387
1387
|
const { join: join6 } = await import("path");
|
|
1388
1388
|
const { existsSync: existsSync5 } = await import("fs");
|
|
1389
1389
|
const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
|
|
1390
|
-
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-3C4JLZVQ.js");
|
|
1391
1391
|
const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
|
|
1392
1392
|
const cwd = process.cwd();
|
|
1393
1393
|
const projectRoot = getGitRoot2(cwd) ?? cwd;
|
|
@@ -2366,7 +2366,7 @@ function createReviewCommands() {
|
|
|
2366
2366
|
usage: "/test [command|filter]",
|
|
2367
2367
|
async execute(args, ctx) {
|
|
2368
2368
|
try {
|
|
2369
|
-
const { executeTests } = await import("./run-tests-
|
|
2369
|
+
const { executeTests } = await import("./run-tests-2A3CASVZ.js");
|
|
2370
2370
|
const argStr = args.join(" ").trim();
|
|
2371
2371
|
let testArgs = {};
|
|
2372
2372
|
if (argStr) {
|
|
@@ -2628,7 +2628,7 @@ function createMemoryCommands() {
|
|
|
2628
2628
|
const sub = (args[0] ?? "status").toLowerCase();
|
|
2629
2629
|
const root = process.cwd();
|
|
2630
2630
|
const { loadIndex, clearIndex } = await import("./store-MWNHVGJT.js");
|
|
2631
|
-
const { indexProject } = await import("./indexer-
|
|
2631
|
+
const { indexProject } = await import("./indexer-VZETNE4H.js");
|
|
2632
2632
|
const { loadVectorStore, clearVectorStore } = await import("./vector-store-BBDXB5IQ.js");
|
|
2633
2633
|
if (sub === "status") {
|
|
2634
2634
|
const idx = loadIndex(root);
|
|
@@ -6190,7 +6190,7 @@ Session '${this.resumeSessionId}' not found.
|
|
|
6190
6190
|
}
|
|
6191
6191
|
void (async () => {
|
|
6192
6192
|
try {
|
|
6193
|
-
const { indexProject } = await import("./indexer-
|
|
6193
|
+
const { indexProject } = await import("./indexer-VZETNE4H.js");
|
|
6194
6194
|
const { loadIndex } = await import("./store-MWNHVGJT.js");
|
|
6195
6195
|
const root = process.cwd();
|
|
6196
6196
|
const existed = loadIndex(root);
|
|
@@ -6211,7 +6211,7 @@ Session '${this.resumeSessionId}' not found.
|
|
|
6211
6211
|
})();
|
|
6212
6212
|
void (async () => {
|
|
6213
6213
|
try {
|
|
6214
|
-
const { getChatIndexStatus: getChatIndexStatus2, buildChatIndex: buildChatIndex2 } = await import("./chat-index-
|
|
6214
|
+
const { getChatIndexStatus: getChatIndexStatus2, buildChatIndex: buildChatIndex2 } = await import("./chat-index-7MMTGQNA.js");
|
|
6215
6215
|
const initial = getChatIndexStatus2();
|
|
6216
6216
|
this.chatMemoryStatus = {
|
|
6217
6217
|
exists: initial.exists,
|
|
@@ -6287,7 +6287,6 @@ Session '${this.resumeSessionId}' not found.
|
|
|
6287
6287
|
if (Object.keys(mergedMcpServers).length > 0) {
|
|
6288
6288
|
this.mcpManager = new McpManager();
|
|
6289
6289
|
const mcpProjectCount = Object.keys(projectMcpServers).length;
|
|
6290
|
-
const mcpPluginCount = Object.keys(pluginMcpServers).length;
|
|
6291
6290
|
let bannerEmitted = false;
|
|
6292
6291
|
const emitBanner = (afterDeadline) => {
|
|
6293
6292
|
if (bannerEmitted) return;
|
|
@@ -8014,7 +8013,7 @@ program.command("web").description("Start Web UI server with browser-based chat
|
|
|
8014
8013
|
console.error("Error: Invalid port number. Must be between 1 and 65535.");
|
|
8015
8014
|
process.exit(1);
|
|
8016
8015
|
}
|
|
8017
|
-
const { startWebServer } = await import("./server-
|
|
8016
|
+
const { startWebServer } = await import("./server-6L5XRY4K.js");
|
|
8018
8017
|
await startWebServer({ port, host: options.host });
|
|
8019
8018
|
});
|
|
8020
8019
|
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) => {
|
|
@@ -8181,11 +8180,11 @@ program.command("sessions").description("List recent conversation sessions").opt
|
|
|
8181
8180
|
console.log(footer + "\n");
|
|
8182
8181
|
});
|
|
8183
8182
|
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) => {
|
|
8184
|
-
const { runUsageCli } = await import("./usage-
|
|
8183
|
+
const { runUsageCli } = await import("./usage-J46NVHYR.js");
|
|
8185
8184
|
await runUsageCli(options);
|
|
8186
8185
|
});
|
|
8187
8186
|
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) => {
|
|
8188
|
-
const { runDoctorCli } = await import("./doctor-cli-
|
|
8187
|
+
const { runDoctorCli } = await import("./doctor-cli-XJOK5LJZ.js");
|
|
8189
8188
|
const argv = process.argv.slice(2);
|
|
8190
8189
|
await runDoctorCli({
|
|
8191
8190
|
json: !!options.json || argv.includes("--json"),
|
|
@@ -8194,7 +8193,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
|
|
|
8194
8193
|
});
|
|
8195
8194
|
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) => {
|
|
8196
8195
|
try {
|
|
8197
|
-
const batch = await import("./batch-
|
|
8196
|
+
const batch = await import("./batch-CC3LCNXM.js");
|
|
8198
8197
|
switch (action) {
|
|
8199
8198
|
case "submit":
|
|
8200
8199
|
if (!arg) {
|
|
@@ -8237,7 +8236,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
|
|
|
8237
8236
|
}
|
|
8238
8237
|
});
|
|
8239
8238
|
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) => {
|
|
8240
|
-
const { startMcpServer } = await import("./server-
|
|
8239
|
+
const { startMcpServer } = await import("./server-ANNA57CP.js");
|
|
8241
8240
|
await startMcpServer({
|
|
8242
8241
|
allowDestructive: !!options.allowDestructive,
|
|
8243
8242
|
allowOutsideCwd: !!options.allowOutsideCwd,
|
|
@@ -8250,7 +8249,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8250
8249
|
console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
|
|
8251
8250
|
process.exit(1);
|
|
8252
8251
|
}
|
|
8253
|
-
const { runPrCli } = await import("./pr-
|
|
8252
|
+
const { runPrCli } = await import("./pr-TMPU2U2P.js");
|
|
8254
8253
|
const result = await runPrCli({
|
|
8255
8254
|
action,
|
|
8256
8255
|
target,
|
|
@@ -8270,8 +8269,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
|
|
|
8270
8269
|
process.exit(result.exitCode);
|
|
8271
8270
|
});
|
|
8272
8271
|
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) => {
|
|
8273
|
-
const { runCi } = await import("./ci-
|
|
8274
|
-
const { formatCiResult } = await import("./ci-format-
|
|
8272
|
+
const { runCi } = await import("./ci-KFVU4CHS.js");
|
|
8273
|
+
const { formatCiResult } = await import("./ci-format-IFFCSCCN.js");
|
|
8275
8274
|
const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
|
|
8276
8275
|
if (formats > 1) {
|
|
8277
8276
|
console.error("Choose only one output format: --json, --markdown, or --sarif.");
|
|
@@ -8395,7 +8394,7 @@ program.command("help").description("Show a comprehensive guide to all aicli fea
|
|
|
8395
8394
|
`${B}${C} \u25A0 CONFIGURATION${R}`,
|
|
8396
8395
|
` ${D}Config: ~/.aicli/config.json${R}`,
|
|
8397
8396
|
` ${D}Context: ~/.aicli/AICLI.md (global) | ./AICLI.md (project)${R}`,
|
|
8398
|
-
` ${D}Memory: ~/.aicli/memory.md${R}`,
|
|
8397
|
+
` ${D}Memory: ~/.aicli/memory.jsonl (managed) | memory.md legacy import/export${R}`,
|
|
8399
8398
|
` ${D}Skills: ~/.aicli/skills/*.md${R}`,
|
|
8400
8399
|
` ${D}Commands: ~/.aicli/commands/*.md${R}`,
|
|
8401
8400
|
` ${D}Sessions: ~/.aicli/history/*.json${R}`,
|
|
@@ -8417,7 +8416,7 @@ program.command("help").description("Show a comprehensive guide to all aicli fea
|
|
|
8417
8416
|
];
|
|
8418
8417
|
console.log(lines.join("\n"));
|
|
8419
8418
|
});
|
|
8420
|
-
program.command("hub [topic]").description("Start multi-agent hub (discuss / brainstorm with multiple AI roles)").option("--preset <name>", "Use a built-in role preset (default: tech-review)").option("--roles <file>", "Load roles from a JSON file").option("--provider <name>", "Override default AI provider").option("-m, --model <name>", "Override default model").option("--mix [providers]", "Mixed multi-model: spread configured providers across roles (or --mix claude,openai,deepseek)").option("--steer", "Human-in-the-loop: pause between rounds to inject guidance or stop (discuss mode)").option("--vote", "Convergence voting: agents may [CONVERGED]; 2/3 majority ends early (discuss mode)").option("--no-save", "Do not persist the discussion to ~/.aicli/history (discuss mode saves by default)").option("--max-rounds <n>", "Max discussion rounds (default: 10)").option("--presets", "List available role presets").option("--task", "Task mode: plan \u2192 approve \
|
|
8419
|
+
program.command("hub [topic]").description("Start multi-agent hub (discuss / brainstorm with multiple AI roles)").option("--preset <name>", "Use a built-in role preset (default: tech-review)").option("--roles <file>", "Load roles from a JSON file").option("--provider <name>", "Override default AI provider").option("-m, --model <name>", "Override default model").option("--mix [providers]", "Mixed multi-model: spread configured providers across roles (or --mix claude,openai,deepseek)").option("--steer", "Human-in-the-loop: pause between rounds to inject guidance or stop (discuss mode)").option("--vote", "Convergence voting: agents may [CONVERGED]; 2/3 majority ends early (discuss mode)").option("--no-save", "Do not persist the discussion to ~/.aicli/history (discuss mode saves by default)").option("--max-rounds <n>", "Max discussion rounds (default: 10)").option("--presets", "List available role presets").option("--task", "Task mode: plan \u2192 approve \u2192 execute with tools (agents write code)").option("--task-rounds <n>", "Max tool-call rounds per task (default: 30)").option("-c, --context <file>", "Inject context document (repeatable: -c a.md -c b.md)", (val, prev) => prev.concat(val), []).option("--distributed", "Start WebSocket server so remote aicli instances can join as agents").option("--port <n>", "WebSocket port for distributed mode (default: 9527)", "9527").action(async (topic, options) => {
|
|
8421
8420
|
const config = new ConfigManager();
|
|
8422
8421
|
const registry = new ProviderRegistry();
|
|
8423
8422
|
await registry.initialize(
|
|
@@ -8429,7 +8428,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
|
|
|
8429
8428
|
config.get("customProviders"),
|
|
8430
8429
|
config.getConfigDir()
|
|
8431
8430
|
);
|
|
8432
|
-
const { startHub } = await import("./hub-
|
|
8431
|
+
const { startHub } = await import("./hub-6TQFYGZO.js");
|
|
8433
8432
|
await startHub(
|
|
8434
8433
|
{
|
|
8435
8434
|
topic: topic ?? "",
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
discussionToMessages,
|
|
4
4
|
persistDiscussion
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-JQXXPTWL.js";
|
|
6
|
+
import "./chunk-OBULDJSU.js";
|
|
7
|
+
import "./chunk-NYNSYLFY.js";
|
|
8
8
|
import "./chunk-B5TYJO7V.js";
|
|
9
9
|
import "./chunk-IW3Q7AE5.js";
|
|
10
10
|
export {
|
|
@@ -27,9 +27,9 @@ import {
|
|
|
27
27
|
touchMemoryReferences,
|
|
28
28
|
updateMemoryApproval,
|
|
29
29
|
updateMemoryEntry
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-GS5XW5UJ.js";
|
|
31
31
|
import "./chunk-YVTASHS5.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-PNFQDFHK.js";
|
|
33
33
|
import "./chunk-6BUTA5VW.js";
|
|
34
34
|
export {
|
|
35
35
|
addMemoryEntry,
|
|
@@ -28,9 +28,9 @@ import {
|
|
|
28
28
|
touchMemoryReferences,
|
|
29
29
|
updateMemoryApproval,
|
|
30
30
|
updateMemoryEntry
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-SAZGFYBU.js";
|
|
32
32
|
import "./chunk-HOSJZMQS.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-ZX3ZYRU7.js";
|
|
34
34
|
import "./chunk-B5TYJO7V.js";
|
|
35
35
|
import "./chunk-IW3Q7AE5.js";
|
|
36
36
|
export {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
countSeverity,
|
|
4
4
|
runCi
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-HTOKVD7R.js";
|
|
6
|
+
import "./chunk-SHG2QSQA.js";
|
|
7
7
|
import {
|
|
8
8
|
buildReviewPrompt,
|
|
9
9
|
buildSecurityReviewPrompt,
|
|
@@ -11,15 +11,15 @@ import {
|
|
|
11
11
|
} from "./chunk-HLWUDRBO.js";
|
|
12
12
|
import {
|
|
13
13
|
ProviderRegistry
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2QZMITSL.js";
|
|
15
15
|
import {
|
|
16
16
|
ConfigManager
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-G77EIVBY.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-ZX3ZYRU7.js";
|
|
23
23
|
import "./chunk-IW3Q7AE5.js";
|
|
24
24
|
|
|
25
25
|
// src/cli/pr.ts
|