jinzd-ai-cli 0.4.281 → 0.4.282

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/{batch-237ZXBQD.js → batch-SBP6H7IK.js} +2 -2
  2. package/dist/{chunk-WUIOUJA2.js → chunk-6IRG727F.js} +1 -1
  3. package/dist/{chunk-FHRIDE2T.js → chunk-7XKIDSJT.js} +4 -4
  4. package/dist/{chunk-4XJVSMZ6.js → chunk-EVD6CCO2.js} +1 -1
  5. package/dist/{chunk-BVGSR3BA.js → chunk-GSGJABL6.js} +3 -3
  6. package/dist/{chunk-J3RWNQOF.js → chunk-HJDJAI7T.js} +1 -1
  7. package/dist/{chunk-6NO5FZW6.js → chunk-IUVDZVZ4.js} +18 -0
  8. package/dist/{chunk-2FCKZ3OS.js → chunk-JQU4GYET.js} +1 -1
  9. package/dist/{chunk-J5TXHFDO.js → chunk-KDXA7RXA.js} +70 -4
  10. package/dist/{chunk-L7C34TFI.js → chunk-LNUWIY6M.js} +1 -1
  11. package/dist/{chunk-VB54ILH7.js → chunk-NUJTNH76.js} +1 -1
  12. package/dist/{chunk-IXEKDAIX.js → chunk-RHSCROLG.js} +1 -1
  13. package/dist/{chunk-H2VE4TTN.js → chunk-SGUPIQYT.js} +1 -1
  14. package/dist/{chunk-5GYOQ7EF.js → chunk-TNIMHTKG.js} +1 -1
  15. package/dist/{chunk-UTJQXG4P.js → chunk-WMHLWCZQ.js} +3 -3
  16. package/dist/{chunk-JT2A2M4F.js → chunk-YRPL7A3S.js} +1 -1
  17. package/dist/{ci-LXRTYJ6F.js → ci-VAAMX44S.js} +4 -4
  18. package/dist/{ci-format-II3OT2VU.js → ci-format-RMULFSB5.js} +2 -2
  19. package/dist/{constants-X53QCUTP.js → constants-PXLMEBJY.js} +1 -1
  20. package/dist/{doctor-cli-6JCJEQR4.js → doctor-cli-C2DFYU2M.js} +4 -4
  21. package/dist/electron-server.js +136 -56
  22. package/dist/{hub-RXAFF7QI.js → hub-XIU3YTOE.js} +2 -2
  23. package/dist/index.js +72 -82
  24. package/dist/{persist-TBQILDSE.js → persist-S77WRVLD.js} +2 -2
  25. package/dist/{persistent-memory-7CKJLS25.js → persistent-memory-ACXKU6RV.js} +2 -2
  26. package/dist/{persistent-memory-WAKFKH2I.js → persistent-memory-TA224ZFQ.js} +2 -2
  27. package/dist/{pr-DZTRHAMG.js → pr-J74HW44E.js} +4 -4
  28. package/dist/{run-tests-XGCNUT5S.js → run-tests-4KTX5YMO.js} +2 -2
  29. package/dist/{run-tests-4ESYEROQ.js → run-tests-JLZ2KIGV.js} +2 -2
  30. package/dist/{server-6RYXFG3H.js → server-226R6675.js} +69 -63
  31. package/dist/{server-EFA7UP4I.js → server-4CZXYGJN.js} +5 -5
  32. package/dist/{task-orchestrator-H3AEIHR3.js → task-orchestrator-6C3R7KSK.js} +5 -5
  33. package/dist/{usage-W7TZWHY7.js → usage-FY3TEJJS.js} +2 -2
  34. package/package.json +1 -1
@@ -143,7 +143,7 @@ ${content}`);
143
143
  const state = await runDiscussion(config, providers, options.topic);
144
144
  if (options.save !== false && state.messages.length > 0) {
145
145
  try {
146
- const { persistDiscussion } = await import("./persist-TBQILDSE.js");
146
+ const { persistDiscussion } = await import("./persist-S77WRVLD.js");
147
147
  const { path } = await persistDiscussion(state, configManager, defaultProvider, defaultModel);
148
148
  console.log(chalk.dim(`
