reasonix 0.45.1 → 0.46.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 (121) hide show
  1. package/README.md +3 -8
  2. package/README.zh-CN.md +3 -0
  3. package/dashboard/dist/app.js +76 -6
  4. package/dashboard/dist/app.js.map +1 -1
  5. package/dist/cli/{acp-LGBLHBKY.js → acp-LKJU5DZX.js} +19 -19
  6. package/dist/cli/chat-W7LAWEN6.js +51 -0
  7. package/dist/cli/{chunk-5I2C4JEO.js → chunk-2AASOSD5.js} +6 -6
  8. package/dist/cli/{chunk-5I2C4JEO.js.map → chunk-2AASOSD5.js.map} +1 -1
  9. package/dist/cli/{chunk-HVUZWNSP.js → chunk-3AAG2CUT.js} +2 -2
  10. package/dist/cli/{chunk-IJ7JA32V.js → chunk-6VANO7KB.js} +44 -8
  11. package/dist/cli/chunk-6VANO7KB.js.map +1 -0
  12. package/dist/cli/{chunk-LIR2HBQH.js → chunk-7LOJS3LV.js} +2 -2
  13. package/dist/cli/{chunk-AB2RED3C.js → chunk-7SGGXNB2.js} +16 -16
  14. package/dist/cli/{chunk-AB2RED3C.js.map → chunk-7SGGXNB2.js.map} +1 -1
  15. package/dist/cli/{chunk-CBIQWMS6.js → chunk-7YW6TPXK.js} +7 -7
  16. package/dist/cli/{chunk-A3TSSDS2.js → chunk-C72TNHDE.js} +2 -2
  17. package/dist/cli/{chunk-AVFXO2EZ.js → chunk-DGA5QYFM.js} +107 -4
  18. package/dist/cli/chunk-DGA5QYFM.js.map +1 -0
  19. package/dist/cli/{chunk-JNAQYELD.js → chunk-DHRVZJ2D.js} +2 -2
  20. package/dist/cli/{chunk-5ACMUK4Q.js → chunk-E7TAHQ4A.js} +2 -1
  21. package/dist/cli/{chunk-C53JQES5.js → chunk-EAOL43HB.js} +3 -3
  22. package/dist/cli/{chunk-QJDDIK3Z.js → chunk-IYQ325V7.js} +2 -2
  23. package/dist/cli/{chunk-4CTDEJUF.js → chunk-JLQDNLZF.js} +2 -2
  24. package/dist/cli/{chunk-RDRC3XDT.js → chunk-JVFEJAJX.js} +2 -2
  25. package/dist/cli/{chunk-GTZTQNX5.js → chunk-JVQT5IYP.js} +7 -7
  26. package/dist/cli/{chunk-IBJIK2DD.js → chunk-K3AIFMI6.js} +2 -2
  27. package/dist/cli/chunk-K3AIFMI6.js.map +1 -0
  28. package/dist/cli/{chunk-ZZYBBX5N.js → chunk-M4E5JK6S.js} +23 -9
  29. package/dist/cli/chunk-M4E5JK6S.js.map +1 -0
  30. package/dist/cli/{chunk-V26WPN3J.js → chunk-MIIZJD5O.js} +28 -1
  31. package/dist/cli/chunk-MIIZJD5O.js.map +1 -0
  32. package/dist/cli/{chunk-4HCP2UQW.js → chunk-NCBP5D6E.js} +2 -2
  33. package/dist/cli/{chunk-HKWSPKMU.js → chunk-R2ASNSEO.js} +8 -8
  34. package/dist/cli/{chunk-W7YGWUWU.js → chunk-SE7C5ZSI.js} +3 -3
  35. package/dist/cli/{chunk-OLLQ76U6.js → chunk-SPXN5JIT.js} +1536 -2500
  36. package/dist/cli/chunk-SPXN5JIT.js.map +1 -0
  37. package/dist/cli/{chunk-WK3UFQY3.js → chunk-TDSBASOF.js} +2 -2
  38. package/dist/cli/{chunk-XSU4QVFW.js → chunk-WQ6ZRDQM.js} +12 -3
  39. package/dist/cli/chunk-WQ6ZRDQM.js.map +1 -0
  40. package/dist/cli/{chunk-R3CTO2HM.js → chunk-WRONKNIH.js} +2 -2
  41. package/dist/cli/{chunk-MJ6W5UN3.js → chunk-XPAUNFOL.js} +2 -2
  42. package/dist/cli/{chunk-NVURFF27.js → chunk-YRLC2EDF.js} +2 -2
  43. package/dist/cli/{chunk-WL6SNQ5T.js → chunk-ZOQHVQON.js} +9 -93
  44. package/dist/cli/chunk-ZOQHVQON.js.map +1 -0
  45. package/dist/cli/{code-D7V2TQX2.js → code-2JIHL5M2.js} +30 -33
  46. package/dist/cli/code-2JIHL5M2.js.map +1 -0
  47. package/dist/cli/{commands-OCU42XG4.js → commands-OPT5AJNH.js} +4 -4
  48. package/dist/cli/{commit-XCQIQCYG.js → commit-KA37H6GM.js} +3 -3
  49. package/dist/cli/{desktop-ZCUG7LMF.js → desktop-5ONTRU3C.js} +20 -20
  50. package/dist/cli/{diff-66B2KWOJ.js → diff-SOIA7AKH.js} +8 -8
  51. package/dist/cli/{doctor-Y73CPPRZ.js → doctor-RCUP4XRV.js} +9 -9
  52. package/dist/cli/{events-NGZ2OJYH.js → events-6KHITNX4.js} +3 -3
  53. package/dist/cli/index.js +46 -102
  54. package/dist/cli/index.js.map +1 -1
  55. package/dist/cli/{mcp-MPVGBBJF.js → mcp-JP5OWD6R.js} +2 -2
  56. package/dist/cli/{mcp-browse-4XOTC3FJ.js → mcp-browse-ONCJJPJN.js} +2 -2
  57. package/dist/cli/{mcp-inspect-CEMGKKAH.js → mcp-inspect-TPLHW5JA.js} +4 -4
  58. package/dist/cli/{prompt-2D7ID24X.js → prompt-RJDNCQAP.js} +3 -3
  59. package/dist/cli/{prune-sessions-OJEYYLHY.js → prune-sessions-MKEATRVL.js} +2 -2
  60. package/dist/cli/{replay-HIQYWBEK.js → replay-4NILJG4U.js} +8 -8
  61. package/dist/cli/{run-5DPQFSP6.js → run-WFGXB4SB.js} +17 -18
  62. package/dist/cli/run-WFGXB4SB.js.map +1 -0
  63. package/dist/cli/{server-TQ2IHYQJ.js → server-5VFQP3PV.js} +13 -13
  64. package/dist/cli/{sessions-KY54NG45.js → sessions-5XDJDALO.js} +28 -14
  65. package/dist/cli/sessions-5XDJDALO.js.map +1 -0
  66. package/dist/cli/{setup-DDNOMMAB.js → setup-F6XSWLRA.js} +7 -7
  67. package/dist/cli/setup-F6XSWLRA.js.map +1 -0
  68. package/dist/cli/{stats-X2VTWKNS.js → stats-ALHBZICE.js} +6 -6
  69. package/dist/cli/{version-7O6A5T7Q.js → version-JVRAHBMM.js} +14 -14
  70. package/dist/index.d.ts +23 -13
  71. package/dist/index.js +1112 -1090
  72. package/dist/index.js.map +1 -1
  73. package/package.json +5 -16
  74. package/dist/cli/chat-I7UTQO5L.js +0 -51
  75. package/dist/cli/chunk-AVFXO2EZ.js.map +0 -1
  76. package/dist/cli/chunk-IBJIK2DD.js.map +0 -1
  77. package/dist/cli/chunk-IJ7JA32V.js.map +0 -1
  78. package/dist/cli/chunk-OLLQ76U6.js.map +0 -1
  79. package/dist/cli/chunk-V26WPN3J.js.map +0 -1
  80. package/dist/cli/chunk-WL6SNQ5T.js.map +0 -1
  81. package/dist/cli/chunk-XSU4QVFW.js.map +0 -1
  82. package/dist/cli/chunk-ZZYBBX5N.js.map +0 -1
  83. package/dist/cli/code-D7V2TQX2.js.map +0 -1
  84. package/dist/cli/run-5DPQFSP6.js.map +0 -1
  85. package/dist/cli/sessions-KY54NG45.js.map +0 -1
  86. package/dist/cli/setup-DDNOMMAB.js.map +0 -1
  87. /package/dist/cli/{acp-LGBLHBKY.js.map → acp-LKJU5DZX.js.map} +0 -0
  88. /package/dist/cli/{chat-I7UTQO5L.js.map → chat-W7LAWEN6.js.map} +0 -0
  89. /package/dist/cli/{chunk-HVUZWNSP.js.map → chunk-3AAG2CUT.js.map} +0 -0
  90. /package/dist/cli/{chunk-LIR2HBQH.js.map → chunk-7LOJS3LV.js.map} +0 -0
  91. /package/dist/cli/{chunk-CBIQWMS6.js.map → chunk-7YW6TPXK.js.map} +0 -0
  92. /package/dist/cli/{chunk-A3TSSDS2.js.map → chunk-C72TNHDE.js.map} +0 -0
  93. /package/dist/cli/{chunk-JNAQYELD.js.map → chunk-DHRVZJ2D.js.map} +0 -0
  94. /package/dist/cli/{chunk-5ACMUK4Q.js.map → chunk-E7TAHQ4A.js.map} +0 -0
  95. /package/dist/cli/{chunk-C53JQES5.js.map → chunk-EAOL43HB.js.map} +0 -0
  96. /package/dist/cli/{chunk-QJDDIK3Z.js.map → chunk-IYQ325V7.js.map} +0 -0
  97. /package/dist/cli/{chunk-4CTDEJUF.js.map → chunk-JLQDNLZF.js.map} +0 -0
  98. /package/dist/cli/{chunk-RDRC3XDT.js.map → chunk-JVFEJAJX.js.map} +0 -0
  99. /package/dist/cli/{chunk-GTZTQNX5.js.map → chunk-JVQT5IYP.js.map} +0 -0
  100. /package/dist/cli/{chunk-4HCP2UQW.js.map → chunk-NCBP5D6E.js.map} +0 -0
  101. /package/dist/cli/{chunk-HKWSPKMU.js.map → chunk-R2ASNSEO.js.map} +0 -0
  102. /package/dist/cli/{chunk-W7YGWUWU.js.map → chunk-SE7C5ZSI.js.map} +0 -0
  103. /package/dist/cli/{chunk-WK3UFQY3.js.map → chunk-TDSBASOF.js.map} +0 -0
  104. /package/dist/cli/{chunk-R3CTO2HM.js.map → chunk-WRONKNIH.js.map} +0 -0
  105. /package/dist/cli/{chunk-MJ6W5UN3.js.map → chunk-XPAUNFOL.js.map} +0 -0
  106. /package/dist/cli/{chunk-NVURFF27.js.map → chunk-YRLC2EDF.js.map} +0 -0
  107. /package/dist/cli/{commands-OCU42XG4.js.map → commands-OPT5AJNH.js.map} +0 -0
  108. /package/dist/cli/{commit-XCQIQCYG.js.map → commit-KA37H6GM.js.map} +0 -0
  109. /package/dist/cli/{desktop-ZCUG7LMF.js.map → desktop-5ONTRU3C.js.map} +0 -0
  110. /package/dist/cli/{diff-66B2KWOJ.js.map → diff-SOIA7AKH.js.map} +0 -0
  111. /package/dist/cli/{doctor-Y73CPPRZ.js.map → doctor-RCUP4XRV.js.map} +0 -0
  112. /package/dist/cli/{events-NGZ2OJYH.js.map → events-6KHITNX4.js.map} +0 -0
  113. /package/dist/cli/{mcp-MPVGBBJF.js.map → mcp-JP5OWD6R.js.map} +0 -0
  114. /package/dist/cli/{mcp-browse-4XOTC3FJ.js.map → mcp-browse-ONCJJPJN.js.map} +0 -0
  115. /package/dist/cli/{mcp-inspect-CEMGKKAH.js.map → mcp-inspect-TPLHW5JA.js.map} +0 -0
  116. /package/dist/cli/{prompt-2D7ID24X.js.map → prompt-RJDNCQAP.js.map} +0 -0
  117. /package/dist/cli/{prune-sessions-OJEYYLHY.js.map → prune-sessions-MKEATRVL.js.map} +0 -0
  118. /package/dist/cli/{replay-HIQYWBEK.js.map → replay-4NILJG4U.js.map} +0 -0
  119. /package/dist/cli/{server-TQ2IHYQJ.js.map → server-5VFQP3PV.js.map} +0 -0
  120. /package/dist/cli/{stats-X2VTWKNS.js.map → stats-ALHBZICE.js.map} +0 -0
  121. /package/dist/cli/{version-7O6A5T7Q.js.map → version-JVRAHBMM.js.map} +0 -0
