@mutmutco/claude-plugin 4.5.205 → 4.5.207

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.205",
4
+ "version": "4.5.207",
5
5
  "mmiCompat": "4.x",
6
6
  "description": "MMI workflow skills and org gates delivery.",
7
7
  "author": {
package/cli/dist/main.cjs CHANGED
@@ -1603,7 +1603,8 @@ __export(index_exports, {
1603
1603
  registryClientDeps: () => registryClientDeps,
1604
1604
  repoSlug: () => repoSlug,
1605
1605
  suggestCommandPath: () => suggestCommandPath,
1606
- unknownCommandCandidates: () => unknownCommandCandidates
1606
+ unknownCommandCandidates: () => unknownCommandCandidates,
1607
+ unknownCommandTail: () => unknownCommandTail
1607
1608
  });
1608
1609
  module.exports = __toCommonJS(index_exports);
1609
1610
 
@@ -6238,6 +6239,39 @@ function localTrainSyncBannerLine(result) {
6238
6239
  }
6239
6240
 
6240
6241
  // src/parse-error-hints.ts
6242
+ init_error_codes();
6243
+ function unknownCommandTail(argv, unknownToken) {
6244
+ if (unknownToken === void 0) return [];
6245
+ const firstFlag = argv.findIndex((t) => t.startsWith("-"));
6246
+ const leading = argv.slice(0, firstFlag < 0 ? argv.length : firstFlag);
6247
+ const idx = leading.indexOf(unknownToken);
6248
+ return idx < 0 ? [] : leading.slice(idx + 1);
6249
+ }
6250
+ function suggestCommandPath(token, paths, tail = []) {
6251
+ const all = [...paths];
6252
+ const leafOf = (p) => p.slice(p.lastIndexOf(" ") + 1);
6253
+ const exact = all.filter((p) => leafOf(p) === token);
6254
+ if (exact.length === 1) return exact[0];
6255
+ if (exact.length > 1) return void 0;
6256
+ const leaves = /* @__PURE__ */ new Map();
6257
+ for (const p of all) {
6258
+ const leaf = leafOf(p);
6259
+ leaves.set(leaf, [...leaves.get(leaf) ?? [], p]);
6260
+ }
6261
+ const near = didYouMean(token, leaves.keys());
6262
+ const hits = near ? leaves.get(near) ?? [] : [];
6263
+ if (hits.length !== 1) return void 0;
6264
+ const candidate = hits[0];
6265
+ const subcommandTail = tail.filter((t) => !/^\d+$/.test(t));
6266
+ if (subcommandTail.length > 0) {
6267
+ const continued = `${candidate} ${subcommandTail.join(" ")}`;
6268
+ const resolves = all.some(
6269
+ (p) => p === continued || p.startsWith(`${continued} `) || !candidate.includes(" ") && (p.endsWith(` ${continued}`) || p.includes(` ${continued} `))
6270
+ );
6271
+ if (!resolves) return void 0;
6272
+ }
6273
+ return candidate;
6274
+ }
6241
6275
  var TARGET_SELECTOR_FLAGS = /* @__PURE__ */ new Set(["--repo", "--ref", "--target", "--project", "--issue", "--number"]);
6242
6276
  function targetFlagValueFromArgv(flag, argv) {
6243
6277
  const i = argv.indexOf(flag);
@@ -19309,10 +19343,10 @@ var rollout_plan_default = {
19309
19343
  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)."
19310
19344
  },
19311
19345
  baseline: {
19312
- version: "4.5.205",
19313
- tag: "v4.5.205",
19314
- commit: "218692afd196",
19315
- npm: "@mutmutco/cli@4.5.205"
19346
+ version: "4.5.207",
19347
+ tag: "v4.5.207",
19348
+ commit: "55e3ac7b8df0",
19349
+ npm: "@mutmutco/cli@4.5.207"
19316
19350
  },
19317
19351
  exitCriterion: "fleet-n-of-n",
19318
19352
  hubOnlyShortcut: "forbidden",
@@ -19329,14 +19363,14 @@ var rollout_plan_default = {
19329
19363
  repo: "mutmutco/mmi-hub",
19330
19364
  role: "canary",
19331
19365
  schedule: "train",
19332
- v3Target: "v4.5.205"
19366
+ v3Target: "v4.5.207"
19333
19367
  }
19334
19368
  ],
19335
19369
  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.",
19336
19370
  rollback: {
19337
19371
  independent: true,
19338
- mechanism: "npm dist-tag latest -> 4.5.205 and redeploy the Hub Lambda from tag v4.5.205 (218692afd196); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
19339
- v3Target: "v4.5.205 (@mutmutco/cli@4.5.205, tag commit 218692afd196 \u2014 last known-good release carrying the repo-index v4-only contract)"
19372
+ mechanism: "npm dist-tag latest -> 4.5.207 and redeploy the Hub Lambda from tag v4.5.207 (55e3ac7b8df0); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
19373
+ v3Target: "v4.5.207 (@mutmutco/cli@4.5.207, tag commit 55e3ac7b8df0 \u2014 last known-good release carrying the repo-index v4-only contract)"
19340
19374
  }
