nexus-agents 2.56.0 → 2.58.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 (104) hide show
  1. package/dist/{adaptive-memory-SUNFPY2W.js → adaptive-memory-TSZEJUJC.js} +3 -3
  2. package/dist/{chunk-4FVISCDB.js → chunk-6QU4DJYW.js} +2 -2
  3. package/dist/{chunk-C3FGEDD7.js → chunk-7EYQBG3W.js} +22 -406
  4. package/dist/chunk-7EYQBG3W.js.map +1 -0
  5. package/dist/{chunk-NYNBDP7M.js → chunk-7Y36JLES.js} +2 -2
  6. package/dist/{chunk-FWSTXEG2.js → chunk-AFSIP6JH.js} +99 -23
  7. package/dist/chunk-AFSIP6JH.js.map +1 -0
  8. package/dist/{chunk-VKZKC4SM.js → chunk-EDGG3RQE.js} +2 -2
  9. package/dist/{chunk-2SPRLBOS.js → chunk-EZXOJZYE.js} +2 -2
  10. package/dist/{chunk-KGMC6F5D.js → chunk-GJ5BJU7A.js} +67 -61
  11. package/dist/chunk-GJ5BJU7A.js.map +1 -0
  12. package/dist/{chunk-W5AJRK4U.js → chunk-GMOGKX4E.js} +2 -2
  13. package/dist/chunk-H43PABG4.js +402 -0
  14. package/dist/chunk-H43PABG4.js.map +1 -0
  15. package/dist/{chunk-VLVHPC72.js → chunk-JKDHWOQL.js} +6 -6
  16. package/dist/{chunk-EJLWDYK7.js → chunk-JLYJQ7OG.js} +6159 -5619
  17. package/dist/chunk-JLYJQ7OG.js.map +1 -0
  18. package/dist/{chunk-IOU7F5PH.js → chunk-K7EA5OV4.js} +2 -2
  19. package/dist/{chunk-BPMQRYGU.js → chunk-L3NHOUEX.js} +332 -80
  20. package/dist/chunk-L3NHOUEX.js.map +1 -0
  21. package/dist/{chunk-KRIFBGWZ.js → chunk-PTGBJFSD.js} +3 -3
  22. package/dist/{chunk-EKYT4NMD.js → chunk-QGZBCD2A.js} +24 -9
  23. package/dist/chunk-QGZBCD2A.js.map +1 -0
  24. package/dist/{chunk-UOUJZIKH.js → chunk-R2Y57PM3.js} +38 -15
  25. package/dist/chunk-R2Y57PM3.js.map +1 -0
  26. package/dist/{chunk-PCMWLXT4.js → chunk-TC46TRLR.js} +2 -2
  27. package/dist/{chunk-3IDJSFWT.js → chunk-TFEFN37P.js} +2 -2
  28. package/dist/{chunk-Q5TKQWOI.js → chunk-V5CGWMYL.js} +2 -2
  29. package/dist/{chunk-TCQNNY4J.js → chunk-XEMRMZUN.js} +4 -4
  30. package/dist/{chunk-RSUCXOQM.js → chunk-YQAOMDR2.js} +26 -53
  31. package/dist/chunk-YQAOMDR2.js.map +1 -0
  32. package/dist/{chunk-R66AWJJ7.js → chunk-YU4NABXM.js} +2 -2
  33. package/dist/{cli-circuit-breaker-7MCMHSDY.js → cli-circuit-breaker-SL73NWX2.js} +4 -4
  34. package/dist/cli.d.ts +3 -1
  35. package/dist/cli.js +428 -342
  36. package/dist/cli.js.map +1 -1
  37. package/dist/{composite-router-LXFOSMSE.js → composite-router-A7URDW4X.js} +2 -2
  38. package/dist/{consensus-vote-G6H532ME.js → consensus-vote-HDM6HA5Z.js} +9 -8
  39. package/dist/{dist-4LDAFGC5.js → dist-RLMRWMYO.js} +994 -779
  40. package/dist/dist-RLMRWMYO.js.map +1 -0
  41. package/dist/{doctor-deep-RKMOZSIS.js → doctor-deep-VN6KMUCG.js} +3 -3
  42. package/dist/{expert-bridge-KHHE42JP.js → expert-bridge-BHTUNALT.js} +3 -3
  43. package/dist/{factory-JVN47MFN.js → factory-6MT5VKI3.js} +4 -4
  44. package/dist/{factory-KRNR7XHD.js → factory-FA7WDPZW.js} +5 -5
  45. package/dist/index.d.ts +396 -61
  46. package/dist/index.js +58 -43
  47. package/dist/index.js.map +1 -1
  48. package/dist/{issue-triage-O3C7P66H.js → issue-triage-YYTE6KTC.js} +4 -4
  49. package/dist/{mcp-config-QRERKGR4.js → mcp-config-34XMRM64.js} +3 -3
  50. package/dist/{mobimem-FAOAXV3B.js → mobimem-QDBP37H7.js} +2 -2
  51. package/dist/model-registry.generated.json +17033 -0
  52. package/dist/registry-command-S46JJ2SX.js +580 -0
  53. package/dist/registry-command-S46JJ2SX.js.map +1 -0
  54. package/dist/{repo-security-plan-AZ5HMGFC.js → repo-security-plan-C3LLE3Z7.js} +3 -3
  55. package/dist/{research-helpers-synthesize-E6WQLQKP.js → research-helpers-synthesize-NVQIWLQL.js} +3 -3
  56. package/dist/{routing-memory-MXF45FXT.js → routing-memory-W3YWMLJM.js} +2 -2
  57. package/dist/{session-memory-HL5XDBIL.js → session-memory-DWF5Z2LC.js} +3 -3
  58. package/dist/{setup-command-AV4MODEL.js → setup-command-KSQEYBDA.js} +8 -7
  59. package/dist/{setup-config-PWK6WHMG.js → setup-config-JA5IX53Q.js} +3 -3
  60. package/dist/{setup-custom-api-XAWKRDWV.js → setup-custom-api-CSB26HWD.js} +7 -5
  61. package/dist/setup-custom-api-CSB26HWD.js.map +1 -0
  62. package/dist/{weather-report-XZ5CENHE.js → weather-report-YQSLX4MS.js} +2 -2
  63. package/package.json +5 -5
  64. package/dist/chunk-BPMQRYGU.js.map +0 -1
  65. package/dist/chunk-C3FGEDD7.js.map +0 -1
  66. package/dist/chunk-EJLWDYK7.js.map +0 -1
  67. package/dist/chunk-EKYT4NMD.js.map +0 -1
  68. package/dist/chunk-FWSTXEG2.js.map +0 -1
  69. package/dist/chunk-KGMC6F5D.js.map +0 -1
  70. package/dist/chunk-RSUCXOQM.js.map +0 -1
  71. package/dist/chunk-UOUJZIKH.js.map +0 -1
  72. package/dist/dist-4LDAFGC5.js.map +0 -1
  73. package/dist/setup-custom-api-XAWKRDWV.js.map +0 -1
  74. /package/dist/{adaptive-memory-SUNFPY2W.js.map → adaptive-memory-TSZEJUJC.js.map} +0 -0
  75. /package/dist/{chunk-4FVISCDB.js.map → chunk-6QU4DJYW.js.map} +0 -0
  76. /package/dist/{chunk-NYNBDP7M.js.map → chunk-7Y36JLES.js.map} +0 -0
  77. /package/dist/{chunk-VKZKC4SM.js.map → chunk-EDGG3RQE.js.map} +0 -0
  78. /package/dist/{chunk-2SPRLBOS.js.map → chunk-EZXOJZYE.js.map} +0 -0
  79. /package/dist/{chunk-W5AJRK4U.js.map → chunk-GMOGKX4E.js.map} +0 -0
  80. /package/dist/{chunk-VLVHPC72.js.map → chunk-JKDHWOQL.js.map} +0 -0
  81. /package/dist/{chunk-IOU7F5PH.js.map → chunk-K7EA5OV4.js.map} +0 -0
  82. /package/dist/{chunk-KRIFBGWZ.js.map → chunk-PTGBJFSD.js.map} +0 -0
  83. /package/dist/{chunk-PCMWLXT4.js.map → chunk-TC46TRLR.js.map} +0 -0
  84. /package/dist/{chunk-3IDJSFWT.js.map → chunk-TFEFN37P.js.map} +0 -0
  85. /package/dist/{chunk-Q5TKQWOI.js.map → chunk-V5CGWMYL.js.map} +0 -0
  86. /package/dist/{chunk-TCQNNY4J.js.map → chunk-XEMRMZUN.js.map} +0 -0
  87. /package/dist/{chunk-R66AWJJ7.js.map → chunk-YU4NABXM.js.map} +0 -0
  88. /package/dist/{cli-circuit-breaker-7MCMHSDY.js.map → cli-circuit-breaker-SL73NWX2.js.map} +0 -0
  89. /package/dist/{composite-router-LXFOSMSE.js.map → composite-router-A7URDW4X.js.map} +0 -0
  90. /package/dist/{consensus-vote-G6H532ME.js.map → consensus-vote-HDM6HA5Z.js.map} +0 -0
  91. /package/dist/{doctor-deep-RKMOZSIS.js.map → doctor-deep-VN6KMUCG.js.map} +0 -0
  92. /package/dist/{expert-bridge-KHHE42JP.js.map → expert-bridge-BHTUNALT.js.map} +0 -0
  93. /package/dist/{factory-JVN47MFN.js.map → factory-6MT5VKI3.js.map} +0 -0
  94. /package/dist/{factory-KRNR7XHD.js.map → factory-FA7WDPZW.js.map} +0 -0
  95. /package/dist/{issue-triage-O3C7P66H.js.map → issue-triage-YYTE6KTC.js.map} +0 -0
  96. /package/dist/{mcp-config-QRERKGR4.js.map → mcp-config-34XMRM64.js.map} +0 -0
  97. /package/dist/{mobimem-FAOAXV3B.js.map → mobimem-QDBP37H7.js.map} +0 -0
  98. /package/dist/{repo-security-plan-AZ5HMGFC.js.map → repo-security-plan-C3LLE3Z7.js.map} +0 -0
  99. /package/dist/{research-helpers-synthesize-E6WQLQKP.js.map → research-helpers-synthesize-NVQIWLQL.js.map} +0 -0
  100. /package/dist/{routing-memory-MXF45FXT.js.map → routing-memory-W3YWMLJM.js.map} +0 -0
  101. /package/dist/{session-memory-HL5XDBIL.js.map → session-memory-DWF5Z2LC.js.map} +0 -0
  102. /package/dist/{setup-command-AV4MODEL.js.map → setup-command-KSQEYBDA.js.map} +0 -0
  103. /package/dist/{setup-config-PWK6WHMG.js.map → setup-config-JA5IX53Q.js.map} +0 -0
  104. /package/dist/{weather-report-XZ5CENHE.js.map → weather-report-YQSLX4MS.js.map} +0 -0