149
149
  \u{1F4BE} Saved to history \u2014 open it in the Web UI and hit \u{1F3AC} to replay.
@@ -158,7 +158,7 @@ ${content}`);
158
158
  }
159
159
  }
160
160
  async function runTaskMode(config, providers, configManager, topic) {
161
- const { TaskOrchestrator } = await import("./task-orchestrator-H3AEIHR3.js");
161
+ const { TaskOrchestrator } = await import("./task-orchestrator-6C3R7KSK.js");
162
162
  const orchestrator = new TaskOrchestrator(config, providers, configManager);
163
163
  let interrupted = false;
164
164
  const onSigint = () => {
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ import {
10
10
  armDeferredSave,
11
11
  autoTrimSessionIfNeeded,
12
12
  buildInitPrompt,
13
+ buildRewindList,
13
14
  buildSessionCostReport,
14
15
  buildSessionExport,
15
16
  checkpointDeletedMessage,
@@ -26,6 +27,8 @@ import {
26
27
  evaluateContextPressure,
27
28
  filterMemoryEntries,
28
29
  formatCheckpointList,
30
+ formatForkReport,
31
+ formatRewindReport,
29
32
  formatSessionSummaryLine,
30
33
  loadDevState,
31
34
  parseBatchDeleteArgs,
@@ -34,11 +37,13 @@ import {
34
37
  parseExportArgs,
35
38
  parseMemoryShowFilters,
36
39
  parseModelCommand,
40
+ parseRewindArgs,
37
41
  parseRouteCommand,
38
42
  parseSessionListArgs,
39
43
  parseSimpleYaml,
40
44
  persistToolRound,
41
45
  readGitDiff,
46
+ resolveForkPoint,
42
47
  resolveModelSwitch,
43
48
  resolveProviderSwitch,
44
49
  resolveSessionRef,
@@ -54,7 +59,7 @@ import {
54
59
  setupProxy,
55
60
  snapshotFile,
56
61
  stripRoutingTags
57
- } from "./chunk-J5TXHFDO.js";
62
+ } from "./chunk-KDXA7RXA.js";
58
63
  import {
59
64
  CostTracker,
60
65
  computeCost,
@@ -84,7 +89,7 @@ import {
84
89
  setMaxOutputCap,
85
90
  spawnAgentContext,
86
91
  undoStack
87
- } from "./chunk-FHRIDE2T.js";
92
+ } from "./chunk-7XKIDSJT.js";
88
93
  import {
89
94
  buildReviewPrompt,
90
95
  buildSecurityReviewPrompt
@@ -125,7 +130,7 @@ import {
125
130
  touchMemoryReferences,
126
131
  updateMemoryApproval,
127
132
  updateMemoryEntry
128
- } from "./chunk-H2VE4TTN.js";
133
+ } from "./chunk-SGUPIQYT.js";
129
134
  import "./chunk-4DEMGCK4.js";
130
135
  import "./chunk-UUSRWSSX.js";
131
136
  import "./chunk-CKH4KQ4E.js";
@@ -138,7 +143,7 @@ import {
138
143
  import {
139
144
  SessionManager,
140
145
  getContentText
141
- } from "./chunk-6NO5FZW6.js";
146
+ } from "./chunk-IUVDZVZ4.js";
142
147
  import "./chunk-NYNSYLFY.js";
143
148
  import {
144
149
  DEFAULT_PATTERNS,
@@ -149,7 +154,7 @@ import {
149
154
  formatDoctorReport,
150
155
  loadContextFiles,
151
156
  writeCrashLog
152
- } from "./chunk-BVGSR3BA.js";
157
+ } from "./chunk-GSGJABL6.js";
153
158
  import {
154
159
  describePlugin,
155
160
  getActivePluginAssets,
@@ -166,14 +171,14 @@ import {
166
171
  trustHook,
167
172
  trustPlugin,
168
173
  untrustHook
169
- } from "./chunk-L7C34TFI.js";
174
+ } from "./chunk-LNUWIY6M.js";
170
175
  import {
171
176
  ProviderRegistry,
172
177
  listBuiltInProviderMetadata
173
178
  } from "./chunk-UGY5SVNX.js";
174
179
  import {
175
180
  ConfigManager
176
- } from "./chunk-4XJVSMZ6.js";
181
+ } from "./chunk-EVD6CCO2.js";
177
182
  import {
178
183
  CONTENT_ONLY_STREAM_REMINDER,
179
184
  TEE_FINAL_USER_NUDGE,
@@ -211,7 +216,7 @@ import {
211
216
  import {
212
217
  fileCheckpoints
213
218
  } from "./chunk-4BKXL7SM.js";
214
- import "./chunk-J3RWNQOF.js";
219
+ import "./chunk-HJDJAI7T.js";
215
220
  import {
216
221
  AGENTIC_BEHAVIOR_GUIDELINE,
217
222
  AUTHOR,
@@ -229,7 +234,7 @@ import {
229
234
  SKILLS_DIR_NAME,
230
235
  VERSION,
231
236
  buildUserIdentityPrompt
232
- } from "./chunk-2FCKZ3OS.js";
237
+ } from "./chunk-JQU4GYET.js";
233
238
 
234
239
  // src/index.ts
235
240
  import { program } from "commander";
@@ -1347,7 +1352,7 @@ No tools match "${filter}".
1347
1352
  const { join: join6 } = await import("path");
1348
1353
  const { existsSync: existsSync6 } = await import("fs");
1349
1354
  const { getGitRoot: getGitRoot2 } = await import("./git-context-EXOEHQSF.js");
1350
- const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-X53QCUTP.js");
1355
+ const { MCP_PROJECT_CONFIG_NAME: MCP_PROJECT_CONFIG_NAME2 } = await import("./constants-PXLMEBJY.js");
1351
1356
  const { approveProject, hashMcpFile } = await import("./project-trust-NKYHL3VZ.js");
1352
1357
  const cwd = process.cwd();
1353
1358
  const projectRoot = getGitRoot2(cwd) ?? cwd;
@@ -1937,24 +1942,26 @@ function createReviewCommands() {
1937
1942
  name: "rewind",
1938
1943
  description: "Rewind conversation to a previous message and restore file states",
1939
1944
  usage: "/rewind [list | <n>]",
1940
- execute(args, ctx) {
1945
+ async execute(args, ctx) {
1941
1946
  const session = ctx.sessions.current;
1942
1947
  if (!session || session.messages.length === 0) {
1943
1948
  console.log(theme.dim(" No messages to rewind."));
1944
1949
  return;
1945
1950
  }
1946
- const sub = args[0];
1947
- if (sub === "list" || !sub) {
1948
- 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());
1949
1958
  console.log(theme.heading(`
