nexus-agents 8.54.9 → 8.54.10

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.
@@ -24,10 +24,10 @@ import {
24
24
  toolSuccessStructured,
25
25
  withProgressHeartbeat,
26
26
  wrapToolWithTimeout
27
- } from "./chunk-3SNVA4HI.js";
27
+ } from "./chunk-N3UVCPTF.js";
28
28
  import {
29
29
  VERSION
30
- } from "./chunk-244GPQSG.js";
30
+ } from "./chunk-QSIMCVZL.js";
31
31
  import {
32
32
  UNRESOLVED_MODEL_ID,
33
33
  assessPanelIndependence,
@@ -5628,6 +5628,14 @@ var VoteRecordPanelCoverageSchema = z8.object({
5628
5628
  erroredRoles: z8.array(z8.string().min(1).max(100))
5629
5629
  }).strict();
5630
5630
  var MAX_VOTER_REASONING_CHARS = 2e4;
5631
+ var SeatFallbackRecordSchema = z8.object({
5632
+ /** The CLI the seat was assigned to, bare (`claude`, not `cli-claude`). */
5633
+ fromCli: z8.string().min(1).max(100),
5634
+ /** The model the assigned adapter had detected, when it had one. */
5635
+ fromModel: z8.string().min(1).max(200).optional(),
5636
+ /** The adapter-layer class of the error that moved the seat. */
5637
+ reason: z8.enum(["rate-limit", "capacity", "auth", "timeout", "sandbox", "unknown"])
5638
+ }).strict();
5631
5639
  var VoterSummarySchema = z8.object({
5632
5640
  role: z8.string().min(1).max(100),
5633
5641
  decision: z8.enum(["approve", "reject", "abstain"]),
@@ -5697,7 +5705,30 @@ var VoterSummarySchema = z8.object({
5697
5705
  * on the proposal text after failing to read. `literal(true)` and
5698
5706
  * present-only, so every pre-1.8 entry re-hashes byte-identical.
5699
5707
  */
5700
- unverifiable: z8.literal(true).optional()
5708
+ unverifiable: z8.literal(true).optional(),
5709
+ /**
5710
+ * The CLI the round-robin or `NEXUS_VOTER_MODEL_<ROLE>` pin chose for the
5711
+ * seat, as a bare name (#6115, schema 1.9). `model` says where a seat
5712
+ * answered; this says where it was MEANT to. Three consecutive 7-seat
5713
+ * ratification panels on 2026-09-13 answered every seat on one gemini
5714
+ * model while the assignment was three claude, two codex, two gemini,
5715
+ * and the 1.8 record showed seven identical `model` values with nothing
5716
+ * that said five of them were substitutes. Present-only, on the `model`
5717
+ * rule; absent on a result built outside the panel launcher.
5718
+ */
5719
+ assignedCli: z8.string().min(1).max(100).optional(),
5720
+ /**
5721
+ * Present only when the seat answered on a different CLI or model than
5722
+ * assigned (#6115, schema 1.9): the exact `SeatFallback` shape the live
5723
+ * result carries, rebuilt field-by-field. `fromCli` is the assigned CLI,
5724
+ * `fromModel` the model it had detected (absent when it never did — the
5725
+ * pending-detection placeholder is not a model), `reason` the adapter
5726
+ * layer's error class. The vocabulary is compile-checked against the live
5727
+ * `FallbackReason` in vote-record.test.ts; a class one side learns alone
5728
+ * would either refuse every record that carries it (#6054) or accept one
5729
+ * no producer can write.
5730
+ */
5731
+ fallback: SeatFallbackRecordSchema.optional()
5701
5732
  }).strict();
5702
5733
  function defineVoterKeys(keys) {
5703
5734
  return keys;
@@ -5712,12 +5743,30 @@ var VOTER_SUMMARY_KEYS = defineVoterKeys([
5712
5743
  // 1.8 (#6091, #6094): appended after `retried`, present-only, so a 1.7
5713
5744
  // entry projects byte-identically.
5714
5745
  "model",
5715
- "unverifiable"
5746
+ "unverifiable",
5747
+ // 1.9 (#6115): appended after `unverifiable`, present-only, so a 1.8 entry
5748
+ // projects byte-identically. `fallback` is the first nested voter field;
5749
+ // `projectSeatFallback` rebuilds it in its own canonical order.
5750
+ "assignedCli",
5751
+ "fallback"
5716
5752
  ]);
5753
+ function noUnprojectedKeys(rest) {
5754
+ return rest;
5755
+ }
5756
+ function projectSeatFallback(f) {
5757
+ const { fromCli, fromModel, reason, ...rest } = f;
5758
+ noUnprojectedKeys(rest);
5759
+ return {
5760
+ fromCli,
5761
+ ...fromModel !== void 0 ? { fromModel } : {},
5762
+ reason
5763
+ };
5764
+ }
5717
5765
  function projectVoterSummary(v) {
5718
5766
  const out = {};
5719
5767
  for (const key of VOTER_SUMMARY_KEYS) {
5720
- if (v[key] !== void 0) out[key] = v[key];
5768
+ const value = key === "fallback" ? v.fallback === void 0 ? void 0 : projectSeatFallback(v.fallback) : v[key];
5769
+ if (value !== void 0) out[key] = value;
5721
5770
  }
5722
5771
  return out;
5723
5772
  }
@@ -5741,7 +5790,7 @@ var VoteRecordSchema = z8.object({
5741
5790
  * `ratifies` is folded into the self-hash ONLY when present (see
5742
5791
  * {@link computeVoteRecordHash}).
5743
5792
  */
5744
- version: z8.enum(["1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8"]),
5793
+ version: z8.enum(["1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9"]),
5745
5794
  /** Unique record id (also usable as a `ratificationVoteRef`). */
5746
5795
  id: z8.string().min(1),
5747
5796
  /**
@@ -5942,7 +5991,12 @@ function toVoterSummaries(votes) {
5942
5991
  // #6094: a seat that answered without reading the artifact. Its
5943
5992
  // `decision` is abstain; this flag is what keeps it from reading as a
5944
5993
  // considered abstention.
5945
- ...v.source === "unverifiable" ? { unverifiable: true } : {}
5994
+ ...v.source === "unverifiable" ? { unverifiable: true } : {},
5995
+ // #6115: where the seat was assigned, and — when it answered elsewhere —
5996
+ // the fallback the live result stated. `model` alone showed seven
5997
+ // identical values on a panel assigned three ways and could not say so.
5998
+ ...v.assignedCli !== void 0 ? { assignedCli: v.assignedCli } : {},
5999
+ ...v.fallback !== void 0 ? { fallback: projectSeatFallback(v.fallback) } : {}
5946
6000
  });
5947
6001
  }
5948
6002
  return summaries;
@@ -5966,6 +6020,7 @@ function deriveOptionFields(votes, declaredOptions) {
5966
6020
  return { optionTally: tallied ?? [], optionCoverage: coverageOf(votes) };
5967
6021
  }
5968
6022
  function recordVersion(optionTally, optionCoverage, panelCoverage, voters) {
6023
+ if (voters.some((v) => v.assignedCli !== void 0 || v.fallback !== void 0)) return "1.9";
5969
6024
  if (voters.some((v) => v.model !== void 0 || v.unverifiable === true)) return "1.8";
5970
6025
  if (voters.some((v) => v.retried === true)) return "1.7";
5971
6026
  if (voters.some((v) => v.reasoning !== void 0)) return "1.6";
@@ -8450,4 +8505,4 @@ export {
8450
8505
  CONSENSUS_VOTE_TOOL_SCHEMA,
8451
8506
  registerConsensusVoteTool
8452
8507
  };
8453
- //# sourceMappingURL=chunk-N3G3QF6G.js.map
8508
+ //# sourceMappingURL=chunk-DRVFX4FB.js.map