package/dist/cli/index.js CHANGED
@@ -5,13 +5,13 @@ import {
5
5
  startCpuProfile,
6
6
  stopAndSaveCpuProfile
7
7
  } from "./chunk-ZZM6QJ4W.js";
8
- import "./chunk-WL6SNQ5T.js";
9
- import "./chunk-WK3UFQY3.js";
10
- import "./chunk-C53JQES5.js";
11
- import "./chunk-XSU4QVFW.js";
8
+ import "./chunk-ZOQHVQON.js";
9
+ import "./chunk-TDSBASOF.js";
10
+ import "./chunk-EAOL43HB.js";
11
+ import "./chunk-WQ6ZRDQM.js";
12
12
  import {
13
13
  applyMemoryStack
14
- } from "./chunk-JNAQYELD.js";
14
+ } from "./chunk-DHRVZJ2D.js";
15
15
  import {
16
16
  resolvePreset
17
17
  } from "./chunk-2425HK6U.js";
@@ -19,28 +19,28 @@ import {
19
19
  installProxyIfConfigured
20
20
  } from "./chunk-5QCB62C4.js";
21
21
  import "./chunk-6OWJV3YW.js";
22
- import "./chunk-V26WPN3J.js";
22
+ import "./chunk-MIIZJD5O.js";
23
23
  import "./chunk-25T6CVUP.js";
