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.
Files changed (34) hide show
  1. package/dist/{batch-F27NOTWC.js → batch-SBP6H7IK.js} +2 -2
  2. package/dist/{chunk-NHJ4GHL4.js → chunk-6IRG727F.js} +1 -1
  3. package/dist/{chunk-CP5LAA52.js → chunk-7XKIDSJT.js} +4 -4
  4. package/dist/{chunk-EOP775JU.js → chunk-EVD6CCO2.js} +1 -1
  5. package/dist/{chunk-B3FHA6IN.js → chunk-GSGJABL6.js} +3 -3
  6. package/dist/{chunk-VQCFEA4Z.js → chunk-HJDJAI7T.js} +1 -1
  7. package/dist/{chunk-CGDYO52A.js → chunk-IUVDZVZ4.js} +19 -0
  8. package/dist/{chunk-UBPRUSAF.js → chunk-JQU4GYET.js} +1 -1
  9. package/dist/{chunk-IIO2SMEJ.js → chunk-KDXA7RXA.js} +74 -4
  10. package/dist/{chunk-UMWDNNPS.js → chunk-LNUWIY6M.js} +1 -1
  11. package/dist/{chunk-MX75TNE5.js → chunk-NUJTNH76.js} +1 -1
  12. package/dist/{chunk-PUC277TH.js → chunk-RHSCROLG.js} +1 -1
  13. package/dist/{chunk-V7EZ4SDC.js → chunk-SGUPIQYT.js} +1 -1
  14. package/dist/{chunk-PN42JO74.js → chunk-TNIMHTKG.js} +1 -1
  15. package/dist/{chunk-TAIZZY3N.js → chunk-WMHLWCZQ.js} +3 -3
  16. package/dist/{chunk-LPZNOYRJ.js → chunk-YRPL7A3S.js} +1 -1
  17. package/dist/{ci-HJ4OVHCM.js → ci-VAAMX44S.js} +4 -4
  18. package/dist/{ci-format-NKJRZ3QI.js → ci-format-RMULFSB5.js} +2 -2
  19. package/dist/{constants-6LCZOBJC.js → constants-PXLMEBJY.js} +1 -1
  20. package/dist/{doctor-cli-7JGPC5G4.js → doctor-cli-C2DFYU2M.js} +4 -4
  21. package/dist/electron-server.js +147 -59
  22. package/dist/{hub-NX7HYN7V.js → hub-XIU3YTOE.js} +2 -2
  23. package/dist/index.js +81 -86
  24. package/dist/{persist-PQM4BRI4.js → persist-S77WRVLD.js} +2 -2
  25. package/dist/{persistent-memory-MHHX7F25.js → persistent-memory-ACXKU6RV.js} +2 -2
  26. package/dist/{persistent-memory-E6WECUTW.js → persistent-memory-TA224ZFQ.js} +2 -2
  27. package/dist/{pr-GLUFBQLI.js → pr-J74HW44E.js} +4 -4
  28. package/dist/{run-tests-YPJDOEJA.js → run-tests-4KTX5YMO.js} +2 -2
  29. package/dist/{run-tests-LWAFPVS3.js → run-tests-JLZ2KIGV.js} +2 -2
  30. package/dist/{server-CXXYIPMU.js → server-226R6675.js} +77 -66
  31. package/dist/{server-P6DI27CY.js → server-4CZXYGJN.js} +5 -5
  32. package/dist/{task-orchestrator-FW4LBPTS.js → task-orchestrator-6C3R7KSK.js} +5 -5
  33. package/dist/{usage-CJUHQDT2.js → usage-FY3TEJJS.js} +2 -2
  34. 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-IIO2SMEJ.js";
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-CP5LAA52.js";
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-V7EZ4SDC.js";
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-CGDYO52A.js";
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-B3FHA6IN.js";
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-UMWDNNPS.js";
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-EOP775JU.js";
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-VQCFEA4Z.js";
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-UBPRUSAF.js";
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-6LCZOBJC.js");
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 sub = args[0];
1946
- if (sub === "list" || !sub) {
1947
- const msgs = session.messages;
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 (${msgs.length} total):
1959
+ Conversation messages (${rows.length} total):
1950
1960
  `));
1951
- for (let i = 0; i < msgs.length; i++) {
1952
- const m = msgs[i];
1953
- const role = m.role.padEnd(10);
1954
- const text = getContentText(m.content).replace(/\n/g, " ").slice(0, 70);
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 n = parseInt(sub, 10);
1965
- if (isNaN(n) || n < 1 || n > session.messages.length) {
1966
- ctx.renderer.renderError(`Invalid message number: ${sub}. Range: 1-${session.messages.length}`);
1967
- return;
1968
- }
1969
- const targetIndex = n;
1970
- const messagesRemoved = session.messages.length - targetIndex;
1971
- const { restored, deleted, files } = fileCheckpoints.restoreToMessageIndex(targetIndex);
1972
- session.messages = session.messages.slice(0, targetIndex);
1973
- session.checkpoints = session.checkpoints.filter((c) => c.messageIndex <= targetIndex);
1974
- session.updated = /* @__PURE__ */ new Date();
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
- \u2713 Rewound to message ${n}`));
1977
- console.log(theme.dim(` Messages removed: ${messagesRemoved}`));
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-YPJDOEJA.js");
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 sub = args.join(" ").trim();
2352
- let messageCount = session.messages.length;
2353
- let fromLabel = "current position";
2354
- if (sub) {
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.slice(0, 8);
2358
+ const originalId = session.id;
2374
2359
  const originalTitle = session.title ?? "(untitled)";
2375
- const forked = await ctx.forkSession(messageCount);
2376
- console.log(theme.heading("\n Session Forked\n"));
2377
- console.log(` ${theme.dim("Original:")} ${theme.accent(originalId)} "${originalTitle}"`);
2378
- console.log(` ${theme.dim("Forked: ")} ${theme.accent(forked.id.slice(0, 8))} "${forked.title ?? "(untitled)"}"`);
2379
- console.log(` ${theme.dim("From: ")} ${fromLabel}`);
2380
- console.log(` ${theme.dim("Messages:")} ${forked.messages.length} copied, ${forked.checkpoints.length} checkpoint(s) preserved`);
2381
- console.log("");
2382
- console.log(theme.dim(` Use /session load ${originalId} to switch back to original.`));
2383
- console.log("");
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: "Clear conversation history",
3012
+ description: "Start a new session (previous conversation is kept)",
3022
3013
  usage: "/clear",
3023
- execute(_args, ctx) {
3024
- ctx.sessions.current?.clear();
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("Conversation cleared.");
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-CXXYIPMU.js");
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-CJUHQDT2.js");
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-7JGPC5G4.js");
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-F27NOTWC.js");
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-P6DI27CY.js");
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-GLUFBQLI.js");
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-HJ4OVHCM.js");
7529
- const { formatCiResult } = await import("./ci-format-NKJRZ3QI.js");
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-NX7HYN7V.js");
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-MX75TNE5.js";
6
- import "./chunk-CGDYO52A.js";
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-V7EZ4SDC.js";
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-UBPRUSAF.js";
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-PUC277TH.js";
30
+ } from "./chunk-RHSCROLG.js";
31
31
  import "./chunk-FSC6KEWU.js";
32
- import "./chunk-PN42JO74.js";
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-TAIZZY3N.js";
6
- import "./chunk-LPZNOYRJ.js";
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-EOP775JU.js";
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-UBPRUSAF.js";
26
+ } from "./chunk-JQU4GYET.js";
27
27
 
28
28
  // src/cli/pr.ts
29
29
  import { execFileSync } from "child_process";
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  executeTests,
4
4
  runTestsTool
5
- } from "./chunk-VQCFEA4Z.js";
6
- import "./chunk-UBPRUSAF.js";
5
+ } from "./chunk-HJDJAI7T.js";
6
+ import "./chunk-JQU4GYET.js";
7
7
  export {
8
8
  executeTests,
9
9
  runTestsTool
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  executeTests,
3
3
  runTestsTool
4
- } from "./chunk-NHJ4GHL4.js";
5
- import "./chunk-PN42JO74.js";
4
+ } from "./chunk-6IRG727F.js";
5
+ import "./chunk-TNIMHTKG.js";
6
6
  export {
7
7
  executeTests,
8
8
  runTestsTool