musubix2 0.5.45 → 0.5.47

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.45","timestamp":"2026-07-10T02:22:48.788Z"}
1
+ {"generator":"musubix2","version":"0.5.47","timestamp":"2026-07-10T04:30:56.610Z"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0",
3
- "generatedAt": "2026-07-10T02:22:48.819Z",
3
+ "generatedAt": "2026-07-10T04:30:56.641Z",
4
4
  "entries": [
5
5
  {
6
6
  "platform": "copilot",
package/dist/cli.d.ts CHANGED
@@ -116,7 +116,7 @@ export declare function handleReqInterview(args: Record<string, unknown>): Promi
116
116
  export declare function handleDesignGenerate(filePath: string, outPath?: string): Promise<ExitCodeValue>;
117
117
  export declare function handleDesignC4(filePath: string, level?: string): Promise<ExitCodeValue>;
118
118
  export declare function handleDesignVerify(filePath: string): Promise<ExitCodeValue>;
119
- export declare function handleCodegen(nameOrFile: string, type?: string): Promise<ExitCodeValue>;
119
+ export declare function handleCodegen(nameOrFile: string, type?: string, outPath?: string): Promise<ExitCodeValue>;
120
120
  export declare function handleTestGen(filePath: string): Promise<ExitCodeValue>;
121
121
  export declare function handleSkills(sub: string | undefined, args: string[]): Promise<ExitCodeValue>;
122
122
  export declare function handleKnowledge(sub: string | undefined, args: string[], flags: Record<string, unknown>): Promise<ExitCodeValue>;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAgC9D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAmDpD;AAwGD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAuBjD;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1E,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,SAAS;IAI7B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAInC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI;IAM3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIhD,YAAY,IAAI,UAAU,EAAE;IAItB,QAAQ,CACZ,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAUhC,OAAO,IAAI,MAAM;IAajB,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CA4ClD;AAID,OAAO,EAGL,KAAK,QAAQ,EAKd,MAAM,2BAA2B,CAAC;AAInC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmBzD;AAWD,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAWlF;AAED,wBAAsB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAc/E;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAsBhF;AAMD,wBAAsB,UAAU,CAC9B,UAAU,GAAE,MAAY,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,aAAa,CAAC,CAyDxB;AAOD,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CA2CnF;AASD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAClC,OAAO,CAAC,aAAa,CAAC,CAiFxB;AAID,wBAAsB,iBAAiB,CACrC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAClC,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAID,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CA2CxB;AA+BD,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,GAAE,MAAM,EAAO,GAClB,OAAO,CAAC,aAAa,CAAC,CAuDxB;AAcD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,EAAE,CA2B3F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAYtF;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AA0WD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQhE;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CA2wBxB;AAMD,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQhD;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,aAAa,CAAC,CAyExB;AAuBD,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CAgDxB;AAID,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,CAiB3D;AAmBD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgDhF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAe9D;AASD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAyG9F;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAyDxB;AAiCD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAkB,GACxB,OAAO,CAAC,aAAa,CAAC,CA0CxB;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyBjF;AA2ED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,aAAa,CAAC,CAuCxB;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA0B5E;AAID,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CAoFxB;AAKD,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,aAAa,CAAC,CA8HxB;AAID,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,aAAa,CAAC,CA+FxB;AAiCD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CAwDxB;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAOzD;AAID,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CA0FxB;AAID,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,aAAa,CAAC,CAgCxB;AAID,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CAiExB;AAID,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAClC,OAAO,CAAC,aAAa,CAAC,CAyExB;AAID,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,aAAa,CAAC,CAexB;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAUhG;AAiBD,wBAAgB,kBAAkB,IAAI,UAAU,EAAE,CAqejD;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CASnD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2554,16 +2554,44 @@ var init_requirements = __esm({
2554
2554
  });
2555
2555
 
2556
2556
  // ../core/dist/design/index.js
2557
- function deriveOperation(text, fallbackTitle = "") {
2557
+ function operationParts(text, fallbackTitle) {
2558
2558
  const shall = /\bSHALL\s+(NOT\s+)?([^.。\n]+)/i.exec(text);
2559
2559
  const negated = Boolean(shall?.[1]);
2560
2560
  const phrase = (shall?.[2] ?? fallbackTitle ?? "").trim();
2561
2561
  const words = phrase.split(/[\s,、]+/).map((w) => w.replace(/[^A-Za-z0-9]/g, "")).filter((w) => w.length > 0 && !OPERATION_STOPWORDS.has(w.toLowerCase())).slice(0, 4);
2562
+ return { negated, words };
2563
+ }
2564
+ function camelJoin(parts) {
2565
+ return parts.map((w, i) => i === 0 ? w.charAt(0).toLowerCase() + w.slice(1) : w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join("");
2566
+ }
2567
+ function pascalJoin(parts) {
2568
+ return parts.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join("");
2569
+ }
2570
+ function deriveOperation(text, fallbackTitle = "") {
2571
+ const { negated, words } = operationParts(text, fallbackTitle);
2562
2572
  const parts = negated ? ["reject", ...words] : words;
2563
2573
  if (parts.length === 0) {
2564
2574
  return "execute";
2565
2575
  }
2566
- return parts.map((w, i) => i === 0 ? w.charAt(0).toLowerCase() + w.slice(1) : w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join("");
2576
+ return camelJoin(parts);
2577
+ }
2578
+ function deriveMethodSignature(text, fallbackTitle = "") {
2579
+ const { negated, words } = operationParts(text, fallbackTitle);
2580
+ const name = deriveOperation(text, fallbackTitle);
2581
+ if (words.length === 0) {
2582
+ return { name, params: "", returnType: "void" };
2583
+ }
2584
+ const verb = words[0].toLowerCase();
2585
+ const objectWords = words.slice(1);
2586
+ let returnType = "void";
2587
+ if (negated || BOOLEAN_VERBS.has(verb)) {
2588
+ returnType = "boolean";
2589
+ } else if (LIST_VERBS.has(verb)) {
2590
+ returnType = objectWords.length > 0 ? `${pascalJoin(objectWords)}[]` : "unknown[]";
2591
+ } else if (VALUE_VERBS.has(verb) && objectWords.length > 0) {
2592
+ returnType = pascalJoin(objectWords);
2593
+ }
2594
+ return { name, params: "", returnType };
2567
2595
  }
2568
2596
  function createDesignGenerator() {
2569
2597
  return new DesignGenerator();
@@ -2571,7 +2599,7 @@ function createDesignGenerator() {
2571
2599
  function createSOLIDValidator() {
2572
2600
  return new SOLIDValidator();
2573
2601
  }
2574
- var OPERATION_STOPWORDS, DesignGenerator, SOLIDValidator;
2602
+ var OPERATION_STOPWORDS, BOOLEAN_VERBS, VALUE_VERBS, LIST_VERBS, DesignGenerator, SOLIDValidator;
2575
2603
  var init_design = __esm({
2576
2604
  "../core/dist/design/index.js"() {
2577
2605
  "use strict";
@@ -2604,6 +2632,43 @@ var init_design = __esm({
2604
2632
  "must",
2605
2633
  "should"
2606
2634
  ]);
2635
+ BOOLEAN_VERBS = /* @__PURE__ */ new Set([
2636
+ "validate",
2637
+ "verify",
2638
+ "check",
2639
+ "ensure",
2640
+ "confirm",
2641
+ "authenticate",
2642
+ "authorize",
2643
+ "allow",
2644
+ "reject",
2645
+ "prevent",
2646
+ "deny",
2647
+ "is",
2648
+ "has",
2649
+ "can",
2650
+ "match",
2651
+ "compare"
2652
+ ]);
2653
+ VALUE_VERBS = /* @__PURE__ */ new Set([
2654
+ "create",
2655
+ "issue",
2656
+ "generate",
2657
+ "produce",
2658
+ "build",
2659
+ "make",
2660
+ "fetch",
2661
+ "get",
2662
+ "load",
2663
+ "find",
2664
+ "return",
2665
+ "retrieve",
2666
+ "compute",
2667
+ "calculate",
2668
+ "resolve",
2669
+ "render"
2670
+ ]);
2671
+ LIST_VERBS = /* @__PURE__ */ new Set(["list", "query", "search", "collect", "enumerate"]);
2607
2672
  DesignGenerator = class {
2608
2673
  counter = 0;
2609
2674
  generate(requirements) {
@@ -2701,12 +2766,12 @@ var init_design = __esm({
2701
2766
  }
2702
2767
  deriveComponents(reqs) {
2703
2768
  return reqs.map((r) => {
2704
- const op = deriveOperation(r.text, r.title);
2705
- const compName = this.pascal(r.title || op) + (/(service|manager|controller|repository)$/i.test(r.title) ? "" : "Service");
2769
+ const sig = deriveMethodSignature(r.text, r.title);
2770
+ const compName = this.pascal(r.title || sig.name) + (/(service|manager|controller|repository)$/i.test(r.title) ? "" : "Service");
2706
2771
  return {
2707
2772
  name: compName,
2708
2773
  responsibility: r.title || `Handle ${r.id}`,
2709
- methods: [{ name: op, params: "", returnType: "void" }],
2774
+ methods: [sig],
2710
2775
  requirementIds: [r.id]
2711
2776
  };
2712
2777
  });
@@ -5603,6 +5668,7 @@ __export(dist_exports, {
5603
5668
  createTraceabilityManager: () => createTraceabilityManager,
5604
5669
  createTraceabilityValidator: () => createTraceabilityValidator,
5605
5670
  createUnitTestGenerator: () => createUnitTestGenerator,
5671
+ deriveMethodSignature: () => deriveMethodSignature,
5606
5672
  deriveOperation: () => deriveOperation,
5607
5673
  formatError: () => formatError,
5608
5674
  formatInfo: () => formatInfo,
@@ -6823,7 +6889,39 @@ var init_multi_lang_parser = __esm({
6823
6889
  }
6824
6890
  continue;
6825
6891
  }
6826
- const methodMatch = trimmed.match(/^func\s+\((\w+)\s+\*?(\w+)\)\s+(\w+)\s*\(([^)]*)\)(?:\s*(?:\(([^)]*)\)|(\S+)))?/);
6892
+ const currentBlock = tracker.getCurrentBlock();
6893
+ const currentNode = currentBlock ? blockNodeMap.get(currentBlock) : void 0;
6894
+ if (currentBlock?.type === "interface" && currentNode) {
6895
+ const ifaceMethod = trimmed.match(/^(\w+)\s*\(([^)]*)\)\s*(.*)$/);
6896
+ if (ifaceMethod) {
6897
+ const mName = ifaceMethod[1];
6898
+ const mParams = ifaceMethod[2] ? ifaceMethod[2].split(",").map((p) => p.trim()).filter(Boolean) : [];
6899
+ const mRet = ifaceMethod[3]?.replace(/\{$/, "").trim() || void 0;
6900
+ currentNode.children.push({
6901
+ type: "method",
6902
+ name: mName,
6903
+ startLine: lineNum,
6904
+ endLine: lineNum,
6905
+ children: [],
6906
+ modifiers: mName[0] === mName[0].toUpperCase() ? ["exported"] : [],
6907
+ params: mParams,
6908
+ returnType: mRet,
6909
+ parent: currentNode.name,
6910
+ language: "go"
6911
+ });
6912
+ const { closed: closed2 } = tracker.processLine(line, lineNum);
6913
+ if (closed2) {
6914
+ for (const c of closed2) {
6915
+ const n = blockNodeMap.get(c);
6916
+ if (n) {
6917
+ n.endLine = lineNum;
6918
+ }
6919
+ }
6920
+ }
6921
+ continue;
6922
+ }
6923
+ }
6924
+ const methodMatch = trimmed.match(/^func\s+\((\w+)\s+\*?(\w+)\)\s+(\w+)\s*(?:\[[^\]]*\])?\s*\(([^)]*)\)(?:\s*(?:\(([^)]*)\)|(\S+)))?/);
6827
6925
  if (methodMatch) {
6828
6926
  const receiverType = methodMatch[2];
6829
6927
  const name = methodMatch[3];
@@ -6873,7 +6971,7 @@ var init_multi_lang_parser = __esm({
6873
6971
  }
6874
6972
  continue;
6875
6973
  }
6876
- const funcMatch = trimmed.match(/^func\s+(\w+)\s*\(([^)]*)\)(?:\s*(?:\(([^)]*)\)|(\S+)))?/);
6974
+ const funcMatch = trimmed.match(/^func\s+(\w+)\s*(?:\[[^\]]*\])?\s*\(([^)]*)\)(?:\s*(?:\(([^)]*)\)|(\S+)))?/);
6877
6975
  if (funcMatch) {
6878
6976
  const name = funcMatch[1];
6879
6977
  const paramStr = funcMatch[2];
@@ -6950,6 +7048,23 @@ var init_multi_lang_parser = __esm({
6950
7048
  }
6951
7049
  }
6952
7050
  }
7051
+ const typeByName = /* @__PURE__ */ new Map();
7052
+ for (const n of nodes) {
7053
+ if (n.type === "struct" || n.type === "interface") {
7054
+ typeByName.set(n.name, n);
7055
+ }
7056
+ }
7057
+ for (let idx = nodes.length - 1; idx >= 0; idx--) {
7058
+ const n = nodes[idx];
7059
+ if (n.type !== "method" || !n.parent) {
7060
+ continue;
7061
+ }
7062
+ const owner = typeByName.get(n.parent);
7063
+ if (owner && owner !== n && !owner.children.includes(n)) {
7064
+ owner.children.push(n);
7065
+ nodes.splice(idx, 1);
7066
+ }
7067
+ }
6953
7068
  return { language: "go", nodes, imports, exports, errors };
6954
7069
  }
6955
7070
  };
@@ -7158,17 +7273,23 @@ var init_multi_lang_parser = __esm({
7158
7273
  for (const a of consumedAttrs) {
7159
7274
  modifiers.push(`#[${a.name}]`);
7160
7275
  }
7161
- const node = {
7162
- type: "class",
7163
- // impl blocks act like class extensions
7164
- name,
7165
- startLine: consumedAttrs.length > 0 ? consumedAttrs[0].line : lineNum,
7166
- endLine: lineNum,
7167
- children: [],
7168
- modifiers,
7169
- language: "rust"
7170
- };
7171
- nodes.push(node);
7276
+ const existingType = !traitName ? nodes.find((n) => n.name === typeName && (n.type === "struct" || n.type === "enum" || n.type === "class")) : void 0;
7277
+ let node;
7278
+ if (existingType) {
7279
+ node = existingType;
7280
+ } else {
7281
+ node = {
7282
+ type: "class",
7283
+ // impl blocks act like class extensions
7284
+ name,
7285
+ startLine: consumedAttrs.length > 0 ? consumedAttrs[0].line : lineNum,
7286
+ endLine: lineNum,
7287
+ children: [],
7288
+ modifiers,
7289
+ language: "rust"
7290
+ };
7291
+ nodes.push(node);
7292
+ }
7172
7293
  const blk = { type: "impl", name, startLine: lineNum };
7173
7294
  tracker.pushBlock(blk);
7174
7295
  blockNodeMap.set(blk, node);
@@ -7207,7 +7328,7 @@ var init_multi_lang_parser = __esm({
7207
7328
  const params = paramStr ? paramStr.split(",").map((p) => p.trim()).filter(Boolean) : [];
7208
7329
  const parentBlock = tracker.getCurrentBlock();
7209
7330
  const parentNode = parentBlock ? blockNodeMap.get(parentBlock) : void 0;
7210
- const isMethod = parentNode !== void 0 && (parentNode.type === "class" || parentNode.type === "trait");
7331
+ const isMethod = parentNode !== void 0 && (parentNode.type === "class" || parentNode.type === "trait" || parentNode.type === "struct" || parentNode.type === "enum");
7211
7332
  const node = {
7212
7333
  type: isMethod ? "method" : "function",
7213
7334
  name,
@@ -10887,7 +11008,7 @@ function parseSignatures(snippet) {
10887
11008
  let match;
10888
11009
  while ((match = re.exec(snippet)) !== null) {
10889
11010
  const name = match[1];
10890
- if (seen.has(name)) {
11011
+ if (seen.has(name) || CONTROL_KEYWORDS.has(name)) {
10891
11012
  continue;
10892
11013
  }
10893
11014
  seen.add(name);
@@ -10933,7 +11054,7 @@ function createEGraphEngine() {
10933
11054
  function createLibraryLearner() {
10934
11055
  return new LibraryLearner();
10935
11056
  }
10936
- var EGraphEngine, FUNCTION_SIG_RE, ARROW_FN_RE, METHOD_RE, LibraryLearner;
11057
+ var EGraphEngine, FUNCTION_SIG_RE, ARROW_FN_RE, METHOD_RE, CONTROL_KEYWORDS, LibraryLearner;
10937
11058
  var init_dist11 = __esm({
10938
11059
  "../library-learner/dist/index.js"() {
10939
11060
  "use strict";
@@ -10993,6 +11114,26 @@ var init_dist11 = __esm({
10993
11114
  FUNCTION_SIG_RE = /function\s+(\w+)\s*\(([^)]*)\)/g;
10994
11115
  ARROW_FN_RE = /(?:const|let|var)\s+(\w+)\s*=\s*(?:async\s+)?\(([^)]*)\)/g;
10995
11116
  METHOD_RE = /(\w+)\s*\(([^)]*)\)\s*\{/g;
11117
+ CONTROL_KEYWORDS = /* @__PURE__ */ new Set([
11118
+ "if",
11119
+ "for",
11120
+ "while",
11121
+ "switch",
11122
+ "catch",
11123
+ "return",
11124
+ "function",
11125
+ "do",
11126
+ "else",
11127
+ "with",
11128
+ "await",
11129
+ "yield",
11130
+ "typeof",
11131
+ "delete",
11132
+ "void",
11133
+ "in",
11134
+ "of",
11135
+ "new"
11136
+ ]);
10996
11137
  LibraryLearner = class {
10997
11138
  patterns = [];
10998
11139
  egraph;
@@ -13648,13 +13789,23 @@ var init_dist14 = __esm({
13648
13789
  for (const token of tokens) {
13649
13790
  tf.set(token, (tf.get(token) ?? 0) + 1);
13650
13791
  }
13792
+ const fitted = this.idfScores.size > 0;
13651
13793
  for (const [term, count] of tf) {
13794
+ const known = this.idfScores.get(term);
13795
+ if (known === void 0 && fitted) {
13796
+ continue;
13797
+ }
13652
13798
  const termFreq = count / tokens.length;
13653
- const idf = this.idfScores.get(term) ?? Math.log(this.documentCount + 1);
13799
+ const idf = known ?? 1;
13654
13800
  const tfidf = termFreq * idf;
13655
- const bucket = this._hash(term) % this.dimensions;
13656
- const sign = this._signHash(term) ? 1 : -1;
13657
- vec[bucket] += sign * tfidf;
13801
+ const vocabIdx = this.vocabulary.get(term);
13802
+ if (fitted && vocabIdx !== void 0) {
13803
+ vec[vocabIdx % this.dimensions] += tfidf;
13804
+ } else {
13805
+ const bucket = this._hash(term) % this.dimensions;
13806
+ const sign = this._signHash(term) ? 1 : -1;
13807
+ vec[bucket] += sign * tfidf;
13808
+ }
13658
13809
  }
13659
13810
  return vec;
13660
13811
  }
@@ -18971,16 +19122,15 @@ function extractCodegenTargets(content) {
18971
19122
  const parser = new MarkdownEARSParser();
18972
19123
  const targets = [];
18973
19124
  for (const req of parser.parse(content)) {
18974
- const op = deriveOperation(req.text, req.title);
18975
19125
  targets.push({
18976
19126
  name: toPascalCase(req.title || req.id),
18977
19127
  type: "class",
18978
- methods: [{ name: op, params: "", returnType: "void" }]
19128
+ methods: [deriveMethodSignature(req.text, req.title)]
18979
19129
  });
18980
19130
  }
18981
19131
  return targets;
18982
19132
  }
18983
- async function handleCodegen(nameOrFile, type = "class") {
19133
+ async function handleCodegen(nameOrFile, type = "class", outPath) {
18984
19134
  try {
18985
19135
  const generator = createCodeGenerator();
18986
19136
  if (existsSync11(nameOrFile) && statSync(nameOrFile).isFile()) {
@@ -18990,13 +19140,24 @@ async function handleCodegen(nameOrFile, type = "class") {
18990
19140
  console.error(`\u274C No components or requirements found in ${nameOrFile}. Pass a design JSON (with elements/sections) or a Markdown requirements file.`);
18991
19141
  return ExitCode.VALIDATION_ERROR;
18992
19142
  }
19143
+ const blocks = [];
18993
19144
  for (const t of targets) {
18994
19145
  const result2 = generator.generate({
18995
19146
  templateType: t.type,
18996
19147
  name: t.name,
18997
19148
  methods: t.methods.length > 0 ? t.methods : void 0
18998
19149
  });
18999
- console.log(result2.code);
19150
+ blocks.push(result2.code);
19151
+ }
19152
+ const code = blocks.join("\n\n");
19153
+ if (outPath) {
19154
+ writeFileSync3(outPath, code + "\n", "utf-8");
19155
+ console.error(`\u2705 Wrote ${targets.length} skeleton(s) to ${outPath}`);
19156
+ console.error(` Next: musubix test:gen ${outPath}`);
19157
+ return ExitCode.SUCCESS;
19158
+ }
19159
+ for (const block of blocks) {
19160
+ console.log(block);
19000
19161
  console.log("");
19001
19162
  }
19002
19163
  console.error(`\u2705 Generated ${targets.length} skeleton(s) from ${nameOrFile}`);
@@ -19007,6 +19168,12 @@ async function handleCodegen(nameOrFile, type = "class") {
19007
19168
  templateType: type,
19008
19169
  name: safeName
19009
19170
  });
19171
+ if (outPath) {
19172
+ writeFileSync3(outPath, result.code + "\n", "utf-8");
19173
+ console.error(`\u2705 Wrote skeleton to ${outPath}`);
19174
+ console.error(` Next: musubix test:gen ${outPath}`);
19175
+ return ExitCode.SUCCESS;
19176
+ }
19010
19177
  console.log(result.code);
19011
19178
  return ExitCode.SUCCESS;
19012
19179
  } catch (err) {
@@ -19959,11 +20126,11 @@ function getDefaultCommands() {
19959
20126
  }
19960
20127
  const name = resolveTarget(args, ["generate"]);
19961
20128
  if (!name) {
19962
- console.error("\u274C Usage: musubix codegen [generate] <name> [--type class|interface|function|...]");
20129
+ console.error("\u274C Usage: musubix codegen [generate] <name> [--type class|interface|function|...] [--out <file>]");
19963
20130
  return ExitCode.VALIDATION_ERROR;
19964
20131
  }
19965
20132
  const type = args["type"] ?? "class";
19966
- return await handleCodegen(name, type);
20133
+ return await handleCodegen(name, type, args["out"]);
19967
20134
  }
19968
20135
  },
19969
20136
  {