nexus-agents 2.155.1 → 2.157.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/{child-mcp-config-5TDFQBX4.js → child-mcp-config-3YUKLM5F.js} +2 -2
  2. package/dist/{chunk-KBHRWQBL.js → chunk-3NT6NAXD.js} +2 -2
  3. package/dist/{chunk-J2P7FOEZ.js → chunk-3S2OPUGU.js} +2 -2
  4. package/dist/{chunk-MRYEJZQI.js → chunk-3SE57WOV.js} +70 -49
  5. package/dist/{chunk-MRYEJZQI.js.map → chunk-3SE57WOV.js.map} +1 -1
  6. package/dist/{chunk-QJC2XU2B.js → chunk-47WFM6QH.js} +4 -4
  7. package/dist/{chunk-C63M3XXN.js → chunk-553QYRXJ.js} +5 -5
  8. package/dist/{chunk-52UVXXYA.js → chunk-5FH7QZIT.js} +2 -2
  9. package/dist/{chunk-SRT2VLNP.js → chunk-5ULXLPVP.js} +2 -2
  10. package/dist/{chunk-7TFBRAV7.js → chunk-6ZKQRTTQ.js} +4 -4
  11. package/dist/{chunk-D4N7KBBT.js → chunk-7YOJXOFN.js} +4 -4
  12. package/dist/{chunk-XNW3W2OU.js → chunk-AEPCCXMK.js} +3 -3
  13. package/dist/{chunk-F5R53HDK.js → chunk-BGAK4N74.js} +7 -7
  14. package/dist/{chunk-XDYOJQKC.js → chunk-BM26VPV5.js} +2 -2
  15. package/dist/{chunk-CBGVR52X.js → chunk-EJ3MAR5M.js} +3 -3
  16. package/dist/{chunk-7ZBXMLTJ.js → chunk-GYWYCCJC.js} +2 -2
  17. package/dist/{chunk-V7DS6V3U.js → chunk-HUN7CEAU.js} +3 -3
  18. package/dist/{chunk-IZVRLJIX.js → chunk-HWG437YQ.js} +2 -2
  19. package/dist/{chunk-22MKYE4Y.js → chunk-IILTUCFB.js} +2 -2
  20. package/dist/{chunk-F42V2BKN.js → chunk-JZ4PCEEN.js} +2 -2
  21. package/dist/{chunk-TWXCQOZN.js → chunk-LZ2LHYDO.js} +3 -3
  22. package/dist/{chunk-PRMXFOWF.js → chunk-M532SJS6.js} +7 -7
  23. package/dist/{chunk-ZFUFS44V.js → chunk-MYSS22Q2.js} +2 -2
  24. package/dist/{chunk-O25A3VXX.js → chunk-NELFMLLR.js} +2 -2
  25. package/dist/{chunk-ZLNGFULQ.js → chunk-O7VPOR5A.js} +5 -5
  26. package/dist/{chunk-6FIWYWPM.js → chunk-OXYGRB4C.js} +10 -7
  27. package/dist/chunk-OXYGRB4C.js.map +1 -0
  28. package/dist/{chunk-ZVGM3MPI.js → chunk-PZDDA6IW.js} +3 -3
  29. package/dist/{chunk-N3Y6J2FL.js → chunk-RCSDD2QY.js} +132 -3
  30. package/dist/chunk-RCSDD2QY.js.map +1 -0
  31. package/dist/{chunk-VHRF6VOS.js → chunk-SCJ2EB6Z.js} +2 -2
  32. package/dist/{chunk-MY22I2FD.js → chunk-TKCXD36G.js} +4 -4
  33. package/dist/{chunk-DJTWGM7I.js → chunk-TNRTP5FW.js} +2 -2
  34. package/dist/{chunk-6LFKY2NE.js → chunk-TT4ZITRU.js} +34 -12
  35. package/dist/chunk-TT4ZITRU.js.map +1 -0
  36. package/dist/{chunk-VC7EUQH4.js → chunk-UAGYCCHY.js} +2 -2
  37. package/dist/{chunk-DZCMTSNS.js → chunk-XGUZ2OQK.js} +3 -3
  38. package/dist/{chunk-BMHQATIA.js → chunk-YGYJUPVX.js} +2 -2
  39. package/dist/{chunk-QERDNK6B.js → chunk-YZQXCCEA.js} +5 -5
  40. package/dist/{cli-circuit-breaker-G7NRAWQE.js → cli-circuit-breaker-Q43YSBCB.js} +4 -4
  41. package/dist/cli.js +41 -41
  42. package/dist/{composite-router-7S2MLIHW.js → composite-router-5UHJFOB3.js} +2 -2
  43. package/dist/{consensus-vote-CQBTPJRD.js → consensus-vote-7EBYYBCQ.js} +15 -15
  44. package/dist/{context-retriever-FTLRG2N6.js → context-retriever-33SGXV33.js} +8 -8
  45. package/dist/{doctor-deep-VU5VELP2.js → doctor-deep-RAN4HGOH.js} +3 -3
  46. package/dist/{expert-bridge-MJJDMA6Z.js → expert-bridge-RJP57L75.js} +4 -4
  47. package/dist/{factory-2XKATTCM.js → factory-C5PY7R6O.js} +8 -8
  48. package/dist/{factory-RS462DMM.js → factory-YOUM5MCV.js} +5 -5
  49. package/dist/{improvement-review-CCE655BZ.js → improvement-review-H5BQ2JXK.js} +5 -5
  50. package/dist/index.d.ts +42 -0
  51. package/dist/index.js +30 -30
  52. package/dist/{init-opencode-3QHEWOJV.js → init-opencode-KHODCXA6.js} +6 -6
  53. package/dist/{issue-triage-QOD3WWIM.js → issue-triage-OP3FDRKY.js} +6 -6
  54. package/dist/{pr-reviewer-helpers-7IE2EX6M.js → pr-reviewer-helpers-UF42XZB6.js} +4 -4
  55. package/dist/{registry-command-PFOEWIKM.js → registry-command-EZ7735GC.js} +2 -2
  56. package/dist/{repo-security-plan-ELSKPBOD.js → repo-security-plan-D62HB5PK.js} +3 -3
  57. package/dist/{research-helpers-synthesize-DTNUWPRP.js → research-helpers-synthesize-KUA53BAD.js} +4 -4
  58. package/dist/{routing-memory-VBJMY6PE.js → routing-memory-FE4EQUXO.js} +2 -2
  59. package/dist/{session-memory-BFT6O2F7.js → session-memory-RA7KE6CX.js} +3 -3
  60. package/dist/{setup-command-J7P6DIFV.js → setup-command-FJ2II5YH.js} +11 -11
  61. package/dist/{setup-config-ZC2AJ4IN.js → setup-config-SHG2DMZJ.js} +3 -3
  62. package/dist/{setup-custom-api-6ALI76FS.js → setup-custom-api-NVS4EPBG.js} +3 -3
  63. package/dist/{tool-memory-KJAOR22P.js → tool-memory-UQH2FTAS.js} +5 -5
  64. package/dist/{unified-registry-SMGX7OMN.js → unified-registry-MMQXU622.js} +9 -9
  65. package/dist/{weather-report-GLZ2LI7V.js → weather-report-HRQCJEU5.js} +2 -2
  66. package/package.json +1 -1
  67. package/dist/chunk-6FIWYWPM.js.map +0 -1
  68. package/dist/chunk-6LFKY2NE.js.map +0 -1
  69. package/dist/chunk-N3Y6J2FL.js.map +0 -1
  70. /package/dist/{child-mcp-config-5TDFQBX4.js.map → child-mcp-config-3YUKLM5F.js.map} +0 -0
  71. /package/dist/{chunk-KBHRWQBL.js.map → chunk-3NT6NAXD.js.map} +0 -0
  72. /package/dist/{chunk-J2P7FOEZ.js.map → chunk-3S2OPUGU.js.map} +0 -0
  73. /package/dist/{chunk-QJC2XU2B.js.map → chunk-47WFM6QH.js.map} +0 -0
  74. /package/dist/{chunk-C63M3XXN.js.map → chunk-553QYRXJ.js.map} +0 -0
  75. /package/dist/{chunk-52UVXXYA.js.map → chunk-5FH7QZIT.js.map} +0 -0
  76. /package/dist/{chunk-SRT2VLNP.js.map → chunk-5ULXLPVP.js.map} +0 -0
  77. /package/dist/{chunk-7TFBRAV7.js.map → chunk-6ZKQRTTQ.js.map} +0 -0
  78. /package/dist/{chunk-D4N7KBBT.js.map → chunk-7YOJXOFN.js.map} +0 -0
  79. /package/dist/{chunk-XNW3W2OU.js.map → chunk-AEPCCXMK.js.map} +0 -0
  80. /package/dist/{chunk-F5R53HDK.js.map → chunk-BGAK4N74.js.map} +0 -0
  81. /package/dist/{chunk-XDYOJQKC.js.map → chunk-BM26VPV5.js.map} +0 -0
  82. /package/dist/{chunk-CBGVR52X.js.map → chunk-EJ3MAR5M.js.map} +0 -0
  83. /package/dist/{chunk-7ZBXMLTJ.js.map → chunk-GYWYCCJC.js.map} +0 -0
  84. /package/dist/{chunk-V7DS6V3U.js.map → chunk-HUN7CEAU.js.map} +0 -0
  85. /package/dist/{chunk-IZVRLJIX.js.map → chunk-HWG437YQ.js.map} +0 -0
  86. /package/dist/{chunk-22MKYE4Y.js.map → chunk-IILTUCFB.js.map} +0 -0
  87. /package/dist/{chunk-F42V2BKN.js.map → chunk-JZ4PCEEN.js.map} +0 -0
  88. /package/dist/{chunk-TWXCQOZN.js.map → chunk-LZ2LHYDO.js.map} +0 -0
  89. /package/dist/{chunk-PRMXFOWF.js.map → chunk-M532SJS6.js.map} +0 -0
  90. /package/dist/{chunk-ZFUFS44V.js.map → chunk-MYSS22Q2.js.map} +0 -0
  91. /package/dist/{chunk-O25A3VXX.js.map → chunk-NELFMLLR.js.map} +0 -0
  92. /package/dist/{chunk-ZLNGFULQ.js.map → chunk-O7VPOR5A.js.map} +0 -0
  93. /package/dist/{chunk-ZVGM3MPI.js.map → chunk-PZDDA6IW.js.map} +0 -0
  94. /package/dist/{chunk-VHRF6VOS.js.map → chunk-SCJ2EB6Z.js.map} +0 -0
  95. /package/dist/{chunk-MY22I2FD.js.map → chunk-TKCXD36G.js.map} +0 -0
  96. /package/dist/{chunk-DJTWGM7I.js.map → chunk-TNRTP5FW.js.map} +0 -0
  97. /package/dist/{chunk-VC7EUQH4.js.map → chunk-UAGYCCHY.js.map} +0 -0
  98. /package/dist/{chunk-DZCMTSNS.js.map → chunk-XGUZ2OQK.js.map} +0 -0
  99. /package/dist/{chunk-BMHQATIA.js.map → chunk-YGYJUPVX.js.map} +0 -0
  100. /package/dist/{chunk-QERDNK6B.js.map → chunk-YZQXCCEA.js.map} +0 -0
  101. /package/dist/{cli-circuit-breaker-G7NRAWQE.js.map → cli-circuit-breaker-Q43YSBCB.js.map} +0 -0
  102. /package/dist/{composite-router-7S2MLIHW.js.map → composite-router-5UHJFOB3.js.map} +0 -0
  103. /package/dist/{consensus-vote-CQBTPJRD.js.map → consensus-vote-7EBYYBCQ.js.map} +0 -0
  104. /package/dist/{context-retriever-FTLRG2N6.js.map → context-retriever-33SGXV33.js.map} +0 -0
  105. /package/dist/{doctor-deep-VU5VELP2.js.map → doctor-deep-RAN4HGOH.js.map} +0 -0
  106. /package/dist/{expert-bridge-MJJDMA6Z.js.map → expert-bridge-RJP57L75.js.map} +0 -0
  107. /package/dist/{factory-2XKATTCM.js.map → factory-C5PY7R6O.js.map} +0 -0
  108. /package/dist/{factory-RS462DMM.js.map → factory-YOUM5MCV.js.map} +0 -0
  109. /package/dist/{improvement-review-CCE655BZ.js.map → improvement-review-H5BQ2JXK.js.map} +0 -0
  110. /package/dist/{init-opencode-3QHEWOJV.js.map → init-opencode-KHODCXA6.js.map} +0 -0
  111. /package/dist/{issue-triage-QOD3WWIM.js.map → issue-triage-OP3FDRKY.js.map} +0 -0
  112. /package/dist/{pr-reviewer-helpers-7IE2EX6M.js.map → pr-reviewer-helpers-UF42XZB6.js.map} +0 -0
  113. /package/dist/{registry-command-PFOEWIKM.js.map → registry-command-EZ7735GC.js.map} +0 -0
  114. /package/dist/{repo-security-plan-ELSKPBOD.js.map → repo-security-plan-D62HB5PK.js.map} +0 -0
  115. /package/dist/{research-helpers-synthesize-DTNUWPRP.js.map → research-helpers-synthesize-KUA53BAD.js.map} +0 -0
  116. /package/dist/{routing-memory-VBJMY6PE.js.map → routing-memory-FE4EQUXO.js.map} +0 -0
  117. /package/dist/{session-memory-BFT6O2F7.js.map → session-memory-RA7KE6CX.js.map} +0 -0
  118. /package/dist/{setup-command-J7P6DIFV.js.map → setup-command-FJ2II5YH.js.map} +0 -0
  119. /package/dist/{setup-config-ZC2AJ4IN.js.map → setup-config-SHG2DMZJ.js.map} +0 -0
  120. /package/dist/{setup-custom-api-6ALI76FS.js.map → setup-custom-api-NVS4EPBG.js.map} +0 -0
  121. /package/dist/{tool-memory-KJAOR22P.js.map → tool-memory-UQH2FTAS.js.map} +0 -0
  122. /package/dist/{unified-registry-SMGX7OMN.js.map → unified-registry-MMQXU622.js.map} +0 -0
  123. /package/dist/{weather-report-GLZ2LI7V.js.map → weather-report-HRQCJEU5.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLogger
3
- } from "./chunk-N3Y6J2FL.js";
3
+ } from "./chunk-RCSDD2QY.js";
4
4
  import "./chunk-NL7SZQPW.js";