@@ -2,9 +2,9 @@ import {
2
2
  AdaptiveMemoryBackend,
3
3
  DEFAULT_SCORING_CONFIG,
4
4
  createAdaptiveMemory
5
- } from "./chunk-3IDJSFWT.js";
5
+ } from "./chunk-TFEFN37P.js";
6
6
  import "./chunk-633WH2ML.js";
7
- import "./chunk-UOUJZIKH.js";
7
+ import "./chunk-R2Y57PM3.js";
8
8
  import "./chunk-CLYZ7FWP.js";
9
9
  import "./chunk-UP2VWCW5.js";
10
10
  export {
@@ -12,4 +12,4 @@ export {
12
12
  DEFAULT_SCORING_CONFIG,
13
13
  createAdaptiveMemory
14
14
  };
15
- //# sourceMappingURL=adaptive-memory-SUNFPY2W.js.map
15
+ //# sourceMappingURL=adaptive-memory-TSZEJUJC.js.map
@@ -2,7 +2,7 @@ import {
2
2
  TASK_CATEGORIES,
3
3
  getAdaptiveBonus,
4
4
  getOutcomeStore
5
- } from "./chunk-UOUJZIKH.js";
5
+ } from "./chunk-R2Y57PM3.js";
6
6
 
7
7
  // src/cli/doctor-deep.ts
