nexus-agents 2.79.4 → 2.80.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 (118) hide show
  1. package/dist/{child-mcp-config-DFRYTRBK.js → child-mcp-config-SM5I7USN.js} +3 -3
  2. package/dist/{chunk-NVSJXN4S.js → chunk-2DBPZQLO.js} +8 -5
  3. package/dist/chunk-2DBPZQLO.js.map +1 -0
  4. package/dist/chunk-2JQXC3CK.js +317 -0
  5. package/dist/chunk-2JQXC3CK.js.map +1 -0
  6. package/dist/{chunk-JMRCMMZ5.js → chunk-4XGKCVJL.js} +2 -2
  7. package/dist/{chunk-DW3UTO43.js → chunk-6CJIKX6I.js} +16 -14
  8. package/dist/chunk-6CJIKX6I.js.map +1 -0
  9. package/dist/{chunk-45NUO4FE.js → chunk-AYZ6P7CK.js} +2 -2
  10. package/dist/{chunk-UNRTM43V.js → chunk-BSIGP5XF.js} +2 -2
  11. package/dist/{chunk-LFTK5ZQG.js → chunk-CTSESEFA.js} +2 -2
  12. package/dist/{chunk-UWDVEMYZ.js → chunk-EKRMWVAH.js} +4 -4
  13. package/dist/{chunk-IPDUZJPH.js → chunk-EVZ7YR7H.js} +4 -4
  14. package/dist/{chunk-OGV7J5WG.js → chunk-FAJAWO42.js} +3 -3
  15. package/dist/{chunk-UNFS6YBY.js → chunk-FJHZW7CR.js} +2 -2
  16. package/dist/{chunk-3ENBGGYA.js → chunk-GNRANMQ3.js} +44 -37
  17. package/dist/chunk-GNRANMQ3.js.map +1 -0
  18. package/dist/{chunk-42MM7GKW.js → chunk-HBKZ2DJK.js} +2 -2
  19. package/dist/{chunk-ACP4YARI.js → chunk-J5XEJHIQ.js} +3 -3
  20. package/dist/{chunk-PAKVXGS2.js → chunk-JLWKHYIU.js} +2 -2
  21. package/dist/{chunk-NJPFN75N.js → chunk-JXDDSNEK.js} +2 -2
  22. package/dist/{chunk-NXNNT5XW.js → chunk-OO6MTUDS.js} +4 -4
  23. package/dist/{chunk-OFRDE7MK.js → chunk-Q2U6SFN2.js} +2 -2
  24. package/dist/{chunk-BXI6DKBU.js → chunk-QVHXEQFM.js} +3 -3
  25. package/dist/{chunk-TN5ZKSGC.js → chunk-RIUUFBX4.js} +2 -2
  26. package/dist/{chunk-PDCLBWH5.js → chunk-SHVGZK4A.js} +4 -4
  27. package/dist/{chunk-UOR2JWFH.js → chunk-SJUSQGKH.js} +82 -57
  28. package/dist/chunk-SJUSQGKH.js.map +1 -0
  29. package/dist/{chunk-SU3Y6LU2.js → chunk-UGXR4PAY.js} +32 -6
  30. package/dist/chunk-UGXR4PAY.js.map +1 -0
  31. package/dist/{chunk-BSQ4KTY4.js → chunk-UVALD724.js} +2 -2
  32. package/dist/{chunk-PHBRELUK.js → chunk-VS4KB3AX.js} +7 -7
  33. package/dist/{chunk-DOI7RE3X.js → chunk-YGKPWUJ6.js} +2 -2
  34. package/dist/{chunk-UQOSVOEU.js → chunk-YMT6H2HQ.js} +11 -13
  35. package/dist/chunk-YMT6H2HQ.js.map +1 -0
  36. package/dist/{chunk-BIH2CBC5.js → chunk-ZU2Q3DWE.js} +8 -6
  37. package/dist/{chunk-BIH2CBC5.js.map → chunk-ZU2Q3DWE.js.map} +1 -1
  38. package/dist/{cli-circuit-breaker-T75HOLZK.js → cli-circuit-breaker-JGX54DAD.js} +5 -5
  39. package/dist/cli.d.ts +1 -1
  40. package/dist/cli.js +561 -519
  41. package/dist/cli.js.map +1 -1
  42. package/dist/{composite-router-OPSK5FCQ.js → composite-router-UYFYSMBT.js} +3 -3
  43. package/dist/{consensus-vote-CYUPIJXR.js → consensus-vote-BZ6JSN67.js} +12 -12
  44. package/dist/{context-retriever-6AWHCHRP.js → context-retriever-G23VVJ5S.js} +6 -6
  45. package/dist/{doctor-deep-XBPRQ6ZP.js → doctor-deep-OF2LXZ6A.js} +4 -4
  46. package/dist/expert-bridge-6ZLD2NWD.js +11 -0
  47. package/dist/{factory-Y3TMP4OQ.js → factory-I54TX7OY.js} +5 -5
  48. package/dist/factory-UHDCLEUE.js +14 -0
  49. package/dist/index.d.ts +7 -5
  50. package/dist/index.js +25 -25
  51. package/dist/{init-opencode-RV6IQEMS.js → init-opencode-FE7HVWQL.js} +6 -6
  52. package/dist/issue-triage-7NR5NQUY.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-NZLX7ZFV.js} +3 -3
  55. package/dist/{repo-security-plan-HNLMF7J7.js → repo-security-plan-74GJWJSV.js} +4 -4
  56. package/dist/{research-helpers-synthesize-77TLYSW4.js → research-helpers-synthesize-LFPEXRIV.js} +4 -4
  57. package/dist/{routing-memory-6DV6ZPAH.js → routing-memory-Y2LSEQVS.js} +3 -3
  58. package/dist/{session-memory-XZ3NJIR4.js → session-memory-RCNQJDJR.js} +4 -4
  59. package/dist/{setup-command-QOXG36UV.js → setup-command-ZPLPOJF2.js} +13 -11
  60. package/dist/setup-config-F7VRWXY3.js +10 -0
  61. package/dist/{setup-custom-api-PJ6TGHJH.js → setup-custom-api-XTJ6YZM6.js} +5 -5
  62. package/dist/{tool-memory-K2QPTPKV.js → tool-memory-COZK6SR7.js} +5 -5
  63. package/dist/{weather-report-ZB4AKOIA.js → weather-report-O4XOYGPK.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-DW3UTO43.js.map +0 -1
  69. package/dist/chunk-NVSJXN4S.js.map +0 -1
  70. package/dist/chunk-SU3Y6LU2.js.map +0 -1
  71. package/dist/chunk-UOR2JWFH.js.map +0 -1
  72. package/dist/chunk-UQOSVOEU.js.map +0 -1
  73. package/dist/expert-bridge-5YOPK5IT.js +0 -11
  74. package/dist/factory-DN7SJZ5Z.js +0 -14
  75. package/dist/issue-triage-UTWKXLKC.js +0 -15
  76. package/dist/setup-config-B4V4QHDP.js +0 -10
  77. /package/dist/{child-mcp-config-DFRYTRBK.js.map → child-mcp-config-SM5I7USN.js.map} +0 -0
  78. /package/dist/{chunk-JMRCMMZ5.js.map → chunk-4XGKCVJL.js.map} +0 -0
  79. /package/dist/{chunk-45NUO4FE.js.map → chunk-AYZ6P7CK.js.map} +0 -0
  80. /package/dist/{chunk-UNRTM43V.js.map → chunk-BSIGP5XF.js.map} +0 -0
  81. /package/dist/{chunk-LFTK5ZQG.js.map → chunk-CTSESEFA.js.map} +0 -0
  82. /package/dist/{chunk-UWDVEMYZ.js.map → chunk-EKRMWVAH.js.map} +0 -0
  83. /package/dist/{chunk-IPDUZJPH.js.map → chunk-EVZ7YR7H.js.map} +0 -0
  84. /package/dist/{chunk-OGV7J5WG.js.map → chunk-FAJAWO42.js.map} +0 -0
  85. /package/dist/{chunk-UNFS6YBY.js.map → chunk-FJHZW7CR.js.map} +0 -0
  86. /package/dist/{chunk-42MM7GKW.js.map → chunk-HBKZ2DJK.js.map} +0 -0
  87. /package/dist/{chunk-ACP4YARI.js.map → chunk-J5XEJHIQ.js.map} +0 -0
  88. /package/dist/{chunk-PAKVXGS2.js.map → chunk-JLWKHYIU.js.map} +0 -0
  89. /package/dist/{chunk-NJPFN75N.js.map → chunk-JXDDSNEK.js.map} +0 -0
  90. /package/dist/{chunk-NXNNT5XW.js.map → chunk-OO6MTUDS.js.map} +0 -0
  91. /package/dist/{chunk-OFRDE7MK.js.map → chunk-Q2U6SFN2.js.map} +0 -0
  92. /package/dist/{chunk-BXI6DKBU.js.map → chunk-QVHXEQFM.js.map} +0 -0
  93. /package/dist/{chunk-TN5ZKSGC.js.map → chunk-RIUUFBX4.js.map} +0 -0
  94. /package/dist/{chunk-PDCLBWH5.js.map → chunk-SHVGZK4A.js.map} +0 -0
  95. /package/dist/{chunk-BSQ4KTY4.js.map → chunk-UVALD724.js.map} +0 -0
  96. /package/dist/{chunk-PHBRELUK.js.map → chunk-VS4KB3AX.js.map} +0 -0
  97. /package/dist/{chunk-DOI7RE3X.js.map → chunk-YGKPWUJ6.js.map} +0 -0
  98. /package/dist/{cli-circuit-breaker-T75HOLZK.js.map → cli-circuit-breaker-JGX54DAD.js.map} +0 -0
  99. /package/dist/{composite-router-OPSK5FCQ.js.map → composite-router-UYFYSMBT.js.map} +0 -0
  100. /package/dist/{consensus-vote-CYUPIJXR.js.map → consensus-vote-BZ6JSN67.js.map} +0 -0
  101. /package/dist/{context-retriever-6AWHCHRP.js.map → context-retriever-G23VVJ5S.js.map} +0 -0
  102. /package/dist/{doctor-deep-XBPRQ6ZP.js.map → doctor-deep-OF2LXZ6A.js.map} +0 -0
  103. /package/dist/{expert-bridge-5YOPK5IT.js.map → expert-bridge-6ZLD2NWD.js.map} +0 -0
  104. /package/dist/{factory-DN7SJZ5Z.js.map → factory-I54TX7OY.js.map} +0 -0
  105. /package/dist/{factory-Y3TMP4OQ.js.map → factory-UHDCLEUE.js.map} +0 -0
  106. /package/dist/{init-opencode-RV6IQEMS.js.map → init-opencode-FE7HVWQL.js.map} +0 -0
  107. /package/dist/{issue-triage-UTWKXLKC.js.map → issue-triage-7NR5NQUY.js.map} +0 -0
  108. /package/dist/{learning-persistence-Q3HTOGTU.js.map → learning-persistence-TGOBRUUU.js.map} +0 -0
  109. /package/dist/{registry-command-6KJWW3W7.js.map → registry-command-NZLX7ZFV.js.map} +0 -0
  110. /package/dist/{repo-security-plan-HNLMF7J7.js.map → repo-security-plan-74GJWJSV.js.map} +0 -0
  111. /package/dist/{research-helpers-synthesize-77TLYSW4.js.map → research-helpers-synthesize-LFPEXRIV.js.map} +0 -0
  112. /package/dist/{routing-memory-6DV6ZPAH.js.map → routing-memory-Y2LSEQVS.js.map} +0 -0
  113. /package/dist/{session-memory-XZ3NJIR4.js.map → session-memory-RCNQJDJR.js.map} +0 -0
  114. /package/dist/{setup-command-QOXG36UV.js.map → setup-command-ZPLPOJF2.js.map} +0 -0
  115. /package/dist/{setup-config-B4V4QHDP.js.map → setup-config-F7VRWXY3.js.map} +0 -0
  116. /package/dist/{setup-custom-api-PJ6TGHJH.js.map → setup-custom-api-XTJ6YZM6.js.map} +0 -0
  117. /package/dist/{tool-memory-K2QPTPKV.js.map → tool-memory-COZK6SR7.js.map} +0 -0
  118. /package/dist/{weather-report-ZB4AKOIA.js.map → weather-report-O4XOYGPK.js.map} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  getErrorMessage,
5
5
  getTimeProvider,
6
6
  ok
7
- } from "./chunk-UQOSVOEU.js";
7
+ } from "./chunk-YMT6H2HQ.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-45NUO4FE.js.map
354
+ //# sourceMappingURL=chunk-AYZ6P7CK.js.map
@@ -5,7 +5,7 @@ import {
5
5
  MCP_TIMEOUTS,
6
6
  TEST_TIMEOUTS,
7
7
  WORKFLOW_TIMEOUTS
8
- } from "./chunk-UQOSVOEU.js";
8
+ } from "./chunk-YMT6H2HQ.js";
9
9
 
