nexus-agents 3.6.15 → 3.7.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 (125) hide show
  1. package/dist/{child-mcp-config-VGCRJI5K.js → child-mcp-config-RERUXZJS.js} +2 -2
  2. package/dist/{chunk-QWFEQURV.js → chunk-3BKFXSHM.js} +3 -3
  3. package/dist/{chunk-N7FPSYIR.js → chunk-4DXZJJK3.js} +2 -2
  4. package/dist/{chunk-ZCHQS3KU.js → chunk-4LMP452D.js} +7 -7
  5. package/dist/{chunk-Y4T2ZCZB.js → chunk-5FMDEEV7.js} +8 -8
  6. package/dist/{chunk-MGLEPBIZ.js → chunk-6QBCTIKD.js} +2 -2
  7. package/dist/{chunk-BSGHDAEM.js → chunk-6YLKVLI4.js} +59 -35
  8. package/dist/chunk-6YLKVLI4.js.map +1 -0
  9. package/dist/{chunk-KNOECZP2.js → chunk-7KHCQPHO.js} +16 -3
  10. package/dist/chunk-7KHCQPHO.js.map +1 -0
  11. package/dist/{chunk-CPEOXRCU.js → chunk-7TJVDU2S.js} +3 -3
  12. package/dist/{chunk-HOMEGHVJ.js → chunk-CZC4FIVH.js} +4 -4
  13. package/dist/{chunk-7ZDIDX4J.js → chunk-D2SKFK4W.js} +5 -5
  14. package/dist/{chunk-VCS5YLU2.js → chunk-DOT3TG4T.js} +3 -3
  15. package/dist/{chunk-SA5S55UW.js → chunk-ETEGV2NG.js} +2 -2
  16. package/dist/{chunk-XZSYG6JW.js → chunk-ISF7BEHM.js} +4 -4
  17. package/dist/{chunk-LOY7LJJT.js → chunk-J2F5E3DF.js} +2 -2
  18. package/dist/{chunk-JJQWBH65.js → chunk-JF7YUXZX.js} +2 -2
  19. package/dist/{chunk-44AA6TSZ.js → chunk-JFZP7IA4.js} +2 -2
  20. package/dist/{chunk-QJU6PS53.js → chunk-KEO6QJE6.js} +2 -2
  21. package/dist/{chunk-5XSWNLKE.js → chunk-MBNECNPL.js} +8 -8
  22. package/dist/{chunk-CGICJPJ6.js → chunk-NC6CLKIB.js} +2 -2
  23. package/dist/{chunk-G54Y5OQU.js → chunk-PXJDALVM.js} +2 -2
  24. package/dist/{chunk-YRAOOAYY.js → chunk-TDXJYLRP.js} +2 -2
  25. package/dist/{chunk-3TMJ34M4.js → chunk-TOBIDJ3V.js} +8 -8
  26. package/dist/{chunk-3TMJ34M4.js.map → chunk-TOBIDJ3V.js.map} +1 -1
  27. package/dist/{chunk-UX7ARNQK.js → chunk-TZGM6BXE.js} +3 -3
  28. package/dist/{chunk-7RIGDQDO.js → chunk-UK2HVVTQ.js} +2 -2
  29. package/dist/{chunk-2I2VX62W.js → chunk-V24NAR5C.js} +2 -2
  30. package/dist/{chunk-6WRQIEKK.js → chunk-V7EFU7LB.js} +2 -2
  31. package/dist/{chunk-DJLJGL34.js → chunk-VYWHIQHX.js} +2 -2
  32. package/dist/{chunk-SAPRUA5H.js → chunk-WT6JCD3E.js} +2 -2
  33. package/dist/{chunk-RXXKAEZP.js → chunk-XFQMSO3R.js} +5 -5
  34. package/dist/{chunk-PZISZC5R.js → chunk-Y3CGQUCQ.js} +5 -5
  35. package/dist/{chunk-KJCXANOL.js → chunk-YKEBDGCK.js} +2 -2
  36. package/dist/{chunk-3LMU5W5I.js → chunk-ZHVVLJFQ.js} +4 -4
  37. package/dist/{chunk-3KIJASVO.js → chunk-ZYL6RNBZ.js} +5 -5
  38. package/dist/{cli-circuit-breaker-WCYTIJVB.js → cli-circuit-breaker-AR6SXY4G.js} +3 -3
  39. package/dist/cli.js +54 -46
  40. package/dist/cli.js.map +1 -1
  41. package/dist/{composite-router-YDG6I25X.js → composite-router-NQ4UCMV6.js} +2 -2
  42. package/dist/{consensus-vote-AIIIWZP4.js → consensus-vote-ILSS373K.js} +16 -16
  43. package/dist/{context-retriever-SRPTYHYW.js → context-retriever-CCGMXTGJ.js} +8 -8
  44. package/dist/{doctor-deep-TIIP6FL7.js → doctor-deep-VMTFQG7N.js} +3 -3
  45. package/dist/{doctor-live-47RN4A4J.js → doctor-live-IAQOG6LI.js} +9 -9
  46. package/dist/{expert-bridge-76OOP55L.js → expert-bridge-JOM5P4I4.js} +4 -4
  47. package/dist/{factory-JEKAU3BF.js → factory-6A6TGK6D.js} +5 -5
  48. package/dist/{factory-IYGZJJU4.js → factory-MYQRDKOJ.js} +9 -9
  49. package/dist/{improvement-review-XIHUWWA7.js → improvement-review-CFBMX6BL.js} +5 -5
  50. package/dist/index.d.ts +4 -0
  51. package/dist/index.js +40 -30
  52. package/dist/index.js.map +1 -1
  53. package/dist/{init-opencode-P2SUBOXA.js → init-opencode-J7GUKZF4.js} +6 -6
  54. package/dist/{issue-triage-4ZI2PVTX.js → issue-triage-T3L7CAUV.js} +6 -6
  55. package/dist/model-registry.generated.json +2064 -1523
  56. package/dist/{pr-reviewer-helpers-TZPWSNAU.js → pr-reviewer-helpers-XMTT5K4E.js} +4 -4
  57. package/dist/{registry-command-STM5M5PE.js → registry-command-5QPDC5SH.js} +2 -2
  58. package/dist/{repo-security-plan-TL4OZHQU.js → repo-security-plan-WQG7G4H6.js} +3 -3
  59. package/dist/{research-helpers-synthesize-3ZCK4ND7.js → research-helpers-synthesize-6FPLB3UK.js} +4 -4
  60. package/dist/{routing-memory-FBBYHH4N.js → routing-memory-HNZRMLXC.js} +2 -2
  61. package/dist/{session-memory-3O6OL3XO.js → session-memory-SXYFTZYM.js} +3 -3
  62. package/dist/{setup-command-R3E7OON2.js → setup-command-X7EJ7LBU.js} +14 -14
  63. package/dist/{setup-config-A6YREIL7.js → setup-config-4UPPIMTI.js} +3 -3
  64. package/dist/{setup-custom-api-63EM5YEE.js → setup-custom-api-U5WEZRQO.js} +4 -4
  65. package/dist/{tool-memory-XE54TMHW.js → tool-memory-BT7VS5N5.js} +5 -5
  66. package/dist/{unified-registry-TVI5DNYM.js → unified-registry-L2T5UJHQ.js} +10 -10
  67. package/dist/{weather-report-XONOF32O.js → weather-report-2T3OIAJS.js} +2 -2
  68. package/package.json +1 -1
  69. package/dist/chunk-BSGHDAEM.js.map +0 -1
  70. package/dist/chunk-KNOECZP2.js.map +0 -1
  71. /package/dist/{child-mcp-config-VGCRJI5K.js.map → child-mcp-config-RERUXZJS.js.map} +0 -0
  72. /package/dist/{chunk-QWFEQURV.js.map → chunk-3BKFXSHM.js.map} +0 -0
  73. /package/dist/{chunk-N7FPSYIR.js.map → chunk-4DXZJJK3.js.map} +0 -0
  74. /package/dist/{chunk-ZCHQS3KU.js.map → chunk-4LMP452D.js.map} +0 -0
  75. /package/dist/{chunk-Y4T2ZCZB.js.map → chunk-5FMDEEV7.js.map} +0 -0
  76. /package/dist/{chunk-MGLEPBIZ.js.map → chunk-6QBCTIKD.js.map} +0 -0
  77. /package/dist/{chunk-CPEOXRCU.js.map → chunk-7TJVDU2S.js.map} +0 -0
  78. /package/dist/{chunk-HOMEGHVJ.js.map → chunk-CZC4FIVH.js.map} +0 -0
  79. /package/dist/{chunk-7ZDIDX4J.js.map → chunk-D2SKFK4W.js.map} +0 -0
  80. /package/dist/{chunk-VCS5YLU2.js.map → chunk-DOT3TG4T.js.map} +0 -0
  81. /package/dist/{chunk-SA5S55UW.js.map → chunk-ETEGV2NG.js.map} +0 -0
  82. /package/dist/{chunk-XZSYG6JW.js.map → chunk-ISF7BEHM.js.map} +0 -0
  83. /package/dist/{chunk-LOY7LJJT.js.map → chunk-J2F5E3DF.js.map} +0 -0
  84. /package/dist/{chunk-JJQWBH65.js.map → chunk-JF7YUXZX.js.map} +0 -0
  85. /package/dist/{chunk-44AA6TSZ.js.map → chunk-JFZP7IA4.js.map} +0 -0
  86. /package/dist/{chunk-QJU6PS53.js.map → chunk-KEO6QJE6.js.map} +0 -0
  87. /package/dist/{chunk-5XSWNLKE.js.map → chunk-MBNECNPL.js.map} +0 -0
  88. /package/dist/{chunk-CGICJPJ6.js.map → chunk-NC6CLKIB.js.map} +0 -0
  89. /package/dist/{chunk-G54Y5OQU.js.map → chunk-PXJDALVM.js.map} +0 -0
  90. /package/dist/{chunk-YRAOOAYY.js.map → chunk-TDXJYLRP.js.map} +0 -0
  91. /package/dist/{chunk-UX7ARNQK.js.map → chunk-TZGM6BXE.js.map} +0 -0
  92. /package/dist/{chunk-7RIGDQDO.js.map → chunk-UK2HVVTQ.js.map} +0 -0
  93. /package/dist/{chunk-2I2VX62W.js.map → chunk-V24NAR5C.js.map} +0 -0
  94. /package/dist/{chunk-6WRQIEKK.js.map → chunk-V7EFU7LB.js.map} +0 -0
  95. /package/dist/{chunk-DJLJGL34.js.map → chunk-VYWHIQHX.js.map} +0 -0
  96. /package/dist/{chunk-SAPRUA5H.js.map → chunk-WT6JCD3E.js.map} +0 -0
  97. /package/dist/{chunk-RXXKAEZP.js.map → chunk-XFQMSO3R.js.map} +0 -0
  98. /package/dist/{chunk-PZISZC5R.js.map → chunk-Y3CGQUCQ.js.map} +0 -0
  99. /package/dist/{chunk-KJCXANOL.js.map → chunk-YKEBDGCK.js.map} +0 -0
  100. /package/dist/{chunk-3LMU5W5I.js.map → chunk-ZHVVLJFQ.js.map} +0 -0
  101. /package/dist/{chunk-3KIJASVO.js.map → chunk-ZYL6RNBZ.js.map} +0 -0
  102. /package/dist/{cli-circuit-breaker-WCYTIJVB.js.map → cli-circuit-breaker-AR6SXY4G.js.map} +0 -0
  103. /package/dist/{composite-router-YDG6I25X.js.map → composite-router-NQ4UCMV6.js.map} +0 -0
  104. /package/dist/{consensus-vote-AIIIWZP4.js.map → consensus-vote-ILSS373K.js.map} +0 -0
  105. /package/dist/{context-retriever-SRPTYHYW.js.map → context-retriever-CCGMXTGJ.js.map} +0 -0
  106. /package/dist/{doctor-deep-TIIP6FL7.js.map → doctor-deep-VMTFQG7N.js.map} +0 -0
  107. /package/dist/{doctor-live-47RN4A4J.js.map → doctor-live-IAQOG6LI.js.map} +0 -0
  108. /package/dist/{expert-bridge-76OOP55L.js.map → expert-bridge-JOM5P4I4.js.map} +0 -0
  109. /package/dist/{factory-IYGZJJU4.js.map → factory-6A6TGK6D.js.map} +0 -0
  110. /package/dist/{factory-JEKAU3BF.js.map → factory-MYQRDKOJ.js.map} +0 -0
  111. /package/dist/{improvement-review-XIHUWWA7.js.map → improvement-review-CFBMX6BL.js.map} +0 -0
  112. /package/dist/{init-opencode-P2SUBOXA.js.map → init-opencode-J7GUKZF4.js.map} +0 -0
  113. /package/dist/{issue-triage-4ZI2PVTX.js.map → issue-triage-T3L7CAUV.js.map} +0 -0
  114. /package/dist/{pr-reviewer-helpers-TZPWSNAU.js.map → pr-reviewer-helpers-XMTT5K4E.js.map} +0 -0
  115. /package/dist/{registry-command-STM5M5PE.js.map → registry-command-5QPDC5SH.js.map} +0 -0
  116. /package/dist/{repo-security-plan-TL4OZHQU.js.map → repo-security-plan-WQG7G4H6.js.map} +0 -0
  117. /package/dist/{research-helpers-synthesize-3ZCK4ND7.js.map → research-helpers-synthesize-6FPLB3UK.js.map} +0 -0
  118. /package/dist/{routing-memory-FBBYHH4N.js.map → routing-memory-HNZRMLXC.js.map} +0 -0
  119. /package/dist/{session-memory-3O6OL3XO.js.map → session-memory-SXYFTZYM.js.map} +0 -0
  120. /package/dist/{setup-command-R3E7OON2.js.map → setup-command-X7EJ7LBU.js.map} +0 -0
  121. /package/dist/{setup-config-A6YREIL7.js.map → setup-config-4UPPIMTI.js.map} +0 -0
  122. /package/dist/{setup-custom-api-63EM5YEE.js.map → setup-custom-api-U5WEZRQO.js.map} +0 -0
  123. /package/dist/{tool-memory-XE54TMHW.js.map → tool-memory-BT7VS5N5.js.map} +0 -0
  124. /package/dist/{unified-registry-TVI5DNYM.js.map → unified-registry-L2T5UJHQ.js.map} +0 -0
  125. /package/dist/{weather-report-XONOF32O.js.map → weather-report-2T3OIAJS.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-SNJNRDKZ.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-KNOECZP2.js";
6
+ } from "./chunk-7KHCQPHO.js";
7
7
  import "./chunk-2HUC6NZN.js";
