reasonix 0.48.0 → 0.49.0

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 (130) hide show
  1. package/README.md +9 -0
  2. package/dashboard/dist/app.js +123 -16
  3. package/dashboard/dist/app.js.map +1 -1
  4. package/dist/cli/{acp-4ROCGYNH.js → acp-WFQIC6SO.js} +52 -135
  5. package/dist/cli/acp-WFQIC6SO.js.map +1 -0
  6. package/dist/cli/chat-D32JGNVH.js +51 -0
  7. package/dist/cli/{chunk-S2RMQULY.js → chunk-23ZPCIPR.js} +12 -9
  8. package/dist/cli/chunk-23ZPCIPR.js.map +1 -0
  9. package/dist/cli/{chunk-TKVXTQ3T.js → chunk-3ZZXQ3CZ.js} +27 -27
  10. package/dist/cli/chunk-3ZZXQ3CZ.js.map +1 -0
  11. package/dist/cli/{chunk-5OHHAQ4W.js → chunk-7AST3QQ3.js} +2 -2
  12. package/dist/cli/{chunk-MRZG4GBF.js → chunk-7JTKBJ2G.js} +3 -3
  13. package/dist/cli/{chunk-X53B3JIX.js → chunk-7X4JJOO7.js} +2 -61
  14. package/dist/cli/{chunk-X53B3JIX.js.map → chunk-7X4JJOO7.js.map} +1 -1
  15. package/dist/cli/{chunk-MOJYKO2A.js → chunk-ASOLXV67.js} +3 -3
  16. package/dist/cli/{chunk-7M4YYMKW.js → chunk-AWEULQG6.js} +49 -56
  17. package/dist/cli/{chunk-7M4YYMKW.js.map → chunk-AWEULQG6.js.map} +1 -1
  18. package/dist/cli/{chunk-HR5NBKEM.js → chunk-DFX5ZH5L.js} +2 -2
  19. package/dist/cli/{chunk-3WGTGXO4.js → chunk-GNS7BAT2.js} +4 -4
  20. package/dist/cli/chunk-GNS7BAT2.js.map +1 -0
  21. package/dist/cli/{chunk-TE5UIIFL.js → chunk-J2IHQGPQ.js} +12 -6
  22. package/dist/cli/chunk-J2IHQGPQ.js.map +1 -0
  23. package/dist/cli/{chunk-I4M5QJNL.js → chunk-JGTX4RRQ.js} +3 -3
  24. package/dist/cli/{chunk-FY4S7TJZ.js → chunk-JNTMOX7G.js} +10 -2
  25. package/dist/cli/chunk-JNTMOX7G.js.map +1 -0
  26. package/dist/cli/{chunk-OB4BUJBL.js → chunk-MGTBP7GG.js} +5 -2
  27. package/dist/cli/chunk-MGTBP7GG.js.map +1 -0
  28. package/dist/cli/{chunk-OPYALNTT.js → chunk-MQWO32ZD.js} +387 -184
  29. package/dist/cli/chunk-MQWO32ZD.js.map +1 -0
  30. package/dist/cli/{chunk-2QSTA2QV.js → chunk-O5LIHAMP.js} +8 -4
  31. package/dist/cli/chunk-O5LIHAMP.js.map +1 -0
  32. package/dist/cli/{chunk-NMQSUNLB.js → chunk-PB3MAFEI.js} +6 -3
  33. package/dist/cli/chunk-PB3MAFEI.js.map +1 -0
  34. package/dist/cli/{chunk-H4CCXMDD.js → chunk-PEMG6CUB.js} +2 -2
  35. package/dist/cli/{chunk-RUDBUHO4.js → chunk-PXBQ6IZ7.js} +3 -3
  36. package/dist/cli/{chunk-J2TQAWOM.js → chunk-Q46B3Z7H.js} +25 -10
  37. package/dist/cli/{chunk-J2TQAWOM.js.map → chunk-Q46B3Z7H.js.map} +1 -1
  38. package/dist/cli/{chunk-6MZTZO7A.js → chunk-QF32ROX2.js} +2152 -2613
  39. package/dist/cli/chunk-QF32ROX2.js.map +1 -0
  40. package/dist/cli/{chunk-OG5JANQ4.js → chunk-QX5TWXRZ.js} +2 -2
  41. package/dist/cli/{chunk-V4Y732RQ.js → chunk-TAIKVL35.js} +2 -2
  42. package/dist/cli/{chunk-B5CZL2SE.js → chunk-TEDWJKEI.js} +4 -9
  43. package/dist/cli/chunk-TEDWJKEI.js.map +1 -0
  44. package/dist/cli/{chunk-EMMENC4O.js → chunk-U5XQDCK7.js} +5 -5
  45. package/dist/cli/{chunk-DOWEOA6E.js → chunk-W46ZMNKO.js} +3 -3
  46. package/dist/cli/{chunk-CDVSFSAK.js → chunk-WMTMMSXU.js} +184 -8
  47. package/dist/cli/chunk-WMTMMSXU.js.map +1 -0
  48. package/dist/cli/{chunk-YW63N3ZR.js → chunk-YEF7C4XI.js} +270 -96
  49. package/dist/cli/chunk-YEF7C4XI.js.map +1 -0
  50. package/dist/cli/{chunk-JMDE6IO3.js → chunk-ZAEJWKXB.js} +2 -2
  51. package/dist/cli/chunk-ZWHSHFDP.js +6173 -0
  52. package/dist/cli/chunk-ZWHSHFDP.js.map +1 -0
  53. package/dist/cli/{code-PMPJWXEO.js → code-R4IHI7SR.js} +30 -30
  54. package/dist/cli/{commands-QS6TG4G3.js → commands-DRHFCYMO.js} +4 -4
  55. package/dist/cli/{commit-XPRSKUBF.js → commit-AG5KB4YP.js} +3 -3
  56. package/dist/cli/{desktop-562OPWIU.js → desktop-JGL6GORA.js} +60 -23
  57. package/dist/cli/desktop-JGL6GORA.js.map +1 -0
  58. package/dist/cli/{diff-I6W4AUWJ.js → diff-4Z7ETWZO.js} +9 -9
  59. package/dist/cli/{doctor-6XVZKT4U.js → doctor-VA3RHQLB.js} +9 -9
  60. package/dist/cli/index.js +37 -36
  61. package/dist/cli/index.js.map +1 -1
  62. package/dist/cli/{mcp-7W7ANO2Y.js → mcp-LZO4HXFA.js} +34 -23
  63. package/dist/cli/mcp-LZO4HXFA.js.map +1 -0
  64. package/dist/cli/{mcp-browse-LA4I4YIZ.js → mcp-browse-C3GXVMYZ.js} +3 -3
  65. package/dist/cli/{mcp-inspect-LWXXU7BY.js → mcp-inspect-ZMYUNFDS.js} +2 -2
  66. package/dist/cli/{prompt-RKZD4X6Y.js → prompt-MC3U5KRP.js} +5 -4
  67. package/dist/cli/{prune-sessions-SEWX7GP6.js → prune-sessions-OEPFH4N6.js} +11 -7
  68. package/dist/cli/prune-sessions-OEPFH4N6.js.map +1 -0
  69. package/dist/cli/{replay-2X7MVXOI.js → replay-4TP7ZUMZ.js} +10 -10
  70. package/dist/cli/{run-TPKXIJ27.js → run-6MXQYBOE.js} +16 -15
  71. package/dist/cli/run-6MXQYBOE.js.map +1 -0
  72. package/dist/cli/{server-NHQ3QXOZ.js → server-Z3IMJNNI.js} +65 -12
  73. package/dist/cli/server-Z3IMJNNI.js.map +1 -0
  74. package/dist/cli/{sessions-2A4DGSHA.js → sessions-NXQ5SAV7.js} +18 -18
  75. package/dist/cli/sessions-NXQ5SAV7.js.map +1 -0
  76. package/dist/cli/{setup-GOLP7J4C.js → setup-LHZELI6I.js} +6 -6
  77. package/dist/cli/{stats-CGDAFDKI.js → stats-SUIJ3QWY.js} +6 -6
  78. package/dist/cli/{version-FIL4ZFOS.js → version-BIFONEUB.js} +13 -13
  79. package/dist/index.d.ts +71 -17
  80. package/dist/index.js +1040 -391
  81. package/dist/index.js.map +1 -1
  82. package/package.json +6 -2
  83. package/dist/cli/acp-4ROCGYNH.js.map +0 -1
  84. package/dist/cli/chat-GZNB5625.js +0 -51
  85. package/dist/cli/chunk-2QSTA2QV.js.map +0 -1
  86. package/dist/cli/chunk-3WGTGXO4.js.map +0 -1
  87. package/dist/cli/chunk-6MZTZO7A.js.map +0 -1
  88. package/dist/cli/chunk-B5CZL2SE.js.map +0 -1
  89. package/dist/cli/chunk-CDVSFSAK.js.map +0 -1
  90. package/dist/cli/chunk-FY4S7TJZ.js.map +0 -1
  91. package/dist/cli/chunk-NMQSUNLB.js.map +0 -1
  92. package/dist/cli/chunk-OB4BUJBL.js.map +0 -1
  93. package/dist/cli/chunk-OPYALNTT.js.map +0 -1
  94. package/dist/cli/chunk-S2RMQULY.js.map +0 -1
  95. package/dist/cli/chunk-TE5UIIFL.js.map +0 -1
  96. package/dist/cli/chunk-TKVXTQ3T.js.map +0 -1
  97. package/dist/cli/chunk-WZGNXR6E.js +0 -2020
  98. package/dist/cli/chunk-WZGNXR6E.js.map +0 -1
  99. package/dist/cli/chunk-YW63N3ZR.js.map +0 -1
  100. package/dist/cli/desktop-562OPWIU.js.map +0 -1
  101. package/dist/cli/mcp-7W7ANO2Y.js.map +0 -1
  102. package/dist/cli/prune-sessions-SEWX7GP6.js.map +0 -1
  103. package/dist/cli/run-TPKXIJ27.js.map +0 -1
  104. package/dist/cli/server-NHQ3QXOZ.js.map +0 -1
  105. package/dist/cli/sessions-2A4DGSHA.js.map +0 -1
  106. /package/dist/cli/{chat-GZNB5625.js.map → chat-D32JGNVH.js.map} +0 -0
  107. /package/dist/cli/{chunk-5OHHAQ4W.js.map → chunk-7AST3QQ3.js.map} +0 -0
  108. /package/dist/cli/{chunk-MRZG4GBF.js.map → chunk-7JTKBJ2G.js.map} +0 -0
  109. /package/dist/cli/{chunk-MOJYKO2A.js.map → chunk-ASOLXV67.js.map} +0 -0
  110. /package/dist/cli/{chunk-HR5NBKEM.js.map → chunk-DFX5ZH5L.js.map} +0 -0
  111. /package/dist/cli/{chunk-I4M5QJNL.js.map → chunk-JGTX4RRQ.js.map} +0 -0
  112. /package/dist/cli/{chunk-H4CCXMDD.js.map → chunk-PEMG6CUB.js.map} +0 -0
  113. /package/dist/cli/{chunk-RUDBUHO4.js.map → chunk-PXBQ6IZ7.js.map} +0 -0
  114. /package/dist/cli/{chunk-OG5JANQ4.js.map → chunk-QX5TWXRZ.js.map} +0 -0
  115. /package/dist/cli/{chunk-V4Y732RQ.js.map → chunk-TAIKVL35.js.map} +0 -0
  116. /package/dist/cli/{chunk-EMMENC4O.js.map → chunk-U5XQDCK7.js.map} +0 -0
  117. /package/dist/cli/{chunk-DOWEOA6E.js.map → chunk-W46ZMNKO.js.map} +0 -0
  118. /package/dist/cli/{chunk-JMDE6IO3.js.map → chunk-ZAEJWKXB.js.map} +0 -0
  119. /package/dist/cli/{code-PMPJWXEO.js.map → code-R4IHI7SR.js.map} +0 -0
  120. /package/dist/cli/{commands-QS6TG4G3.js.map → commands-DRHFCYMO.js.map} +0 -0
  121. /package/dist/cli/{commit-XPRSKUBF.js.map → commit-AG5KB4YP.js.map} +0 -0
  122. /package/dist/cli/{diff-I6W4AUWJ.js.map → diff-4Z7ETWZO.js.map} +0 -0
  123. /package/dist/cli/{doctor-6XVZKT4U.js.map → doctor-VA3RHQLB.js.map} +0 -0
  124. /package/dist/cli/{mcp-browse-LA4I4YIZ.js.map → mcp-browse-C3GXVMYZ.js.map} +0 -0
  125. /package/dist/cli/{mcp-inspect-LWXXU7BY.js.map → mcp-inspect-ZMYUNFDS.js.map} +0 -0
  126. /package/dist/cli/{prompt-RKZD4X6Y.js.map → prompt-MC3U5KRP.js.map} +0 -0
  127. /package/dist/cli/{replay-2X7MVXOI.js.map → replay-4TP7ZUMZ.js.map} +0 -0
  128. /package/dist/cli/{setup-GOLP7J4C.js.map → setup-LHZELI6I.js.map} +0 -0
  129. /package/dist/cli/{stats-CGDAFDKI.js.map → stats-SUIJ3QWY.js.map} +0 -0
  130. /package/dist/cli/{version-FIL4ZFOS.js.map → version-BIFONEUB.js.map} +0 -0
