nexus-agents 8.109.0 → 8.110.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 (140) hide show
  1. package/dist/{ast-rule-runner-IIUVSV4U.js → ast-rule-runner-ZO3T66KP.js} +3 -3
  2. package/dist/{child-mcp-config-SDWFHROT.js → child-mcp-config-M4MRFMP3.js} +2 -2
  3. package/dist/{chunk-37GZJOQE.js → chunk-22AF7TYV.js} +6 -39
  4. package/dist/chunk-22AF7TYV.js.map +1 -0
  5. package/dist/{chunk-Q7V4T5VC.js → chunk-4QWRKVJS.js} +3 -3
  6. package/dist/{chunk-KKVVD6KC.js → chunk-5O4KT2WO.js} +2 -2
  7. package/dist/{chunk-ENIRQJV6.js → chunk-BE6L6MIE.js} +4 -4
  8. package/dist/{chunk-ZBF7CSLQ.js → chunk-BJJOZV7O.js} +5 -5
  9. package/dist/{chunk-OEUT34N5.js → chunk-C4OZ4F67.js} +5 -5
  10. package/dist/{chunk-WWOKQDED.js → chunk-CDPPWCGO.js} +2 -2
  11. package/dist/{chunk-LBXRT4MQ.js → chunk-CGPKV4KH.js} +5 -5
  12. package/dist/{chunk-4OIS5PWM.js → chunk-CX3YZ4S6.js} +8 -8
  13. package/dist/{chunk-B46ICMSM.js → chunk-D4JC6AOD.js} +42 -42
  14. package/dist/{chunk-TH65DTOP.js → chunk-D6LZY3W7.js} +2 -2
  15. package/dist/{chunk-J2K77DMF.js → chunk-DNXEQKBR.js} +2 -2
  16. package/dist/{chunk-7YJK2UR5.js → chunk-FE2VYSSA.js} +2 -2
  17. package/dist/{chunk-7NTGBUHA.js → chunk-FRBFTFSQ.js} +4 -4
  18. package/dist/{chunk-LHGMZ4OP.js → chunk-G4UBTYE3.js} +2 -2
  19. package/dist/{chunk-SBW2C6Z2.js → chunk-GCQLEDCY.js} +5 -5
  20. package/dist/{chunk-THIQQNVR.js → chunk-GDUB2OE4.js} +2 -2
  21. package/dist/{chunk-F27XFOVY.js → chunk-J2QYPARH.js} +2 -2
  22. package/dist/{chunk-QGB3KDHH.js → chunk-JRDNNCM7.js} +5 -5
  23. package/dist/{chunk-IS2ZE5WQ.js → chunk-LNPSEZUE.js} +12 -12
  24. package/dist/{chunk-VONADK6G.js → chunk-METD44P2.js} +2 -2
  25. package/dist/{chunk-S242UP7R.js → chunk-NBSI5ICR.js} +3 -3
  26. package/dist/{chunk-2C4W3OMK.js → chunk-O4QDBQI6.js} +2 -2
  27. package/dist/{chunk-M4XCGGKF.js → chunk-OM4JSIPB.js} +2 -2
  28. package/dist/{chunk-XKRHWU5P.js → chunk-RIF7TUYH.js} +53 -33
  29. package/dist/chunk-RIF7TUYH.js.map +1 -0
  30. package/dist/{chunk-N4D2L3PL.js → chunk-SARPPCY5.js} +2 -2
  31. package/dist/{chunk-GCWFVDAM.js → chunk-SSIS5P24.js} +3 -3
  32. package/dist/{chunk-WSE6K4FV.js → chunk-TAGJV5NH.js} +20 -15
  33. package/dist/chunk-TAGJV5NH.js.map +1 -0
  34. package/dist/{chunk-PFJ5KNLC.js → chunk-U5TT4C5O.js} +2 -2
  35. package/dist/{chunk-6ONZRC4U.js → chunk-UMESP2HX.js} +2 -2
  36. package/dist/{chunk-HBIWYCXN.js → chunk-W3EXUWFG.js} +2 -2
  37. package/dist/{chunk-JEVYS4AL.js → chunk-WKKSNJV3.js} +4 -4
  38. package/dist/{chunk-KZIY5ZVF.js → chunk-WKNSD7YL.js} +112 -13
  39. package/dist/chunk-WKNSD7YL.js.map +1 -0
  40. package/dist/{chunk-F65I2L2L.js → chunk-YLQNJAJP.js} +2 -2
  41. package/dist/{chunk-NG2NUBBL.js → chunk-ZEDLXDDY.js} +2 -2
  42. package/dist/{chunk-2UEX46D3.js → chunk-ZTOTKIAO.js} +2 -2
  43. package/dist/{cli-circuit-breaker-M2Y6ZZIC.js → cli-circuit-breaker-FVO43RVL.js} +3 -3
  44. package/dist/cli.js +52 -48
  45. package/dist/cli.js.map +1 -1
  46. package/dist/{composite-router-MGU7G56I.js → composite-router-SJVN7OB4.js} +2 -2
  47. package/dist/{consensus-vote-D2FHUVUO.js → consensus-vote-54G3SYCP.js} +18 -18
  48. package/dist/{context-retriever-ORVEWRFT.js → context-retriever-SONR6BIO.js} +8 -8
  49. package/dist/{doctor-deep-XZECSUG3.js → doctor-deep-KRSLLEPY.js} +3 -3
  50. package/dist/doctor-gateway-report-N4H4LV2Q.js +17 -0
  51. package/dist/{doctor-live-ARWKLO3E.js → doctor-live-XPJKPSRM.js} +11 -11
  52. package/dist/{expert-bridge-GXGC4UTR.js → expert-bridge-R4AM2VPK.js} +5 -5
  53. package/dist/{factory-TLEAIKK4.js → factory-G7SSRQET.js} +5 -5
  54. package/dist/{factory-F25AAIUW.js → factory-KHLGIPPZ.js} +10 -10
  55. package/dist/{improvement-review-YBTHBX5A.js → improvement-review-BHKZ5JUF.js} +6 -6
  56. package/dist/index.d.ts +68 -27
  57. package/dist/index.js +39 -36
  58. package/dist/index.js.map +1 -1
  59. package/dist/{init-opencode-ULVYFRTO.js → init-opencode-GVENWYH4.js} +6 -6
  60. package/dist/{issue-triage-B7EB4ZUV.js → issue-triage-CS4WXPIE.js} +6 -6
  61. package/dist/{openai-compat-adapter-BBTGGIDV.js → openai-compat-adapter-CUETEQEQ.js} +6 -6
  62. package/dist/{pr-reviewer-helpers-MABA52SF.js → pr-reviewer-helpers-FGON5RFG.js} +4 -4
  63. package/dist/{registry-command-LNDQQAWT.js → registry-command-CARW7JBG.js} +2 -2
  64. package/dist/{repo-security-plan-J4VIB2CF.js → repo-security-plan-4KAW7ELW.js} +3 -3
  65. package/dist/{research-helpers-synthesize-4WBDTJ4W.js → research-helpers-synthesize-CYO2YUAE.js} +4 -4
  66. package/dist/{routing-memory-4J5WAAHZ.js → routing-memory-SFXZODKG.js} +2 -2
  67. package/dist/{session-memory-VTNOKICB.js → session-memory-5DAEGAX5.js} +3 -3
  68. package/dist/{setup-config-24S7QDLL.js → setup-config-J6YHOKO3.js} +3 -3
  69. package/dist/{setup-custom-api-TMRULW5V.js → setup-custom-api-4XKOPRRP.js} +4 -4
  70. package/dist/setup-data-dir-62R3ZQI4.js +34 -0
  71. package/dist/{tool-memory-Y4KTQ6JL.js → tool-memory-YBFEA2W5.js} +5 -5
  72. package/dist/{unified-registry-MFXBCJZQ.js → unified-registry-S7L5SYG2.js} +12 -12
  73. package/dist/{weather-report-ZRHGDCZD.js → weather-report-MVSIUA23.js} +2 -2
  74. package/package.json +1 -1
  75. package/dist/chunk-37GZJOQE.js.map +0 -1
  76. package/dist/chunk-KZIY5ZVF.js.map +0 -1
  77. package/dist/chunk-WSE6K4FV.js.map +0 -1
  78. package/dist/chunk-XKRHWU5P.js.map +0 -1
  79. package/dist/doctor-gateway-report-ALA566PD.js +0 -17
  80. package/dist/setup-data-dir-O2SBWD7J.js +0 -34
  81. /package/dist/{ast-rule-runner-IIUVSV4U.js.map → ast-rule-runner-ZO3T66KP.js.map} +0 -0
  82. /package/dist/{child-mcp-config-SDWFHROT.js.map → child-mcp-config-M4MRFMP3.js.map} +0 -0
  83. /package/dist/{chunk-Q7V4T5VC.js.map → chunk-4QWRKVJS.js.map} +0 -0
  84. /package/dist/{chunk-KKVVD6KC.js.map → chunk-5O4KT2WO.js.map} +0 -0
  85. /package/dist/{chunk-ENIRQJV6.js.map → chunk-BE6L6MIE.js.map} +0 -0
  86. /package/dist/{chunk-ZBF7CSLQ.js.map → chunk-BJJOZV7O.js.map} +0 -0
  87. /package/dist/{chunk-OEUT34N5.js.map → chunk-C4OZ4F67.js.map} +0 -0
  88. /package/dist/{chunk-WWOKQDED.js.map → chunk-CDPPWCGO.js.map} +0 -0
  89. /package/dist/{chunk-LBXRT4MQ.js.map → chunk-CGPKV4KH.js.map} +0 -0
  90. /package/dist/{chunk-4OIS5PWM.js.map → chunk-CX3YZ4S6.js.map} +0 -0
  91. /package/dist/{chunk-B46ICMSM.js.map → chunk-D4JC6AOD.js.map} +0 -0
  92. /package/dist/{chunk-TH65DTOP.js.map → chunk-D6LZY3W7.js.map} +0 -0
  93. /package/dist/{chunk-J2K77DMF.js.map → chunk-DNXEQKBR.js.map} +0 -0
  94. /package/dist/{chunk-7YJK2UR5.js.map → chunk-FE2VYSSA.js.map} +0 -0
  95. /package/dist/{chunk-7NTGBUHA.js.map → chunk-FRBFTFSQ.js.map} +0 -0
  96. /package/dist/{chunk-LHGMZ4OP.js.map → chunk-G4UBTYE3.js.map} +0 -0
  97. /package/dist/{chunk-SBW2C6Z2.js.map → chunk-GCQLEDCY.js.map} +0 -0
  98. /package/dist/{chunk-THIQQNVR.js.map → chunk-GDUB2OE4.js.map} +0 -0
  99. /package/dist/{chunk-F27XFOVY.js.map → chunk-J2QYPARH.js.map} +0 -0
  100. /package/dist/{chunk-QGB3KDHH.js.map → chunk-JRDNNCM7.js.map} +0 -0
  101. /package/dist/{chunk-IS2ZE5WQ.js.map → chunk-LNPSEZUE.js.map} +0 -0
  102. /package/dist/{chunk-VONADK6G.js.map → chunk-METD44P2.js.map} +0 -0
  103. /package/dist/{chunk-S242UP7R.js.map → chunk-NBSI5ICR.js.map} +0 -0
  104. /package/dist/{chunk-2C4W3OMK.js.map → chunk-O4QDBQI6.js.map} +0 -0
  105. /package/dist/{chunk-M4XCGGKF.js.map → chunk-OM4JSIPB.js.map} +0 -0
  106. /package/dist/{chunk-N4D2L3PL.js.map → chunk-SARPPCY5.js.map} +0 -0
  107. /package/dist/{chunk-GCWFVDAM.js.map → chunk-SSIS5P24.js.map} +0 -0
  108. /package/dist/{chunk-PFJ5KNLC.js.map → chunk-U5TT4C5O.js.map} +0 -0
  109. /package/dist/{chunk-6ONZRC4U.js.map → chunk-UMESP2HX.js.map} +0 -0
  110. /package/dist/{chunk-HBIWYCXN.js.map → chunk-W3EXUWFG.js.map} +0 -0
  111. /package/dist/{chunk-JEVYS4AL.js.map → chunk-WKKSNJV3.js.map} +0 -0
  112. /package/dist/{chunk-F65I2L2L.js.map → chunk-YLQNJAJP.js.map} +0 -0
  113. /package/dist/{chunk-NG2NUBBL.js.map → chunk-ZEDLXDDY.js.map} +0 -0
  114. /package/dist/{chunk-2UEX46D3.js.map → chunk-ZTOTKIAO.js.map} +0 -0
  115. /package/dist/{cli-circuit-breaker-M2Y6ZZIC.js.map → cli-circuit-breaker-FVO43RVL.js.map} +0 -0
  116. /package/dist/{composite-router-MGU7G56I.js.map → composite-router-SJVN7OB4.js.map} +0 -0
  117. /package/dist/{consensus-vote-D2FHUVUO.js.map → consensus-vote-54G3SYCP.js.map} +0 -0
  118. /package/dist/{context-retriever-ORVEWRFT.js.map → context-retriever-SONR6BIO.js.map} +0 -0
  119. /package/dist/{doctor-deep-XZECSUG3.js.map → doctor-deep-KRSLLEPY.js.map} +0 -0
  120. /package/dist/{doctor-gateway-report-ALA566PD.js.map → doctor-gateway-report-N4H4LV2Q.js.map} +0 -0
  121. /package/dist/{doctor-live-ARWKLO3E.js.map → doctor-live-XPJKPSRM.js.map} +0 -0
  122. /package/dist/{expert-bridge-GXGC4UTR.js.map → expert-bridge-R4AM2VPK.js.map} +0 -0
  123. /package/dist/{factory-F25AAIUW.js.map → factory-G7SSRQET.js.map} +0 -0
  124. /package/dist/{factory-TLEAIKK4.js.map → factory-KHLGIPPZ.js.map} +0 -0
  125. /package/dist/{improvement-review-YBTHBX5A.js.map → improvement-review-BHKZ5JUF.js.map} +0 -0
  126. /package/dist/{init-opencode-ULVYFRTO.js.map → init-opencode-GVENWYH4.js.map} +0 -0
  127. /package/dist/{issue-triage-B7EB4ZUV.js.map → issue-triage-CS4WXPIE.js.map} +0 -0
  128. /package/dist/{openai-compat-adapter-BBTGGIDV.js.map → openai-compat-adapter-CUETEQEQ.js.map} +0 -0
  129. /package/dist/{pr-reviewer-helpers-MABA52SF.js.map → pr-reviewer-helpers-FGON5RFG.js.map} +0 -0
  130. /package/dist/{registry-command-LNDQQAWT.js.map → registry-command-CARW7JBG.js.map} +0 -0
  131. /package/dist/{repo-security-plan-J4VIB2CF.js.map → repo-security-plan-4KAW7ELW.js.map} +0 -0
  132. /package/dist/{research-helpers-synthesize-4WBDTJ4W.js.map → research-helpers-synthesize-CYO2YUAE.js.map} +0 -0
  133. /package/dist/{routing-memory-4J5WAAHZ.js.map → routing-memory-SFXZODKG.js.map} +0 -0
  134. /package/dist/{session-memory-VTNOKICB.js.map → session-memory-5DAEGAX5.js.map} +0 -0
  135. /package/dist/{setup-config-24S7QDLL.js.map → setup-config-J6YHOKO3.js.map} +0 -0
  136. /package/dist/{setup-custom-api-TMRULW5V.js.map → setup-custom-api-4XKOPRRP.js.map} +0 -0
  137. /package/dist/{setup-data-dir-O2SBWD7J.js.map → setup-data-dir-62R3ZQI4.js.map} +0 -0
  138. /package/dist/{tool-memory-Y4KTQ6JL.js.map → tool-memory-YBFEA2W5.js.map} +0 -0
  139. /package/dist/{unified-registry-MFXBCJZQ.js.map → unified-registry-S7L5SYG2.js.map} +0 -0
  140. /package/dist/{weather-report-ZRHGDCZD.js.map → weather-report-MVSIUA23.js.map} +0 -0
