nexus-agents 2.174.0 → 2.174.2

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 (126) hide show
  1. package/dist/{child-mcp-config-EQ2NKTK2.js → child-mcp-config-GWB7JLIS.js} +2 -2
  2. package/dist/{chunk-26WHBGN6.js → chunk-2CB6QMRX.js} +35 -35
  3. package/dist/{chunk-TZS5IKWW.js → chunk-3P7SMHBU.js} +3 -3
  4. package/dist/{chunk-YXLJNG7E.js → chunk-4PTAG65V.js} +2 -2
  5. package/dist/{chunk-MM6UYUIC.js → chunk-5QVJCBM4.js} +3 -3
  6. package/dist/{chunk-LSMFXWRN.js → chunk-6RRAQFSX.js} +2 -2
  7. package/dist/{chunk-YVVUKVZV.js → chunk-ASJTVA7W.js} +5 -5
  8. package/dist/{chunk-OPZQQWVW.js → chunk-DGR27REV.js} +4 -170
  9. package/dist/chunk-DGR27REV.js.map +1 -0
  10. package/dist/{chunk-KOK66W2C.js → chunk-DJZGCMNU.js} +2 -2
  11. package/dist/{chunk-TFU5J53T.js → chunk-E35RUETV.js} +2 -2
  12. package/dist/{chunk-NDNJ3TBM.js → chunk-EDWON3X5.js} +4 -4
  13. package/dist/{chunk-KNOIZAYR.js → chunk-H5KLPUAL.js} +2 -2
  14. package/dist/{chunk-KKFTLDNO.js → chunk-HUYP2XXH.js} +2 -2
  15. package/dist/{chunk-P7BKE3OH.js → chunk-IVINLVGP.js} +2 -2
  16. package/dist/{chunk-AJHA7DSS.js → chunk-JSIX5L3C.js} +2 -2
  17. package/dist/{chunk-TOH2HSHH.js → chunk-JVBI4WKP.js} +35 -5
  18. package/dist/{chunk-TOH2HSHH.js.map → chunk-JVBI4WKP.js.map} +1 -1
  19. package/dist/{chunk-ZLQLBSSQ.js → chunk-K6NXLBHG.js} +22 -9
  20. package/dist/{chunk-ZLQLBSSQ.js.map → chunk-K6NXLBHG.js.map} +1 -1
  21. package/dist/{chunk-NCGPKRRY.js → chunk-KAL22DYO.js} +2 -2
  22. package/dist/{chunk-IJMNDXPZ.js → chunk-KU2HPCJG.js} +4 -4
  23. package/dist/{chunk-22NGPM4P.js → chunk-KWKGX7LC.js} +5 -5
  24. package/dist/{chunk-AOOZ6IZB.js → chunk-KYF4YAZO.js} +3 -3
  25. package/dist/{chunk-4NYZ2VTW.js → chunk-MRRKFMYJ.js} +4 -4
  26. package/dist/{chunk-VAD2FMNC.js → chunk-OCTNNEXT.js} +36 -11
  27. package/dist/chunk-OCTNNEXT.js.map +1 -0
  28. package/dist/{chunk-HZB3LIBF.js → chunk-OGR5Q6QO.js} +5 -5
  29. package/dist/chunk-OM2VVQKB.js +172 -0
  30. package/dist/chunk-OM2VVQKB.js.map +1 -0
  31. package/dist/{chunk-ZMM3HJ2E.js → chunk-PN43VH6Z.js} +7 -7
  32. package/dist/{chunk-CERGIC66.js → chunk-RAIFOYRM.js} +2 -2
  33. package/dist/{chunk-3DI4CEC7.js → chunk-SGIWJYLJ.js} +2 -2
  34. package/dist/{chunk-MLJAC2UH.js → chunk-UB6APBIY.js} +2 -2
  35. package/dist/{chunk-JUUHARON.js → chunk-VSETLO4Q.js} +2 -2
  36. package/dist/{chunk-25ZJ5TCC.js → chunk-Y5JA7XEO.js} +404 -378
  37. package/dist/chunk-Y5JA7XEO.js.map +1 -0
  38. package/dist/{chunk-SDFC2IOJ.js → chunk-YE2XMU3T.js} +3 -3
  39. package/dist/{chunk-V4XEPUCM.js → chunk-YUCJ7VSJ.js} +8 -8
  40. package/dist/{chunk-QPKG7LS7.js → chunk-Z77MIV3C.js} +2 -2
  41. package/dist/{cli-circuit-breaker-OKP72JMQ.js → cli-circuit-breaker-EINPV2CX.js} +3 -3
  42. package/dist/cli.js +41 -40
  43. package/dist/cli.js.map +1 -1
  44. package/dist/{composite-router-BYXWBPQU.js → composite-router-CUJAG7O4.js} +2 -2
  45. package/dist/{consensus-vote-UJRG6CJS.js → consensus-vote-BLCQCWPV.js} +16 -15
  46. package/dist/{context-retriever-TAUTDY3F.js → context-retriever-MTJR3AQM.js} +8 -8
  47. package/dist/{dist-KUG63MRZ.js → dist-GR7PQU7T.js} +563 -482
  48. package/dist/dist-GR7PQU7T.js.map +1 -0
  49. package/dist/{doctor-deep-XKGC3T76.js → doctor-deep-X2KP2G4M.js} +3 -3
  50. package/dist/{expert-bridge-WOKMAGXB.js → expert-bridge-2W2JMFQW.js} +4 -4
  51. package/dist/{factory-ETFUFSGU.js → factory-7UFJ6LXW.js} +9 -8
  52. package/dist/{factory-M4OE3GLA.js → factory-SC5D5P3C.js} +5 -5
  53. package/dist/{improvement-review-CBVDAPCL.js → improvement-review-ZMUJQSX3.js} +5 -5
  54. package/dist/index.d.ts +17 -0
  55. package/dist/index.js +30 -29
  56. package/dist/index.js.map +1 -1
  57. package/dist/{init-opencode-442YJUON.js → init-opencode-I5XSFY34.js} +6 -5
  58. package/dist/{init-opencode-442YJUON.js.map → init-opencode-I5XSFY34.js.map} +1 -1
  59. package/dist/{issue-triage-S7RSXHCS.js → issue-triage-KOIPTNDH.js} +6 -6
  60. package/dist/{pr-reviewer-helpers-UVDDO3T4.js → pr-reviewer-helpers-CZDMP5UJ.js} +4 -4
  61. package/dist/{registry-command-DWOQ2IV4.js → registry-command-5J6RJZMS.js} +2 -2
  62. package/dist/{repo-security-plan-5P23NS3N.js → repo-security-plan-MKSCD567.js} +3 -3
  63. package/dist/{research-helpers-synthesize-5AIKCDA2.js → research-helpers-synthesize-TIT43XF4.js} +4 -4
  64. package/dist/{routing-memory-BOTPCHXJ.js → routing-memory-HAWL7RKO.js} +2 -2
  65. package/dist/{session-memory-KOUNAH5O.js → session-memory-RPSM7Y4Q.js} +3 -3
  66. package/dist/{setup-command-DW3DQJMG.js → setup-command-SORJLYU3.js} +14 -13
  67. package/dist/{setup-config-BBUFGXW2.js → setup-config-YDA4MY4N.js} +3 -3
  68. package/dist/{setup-custom-api-PSVW6DIY.js → setup-custom-api-BZSHB2M5.js} +6 -4
  69. package/dist/{setup-custom-api-PSVW6DIY.js.map → setup-custom-api-BZSHB2M5.js.map} +1 -1
  70. package/dist/{tool-memory-RBACIEGW.js → tool-memory-FCEJMKEH.js} +5 -5
  71. package/dist/{unified-registry-35EIUQ2M.js → unified-registry-JWPD2ES2.js} +10 -9
  72. package/dist/{weather-report-YXGRGPCX.js → weather-report-VNABZRH7.js} +2 -2
  73. package/package.json +8 -8
  74. package/dist/chunk-25ZJ5TCC.js.map +0 -1
  75. package/dist/chunk-OPZQQWVW.js.map +0 -1
  76. package/dist/chunk-VAD2FMNC.js.map +0 -1
  77. package/dist/dist-KUG63MRZ.js.map +0 -1
  78. /package/dist/{child-mcp-config-EQ2NKTK2.js.map → child-mcp-config-GWB7JLIS.js.map} +0 -0
  79. /package/dist/{chunk-26WHBGN6.js.map → chunk-2CB6QMRX.js.map} +0 -0
  80. /package/dist/{chunk-TZS5IKWW.js.map → chunk-3P7SMHBU.js.map} +0 -0
  81. /package/dist/{chunk-YXLJNG7E.js.map → chunk-4PTAG65V.js.map} +0 -0
  82. /package/dist/{chunk-MM6UYUIC.js.map → chunk-5QVJCBM4.js.map} +0 -0
  83. /package/dist/{chunk-LSMFXWRN.js.map → chunk-6RRAQFSX.js.map} +0 -0
  84. /package/dist/{chunk-YVVUKVZV.js.map → chunk-ASJTVA7W.js.map} +0 -0
  85. /package/dist/{chunk-KOK66W2C.js.map → chunk-DJZGCMNU.js.map} +0 -0
  86. /package/dist/{chunk-TFU5J53T.js.map → chunk-E35RUETV.js.map} +0 -0
  87. /package/dist/{chunk-NDNJ3TBM.js.map → chunk-EDWON3X5.js.map} +0 -0
  88. /package/dist/{chunk-KNOIZAYR.js.map → chunk-H5KLPUAL.js.map} +0 -0
  89. /package/dist/{chunk-KKFTLDNO.js.map → chunk-HUYP2XXH.js.map} +0 -0
  90. /package/dist/{chunk-P7BKE3OH.js.map → chunk-IVINLVGP.js.map} +0 -0
  91. /package/dist/{chunk-AJHA7DSS.js.map → chunk-JSIX5L3C.js.map} +0 -0
  92. /package/dist/{chunk-NCGPKRRY.js.map → chunk-KAL22DYO.js.map} +0 -0
  93. /package/dist/{chunk-IJMNDXPZ.js.map → chunk-KU2HPCJG.js.map} +0 -0
  94. /package/dist/{chunk-22NGPM4P.js.map → chunk-KWKGX7LC.js.map} +0 -0
  95. /package/dist/{chunk-AOOZ6IZB.js.map → chunk-KYF4YAZO.js.map} +0 -0
  96. /package/dist/{chunk-4NYZ2VTW.js.map → chunk-MRRKFMYJ.js.map} +0 -0
  97. /package/dist/{chunk-HZB3LIBF.js.map → chunk-OGR5Q6QO.js.map} +0 -0
  98. /package/dist/{chunk-ZMM3HJ2E.js.map → chunk-PN43VH6Z.js.map} +0 -0
  99. /package/dist/{chunk-CERGIC66.js.map → chunk-RAIFOYRM.js.map} +0 -0
  100. /package/dist/{chunk-3DI4CEC7.js.map → chunk-SGIWJYLJ.js.map} +0 -0
  101. /package/dist/{chunk-MLJAC2UH.js.map → chunk-UB6APBIY.js.map} +0 -0
  102. /package/dist/{chunk-JUUHARON.js.map → chunk-VSETLO4Q.js.map} +0 -0
  103. /package/dist/{chunk-SDFC2IOJ.js.map → chunk-YE2XMU3T.js.map} +0 -0
  104. /package/dist/{chunk-V4XEPUCM.js.map → chunk-YUCJ7VSJ.js.map} +0 -0
  105. /package/dist/{chunk-QPKG7LS7.js.map → chunk-Z77MIV3C.js.map} +0 -0
  106. /package/dist/{cli-circuit-breaker-OKP72JMQ.js.map → cli-circuit-breaker-EINPV2CX.js.map} +0 -0
  107. /package/dist/{composite-router-BYXWBPQU.js.map → composite-router-CUJAG7O4.js.map} +0 -0
  108. /package/dist/{consensus-vote-UJRG6CJS.js.map → consensus-vote-BLCQCWPV.js.map} +0 -0
  109. /package/dist/{context-retriever-TAUTDY3F.js.map → context-retriever-MTJR3AQM.js.map} +0 -0
  110. /package/dist/{doctor-deep-XKGC3T76.js.map → doctor-deep-X2KP2G4M.js.map} +0 -0
  111. /package/dist/{expert-bridge-WOKMAGXB.js.map → expert-bridge-2W2JMFQW.js.map} +0 -0
  112. /package/dist/{factory-ETFUFSGU.js.map → factory-7UFJ6LXW.js.map} +0 -0
  113. /package/dist/{factory-M4OE3GLA.js.map → factory-SC5D5P3C.js.map} +0 -0
  114. /package/dist/{improvement-review-CBVDAPCL.js.map → improvement-review-ZMUJQSX3.js.map} +0 -0
  115. /package/dist/{issue-triage-S7RSXHCS.js.map → issue-triage-KOIPTNDH.js.map} +0 -0
  116. /package/dist/{pr-reviewer-helpers-UVDDO3T4.js.map → pr-reviewer-helpers-CZDMP5UJ.js.map} +0 -0
  117. /package/dist/{registry-command-DWOQ2IV4.js.map → registry-command-5J6RJZMS.js.map} +0 -0
  118. /package/dist/{repo-security-plan-5P23NS3N.js.map → repo-security-plan-MKSCD567.js.map} +0 -0
  119. /package/dist/{research-helpers-synthesize-5AIKCDA2.js.map → research-helpers-synthesize-TIT43XF4.js.map} +0 -0
  120. /package/dist/{routing-memory-BOTPCHXJ.js.map → routing-memory-HAWL7RKO.js.map} +0 -0
  121. /package/dist/{session-memory-KOUNAH5O.js.map → session-memory-RPSM7Y4Q.js.map} +0 -0
  122. /package/dist/{setup-command-DW3DQJMG.js.map → setup-command-SORJLYU3.js.map} +0 -0
  123. /package/dist/{setup-config-BBUFGXW2.js.map → setup-config-YDA4MY4N.js.map} +0 -0
  124. /package/dist/{tool-memory-RBACIEGW.js.map → tool-memory-FCEJMKEH.js.map} +0 -0
  125. /package/dist/{unified-registry-35EIUQ2M.js.map → unified-registry-JWPD2ES2.js.map} +0 -0
  126. /package/dist/{weather-report-YXGRGPCX.js.map → weather-report-VNABZRH7.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLogger
3
- } from "./chunk-25ZJ5TCC.js";
3
+ } from "./chunk-Y5JA7XEO.js";
4
4
  import "./chunk-AXTD4TFK.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-EQ2NKTK2.js.map
