nexus-agents 2.79.4 → 2.80.1

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 (119) hide show
  1. package/dist/{child-mcp-config-DFRYTRBK.js → child-mcp-config-Q6UMCPGZ.js} +3 -3
  2. package/dist/{chunk-UWDVEMYZ.js → chunk-23XU4LE2.js} +4 -4
  3. package/dist/chunk-2JQXC3CK.js +317 -0
  4. package/dist/chunk-2JQXC3CK.js.map +1 -0
  5. package/dist/{chunk-DOI7RE3X.js → chunk-33LDLZCC.js} +2 -2
  6. package/dist/{chunk-UNRTM43V.js → chunk-54UT2JUQ.js} +2 -2
  7. package/dist/{chunk-OGV7J5WG.js → chunk-5WN3WGXG.js} +3 -3
  8. package/dist/{chunk-NJPFN75N.js → chunk-7UM5XRGG.js} +2 -2
  9. package/dist/{chunk-JMRCMMZ5.js → chunk-7ZKZ7K7J.js} +2 -2
  10. package/dist/{chunk-45NUO4FE.js → chunk-ALDKPBOZ.js} +2 -2
  11. package/dist/{chunk-DW3UTO43.js → chunk-D3MQ4U2R.js} +51 -21
  12. package/dist/chunk-D3MQ4U2R.js.map +1 -0
  13. package/dist/{chunk-NVSJXN4S.js → chunk-D4NEYNBO.js} +8 -5
  14. package/dist/chunk-D4NEYNBO.js.map +1 -0
  15. package/dist/{chunk-42MM7GKW.js → chunk-D5C5N5Q4.js} +2 -2
  16. package/dist/{chunk-BIH2CBC5.js → chunk-EPZMFIAX.js} +105 -10
  17. package/dist/chunk-EPZMFIAX.js.map +1 -0
  18. package/dist/{chunk-ACP4YARI.js → chunk-GODRGVF4.js} +3 -3
  19. package/dist/{chunk-IPDUZJPH.js → chunk-HR7C4DSA.js} +4 -4
  20. package/dist/{chunk-PAKVXGS2.js → chunk-I5KYDT23.js} +2 -2
  21. package/dist/{chunk-PDCLBWH5.js → chunk-L7433REX.js} +4 -4
  22. package/dist/{chunk-3ENBGGYA.js → chunk-LDD272PW.js} +959 -885
  23. package/dist/chunk-LDD272PW.js.map +1 -0
  24. package/dist/{chunk-OFRDE7MK.js → chunk-MUIA32LU.js} +2 -2
  25. package/dist/{chunk-TN5ZKSGC.js → chunk-MVIYQMQM.js} +2 -2
  26. package/dist/{chunk-NXNNT5XW.js → chunk-NALIFUBD.js} +4 -4
  27. package/dist/{chunk-LFTK5ZQG.js → chunk-NCBWA6RU.js} +2 -2
  28. package/dist/{chunk-BXI6DKBU.js → chunk-O2ECPTFH.js} +3 -3
  29. package/dist/{chunk-UNFS6YBY.js → chunk-Q4DXTNGR.js} +2 -2
  30. package/dist/{chunk-BSQ4KTY4.js → chunk-SX3P2PD2.js} +2 -2
  31. package/dist/{chunk-UQOSVOEU.js → chunk-T4E6UFFC.js} +16 -14
  32. package/dist/chunk-T4E6UFFC.js.map +1 -0
  33. package/dist/{chunk-UOR2JWFH.js → chunk-TFTP7EUQ.js} +82 -57
  34. package/dist/chunk-TFTP7EUQ.js.map +1 -0
  35. package/dist/{chunk-PHBRELUK.js → chunk-UEKTTIDA.js} +7 -7
  36. package/dist/{chunk-SU3Y6LU2.js → chunk-WZ2T4T7N.js} +32 -6
  37. package/dist/chunk-WZ2T4T7N.js.map +1 -0
  38. package/dist/{cli-circuit-breaker-T75HOLZK.js → cli-circuit-breaker-EUERR2HK.js} +5 -5
  39. package/dist/cli.d.ts +1 -1
  40. package/dist/cli.js +618 -567
  41. package/dist/cli.js.map +1 -1
  42. package/dist/{composite-router-OPSK5FCQ.js → composite-router-ZP72LQFH.js} +3 -3
  43. package/dist/{consensus-vote-CYUPIJXR.js → consensus-vote-TU3TQ4VH.js} +12 -12
  44. package/dist/{context-retriever-6AWHCHRP.js → context-retriever-OTLV46DF.js} +6 -6
  45. package/dist/{doctor-deep-XBPRQ6ZP.js → doctor-deep-ZMBSG2DF.js} +4 -4
  46. package/dist/expert-bridge-IK4TY7HA.js +11 -0
  47. package/dist/{factory-Y3TMP4OQ.js → factory-45NHZFLK.js} +5 -5
  48. package/dist/factory-QDHYIYVE.js +14 -0
  49. package/dist/index.d.ts +40 -5
  50. package/dist/index.js +25 -25
  51. package/dist/{init-opencode-RV6IQEMS.js → init-opencode-WFL4OXMB.js} +6 -6
  52. package/dist/issue-triage-UHFCGTEJ.js +15 -0
  53. package/dist/{learning-persistence-Q3HTOGTU.js → learning-persistence-TGOBRUUU.js} +2 -2
  54. package/dist/{registry-command-6KJWW3W7.js → registry-command-YMZPSW7S.js} +3 -3
  55. package/dist/{repo-security-plan-HNLMF7J7.js → repo-security-plan-TGDXTSHS.js} +4 -4
  56. package/dist/{research-helpers-synthesize-77TLYSW4.js → research-helpers-synthesize-5BAN353Y.js} +4 -4
  57. package/dist/{routing-memory-6DV6ZPAH.js → routing-memory-RG3U2MC2.js} +3 -3
  58. package/dist/{session-memory-XZ3NJIR4.js → session-memory-C5GC2JAX.js} +4 -4
  59. package/dist/{setup-command-QOXG36UV.js → setup-command-OXJ32UAI.js} +13 -11
  60. package/dist/setup-config-KNMVMGDD.js +10 -0
  61. package/dist/{setup-custom-api-PJ6TGHJH.js → setup-custom-api-4EYRKCHB.js} +5 -5
  62. package/dist/{tool-memory-K2QPTPKV.js → tool-memory-LUXUOE6Q.js} +5 -5
  63. package/dist/{weather-report-ZB4AKOIA.js → weather-report-3KSDTC7T.js} +3 -3
  64. package/package.json +1 -1
  65. package/dist/chunk-3ENBGGYA.js.map +0 -1
  66. package/dist/chunk-7BMOZJYS.js +0 -83
  67. package/dist/chunk-7BMOZJYS.js.map +0 -1
  68. package/dist/chunk-BIH2CBC5.js.map +0 -1
  69. package/dist/chunk-DW3UTO43.js.map +0 -1
  70. package/dist/chunk-NVSJXN4S.js.map +0 -1
  71. package/dist/chunk-SU3Y6LU2.js.map +0 -1
  72. package/dist/chunk-UOR2JWFH.js.map +0 -1
  73. package/dist/chunk-UQOSVOEU.js.map +0 -1
  74. package/dist/expert-bridge-5YOPK5IT.js +0 -11
  75. package/dist/factory-DN7SJZ5Z.js +0 -14
  76. package/dist/issue-triage-UTWKXLKC.js +0 -15
  77. package/dist/setup-config-B4V4QHDP.js +0 -10
  78. /package/dist/{child-mcp-config-DFRYTRBK.js.map → child-mcp-config-Q6UMCPGZ.js.map} +0 -0
  79. /package/dist/{chunk-UWDVEMYZ.js.map → chunk-23XU4LE2.js.map} +0 -0
  80. /package/dist/{chunk-DOI7RE3X.js.map → chunk-33LDLZCC.js.map} +0 -0
  81. /package/dist/{chunk-UNRTM43V.js.map → chunk-54UT2JUQ.js.map} +0 -0
  82. /package/dist/{chunk-OGV7J5WG.js.map → chunk-5WN3WGXG.js.map} +0 -0
  83. /package/dist/{chunk-NJPFN75N.js.map → chunk-7UM5XRGG.js.map} +0 -0
  84. /package/dist/{chunk-JMRCMMZ5.js.map → chunk-7ZKZ7K7J.js.map} +0 -0
  85. /package/dist/{chunk-45NUO4FE.js.map → chunk-ALDKPBOZ.js.map} +0 -0
  86. /package/dist/{chunk-42MM7GKW.js.map → chunk-D5C5N5Q4.js.map} +0 -0
  87. /package/dist/{chunk-ACP4YARI.js.map → chunk-GODRGVF4.js.map} +0 -0
  88. /package/dist/{chunk-IPDUZJPH.js.map → chunk-HR7C4DSA.js.map} +0 -0
  89. /package/dist/{chunk-PAKVXGS2.js.map → chunk-I5KYDT23.js.map} +0 -0
  90. /package/dist/{chunk-PDCLBWH5.js.map → chunk-L7433REX.js.map} +0 -0
  91. /package/dist/{chunk-OFRDE7MK.js.map → chunk-MUIA32LU.js.map} +0 -0
  92. /package/dist/{chunk-TN5ZKSGC.js.map → chunk-MVIYQMQM.js.map} +0 -0
  93. /package/dist/{chunk-NXNNT5XW.js.map → chunk-NALIFUBD.js.map} +0 -0
  94. /package/dist/{chunk-LFTK5ZQG.js.map → chunk-NCBWA6RU.js.map} +0 -0
  95. /package/dist/{chunk-BXI6DKBU.js.map → chunk-O2ECPTFH.js.map} +0 -0
  96. /package/dist/{chunk-UNFS6YBY.js.map → chunk-Q4DXTNGR.js.map} +0 -0
  97. /package/dist/{chunk-BSQ4KTY4.js.map → chunk-SX3P2PD2.js.map} +0 -0
  98. /package/dist/{chunk-PHBRELUK.js.map → chunk-UEKTTIDA.js.map} +0 -0
  99. /package/dist/{cli-circuit-breaker-T75HOLZK.js.map → cli-circuit-breaker-EUERR2HK.js.map} +0 -0
  100. /package/dist/{composite-router-OPSK5FCQ.js.map → composite-router-ZP72LQFH.js.map} +0 -0
  101. /package/dist/{consensus-vote-CYUPIJXR.js.map → consensus-vote-TU3TQ4VH.js.map} +0 -0
  102. /package/dist/{context-retriever-6AWHCHRP.js.map → context-retriever-OTLV46DF.js.map} +0 -0
  103. /package/dist/{doctor-deep-XBPRQ6ZP.js.map → doctor-deep-ZMBSG2DF.js.map} +0 -0
  104. /package/dist/{expert-bridge-5YOPK5IT.js.map → expert-bridge-IK4TY7HA.js.map} +0 -0
  105. /package/dist/{factory-DN7SJZ5Z.js.map → factory-45NHZFLK.js.map} +0 -0
  106. /package/dist/{factory-Y3TMP4OQ.js.map → factory-QDHYIYVE.js.map} +0 -0
  107. /package/dist/{init-opencode-RV6IQEMS.js.map → init-opencode-WFL4OXMB.js.map} +0 -0
  108. /package/dist/{issue-triage-UTWKXLKC.js.map → issue-triage-UHFCGTEJ.js.map} +0 -0
  109. /package/dist/{learning-persistence-Q3HTOGTU.js.map → learning-persistence-TGOBRUUU.js.map} +0 -0
  110. /package/dist/{registry-command-6KJWW3W7.js.map → registry-command-YMZPSW7S.js.map} +0 -0
  111. /package/dist/{repo-security-plan-HNLMF7J7.js.map → repo-security-plan-TGDXTSHS.js.map} +0 -0
  112. /package/dist/{research-helpers-synthesize-77TLYSW4.js.map → research-helpers-synthesize-5BAN353Y.js.map} +0 -0
  113. /package/dist/{routing-memory-6DV6ZPAH.js.map → routing-memory-RG3U2MC2.js.map} +0 -0
  114. /package/dist/{session-memory-XZ3NJIR4.js.map → session-memory-C5GC2JAX.js.map} +0 -0
  115. /package/dist/{setup-command-QOXG36UV.js.map → setup-command-OXJ32UAI.js.map} +0 -0
  116. /package/dist/{setup-config-B4V4QHDP.js.map → setup-config-KNMVMGDD.js.map} +0 -0
  117. /package/dist/{setup-custom-api-PJ6TGHJH.js.map → setup-custom-api-4EYRKCHB.js.map} +0 -0
  118. /package/dist/{tool-memory-K2QPTPKV.js.map → tool-memory-LUXUOE6Q.js.map} +0 -0
  119. /package/dist/{weather-report-ZB4AKOIA.js.map → weather-report-3KSDTC7T.js.map} +0 -0