@@ -9,9 +9,9 @@ import {
9
9
  getBuiltInAstRulesPath,
10
10
  loadRules,
11
11
  runAstQaRules
12
- } from "./chunk-WWOKQDED.js";
12
+ } from "./chunk-CDPPWCGO.js";
13
13
  import "./chunk-XEPZSDN5.js";
14
- import "./chunk-XKRHWU5P.js";
14
+ import "./chunk-RIF7TUYH.js";
15
15
  import "./chunk-UE7A2XHM.js";
16
16
  import "./chunk-LWOX65CP.js";
17
17
  import "./chunk-PX6F3LHL.js";
@@ -27,4 +27,4 @@ export {
27
27
  loadRules,
28
28
  runAstQaRules
29
29
  };
30
- //# sourceMappingURL=ast-rule-runner-IIUVSV4U.js.map
30
+ //# sourceMappingURL=ast-rule-runner-ZO3T66KP.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-OITVVSWO.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-XKRHWU5P.js";
6
+ } from "./chunk-RIF7TUYH.js";
7
7
  import "./chunk-UE7A2XHM.js";
8
8
  import "./chunk-LWOX65CP.js";
9
9
  import "./chunk-PX6F3LHL.js";
@@ -56,4 +56,4 @@ async function generateMcpConfig(options) {
56
56
  export {
57
57
  generateMcpConfig
58
58
  };
59
- //# sourceMappingURL=child-mcp-config-SDWFHROT.js.map
59
+ //# sourceMappingURL=child-mcp-config-M4MRFMP3.js.map
@@ -1,45 +1,12 @@
1
+ import {
2
+ redactCredentialShapes
3
+ } from "./chunk-RIF7TUYH.js";
4
+
1
5
  // src/security/output-sanitizer.ts
2
6
  var REDACTED_KEY_PLACEHOLDER = "[REDACTED_KEY]";
3
- var KEY_PATTERNS = [
4
- // Anthropic: sk-ant-api03-... (at least 20 chars after prefix)
5
- /sk-ant-[A-Za-z0-9_-]{20,}/g,
6
- // OpenAI project: sk-proj-... (at least 20 chars after prefix)
7
- /sk-proj-[A-Za-z0-9_-]{20,}/g,
8
- // Generic OpenAI: sk-... (at least 20 chars after prefix)
9
- /sk-[A-Za-z0-9_-]{20,}/g,
10
- // Public keys: pk-...
11
- /pk-[A-Za-z0-9_-]{20,}/g,
12
- // AWS access key ID
13
- /\bAKIA[A-Z0-9]{16}\b/g,
14
- // Google AI / Gemini: AIzaSy... (at least 30 chars total)
15
- /AIzaSy[A-Za-z0-9_-]{24,}/g,
16
- // GitHub PAT: ghp_...
17
- /ghp_[A-Za-z0-9]{20,}/g,
18
- // GitHub OAuth: gho_...
19
- /gho_[A-Za-z0-9]{20,}/g,
20
- // GitHub user-to-server: ghu_...
21
- /ghu_[A-Za-z0-9]{20,}/g,
22
- // GitHub server-to-server (app installation): ghs_...
23
- /ghs_[A-Za-z0-9]{20,}/g,
24
- // GitHub fine-grained PAT: github_pat_...
25
- /github_pat_[A-Za-z0-9_]{22,}/g,
26
- // GitLab PAT: glpat-...
27
- /glpat-[A-Za-z0-9_-]{10,}/g,
28
- // npm token: npm_...
29
- /npm_[A-Za-z0-9]{20,}/g,
30
- // PyPI token: pypi-...
31
- /pypi-[A-Za-z0-9_-]{20,}/g
32
- ];
33
- var URL_USERINFO_PATTERN = /\b([a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/?#@:]{0,256}(?::[^\s/?#@]{0,256})?@/gi;
34
7
  function sanitizeOutput(text, placeholder = REDACTED_KEY_PLACEHOLDER) {
35
8
  if (text === "") return text;
36
- let result = text;
37
- for (const pattern of KEY_PATTERNS) {
38
- pattern.lastIndex = 0;
39
- result = result.replace(pattern, placeholder);
40
- }
41
- URL_USERINFO_PATTERN.lastIndex = 0;
42
- return result.replace(URL_USERINFO_PATTERN, `$1${placeholder}@`);
9
+ return redactCredentialShapes(text, placeholder);
43
10
  }
44
11
  function sanitizeErrorDetails(text, apiKey, placeholder = REDACTED_KEY_PLACEHOLDER) {
45
12
  if (text === "") return "";
@@ -87,4 +54,4 @@ export {
87
54
  sanitizeErrorDetails,
88
55
  sanitizeStringLeaves
89
56
  };
90
- //# sourceMappingURL=chunk-37GZJOQE.js.map
57
+ //# sourceMappingURL=chunk-22AF7TYV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/security/output-sanitizer.ts"],"sourcesContent":["/**\n * nexus-agents/security - Output Sanitizer\n *\n * Redacts API keys and tokens from CLI subprocess stdout/stderr\n * before the output is returned, logged, or traced.\n *\n * @module security/output-sanitizer\n * (Source: Issue #1597 — subprocess output scrubbing gap)\n */\n\nimport { redactCredentialShapes } from '../core/credential-patterns.js';\n\n/** Placeholder text that replaces redacted keys. */\nexport const REDACTED_KEY_PLACEHOLDER = '[REDACTED_KEY]';\n\n/**\n * Redacts known API key patterns from a string: the shared credential-shape\n * set (`core/credential-patterns`, #6753) and URL userinfo. Context rules\n * (Authorization headers, `password=`, query and JSON fields) are NOT applied\n * here — subprocess output is prose, where they misfire (`bearer\\s+` takes\n * \"the bearer of\"); they are the local\n * extension {@link sanitizeErrorDetails} adds for upstream error bodies.\n *\n * Designed to be called on subprocess stdout/stderr before the output\n * is returned to callers, written to logs, or included in trace data.\n *\n * @param text - Raw subprocess output\n * @param placeholder - Replacement placeholder (default: [REDACTED_KEY])\n * @returns The same text with API keys replaced by placeholder\n */\nexport function sanitizeOutput(\n text: string,\n placeholder: string = REDACTED_KEY_PLACEHOLDER\n): string {\n if (text === '') return text;\n\n return redactCredentialShapes(text, placeholder);\n}\n\n/**\n * Redacts credentials (API keys, authorization headers, Bearer tokens, URL credentials,\n * and sensitive JSON fields) from error messages and response bodies.\n *\n * Designed to be called on upstream API error representations before they are\n * attached to error envelopes, logged, or returned to callers.\n *\n * @param text - Raw error message or serialized error body\n * @param apiKey - Optional configured API key to redact by exact match\n * @returns The sanitized text with credentials redacted\n */\nexport function sanitizeErrorDetails(\n text: string,\n apiKey?: string,\n placeholder: string = REDACTED_KEY_PLACEHOLDER\n): string {\n if (text === '') return '';\n\n let result = text;\n if (apiKey !== undefined && apiKey.trim() !== '') {\n result = result.replaceAll(apiKey.trim(), placeholder);\n }\n\n // Redact known key patterns and URL credentials (user:pass@ / token@)\n result = sanitizeOutput(result, placeholder);\n\n // Redact Authorization headers: Bearer and Basic tokens\n result = result.replace(/(authorization:\\s*bearer\\s+)\\S+/gi, `$1${placeholder}`);\n result = result.replace(/(authorization:\\s*basic\\s+)\\S+/gi, `$1${placeholder}`);\n result = result.replace(/(bearer\\s+)[A-Za-z0-9._~+/-]+=*/gi, `$1${placeholder}`);\n\n // Redact plain text assignments like password=... or secret: ...\n result = result.replace(/(\\b(?:password|passwd|secret)\\s*[=:]\\s*)\\S{4,}/gi, `$1${placeholder}`);\n\n // Redact sensitive query parameters in URLs or logs (?api_key=..., &token=..., &prompt=...)\n result = result.replace(\n /([?&](?:api[_-]?key|token|access[_-]?token|secret|password|prompt|system_prompt|user_prompt)=)[^&\\s]+/gi,\n `$1${placeholder}`\n );\n\n // Redact sensitive JSON keys: \"api_key\": \"...\", \"token\": \"...\", \"prompt\": \"...\", etc.\n result = result.replace(\n /\"(api[_-]?key|access[_-]?token|token|secret|password|prompt|system_prompt|user_prompt)\"\\s*:\\s*\"(?:[^\"\\\\]|\\\\.)*\"/gi,\n `\"$1\": \"${placeholder}\"`\n );\n\n return result;\n}\n\n/** `value.toJSON()` when it has one (a `Date`), as `JSON.stringify` would; else `value`. */\nfunction serializedForm(value: unknown): unknown {\n if (typeof value !== 'object' || value === null) return value;\n const toJSON: unknown = (value as { toJSON?: unknown }).toJSON;\n return typeof toJSON === 'function' ? (toJSON as () => unknown).call(value) : value;\n}\n\n/**\n * `value` with `sanitize` applied to every string LEAF. A `toJSON` object (a\n * `Date`) is taken in its serialized form first, as `JSON.stringify` would;\n * arrays are mapped and objects copied from their own enumerable entries.\n * Keys, numbers, booleans and `null` are untouched, so the structure a JSON\n * reader sees survives. Returns a copy — the input is not mutated.\n */\nexport function sanitizeStringLeaves(input: unknown, sanitize: (text: string) => string): unknown {\n const value = serializedForm(input);\n if (typeof value === 'string') return sanitize(value);\n if (Array.isArray(value)) return value.map((item) => sanitizeStringLeaves(item, sanitize));\n if (typeof value === 'object' && value !== null) {\n const copy: Record<string, unknown> = {};\n for (const [key, entry] of Object.entries(value)) {\n copy[key] = sanitizeStringLeaves(entry, sanitize);\n }\n return copy;\n }\n return value;\n}\n"],"mappings":";;;;;AAaO,IAAM,2BAA2B;AAiBjC,SAAS,eACd,MACA,cAAsB,0BACd;AACR,MAAI,SAAS,GAAI,QAAO;AAExB,SAAO,uBAAuB,MAAM,WAAW;AACjD;AAaO,SAAS,qBACd,MACA,QACA,cAAsB,0BACd;AACR,MAAI,SAAS,GAAI,QAAO;AAExB,MAAI,SAAS;AACb,MAAI,WAAW,UAAa,OAAO,KAAK,MAAM,IAAI;AAChD,aAAS,OAAO,WAAW,OAAO,KAAK,GAAG,WAAW;AAAA,EACvD;AAGA,WAAS,eAAe,QAAQ,WAAW;AAG3C,WAAS,OAAO,QAAQ,qCAAqC,KAAK,WAAW,EAAE;AAC/E,WAAS,OAAO,QAAQ,oCAAoC,KAAK,WAAW,EAAE;AAC9E,WAAS,OAAO,QAAQ,qCAAqC,KAAK,WAAW,EAAE;AAG/E,WAAS,OAAO,QAAQ,oDAAoD,KAAK,WAAW,EAAE;AAG9F,WAAS,OAAO;AAAA,IACd;AAAA,IACA,KAAK,WAAW;AAAA,EAClB;AAGA,WAAS,OAAO;AAAA,IACd;AAAA,IACA,UAAU,WAAW;AAAA,EACvB;AAEA,SAAO;AACT;AAGA,SAAS,eAAe,OAAyB;AAC/C,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,QAAM,SAAmB,MAA+B;AACxD,SAAO,OAAO,WAAW,aAAc,OAAyB,KAAK,KAAK,IAAI;AAChF;AASO,SAAS,qBAAqB,OAAgB,UAA6C;AAChG,QAAM,QAAQ,eAAe,KAAK;AAClC,MAAI,OAAO,UAAU,SAAU,QAAO,SAAS,KAAK;AACpD,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,CAAC,SAAS,qBAAqB,MAAM,QAAQ,CAAC;AACzF,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,UAAM,OAAgC,CAAC;AACvC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,WAAK,GAAG,IAAI,qBAAqB,OAAO,QAAQ;AAAA,IAClD;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;","names":[]}
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  assessReputation,
6
6
  sanitizeInput
7
- } from "./chunk-F65I2L2L.js";
7
+ } from "./chunk-YLQNJAJP.js";
8
8
  import {
9
9
  allOf
10
10
  } from "./chunk-EZNIYU5T.js";
@@ -13,7 +13,7 @@ import {
13
13
  err,
14
14
  getTimeProvider,
15
15
  ok
16
- } from "./chunk-XKRHWU5P.js";
16
+ } from "./chunk-RIF7TUYH.js";
17
17
 
18
18
  // src/dogfooding/pr-reviewer-helpers.ts
19
19
  import { randomUUID } from "node:crypto";
@@ -477,4 +477,4 @@ export {
477
477
  createFailedReview,
478
478
  reviewPostingBlock
479
479
  };
480
- //# sourceMappingURL=chunk-Q7V4T5VC.js.map
480
+ //# sourceMappingURL=chunk-4QWRKVJS.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRandomProvider,
3
3
  getTimeProvider
4
- } from "./chunk-XKRHWU5P.js";
4
+ } from "./chunk-RIF7TUYH.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-KKVVD6KC.js.map
27
+ //# sourceMappingURL=chunk-5O4KT2WO.js.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-SX5DB6UR.js";
6
6
  import {
7
7
  SessionMemory
8
- } from "./chunk-F27XFOVY.js";
8
+ } from "./chunk-J2QYPARH.js";
9
9
  import {
10
10
  TRUST_TIER_NUMERIC,
11
11
  TrustTierSchema
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-MUJCGBZW.js";
20
20
  import {
21
21
  generateId
22
- } from "./chunk-KKVVD6KC.js";
22
+ } from "./chunk-5O4KT2WO.js";
23
23
  import {
24
24
  ErrorCode,
25
25
  NexusError,
@@ -33,7 +33,7 @@ import {
33
33
  ok,
34
34
  openSqliteDatabase,
35
35
  setSharedMobiMemDbPathResolver
36
- } from "./chunk-XKRHWU5P.js";
36
+ } from "./chunk-RIF7TUYH.js";
37
37
  import {
38
38
  nexusDataPath
39
39
  } from "./chunk-LWOX65CP.js";