24
24
  import "./chunk-2UQP6H6T.js";
25
- import "./chunk-RDRC3XDT.js";
25
+ import "./chunk-JVFEJAJX.js";
26
26
  import {
27
27
  escalationContract
28
28
  } from "./chunk-TEUDEGX2.js";
29
- import "./chunk-A3TSSDS2.js";
29
+ import "./chunk-C72TNHDE.js";
30
30
  import "./chunk-S4XVGLRW.js";
31
31
  import {
32
32
  listSessions
33
- } from "./chunk-5ACMUK4Q.js";
34
- import "./chunk-R3CTO2HM.js";
35
- import "./chunk-ZZYBBX5N.js";
33
+ } from "./chunk-E7TAHQ4A.js";
34
+ import "./chunk-WRONKNIH.js";
35
+ import "./chunk-M4E5JK6S.js";
36
36
  import {
37
37
  t
38
- } from "./chunk-IJ7JA32V.js";
38
+ } from "./chunk-6VANO7KB.js";
39
39
  import {
40
40
  normalizeMcpConfig,
41
41
  readConfig,
42
42
  specToRaw
43
- } from "./chunk-AVFXO2EZ.js";
43
+ } from "./chunk-DGA5QYFM.js";
44
44
  import {
45
45
  VERSION
46
46
  } from "./chunk-XXC2BYTV.js";