10
10
  // src/config/defaults-env.ts
11
11
  function parseIntEnv(envKey, fallback) {
@@ -399,4 +399,4 @@ export {
399
399
  CUSTOM_API_DEFAULT_MODEL,
400
400
  DEFAULTS
401
401
  };
402
- //# sourceMappingURL=chunk-UNRTM43V.js.map
402
+ //# sourceMappingURL=chunk-BSIGP5XF.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  err,
4
4
  ok
5
- } from "./chunk-UQOSVOEU.js";
5
+ } from "./chunk-YMT6H2HQ.js";
6
6
 
7
7
  // src/scm/token-resolver.ts
8
8
  import { execFile } from "child_process";
@@ -87,4 +87,4 @@ export {
87
87
  hasToken,
88
88
  getTokenEnvVars
89
89
  };
90
- //# sourceMappingURL=chunk-LFTK5ZQG.js.map
90
+ //# sourceMappingURL=chunk-CTSESEFA.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  resolveToken
3
- } from "./chunk-LFTK5ZQG.js";
3
+ } from "./chunk-CTSESEFA.js";
4
4
  import {
5
5
  GitHubProvider,
6
6
  ScmError
7
- } from "./chunk-BSQ4KTY4.js";
7
+ } from "./chunk-UVALD724.js";
8
8
  import {
9
9
  err,
10
10
  ok
11
- } from "./chunk-UQOSVOEU.js";
11
+ } from "./chunk-YMT6H2HQ.js";
12
12
 