@@ -5858,4 +5858,4 @@ export {
5858
5858
  shutdownToolMemory,
5859
5859
  ToolMemoryManager
5860
5860
  };
5861
- //# sourceMappingURL=chunk-ENIRQJV6.js.map
5861
+ //# sourceMappingURL=chunk-BE6L6MIE.js.map
@@ -7,16 +7,16 @@ import {
7
7
  readGatewayTransport,
8
8
  requireApiKey,
9
9
  validateApiKeyPresence
10
- } from "./chunk-M4XCGGKF.js";
10
+ } from "./chunk-OM4JSIPB.js";
11
11
  import {
12
12
  assertCustomApiHostResolvesPublic,
13
13
  hostnameOf,
14
14
  redactGatewaySecrets
15
- } from "./chunk-J2K77DMF.js";
15
+ } from "./chunk-DNXEQKBR.js";
16
16
  import {
17
17
  REDACTED_KEY_PLACEHOLDER,
18
18
  sanitizeErrorDetails
19
- } from "./chunk-37GZJOQE.js";
19
+ } from "./chunk-22AF7TYV.js";
20
20
  import {
21
21
  CUSTOM_API_ALLOW_PRIVATE_ENV,
22
22
  ConfigError,
@@ -41,7 +41,7 @@ import {
41
41
  readModelAllowlist,
42
42
  recordUsageEvent,
43
43
  refineGatewayCatalog
44
- } from "./chunk-XKRHWU5P.js";
44
+ } from "./chunk-RIF7TUYH.js";
45
45
 