1950
- Conversation messages (${msgs.length} total):
1959
+ Conversation messages (${rows.length} total):
1951
1960
  `));
1952
- for (let i = 0; i < msgs.length; i++) {
1953
- const m = msgs[i];
1954
- const role = m.role.padEnd(10);
1955
- const text = getContentText(m.content).replace(/\n/g, " ").slice(0, 70);
1956
- const hasCheckpoint = fileCheckpoints.getMessageIndices().includes(i) ? " \u{1F4CC}" : "";
1957
- console.log(theme.dim(` [${String(i + 1).padStart(3)}]`) + ` ${theme.info(role)} ${text}${hasCheckpoint}`);
1961
+ for (const row of rows) {
1962
+ console.log(
1963
+ theme.dim(` [${String(row.index).padStart(3)}]`) + ` ${theme.info(row.role.padEnd(10))} ${row.preview}${row.hasCheckpoint ? " \u{1F4CC}" : ""}`
1964
+ );
1958
1965
  }
1959
1966
  console.log();
1960
1967
  console.log(theme.dim(" Usage: /rewind <n> \u2014 rewind to message N (1-based)"));
@@ -1962,28 +1969,21 @@ function createReviewCommands() {
1962
1969
  console.log();
1963
1970
  return;
1964
1971
  }
1965
- const n = parseInt(sub, 10);
1966
- if (isNaN(n) || n < 1 || n > session.messages.length) {
1967
- ctx.renderer.renderError(`Invalid message number: ${sub}. Range: 1-${session.messages.length}`);
1968
- return;
1969
- }
1970
- const targetIndex = n;
1971
- const messagesRemoved = session.messages.length - targetIndex;
1972
- const { restored, deleted, files } = fileCheckpoints.restoreToMessageIndex(targetIndex);
1973
- session.messages = session.messages.slice(0, targetIndex);
1974
- session.checkpoints = session.checkpoints.filter((c) => c.messageIndex <= targetIndex);
1975
- 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
+ });
1976
1984
  console.log(theme.success(`
