nexus-agents 2.81.2 → 2.81.3

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.
@@ -8,7 +8,7 @@ import {
8
8
  checkSqlite,
9
9
  defaultConfig,
10
10
  initDataDirectories
11
- } from "./chunk-6KO6LO3L.js";
11
+ } from "./chunk-WLAQXITV.js";
12
12
  import {
13
13
  probeAllClis
14
14
  } from "./chunk-BMNWUPJO.js";
@@ -1974,4 +1974,4 @@ export {
1974
1974
  setupCommand,
1975
1975
  setupCommandAsync
1976
1976
  };
1977
- //# sourceMappingURL=chunk-MRCURXAX.js.map
1977
+ //# sourceMappingURL=chunk-EKLY4LBJ.js.map
@@ -40,7 +40,7 @@ import {
40
40
  } from "./chunk-I2HMWH4R.js";
41
41
 
42
42
  // src/version.ts
43
- var VERSION = true ? "2.81.2" : "dev";
43
+ var VERSION = true ? "2.81.3" : "dev";
44
44
 
45
45
  // src/config/schemas-core.ts
46
46
  import { z } from "zod";
@@ -2107,7 +2107,7 @@ async function runDoctorFix(result) {
2107
2107
  writeLine2("\u2500".repeat(40));
2108
2108
  let fixCount = 0;
2109
2109
  if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
2110
- const { runSetup } = await import("./setup-command-JBTK3LGD.js");
2110
+ const { runSetup } = await import("./setup-command-3VQHU7BZ.js");
2111
2111
  const setupResult = runSetup({
2112
2112
  skipMcp: true,
2113
2113
  skipRules: true,
@@ -2219,4 +2219,4 @@ export {
2219
2219
  startStdioServer,
2220
2220
  closeServer
2221
2221
  };
2222
- //# sourceMappingURL=chunk-6KO6LO3L.js.map
2222
+ //# sourceMappingURL=chunk-WLAQXITV.js.map
package/dist/cli.js CHANGED
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  setupCommandAsync,
24
24
  verifyCommand
25
- } from "./chunk-MRCURXAX.js";
25
+ } from "./chunk-EKLY4LBJ.js";
26
26
  import "./chunk-6YQCLEHL.js";
27
27
  import {
28
28
  AuthHandler,
@@ -153,7 +153,7 @@ import {
153
153
  validateCommand,
154
154
  validateWorkflow,
155
155
  wrapInMarkdownFence
156
- } from "./chunk-37ZXD5B6.js";
156
+ } from "./chunk-755EZIUF.js";
157
157
  import "./chunk-AP2FD37C.js";
158
158
  import "./chunk-ED6VQWNG.js";
159
159
  import {
@@ -226,7 +226,7 @@ import {
226
226
  loadConfig,
227
227
  runDoctor,
228
228
  validateNexusEnv
229
- } from "./chunk-6KO6LO3L.js";
229
+ } from "./chunk-WLAQXITV.js";
230
230
  import "./chunk-WZGCVCRQ.js";
231
231
  import "./chunk-73K7575Z.js";
232
232
  import {
package/dist/index.d.ts CHANGED
@@ -30966,12 +30966,38 @@ type PolicyDecision = {
30966
30966
  readonly reason: string;
30967
30967
  readonly escalateTo?: string;
30968
30968
  };
30969
+ /**
30970
+ * Typed snapshot of the pipeline state available to policy rules (#2932).
30971
+ *
30972
+ * Listing the fields by name (instead of an untyped `Record<string, unknown>`)
30973
+ * surfaces missing-producer bugs at compile time. The pre-#2932 untyped
30974
+ * shape let `securityReviewRule`, `costBudgetRule`, `highRiskApprovalRule`,
30975
+ * and `boundedIterationRule` read keys that no producer ever wrote — every
30976
+ * comparison evaluated against `undefined`, so every rule allowed. Those
30977
+ * four rules were deleted in the same change; this interface lists only
30978
+ * the fields with a real producer chain.
30979
+ *
30980
+ * Adding a new rule means adding its input field here AND wiring a
30981
+ * producer that writes it onto `TaskContract.metadata` upstream of
30982
+ * `checkPipelinePolicy`.
30983
+ */
30984
+ interface PipelineStateSnapshot {
30985
+ /**
30986
+ * Caller trust tier (`'1'`..`'4'` per `security/trust-types.ts`). Producers
30987
+ * include `trust-classifier`, `input-sanitizer`, `firewall-pipeline`, and
30988
+ * `mcp/middleware/request-context`; threading the value into
30989
+ * `TaskContract.metadata.trustTier` is owner-scoped follow-up work — see
30990
+ * the corresponding issue. When absent, `trustTierRule` allows (the
30991
+ * existing fail-open default for unknown trust).
30992
+ */
30993
+ readonly trustTier?: string;
30994
+ }
30969
30995
  /** Context provided to policy rules for evaluation. */
30970
30996
  interface PolicyContext {
30971
30997
  readonly taskId: string;
30972
30998
  readonly stageId: string;
30973
30999
  readonly stageType: string;
30974
- readonly pipelineState: Readonly<Record<string, unknown>>;
31000
+ readonly pipelineState: PipelineStateSnapshot;
30975
31001
  }
30976
31002
  /** A policy rule with priority-ordered evaluation. */
30977
31003
  interface PolicyRule {
package/dist/index.js CHANGED
@@ -518,7 +518,7 @@ import {
518
518
  validateWorkflow,
519
519
  validateWorkflowDependencies,
520
520
  withLogging
521
- } from "./chunk-37ZXD5B6.js";
521
+ } from "./chunk-755EZIUF.js";
522
522
  import "./chunk-AP2FD37C.js";
523
523
  import {
524
524
  SharedMemoryStore
@@ -742,7 +742,7 @@ import {
742
742
  getKnownNexusVarNames,
743
743
  startStdioServer,
744
744
  validateNexusEnv
745
- } from "./chunk-6KO6LO3L.js";
745
+ } from "./chunk-WLAQXITV.js";
746
746
  import {
747
747
  AvailabilityCache,
748
748
  filterAvailableModels,
@@ -6009,8 +6009,12 @@ async function executeSingleVote(plan, config, log) {
6009
6009
  return parseVotingResult(result);
6010
6010
  } catch (error) {
6011
6011
  const msg = error instanceof Error ? error.message : String(error);
6012
- log.warn("Vote execution failed, auto-approving", { error: msg });
6013
- return { kind: "approved", approvalPercentage: 0 };
6012
+ log.warn("Vote execution failed, treating as rejected", { error: msg });
6013
+ return {
6014
+ kind: "rejected",
6015
+ feedback: `Vote infrastructure failed \u2014 no consensus produced: ${msg}`,
6016
+ approvalPercentage: 0
6017
+ };
6014
6018
  }
6015
6019
  }
6016
6020
  function parseVotingResult(result) {