5
5
  import "./chunk-DHVMSIT5.js";
6
6
  import "./chunk-ZPWHCABL.js";
@@ -60,4 +60,4 @@ export {
60
60
  generateMcpConfig,
61
61
  getDefaultAllowedTools
62
62
  };
63
- //# sourceMappingURL=child-mcp-config-5TDFQBX4.js.map
63
+ //# sourceMappingURL=child-mcp-config-3YUKLM5F.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  lookupInTreeCapability
3
- } from "./chunk-N3Y6J2FL.js";
3
+ } from "./chunk-RCSDD2QY.js";
4
4
  import {
5
5
  getNexusDataDir
6
6
  } from "./chunk-DHVMSIT5.js";
@@ -123,4 +123,4 @@ export {
123
123
  loadUsageEvents,
124
124
  rollupByModel
125
125
  };
126
- //# sourceMappingURL=chunk-KBHRWQBL.js.map
126
+ //# sourceMappingURL=chunk-3NT6NAXD.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  err,
4
4
  ok
5
- } from "./chunk-N3Y6J2FL.js";
5
+ } from "./chunk-RCSDD2QY.js";
6
6
 
7
7
  // src/scm/token-resolver.ts
8
8
  import { execFile } from "child_process";
@@ -87,4 +87,4 @@ export {
87
87
  hasToken,
88
88
  getTokenEnvVars
89
89
  };