8
8
  import "./chunk-OQLFRJCW.js";
9
9
  import "./chunk-ZPWHCABL.js";
@@ -62,4 +62,4 @@ export {
62
62
  generateMcpConfig,
63
63
  getDefaultAllowedTools
64
64
  };
65
- //# sourceMappingURL=child-mcp-config-VGCRJI5K.js.map
65
+ //# sourceMappingURL=child-mcp-config-RERUXZJS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  emitClawGuardViolation
3
- } from "./chunk-KJCXANOL.js";
3
+ } from "./chunk-YKEBDGCK.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-KNOECZP2.js";
19
+ } from "./chunk-7KHCQPHO.js";
20
20
  import {
21
21
  getNexusDataDir
22
22
  } from "./chunk-OQLFRJCW.js";
@@ -2028,4 +2028,4 @@ export {
2028
2028
  VOTING_THRESHOLDS,
2029
2029
  ConsensusMetricsSchema
2030
2030
  };
2031
- //# sourceMappingURL=chunk-QWFEQURV.js.map
2031
+ //# sourceMappingURL=chunk-3BKFXSHM.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getRandomProvider,
3
3
  getTimeProvider
4
- } from "./chunk-KNOECZP2.js";
4
+ } from "./chunk-7KHCQPHO.js";
5
5
 