63
+ //# sourceMappingURL=child-mcp-config-GWB7JLIS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateSecurityPlan
3
- } from "./chunk-MLJAC2UH.js";
3
+ } from "./chunk-UB6APBIY.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-V4XEPUCM.js";
24
+ } from "./chunk-YUCJ7VSJ.js";
25
25
  import {
26
26
  executeExpert
27
- } from "./chunk-ZMM3HJ2E.js";
27
+ } from "./chunk-PN43VH6Z.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-VAD2FMNC.js";
48
+ } from "./chunk-OCTNNEXT.js";
49
49
  import {
50
50
  normalizeTopicToCanonical,
51
51
  synthesizeResearch
52
- } from "./chunk-TZS5IKWW.js";
52
+ } from "./chunk-3P7SMHBU.js";
53
53
  import {
54
54
  IssueTriage
55
- } from "./chunk-22NGPM4P.js";
55
+ } from "./chunk-KWKGX7LC.js";
56
56
  import {
57
57
  resolveEnvMode,
58
58
  sanitizeInput
59
- } from "./chunk-NCGPKRRY.js";
59
+ } from "./chunk-KAL22DYO.js";
60
60
  import {
61
61
  withPrerequisite
62
- } from "./chunk-AOOZ6IZB.js";
62
+ } from "./chunk-KYF4YAZO.js";
63
63
  import {
64
64
  NOOP_NOTIFIER,
65
65
  RateLimiter,
@@ -82,18 +82,18 @@ import {
82
82
  withAuditTrail,
83
83
  withProgressHeartbeat,
84
84
  wrapToolWithTimeout
85
- } from "./chunk-MM6UYUIC.js";
85
+ } from "./chunk-5QVJCBM4.js";
86
86
  import {
87
87
  createAuditTrail,
88
88
  createGraphAuditBridge,
89
89
  emitPipelinePolicyEvent
90
- } from "./chunk-JUUHARON.js";
90
+ } from "./chunk-VSETLO4Q.js";
91
91
  import {
92
92
  EventTopics,
93
93
  createEvent,
94
94
  getGlobalEventBus,
95
95
  getGlobalRegistry
96
- } from "./chunk-4NYZ2VTW.js";
96
+ } from "./chunk-MRRKFMYJ.js";
97
97
  import {
98
98
  IDENTIFIER_RE,
99
99
  LANG_VALUES,
@@ -126,15 +126,15 @@ import {
126
126
  parseRegistry,
127
127
  sourceExistsInRegistry,
128
128
  summarizeContextForPrompt
129
- } from "./chunk-HZB3LIBF.js";
129
+ } from "./chunk-OGR5Q6QO.js";
130
130
  import {
131
131
  getTokenEnvVars,
132
132
  resolveToken
133
- } from "./chunk-KKFTLDNO.js";
133
+ } from "./chunk-HUYP2XXH.js";
134
134
  import {
135
135
  loadPapersRegistry,
136
136
  loadTechniquesRegistry
137
- } from "./chunk-KOK66W2C.js";
137
+ } from "./chunk-DJZGCMNU.js";
138
138
  import {
139
139
  resolveInsideRoot
140
140
  } from "./chunk-NUBSJGQZ.js";
