nexus-agents 2.63.6 → 2.67.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 (96) hide show
  1. package/dist/{adaptive-memory-XD5O3TC4.js → adaptive-memory-MKSYEBST.js} +3 -3
  2. package/dist/{chunk-UFHFX2GX.js → chunk-32RIOULO.js} +2 -2
  3. package/dist/{chunk-OKU3VXWC.js → chunk-3NDP3APQ.js} +5 -5
  4. package/dist/{chunk-NV63LTMM.js → chunk-7OBFO4GF.js} +1 -1
  5. package/dist/{chunk-NV63LTMM.js.map → chunk-7OBFO4GF.js.map} +1 -1
  6. package/dist/{chunk-CQXNX6BQ.js → chunk-7QWNOE23.js} +3 -3
  7. package/dist/{chunk-VOBYREAG.js → chunk-7ZPYV4HO.js} +2 -2
  8. package/dist/{chunk-SUR2TLIG.js → chunk-ANC3HU6F.js} +7 -7
  9. package/dist/{chunk-R4FVXOZF.js → chunk-DWLATKBK.js} +2 -2
  10. package/dist/{chunk-WDWKKJHZ.js → chunk-E66KFRSJ.js} +2 -2
  11. package/dist/{chunk-CUGQAPGY.js → chunk-EMPW45GD.js} +2488 -2395
  12. package/dist/chunk-EMPW45GD.js.map +1 -0
  13. package/dist/{chunk-6MRF2PE2.js → chunk-L2LQ3TSV.js} +2 -2
  14. package/dist/{chunk-GISQ3EJB.js → chunk-L4XSIHF5.js} +4 -4
  15. package/dist/{chunk-5HQJGYYM.js → chunk-LMRKHQG5.js} +2 -2
  16. package/dist/{chunk-O4AJGETH.js → chunk-MJHOSM5U.js} +2 -2
  17. package/dist/{chunk-5CYDU2VX.js → chunk-OF7CYMMA.js} +2 -2
  18. package/dist/{chunk-HRTGSG4L.js → chunk-OKB2SUFX.js} +7 -7
  19. package/dist/{chunk-3H44UAHW.js → chunk-TOYPY5XA.js} +2 -2
  20. package/dist/{chunk-P5NBYCEC.js → chunk-U3HZQTUF.js} +2 -2
  21. package/dist/{chunk-TSS7VN3V.js → chunk-UMLBVSW4.js} +8 -10
  22. package/dist/{chunk-TSS7VN3V.js.map → chunk-UMLBVSW4.js.map} +1 -1
  23. package/dist/{chunk-3BLWO2ZM.js → chunk-VGZJIR22.js} +2 -2
  24. package/dist/{chunk-F2YQX6Q6.js → chunk-WYSHXPKK.js} +3 -3
  25. package/dist/{chunk-N36KDK3E.js → chunk-XATH462F.js} +3 -3
  26. package/dist/{chunk-O3CBMPGT.js → chunk-ZM4O442V.js} +2 -2
  27. package/dist/chunk-ZM4O442V.js.map +1 -0
  28. package/dist/{chunk-TR74DSB4.js → chunk-ZPPX2K57.js} +2 -2
  29. package/dist/{cli-circuit-breaker-JE6XKLUG.js → cli-circuit-breaker-2CJ6NV52.js} +4 -4
  30. package/dist/cli.js +53 -29
  31. package/dist/cli.js.map +1 -1
  32. package/dist/{composite-router-KBOGB7GQ.js → composite-router-AYVJPIOS.js} +2 -2
  33. package/dist/{consensus-vote-PIU3D3KP.js → consensus-vote-WUGHRBYE.js} +9 -9
  34. package/dist/{doctor-deep-DGY2N4U2.js → doctor-deep-BJFDBGPO.js} +3 -3
  35. package/dist/{expert-bridge-5IPLSDJH.js → expert-bridge-75WNNWI4.js} +3 -3
  36. package/dist/{expert-config-6X4225UC.js → expert-config-HN7U7X2K.js} +2 -2
  37. package/dist/{factory-ZTNGLNFH.js → factory-BHHC6C7W.js} +5 -5
  38. package/dist/{factory-PSFI6WDI.js → factory-KMBWFIX2.js} +4 -4
  39. package/dist/index.d.ts +31 -229
  40. package/dist/index.js +22 -32
  41. package/dist/index.js.map +1 -1
  42. package/dist/{issue-triage-VOZNNCUG.js → issue-triage-TXQ7J6GG.js} +4 -4
  43. package/dist/{mcp-config-PDH6LS6E.js → mcp-config-OCWIXE2Y.js} +3 -3
  44. package/dist/{mobimem-7KQVPLAW.js → mobimem-77W5ED4Z.js} +2 -2
  45. package/dist/{registry-command-BS75IWSA.js → registry-command-BBLIXULQ.js} +2 -2
  46. package/dist/{repo-security-plan-VZTTNXYJ.js → repo-security-plan-7SNM7JQN.js} +3 -3
  47. package/dist/{research-helpers-synthesize-B3C6BFCX.js → research-helpers-synthesize-7CI2FJE5.js} +3 -3
  48. package/dist/{routing-memory-BGK2HMC3.js → routing-memory-DCIZEEVC.js} +2 -2
  49. package/dist/{session-memory-ESTZAPL2.js → session-memory-5TSAASQW.js} +3 -3
  50. package/dist/{setup-command-J6QG2G5V.js → setup-command-SACUP65O.js} +9 -9
  51. package/dist/{setup-config-LG67TIFO.js → setup-config-EA5RDIO2.js} +3 -3
  52. package/dist/{setup-custom-api-4DZABP47.js → setup-custom-api-IQX3GD2D.js} +4 -4
  53. package/dist/{weather-report-HUY35FUZ.js → weather-report-NETGWTJX.js} +2 -2
  54. package/package.json +1 -1
  55. package/dist/chunk-CUGQAPGY.js.map +0 -1
  56. package/dist/chunk-O3CBMPGT.js.map +0 -1
  57. /package/dist/{adaptive-memory-XD5O3TC4.js.map → adaptive-memory-MKSYEBST.js.map} +0 -0
  58. /package/dist/{chunk-UFHFX2GX.js.map → chunk-32RIOULO.js.map} +0 -0
  59. /package/dist/{chunk-OKU3VXWC.js.map → chunk-3NDP3APQ.js.map} +0 -0
  60. /package/dist/{chunk-CQXNX6BQ.js.map → chunk-7QWNOE23.js.map} +0 -0
  61. /package/dist/{chunk-VOBYREAG.js.map → chunk-7ZPYV4HO.js.map} +0 -0
  62. /package/dist/{chunk-SUR2TLIG.js.map → chunk-ANC3HU6F.js.map} +0 -0
  63. /package/dist/{chunk-R4FVXOZF.js.map → chunk-DWLATKBK.js.map} +0 -0
  64. /package/dist/{chunk-WDWKKJHZ.js.map → chunk-E66KFRSJ.js.map} +0 -0
  65. /package/dist/{chunk-6MRF2PE2.js.map → chunk-L2LQ3TSV.js.map} +0 -0
  66. /package/dist/{chunk-GISQ3EJB.js.map → chunk-L4XSIHF5.js.map} +0 -0
  67. /package/dist/{chunk-5HQJGYYM.js.map → chunk-LMRKHQG5.js.map} +0 -0
  68. /package/dist/{chunk-O4AJGETH.js.map → chunk-MJHOSM5U.js.map} +0 -0
  69. /package/dist/{chunk-5CYDU2VX.js.map → chunk-OF7CYMMA.js.map} +0 -0
  70. /package/dist/{chunk-HRTGSG4L.js.map → chunk-OKB2SUFX.js.map} +0 -0
  71. /package/dist/{chunk-3H44UAHW.js.map → chunk-TOYPY5XA.js.map} +0 -0
  72. /package/dist/{chunk-P5NBYCEC.js.map → chunk-U3HZQTUF.js.map} +0 -0
  73. /package/dist/{chunk-3BLWO2ZM.js.map → chunk-VGZJIR22.js.map} +0 -0
  74. /package/dist/{chunk-F2YQX6Q6.js.map → chunk-WYSHXPKK.js.map} +0 -0
  75. /package/dist/{chunk-N36KDK3E.js.map → chunk-XATH462F.js.map} +0 -0
  76. /package/dist/{chunk-TR74DSB4.js.map → chunk-ZPPX2K57.js.map} +0 -0
  77. /package/dist/{cli-circuit-breaker-JE6XKLUG.js.map → cli-circuit-breaker-2CJ6NV52.js.map} +0 -0
  78. /package/dist/{composite-router-KBOGB7GQ.js.map → composite-router-AYVJPIOS.js.map} +0 -0
  79. /package/dist/{consensus-vote-PIU3D3KP.js.map → consensus-vote-WUGHRBYE.js.map} +0 -0
  80. /package/dist/{doctor-deep-DGY2N4U2.js.map → doctor-deep-BJFDBGPO.js.map} +0 -0
  81. /package/dist/{expert-bridge-5IPLSDJH.js.map → expert-bridge-75WNNWI4.js.map} +0 -0
  82. /package/dist/{expert-config-6X4225UC.js.map → expert-config-HN7U7X2K.js.map} +0 -0
  83. /package/dist/{factory-PSFI6WDI.js.map → factory-BHHC6C7W.js.map} +0 -0
  84. /package/dist/{factory-ZTNGLNFH.js.map → factory-KMBWFIX2.js.map} +0 -0
  85. /package/dist/{issue-triage-VOZNNCUG.js.map → issue-triage-TXQ7J6GG.js.map} +0 -0
  86. /package/dist/{mcp-config-PDH6LS6E.js.map → mcp-config-OCWIXE2Y.js.map} +0 -0
  87. /package/dist/{mobimem-7KQVPLAW.js.map → mobimem-77W5ED4Z.js.map} +0 -0
  88. /package/dist/{registry-command-BS75IWSA.js.map → registry-command-BBLIXULQ.js.map} +0 -0
  89. /package/dist/{repo-security-plan-VZTTNXYJ.js.map → repo-security-plan-7SNM7JQN.js.map} +0 -0
  90. /package/dist/{research-helpers-synthesize-B3C6BFCX.js.map → research-helpers-synthesize-7CI2FJE5.js.map} +0 -0
  91. /package/dist/{routing-memory-BGK2HMC3.js.map → routing-memory-DCIZEEVC.js.map} +0 -0
  92. /package/dist/{session-memory-ESTZAPL2.js.map → session-memory-5TSAASQW.js.map} +0 -0
  93. /package/dist/{setup-command-J6QG2G5V.js.map → setup-command-SACUP65O.js.map} +0 -0
  94. /package/dist/{setup-config-LG67TIFO.js.map → setup-config-EA5RDIO2.js.map} +0 -0
  95. /package/dist/{setup-custom-api-4DZABP47.js.map → setup-custom-api-IQX3GD2D.js.map} +0 -0
  96. /package/dist/{weather-report-HUY35FUZ.js.map → weather-report-NETGWTJX.js.map} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  getErrorMessage,
