nexus-agents 2.29.1 → 2.30.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 (89) hide show
  1. package/dist/{adaptive-memory-RST6DZYR.js → adaptive-memory-5VP5WWTE.js} +3 -3
  2. package/dist/{chunk-YSTJEMQX.js → chunk-4IEUUQ4G.js} +7 -7
  3. package/dist/{chunk-IECE6DBS.js → chunk-5COIDGQJ.js} +3 -3
  4. package/dist/{chunk-XU3NADFE.js → chunk-63AJLNKU.js} +2 -2
  5. package/dist/{chunk-C2C5ONFR.js → chunk-66NNHMVB.js} +3 -3
  6. package/dist/{chunk-CGWRJ4EM.js → chunk-6CHMHPT4.js} +73 -15
  7. package/dist/chunk-6CHMHPT4.js.map +1 -0
  8. package/dist/{chunk-3EVVQ32X.js → chunk-CD64JT3I.js} +7 -6
  9. package/dist/chunk-CD64JT3I.js.map +1 -0
  10. package/dist/{chunk-4AGPR6XZ.js → chunk-CW2Z773T.js} +3 -3
  11. package/dist/{chunk-FYJVXQHX.js → chunk-DDQGAVQA.js} +2 -2
  12. package/dist/{chunk-4HA5PAL7.js → chunk-EPMBGZQX.js} +2 -2
  13. package/dist/{chunk-FZFZ77UJ.js → chunk-FXX5UQCK.js} +292 -71
  14. package/dist/chunk-FXX5UQCK.js.map +1 -0
  15. package/dist/{chunk-OOIPRRPX.js → chunk-GJVHRJO2.js} +182 -102
  16. package/dist/{chunk-OOIPRRPX.js.map → chunk-GJVHRJO2.js.map} +1 -1
  17. package/dist/{chunk-MRU6L7YJ.js → chunk-GX436VRU.js} +2 -2
  18. package/dist/{chunk-ELIFTCYM.js → chunk-HSOPD265.js} +2 -2
  19. package/dist/chunk-HSOPD265.js.map +1 -0
  20. package/dist/{chunk-SRECH7OQ.js → chunk-KQIDTE52.js} +2 -2
  21. package/dist/{chunk-2UUUKVNR.js → chunk-LKDHAJJB.js} +2 -2
  22. package/dist/{chunk-N5SY7V45.js → chunk-NKGTEJYU.js} +4 -4
  23. package/dist/{chunk-VKRMXD62.js → chunk-Q25KKHNQ.js} +4 -4
  24. package/dist/{chunk-2UR7YN6T.js → chunk-TL2GJMJ5.js} +2 -2
  25. package/dist/{chunk-3GXDN4AX.js → chunk-V6MSPUQF.js} +2 -2
  26. package/dist/{chunk-7SKAKA4I.js → chunk-VZ2YOQWU.js} +2 -2
  27. package/dist/{chunk-LLGUX44Z.js → chunk-Y477EGI4.js} +2 -2
  28. package/dist/{cli-circuit-breaker-5FAODXVY.js → cli-circuit-breaker-6EJO3PPU.js} +4 -4
  29. package/dist/cli.js +26 -22
  30. package/dist/cli.js.map +1 -1
  31. package/dist/{composite-router-FNW7ZWL7.js → composite-router-JD7URTC2.js} +2 -2
  32. package/dist/{consensus-vote-757YULIP.js → consensus-vote-5PFFDRLR.js} +7 -7
  33. package/dist/{doctor-deep-LMCEAFU4.js → doctor-deep-4A4X5X6U.js} +3 -3
  34. package/dist/{expert-bridge-L2D4OXOR.js → expert-bridge-5KVWX44T.js} +3 -3
  35. package/dist/{expert-config-A5CHKUGI.js → expert-config-BTPAEZWV.js} +2 -2
  36. package/dist/{factory-IDTIBX6B.js → factory-4Z4RSUYE.js} +5 -5
  37. package/dist/{factory-ELEDP2WD.js → factory-NHORX63J.js} +4 -4
  38. package/dist/index.js +19 -19
  39. package/dist/{issue-triage-SJPKJLXH.js → issue-triage-TIG3RKXF.js} +4 -4
  40. package/dist/{mcp-config-2OXIOMJ6.js → mcp-config-ETY7GFGW.js} +3 -3
  41. package/dist/{mobimem-5S3VLNSU.js → mobimem-5PAAMVFR.js} +2 -2
  42. package/dist/{repo-security-plan-MUFDGWSQ.js → repo-security-plan-KQB3ZJTE.js} +3 -3
  43. package/dist/research-helpers-synthesize-ZMERZZ5B.js +10 -0
  44. package/dist/{routing-memory-3QBQTS4A.js → routing-memory-3ES3OHLM.js} +2 -2
  45. package/dist/{session-memory-VXWLOFRC.js → session-memory-E2OE2CYR.js} +3 -3
  46. package/dist/{setup-command-E6MXO5RZ.js → setup-command-QIHX7ZVJ.js} +7 -7
  47. package/dist/{setup-config-O5F3AZBL.js → setup-config-KITOPV7V.js} +3 -3
  48. package/dist/{weather-report-MUGSIOU5.js → weather-report-KUSVNXDZ.js} +2 -2
  49. package/package.json +1 -1
  50. package/dist/chunk-3EVVQ32X.js.map +0 -1
  51. package/dist/chunk-CGWRJ4EM.js.map +0 -1
  52. package/dist/chunk-ELIFTCYM.js.map +0 -1
  53. package/dist/chunk-FZFZ77UJ.js.map +0 -1
  54. package/dist/research-helpers-synthesize-OBQJ5BGX.js +0 -10
  55. /package/dist/{adaptive-memory-RST6DZYR.js.map → adaptive-memory-5VP5WWTE.js.map} +0 -0
  56. /package/dist/{chunk-YSTJEMQX.js.map → chunk-4IEUUQ4G.js.map} +0 -0
  57. /package/dist/{chunk-IECE6DBS.js.map → chunk-5COIDGQJ.js.map} +0 -0
  58. /package/dist/{chunk-XU3NADFE.js.map → chunk-63AJLNKU.js.map} +0 -0
  59. /package/dist/{chunk-C2C5ONFR.js.map → chunk-66NNHMVB.js.map} +0 -0
  60. /package/dist/{chunk-4AGPR6XZ.js.map → chunk-CW2Z773T.js.map} +0 -0
  61. /package/dist/{chunk-FYJVXQHX.js.map → chunk-DDQGAVQA.js.map} +0 -0
  62. /package/dist/{chunk-4HA5PAL7.js.map → chunk-EPMBGZQX.js.map} +0 -0
  63. /package/dist/{chunk-MRU6L7YJ.js.map → chunk-GX436VRU.js.map} +0 -0
  64. /package/dist/{chunk-SRECH7OQ.js.map → chunk-KQIDTE52.js.map} +0 -0
  65. /package/dist/{chunk-2UUUKVNR.js.map → chunk-LKDHAJJB.js.map} +0 -0
  66. /package/dist/{chunk-N5SY7V45.js.map → chunk-NKGTEJYU.js.map} +0 -0
  67. /package/dist/{chunk-VKRMXD62.js.map → chunk-Q25KKHNQ.js.map} +0 -0
  68. /package/dist/{chunk-2UR7YN6T.js.map → chunk-TL2GJMJ5.js.map} +0 -0
  69. /package/dist/{chunk-3GXDN4AX.js.map → chunk-V6MSPUQF.js.map} +0 -0
  70. /package/dist/{chunk-7SKAKA4I.js.map → chunk-VZ2YOQWU.js.map} +0 -0
  71. /package/dist/{chunk-LLGUX44Z.js.map → chunk-Y477EGI4.js.map} +0 -0
  72. /package/dist/{cli-circuit-breaker-5FAODXVY.js.map → cli-circuit-breaker-6EJO3PPU.js.map} +0 -0
  73. /package/dist/{composite-router-FNW7ZWL7.js.map → composite-router-JD7URTC2.js.map} +0 -0
  74. /package/dist/{consensus-vote-757YULIP.js.map → consensus-vote-5PFFDRLR.js.map} +0 -0
  75. /package/dist/{doctor-deep-LMCEAFU4.js.map → doctor-deep-4A4X5X6U.js.map} +0 -0
  76. /package/dist/{expert-bridge-L2D4OXOR.js.map → expert-bridge-5KVWX44T.js.map} +0 -0
  77. /package/dist/{expert-config-A5CHKUGI.js.map → expert-config-BTPAEZWV.js.map} +0 -0
  78. /package/dist/{factory-ELEDP2WD.js.map → factory-4Z4RSUYE.js.map} +0 -0
  79. /package/dist/{factory-IDTIBX6B.js.map → factory-NHORX63J.js.map} +0 -0
  80. /package/dist/{issue-triage-SJPKJLXH.js.map → issue-triage-TIG3RKXF.js.map} +0 -0
  81. /package/dist/{mcp-config-2OXIOMJ6.js.map → mcp-config-ETY7GFGW.js.map} +0 -0
  82. /package/dist/{mobimem-5S3VLNSU.js.map → mobimem-5PAAMVFR.js.map} +0 -0
  83. /package/dist/{repo-security-plan-MUFDGWSQ.js.map → repo-security-plan-KQB3ZJTE.js.map} +0 -0
  84. /package/dist/{research-helpers-synthesize-OBQJ5BGX.js.map → research-helpers-synthesize-ZMERZZ5B.js.map} +0 -0
  85. /package/dist/{routing-memory-3QBQTS4A.js.map → routing-memory-3ES3OHLM.js.map} +0 -0
  86. /package/dist/{session-memory-VXWLOFRC.js.map → session-memory-E2OE2CYR.js.map} +0 -0
  87. /package/dist/{setup-command-E6MXO5RZ.js.map → setup-command-QIHX7ZVJ.js.map} +0 -0
  88. /package/dist/{setup-config-O5F3AZBL.js.map → setup-config-KITOPV7V.js.map} +0 -0
  89. /package/dist/{weather-report-MUGSIOU5.js.map → weather-report-KUSVNXDZ.js.map} +0 -0
