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.
- package/.claude/.musubix-managed +1 -1
- package/dist/assets/skills-manifest.json +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +199 -32
- package/dist/cli.js.map +1 -1
- package/dist/index.js +199 -32
- package/package.json +1 -1
package/.claude/.musubix-managed
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"generator":"musubix2","version":"0.5.
|
|
1
|
+
{"generator":"musubix2","version":"0.5.47","timestamp":"2026-07-10T04:30:56.610Z"}
|
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":"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
|
|
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
|
|
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
|
|
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
|
|
2705
|
-
const compName = this.pascal(r.title ||
|
|
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: [
|
|
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
|
|
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
|
|
7162
|
-
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
|
|
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 =
|
|
13799
|
+
const idf = known ?? 1;
|
|
13654
13800
|
const tfidf = termFreq * idf;
|
|
13655
|
-
const
|
|
13656
|
-
|
|
13657
|
-
|
|
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: [
|
|
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
|
-
|
|
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
|
{
|