nexus-agents 8.80.0 → 8.81.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 (129) hide show
  1. package/dist/{ast-rule-runner-WBNQ4W7B.js → ast-rule-runner-JMZLVMCH.js} +3 -3
  2. package/dist/{child-mcp-config-TB32BPW5.js → child-mcp-config-5HAWJDAW.js} +3 -7
  3. package/dist/{child-mcp-config-TB32BPW5.js.map → child-mcp-config-5HAWJDAW.js.map} +1 -1
  4. package/dist/{chunk-CURDI25L.js → chunk-2SWDYZV3.js} +5 -5
  5. package/dist/{chunk-RVMOIMKD.js → chunk-4WV7LHYH.js} +3 -3
  6. package/dist/{chunk-G7IKDIHG.js → chunk-5EGACVUH.js} +2 -2
  7. package/dist/{chunk-CAKY3YPI.js → chunk-5HOEQ7XY.js} +205 -269
  8. package/dist/chunk-5HOEQ7XY.js.map +1 -0
  9. package/dist/{chunk-3HGN74IJ.js → chunk-5U575YMH.js} +2 -2
  10. package/dist/{chunk-P5PEIZDT.js → chunk-APODNGEN.js} +197 -128
  11. package/dist/chunk-APODNGEN.js.map +1 -0
  12. package/dist/{chunk-OIRYBDAY.js → chunk-AYDLACEO.js} +10 -10
  13. package/dist/{chunk-6VWD7DRE.js → chunk-BNE7FJ45.js} +2 -2
  14. package/dist/{chunk-QXULJBP2.js → chunk-DKTGUWZJ.js} +2 -2
  15. package/dist/{chunk-FN43725K.js → chunk-EWBAFPXH.js} +279 -179
  16. package/dist/chunk-EWBAFPXH.js.map +1 -0
  17. package/dist/{chunk-RUL5I2UB.js → chunk-HI7AN5O4.js} +2 -2
  18. package/dist/{chunk-ELYWRZPD.js → chunk-HPDULZWJ.js} +4 -58
  19. package/dist/chunk-HPDULZWJ.js.map +1 -0
  20. package/dist/{chunk-MN2IFJCV.js → chunk-HXJHX25L.js} +4 -4
  21. package/dist/{chunk-P7ICWY4J.js → chunk-JMHWQC37.js} +4 -4
  22. package/dist/{chunk-IMWA6UIZ.js → chunk-JP22NPTI.js} +2 -2
  23. package/dist/{chunk-OT2PRNLG.js → chunk-KS2OLNTE.js} +2 -2
  24. package/dist/{chunk-ABUPISMJ.js → chunk-LHIPYBUY.js} +4 -4
  25. package/dist/{chunk-C54ZYD3A.js → chunk-MDLVZ6BW.js} +2 -2
  26. package/dist/{chunk-MRK3TVZQ.js → chunk-MH5T6XYM.js} +7 -7
  27. package/dist/{chunk-ECLPQMUB.js → chunk-MUOKW6KN.js} +3 -3
  28. package/dist/{chunk-VXJO6GKP.js → chunk-NC6X2GGD.js} +5 -5
  29. package/dist/{chunk-G6QIL77O.js → chunk-OHEB437P.js} +2 -2
  30. package/dist/{chunk-MXAQRDPB.js → chunk-OLA3UDFN.js} +2 -2
  31. package/dist/{chunk-SLH6AXGK.js → chunk-PA2RTJMT.js} +2 -2
  32. package/dist/{chunk-HVS6NEOI.js → chunk-Q3U6QKZC.js} +3 -3
  33. package/dist/{chunk-E56PLS6D.js → chunk-SEQCWSJT.js} +8 -8
  34. package/dist/{chunk-6JMKAMIS.js → chunk-UROPQSIS.js} +2 -2
  35. package/dist/{chunk-OMNYIKT2.js → chunk-USFPWBHA.js} +2 -2
  36. package/dist/{chunk-VEEBF4TY.js → chunk-VOZZD74U.js} +2 -2
  37. package/dist/{chunk-W2BS4OEF.js → chunk-WL5EJCHJ.js} +2 -2
  38. package/dist/{chunk-PQQWP3D7.js → chunk-WQMOMBYD.js} +3 -3
  39. package/dist/{chunk-J3CWUE35.js → chunk-Y2ZA6C2Q.js} +2 -2
  40. package/dist/{chunk-XTBRYXQ3.js → chunk-ZQU4CG6O.js} +2 -2
  41. package/dist/{cli-circuit-breaker-GI3XO3KY.js → cli-circuit-breaker-QD6TVMKR.js} +3 -3
  42. package/dist/cli.js +42 -42
  43. package/dist/cli.js.map +1 -1
  44. package/dist/{composite-router-I7IFJ5KZ.js → composite-router-2FSI5LOU.js} +2 -2
  45. package/dist/{consensus-vote-562LVBTG.js → consensus-vote-27FFJPZ7.js} +16 -16
  46. package/dist/{context-retriever-Y52C6VNU.js → context-retriever-L7AKS4ME.js} +8 -8
  47. package/dist/{doctor-deep-VR5KYAY6.js → doctor-deep-GWH5GT4H.js} +3 -3
  48. package/dist/{doctor-live-SWQC7LEQ.js → doctor-live-N6B6B37M.js} +10 -10
  49. package/dist/{expert-bridge-ARAJKDJ4.js → expert-bridge-5QK7MNTH.js} +4 -4
  50. package/dist/{factory-ONHL5U5H.js → factory-GW3EJTLF.js} +5 -5
  51. package/dist/{factory-DY6VTFH5.js → factory-Q5VPWNEF.js} +9 -9
  52. package/dist/{improvement-review-MT3YYRMQ.js → improvement-review-3EXUFITC.js} +5 -5
  53. package/dist/index.d.ts +20 -3
  54. package/dist/index.js +30 -30
  55. package/dist/{init-opencode-RNDSFHBF.js → init-opencode-4X4G4KDB.js} +5 -5
  56. package/dist/issue-triage-QWPE6BLK.js +16 -0
  57. package/dist/{pr-reviewer-helpers-CMAJDX2H.js → pr-reviewer-helpers-QEPDL2P5.js} +4 -4
  58. package/dist/{registry-command-22GYK4DX.js → registry-command-5FCYVBRG.js} +2 -2
  59. package/dist/{repo-security-plan-AXS2VFES.js → repo-security-plan-DNXECMSY.js} +3 -3
  60. package/dist/{research-helpers-synthesize-RHDOVMBS.js → research-helpers-synthesize-SQDJTW3K.js} +4 -4
  61. package/dist/{routing-memory-ACDBGC3N.js → routing-memory-FGFHSJ5E.js} +2 -2
  62. package/dist/{session-memory-QHCC5Y3X.js → session-memory-7NMKLY22.js} +3 -3
  63. package/dist/{setup-config-LFCOSUQO.js → setup-config-MRALJE7W.js} +3 -3
  64. package/dist/{setup-custom-api-LUARV73X.js → setup-custom-api-WEMYW2WU.js} +4 -4
  65. package/dist/setup-data-dir-PAJVA3IY.js +30 -0
  66. package/dist/{tool-memory-GN6I5MC2.js → tool-memory-VZDB7AMM.js} +5 -7
  67. package/dist/{unified-registry-ZWF7T6CK.js → unified-registry-5IDN3WJJ.js} +10 -10
  68. package/dist/{weather-report-GOKIMPQU.js → weather-report-BDS357WB.js} +2 -2
  69. package/package.json +1 -1
  70. package/dist/chunk-CAKY3YPI.js.map +0 -1
  71. package/dist/chunk-ELYWRZPD.js.map +0 -1
  72. package/dist/chunk-FN43725K.js.map +0 -1
  73. package/dist/chunk-P5PEIZDT.js.map +0 -1
  74. package/dist/issue-triage-FDEDC6XZ.js +0 -16
  75. package/dist/setup-data-dir-2G242K7M.js +0 -30
  76. /package/dist/{ast-rule-runner-WBNQ4W7B.js.map → ast-rule-runner-JMZLVMCH.js.map} +0 -0
  77. /package/dist/{chunk-CURDI25L.js.map → chunk-2SWDYZV3.js.map} +0 -0
  78. /package/dist/{chunk-RVMOIMKD.js.map → chunk-4WV7LHYH.js.map} +0 -0
  79. /package/dist/{chunk-G7IKDIHG.js.map → chunk-5EGACVUH.js.map} +0 -0
  80. /package/dist/{chunk-3HGN74IJ.js.map → chunk-5U575YMH.js.map} +0 -0
  81. /package/dist/{chunk-OIRYBDAY.js.map → chunk-AYDLACEO.js.map} +0 -0
  82. /package/dist/{chunk-6VWD7DRE.js.map → chunk-BNE7FJ45.js.map} +0 -0
  83. /package/dist/{chunk-QXULJBP2.js.map → chunk-DKTGUWZJ.js.map} +0 -0
  84. /package/dist/{chunk-RUL5I2UB.js.map → chunk-HI7AN5O4.js.map} +0 -0
  85. /package/dist/{chunk-MN2IFJCV.js.map → chunk-HXJHX25L.js.map} +0 -0
  86. /package/dist/{chunk-P7ICWY4J.js.map → chunk-JMHWQC37.js.map} +0 -0
  87. /package/dist/{chunk-IMWA6UIZ.js.map → chunk-JP22NPTI.js.map} +0 -0
  88. /package/dist/{chunk-OT2PRNLG.js.map → chunk-KS2OLNTE.js.map} +0 -0
  89. /package/dist/{chunk-ABUPISMJ.js.map → chunk-LHIPYBUY.js.map} +0 -0
  90. /package/dist/{chunk-C54ZYD3A.js.map → chunk-MDLVZ6BW.js.map} +0 -0
  91. /package/dist/{chunk-MRK3TVZQ.js.map → chunk-MH5T6XYM.js.map} +0 -0
  92. /package/dist/{chunk-ECLPQMUB.js.map → chunk-MUOKW6KN.js.map} +0 -0
  93. /package/dist/{chunk-VXJO6GKP.js.map → chunk-NC6X2GGD.js.map} +0 -0
  94. /package/dist/{chunk-G6QIL77O.js.map → chunk-OHEB437P.js.map} +0 -0
  95. /package/dist/{chunk-MXAQRDPB.js.map → chunk-OLA3UDFN.js.map} +0 -0
  96. /package/dist/{chunk-SLH6AXGK.js.map → chunk-PA2RTJMT.js.map} +0 -0
  97. /package/dist/{chunk-HVS6NEOI.js.map → chunk-Q3U6QKZC.js.map} +0 -0
  98. /package/dist/{chunk-E56PLS6D.js.map → chunk-SEQCWSJT.js.map} +0 -0
  99. /package/dist/{chunk-6JMKAMIS.js.map → chunk-UROPQSIS.js.map} +0 -0
  100. /package/dist/{chunk-OMNYIKT2.js.map → chunk-USFPWBHA.js.map} +0 -0
  101. /package/dist/{chunk-VEEBF4TY.js.map → chunk-VOZZD74U.js.map} +0 -0
  102. /package/dist/{chunk-W2BS4OEF.js.map → chunk-WL5EJCHJ.js.map} +0 -0
  103. /package/dist/{chunk-PQQWP3D7.js.map → chunk-WQMOMBYD.js.map} +0 -0
  104. /package/dist/{chunk-J3CWUE35.js.map → chunk-Y2ZA6C2Q.js.map} +0 -0
  105. /package/dist/{chunk-XTBRYXQ3.js.map → chunk-ZQU4CG6O.js.map} +0 -0
  106. /package/dist/{cli-circuit-breaker-GI3XO3KY.js.map → cli-circuit-breaker-QD6TVMKR.js.map} +0 -0
  107. /package/dist/{composite-router-I7IFJ5KZ.js.map → composite-router-2FSI5LOU.js.map} +0 -0
  108. /package/dist/{consensus-vote-562LVBTG.js.map → consensus-vote-27FFJPZ7.js.map} +0 -0
  109. /package/dist/{context-retriever-Y52C6VNU.js.map → context-retriever-L7AKS4ME.js.map} +0 -0
  110. /package/dist/{doctor-deep-VR5KYAY6.js.map → doctor-deep-GWH5GT4H.js.map} +0 -0
  111. /package/dist/{doctor-live-SWQC7LEQ.js.map → doctor-live-N6B6B37M.js.map} +0 -0
  112. /package/dist/{expert-bridge-ARAJKDJ4.js.map → expert-bridge-5QK7MNTH.js.map} +0 -0
  113. /package/dist/{factory-DY6VTFH5.js.map → factory-GW3EJTLF.js.map} +0 -0
  114. /package/dist/{factory-ONHL5U5H.js.map → factory-Q5VPWNEF.js.map} +0 -0
  115. /package/dist/{improvement-review-MT3YYRMQ.js.map → improvement-review-3EXUFITC.js.map} +0 -0
  116. /package/dist/{init-opencode-RNDSFHBF.js.map → init-opencode-4X4G4KDB.js.map} +0 -0
  117. /package/dist/{issue-triage-FDEDC6XZ.js.map → issue-triage-QWPE6BLK.js.map} +0 -0
  118. /package/dist/{pr-reviewer-helpers-CMAJDX2H.js.map → pr-reviewer-helpers-QEPDL2P5.js.map} +0 -0
  119. /package/dist/{registry-command-22GYK4DX.js.map → registry-command-5FCYVBRG.js.map} +0 -0
  120. /package/dist/{repo-security-plan-AXS2VFES.js.map → repo-security-plan-DNXECMSY.js.map} +0 -0
  121. /package/dist/{research-helpers-synthesize-RHDOVMBS.js.map → research-helpers-synthesize-SQDJTW3K.js.map} +0 -0
  122. /package/dist/{routing-memory-ACDBGC3N.js.map → routing-memory-FGFHSJ5E.js.map} +0 -0
  123. /package/dist/{session-memory-QHCC5Y3X.js.map → session-memory-7NMKLY22.js.map} +0 -0
  124. /package/dist/{setup-config-LFCOSUQO.js.map → setup-config-MRALJE7W.js.map} +0 -0
  125. /package/dist/{setup-custom-api-LUARV73X.js.map → setup-custom-api-WEMYW2WU.js.map} +0 -0
  126. /package/dist/{setup-data-dir-2G242K7M.js.map → setup-data-dir-PAJVA3IY.js.map} +0 -0
  127. /package/dist/{tool-memory-GN6I5MC2.js.map → tool-memory-VZDB7AMM.js.map} +0 -0
  128. /package/dist/{unified-registry-ZWF7T6CK.js.map → unified-registry-5IDN3WJJ.js.map} +0 -0
  129. /package/dist/{weather-report-GOKIMPQU.js.map → weather-report-BDS357WB.js.map} +0 -0
