nexus-agents 8.26.3 → 8.26.5

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-IV3ZXRJA.js";
3
+ } from "./chunk-ICHKTX53.js";
4
4
  import {
5
5
  emitClawGuardViolation
6
6
  } from "./chunk-YOT4GWJV.js";
@@ -2255,4 +2255,4 @@ export {
2255
2255
  VOTING_THRESHOLDS,
2256
2256
  ConsensusMetricsSchema
2257
2257
  };
2258
- //# sourceMappingURL=chunk-GQIWZ6CF.js.map
2258
+ //# sourceMappingURL=chunk-I3EMYCTT.js.map
@@ -1,6 +1,6 @@
1
1
  // src/version.ts
2
2
  import semver from "semver";
3
- var VERSION = true ? "8.26.3" : "dev";
3
+ var VERSION = true ? "8.26.5" : "dev";
4
4
  var NODE_ENGINE_RANGE = ">=22.5.0";
5
5
  function isNodeVersionSupported(version) {
6
6
  return semver.satisfies(version, NODE_ENGINE_RANGE);
@@ -11,4 +11,4 @@ export {
11
11
  NODE_ENGINE_RANGE,
12
12
  isNodeVersionSupported
13
13
  };
14
- //# sourceMappingURL=chunk-IV3ZXRJA.js.map
14
+ //# sourceMappingURL=chunk-ICHKTX53.js.map
@@ -8,7 +8,7 @@ import {
8
8
  NODE_ENGINE_RANGE,
9
9
  VERSION,
10
10
  isNodeVersionSupported
11
- } from "./chunk-IV3ZXRJA.js";
11
+ } from "./chunk-ICHKTX53.js";
12
12
  import {
13
13
  capitalize
14
14
  } from "./chunk-7LP6VJRP.js";
