reasonix 0.46.1 → 0.47.1

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 (139) hide show
  1. package/README.md +62 -13
  2. package/README.zh-CN.md +52 -10
  3. package/dashboard/dist/app.js +217 -60
  4. package/dashboard/dist/app.js.map +1 -1
  5. package/dist/cli/{acp-LKJU5DZX.js → acp-GEOAKSTU.js} +26 -54
  6. package/dist/cli/acp-GEOAKSTU.js.map +1 -0
  7. package/dist/cli/chat-YTPATMMG.js +51 -0
  8. package/dist/cli/{chunk-R2ASNSEO.js → chunk-2XY77LW7.js} +8 -8
  9. package/dist/cli/{chunk-SE7C5ZSI.js → chunk-4MFCAZ2W.js} +3 -3
  10. package/dist/cli/{chunk-DGA5QYFM.js → chunk-6CRPCJAU.js} +55 -13
  11. package/dist/cli/chunk-6CRPCJAU.js.map +1 -0
  12. package/dist/cli/{chunk-TDSBASOF.js → chunk-6QC5RQLE.js} +2 -2
  13. package/dist/cli/chunk-BQ6HC66J.js +530 -0
  14. package/dist/cli/chunk-BQ6HC66J.js.map +1 -0
  15. package/dist/cli/{chunk-7SGGXNB2.js → chunk-CCJAP7G3.js} +2 -2
  16. package/dist/cli/{chunk-3AAG2CUT.js → chunk-CNG32VAB.js} +2 -2
  17. package/dist/cli/{chunk-WRONKNIH.js → chunk-DN4B5S6Y.js} +2 -2
  18. package/dist/cli/{chunk-NCBP5D6E.js → chunk-DQ6K5ZQ7.js} +2 -2
  19. package/dist/cli/{chunk-MIIZJD5O.js → chunk-DWPAKZTY.js} +14 -3
  20. package/dist/cli/chunk-DWPAKZTY.js.map +1 -0
  21. package/dist/cli/{chunk-IYQ325V7.js → chunk-E5WCLUIU.js} +2 -2
  22. package/dist/cli/{chunk-YRLC2EDF.js → chunk-EQATK2L2.js} +2 -2
  23. package/dist/cli/{chunk-TEUDEGX2.js → chunk-FY4S7TJZ.js} +19 -5
  24. package/dist/cli/chunk-FY4S7TJZ.js.map +1 -0
  25. package/dist/cli/{chunk-C72TNHDE.js → chunk-GH7DC2Y5.js} +2 -2
  26. package/dist/cli/{chunk-WQ6ZRDQM.js → chunk-HIYTRCSW.js} +16 -12
  27. package/dist/cli/chunk-HIYTRCSW.js.map +1 -0
  28. package/dist/cli/{chunk-EAOL43HB.js → chunk-HUILPCYX.js} +3 -3
  29. package/dist/cli/{chunk-ZOQHVQON.js → chunk-JBH5RM7X.js} +473 -87
  30. package/dist/cli/chunk-JBH5RM7X.js.map +1 -0
  31. package/dist/cli/{chunk-XPAUNFOL.js → chunk-KVZZ5U75.js} +3 -2
  32. package/dist/cli/chunk-KVZZ5U75.js.map +1 -0
  33. package/dist/cli/{chunk-2AASOSD5.js → chunk-KYQVQ5X4.js} +85 -10
  34. package/dist/cli/chunk-KYQVQ5X4.js.map +1 -0
  35. package/dist/cli/{chunk-2425HK6U.js → chunk-LGEKVMMV.js} +7 -2
  36. package/dist/cli/{chunk-2425HK6U.js.map → chunk-LGEKVMMV.js.map} +1 -1
  37. package/dist/cli/{chunk-6VANO7KB.js → chunk-NRQ5UP5T.js} +165 -24
  38. package/dist/cli/chunk-NRQ5UP5T.js.map +1 -0
  39. package/dist/cli/{chunk-M4E5JK6S.js → chunk-QCFLPSPH.js} +2 -2
  40. package/dist/cli/{chunk-E7TAHQ4A.js → chunk-RRXUIPWG.js} +19 -18
  41. package/dist/cli/chunk-RRXUIPWG.js.map +1 -0
  42. package/dist/cli/{chunk-JLQDNLZF.js → chunk-T5A7EY6B.js} +26 -14
  43. package/dist/cli/chunk-T5A7EY6B.js.map +1 -0
  44. package/dist/cli/{chunk-7LOJS3LV.js → chunk-TDHXB2ER.js} +2 -2
  45. package/dist/cli/{chunk-CXVWUPA3.js → chunk-TKVXTQ3T.js} +26 -26
  46. package/dist/cli/chunk-TKVXTQ3T.js.map +1 -0
  47. package/dist/cli/{chunk-JVFEJAJX.js → chunk-TRSAHHCL.js} +107 -11
  48. package/dist/cli/chunk-TRSAHHCL.js.map +1 -0
  49. package/dist/cli/{chunk-K3AIFMI6.js → chunk-TRWHTFG7.js} +2 -2
  50. package/dist/cli/{chunk-7YW6TPXK.js → chunk-XD6P7AFH.js} +28 -31
  51. package/dist/cli/chunk-XD6P7AFH.js.map +1 -0
  52. package/dist/cli/{chunk-SPXN5JIT.js → chunk-XMHP7BEE.js} +1787 -1081
  53. package/dist/cli/chunk-XMHP7BEE.js.map +1 -0
  54. package/dist/cli/{chunk-JVQT5IYP.js → chunk-YFP3MYMY.js} +19 -9
  55. package/dist/cli/chunk-YFP3MYMY.js.map +1 -0
  56. package/dist/cli/{chunk-HNXDZGC6.js → chunk-ZXSCAODE.js} +9 -9
  57. package/dist/cli/{chunk-HNXDZGC6.js.map → chunk-ZXSCAODE.js.map} +1 -1
  58. package/dist/cli/{code-2JIHL5M2.js → code-Q4NRVEDG.js} +42 -35
  59. package/dist/cli/code-Q4NRVEDG.js.map +1 -0
  60. package/dist/cli/{commands-OPT5AJNH.js → commands-4CDI4GFM.js} +4 -4
  61. package/dist/cli/{commit-KA37H6GM.js → commit-GW7LDQP5.js} +3 -3
  62. package/dist/cli/{desktop-5ONTRU3C.js → desktop-EG6P5SF2.js} +321 -36
  63. package/dist/cli/desktop-EG6P5SF2.js.map +1 -0
  64. package/dist/cli/{diff-SOIA7AKH.js → diff-VI2YX4FN.js} +8 -8
  65. package/dist/cli/{doctor-RCUP4XRV.js → doctor-CQTTZP27.js} +9 -9
  66. package/dist/cli/{events-6KHITNX4.js → events-VRYXOSKI.js} +3 -3
  67. package/dist/cli/index.js +94 -45
  68. package/dist/cli/index.js.map +1 -1
  69. package/dist/cli/{mcp-JP5OWD6R.js → mcp-J2UCD4RZ.js} +2 -2
  70. package/dist/cli/{mcp-browse-ONCJJPJN.js → mcp-browse-GSX34JEK.js} +2 -2
  71. package/dist/cli/{mcp-inspect-TPLHW5JA.js → mcp-inspect-RRFYF4ZV.js} +4 -4
  72. package/dist/cli/{prompt-RJDNCQAP.js → prompt-5TQPIVHV.js} +4 -4
  73. package/dist/cli/{prune-sessions-MKEATRVL.js → prune-sessions-SEWX7GP6.js} +2 -2
  74. package/dist/cli/{replay-4NILJG4U.js → replay-MJCEMODU.js} +9 -9
  75. package/dist/cli/{run-WFGXB4SB.js → run-P4D5VDYE.js} +17 -17
  76. package/dist/cli/{server-5VFQP3PV.js → server-C25JNNZV.js} +82 -34
  77. package/dist/cli/server-C25JNNZV.js.map +1 -0
  78. package/dist/cli/{sessions-5XDJDALO.js → sessions-QIONZJQ6.js} +15 -15
  79. package/dist/cli/{setup-F6XSWLRA.js → setup-NLQ6G5G4.js} +7 -7
  80. package/dist/cli/setup-NLQ6G5G4.js.map +1 -0
  81. package/dist/cli/{stats-ALHBZICE.js → stats-DFZEXHP4.js} +6 -6
  82. package/dist/cli/{version-JVRAHBMM.js → version-GR3X3MPI.js} +15 -15
  83. package/dist/index.d.ts +69 -56
  84. package/dist/index.js +791 -303
  85. package/dist/index.js.map +1 -1
  86. package/package.json +3 -1
  87. package/dist/cli/acp-LKJU5DZX.js.map +0 -1
  88. package/dist/cli/chat-W7LAWEN6.js +0 -51
  89. package/dist/cli/chunk-2AASOSD5.js.map +0 -1
  90. package/dist/cli/chunk-6VANO7KB.js.map +0 -1
  91. package/dist/cli/chunk-7YW6TPXK.js.map +0 -1
  92. package/dist/cli/chunk-CXVWUPA3.js.map +0 -1
  93. package/dist/cli/chunk-DGA5QYFM.js.map +0 -1
  94. package/dist/cli/chunk-DHRVZJ2D.js +0 -642
  95. package/dist/cli/chunk-DHRVZJ2D.js.map +0 -1
  96. package/dist/cli/chunk-E7TAHQ4A.js.map +0 -1
  97. package/dist/cli/chunk-JLQDNLZF.js.map +0 -1
  98. package/dist/cli/chunk-JVFEJAJX.js.map +0 -1
  99. package/dist/cli/chunk-JVQT5IYP.js.map +0 -1
  100. package/dist/cli/chunk-MIIZJD5O.js.map +0 -1
  101. package/dist/cli/chunk-SPXN5JIT.js.map +0 -1
  102. package/dist/cli/chunk-TEUDEGX2.js.map +0 -1
  103. package/dist/cli/chunk-WQ6ZRDQM.js.map +0 -1
  104. package/dist/cli/chunk-XPAUNFOL.js.map +0 -1
  105. package/dist/cli/chunk-ZOQHVQON.js.map +0 -1
  106. package/dist/cli/code-2JIHL5M2.js.map +0 -1
  107. package/dist/cli/desktop-5ONTRU3C.js.map +0 -1
  108. package/dist/cli/server-5VFQP3PV.js.map +0 -1
  109. package/dist/cli/setup-F6XSWLRA.js.map +0 -1
  110. /package/dist/cli/{chat-W7LAWEN6.js.map → chat-YTPATMMG.js.map} +0 -0
  111. /package/dist/cli/{chunk-R2ASNSEO.js.map → chunk-2XY77LW7.js.map} +0 -0
  112. /package/dist/cli/{chunk-SE7C5ZSI.js.map → chunk-4MFCAZ2W.js.map} +0 -0
  113. /package/dist/cli/{chunk-TDSBASOF.js.map → chunk-6QC5RQLE.js.map} +0 -0
  114. /package/dist/cli/{chunk-7SGGXNB2.js.map → chunk-CCJAP7G3.js.map} +0 -0
  115. /package/dist/cli/{chunk-3AAG2CUT.js.map → chunk-CNG32VAB.js.map} +0 -0
  116. /package/dist/cli/{chunk-WRONKNIH.js.map → chunk-DN4B5S6Y.js.map} +0 -0
  117. /package/dist/cli/{chunk-NCBP5D6E.js.map → chunk-DQ6K5ZQ7.js.map} +0 -0
  118. /package/dist/cli/{chunk-IYQ325V7.js.map → chunk-E5WCLUIU.js.map} +0 -0
  119. /package/dist/cli/{chunk-YRLC2EDF.js.map → chunk-EQATK2L2.js.map} +0 -0
  120. /package/dist/cli/{chunk-C72TNHDE.js.map → chunk-GH7DC2Y5.js.map} +0 -0
  121. /package/dist/cli/{chunk-EAOL43HB.js.map → chunk-HUILPCYX.js.map} +0 -0
  122. /package/dist/cli/{chunk-M4E5JK6S.js.map → chunk-QCFLPSPH.js.map} +0 -0
  123. /package/dist/cli/{chunk-7LOJS3LV.js.map → chunk-TDHXB2ER.js.map} +0 -0
  124. /package/dist/cli/{chunk-K3AIFMI6.js.map → chunk-TRWHTFG7.js.map} +0 -0
  125. /package/dist/cli/{commands-OPT5AJNH.js.map → commands-4CDI4GFM.js.map} +0 -0
  126. /package/dist/cli/{commit-KA37H6GM.js.map → commit-GW7LDQP5.js.map} +0 -0
  127. /package/dist/cli/{diff-SOIA7AKH.js.map → diff-VI2YX4FN.js.map} +0 -0
  128. /package/dist/cli/{doctor-RCUP4XRV.js.map → doctor-CQTTZP27.js.map} +0 -0
  129. /package/dist/cli/{events-6KHITNX4.js.map → events-VRYXOSKI.js.map} +0 -0
  130. /package/dist/cli/{mcp-JP5OWD6R.js.map → mcp-J2UCD4RZ.js.map} +0 -0
  131. /package/dist/cli/{mcp-browse-ONCJJPJN.js.map → mcp-browse-GSX34JEK.js.map} +0 -0
  132. /package/dist/cli/{mcp-inspect-TPLHW5JA.js.map → mcp-inspect-RRFYF4ZV.js.map} +0 -0
  133. /package/dist/cli/{prompt-RJDNCQAP.js.map → prompt-5TQPIVHV.js.map} +0 -0
  134. /package/dist/cli/{prune-sessions-MKEATRVL.js.map → prune-sessions-SEWX7GP6.js.map} +0 -0
  135. /package/dist/cli/{replay-4NILJG4U.js.map → replay-MJCEMODU.js.map} +0 -0
  136. /package/dist/cli/{run-WFGXB4SB.js.map → run-P4D5VDYE.js.map} +0 -0
  137. /package/dist/cli/{sessions-5XDJDALO.js.map → sessions-QIONZJQ6.js.map} +0 -0
  138. /package/dist/cli/{stats-ALHBZICE.js.map → stats-DFZEXHP4.js.map} +0 -0
  139. /package/dist/cli/{version-JVRAHBMM.js.map → version-GR3X3MPI.js.map} +0 -0
