nexus-agents 8.28.2 → 8.28.4

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 (127) hide show
  1. package/dist/{ast-rule-runner-2K2VKDB6.js → ast-rule-runner-OO3Q7ZBT.js} +3 -3
  2. package/dist/{child-mcp-config-FS63VN4T.js → child-mcp-config-KIG3IH54.js} +2 -2
  3. package/dist/{chunk-3RILNEWZ.js → chunk-242MYZDF.js} +2 -2
  4. package/dist/{chunk-VQGUGZPR.js → chunk-2PHZFAII.js} +7 -7
  5. package/dist/{chunk-HDXB5U74.js → chunk-4LPUI2VD.js} +2 -2
  6. package/dist/{chunk-56WJLZ5I.js → chunk-5YKKV4BT.js} +2 -2
  7. package/dist/chunk-5YKKV4BT.js.map +1 -0
  8. package/dist/{chunk-2EITSDXF.js → chunk-76AEYPGB.js} +2 -2
  9. package/dist/{chunk-RRZ5PGJA.js → chunk-ATO5WYUK.js} +4 -4
  10. package/dist/{chunk-5C5SHEOU.js → chunk-BALXYZTD.js} +7 -7
  11. package/dist/{chunk-SX3DXUQV.js → chunk-CFRWFP2Y.js} +5 -5
  12. package/dist/{chunk-LY3RSLFR.js → chunk-CI4REE7T.js} +5 -5
  13. package/dist/{chunk-LQ7CMUN4.js → chunk-DGHKIJX3.js} +2 -2
  14. package/dist/{chunk-JPDHHOZF.js → chunk-DS66G22E.js} +3 -3
  15. package/dist/{chunk-36YDR3WA.js → chunk-FNX43T6H.js} +4 -4
  16. package/dist/{chunk-DCD6WNPJ.js → chunk-FTMN6UMD.js} +4 -4
  17. package/dist/{chunk-4TR3BIAE.js → chunk-GBHVJL3D.js} +2 -2
  18. package/dist/{chunk-TXMTK42U.js → chunk-HXZ2A6VE.js} +9 -9
  19. package/dist/{chunk-SR3MQ2GG.js → chunk-ILTFBXCX.js} +6 -6
  20. package/dist/{chunk-PBMQEUMG.js → chunk-JARNYJYL.js} +3 -3
  21. package/dist/{chunk-HMBI27U4.js → chunk-KFRIU2O6.js} +2 -2
  22. package/dist/{chunk-BYNNHRTW.js → chunk-KTGF4KT6.js} +2 -2
  23. package/dist/{chunk-B6N6BAB7.js → chunk-MFHUTJF3.js} +2 -2
  24. package/dist/{chunk-2DSRYCHY.js → chunk-NJHK4YTE.js} +2 -2
  25. package/dist/{chunk-5XYODQTD.js → chunk-OA4PUO4V.js} +2 -2
  26. package/dist/{chunk-7BEWN6N4.js → chunk-OHXWC6BC.js} +2 -2
  27. package/dist/{chunk-VNGVFKYD.js → chunk-PNVKH7JD.js} +8 -8
  28. package/dist/{chunk-6BZWANJE.js → chunk-SM3JXK6E.js} +3 -3
  29. package/dist/{chunk-ZNPWV2WN.js → chunk-TGHZFUGX.js} +2 -2
  30. package/dist/{chunk-AMIRFMFC.js → chunk-TME26QKQ.js} +14 -7
  31. package/dist/chunk-TME26QKQ.js.map +1 -0
  32. package/dist/{chunk-MZOXHJCW.js → chunk-UCOCWVFT.js} +2 -2
  33. package/dist/{chunk-32L5P7ST.js → chunk-UTALVWRN.js} +2 -2
  34. package/dist/{chunk-Z6UJ7Y3N.js → chunk-UUULOA5M.js} +45 -40
  35. package/dist/{chunk-Z6UJ7Y3N.js.map → chunk-UUULOA5M.js.map} +1 -1
  36. package/dist/{chunk-GIE4QGEL.js → chunk-VXVS66SH.js} +2 -2
  37. package/dist/{chunk-BRDADDGN.js → chunk-WHXKVYQF.js} +4 -4
  38. package/dist/{chunk-CGAHJ4AW.js → chunk-XG7L4FS2.js} +2 -2
  39. package/dist/{chunk-I4KBCYAE.js → chunk-Z3DAXWTU.js} +2 -2
  40. package/dist/{cli-circuit-breaker-JMEO5W73.js → cli-circuit-breaker-GGXTCAI6.js} +3 -3
  41. package/dist/cli.js +43 -43
  42. package/dist/{composite-router-OYQTAUC5.js → composite-router-V56OTZCC.js} +2 -2
  43. package/dist/{consensus-vote-QLS5K6KB.js → consensus-vote-54SPKHVA.js} +17 -17
  44. package/dist/{context-retriever-45HON52O.js → context-retriever-GA2AOW3O.js} +8 -8
  45. package/dist/{doctor-deep-GZC3E7R7.js → doctor-deep-4L6NRB7F.js} +3 -3
  46. package/dist/{doctor-live-JGVTPYI5.js → doctor-live-L3GZ7LW2.js} +9 -9
  47. package/dist/{expert-bridge-DLO63EKU.js → expert-bridge-5HR42Y5A.js} +4 -4
  48. package/dist/{factory-JRPJZXSI.js → factory-4Z5LEEZ4.js} +9 -9
  49. package/dist/{factory-OGOLQSYT.js → factory-VMEYE73K.js} +5 -5
  50. package/dist/{improvement-review-INMFJJDY.js → improvement-review-OV3ODXRT.js} +6 -6
  51. package/dist/index.js +31 -31
  52. package/dist/{init-opencode-NLYHW6IY.js → init-opencode-KAH6U7MH.js} +6 -6
  53. package/dist/issue-triage-A3ZHZBB2.js +17 -0
  54. package/dist/{pr-reviewer-helpers-5J6RP2VV.js → pr-reviewer-helpers-YTSQZUGE.js} +4 -4
  55. package/dist/{registry-command-4JZVWEBA.js → registry-command-T2C5FGIT.js} +2 -2
  56. package/dist/{repo-security-plan-IXCSU2IU.js → repo-security-plan-2DUVHZF7.js} +3 -3
  57. package/dist/{research-helpers-synthesize-3VMID7KI.js → research-helpers-synthesize-LOZ5V44B.js} +4 -4
  58. package/dist/{routing-memory-ZQVP734Q.js → routing-memory-DOAENN2D.js} +2 -2
  59. package/dist/{session-memory-BFJEA6NL.js → session-memory-DTZ66VSH.js} +3 -3
  60. package/dist/{setup-config-66W4FNVG.js → setup-config-5ZBB4TGZ.js} +3 -3
  61. package/dist/{setup-custom-api-H6C75XST.js → setup-custom-api-ZCBCOBVG.js} +4 -4
  62. package/dist/setup-data-dir-QKIQW45I.js +29 -0
  63. package/dist/{tool-memory-XL3YIMGB.js → tool-memory-UBJE3I3T.js} +5 -5
  64. package/dist/{unified-registry-RZ23VBFT.js → unified-registry-3WHILF4V.js} +10 -10
  65. package/dist/{weather-report-IKCYZAZ3.js → weather-report-MZDEPXYC.js} +2 -2
  66. package/package.json +1 -1
  67. package/dist/chunk-56WJLZ5I.js.map +0 -1
  68. package/dist/chunk-AMIRFMFC.js.map +0 -1
  69. package/dist/issue-triage-U6DTKFH7.js +0 -17
  70. package/dist/setup-data-dir-HL2BZZGS.js +0 -29
  71. /package/dist/{ast-rule-runner-2K2VKDB6.js.map → ast-rule-runner-OO3Q7ZBT.js.map} +0 -0
  72. /package/dist/{child-mcp-config-FS63VN4T.js.map → child-mcp-config-KIG3IH54.js.map} +0 -0
  73. /package/dist/{chunk-3RILNEWZ.js.map → chunk-242MYZDF.js.map} +0 -0
  74. /package/dist/{chunk-VQGUGZPR.js.map → chunk-2PHZFAII.js.map} +0 -0
  75. /package/dist/{chunk-HDXB5U74.js.map → chunk-4LPUI2VD.js.map} +0 -0
  76. /package/dist/{chunk-2EITSDXF.js.map → chunk-76AEYPGB.js.map} +0 -0
  77. /package/dist/{chunk-RRZ5PGJA.js.map → chunk-ATO5WYUK.js.map} +0 -0
  78. /package/dist/{chunk-5C5SHEOU.js.map → chunk-BALXYZTD.js.map} +0 -0
  79. /package/dist/{chunk-SX3DXUQV.js.map → chunk-CFRWFP2Y.js.map} +0 -0
  80. /package/dist/{chunk-LY3RSLFR.js.map → chunk-CI4REE7T.js.map} +0 -0
  81. /package/dist/{chunk-LQ7CMUN4.js.map → chunk-DGHKIJX3.js.map} +0 -0
  82. /package/dist/{chunk-JPDHHOZF.js.map → chunk-DS66G22E.js.map} +0 -0
  83. /package/dist/{chunk-36YDR3WA.js.map → chunk-FNX43T6H.js.map} +0 -0
  84. /package/dist/{chunk-DCD6WNPJ.js.map → chunk-FTMN6UMD.js.map} +0 -0
  85. /package/dist/{chunk-4TR3BIAE.js.map → chunk-GBHVJL3D.js.map} +0 -0
  86. /package/dist/{chunk-TXMTK42U.js.map → chunk-HXZ2A6VE.js.map} +0 -0
  87. /package/dist/{chunk-SR3MQ2GG.js.map → chunk-ILTFBXCX.js.map} +0 -0
  88. /package/dist/{chunk-PBMQEUMG.js.map → chunk-JARNYJYL.js.map} +0 -0
  89. /package/dist/{chunk-HMBI27U4.js.map → chunk-KFRIU2O6.js.map} +0 -0
  90. /package/dist/{chunk-BYNNHRTW.js.map → chunk-KTGF4KT6.js.map} +0 -0
  91. /package/dist/{chunk-B6N6BAB7.js.map → chunk-MFHUTJF3.js.map} +0 -0
  92. /package/dist/{chunk-2DSRYCHY.js.map → chunk-NJHK4YTE.js.map} +0 -0
  93. /package/dist/{chunk-5XYODQTD.js.map → chunk-OA4PUO4V.js.map} +0 -0
  94. /package/dist/{chunk-7BEWN6N4.js.map → chunk-OHXWC6BC.js.map} +0 -0
  95. /package/dist/{chunk-VNGVFKYD.js.map → chunk-PNVKH7JD.js.map} +0 -0
  96. /package/dist/{chunk-6BZWANJE.js.map → chunk-SM3JXK6E.js.map} +0 -0
  97. /package/dist/{chunk-ZNPWV2WN.js.map → chunk-TGHZFUGX.js.map} +0 -0
  98. /package/dist/{chunk-MZOXHJCW.js.map → chunk-UCOCWVFT.js.map} +0 -0
  99. /package/dist/{chunk-32L5P7ST.js.map → chunk-UTALVWRN.js.map} +0 -0
  100. /package/dist/{chunk-GIE4QGEL.js.map → chunk-VXVS66SH.js.map} +0 -0
  101. /package/dist/{chunk-BRDADDGN.js.map → chunk-WHXKVYQF.js.map} +0 -0
  102. /package/dist/{chunk-CGAHJ4AW.js.map → chunk-XG7L4FS2.js.map} +0 -0
  103. /package/dist/{chunk-I4KBCYAE.js.map → chunk-Z3DAXWTU.js.map} +0 -0
  104. /package/dist/{cli-circuit-breaker-JMEO5W73.js.map → cli-circuit-breaker-GGXTCAI6.js.map} +0 -0
  105. /package/dist/{composite-router-OYQTAUC5.js.map → composite-router-V56OTZCC.js.map} +0 -0
  106. /package/dist/{consensus-vote-QLS5K6KB.js.map → consensus-vote-54SPKHVA.js.map} +0 -0
  107. /package/dist/{context-retriever-45HON52O.js.map → context-retriever-GA2AOW3O.js.map} +0 -0
  108. /package/dist/{doctor-deep-GZC3E7R7.js.map → doctor-deep-4L6NRB7F.js.map} +0 -0
  109. /package/dist/{doctor-live-JGVTPYI5.js.map → doctor-live-L3GZ7LW2.js.map} +0 -0
  110. /package/dist/{expert-bridge-DLO63EKU.js.map → expert-bridge-5HR42Y5A.js.map} +0 -0
  111. /package/dist/{factory-JRPJZXSI.js.map → factory-4Z5LEEZ4.js.map} +0 -0
  112. /package/dist/{factory-OGOLQSYT.js.map → factory-VMEYE73K.js.map} +0 -0
  113. /package/dist/{improvement-review-INMFJJDY.js.map → improvement-review-OV3ODXRT.js.map} +0 -0
  114. /package/dist/{init-opencode-NLYHW6IY.js.map → init-opencode-KAH6U7MH.js.map} +0 -0
  115. /package/dist/{issue-triage-U6DTKFH7.js.map → issue-triage-A3ZHZBB2.js.map} +0 -0
  116. /package/dist/{pr-reviewer-helpers-5J6RP2VV.js.map → pr-reviewer-helpers-YTSQZUGE.js.map} +0 -0
  117. /package/dist/{registry-command-4JZVWEBA.js.map → registry-command-T2C5FGIT.js.map} +0 -0
  118. /package/dist/{repo-security-plan-IXCSU2IU.js.map → repo-security-plan-2DUVHZF7.js.map} +0 -0
  119. /package/dist/{research-helpers-synthesize-3VMID7KI.js.map → research-helpers-synthesize-LOZ5V44B.js.map} +0 -0
  120. /package/dist/{routing-memory-ZQVP734Q.js.map → routing-memory-DOAENN2D.js.map} +0 -0
  121. /package/dist/{session-memory-BFJEA6NL.js.map → session-memory-DTZ66VSH.js.map} +0 -0
  122. /package/dist/{setup-config-66W4FNVG.js.map → setup-config-5ZBB4TGZ.js.map} +0 -0
  123. /package/dist/{setup-custom-api-H6C75XST.js.map → setup-custom-api-ZCBCOBVG.js.map} +0 -0
  124. /package/dist/{setup-data-dir-HL2BZZGS.js.map → setup-data-dir-QKIQW45I.js.map} +0 -0
  125. /package/dist/{tool-memory-XL3YIMGB.js.map → tool-memory-UBJE3I3T.js.map} +0 -0
  126. /package/dist/{unified-registry-RZ23VBFT.js.map → unified-registry-3WHILF4V.js.map} +0 -0
  127. /package/dist/{weather-report-IKCYZAZ3.js.map → weather-report-MZDEPXYC.js.map} +0 -0
