nexus-agents 8.44.1 → 8.44.3

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 (132) hide show
  1. package/dist/{ast-rule-runner-EPU4KNXJ.js → ast-rule-runner-EBTFBTKZ.js} +3 -3
  2. package/dist/{child-mcp-config-MQYS7D6P.js → child-mcp-config-A3YWHFOY.js} +2 -4
  3. package/dist/child-mcp-config-A3YWHFOY.js.map +1 -0
  4. package/dist/{chunk-WPBF2POG.js → chunk-26E2ECC5.js} +4 -4
  5. package/dist/{chunk-OO73573G.js → chunk-2QZVFXR7.js} +2 -2
  6. package/dist/{chunk-LZL23U7Z.js → chunk-336MFOVV.js} +2 -2
  7. package/dist/{chunk-5CO7TEYR.js → chunk-4XESQ3X6.js} +2 -2
  8. package/dist/{chunk-3QP3NJ4E.js → chunk-5OHQT3IJ.js} +2 -2
  9. package/dist/{chunk-S4QNCIZF.js → chunk-5XEPU5ZV.js} +19 -9
  10. package/dist/chunk-5XEPU5ZV.js.map +1 -0
  11. package/dist/{chunk-OEKALQ2G.js → chunk-6GAUJAMO.js} +2 -2
  12. package/dist/{chunk-23MBJUHY.js → chunk-7CPTOL6L.js} +42 -43
  13. package/dist/{chunk-23MBJUHY.js.map → chunk-7CPTOL6L.js.map} +1 -1
  14. package/dist/{chunk-NJDB4LVF.js → chunk-ACDZL6ZM.js} +9 -10
  15. package/dist/chunk-ACDZL6ZM.js.map +1 -0
  16. package/dist/{chunk-AP3KIHPG.js → chunk-AOQDLJHG.js} +2 -2
  17. package/dist/{chunk-LHIOFRJX.js → chunk-BBH3SKC3.js} +6 -6
  18. package/dist/{chunk-XYD2J2M5.js → chunk-BPS4XQR2.js} +3 -3
  19. package/dist/{chunk-4H44CQIZ.js → chunk-F5O7U6W5.js} +2 -2
  20. package/dist/{chunk-H77DZWRG.js → chunk-GFXWGCWS.js} +2 -2
  21. package/dist/{chunk-4WEBJR5L.js → chunk-HD6E32PW.js} +8 -9
  22. package/dist/chunk-HD6E32PW.js.map +1 -0
  23. package/dist/{chunk-TPHY6M6D.js → chunk-HFZMMDZJ.js} +4 -4
  24. package/dist/{chunk-LVOXPW3M.js → chunk-JH4L3SH4.js} +2 -2
  25. package/dist/{chunk-2VDDZCVT.js → chunk-KM4MVL7X.js} +9 -9
  26. package/dist/{chunk-RL6F6IUQ.js → chunk-KO3KUF5M.js} +2 -2
  27. package/dist/{chunk-Z4SCHKLH.js → chunk-NNL4EPHA.js} +2 -2
  28. package/dist/{chunk-B5R7KEZR.js → chunk-O5TIFR2H.js} +7 -7
  29. package/dist/{chunk-AMCNB2TJ.js → chunk-OZXILWVN.js} +5 -5
  30. package/dist/{chunk-U7JRUYB3.js → chunk-PWLSN7FQ.js} +2 -2
  31. package/dist/{chunk-MLG2PR6E.js → chunk-QN5ME2N2.js} +2 -2
  32. package/dist/{chunk-IOV4B5R5.js → chunk-RNFQP4HB.js} +2 -2
  33. package/dist/{chunk-BTWPTJF3.js → chunk-RZF4GUMI.js} +3 -3
  34. package/dist/{chunk-BTWPTJF3.js.map → chunk-RZF4GUMI.js.map} +1 -1
  35. package/dist/{chunk-ZSMK7RFK.js → chunk-TIUE5KC4.js} +2 -2
  36. package/dist/{chunk-GCLLRAST.js → chunk-UIVQ2B7J.js} +3 -3
  37. package/dist/{chunk-M7TQR4UU.js → chunk-WD6CZRSW.js} +4 -4
  38. package/dist/{chunk-PFW4EQ2E.js → chunk-WIJZ57H3.js} +2 -2
  39. package/dist/{chunk-P6DGZEWY.js → chunk-WRGVTEKL.js} +4 -4
  40. package/dist/{chunk-6HMACBA3.js → chunk-XJZF7HTC.js} +2 -2
  41. package/dist/{chunk-X2MX53O3.js → chunk-YIKC3GNF.js} +2 -2
  42. package/dist/{chunk-JSH5GCZK.js → chunk-ZYJT5CMY.js} +3 -3
  43. package/dist/{cli-circuit-breaker-LAOVTGFP.js → cli-circuit-breaker-DNKQCKSD.js} +3 -3
  44. package/dist/cli.js +44 -45
  45. package/dist/cli.js.map +1 -1
  46. package/dist/{composite-router-CN2SV6PX.js → composite-router-CKTUXIDB.js} +2 -2
  47. package/dist/{consensus-vote-52SR6UJB.js → consensus-vote-BIGG6IYH.js} +17 -17
  48. package/dist/{context-retriever-3XRHW4EG.js → context-retriever-I4VJWGPK.js} +8 -8
  49. package/dist/{doctor-deep-5CSAHVEP.js → doctor-deep-JOFIWKO5.js} +3 -3
  50. package/dist/{doctor-live-5NRILDTR.js → doctor-live-LBTEIOOH.js} +9 -9
  51. package/dist/{expert-bridge-ZNNMHOQH.js → expert-bridge-6KCCGNC3.js} +4 -4
  52. package/dist/{factory-UYBTTLHZ.js → factory-HJPJTSHY.js} +5 -5
  53. package/dist/{factory-TE7DQKRW.js → factory-YIFRH73W.js} +9 -9
  54. package/dist/{improvement-review-3VV4DBCJ.js → improvement-review-5VMK5YJK.js} +6 -6
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.js +31 -31
  57. package/dist/{init-opencode-WKKW7V7A.js → init-opencode-2MM576TQ.js} +6 -6
  58. package/dist/issue-triage-D43CVBDL.js +17 -0
  59. package/dist/models-dev-snapshot.json +171 -27
  60. package/dist/{pr-reviewer-helpers-BR6YMKMR.js → pr-reviewer-helpers-G5MW4CBB.js} +4 -4
  61. package/dist/{registry-command-TWZXTXWB.js → registry-command-E4FZ56OB.js} +2 -2
  62. package/dist/{repo-security-plan-3E3FSPD5.js → repo-security-plan-3FGTIZY4.js} +3 -3
  63. package/dist/{research-helpers-synthesize-NIDQS4XT.js → research-helpers-synthesize-LRYFH55A.js} +4 -4
  64. package/dist/{routing-memory-PGYUB4UJ.js → routing-memory-CRDEOBRO.js} +2 -2
  65. package/dist/{session-memory-D2IK4PC2.js → session-memory-XPBKOHCX.js} +3 -3
  66. package/dist/{setup-config-QELDNFFB.js → setup-config-7G2UV4FN.js} +3 -3
  67. package/dist/{setup-custom-api-57TCCU7N.js → setup-custom-api-GWZIDL3X.js} +4 -4
  68. package/dist/setup-data-dir-FWBXXCHF.js +29 -0
  69. package/dist/{tool-memory-3B44V6CP.js → tool-memory-EUBYXYAI.js} +5 -5
  70. package/dist/{unified-registry-AIHYR7FG.js → unified-registry-H6DRGQ37.js} +10 -10
  71. package/dist/{weather-report-2Q6RXC2D.js → weather-report-Q4EJXE5F.js} +2 -2
  72. package/package.json +1 -1
  73. package/dist/child-mcp-config-MQYS7D6P.js.map +0 -1
  74. package/dist/chunk-4WEBJR5L.js.map +0 -1
  75. package/dist/chunk-NJDB4LVF.js.map +0 -1
  76. package/dist/chunk-S4QNCIZF.js.map +0 -1
  77. package/dist/issue-triage-FRPETYSK.js +0 -17
  78. package/dist/setup-data-dir-WFISCBTQ.js +0 -29
  79. /package/dist/{ast-rule-runner-EPU4KNXJ.js.map → ast-rule-runner-EBTFBTKZ.js.map} +0 -0
  80. /package/dist/{chunk-WPBF2POG.js.map → chunk-26E2ECC5.js.map} +0 -0
  81. /package/dist/{chunk-OO73573G.js.map → chunk-2QZVFXR7.js.map} +0 -0
  82. /package/dist/{chunk-LZL23U7Z.js.map → chunk-336MFOVV.js.map} +0 -0
  83. /package/dist/{chunk-5CO7TEYR.js.map → chunk-4XESQ3X6.js.map} +0 -0
  84. /package/dist/{chunk-3QP3NJ4E.js.map → chunk-5OHQT3IJ.js.map} +0 -0
  85. /package/dist/{chunk-OEKALQ2G.js.map → chunk-6GAUJAMO.js.map} +0 -0
  86. /package/dist/{chunk-AP3KIHPG.js.map → chunk-AOQDLJHG.js.map} +0 -0
  87. /package/dist/{chunk-LHIOFRJX.js.map → chunk-BBH3SKC3.js.map} +0 -0
  88. /package/dist/{chunk-XYD2J2M5.js.map → chunk-BPS4XQR2.js.map} +0 -0
  89. /package/dist/{chunk-4H44CQIZ.js.map → chunk-F5O7U6W5.js.map} +0 -0
  90. /package/dist/{chunk-H77DZWRG.js.map → chunk-GFXWGCWS.js.map} +0 -0
  91. /package/dist/{chunk-TPHY6M6D.js.map → chunk-HFZMMDZJ.js.map} +0 -0
  92. /package/dist/{chunk-LVOXPW3M.js.map → chunk-JH4L3SH4.js.map} +0 -0
  93. /package/dist/{chunk-2VDDZCVT.js.map → chunk-KM4MVL7X.js.map} +0 -0
  94. /package/dist/{chunk-RL6F6IUQ.js.map → chunk-KO3KUF5M.js.map} +0 -0
  95. /package/dist/{chunk-Z4SCHKLH.js.map → chunk-NNL4EPHA.js.map} +0 -0
  96. /package/dist/{chunk-B5R7KEZR.js.map → chunk-O5TIFR2H.js.map} +0 -0
  97. /package/dist/{chunk-AMCNB2TJ.js.map → chunk-OZXILWVN.js.map} +0 -0
  98. /package/dist/{chunk-U7JRUYB3.js.map → chunk-PWLSN7FQ.js.map} +0 -0
  99. /package/dist/{chunk-MLG2PR6E.js.map → chunk-QN5ME2N2.js.map} +0 -0
  100. /package/dist/{chunk-IOV4B5R5.js.map → chunk-RNFQP4HB.js.map} +0 -0
  101. /package/dist/{chunk-ZSMK7RFK.js.map → chunk-TIUE5KC4.js.map} +0 -0
  102. /package/dist/{chunk-GCLLRAST.js.map → chunk-UIVQ2B7J.js.map} +0 -0
  103. /package/dist/{chunk-M7TQR4UU.js.map → chunk-WD6CZRSW.js.map} +0 -0
  104. /package/dist/{chunk-PFW4EQ2E.js.map → chunk-WIJZ57H3.js.map} +0 -0
  105. /package/dist/{chunk-P6DGZEWY.js.map → chunk-WRGVTEKL.js.map} +0 -0
  106. /package/dist/{chunk-6HMACBA3.js.map → chunk-XJZF7HTC.js.map} +0 -0
  107. /package/dist/{chunk-X2MX53O3.js.map → chunk-YIKC3GNF.js.map} +0 -0
  108. /package/dist/{chunk-JSH5GCZK.js.map → chunk-ZYJT5CMY.js.map} +0 -0
  109. /package/dist/{cli-circuit-breaker-LAOVTGFP.js.map → cli-circuit-breaker-DNKQCKSD.js.map} +0 -0
  110. /package/dist/{composite-router-CN2SV6PX.js.map → composite-router-CKTUXIDB.js.map} +0 -0
  111. /package/dist/{consensus-vote-52SR6UJB.js.map → consensus-vote-BIGG6IYH.js.map} +0 -0
  112. /package/dist/{context-retriever-3XRHW4EG.js.map → context-retriever-I4VJWGPK.js.map} +0 -0
  113. /package/dist/{doctor-deep-5CSAHVEP.js.map → doctor-deep-JOFIWKO5.js.map} +0 -0
  114. /package/dist/{doctor-live-5NRILDTR.js.map → doctor-live-LBTEIOOH.js.map} +0 -0
  115. /package/dist/{expert-bridge-ZNNMHOQH.js.map → expert-bridge-6KCCGNC3.js.map} +0 -0
  116. /package/dist/{factory-TE7DQKRW.js.map → factory-HJPJTSHY.js.map} +0 -0
  117. /package/dist/{factory-UYBTTLHZ.js.map → factory-YIFRH73W.js.map} +0 -0
  118. /package/dist/{improvement-review-3VV4DBCJ.js.map → improvement-review-5VMK5YJK.js.map} +0 -0
  119. /package/dist/{init-opencode-WKKW7V7A.js.map → init-opencode-2MM576TQ.js.map} +0 -0
  120. /package/dist/{issue-triage-FRPETYSK.js.map → issue-triage-D43CVBDL.js.map} +0 -0
  121. /package/dist/{pr-reviewer-helpers-BR6YMKMR.js.map → pr-reviewer-helpers-G5MW4CBB.js.map} +0 -0
  122. /package/dist/{registry-command-TWZXTXWB.js.map → registry-command-E4FZ56OB.js.map} +0 -0
  123. /package/dist/{repo-security-plan-3E3FSPD5.js.map → repo-security-plan-3FGTIZY4.js.map} +0 -0
  124. /package/dist/{research-helpers-synthesize-NIDQS4XT.js.map → research-helpers-synthesize-LRYFH55A.js.map} +0 -0
  125. /package/dist/{routing-memory-PGYUB4UJ.js.map → routing-memory-CRDEOBRO.js.map} +0 -0
  126. /package/dist/{session-memory-D2IK4PC2.js.map → session-memory-XPBKOHCX.js.map} +0 -0
  127. /package/dist/{setup-config-QELDNFFB.js.map → setup-config-7G2UV4FN.js.map} +0 -0
  128. /package/dist/{setup-custom-api-57TCCU7N.js.map → setup-custom-api-GWZIDL3X.js.map} +0 -0
  129. /package/dist/{setup-data-dir-WFISCBTQ.js.map → setup-data-dir-FWBXXCHF.js.map} +0 -0
  130. /package/dist/{tool-memory-3B44V6CP.js.map → tool-memory-EUBYXYAI.js.map} +0 -0
  131. /package/dist/{unified-registry-AIHYR7FG.js.map → unified-registry-H6DRGQ37.js.map} +0 -0
  132. /package/dist/{weather-report-2Q6RXC2D.js.map → weather-report-Q4EJXE5F.js.map} +0 -0