6
6
  // src/utils/id-utils.ts
7
7
  import { randomUUID } from "crypto";
@@ -24,4 +24,4 @@ export {
24
24
  generateHyphenId,
25
25
  generateUUID
26
26
  };
27
- //# sourceMappingURL=chunk-N7FPSYIR.js.map
27
+ //# sourceMappingURL=chunk-4DXZJJK3.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  resolveCliSlot
3
- } from "./chunk-LOY7LJJT.js";
3
+ } from "./chunk-J2F5E3DF.js";
4
4
  import {
5
5
  createLogger,
6
6
  getTimeProvider,
7
7
  isRateLimitText
8
- } from "./chunk-KNOECZP2.js";
8
+ } from "./chunk-7KHCQPHO.js";
9
9
 
10
10
  // src/pipeline/expert-bridge.ts
11
11
  function resolveCliFromModelString(model) {
@@ -21,7 +21,7 @@ async function getMcpConfigPath() {
21
21
  if (cachedMcpConfigPath !== null) return cachedMcpConfigPath;
22
22
  mcpConfigInitPromise ??= (async () => {
23
23
  try {
24
- const { generateMcpConfig } = await import("./child-mcp-config-VGCRJI5K.js");
24
+ const { generateMcpConfig } = await import("./child-mcp-config-RERUXZJS.js");
25
25
  const config = await generateMcpConfig();
26
26
  cachedMcpConfigPath = config.configPath;
27
27
  cachedMcpConfigCleanup = config.cleanup;
@@ -93,8 +93,8 @@ var routerInitPromise = null;
93
93
  async function getRouter() {
94
94
  if (cachedRouter !== null) return cachedRouter;
95
95
  routerInitPromise ??= (async () => {
96
- const { createAllAdapters } = await import("./factory-IYGZJJU4.js");
97
- const { createCompositeRouter } = await import("./composite-router-YDG6I25X.js");
96
+ const { createAllAdapters } = await import("./factory-MYQRDKOJ.js");
97
+ const { createCompositeRouter } = await import("./composite-router-NQ4UCMV6.js");
98
98
  const adapters = createAllAdapters();
99
99
  if (adapters.size === 0) {
100
100
  routerInitPromise = null;
@@ -102,7 +102,7 @@ async function getRouter() {
102
102
  }
103
103
  cachedRouter = adaptCompositeRouter(createCompositeRouter(adapters));
104
104
  try {
105
- const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-WCYTIJVB.js");
105
+ const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-AR6SXY4G.js");
106
106
  cachedCircuitBreaker = createCliCircuitBreakerIntegration([...adapters.values()]);
107
107
  } catch (error) {
108
108
  const msg = error instanceof Error ? error.message : String(error);
@@ -213,4 +213,4 @@ export {
213
213
  tokenSplitFromUsage,
214
214
  executeExpert
215
215
  };
216
- //# sourceMappingURL=chunk-ZCHQS3KU.js.map
216
+ //# sourceMappingURL=chunk-4LMP452D.js.map
@@ -5,34 +5,34 @@ import {
5
5
  planOptionalParams,
6
6
  requireApiKey,
7
7
  validateApiKeyPresence
8
- } from "./chunk-2I2VX62W.js";
8
+ } from "./chunk-V24NAR5C.js";
9
9
  import {
10
10
  CUSTOM_API_DEFAULT_MODEL
11
- } from "./chunk-YRAOOAYY.js";
11
+ } from "./chunk-TDXJYLRP.js";
12
12
  import {
13
13
  CUSTOM_API_BASE_URL_ENV,
14
14
  PROVIDER_ENV_KEYS,
15
15
  assertCustomApiHostResolvesPublic,
16
16
  validateCustomApiBaseUrl
17
- } from "./chunk-QJU6PS53.js";
17
+ } from "./chunk-KEO6QJE6.js";
18
18
  import {
19
19
  nexusMkdtempSync
20
20
  } from "./chunk-SNJNRDKZ.js";
21
21
  import {
22
22
  getAvailabilityCache
23
- } from "./chunk-LOY7LJJT.js";
23
+ } from "./chunk-J2F5E3DF.js";
24
24
  import {
25
25
  extractSystemPrompt
26
26
  } from "./chunk-QZUG667L.js";
27
27
  import {
28
28
  generateHyphenId
29
- } from "./chunk-N7FPSYIR.js";
29
+ } from "./chunk-4DXZJJK3.js";
30
30
  import {
31
31
  CliCircuitBreaker,
32
32
  DEFAULT_CIRCUIT_BREAKER_CONFIG,
33
33
  getCliCircuitBreakerSnapshot,
34
34
  getDefaultCliCircuitBreakerRegistry
35
- } from "./chunk-CGICJPJ6.js";
35
+ } from "./chunk-NC6CLKIB.js";
36
36
  import {
37
37
  CLI_SUBPROCESS_TIMEOUTS,
38
38
  CLI_TIMEOUTS,
@@ -69,7 +69,7 @@ import {
69
69
  ok,
70
70
  parseRetryAfterMs,
71
71
  resolveCliAlias
72
- } from "./chunk-KNOECZP2.js";
72
+ } from "./chunk-7KHCQPHO.js";
73
73
 
74
74
  // src/cli-adapters/cli-to-model-adapter.ts
75
75
  var CliToModelAdapter = class {
@@ -4824,4 +4824,4 @@ export {
4824
4824
  SdkAdapter,
4825
4825
  createAutoAdapter
4826
4826
  };
4827
- //# sourceMappingURL=chunk-Y4T2ZCZB.js.map
4827
+ //# sourceMappingURL=chunk-5FMDEEV7.js.map
@@ -8,7 +8,7 @@ import {
8
8
  getErrorMessage,
9
9
  ok,
10
10
  parseBoolEnv
11
- } from "./chunk-KNOECZP2.js";
11
+ } from "./chunk-7KHCQPHO.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-MGLEPBIZ.js.map
149
+ //# sourceMappingURL=chunk-6QBCTIKD.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  generateSecurityPlan
3
- } from "./chunk-DJLJGL34.js";
3
+ } from "./chunk-VYWHIQHX.js";
4
4
  import {
5
5
  analyzeGitHubRepo
6
6
  } from "./chunk-HFOQKCD2.js";
@@ -22,10 +22,10 @@ import {
22
22
  DEFAULT_TASK_TTL_MS,
23
23
  DEFAULT_TOOL_RATE_LIMITS,
24
24
  clampTaskTtl
25
- } from "./chunk-3TMJ34M4.js";
25
+ } from "./chunk-TOBIDJ3V.js";
26
26
  import {
27
27
  executeExpert
28
- } from "./chunk-ZCHQS3KU.js";
28
+ } from "./chunk-4LMP452D.js";
29
29
  import {
30
30
  JobStatusSchema,
31
31
  abortJob,
@@ -46,24 +46,24 @@ import {
46
46
  simulationDeniedResult,
47
47
  toJobSummary,
48
48
  writeJobCancelled
49
- } from "./chunk-5XSWNLKE.js";
49
+ } from "./chunk-MBNECNPL.js";
50
50
  import {
51
51
  allOf
52
52
  } from "./chunk-OQB3XC5O.js";