13
13
  // src/scm/factory.ts
14
14
  async function createScmProvider(config) {
@@ -41,4 +41,4 @@ export {
41
41
  createScmProvider,
42
42
  createGitHubProvider
43
43
  };
44
- //# sourceMappingURL=chunk-UWDVEMYZ.js.map
44
+ //# sourceMappingURL=chunk-EKRMWVAH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OpenAIAdapter
3
- } from "./chunk-OGV7J5WG.js";
3
+ } from "./chunk-FAJAWO42.js";
4
4
  import {
5
5
  ConfigError,
6
6
  createLogger,
@@ -9,10 +9,10 @@ import {
9
9
  getTimeProvider,
10
10
  lookupInTreeCapability,
11
11
  ok
12
- } from "./chunk-UQOSVOEU.js";
12
+ } from "./chunk-YMT6H2HQ.js";
13
13
  import {
14
14
  getNexusDataDir
15
- } from "./chunk-7BMOZJYS.js";
15
+ } from "./chunk-2JQXC3CK.js";
16
16
 
17
17
  // src/config/opencode-bridge.ts
18
18
  import { readFileSync } from "fs";
@@ -307,4 +307,4 @@ export {
307
307
  discoverModels,
308
308
  buildOpenAICompatAdapters
309
309
  };
