nexus-agents 2.89.1 → 2.90.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 (104) hide show
  1. package/dist/{child-mcp-config-AT2L3EAS.js → child-mcp-config-WUHKXBWX.js} +2 -2
  2. package/dist/{chunk-JHU27PB2.js → chunk-2SMTCNXP.js} +2 -2
  3. package/dist/{chunk-O5F6QAIG.js → chunk-3FVSYMHK.js} +2 -2
  4. package/dist/{chunk-SRTQUTCB.js → chunk-3HTUYAKS.js} +2 -2
  5. package/dist/{chunk-LENO7TKE.js → chunk-3LKW4IEW.js} +3 -3
  6. package/dist/{chunk-DAWLXCLF.js → chunk-3NNVITJF.js} +5 -5
  7. package/dist/{chunk-W7YR5SGV.js → chunk-4GOT42ZA.js} +3 -3
  8. package/dist/{chunk-7QTWFRHH.js → chunk-4N54BTZU.js} +9 -9
  9. package/dist/{chunk-F5GVZBSH.js → chunk-52ACUN6T.js} +4 -4
  10. package/dist/{chunk-WF2YOYY7.js → chunk-57HMLBYN.js} +2 -2
  11. package/dist/{chunk-PS7WKRJN.js → chunk-6Q33PBXC.js} +2 -2
  12. package/dist/{chunk-SI7ZBCGU.js → chunk-7QXEK3O6.js} +56 -6
  13. package/dist/{chunk-SI7ZBCGU.js.map → chunk-7QXEK3O6.js.map} +1 -1
  14. package/dist/{chunk-LZECDSJY.js → chunk-AQTHLUCP.js} +2 -2
  15. package/dist/{chunk-KR6UR263.js → chunk-CGSVTROC.js} +2 -2
  16. package/dist/{chunk-3MYPFPYL.js → chunk-E6W4Z6GN.js} +3 -3
  17. package/dist/{chunk-QCZEC7H4.js → chunk-EAT4GTMT.js} +2 -2
  18. package/dist/{chunk-XV7V3B35.js → chunk-EFHZHCF2.js} +2 -2
  19. package/dist/{chunk-RAUA6B2M.js → chunk-EUR32RSL.js} +27 -27
  20. package/dist/{chunk-MXHJMSYQ.js → chunk-IBRZK662.js} +7 -7
  21. package/dist/{chunk-AKO5H63G.js → chunk-JYIKPBXW.js} +2 -2
  22. package/dist/{chunk-O5OJNB4C.js → chunk-L3S7HOAS.js} +42 -29
  23. package/dist/chunk-L3S7HOAS.js.map +1 -0
  24. package/dist/{chunk-WWY6V4NK.js → chunk-PRGNJRID.js} +2 -2
  25. package/dist/{chunk-EUMVRLJL.js → chunk-S6FXRXYE.js} +7 -7
  26. package/dist/{chunk-MHPOJAPZ.js → chunk-SFZESA5O.js} +2 -2
  27. package/dist/{chunk-GRTSPRIJ.js → chunk-TWAH7VM2.js} +3 -3
  28. package/dist/{chunk-MVGFF4OY.js → chunk-W5I6L4UT.js} +7 -3
  29. package/dist/{chunk-MVGFF4OY.js.map → chunk-W5I6L4UT.js.map} +1 -1
  30. package/dist/{chunk-MKKQ3CQJ.js → chunk-X5BQF6HM.js} +4 -4
  31. package/dist/{chunk-TSHCHZ7R.js → chunk-Y7E5ZWRQ.js} +2 -2
  32. package/dist/{chunk-UISGEXHO.js → chunk-YEQE7WLP.js} +2 -2
  33. package/dist/{cli-circuit-breaker-4EBP4C4R.js → cli-circuit-breaker-4SWB6DEB.js} +4 -4
  34. package/dist/cli.js +33 -33
  35. package/dist/{composite-router-INIE4UYA.js → composite-router-NLVKSTA2.js} +2 -2
  36. package/dist/{consensus-vote-5NIBODVH.js → consensus-vote-B6W7YQ6K.js} +12 -12
  37. package/dist/{context-retriever-OBGV7Y2U.js → context-retriever-C4CNVKR5.js} +6 -6
  38. package/dist/{doctor-deep-F24MXACR.js → doctor-deep-QSVGAHAO.js} +3 -3
  39. package/dist/{expert-bridge-6KWMO2HT.js → expert-bridge-VIWFPPGZ.js} +4 -4
  40. package/dist/{factory-4RSAV4FC.js → factory-NNSXCD25.js} +5 -5
  41. package/dist/{factory-TA7GM2O2.js → factory-T3SEZUGW.js} +5 -5
  42. package/dist/index.d.ts +19 -4
  43. package/dist/index.js +31 -32
  44. package/dist/index.js.map +1 -1
  45. package/dist/{init-opencode-VQFYKCIT.js → init-opencode-WEKHD7YE.js} +5 -5
  46. package/dist/{issue-triage-U3PSWSCY.js → issue-triage-J2MUXK6R.js} +4 -4
  47. package/dist/{registry-command-2D4RMNUX.js → registry-command-VNFULRTL.js} +2 -2
  48. package/dist/{repo-security-plan-WOUJAXSZ.js → repo-security-plan-5MFY7GGQ.js} +3 -3
  49. package/dist/{research-helpers-synthesize-IDK2V5JN.js → research-helpers-synthesize-CNZ4C3FN.js} +3 -3
  50. package/dist/{routing-memory-XBYTU4KZ.js → routing-memory-PYO46COZ.js} +2 -2
  51. package/dist/{session-memory-FSLRKYIC.js → session-memory-HGCDSZ5R.js} +3 -3
  52. package/dist/{setup-command-IRBQGUWR.js → setup-command-Z7TRZUDI.js} +11 -11
  53. package/dist/{setup-config-7MK6PRX6.js → setup-config-QPS4K5QU.js} +3 -3
  54. package/dist/{setup-custom-api-W6FWQVAF.js → setup-custom-api-SP2ZAVGC.js} +4 -4
  55. package/dist/{tool-memory-VJZ233FE.js → tool-memory-SDPIAV2S.js} +5 -5
  56. package/dist/{weather-report-YLD3VXUC.js → weather-report-RWAMQHBL.js} +2 -2
  57. package/package.json +1 -1
  58. package/dist/chunk-O5OJNB4C.js.map +0 -1
  59. /package/dist/{child-mcp-config-AT2L3EAS.js.map → child-mcp-config-WUHKXBWX.js.map} +0 -0
  60. /package/dist/{chunk-JHU27PB2.js.map → chunk-2SMTCNXP.js.map} +0 -0
  61. /package/dist/{chunk-O5F6QAIG.js.map → chunk-3FVSYMHK.js.map} +0 -0
  62. /package/dist/{chunk-SRTQUTCB.js.map → chunk-3HTUYAKS.js.map} +0 -0
  63. /package/dist/{chunk-LENO7TKE.js.map → chunk-3LKW4IEW.js.map} +0 -0
  64. /package/dist/{chunk-DAWLXCLF.js.map → chunk-3NNVITJF.js.map} +0 -0
  65. /package/dist/{chunk-W7YR5SGV.js.map → chunk-4GOT42ZA.js.map} +0 -0
  66. /package/dist/{chunk-7QTWFRHH.js.map → chunk-4N54BTZU.js.map} +0 -0
  67. /package/dist/{chunk-F5GVZBSH.js.map → chunk-52ACUN6T.js.map} +0 -0
  68. /package/dist/{chunk-WF2YOYY7.js.map → chunk-57HMLBYN.js.map} +0 -0
  69. /package/dist/{chunk-PS7WKRJN.js.map → chunk-6Q33PBXC.js.map} +0 -0
  70. /package/dist/{chunk-LZECDSJY.js.map → chunk-AQTHLUCP.js.map} +0 -0
  71. /package/dist/{chunk-KR6UR263.js.map → chunk-CGSVTROC.js.map} +0 -0
  72. /package/dist/{chunk-3MYPFPYL.js.map → chunk-E6W4Z6GN.js.map} +0 -0
  73. /package/dist/{chunk-QCZEC7H4.js.map → chunk-EAT4GTMT.js.map} +0 -0
  74. /package/dist/{chunk-XV7V3B35.js.map → chunk-EFHZHCF2.js.map} +0 -0
  75. /package/dist/{chunk-RAUA6B2M.js.map → chunk-EUR32RSL.js.map} +0 -0
  76. /package/dist/{chunk-MXHJMSYQ.js.map → chunk-IBRZK662.js.map} +0 -0
  77. /package/dist/{chunk-AKO5H63G.js.map → chunk-JYIKPBXW.js.map} +0 -0
  78. /package/dist/{chunk-WWY6V4NK.js.map → chunk-PRGNJRID.js.map} +0 -0
  79. /package/dist/{chunk-EUMVRLJL.js.map → chunk-S6FXRXYE.js.map} +0 -0
  80. /package/dist/{chunk-MHPOJAPZ.js.map → chunk-SFZESA5O.js.map} +0 -0
  81. /package/dist/{chunk-GRTSPRIJ.js.map → chunk-TWAH7VM2.js.map} +0 -0
  82. /package/dist/{chunk-MKKQ3CQJ.js.map → chunk-X5BQF6HM.js.map} +0 -0
  83. /package/dist/{chunk-TSHCHZ7R.js.map → chunk-Y7E5ZWRQ.js.map} +0 -0
  84. /package/dist/{chunk-UISGEXHO.js.map → chunk-YEQE7WLP.js.map} +0 -0
  85. /package/dist/{cli-circuit-breaker-4EBP4C4R.js.map → cli-circuit-breaker-4SWB6DEB.js.map} +0 -0
  86. /package/dist/{composite-router-INIE4UYA.js.map → composite-router-NLVKSTA2.js.map} +0 -0
  87. /package/dist/{consensus-vote-5NIBODVH.js.map → consensus-vote-B6W7YQ6K.js.map} +0 -0
  88. /package/dist/{context-retriever-OBGV7Y2U.js.map → context-retriever-C4CNVKR5.js.map} +0 -0
  89. /package/dist/{doctor-deep-F24MXACR.js.map → doctor-deep-QSVGAHAO.js.map} +0 -0
  90. /package/dist/{expert-bridge-6KWMO2HT.js.map → expert-bridge-VIWFPPGZ.js.map} +0 -0
  91. /package/dist/{factory-4RSAV4FC.js.map → factory-NNSXCD25.js.map} +0 -0
  92. /package/dist/{factory-TA7GM2O2.js.map → factory-T3SEZUGW.js.map} +0 -0
  93. /package/dist/{init-opencode-VQFYKCIT.js.map → init-opencode-WEKHD7YE.js.map} +0 -0
  94. /package/dist/{issue-triage-U3PSWSCY.js.map → issue-triage-J2MUXK6R.js.map} +0 -0
  95. /package/dist/{registry-command-2D4RMNUX.js.map → registry-command-VNFULRTL.js.map} +0 -0
  96. /package/dist/{repo-security-plan-WOUJAXSZ.js.map → repo-security-plan-5MFY7GGQ.js.map} +0 -0
  97. /package/dist/{research-helpers-synthesize-IDK2V5JN.js.map → research-helpers-synthesize-CNZ4C3FN.js.map} +0 -0
  98. /package/dist/{routing-memory-XBYTU4KZ.js.map → routing-memory-PYO46COZ.js.map} +0 -0
  99. /package/dist/{session-memory-FSLRKYIC.js.map → session-memory-HGCDSZ5R.js.map} +0 -0
  100. /package/dist/{setup-command-IRBQGUWR.js.map → setup-command-Z7TRZUDI.js.map} +0 -0
  101. /package/dist/{setup-config-7MK6PRX6.js.map → setup-config-QPS4K5QU.js.map} +0 -0
  102. /package/dist/{setup-custom-api-W6FWQVAF.js.map → setup-custom-api-SP2ZAVGC.js.map} +0 -0
  103. /package/dist/{tool-memory-VJZ233FE.js.map → tool-memory-SDPIAV2S.js.map} +0 -0
  104. /package/dist/{weather-report-YLD3VXUC.js.map → weather-report-RWAMQHBL.js.map} +0 -0
