nexus-agents 2.173.4 → 2.173.6

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 (124) hide show
  1. package/dist/{child-mcp-config-KD5FKDG7.js → child-mcp-config-CPBWB4TY.js} +2 -2
  2. package/dist/{chunk-V6ADQNN6.js → chunk-27JPMJAD.js} +5 -4
  3. package/dist/{chunk-V6ADQNN6.js.map → chunk-27JPMJAD.js.map} +1 -1
  4. package/dist/{chunk-MBTEWGZK.js → chunk-2TMWS6WT.js} +7 -7
  5. package/dist/{chunk-SUCOTX7I.js → chunk-5D4AXZCX.js} +4 -4
  6. package/dist/{chunk-6X26RTOA.js → chunk-6INAAUGD.js} +2 -2
  7. package/dist/{chunk-26PMOFR2.js → chunk-75MPLAEC.js} +2 -2
  8. package/dist/{chunk-G37IJILX.js → chunk-7N576XGX.js} +2 -2
  9. package/dist/{chunk-3DYABC5Y.js → chunk-AO5OIT2P.js} +4 -4
  10. package/dist/{chunk-XMG5D3LK.js → chunk-B3LK3YIF.js} +29 -11
  11. package/dist/{chunk-XMG5D3LK.js.map → chunk-B3LK3YIF.js.map} +1 -1
  12. package/dist/{chunk-N6UV7XFO.js → chunk-BQ3CWH5H.js} +3 -3
  13. package/dist/{chunk-YYCG236I.js → chunk-CMBIBZIY.js} +8 -8
  14. package/dist/{chunk-EL2O75ZS.js → chunk-E63P5GML.js} +2 -2
  15. package/dist/{chunk-O6VB54QJ.js → chunk-G66T2OIM.js} +2 -2
  16. package/dist/{chunk-4KURMOBY.js → chunk-GUKHGODJ.js} +2 -2
  17. package/dist/{chunk-HRTSIY4W.js → chunk-HT7IBYJL.js} +4 -4
  18. package/dist/{chunk-5WFHSWQG.js → chunk-I7HYMCVW.js} +5 -5
  19. package/dist/{chunk-HLCPLQFG.js → chunk-IPQW2QHU.js} +2 -2
  20. package/dist/{chunk-CGIT3MVV.js → chunk-K2D2IFR6.js} +5 -5
  21. package/dist/{chunk-XJ46NHDP.js → chunk-KU4HIPQ4.js} +5 -5
  22. package/dist/{chunk-3QY2YLJV.js → chunk-LZME2PGR.js} +3 -3
  23. package/dist/{chunk-5IDFZ2PC.js → chunk-N7LGY3C4.js} +2 -2
  24. package/dist/{chunk-R4ZINS62.js → chunk-NN6BBKJD.js} +91 -79
  25. package/dist/chunk-NN6BBKJD.js.map +1 -0
  26. package/dist/{chunk-LQHBSYNN.js → chunk-P52ISEJO.js} +4 -4
  27. package/dist/{chunk-FYYPW6EC.js → chunk-PCFVPWA5.js} +2 -2
  28. package/dist/{chunk-H245LNLT.js → chunk-PM35LR5P.js} +3 -3
  29. package/dist/{chunk-GKR7YE2E.js → chunk-QPG55YAU.js} +2 -2
  30. package/dist/{chunk-6OTA2VER.js → chunk-SORESQNO.js} +163 -8
  31. package/dist/chunk-SORESQNO.js.map +1 -0
  32. package/dist/{chunk-5LXKF34H.js → chunk-TRLXEYFT.js} +2 -2
  33. package/dist/{chunk-7FDHPEZ3.js → chunk-U2YQ2HG4.js} +2 -2
  34. package/dist/{chunk-M5VIIUM5.js → chunk-U3SXRK5O.js} +10 -10
  35. package/dist/{chunk-VK65G7MX.js → chunk-VIHP2LFY.js} +2 -2
  36. package/dist/{chunk-P6POKYSM.js → chunk-XDNDQ7M3.js} +2 -2
  37. package/dist/{chunk-NZKMPDZ4.js → chunk-YN7QDYG6.js} +3 -3
  38. package/dist/cli-circuit-breaker-RDVBTDIT.js +17 -0
  39. package/dist/cli.js +41 -42
  40. package/dist/cli.js.map +1 -1
  41. package/dist/{composite-router-XMSM4GXK.js → composite-router-YV3MIDYM.js} +2 -2
  42. package/dist/{consensus-vote-S7JBAHGL.js → consensus-vote-PBHH6JW6.js} +15 -15
  43. package/dist/{context-retriever-L2YJ6PYH.js → context-retriever-KTZ54F46.js} +8 -8
  44. package/dist/{doctor-deep-LMETROQX.js → doctor-deep-D2D3RPIR.js} +3 -3
  45. package/dist/{expert-bridge-Z6DC46Q3.js → expert-bridge-6SPKMPEG.js} +4 -4
  46. package/dist/{factory-LLFF3ZKV.js → factory-2UAMVT6O.js} +5 -5
  47. package/dist/{factory-UE63NFX6.js → factory-E2QXGLFH.js} +8 -8
  48. package/dist/{improvement-review-4ZE3NAST.js → improvement-review-BWWZDFOD.js} +5 -5
  49. package/dist/index.d.ts +15 -14
  50. package/dist/index.js +39 -40
  51. package/dist/index.js.map +1 -1
  52. package/dist/{init-opencode-7ZRU6CII.js → init-opencode-DJ42XZQZ.js} +5 -5
  53. package/dist/{issue-triage-OIKKI7AK.js → issue-triage-P3UA4CEX.js} +6 -6
  54. package/dist/model-registry.generated.json +1624 -1928
  55. package/dist/{pr-reviewer-helpers-5EAVCRYP.js → pr-reviewer-helpers-DCVX3GRQ.js} +4 -4
  56. package/dist/{registry-command-Q6K5EPGZ.js → registry-command-YXKTAFZX.js} +2 -2
  57. package/dist/{repo-security-plan-25AXO7FG.js → repo-security-plan-5EPAQMIO.js} +3 -3
  58. package/dist/{research-helpers-synthesize-F734REUK.js → research-helpers-synthesize-USLAWOD2.js} +4 -4
  59. package/dist/{routing-memory-5LU5WI5T.js → routing-memory-XGZ6T7GS.js} +2 -2
  60. package/dist/{session-memory-3FUIP2L6.js → session-memory-GZCB372F.js} +3 -3
  61. package/dist/{setup-command-EQGY5TZ5.js → setup-command-LOGCELQL.js} +13 -13
  62. package/dist/{setup-config-IHLHAX5G.js → setup-config-EPJD5N3U.js} +3 -3
  63. package/dist/{setup-custom-api-JM6Z2442.js → setup-custom-api-YXXKSX5F.js} +3 -3
  64. package/dist/{tool-memory-LPSFODBS.js → tool-memory-KADP6IQE.js} +5 -5
  65. package/dist/{unified-registry-7MDLPIIK.js → unified-registry-DZAIN5Q2.js} +9 -9
  66. package/dist/{weather-report-5HDPEOQ3.js → weather-report-MZMFDIDX.js} +2 -2
  67. package/package.json +1 -1
  68. package/dist/chunk-3Y5UUFZL.js +0 -155
  69. package/dist/chunk-3Y5UUFZL.js.map +0 -1
  70. package/dist/chunk-6OTA2VER.js.map +0 -1
  71. package/dist/chunk-R4ZINS62.js.map +0 -1
  72. package/dist/cli-circuit-breaker-C2DPF3IA.js +0 -14
  73. /package/dist/{child-mcp-config-KD5FKDG7.js.map → child-mcp-config-CPBWB4TY.js.map} +0 -0
  74. /package/dist/{chunk-MBTEWGZK.js.map → chunk-2TMWS6WT.js.map} +0 -0
  75. /package/dist/{chunk-SUCOTX7I.js.map → chunk-5D4AXZCX.js.map} +0 -0
  76. /package/dist/{chunk-6X26RTOA.js.map → chunk-6INAAUGD.js.map} +0 -0
  77. /package/dist/{chunk-26PMOFR2.js.map → chunk-75MPLAEC.js.map} +0 -0
  78. /package/dist/{chunk-G37IJILX.js.map → chunk-7N576XGX.js.map} +0 -0
  79. /package/dist/{chunk-3DYABC5Y.js.map → chunk-AO5OIT2P.js.map} +0 -0
  80. /package/dist/{chunk-N6UV7XFO.js.map → chunk-BQ3CWH5H.js.map} +0 -0
  81. /package/dist/{chunk-YYCG236I.js.map → chunk-CMBIBZIY.js.map} +0 -0
  82. /package/dist/{chunk-EL2O75ZS.js.map → chunk-E63P5GML.js.map} +0 -0
  83. /package/dist/{chunk-O6VB54QJ.js.map → chunk-G66T2OIM.js.map} +0 -0
  84. /package/dist/{chunk-4KURMOBY.js.map → chunk-GUKHGODJ.js.map} +0 -0
  85. /package/dist/{chunk-HRTSIY4W.js.map → chunk-HT7IBYJL.js.map} +0 -0
  86. /package/dist/{chunk-5WFHSWQG.js.map → chunk-I7HYMCVW.js.map} +0 -0
  87. /package/dist/{chunk-HLCPLQFG.js.map → chunk-IPQW2QHU.js.map} +0 -0
  88. /package/dist/{chunk-CGIT3MVV.js.map → chunk-K2D2IFR6.js.map} +0 -0
  89. /package/dist/{chunk-XJ46NHDP.js.map → chunk-KU4HIPQ4.js.map} +0 -0
  90. /package/dist/{chunk-3QY2YLJV.js.map → chunk-LZME2PGR.js.map} +0 -0
  91. /package/dist/{chunk-5IDFZ2PC.js.map → chunk-N7LGY3C4.js.map} +0 -0
  92. /package/dist/{chunk-LQHBSYNN.js.map → chunk-P52ISEJO.js.map} +0 -0
  93. /package/dist/{chunk-FYYPW6EC.js.map → chunk-PCFVPWA5.js.map} +0 -0
  94. /package/dist/{chunk-H245LNLT.js.map → chunk-PM35LR5P.js.map} +0 -0
  95. /package/dist/{chunk-GKR7YE2E.js.map → chunk-QPG55YAU.js.map} +0 -0
  96. /package/dist/{chunk-5LXKF34H.js.map → chunk-TRLXEYFT.js.map} +0 -0
  97. /package/dist/{chunk-7FDHPEZ3.js.map → chunk-U2YQ2HG4.js.map} +0 -0
  98. /package/dist/{chunk-M5VIIUM5.js.map → chunk-U3SXRK5O.js.map} +0 -0
  99. /package/dist/{chunk-VK65G7MX.js.map → chunk-VIHP2LFY.js.map} +0 -0
  100. /package/dist/{chunk-P6POKYSM.js.map → chunk-XDNDQ7M3.js.map} +0 -0
  101. /package/dist/{chunk-NZKMPDZ4.js.map → chunk-YN7QDYG6.js.map} +0 -0
  102. /package/dist/{cli-circuit-breaker-C2DPF3IA.js.map → cli-circuit-breaker-RDVBTDIT.js.map} +0 -0
  103. /package/dist/{composite-router-XMSM4GXK.js.map → composite-router-YV3MIDYM.js.map} +0 -0
  104. /package/dist/{consensus-vote-S7JBAHGL.js.map → consensus-vote-PBHH6JW6.js.map} +0 -0
  105. /package/dist/{context-retriever-L2YJ6PYH.js.map → context-retriever-KTZ54F46.js.map} +0 -0
  106. /package/dist/{doctor-deep-LMETROQX.js.map → doctor-deep-D2D3RPIR.js.map} +0 -0
  107. /package/dist/{expert-bridge-Z6DC46Q3.js.map → expert-bridge-6SPKMPEG.js.map} +0 -0
  108. /package/dist/{factory-LLFF3ZKV.js.map → factory-2UAMVT6O.js.map} +0 -0
  109. /package/dist/{factory-UE63NFX6.js.map → factory-E2QXGLFH.js.map} +0 -0
  110. /package/dist/{improvement-review-4ZE3NAST.js.map → improvement-review-BWWZDFOD.js.map} +0 -0
  111. /package/dist/{init-opencode-7ZRU6CII.js.map → init-opencode-DJ42XZQZ.js.map} +0 -0
  112. /package/dist/{issue-triage-OIKKI7AK.js.map → issue-triage-P3UA4CEX.js.map} +0 -0
  113. /package/dist/{pr-reviewer-helpers-5EAVCRYP.js.map → pr-reviewer-helpers-DCVX3GRQ.js.map} +0 -0
  114. /package/dist/{registry-command-Q6K5EPGZ.js.map → registry-command-YXKTAFZX.js.map} +0 -0
  115. /package/dist/{repo-security-plan-25AXO7FG.js.map → repo-security-plan-5EPAQMIO.js.map} +0 -0
  116. /package/dist/{research-helpers-synthesize-F734REUK.js.map → research-helpers-synthesize-USLAWOD2.js.map} +0 -0
  117. /package/dist/{routing-memory-5LU5WI5T.js.map → routing-memory-XGZ6T7GS.js.map} +0 -0
  118. /package/dist/{session-memory-3FUIP2L6.js.map → session-memory-GZCB372F.js.map} +0 -0
  119. /package/dist/{setup-command-EQGY5TZ5.js.map → setup-command-LOGCELQL.js.map} +0 -0
  120. /package/dist/{setup-config-IHLHAX5G.js.map → setup-config-EPJD5N3U.js.map} +0 -0
  121. /package/dist/{setup-custom-api-JM6Z2442.js.map → setup-custom-api-YXXKSX5F.js.map} +0 -0
  122. /package/dist/{tool-memory-LPSFODBS.js.map → tool-memory-KADP6IQE.js.map} +0 -0
  123. /package/dist/{unified-registry-7MDLPIIK.js.map → unified-registry-DZAIN5Q2.js.map} +0 -0
  124. /package/dist/{weather-report-5HDPEOQ3.js.map → weather-report-MZMFDIDX.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateSecurityPlan
3
- } from "./chunk-P6POKYSM.js";
3
+ } from "./chunk-XDNDQ7M3.js";
4
4
  import {
5
5
  analyzeGitHubRepo
6
6
  } from "./chunk-HFOQKCD2.js";