53
53
  import {
54
54
  normalizeTopicToCanonical,
55
55
  synthesizeResearch
56
- } from "./chunk-CPEOXRCU.js";
56
+ } from "./chunk-7TJVDU2S.js";
57
57
  import {
58
58
  IssueTriage
59
- } from "./chunk-PZISZC5R.js";
59
+ } from "./chunk-Y3CGQUCQ.js";
60
60
  import {
61
61
  resolveEnvMode,
62
62
  sanitizeInput
63
- } from "./chunk-SA5S55UW.js";
63
+ } from "./chunk-ETEGV2NG.js";
64
64
  import {
65
65
  withPrerequisite
66
- } from "./chunk-VCS5YLU2.js";
66
+ } from "./chunk-DOT3TG4T.js";
67
67
  import {
68
68
  NOOP_NOTIFIER,
69
69
  RateLimiter,
@@ -86,18 +86,18 @@ import {
86
86
  withAuditTrail,
87
87
  withProgressHeartbeat,
88
88
  wrapToolWithTimeout
89
- } from "./chunk-QWFEQURV.js";
89
+ } from "./chunk-3BKFXSHM.js";
90
90
  import {
91
91
  createAuditTrail,
92
92
  createGraphAuditBridge,
93
93
  emitPipelinePolicyEvent
94
- } from "./chunk-KJCXANOL.js";
94
+ } from "./chunk-YKEBDGCK.js";
95
95
  import {
96
96
  EventTopics,
97
97
  createEvent,
98
98
  getGlobalEventBus,
99
99
  getGlobalRegistry
100
- } from "./chunk-HOMEGHVJ.js";
100
+ } from "./chunk-CZC4FIVH.js";
101
101
  import {
102
102
  IDENTIFIER_RE,
103
103
  LANG_VALUES,
@@ -130,15 +130,15 @@ import {
130
130
  parseRegistry,
131
131
  sourceExistsInRegistry,
132
132
  summarizeContextForPrompt
133
- } from "./chunk-3KIJASVO.js";
133
+ } from "./chunk-ZYL6RNBZ.js";
134
134
  import {
135
135
  getTokenEnvVars,
136
136
  resolveToken
137
- } from "./chunk-7RIGDQDO.js";
137
+ } from "./chunk-UK2HVVTQ.js";
138
138
  import {
139
139
  loadPapersRegistry,
140
140
  loadTechniquesRegistry
141
- } from "./chunk-MGLEPBIZ.js";
141
+ } from "./chunk-6QBCTIKD.js";
142
142
  import {
143
143
  resolveInsideRoot
144
144
  } from "./chunk-NUBSJGQZ.js";