46
46
  // src/adapters/openai-compat-adapter.ts
47
47
  import OpenAI2 from "openai";
@@ -1048,4 +1048,4 @@ export {
1048
1048
  createOpenAICompatAdapter,
1049
1049
  buildOpenAICompatAdapters
1050
1050
  };
1051
- //# sourceMappingURL=chunk-ZBF7CSLQ.js.map
1051
+ //# sourceMappingURL=chunk-BJJOZV7O.js.map
@@ -4,13 +4,13 @@ import {
4
4
  createOpenAICompatAdapter,
5
5
  discoverGatewayCatalog,
6
6
  readOpenAICompatEnv
7
- } from "./chunk-ZBF7CSLQ.js";
7
+ } from "./chunk-BJJOZV7O.js";
8
8
  import {
9
9
  gatewayProxyUrl
10
- } from "./chunk-M4XCGGKF.js";
10
+ } from "./chunk-OM4JSIPB.js";
11
11
  import {
12
12
  redactGatewaySecrets
13
- } from "./chunk-J2K77DMF.js";
13
+ } from "./chunk-DNXEQKBR.js";
14
14
  import {
15
15
  DEFAULT_OPENAI_COMPAT_ENDPOINT,
16
16
  GATEWAY_COST_ENV,
@@ -28,7 +28,7 @@ import {
28
28
  isCliDisabled,
29
29
  symbols,
30
30
  writeLine
31
- } from "./chunk-XKRHWU5P.js";
31
+ } from "./chunk-RIF7TUYH.js";
32
32
 