@@ -5,7 +5,7 @@ import {
5
5
  err,
6
6
  getErrorMessage,
7
7
  ok
8
- } from "./chunk-AMIRFMFC.js";
8
+ } from "./chunk-TME26QKQ.js";
9
9
  import {
10
10
  findRepoRoot,
11
11
  getActiveWorkspaceRoot,
@@ -223,4 +223,4 @@ export {
223
223
  loadPapersRegistry,
224
224
  savePapersRegistry
225
225
  };
226
- //# sourceMappingURL=chunk-MZOXHJCW.js.map
226
+ //# sourceMappingURL=chunk-UCOCWVFT.js.map
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  import semver from "semver";
3
- var VERSION = true ? "8.28.2" : "dev";
3
+ var VERSION = true ? "8.28.4" : "dev";
4
4
  var NODE_ENGINE_RANGE = ">=22.5.0";
5
5
  function isNodeVersionSupported(version) {
6
6
  return semver.satisfies(version, NODE_ENGINE_RANGE);
@@ -11,4 +11,4 @@ export {
11
11
  NODE_ENGINE_RANGE,
12
12
  isNodeVersionSupported
13
13
  };
14
- //# sourceMappingURL=chunk-32L5P7ST.js.map
14
+ //# sourceMappingURL=chunk-UTALVWRN.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateSecurityPlan
3
- } from "./chunk-GIE4QGEL.js";
3
+ } from "./chunk-VXVS66SH.js";
4
4
  import {
5
5
  analyzeGitHubRepo
6
6
  } from "./chunk-DGWT7DXX.js";