@@ -13,7 +13,7 @@ import {
13
13
  listCheckpoints,
14
14
  loadCheckpoint,
15
15
  restoreCheckpoint
16
- } from "./chunk-B5CZL2SE.js";
16
+ } from "./chunk-TEDWJKEI.js";
17
17
  import "./chunk-E5WCLUIU.js";
18
18
  import {
19
19
  fetchSmitheryDetail,
@@ -24,11 +24,11 @@ import {
24
24
  } from "./chunk-XJXDHAES.js";
25
25
  import {
26
26
  registerSemanticSearchTool
27
- } from "./chunk-V4Y732RQ.js";
27
+ } from "./chunk-TAIKVL35.js";
28
28
  import {
29
29
  BUILTIN_ALLOWLIST,
30
30
  lineDiff
31
- } from "./chunk-WZGNXR6E.js";
31
+ } from "./chunk-ZWHSHFDP.js";
32
32
  import {
33
33
  PROJECT_MEMORY_FILE,
34
34
  SKILLS_DIRNAME,
@@ -38,13 +38,13 @@ import {
38
38
  parseFrontmatter,
39
39
  resolveProjectMemoryWritePath,
40
40
  validateSkillFrontmatter
41
- } from "./chunk-FY4S7TJZ.js";
41
+ } from "./chunk-JNTMOX7G.js";
42
42
  import "./chunk-PLHAZOLZ.js";