33
33
  // src/cli/doctor-gateway-slots.ts
34
34
  var FAMILY_SLOTS = [
@@ -371,4 +371,4 @@ export {
371
371
  formatGatewayReport,
372
372
  formatGatewaySlotWarnings
373
373
  };
374
- //# sourceMappingURL=chunk-OEUT34N5.js.map
374
+ //# sourceMappingURL=chunk-C4OZ4F67.js.map
@@ -6,7 +6,7 @@ import {
6
6
  ValidationError,
7
7
  createLogger,
8
8
  formatZodError
9
- } from "./chunk-XKRHWU5P.js";
9
+ } from "./chunk-RIF7TUYH.js";
10
10
 
11
11
  // src/security/ast-rule-runner.ts
12
12
  import { existsSync } from "node:fs";
@@ -243,4 +243,4 @@ export {
243
243
  collectAstQaFindings,
244
244
  runAstQaRules
245
245
  };
246
- //# sourceMappingURL=chunk-WWOKQDED.js.map
246
+ //# sourceMappingURL=chunk-CDPPWCGO.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ensureGatewayDiscovered,
3
3
  gatewayDiscoveryGeneration
4
- } from "./chunk-2C4W3OMK.js";
4
+ } from "./chunk-O4QDBQI6.js";
5
5
  import {
6
6
  createAutoAdapter
7
- } from "./chunk-KZIY5ZVF.js";
7
+ } from "./chunk-WKNSD7YL.js";
8
8
  import {
9
9
  getDefaultCliCircuitBreakerRegistry,
10
10
  isCallerCancelled,
11
11
  mapModelErrorToCategory
12
- } from "./chunk-2UEX46D3.js";
12
+ } from "./chunk-ZTOTKIAO.js";
13
13
  import {
14
14
  CircularBuffer,
15
15
  ConfigError,
@@ -34,7 +34,7 @@ import {
34
34
  resolveModelIdentitySync,
35
35
  toRateLimitError,
36
36
  warnIfGatewayCostUndeclared
37
- } from "./chunk-XKRHWU5P.js";
37
+ } from "./chunk-RIF7TUYH.js";
38
38
 