@@ -2,9 +2,9 @@ import {
2
2
  AdaptiveMemoryBackend,
3
3
  DEFAULT_SCORING_CONFIG,
4
4
  createAdaptiveMemory
5
- } from "./chunk-FYJVXQHX.js";
5
+ } from "./chunk-DDQGAVQA.js";
6
6
  import "./chunk-633WH2ML.js";
7
- import "./chunk-ELIFTCYM.js";
7
+ import "./chunk-HSOPD265.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-RST6DZYR.js.map
15
+ //# sourceMappingURL=adaptive-memory-5VP5WWTE.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  getTimeProvider,
4
4
  isRateLimitText
5
- } from "./chunk-ELIFTCYM.js";
5
+ } from "./chunk-HSOPD265.js";
6
6
 
7
7
  // src/pipeline/expert-bridge.ts
8
8
  var logger = createLogger({ component: "expert-bridge" });
@@ -12,7 +12,7 @@ var cachedMcpConfigPath = null;
12
12
  async function getMcpConfigPath() {
13
13
  if (cachedMcpConfigPath !== null) return cachedMcpConfigPath;
14
14
  try {
15
- const { generateMcpConfig } = await import("./mcp-config-2OXIOMJ6.js");
15
+ const { generateMcpConfig } = await import("./mcp-config-ETY7GFGW.js");
16
16
  const config = await generateMcpConfig();
17
17
  cachedMcpConfigPath = config.configPath;
18
18
  return cachedMcpConfigPath;
@@ -23,13 +23,13 @@ async function getMcpConfigPath() {
23
23
  var cachedCircuitBreaker = null;
24
24
  async function getRouter() {
25
25
  if (cachedRouter !== null) return cachedRouter;
26
- const { createAllAdapters } = await import("./factory-ELEDP2WD.js");
27
- const { createCompositeRouter } = await import("./composite-router-FNW7ZWL7.js");
26
+ const { createAllAdapters } = await import("./factory-NHORX63J.js");
27
+ const { createCompositeRouter } = await import("./composite-router-JD7URTC2.js");
28
28
  const adapters = createAllAdapters();
29
29
  if (adapters.size === 0) return null;
30
30
  cachedRouter = createCompositeRouter(adapters);
31
31
  try {
32
- const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-5FAODXVY.js");
32
+ const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-6EJO3PPU.js");
33
33
  cachedCircuitBreaker = createCliCircuitBreakerIntegration([...adapters.values()]);
34
34
  } catch {
35
35
  }
@@ -76,7 +76,7 @@ async function dispatchWithRateLimitRetry(router, task, expertType, start) {
76
76
  async function executeExpert(expertType, prompt) {
77
77
  const start = getTimeProvider().now();
78
78
  try {
79
- const { BUILT_IN_EXPERTS } = await import("./expert-config-A5CHKUGI.js");
79
+ const { BUILT_IN_EXPERTS } = await import("./expert-config-BTPAEZWV.js");
80
80
  const config = BUILT_IN_EXPERTS[expertType];
81
81
  const fullPrompt = `${config.systemPrompt}
82
82
 
@@ -119,4 +119,4 @@ ${prompt}`;
119
119
  export {
120
120
  executeExpert
121
121
  };
122
- //# sourceMappingURL=chunk-YSTJEMQX.js.map
122
+ //# sourceMappingURL=chunk-4IEUUQ4G.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  GitHubProvider,
3
3
  ScmError
4
- } from "./chunk-4HA5PAL7.js";
4
+ } from "./chunk-EPMBGZQX.js";
5
5
  import {
6
6
  CACHE_TIMEOUTS,
7
7
  createLogger,
8
8
  err,
9
9
  getTimeProvider,
10
10
  ok
11
- } from "./chunk-ELIFTCYM.js";
11
+ } from "./chunk-HSOPD265.js";
12
12
 
13
13
  // src/security/trust-types.ts
14
14
  import { z } from "zod";
@@ -1582,4 +1582,4 @@ export {
1582
1582
  IssueTriage,
1583
1583
  createIssueTriage
1584
1584
  };
1585
- //# sourceMappingURL=chunk-IECE6DBS.js.map
1585
+ //# sourceMappingURL=chunk-5COIDGQJ.js.map
@@ -2,7 +2,7 @@ import {
2
2
  TASK_CATEGORIES,
3
3
  getAdaptiveBonus,
4
4
  getOutcomeStore
5
- } from "./chunk-ELIFTCYM.js";
5
+ } from "./chunk-HSOPD265.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-XU3NADFE.js.map
109
+ //# sourceMappingURL=chunk-63AJLNKU.js.map
@@ -2,13 +2,13 @@ import {
2
2
  CircuitBreakerRegistry,
3
3
  CircuitError,
4
4
  mapCliErrorToCategory
5
- } from "./chunk-LLGUX44Z.js";
5
+ } from "./chunk-Y477EGI4.js";
6
6
  import {
7
7
  createLogger,
8
8
  err,
9
9
  getTimeProvider,
10
10
  ok
11
- } from "./chunk-ELIFTCYM.js";
11
+ } from "./chunk-HSOPD265.js";
12
12
 
13
13
  // src/cli-adapters/fallback-chains.ts
14
14
  import { z } from "zod";
@@ -192,4 +192,4 @@ export {
192
192
  CliCircuitBreakerIntegration,
193
193
  createCliCircuitBreakerIntegration
194
194
  };
195
- //# sourceMappingURL=chunk-C2C5ONFR.js.map
195
+ //# sourceMappingURL=chunk-66NNHMVB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SessionMemory
3
- } from "./chunk-SRECH7OQ.js";
3
+ } from "./chunk-KQIDTE52.js";
4
4
  import {
5
5
  AdaptiveMemoryBackend,
6
6
  HybridMemoryBackend,
@@ -9,7 +9,7 @@ import {
9
9
  getMemoryEntry,
10
10
  memoryExists,
11
11
  memoryRowToEntry
12
- } from "./chunk-FYJVXQHX.js";
12
+ } from "./chunk-DDQGAVQA.js";
13
13
  import {
14
14
  stringifyValue,
15
15
  tokenizeFiltered
@@ -21,7 +21,7 @@ import {
21
21
  getAvailableClis,
22
22
  isCliAvailable,
23
23
  withTimeout
24
- } from "./chunk-4AGPR6XZ.js";
24
+ } from "./chunk-CW2Z773T.js";
25
25
  import {
26
26
  AgentError,
27
27
  CACHE_TIMEOUTS,
@@ -66,7 +66,7 @@ import {
66
66
  resolveVoteTimeout,
67
67
  toRateLimitError,
68
68
  validateTimeout
69
- } from "./chunk-ELIFTCYM.js";
69
+ } from "./chunk-HSOPD265.js";
70
70
  import {
71
71
  OUTCOMES_FILE,
72
72
  ensureLearningDir
@@ -4226,7 +4226,57 @@ async function executeWithRetries(opts) {
4226
4226
  return { error: lastError !== "" ? lastError : "Unknown error after all retries", ok: false };
4227
4227
  }
4228
4228
 
4229
+ // src/cli/voter-agents-deadline.ts
4230
+ var DEADLINE_MESSAGE = "overall consensus deadline exceeded";
4231
+ function raceWithDeadline(p, role, deadlineMs) {
4232
+ let timer;
4233
+ const timeoutP = new Promise((resolve) => {
4234
+ timer = setTimeout(() => {
4235
+ resolve(createErrorVoteResult(role, DEADLINE_MESSAGE, deadlineMs));
4236
+ }, deadlineMs);
4237
+ });
4238
+ return Promise.race([p, timeoutP]).finally(() => {
4239
+ if (timer !== void 0) clearTimeout(timer);
4240
+ });
4241
+ }
4242
+ async function launchVotesWithOverallDeadline(input) {
4243
+ const {
4244
+ roles,
4245
+ proposal,
4246
+ roleAdapters,
4247
+ fallbackAdapter,
4248
+ logger: logger11,
4249
+ voteOptions,
4250
+ interDelay,
4251
+ overallDeadlineMs,
4252
+ voteFn
4253
+ } = input;
4254
+ const startedAt = Date.now();
4255
+ const wrapped = roles.map(async (role, i) => {
4256
+ if (i > 0 && interDelay > 0) await delay(interDelay);
4257
+ const adapter = roleAdapters.get(role) ?? fallbackAdapter;
4258
+ const elapsed = Date.now() - startedAt;
4259
+ const remaining = Math.max(1, overallDeadlineMs - elapsed);
4260
+ return raceWithDeadline(voteFn(role, proposal, adapter, logger11, voteOptions), role, remaining);
4261
+ });
4262
+ const results = await Promise.all(wrapped);
4263
+ const expired = results.filter((r) => r.source === "error" && r.error === DEADLINE_MESSAGE);
4264
+ if (expired.length > 0) {
4265
+ logger11.warn("Consensus overall deadline reached; returning partial results", {
4266
+ totalRoles: roles.length,
4267
+ expiredRoles: expired.map((r) => r.role),
4268
+ overallDeadlineMs
4269
+ });
4270
+ }
4271
+ return results;
4272
+ }
4273
+
4229
4274
  // src/cli/voter-agents.ts
4275
+ function computeOverallConsensusDeadlineMs(timeoutMs, maxRetries, roleCount, interDelayMs) {
4276
+ const perVoteBudget = timeoutMs * (maxRetries + 1);
4277
+ const staggerBudget = Math.max(0, roleCount - 1) * interDelayMs;
4278
+ return perVoteBudget + staggerBudget + 6e4;
4279
+ }
4230
4280
  var DEFAULT_INTER_AGENT_DELAY_MS = 2e3;
4231
4281
  var defaultLogger2 = createLogger({ component: "voter-agents" });
4232
4282
  async function executeAgentVote(role, proposal, adapter, logger11, options) {
@@ -4322,15 +4372,23 @@ async function resolveDiverseAdapters(roles, logger11, fallbackAdapter) {
4322
4372
  }
4323
4373
  async function launchStaggeredVotes(input) {
4324
4374
  const { roles, proposal, roleAdapters, fallbackAdapter, logger: logger11, voteOptions, interDelay } = input;
4325
- const votePromises = [];
4326
- for (const [i, role] of roles.entries()) {
4327
- if (i > 0 && interDelay > 0) {
4328
- await delay(interDelay);
4329
- }
4330
- const adapter = roleAdapters.get(role) ?? fallbackAdapter;
4331
- votePromises.push(executeAgentVote(role, proposal, adapter, logger11, voteOptions));
4332
- }
4333
- return Promise.all(votePromises);
4375
+ const overallDeadlineMs = computeOverallConsensusDeadlineMs(
4376
+ voteOptions.timeoutMs,
4377
+ voteOptions.maxRetries,
4378
+ roles.length,
4379
+ interDelay
4380
+ );
4381
+ return launchVotesWithOverallDeadline({
4382
+ roles,
4383
+ proposal,
4384
+ roleAdapters,
4385
+ fallbackAdapter,
4386
+ logger: logger11,
4387
+ voteOptions,
4388
+ interDelay,
4389
+ overallDeadlineMs,
4390
+ voteFn: executeAgentVote
4391
+ });
4334
4392
  }
4335
4393
  async function collectRealVotes(options) {
4336
4394
  const logger11 = options.logger ?? defaultLogger2;
@@ -12288,7 +12346,7 @@ async function processVotesWithCascade(votes, opts) {
12288
12346
  var CONTRARIAN_ESCALATION_THRESHOLD = 0.8;
12289
12347
  async function runContrarianCheck(proposal, log) {
12290
12348
  try {
12291
- const { executeExpert } = await import("./expert-bridge-L2D4OXOR.js");
12349
+ const { executeExpert } = await import("./expert-bridge-5KVWX44T.js");
12292
12350
  const prompt = [
12293
12351
  "You are a contrarian analyst. Your job is to find reasons this proposal should be REJECTED.",
12294
12352
  "Look for: YAGNI (not needed), MISALIGNED (wrong tech/architecture), SECURITY_RISK, SCOPE_CREEP.",
@@ -12658,4 +12716,4 @@ export {
12658
12716
  CONSENSUS_VOTE_OUTPUT_SCHEMA,
12659
12717
  registerConsensusVoteTool
12660
12718
  };
12661
- //# sourceMappingURL=chunk-CGWRJ4EM.js.map
12719
+ //# sourceMappingURL=chunk-6CHMHPT4.js.map