@@ -2,7 +2,7 @@ import {
2
2
  TASK_CATEGORIES,
3
3
  getAdaptiveBonus,
4
4
  getOutcomeStore
5
- } from "./chunk-MVGFF4OY.js";
5
+ } from "./chunk-W5I6L4UT.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-LZECDSJY.js.map
109
+ //# sourceMappingURL=chunk-AQTHLUCP.js.map
@@ -7,7 +7,7 @@ import {
7
7
  err,
8
8
  getErrorMessage,
9
9
  ok
10
- } from "./chunk-MVGFF4OY.js";
10
+ } from "./chunk-W5I6L4UT.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-KR6UR263.js.map
1018
+ //# sourceMappingURL=chunk-CGSVTROC.js.map
@@ -3,14 +3,14 @@ import {
3
3
  createStream,
4
4
  requireApiKey,
5
5
  validateApiKeyPresence
6
- } from "./chunk-O5F6QAIG.js";
6
+ } from "./chunk-3FVSYMHK.js";
7
7
  import {
8
8
  ModelCapability,
9
9
  err,
10
10
  getCliModelName,
11
11
  getTokenEstimator,
12
12
  ok
13
- } from "./chunk-MVGFF4OY.js";
13
+ } from "./chunk-W5I6L4UT.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-3MYPFPYL.js.map
556
+ //# sourceMappingURL=chunk-E6W4Z6GN.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createLogger,
3
3
  err,
