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
@@ -7,10 +7,10 @@ import {
7
7
  defaultUsageLogPath,
8
8
  formatLogSize,
9
9
  readUsageLog
10
- } from "./chunk-JMDE6IO3.js";
10
+ } from "./chunk-ZAEJWKXB.js";
11
11
  import {
12
12
  t
13
- } from "./chunk-YW63N3ZR.js";
13
+ } from "./chunk-YEF7C4XI.js";
14
14
 
15
15
  // src/cli/commands/stats.ts
16
16
  import { existsSync, readFileSync } from "fs";
@@ -150,4 +150,4 @@ export {
150
150
  statsCommand,
151
151
  renderDashboard
152
152
  };
153
- //# sourceMappingURL=chunk-MOJYKO2A.js.map
153
+ //# sourceMappingURL=chunk-ASOLXV67.js.map
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __cr } from 'node:module'; if (typeof globalThis.require === 'undefined') { globalThis.require = __cr(import.meta.url); }
3
3
  import {
4
4
  registerSkillTools
5
- } from "./chunk-OB4BUJBL.js";
5
+ } from "./chunk-MGTBP7GG.js";
6
6
  import {
7
7
  preflightStdioSpec
8
8
  } from "./chunk-EQATK2L2.js";
@@ -17,20 +17,20 @@ import {
17
17
  registerTodoTool,
18
18
  registerWebTools,
19
19
  spawnSubagent
20
- } from "./chunk-OPYALNTT.js";
20
+ } from "./chunk-MQWO32ZD.js";
21
21
  import {
22
22
  DeepSeekClient
23
- } from "./chunk-TE5UIIFL.js";
23
+ } from "./chunk-J2IHQGPQ.js";
24
24
  import {
25
25
  bootstrapSemanticSearchInCodeMode
26
- } from "./chunk-V4Y732RQ.js";
26
+ } from "./chunk-TAIKVL35.js";
27
27
  import {
28
28
  JobRegistry,
29
29
  registerShellTools
30
- } from "./chunk-WZGNXR6E.js";
30
+ } from "./chunk-ZWHSHFDP.js";
31
31
  import {
32
32
  SkillStore
33
- } from "./chunk-FY4S7TJZ.js";
33
+ } from "./chunk-JNTMOX7G.js";
34
34
  import {
35
35
  MCP_CATALOG
36
36
  } from "./chunk-PLHAZOLZ.js";
@@ -42,11 +42,12 @@ import {
42
42
  loadJavaSourceEnabled,
43
43
  loadProjectShellAllowed,
44
44
  loadResolvedSkillPaths,
45
+ loadToolRateLimit,
45
46
  parseMcpSpec,
46
47
  readConfig,
47
48
  searchEnabled,
48
49
  writeConfig
49
- } from "./chunk-CDVSFSAK.js";
50
+ } from "./chunk-WMTMMSXU.js";
50
51
 
51
52
  // src/tools/code-query.ts
52
53
  import { readFile } from "fs/promises";
@@ -4645,13 +4646,30 @@ var ClassSourceFinder = class _ClassSourceFinder {
4645
4646
  return null;
4646
4647
  }