@@ -147,14 +147,14 @@ import {
147
147
  MemoryImportance,
148
148
  calculateTextJaccardSimilarity,
149
149
  getToolMemory
150
- } from "./chunk-3LMU5W5I.js";
150
+ } from "./chunk-ZHVVLJFQ.js";
151
151
  import {
152
152
  STOPWORDS,
153
153
  truncateWithInfo
154
154
  } from "./chunk-6T3EPABN.js";
155
155
  import {
156
156
  createSessionMemory
157
- } from "./chunk-44AA6TSZ.js";
157
+ } from "./chunk-JFZP7IA4.js";
158
158
  import {
159
159
  BUILT_IN_EXPERTS,
160
160
  BuiltInExpertTypeSchema,
@@ -172,25 +172,25 @@ import {
172
172
  getAvailableClis,
173
173
  sleep,
174
174
  withTimeout
175
- } from "./chunk-Y4T2ZCZB.js";
175
+ } from "./chunk-5FMDEEV7.js";
176
176
  import {
177
177
  BaseAdapter,
178
178
  createStream,
179
179
  requireApiKey,
180
180
  validateApiKeyPresence
181
- } from "./chunk-2I2VX62W.js";
181
+ } from "./chunk-V24NAR5C.js";
182
182
  import {
183
183
  DEFAULTS
184
- } from "./chunk-YRAOOAYY.js";
184
+ } from "./chunk-TDXJYLRP.js";
185
185
  import {
186
186
  getAvailabilityCache,
187
187
  getCliForModelId,
188
188
  resolveFallback
189
- } from "./chunk-LOY7LJJT.js";
189
+ } from "./chunk-J2F5E3DF.js";
190
190
  import {
191
191
  generateHyphenId,
192
192
  generateUUID
193
- } from "./chunk-N7FPSYIR.js";
193
+ } from "./chunk-4DXZJJK3.js";
194
194
  import {
195
195
  AGENT_ROUTER_TIMEOUTS,
196
196
  API_TIMEOUTS,
@@ -289,7 +289,7 @@ import {
289
289
  selectStrategyByManifest,
290
290
  toExpertTaskAnalysisResult,
291
291
  withStep
292
- } from "./chunk-KNOECZP2.js";
292
+ } from "./chunk-7KHCQPHO.js";
293
293
  import {
294
294
  ensureLearningDir,
295
295
  getMetaOutcomesFile,
@@ -5411,6 +5411,7 @@ function createSessionState(config, roleResolver) {
5411
5411
  };
5412
5412
  }