@@ -143,14 +143,14 @@ import {
143
143
  MemoryImportance,
144
144
  calculateTextJaccardSimilarity,
145
145
  getToolMemory
146
- } from "./chunk-NDNJ3TBM.js";
146
+ } from "./chunk-EDWON3X5.js";
147
147
  import {
148
148
  STOPWORDS,
149
149
  truncateWithInfo
150
150
  } from "./chunk-6T3EPABN.js";
151
151
  import {
152
152
  createSessionMemory
153
- } from "./chunk-P7BKE3OH.js";
153
+ } from "./chunk-IVINLVGP.js";
154
154
  import {
155
155
  BUILT_IN_EXPERTS,
156
156
  BuiltInExpertTypeSchema,
@@ -168,25 +168,25 @@ import {
168
168
  getAvailableClis,
169
169
  sleep,
170
170
  withTimeout
171
- } from "./chunk-ZLQLBSSQ.js";
171
+ } from "./chunk-K6NXLBHG.js";
172
172
  import {
173
173
  BaseAdapter,
174
174
  createStream,
175
175
  requireApiKey,
176
176
  validateApiKeyPresence
177
- } from "./chunk-LSMFXWRN.js";
177
+ } from "./chunk-6RRAQFSX.js";
178
178
  import {
179
179
  DEFAULTS
180
- } from "./chunk-OPZQQWVW.js";
180
+ } from "./chunk-DGR27REV.js";
181
181
  import {
182
182
  getAvailabilityCache,
183
183
  getCliForModelId,
184
184
  resolveFallback
185
- } from "./chunk-CERGIC66.js";
185
+ } from "./chunk-RAIFOYRM.js";
186
186
  import {
187
187
  generateHyphenId,
188
188
  generateUUID
189
- } from "./chunk-3DI4CEC7.js";
189
+ } from "./chunk-SGIWJYLJ.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-25ZJ5TCC.js";
286
+ } from "./chunk-Y5JA7XEO.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-TAUTDY3F.js");
28347
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-MTJR3AQM.js");
28348
28348
  const category = inferTaskCategory2(taskCandidate);
28349
28349
  const executionId = options?.executionId;
28350
28350
  const execFields = execIdFields(executionId);
@@ -43879,7 +43879,7 @@ async function tryIssueTriage(task) {
43879
43879
  try {
43880
43880
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
43881
43881
  if (issueMatch === null) return null;
43882
- const { createIssueTriage } = await import("./issue-triage-S7RSXHCS.js");
43882
+ const { createIssueTriage } = await import("./issue-triage-KOIPTNDH.js");
43883
43883
  const triage = createIssueTriage();
43884
43884
  const owner = issueMatch[1] ?? "";
43885
43885
  const num = issueMatch[2] ?? "";
@@ -43907,7 +43907,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
43907
43907
  ]);