package/dist/cli/index.js CHANGED
@@ -5,42 +5,43 @@ import {
5
5
  startCpuProfile,
6
6
  stopAndSaveCpuProfile
7
7
  } from "./chunk-ZZM6QJ4W.js";
8
- import "./chunk-ZOQHVQON.js";
9
- import "./chunk-TDSBASOF.js";
10
- import "./chunk-EAOL43HB.js";
11
- import "./chunk-WQ6ZRDQM.js";
8
+ import "./chunk-JBH5RM7X.js";
9
+ import "./chunk-6QC5RQLE.js";
10
+ import "./chunk-HUILPCYX.js";
11
+ import "./chunk-HIYTRCSW.js";
12
12
  import {
13
13
  applyMemoryStack
14
- } from "./chunk-DHRVZJ2D.js";
14
+ } from "./chunk-BQ6HC66J.js";
15
15
  import {
16
+ presetNameForSettings,
16
17
  resolvePreset
17
- } from "./chunk-2425HK6U.js";
18
+ } from "./chunk-LGEKVMMV.js";
18
19
  import {
19
20
  installProxyIfConfigured
20
21
  } from "./chunk-5QCB62C4.js";
21
22
  import "./chunk-6OWJV3YW.js";
22
- import "./chunk-MIIZJD5O.js";
23
+ import "./chunk-DWPAKZTY.js";
23
24
  import "./chunk-25T6CVUP.js";