@@ -9,8 +9,8 @@ import {
9
9
  getBuiltInAstRulesPath,
10
10
  loadRules,
11
11
  runAstQaRules
12
- } from "./chunk-Z4SCHKLH.js";
13
- import "./chunk-BTWPTJF3.js";
12
+ } from "./chunk-NNL4EPHA.js";
13
+ import "./chunk-RZF4GUMI.js";
14
14
  import "./chunk-3HELETAQ.js";
15
15
  import "./chunk-JVNJJ2VL.js";
16
16
  import "./chunk-ZPWHCABL.js";
@@ -26,4 +26,4 @@ export {
26
26
  loadRules,
27
27
  runAstQaRules
28
28
  };
29
- //# sourceMappingURL=ast-rule-runner-EPU4KNXJ.js.map
29
+ //# sourceMappingURL=ast-rule-runner-EBTFBTKZ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-T5GVEXSA.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-BTWPTJF3.js";
6
+ } from "./chunk-RZF4GUMI.js";
7
7
  import "./chunk-3HELETAQ.js";
8
8
  import "./chunk-JVNJJ2VL.js";
9
9
  import "./chunk-ZPWHCABL.js";
@@ -27,7 +27,6 @@ function resolveCliPath(override) {
27
27
  }
28
28
  function buildConfig(options) {
29
29
  const cliPath = resolveCliPath(options?.cliPath);
30
- const tools = options?.allowedTools ?? DEFAULT_ALLOWED_TOOLS;
31
30
  const entry = {
32
31
  command: "node",
33
32
  args: [cliPath, "--mode=server"],
@@ -38,7 +37,6 @@ function buildConfig(options) {
38
37
  "nexus-agents": entry
39
38
  }
40
39
  };
41
- void tools;
42
40
  }