@@ -2,31 +2,32 @@ import {
2
2
  CUSTOM_API_BASE_URL_ENV,
3
3
  PROVIDER_ENV_KEYS,
4
4
  validateCustomApiBaseUrl
5
- } from "./chunk-PAKVXGS2.js";
5
+ } from "./chunk-I5KYDT23.js";
6
6
  import {
7
7
  AdapterModelError,
8
8
  BaseAdapter,
9
9
  createStream,
10
10
  requireApiKey,
11
11
  validateApiKeyPresence
12
- } from "./chunk-DOI7RE3X.js";
12
+ } from "./chunk-33LDLZCC.js";
13
13
  import {
14
14
  getToolMemory
15
- } from "./chunk-NXNNT5XW.js";
15
+ } from "./chunk-NALIFUBD.js";
16
16
  import {
17
17
  getDefaultAvailableModelsCache
18
- } from "./chunk-42MM7GKW.js";
18
+ } from "./chunk-D5C5N5Q4.js";
19
19
  import {
20
20
  CUSTOM_API_DEFAULT_MODEL
21
- } from "./chunk-UNRTM43V.js";
21
+ } from "./chunk-54UT2JUQ.js";
22
22
  import {
23
23
  createCliAdapter,
24
24
  createCliDetectionCache,
25
25
  delay,
26
26
  getAvailableClis,
27
27
  isCliAvailable,
28
+ sanitizeOutput,
28
29
  withTimeout
29
- } from "./chunk-BIH2CBC5.js";
30
+ } from "./chunk-EPZMFIAX.js";
30
31
  import {
31
32
  AgentError,
32
33
  CACHE_TIMEOUTS,
@@ -69,13 +70,13 @@ import {
69
70
  resolveCliAlias,
70
71
  resolveVoteTimeout,
71
72
  toRateLimitError
72
- } from "./chunk-UQOSVOEU.js";
73
+ } from "./chunk-T4E6UFFC.js";
73
74
  import {
74
75
  ensureLearningDir,
75
76
  getNexusDataDir,
76
77
  getOutcomesFile,
77
78
  nexusDataPath
78
- } from "./chunk-7BMOZJYS.js";
79
+ } from "./chunk-2JQXC3CK.js";
79
80
 