24
25
  import "./chunk-2UQP6H6T.js";
25
- import "./chunk-JVFEJAJX.js";
26
+ import "./chunk-TRSAHHCL.js";
26
27
  import {
27
28
  escalationContract
28
- } from "./chunk-TEUDEGX2.js";
29
- import "./chunk-C72TNHDE.js";
29
+ } from "./chunk-FY4S7TJZ.js";
30
+ import "./chunk-GH7DC2Y5.js";
30
31
  import "./chunk-S4XVGLRW.js";
31
32
  import {
32
33
  listSessions
33
- } from "./chunk-E7TAHQ4A.js";
34
- import "./chunk-WRONKNIH.js";
35
- import "./chunk-M4E5JK6S.js";
34
+ } from "./chunk-RRXUIPWG.js";
35
+ import "./chunk-DN4B5S6Y.js";
36
+ import "./chunk-QCFLPSPH.js";
36
37
  import {
37
38
  t
38
- } from "./chunk-6VANO7KB.js";
39
+ } from "./chunk-NRQ5UP5T.js";
39
40
  import {
40
41
  normalizeMcpConfig,
41
42
  readConfig,
42
43
  specToRaw
43
- } from "./chunk-DGA5QYFM.js";
44
+ } from "./chunk-6CRPCJAU.js";
44
45
  import {
45
46
  VERSION
46
47
  } from "./chunk-XXC2BYTV.js";