@@ -1228,7 +1228,7 @@ async function runDoctorFix(result) {
1228
1228
  writeLine2("\u2500".repeat(40));
1229
1229
  let fixCount = 0;
1230
1230
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
1231
- const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-TN4Z2LJI.js");
1231
+ const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-UFYBNLQG.js");
1232
1232
  const outcome = describeDataDirFix2(initDataDirectories2());
1233
1233
  writeLine2(outcome.line);
1234
1234
  if (outcome.counted) fixCount++;
@@ -1330,4 +1330,4 @@ export {
1330
1330
  startStdioServer,
1331
1331
  closeServer
1332
1332
  };
1333
- //# sourceMappingURL=chunk-QTPN4A5O.js.map
1333
+ //# sourceMappingURL=chunk-IK45MDSL.js.map
@@ -23,10 +23,10 @@ import {
23
23
  toolSuccessStructured,
24
24
  withProgressHeartbeat,
25
25
  wrapToolWithTimeout
26
- } from "./chunk-GQIWZ6CF.js";
26
+ } from "./chunk-I3EMYCTT.js";
27
27
  import {
28
28
  VERSION
29
- } from "./chunk-IV3ZXRJA.js";
29
+ } from "./chunk-ICHKTX53.js";
30
30
  import {
31
31
  assessPanelIndependence,
32
32
  countDistinctModels,
@@ -7682,4 +7682,4 @@ export {
7682
7682
  CONSENSUS_VOTE_TOOL_SCHEMA,
7683
7683
  registerConsensusVoteTool
7684
7684
  };
7685
- //# sourceMappingURL=chunk-UR5RAP4B.js.map
7685
+ //# sourceMappingURL=chunk-OW63UW34.js.map
@@ -7,7 +7,7 @@ import {
7
7
  toolStructuredError,
8
8
  toolSuccessStructured,
9
9
  wrapToolWithTimeout
10
- } from "./chunk-GQIWZ6CF.js";
10
+ } from "./chunk-I3EMYCTT.js";
11
11
  import {
12
12
  JsonlStore,
13
13
  SECURITY_KEYWORDS,
@@ -2159,4 +2159,4 @@ export {
2159
2159
  runImprovementReview,
2160
2160
  registerImprovementReviewTool
2161
2161
  };
2162
- //# sourceMappingURL=chunk-WIRI74TV.js.map
2162
+ //# sourceMappingURL=chunk-TUZSVMLF.js.map
@@ -21,7 +21,7 @@ import {
21
21
  import {
22
22
  DEFAULT_TASK_TTL_MS,
23
23
  clampTaskTtl
24
- } from "./chunk-QTPN4A5O.js";
24
+ } from "./chunk-IK45MDSL.js";
25
25
  import {
26
26
  executeExpert
27
27
  } from "./chunk-CN3VAMQD.js";
@@ -55,7 +55,7 @@ import {
55
55
  toJobSummary,
56
56
  updateStage,
57
57
  writeJobCancelled
58
- } from "./chunk-UR5RAP4B.js";
58
+ } from "./chunk-OW63UW34.js";
59
59
  import {
60
60
  allOf,
61
61
  anyOf
@@ -75,7 +75,7 @@ import {
75
75
  } from "./chunk-OYTRYITB.js";
76
76
  import {
77
77
  withPrerequisite
78
- } from "./chunk-WIRI74TV.js";
78
+ } from "./chunk-TUZSVMLF.js";
79
79
  import {
80
80
  NOOP_NOTIFIER,
81
81
  RateLimiter,
@@ -100,7 +100,7 @@ import {
100
100
  withAuditTrail,
101
101
  withProgressHeartbeat,
102
102
  wrapToolWithTimeout
103
- } from "./chunk-GQIWZ6CF.js";
103
+ } from "./chunk-I3EMYCTT.js";
104
104
  import {
105
105
  createAuditTrail,
106
106
  createGraphAuditBridge,
@@ -45672,7 +45672,7 @@ function buildVotingInput(plan, config) {
45672
45672
  }
45673
45673
  async function executeSingleVote(plan, config, log) {
45674
45674
  try {
45675
- const { executeVoting } = await import("./consensus-vote-ZOXWKYH5.js");
45675
+ const { executeVoting } = await import("./consensus-vote-LQIKEOD3.js");
45676
45676
  const input = buildVotingInput(plan, config);
45677
45677
  const result = await executeVoting(input, log);
45678
45678
  return parseVotingResult(result);
@@ -47464,7 +47464,7 @@ ${contextBlock}`;
47464
47464
  const strategy = config.votingStrategy ?? "higher_order";
47465
47465
  await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
47466
47466
  try {
47467
- const { executeVoting } = await import("./consensus-vote-ZOXWKYH5.js");
47467
+ const { executeVoting } = await import("./consensus-vote-LQIKEOD3.js");
47468
47468
  const votingResult = await executeVoting(
47469
47469
  {
47470
47470
  proposal: buildVoteProposal(plan, research),
@@ -56180,4 +56180,4 @@ export {
56180
56180
  shutdownFeedbackSubscriber,
56181
56181
  createEventBusBridge
56182
56182
  };
56183
- //# sourceMappingURL=chunk-CF33TH6T.js.map
56183
+ //# sourceMappingURL=chunk-ZD2LVCBQ.js.map
package/dist/cli.js CHANGED
@@ -157,7 +157,7 @@ import {
157
157
  validateNexusEnv,
158
158
  validateWorkflow,
159
159
  wrapInMarkdownFence
160
- } from "./chunk-CF33TH6T.js";
160
+ } from "./chunk-ZD2LVCBQ.js";
161
161
  import "./chunk-22EEMQUS.js";
162
162
  import "./chunk-DGWT7DXX.js";
163
163
  import "./chunk-64GMIUM5.js";
@@ -177,7 +177,7 @@ import {
177
177
  doctorCommand,
178
178
  initDataDirectories,
179
179
  runDoctor
180
- } from "./chunk-QTPN4A5O.js";
180
+ } from "./chunk-IK45MDSL.js";
181
181
  import {
182
182
  buildOpenAICompatAdapters,
183
183
  readOpenAICompatEnv
@@ -196,7 +196,7 @@ import {
196
196
  recordAuthenticVote,
197
197
  registerConsensusVoteTool,
198
198
  toRecordDecision
199
- } from "./chunk-UR5RAP4B.js";
199
+ } from "./chunk-OW63UW34.js";
200
200
  import {
201
201
  loadUsageEvents,
202
202
  rollupByModel
@@ -236,18 +236,18 @@ import {
236
236
  registerImprovementReviewTool,
237
237
  runImprovementReview,
238
238
  scanForSecrets
239
- } from "./chunk-WIRI74TV.js";
239
+ } from "./chunk-TUZSVMLF.js";
240
240
  import {
241
241
  createDefaultPolicyFirewall,
242
242
  setGlobalPolicyFirewall,
243
243
  setSecureHandlerAuditLogger,
244
244
  stagePolicyFirewallForRollout
245
- } from "./chunk-GQIWZ6CF.js";
245
+ } from "./chunk-I3EMYCTT.js";
246
246
  import {
247
247
  NODE_ENGINE_RANGE,
248
248
  VERSION,
249
249
  isNodeVersionSupported
250
- } from "./chunk-IV3ZXRJA.js";
250
+ } from "./chunk-ICHKTX53.js";
251
251
  import "./chunk-YOT4GWJV.js";
252
252
  import {
253
253
  createUnifiedRegistry,
@@ -19767,7 +19767,7 @@ function startImprovementReviewScheduler(options) {
19767
19767
  let running = false;
19768
19768
  const runOnce = async () => {
19769
19769
  try {
19770
- const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-5INULU65.js");
19770
+ const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-ISWULPN4.js");
19771
19771
  const input = ImprovementReviewInputSchema2.parse({ fileIssues });
19772
19772
  const result = await runImprovementReview2(input, { logger: logger22 });
19773
19773
  logger22.info("Scheduled improvement_review complete", {
@@ -21954,12 +21954,15 @@ function resolveAuthEnabled(config) {
21954
21954
  }
21955
21955
  return config?.security?.auth?.enabled ?? true;
21956
21956
  }
21957
+ function resolveAuthMethod(config) {
21958
+ return config?.security?.auth?.method ?? "token";
21959
+ }
21957
21960
  function buildAuthConfig(config) {
21958
21961
  const enabled = resolveAuthEnabled(config);
21959
21962
  const configAuth = config?.security?.auth;
21960
21963
  return {
21961
21964
  enabled,
21962
- method: configAuth?.method ?? "token",
21965
+ method: resolveAuthMethod(config),
21963
21966
  tokenHeader: configAuth?.tokenHeader ?? "Authorization",
21964
21967
  tokenFile: configAuth?.tokenFile ?? getDefaultTokenPath()
21965
21968
  };
@@ -22043,11 +22046,7 @@ function createConfiguredPolicyFirewall(logger22, config) {
22043
22046
  return createDefaultPolicyFirewall({ mode: policyVals.mode, logger: logger22 });
22044
22047
  }
22045
22048
  function getAuthValues(config) {
22046
- const envAuth = process.env["NEXUS_AUTH_ENABLED"];
22047
- const configAuth = config?.security?.auth;
22048
- const enabled = envAuth === "true" || (configAuth?.enabled ?? false);
22049
- const method = configAuth?.method ?? process.env["NEXUS_AUTH_METHOD"] ?? "none";
22050
- return { enabled, method };
22049
+ return { enabled: resolveAuthEnabled(config), method: resolveAuthMethod(config) };
22051
22050
  }
22052
22051
  function warnIfAuditDisabled(auditEnabled, logger22) {
22053
22052
  if (auditEnabled) return;
@@ -24206,7 +24205,7 @@ async function measurePromotionEffectiveness(backend, logger22) {
24206
24205
  const result = await backend.retrieve(key);
24207
24206
  if (result.ok) retained++;
24208
24207
  }
24209
- const retentionRate = promotedEntries.length > 0 ? retained / promotedEntries.length : 1;
24208
+ const retentionRate = promotedEntries.length > 0 ? retained / promotedEntries.length : null;
24210
24209
  logger22?.debug("Promotion effectiveness measured", {
24211
24210
  promoted: promotedEntries.length,
24212
24211
  retained,
@@ -24240,8 +24239,9 @@ async function measureDecayAppropriateness(backend, logger22) {
24240
24239
  await backend.prune(cutoffDate);
24241
24240
  const highDecayed = await countDecayed(backend, highKeys);
24242
24241
  const lowDecayed = await countDecayed(backend, lowKeys);
24242
+ const totalSeeded = lowKeys.length + highKeys.length;
24243
24243
  const totalDecayed = highDecayed + lowDecayed;
24244
- const regret = totalDecayed > 0 ? highDecayed / totalDecayed : 0;
24244
+ const regret = totalDecayed > 0 ? highDecayed / totalDecayed : totalSeeded > 0 ? 0 : null;
24245
24245
  logger22?.debug("Decay appropriateness measured", {
24246
24246
  highImportanceDecayed: highDecayed,
24247
24247
  lowImportanceDecayed: lowDecayed,
@@ -24284,6 +24284,35 @@ function formatDecayConsistency(result) {
24284
24284
  const pct2 = (result.decayConsistencyScore * 100).toFixed(1);
24285
24285
  return ` Decay consistency: ${pct2}% (${String(result.decayItemsChecked)} items)`;
24286
24286
  }
24287
+ function formatCoherence(result) {
24288
+ const lines = ["\u25B8 Coherence"];
24289
+ if (result.coherenceScore === null) {
24290
+ lines.push(" Score: unmeasured");
24291
+ } else {
24292
+ lines.push(` Score: ${(result.coherenceScore * 100).toFixed(1)}%`);
24293
+ }
24294
+ if (result.orphanedRefCount > 0) {
24295
+ lines.push(` \u26A0 Orphaned refs: ${String(result.orphanedRefCount)}`);
24296
+ }
24297
+ return lines;
24298
+ }
24299
+ function formatPhase3(result) {
24300
+ const lines = ["\u25B8 Phase 3: Promotion & Appropriateness"];
24301
+ if (result.promotionRetentionRate === null) {
24302
+ lines.push(" Promotion retention: unmeasured");
24303
+ } else {
24304
+ lines.push(` Promotion retention: ${(result.promotionRetentionRate * 100).toFixed(1)}%`);
24305
+ }
24306
+ if (result.decayRegretScore === null) {
24307
+ lines.push(" Decay regret: unmeasured");
24308
+ } else {
24309
+ lines.push(` Decay regret: ${(result.decayRegretScore * 100).toFixed(1)}%`);
24310
+ if (result.decayRegretScore > 0.3) {
24311
+ lines.push(" \u26A0 High regret indicates important memories being decayed");
24312
+ }
24313
+ }
24314
+ return lines;
24315
+ }
24287
24316
  function formatBenchmarkResult(result) {
24288
24317
  const lines = [
24289
24318
  "\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557",
@@ -24311,22 +24340,13 @@ function formatBenchmarkResult(result) {
24311
24340
  );
24312
24341
  lines.push(` Avg bytes/entry: ${result.avgBytesPerEntry.toFixed(0)} bytes`);
24313
24342
  lines.push("");
24314
- lines.push("\u25B8 Coherence");
24315
- lines.push(` Score: ${(result.coherenceScore * 100).toFixed(1)}%`);
24316
- if (result.orphanedRefCount > 0) {
24317
- lines.push(` \u26A0 Orphaned refs: ${String(result.orphanedRefCount)}`);
24318
- }
24343
+ lines.push(...formatCoherence(result));
24319
24344
  lines.push("");
24320
24345
  lines.push("\u25B8 Phase 2: Growth & Decay");
24321
24346
  lines.push(` Growth rate: ${result.growthRateBytesPerOp.toFixed(0)} bytes/op`);
24322
24347
  lines.push(formatDecayConsistency(result));
24323
24348
  lines.push("");
24324
- lines.push("\u25B8 Phase 3: Promotion & Appropriateness");
24325
- lines.push(` Promotion retention: ${(result.promotionRetentionRate * 100).toFixed(1)}%`);
24326
- lines.push(` Decay regret: ${(result.decayRegretScore * 100).toFixed(1)}%`);
24327
- if (result.decayRegretScore > 0.3) {
24328
- lines.push(" \u26A0 High regret indicates important memories being decayed");
24329
- }
24349
+ lines.push(...formatPhase3(result));
24330
24350
  lines.push("");
24331
24351
  lines.push(`Duration: ${String(result.durationMs)}ms | ${result.timestamp.toISOString()}`);
24332
24352
  lines.push("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
@@ -24500,7 +24520,7 @@ async function measureStorage(backend) {
24500
24520
  }
24501
24521
  function buildCoherenceResult(validCount, totalCount) {
24502
24522
  return {
24503
- score: totalCount > 0 ? validCount / totalCount : 1,
24523
+ score: totalCount > 0 ? validCount / totalCount : null,
24504
24524
  totalRefs: totalCount,
24505
24525
  validRefs: validCount,
24506
24526
  orphanedRefs: totalCount - validCount