5
5
  getTimeProvider,
6
6
  ok
7
- } from "./chunk-NV63LTMM.js";
7
+ } from "./chunk-7OBFO4GF.js";
8
8
 
9
9
  // src/context/session-memory.ts
10
10
  import * as fs from "fs";
@@ -351,4 +351,4 @@ export {
351
351
  SessionMemory,
352
352
  createSessionMemory
353
353
  };
354
- //# sourceMappingURL=chunk-TR74DSB4.js.map
354
+ //# sourceMappingURL=chunk-ZPPX2K57.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CliCircuitBreakerIntegration,
3
3
  createCliCircuitBreakerIntegration
4
- } from "./chunk-F2YQX6Q6.js";
5
- import "./chunk-P5NBYCEC.js";
6
- import "./chunk-NV63LTMM.js";
4
+ } from "./chunk-WYSHXPKK.js";
5
+ import "./chunk-U3HZQTUF.js";
6
+ import "./chunk-7OBFO4GF.js";
7
7
  import "./chunk-LJT65EA7.js";
8
8
  import "./chunk-FDNWRZNJ.js";
9
9
  import "./chunk-UP2VWCW5.js";
@@ -11,4 +11,4 @@ export {
11
11
  CliCircuitBreakerIntegration,
12
12
  createCliCircuitBreakerIntegration
13
13
  };