43
41
  async function generateMcpConfig(options) {
44
42
  const config = buildConfig(options);
@@ -62,4 +60,4 @@ export {
62
60
  generateMcpConfig,
63
61
  getDefaultAllowedTools
64
62
  };
65
- //# sourceMappingURL=child-mcp-config-MQYS7D6P.js.map
63
+ //# sourceMappingURL=child-mcp-config-A3YWHFOY.js.map
@@ -0,0 +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,10 +1,10 @@
1
1
  import {
2
2
  createAutoAdapter
3
- } from "./chunk-NJDB4LVF.js";
3
+ } from "./chunk-ACDZL6ZM.js";
4
4
  import {
5
5
  getDefaultCliCircuitBreakerRegistry,
6
6
  mapModelErrorToCategory
7
- } from "./chunk-IOV4B5R5.js";
7
+ } from "./chunk-RNFQP4HB.js";
8
8
  import {
9
9
  CLI_NAMES,
10
10
  CircularBuffer,
@@ -24,7 +24,7 @@ import {
24
24
  recordRateLimitEvent,
25
25
  resolveModelIdentitySync,
26
26
  toRateLimitError
27
- } from "./chunk-BTWPTJF3.js";
27
+ } from "./chunk-RZF4GUMI.js";
28
28
 