310
- //# sourceMappingURL=chunk-IPDUZJPH.js.map
310
+ //# sourceMappingURL=chunk-EVZ7YR7H.js.map
@@ -3,14 +3,14 @@ import {
3
3
  createStream,
4
4
  requireApiKey,
5
5
  validateApiKeyPresence
6
- } from "./chunk-DOI7RE3X.js";
6
+ } from "./chunk-YGKPWUJ6.js";
7
7
  import {
8
8
  ModelCapability,
9
9
  err,
10
10
  getCliModelName,
11
11
  getTokenEstimator,
12
12
  ok
13
- } from "./chunk-UQOSVOEU.js";
13
+ } from "./chunk-YMT6H2HQ.js";
14
14
 
15
15
  // src/adapters/openai-types.ts
16
16
  var OPENAI_MODELS = {
@@ -553,4 +553,4 @@ export {
553
553
  OpenAIAdapter,
554
554
  createOpenAIAdapter
555
555
  };
556
- //# sourceMappingURL=chunk-OGV7J5WG.js.map
556
+ //# sourceMappingURL=chunk-FAJAWO42.js.map
@@ -7,7 +7,7 @@ import {
7
7
  err,
8
8
  getErrorMessage,
9
9
  ok
10
- } from "./chunk-UQOSVOEU.js";
10
+ } from "./chunk-YMT6H2HQ.js";
11
11
 