14
- //# sourceMappingURL=cli-circuit-breaker-JE6XKLUG.js.map
14
+ //# sourceMappingURL=cli-circuit-breaker-2CJ6NV52.js.map
package/dist/cli.js CHANGED
@@ -12,12 +12,12 @@ import {
12
12
  parseFindings,
13
13
  sumFindings
14
14
  } from "./chunk-6E3NMMEY.js";
15
- import "./chunk-UFHFX2GX.js";
15
+ import "./chunk-32RIOULO.js";
16
16
  import {
17
17
  setupCommandAsync,
18
18
  verifyCommand
19
- } from "./chunk-OKU3VXWC.js";
20
- import "./chunk-5CYDU2VX.js";
19
+ } from "./chunk-3NDP3APQ.js";
20
+ import "./chunk-OF7CYMMA.js";
21
21
  import {
22
22
  AuthHandler,
23
23
  DEFAULT_EXPERTS,
@@ -26,6 +26,7 @@ import {
26
26
  ExpertFactory,
27
27
  FeedbackIntegration,
28
28
  Orchestrator,
29
+ OrchestratorFactory,
29
30
  PuppeteerOrchestrator,
30
31
  READONLY_POLICY,
31
32
  SwarmObserver,
@@ -45,7 +46,7 @@ import {
45
46
  createGatewayServerProxy,
46
47
  createHarnessExecutor,
47
48
  createLearnablePolicy,
48
- createMockTechLead,
49
+ createMockOrchestrator,
49
50
  createRealWorkflowEngine,
50
51
  createResearchIssue,
51
52
  createRuleBasedPolicy,
@@ -100,6 +101,7 @@ import {
100
101
  loadWorkflowFile,
101
102
  rankDiscoveredItems,
102
103
  readStoredToken,
104
+ registerCompareDataFeedsTool,
103
105
  registerCreateExpertTool,
104
106
  registerDelegateToModelTool,
105
107
  registerExecuteExpertTool,
@@ -130,7 +132,9 @@ import {
130
132
  registerRunGraphWorkflowTool,
131
133
  registerRunWorkflowTool,
132
134
  registerSearchCodebaseTool,
135
+ registerSurveyOssLandscapeTool,
133
136
  registerTools,
137
+ registerVendorPublishingAuditTool,
134
138
  registerVerifyAuditChainTool,
135
139
  registerWeatherReportTool,
136
140
  resolveV2Config,
@@ -142,16 +146,16 @@ import {
142
146
  validateCommand,
143
147
  validateWorkflow,
144
148
  wrapInMarkdownFence
145
- } from "./chunk-CUGQAPGY.js";
149
+ } from "./chunk-EMPW45GD.js";
146
150
  import "./chunk-ED6VQWNG.js";
147
151
  import {
148
152
  resolveToken
149
- } from "./chunk-WDWKKJHZ.js";
153
+ } from "./chunk-E66KFRSJ.js";
150
154
  import {
151
155
  CATEGORY_DISPLAY_NAMES,
152
156
  DEFAULT_PR_REVIEW_CONFIG
153
157
  } from "./chunk-X2M7OF27.js";
154
- import "./chunk-SUR2TLIG.js";
158
+ import "./chunk-ANC3HU6F.js";
155
159
  import {
156
160
  DEFAULT_VOTE_TIMEOUT_MS,
157
161
  THRESHOLD_MAP,
@@ -164,23 +168,23 @@ import {
164
168
  shutdownToolMemory,
165
169
  validateTimeout,
166
170
  warnIfSimulatedOutsideTests
167
- } from "./chunk-TSS7VN3V.js";
168
- import "./chunk-3BLWO2ZM.js";
171
+ } from "./chunk-UMLBVSW4.js";
172
+ import "./chunk-VGZJIR22.js";
169
173
  import {
170
174
  loadPapersRegistry,
171
175
  loadTechniquesRegistry,
172
176
  savePapersRegistry,
173
177
  synthesizeResearch
174
- } from "./chunk-3H44UAHW.js";
178
+ } from "./chunk-TOYPY5XA.js";
175
179
  import {
176
180
  classifyTrust,
177
181
  createFullGitHubProvider,
178
182
  evaluatePolicy,
179
183
  parsePRUrl,
180
184
  sanitizeInput
181
- } from "./chunk-CQXNX6BQ.js";
182
- import "./chunk-VOBYREAG.js";
183
- import "./chunk-5HQJGYYM.js";
185
+ } from "./chunk-7QWNOE23.js";
186
+ import "./chunk-7ZPYV4HO.js";
187
+ import "./chunk-LMRKHQG5.js";
184
188
  import "./chunk-BC3M4VLP.js";
185
189
  import "./chunk-AP2FD37C.js";
186
190
  import "./chunk-BQ4YXGGQ.js";
@@ -202,29 +206,29 @@ import {
202
206
  loadConfig,
203
207
  runDoctor,
204
208
  validateNexusEnv
205
- } from "./chunk-HRTGSG4L.js";
209
+ } from "./chunk-OKB2SUFX.js";
206
210
  import {
207
211
  DEFAULTS
208
- } from "./chunk-6MRF2PE2.js";
212
+ } from "./chunk-L2LQ3TSV.js";
209
213
  import "./chunk-NUBSJGQZ.js";