8
8
  var CLI_NAMES = ["claude", "gemini", "codex", "opencode"];
@@ -106,4 +106,4 @@ export {
106
106
  runDeepDiagnostics,
107
107
  formatDeepDiagnostics
108
108
  };
109
- //# sourceMappingURL=chunk-4FVISCDB.js.map
109
+ //# sourceMappingURL=chunk-6QU4DJYW.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ DEFAULTS
3
+ } from "./chunk-H43PABG4.js";
1
4
  import {
2
5
  resolveInsideRoot
3
6
  } from "./chunk-NUBSJGQZ.js";
@@ -6,20 +9,14 @@ import {
6
9
  } from "./chunk-633WH2ML.js";
7
10
  import {
8
11
  createAllAdapters
9
- } from "./chunk-RSUCXOQM.js";
12
+ } from "./chunk-YQAOMDR2.js";
10
13
  import {
11
- API_TIMEOUTS,
12
- CLI_TIMEOUTS,
13
14
  CliNameSchema,
14
15
  DEFAULT_CAPABILITIES,
15
16
  DEFAULT_COMPOSITE_CONFIG,
16
17
  DEFAULT_MODEL_CAPABILITIES,
17
18
  DEFAULT_MODEL_PER_CLI,
18
19
  DEFAULT_ZERO_ROUTER_CONFIG,
19
- INTERNAL_TIMEOUTS,
20
- MCP_TIMEOUTS,
21
- TEST_TIMEOUTS,
22
- WORKFLOW_TIMEOUTS,
23
20
  colors,
24
21
  createLogger,
25
22
  err,
@@ -29,7 +26,7 @@ import {
29
26
  ok,
30
27
  symbols,
31
28
  writeLine
32
- } from "./chunk-UOUJZIKH.js";
29
+ } from "./chunk-R2Y57PM3.js";
33
30
  import {
34
31
  LEARNING_DIR,
35
32
  OUTCOMES_FILE,
@@ -38,7 +35,7 @@ import {
38
35
  } from "./chunk-CLYZ7FWP.js";
39
36
 
40
37
  // src/version.ts
41
- var VERSION = true ? "2.56.0" : "dev";
38
+ var VERSION = true ? "2.58.0" : "dev";
42
39
 
43
40
  // src/config/schemas-core.ts
44
41
  import { z } from "zod";
@@ -958,393 +955,6 @@ function adaptRoutingConfig(yamlConfig) {
958
955
  };
959
956
  }