29
29
  // src/config/model-equivalence.ts
30
30
  function canonicalModelKey(modelId) {
@@ -904,4 +904,4 @@ export {
904
904
  getGlobalRegistry,
905
905
  resetGlobalRegistry
906
906
  };
907
- //# sourceMappingURL=chunk-WPBF2POG.js.map
907
+ //# sourceMappingURL=chunk-26E2ECC5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  createLogger,
4
4
  getDefaultRegistry,
5
5
  roundToMicroUsd
6
- } from "./chunk-BTWPTJF3.js";
6
+ } from "./chunk-RZF4GUMI.js";
7
7
  import {
8
8
  getNexusDataDir
9
9
  } from "./chunk-JVNJJ2VL.js";
@@ -196,4 +196,4 @@ export {
196
196
  loadUsageEvents,
197
197
  rollupByModel
198
198
  };
199
- //# sourceMappingURL=chunk-OO73573G.js.map
199
+ //# sourceMappingURL=chunk-2QZVFXR7.js.map
@@ -13,7 +13,7 @@ import {
13
13
  lookupInTreeCapability,
14
14
  ok,
15
15
  resolveRetryAfterMs
16
- } from "./chunk-BTWPTJF3.js";
16
+ } from "./chunk-RZF4GUMI.js";
17
17
 
