nexus-agents 2.146.0 → 2.148.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.
@@ -18,7 +18,7 @@ import {
18
18
  DEFAULT_TASK_TTL_MS,
19
19
  DEFAULT_TOOL_RATE_LIMITS,
20
20
  clampTaskTtl
21
- } from "./chunk-XZ4QHFCD.js";
21
+ } from "./chunk-RGX4XIZR.js";
22
22
  import {
23
23
  executeExpert
24
24
  } from "./chunk-YJROHCFY.js";
@@ -51228,4 +51228,4 @@ export {
51228
51228
  shutdownFeedbackSubscriber,
51229
51229
  createEventBusBridge
51230
51230
  };
51231
- //# sourceMappingURL=chunk-256RUC4U.js.map
51231
+ //# sourceMappingURL=chunk-DLVACEIQ.js.map
@@ -8,7 +8,7 @@ import {
8
8
  checkSqlite,
9
9
  defaultConfig,
10
10
  initDataDirectories
11
- } from "./chunk-XZ4QHFCD.js";
11
+ } from "./chunk-RGX4XIZR.js";
12
12
  import {
13
13
  BUILT_IN_EXPERTS
14
14
  } from "./chunk-ZM4O442V.js";
@@ -2000,4 +2000,4 @@ export {
2000
2000
  setupCommand,
2001
2001
  setupCommandAsync
2002
2002
  };
2003
- //# sourceMappingURL=chunk-4XQE5A7P.js.map
2003
+ //# sourceMappingURL=chunk-PS7YJ22G.js.map
@@ -42,7 +42,7 @@ import {
42
42
  } from "./chunk-DHVMSIT5.js";
43
43
 
44
44
  // src/version.ts
45
- var VERSION = true ? "2.146.0" : "dev";
45
+ var VERSION = true ? "2.148.0" : "dev";
46
46
 
47
47
  // src/config/schemas-core.ts
48
48
  import { z } from "zod";
@@ -2132,7 +2132,7 @@ async function runDoctorFix(result) {
2132
2132
  writeLine2("\u2500".repeat(40));
2133
2133
  let fixCount = 0;
2134
2134
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2135
- const { runSetup } = await import("./setup-command-BALYXSMI.js");
2135
+ const { runSetup } = await import("./setup-command-KPVXXEVR.js");
2136
2136
  const setupResult = runSetup({
2137
2137
  skipMcp: true,
2138
2138
  skipRules: true,
@@ -2245,4 +2245,4 @@ export {
2245
2245
  startStdioServer,
2246
2246
  closeServer
2247
2247
  };
2248
- //# sourceMappingURL=chunk-XZ4QHFCD.js.map
2248
+ //# sourceMappingURL=chunk-RGX4XIZR.js.map
package/dist/cli.js CHANGED
@@ -22,7 +22,7 @@ import "./chunk-UUEK5FP6.js";
22
22
  import {
23
23
  setupCommandAsync,
24
24
  verifyCommand
25
- } from "./chunk-4XQE5A7P.js";
25
+ } from "./chunk-PS7YJ22G.js";
26
26
  import "./chunk-LEUP55YB.js";
27
27
  import {
28
28
  AuthHandler,
@@ -142,7 +142,7 @@ import {
142
142
  validateCommand,
143
143
  validateWorkflow,
144
144
  wrapInMarkdownFence
145
- } from "./chunk-256RUC4U.js";
145
+ } from "./chunk-DLVACEIQ.js";
146
146
  import "./chunk-RPTEVESB.js";
147
147
  import "./chunk-JQZ5R3EM.js";
148
148
  import "./chunk-HFOQKCD2.js";
@@ -170,7 +170,7 @@ import {
170
170
  loadConfig,
171
171
  runDoctor,
172
172
  validateNexusEnv
173
- } from "./chunk-XZ4QHFCD.js";
173
+ } from "./chunk-RGX4XIZR.js";
174
174
  import "./chunk-SOCIRTAC.js";
175
175
  import {
176
176
  shutdownExpertBridge
@@ -3099,7 +3099,7 @@ var COMMAND_CATALOG = [
3099
3099
  },
3100
3100
  {
3101
3101
  command: "remediation-review",
3102
- description: "Soundness-review audit-mode selections (#3765): list pending \xB7 mark --evaluator --sound|--unsound \xB7 sign-off --owner.",
3102
+ description: "Soundness-review audit-mode selections (#3765): list pending \xB7 mark --evaluator --sound|--unsound \xB7 sign-off --owner \xB7 readiness (enforce-readiness verdict + harmful-rate).",
3103
3103
  audience: "maintainer"
3104
3104
  },
3105
3105
  // ── Maintainer (hidden by default) ───────────────────────────────────────
@@ -24910,6 +24910,39 @@ function runList(format) {
24910
24910
  process.stdout.write(`${lines.join("\n")}
24911
24911
  `);
24912
24912
  }
24913
+ function harmfulRate(ev) {
24914
+ return ev.judgedSelections === 0 ? 0 : (ev.judgedSelections - ev.judgedSound) / ev.judgedSelections;
24915
+ }
24916
+ function formatReadiness(verdict, evidence, harmful) {
24917
+ const maxPct = Math.round((1 - DEFAULT_ENFORCE_READINESS_CONFIG.minSoundnessRate) * 100);
24918
+ const lines = [
24919
+ `Enforcement readiness: ${verdict.ready ? "READY" : "NOT READY"}`,
24920
+ `harmful-rate: ${String(Math.round(harmful * 100))}% of ${String(evidence.judgedSelections)} judged sound-reviews (threshold \u2264 ${String(maxPct)}%)`,
24921
+ "Criteria:"
24922
+ ];
24923
+ for (const c of verdict.criteria) {
24924
+ lines.push(` [${c.met ? "PASS" : "FAIL"}] ${c.name} \u2014 ${c.detail}`);
24925
+ }
24926
+ if (verdict.blockers.length > 0) lines.push(`Blockers: ${verdict.blockers.join(", ")}`);
24927
+ return lines.join("\n");
24928
+ }
24929
+ function runReadiness(format) {
24930
+ const evidence = buildEnforceReadinessEvidence(
24931
+ readRemediationSoakSummary(),
24932
+ readRemediationReviewSummary()
24933
+ );
24934
+ const verdict = evaluateEnforceReadiness(evidence);
24935
+ const harmful = harmfulRate(evidence);
24936
+ if (format === "json") {
24937
+ process.stdout.write(
24938
+ `${JSON.stringify({ ready: verdict.ready, harmfulRate: harmful, evidence, criteria: verdict.criteria, blockers: verdict.blockers }, null, 2)}
24939
+ `
24940
+ );
24941
+ return;
24942
+ }
24943
+ process.stdout.write(`${formatReadiness(verdict, evidence, harmful)}
24944
+ `);
24945
+ }
24913
24946
  function resolveSound(options) {
24914
24947
  const sound = options.sound === true;
24915
24948
  const unsound = options.unsound === true;
@@ -24998,9 +25031,12 @@ async function handleRemediationReviewCommand(args) {
24998
25031
  case "sign-off":
24999
25032
  runSignOff(args);
25000
25033
  break;
25034
+ case "readiness":
25035
+ runReadiness(args.options.format);
25036
+ break;
25001
25037
  default:
25002
25038
  throw new Error(
25003
- `remediation-review: unknown subcommand '${sub}' (expected list | mark | sign-off)`
25039
+ `remediation-review: unknown subcommand '${sub}' (expected list | mark | sign-off | readiness)`
25004
25040
  );
25005
25041
  }
25006
25042
  await Promise.resolve();