43908
43908
  async function classifyWithLLM(task) {
43909
43909
  try {
43910
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-WOKMAGXB.js");
43910
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-2W2JMFQW.js");
43911
43911
  const prompt = [
43912
43912
  "Classify this task into exactly one pipeline template.",
43913
43913
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -45548,7 +45548,7 @@ var memoryInitPromise = null;
45548
45548
  async function initPipelineMemory() {
45549
45549
  if (cachedMemory !== null) return cachedMemory;
45550
45550
  try {
45551
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-KOUNAH5O.js");
45551
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-RPSM7Y4Q.js");
45552
45552
  const { getLearningDir } = await import("./learning-persistence-6D5GGT7D.js");
45553
45553
  const mem = createSessionMemory2(getLearningDir());
45554
45554
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -45610,7 +45610,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
45610
45610
  callRecord(routingMemoryCache);
45611
45611
  return;
45612
45612
  }
45613
- routingMemoryInitPromise ??= import("./routing-memory-BOTPCHXJ.js").then(({ createRoutingMemory }) => {
45613
+ routingMemoryInitPromise ??= import("./routing-memory-HAWL7RKO.js").then(({ createRoutingMemory }) => {
45614
45614
  routingMemoryCache ??= createRoutingMemory();
45615
45615
  return routingMemoryCache;
45616
45616
  }).catch((error) => {
@@ -45644,7 +45644,7 @@ ${text}` : "";
45644
45644
  }
45645
45645
  async function getWeatherContext() {
45646
45646
  try {
45647
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-YXGRGPCX.js");
45647
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-VNABZRH7.js");
45648
45648
  const report = generateWeatherReport2({ includeAdaptive: true });
45649
45649
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
45650
45650
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -45662,7 +45662,7 @@ ${lines}
45662
45662
  }
45663
45663
  async function getMemoryContext(task) {
45664
45664
  try {
45665
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-KOUNAH5O.js");
45665
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-RPSM7Y4Q.js");
45666
45666
  const { getLearningDir } = await import("./learning-persistence-6D5GGT7D.js");
45667
45667
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
45668
45668
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -45777,7 +45777,7 @@ ${contextBlock}`;
45777
45777
  const strategy = config.votingStrategy ?? "higher_order";
45778
45778
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
45779
45779
  try {
45780
- const { executeVoting } = await import("./consensus-vote-UJRG6CJS.js");
45780
+ const { executeVoting } = await import("./consensus-vote-BLCQCWPV.js");
45781
45781
  const votingResult = await executeVoting(
45782
45782
  {
45783
45783
  proposal: buildVoteProposal(plan, research),
@@ -46218,7 +46218,7 @@ async function searchCodebaseForTask(task) {
46218
46218
  }
46219
46219
  async function queryResearchRegistry(task) {
46220
46220
  try {
46221
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-5AIKCDA2.js");
46221
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-TIT43XF4.js");
46222
46222
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
46223
46223
  if (topic === void 0) return null;
46224
46224
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -46289,7 +46289,7 @@ function createScanStageWrapper() {
46289
46289
  try {
46290
46290
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
46291
46291
  if (slug !== void 0) {
46292
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-5P23NS3N.js");
46292
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-MKSCD567.js");
46293
46293
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
46294
46294
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
46295
46295
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -49261,7 +49261,7 @@ var GitHubTaskTracker = class {
49261
49261
  cachedProvider = null;
49262
49262
  async getProvider() {
49263
49263
  if (this.cachedProvider !== null) return this.cachedProvider;
49264
- const { createScmProvider } = await import("./factory-M4OE3GLA.js");
49264
+ const { createScmProvider } = await import("./factory-SC5D5P3C.js");
49265
49265
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
49266
49266
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
49267
49267
  this.cachedProvider = result.value;
@@ -50103,7 +50103,7 @@ async function probeSource(source, includeModelIds) {
50103
50103
  }
50104
50104
  }
50105
50105
  async function defaultSources(includeOpenRouter) {
50106
- const { createAllAdapters: createAllAdapters2 } = await import("./factory-ETFUFSGU.js");
50106
+ const { createAllAdapters: createAllAdapters2 } = await import("./factory-7UFJ6LXW.js");
50107
50107
  const adapters = createAllAdapters2();
50108
50108
  return buildDefaultModelSources(adapters, { includeOpenRouter });
50109
50109
  }
@@ -54123,4 +54123,4 @@ export {
54123
54123
  shutdownFeedbackSubscriber,
54124
54124
  createEventBusBridge
54125
54125
  };
54126
- //# sourceMappingURL=chunk-26WHBGN6.js.map
54126
+ //# sourceMappingURL=chunk-2CB6QMRX.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  loadPapersRegistry
3
- } from "./chunk-KOK66W2C.js";
3
+ } from "./chunk-DJZGCMNU.js";
4
4
  import {
5
5
  getErrorMessage
6
- } from "./chunk-25ZJ5TCC.js";
6
+ } from "./chunk-Y5JA7XEO.js";
7
7
 
8
8
  // src/cli/research-helpers-synthesize.ts
9
9
  import { z } from "zod";
@@ -876,4 +876,4 @@ export {
876
876
  AttributedInsightSchema,
877
877
  synthesizeResearch
878
878
  };
879
- //# sourceMappingURL=chunk-TZS5IKWW.js.map
879
+ //# sourceMappingURL=chunk-3P7SMHBU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getErrorMessage
3
- } from "./chunk-25ZJ5TCC.js";
3
+ } from "./chunk-Y5JA7XEO.js";
4
4
 
5
5
  // src/cli/setup-config.ts
6
6
  import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "fs";
@@ -77,4 +77,4 @@ function ensureBackup(outputPath) {
77
77
  export {
78
78
  runConfigInitSync
79
79
  };
80
- //# sourceMappingURL=chunk-YXLJNG7E.js.map
80
+ //# sourceMappingURL=chunk-4PTAG65V.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  emitClawGuardViolation
3
- } from "./chunk-JUUHARON.js";
3
+ } from "./chunk-VSETLO4Q.js";
4
4
  import {
5
5
  CACHE_TIMEOUTS,
6
6
  MCP_TIMEOUTS,
@@ -16,7 +16,7 @@ import {
16
16
  getTimeProvider,
17
17
  ok,
18
18
  resolveToolClassGuardMs
19
- } from "./chunk-25ZJ5TCC.js";
19
+ } from "./chunk-Y5JA7XEO.js";
20
20
  import {
21
21
  getNexusDataDir
22
22
  } from "./chunk-DHVMSIT5.js";
@@ -2023,4 +2023,4 @@ export {
2023
2023
  VOTING_THRESHOLDS,
2024
2024
  ConsensusMetricsSchema
2025
2025
  };
2026
- //# sourceMappingURL=chunk-MM6UYUIC.js.map
2026
+ //# sourceMappingURL=chunk-5QVJCBM4.js.map
@@ -11,7 +11,7 @@ import {
11
11
  isRateLimitLikeError,
12
12
  lookupInTreeCapability,
13
13
  ok
14
- } from "./chunk-25ZJ5TCC.js";
14
+ } from "./chunk-Y5JA7XEO.js";
15
15
 
16
16
  // src/config/model-parameter-support.ts
17
17
  function parseClaudeMajorMinor(bareId) {
@@ -828,4 +828,4 @@ export {
828
828
  DEFAULT_COLLECT_STREAM_MAX_CHUNKS,
829
829
  collectStream
830
830
  };
831
- //# sourceMappingURL=chunk-LSMFXWRN.js.map
831
+ //# sourceMappingURL=chunk-6RRAQFSX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runConfigInitSync
3
- } from "./chunk-YXLJNG7E.js";
3
+ } from "./chunk-4PTAG65V.js";
4
4
  import {
5
5
  VERSION,
6
6
  checkApiKeys,
@@ -8,13 +8,13 @@ import {
8
8
  checkSqlite,
9
9
  defaultConfig,
10
10
  initDataDirectories
11
- } from "./chunk-V4XEPUCM.js";
11
+ } from "./chunk-YUCJ7VSJ.js";
12
12
  import {
13
13
  BUILT_IN_EXPERTS
14
14
  } from "./chunk-YPNQPT2F.js";
15
15
  import {
16
16
  probeAllClis
17
- } from "./chunk-ZLQLBSSQ.js";
17
+ } from "./chunk-K6NXLBHG.js";
18
18
  import {
19
19
  CLI_SUBPROCESS_TIMEOUTS,
20
20
  colors,
@@ -25,7 +25,7 @@ import {
25
25
  getErrorMessage,
26
26
  getTimeProvider,
27
27
  symbols
28
- } from "./chunk-25ZJ5TCC.js";
28
+ } from "./chunk-Y5JA7XEO.js";
29
29
  import {
30
30
  ensureGitignored,
31
31
  findRepoRoot
@@ -2001,4 +2001,4 @@ export {
2001
2001
  setupCommand,
2002
2002
  setupCommandAsync
2003
2003
  };
2004
- //# sourceMappingURL=chunk-YVVUKVZV.js.map
2004
+ //# sourceMappingURL=chunk-ASJTVA7W.js.map
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  API_TIMEOUTS,
3
3
  CLI_TIMEOUTS,
4
- ConfigError,
5
4
  INTERNAL_TIMEOUTS,
6
5
  MCP_TIMEOUTS,
7
6
  TEST_TIMEOUTS,
@@ -11,171 +10,11 @@ import {
11
10
  createGetRateLimitConfig,
12
11
  createGetRetryConfig,
13
12
  createGetTimeout,
14
- createGetToolRateLimit,
15
- createLogger,
16
- err,
17
- ok
18
- } from "./chunk-25ZJ5TCC.js";
19
-
20
- // src/adapters/sdk/types.ts
21
- var PROVIDER_ENV_KEYS = {
22
- anthropic: "ANTHROPIC_API_KEY",
23
- openai: "OPENAI_API_KEY",
24
- google: "GOOGLE_AI_API_KEY",
25
- "custom-openai": "NEXUS_CUSTOM_API_KEY"
26
- };
27
- var CUSTOM_API_BASE_URL_ENV = "NEXUS_CUSTOM_API_BASE_URL";
28
- var CUSTOM_API_ALLOW_PRIVATE_ENV = "NEXUS_CUSTOM_API_ALLOW_PRIVATE";
29
-
30
- // src/adapters/sdk/custom-api-validation.ts
31
- import { isIPv4, isIPv6 } from "net";
32
- import { lookup as dnsLookup } from "dns/promises";
33
- var logger = createLogger({ module: "custom-api-validation" });
34
- function validateCustomApiBaseUrl(raw, opts = {}) {
35
- if (raw === void 0 || raw.trim() === "") {
36
- return err(
37
- new ConfigError(
38
- "Custom API base URL is required but missing. Set NEXUS_CUSTOM_API_BASE_URL or pass `baseUrl` in config."
39
- )
40
- );
41
- }
42
- let url;
43
- try {
44
- url = new URL(raw);
45
- } catch {
46
- return err(new ConfigError(`Custom API base URL is not a valid URL: ${raw}`));
47
- }
48
- if (url.protocol !== "http:" && url.protocol !== "https:") {
49
- return err(
50
- new ConfigError(`Custom API base URL must use http or https, got "${url.protocol}" in ${raw}`)
51
- );
52
- }
53
- const allowPrivate = opts.allowPrivate === true || resolveAllowPrivateFromEnv();
54
- if (!allowPrivate) {
55
- const rejection = classifyPrivateHost(url.hostname);
56
- if (rejection !== null) {
57
- return err(
58
- new ConfigError(
59
- `Custom API base URL rejected (SSRF guard, reason="${rejection.reason}"): ${rejection.message}. Set ${CUSTOM_API_ALLOW_PRIVATE_ENV}=1 to bypass if the gateway runs on a trusted internal host.`
60
- )
61
- );
62
- }
63
- }
64
- return ok(url);
65
- }
66
- function resolveAllowPrivateFromEnv() {
67
- const v = process.env[CUSTOM_API_ALLOW_PRIVATE_ENV];
68
- return v === "1" || v === "true";
69
- }
70
- function classifyPrivateHost(hostname) {
71
- const normalized = normalizeHost(hostname);
72
- const literal = classifyIpAddress(normalized);
73
- if (literal !== "not_an_ip") {
74
- return literal;
75
- }
76
- if (normalized === "localhost" || normalized.endsWith(".localhost") || normalized.endsWith(".local")) {
77
- return {
78
- reason: "loopback",
79
- message: `hostname "${hostname}" resolves to loopback/mDNS`
80
- };
81
- }
82
- return null;
83
- }
84
- function normalizeHost(hostname) {
85
- const stripped = hostname.startsWith("[") && hostname.endsWith("]") ? hostname.slice(1, -1) : hostname;
86
- return stripped.toLowerCase();
87
- }
88
- function classifyIpAddress(normalized) {
89
- if (isIPv4(normalized)) {
90
- return classifyIPv4(normalized);
91
- }
92
- if (isIPv6(normalized)) {
93
- return classifyIPv6(normalized);
94
- }
95
- return "not_an_ip";
96
- }
97
- async function assertCustomApiHostResolvesPublic(hostname, opts = {}) {
98
- const allowPrivate = opts.allowPrivate === true || resolveAllowPrivateFromEnv();
99
- if (allowPrivate) {
100
- return ok(void 0);
101
- }
102
- const normalized = normalizeHost(hostname);
103
- if (isIPv4(normalized) || isIPv6(normalized)) {
104
- return ok(void 0);
105
- }
106
- let addresses;
107
- try {
108
- addresses = await dnsLookup(hostname, { all: true });
109
- } catch (error) {
110
- logger.debug("custom-api SSRF resolve check: DNS lookup failed, skipping (fail-open)", {
111
- hostname,
112
- error: error instanceof Error ? error.message : String(error)
113
- });
114
- return ok(void 0);
115
- }
116
- const rejection = firstPrivateAddress(addresses);
117
- if (rejection !== null) {
118
- return err(
119
- new ConfigError(
120
- `Custom API base URL rejected (SSRF resolve guard, reason="${rejection.reason}"): hostname "${hostname}" resolved to ${rejection.message}. Set ${CUSTOM_API_ALLOW_PRIVATE_ENV}=1 to bypass if the gateway runs on a trusted internal host.`
121
- )
122
- );
123
- }
124
- return ok(void 0);
125
- }
126
- function firstPrivateAddress(addresses) {
127
- for (const { address } of addresses) {
128
- const rejection = classifyIpAddress(address.toLowerCase());
129
- if (rejection !== null && rejection !== "not_an_ip") {
130
- return rejection;
131
- }
132
- }
133
- return null;
134
- }
135
- var IPV4_RULES = [
136
- { match: (a) => a === 127, reason: "loopback", label: "IPv4 loopback" },
137
- { match: (a) => a === 10, reason: "private_range", label: "IPv4 private (10/8)" },
138
- {
139
- match: (a, b) => a === 172 && b >= 16 && b <= 31,
140
- reason: "private_range",
141
- label: "IPv4 private (172.16/12)"
142
- },
143
- {
144
- match: (a, b) => a === 192 && b === 168,
145
- reason: "private_range",
146
- label: "IPv4 private (192.168/16)"
147
- },
148
- {
149
- match: (a, b) => a === 169 && b === 254,
150
- reason: "link_local",
151
- label: "IPv4 link-local (169.254/16 \u2014 AWS IMDS)"
152
- },
153
- { match: (a) => a === 0, reason: "reserved", label: "IPv4 reserved (0/8)" }
154
- ];
155
- function classifyIPv4(ip) {
156
- const parts = ip.split(".").map((p) => Number.parseInt(p, 10));
157
- if (parts.length !== 4 || parts.some((n) => Number.isNaN(n))) return null;
158
- const [a, b] = parts;
159
- for (const rule of IPV4_RULES) {
160
- if (rule.match(a, b)) {
161
- return { reason: rule.reason, message: `${rule.label} (${ip})` };
162
- }
163
- }
164
- return null;
165
- }
166
- function classifyIPv6(ip) {
167
- const lower = ip.toLowerCase();
168
- if (lower === "::1") return { reason: "loopback", message: `IPv6 loopback (${ip})` };
169
- if (lower.startsWith("fe80:"))
170
- return { reason: "link_local", message: `IPv6 link-local (${ip})` };
171
- if (/^fc|^fd/.test(lower)) {
172
- return { reason: "private_range", message: `IPv6 unique-local (${ip}, fc00::/7)` };
173
- }
174
- return null;
175
- }
13
+ createGetToolRateLimit
14
+ } from "./chunk-Y5JA7XEO.js";
176
15
 
177
16
  // src/config/defaults.ts
178
- var CUSTOM_API_DEFAULT_MODEL = "gpt-4o";
17
+ var CUSTOM_API_DEFAULT_MODEL = "gpt-5.5";
179
18
  var DEFAULTS = {
180
19
  /**
181
20
  * Default timeout settings in milliseconds.
@@ -388,12 +227,7 @@ var getToolRateLimit = createGetToolRateLimit(DEFAULTS.TOOL_RATE_LIMITS);
388
227
  var getEnvVarDocumentation = createGetEnvVarDocumentation(DEFAULTS);
389
228
 
390
229
  export {
391
- PROVIDER_ENV_KEYS,
392
- CUSTOM_API_BASE_URL_ENV,
393
- CUSTOM_API_ALLOW_PRIVATE_ENV,
394
- validateCustomApiBaseUrl,
395
- assertCustomApiHostResolvesPublic,
396
230
  CUSTOM_API_DEFAULT_MODEL,
397
231
  DEFAULTS
398
232
  };
399
- //# sourceMappingURL=chunk-OPZQQWVW.js.map
233
+ //# sourceMappingURL=chunk-DGR27REV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config/defaults.ts"],"sourcesContent":["/**\n * Central Configuration Defaults\n *\n * Consolidates common default values used across the codebase.\n * This prevents scattered magic numbers and ensures consistency.\n *\n * Usage:\n * import { DEFAULTS, getTimeout, TIMEOUT_PROFILES } from '../config/defaults.js';\n * const timeout = options.timeout ?? DEFAULTS.TIMEOUT_DEFAULTS.cliMs;\n * const cliTimeout = getTimeoutForCli('claude', 'complex');\n *\n * Environment overrides can be added via NEXUS_* environment variables.\n *\n * @module config/defaults\n * (Source: Central config consolidation initiative)\n */\n\n// Re-export types from defaults-types\nexport type {\n TaskComplexity,\n TimeoutProfile,\n KnownCliName,\n TimeoutDefaults,\n RateLimitDefaults,\n ToolRateLimitConfig,\n RetryDefaults,\n CircuitBreakerDefaults,\n} from './defaults-types.js';\n\nexport { isTaskComplexity, isKnownCliName } from './defaults-types.js';\n\n// Re-export timeout profiles (delegates to config/timeouts.ts)\nexport {\n TIMEOUT_PROFILES,\n getTimeoutProfile,\n getTimeoutForCli,\n} from './defaults-timeout-profiles.js';\n\n// Re-export canonical timeout modules (Issue #984)\nexport {\n CLI_TIMEOUTS,\n VOTE_TIMEOUTS,\n MCP_TIMEOUTS,\n WORKFLOW_TIMEOUTS,\n GRAPH_TIMEOUTS,\n PER_CLI_TASK_TIMEOUTS,\n API_TIMEOUTS,\n INTERNAL_TIMEOUTS,\n TEST_TIMEOUTS,\n TIMEOUT_ENV_VARS,\n getCliTimeoutProfile,\n getCliTimeout,\n resolveVoteTimeout,\n resolveEnvTimeout,\n validateTimeout,\n BACKOFF_CONFIG,\n AGENT_ROUTER_TIMEOUTS,\n CODEX_MCP_TIMEOUTS,\n} from './timeouts.js';\n\n// Re-export env helpers (internal use)\nexport { parseIntEnv, parseFloatEnv, parseBoolEnv } from './defaults-env.js';\n\nimport {\n createGetTimeout,\n createGetRetryConfig,\n createGetRateLimitConfig,\n createGetCircuitBreakerConfig,\n createGetToolRateLimit,\n createGetEnvVarDocumentation,\n} from './defaults-env.js';\nimport {\n API_TIMEOUTS as _API,\n WORKFLOW_TIMEOUTS as _WF,\n MCP_TIMEOUTS as _MCP,\n INTERNAL_TIMEOUTS as _INT,\n TEST_TIMEOUTS as _TEST,\n CLI_TIMEOUTS as _CLI,\n} from './timeouts.js';\n\n// ============================================================================\n// Default Model IDs (#2200 Child 4)\n// ============================================================================\n\n/**\n * Default model identifier for the custom OpenAI-compatible API gateway.\n *\n * Used by both `cli/setup-custom-api.ts` (write to nexus-agents.yaml) and\n * `adapters/auto-adapter.ts` (NEXUS_CUSTOM_MODEL env-var fallback). Single\n * source of truth so changes flow through all consumers.\n *\n * `gpt-4o` was the previous value, chosen because it was widely supported across\n * OpenAI-compatible gateways. It is now END-OF-LIFE at OpenAI, so defaulting to\n * it points new operators at a model their gateway may well refuse (#4408).\n *\n * A custom gateway can serve anything, so ANY default here is a guess — the\n * right long-term answer is to discover the model list from the endpoint\n * (`GET /v1/models`, which this repo already implements) rather than assume one.\n * Until that is wired, guess a current model instead of a retired one.\n *\n * Operators are expected to override via `NEXUS_CUSTOM_MODEL`.\n */\nexport const CUSTOM_API_DEFAULT_MODEL = 'gpt-5.5';\n\n// ============================================================================\n// Central Defaults Object\n// ============================================================================\n\n/**\n * Central defaults object containing all configuration categories.\n */\nexport const DEFAULTS = {\n /**\n * Default timeout settings in milliseconds.\n * Values sourced from config/timeouts.ts (Issue #984).\n */\n TIMEOUT_DEFAULTS: {\n /** CLI tool execution timeout in milliseconds. */\n cliMs: _CLI.default.standard,\n // cliSimpleMs / cliComplexMs removed in #4180 — never read by any production\n // code (the matching NEXUS_TIMEOUT_CLISIMPLE/CLICOMPLEX env vars were silent\n // no-ops, #2977 class). Per-complexity CLI timeouts come from\n // getTimeoutForCli/TIMEOUT_PROFILES (CLI_TIMEOUTS in config/timeouts.ts).\n /** API request timeout in milliseconds. */\n apiMs: _API.defaultMs,\n /** Maximum API timeout in milliseconds. */\n apiMaxMs: _API.maxMs,\n /** Workflow-level timeout in milliseconds (5 minutes). */\n workflowMs: _WF.workflowMs,\n /** Maximum workflow timeout in milliseconds (30 minutes). */\n workflowMaxMs: _WF.workflowMaxMs,\n /** Step-level timeout in milliseconds. */\n stepMs: _INT.selfEvalMs,\n /** MCP operation default timeout in milliseconds (generic, not per-tool). */\n mcpMs: _API.defaultMs,\n /** MCP operation maximum timeout in milliseconds. */\n mcpMaxMs: _MCP.maxMs,\n /** Health check timeout in milliseconds. */\n healthCheckMs: _INT.healthCheckMs,\n /** Global test run timeout in milliseconds (10 minutes). */\n testGlobalMs: _TEST.globalMs,\n /** Per-task test timeout in milliseconds. */\n testTaskMs: _TEST.taskMs,\n /** Circuit breaker reset timeout in milliseconds. */\n circuitBreakerResetMs: _INT.circuitBreakerResetMs,\n },\n\n /**\n * Default rate limit settings for outbound operations.\n */\n RATE_LIMIT_DEFAULTS: {\n /** Global requests per minute. */\n requestsPerMinute: 60,\n /** Whether rate limiting is enabled by default. */\n enabled: true,\n /** Maximum number of concurrent requests. */\n maxConcurrent: 4,\n /** Token bucket capacity. */\n capacity: 100,\n /** Token bucket refill rate per second. */\n refillRate: 10,\n /** Refill interval in milliseconds. */\n refillIntervalMs: 100,\n },\n\n /**\n * Per-tool rate limit defaults for MCP tools.\n * (Source: Issue #274 Phase 2 - per-tool rate limits)\n */\n TOOL_RATE_LIMITS: {\n orchestrate: { capacity: 10, refillRate: 10, refillIntervalMs: 60_000 },\n delegate: { capacity: 20, refillRate: 20, refillIntervalMs: 60_000 },\n workflow: { capacity: 5, refillRate: 5, refillIntervalMs: 60_000 },\n expert: { capacity: 30, refillRate: 30, refillIntervalMs: 60_000 },\n },\n\n /**\n * Default retry strategy settings for transient failures.\n */\n RETRY_DEFAULTS: {\n /** Maximum retry attempts before failing. */\n maxRetries: 3,\n /** Base delay between retries in milliseconds. */\n baseDelayMs: 1_000,\n /** Maximum delay between retries in milliseconds. */\n maxDelayMs: 30_000,\n /** Jitter factor (0-1) to randomize retry delays. */\n jitterFactor: 0.1,\n },\n\n /**\n * Workflow-specific retry defaults.\n */\n WORKFLOW_RETRY_DEFAULTS: {\n /** Maximum retry attempts for workflow steps. */\n maxRetries: 2,\n /** Base delay for workflow retries in milliseconds. */\n baseDelayMs: 2_000,\n /** Maximum delay for workflow retries in milliseconds. */\n maxDelayMs: 60_000,\n /** Jitter factor for workflow retries. */\n jitterFactor: 0.15,\n },\n\n /**\n * CLI-specific retry defaults.\n */\n CLI_RETRY_DEFAULTS: {\n /** Maximum retry attempts for CLI operations. */\n maxRetries: 2,\n /** Base delay for CLI retries in milliseconds. */\n baseDelayMs: 5_000,\n /** Maximum delay for CLI retries in milliseconds. */\n maxDelayMs: 60_000,\n /** Jitter factor for CLI retries. */\n jitterFactor: 0.2,\n },\n\n /**\n * Test framework retry defaults.\n */\n TEST_RETRY_DEFAULTS: {\n /** Maximum retries per test task. */\n maxRetries: 2,\n /** Whether to retry failed tasks by default. */\n retryFailedTasks: true,\n },\n\n /**\n * Default buffer sizing for batching and chunked processing.\n */\n BUFFER_DEFAULTS: {\n /** Preferred batch size for bulk operations. */\n batchSize: 100,\n /** Chunk size for streaming or segmented processing. */\n chunkSize: 256,\n /** Maximum items allowed in a buffer. */\n maxItems: 1_000,\n /** Maximum memory size in bytes (10 MB). */\n maxMemoryBytes: 10 * 1024 * 1024,\n /** Log buffer flush interval in milliseconds. */\n logFlushIntervalMs: 5_000,\n },\n\n // WORKER_DEFAULTS removed in #2977 — the eight settings under this category\n // (maxWorkers, poolSize, idleTimeoutMs, workflowMaxParallel, testParallelism,\n // evaluationMaxWorkers, eventBusMaxHistory, swarmObserverMaxEvents) had zero\n // production consumers. `getWorkerConfig()` was never called from anywhere\n // in src/, and the matching NEXUS_WORKERS_* env vars were silent no-ops.\n // Silent config rot is worse than missing knobs; re-add when a concrete\n // consumer exists.\n\n /**\n * Default circuit breaker settings.\n * (Source: Issue #81 - Circuit breaker for CLI failures)\n */\n CIRCUIT_BREAKER_DEFAULTS: {\n /** Failure threshold to open circuit. */\n failureThreshold: 5,\n /** Reset timeout in milliseconds. */\n resetTimeoutMs: 30_000,\n /** Success threshold to close circuit in half-open state. */\n halfOpenSuccessThreshold: 2,\n /** Whether to count timeouts as failures. */\n countTimeoutsAsFailures: true,\n /** Whether to count auth failures as failures. */\n countAuthFailuresAsFailures: false,\n /** Whether to count rate limit errors as failures (#1529). */\n countRateLimitsAsFailures: true,\n /** Maximum requests allowed in half-open state. */\n halfOpenMaxRequests: 3,\n },\n\n /**\n * Default context/memory settings.\n */\n CONTEXT_DEFAULTS: {\n /** Maximum context tokens. */\n maxTokens: 100_000,\n /** Token budget warning threshold (80%). */\n warningThreshold: 0.8,\n /** Token budget critical threshold (95%). */\n criticalThreshold: 0.95,\n /** Maximum history entries to retain. */\n maxHistoryEntries: 1_000,\n },\n\n /**\n * Default provider/model settings.\n */\n PROVIDER_DEFAULTS: {\n /** Default timeout for provider API calls in ms. */\n timeout: 30_000,\n /** Maximum retries for provider requests. */\n maxRetries: 3,\n /** Default model tier. */\n defaultTier: 'balanced' as const,\n /** Default temperature. */\n temperatureDefault: 0.3,\n /** Minimum temperature. */\n temperatureMin: 0,\n /** Maximum temperature. */\n temperatureMax: 1,\n /** Billing mode: 'plan' (monthly subscription) or 'api' (pay-per-token). Env: NEXUS_BILLING_MODE */\n billingMode: 'plan' as const,\n },\n\n /**\n * Security-related defaults.\n */\n SECURITY_DEFAULTS: {\n /** Maximum system prompt length in characters. */\n maxSystemPromptLength: 4_000,\n /** Default policy execution mode. */\n policyDefaultMode: 'read-only' as const,\n /** Default policy mode. */\n policyMode: 'enforce' as const,\n /** Default sandbox mode. */\n sandboxMode: 'policy' as const,\n /** Whether to fall back to policy mode if container unavailable. */\n sandboxFallbackToPolicy: true,\n /** Whether network is enabled in container mode. */\n sandboxNetworkEnabled: false,\n },\n} as const;\n\n// ============================================================================\n// Type Exports for DEFAULTS\n// ============================================================================\n\n/** Type for the DEFAULTS object (readonly/const). */\nexport type DefaultsConfig = typeof DEFAULTS;\n\n/** Type for timeout defaults (readonly/const). */\nexport type TimeoutDefaultsConst = typeof DEFAULTS.TIMEOUT_DEFAULTS;\n\n/** Type for rate limit defaults (readonly/const). */\nexport type RateLimitDefaultsConst = typeof DEFAULTS.RATE_LIMIT_DEFAULTS;\n\n/** Type for retry defaults (readonly/const). */\nexport type RetryDefaultsConst = typeof DEFAULTS.RETRY_DEFAULTS;\n\n/** Type for buffer defaults (readonly/const). */\nexport type BufferDefaults = typeof DEFAULTS.BUFFER_DEFAULTS;\n\n/** Type for circuit breaker defaults (readonly/const). */\nexport type CircuitBreakerDefaultsConst = typeof DEFAULTS.CIRCUIT_BREAKER_DEFAULTS;\n\n/** Type for context defaults (readonly/const). */\nexport type ContextDefaults = typeof DEFAULTS.CONTEXT_DEFAULTS;\n\n/** Type for provider defaults (readonly/const). */\nexport type ProviderDefaults = typeof DEFAULTS.PROVIDER_DEFAULTS;\n\n/** Type for security defaults (readonly/const). */\nexport type SecurityDefaults = typeof DEFAULTS.SECURITY_DEFAULTS;\n\n// ============================================================================\n// Environment Override Functions (bound to DEFAULTS)\n// ============================================================================\n\n/**\n * Get timeout with environment override support.\n *\n * @param key - Timeout key (e.g., 'cliMs', 'apiMs')\n * @returns Timeout value in milliseconds\n */\nexport const getTimeout = createGetTimeout(DEFAULTS.TIMEOUT_DEFAULTS);\n\n/**\n * Get retry config with environment override support.\n *\n * @returns Retry configuration\n */\nexport const getRetryConfig = createGetRetryConfig(DEFAULTS.RETRY_DEFAULTS);\n\n/**\n * Get rate limit config with environment override support.\n *\n * @returns Rate limit configuration\n */\nexport const getRateLimitConfig = createGetRateLimitConfig(DEFAULTS.RATE_LIMIT_DEFAULTS);\n\n/**\n * Gets the circuit breaker configuration.\n *\n * @returns Circuit breaker configuration\n */\nexport const getCircuitBreakerConfig = createGetCircuitBreakerConfig(\n DEFAULTS.CIRCUIT_BREAKER_DEFAULTS\n);\n\n/**\n * Gets the tool rate limit configuration for a specific tool category.\n *\n * @param tool - Tool category (orchestrate, delegate, workflow, expert)\n * @returns Rate limit configuration\n */\nexport const getToolRateLimit = createGetToolRateLimit(DEFAULTS.TOOL_RATE_LIMITS);\n\n// ============================================================================\n// Documentation Helper\n// ============================================================================\n\n/**\n * Returns documentation for all environment variable overrides.\n *\n * @returns Markdown documentation string\n */\nexport const getEnvVarDocumentation = createGetEnvVarDocumentation(DEFAULTS);\n"],"mappings":"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","names":[]}
@@ -8,7 +8,7 @@ import {
8
8
  getErrorMessage,
9
9
  ok,
10
10
  parseBoolEnv
11
- } from "./chunk-25ZJ5TCC.js";
11
+ } from "./chunk-Y5JA7XEO.js";
12
12
 
13
13
  // src/cli/research-helpers-io.ts
14
14
  import * as fs2 from "fs/promises";
@@ -146,4 +146,4 @@ export {
146
146
  loadPapersRegistry,
147
147
  savePapersRegistry
148
148
  };
149
- //# sourceMappingURL=chunk-KOK66W2C.js.map
149
+ //# sourceMappingURL=chunk-DJZGCMNU.js.map
@@ -4,7 +4,7 @@ import {
4
4
  err,
5
5
  getErrorMessage,
6
6
  ok
7
- } from "./chunk-25ZJ5TCC.js";
7
+ } from "./chunk-Y5JA7XEO.js";
8
8
 
9
9
  // src/scm/types.ts
10
10
  var ScmError = class extends Error {
@@ -263,4 +263,4 @@ export {
263
263
  ScmError,
264
264
  GitHubProvider
265
265
  };
266
- //# sourceMappingURL=chunk-TFU5J53T.js.map
266
+ //# sourceMappingURL=chunk-E35RUETV.js.map