960
957
 
961
- // src/config/defaults-env.ts
962
- function parseIntEnv(envKey, fallback) {
963
- const envValue = process.env[envKey];
964
- if (envValue === void 0) {
965
- return fallback;
966
- }
967
- const parsed = parseInt(envValue, 10);
968
- return isNaN(parsed) || parsed <= 0 ? fallback : parsed;
969
- }
970
- function parseFloatEnv(envKey, fallback) {
971
- const envValue = process.env[envKey];
972
- if (envValue === void 0) {
973
- return fallback;
974
- }
975
- const parsed = parseFloat(envValue);
976
- return isNaN(parsed) || !isFinite(parsed) ? fallback : parsed;
977
- }
978
- function parseBoolEnv(envKey, fallback) {
979
- const envValue = process.env[envKey]?.toLowerCase();
980
- if (envValue === void 0) {
981
- return fallback;
982
- }
983
- if (envValue === "true" || envValue === "1") return true;
984
- if (envValue === "false" || envValue === "0") return false;
985
- return fallback;
986
- }
987
- function createGetTimeout(timeoutDefaults) {
988
- return (key) => {
989
- const envKey = `NEXUS_TIMEOUT_${key.replace(/Ms$/, "").toUpperCase()}`;
990
- return parseIntEnv(envKey, timeoutDefaults[key]);
991
- };
992
- }
993
- function createGetRetryConfig(retryDefaults) {
994
- return () => {
995
- return {
996
- maxRetries: parseIntEnv("NEXUS_RETRY_MAX_RETRIES", retryDefaults.maxRetries),
997
- baseDelayMs: parseIntEnv("NEXUS_RETRY_BASE_DELAY", retryDefaults.baseDelayMs),
998
- maxDelayMs: parseIntEnv("NEXUS_RETRY_MAX_DELAY", retryDefaults.maxDelayMs),
999
- jitterFactor: parseFloatEnv("NEXUS_RETRY_JITTER", retryDefaults.jitterFactor)
1000
- };
1001
- };
1002
- }
1003
- function createGetRateLimitConfig(rateLimitDefaults) {
1004
- return () => {
1005
- return {
1006
- requestsPerMinute: parseIntEnv("NEXUS_RATE_LIMIT_RPM", rateLimitDefaults.requestsPerMinute),
1007
- enabled: parseBoolEnv("NEXUS_RATE_LIMIT_ENABLED", rateLimitDefaults.enabled),
1008
- maxConcurrent: parseIntEnv(
1009
- "NEXUS_RATE_LIMIT_MAX_CONCURRENT",
1010
- rateLimitDefaults.maxConcurrent
1011
- ),
1012
- capacity: parseIntEnv("NEXUS_RATE_LIMIT_CAPACITY", rateLimitDefaults.capacity),
1013
- refillRate: parseIntEnv("NEXUS_RATE_LIMIT_REFILL_RATE", rateLimitDefaults.refillRate),
1014
- refillIntervalMs: parseIntEnv(
1015
- "NEXUS_RATE_LIMIT_REFILL_INTERVAL",
1016
- rateLimitDefaults.refillIntervalMs
1017
- )
1018
- };
1019
- };
1020
- }
1021
- function createGetWorkerConfig(workerDefaults) {
1022
- return () => {
1023
- return {
1024
- maxWorkers: parseIntEnv("NEXUS_WORKERS_MAX", workerDefaults.maxWorkers),
1025
- poolSize: parseIntEnv("NEXUS_WORKERS_POOL_SIZE", workerDefaults.poolSize),
1026
- idleTimeoutMs: parseIntEnv("NEXUS_WORKERS_IDLE_TIMEOUT", workerDefaults.idleTimeoutMs),
1027
- workflowMaxParallel: parseIntEnv(
1028
- "NEXUS_WORKFLOW_MAX_PARALLEL",
1029
- workerDefaults.workflowMaxParallel
1030
- ),
1031
- testParallelism: parseIntEnv("NEXUS_TEST_PARALLELISM", workerDefaults.testParallelism),
1032
- evaluationMaxWorkers: parseIntEnv(
1033
- "NEXUS_EVALUATION_MAX_WORKERS",
1034
- workerDefaults.evaluationMaxWorkers
1035
- ),
1036
- eventBusMaxHistory: parseIntEnv(
1037
- "NEXUS_EVENTBUS_MAX_HISTORY",
1038
- workerDefaults.eventBusMaxHistory
1039
- ),
1040
- swarmObserverMaxEvents: parseIntEnv(
1041
- "NEXUS_SWARM_OBSERVER_MAX_EVENTS",
1042
- workerDefaults.swarmObserverMaxEvents
1043
- )
1044
- };
1045
- };
1046
- }
1047
- function createGetCircuitBreakerConfig(cbDefaults) {
1048
- return () => {
1049
- return {
1050
- failureThreshold: parseIntEnv("NEXUS_CIRCUIT_BREAKER_THRESHOLD", cbDefaults.failureThreshold),
1051
- resetTimeoutMs: parseIntEnv("NEXUS_CIRCUIT_BREAKER_RESET_TIMEOUT", cbDefaults.resetTimeoutMs),
1052
- halfOpenSuccessThreshold: cbDefaults.halfOpenSuccessThreshold,
1053
- countTimeoutsAsFailures: cbDefaults.countTimeoutsAsFailures,
1054
- countAuthFailuresAsFailures: cbDefaults.countAuthFailuresAsFailures,
1055
- countRateLimitsAsFailures: cbDefaults.countRateLimitsAsFailures,
1056
- halfOpenMaxRequests: cbDefaults.halfOpenMaxRequests
1057
- };
1058
- };
1059
- }
1060
- function createGetToolRateLimit(toolRateLimits) {
1061
- return (tool) => {
1062
- return toolRateLimits[tool];
1063
- };
1064
- }
1065
- function createGetEnvVarDocumentation(defaults) {
1066
- return () => {
1067
- const t = defaults.TIMEOUT_DEFAULTS;
1068
- const r = defaults.RATE_LIMIT_DEFAULTS;
1069
- const rt = defaults.RETRY_DEFAULTS;
1070
- const w = defaults.WORKER_DEFAULTS;
1071
- const cb = defaults.CIRCUIT_BREAKER_DEFAULTS;
1072
- return `# Environment Variable Overrides
1073
-
1074
- All defaults can be overridden via environment variables using the NEXUS_ prefix.
1075
-
1076
- ## Timeouts
1077
-
1078
- | Variable | Default | Description |
1079
- | -------- | ------- | ----------- |
1080
- | NEXUS_TIMEOUT_CLI | ${String(t.cliMs)} | CLI execution timeout (ms) |
1081
- | NEXUS_TIMEOUT_API | ${String(t.apiMs)} | API request timeout (ms) |
1082
- | NEXUS_TIMEOUT_WORKFLOW | ${String(t.workflowMs)} | Workflow timeout (ms) |
1083
- | NEXUS_TIMEOUT_MCP | ${String(t.mcpMs)} | MCP operation timeout (ms) |
1084
-
1085
- ## Rate Limits
1086
-
1087
- | Variable | Default | Description |
1088
- | -------- | ------- | ----------- |
1089
- | NEXUS_RATE_LIMIT_RPM | ${String(r.requestsPerMinute)} | Requests per minute |
1090
- | NEXUS_RATE_LIMIT_ENABLED | ${String(r.enabled)} | Enable rate limiting |
1091
- | NEXUS_RATE_LIMIT_CAPACITY | ${String(r.capacity)} | Token bucket capacity |
1092
-
1093
- ## Retries
1094
-
1095
- | Variable | Default | Description |
1096
- | -------- | ------- | ----------- |
1097
- | NEXUS_RETRY_MAX_RETRIES | ${String(rt.maxRetries)} | Maximum retry attempts |
1098
- | NEXUS_RETRY_BASE_DELAY | ${String(rt.baseDelayMs)} | Base delay (ms) |
1099
- | NEXUS_RETRY_MAX_DELAY | ${String(rt.maxDelayMs)} | Maximum delay (ms) |
1100
- | NEXUS_RETRY_JITTER | ${String(rt.jitterFactor)} | Jitter factor (0-1) |
1101
-
1102
- ## Workers
1103
-
1104
- | Variable | Default | Description |
1105
- | -------- | ------- | ----------- |
1106
- | NEXUS_WORKERS_MAX | ${String(w.maxWorkers)} | Maximum workers |
1107
- | NEXUS_WORKERS_POOL_SIZE | ${String(w.poolSize)} | Worker pool size |
1108
- | NEXUS_WORKFLOW_MAX_PARALLEL | ${String(w.workflowMaxParallel)} | Max parallel workflow steps |
1109
- | NEXUS_TEST_PARALLELISM | ${String(w.testParallelism)} | Test parallelism |
1110
-
1111
- ## Circuit Breaker
1112
-
1113
- | Variable | Default | Description |
1114
- | -------- | ------- | ----------- |
1115
- | NEXUS_CIRCUIT_BREAKER_THRESHOLD | ${String(cb.failureThreshold)} | Failure threshold |
1116
- | NEXUS_CIRCUIT_BREAKER_RESET_TIMEOUT | ${String(cb.resetTimeoutMs)} | Reset timeout (ms) |
1117
- `;
1118
- };
1119
- }
1120
-
1121
- // src/config/defaults.ts
1122
- var DEFAULTS = {
1123
- /**
1124
- * Default timeout settings in milliseconds.
1125
- * Values sourced from config/timeouts.ts (Issue #984).
1126
- */
1127
- TIMEOUT_DEFAULTS: {
1128
- /** CLI tool execution timeout in milliseconds. */
1129
- cliMs: CLI_TIMEOUTS.default.standard,
1130
- /** Simple CLI task timeout (single function, quick query). */
1131
- cliSimpleMs: CLI_TIMEOUTS.default.simple,
1132
- /** Complex CLI task timeout (codebase-wide, deep analysis). */
1133
- cliComplexMs: CLI_TIMEOUTS.default.complex,
1134
- /** API request timeout in milliseconds. */
1135
- apiMs: API_TIMEOUTS.defaultMs,
1136
- /** Maximum API timeout in milliseconds. */
1137
- apiMaxMs: API_TIMEOUTS.maxMs,
1138
- /** Workflow-level timeout in milliseconds (5 minutes). */
1139
- workflowMs: WORKFLOW_TIMEOUTS.workflowMs,
1140
- /** Maximum workflow timeout in milliseconds (30 minutes). */
1141
- workflowMaxMs: WORKFLOW_TIMEOUTS.workflowMaxMs,
1142
- /** Step-level timeout in milliseconds. */
1143
- stepMs: INTERNAL_TIMEOUTS.selfEvalMs,
1144
- /** MCP operation default timeout in milliseconds (generic, not per-tool). */
1145
- mcpMs: API_TIMEOUTS.defaultMs,
1146
- /** MCP operation maximum timeout in milliseconds. */
1147
- mcpMaxMs: MCP_TIMEOUTS.maxMs,
1148
- /** Health check timeout in milliseconds. */
1149
- healthCheckMs: INTERNAL_TIMEOUTS.healthCheckMs,
1150
- /** Global test run timeout in milliseconds (10 minutes). */
1151
- testGlobalMs: TEST_TIMEOUTS.globalMs,
1152
- /** Per-task test timeout in milliseconds. */
1153
- testTaskMs: TEST_TIMEOUTS.taskMs,
1154
- /** Circuit breaker reset timeout in milliseconds. */
1155
- circuitBreakerResetMs: INTERNAL_TIMEOUTS.circuitBreakerResetMs
1156
- },
1157
- /**
1158
- * Default rate limit settings for outbound operations.
1159
- */
1160
- RATE_LIMIT_DEFAULTS: {
1161
- /** Global requests per minute. */
1162
- requestsPerMinute: 60,
1163
- /** Whether rate limiting is enabled by default. */
1164
- enabled: true,
1165
- /** Maximum number of concurrent requests. */
1166
- maxConcurrent: 4,
1167
- /** Token bucket capacity. */
1168
- capacity: 100,
1169
- /** Token bucket refill rate per second. */
1170
- refillRate: 10,
1171
- /** Refill interval in milliseconds. */
1172
- refillIntervalMs: 100
1173
- },
1174
- /**
1175
- * Per-tool rate limit defaults for MCP tools.
1176
- * (Source: Issue #274 Phase 2 - per-tool rate limits)
1177
- */
1178
- TOOL_RATE_LIMITS: {
1179
- orchestrate: { capacity: 10, refillRate: 10, refillIntervalMs: 6e4 },
1180
- delegate: { capacity: 20, refillRate: 20, refillIntervalMs: 6e4 },
1181
- workflow: { capacity: 5, refillRate: 5, refillIntervalMs: 6e4 },
1182
- expert: { capacity: 30, refillRate: 30, refillIntervalMs: 6e4 }
1183
- },
1184
- /**
1185
- * Default retry strategy settings for transient failures.
1186
- */
1187
- RETRY_DEFAULTS: {
1188
- /** Maximum retry attempts before failing. */
1189
- maxRetries: 3,
1190
- /** Base delay between retries in milliseconds. */
1191
- baseDelayMs: 1e3,
1192
- /** Maximum delay between retries in milliseconds. */
1193
- maxDelayMs: 3e4,
1194
- /** Jitter factor (0-1) to randomize retry delays. */
1195
- jitterFactor: 0.1
1196
- },
1197
- /**
1198
- * Workflow-specific retry defaults.
1199
- */
1200
- WORKFLOW_RETRY_DEFAULTS: {
1201
- /** Maximum retry attempts for workflow steps. */
1202
- maxRetries: 2,
1203
- /** Base delay for workflow retries in milliseconds. */
1204
- baseDelayMs: 2e3,
1205
- /** Maximum delay for workflow retries in milliseconds. */
1206
- maxDelayMs: 6e4,
1207
- /** Jitter factor for workflow retries. */
1208
- jitterFactor: 0.15
1209
- },
1210
- /**
1211
- * CLI-specific retry defaults.
1212
- */
1213
- CLI_RETRY_DEFAULTS: {
1214
- /** Maximum retry attempts for CLI operations. */
1215
- maxRetries: 2,
1216
- /** Base delay for CLI retries in milliseconds. */
1217
- baseDelayMs: 5e3,
1218
- /** Maximum delay for CLI retries in milliseconds. */
1219
- maxDelayMs: 6e4,
1220
- /** Jitter factor for CLI retries. */
1221
- jitterFactor: 0.2
1222
- },
1223
- /**
1224
- * Test framework retry defaults.
1225
- */
1226
- TEST_RETRY_DEFAULTS: {
1227
- /** Maximum retries per test task. */
1228
- maxRetries: 2,
1229
- /** Whether to retry failed tasks by default. */
1230
- retryFailedTasks: true
1231
- },
1232
- /**
1233
- * Default buffer sizing for batching and chunked processing.
1234
- */
1235
- BUFFER_DEFAULTS: {
1236
- /** Preferred batch size for bulk operations. */
1237
- batchSize: 100,
1238
- /** Chunk size for streaming or segmented processing. */
1239
- chunkSize: 256,
1240
- /** Maximum items allowed in a buffer. */
1241
- maxItems: 1e3,
1242
- /** Maximum memory size in bytes (10 MB). */
1243
- maxMemoryBytes: 10 * 1024 * 1024,
1244
- /** Log buffer flush interval in milliseconds. */
1245
- logFlushIntervalMs: 5e3
1246
- },
1247
- /**
1248
- * Default worker pool sizing.
1249
- */
1250
- WORKER_DEFAULTS: {
1251
- /** Maximum number of workers. */
1252
- maxWorkers: 8,
1253
- /** Default worker pool size. */
1254
- poolSize: 4,
1255
- /** Worker idle timeout in milliseconds (5 minutes). */
1256
- idleTimeoutMs: 5 * 6e4,
1257
- /** Maximum parallel workflow steps. */
1258
- workflowMaxParallel: 5,
1259
- /** Test framework parallelism. */
1260
- testParallelism: 3,
1261
- /** Evaluation harness max workers. */
1262
- evaluationMaxWorkers: 8,
1263
- /** EventBus max history size. */
1264
- eventBusMaxHistory: 1e3,
1265
- /** Swarm observer max events. */
1266
- swarmObserverMaxEvents: 1e4
1267
- },
1268
- /**
1269
- * Default circuit breaker settings.
1270
- * (Source: Issue #81 - Circuit breaker for CLI failures)
1271
- */
1272
- CIRCUIT_BREAKER_DEFAULTS: {
1273
- /** Failure threshold to open circuit. */
1274
- failureThreshold: 5,
1275
- /** Reset timeout in milliseconds. */
1276
- resetTimeoutMs: 3e4,
1277
- /** Success threshold to close circuit in half-open state. */
1278
- halfOpenSuccessThreshold: 2,
1279
- /** Whether to count timeouts as failures. */
1280
- countTimeoutsAsFailures: true,
1281
- /** Whether to count auth failures as failures. */
1282
- countAuthFailuresAsFailures: false,
1283
- /** Whether to count rate limit errors as failures (#1529). */
1284
- countRateLimitsAsFailures: true,
1285
- /** Maximum requests allowed in half-open state. */
1286
- halfOpenMaxRequests: 3
1287
- },
1288
- /**
1289
- * Default context/memory settings.
1290
- */
1291
- CONTEXT_DEFAULTS: {
1292
- /** Maximum context tokens. */
1293
- maxTokens: 1e5,
1294
- /** Token budget warning threshold (80%). */
1295
- warningThreshold: 0.8,
1296
- /** Token budget critical threshold (95%). */
1297
- criticalThreshold: 0.95,
1298
- /** Maximum history entries to retain. */
1299
- maxHistoryEntries: 1e3
1300
- },
1301
- /**
1302
- * Default provider/model settings.
1303
- */
1304
- PROVIDER_DEFAULTS: {
1305
- /** Default timeout for provider API calls in ms. */
1306
- timeout: 3e4,
1307
- /** Maximum retries for provider requests. */
1308
- maxRetries: 3,
1309
- /** Default model tier. */
1310
- defaultTier: "balanced",
1311
- /** Default temperature. */
1312
- temperatureDefault: 0.3,
1313
- /** Minimum temperature. */
1314
- temperatureMin: 0,
1315
- /** Maximum temperature. */
1316
- temperatureMax: 1,
1317
- /** Billing mode: 'plan' (monthly subscription) or 'api' (pay-per-token). Env: NEXUS_BILLING_MODE */
1318
- billingMode: "plan"
1319
- },
1320
- /**
1321
- * Security-related defaults.
1322
- */
1323
- SECURITY_DEFAULTS: {
1324
- /** Maximum system prompt length in characters. */
1325
- maxSystemPromptLength: 4e3,
1326
- /** Default policy execution mode. */
1327
- policyDefaultMode: "read-only",
1328
- /** Default policy mode. */
1329
- policyMode: "enforce",
1330
- /** Default sandbox mode. */
1331
- sandboxMode: "policy",
1332
- /** Whether to fall back to policy mode if container unavailable. */
1333
- sandboxFallbackToPolicy: true,
1334
- /** Whether network is enabled in container mode. */
1335
- sandboxNetworkEnabled: false
1336
- }
1337
- };
1338
- var getTimeout = createGetTimeout(DEFAULTS.TIMEOUT_DEFAULTS);
1339
- var getRetryConfig = createGetRetryConfig(DEFAULTS.RETRY_DEFAULTS);
1340
- var getRateLimitConfig = createGetRateLimitConfig(DEFAULTS.RATE_LIMIT_DEFAULTS);
1341
- var getWorkerConfig = createGetWorkerConfig(DEFAULTS.WORKER_DEFAULTS);
1342
- var getCircuitBreakerConfig = createGetCircuitBreakerConfig(
1343
- DEFAULTS.CIRCUIT_BREAKER_DEFAULTS
1344
- );
1345
- var getToolRateLimit = createGetToolRateLimit(DEFAULTS.TOOL_RATE_LIMITS);
1346
- var getEnvVarDocumentation = createGetEnvVarDocumentation(DEFAULTS);
1347
-
1348
958
  // src/config/config-manager.ts