@@ -3195,31 +3195,6 @@ function parseBudgetFlag(raw) {
3195
3195
  }
3196
3196
  return raw;
3197
3197
  }
3198
- function parseEscalateAfterFlag(raw) {
3199
- if (raw === void 0) return void 0;
3200
- if (!Number.isInteger(raw) || raw < 1 || raw > 20) {
3201
- process.stderr.write(
3202
- `\u25B2 ignoring --escalate-after=${raw} (must be an integer in [1,20]) \u2014 using default
3203
- `
3204
- );
3205
- return void 0;
3206
- }
3207
- return raw;
3208
- }
3209
- function resolveFailureThreshold(flagValue, noConfig) {
3210
- if (flagValue !== void 0) return flagValue;
3211
- if (noConfig) return void 0;
3212
- const fromCfg = readConfig().escalation?.failureThreshold;
3213
- if (typeof fromCfg !== "number") return void 0;
3214
- if (!Number.isInteger(fromCfg) || fromCfg < 1 || fromCfg > 20) {
3215
- process.stderr.write(
3216
- `\u25B2 ignoring escalation.failureThreshold=${fromCfg} from config (must be an integer in [1,20]) \u2014 using default
3217
- `
3218
- );
3219
- return void 0;
3220
- }
3221
- return fromCfg;
3222
- }
3223
3198
  function parseDashboardPortFlag(raw) {
3224
3199
  if (raw === void 0) return void 0;
3225
3200
  const n = Number.parseInt(raw, 10);
@@ -3261,37 +3236,31 @@ function resolveDashboardToken(noConfig) {
3261
3236
  }
3262
3237
  var program2 = new Command();
3263
3238
  program2.name("reasonix").description(t("cli.description")).version(VERSION).option("-c, --continue", t("cli.continue"));
3264
- program2.option("--node", "use the legacy Node/Ink TUI (default is the Rust renderer)").action(async (opts) => {
3265
- if (opts.node) process.env.REASONIX_RENDERER = "node";
3239
+ program2.action(async (opts) => {
3266
3240
  const cfg = readConfig();
3267
3241
  const mode = resolveBareCommandMode(cfg);
3268
3242
  if (mode === "setup") {
3269
- const { setupCommand } = await import("./setup-DDNOMMAB.js");
3243
+ const { setupCommand } = await import("./setup-F6XSWLRA.js");
3270
3244
  await setupCommand({ forceKeyStep: true });
3271
3245
  return;
3272
3246
  }
3273
- const { codeCommand } = await import("./code-D7V2TQX2.js");
3247
+ const { codeCommand } = await import("./code-2JIHL5M2.js");
3274
3248
  await codeCommand({ dir: process.cwd(), forceResume: !!opts.continue });
3275
3249
  });
3276
3250
  program2.command("setup").description(t("cli.setup")).action(async () => {
3277
- const { setupCommand } = await import("./setup-DDNOMMAB.js");
3251
+ const { setupCommand } = await import("./setup-F6XSWLRA.js");
3278
3252
  await setupCommand({ forceKeyStep: true });
3279
3253
  });
3280
- 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(
3281
- "--escalate-after <n>",
3282
- "repair-signal count before flash\u2192pro escalation (default 3)",
3283
- (v) => Number.parseInt(v, 10)
3284
- ).option("--no-dashboard", t("ui.noDashboard")).option("--open-dashboard", t("ui.openDashboardHint")).option("--dashboard-port <port>", t("ui.dashboardPortHint")).option(
3254
+ 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(
3285
3255
  "--dashboard-host <host>",
3286
3256
  "bind address for the dashboard (default 127.0.0.1; use 0.0.0.0 for LAN access \u2014 the URL token is then the only auth)"
3287
- ).option("--no-alt-screen", "keep chat output in shell scrollback (legacy mode, ghost-prone)").option("--no-mouse", "disable SGR mouse tracking (keeps drag-select 100% native)").option("--system-append <prompt>", t("ui.systemAppendHint")).option("--system-append-file <path>", t("ui.systemAppendFileHint")).option(
3257
+ ).option("--system-append <prompt>", t("ui.systemAppendHint")).option("--system-append-file <path>", t("ui.systemAppendFileHint")).option(
3288
3258
  "--profile [path]",
3289
3259
  "record a V8 CPU profile; saved on exit. Send the .cpuprofile back if you're reporting a perf bug."
3290
- ).option("--node", "use the legacy Node/Ink TUI (default is the Rust renderer)").action(async (dir, opts) => {
3291
- if (opts.node) process.env.REASONIX_RENDERER = "node";
3260
+ ).action(async (dir, opts) => {
3292
3261
  const profiling = await maybeStartCpuProfile(opts.profile);
3293
3262
  try {
3294
- const { codeCommand } = await import("./code-D7V2TQX2.js");
3263
+ const { codeCommand } = await import("./code-2JIHL5M2.js");
3295
3264
  await codeCommand({
3296
3265
  dir,
3297
3266
  model: opts.model,
@@ -3300,29 +3269,19 @@ program2.command("code [dir]").description(t("cli.code")).option("-m, --model <i
3300
3269
  forceResume: !!opts.resume,
3301
3270
  forceNew: !!opts.new,
3302
3271
  budgetUsd: parseBudgetFlag(opts.budget),
3303
- failureThreshold: resolveFailureThreshold(
3304
- parseEscalateAfterFlag(opts.escalateAfter),
3305
- false
3306
- ),
3307
3272
  noDashboard: opts.dashboard === false,
3308
3273
  openDashboard: opts.openDashboard === true,
3309
3274
  dashboardPort: resolveDashboardPort(parseDashboardPortFlag(opts.dashboardPort), false),
3310
3275
  dashboardHost: resolveDashboardHost(opts.dashboardHost, false),
3311
3276
  dashboardToken: resolveDashboardToken(false),
3312
3277
  systemAppend: opts.systemAppend,
3313
- systemAppendFile: opts.systemAppendFile,
3314
- altScreen: opts.altScreen !== false,
3315
- mouse: opts.mouse !== false
3278
+ systemAppendFile: opts.systemAppendFile
3316
3279
  });
3317
3280
  } finally {
3318
3281
  if (profiling) await stopAndSaveCpuProfile();
3319
3282
  }
3320
3283
  });
3321
- program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t("ui.modelIdHint")).option("-s, --system <prompt>", t("ui.systemPromptHint")).option("--transcript <path>", t("ui.transcriptHint")).option("--preset <name>", t("ui.presetHint")).option("--budget <usd>", t("ui.budgetHint"), (v) => Number.parseFloat(v)).option(
3322
- "--escalate-after <n>",
3323
- "repair-signal count before flash\u2192pro escalation (default 3)",
3324
- (v) => Number.parseInt(v, 10)
3325
- ).option("--session <name>", t("ui.sessionNameHint")).option("--no-session", t("ui.ephemeralHint")).option("-r, --resume", t("ui.resumeHint")).option("-c, --continue", t("cli.continue")).option("-n, --new", t("ui.newHint")).option(
3284
+ program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t("ui.modelIdHint")).option("-s, --system <prompt>", t("ui.systemPromptHint")).option("--transcript <path>", t("ui.transcriptHint")).option("--preset <name>", t("ui.presetHint")).option("--budget <usd>", t("ui.budgetHint"), (v) => Number.parseFloat(v)).option("--session <name>", t("ui.sessionNameHint")).option("--no-session", t("ui.ephemeralHint")).option("-r, --resume", t("ui.resumeHint")).option("-c, --continue", t("cli.continue")).option("-n, --new", t("ui.newHint")).option(
3326
3285
  "--mcp <spec>",
3327
3286
  t("ui.mcpSpecHint"),
3328
3287
  (value, previous = []) => [...previous, value],
@@ -3330,11 +3289,10 @@ program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t
3330
3289
  ).option("--mcp-prefix <str>", t("ui.mcpPrefixHint")).option("--no-config", t("ui.noConfigHint")).option("--no-dashboard", t("ui.noDashboard")).option("--open-dashboard", t("ui.openDashboardHint")).option("--dashboard-port <port>", t("ui.dashboardPortHint")).option(
3331
3290
  "--dashboard-host <host>",
3332
3291
  "bind address for the dashboard (default 127.0.0.1; use 0.0.0.0 for LAN access \u2014 the URL token is then the only auth)"
3333
- ).option("--no-alt-screen", "keep chat output in shell scrollback (legacy mode, ghost-prone)").option("--no-mouse", "disable SGR mouse tracking (keeps drag-select 100% native)").option(
3292
+ ).option(
3334
3293
  "--profile [path]",
3335
3294
  "record a V8 CPU profile; saved on exit. Send the .cpuprofile back if you're reporting a perf bug."
3336
- ).option("--node", "use the legacy Node/Ink TUI (default is the Rust renderer)").action(async (opts) => {
3337
- if (opts.node) process.env.REASONIX_RENDERER = "node";
3295
+ ).action(async (opts) => {
3338
3296
  const profiling = await maybeStartCpuProfile(opts.profile);
3339
3297
  try {
3340
3298
  const defaults = resolveDefaults({
@@ -3351,7 +3309,7 @@ program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t
3351
3309
  (msg) => process.stderr.write(`${msg}
3352
3310
  `)
3353
3311
  );
3354
- const { chatCommand } = await import("./chat-I7UTQO5L.js");
3312
+ const { chatCommand } = await import("./chat-W7LAWEN6.js");
3355
3313
  const chatBase = opts.system ?? defaultSystemPrompt(defaults.model);
3356
3314
  const chatCwd = process.cwd();
3357
3315
  const chatRebuildSystem = () => applyMemoryStack(chatBase, chatCwd);
@@ -3361,10 +3319,6 @@ program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t
3361
3319
  rebuildSystem: chatRebuildSystem,
3362
3320
  transcript: opts.transcript,
3363
3321
  budgetUsd: parseBudgetFlag(opts.budget),
3364
- failureThreshold: resolveFailureThreshold(
3365
- parseEscalateAfterFlag(opts.escalateAfter),
3366
- opts.config === false
3367
- ),
3368
3322
  session: continueOpts.session,
3369
3323
  mcp: defaults.mcp,
3370
3324
  mcpPrefix: opts.mcpPrefix,
@@ -3377,19 +3331,13 @@ program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t
3377
3331
  opts.config === false
3378
3332
  ),
3379
3333
  dashboardHost: resolveDashboardHost(opts.dashboardHost, opts.config === false),
3380
- dashboardToken: resolveDashboardToken(opts.config === false),
3381
- altScreen: opts.altScreen !== false,
3382
- mouse: opts.mouse !== false
3334
+ dashboardToken: resolveDashboardToken(opts.config === false)
3383
3335
  });
3384
3336
  } finally {
3385
3337
  if (profiling) await stopAndSaveCpuProfile();
3386
3338
  }
3387
3339
  });
3388
- program2.command("run <task>").description(t("cli.run")).option("-m, --model <id>", t("ui.modelIdHint")).option("-s, --system <prompt>", t("ui.systemPromptHint")).option("--preset <name>", t("ui.presetHintShort")).option("--budget <usd>", t("ui.budgetHintShort"), (v) => Number.parseFloat(v)).option(
3389
- "--escalate-after <n>",
3390
- "repair-signal count before flash\u2192pro escalation (default 3)",
3391
- (v) => Number.parseInt(v, 10)
3392
- ).option("--transcript <path>", t("ui.transcriptHintShort")).option(
3340
+ program2.command("run <task>").description(t("cli.run")).option("-m, --model <id>", t("ui.modelIdHint")).option("-s, --system <prompt>", t("ui.systemPromptHint")).option("--preset <name>", t("ui.presetHintShort")).option("--budget <usd>", t("ui.budgetHintShort"), (v) => Number.parseFloat(v)).option("--transcript <path>", t("ui.transcriptHintShort")).option(
3393
3341
  "--mcp <spec>",
3394
3342
  t("ui.mcpSpecHintShort"),
3395
3343
  (value, previous = []) => [...previous, value],
@@ -3401,16 +3349,12 @@ program2.command("run <task>").description(t("cli.run")).option("-m, --model <id
3401
3349
  preset: opts.preset,
3402
3350
  noConfig: opts.config === false
3403
3351
  });
3404
- const { runCommand } = await import("./run-5DPQFSP6.js");
3352
+ const { runCommand } = await import("./run-WFGXB4SB.js");
3405
3353
  await runCommand({
3406
3354
  task,
3407
3355
  model: defaults.model,
3408
3356
  system: applyMemoryStack(opts.system ?? defaultSystemPrompt(defaults.model), process.cwd()),
3409
3357
  budgetUsd: parseBudgetFlag(opts.budget),
3410
- failureThreshold: resolveFailureThreshold(
3411
- parseEscalateAfterFlag(opts.escalateAfter),
3412
- opts.config === false
3413
- ),
3414
3358
  transcript: opts.transcript,
3415
3359
  mcp: defaults.mcp,
3416
3360
  mcpPrefix: opts.mcpPrefix
@@ -3428,7 +3372,7 @@ program2.command("acp").description("run reasonix as an Agent Client Protocol (A
3428
3372
  preset: opts.preset,
3429
3373
  noConfig: false
3430
3374
  });
3431
- const { acpCommand } = await import("./acp-LGBLHBKY.js");
3375
+ const { acpCommand } = await import("./acp-LKJU5DZX.js");
3432
3376
  await acpCommand({
3433
3377
  model: defaults.model,
3434
3378
  budgetUsd: parseBudgetFlag(opts.budget),
@@ -3446,7 +3390,7 @@ program2.command("desktop").description("headless JSON-RPC chat for the desktop
3446
3390
  preset: opts.preset,
3447
3391
  noConfig: false
3448
3392
  });
3449
- const { desktopCommand } = await import("./desktop-ZCUG7LMF.js");
3393
+ const { desktopCommand } = await import("./desktop-5ONTRU3C.js");
3450
3394
  await desktopCommand({
3451
3395
  model: defaults.model,
3452
3396
  budgetUsd: parseBudgetFlag(opts.budget),
@@ -3454,27 +3398,27 @@ program2.command("desktop").description("headless JSON-RPC chat for the desktop
3454
3398
  });
3455
3399
  });
3456
3400
  program2.command("stats [transcript]").description(t("cli.stats")).action(async (transcript) => {
3457
- const { statsCommand } = await import("./stats-X2VTWKNS.js");
3401
+ const { statsCommand } = await import("./stats-ALHBZICE.js");
3458
3402
  statsCommand({ transcript });
3459
3403
  });
3460
3404
  program2.command("doctor").description(t("cli.doctor")).option("--json", t("ui.jsonHint")).action(async (opts) => {
3461
- const { doctorCommand } = await import("./doctor-Y73CPPRZ.js");
3405
+ const { doctorCommand } = await import("./doctor-RCUP4XRV.js");
3462
3406
  await doctorCommand({ json: !!opts.json });
3463
3407
  });
3464
3408
  program2.command("commit").description(t("cli.commit")).option("-m, --model <id>", t("ui.modelOverrideFlash")).option("-y, --yes", t("ui.skipConfirmHint")).action(async (opts) => {
3465
- const { commitCommand } = await import("./commit-XCQIQCYG.js");
3409
+ const { commitCommand } = await import("./commit-KA37H6GM.js");
3466
3410
  await commitCommand({ model: opts.model, yes: !!opts.yes });
3467
3411
  });
3468
3412
  program2.command("sessions [name]").description(t("cli.sessions")).option("-v, --verbose", t("ui.verboseHint")).action(async (name, opts) => {
3469
- const { sessionsCommand } = await import("./sessions-KY54NG45.js");
3413
+ const { sessionsCommand } = await import("./sessions-5XDJDALO.js");
3470
3414
  sessionsCommand({ name, verbose: !!opts.verbose });
3471
3415
  });
3472
3416
  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) => {
3473
- const { pruneSessionsCommand } = await import("./prune-sessions-OJEYYLHY.js");
3417
+ const { pruneSessionsCommand } = await import("./prune-sessions-MKEATRVL.js");
3474
3418
  pruneSessionsCommand({ days: opts.days, dryRun: !!opts.dryRun });
3475
3419
  });
3476
3420
  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) => {
3477
- const { eventsCommand } = await import("./events-NGZ2OJYH.js");
3421
+ const { eventsCommand } = await import("./events-6KHITNX4.js");
3478
3422
  eventsCommand({
3479
3423
  name,
3480
3424
  type: opts.type,
@@ -3485,7 +3429,7 @@ program2.command("events <name>").description(t("cli.events")).option("--type <t
3485
3429
  });
3486
3430
  });
3487
3431
  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) => {
3488
- const { replayCommand } = await import("./replay-HIQYWBEK.js");
3432
+ const { replayCommand } = await import("./replay-4NILJG4U.js");
3489
3433
  await replayCommand({
3490
3434
  path: transcript,
3491
3435
  print: !!opts.print,
@@ -3494,7 +3438,7 @@ program2.command("replay <transcript>").description(t("cli.replay")).option("--p
3494
3438
  });
3495
3439
  });
3496
3440
  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) => {
3497
- const { diffCommand } = await import("./diff-66B2KWOJ.js");
3441
+ const { diffCommand } = await import("./diff-SOIA7AKH.js");
3498
3442
  await diffCommand({
3499
3443
  a,
3500
3444
  b,
@@ -3508,7 +3452,7 @@ program2.command("diff <a> <b>").description(t("cli.diff")).option("--md <path>"
3508
3452
  var mcp = program2.command("mcp").description(t("cli.mcp"));
3509
3453
  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) => {
3510
3454
  try {
3511
- const { mcpListCommand } = await import("./mcp-MPVGBBJF.js");
3455
+ const { mcpListCommand } = await import("./mcp-JP5OWD6R.js");
3512
3456
  await mcpListCommand({
3513
3457
  json: !!opts.json,
3514
3458
  local: !!opts.local,
@@ -3525,7 +3469,7 @@ mcp.command("list").description(t("ui.mcpListDescription")).option("--json", t("
3525
3469
  });
3526
3470
  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) => {
3527
3471
  try {
3528
- const { mcpSearchCommand } = await import("./mcp-MPVGBBJF.js");
3472
+ const { mcpSearchCommand } = await import("./mcp-JP5OWD6R.js");
3529
3473
  await mcpSearchCommand(query, {
3530
3474
  json: !!opts.json,
3531
3475
  refresh: !!opts.refresh,
@@ -3540,7 +3484,7 @@ mcp.command("search <query>").description(t("ui.mcpSearchDescription")).option("
3540
3484
  });
3541
3485
  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) => {
3542
3486
  try {
3543
- const { mcpInstallCommand } = await import("./mcp-MPVGBBJF.js");
3487
+ const { mcpInstallCommand } = await import("./mcp-JP5OWD6R.js");
3544
3488
  await mcpInstallCommand(name, {
3545
3489
  refresh: !!opts.refresh,
3546
3490
  maxPages: typeof opts.maxPages === "number" && opts.maxPages > 0 ? opts.maxPages : void 0
@@ -3553,7 +3497,7 @@ mcp.command("install <name>").description(t("ui.mcpInstallDescription")).option(
3553
3497
  });
3554
3498
  mcp.command("browse").description(t("ui.mcpBrowseDescription")).action(async () => {
3555
3499
  try {
3556
- const { mcpBrowseCommand } = await import("./mcp-browse-4XOTC3FJ.js");
3500
+ const { mcpBrowseCommand } = await import("./mcp-browse-ONCJJPJN.js");
3557
3501
  await mcpBrowseCommand();
3558
3502
  } catch (err) {
3559
3503
  process.stderr.write(`mcp browse failed: ${err.message}
@@ -3562,7 +3506,7 @@ mcp.command("browse").description(t("ui.mcpBrowseDescription")).action(async ()
3562
3506
  }
3563
3507
  });
3564
3508
  mcp.command("inspect <spec>").description(t("ui.mcpInspectDescription")).option("--json", t("ui.jsonHintReport")).action(async (spec, opts) => {
3565
- const { formatMcpInspectFailure, mcpInspectCommand } = await import("./mcp-inspect-CEMGKKAH.js");
3509
+ const { formatMcpInspectFailure, mcpInspectCommand } = await import("./mcp-inspect-TPLHW5JA.js");
3566
3510
  try {
3567
3511
  await mcpInspectCommand({ spec, json: !!opts.json });
3568
3512
  } catch (err) {
@@ -3572,7 +3516,7 @@ mcp.command("inspect <spec>").description(t("ui.mcpInspectDescription")).option(
3572
3516
  }
3573
3517
  });
3574
3518
  program2.command("version").description(t("cli.version")).action(async () => {
3575
- const { versionCommand } = await import("./version-7O6A5T7Q.js");
3519
+ const { versionCommand } = await import("./version-JVRAHBMM.js");
3576
3520
  versionCommand();
3577
3521
  });
3578
3522
  program2.command("update").description(t("cli.update")).option("--dry-run", t("ui.dryRunHint")).action(async (opts) => {
@@ -3581,7 +3525,7 @@ program2.command("update").description(t("cli.update")).option("--dry-run", t("u
3581
3525
  });
3582
3526
  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(
3583
3527
  async (opts) => {
3584
- const { indexCommand } = await import("./commands-OCU42XG4.js");
3528
+ const { indexCommand } = await import("./commands-OPT5AJNH.js");
3585
3529
  await indexCommand(opts);
3586
3530
  }
3587
3531
  );