4
4
  ok
5
- } from "./chunk-MVGFF4OY.js";
5
+ } from "./chunk-W5I6L4UT.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-QCZEC7H4.js.map
90
+ //# sourceMappingURL=chunk-EAT4GTMT.js.map
@@ -3,7 +3,7 @@ import {
3
3
  err,
4
4
  getErrorMessage,
5
5
  ok
6
- } from "./chunk-MVGFF4OY.js";
6
+ } from "./chunk-W5I6L4UT.js";
7
7
 
8
8
  // src/scm/types.ts
9
9
  var ScmError = class extends Error {
@@ -258,4 +258,4 @@ export {
258
258
  ScmError,
259
259
  GitHubProvider
260
260
  };
261
- //# sourceMappingURL=chunk-XV7V3B35.js.map
261
+ //# sourceMappingURL=chunk-EFHZHCF2.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getTokenEnvVars,
3
3
  resolveToken
4
- } from "./chunk-QCZEC7H4.js";
4
+ } from "./chunk-EAT4GTMT.js";
5
5
  import {
6
6
  executeExpert
7
- } from "./chunk-EUMVRLJL.js";
7
+ } from "./chunk-S6FXRXYE.js";
8
8
  import {
9
9
  EventTopics,
10
10
  JobStatusSchema,
@@ -42,7 +42,7 @@ import {
42
42
  writeJobComplete,
43
43
  writeJobFailed,
44
44
  writeJobPending
45
- } from "./chunk-7QTWFRHH.js";
45
+ } from "./chunk-4N54BTZU.js";
46
46
  import {
47
47
  REGISTRY_PATH,
48
48
  getProjectRoot,
@@ -51,14 +51,14 @@ import {
51
51
  normalizeTopicToCanonical,
52
52
  savePapersRegistry,
53
53
  synthesizeResearch
54
- } from "./chunk-KR6UR263.js";
54
+ } from "./chunk-CGSVTROC.js";
55
55
  import {
56
56
  IssueTriage,
57
57
  sanitizeInput
58
- } from "./chunk-O5OJNB4C.js";
58
+ } from "./chunk-L3S7HOAS.js";
59
59
  import {
60
60
  generateSecurityPlan
61
- } from "./chunk-WF2YOYY7.js";
61
+ } from "./chunk-57HMLBYN.js";
62
62
  import {
63
63
  analyzeGitHubRepo
64
64
  } from "./chunk-HFOQKCD2.js";