90
- //# sourceMappingURL=chunk-J2P7FOEZ.js.map
90
+ //# sourceMappingURL=chunk-3S2OPUGU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateSecurityPlan
3
- } from "./chunk-52UVXXYA.js";
3
+ } from "./chunk-5FH7QZIT.js";
4
4
  import {
5
5
  analyzeGitHubRepo
6
6
  } from "./chunk-HFOQKCD2.js";
@@ -18,13 +18,14 @@ import {
18
18
  DEFAULT_TASK_TTL_MS,
19
19
  DEFAULT_TOOL_RATE_LIMITS,
20
20
  clampTaskTtl
21
- } from "./chunk-6FIWYWPM.js";
21
+ } from "./chunk-OXYGRB4C.js";
22
22
  import {
23
23
  executeExpert
24
- } from "./chunk-F5R53HDK.js";
24
+ } from "./chunk-BGAK4N74.js";
25
25
  import {
26
26
  JobStatusSchema,
27
27
  abortJob,
28
+ checkSimulationAllowed,
28
29
  collectRealVotes,
29
30
  defaultBusyEnvelope,
30
31
  defaultCollisionEnvelope,
@@ -38,24 +39,24 @@ import {
38
39
  resolveIdempotency,
39
40
  runAsJob,
40
41
  runConsensusForGoal,
42
+ simulationDeniedResult,
41
43
  toJobSummary,
42
- warnIfSimulatedOutsideTests,
43
44
  writeJobCancelled
44
- } from "./chunk-6LFKY2NE.js";
45
+ } from "./chunk-TT4ZITRU.js";
45
46
  import {
46
47
  normalizeTopicToCanonical,
47
48
  synthesizeResearch
48
- } from "./chunk-DZCMTSNS.js";
49
+ } from "./chunk-XGUZ2OQK.js";
49
50
  import {
50
51
  IssueTriage
51
- } from "./chunk-QERDNK6B.js";
52
+ } from "./chunk-YZQXCCEA.js";
52
53
  import {
53
54
  resolveEnvMode,
54
55
  sanitizeInput
55
- } from "./chunk-VC7EUQH4.js";
56
+ } from "./chunk-UAGYCCHY.js";
56
57
  import {
57
58
  withPrerequisite
58
- } from "./chunk-TWXCQOZN.js";
59
+ } from "./chunk-LZ2LHYDO.js";
59
60
  import {
60
61
  NOOP_NOTIFIER,
61
62
  RateLimiter,
@@ -78,12 +79,12 @@ import {
78
79
  withAuditTrail,
79
80
  withProgressHeartbeat,
80
81
  wrapToolWithTimeout
81
- } from "./chunk-ZVGM3MPI.js";
82
+ } from "./chunk-PZDDA6IW.js";
82
83
  import {
83
84
  createAuditTrail,
84
85
  createGraphAuditBridge,
85
86
  emitPipelinePolicyEvent
86
- } from "./chunk-XDYOJQKC.js";
87
+ } from "./chunk-BM26VPV5.js";
87
88
  import {
88
89
  addResearchPaper,
89
90
  addSourceToRegistry,
@@ -111,15 +112,15 @@ import {
111
112
  parseRegistry,
112
113
  sourceExistsInRegistry,
113
114
  summarizeContextForPrompt
114
- } from "./chunk-ZLNGFULQ.js";
115
+ } from "./chunk-O7VPOR5A.js";
115
116
  import {
116
117
  getTokenEnvVars,
117
118
  resolveToken
118
- } from "./chunk-J2P7FOEZ.js";
119
+ } from "./chunk-3S2OPUGU.js";
119
120
  import {
120
121
  loadPapersRegistry,
121
122
  loadTechniquesRegistry
122
- } from "./chunk-IZVRLJIX.js";
123
+ } from "./chunk-HWG437YQ.js";
123
124
  import {
124
125
  resolveInsideRoot
125
126
  } from "./chunk-NUBSJGQZ.js";