@@ -21,10 +21,10 @@ import {
21
21
  import {
22
22
  DEFAULT_TASK_TTL_MS,
23
23
  clampTaskTtl
24
- } from "./chunk-5C5SHEOU.js";
24
+ } from "./chunk-BALXYZTD.js";
25
25
  import {
26
26
  executeExpert
27
- } from "./chunk-VQGUGZPR.js";
27
+ } from "./chunk-2PHZFAII.js";
28
28
  import {
29
29
  JobStatusSchema,
30
30
  VOTER_ROLES,
@@ -55,7 +55,7 @@ import {
55
55
  toJobSummary,
56
56
  updateStage,
57
57
  writeJobCancelled
58
- } from "./chunk-TXMTK42U.js";
58
+ } from "./chunk-HXZ2A6VE.js";
59
59
  import {
60
60
  allOf,
61
61
  anyOf
@@ -63,19 +63,19 @@ import {
63
63
  import {
64
64
  normalizeTopicToCanonical,
65
65
  synthesizeResearch
66
- } from "./chunk-PBMQEUMG.js";
66
+ } from "./chunk-JARNYJYL.js";
67
67
  import {
68
68
  IssueTriage,
69
69
  createDurableAuditSink,
70
70
  createDurableAuditTrail
71
- } from "./chunk-SR3MQ2GG.js";
71
+ } from "./chunk-ILTFBXCX.js";
72
72
  import {
73
73
  resolveEnvMode,
74
74
  sanitizeInput
75
- } from "./chunk-2EITSDXF.js";
75
+ } from "./chunk-76AEYPGB.js";
76
76
  import {
77
77
  withPrerequisite
78
- } from "./chunk-6BZWANJE.js";
78
+ } from "./chunk-SM3JXK6E.js";
79
79
  import {
80
80
  NOOP_NOTIFIER,
81
81
  RateLimiter,
@@ -100,18 +100,18 @@ import {
100
100
  withAuditTrail,
101
101
  withProgressHeartbeat,
102
102
  wrapToolWithTimeout
103
- } from "./chunk-BRDADDGN.js";
103
+ } from "./chunk-WHXKVYQF.js";
104
104
  import {
105
105
  createAuditTrail,
106
106
  createGraphAuditBridge,
107
107
  emitPipelinePolicyEvent
108
- } from "./chunk-5XYODQTD.js";
108
+ } from "./chunk-OA4PUO4V.js";
109
109
  import {
110
110
  EventTopics,
111
111
  createEvent,
112
112
  getGlobalEventBus,
113
113
  getGlobalRegistry
114
- } from "./chunk-DCD6WNPJ.js";
114
+ } from "./chunk-FTMN6UMD.js";
115
115
  import {
116
116
  IDENTIFIER_RE,
117
117
  LANG_VALUES,
@@ -144,7 +144,7 @@ import {
144
144
  parseRegistry,
145
145
  sourceExistsInRegistry,
146
146
  summarizeContextForPrompt
147
- } from "./chunk-SX3DXUQV.js";
147
+ } from "./chunk-CFRWFP2Y.js";
148
148
  import {
149
149
  REGISTRY_PATH,
150
150
  getProjectRoot,
@@ -152,25 +152,25 @@ import {
152
152
  loadTechniquesRegistry,
153
153
  resolveInsideRoot,
154
154
  resolveRegistryRoot
155
- } from "./chunk-MZOXHJCW.js";
155
+ } from "./chunk-UCOCWVFT.js";
156
156
  import {
157
157
  getTokenEnvVars,
158
158
  resolveToken
159
- } from "./chunk-LQ7CMUN4.js";
159
+ } from "./chunk-DGHKIJX3.js";
160
160
  import {
161
161
  DEFAULT_RELEVANCE_CONFIG,
162
162
  MemoryImportance,
163
163
  MemoryType,
164
164
  calculateTextJaccardSimilarity,
165
165
  getToolMemory
166
- } from "./chunk-RRZ5PGJA.js";
166
+ } from "./chunk-ATO5WYUK.js";
167
167
  import {
168
168
  STOPWORDS,
169
169
  truncateWithInfo
170
170
  } from "./chunk-7LP6VJRP.js";