@@ -71,25 +71,25 @@ import {
71
71
  getContextForTask,
72
72
  inferTaskCategory,
73
73
  summarizeContextForPrompt
74
- } from "./chunk-W7YR5SGV.js";
74
+ } from "./chunk-4GOT42ZA.js";
75
75
  import {
76
76
  DEFAULT_RELEVANCE_CONFIG,
77
77
  MemoryImportance,
78
78
  calculateTextJaccardSimilarity,
79
79
  getToolMemory
80
- } from "./chunk-SI7ZBCGU.js";
80
+ } from "./chunk-7QXEK3O6.js";
81
81
  import {
82
82
  DEFAULT_TASK_TTL_MS,
83
83
  DEFAULT_TOOL_RATE_LIMITS,
84
84
  clampTaskTtl
85
- } from "./chunk-MXHJMSYQ.js";
85
+ } from "./chunk-IBRZK662.js";
86
86
  import {
87
87
  getAvailabilityCache,
88
88
  resolveFallback
89
- } from "./chunk-MHPOJAPZ.js";
89
+ } from "./chunk-SFZESA5O.js";
90
90
  import {
91
91
  DEFAULTS
92
- } from "./chunk-SRTQUTCB.js";
92
+ } from "./chunk-3HTUYAKS.js";
93
93
  import {
94
94
  resolveInsideRoot
95
95
  } from "./chunk-NUBSJGQZ.js";