18
18
  // src/config/model-parameter-support.ts
19
19
  function parseClaudeMajorMinor(bareId) {
@@ -834,4 +834,4 @@ export {
834
834
  DEFAULT_COLLECT_STREAM_MAX_CHUNKS,
835
835
  collectStream
836
836
  };
837
- //# sourceMappingURL=chunk-LZL23U7Z.js.map
837
+ //# sourceMappingURL=chunk-336MFOVV.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRandomProvider,
3
3
  getTimeProvider
4
- } from "./chunk-BTWPTJF3.js";
4
+ } from "./chunk-RZF4GUMI.js";
5
5
 
6
6
  // src/utils/id-utils.ts
7
7
  import { randomUUID } from "node:crypto";
@@ -24,4 +24,4 @@ export {
24
24
  generateHyphenId,
25
25
  generateUUID
26
26
  };
27
- //# sourceMappingURL=chunk-5CO7TEYR.js.map
27
+ //# sourceMappingURL=chunk-4XESQ3X6.js.map
@@ -4,7 +4,7 @@ import {
4
4
  err,
5
5
  getErrorMessage,
6
6
  ok
7
- } from "./chunk-BTWPTJF3.js";
7
+ } from "./chunk-RZF4GUMI.js";
8
8
 
9
9
  // src/scm/types.ts
