@mutmutco/cli 4.5.142 → 4.5.143

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 (2) hide show
  1. package/dist/main.cjs +11 -9
  2. package/package.json +1 -1
package/dist/main.cjs CHANGED
@@ -18277,10 +18277,10 @@ var rollout_plan_default = {
18277
18277
  note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
18278
18278
  },
18279
18279
  baseline: {
18280
- version: "4.5.142",
18281
- tag: "v4.5.142",
18282
- commit: "cbd9accd3689",
18283
- npm: "@mutmutco/cli@4.5.142"
18280
+ version: "4.5.143",
18281
+ tag: "v4.5.143",
18282
+ commit: "6bf9c07e6831",
18283
+ npm: "@mutmutco/cli@4.5.143"
18284
18284
  },
18285
18285
  exitCriterion: "fleet-n-of-n",
18286
18286
  hubOnlyShortcut: "forbidden",
@@ -18297,14 +18297,14 @@ var rollout_plan_default = {
18297
18297
  repo: "mutmutco/mmi-hub",
18298
18298
  role: "canary",
18299
18299
  schedule: "train",
18300
- v3Target: "v4.5.142"
18300
+ v3Target: "v4.5.143"
18301
18301
  }
18302
18302
  ],
18303
18303
  rollbackTrigger: "Any red inside the post-contract soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a pre-v4 client admitted instead of receiving actionable HTTP 426, or npm consumer install/doctor failure on the v4-only dist.",
18304
18304
  rollback: {
18305
18305
  independent: true,
18306
- mechanism: "npm dist-tag latest -> 4.5.142 and redeploy the Hub Lambda from tag v4.5.142 (cbd9accd3689); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
18307
- v3Target: "v4.5.142 (@mutmutco/cli@4.5.142, tag commit cbd9accd3689 \u2014 last known-good release carrying the repo-index v4-only contract)"
18306
+ mechanism: "npm dist-tag latest -> 4.5.143 and redeploy the Hub Lambda from tag v4.5.143 (6bf9c07e6831); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
18307
+ v3Target: "v4.5.143 (@mutmutco/cli@4.5.143, tag commit 6bf9c07e6831 \u2014 last known-good release carrying the repo-index v4-only contract)"
18308
18308
  }
18309
18309
  },
18310
18310
  {
@@ -31892,6 +31892,7 @@ var import_node_path28 = require("node:path");
31892
31892
  var import_node_crypto10 = require("node:crypto");
31893
31893
  var MANIFEST_PATH = "infra/box-control/manifest.json";
31894
31894
  var ALLOWED_POST = /* @__PURE__ */ new Set(["systemctl daemon-reload"]);
31895
+ var sshdPost = (dest) => `if sshd -t; then systemctl reload ssh; else rm -f ${dest}; echo 'sshd -t rejected ${dest}: removed, not reloaded' >&2; exit 1; fi`;
31895
31896
  function parseManifest(text) {
31896
31897
  const raw = JSON.parse(text);
31897
31898
  if (!Array.isArray(raw.files)) throw new Error('box control manifest: "files" must be an array');
@@ -31905,9 +31906,10 @@ function parseManifest(text) {
31905
31906
  if (f.lanes !== void 0) targets.push(...expandLanes(f.lanes, where));
31906
31907
  if (!targets.length) throw new Error(`${where} (${f.src}): needs targets or lanes`);
31907
31908
  const ownSysctl = typeof f.post === "string" && /^sysctl -p (\/etc\/sysctl\.d\/[A-Za-z0-9._-]+\.conf)$/.exec(f.post);
31908
- const postOk = f.post === void 0 || typeof f.post === "string" && ALLOWED_POST.has(f.post) || !!ownSysctl && targets.every((t) => t.dest === ownSysctl[1]);
31909
+ const sshdDest = /^\/etc\/ssh\/sshd_config\.d\/[A-Za-z0-9._-]+\.conf$/.test(targets[0].dest) && targets.every((t) => t.dest === targets[0].dest) ? targets[0].dest : "";
31910
+ const postOk = f.post === void 0 || typeof f.post === "string" && ALLOWED_POST.has(f.post) || !!ownSysctl && targets.every((t) => t.dest === ownSysctl[1]) || !!sshdDest && f.post === sshdPost(sshdDest);
31909
31911
  if (!postOk) {
31910
- throw new Error(`${where} (${f.src}): post must be one of ${[...ALLOWED_POST].join(", ")}, or \`sysctl -p <its own /etc/sysctl.d dest>\``);
31912
+ throw new Error(`${where} (${f.src}): post must be one of ${[...ALLOWED_POST].join(", ")}, \`sysctl -p <its own /etc/sysctl.d dest>\`, or the sshd post for its own drop-in`);
31911
31913
  }
31912
31914
  for (const t of targets) {
31913
31915
  if (typeof t.box !== "string" || !/^[a-z0-9-]+$/.test(t.box)) throw new Error(`${where} (${f.src}): bad box name`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.5.142",
3
+ "version": "4.5.143",
4
4
  "description": "MMI Future CLI — the org dev toolbox and shared cross-IDE engine for every registry-declared MMI coding surface.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",