19341
19375
  },
19342
19376
  {
@@ -57964,21 +57998,6 @@ function allCommandPaths() {
57964
57998
  cachedCommandPaths = acc;
57965
57999
  return cachedCommandPaths;
57966
58000
  }
57967
- function suggestCommandPath(token, paths) {
57968
- const all = [...paths];
57969
- const leafOf = (p) => p.slice(p.lastIndexOf(" ") + 1);
57970
- const exact = all.filter((p) => leafOf(p) === token);
57971
- if (exact.length === 1) return exact[0];
57972
- if (exact.length > 1) return void 0;
57973
- const leaves = /* @__PURE__ */ new Map();
57974
- for (const p of all) {
57975
- const leaf = leafOf(p);
57976
- leaves.set(leaf, [...leaves.get(leaf) ?? [], p]);
57977
- }
57978
- const near = didYouMean(token, leaves.keys());
57979
- const hits = near ? leaves.get(near) ?? [] : [];
57980
- return hits.length === 1 ? hits[0] : void 0;
57981
- }
57982
58001
  function argvWantsJson3() {
57983
58002
  return process.argv.some((a) => a === "--json" || a.startsWith("--json="));
57984
58003
  }
@@ -58058,7 +58077,8 @@ function resolveParseHint() {
58058
58077
  const guide = unknownCommandDomainGuide(parentPath, lastUnknownCommand);
58059
58078
  if (guide) return `(${guide.hint}. ${DISCOVERY_HINT})`;
58060
58079
  const candidates = unknownCommandCandidates(parent, allCommandPaths());
58061
- const path3 = lastUnknownCommand ? suggestCommandPath(lastUnknownCommand, candidates) : void 0;
58080
+ const tail = unknownCommandTail(process.argv.slice(2), lastUnknownCommand);
58081
+ const path3 = lastUnknownCommand ? suggestCommandPath(lastUnknownCommand, candidates, tail) : void 0;
58062
58082
  const canonical = path3 ? canonicalPathFor(path3) ?? path3 : void 0;
58063
58083
  if (canonical) return `(did you mean \`mmi-cli ${canonical}\`? ${DISCOVERY_HINT})`;
58064
58084
  return parent ? `(${DISCOVERY_HINT})` : STALE_HINT;
@@ -58113,7 +58133,11 @@ function envelopeAwareWriteErr(str2) {
58113
58133
  pendingHumanParseError = void 0;
58114
58134
  return;
58115
58135
  }
58116
- const hint = str2.replace(PARSE_HINT_SENTINEL, resolveParseHint());
58136
+ const resolvedHint = resolveParseHint();
58137
+ if (lastParseErrorKind === "unknown-command" && (resolvedHint === STALE_HINT || resolvedHint === `(${DISCOVERY_HINT})`)) {
58138
+ pendingHumanParseError = pendingHumanParseError?.replace(/\n\(Did you mean [^)]+\?\)/g, "");
58139
+ }
58140
+ const hint = str2.replace(PARSE_HINT_SENTINEL, resolvedHint);
58117
58141
  if (lastParseErrorKind === "bad-arguments") {
58118
58142
  process.stderr.write(hint);
58119
58143
  if (pendingHumanParseError) process.stderr.write(pendingHumanParseError);
@@ -59418,5 +59442,6 @@ program2.parseAsync(process.argv).then(() => finishCliRun()).catch((e) => failGr
59418
59442
  registryClientDeps,
59419
59443
  repoSlug,
59420
59444
  suggestCommandPath,
59421
- unknownCommandCandidates
59445
+ unknownCommandCandidates,
59446
+ unknownCommandTail
59422
59447
  });
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.5.205",
3
+ "version": "4.5.207",
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.205",
3
+ "version": "4.5.207",
4
4
  "description": "MMI workflow skills and org gates delivery.",
5
5
  "author": {
6
6
  "name": "MMI Future",
@@ -98,16 +98,15 @@ requests like this should follow this structure, not prose guide."
98
98
  Card), writing a markdown or prose spec in chat violates Principle 7 ("Choices for Jervaise go only
99
99
  on the A/B canvas"). Building one guessed design straight into the kit skips the owner's choice.
100
100
  2. **Always follow the visual spec pipeline:**
101
- - **Phase 0 — Inspiration via Better Design MCP (`https://better-design.com/api/mcp`) and 21st.dev MCP (`https://21st.dev/api/mcp`) (owner ruling 2026-10-25T16:48:00Z, #8848).**
102
- Before building visual A/B boards, query the two owner-selected prebuilt design inspiration MCP
103
- servers — **Better Design MCP** (`https://better-design.com/api/mcp`) and **21st.dev MCP**
104
- (`https://21st.dev/api/mcp`, verbatim selection: `"21st.dev MCP Better Design MCP"`) — alongside
105
- front-loaded Impeccable to study high-craft reference patterns, layout proportions, and interaction
106
- details. Always translate inspired patterns into zero-GPU `@mutmutco/mmwork-ds` tokens
107
- (`--card-blur: none`, `--card-tint-dark: 0%`, `--card-tint-light: 0%`, sleek translucent glass
108
- cards) and Atomic Design layers; never copy raw third-party CSS/HTML or GPU-heavy effects.
109
- `MM-Inspo` is strictly a customer/tenant module inside the MM-Work suite, never an internal tool
110
- for designing the MM-Work app or its design system.
101
+ - **Phase 0 — Inspiration via front-loaded Impeccable v4.7.0 and 21st.dev MCP (`https://21st.dev/api/mcp`) only (owner ruling 2026-10-25T21:37:00+03:00, #8854; superseding #8848).**
102
+ Before building visual A/B boards, use front-loaded **Impeccable v4.7.0** alongside **21st.dev MCP**
103
+ (`https://21st.dev/api/mcp`; verbatim owner ruling: `"we don't need the mcp better design yet,
104
+ impeccable and 21st is enough"`, dropping Better Design MCP) to study high-craft reference patterns,
105
+ layout proportions, and interaction details. Always translate inspired patterns into zero-GPU
106
+ `@mutmutco/mmwork-ds` tokens (`--card-blur: none`, `--card-tint-dark: 0%`, `--card-tint-light: 0%`,
107
+ sleek translucent glass cards) and Atomic Design layers; never copy raw third-party CSS/HTML or
108
+ GPU-heavy effects. `MM-Inspo` is strictly a customer/tenant module inside the MM-Work suite, never
109
+ an internal tool for designing the MM-Work app or its design system.
111
110
  - **Stage 1 — a designer subagent builds visual A/B alternatives on an MM Artifact canvas.**
112
111
  Dispatch a `designer` subagent with front-loaded Impeccable (`impeccable context`, `craft-floor`,
113
112
  `distill`, `typeset`, `layout`, `colorize`, `polish`) to create 2–3 genuinely distinct visual
@@ -193,16 +193,15 @@ requests like this should follow this structure, not prose guide."
193
193
  Card), writing a markdown or prose spec in chat violates Principle 7 ("Choices for Jervaise go only
194
194
  on the A/B canvas"). Building one guessed design straight into the kit skips the owner's choice.
195
195
  2. **Always follow the visual spec pipeline:**
196
- - **Phase 0 — Inspiration via Better Design MCP (`https://better-design.com/api/mcp`) and 21st.dev MCP (`https://21st.dev/api/mcp`) (owner ruling 2026-10-25T16:48:00Z, #8848).**
197
- Before building visual A/B boards, query the two owner-selected prebuilt design inspiration MCP
198
- servers — **Better Design MCP** (`https://better-design.com/api/mcp`) and **21st.dev MCP**
199
- (`https://21st.dev/api/mcp`, verbatim selection: `"21st.dev MCP Better Design MCP"`) — alongside
200
- front-loaded Impeccable to study high-craft reference patterns, layout proportions, and interaction
201
- details. Always translate inspired patterns into zero-GPU `@mutmutco/mmwork-ds` tokens
202
- (`--card-blur: none`, `--card-tint-dark: 0%`, `--card-tint-light: 0%`, sleek translucent glass
203
- cards) and Atomic Design layers; never copy raw third-party CSS/HTML or GPU-heavy effects.
204
- `MM-Inspo` is strictly a customer/tenant module inside the MM-Work suite, never an internal tool
205
- for designing the MM-Work app or its design system.
196
+ - **Phase 0 — Inspiration via front-loaded Impeccable v4.7.0 and 21st.dev MCP (`https://21st.dev/api/mcp`) only (owner ruling 2026-10-25T21:37:00+03:00, #8854; superseding #8848).**
197
+ Before building visual A/B boards, use front-loaded **Impeccable v4.7.0** alongside **21st.dev MCP**
198
+ (`https://21st.dev/api/mcp`; verbatim owner ruling: `"we don't need the mcp better design yet,
199
+ impeccable and 21st is enough"`, dropping Better Design MCP) to study high-craft reference patterns,
200
+ layout proportions, and interaction details. Always translate inspired patterns into zero-GPU
201
+ `@mutmutco/mmwork-ds` tokens (`--card-blur: none`, `--card-tint-dark: 0%`, `--card-tint-light: 0%`,
202
+ sleek translucent glass cards) and Atomic Design layers; never copy raw third-party CSS/HTML or
203
+ GPU-heavy effects. `MM-Inspo` is strictly a customer/tenant module inside the MM-Work suite, never
204
+ an internal tool for designing the MM-Work app or its design system.
206
205
  - **Stage 1 — a designer subagent builds visual A/B alternatives on an MM Artifact canvas.**
207
206
  Dispatch a `designer` subagent with front-loaded Impeccable (`impeccable context`, `craft-floor`,
208
207
  `distill`, `typeset`, `layout`, `colorize`, `polish`) to create 2–3 genuinely distinct visual