210
214
  import {
211
215
  createAllAdapters,
212
216
  getAvailableClis,
213
217
  isRecord
214
- } from "./chunk-N36KDK3E.js";
215
- import "./chunk-O3CBMPGT.js";
216
- import "./chunk-TR74DSB4.js";
218
+ } from "./chunk-XATH462F.js";
219
+ import "./chunk-ZM4O442V.js";
220
+ import "./chunk-ZPPX2K57.js";
217
221
  import {
218
222
  MemoryError
219
- } from "./chunk-O4AJGETH.js";
223
+ } from "./chunk-MJHOSM5U.js";
220
224
  import {
221
225
  capitalize,
222
226
  capitalizeKebab,
223
227
  truncateSentence
224
228
  } from "./chunk-633WH2ML.js";
225
- import "./chunk-R4FVXOZF.js";
226
- import "./chunk-F2YQX6Q6.js";
227
- import "./chunk-P5NBYCEC.js";
229
+ import "./chunk-DWLATKBK.js";
230
+ import "./chunk-WYSHXPKK.js";
231
+ import "./chunk-U3HZQTUF.js";
228
232
  import {
229
233
  API_TIMEOUTS,
230
234
  AgentCapability,
@@ -289,7 +293,7 @@ import {
289
293
  toError,
290
294
  writeEmptyLine,
291
295
  writeLine
292
- } from "./chunk-NV63LTMM.js";
296
+ } from "./chunk-7OBFO4GF.js";
293
297
  import "./chunk-LJT65EA7.js";