10
10
  var ScmError = class extends Error {
@@ -281,4 +281,4 @@ export {
281
281
  ScmError,
282
282
  GitHubProvider
283
283
  };
284
- //# sourceMappingURL=chunk-3QP3NJ4E.js.map
284
+ //# sourceMappingURL=chunk-5OHQT3IJ.js.map
@@ -5,13 +5,13 @@ import {
5
5
  loadTechniquesRegistry,
6
6
  resolveInsideRoot,
7
7
  savePapersRegistry
8
- } from "./chunk-RL6F6IUQ.js";
8
+ } from "./chunk-KO3KUF5M.js";
9
9
  import {
10
10
  resolveToken
11
- } from "./chunk-LVOXPW3M.js";
11
+ } from "./chunk-JH4L3SH4.js";
12
12
  import {
13
13
  getToolMemory
14
- } from "./chunk-P6DGZEWY.js";
14
+ } from "./chunk-WRGVTEKL.js";
15
15
  import {
16
16
  capitalizeWords,
17
17
  tokenizeFiltered,
@@ -40,7 +40,7 @@ import {
40
40
  ok,
41
41
  registerPersistentDistillerFactory,
42
42
  sigmoidConfidence
43
- } from "./chunk-BTWPTJF3.js";
43
+ } from "./chunk-RZF4GUMI.js";
44
44
  import {
45
45
  ensureLearningDir,
46
46
  getRulesFile
@@ -187,15 +187,25 @@ var PersistentStrategyDistiller = class extends StrategyDistiller {
187
187
  registerPersistentDistillerFactory(
188
188
  (outcomeStore, logger) => new PersistentStrategyDistiller(outcomeStore, void 0, logger)
189
189
  );
190
- function loadPersistedRules(filePath = getRulesFile()) {
190
+ function loadPersistedRules(filePath = getRulesFile(), logger) {
191
191
  if (!existsSync(filePath)) return [];
192
192
  try {
193
193
  const content = readFileSync(filePath, "utf-8");
194
194
  const parsed = JSON.parse(content);
195
195
  const result = RulesSnapshotSchema.safeParse(parsed);
196
- if (!result.success) return [];
196
+ if (!result.success) {
197
+ logger?.warn("Rules file failed validation; treating as no rules", {
198
+ path: filePath,
199
+ issues: result.error.issues.length
200
+ });
201
+ return [];
202
+ }
197
203
  return result.data.rules.map((raw) => hydrateRule(raw, DEFAULT_DISTILLER_CONFIG).rule);
198
- } catch {
204
+ } catch (error) {
205
+ logger?.warn("Rules file could not be read; treating as no rules", {
206
+ path: filePath,
207
+ error: error instanceof Error ? error.message : String(error)
208
+ });
199
209
  return [];
200
210
  }
201
211
  }
@@ -3952,7 +3962,7 @@ async function getResearchInsightsForTask(task, limit, logger) {
3952
3962
  }
3953
3963
  function fetchPriorStrategies(category, limit, logger) {
3954
3964
  try {
3955
- const all = loadPersistedRules();
3965
+ const all = loadPersistedRules(void 0, logger);
3956
3966
  return all.filter((r) => r.status === "active").filter((r) => r.category === category || r.category === "*").slice(0, limit);
3957
3967
  } catch (error) {
3958
3968
  logger.debug("ContextRetriever: prior-strategies fetch failed", {
@@ -4228,4 +4238,4 @@ export {
4228
4238
  DEFAULT_CONTEXT_BUDGET_TOKENS,
4229
4239
  getContextPromptPrefix
4230
4240
  };
4231
- //# sourceMappingURL=chunk-S4QNCIZF.js.map
4241
+ //# sourceMappingURL=chunk-5XEPU5ZV.js.map