43
43
  import {
44
44
  checkOllamaStatus,
45
45
  pullOllamaModel,
46
46
  startOllamaDaemon
47
- } from "./chunk-H4CCXMDD.js";
47
+ } from "./chunk-PEMG6CUB.js";
48
48
  import {
49
49
  INDEX_DIR_NAME,
50
50
  buildIndex,
@@ -53,13 +53,13 @@ import {
53
53
  querySemantic,
54
54
  readIndexMeta,
55
55
  walkChunks
56
- } from "./chunk-HR5NBKEM.js";
56
+ } from "./chunk-DFX5ZH5L.js";
57
57
  import {
58
58
  HOOK_EVENTS,
59
59
  globalSettingsPath,
60
60
  loadHooks,
61
61
  projectSettingsPath
62
- } from "./chunk-NMQSUNLB.js";
62
+ } from "./chunk-PB3MAFEI.js";
63
63
  import "./chunk-S4XVGLRW.js";
64
64
  import {
65
65
  deleteSession,
@@ -72,16 +72,16 @@ import {
72
72
  bucketCacheHitRatio,
73
73
  formatLogSize,
74
74
  readUsageLog
75
- } from "./chunk-JMDE6IO3.js";
75
+ } from "./chunk-ZAEJWKXB.js";
76
76
  import {
77
77
  DEEPSEEK_PRICING,
78
78
  cacheSavingsUsd
79
- } from "./chunk-OG5JANQ4.js";
79
+ } from "./chunk-QX5TWXRZ.js";
80
80
  import {
81
81
  getLanguage,
82
82
  getSupportedLanguages,
83
83
  setLanguage
84
- } from "./chunk-YW63N3ZR.js";
84
+ } from "./chunk-YEF7C4XI.js";
85
85
  import {
86
86
  DEFAULT_INDEX_EXCLUDES,
87
87
  DEFAULT_MAX_FILE_BYTES,
@@ -103,8 +103,10 @@ import {
103
103
  resolveIndexConfig,
104
104
  resolveSemanticEmbeddingConfig,
105
105
  saveSemanticEmbeddingConfig,
106
+ trustProjectHooks,
107
+ webSearchEngine,
106
108
  writeConfig
107
- } from "./chunk-CDVSFSAK.js";
109
+ } from "./chunk-WMTMMSXU.js";
108
110
  import {
109
111
  VERSION
110
112
  } from "./chunk-XXC2BYTV.js";