@@ -9,8 +9,8 @@ import {
9
9
  getBuiltInAstRulesPath,
10
10
  loadRules,
11
11
  runAstQaRules
12
- } from "./chunk-C54ZYD3A.js";
13
- import "./chunk-CAKY3YPI.js";
12
+ } from "./chunk-MDLVZ6BW.js";
13
+ import "./chunk-5HOEQ7XY.js";
14
14
  import "./chunk-4UHDDCRB.js";
15
15
  import "./chunk-RNDHNRSX.js";
16
16
  import "./chunk-PX6F3LHL.js";
@@ -26,4 +26,4 @@ export {
26
26
  loadRules,
27
27
  runAstQaRules
28
28
  };
29
- //# sourceMappingURL=ast-rule-runner-WBNQ4W7B.js.map
29
+ //# sourceMappingURL=ast-rule-runner-JMZLVMCH.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HERI7LXN.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-CAKY3YPI.js";
6
+ } from "./chunk-5HOEQ7XY.js";
7
7
  import "./chunk-4UHDDCRB.js";
8
8
  import "./chunk-RNDHNRSX.js";
9
9
  import "./chunk-PX6F3LHL.js";
@@ -53,11 +53,7 @@ async function generateMcpConfig(options) {
53
53
  };
54
54
  return { configPath, cleanup, allowedTools: tools };
