@agiflowai/scaffold-mcp 1.0.26 → 1.1.0
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/dist/{ListScaffoldingMethodsTool-DBwZzJTA.cjs → ListScaffoldingMethodsTool-CYZtpU-W.cjs} +109 -126
- package/dist/{ListScaffoldingMethodsTool-D6BkKQyK.mjs → ListScaffoldingMethodsTool-DxdrPlcb.mjs} +32 -44
- package/dist/{claudeCode-B6CWgRYJ.cjs → claudeCode-BxcEboyM.cjs} +54 -57
- package/dist/{claudeCode-Dozuzn4S.mjs → claudeCode-DNgNiLlL.mjs} +7 -10
- package/dist/cli.cjs +141 -147
- package/dist/cli.mjs +9 -15
- package/dist/{geminiCli-COS3X1P7.cjs → geminiCli--s1Qy7ZP.cjs} +35 -37
- package/dist/{geminiCli-CzgQDDMl.mjs → geminiCli-CcrZEqsz.mjs} +3 -5
- package/dist/index.cjs +5 -5
- package/dist/index.d.cts +3 -7
- package/dist/index.d.mts +3 -9
- package/dist/index.mjs +4 -5
- package/dist/{shared-oDx2Btq0.mjs → shared-BVYIN3Is.mjs} +4 -10
- package/dist/{shared-fkWett9D.cjs → shared-QxPXh-L-.cjs} +17 -23
- package/dist/{src-sY88BbkJ.mjs → src-BEwgHhCT.mjs} +12 -30
- package/dist/{src-DxoKQE4s.cjs → src-oF_UdSBu.cjs} +59 -77
- package/dist/{tools-DsnQImJ1.cjs → tools-CVSZSirE.cjs} +103 -109
- package/dist/{tools-t-HMGLVh.mjs → tools-Cl06aoBi.mjs} +13 -19
- package/package.json +21 -21
package/dist/{ListScaffoldingMethodsTool-DBwZzJTA.cjs → ListScaffoldingMethodsTool-CYZtpU-W.cjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -6,16 +6,12 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
8
|
var __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
19
15
|
}
|
|
20
16
|
return to;
|
|
21
17
|
};
|
|
@@ -23,18 +19,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
19
|
value: mod,
|
|
24
20
|
enumerable: true
|
|
25
21
|
}) : target, mod));
|
|
26
|
-
|
|
27
22
|
//#endregion
|
|
28
|
-
let
|
|
23
|
+
let _agiflowai_aicode_utils = require("@agiflowai/aicode-utils");
|
|
29
24
|
let zod = require("zod");
|
|
30
25
|
let liquidjs = require("liquidjs");
|
|
31
26
|
let node_path = require("node:path");
|
|
32
|
-
node_path = __toESM(node_path);
|
|
27
|
+
node_path = __toESM(node_path, 1);
|
|
33
28
|
let js_yaml = require("js-yaml");
|
|
34
|
-
js_yaml = __toESM(js_yaml);
|
|
35
|
-
|
|
29
|
+
js_yaml = __toESM(js_yaml, 1);
|
|
30
|
+
require("@composio/json-schema-to-zod");
|
|
36
31
|
let node_url = require("node:url");
|
|
37
|
-
|
|
38
32
|
//#region src/services/TemplateService.ts
|
|
39
33
|
var TemplateService = class {
|
|
40
34
|
liquid;
|
|
@@ -44,7 +38,7 @@ var TemplateService = class {
|
|
|
44
38
|
strictVariables: false
|
|
45
39
|
});
|
|
46
40
|
this.setupCustomFilters();
|
|
47
|
-
|
|
41
|
+
_agiflowai_aicode_utils.log.info("TemplateService initialized");
|
|
48
42
|
}
|
|
49
43
|
toPascalCase(str) {
|
|
50
44
|
const camelCase = str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : "");
|
|
@@ -88,15 +82,15 @@ var TemplateService = class {
|
|
|
88
82
|
}
|
|
89
83
|
renderString(template, variables) {
|
|
90
84
|
try {
|
|
91
|
-
|
|
85
|
+
_agiflowai_aicode_utils.log.debug("Rendering template", {
|
|
92
86
|
variables,
|
|
93
87
|
templatePreview: template.substring(0, 100)
|
|
94
88
|
});
|
|
95
89
|
const result = this.liquid.parseAndRenderSync(template, variables);
|
|
96
|
-
|
|
90
|
+
_agiflowai_aicode_utils.log.debug("Rendered template", { resultPreview: result.substring(0, 100) });
|
|
97
91
|
return result;
|
|
98
92
|
} catch (error) {
|
|
99
|
-
|
|
93
|
+
_agiflowai_aicode_utils.log.error("LiquidJS rendering error", {
|
|
100
94
|
error: error instanceof Error ? error.message : String(error),
|
|
101
95
|
templatePreview: template.substring(0, 200),
|
|
102
96
|
variables
|
|
@@ -108,7 +102,6 @@ var TemplateService = class {
|
|
|
108
102
|
return [/\{\{.*?\}\}/, /\{%.*?%\}/].some((pattern) => pattern.test(content));
|
|
109
103
|
}
|
|
110
104
|
};
|
|
111
|
-
|
|
112
105
|
//#endregion
|
|
113
106
|
//#region src/utils/pagination.ts
|
|
114
107
|
var PaginationHelper = class PaginationHelper {
|
|
@@ -158,41 +151,39 @@ var PaginationHelper = class PaginationHelper {
|
|
|
158
151
|
return result;
|
|
159
152
|
}
|
|
160
153
|
};
|
|
161
|
-
|
|
162
154
|
//#endregion
|
|
163
155
|
//#region src/services/FileSystemService.ts
|
|
164
156
|
var FileSystemService = class {
|
|
165
|
-
async pathExists(path
|
|
166
|
-
return (0,
|
|
157
|
+
async pathExists(path) {
|
|
158
|
+
return (0, _agiflowai_aicode_utils.pathExists)(path);
|
|
167
159
|
}
|
|
168
|
-
async readFile(path
|
|
169
|
-
return (0,
|
|
160
|
+
async readFile(path, encoding = "utf8") {
|
|
161
|
+
return (0, _agiflowai_aicode_utils.readFile)(path, encoding);
|
|
170
162
|
}
|
|
171
|
-
async readJson(path
|
|
172
|
-
return (0,
|
|
163
|
+
async readJson(path) {
|
|
164
|
+
return (0, _agiflowai_aicode_utils.readJson)(path);
|
|
173
165
|
}
|
|
174
|
-
async writeFile(path
|
|
175
|
-
return (0,
|
|
166
|
+
async writeFile(path, content, encoding = "utf8") {
|
|
167
|
+
return (0, _agiflowai_aicode_utils.writeFile)(path, content, encoding);
|
|
176
168
|
}
|
|
177
|
-
async ensureDir(path
|
|
178
|
-
return (0,
|
|
169
|
+
async ensureDir(path) {
|
|
170
|
+
return (0, _agiflowai_aicode_utils.ensureDir)(path);
|
|
179
171
|
}
|
|
180
172
|
async copy(src, dest) {
|
|
181
|
-
return (0,
|
|
173
|
+
return (0, _agiflowai_aicode_utils.copy)(src, dest);
|
|
182
174
|
}
|
|
183
|
-
async readdir(path
|
|
184
|
-
return (0,
|
|
175
|
+
async readdir(path) {
|
|
176
|
+
return (0, _agiflowai_aicode_utils.readdir)(path);
|
|
185
177
|
}
|
|
186
|
-
async stat(path
|
|
187
|
-
return (0,
|
|
178
|
+
async stat(path) {
|
|
179
|
+
return (0, _agiflowai_aicode_utils.stat)(path);
|
|
188
180
|
}
|
|
189
181
|
};
|
|
190
|
-
|
|
191
182
|
//#endregion
|
|
192
183
|
//#region src/services/ScaffoldConfigLoader.ts
|
|
193
184
|
const VariablesSchemaSchema = zod.z.object({
|
|
194
185
|
type: zod.z.literal("object"),
|
|
195
|
-
properties: zod.z.record(zod.z.any()),
|
|
186
|
+
properties: zod.z.record(zod.z.string(), zod.z.any()),
|
|
196
187
|
required: zod.z.array(zod.z.string()),
|
|
197
188
|
additionalProperties: zod.z.boolean()
|
|
198
189
|
});
|
|
@@ -224,7 +215,7 @@ var ScaffoldConfigLoader = class {
|
|
|
224
215
|
return ScaffoldYamlSchema.parse(rawConfig);
|
|
225
216
|
} catch (error) {
|
|
226
217
|
if (error instanceof zod.z.ZodError) {
|
|
227
|
-
const errorMessages = error.
|
|
218
|
+
const errorMessages = error.issues.map((err) => `${err.path.join(".")}: ${err.message}`).join("; ");
|
|
228
219
|
throw new Error(`scaffold.yaml validation failed: ${errorMessages}`);
|
|
229
220
|
}
|
|
230
221
|
throw new Error(`Failed to parse scaffold.yaml: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -327,7 +318,6 @@ var ScaffoldConfigLoader = class {
|
|
|
327
318
|
};
|
|
328
319
|
}
|
|
329
320
|
};
|
|
330
|
-
|
|
331
321
|
//#endregion
|
|
332
322
|
//#region src/utils/schemaDefaults.ts
|
|
333
323
|
/**
|
|
@@ -344,7 +334,6 @@ function applySchemaDefaults(schema, variables) {
|
|
|
344
334
|
for (const [key, propSchema] of Object.entries(schema.properties)) if (result[key] === void 0 && propSchema.default !== void 0) result[key] = propSchema.default;
|
|
345
335
|
return result;
|
|
346
336
|
}
|
|
347
|
-
|
|
348
337
|
//#endregion
|
|
349
338
|
//#region src/services/ScaffoldProcessingService.ts
|
|
350
339
|
/**
|
|
@@ -405,7 +394,7 @@ var ScaffoldProcessingService = class {
|
|
|
405
394
|
try {
|
|
406
395
|
items = await this.fileSystem.readdir(dirPath);
|
|
407
396
|
} catch (error) {
|
|
408
|
-
|
|
397
|
+
_agiflowai_aicode_utils.log.warn(`Cannot read directory ${dirPath}: ${error}`);
|
|
409
398
|
return;
|
|
410
399
|
}
|
|
411
400
|
const itemPaths = items.filter((item) => item).map((item) => node_path.default.join(dirPath, item));
|
|
@@ -417,7 +406,7 @@ var ScaffoldProcessingService = class {
|
|
|
417
406
|
error: null
|
|
418
407
|
};
|
|
419
408
|
} catch (error) {
|
|
420
|
-
|
|
409
|
+
_agiflowai_aicode_utils.log.warn(`Cannot stat ${itemPath}: ${error}`);
|
|
421
410
|
return {
|
|
422
411
|
itemPath,
|
|
423
412
|
stat: null,
|
|
@@ -441,7 +430,7 @@ var ScaffoldProcessingService = class {
|
|
|
441
430
|
try {
|
|
442
431
|
items = await this.fileSystem.readdir(dirPath);
|
|
443
432
|
} catch (error) {
|
|
444
|
-
|
|
433
|
+
_agiflowai_aicode_utils.log.warn(`Cannot read directory ${dirPath}: ${error}`);
|
|
445
434
|
return;
|
|
446
435
|
}
|
|
447
436
|
const itemPaths = items.filter((item) => item).map((item) => node_path.default.join(dirPath, item));
|
|
@@ -453,7 +442,7 @@ var ScaffoldProcessingService = class {
|
|
|
453
442
|
error: null
|
|
454
443
|
};
|
|
455
444
|
} catch (error) {
|
|
456
|
-
|
|
445
|
+
_agiflowai_aicode_utils.log.warn(`Cannot stat ${itemPath}: ${error}`);
|
|
457
446
|
return {
|
|
458
447
|
itemPath,
|
|
459
448
|
stat: null,
|
|
@@ -470,7 +459,6 @@ var ScaffoldProcessingService = class {
|
|
|
470
459
|
await Promise.all(directories.map((dir) => this.trackExistingFilesRecursive(dir, existingFiles)));
|
|
471
460
|
}
|
|
472
461
|
};
|
|
473
|
-
|
|
474
462
|
//#endregion
|
|
475
463
|
//#region src/services/ScaffoldService.ts
|
|
476
464
|
var ScaffoldService = class ScaffoldService {
|
|
@@ -481,7 +469,7 @@ var ScaffoldService = class ScaffoldService {
|
|
|
481
469
|
this.fileSystem = fileSystem;
|
|
482
470
|
this.scaffoldConfigLoader = scaffoldConfigLoader;
|
|
483
471
|
this.variableReplacer = variableReplacer;
|
|
484
|
-
const resolvedPath = templatesRootPath ||
|
|
472
|
+
const resolvedPath = templatesRootPath || _agiflowai_aicode_utils.TemplatesManagerService.findTemplatesPathSync();
|
|
485
473
|
if (!resolvedPath) throw new Error("Templates folder not found. Please create a \"templates\" folder in your workspace root, or specify \"templatesPath\" in toolkit.yaml to point to your templates directory.");
|
|
486
474
|
this.templatesRootPath = resolvedPath;
|
|
487
475
|
this.processingService = new ScaffoldProcessingService(fileSystem, variableReplacer);
|
|
@@ -506,7 +494,7 @@ var ScaffoldService = class ScaffoldService {
|
|
|
506
494
|
};
|
|
507
495
|
}
|
|
508
496
|
const architectConfig = await this.scaffoldConfigLoader.parseArchitectConfig(templatePath);
|
|
509
|
-
if (!architectConfig
|
|
497
|
+
if (!architectConfig?.boilerplate) return {
|
|
510
498
|
success: false,
|
|
511
499
|
message: `Invalid architect configuration: missing 'boilerplate' section in scaffold.yaml`
|
|
512
500
|
};
|
|
@@ -559,7 +547,7 @@ var ScaffoldService = class ScaffoldService {
|
|
|
559
547
|
message: `Target directory ${targetPath} does not exist. Please create the parent directory first.`
|
|
560
548
|
};
|
|
561
549
|
const architectConfig = await this.scaffoldConfigLoader.parseArchitectConfig(templatePath);
|
|
562
|
-
if (!architectConfig
|
|
550
|
+
if (!architectConfig?.features) return {
|
|
563
551
|
success: false,
|
|
564
552
|
message: `Invalid architect configuration: missing 'features' section in scaffold.yaml`
|
|
565
553
|
};
|
|
@@ -613,7 +601,7 @@ var ScaffoldService = class ScaffoldService {
|
|
|
613
601
|
if (content.startsWith(markerComment)) continue;
|
|
614
602
|
await this.fileSystem.writeFile(filePath, `${markerComment}\n${content}`);
|
|
615
603
|
} catch (error) {
|
|
616
|
-
|
|
604
|
+
_agiflowai_aicode_utils.log.warn(`Failed to inject scaffold marker into ${filePath}:`, error);
|
|
617
605
|
}
|
|
618
606
|
}
|
|
619
607
|
}
|
|
@@ -622,10 +610,10 @@ var ScaffoldService = class ScaffoldService {
|
|
|
622
610
|
*/
|
|
623
611
|
async processScaffold(params) {
|
|
624
612
|
const { config, targetPath, templatePath, allVariables, scaffoldType, marker } = params;
|
|
625
|
-
|
|
626
|
-
|
|
613
|
+
_agiflowai_aicode_utils.log.debug("Config generator:", config.generator);
|
|
614
|
+
_agiflowai_aicode_utils.log.debug("Config:", JSON.stringify(config, null, 2));
|
|
627
615
|
if (config.generator) {
|
|
628
|
-
|
|
616
|
+
_agiflowai_aicode_utils.log.info("Using custom generator:", config.generator);
|
|
629
617
|
try {
|
|
630
618
|
const generator = (await import(node_path.default.join(templatePath, "generators", config.generator))).default;
|
|
631
619
|
if (typeof generator !== "function") return {
|
|
@@ -642,12 +630,12 @@ var ScaffoldService = class ScaffoldService {
|
|
|
642
630
|
variableReplacer: this.variableReplacer,
|
|
643
631
|
ScaffoldProcessingService: this.processingService.constructor,
|
|
644
632
|
getRootPath: () => {
|
|
645
|
-
const __dirname
|
|
646
|
-
return node_path.default.join(__dirname
|
|
633
|
+
const __dirname = node_path.default.dirname((0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href));
|
|
634
|
+
return node_path.default.join(__dirname, "../../../../..");
|
|
647
635
|
},
|
|
648
636
|
getProjectPath: (projectPath) => {
|
|
649
|
-
const __dirname
|
|
650
|
-
const rootPath = node_path.default.join(__dirname
|
|
637
|
+
const __dirname = node_path.default.dirname((0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href));
|
|
638
|
+
const rootPath = node_path.default.join(__dirname, "../../../../..");
|
|
651
639
|
return projectPath.replace(rootPath, "").replace("/", "");
|
|
652
640
|
}
|
|
653
641
|
});
|
|
@@ -696,7 +684,6 @@ var ScaffoldService = class ScaffoldService {
|
|
|
696
684
|
};
|
|
697
685
|
}
|
|
698
686
|
};
|
|
699
|
-
|
|
700
687
|
//#endregion
|
|
701
688
|
//#region src/services/VariableReplacementService.ts
|
|
702
689
|
var VariableReplacementService = class {
|
|
@@ -728,7 +715,7 @@ var VariableReplacementService = class {
|
|
|
728
715
|
try {
|
|
729
716
|
items = await this.fileSystem.readdir(dirPath);
|
|
730
717
|
} catch (error) {
|
|
731
|
-
|
|
718
|
+
_agiflowai_aicode_utils.log.warn(`Skipping directory ${dirPath}: ${error}`);
|
|
732
719
|
return;
|
|
733
720
|
}
|
|
734
721
|
const itemPaths = items.filter((item) => item).map((item) => node_path.default.join(dirPath, item));
|
|
@@ -740,7 +727,7 @@ var VariableReplacementService = class {
|
|
|
740
727
|
error: null
|
|
741
728
|
};
|
|
742
729
|
} catch (error) {
|
|
743
|
-
|
|
730
|
+
_agiflowai_aicode_utils.log.warn(`Skipping item ${itemPath}: ${error}`);
|
|
744
731
|
return {
|
|
745
732
|
itemPath,
|
|
746
733
|
stat: null,
|
|
@@ -764,7 +751,7 @@ var VariableReplacementService = class {
|
|
|
764
751
|
const renderedContent = this.templateService.renderString(content, variables);
|
|
765
752
|
await this.fileSystem.writeFile(filePath, renderedContent, "utf8");
|
|
766
753
|
} catch (error) {
|
|
767
|
-
|
|
754
|
+
_agiflowai_aicode_utils.log.warn(`Skipping file ${filePath}: ${error}`);
|
|
768
755
|
}
|
|
769
756
|
}
|
|
770
757
|
isBinaryFile(filePath) {
|
|
@@ -772,7 +759,6 @@ var VariableReplacementService = class {
|
|
|
772
759
|
return this.binaryExtensions.includes(ext);
|
|
773
760
|
}
|
|
774
761
|
};
|
|
775
|
-
|
|
776
762
|
//#endregion
|
|
777
763
|
//#region src/services/ScaffoldingMethodsService.ts
|
|
778
764
|
var ScaffoldingMethodsService = class {
|
|
@@ -784,7 +770,7 @@ var ScaffoldingMethodsService = class {
|
|
|
784
770
|
}
|
|
785
771
|
async listScaffoldingMethods(projectPath, cursor) {
|
|
786
772
|
const absoluteProjectPath = node_path.default.resolve(projectPath);
|
|
787
|
-
const sourceTemplate = (await
|
|
773
|
+
const sourceTemplate = (await _agiflowai_aicode_utils.ProjectConfigResolver.resolveProjectConfig(absoluteProjectPath)).sourceTemplate;
|
|
788
774
|
return this.listScaffoldingMethodsByTemplate(sourceTemplate, cursor);
|
|
789
775
|
}
|
|
790
776
|
/**
|
|
@@ -865,7 +851,7 @@ var ScaffoldingMethodsService = class {
|
|
|
865
851
|
for (const boilerplate of architectConfig.boilerplate) if (boilerplate.name?.includes(sourceTemplate)) return templateDir;
|
|
866
852
|
}
|
|
867
853
|
} catch (error) {
|
|
868
|
-
|
|
854
|
+
_agiflowai_aicode_utils.log.warn(`Failed to read scaffold.yaml at ${scaffoldYamlPath}:`, error);
|
|
869
855
|
}
|
|
870
856
|
}
|
|
871
857
|
return null;
|
|
@@ -876,7 +862,7 @@ var ScaffoldingMethodsService = class {
|
|
|
876
862
|
*/
|
|
877
863
|
async resolveProjectPath(projectPath) {
|
|
878
864
|
const absolutePath = node_path.default.resolve(projectPath);
|
|
879
|
-
return (await
|
|
865
|
+
return (await _agiflowai_aicode_utils.ProjectConfigResolver.resolveProjectConfig(absolutePath)).workspaceRoot || absolutePath;
|
|
880
866
|
}
|
|
881
867
|
/**
|
|
882
868
|
* Dynamically discovers all template directories
|
|
@@ -939,20 +925,20 @@ var ScaffoldingMethodsService = class {
|
|
|
939
925
|
}));
|
|
940
926
|
for (const relativePath of subResults) if (relativePath) found.push(relativePath);
|
|
941
927
|
} catch (error) {
|
|
942
|
-
|
|
928
|
+
_agiflowai_aicode_utils.log.warn(`Failed to read subdirectories in ${itemPath}:`, error);
|
|
943
929
|
}
|
|
944
930
|
return found;
|
|
945
931
|
}));
|
|
946
932
|
for (const dirs of nestedResults) templateDirs.push(...dirs);
|
|
947
933
|
} catch (error) {
|
|
948
|
-
|
|
934
|
+
_agiflowai_aicode_utils.log.warn(`Failed to read templates root directory ${this.templatesRootPath}:`, error);
|
|
949
935
|
}
|
|
950
936
|
return templateDirs;
|
|
951
937
|
}
|
|
952
938
|
async useScaffoldMethod(request) {
|
|
953
939
|
const { projectPath, scaffold_feature_name, variables, sessionId, marker } = request;
|
|
954
940
|
const absoluteProjectPath = await this.resolveProjectPath(projectPath);
|
|
955
|
-
const sourceTemplate = (await
|
|
941
|
+
const sourceTemplate = (await _agiflowai_aicode_utils.ProjectConfigResolver.resolveProjectConfig(absoluteProjectPath)).sourceTemplate;
|
|
956
942
|
const { templatePath, methods: allMethods } = await this.collectAllMethodsByTemplate(sourceTemplate);
|
|
957
943
|
const method = allMethods.find((m) => m.name === scaffold_feature_name);
|
|
958
944
|
if (!method) {
|
|
@@ -985,7 +971,7 @@ var ScaffoldingMethodsService = class {
|
|
|
985
971
|
generatedFiles: result.createdFiles
|
|
986
972
|
});
|
|
987
973
|
} catch (error) {
|
|
988
|
-
|
|
974
|
+
_agiflowai_aicode_utils.log.warn("Failed to log scaffold execution:", error);
|
|
989
975
|
}
|
|
990
976
|
return {
|
|
991
977
|
success: true,
|
|
@@ -1000,11 +986,9 @@ Please follow this **instruction**: \n ${method.instruction ? this.processScaffo
|
|
|
1000
986
|
};
|
|
1001
987
|
}
|
|
1002
988
|
};
|
|
1003
|
-
|
|
1004
989
|
//#endregion
|
|
1005
990
|
//#region src/instructions/tools/list-scaffolding-methods/description.md?raw
|
|
1006
991
|
var description_default = "Lists all available scaffolding methods (features) that can be added to an existing project{% if not isMonolith %} or for a specific template{% endif %}.\n\nThis tool:\n{% if isMonolith %}\n- Reads your project's sourceTemplate from .toolkit/settings.yaml at workspace root\n{% else %}\n- Reads the project's sourceTemplate from project.json (monorepo) or .toolkit/settings.yaml (monolith), OR\n- Directly uses the provided templateName to list available features\n{% endif %}\n- Returns available features for that template type\n- Provides variable schemas for each scaffolding method\n- Shows descriptions of what each method creates\n\nUse this FIRST when adding features to understand:\n- What scaffolding methods are available\n- What variables each method requires\n- What files/features will be generated\n\nExample methods might include:\n- Adding new React routes (for React apps)\n- Creating API endpoints (for backend projects)\n- Adding new components (for frontend projects)\n- Setting up database models (for API projects)\n";
|
|
1007
|
-
|
|
1008
992
|
//#endregion
|
|
1009
993
|
//#region src/tools/ListScaffoldingMethodsTool.ts
|
|
1010
994
|
var ListScaffoldingMethodsTool = class ListScaffoldingMethodsTool {
|
|
@@ -1056,7 +1040,7 @@ var ListScaffoldingMethodsTool = class ListScaffoldingMethodsTool {
|
|
|
1056
1040
|
const { projectPath, templateName, cursor } = args;
|
|
1057
1041
|
let result;
|
|
1058
1042
|
if (this.isMonolith) try {
|
|
1059
|
-
const resolvedTemplateName = (await
|
|
1043
|
+
const resolvedTemplateName = (await _agiflowai_aicode_utils.ProjectConfigResolver.resolveProjectConfig(process.cwd())).sourceTemplate;
|
|
1060
1044
|
result = await this.scaffoldingMethodsService.listScaffoldingMethodsByTemplate(resolvedTemplateName, cursor);
|
|
1061
1045
|
} catch (error) {
|
|
1062
1046
|
throw new Error(`Failed to read template name from configuration: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -1081,65 +1065,64 @@ var ListScaffoldingMethodsTool = class ListScaffoldingMethodsTool {
|
|
|
1081
1065
|
}
|
|
1082
1066
|
}
|
|
1083
1067
|
};
|
|
1084
|
-
|
|
1085
1068
|
//#endregion
|
|
1086
|
-
Object.defineProperty(exports,
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1069
|
+
Object.defineProperty(exports, "FileSystemService", {
|
|
1070
|
+
enumerable: true,
|
|
1071
|
+
get: function() {
|
|
1072
|
+
return FileSystemService;
|
|
1073
|
+
}
|
|
1091
1074
|
});
|
|
1092
|
-
Object.defineProperty(exports,
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1075
|
+
Object.defineProperty(exports, "ListScaffoldingMethodsTool", {
|
|
1076
|
+
enumerable: true,
|
|
1077
|
+
get: function() {
|
|
1078
|
+
return ListScaffoldingMethodsTool;
|
|
1079
|
+
}
|
|
1097
1080
|
});
|
|
1098
|
-
Object.defineProperty(exports,
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1081
|
+
Object.defineProperty(exports, "PaginationHelper", {
|
|
1082
|
+
enumerable: true,
|
|
1083
|
+
get: function() {
|
|
1084
|
+
return PaginationHelper;
|
|
1085
|
+
}
|
|
1103
1086
|
});
|
|
1104
|
-
Object.defineProperty(exports,
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1087
|
+
Object.defineProperty(exports, "ScaffoldConfigLoader", {
|
|
1088
|
+
enumerable: true,
|
|
1089
|
+
get: function() {
|
|
1090
|
+
return ScaffoldConfigLoader;
|
|
1091
|
+
}
|
|
1109
1092
|
});
|
|
1110
|
-
Object.defineProperty(exports,
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1093
|
+
Object.defineProperty(exports, "ScaffoldProcessingService", {
|
|
1094
|
+
enumerable: true,
|
|
1095
|
+
get: function() {
|
|
1096
|
+
return ScaffoldProcessingService;
|
|
1097
|
+
}
|
|
1115
1098
|
});
|
|
1116
|
-
Object.defineProperty(exports,
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1099
|
+
Object.defineProperty(exports, "ScaffoldService", {
|
|
1100
|
+
enumerable: true,
|
|
1101
|
+
get: function() {
|
|
1102
|
+
return ScaffoldService;
|
|
1103
|
+
}
|
|
1121
1104
|
});
|
|
1122
|
-
Object.defineProperty(exports,
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1105
|
+
Object.defineProperty(exports, "ScaffoldingMethodsService", {
|
|
1106
|
+
enumerable: true,
|
|
1107
|
+
get: function() {
|
|
1108
|
+
return ScaffoldingMethodsService;
|
|
1109
|
+
}
|
|
1127
1110
|
});
|
|
1128
|
-
Object.defineProperty(exports,
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1111
|
+
Object.defineProperty(exports, "TemplateService", {
|
|
1112
|
+
enumerable: true,
|
|
1113
|
+
get: function() {
|
|
1114
|
+
return TemplateService;
|
|
1115
|
+
}
|
|
1133
1116
|
});
|
|
1134
|
-
Object.defineProperty(exports,
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1117
|
+
Object.defineProperty(exports, "VariableReplacementService", {
|
|
1118
|
+
enumerable: true,
|
|
1119
|
+
get: function() {
|
|
1120
|
+
return VariableReplacementService;
|
|
1121
|
+
}
|
|
1122
|
+
});
|
|
1123
|
+
Object.defineProperty(exports, "__toESM", {
|
|
1124
|
+
enumerable: true,
|
|
1125
|
+
get: function() {
|
|
1126
|
+
return __toESM;
|
|
1127
|
+
}
|
|
1139
1128
|
});
|
|
1140
|
-
Object.defineProperty(exports, '__toESM', {
|
|
1141
|
-
enumerable: true,
|
|
1142
|
-
get: function () {
|
|
1143
|
-
return __toESM;
|
|
1144
|
-
}
|
|
1145
|
-
});
|