@@ -105,11 +105,11 @@ import {
105
105
  getAvailableClis,
106
106
  sleep,
107
107
  withTimeout
108
- } from "./chunk-MKKQ3CQJ.js";
108
+ } from "./chunk-X5BQF6HM.js";
109
109
  import {
110
110
  generateHyphenId,
111
111
  generateUUID
112
- } from "./chunk-WWY6V4NK.js";
112
+ } from "./chunk-PRGNJRID.js";
113
113
  import {
114
114
  BUILT_IN_EXPERTS,
115
115
  BuiltInExpertTypeSchema,
@@ -121,7 +121,7 @@ import {
121
121
  } from "./chunk-PQHVC4BD.js";
122
122
  import {
123
123
  createSessionMemory
124
- } from "./chunk-UISGEXHO.js";
124
+ } from "./chunk-YEQE7WLP.js";
125
125
  import {
126
126
  AGENT_ROUTER_TIMEOUTS,
127
127
  API_TIMEOUTS,
@@ -192,7 +192,7 @@ import {
192
192
  resolveModelIdentitySync,
193
193
  toExpertTaskAnalysisResult,
194
194
  withStep
195
- } from "./chunk-MVGFF4OY.js";
195
+ } from "./chunk-W5I6L4UT.js";
196
196
  import {
197
197
  getNexusDataDir,
198
198
  nexusDataPath,
@@ -26886,7 +26886,7 @@ async function populateUnifiedContextOnState(state) {
26886
26886
  try {
26887
26887
  const taskCandidate = state["task"];
26888
26888
  if (typeof taskCandidate !== "string" || taskCandidate === "") return;
26889
- const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-OBGV7Y2U.js");
26889
+ const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-C4CNVKR5.js");
26890
26890
  const ctx = await getContextForTask2({
26891
26891
  task: taskCandidate,
26892
26892
  category: inferTaskCategory2(taskCandidate),
@@ -42521,7 +42521,7 @@ async function tryIssueTriage(task) {
42521
42521
  try {
42522
42522
  const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
42523
42523
  if (issueMatch === null) return null;
42524
- const { createIssueTriage } = await import("./issue-triage-U3PSWSCY.js");
42524
+ const { createIssueTriage } = await import("./issue-triage-J2MUXK6R.js");
42525
42525
  const triage = createIssueTriage();
42526
42526
  const owner = issueMatch[1] ?? "";
42527
42527
  const num = issueMatch[2] ?? "";
@@ -42549,7 +42549,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
42549
42549
  ]);
42550
42550
  async function classifyWithLLM(task) {
42551
42551
  try {
42552
- const { executeExpert: executeExpert2 } = await import("./expert-bridge-6KWMO2HT.js");
42552
+ const { executeExpert: executeExpert2 } = await import("./expert-bridge-VIWFPPGZ.js");
42553
42553
  const prompt = [
42554
42554
  "Classify this task into exactly one pipeline template.",
42555
42555
  "Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
@@ -43331,7 +43331,7 @@ var memoryInitPromise = null;
43331
43331
  async function initPipelineMemory() {
43332
43332
  if (cachedMemory !== null) return cachedMemory;
43333
43333
  try {
43334
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-FSLRKYIC.js");
43334
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-HGCDSZ5R.js");
43335
43335
  const { getLearningDir } = await import("./learning-persistence-UKPO7RYK.js");
43336
43336
  const mem = createSessionMemory2(getLearningDir());
43337
43337
  mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
@@ -43388,7 +43388,7 @@ function recordRoutingExperience(category, success, durationMs) {
43388
43388
  callRecord(routingMemoryCache);
43389
43389
  return;
43390
43390
  }
43391
- routingMemoryInitPromise ??= import("./routing-memory-XBYTU4KZ.js").then(({ createRoutingMemory }) => {
43391
+ routingMemoryInitPromise ??= import("./routing-memory-PYO46COZ.js").then(({ createRoutingMemory }) => {
43392
43392
  routingMemoryCache ??= createRoutingMemory();
43393
43393
  return routingMemoryCache;
43394
43394
  }).catch((error) => {
@@ -43422,7 +43422,7 @@ ${text}` : "";
43422
43422
  }
43423
43423
  async function getWeatherContext() {
43424
43424
  try {
43425
- const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-YLD3VXUC.js");
43425
+ const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-RWAMQHBL.js");
43426
43426
  const report = generateWeatherReport2({ includeAdaptive: true });
43427
43427
  const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
43428
43428
  if (!Array.isArray(mappings) || mappings.length === 0) return "";
@@ -43440,7 +43440,7 @@ ${lines}
43440
43440
  }
43441
43441
  async function getMemoryContext(task) {
43442
43442
  try {
43443
- const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-FSLRKYIC.js");
43443
+ const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-HGCDSZ5R.js");
43444
43444
  const { getLearningDir } = await import("./learning-persistence-UKPO7RYK.js");
43445
43445
  const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
43446
43446
  const learnings = memory.searchLearnings(task.slice(0, 200));
@@ -43546,7 +43546,7 @@ ${contextBlock}`;
43546
43546
  const strategy = config.votingStrategy ?? "higher_order";
43547
43547
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
43548
43548
  try {
43549
- const { executeVoting } = await import("./consensus-vote-5NIBODVH.js");
43549
+ const { executeVoting } = await import("./consensus-vote-B6W7YQ6K.js");
43550
43550
  const votingResult = await executeVoting(
43551
43551
  {
43552
43552
  proposal: plan.slice(0, 4e3),
@@ -44473,7 +44473,7 @@ async function searchCodebaseForTask(task) {
44473
44473
  }
44474
44474
  async function queryResearchRegistry(task) {
44475
44475
  try {
44476
- const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-IDK2V5JN.js");
44476
+ const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-CNZ4C3FN.js");
44477
44477
  const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
44478
44478
  if (topic === void 0) return null;
44479
44479
  const result = await synthesizeResearch2(topic.slice(0, 50));
@@ -44544,7 +44544,7 @@ function createScanStageWrapper() {
44544
44544
  try {
44545
44545
  const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
44546
44546
  if (slug !== void 0) {
44547
- const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-WOUJAXSZ.js");
44547
+ const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-5MFY7GGQ.js");
44548
44548
  const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
44549
44549
  const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
44550
44550
  return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
@@ -51160,7 +51160,7 @@ var GitHubTaskTracker = class {
51160
51160
  cachedProvider = null;
51161
51161
  async getProvider() {
51162
51162
  if (this.cachedProvider !== null) return this.cachedProvider;
51163
- const { createScmProvider } = await import("./factory-4RSAV4FC.js");
51163
+ const { createScmProvider } = await import("./factory-NNSXCD25.js");
51164
51164
  const result = await createScmProvider({ repo: this.config.repo ?? "" });
51165
51165
  if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
51166
51166
  this.cachedProvider = result.value;
@@ -51874,4 +51874,4 @@ export {
51874
51874
  detectBackend,
51875
51875
  createTaskTracker
51876
51876
  };
51877
- //# sourceMappingURL=chunk-RAUA6B2M.js.map
51877
+ //# sourceMappingURL=chunk-EUR32RSL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULTS
3
- } from "./chunk-SRTQUTCB.js";
3
+ } from "./chunk-3HTUYAKS.js";
4
4
  import {
5
5
  resolveInsideRoot
6
6
  } from "./chunk-NUBSJGQZ.js";
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  createAllAdapters,
12
12
  probeCli
13
- } from "./chunk-MKKQ3CQJ.js";
13
+ } from "./chunk-X5BQF6HM.js";
14
14
  import {
15
15
  CliNameSchema,
16
16
  DEFAULT_CAPABILITIES,
@@ -26,7 +26,7 @@ import {
26
26
  ok,
27
27
  symbols,
28
28
  writeLine
29
- } from "./chunk-MVGFF4OY.js";
29
+ } from "./chunk-W5I6L4UT.js";
30
30
  import {
31
31
  detectSandbox,
32
32
  getLearningDir,
@@ -40,7 +40,7 @@ import {
40
40
  } from "./chunk-CH7QIDHQ.js";
41
41
 
42
42
  // src/version.ts
43
- var VERSION = true ? "2.89.1" : "dev";
43
+ var VERSION = true ? "2.90.0" : "dev";
44
44
 
45
45
  // src/config/schemas-core.ts
46
46
  import { z } from "zod";
@@ -2096,7 +2096,7 @@ async function runDoctorFix(result) {
2096
2096
  writeLine2("\u2500".repeat(40));
2097
2097
  let fixCount = 0;
2098
2098
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2099
- const { runSetup } = await import("./setup-command-IRBQGUWR.js");
2099
+ const { runSetup } = await import("./setup-command-Z7TRZUDI.js");
2100
2100
  const setupResult = runSetup({
2101
2101
  skipMcp: true,
2102
2102
  skipRules: true,
@@ -2110,7 +2110,7 @@ async function runDoctorFix(result) {
2110
2110
  }
2111
2111
  }
2112
2112
  if (!result.configFile.found) {
2113
- const { runConfigInitSync } = await import("./setup-config-7MK6PRX6.js");
2113
+ const { runConfigInitSync } = await import("./setup-config-QPS4K5QU.js");
2114
2114
  const configResult = runConfigInitSync(process.cwd(), false, false);
2115
2115
  if (configResult.success && configResult.created) {
2116
2116
  writeLine2(`\u2713 Generated config: ${configResult.path}`);
@@ -2208,4 +2208,4 @@ export {
2208
2208
  startStdioServer,
2209
2209
  closeServer
2210
2210
  };
2211
- //# sourceMappingURL=chunk-MXHJMSYQ.js.map
2211
+ //# sourceMappingURL=chunk-IBRZK662.js.map
@@ -5,7 +5,7 @@ import {
5
5
  getErrorMessage,
6
6
  getTimeProvider,
7
7
  ok
8
- } from "./chunk-MVGFF4OY.js";
8
+ } from "./chunk-W5I6L4UT.js";
9
9
 
10
10
  // src/cli-adapters/circuit-breaker-types.ts
11
11
  var CircuitErrorCode = {
@@ -354,4 +354,4 @@ export {
354
354
  CircuitBreakerRegistry,
355
355
  mapCliErrorToCategory
356
356
  };
357
- //# sourceMappingURL=chunk-AKO5H63G.js.map
357
+ //# sourceMappingURL=chunk-JYIKPBXW.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  GitHubProvider,
3
3
  ScmError
4
- } from "./chunk-XV7V3B35.js";
4
+ } from "./chunk-EFHZHCF2.js";
5
5
  import {
6
6
  CACHE_TIMEOUTS,
7
7
  createLogger,
8
8
  err,
9
9
  getTimeProvider,
10
10
  ok
11
- } from "./chunk-MVGFF4OY.js";
11
+ } from "./chunk-W5I6L4UT.js";
12
12
 
13
13
  // src/security/trust-types.ts
14
14
  import { z } from "zod";
@@ -867,33 +867,35 @@ var ReputationCache = class {
867
867
  return this.cache.size;
868
868
  }
869
869
  };
870
+ var HOSTILE_INJECTION_FLAGS = [
871
+ "system_prompt_manipulation",
872
+ "fake_conversation",
873
+ "authority_claim",
874
+ "hidden_content"
875
+ ];
876
+ function hasHostileInjection(flags) {
877
+ return flags.some((f) => HOSTILE_INJECTION_FLAGS.includes(f));
878
+ }
879
+ function isRapidCommenting(m) {
880
+ return m.recentCommentCount !== void 0 && m.recentCommentWindowMinutes !== void 0 && m.recentCommentCount > SUSPICIOUS_THRESHOLDS.rapidCommentThreshold && m.recentCommentWindowMinutes <= SUSPICIOUS_THRESHOLDS.rapidCommentWindowMinutes;
881
+ }
882
+ function isMismatchedAuthority(m) {
883
+ if (!m.injectionFlags.includes("authority_claim")) return false;
884
+ const association = m.authorAssociation.toUpperCase();
885
+ return association !== "OWNER" && association !== "MEMBER";
886
+ }
870
887
  function detectSuspiciousSignals(metadata) {
871
888
  const signals = [];
872
- if (metadata.accountAgeDays < SUSPICIOUS_THRESHOLDS.newAccountDays) {
889
+ const { accountAgeDays, priorContributions } = metadata;
890
+ if (accountAgeDays !== void 0 && accountAgeDays < SUSPICIOUS_THRESHOLDS.newAccountDays) {
873
891
  signals.push("new_account");
874
892
  }
875
- if (metadata.priorContributions < SUSPICIOUS_THRESHOLDS.minContributions) {
893
+ if (priorContributions !== void 0 && priorContributions < SUSPICIOUS_THRESHOLDS.minContributions) {
876
894
  signals.push("no_prior_contributions");
877
895
  }
878
- const hostileInjectionFlags = [
879
- "system_prompt_manipulation",
880
- "fake_conversation",
881
- "authority_claim",
882
- "hidden_content"
883
- ];
884
- const hasHostileFlags = metadata.injectionFlags.some((f) => hostileInjectionFlags.includes(f));
885
- if (hasHostileFlags) {
886
- signals.push("injection_patterns_detected");
887
- }
888
- if (metadata.recentCommentCount > SUSPICIOUS_THRESHOLDS.rapidCommentThreshold && metadata.recentCommentWindowMinutes <= SUSPICIOUS_THRESHOLDS.rapidCommentWindowMinutes) {
889
- signals.push("rapid_comments");
890
- }
891
- const hasAuthorityClaim = metadata.injectionFlags.includes("authority_claim");
892
- const association = metadata.authorAssociation.toUpperCase();
893
- const isAuthoritative = association === "OWNER" || association === "MEMBER";
894
- if (hasAuthorityClaim && !isAuthoritative) {
895
- signals.push("mismatched_authority_claim");
896
- }
896
+ if (hasHostileInjection(metadata.injectionFlags)) signals.push("injection_patterns_detected");
897
+ if (isRapidCommenting(metadata)) signals.push("rapid_comments");
898
+ if (isMismatchedAuthority(metadata)) signals.push("mismatched_authority_claim");
897
899
  return signals;
898
900
  }
899
901
  function calculateReputationScore(metadata, signals, userRole) {
@@ -907,8 +909,12 @@ function calculateReputationScore(metadata, signals, userRole) {
907
909
  unknown: 0
908
910
  };
909
911
  score += roleBonus[userRole];
910
- score += Math.min(metadata.accountAgeDays / DAYS_PER_YEAR_APPROX, 10);
911
- score += Math.min(metadata.priorContributions, 10);
912
+ if (metadata.accountAgeDays !== void 0) {
913
+ score += Math.min(metadata.accountAgeDays / DAYS_PER_YEAR_APPROX, 10);
914
+ }
915
+ if (metadata.priorContributions !== void 0) {
916
+ score += Math.min(metadata.priorContributions, 10);
917
+ }
912
918
  const signalPenalty = {
913
919
  new_account: -15,
914
920
  no_prior_contributions: -10,
@@ -969,6 +975,12 @@ function assessReputation(metadata, cache) {
969
975
  cache?.set(metadata.username, assessment);
970
976
  return assessment;
971
977
  }
978
+ function reconcileTrustTier(classifierTier, reputation) {
979
+ if (classifierTier === "1") return "1";
980
+ const repTier = reputation?.effectiveTrustTier;
981
+ if (repTier === void 0) return classifierTier;
982
+ return TRUST_TIER_NUMERIC[repTier] > TRUST_TIER_NUMERIC[classifierTier] ? repTier : classifierTier;
983
+ }
972
984
  function buildReason(role, signals, tier) {
973
985
  if (signals.length === 0) {
974
986
  return `Role ${role} \u2192 Tier ${tier} (no suspicious signals)`;
@@ -1390,7 +1402,7 @@ var IssueTriage = class {
1390
1402
  const trustResult = this.classifyAuthor(issueResult);
1391
1403
  const reputation = this.assessAuthorReputation(issueResult, comments);
1392
1404
  const actions = this.generateActions(safeTitle, safeBody, issueResult, trustResult);
1393
- const validatedActions = this.validateActions(actions, trustResult);
1405
+ const validatedActions = this.validateActions(actions, trustResult, reputation);
1394
1406
  const result = this.buildResult({
1395
1407
  issue: issueResult,
1396
1408
  actions: validatedActions,
@@ -1489,9 +1501,9 @@ var IssueTriage = class {
1489
1501
  * This completes the #828 wiring by integrating corroboration-validator.
1490
1502
  * (Source: Issue #828 — policy-gate + corroboration-validator wiring)
1491
1503
  */
1492
- validateActions(actions, trustResult) {
1504
+ validateActions(actions, trustResult, reputation) {
1493
1505
  const context = {
1494
- inputTrustTier: trustResult.trustTier,
1506
+ inputTrustTier: reconcileTrustTier(trustResult.trustTier, reputation),
1495
1507
  hasWriteAccess: !this.config.dryRun,
1496
1508
  hasSecretAccess: false
1497
1509
  };
@@ -1648,6 +1660,7 @@ export {
1648
1660
  SuspiciousSignalSchema,
1649
1661
  ReputationCache,
1650
1662
  assessReputation,
1663
+ reconcileTrustTier,
1651
1664
  parsePRUrl,
1652
1665
  GitHubReviewer,
1653
1666
  GitHubUserInfo,
@@ -1656,4 +1669,4 @@ export {
1656
1669
  IssueTriage,
1657
1670
  createIssueTriage
1658
1671
  };
1659
- //# sourceMappingURL=chunk-O5OJNB4C.js.map
1672
+ //# sourceMappingURL=chunk-L3S7HOAS.js.map