@@ -3053,6 +3054,7 @@ var require_commander = __commonJS({
3053
3054
  // src/cli/heap-limit-launch.ts
3054
3055
  import { spawnSync } from "child_process";
3055
3056
  import { totalmem } from "os";
3057
+ import { fileURLToPath } from "url";
3056
3058
  import { getHeapStatistics } from "v8";
3057
3059
 
3058
3060
  // src/cli/heap-limit.ts
@@ -3071,21 +3073,28 @@ function decideHeapTargetMb(inputs) {
3071
3073
  }
3072
3074
 
3073
3075
  // src/cli/heap-limit-launch.ts
3076
+ var runningUnderVitest = process.env.VITEST === "true" || process.env.VITEST_WORKER_ID !== void 0;
3074
3077
  var target = decideHeapTargetMb({
3075
3078
  currentLimitMb: Math.floor(getHeapStatistics().heap_size_limit / 1024 / 1024),
3076
3079
  totalMemMb: Math.floor(totalmem() / 1024 / 1024),
3077
3080
  nodeOptions: process.env.NODE_OPTIONS ?? "",
3078
3081
  execArgv: process.execArgv,
3079
- alreadyReexec: process.env[RX_HEAP_REEXEC_ENV] === "1"
3082
+ alreadyReexec: process.env[RX_HEAP_REEXEC_ENV] === "1" || runningUnderVitest
3080
3083
  });
3081
3084
  if (target !== null) {
3082
3085
  const existing = process.env.NODE_OPTIONS ?? "";
3083
3086
  const nextOptions = `${existing} --max-old-space-size=${target}`.trim();
3084
3087
  const childEnv = { ...process.env, NODE_OPTIONS: nextOptions, [RX_HEAP_REEXEC_ENV]: "1" };
3085
- const result = spawnSync(process.execPath, process.argv.slice(1), {
3086
- env: childEnv,
3087
- stdio: "inherit"
3088
- });
3088
+ const extension = import.meta.url.endsWith(".ts") ? "ts" : "js";
3089
+ const entrypoint = fileURLToPath(new URL(`./index.${extension}`, import.meta.url));
3090
+ const result = spawnSync(
3091
+ process.execPath,
3092
+ [...process.execArgv, entrypoint, ...process.argv.slice(2)],
3093
+ {
3094
+ env: childEnv,
3095
+ stdio: "inherit"
3096
+ }
3097
+ );
3089
3098
  process.exit(result.status ?? 0);
3090
3099
  }
3091
3100
 
@@ -3106,20 +3115,58 @@ var {
3106
3115
  Help
3107
3116
  } = import_index.default;
3108
3117
 
3118
+ // src/mcp/dot-mcp-json.ts
3119
+ import { existsSync, readFileSync } from "fs";
3120
+ import { join } from "path";
3121
+ var DOT_MCP_JSON = ".mcp.json";
3122
+ function loadDotMcpJson(projectRoot) {
3123
+ const path = join(projectRoot, DOT_MCP_JSON);
3124
+ if (!existsSync(path)) return void 0;
3125
+ let raw;
3126
+ try {
3127
+ raw = readFileSync(path, "utf8");
3128
+ } catch {
3129
+ return void 0;
3130
+ }
3131
+ let parsed;
3132
+ try {
3133
+ parsed = JSON.parse(raw);
3134
+ } catch {
3135
+ return void 0;
3136
+ }
3137
+ if (!parsed || typeof parsed !== "object") return void 0;
3138
+ const servers = parsed.mcpServers;
3139
+ if (!servers || typeof servers !== "object" || Array.isArray(servers)) return void 0;
3140
+ const out = {};
3141
+ for (const [name, entry] of Object.entries(servers)) {
3142
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) continue;
3143
+ out[name] = entry;
3144
+ }
3145
+ return Object.keys(out).length > 0 ? out : void 0;
3146
+ }
3147
+
3109
3148
  // src/cli/resolve.ts
3110
3149
  function resolveDefaults(flags) {
3111
3150
  const cfg = flags.noConfig ? {} : readConfig();
3112
3151
  const preset = pickPreset(flags.preset, cfg.preset);
3113
3152
  const presetSettings = resolvePreset(preset);
3114
3153
  const model = flags.model ?? presetSettings.model;
3154
+ const presetName = flags.model ? void 0 : presetNameForSettings(presetSettings);
3155
+ const autoEscalate = flags.model ? false : presetSettings.autoEscalate;
3115
3156
  const reasoningEffort = presetSettings.reasoningEffort;
3157
+ const merged = flags.noConfig ? cfg : mergeDotMcpJson(cfg, process.cwd());
3116
3158
  const normalizedMcp = normalizeMcpConfig(
3117
- cfg,
3159
+ merged,
3118
3160
  flags.mcp && flags.mcp.length > 0 ? flags.mcp : void 0
3119
3161
  );
3120
3162
  const mcp2 = normalizedMcp.map(specToRaw);
3121
3163
  const session = resolveSession(flags.session, cfg.session);
3122
- return { model, reasoningEffort, mcp: mcp2, session };
3164
+ return { model, preset: presetName, autoEscalate, reasoningEffort, mcp: mcp2, session };
3165
+ }
3166
+ function mergeDotMcpJson(cfg, projectRoot) {
3167
+ const project = loadDotMcpJson(projectRoot);
3168
+ if (!project) return cfg;
3169
+ return { ...cfg, mcpServers: { ...cfg.mcpServers ?? {}, ...project } };
3123
3170
  }
3124
3171
  function pickPreset(flagPreset, configPreset) {
3125
3172
  if (flagPreset && isPresetName(flagPreset)) return flagPreset;
@@ -3240,15 +3287,15 @@ program2.action(async (opts) => {
3240
3287
  const cfg = readConfig();
3241
3288
  const mode = resolveBareCommandMode(cfg);
3242
3289
  if (mode === "setup") {
3243
- const { setupCommand } = await import("./setup-F6XSWLRA.js");
3290
+ const { setupCommand } = await import("./setup-NLQ6G5G4.js");
3244
3291
  await setupCommand({ forceKeyStep: true });
3245
3292
  return;
3246
3293
  }
3247
- const { codeCommand } = await import("./code-2JIHL5M2.js");
3294
+ const { codeCommand } = await import("./code-Q4NRVEDG.js");
3248
3295
  await codeCommand({ dir: process.cwd(), forceResume: !!opts.continue });
3249
3296
  });
3250
3297
  program2.command("setup").description(t("cli.setup")).action(async () => {
3251
- const { setupCommand } = await import("./setup-F6XSWLRA.js");
3298
+ const { setupCommand } = await import("./setup-NLQ6G5G4.js");
3252
3299
  await setupCommand({ forceKeyStep: true });
3253
3300
  });
3254
3301
  program2.command("code [dir]").description(t("cli.code")).option("-m, --model <id>", t("ui.modelOverride")).option("--no-session", t("ui.noSession")).option("-r, --resume", t("ui.resumeHint")).option("-n, --new", t("ui.newHint")).option("--transcript <path>", t("ui.transcriptHint")).option("--budget <usd>", t("ui.budgetHint"), (v) => Number.parseFloat(v)).option("--no-dashboard", t("ui.noDashboard")).option("--open-dashboard", t("ui.openDashboardHint")).option("--dashboard-port <port>", t("ui.dashboardPortHint")).option(
@@ -3260,7 +3307,7 @@ program2.command("code [dir]").description(t("cli.code")).option("-m, --model <i
3260
3307
  ).action(async (dir, opts) => {
3261
3308
  const profiling = await maybeStartCpuProfile(opts.profile);
3262
3309
  try {
3263
- const { codeCommand } = await import("./code-2JIHL5M2.js");
3310
+ const { codeCommand } = await import("./code-Q4NRVEDG.js");
3264
3311
  await codeCommand({
3265
3312
  dir,
3266
3313
  model: opts.model,
@@ -3309,12 +3356,14 @@ program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t
3309
3356
  (msg) => process.stderr.write(`${msg}
3310
3357
  `)
3311
3358
  );
3312
- const { chatCommand } = await import("./chat-W7LAWEN6.js");
3359
+ const { chatCommand } = await import("./chat-YTPATMMG.js");
3313
3360
  const chatBase = opts.system ?? defaultSystemPrompt(defaults.model);
3314
3361
  const chatCwd = process.cwd();
3315
3362
  const chatRebuildSystem = () => applyMemoryStack(chatBase, chatCwd);
3316
3363
  await chatCommand({
3317
3364
  model: defaults.model,
3365
+ preset: defaults.preset,
3366
+ autoEscalate: defaults.autoEscalate,
3318
3367
  system: chatRebuildSystem(),
3319
3368
  rebuildSystem: chatRebuildSystem,
3320
3369
  transcript: opts.transcript,
@@ -3349,7 +3398,7 @@ program2.command("run <task>").description(t("cli.run")).option("-m, --model <id
3349
3398
  preset: opts.preset,
3350
3399
  noConfig: opts.config === false
3351
3400
  });
3352
- const { runCommand } = await import("./run-WFGXB4SB.js");
3401
+ const { runCommand } = await import("./run-P4D5VDYE.js");
3353
3402
  await runCommand({
3354
3403
  task,
3355
3404
  model: defaults.model,
@@ -3372,7 +3421,7 @@ program2.command("acp").description("run reasonix as an Agent Client Protocol (A
3372
3421
  preset: opts.preset,
3373
3422
  noConfig: false
3374
3423
  });
3375
- const { acpCommand } = await import("./acp-LKJU5DZX.js");
3424
+ const { acpCommand } = await import("./acp-GEOAKSTU.js");
3376
3425
  await acpCommand({
3377
3426
  model: defaults.model,
3378
3427
  budgetUsd: parseBudgetFlag(opts.budget),
@@ -3390,7 +3439,7 @@ program2.command("desktop").description("headless JSON-RPC chat for the desktop
3390
3439
  preset: opts.preset,
3391
3440
  noConfig: false
3392
3441
  });
3393
- const { desktopCommand } = await import("./desktop-5ONTRU3C.js");
3442
+ const { desktopCommand } = await import("./desktop-EG6P5SF2.js");
3394
3443
  await desktopCommand({
3395
3444
  model: defaults.model,
3396
3445
  budgetUsd: parseBudgetFlag(opts.budget),
@@ -3398,27 +3447,27 @@ program2.command("desktop").description("headless JSON-RPC chat for the desktop
3398
3447
  });
3399
3448
  });
3400
3449
  program2.command("stats [transcript]").description(t("cli.stats")).action(async (transcript) => {
3401
- const { statsCommand } = await import("./stats-ALHBZICE.js");
3450
+ const { statsCommand } = await import("./stats-DFZEXHP4.js");
3402
3451
  statsCommand({ transcript });
3403
3452
  });
3404
3453
  program2.command("doctor").description(t("cli.doctor")).option("--json", t("ui.jsonHint")).action(async (opts) => {
3405
- const { doctorCommand } = await import("./doctor-RCUP4XRV.js");
3454
+ const { doctorCommand } = await import("./doctor-CQTTZP27.js");
3406
3455
  await doctorCommand({ json: !!opts.json });
3407
3456
  });
3408
3457
  program2.command("commit").description(t("cli.commit")).option("-m, --model <id>", t("ui.modelOverrideFlash")).option("-y, --yes", t("ui.skipConfirmHint")).action(async (opts) => {
3409
- const { commitCommand } = await import("./commit-KA37H6GM.js");
3458
+ const { commitCommand } = await import("./commit-GW7LDQP5.js");
3410
3459
  await commitCommand({ model: opts.model, yes: !!opts.yes });
3411
3460
  });
3412
3461
  program2.command("sessions [name]").description(t("cli.sessions")).option("-v, --verbose", t("ui.verboseHint")).action(async (name, opts) => {
3413
- const { sessionsCommand } = await import("./sessions-5XDJDALO.js");
3462
+ const { sessionsCommand } = await import("./sessions-QIONZJQ6.js");
3414
3463
  sessionsCommand({ name, verbose: !!opts.verbose });
3415
3464
  });
3416
3465
  program2.command("prune-sessions").description(t("cli.pruneSessions")).option("--days <n>", t("ui.pruneDaysHint"), (v) => Number.parseInt(v, 10)).option("--dry-run", t("ui.pruneDryRunHint")).action(async (opts) => {
3417
- const { pruneSessionsCommand } = await import("./prune-sessions-MKEATRVL.js");
3466
+ const { pruneSessionsCommand } = await import("./prune-sessions-SEWX7GP6.js");
3418
3467
  pruneSessionsCommand({ days: opts.days, dryRun: !!opts.dryRun });
3419
3468
  });
3420
3469
  program2.command("events <name>").description(t("cli.events")).option("--type <type>", t("ui.eventTypeHint")).option("--since <id>", t("ui.eventSinceHint"), (v) => Number.parseInt(v, 10)).option("--tail <n>", t("ui.eventTailHint"), (v) => Number.parseInt(v, 10)).option("--json", t("ui.jsonHint")).option("--projection", t("ui.projectionHint")).action(async (name, opts) => {
3421
- const { eventsCommand } = await import("./events-6KHITNX4.js");
3470
+ const { eventsCommand } = await import("./events-VRYXOSKI.js");
3422
3471
  eventsCommand({
3423
3472
  name,
3424
3473
  type: opts.type,
@@ -3429,7 +3478,7 @@ program2.command("events <name>").description(t("cli.events")).option("--type <t
3429
3478
  });
3430
3479
  });
3431
3480
  program2.command("replay <transcript>").description(t("cli.replay")).option("--print", t("ui.printHint")).option("--head <n>", t("ui.headHint"), (v) => Number.parseInt(v, 10)).option("--tail <n>", t("ui.tailHint"), (v) => Number.parseInt(v, 10)).action(async (transcript, opts) => {
3432
- const { replayCommand } = await import("./replay-4NILJG4U.js");
3481
+ const { replayCommand } = await import("./replay-MJCEMODU.js");
3433
3482
  await replayCommand({
3434
3483
  path: transcript,
3435
3484
  print: !!opts.print,
@@ -3438,7 +3487,7 @@ program2.command("replay <transcript>").description(t("cli.replay")).option("--p
3438
3487
  });
3439
3488
  });
3440
3489
  program2.command("diff <a> <b>").description(t("cli.diff")).option("--md <path>", t("ui.mdReportHint")).option("--print", t("ui.printHintTable")).option("--tui", t("ui.tuiHint")).option("--label-a <label>", t("ui.labelAHint")).option("--label-b <label>", t("ui.labelBHint")).action(async (a, b, opts) => {
3441
- const { diffCommand } = await import("./diff-SOIA7AKH.js");
3490
+ const { diffCommand } = await import("./diff-VI2YX4FN.js");
3442
3491
  await diffCommand({
3443
3492
  a,
3444
3493
  b,
@@ -3452,7 +3501,7 @@ program2.command("diff <a> <b>").description(t("cli.diff")).option("--md <path>"
3452
3501
  var mcp = program2.command("mcp").description(t("cli.mcp"));
3453
3502
  mcp.command("list").description(t("ui.mcpListDescription")).option("--json", t("ui.jsonHintCatalog")).option("--local", t("ui.mcpLocalHint")).option("--refresh", t("ui.mcpRefreshHint")).option("--limit <n>", t("ui.mcpLimitHint"), (v) => Number.parseInt(v, 10)).option("--pages <n>", t("ui.mcpPagesHint"), (v) => Number.parseInt(v, 10)).option("--all", t("ui.mcpAllHint")).action(async (opts) => {
3454
3503
  try {
3455
- const { mcpListCommand } = await import("./mcp-JP5OWD6R.js");
3504
+ const { mcpListCommand } = await import("./mcp-J2UCD4RZ.js");
3456
3505
  await mcpListCommand({
3457
3506
  json: !!opts.json,
3458
3507
  local: !!opts.local,
@@ -3469,7 +3518,7 @@ mcp.command("list").description(t("ui.mcpListDescription")).option("--json", t("
3469
3518
  });
3470
3519
  mcp.command("search <query>").description(t("ui.mcpSearchDescription")).option("--json", t("ui.jsonHintCatalog")).option("--refresh", t("ui.mcpRefreshHint")).option("--limit <n>", t("ui.mcpLimitHint"), (v) => Number.parseInt(v, 10)).option("--max-pages <n>", t("ui.mcpMaxPagesHint"), (v) => Number.parseInt(v, 10)).action(async (query, opts) => {
3471
3520
  try {
3472
- const { mcpSearchCommand } = await import("./mcp-JP5OWD6R.js");
3521
+ const { mcpSearchCommand } = await import("./mcp-J2UCD4RZ.js");
3473
3522
  await mcpSearchCommand(query, {
3474
3523
  json: !!opts.json,
3475
3524
  refresh: !!opts.refresh,
@@ -3484,7 +3533,7 @@ mcp.command("search <query>").description(t("ui.mcpSearchDescription")).option("
3484
3533
  });
3485
3534
  mcp.command("install <name>").description(t("ui.mcpInstallDescription")).option("--refresh", t("ui.mcpRefreshHint")).option("--max-pages <n>", t("ui.mcpMaxPagesHint"), (v) => Number.parseInt(v, 10)).action(async (name, opts) => {
3486
3535
  try {
3487
- const { mcpInstallCommand } = await import("./mcp-JP5OWD6R.js");
3536
+ const { mcpInstallCommand } = await import("./mcp-J2UCD4RZ.js");
3488
3537
  await mcpInstallCommand(name, {
3489
3538
  refresh: !!opts.refresh,
3490
3539
  maxPages: typeof opts.maxPages === "number" && opts.maxPages > 0 ? opts.maxPages : void 0
@@ -3497,7 +3546,7 @@ mcp.command("install <name>").description(t("ui.mcpInstallDescription")).option(
3497
3546
  });
3498
3547
  mcp.command("browse").description(t("ui.mcpBrowseDescription")).action(async () => {
3499
3548
  try {
3500
- const { mcpBrowseCommand } = await import("./mcp-browse-ONCJJPJN.js");
3549
+ const { mcpBrowseCommand } = await import("./mcp-browse-GSX34JEK.js");
3501
3550
  await mcpBrowseCommand();
3502
3551
  } catch (err) {
3503
3552
  process.stderr.write(`mcp browse failed: ${err.message}
@@ -3506,7 +3555,7 @@ mcp.command("browse").description(t("ui.mcpBrowseDescription")).action(async ()
3506
3555
  }
3507
3556
  });
3508
3557
  mcp.command("inspect <spec>").description(t("ui.mcpInspectDescription")).option("--json", t("ui.jsonHintReport")).action(async (spec, opts) => {
3509
- const { formatMcpInspectFailure, mcpInspectCommand } = await import("./mcp-inspect-TPLHW5JA.js");
3558
+ const { formatMcpInspectFailure, mcpInspectCommand } = await import("./mcp-inspect-RRFYF4ZV.js");
3510
3559
  try {
3511
3560
  await mcpInspectCommand({ spec, json: !!opts.json });
3512
3561
  } catch (err) {
@@ -3516,7 +3565,7 @@ mcp.command("inspect <spec>").description(t("ui.mcpInspectDescription")).option(
3516
3565
  }
3517
3566
  });
3518
3567
  program2.command("version").description(t("cli.version")).action(async () => {
3519
- const { versionCommand } = await import("./version-JVRAHBMM.js");
3568
+ const { versionCommand } = await import("./version-GR3X3MPI.js");
3520
3569
  versionCommand();
3521
3570
  });
3522
3571
  program2.command("update").description(t("cli.update")).option("--dry-run", t("ui.dryRunHint")).action(async (opts) => {
@@ -3525,7 +3574,7 @@ program2.command("update").description(t("cli.update")).option("--dry-run", t("u
3525
3574
  });
3526
3575
  program2.command("index").description(t("cli.index")).option("--rebuild", t("ui.rebuildHint")).option("--model <name>", t("ui.embedModelHint")).option("--dir <path>", t("ui.projectDirHint")).option("--ollama-url <url>", t("ui.ollamaUrlHint")).option("-y, --yes", t("ui.skipPromptsHint")).action(
3527
3576
  async (opts) => {
3528
- const { indexCommand } = await import("./commands-OPT5AJNH.js");
3577
+ const { indexCommand } = await import("./commands-4CDI4GFM.js");
3529
3578
  await indexCommand(opts);
3530
3579
  }
3531
3580
  );