1349
959
  import { z as z11 } from "zod";
1350
960
  var NumericValueSchema = z11.number();
@@ -1574,17 +1184,24 @@ function parseYaml(content) {
1574
1184
  );
1575
1185
  }
1576
1186
  }
1187
+ var PROTOTYPE_POLLUTION_KEYS = /* @__PURE__ */ new Set([
1188
+ "__proto__",
1189
+ "constructor",
1190
+ "prototype"
1191
+ ]);
1192
+ function isMergeableObject(value) {
1193
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1194
+ }
1577
1195
  function deepMerge(target, source) {
1578
1196
  const result = { ...target };
1579
1197
  for (const key of Object.keys(source)) {
1198
+ if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
1580
1199
  const sourceValue = source[key];
1200
+ if (sourceValue === void 0) continue;
1581
1201
  const targetValue = target[key];
1582
- if (sourceValue !== void 0 && typeof sourceValue === "object" && sourceValue !== null && !Array.isArray(sourceValue) && typeof targetValue === "object" && targetValue !== null && !Array.isArray(targetValue)) {
1583
- result[key] = deepMerge(
1584
- targetValue,
1585
- sourceValue
1586
- );
1587
- } else if (sourceValue !== void 0) {
1202
+ if (isMergeableObject(sourceValue) && isMergeableObject(targetValue)) {
1203
+ result[key] = deepMerge(targetValue, sourceValue);
1204
+ } else {
1588
1205
  result[key] = sourceValue;
1589
1206
  }
1590
1207
  }
@@ -2407,7 +2024,7 @@ async function runDoctorFix(result) {
2407
2024
  writeLine2("\u2500".repeat(40));
2408
2025
  let fixCount = 0;
2409
2026
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2410
- const { runSetup } = await import("./setup-command-AV4MODEL.js");
2027
+ const { runSetup } = await import("./setup-command-KSQEYBDA.js");
2411
2028
  const setupResult = runSetup({
2412
2029
  skipMcp: true,
2413
2030
  skipRules: true,
@@ -2421,7 +2038,7 @@ async function runDoctorFix(result) {
2421
2038
  }
2422
2039
  }
2423
2040
  if (!result.configFile.found) {
2424
- const { runConfigInitSync } = await import("./setup-config-PWK6WHMG.js");
2041
+ const { runConfigInitSync } = await import("./setup-config-JA5IX53Q.js");
2425
2042
  const configResult = runConfigInitSync(process.cwd(), false, false);
2426
2043
  if (configResult.success && configResult.created) {
2427
2044
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2491,7 +2108,6 @@ export {
2491
2108
  AppConfigSchema,
2492
2109
  defaultConfig,
2493
2110
  adaptRoutingConfig,
2494
- DEFAULTS,
2495
2111
  getConfigManager,
2496
2112
  loadConfig,
2497
2113
  getConfig,
@@ -2517,4 +2133,4 @@ export {
2517
2133
  startStdioServer,
2518
2134
  closeServer
2519
2135
  };
2520
- //# sourceMappingURL=chunk-C3FGEDD7.js.map
2136
+ //# sourceMappingURL=chunk-7EYQBG3W.js.map