12
12
  // src/cli/research-helpers-synthesize.ts
13
13
  import { z } from "zod";
@@ -1015,4 +1015,4 @@ export {
1015
1015
  AttributedInsightSchema,
1016
1016
  synthesizeResearch
1017
1017
  };
1018
- //# sourceMappingURL=chunk-UNFS6YBY.js.map
1018
+ //# sourceMappingURL=chunk-FJHZW7CR.js.map
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  getTokenEnvVars,
9
9
  resolveToken
10
- } from "./chunk-LFTK5ZQG.js";
10
+ } from "./chunk-CTSESEFA.js";
11
11
  import {
12
12
  executeExpert
13
- } from "./chunk-PHBRELUK.js";
13
+ } from "./chunk-VS4KB3AX.js";
14
14
  import {
15
15
  EventTopics,
16
16
  NOOP_NOTIFIER,
@@ -36,7 +36,7 @@ import {
36
36
  withAccessPolicy,
37
37
  withProgressHeartbeat,
38
38
  wrapToolWithTimeout
39
- } from "./chunk-DW3UTO43.js";
39
+ } from "./chunk-6CJIKX6I.js";
40
40
  import {
41
41
  REGISTRY_PATH,
42
42
  getProjectRoot,
@@ -45,14 +45,14 @@ import {
45
45
  normalizeTopicToCanonical,
46
46
  savePapersRegistry,
47
47
  synthesizeResearch
48
- } from "./chunk-UNFS6YBY.js";
48
+ } from "./chunk-FJHZW7CR.js";
49
49
  import {
50
50
  IssueTriage,
51
51
  sanitizeInput
52
- } from "./chunk-BXI6DKBU.js";
52
+ } from "./chunk-QVHXEQFM.js";
53
53
  import {
54
54
  generateSecurityPlan
55
- } from "./chunk-TN5ZKSGC.js";
55
+ } from "./chunk-RIUUFBX4.js";
56
56
  import {
57
57
  analyzeGitHubRepo
58
58
  } from "./chunk-7J7PNOJQ.js";
@@ -64,7 +64,7 @@ import {
64
64
  getContextForTask,
65
65
  inferTaskCategory,
66
66
  summarizeContextForPrompt
67
- } from "./chunk-PDCLBWH5.js";
67
+ } from "./chunk-SHVGZK4A.js";
68
68
  import {
69
69
  DEFAULT_RELEVANCE_CONFIG,
70
70
  MemoryImportance,
@@ -72,19 +72,19 @@ import {
72
72
  generateHyphenId,
73
73
  generateUUID,
74
74
  getToolMemory
75
- } from "./chunk-NXNNT5XW.js";
75
+ } from "./chunk-OO6MTUDS.js";
76
76
  import {
77
77
  DEFAULT_TASK_TTL_MS,
78
78
  DEFAULT_TOOL_RATE_LIMITS,
79
79
  clampTaskTtl
80
- } from "./chunk-UOR2JWFH.js";
80
+ } from "./chunk-SJUSQGKH.js";
81
81
  import {
82
82
  getAvailabilityCache,
83
83
  resolveFallback
84
- } from "./chunk-OFRDE7MK.js";
84
+ } from "./chunk-Q2U6SFN2.js";
85
85
  import {
86
86
  DEFAULTS
87
- } from "./chunk-UNRTM43V.js";
87
+ } from "./chunk-BSIGP5XF.js";
88
88
  import {
89
89
  resolveInsideRoot
90
90
  } from "./chunk-NUBSJGQZ.js";