@@ -21,10 +21,10 @@ import {
21
21
  DEFAULT_TASK_TTL_MS,
22
22
  DEFAULT_TOOL_RATE_LIMITS,
23
23
  clampTaskTtl
24
- } from "./chunk-YYCG236I.js";
24
+ } from "./chunk-CMBIBZIY.js";
25
25
  import {
26
26
  executeExpert
27
- } from "./chunk-MBTEWGZK.js";
27
+ } from "./chunk-2TMWS6WT.js";
28
28
  import {
29
29
  JobStatusSchema,
30
30
  abortJob,
@@ -45,21 +45,21 @@ import {
45
45
  simulationDeniedResult,
46
46
  toJobSummary,
47
47
  writeJobCancelled
48
- } from "./chunk-M5VIIUM5.js";
48
+ } from "./chunk-U3SXRK5O.js";
49
49
  import {
50
50
  normalizeTopicToCanonical,
51
51
  synthesizeResearch
52
- } from "./chunk-N6UV7XFO.js";
52
+ } from "./chunk-BQ3CWH5H.js";
53
53
  import {
54
54
  IssueTriage
55
- } from "./chunk-XJ46NHDP.js";
55
+ } from "./chunk-KU4HIPQ4.js";
56
56
  import {
57
57
  resolveEnvMode,
58
58
  sanitizeInput
59
- } from "./chunk-26PMOFR2.js";
59
+ } from "./chunk-75MPLAEC.js";
60
60
  import {
61
61
  withPrerequisite
62
- } from "./chunk-H245LNLT.js";
62
+ } from "./chunk-PM35LR5P.js";
63
63
  import {
64
64
  NOOP_NOTIFIER,
65
65
  RateLimiter,
@@ -82,12 +82,18 @@ import {
82
82
  withAuditTrail,
83
83
  withProgressHeartbeat,
84
84
  wrapToolWithTimeout
85
- } from "./chunk-NZKMPDZ4.js";
85
+ } from "./chunk-YN7QDYG6.js";
86
86
  import {
87
87
  createAuditTrail,
88
88
  createGraphAuditBridge,
89
89
  emitPipelinePolicyEvent
90
- } from "./chunk-7FDHPEZ3.js";
90
+ } from "./chunk-U2YQ2HG4.js";
91
+ import {
92
+ EventTopics,
93
+ createEvent,
94
+ getGlobalEventBus,
95
+ getGlobalRegistry
96
+ } from "./chunk-HT7IBYJL.js";
91
97
  import {
92
98
  IDENTIFIER_RE,
93
99
  LANG_VALUES,
@@ -120,15 +126,15 @@ import {
120
126
  parseRegistry,
121
127
  sourceExistsInRegistry,
122
128
  summarizeContextForPrompt
123
- } from "./chunk-5WFHSWQG.js";
129
+ } from "./chunk-I7HYMCVW.js";
124
130
  import {
125
131
  getTokenEnvVars,
126
132
  resolveToken
127
- } from "./chunk-6X26RTOA.js";
133
+ } from "./chunk-6INAAUGD.js";
128
134
  import {
129
135
  loadPapersRegistry,
130
136
  loadTechniquesRegistry
131
- } from "./chunk-HLCPLQFG.js";
137
+ } from "./chunk-IPQW2QHU.js";
132
138
  import {
133
139
  resolveInsideRoot
134
140
  } from "./chunk-NUBSJGQZ.js";