1977
- \u2713 Rewound to message ${n}`));
1978
- console.log(theme.dim(` Messages removed: ${messagesRemoved}`));
1979
- if (restored > 0 || deleted > 0) {
1980
- console.log(theme.dim(` Files restored: ${restored}, files deleted: ${deleted}`));
1981
- for (const f of files) {
1982
- console.log(theme.dim(` ${f}`));
1983
- }
1984
- } else {
1985
- console.log(theme.dim(" No file changes to revert."));
1986
- }
1985
+ ${lines[0]}`));
1986
+ for (const line of lines.slice(1)) console.log(theme.dim(` ${line}`));
1987
1987
  console.log();
1988
1988
  }
1989
1989
  },
@@ -2267,7 +2267,7 @@ function createReviewCommands() {
2267
2267
  usage: "/test [command|filter]",
2268
2268
  async execute(args, ctx) {
2269
2269
  try {
2270
- const { executeTests } = await import("./run-tests-XGCNUT5S.js");
2270
+ const { executeTests } = await import("./run-tests-4KTX5YMO.js");
2271
2271
  const argStr = args.join(" ").trim();
2272
2272
  let testArgs = {};
2273
2273
  if (argStr) {
@@ -2349,39 +2349,29 @@ Summary: ${fileMap.size} file(s) \u2014 ${newFiles} new, ${modifiedFiles} modifi
2349
2349
  ctx.renderer.printInfo("No active session to fork.");
2350
2350
  return;
2351
2351
  }
2352
- const sub = args.join(" ").trim();
2353
- let messageCount = session.messages.length;
2354
- let fromLabel = "current position";
2355
- if (sub) {
2356
- const cp = session.checkpoints.find((c) => c.name === sub);
2357
- if (!cp) {
2358
- const available = session.checkpoints.map((c) => c.name);
2359
- if (available.length > 0) {
2360
- ctx.renderer.printInfo(
2361
- `Checkpoint "${sub}" not found. Available: ${available.join(", ")}`
2362
- );
2363
- } else {
2364
- ctx.renderer.printInfo(
2365
- `Checkpoint "${sub}" not found. No checkpoints saved. Use /checkpoint save <name> first.`
2366
- );
2367
- }
2368
- return;
2369
- }
2370
- messageCount = cp.messageIndex;
2371
- fromLabel = `checkpoint "${cp.name}" (${cp.messageIndex} messages)`;
2352
+ const point = resolveForkPoint(session, args.join(" ").trim());
2353
+ if (!point.ok) {
2354
+ ctx.renderer.printInfo(point.message);
2355
+ return;
2372
2356
  }
2373
2357
  try {
2374
- const originalId = session.id.slice(0, 8);
2358
+ const originalId = session.id;
2375
2359
  const originalTitle = session.title ?? "(untitled)";
2376
- const forked = await ctx.forkSession(messageCount);
2377
- console.log(theme.heading("\n Session Forked\n"));
2378
- console.log(` ${theme.dim("Original:")} ${theme.accent(originalId)} "${originalTitle}"`);
2379
- console.log(` ${theme.dim("Forked: ")} ${theme.accent(forked.id.slice(0, 8))} "${forked.title ?? "(untitled)"}"`);
2380
- console.log(` ${theme.dim("From: ")} ${fromLabel}`);
2381
- console.log(` ${theme.dim("Messages:")} ${forked.messages.length} copied, ${forked.checkpoints.length} checkpoint(s) preserved`);
2382
- console.log("");
2383
- console.log(theme.dim(` Use /session load ${originalId} to switch back to original.`));
2384
- 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();
2385
2375
  ctx.refreshPrompt();
2386
2376
  } catch (err) {
2387
2377
  ctx.renderer.renderError(
@@ -7274,7 +7264,7 @@ program.command("web").description("Start Web UI server with browser-based chat
7274
7264
  console.error("Error: Invalid port number. Must be between 1 and 65535.");
7275
7265
  process.exit(1);
7276
7266
  }
7277
- const { startWebServer } = await import("./server-6RYXFG3H.js");
7267
+ const { startWebServer } = await import("./server-226R6675.js");
7278
7268
  await startWebServer({ port, host: options.host });
7279
7269
  });
7280
7270
  program.command("user [action] [username]").description("Manage Web UI users (list | create <name> | delete <name> | reset-password <name> | logout-all <name> | migrate <name>)").action(async (action, username) => {
@@ -7441,11 +7431,11 @@ program.command("sessions").description("List recent conversation sessions").opt
7441
7431
  console.log(footer + "\n");
7442
7432
  });
7443
7433
  program.command("usage").description("Show token + cost usage grouped by provider/model (cross-session)").option("--days <n>", "Only the last N days (inclusive of today)").option("--month <ym>", "Only a specific month, format YYYY-MM (e.g. 2026-06)").option("--json", "Output as JSON (for scripting)").action(async (options) => {
7444
- const { runUsageCli } = await import("./usage-W7TZWHY7.js");
7434
+ const { runUsageCli } = await import("./usage-FY3TEJJS.js");
7445
7435
  await runUsageCli(options);
7446
7436
  });
7447
7437
  program.command("doctor").description("Health check: API keys, config, MCP, recent crashes, tool usage, disk usage").option("--json", "Output as JSON (for scripting)").option("--reset-stats", "Reset accumulated tool usage statistics").action(async (options) => {
7448
- const { runDoctorCli } = await import("./doctor-cli-6JCJEQR4.js");
7438
+ const { runDoctorCli } = await import("./doctor-cli-C2DFYU2M.js");
7449
7439
  const argv = process.argv.slice(2);
7450
7440
  await runDoctorCli({
7451
7441
  json: !!options.json || argv.includes("--json"),
@@ -7454,7 +7444,7 @@ program.command("doctor").description("Health check: API keys, config, MCP, rece
7454
7444
  });
7455
7445
  program.command("batch <action> [arg] [arg2]").description("Anthropic Message Batches: submit | list | status <id> | results <id> [out] | cancel <id>").option("--dry-run", "Parse and validate input without submitting (submit only)").action(async (action, arg, arg2, options) => {
7456
7446
  try {
7457
- const batch = await import("./batch-237ZXBQD.js");
7447
+ const batch = await import("./batch-SBP6H7IK.js");
7458
7448
  switch (action) {
7459
7449
  case "submit":
7460
7450
  if (!arg) {
@@ -7497,7 +7487,7 @@ program.command("batch <action> [arg] [arg2]").description("Anthropic Message Ba
7497
7487
  }
7498
7488
  });
7499
7489
  program.command("mcp-serve").description("Start an MCP server over STDIO, exposing aicli's built-in tools to Claude Desktop / Cursor / other MCP clients").option("--allow-destructive", "Allow bash / run_interactive / task_create (always destructive in MCP mode)").option("--allow-outside-cwd", "Allow tool path arguments to escape the sandbox root \u2014 disabled by default").option("--tools <list>", "Comma-separated whitelist of tools to expose (default: all eligible tools)").option("--cwd <path>", "Working directory AND sandbox root (default: current directory)").action(async (options) => {
7500
- const { startMcpServer } = await import("./server-EFA7UP4I.js");
7490
+ const { startMcpServer } = await import("./server-4CZXYGJN.js");
7501
7491
  await startMcpServer({
7502
7492
  allowDestructive: !!options.allowDestructive,
7503
7493
  allowOutsideCwd: !!options.allowOutsideCwd,
@@ -7510,7 +7500,7 @@ program.command("pr <action> [target]").description("PR review helpers: review |
7510
7500
  console.error(`Unknown pr action: ${action}. Use review | security-review | summarize.`);
7511
7501
  process.exit(1);
7512
7502
  }
7513
- const { runPrCli } = await import("./pr-DZTRHAMG.js");
7503
+ const { runPrCli } = await import("./pr-J74HW44E.js");
7514
7504
  const result = await runPrCli({
7515
7505
  action,
7516
7506
  target,
@@ -7530,8 +7520,8 @@ program.command("pr <action> [target]").description("PR review helpers: review |
7530
7520
  process.exit(result.exitCode);
7531
7521
  });
7532
7522
  program.command("ci").description("Headless PR review (code + security) \u2014 reads git/gh diff, optionally posts to PR. Designed for GitHub Actions.").option("--pr <num>", "PR number or URL; diff fetched via gh pr diff <value>", (v) => /^#?\d+$/.test(v) ? parseInt(v.replace(/^#/, ""), 10) : v).option("--base <ref>", "Base ref for git diff <ref>...HEAD (ignored when --pr set)").option("--post", "Post review as a PR comment (requires gh CLI + GH_TOKEN, needs --pr)").option("--no-update", "Always create a new comment instead of updating the previous aicli review").option("--skip-code", "Skip the code review section").option("--skip-security", "Skip the security review section").option("--detailed", "Use the detailed code-review prompt").option("--max-diff <n>", "Max diff chars sent to the model (default 30000)", (v) => parseInt(v, 10)).option("--provider <id>", "Override provider (default: config.defaultProvider)").option("--model <id>", "Override model").option("--dry-run", "Print result to stdout instead of posting (overrides --post)").option("--json", "Output a structured JSON report").option("--markdown", "Output Markdown report (default)").option("--sarif", "Output SARIF 2.1.0 for code scanning artifacts").option("--fail-on-security-high", "Fail when the security review contains HIGH/CRITICAL findings (default)").option("--no-fail-on-security-high", "Do not fail on security HIGH/CRITICAL findings").option("--fail-on-test-failure", "Fail when the report mentions test failures (default)").option("--no-fail-on-test-failure", "Do not fail on test failure findings").option("--fail-on-lint-failure", "Fail when the report mentions lint/typecheck failures (default)").option("--no-fail-on-lint-failure", "Do not fail on lint/typecheck failure findings").action(async (options) => {
7533
- const { runCi } = await import("./ci-LXRTYJ6F.js");
7534
- const { formatCiResult } = await import("./ci-format-II3OT2VU.js");
7523
+ const { runCi } = await import("./ci-VAAMX44S.js");
7524
+ const { formatCiResult } = await import("./ci-format-RMULFSB5.js");
7535
7525
  const formats = [options.json, options.markdown, options.sarif].filter(Boolean).length;
7536
7526
  if (formats > 1) {
7537
7527
  console.error("Choose only one output format: --json, --markdown, or --sarif.");
@@ -7689,7 +7679,7 @@ program.command("hub [topic]").description("Start multi-agent hub (discuss / bra
7689
7679
  config.get("customProviders"),
7690
7680
  config.getConfigDir()
7691
7681
  );
7692
- const { startHub } = await import("./hub-RXAFF7QI.js");
7682
+ const { startHub } = await import("./hub-XIU3YTOE.js");
7693
7683
  await startHub(
7694
7684
  {
7695
7685
  topic: topic ?? "",
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  discussionToMessages,
4
4
  persistDiscussion
5
- } from "./chunk-VB54ILH7.js";
6
- import "./chunk-6NO5FZW6.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-H2VE4TTN.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-2FCKZ3OS.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-IXEKDAIX.js";
30
+ } from "./chunk-RHSCROLG.js";
31
31
  import "./chunk-FSC6KEWU.js";
32
- import "./chunk-5GYOQ7EF.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-UTJQXG4P.js";
6
- import "./chunk-JT2A2M4F.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-4XJVSMZ6.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-2FCKZ3OS.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-J3RWNQOF.js";
6
- import "./chunk-2FCKZ3OS.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-WUIOUJA2.js";
5
- import "./chunk-5GYOQ7EF.js";
4
+ } from "./chunk-6IRG727F.js";
5
+ import "./chunk-TNIMHTKG.js";
6
6
  export {
7
7
  executeTests,
8
8
  runTestsTool