@@ -100,7 +100,7 @@ import {
100
100
  getAvailableClis,
101
101
  sleep,
102
102
  withTimeout
103
- } from "./chunk-BIH2CBC5.js";
103
+ } from "./chunk-ZU2Q3DWE.js";
104
104
  import {
105
105
  BUILT_IN_EXPERTS,
106
106
  BuiltInExpertTypeSchema,
@@ -112,7 +112,7 @@ import {
112
112
  } from "./chunk-PQHVC4BD.js";
113
113
  import {
114
114
  createSessionMemory
115
- } from "./chunk-45NUO4FE.js";
115
+ } from "./chunk-AYZ6P7CK.js";
116
116
  import {
117
117
  AGENT_ROUTER_TIMEOUTS,
118
118
  API_TIMEOUTS,
@@ -182,11 +182,11 @@ import {
182
182
  resolveModelIdentitySync,
183
183
  toExpertTaskAnalysisResult,
184
184
  withStep
185
- } from "./chunk-UQOSVOEU.js";
185
+ } from "./chunk-YMT6H2HQ.js";
186
186
  import {
187
187
  getNexusDataDir,
188
188
  nexusDataPath
189
- } from "./chunk-7BMOZJYS.js";
189
+ } from "./chunk-2JQXC3CK.js";
190
190
 
191
191
  // src/agents/state-machine-types.ts
