@mutmutco/claude-plugin 4.5.115 → 4.5.116

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,7 +1,7 @@
1
1
  {
2
2
  "name": "mmi",
3
3
  "displayName": "MMI",
4
- "version": "4.5.115",
4
+ "version": "4.5.116",
5
5
  "mmiCompat": "4.x",
6
6
  "description": "MMI workflow skills and org gates delivery.",
7
7
  "author": {
package/cli/dist/main.cjs CHANGED
@@ -17939,10 +17939,10 @@ var rollout_plan_default = {
17939
17939
  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)."
17940
17940
  },
17941
17941
  baseline: {
17942
- version: "4.5.115",
17943
- tag: "v4.5.115",
17944
- commit: "8d0add650762",
17945
- npm: "@mutmutco/cli@4.5.115"
17942
+ version: "4.5.116",
17943
+ tag: "v4.5.116",
17944
+ commit: "7165d9f93efa",
17945
+ npm: "@mutmutco/cli@4.5.116"
17946
17946
  },
17947
17947
  exitCriterion: "fleet-n-of-n",
17948
17948
  hubOnlyShortcut: "forbidden",
@@ -17959,14 +17959,14 @@ var rollout_plan_default = {
17959
17959
  repo: "mutmutco/mmi-hub",
17960
17960
  role: "canary",
17961
17961
  schedule: "train",
17962
- v3Target: "v4.5.115"
17962
+ v3Target: "v4.5.116"
17963
17963
  }
17964
17964
  ],
17965
17965
  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.",
17966
17966
  rollback: {
17967
17967
  independent: true,
17968
- mechanism: "npm dist-tag latest -> 4.5.115 and redeploy the Hub Lambda from tag v4.5.115 (8d0add650762); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
17969
- v3Target: "v4.5.115 (@mutmutco/cli@4.5.115, tag commit 8d0add650762 \u2014 last known-good release carrying the repo-index v4-only contract)"
17968
+ mechanism: "npm dist-tag latest -> 4.5.116 and redeploy the Hub Lambda from tag v4.5.116 (7165d9f93efa); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
17969
+ v3Target: "v4.5.116 (@mutmutco/cli@4.5.116, tag commit 7165d9f93efa \u2014 last known-good release carrying the repo-index v4-only contract)"
17970
17970
  }
17971
17971
  },
17972
17972
  {
@@ -36506,12 +36506,13 @@ function suiteMembers(raw) {
36506
36506
  for (const item of raw) {
36507
36507
  if (!item || typeof item !== "object") throw new Error("invalid MM-Work module registry row");
36508
36508
  const row = item;
36509
- const repo = typeof row.id === "string" ? REPOS[row.id] : void 0;
36509
+ const repo = typeof row.repository === "string" && /^[\w.-]+\/[\w.-]+$/.test(row.repository) ? row.repository : typeof row.id === "string" ? REPOS[row.id] : void 0;
36510
36510
  if (!repo || !row.bundles || typeof row.bundles !== "object") throw new Error(`unknown MM-Work module registry id: ${String(row.id)}`);
36511
36511
  members.push({ repo, id: row.id, bundles: row.bundles });
36512
36512
  }
36513
36513
  return members;
36514
36514
  }
36515
+ var trainModules = (members) => members.filter((m) => m.repo !== SUITE_REPO && (REPOS[m.id] || m.bundles.rc || m.bundles.main));
36515
36516
  function bundleTag(url) {
36516
36517
  if (typeof url !== "string") return void 0;
36517
36518
  try {
@@ -36935,7 +36936,7 @@ async function pendingBackend(deps, m, dev) {
36935
36936
  async function suiteRcand(deps, opts) {
36936
36937
  if (!opts.ownerGo && !opts.dryRun) throw new Error("suite rcand requires --owner-go (rc uses live data); nothing was written");
36937
36938
  const members = suiteMembers(await deps.registry());
36938
- const modules = members.filter((m) => m.repo !== SUITE_REPO);
36939
+ const modules = trainModules(members);
36939
36940
  const { active, held } = await holdSplit(deps, modules);
36940
36941
  const heldById = new Map(held.map((h) => [h.id, h]));
36941
36942
  const plan = [
@@ -37109,7 +37110,7 @@ async function suiteRelease(deps, ownerGo, big = false) {
37109
37110
  if (!ownerGo) throw new Error("suite release requires --owner-go; nothing was written");
37110
37111
  const record = readSuiteCut(deps.recordPath);
37111
37112
  if (!record?.pinMerged || !record.leadRcTag) throw new Error("no completed suite rc cut and merged pin PR; release refused");
37112
- const members = suiteMembers(await deps.registry()).filter((m) => m.repo !== SUITE_REPO);
37113
+ const members = trainModules(suiteMembers(await deps.registry()));
37113
37114
  const { active, held } = await holdSplit(deps, members);
37114
37115
  if (!heldMatches(record.heldMembers ?? [], held)) throw new Error("suite hold changed after the cut; release refused");
37115
37116
  if (active.length !== record.members.length || active.some((m) => !record.members.some((r) => r.repo === m.repo && r.id === m.id))) throw new Error("suite roster changed after the cut; release refused");
@@ -41007,7 +41008,7 @@ async function openSuiteCutPinPr(deps, input) {
41007
41008
  let scratch = "";
41008
41009
  try {
41009
41010
  const rows = await registry2();
41010
- const members = suiteMembers(rows).filter((m) => m.repo !== SUITE_REPO);
41011
+ const members = trainModules(suiteMembers(rows));
41011
41012
  if (members.length !== covered.length || members.some((m) => !covered.includes(m.id))) throw new Error("cut pins do not match the complete MM-Work roster");
41012
41013
  for (const pin of input.pins) {
41013
41014
  for (const url of [pin.rc, pin.main]) {
@@ -48339,7 +48340,7 @@ function suiteTrainIo(root, summaryFile, memberSummaryFiles = {}, summaryFileTr,
48339
48340
  }
48340
48341
  },
48341
48342
  suiteMapping: async (leadTag) => {
48342
- const rows = suiteMembers(await registry2(leadTag)).filter((m) => m.repo !== SUITE_REPO);
48343
+ const rows = trainModules(suiteMembers(await registry2(leadTag)));
48343
48344
  return Object.fromEntries(rows.map((m) => {
48344
48345
  const v = bundleTag(m.bundles.main);
48345
48346
  if (!v) throw new Error(`${m.id}: MM-Work ${leadTag} has no versioned main pin; mapping not recorded`);
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.5.115",
3
+ "version": "4.5.116",
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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/claude-plugin",
3
- "version": "4.5.115",
3
+ "version": "4.5.116",
4
4
  "description": "MMI workflow skills and org gates delivery.",
5
5
  "author": {
6
6
  "name": "MMI Future",