39
39
  // src/config/model-equivalence.ts
40
40
  var VARIANT_QUIRKS = /* @__PURE__ */ new Set(["small", "image"]);
@@ -1076,4 +1076,4 @@ export {
1076
1076
  getGlobalRegistry,
1077
1077
  resetGlobalRegistry
1078
1078
  };
1079
- //# sourceMappingURL=chunk-LBXRT4MQ.js.map
1079
+ //# sourceMappingURL=chunk-CGPKV4KH.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ensureGatewayDiscovered,
3
3
  gatewayDiscoveryGeneration
4
- } from "./chunk-2C4W3OMK.js";
4
+ } from "./chunk-O4QDBQI6.js";
5
5
  import {
6
6
  resolveCliSlot
7
- } from "./chunk-7YJK2UR5.js";
7
+ } from "./chunk-FE2VYSSA.js";
8
8
  import {
9
9
  createLogger,
10
10
  getTimeProvider,
11
11
  isRateLimitText
12
- } from "./chunk-XKRHWU5P.js";
12
+ } from "./chunk-RIF7TUYH.js";
13
13
 
14
14
  // src/pipeline/expert-bridge.ts
15
15
  function resolveCliFromModelString(model) {
@@ -34,7 +34,7 @@ async function getMcpConfigPath() {
34
34
  if (cachedMcpConfigPath !== null) return cachedMcpConfigPath;
35
35
  mcpConfigInitPromise ??= (async () => {
36
36
  try {
37
- const { generateMcpConfig } = await import("./child-mcp-config-SDWFHROT.js");
37
+ const { generateMcpConfig } = await import("./child-mcp-config-M4MRFMP3.js");
38
38
  const config = await generateMcpConfig();
39
39
  cachedMcpConfigPath = config.configPath;
40
40
  cachedMcpConfigCleanup = config.cleanup;
@@ -122,8 +122,8 @@ async function getRouter() {
122
122
  }
123
123
  if (cachedRouter !== null) return cachedRouter;
124
124
  routerInitPromise ??= (async () => {
125
- const { createAllAdapters } = await import("./factory-F25AAIUW.js");
126
- const { createCompositeRouter } = await import("./composite-router-MGU7G56I.js");
125
+ const { createAllAdapters } = await import("./factory-KHLGIPPZ.js");
126
+ const { createCompositeRouter } = await import("./composite-router-SJVN7OB4.js");
127
127
  const adapters = createAllAdapters();
128
128
  const superseded = generation !== routerGeneration;
129
129
  if (adapters.size === 0) {
@@ -134,7 +134,7 @@ async function getRouter() {
134
134
  if (superseded) return router;
135
135
  cachedRouter = router;
136
136
  try {
137
- const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-M2Y6ZZIC.js");
137
+ const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-FVO43RVL.js");
138
138
  cachedCircuitBreaker = createCliCircuitBreakerIntegration([...adapters.values()]);
139
139
  } catch (error) {
140
140
  const msg = error instanceof Error ? error.message : String(error);
@@ -267,4 +267,4 @@ export {
267
267
  tokenSplitFromUsage,
268
268
  executeExpert
269
269
  };
270
- //# sourceMappingURL=chunk-4OIS5PWM.js.map
270
+ //# sourceMappingURL=chunk-CX3YZ4S6.js.map
@@ -6,13 +6,13 @@ import {
6
6
  createGraphAuditBridge,
7
7
  emitPipelinePolicyEvent,
8
8
  readActionRefusal
9
- } from "./chunk-SBW2C6Z2.js";
9
+ } from "./chunk-GCQLEDCY.js";
10
10
  import {
11
11
  withPrerequisite
12
- } from "./chunk-GCWFVDAM.js";
12
+ } from "./chunk-SSIS5P24.js";
13
13
  import {
14
14
  generateSecurityPlan
15
- } from "./chunk-PFJ5KNLC.js";
15
+ } from "./chunk-U5TT4C5O.js";
16
16
  import {
17
17
  analyzeGitHubRepo
18
18
  } from "./chunk-4GDMHCKX.js";
@@ -32,14 +32,14 @@ import {
32
32
  } from "./chunk-WDAND5YU.js";
33
33
  import {
34
34
  sanitizeInput
35
- } from "./chunk-F65I2L2L.js";
35
+ } from "./chunk-YLQNJAJP.js";
36
36
  import {
37
37
  DEFAULT_TASK_TTL_MS,
38
38
  clampTaskTtl
39
- } from "./chunk-IS2ZE5WQ.js";
39
+ } from "./chunk-LNPSEZUE.js";
40
40
  import {
41
41
  executeExpert
42
- } from "./chunk-4OIS5PWM.js";
42
+ } from "./chunk-CX3YZ4S6.js";
43
43
  import {
44
44
  DEPRECATED_MODE_ALIAS_INPUT,
45
45
  JobStatusSchema,
@@ -92,7 +92,7 @@ import {
92
92
  withFileLock,
93
93
  withWarnings,
94
94
  writeJobCancelled
95
- } from "./chunk-WSE6K4FV.js";
95
+ } from "./chunk-TAGJV5NH.js";
96
96
  import {
97
97
  NOOP_NOTIFIER,
98
98
  RateLimiter,
@@ -120,31 +120,31 @@ import {
120
120
  toolSuccessStructured,
121
121
  withProgressHeartbeat,
122
122
  wrapToolWithTimeout
123
- } from "./chunk-JEVYS4AL.js";
123
+ } from "./chunk-WKKSNJV3.js";
124
124
  import {
125
125
  VERSION
126
- } from "./chunk-HBIWYCXN.js";
126
+ } from "./chunk-W3EXUWFG.js";
127
127
  import {
128
128
  allOf,
129
129
  anyOf
130
130
  } from "./chunk-EZNIYU5T.js";
131
131
  import {
132
132
  isGatewayModelAdapter
133
- } from "./chunk-ZBF7CSLQ.js";
133
+ } from "./chunk-BJJOZV7O.js";
134
134
  import {
135
135
  normalizeTopicToCanonical,
136
136
  synthesizeResearch
137
- } from "./chunk-S242UP7R.js";
137
+ } from "./chunk-NBSI5ICR.js";
138
138
  import {
139
139
  EventTopics,
140
140
  UNRESOLVED_MODEL_ID,
141
141
  createEvent,
142
142
  getGlobalEventBus,
143
143
  getGlobalRegistry
144
- } from "./chunk-LBXRT4MQ.js";
144
+ } from "./chunk-CGPKV4KH.js";
145
145
  import {
146
146
  ensureGatewayDiscovered
147
- } from "./chunk-2C4W3OMK.js";
147
+ } from "./chunk-O4QDBQI6.js";
148
148
  import {
149
149
  IDENTIFIER_RE,
150
150
  LANG_VALUES,
@@ -177,18 +177,18 @@ import {
177
177
  parseRegistry,
178
178
  sourceExistsInRegistry,
179
179
  summarizeContextForPrompt
180
- } from "./chunk-QGB3KDHH.js";
180
+ } from "./chunk-JRDNNCM7.js";
181
181
  import {
182
182
  getTokenEnvVars,
183
183
  resolveToken
184
- } from "./chunk-VONADK6G.js";
184
+ } from "./chunk-METD44P2.js";
185
185
  import {
186
186
  REGISTRY_PATH,
187
187
  getProjectRoot,
188
188
  loadPapersRegistry,
189
189
  loadTechniquesRegistry,
190
190
  resolveRegistryRoot
191
- } from "./chunk-TH65DTOP.js";
191
+ } from "./chunk-D6LZY3W7.js";
192
192
  import {
193
193
  resolveInsideRoot
194
194
  } from "./chunk-XEPZSDN5.js";