@@ -907,6 +909,7 @@ async function handleHooks(method, rest, body, ctx) {
907
909
  body: { error: "no active project \u2014 open `/dashboard` from inside `reasonix code`" }
908
910
  };
909
911
  }
912
+ trustProjectHooks(cwd, ctx.configPath);
910
913
  path = projectSettingsPath(cwd);
911
914
  } else {
912
915
  path = globalSettingsPath();
@@ -1626,6 +1629,19 @@ async function handleModal(method, rest, body, ctx) {
1626
1629
  ctx.resolveShellConfirm(choice);
1627
1630
  return { status: 200, body: { resolved: true } };
1628
1631
  }
1632
+ if (kind === "path") {
1633
+ if (!ctx.resolvePathConfirm) {
1634
+ return { status: 503, body: { error: "path modal resolution not wired" } };
1635
+ }
1636
+ if (choice !== "run_once" && choice !== "always_allow" && choice !== "deny") {
1637
+ return {
1638
+ status: 400,
1639
+ body: { error: "path choice must be run_once / always_allow / deny" }
1640
+ };
1641
+ }
1642
+ ctx.resolvePathConfirm(choice);
1643
+ return { status: 200, body: { resolved: true } };
1644
+ }
1629
1645
  if (kind === "choice") {
1630
1646
  if (!ctx.resolveChoiceConfirm) {
1631
1647
  return { status: 503, body: { error: "choice modal resolution not wired" } };
@@ -2759,6 +2775,7 @@ async function handleSessions(method, rest, _body, ctx) {
2759
2775
  }
2760
2776
 
2761
2777
  // src/server/api/settings.ts
2778
+ import { appendFileSync } from "fs";
2762
2779
  function parseBody9(raw) {
2763
2780
  if (!raw) return {};
2764
2781
  try {
@@ -2770,6 +2787,27 @@ function parseBody9(raw) {
2770
2787
  }
2771
2788
  var VALID_PRESETS = /* @__PURE__ */ new Set(["auto", "flash", "pro", "fast", "smart", "max"]);
2772
2789
  var VALID_EFFORTS = /* @__PURE__ */ new Set(["high", "max"]);
2790
+ var VALID_WEB_SEARCH_ENGINES = /* @__PURE__ */ new Set([
2791
+ "bing",
2792
+ "searxng",
2793
+ "metaso",
2794
+ "tavily",
2795
+ "perplexity",
2796
+ "exa"
2797
+ ]);
2798
+ function debugLogPresetWriteFromDashboard(preset) {
2799
+ const debugPath = process.env.REASONIX_DEBUG_PRESET;
2800
+ if (!debugPath) return;
2801
+ try {
2802
+ const stack = new Error("trace").stack ?? "";
2803
+ const line = `${(/* @__PURE__ */ new Date()).toISOString()} dashboard PATCH /api/settings { preset: ${JSON.stringify(preset)} }
2804
+ ${stack.split("\n").slice(1, 8).map((l) => ` ${l.trim()}`).join("\n")}
2805
+
2806
+ `;
2807
+ appendFileSync(debugPath, line);
2808
+ } catch {
2809
+ }
2810
+ }
2773
2811
  async function handleSettings(method, _rest, body, ctx) {
2774
2812
  if (method === "GET") {
2775
2813
  const cfg = readConfig(ctx.configPath);
@@ -2788,6 +2826,7 @@ async function handleSettings(method, _rest, body, ctx) {
2788
2826
  preset: cfg.preset ?? "auto",
2789
2827
  reasoningEffort: cfg.reasoningEffort ?? "max",
2790
2828
  search: cfg.search !== false,
2829
+ webSearchEngine: webSearchEngine(ctx.configPath),
2791
2830
  editMode: cfg.editMode ?? "review",
2792
2831
  session: cfg.session ?? null,
2793
2832
  model: live?.model ?? null,
@@ -2809,6 +2848,7 @@ async function handleSettings(method, _rest, body, ctx) {
2809
2848
  preset: "next-session",
2810
2849
  reasoningEffort: "next-turn",
2811
2850
  search: "next-session",
2851
+ webSearchEngine: "next-turn",
2812
2852
  model: "next-turn",
2813
2853
  proNext: "next-turn",
2814
2854
  budgetUsd: "live",
@@ -2854,6 +2894,7 @@ async function handleSettings(method, _rest, body, ctx) {
2854
2894
  if (typeof fields.preset !== "string" || !VALID_PRESETS.has(fields.preset)) {
2855
2895
  return { status: 400, body: { error: "preset must be auto | flash | pro" } };
2856
2896
  }
2897
+ debugLogPresetWriteFromDashboard(fields.preset);
2857
2898
  cfg.preset = fields.preset;
2858
2899
  presetPendingLive = fields.preset;
2859
2900
  changed.push("preset");
@@ -2873,6 +2914,18 @@ async function handleSettings(method, _rest, body, ctx) {
2873
2914
  cfg.search = fields.search;
2874
2915
  changed.push("search");
2875
2916
  }
2917
+ if (fields.webSearchEngine !== void 0) {
2918
+ if (typeof fields.webSearchEngine !== "string" || !VALID_WEB_SEARCH_ENGINES.has(fields.webSearchEngine)) {
2919
+ return {
2920
+ status: 400,
2921
+ body: {
2922
+ error: "webSearchEngine must be bing | searxng | metaso | tavily | perplexity | exa"
2923
+ }
2924
+ };
2925
+ }
2926
+ cfg.webSearchEngine = fields.webSearchEngine;
2927
+ changed.push("webSearchEngine");
2928
+ }
2876
2929
  let modelPendingLive = null;
2877
2930
  let proNextPending = null;
2878
2931
  let budgetPending;
@@ -3549,4 +3602,4 @@ export {
3549
3602
  readBody,
3550
3603
  startDashboardServer
3551
3604
  };
3552
- //# sourceMappingURL=server-NHQ3QXOZ.js.map
3605
+ //# sourceMappingURL=server-Z3IMJNNI.js.map