@@ -137,14 +143,14 @@ import {
137
143
  MemoryImportance,
138
144
  calculateTextJaccardSimilarity,
139
145
  getToolMemory
140
- } from "./chunk-LQHBSYNN.js";
146
+ } from "./chunk-P52ISEJO.js";
141
147
  import {
142
148
  STOPWORDS,
143
149
  truncateWithInfo
144
150
  } from "./chunk-6T3EPABN.js";
145
151
  import {
146
152
  createSessionMemory
147
- } from "./chunk-GKR7YE2E.js";
153
+ } from "./chunk-QPG55YAU.js";
148
154
  import {
149
155
  BUILT_IN_EXPERTS,
150
156
  BuiltInExpertTypeSchema,
@@ -154,12 +160,6 @@ import {
154
160
  import {
155
161
  getMemoryRegistry
156
162
  } from "./chunk-KSQSWEFH.js";
157
- import {
158
- EventTopics,
159
- createEvent,
160
- getGlobalEventBus,
161
- getGlobalRegistry
162
- } from "./chunk-HRTSIY4W.js";
163
163
  import {
164
164
  CliDetectionCache,
165
165
  asRecord,
@@ -168,25 +168,25 @@ import {
168
168
  getAvailableClis,
169
169
  sleep,
170
170
  withTimeout
171
- } from "./chunk-XMG5D3LK.js";
171
+ } from "./chunk-B3LK3YIF.js";
172
172
  import {
173
173
  BaseAdapter,
174
174
  createStream,
175
175
  requireApiKey,
176
176
  validateApiKeyPresence
177
- } from "./chunk-FYYPW6EC.js";
177
+ } from "./chunk-PCFVPWA5.js";
178
178
  import {
179
179
  DEFAULTS
180
- } from "./chunk-VK65G7MX.js";
180
+ } from "./chunk-VIHP2LFY.js";
181
181
  import {
182
182
  getAvailabilityCache,
183
183
  getCliForModelId,
184
184
  resolveFallback
185
- } from "./chunk-5LXKF34H.js";
185
+ } from "./chunk-TRLXEYFT.js";
186
186
  import {
187
187
  generateHyphenId,
188
188
  generateUUID
189
- } from "./chunk-EL2O75ZS.js";
189
+ } from "./chunk-E63P5GML.js";
190
190
  import {
191
191
  AGENT_ROUTER_TIMEOUTS,
192
192
  API_TIMEOUTS,
@@ -283,7 +283,7 @@ import {
283
283
  selectStrategyByManifest,
284
284
  toExpertTaskAnalysisResult,
285
285
  withStep
286
- } from "./chunk-V6ADQNN6.js";
286
+ } from "./chunk-27JPMJAD.js";
287
287
  import {
288
288
  ensureLearningDir,
289
289
  getMetaOutcomesFile,
@@ -28344,7 +28344,7 @@ function execIdFields(executionId) {
28344
28344
  async function populateUnifiedContextOnState(state, options) {
28345
28345
  const taskCandidate = state["task"];
28346
28346
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
28347
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-L2YJ6PYH.js");
28347
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-KTZ54F46.js");
28348
28348
  const category = inferTaskCategory2(taskCandidate);
28349
28349
  const executionId = options?.executionId;
28350
28350
  const execFields = execIdFields(executionId);
@@ -43848,7 +43848,7 @@ async function tryIssueTriage(task) {
43848
43848
  try {
43849
43849
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
43850
43850
  if (issueMatch === null) return null;
43851
- const { createIssueTriage } = await import("./issue-triage-OIKKI7AK.js");
43851
+ const { createIssueTriage } = await import("./issue-triage-P3UA4CEX.js");
43852
43852
  const triage = createIssueTriage();
43853
43853
  const owner = issueMatch[1] ?? "";
43854
43854
  const num = issueMatch[2] ?? "";
@@ -43876,7 +43876,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
43876
43876
  ]);
43877
43877
  async function classifyWithLLM(task) {
43878
43878
  try {
43879
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-Z6DC46Q3.js");
43879
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-6SPKMPEG.js");
43880
43880
  const prompt = [
43881
43881
  "Classify this task into exactly one pipeline template.",
43882
43882
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -45517,7 +45517,7 @@ var memoryInitPromise = null;
45517
45517
  async function initPipelineMemory() {
45518
45518
  if (cachedMemory !== null) return cachedMemory;
45519
45519
  try {
45520
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-3FUIP2L6.js");
45520
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-GZCB372F.js");
45521
45521
  const { getLearningDir } = await import("./learning-persistence-6D5GGT7D.js");
45522
45522
  const mem = createSessionMemory2(getLearningDir());
45523
45523
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -45579,7 +45579,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
45579
45579
  callRecord(routingMemoryCache);
45580
45580
  return;
45581
45581
  }
45582
- routingMemoryInitPromise ??= import("./routing-memory-5LU5WI5T.js").then(({ createRoutingMemory }) => {
45582
+ routingMemoryInitPromise ??= import("./routing-memory-XGZ6T7GS.js").then(({ createRoutingMemory }) => {
45583
45583
  routingMemoryCache ??= createRoutingMemory();
45584
45584
  return routingMemoryCache;
45585
45585
  }).catch((error) => {
@@ -45613,7 +45613,7 @@ ${text}` : "";
45613
45613
  }
45614
45614
  async function getWeatherContext() {
45615
45615
  try {
45616
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-5HDPEOQ3.js");
45616
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-MZMFDIDX.js");
45617
45617
  const report = generateWeatherReport2({ includeAdaptive: true });
45618
45618
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
45619
45619
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -45631,7 +45631,7 @@ ${lines}
45631
45631
  }
45632
45632
  async function getMemoryContext(task) {
45633
45633
  try {
45634
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-3FUIP2L6.js");
45634
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-GZCB372F.js");
45635
45635
  const { getLearningDir } = await import("./learning-persistence-6D5GGT7D.js");
45636
45636
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
45637
45637
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -45746,7 +45746,7 @@ ${contextBlock}`;
45746
45746
  const strategy = config.votingStrategy ?? "higher_order";
45747
45747
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
45748
45748
  try {
45749
- const { executeVoting } = await import("./consensus-vote-S7JBAHGL.js");
45749
+ const { executeVoting } = await import("./consensus-vote-PBHH6JW6.js");
45750
45750
  const votingResult = await executeVoting(
45751
45751
  {
45752
45752
  proposal: buildVoteProposal(plan, research),
@@ -46187,7 +46187,7 @@ async function searchCodebaseForTask(task) {
46187
46187
  }
46188
46188
  async function queryResearchRegistry(task) {
46189
46189
  try {
46190
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-F734REUK.js");
46190
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-USLAWOD2.js");
46191
46191
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
46192
46192
  if (topic === void 0) return null;
46193
46193
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -46258,7 +46258,7 @@ function createScanStageWrapper() {
46258
46258
  try {
46259
46259
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
46260
46260
  if (slug !== void 0) {
46261
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-25AXO7FG.js");
46261
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-5EPAQMIO.js");
46262
46262
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
46263
46263
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
46264
46264
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -46534,11 +46534,15 @@ function buildPrReviewRecord(input) {
46534
46534
  };
46535
46535
  return { ...payload, hash: computePrReviewRecordHash(payload) };
46536
46536
  }
46537
- function resolvePrReviewRecordsPath() {
46537
+ function resolvePrReviewRecordsPath(repoPathOverride) {
46538
46538
  const envPath = process.env[PR_REVIEW_RECORDS_PATH_ENV];
46539
46539
  if (envPath !== void 0 && envPath.trim() !== "") {
46540
46540
  return isAbsolute(envPath) ? envPath : resolve13(envPath);
46541
46541
  }
46542
+ if (repoPathOverride !== void 0 && repoPathOverride.trim() !== "") {
46543
+ const overrideRoot = findRepoRoot(repoPathOverride);
46544
+ if (overrideRoot !== null) return join9(overrideRoot, PR_REVIEW_RECORDS_REL_PATH);
46545
+ }
46542
46546
  const root = findRepoRoot(process.cwd());
46543
46547
  if (root === null) return void 0;
46544
46548
  return join9(root, PR_REVIEW_RECORDS_REL_PATH);
@@ -46577,7 +46581,7 @@ function readPrReviewLedgerTip(filePath, logger58) {
46577
46581
  }
46578
46582
  function persistPrReviewRecord(opts) {
46579
46583
  const logger58 = opts.logger ?? createLogger({ component: "pr-review-record-store" });
46580
- const filePath = opts.filePath ?? resolvePrReviewRecordsPath();
46584
+ const filePath = opts.filePath ?? resolvePrReviewRecordsPath(opts.repoPathOverride);
46581
46585
  if (filePath === void 0) {
46582
46586
  logger58.warn("Cannot persist pr-review record: no records path resolved", {
46583
46587
  prNumber: opts.prNumber
@@ -46634,6 +46638,9 @@ function buildAndPersist(prNumber, baseSha, args) {
46634
46638
  total: reviewCount
46635
46639
  },
46636
46640
  summary: `${aggregate.decision} (${String(counts.approveCount)} approve / ${String(counts.requestChangesCount)} request_changes / ${String(counts.abstainCount)} abstain) \u2014 ${input.prTitle}${coverageSuffix}`,
46641
+ // #4278: lets a caller (e.g. an MCP server whose cwd has no `.git`
46642
+ // ancestor) say where the repo is, so the record isn't silently dropped.
46643
+ ...input.repoPath !== void 0 ? { repoPathOverride: input.repoPath } : {},
46637
46644
  logger: logger58
46638
46645
  });
46639
46646
  if (record === void 0) {
@@ -46815,6 +46822,45 @@ function applyPartialCoverageGate(aggregate, coverage) {
46815
46822
  return aggregate;
46816
46823
  }
46817
46824
 
46825
+ // src/mcp/tools/pr-review-result-mapping.ts
46826
+ function resolveFindings(result) {
46827
+ const raw = result.vote.findings;
46828
+ if (raw !== void 0 && raw.length > 0) {
46829
+ return raw.map((f) => ({
46830
+ summary: f.summary,
46831
+ location: f.location,
46832
+ severity: f.severity,
46833
+ gate: f.gate,
46834
+ claim: f.claim,
46835
+ verified: isFindingVerified(f.gate)
46836
+ }));
46837
+ }
46838
+ return parseFindings(result.vote.reasoning);
46839
+ }
46840
+ function toPrReviewVote(result) {
46841
+ return {
46842
+ role: result.role,
46843
+ decision: mapVoteDecisionToPrDecision(result.vote.decision),
46844
+ confidence: result.vote.confidence,
46845
+ reasoning: result.vote.reasoning,
46846
+ findings: resolveFindings(result),
46847
+ source: result.source,
46848
+ cli: result.cli,
46849
+ processingTimeMs: result.processingTimeMs,
46850
+ ...result.error !== void 0 && { errorMessage: result.error }
46851
+ };
46852
+ }
46853
+ function summarizeReviews(reviews) {
46854
+ return {
46855
+ approveCount: reviews.filter((r) => r.source !== "error" && r.decision === "approve").length,
46856
+ requestChangesCount: reviews.filter(
46857
+ (r) => r.source !== "error" && r.decision === "request_changes"
46858
+ ).length,
46859
+ abstainCount: reviews.filter((r) => r.source !== "error" && r.decision === "abstain").length,
46860
+ errorCount: reviews.filter((r) => r.source === "error").length
46861
+ };
46862
+ }
46863
+
46818
46864
  // src/mcp/tools/pr-review-tool.ts
46819
46865
  var PR_REVIEW_ROLES = [
46820
46866
  "architect",
@@ -46854,6 +46900,9 @@ var PrReviewInputSchema = z93.object({
46854
46900
  baseSha: z93.string().regex(/^[0-9a-f]{40}$/, "baseSha must be a 40-char lowercase hex commit sha").optional().describe(
46855
46901
  "40-hex base commit sha the reviewed diff was computed from (Option-C binding, #4031)"
46856
46902
  ),
46903
+ repoPath: z93.string().max(1024).optional().describe(
46904
+ "Repo root path for persisting the governance pr-review record (overrides cwd auto-detection). Must contain a .git ancestor \u2014 relative paths are resolved against cwd; ignored (falls back to cwd auto-detection) if it is not a real repo root. Env NEXUS_PR_REVIEW_RECORDS_PATH still takes precedence and is unrestricted."
46905
+ ),
46857
46906
  simulate: z93.boolean().default(false).describe("Use simulated voters (testing only; never ship live with this true)"),
46858
46907
  /**
46859
46908
  * Error policy (#4132). `standard` (default) keeps the pre-#4132 aggregation:
@@ -46969,43 +47018,6 @@ ${FINDINGS_FORMAT_INSTRUCTIONS}
46969
47018
  `);
46970
47019
  return parts.join("");
46971
47020
  }
46972
- function resolveFindings(result) {
46973
- const raw = result.vote.findings;
46974
- if (raw !== void 0 && raw.length > 0) {
46975
- return raw.map((f) => ({
46976
- summary: f.summary,
46977
- location: f.location,
46978
- severity: f.severity,
46979
- gate: f.gate,
46980
- claim: f.claim,
46981
- verified: isFindingVerified(f.gate)
46982
- }));
46983
- }
46984
- return parseFindings(result.vote.reasoning);
46985
- }
46986
- function toPrReviewVote(result) {
46987
- return {
46988
- role: result.role,
46989
- decision: mapVoteDecisionToPrDecision(result.vote.decision),
46990
- confidence: result.vote.confidence,
46991
- reasoning: result.vote.reasoning,
46992
- findings: resolveFindings(result),
46993
- source: result.source,
46994
- cli: result.cli,
46995
- processingTimeMs: result.processingTimeMs,
46996
- ...result.error !== void 0 && { errorMessage: result.error }
46997
- };
46998
- }
46999
- function summarizeReviews(reviews) {
47000
- return {
47001
- approveCount: reviews.filter((r) => r.source !== "error" && r.decision === "approve").length,
47002
- requestChangesCount: reviews.filter(
47003
- (r) => r.source !== "error" && r.decision === "request_changes"
47004
- ).length,
47005
- abstainCount: reviews.filter((r) => r.source !== "error" && r.decision === "abstain").length,
47006
- errorCount: reviews.filter((r) => r.source === "error").length
47007
- };
47008
- }
47009
47021
  function resolveAggregate(reviews, input, errorCount, coverage, logger58) {
47010
47022
  const preGate = aggregatePrDecisions(reviews, input.errorPolicy);
47011
47023
  if (preGate.reason !== void 0) {
@@ -49218,7 +49230,7 @@ var GitHubTaskTracker = class {
49218
49230
  cachedProvider = null;
49219
49231
  async getProvider() {
49220
49232
  if (this.cachedProvider !== null) return this.cachedProvider;
49221
- const { createScmProvider } = await import("./factory-LLFF3ZKV.js");
49233
+ const { createScmProvider } = await import("./factory-2UAMVT6O.js");
49222
49234
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
49223
49235
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
49224
49236
  this.cachedProvider = result.value;
@@ -50025,7 +50037,7 @@ async function probeSource(source, includeModelIds) {
50025
50037
  }
50026
50038
  }
50027
50039
  async function defaultSources(includeOpenRouter) {
50028
- const { createAllAdapters: createAllAdapters2 } = await import("./factory-UE63NFX6.js");
50040
+ const { createAllAdapters: createAllAdapters2 } = await import("./factory-E2QXGLFH.js");
50029
50041
  const adapters = createAllAdapters2();
50030
50042
  return buildDefaultModelSources(adapters, { includeOpenRouter });
50031
50043
  }
@@ -54045,4 +54057,4 @@ export {
54045
54057
  shutdownFeedbackSubscriber,
54046
54058
  createEventBusBridge
54047
54059
  };
54048
- //# sourceMappingURL=chunk-R4ZINS62.js.map
54060
+ //# sourceMappingURL=chunk-NN6BBKJD.js.map