4647
4648
  async searchRepositories(fqn, jarKeyword) {
4649
+ const javaEntry = `${fqn.replace(/\./g, "/")}.java`;
4648
4650
  const classEntry = `${fqn.replace(/\./g, "/")}.class`;
4649
- const jarPaths = [];
4651
+ const sourceJars = [];
4652
+ const regularJars = [];
4650
4653
  for (const repoDir of this.repoPaths) {
4651
- await this.walkForJars(repoDir, jarPaths, jarKeyword);
4654
+ await this.walkForJars(repoDir, sourceJars, regularJars, jarKeyword);
4655
+ }
4656
+ for (const jarPath of sourceJars) {
4657
+ this.throwIfAborted();
4658
+ try {
4659
+ const content = readJarEntry(jarPath, javaEntry);
4660
+ if (content) {
4661
+ return {
4662
+ found: true,
4663
+ source: content.data.toString("utf-8"),
4664
+ method: "m2-source-jar",
4665
+ sourcePath: jarPath
4666
+ };
4667
+ }
4668
+ } catch {
4669
+ }
4652
4670
  }
4653
4671
  let scanned = 0;
4654
- for (const jarPath of jarPaths) {
4672
+ for (const jarPath of regularJars) {
4655
4673
  this.throwIfAborted();
4656
4674
  if (scanned >= this.maxJarScan) break;
4657
4675
  scanned++;
@@ -4667,7 +4685,7 @@ var ClassSourceFinder = class _ClassSourceFinder {
4667
4685
  return { found: false, method: "not-found" };
4668
4686
  }
4669
4687
  static MAX_WALK_DEPTH = 64;
4670
- async walkForJars(dir, out2, keyword, depth = 0) {
4688
+ async walkForJars(dir, sourceJars, regularJars, keyword, depth = 0) {
4671
4689
  if (depth >= _ClassSourceFinder.MAX_WALK_DEPTH) return;
4672
4690
  let entries;
4673
4691
  try {
@@ -4677,13 +4695,17 @@ var ClassSourceFinder = class _ClassSourceFinder {
4677
4695
  }
4678
4696
  for (const entry of entries) {
4679
4697
  this.throwIfAborted();
4680
- if (out2.length >= this.maxJarScan) return;
4698
+ if (sourceJars.length + regularJars.length >= this.maxJarScan) return;
4681
4699
  const fullPath = path.join(dir, entry.name);
4682
4700
  if (entry.isDirectory()) {
4683
- await this.walkForJars(fullPath, out2, keyword, depth + 1);
4701
+ await this.walkForJars(fullPath, sourceJars, regularJars, keyword, depth + 1);
4684
4702
  } else if (entry.isFile() && entry.name.endsWith(".jar")) {
4685
4703
  if (!keyword || fullPath.toLowerCase().includes(keyword.toLowerCase())) {
4686
- out2.push(fullPath);
4704
+ if (entry.name.endsWith("-sources.jar") || entry.name.includes("-sources-")) {
4705
+ sourceJars.push(fullPath);
4706
+ } else {
4707
+ regularJars.push(fullPath);
4708
+ }
4687
4709
  }
4688
4710
  }
4689
4711
  }
@@ -4768,10 +4790,7 @@ function registerJavaSourceTool(registry, opts = {}) {
4768
4790
  description: [
4769
4791
  "Find and return Java source code by fully-qualified class name.",
4770
4792
  "",
4771
- "Three search modes (picked automatically based on which parameters are set):",
4772
- "1. **Default** (className + jarKeyword): walk project tree for a `.java` file, then scan `~/.m2/repository` jars whose path/name contains the keyword.",
4773
- "2. **Without keyword** (className only): same as default but scans ALL jars \u2014 much slower, use only when you don't know the library.",
4774
- "3. **With jarPath** (className + jarPath): skip both project + .m2 scans, decompile directly from the specified jar file.",
4793
+ "Search mode: walk the project tree for a `.java` file, then scan `~/.m2/repository` jars whose filename or path contains `jarKeyword`.",
4775
4794
  "",
4776
4795
  "Returns the source text (or decompiled bytecode) on success, or a clear 'not found' message.",
4777
4796
  "Only call this tool once per class name \u2014 it's I/O heavy."
@@ -4784,20 +4803,12 @@ function registerJavaSourceTool(registry, opts = {}) {
4784
4803
  type: "string",
4785
4804
  description: 'Fully qualified Java class name, e.g. "com.google.common.collect.Lists" or "org.springframework.web.servlet.DispatcherServlet".'
4786
4805
  },
4787
- projectRoot: {
4788
- type: "string",
4789
- description: "Optional. Override the project root directory for phase-1 file search. Defaults to the current session's workspace root."
4790
- },
4791
- jarPath: {
4792
- type: "string",
4793
- description: 'Optional. Exact path to a .jar file. When set, skips project file search and .m2 scan \u2014 reads the class directly from this jar and decompiles it. Useful when you know which dependency jar contains the class, e.g. "/home/user/.m2/repository/org/springframework/spring-core/6.1.0/spring-core-6.1.0.jar".'
4794
- },
4795
4806
  jarKeyword: {
4796
4807
  type: "string",
4797
- description: 'Optional. Only search jars whose filename or path contains this keyword (case-insensitive). Dramatically narrows the scan when you know the library name, e.g. "spring-core", "guava", "mycompany-utils". Ignored when jarPath is also set.'
4808
+ description: 'Only search jars whose filename or path contains this keyword (case-insensitive). Keep it short \u2014 a narrow substring like "spring-core", "guava", or "mycompany-utils" scans faster and matches more precisely than a long fragment.'
4798
4809
  }
4799
4810
  },
4800
- required: ["className"]
4811
+ required: ["className", "jarKeyword"]
4801
4812
  },
4802
4813
  parallelSafe: true,
4803
4814
  fn: async (args2) => {
@@ -4810,34 +4821,16 @@ function registerJavaSourceTool(registry, opts = {}) {
4810
4821
  `java_source: "${className}" is not a valid fully qualified Java class name. Expected format: \`com.example.MyClass\``
4811
4822
  );
4812
4823
  }
4813
- const jarKeyword = (args2?.jarKeyword ?? "").trim();
4814
- const jarPath = args2?.jarPath?.trim();
4815
- const projectRoot = args2?.projectRoot?.trim() || opts.projectRoot || process.cwd();
4816
- const finder = new ClassSourceFinder({ projectRoot });
4817
- if (jarPath) {
4818
- const result2 = await finder.findSourceInJar(className, jarPath);
4819
- if (!result2.found) {
4820
- return JSON.stringify({
4821
- status: "not-found",
4822
- className,
4823
- message: `Class "${className}" not found in jar:
4824
- ${jarPath}
4825
-
4826
- Make sure the class name is correct and that the jar contains that entry.`
4827
- });
4828
- }
4829
- return JSON.stringify({
4830
- status: "found",
4831
- className,
4832
- method: result2.method,
4833
- sourcePath: result2.sourcePath,
4834
- source: result2.source
4835
- });
4824
+ const jarKeyword = args2.jarKeyword.trim();
4825
+ if (!jarKeyword) {
4826
+ throw new Error("java_source: `jarKeyword` must not be empty");
4836
4827
  }
4837
- const result = await finder.findSource(className, jarKeyword ? { jarKeyword } : void 0);
4828
+ const projectRoot = opts.projectRoot || process.cwd();
4829
+ const finder = new ClassSourceFinder({ projectRoot });
4830
+ const result = await finder.findSource(className, { jarKeyword });
4838
4831
  if (!result.found) {
4839
- const keywordLine = jarKeyword ? ` \u2022 Maven .m2 / Gradle cache for jars containing keyword "${jarKeyword}"` : " \u2022 Maven .m2 / Gradle cache for all jars";
4840
- const tip = jarKeyword ? "Try a different keyword, use `jarPath` with the exact path, or check if the class is in a different library." : 'Tip: pass `jarKeyword` (e.g. "spring-core", "guava") to narrow the scan, or `jarPath` with the exact jar path to skip the scan entirely.';
4832
+ const keywordLine = ` \u2022 Maven .m2 / Gradle cache for jars containing keyword "${jarKeyword}"`;
4833
+ const tip = "Try a different keyword, or check if the class is in a different library.";
4841
4834
  return JSON.stringify({
4842
4835
  status: "not-found",
4843
4836
  className,
@@ -5130,7 +5123,7 @@ function quoteIfNeeded(s) {
5130
5123
 
5131
5124
  // src/code/setup.ts
5132
5125
  async function buildCodeToolset(opts) {
5133
- const tools = new ToolRegistry();
5126
+ const tools = new ToolRegistry({ rateLimit: loadToolRateLimit() });
5134
5127
  const jobs = new JobRegistry();
5135
5128
  const outlineThresholdBytes = loadFilesystemOutlineThresholdBytes();
5136
5129
  const registerRooted = (root) => {
@@ -5195,4 +5188,4 @@ async function buildCodeToolset(opts) {
5195
5188
  export {
5196
5189
  buildCodeToolset
5197
5190
  };
5198
- //# sourceMappingURL=chunk-7M4YYMKW.js.map
5191
+ //# sourceMappingURL=chunk-AWEULQG6.js.map