@@ -202,14 +202,14 @@ import {
202
202
  leastTrustedTier,
203
203
  memoryTrustTierTag,
204
204
  resolveContentTrustTier
205
- } from "./chunk-ENIRQJV6.js";
205
+ } from "./chunk-BE6L6MIE.js";
206
206
  import {
207
207
  STOPWORDS,
208
208
  truncateWithInfo
209
209
  } from "./chunk-SX5DB6UR.js";
210
210
  import {
211
211
  createSessionMemory
212
- } from "./chunk-F27XFOVY.js";
212
+ } from "./chunk-J2QYPARH.js";
213
213
  import {
214
214
  TrustTierSchema
215
215
  } from "./chunk-CJKHQ6MV.js";
@@ -233,10 +233,10 @@ import {
233
233
  terminateProcessTree,
234
234
  trackProcessTree,
235
235
  withTimeout
236
- } from "./chunk-KZIY5ZVF.js";
236
+ } from "./chunk-WKNSD7YL.js";
237
237
  import {
238
238
  DEFAULTS
239
- } from "./chunk-NG2NUBBL.js";
239
+ } from "./chunk-ZEDLXDDY.js";
240
240
  import {
241
241
  DEFAULT_EXECUTION_MODE,
242
242
  DEFAULT_TOOL_RATE_LIMITS,
@@ -248,28 +248,28 @@ import {
248
248
  parseGatewayExtraHeaders,
249
249
  requireApiKey,
250
250
  validateApiKeyPresence
251
- } from "./chunk-M4XCGGKF.js";
251
+ } from "./chunk-OM4JSIPB.js";
252
252
  import {
253
253
  resolveGatewayEnv
254
- } from "./chunk-J2K77DMF.js";
254
+ } from "./chunk-DNXEQKBR.js";
255
255
  import {
256
256
  sanitizeErrorDetails
257
- } from "./chunk-37GZJOQE.js";
257
+ } from "./chunk-22AF7TYV.js";
258
258
  import {
259
259
  getAvailabilityCache,
260
260
  getCliForModelId,
261
261
  resolveFallback
262
- } from "./chunk-7YJK2UR5.js";
262
+ } from "./chunk-FE2VYSSA.js";
263
263
  import {
264
264
  generateHyphenId,
265
265
  generateUUID
266
- } from "./chunk-KKVVD6KC.js";
266
+ } from "./chunk-5O4KT2WO.js";
267
267
  import {
268
268
  AbortError,
269
269
  isTimeoutAbortReason,
270
270
  raceAbort,
271
271
  throwIfAborted
272
- } from "./chunk-2UEX46D3.js";
272
+ } from "./chunk-ZTOTKIAO.js";
273
273
  import {
274
274
  AGENT_ROUTER_TIMEOUTS,
275
275
  API_TIMEOUTS,
@@ -390,7 +390,7 @@ import {
390
390
  selectStrategyByManifest,
391
391
  toExpertTaskAnalysisResult,
392
392
  withStep
393
- } from "./chunk-XKRHWU5P.js";
393
+ } from "./chunk-RIF7TUYH.js";
394
394
  import {
395
395
  ensureLearningDir,
396
396
  getMetaOutcomesFile,
@@ -30391,7 +30391,7 @@ function execIdFields(executionId) {
30391
30391
  async function populateUnifiedContextOnState(state, options) {
30392
30392
  const taskCandidate = state["task"];
30393
30393
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
30394
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-ORVEWRFT.js");
30394
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-SONR6BIO.js");
30395
30395
  const category = inferTaskCategory2(taskCandidate);
30396
30396
  const executionId = options?.executionId;
30397
30397
  const execFields = execIdFields(executionId);
@@ -46561,7 +46561,7 @@ async function tryIssueTriage(task) {
46561
46561
  try {
46562
46562
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
46563
46563
  if (issueMatch === null) return null;
46564
- const { createIssueTriage } = await import("./issue-triage-B7EB4ZUV.js");
46564
+ const { createIssueTriage } = await import("./issue-triage-CS4WXPIE.js");
46565
46565
  const triage = createIssueTriage();
46566
46566
  const owner = issueMatch[1] ?? "";
46567
46567
  const num2 = issueMatch[2] ?? "";
@@ -46589,7 +46589,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
46589
46589
  ]);
46590
46590
  async function classifyWithLLM(task) {
46591
46591
  try {
46592
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-GXGC4UTR.js");
46592
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-R4AM2VPK.js");
46593
46593
  const prompt = [
46594
46594
  "Classify this task into exactly one pipeline template.",
46595
46595
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -46963,7 +46963,7 @@ function buildVotingInput(plan, config) {
46963
46963
  }
46964
46964
  async function executeSingleVote(plan, config, log) {
46965
46965
  try {
46966
- const { executeVoting } = await import("./consensus-vote-D2FHUVUO.js");
46966
+ const { executeVoting } = await import("./consensus-vote-54G3SYCP.js");
46967
46967
  const input = buildVotingInput(plan, config);
46968
46968
  const result = await executeVoting(input, log);
46969
46969
  return parseVotingResult(result);
@@ -47761,7 +47761,7 @@ var memoryInitPromise = null;
47761
47761
  async function initPipelineMemory() {
47762
47762
  if (cachedMemory !== null) return cachedMemory;
47763
47763
  try {
47764
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-VTNOKICB.js");
47764
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-5DAEGAX5.js");
47765
47765
  const { getLearningDir } = await import("./learning-persistence-FB4U5AX2.js");
47766
47766
  const mem = createSessionMemory2(getLearningDir());
47767
47767
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -47823,7 +47823,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
47823
47823
  callRecord(routingMemoryCache);
47824
47824
  return;
47825
47825
  }
47826
- routingMemoryInitPromise ??= import("./routing-memory-4J5WAAHZ.js").then(({ createRoutingMemory }) => {
47826
+ routingMemoryInitPromise ??= import("./routing-memory-SFXZODKG.js").then(({ createRoutingMemory }) => {
47827
47827
  routingMemoryCache ??= createRoutingMemory();
47828
47828
  return routingMemoryCache;
47829
47829
  }).catch((error) => {
@@ -48010,7 +48010,7 @@ function createVoteStage({ config, startStage }) {
48010
48010
  const strategy = config.votingStrategy ?? "higher_order";
48011
48011
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
48012
48012
  try {
48013
- const { executeVoting } = await import("./consensus-vote-D2FHUVUO.js");
48013
+ const { executeVoting } = await import("./consensus-vote-54G3SYCP.js");
48014
48014
  const votingResult = await executeVoting(
48015
48015
  {
48016
48016
  proposal: buildVoteProposal(plan, research),
@@ -48837,7 +48837,7 @@ ${text}` : "";
48837
48837
  }
48838
48838
  async function getWeatherContext() {
48839
48839
  try {
48840
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-ZRHGDCZD.js");
48840
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-MVSIUA23.js");
48841
48841
  const report = generateWeatherReport2({ includeAdaptive: true });
48842
48842
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
48843
48843
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -48855,7 +48855,7 @@ ${lines}
48855
48855
  }
48856
48856
  async function getMemoryContext(task) {
48857
48857
  try {
48858
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-VTNOKICB.js");
48858
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-5DAEGAX5.js");
48859
48859
  const { getLearningDir } = await import("./learning-persistence-FB4U5AX2.js");
48860
48860
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
48861
48861
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -49447,7 +49447,7 @@ async function searchCodebaseForTask(task) {
49447
49447
  }
49448
49448
  async function queryResearchRegistry(task) {
49449
49449
  try {
49450
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-4WBDTJ4W.js");
49450
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-CYO2YUAE.js");
49451
49451
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
49452
49452
  if (topic === void 0) return null;
49453
49453
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -49518,7 +49518,7 @@ function createScanStageWrapper() {
49518
49518
  try {
49519
49519
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
49520
49520
  if (slug !== void 0) {
49521
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-J4VIB2CF.js");
49521
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-4KAW7ELW.js");
49522
49522
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
49523
49523
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
49524
49524
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -53068,7 +53068,7 @@ var GitHubTaskTracker = class {
53068
53068
  cachedProvider = null;
53069
53069
  async getProvider() {
53070
53070
  if (this.cachedProvider !== null) return this.cachedProvider;
53071
- const { createScmProvider } = await import("./factory-TLEAIKK4.js");
53071
+ const { createScmProvider } = await import("./factory-G7SSRQET.js");
53072
53072
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
53073
53073
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
53074
53074
  this.cachedProvider = result.value;
@@ -54132,7 +54132,7 @@ async function probeSource(source, includeModelIds) {
54132
54132
  var GATEWAY_TRANSPORT = "gateway";
54133
54133
  var GATEWAY_API_ARM = "api:custom-openai";
54134
54134
  async function gatewaySource(apiArm) {
54135
- const { discoverModels, readOpenAICompatEnv } = await import("./openai-compat-adapter-BBTGGIDV.js");
54135
+ const { discoverModels, readOpenAICompatEnv } = await import("./openai-compat-adapter-CUETEQEQ.js");
54136
54136
  const config = readOpenAICompatEnv();
54137
54137
  if (config !== null) {
54138
54138
  return {
@@ -54151,7 +54151,7 @@ async function gatewaySource(apiArm) {
54151
54151
  }
54152
54152
  async function defaultSources(includeOpenRouter, adaptersFactory) {
54153
54153
  const adapters = new Map(
54154
- adaptersFactory !== void 0 ? adaptersFactory() : (await import("./factory-F25AAIUW.js")).createAllAdapters()
54154
+ adaptersFactory !== void 0 ? adaptersFactory() : (await import("./factory-KHLGIPPZ.js")).createAllAdapters()
54155
54155
  );
54156
54156
  const apiArm = adapters.get(GATEWAY_API_ARM);
54157
54157
  adapters.delete(GATEWAY_API_ARM);
@@ -57434,4 +57434,4 @@ export {
57434
57434
  startPipelineEventBridge,
57435
57435
  shutdownPipelineEventBridge
57436
57436
  };
57437
- //# sourceMappingURL=chunk-B46ICMSM.js.map
57437
+ //# sourceMappingURL=chunk-D4JC6AOD.js.map
@@ -8,7 +8,7 @@ import {
8
8
  err,
9
9
  getErrorMessage,
10
10
  ok
11
- } from "./chunk-XKRHWU5P.js";
11
+ } from "./chunk-RIF7TUYH.js";
12
12
  import {
13
13
  findRepoRoot,
14
14
  getActiveWorkspaceRoot,
@@ -213,4 +213,4 @@ export {
213
213
  loadPapersRegistry,
214
214
  savePapersRegistry
215
215
  };
216
- //# sourceMappingURL=chunk-TH65DTOP.js.map
216
+ //# sourceMappingURL=chunk-D6LZY3W7.js.map