55
55
  }
56
- function getDefaultAllowedTools() {
57
- return DEFAULT_ALLOWED_TOOLS;
58
- }
59
56
  export {
60
- generateMcpConfig,
61
- getDefaultAllowedTools
57
+ generateMcpConfig
62
58
  };
63
- //# sourceMappingURL=child-mcp-config-TB32BPW5.js.map
59
+ //# sourceMappingURL=child-mcp-config-5HAWJDAW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli-adapters/child-mcp-config.ts"],"sourcesContent":["/**\n * nexus-agents/cli-adapters - Child CLI MCP Config Generator\n *\n * Generates MCP server configuration for child Claude CLI sessions so\n * spawned agents can call back into nexus-agents' MCP tools (memory,\n * research, etc.). Used by `pipeline/expert-bridge.ts` to give expert\n * agents tool access. Originally lived under `swe-bench/` (#1413);\n * relocated here in #2515 — the helper is generic CLI-spawn\n * infrastructure, not benchmark-specific.\n *\n * @module cli-adapters/child-mcp-config\n */\n\nimport { writeFile, rm } from 'node:fs/promises';\nimport { nexusMkdtemp } from '../config/nexus-tmp-dir.js';\nimport { join } from 'node:path';\nimport { createLogger } from '../core/index.js';\n\nconst logger = createLogger({ component: 'swe-bench-mcp-config' });\n\n/**\n * MCP server entry in Claude CLI config format.\n */\ninterface McpServerEntry {\n readonly command: string;\n readonly args: readonly string[];\n readonly env?: Readonly<Record<string, string>>;\n}\n\n/**\n * MCP config file format for Claude CLI (--mcp-config).\n */\ninterface McpConfigFile {\n readonly mcpServers: Readonly<Record<string, McpServerEntry>>;\n}\n\n/**\n * Options for generating MCP config.\n */\nexport interface McpConfigOptions {\n /** Path to nexus-agents CLI entry point. */\n readonly cliPath?: string;\n /** Additional environment variables for the MCP server. */\n readonly env?: Readonly<Record<string, string>>;\n /** Custom allowed tools (default: read-only subset). */\n readonly allowedTools?: readonly string[];\n}\n\n/** Default read-only tools available to SWE-bench child sessions. */\nconst DEFAULT_ALLOWED_TOOLS: readonly string[] = [\n 'memory_query',\n 'memory_stats',\n 'research_query',\n 'research_discover',\n 'weather_report',\n 'delegate_to_model',\n];\n\n/**\n * Resolves the nexus-agents CLI path.\n * Uses the built dist/cli.js relative to this package.\n */\nfunction resolveCliPath(override?: string): string {\n if (override !== undefined) return override;\n // Resolve relative to this file: src/swe-bench/ → dist/cli.js\n // At runtime we're in dist/swe-bench/, so go up one level\n const distDir = join(__dirname, '..');\n return join(distDir, 'cli.js');\n}\n\n/**\n * Builds the MCP config object for a nexus-agents server.\n */\nfunction buildConfig(options?: McpConfigOptions): McpConfigFile {\n const cliPath = resolveCliPath(options?.cliPath);\n\n const entry: McpServerEntry = {\n command: 'node',\n args: [cliPath, '--mode=server'],\n ...(options?.env !== undefined ? { env: options.env } : {}),\n };\n\n return {\n mcpServers: {\n 'nexus-agents': entry,\n },\n };\n\n // Tool allowlisting is handled by Claude CLI's --allowedTools flag, not in\n // the MCP config itself; the caller passes tools separately. Nothing here\n // needs the resolved list, so it is no longer computed.\n}\n\n/**\n * Generated MCP config with path and cleanup function.\n */\nexport interface GeneratedMcpConfig {\n /** Path to the generated config file. */\n readonly configPath: string;\n /** Cleanup function to remove temp files. */\n readonly cleanup: () => Promise<void>;\n /** Allowed tools list for --allowedTools flag. */\n readonly allowedTools: readonly string[];\n}\n\n/**\n * Generates an MCP config file for Claude CLI child sessions.\n *\n * Creates a temporary JSON file that can be passed to `claude --mcp-config`.\n * Returns the file path and a cleanup function.\n */\nexport async function generateMcpConfig(options?: McpConfigOptions): Promise<GeneratedMcpConfig> {\n const config = buildConfig(options);\n const tools = options?.allowedTools ?? DEFAULT_ALLOWED_TOOLS;\n\n const tempDir = await nexusMkdtemp('nexus-mcp-');\n const configPath = join(tempDir, 'mcp-config.json');\n\n await writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');\n\n const cleanup = async (): Promise<void> => {\n await rm(tempDir, { recursive: true, force: true }).catch((e: unknown) => {\n logger.debug('Best-effort cleanup failed', {\n error: e instanceof Error ? e.message : String(e),\n });\n });\n };\n\n return { configPath, cleanup, allowedTools: tools };\n}\n\n/**\n * Gets the default allowed tools for SWE-bench MCP sessions.\n */\nexport function getDefaultAllowedTools(): readonly string[] {\n return DEFAULT_ALLOWED_TOOLS;\n}\n"],"mappings":";;;;;;;;;;;AAaA,SAAS,WAAW,UAAU;AAE9B,SAAS,YAAY;AAGrB,IAAM,SAAS,aAAa,EAAE,WAAW,uBAAuB,CAAC;AA+BjE,IAAM,wBAA2C;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMA,SAAS,eAAe,UAA2B;AACjD,MAAI,aAAa,OAAW,QAAO;AAGnC,QAAM,UAAU,KAAK,WAAW,IAAI;AACpC,SAAO,KAAK,SAAS,QAAQ;AAC/B;AAKA,SAAS,YAAY,SAA2C;AAC9D,QAAM,UAAU,eAAe,SAAS,OAAO;AAE/C,QAAM,QAAwB;AAAA,IAC5B,SAAS;AAAA,IACT,MAAM,CAAC,SAAS,eAAe;AAAA,IAC/B,GAAI,SAAS,QAAQ,SAAY,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC;AAAA,EAC3D;AAEA,SAAO;AAAA,IACL,YAAY;AAAA,MACV,gBAAgB;AAAA,IAClB;AAAA,EACF;AAKF;AAoBA,eAAsB,kBAAkB,SAAyD;AAC/F,QAAM,SAAS,YAAY,OAAO;AAClC,QAAM,QAAQ,SAAS,gBAAgB;AAEvC,QAAM,UAAU,MAAM,aAAa,YAAY;AAC/C,QAAM,aAAa,KAAK,SAAS,iBAAiB;AAElD,QAAM,UAAU,YAAY,KAAK,UAAU,QAAQ,MAAM,CAAC,GAAG,OAAO;AAEpE,QAAM,UAAU,YAA2B;AACzC,UAAM,GAAG,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC,EAAE,MAAM,CAAC,MAAe;AACxE,aAAO,MAAM,8BAA8B;AAAA,QACzC,OAAO,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AAAA,MAClD,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,YAAY,SAAS,cAAc,MAAM;AACpD;AAKO,SAAS,yBAA4C;AAC1D,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../src/cli-adapters/child-mcp-config.ts"],"sourcesContent":["/**\n * nexus-agents/cli-adapters - Child CLI MCP Config Generator\n *\n * Generates MCP server configuration for child Claude CLI sessions so\n * spawned agents can call back into nexus-agents' MCP tools (memory,\n * research, etc.). Used by `pipeline/expert-bridge.ts` to give expert\n * agents tool access. Originally lived under `swe-bench/` (#1413);\n * relocated here in #2515 — the helper is generic CLI-spawn\n * infrastructure, not benchmark-specific.\n *\n * @module cli-adapters/child-mcp-config\n */\n\nimport { writeFile, rm } from 'node:fs/promises';\nimport { nexusMkdtemp } from '../config/nexus-tmp-dir.js';\nimport { join } from 'node:path';\nimport { createLogger } from '../core/index.js';\n\nconst logger = createLogger({ component: 'swe-bench-mcp-config' });\n\n/**\n * MCP server entry in Claude CLI config format.\n */\ninterface McpServerEntry {\n readonly command: string;\n readonly args: readonly string[];\n readonly env?: Readonly<Record<string, string>>;\n}\n\n/**\n * MCP config file format for Claude CLI (--mcp-config).\n */\ninterface McpConfigFile {\n readonly mcpServers: Readonly<Record<string, McpServerEntry>>;\n}\n\n/**\n * Options for generating MCP config.\n */\nexport interface McpConfigOptions {\n /** Path to nexus-agents CLI entry point. */\n readonly cliPath?: string;\n /** Additional environment variables for the MCP server. */\n readonly env?: Readonly<Record<string, string>>;\n /** Custom allowed tools (default: read-only subset). */\n readonly allowedTools?: readonly string[];\n}\n\n/** Default read-only tools available to SWE-bench child sessions. */\nconst DEFAULT_ALLOWED_TOOLS: readonly string[] = [\n 'memory_query',\n 'memory_stats',\n 'research_query',\n 'research_discover',\n 'weather_report',\n 'delegate_to_model',\n];\n\n/**\n * Resolves the nexus-agents CLI path.\n * Uses the built dist/cli.js relative to this package.\n */\nfunction resolveCliPath(override?: string): string {\n if (override !== undefined) return override;\n // Resolve relative to this file: src/swe-bench/ → dist/cli.js\n // At runtime we're in dist/swe-bench/, so go up one level\n const distDir = join(__dirname, '..');\n return join(distDir, 'cli.js');\n}\n\n/**\n * Builds the MCP config object for a nexus-agents server.\n */\nfunction buildConfig(options?: McpConfigOptions): McpConfigFile {\n const cliPath = resolveCliPath(options?.cliPath);\n\n const entry: McpServerEntry = {\n command: 'node',\n args: [cliPath, '--mode=server'],\n ...(options?.env !== undefined ? { env: options.env } : {}),\n };\n\n return {\n mcpServers: {\n 'nexus-agents': entry,\n },\n };\n\n // Tool allowlisting is handled by Claude CLI's --allowedTools flag, not in\n // the MCP config itself; the caller passes tools separately. Nothing here\n // needs the resolved list, so it is no longer computed.\n}\n\n/**\n * Generated MCP config with path and cleanup function.\n */\nexport interface GeneratedMcpConfig {\n /** Path to the generated config file. */\n readonly configPath: string;\n /** Cleanup function to remove temp files. */\n readonly cleanup: () => Promise<void>;\n /** Allowed tools list for --allowedTools flag. */\n readonly allowedTools: readonly string[];\n}\n\n/**\n * Generates an MCP config file for Claude CLI child sessions.\n *\n * Creates a temporary JSON file that can be passed to `claude --mcp-config`.\n * Returns the file path and a cleanup function.\n */\nexport async function generateMcpConfig(options?: McpConfigOptions): Promise<GeneratedMcpConfig> {\n const config = buildConfig(options);\n const tools = options?.allowedTools ?? DEFAULT_ALLOWED_TOOLS;\n\n const tempDir = await nexusMkdtemp('nexus-mcp-');\n const configPath = join(tempDir, 'mcp-config.json');\n\n await writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');\n\n const cleanup = async (): Promise<void> => {\n await rm(tempDir, { recursive: true, force: true }).catch((e: unknown) => {\n logger.debug('Best-effort cleanup failed', {\n error: e instanceof Error ? e.message : String(e),\n });\n });\n };\n\n return { configPath, cleanup, allowedTools: tools };\n}\n"],"mappings":";;;;;;;;;;;AAaA,SAAS,WAAW,UAAU;AAE9B,SAAS,YAAY;AAGrB,IAAM,SAAS,aAAa,EAAE,WAAW,uBAAuB,CAAC;AA+BjE,IAAM,wBAA2C;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMA,SAAS,eAAe,UAA2B;AACjD,MAAI,aAAa,OAAW,QAAO;AAGnC,QAAM,UAAU,KAAK,WAAW,IAAI;AACpC,SAAO,KAAK,SAAS,QAAQ;AAC/B;AAKA,SAAS,YAAY,SAA2C;AAC9D,QAAM,UAAU,eAAe,SAAS,OAAO;AAE/C,QAAM,QAAwB;AAAA,IAC5B,SAAS;AAAA,IACT,MAAM,CAAC,SAAS,eAAe;AAAA,IAC/B,GAAI,SAAS,QAAQ,SAAY,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC;AAAA,EAC3D;AAEA,SAAO;AAAA,IACL,YAAY;AAAA,MACV,gBAAgB;AAAA,IAClB;AAAA,EACF;AAKF;AAoBA,eAAsB,kBAAkB,SAAyD;AAC/F,QAAM,SAAS,YAAY,OAAO;AAClC,QAAM,QAAQ,SAAS,gBAAgB;AAEvC,QAAM,UAAU,MAAM,aAAa,YAAY;AAC/C,QAAM,aAAa,KAAK,SAAS,iBAAiB;AAElD,QAAM,UAAU,YAAY,KAAK,UAAU,QAAQ,MAAM,CAAC,GAAG,OAAO;AAEpE,QAAM,UAAU,YAA2B;AACzC,UAAM,GAAG,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC,EAAE,MAAM,CAAC,MAAe;AACxE,aAAO,MAAM,8BAA8B;AAAA,QACzC,OAAO,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AAAA,MAClD,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,YAAY,SAAS,cAAc,MAAM;AACpD;","names":[]}
@@ -8,13 +8,13 @@ import {
8
8
  loadTechniquesRegistry,
9
9
  resolveInsideRoot,
10
10
  savePapersRegistry
11
- } from "./chunk-G6QIL77O.js";
11
+ } from "./chunk-OHEB437P.js";
12
12
  import {
13
13
  resolveToken
14
- } from "./chunk-J3CWUE35.js";
14
+ } from "./chunk-Y2ZA6C2Q.js";
15
15
  import {
16
16
  getToolMemory
17
- } from "./chunk-ELYWRZPD.js";
17
+ } from "./chunk-HPDULZWJ.js";
18
18
  import {
19
19
  capitalizeWords,
20
20
  tokenizeFiltered,
@@ -43,7 +43,7 @@ import {
43
43
  ok,
44
44
  registerPersistentDistillerFactory,
45
45
  sigmoidConfidence
46
- } from "./chunk-CAKY3YPI.js";
46
+ } from "./chunk-5HOEQ7XY.js";
47
47
  import {
48
48
  ensureLearningDir,
49
49
  getRulesFile
@@ -4241,4 +4241,4 @@ export {
4241
4241
  DEFAULT_CONTEXT_BUDGET_TOKENS,
4242
4242
  getContextPromptPrefix
4243
4243
  };
4244
- //# sourceMappingURL=chunk-CURDI25L.js.map
4244
+ //# sourceMappingURL=chunk-2SWDYZV3.js.map
@@ -10,13 +10,13 @@ import {
10
10
  import {
11
11
  assessReputation,
12
12
  sanitizeInput
13
- } from "./chunk-SLH6AXGK.js";
13
+ } from "./chunk-PA2RTJMT.js";
14
14
  import {
15
15
  createLogger,
16
16
  err,
17
17
  getTimeProvider,
18
18
  ok
19
- } from "./chunk-CAKY3YPI.js";
19
+ } from "./chunk-5HOEQ7XY.js";
20
20
 
21
21
  // src/dogfooding/pr-reviewer-helpers.ts
22
22
  import { randomUUID } from "node:crypto";
@@ -416,4 +416,4 @@ export {
416
416
  createFailedReview,
417
417
  reviewPostingBlock
418
418
  };
419
- //# sourceMappingURL=chunk-RVMOIMKD.js.map
419
+ //# sourceMappingURL=chunk-4WV7LHYH.js.map
@@ -4,7 +4,7 @@ import {
4
4
  getErrorMessage,
5
5
  getTimeProvider,
6
6
  ok
7
- } from "./chunk-CAKY3YPI.js";
7
+ } from "./chunk-5HOEQ7XY.js";
8
8
 
9
9
  // src/context/session-memory.ts
10
10
  import * as fs from "node:fs";
@@ -370,4 +370,4 @@ export {
370
370
  SessionMemory,
371
371
  createSessionMemory
372
372
  };
373
- //# sourceMappingURL=chunk-G7IKDIHG.js.map
373
+ //# sourceMappingURL=chunk-5EGACVUH.js.map