171
171
  import {
172
172
  createSessionMemory
173
- } from "./chunk-HDXB5U74.js";
173
+ } from "./chunk-4LPUI2VD.js";
174
174
  import {
175
175
  BUILT_IN_EXPERTS,
176
176
  BuiltInExpertTypeSchema,
@@ -188,25 +188,25 @@ import {
188
188
  getAvailableClis,
189
189
  sleep,
190
190
  withTimeout
191
- } from "./chunk-VNGVFKYD.js";
191
+ } from "./chunk-PNVKH7JD.js";
192
192
  import {
193
193
  BaseAdapter,
194
194
  createStream,
195
195
  requireApiKey,
196
196
  validateApiKeyPresence
197
- } from "./chunk-56WJLZ5I.js";
197
+ } from "./chunk-5YKKV4BT.js";
198
198
  import {
199
199
  DEFAULTS
200
- } from "./chunk-HMBI27U4.js";
200
+ } from "./chunk-KFRIU2O6.js";
201
201
  import {
202
202
  getAvailabilityCache,
203
203
  getCliForModelId,
204
204
  resolveFallback
205
- } from "./chunk-3RILNEWZ.js";
205
+ } from "./chunk-242MYZDF.js";
206
206
  import {
207
207
  generateHyphenId,
208
208
  generateUUID
209
- } from "./chunk-2DSRYCHY.js";
209
+ } from "./chunk-NJHK4YTE.js";
210
210
  import {
211
211
  AGENT_ROUTER_TIMEOUTS,
212
212
  API_TIMEOUTS,
@@ -312,7 +312,7 @@ import {
312
312
  selectStrategyByManifest,
313
313
  toExpertTaskAnalysisResult,
314
314
  withStep
315
- } from "./chunk-AMIRFMFC.js";
315
+ } from "./chunk-TME26QKQ.js";
316
316
  import {
317
317
  ensureLearningDir,
318
318
  getMetaOutcomesFile,
@@ -1020,8 +1020,13 @@ var NexusEnvSchema = z11.object({
1020
1020
  NEXUS_TMPDIR: z11.string().optional(),
1021
1021
  // ClawGuard access-policy mode.
1022
1022
  NEXUS_ACCESS_POLICY_MODE: z11.enum(["off", "audit", "confirm_risky", "enforce"]).optional(),
1023
- // Sandbox mode (epic #2500).
1024
- NEXUS_SANDBOX: boolStr.optional(),
1023
+ // Sandbox FLAVOR string (`docker-opencode`, `codex`, …), set by the host
1024
+ // image so sandbox-detection knows it is inside one (epic #2500, #5026). It
1025
+ // was registered as a boolean while every producer and reader used a flavor
1026
+ // string, so the documented value warned as invalid at startup (#5695).
1027
+ // Empty is the POSIX idiom for "override the image's export and turn it off";
1028
+ // sandbox-detection reads empty as unset, so the validator accepts it too.
1029
+ NEXUS_SANDBOX: z11.string().optional(),
1025
1030
  NEXUS_SANDBOX_ROOT: z11.string().optional(),
1026
1031
  NEXUS_ALLOW_MOCK_ORCHESTRATION: boolStr.optional(),
1027
1032
  // Explicit opt-in for simulateVotes outside test runners (#4170) — read by
@@ -29882,7 +29887,7 @@ function execIdFields(executionId) {
29882
29887
  async function populateUnifiedContextOnState(state, options) {
29883
29888
  const taskCandidate = state["task"];
29884
29889
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
29885
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-45HON52O.js");
29890
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-GA2AOW3O.js");
29886
29891
  const category = inferTaskCategory2(taskCandidate);
29887
29892
  const executionId = options?.executionId;
29888
29893
  const execFields = execIdFields(executionId);
@@ -45287,7 +45292,7 @@ async function tryIssueTriage(task) {
45287
45292
  try {
45288
45293
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
45289
45294
  if (issueMatch === null) return null;
45290
- const { createIssueTriage } = await import("./issue-triage-U6DTKFH7.js");
45295
+ const { createIssueTriage } = await import("./issue-triage-A3ZHZBB2.js");
45291
45296
  const triage = createIssueTriage();
45292
45297
  const owner = issueMatch[1] ?? "";
45293
45298
  const num = issueMatch[2] ?? "";
@@ -45315,7 +45320,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
45315
45320
  ]);
45316
45321
  async function classifyWithLLM(task) {
45317
45322
  try {
45318
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-DLO63EKU.js");
45323
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-5HR42Y5A.js");
45319
45324
  const prompt = [
45320
45325
  "Classify this task into exactly one pipeline template.",
45321
45326
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -45689,7 +45694,7 @@ function buildVotingInput(plan, config) {
45689
45694
  }
45690
45695
  async function executeSingleVote(plan, config, log) {
45691
45696
  try {
45692
- const { executeVoting } = await import("./consensus-vote-QLS5K6KB.js");
45697
+ const { executeVoting } = await import("./consensus-vote-54SPKHVA.js");
45693
45698
  const input = buildVotingInput(plan, config);
45694
45699
  const result = await executeVoting(input, log);
45695
45700
  return parseVotingResult(result);
@@ -47248,7 +47253,7 @@ var memoryInitPromise = null;
47248
47253
  async function initPipelineMemory() {
47249
47254
  if (cachedMemory !== null) return cachedMemory;
47250
47255
  try {
47251
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-BFJEA6NL.js");
47256
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-DTZ66VSH.js");
47252
47257
  const { getLearningDir } = await import("./learning-persistence-TX2WE7Y7.js");
47253
47258
  const mem = createSessionMemory2(getLearningDir());
47254
47259
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -47310,7 +47315,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
47310
47315
  callRecord(routingMemoryCache);
47311
47316
  return;
47312
47317
  }
47313
- routingMemoryInitPromise ??= import("./routing-memory-ZQVP734Q.js").then(({ createRoutingMemory }) => {
47318
+ routingMemoryInitPromise ??= import("./routing-memory-DOAENN2D.js").then(({ createRoutingMemory }) => {
47314
47319
  routingMemoryCache ??= createRoutingMemory();
47315
47320
  return routingMemoryCache;
47316
47321
  }).catch((error) => {
@@ -47344,7 +47349,7 @@ ${text}` : "";
47344
47349
  }
47345
47350
  async function getWeatherContext() {
47346
47351
  try {
47347
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-IKCYZAZ3.js");
47352
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-MZDEPXYC.js");
47348
47353
  const report = generateWeatherReport2({ includeAdaptive: true });
47349
47354
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
47350
47355
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -47362,7 +47367,7 @@ ${lines}
47362
47367
  }
47363
47368
  async function getMemoryContext(task) {
47364
47369
  try {
47365
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-BFJEA6NL.js");
47370
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-DTZ66VSH.js");
47366
47371
  const { getLearningDir } = await import("./learning-persistence-TX2WE7Y7.js");
47367
47372
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
47368
47373
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -47481,7 +47486,7 @@ ${contextBlock}`;
47481
47486
  const strategy = config.votingStrategy ?? "higher_order";
47482
47487
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
47483
47488
  try {
47484
- const { executeVoting } = await import("./consensus-vote-QLS5K6KB.js");
47489
+ const { executeVoting } = await import("./consensus-vote-54SPKHVA.js");
47485
47490
  const votingResult = await executeVoting(
47486
47491
  {
47487
47492
  proposal: buildVoteProposal(plan, research),
@@ -47912,7 +47917,7 @@ async function searchCodebaseForTask(task) {
47912
47917
  }
47913
47918
  async function queryResearchRegistry(task) {
47914
47919
  try {
47915
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-3VMID7KI.js");
47920
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-LOZ5V44B.js");
47916
47921
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
47917
47922
  if (topic === void 0) return null;
47918
47923
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -47983,7 +47988,7 @@ function createScanStageWrapper() {
47983
47988
  try {
47984
47989
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
47985
47990
  if (slug !== void 0) {
47986
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-IXCSU2IU.js");
47991
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-2DUVHZF7.js");
47987
47992
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
47988
47993
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
47989
47994
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -51217,7 +51222,7 @@ var GitHubTaskTracker = class {
51217
51222
  cachedProvider = null;
51218
51223
  async getProvider() {
51219
51224
  if (this.cachedProvider !== null) return this.cachedProvider;
51220
- const { createScmProvider } = await import("./factory-OGOLQSYT.js");
51225
+ const { createScmProvider } = await import("./factory-VMEYE73K.js");
51221
51226
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
51222
51227
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
51223
51228
  this.cachedProvider = result.value;
@@ -52121,7 +52126,7 @@ async function probeSource(source, includeModelIds) {
52121
52126
  }
52122
52127
  }
52123
52128
  async function defaultSources(includeOpenRouter) {
52124
- const { createAllAdapters: createAllAdapters2 } = await import("./factory-JRPJZXSI.js");
52129
+ const { createAllAdapters: createAllAdapters2 } = await import("./factory-4Z5LEEZ4.js");
52125
52130
  const adapters = createAllAdapters2();
52126
52131
  return buildDefaultModelSources(adapters, { includeOpenRouter });
52127
52132
  }
@@ -55425,14 +55430,14 @@ function createDeprecatedModeFallback(requestedMode, policyConfig) {
55425
55430
  logger52.warn(`Sandbox mode "${requestedMode}" is no longer supported; using "policy" mode`, {
55426
55431
  requestedMode,
55427
55432
  actualMode: "policy",
55428
- reason: "In-process Docker/Deno executors were deleted in #2551. Use the OpenCode sandbox bootstrap for real isolation (NEXUS_SANDBOX environment variable, see docs/guides/SANDBOXED-USAGE.md)."
55433
+ reason: "In-process Docker/Deno executors were deleted in #2551. For real isolation run inside the OpenCode Docker image (docs/guides/SANDBOXED-USAGE.md); the NEXUS_SANDBOX variable only tells nexus-agents it is inside one, it does not confine anything (#5026)."
55429
55434
  });
55430
55435
  const executor = new PolicySandboxExecutor(policyConfig);
55431
55436
  return {
55432
55437
  executor,
55433
55438
  actualMode: "policy",
55434
55439
  usedFallback: true,
55435
- warning: `Sandbox mode "${requestedMode}" is no longer supported; using "policy" mode. For real isolation, use the NEXUS_SANDBOX bootstrap.`
55440
+ warning: `Sandbox mode "${requestedMode}" is no longer supported; using "policy" mode. For real isolation run inside the OpenCode Docker image (docs/guides/SANDBOXED-USAGE.md); NEXUS_SANDBOX only signals that you are inside one.`
55436
55441
  };
55437
55442
  }
55438
55443
 
@@ -56197,4 +56202,4 @@ export {
56197
56202
  shutdownFeedbackSubscriber,
56198
56203
  createEventBusBridge
56199
56204
  };
56200
- //# sourceMappingURL=chunk-Z6UJ7Y3N.js.map
56205
+ //# sourceMappingURL=chunk-UUULOA5M.js.map