musubix2 0.5.79 → 0.5.81

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 +1 @@
1
- {"generator":"musubix2","version":"0.5.79","timestamp":"2026-07-11T21:50:15.675Z"}
1
+ {"generator":"musubix2","version":"0.5.81","timestamp":"2026-07-11T22:12:14.845Z"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0",
3
- "generatedAt": "2026-07-11T21:50:15.710Z",
3
+ "generatedAt": "2026-07-11T22:12:14.878Z",
4
4
  "entries": [
5
5
  {
6
6
  "platform": "copilot",
package/dist/cli.js CHANGED
@@ -2607,7 +2607,15 @@ function capFirst(w) {
2607
2607
  return w.charAt(0).toUpperCase() + w.slice(1);
2608
2608
  }
2609
2609
  function camelJoin(parts) {
2610
- return parts.map((w, i) => i === 0 ? w.charAt(0).toLowerCase() + w.slice(1) : capFirst(w)).join("");
2610
+ return parts.map((w, i) => {
2611
+ if (i !== 0) {
2612
+ return capFirst(w);
2613
+ }
2614
+ if (w.length > 1 && w === w.toUpperCase()) {
2615
+ return w.toLowerCase();
2616
+ }
2617
+ return w.charAt(0).toLowerCase() + w.slice(1);
2618
+ }).join("");
2611
2619
  }
2612
2620
  function pascalJoin(parts) {
2613
2621
  return parts.map(capFirst).join("");
@@ -2648,11 +2656,17 @@ function deriveMethodSignature(text, fallbackTitle = "") {
2648
2656
  return { name, params, returnType: "void" };
2649
2657
  }
2650
2658
  const verb = words[0].toLowerCase();
2651
- const objectWords = words.slice(1);
2659
+ let objectWords = words.slice(1);
2660
+ const COLLECTION_WORDS = /* @__PURE__ */ new Set(["list", "array", "collection", "set", "sequence"]);
2661
+ let phraseIsCollection = false;
2662
+ if (objectWords.length > 1 && COLLECTION_WORDS.has(objectWords[0].toLowerCase())) {
2663
+ phraseIsCollection = true;
2664
+ objectWords = objectWords.slice(objectWords[1]?.toLowerCase() === "of" ? 2 : 1);
2665
+ }
2652
2666
  let returnType = "void";
2653
2667
  if (negated || BOOLEAN_VERBS.has(verb)) {
2654
2668
  returnType = "boolean";
2655
- } else if (LIST_VERBS.has(verb)) {
2669
+ } else if (LIST_VERBS.has(verb) || phraseIsCollection && VALUE_VERBS.has(verb)) {
2656
2670
  returnType = objectWords.length > 0 ? `${pascalJoin(objectWords)}[]` : "unknown[]";
2657
2671
  } else if (VALUE_VERBS.has(verb) && objectWords.length > 0) {
2658
2672
  returnType = pascalJoin(objectWords);
@@ -8941,6 +8955,9 @@ function isLikelyConfigSecret(matchText) {
8941
8955
  if (/[$#]\{|\$\w|<[^>]+>|\{\{|%\(|process\.env|os\.environ|getenv/i.test(v)) {
8942
8956
  return false;
8943
8957
  }
8958
+ if (new Set(v).size < 4) {
8959
+ return false;
8960
+ }
8944
8961
  return true;
8945
8962
  }
8946
8963
  function blankNonCode(code, hashComments) {
package/dist/index.js CHANGED
@@ -2607,7 +2607,15 @@ function capFirst(w) {
2607
2607
  return w.charAt(0).toUpperCase() + w.slice(1);
2608
2608
  }
2609
2609
  function camelJoin(parts) {
2610
- return parts.map((w, i) => i === 0 ? w.charAt(0).toLowerCase() + w.slice(1) : capFirst(w)).join("");
2610
+ return parts.map((w, i) => {
2611
+ if (i !== 0) {
2612
+ return capFirst(w);
2613
+ }
2614
+ if (w.length > 1 && w === w.toUpperCase()) {
2615
+ return w.toLowerCase();
2616
+ }
2617
+ return w.charAt(0).toLowerCase() + w.slice(1);
2618
+ }).join("");
2611
2619
  }
2612
2620
  function pascalJoin(parts) {
2613
2621
  return parts.map(capFirst).join("");
@@ -2648,11 +2656,17 @@ function deriveMethodSignature(text, fallbackTitle = "") {
2648
2656
  return { name, params, returnType: "void" };
2649
2657
  }
2650
2658
  const verb = words[0].toLowerCase();
2651
- const objectWords = words.slice(1);
2659
+ let objectWords = words.slice(1);
2660
+ const COLLECTION_WORDS = /* @__PURE__ */ new Set(["list", "array", "collection", "set", "sequence"]);
2661
+ let phraseIsCollection = false;
2662
+ if (objectWords.length > 1 && COLLECTION_WORDS.has(objectWords[0].toLowerCase())) {
2663
+ phraseIsCollection = true;
2664
+ objectWords = objectWords.slice(objectWords[1]?.toLowerCase() === "of" ? 2 : 1);
2665
+ }
2652
2666
  let returnType = "void";
2653
2667
  if (negated || BOOLEAN_VERBS.has(verb)) {
2654
2668
  returnType = "boolean";
2655
- } else if (LIST_VERBS.has(verb)) {
2669
+ } else if (LIST_VERBS.has(verb) || phraseIsCollection && VALUE_VERBS.has(verb)) {
2656
2670
  returnType = objectWords.length > 0 ? `${pascalJoin(objectWords)}[]` : "unknown[]";
2657
2671
  } else if (VALUE_VERBS.has(verb) && objectWords.length > 0) {
2658
2672
  returnType = pascalJoin(objectWords);
@@ -8941,6 +8955,9 @@ function isLikelyConfigSecret(matchText) {
8941
8955
  if (/[$#]\{|\$\w|<[^>]+>|\{\{|%\(|process\.env|os\.environ|getenv/i.test(v)) {
8942
8956
  return false;
8943
8957
  }
8958
+ if (new Set(v).size < 4) {
8959
+ return false;
8960
+ }
8944
8961
  return true;
8945
8962
  }
8946
8963
  function blankNonCode(code, hashComments) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musubix2",
3
- "version": "0.5.79",
3
+ "version": "0.5.81",
4
4
  "description": "MUSUBIX2 — Specification Driven Development System",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",