80
81
  // src/mcp/tools/consensus-vote.ts
81
82
  import { z as z10 } from "zod";
@@ -1596,7 +1597,7 @@ var SECRET_PATTERNS = [
1596
1597
  // password= or token= in output
1597
1598
  /(?:password|token|secret|apikey|api_key)\s*[=:]\s*\S{8,}/i
1598
1599
  ];
1599
- function sanitizeOutput(text, logger8) {
1600
+ function sanitizeOutput2(text, logger8) {
1600
1601
  let sanitized = text;
1601
1602
  for (const pattern of SECRET_PATTERNS) {
1602
1603
  if (pattern.test(sanitized)) {
@@ -1610,7 +1611,7 @@ function sanitizeOutput(text, logger8) {
1610
1611
  }
1611
1612
  function sanitizeToolResult(result, logger8) {
1612
1613
  for (const item of result.content) {
1613
- item.text = sanitizeOutput(item.text, logger8);
1614
+ item.text = sanitizeOutput2(item.text, logger8);
1614
1615
  }
1615
1616
  }
1616
1617
  function checkInputSize(args, logger8, requestId) {
@@ -2631,9 +2632,10 @@ var SdkAdapter = class extends BaseAdapter {
2631
2632
  */
2632
2633
  toErrorResult(error, code) {
2633
2634
  const message = getErrorMessage(error);
2634
- const errorObj = error instanceof Error ? error : new Error(message);
2635
+ const safeMessage = sanitizeOutput(message);
2636
+ const errorObj = error instanceof Error ? error : new Error(safeMessage);
2635
2637
  this.logger.error(`SDK adapter error (${this.sdkProviderId})`, errorObj);
2636
- const modelError = new AdapterModelError(`${this.sdkProviderId} SDK error: ${message}`, {
2638
+ const modelError = new AdapterModelError(`${this.sdkProviderId} SDK error: ${safeMessage}`, {
2637
2639
  code
2638
2640
  });
2639
2641
  return { ok: false, error: modelError };
@@ -5281,6 +5283,13 @@ function createHigherOrderVotingStrategy(options) {
5281
5283
  }
5282
5284
 
5283
5285
  // src/consensus/strategies.ts
5286
+ function evaluateThreshold(approveCount, votingTotal, threshold, inclusive) {
5287
+ const ratio = approveCount / votingTotal;
5288
+ return {
5289
+ approved: inclusive ? ratio >= threshold : ratio > threshold,
5290
+ approvalPercentage: ratio * 100
5291
+ };
5292
+ }
5284
5293
  var BaseVotingStrategy = class {
5285
5294
  /**
5286
5295
  * Count votes by decision type.
@@ -5344,8 +5353,12 @@ var SimpleMajorityStrategy = class extends BaseVotingStrategy {
5344
5353
  reason: "No votes cast (excluding abstentions)"
5345
5354
  };
5346
5355
  }
5347
- const approvalPercentage = counts.approve / votingVotes * 100;
5348
- const approved = counts.approve / votingVotes > threshold;
5356
+ const { approved, approvalPercentage } = evaluateThreshold(
5357
+ counts.approve,
5358
+ votingVotes,
5359
+ threshold,
5360
+ false
5361
+ );
5349
5362
  return {
5350
5363
  approved,
5351
5364
  approvalPercentage,
@@ -5368,8 +5381,12 @@ var SupermajorityStrategy = class extends BaseVotingStrategy {
5368
5381
  reason: "No votes cast (excluding abstentions)"
5369
5382
  };
5370
5383
  }
5371
- const approvalPercentage = counts.approve / votingVotes * 100;
5372
- const approved = counts.approve / votingVotes >= threshold;
5384
+ const { approved, approvalPercentage } = evaluateThreshold(
5385
+ counts.approve,
5386
+ votingVotes,
5387
+ threshold,
5388
+ true
5389
+ );
5373
5390
  return {
5374
5391
  approved,
5375
5392
  approvalPercentage,
@@ -5432,8 +5449,12 @@ var ProofOfLearningStrategy = class extends BaseVotingStrategy {
5432
5449
  reason: "No weighted votes cast (excluding abstentions)"
5433
5450
  };
5434
5451
  }
5435
- const approvalPercentage = weightedCounts.approve / votingWeight * 100;
5436
- const approved = weightedCounts.approve / votingWeight > threshold;
5452
+ const { approved, approvalPercentage } = evaluateThreshold(
5453
+ weightedCounts.approve,
5454
+ votingWeight,
5455
+ threshold,
5456
+ false
5457
+ );
5437
5458
  return {
5438
5459
  approved,
5439
5460
  approvalPercentage,
@@ -5669,7 +5690,16 @@ var ConsensusEngine = class {
5669
5690
  return this.closeInternal(proposalId).then((r) => r.ok ? ok(void 0) : err(r.error));
5670
5691
  }
5671
5692
  if (this.allRequiredVotersVoted(state)) {
5672
- const expanded = await this.tryExpandQuorum(proposalId, state);
5693
+ if (state.expansionInFlight === true) {
5694
+ return Promise.resolve(ok(void 0));
5695
+ }
5696
+ state.expansionInFlight = true;
5697
+ let expanded;
5698
+ try {
5699
+ expanded = await this.tryExpandQuorum(proposalId, state);
5700
+ } finally {
5701
+ state.expansionInFlight = false;
5702
+ }
5673
5703
  if (!expanded) {
5674
5704
  return this.closeInternal(proposalId).then((r) => r.ok ? ok(void 0) : err(r.error));
5675
5705
  }
@@ -8648,7 +8678,7 @@ async function processVotesWithCascade(engineVotes, opts) {
8648
8678
  var CONTRARIAN_ESCALATION_THRESHOLD = 0.8;
8649
8679
  async function runContrarianCheck(proposal, log) {
8650
8680
  try {
8651
- const { executeExpert } = await import("./expert-bridge-5YOPK5IT.js");
8681
+ const { executeExpert } = await import("./expert-bridge-IK4TY7HA.js");
8652
8682
  const prompt = [
8653
8683
  "You are a contrarian analyst. Your job is to find reasons this proposal should be REJECTED.",
8654
8684
  "Look for: YAGNI (not needed), MISALIGNED (wrong tech/architecture), SECURITY_RISK, SCOPE_CREEP.",
@@ -9065,4 +9095,4 @@ export {
9065
9095
  CONSENSUS_VOTE_OUTPUT_SCHEMA,
9066
9096
  registerConsensusVoteTool
9067
9097
  };
9068
- //# sourceMappingURL=chunk-DW3UTO43.js.map
9098
+ //# sourceMappingURL=chunk-D3MQ4U2R.js.map