192
192
  var VALID_TRANSITIONS = /* @__PURE__ */ new Map([
@@ -26676,7 +26676,7 @@ async function populateUnifiedContextOnState(state) {
26676
26676
  try {
26677
26677
  const taskCandidate = state["task"];
26678
26678
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
26679
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-6AWHCHRP.js");
26679
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-G23VVJ5S.js");
26680
26680
  const ctx = await getContextForTask2({
26681
26681
  task: taskCandidate,
26682
26682
  category: inferTaskCategory2(taskCandidate),
@@ -28004,7 +28004,9 @@ function extractWaveAttribution(event) {
28004
28004
 
28005
28005
  // src/pipeline/pipeline-runner.ts
28006
28006
  var pipelineLogger = createLogger({ component: "PipelineRunner" });
28007
- var DEFAULT_RUNS_DIR = "./runs";
28007
+ function getDefaultRunsDir() {
28008
+ return nexusDataPath("runs");
28009
+ }
28008
28010
  var PipelineRunner = class {
28009
28011
  /** Compiles a PlanContract into a CompiledPipeline. */
28010
28012
  compile(plan, options) {
@@ -28123,7 +28125,7 @@ function mapNodeStatus(status) {
28123
28125
  function createTraceContext(task, options) {
28124
28126
  const bus = options?.eventBus;
28125
28127
  const writer = bus !== void 0 ? new TraceWriter(bus, {
28126
- runsDir: options?.runsDir ?? DEFAULT_RUNS_DIR,
28128
+ runsDir: options?.runsDir ?? getDefaultRunsDir(),
28127
28129
  runId: task.id
28128
28130
  }) : void 0;
28129
28131
  return { bus, writer };
@@ -28229,7 +28231,8 @@ var trustTierRule = {
28229
28231
  evaluate(context) {
28230
28232
  const state = context.pipelineState;
28231
28233
  const tierVal = state["trustTier"];
28232
- const tier = typeof tierVal === "number" ? tierVal : void 0;
28234
+ const numericTier = typeof tierVal === "number" ? tierVal : typeof tierVal === "string" ? Number(tierVal) : Number.NaN;
28235
+ const tier = Number.isFinite(numericTier) ? numericTier : void 0;
28233
28236
  if (tier !== void 0 && tier >= 3 && context.stageType === "execute") {
28234
28237
  return {
28235
28238
  allow: false,
@@ -29414,10 +29417,14 @@ function createMockOrchestrator() {
29414
29417
  async function raceAgainstDeadline(promise, deadlineMs, onTimeout) {
29415
29418
  const startedAt = Date.now();
29416
29419
  let timer;
29417
- const timeoutP = new Promise((resolve19) => {
29420
+ const timeoutP = new Promise((resolve19, reject) => {
29418
29421
  timer = setTimeout(
29419
29422
  () => {
29420
- resolve19(onTimeout(Date.now() - startedAt));
29423
+ try {
29424
+ resolve19(onTimeout(Date.now() - startedAt));
29425
+ } catch (err2) {
29426
+ reject(err2 instanceof Error ? err2 : new Error(String(err2)));
29427
+ }
29421
29428
  },
29422
29429
  Math.max(0, deadlineMs)
29423
29430
  );
@@ -35475,7 +35482,7 @@ function handleExpertFailure(task, expert, errorMsg, durationMs) {
35475
35482
  });
35476
35483
  const durationSec = Math.round(durationMs / 1e3);
35477
35484
  const model = expert.modelId ?? "default";
35478
- const timeoutHint = errorMsg.includes("timed out") ? " Hint: omit timeoutMs to use auto-detected timeout (300-600s)." : "";
35485
+ const timeoutHint = errorMsg.includes("timed out") ? ` Hint: client MCP timed out at ${String(durationSec)}s (typically the 60s SDK default). Server budget can be 300-900s but most clients don't honor progress extensions \u2014 see #2631. Workaround: use a client with longer default (Claude Desktop, mcp-inspector --timeout) or shorten the task.` : "";
35479
35486
  return {
35480
35487
  ok: false,
35481
35488
  error: `Expert execution failed after ${String(durationSec)}s (role=${expert.role}, model=${model}): ${errorMsg}${timeoutHint}`
@@ -40706,7 +40713,7 @@ var EMPTY_RESPONSE = {
40706
40713
  source: "not_found"
40707
40714
  };
40708
40715
  async function queryTraceFromDisk(input, runsDir) {
40709
- const dir = runsDir ?? DEFAULT_RUNS_DIR;
40716
+ const dir = runsDir ?? getDefaultRunsDir();
40710
40717
  const tracePath = join8(dir, input.runId, "trace.jsonl");
40711
40718
  const resolvedDir = resolve11(dir);
40712
40719
  const resolvedTrace = resolve11(tracePath);
@@ -41900,7 +41907,7 @@ async function tryIssueTriage(task) {
41900
41907
  try {
41901
41908
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
41902
41909
  if (issueMatch === null) return null;
41903
- const { createIssueTriage } = await import("./issue-triage-UTWKXLKC.js");
41910
+ const { createIssueTriage } = await import("./issue-triage-7NR5NQUY.js");
41904
41911
  const triage = createIssueTriage();
41905
41912
  const owner = issueMatch[1] ?? "";
41906
41913
  const num = issueMatch[2] ?? "";
@@ -41928,7 +41935,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
41928
41935
  ]);
41929
41936
  async function classifyWithLLM(task) {
41930
41937
  try {
41931
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-5YOPK5IT.js");
41938
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-6ZLD2NWD.js");
41932
41939
  const prompt = [
41933
41940
  "Classify this task into exactly one pipeline template.",
41934
41941
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -42712,8 +42719,8 @@ var memoryInitPromise = null;
42712
42719
  async function initPipelineMemory() {
42713
42720
  if (cachedMemory !== null) return cachedMemory;
42714
42721
  try {
42715
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-XZ3NJIR4.js");
42716
- const { getLearningDir } = await import("./learning-persistence-Q3HTOGTU.js");
42722
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-RCNQJDJR.js");
42723
+ const { getLearningDir } = await import("./learning-persistence-TGOBRUUU.js");
42717
42724
  const mem = createSessionMemory2(getLearningDir());
42718
42725
  mem.startSession(`pipeline-${String(Date.now())}`);
42719
42726
  cachedMemory = {
@@ -42768,7 +42775,7 @@ function recordRoutingExperience(category, success, durationMs) {
42768
42775
  callRecord(routingMemoryCache);
42769
42776
  return;
42770
42777
  }
42771
- void import("./routing-memory-6DV6ZPAH.js").then(({ createRoutingMemory }) => {
42778
+ void import("./routing-memory-Y2LSEQVS.js").then(({ createRoutingMemory }) => {
42772
42779
  routingMemoryCache = createRoutingMemory();
42773
42780
  callRecord(routingMemoryCache);
42774
42781
  }).catch((error) => {
@@ -42797,7 +42804,7 @@ ${text}` : "";
42797
42804
  }
42798
42805
  async function getWeatherContext() {
42799
42806
  try {
42800
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-ZB4AKOIA.js");
42807
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-O4XOYGPK.js");
42801
42808
  const report = generateWeatherReport2({ includeAdaptive: true });
42802
42809
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
42803
42810
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -42815,8 +42822,8 @@ ${lines}
42815
42822
  }
42816
42823
  async function getMemoryContext(task) {
42817
42824
  try {
42818
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-XZ3NJIR4.js");
42819
- const { getLearningDir } = await import("./learning-persistence-Q3HTOGTU.js");
42825
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-RCNQJDJR.js");
42826
+ const { getLearningDir } = await import("./learning-persistence-TGOBRUUU.js");
42820
42827
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
42821
42828
  const learnings = memory.searchLearnings(task.slice(0, 200));
42822
42829
  if (learnings.length === 0) return "";
@@ -42921,7 +42928,7 @@ ${contextBlock}`;
42921
42928
  const strategy = config.votingStrategy ?? "higher_order";
42922
42929
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
42923
42930
  try {
42924
- const { executeVoting } = await import("./consensus-vote-CYUPIJXR.js");
42931
+ const { executeVoting } = await import("./consensus-vote-BZ6JSN67.js");
42925
42932
  const votingResult = await executeVoting(
42926
42933
  {
42927
42934
  proposal: plan.slice(0, 4e3),
@@ -43815,7 +43822,7 @@ async function extractSymbolsForTask(task) {
43815
43822
  }
43816
43823
  async function queryResearchRegistry(task) {
43817
43824
  try {
43818
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-77TLYSW4.js");
43825
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-LFPEXRIV.js");
43819
43826
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
43820
43827
  if (topic === void 0) return null;
43821
43828
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -43900,7 +43907,7 @@ function createScanStageWrapper() {
43900
43907
  try {
43901
43908
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
43902
43909
  if (slug !== void 0) {
43903
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-HNLMF7J7.js");
43910
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-74GJWJSV.js");
43904
43911
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
43905
43912
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
43906
43913
  ctx.sharedMemory.write("scan", "decision", { recommendations: recs });
@@ -49467,7 +49474,7 @@ var GitHubTaskTracker = class {
49467
49474
  cachedProvider = null;
49468
49475
  async getProvider() {
49469
49476
  if (this.cachedProvider !== null) return this.cachedProvider;
49470
- const { createScmProvider } = await import("./factory-DN7SJZ5Z.js");
49477
+ const { createScmProvider } = await import("./factory-UHDCLEUE.js");
49471
49478
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
49472
49479
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
49473
49480
  this.cachedProvider = result.value;
@@ -49528,7 +49535,7 @@ var JsonTaskTracker = class {
49528
49535
  comments = /* @__PURE__ */ new Map();
49529
49536
  outputPath;
49530
49537
  constructor(config) {
49531
- const dir = config.outputDir ?? ".nexus-pipeline";
49538
+ const dir = config.outputDir ?? nexusDataPath("pipeline");
49532
49539
  this.outputPath = path13.resolve(dir, "tasks.json");
49533
49540
  fs14.mkdirSync(path13.dirname(this.outputPath), { recursive: true });
49534
49541
  }
@@ -50172,4 +50179,4 @@ export {
50172
50179
  detectBackend,
50173
50180
  createTaskTracker
50174
50181
  };
50175
- //# sourceMappingURL=chunk-3ENBGGYA.js.map
50182
+ //# sourceMappingURL=chunk-GNRANMQ3.js.map