5413
5413
  function shouldFinalize(pattern, participants, results, votes, reviews) {
5414
+ if (participants.length === 0) return false;
5414
5415
  switch (pattern) {
5415
5416
  case "sequential":
5416
5417
  case "parallel":
@@ -15353,11 +15354,22 @@ var SkillComposer = class {
15353
15354
  }
15354
15355
  /**
15355
15356
  * Validates that a composition is executable.
15357
+ *
15358
+ * A zero-step composition is reported invalid rather than valid: the step
15359
+ * loop below never runs, so `errors.length === 0` would report "executable"
15360
+ * having checked nothing, and executing it would do nothing (#4585).
15356
15361
  */
15357
15362
  validateComposition(composition) {
15358
15363
  const errors = [];
15359
15364
  const warnings = [];
15360
15365
  const seenSkills = /* @__PURE__ */ new Set();
15366
+ if (composition.steps.length === 0) {
15367
+ return {
15368
+ valid: false,
15369
+ errors: ["Composition has no steps; there is nothing to execute or validate"],
15370
+ warnings
15371
+ };
15372
+ }
15361
15373
  for (const step of composition.steps) {
15362
15374
  const skill = this.library.getSkill(step.skillId);
15363
15375
  if (skill === void 0) {
@@ -28359,7 +28371,7 @@ function execIdFields(executionId) {
28359
28371
  async function populateUnifiedContextOnState(state, options) {
28360
28372
  const taskCandidate = state["task"];
28361
28373
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
28362
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-SRPTYHYW.js");
28374
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-CCGMXTGJ.js");
28363
28375
  const category = inferTaskCategory2(taskCandidate);
28364
28376
  const executionId = options?.executionId;
28365
28377
  const execFields = execIdFields(executionId);
@@ -43964,7 +43976,7 @@ async function tryIssueTriage(task) {
43964
43976
  try {
43965
43977
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
43966
43978
  if (issueMatch === null) return null;
43967
- const { createIssueTriage } = await import("./issue-triage-4ZI2PVTX.js");
43979
+ const { createIssueTriage } = await import("./issue-triage-T3L7CAUV.js");
43968
43980
  const triage = createIssueTriage();
43969
43981
  const owner = issueMatch[1] ?? "";
43970
43982
  const num = issueMatch[2] ?? "";
@@ -43992,7 +44004,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
43992
44004
  ]);
43993
44005
  async function classifyWithLLM(task) {
43994
44006
  try {
43995
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-76OOP55L.js");
44007
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-JOM5P4I4.js");
43996
44008
  const prompt = [
43997
44009
  "Classify this task into exactly one pipeline template.",
43998
44010
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -45718,7 +45730,7 @@ var memoryInitPromise = null;
45718
45730
  async function initPipelineMemory() {
45719
45731
  if (cachedMemory !== null) return cachedMemory;
45720
45732
  try {
45721
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-3O6OL3XO.js");
45733
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-SXYFTZYM.js");
45722
45734
  const { getLearningDir } = await import("./learning-persistence-EGY4VKKO.js");
45723
45735
  const mem = createSessionMemory2(getLearningDir());
45724
45736
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -45780,7 +45792,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
45780
45792
  callRecord(routingMemoryCache);
45781
45793
  return;
45782
45794
  }
45783
- routingMemoryInitPromise ??= import("./routing-memory-FBBYHH4N.js").then(({ createRoutingMemory }) => {
45795
+ routingMemoryInitPromise ??= import("./routing-memory-HNZRMLXC.js").then(({ createRoutingMemory }) => {
45784
45796
  routingMemoryCache ??= createRoutingMemory();
45785
45797
  return routingMemoryCache;
45786
45798
  }).catch((error) => {
@@ -45814,7 +45826,7 @@ ${text}` : "";
45814
45826
  }
45815
45827
  async function getWeatherContext() {
45816
45828
  try {
45817
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-XONOF32O.js");
45829
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-2T3OIAJS.js");
45818
45830
  const report = generateWeatherReport2({ includeAdaptive: true });
45819
45831
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
45820
45832
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -45832,7 +45844,7 @@ ${lines}
45832
45844
  }
45833
45845
  async function getMemoryContext(task) {
45834
45846
  try {
45835
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-3O6OL3XO.js");
45847
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-SXYFTZYM.js");
45836
45848
  const { getLearningDir } = await import("./learning-persistence-EGY4VKKO.js");
45837
45849
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
45838
45850
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -45947,7 +45959,7 @@ ${contextBlock}`;
45947
45959
  const strategy = config.votingStrategy ?? "higher_order";
45948
45960
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
45949
45961
  try {
45950
- const { executeVoting } = await import("./consensus-vote-AIIIWZP4.js");
45962
+ const { executeVoting } = await import("./consensus-vote-ILSS373K.js");
45951
45963
  const votingResult = await executeVoting(
45952
45964
  {
45953
45965
  proposal: buildVoteProposal(plan, research),
@@ -46386,7 +46398,7 @@ async function searchCodebaseForTask(task) {
46386
46398
  }
46387
46399
  async function queryResearchRegistry(task) {
46388
46400
  try {
46389
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-3ZCK4ND7.js");
46401
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-6FPLB3UK.js");
46390
46402
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
46391
46403
  if (topic === void 0) return null;
46392
46404
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -46457,7 +46469,7 @@ function createScanStageWrapper() {
46457
46469
  try {
46458
46470
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
46459
46471
  if (slug !== void 0) {
46460
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-TL4OZHQU.js");
46472
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-WQG7G4H6.js");
46461
46473
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
46462
46474
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
46463
46475
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -49462,7 +49474,7 @@ var GitHubTaskTracker = class {
49462
49474
  cachedProvider = null;
49463
49475
  async getProvider() {
49464
49476
  if (this.cachedProvider !== null) return this.cachedProvider;
49465
- const { createScmProvider } = await import("./factory-JEKAU3BF.js");
49477
+ const { createScmProvider } = await import("./factory-6A6TGK6D.js");
49466
49478
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
49467
49479
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
49468
49480
  this.cachedProvider = result.value;
@@ -50304,7 +50316,7 @@ async function probeSource(source, includeModelIds) {
50304
50316
  }
50305
50317
  }
50306
50318
  async function defaultSources(includeOpenRouter) {
50307
- const { createAllAdapters: createAllAdapters2 } = await import("./factory-IYGZJJU4.js");
50319
+ const { createAllAdapters: createAllAdapters2 } = await import("./factory-MYQRDKOJ.js");
50308
50320
  const adapters = createAllAdapters2();
50309
50321
  return buildDefaultModelSources(adapters, { includeOpenRouter });
50310
50322
  }
@@ -51002,6 +51014,18 @@ var ValidationResultSchema = z111.object({
51002
51014
  toolName: z111.string().min(1),
51003
51015
  violations: z111.array(ConstraintViolationSchema),
51004
51016
  passed: z111.array(z111.string()),
51017
+ // Optional rather than required, deliberately. `ValidationResult` declares
51018
+ // both fields required because every result this package produces has them;
51019
+ // the schema is the lenient inbound edge for a result that arrived from
51020
+ // somewhere else. There is no in-tree persistence path today — this schema is
51021
+ // a published export with no producer or consumer in this repo — so the case
51022
+ // is a holder outside the tree, not a stored record here. Absent then means
51023
+ // "predates coverage tracking", which is distinct from an empty array meaning
51024
+ // "nothing was evaluated". The strict/lenient split is safe because nothing
51025
+ // bridges the two with `z.infer`: a parsed result will not typecheck as a
51026
+ // `ValidationResult` without handling the absent fields.
51027
+ evaluated: z111.array(z111.string()).optional(),
51028
+ notApplicable: z111.array(z111.string()).optional(),
51005
51029
  warnings: z111.array(ValidationWarningSchema),
51006
51030
  validatedAt: z111.date()
51007
51031
  });
@@ -54324,4 +54348,4 @@ export {
54324
54348
  shutdownFeedbackSubscriber,
54325
54349
  createEventBusBridge
54326
54350
  };
54327
- //# sourceMappingURL=chunk-BSGHDAEM.js.map
54351
+ //# sourceMappingURL=chunk-6YLKVLI4.js.map