294
298
  import {
295
299
  getNexusDataDir,
@@ -18801,6 +18805,9 @@ var REGISTERED_TOOLS = [
18801
18805
  "research_discover",
18802
18806
  "research_analyze",
18803
18807
  "research_catalog_review",
18808
+ "survey_oss_landscape",
18809
+ "vendor_publishing_audit",
18810
+ "compare_data_feeds",
18804
18811
  "memory_query",
18805
18812
  "memory_stats",
18806
18813
  "memory_write",
@@ -18816,7 +18823,12 @@ var REGISTERED_TOOLS = [
18816
18823
  var MOCK_ORCHESTRATION_ENV = "NEXUS_ALLOW_MOCK_ORCHESTRATION";
18817
18824
  function createOrchestratorForOrchestration(modelAdapter, logger17, useMockTechLead) {
18818
18825
  if (modelAdapter !== void 0) {
18819
- return new Orchestrator({ adapter: modelAdapter, logger: logger17 });
18826
+ const orchestratorAgent = new Orchestrator({ adapter: modelAdapter, logger: logger17 });
18827
+ const factory = new OrchestratorFactory({
18828
+ logger: logger17,
18829
+ techLead: orchestratorAgent
18830
+ });
18831
+ return factory.create("orchestrator");
18820
18832
  }
18821
18833
  const envMockEnabled = process.env[MOCK_ORCHESTRATION_ENV] === "true";
18822
18834
  const mockEnabled = useMockTechLead === true || envMockEnabled;
@@ -18825,7 +18837,7 @@ function createOrchestratorForOrchestration(modelAdapter, logger17, useMockTechL
18825
18837
  logger17.warn(
18826
18838
  `Using mock orchestrator as explicitly configured via ${source} (no real adapter available)`
18827
18839
  );
18828
- return createMockTechLead();
18840
+ return createMockOrchestrator();
18829
18841
  }
18830
18842
  throw new OrchestratorUnavailableError(
18831
18843
  `No model adapter available and mock orchestrator not explicitly enabled. Set useMockTechLead: true in config, or ${MOCK_ORCHESTRATION_ENV}=true, or configure an API key (ANTHROPIC_API_KEY, OPENAI_API_KEY, or GOOGLE_AI_API_KEY).`
@@ -18913,6 +18925,18 @@ function registerResearchTools(ctx) {
18913
18925
  ...researchDeps,
18914
18926
  rateLimiter: ctx.rateLimiterFactory.getForTool("research_synthesize")
18915
18927
  });
18928
+ registerSurveyOssLandscapeTool(ctx.server, {
18929
+ ...researchDeps,
18930
+ rateLimiter: ctx.rateLimiterFactory.getForTool("survey_oss_landscape")
18931
+ });
18932
+ registerVendorPublishingAuditTool(ctx.server, {
18933
+ ...researchDeps,
18934
+ rateLimiter: ctx.rateLimiterFactory.getForTool("vendor_publishing_audit")
18935
+ });
18936
+ registerCompareDataFeedsTool(ctx.server, {
18937
+ ...researchDeps,
18938
+ rateLimiter: ctx.rateLimiterFactory.getForTool("compare_data_feeds")
18939
+ });
18916
18940
  }
18917
18941
  function registerMemoryTools(ctx) {
18918
18942
  const memoryDeps = {
@@ -18949,7 +18973,7 @@ function registerOrchestrateToolSafe(ctx) {
18949
18973
  ctx.useMockTechLead
18950
18974
  );
18951
18975
  registerOrchestrateTool(ctx.server, {
18952
- techLead: orchestrator,
18976
+ orchestrator,
18953
18977
  logger: ctx.logger,
18954
18978
  rateLimiter: ctx.rateLimiterFactory.getForTool("orchestrate"),
18955
18979
  security: ctx.securityConfig,
@@ -21198,7 +21222,7 @@ async function handleResearchCommand(args) {
21198
21222
  }
21199
21223
  }
21200
21224
  async function handleRegistryCommand(args) {
21201
- const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-BS75IWSA.js");
21225
+ const { registryCommand, isValidRegistrySubcommand, formatRegistryUsage } = await import("./registry-command-BBLIXULQ.js");
21202
21226
  const subcommand = args.subcommand;
21203
21227
  if (!isValidRegistrySubcommand(subcommand)) {
21204
21228
  process.stdout.write(`${formatRegistryUsage()}
@@ -21246,7 +21270,7 @@ async function handleVerifyCommand(args) {
21246
21270
  async function handleDoctorCommand(args) {
21247
21271
  const exitCode = await doctorCommand({ fix: args.options.fix });
21248
21272
  if (args.options.deep) {
21249
- const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-DGY2N4U2.js");
21273
+ const { runDeepDiagnostics: runDeepDiagnostics2, formatDeepDiagnostics: formatDeepDiagnostics2 } = await import("./doctor-deep-BJFDBGPO.js");
21250
21274
  const diag = runDeepDiagnostics2();
21251
21275
  process.stdout.write(formatDeepDiagnostics2(diag) + "\n");
21252
21276
  }
@@ -21302,7 +21326,7 @@ async function handleSetupCommandAsync(args) {
21302
21326
  process.exit(exitCode === 0 ? EXIT_CODES.SUCCESS : EXIT_CODES.SERVER_START_FAILED);
21303
21327
  }
21304
21328
  async function runCustomApiSetup(args) {
21305
- const { configureCustomApi } = await import("./setup-custom-api-4DZABP47.js");
21329
+ const { configureCustomApi } = await import("./setup-custom-api-IQX3GD2D.js");
21306
21330
  const baseUrl = args.options.customApi;
21307
21331
  if (baseUrl === void 0) return EXIT_CODES.SERVER_START_FAILED;
21308
21332
  const input = {