@@ -128,14 +129,14 @@ import {
128
129
  MemoryImportance,
129
130
  calculateTextJaccardSimilarity,
130
131
  getToolMemory
131
- } from "./chunk-D4N7KBBT.js";
132
+ } from "./chunk-7YOJXOFN.js";
132
133
  import {
133
134
  STOPWORDS,
134
135
  truncateWithInfo
135
136
  } from "./chunk-6T3EPABN.js";
136
137
  import {
137
138
  createSessionMemory
138
- } from "./chunk-22MKYE4Y.js";
139
+ } from "./chunk-IILTUCFB.js";
139
140
  import {
140
141
  BUILT_IN_EXPERTS,
141
142
  BuiltInExpertTypeSchema,
@@ -150,7 +151,7 @@ import {
150
151
  createEvent,
151
152
  getGlobalEventBus,
152
153
  getGlobalRegistry
153
- } from "./chunk-MY22I2FD.js";
154
+ } from "./chunk-TKCXD36G.js";
154
155
  import {
155
156
  CliDetectionCache,
156
157
  asRecord,
@@ -158,19 +159,19 @@ import {
158
159
  getAvailableClis,
159
160
  sleep,
160
161
  withTimeout
161
- } from "./chunk-PRMXFOWF.js";
162
+ } from "./chunk-M532SJS6.js";
162
163
  import {
163
164
  DEFAULTS
164
- } from "./chunk-DJTWGM7I.js";
165
+ } from "./chunk-TNRTP5FW.js";
165
166
  import {
166
167
  getAvailabilityCache,
167
168
  getCliForModelId,
168
169
  resolveFallback
169
- } from "./chunk-BMHQATIA.js";
170
+ } from "./chunk-YGYJUPVX.js";
170
171
  import {
171
172
  generateHyphenId,
172
173
  generateUUID
173
- } from "./chunk-ZFUFS44V.js";
174
+ } from "./chunk-MYSS22Q2.js";
174
175
  import {
175
176
  AGENT_ROUTER_TIMEOUTS,
176
177
  API_TIMEOUTS,
@@ -262,7 +263,7 @@ import {
262
263
  selectStrategyByManifest,
263
264
  toExpertTaskAnalysisResult,
264
265
  withStep
265
- } from "./chunk-N3Y6J2FL.js";
266
+ } from "./chunk-RCSDD2QY.js";
266
267
  import {
267
268
  ensureLearningDir,
268
269
  getMetaOutcomesFile,
@@ -26297,7 +26298,7 @@ function execIdFields(executionId) {
26297
26298
  async function populateUnifiedContextOnState(state, options) {
26298
26299
  const taskCandidate = state["task"];
26299
26300
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
26300
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-FTLRG2N6.js");
26301
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-33SGXV33.js");
26301
26302
  const category = inferTaskCategory2(taskCandidate);
26302
26303
  const executionId = options?.executionId;
26303
26304
  const execFields = execIdFields(executionId);
@@ -41571,7 +41572,7 @@ async function tryIssueTriage(task) {
41571
41572
  try {
41572
41573
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
41573
41574
  if (issueMatch === null) return null;
41574
- const { createIssueTriage } = await import("./issue-triage-QOD3WWIM.js");
41575
+ const { createIssueTriage } = await import("./issue-triage-OP3FDRKY.js");
41575
41576
  const triage = createIssueTriage();
41576
41577
  const owner = issueMatch[1] ?? "";
41577
41578
  const num = issueMatch[2] ?? "";
@@ -41599,7 +41600,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
41599
41600
  ]);
41600
41601
  async function classifyWithLLM(task) {
41601
41602
  try {
41602
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-MJJDMA6Z.js");
41603
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-RJP57L75.js");
41603
41604
  const prompt = [
41604
41605
  "Classify this task into exactly one pipeline template.",
41605
41606
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -43240,7 +43241,7 @@ var memoryInitPromise = null;
43240
43241
  async function initPipelineMemory() {
43241
43242
  if (cachedMemory !== null) return cachedMemory;
43242
43243
  try {
43243
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-BFT6O2F7.js");
43244
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-RA7KE6CX.js");
43244
43245
  const { getLearningDir } = await import("./learning-persistence-M3OTCCNI.js");
43245
43246
  const mem = createSessionMemory2(getLearningDir());
43246
43247
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -43302,7 +43303,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
43302
43303
  callRecord(routingMemoryCache);
43303
43304
  return;
43304
43305
  }
43305
- routingMemoryInitPromise ??= import("./routing-memory-VBJMY6PE.js").then(({ createRoutingMemory }) => {
43306
+ routingMemoryInitPromise ??= import("./routing-memory-FE4EQUXO.js").then(({ createRoutingMemory }) => {
43306
43307
  routingMemoryCache ??= createRoutingMemory();
43307
43308
  return routingMemoryCache;
43308
43309
  }).catch((error) => {
@@ -43336,7 +43337,7 @@ ${text}` : "";
43336
43337
  }
43337
43338
  async function getWeatherContext() {
43338
43339
  try {
43339
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-GLZ2LI7V.js");
43340
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-HRQCJEU5.js");
43340
43341
  const report = generateWeatherReport2({ includeAdaptive: true });
43341
43342
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
43342
43343
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -43354,7 +43355,7 @@ ${lines}
43354
43355
  }
43355
43356
  async function getMemoryContext(task) {
43356
43357
  try {
43357
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-BFT6O2F7.js");
43358
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-RA7KE6CX.js");
43358
43359
  const { getLearningDir } = await import("./learning-persistence-M3OTCCNI.js");
43359
43360
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
43360
43361
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -43466,7 +43467,7 @@ ${contextBlock}`;
43466
43467
  const strategy = config.votingStrategy ?? "higher_order";
43467
43468
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
43468
43469
  try {
43469
- const { executeVoting } = await import("./consensus-vote-CQBTPJRD.js");
43470
+ const { executeVoting } = await import("./consensus-vote-7EBYYBCQ.js");
43470
43471
  const votingResult = await executeVoting(
43471
43472
  {
43472
43473
  proposal: buildVoteProposal(plan, research),
@@ -43903,7 +43904,7 @@ async function searchCodebaseForTask(task) {
43903
43904
  }
43904
43905
  async function queryResearchRegistry(task) {
43905
43906
  try {
43906
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-DTNUWPRP.js");
43907
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-KUA53BAD.js");
43907
43908
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
43908
43909
  if (topic === void 0) return null;
43909
43910
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -43974,7 +43975,7 @@ function createScanStageWrapper() {
43974
43975
  try {
43975
43976
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
43976
43977
  if (slug !== void 0) {
43977
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-ELSKPBOD.js");
43978
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-D62HB5PK.js");
43978
43979
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
43979
43980
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
43980
43981
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -44804,6 +44805,10 @@ function makePrReviewHandler(gatewayAdapters) {
44804
44805
  });
44805
44806
  }
44806
44807
  const input = parsed.data;
44808
+ if (input.simulate) {
44809
+ const simCheck = checkSimulationAllowed("pr_review", ctx.logger);
44810
+ if (!simCheck.allowed) return simulationDeniedResult(simCheck.reason);
44811
+ }
44807
44812
  try {
44808
44813
  if (input.dispatch === "async") {
44809
44814
  return runAsJob({
@@ -46930,7 +46935,7 @@ var GitHubTaskTracker = class {
46930
46935
  cachedProvider = null;
46931
46936
  async getProvider() {
46932
46937
  if (this.cachedProvider !== null) return this.cachedProvider;
46933
- const { createScmProvider } = await import("./factory-RS462DMM.js");
46938
+ const { createScmProvider } = await import("./factory-YOUM5MCV.js");
46934
46939
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
46935
46940
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
46936
46941
  this.cachedProvider = result.value;
@@ -47164,8 +47169,11 @@ async function runDevPipelineForGoal(goal, trustTier) {
47164
47169
  const stages = await createStages(input);
47165
47170
  return runDevPipeline(goal, stages, trustTier !== void 0 ? { trustTier } : void 0);
47166
47171
  }
47167
- function buildStructuredOutput(result) {
47172
+ function buildStructuredOutput(result, simulated) {
47168
47173
  return {
47174
+ // #4170: stamped only on an explicit NEXUS_ALLOW_SIMULATE=1 opt-in run so
47175
+ // a random demo panel can never pass as a real decision.
47176
+ ...simulated ? { simulated: true } : {},
47169
47177
  completed: result.completed,
47170
47178
  securityPassed: result.securityPassed,
47171
47179
  voteIterations: result.voteIterations,
@@ -47193,10 +47201,10 @@ function buildPipelineOptions(input, trustTier, auditLogger) {
47193
47201
  ...auditLogger !== void 0 ? { auditLogger } : {}
47194
47202
  };
47195
47203
  }
47196
- async function executeDevPipelineBody(taskText, stages, pipelineOptions) {
47204
+ async function executeDevPipelineBody(taskText, stages, pipelineOptions, simulated) {
47197
47205
  const result = await runDevPipeline(taskText, stages, pipelineOptions);
47198
47206
  flushPipelineMemory();
47199
- return toolSuccessStructured(buildStructuredOutput(result));
47207
+ return toolSuccessStructured(buildStructuredOutput(result, simulated));
47200
47208
  }
47201
47209
  async function runDevPipelineHandler(args, logger58, trustTier, auditLogger) {
47202
47210
  const parsed = DevPipelineInputSchema.safeParse(args);
@@ -47207,8 +47215,11 @@ async function runDevPipelineHandler(args, logger58, trustTier, auditLogger) {
47207
47215
  });
47208
47216
  }
47209
47217
  const input = parsed.data;
47218
+ let simulated = false;
47210
47219
  if (input.simulateVotes) {
47211
- warnIfSimulatedOutsideTests("run_dev_pipeline", logger58);
47220
+ const simCheck = checkSimulationAllowed("run_dev_pipeline", logger58);
47221
+ if (!simCheck.allowed) return simulationDeniedResult(simCheck.reason);
47222
+ simulated = simCheck.optedIn;
47212
47223
  }
47213
47224
  try {
47214
47225
  const taskText = await resolveTaskInput(input);
@@ -47216,10 +47227,11 @@ async function runDevPipelineHandler(args, logger58, trustTier, auditLogger) {
47216
47227
  const pipelineOptions = buildPipelineOptions(input, trustTier, auditLogger);
47217
47228
  const hasOptions = Object.keys(pipelineOptions).length > 0;
47218
47229
  const resolvedOptions = hasOptions ? pipelineOptions : void 0;
47230
+ const run = () => executeDevPipelineBody(taskText, stages, resolvedOptions, simulated);
47219
47231
  if (input.dispatch === "async" && !input.dryRun) {
47220
- return dispatchAsyncDevPipeline(input, taskText, stages, resolvedOptions, logger58);
47232
+ return dispatchAsyncDevPipeline(input, run, logger58);
47221
47233
  }
47222
- return await executeDevPipelineBody(taskText, stages, resolvedOptions);
47234
+ return await run();
47223
47235
  } catch (error) {
47224
47236
  return toolStructuredError({
47225
47237
  errorCategory: "internal",
@@ -47227,8 +47239,7 @@ async function runDevPipelineHandler(args, logger58, trustTier, auditLogger) {
47227
47239
  });
47228
47240
  }
47229
47241
  }
47230
- function dispatchAsyncDevPipeline(input, taskText, stages, pipelineOptions, logger58) {
47231
- const run = () => executeDevPipelineBody(taskText, stages, pipelineOptions);
47242
+ function dispatchAsyncDevPipeline(input, run, logger58) {
47232
47243
  if (input.sessionId === void 0) {
47233
47244
  return runAsJob({
47234
47245
  toolName: "run_dev_pipeline",
@@ -47324,7 +47335,7 @@ var PipelineInputSchema = z104.object({
47324
47335
  /** TESTS ONLY — random output, must not be used for real decisions. (#2319) */
47325
47336
  simulateVotes: z104.boolean().default(false).describe("TESTS ONLY \u2014 random output, must not be used for real decisions (#2319)")
47326
47337
  });
47327
- function buildOutput2(result) {
47338
+ function buildOutput2(result, simulated) {
47328
47339
  return {
47329
47340
  success: result.success,
47330
47341
  templateId: result.templateId,
@@ -47333,6 +47344,9 @@ function buildOutput2(result) {
47333
47344
  stepsExecuted: result.stepsExecuted,
47334
47345
  durationMs: result.durationMs,
47335
47346
  error: result.error ?? null,
47347
+ // #4170: stamped only on an explicit NEXUS_ALLOW_SIMULATE=1 opt-in run so
47348
+ // a random demo panel can never pass as a real decision.
47349
+ ...simulated ? { simulated: true } : {},
47336
47350
  // Rate limit awareness (#1802)
47337
47351
  rateLimitHint: result.error?.toLowerCase().includes("rate limit") === true ? "Consider using quickMode or increasing delay between pipeline runs" : void 0
47338
47352
  };
@@ -47400,13 +47414,13 @@ async function runPipelineForGoal(goal, logger58 = createLogger({ tool: "run_pip
47400
47414
  const stages = selectStageRegistry(void 0, goal, agentStages);
47401
47415
  return runAdaptiveOrchestrator(goal, { stages });
47402
47416
  }
47403
- async function executePipelineBody(task, stages, templateId, dryRun) {
47417
+ async function executePipelineBody(task, stages, templateId, dryRun, simulated) {
47404
47418
  const result = await runAdaptiveOrchestrator(task, {
47405
47419
  stages,
47406
47420
  templateId,
47407
47421
  dryRun
47408
47422
  });
47409
- return toolSuccessStructured(buildOutput2(result));
47423
+ return toolSuccessStructured(buildOutput2(result, simulated));
47410
47424
  }
47411
47425
  async function runPipelineHandler(args, logger58) {
47412
47426
  const parsed = PipelineInputSchema.safeParse(args);
@@ -47417,8 +47431,11 @@ async function runPipelineHandler(args, logger58) {
47417
47431
  });
47418
47432
  }
47419
47433
  const input = parsed.data;
47434
+ let simulated = false;
47420
47435
  if (input.simulateVotes) {
47421
- warnIfSimulatedOutsideTests("run_pipeline", logger58);
47436
+ const simCheck = checkSimulationAllowed("run_pipeline", logger58);
47437
+ if (!simCheck.allowed) return simulationDeniedResult(simCheck.reason);
47438
+ simulated = simCheck.optedIn;
47422
47439
  }
47423
47440
  try {
47424
47441
  const task = await resolveTask(input.task, input.specFile);
@@ -47434,11 +47451,11 @@ async function runPipelineHandler(args, logger58) {
47434
47451
  toolName: "run_pipeline",
47435
47452
  input,
47436
47453
  freshJobId: () => `rp-${randomUUID16()}`,
47437
- run: () => executePipelineBody(task, stages, input.template, input.dryRun),
47454
+ run: () => executePipelineBody(task, stages, input.template, input.dryRun, simulated),
47438
47455
  logger: logger58
47439
47456
  });
47440
47457
  }
47441
- return await executePipelineBody(task, stages, input.template, input.dryRun);
47458
+ return await executePipelineBody(task, stages, input.template, input.dryRun, simulated);
47442
47459
  } catch (error) {
47443
47460
  return toolStructuredError({
47444
47461
  errorCategory: "internal",
@@ -47725,7 +47742,7 @@ async function probeSource(source, includeModelIds) {
47725
47742
  }
47726
47743
  }
47727
47744
  async function defaultSources(includeOpenRouter) {
47728
- const { createAllAdapters: createAllAdapters2 } = await import("./factory-2XKATTCM.js");
47745
+ const { createAllAdapters: createAllAdapters2 } = await import("./factory-C5PY7R6O.js");
47729
47746
  const adapters = createAllAdapters2();
47730
47747
  return buildDefaultModelSources(adapters, { includeOpenRouter });
47731
47748
  }
@@ -48082,6 +48099,10 @@ async function tradeoffPanelHandler(args, ctx) {
48082
48099
  });
48083
48100
  }
48084
48101
  const input = parsed.data;
48102
+ if (input.simulate) {
48103
+ const simCheck = checkSimulationAllowed("supply_chain_tradeoff_panel", ctx.logger);
48104
+ if (!simCheck.allowed) return simulationDeniedResult(simCheck.reason);
48105
+ }
48085
48106
  try {
48086
48107
  if (input.dispatch === "async") {
48087
48108
  return runAsJob({
@@ -51788,4 +51809,4 @@ export {
51788
51809
  shutdownFeedbackSubscriber,
51789
51810
  createEventBusBridge
51790
51811
  };
51791
- //# sourceMappingURL=chunk-MRYEJZQI.js.map
51812
+ //# sourceMappingURL=chunk-3SE57WOV.js.map