forgecraft-mcp 0.2.0 → 0.3.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/README.md +25 -5
- package/dist/analyzers/language-detector.d.ts +17 -0
- package/dist/analyzers/language-detector.d.ts.map +1 -0
- package/dist/analyzers/language-detector.js +89 -0
- package/dist/analyzers/language-detector.js.map +1 -0
- package/dist/analyzers/package-json.d.ts.map +1 -1
- package/dist/analyzers/package-json.js +5 -5
- package/dist/analyzers/package-json.js.map +1 -1
- package/dist/analyzers/project-context.d.ts +23 -0
- package/dist/analyzers/project-context.d.ts.map +1 -0
- package/dist/analyzers/project-context.js +181 -0
- package/dist/analyzers/project-context.js.map +1 -0
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/registry/composer.d.ts +3 -1
- package/dist/registry/composer.d.ts.map +1 -1
- package/dist/registry/composer.js +28 -0
- package/dist/registry/composer.js.map +1 -1
- package/dist/registry/loader.d.ts.map +1 -1
- package/dist/registry/loader.js +65 -1
- package/dist/registry/loader.js.map +1 -1
- package/dist/registry/mcp-discovery.d.ts +82 -0
- package/dist/registry/mcp-discovery.d.ts.map +1 -0
- package/dist/registry/mcp-discovery.js +203 -0
- package/dist/registry/mcp-discovery.js.map +1 -0
- package/dist/registry/renderer.d.ts +19 -2
- package/dist/registry/renderer.d.ts.map +1 -1
- package/dist/registry/renderer.js +64 -2
- package/dist/registry/renderer.js.map +1 -1
- package/dist/shared/errors/index.d.ts +4 -0
- package/dist/shared/errors/index.d.ts.map +1 -1
- package/dist/shared/errors/index.js +6 -0
- package/dist/shared/errors/index.js.map +1 -1
- package/dist/shared/filesystem.d.ts +45 -0
- package/dist/shared/filesystem.d.ts.map +1 -0
- package/dist/shared/filesystem.js +122 -0
- package/dist/shared/filesystem.js.map +1 -0
- package/dist/shared/types.d.ts +92 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +6 -0
- package/dist/shared/types.js.map +1 -1
- package/dist/tools/configure-mcp.d.ts +24 -0
- package/dist/tools/configure-mcp.d.ts.map +1 -1
- package/dist/tools/configure-mcp.js +123 -24
- package/dist/tools/configure-mcp.js.map +1 -1
- package/dist/tools/generate-claude-md.d.ts +1 -0
- package/dist/tools/generate-claude-md.d.ts.map +1 -1
- package/dist/tools/generate-claude-md.js +23 -57
- package/dist/tools/generate-claude-md.js.map +1 -1
- package/dist/tools/get-reference.d.ts +28 -0
- package/dist/tools/get-reference.d.ts.map +1 -0
- package/dist/tools/get-reference.js +63 -0
- package/dist/tools/get-reference.js.map +1 -0
- package/dist/tools/list.d.ts +18 -2
- package/dist/tools/list.d.ts.map +1 -1
- package/dist/tools/list.js +74 -2
- package/dist/tools/list.js.map +1 -1
- package/dist/tools/refresh-project.d.ts.map +1 -1
- package/dist/tools/refresh-project.js +8 -10
- package/dist/tools/refresh-project.js.map +1 -1
- package/dist/tools/scaffold.d.ts +4 -0
- package/dist/tools/scaffold.d.ts.map +1 -1
- package/dist/tools/scaffold.js +58 -31
- package/dist/tools/scaffold.js.map +1 -1
- package/dist/tools/setup-project.d.ts.map +1 -1
- package/dist/tools/setup-project.js +5 -1
- package/dist/tools/setup-project.js.map +1 -1
- package/package.json +7 -3
- package/templates/analytics/mcp-servers.yaml +11 -0
- package/templates/api/mcp-servers.yaml +13 -0
- package/templates/api/skills.yaml +54 -0
- package/templates/cli/mcp-servers.yaml +11 -0
- package/templates/data-lineage/instructions.yaml +28 -0
- package/templates/data-lineage/mcp-servers.yaml +22 -0
- package/templates/data-pipeline/mcp-servers.yaml +13 -0
- package/templates/data-pipeline/skills.yaml +56 -0
- package/templates/fintech/mcp-servers.yaml +13 -0
- package/templates/fintech/skills.yaml +35 -0
- package/templates/game/mcp-servers.yaml +11 -0
- package/templates/healthcare/mcp-servers.yaml +13 -0
- package/templates/healthcare/skills.yaml +35 -0
- package/templates/hipaa/instructions.yaml +41 -0
- package/templates/hipaa/mcp-servers.yaml +13 -0
- package/templates/hipaa/skills.yaml +39 -0
- package/templates/infra/mcp-servers.yaml +20 -0
- package/templates/library/mcp-servers.yaml +20 -0
- package/templates/medallion-architecture/instructions.yaml +41 -0
- package/templates/medallion-architecture/mcp-servers.yaml +22 -0
- package/templates/ml/mcp-servers.yaml +11 -0
- package/templates/mobile/mcp-servers.yaml +11 -0
- package/templates/observability-xray/instructions.yaml +40 -0
- package/templates/observability-xray/mcp-servers.yaml +15 -0
- package/templates/realtime/mcp-servers.yaml +13 -0
- package/templates/soc2/instructions.yaml +41 -0
- package/templates/soc2/mcp-servers.yaml +24 -0
- package/templates/social/mcp-servers.yaml +24 -0
- package/templates/state-machine/mcp-servers.yaml +11 -0
- package/templates/universal/hooks.yaml +63 -0
- package/templates/universal/instructions.yaml +41 -118
- package/templates/universal/mcp-servers.yaml +38 -0
- package/templates/universal/nfr.yaml +1 -1
- package/templates/universal/reference.yaml +111 -0
- package/templates/universal/review.yaml +2 -2
- package/templates/universal/skills.yaml +106 -0
- package/templates/web-react/mcp-servers.yaml +20 -0
- package/templates/web-react/skills.yaml +56 -0
- package/templates/web-static/mcp-servers.yaml +20 -0
- package/templates/web3/mcp-servers.yaml +11 -0
- package/templates/zero-trust/instructions.yaml +41 -0
- package/templates/zero-trust/mcp-servers.yaml +15 -0
|
@@ -79,6 +79,31 @@ export function renderNfrs(blocks, context) {
|
|
|
79
79
|
}
|
|
80
80
|
return sections.join("\n");
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Render design reference blocks (DDD, CQRS, GoF patterns) for on-demand retrieval.
|
|
84
|
+
*
|
|
85
|
+
* @param blocks - Composed reference blocks
|
|
86
|
+
* @param context - Project context for variable substitution
|
|
87
|
+
* @returns Formatted markdown content
|
|
88
|
+
*/
|
|
89
|
+
export function renderReference(blocks, context) {
|
|
90
|
+
const sections = [];
|
|
91
|
+
for (const block of blocks) {
|
|
92
|
+
sections.push(renderTemplate(block.content, context));
|
|
93
|
+
}
|
|
94
|
+
return sections.join("\n");
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Render a skill template's content with project-specific variable substitution.
|
|
98
|
+
* Skills are written as individual `.md` files in `.claude/commands/`.
|
|
99
|
+
*
|
|
100
|
+
* @param content - Raw skill content with {{variable}} placeholders
|
|
101
|
+
* @param context - Project context for variable substitution
|
|
102
|
+
* @returns Rendered skill content ready to write to file
|
|
103
|
+
*/
|
|
104
|
+
export function renderSkill(content, context) {
|
|
105
|
+
return renderTemplate(content, context);
|
|
106
|
+
}
|
|
82
107
|
/** Dimension display order for review output. */
|
|
83
108
|
const DIMENSION_ORDER = [
|
|
84
109
|
"architecture",
|
|
@@ -257,12 +282,49 @@ export function renderTechSpecSkeleton(context) {
|
|
|
257
282
|
| | H/M/L | H/M/L | |
|
|
258
283
|
`;
|
|
259
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Process conditional blocks in template content.
|
|
287
|
+
*
|
|
288
|
+
* Supports `{{#if CONDITION}}...{{/if}}` where CONDITION is evaluated
|
|
289
|
+
* against the render context. Special synthetic variables:
|
|
290
|
+
* - `language_is_typescript` → true when context.language === "typescript"
|
|
291
|
+
* - `language_is_python` → true when context.language === "python"
|
|
292
|
+
*
|
|
293
|
+
* Truthy conditions keep content; falsy conditions strip the block.
|
|
294
|
+
*
|
|
295
|
+
* @param template - Raw template string with conditionals
|
|
296
|
+
* @param context - Render context for condition evaluation
|
|
297
|
+
* @returns Template with conditionals resolved
|
|
298
|
+
*/
|
|
299
|
+
function processConditionals(template, context) {
|
|
300
|
+
return template.replace(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g, (_match, condition, content) => {
|
|
301
|
+
const value = resolveCondition(condition, context);
|
|
302
|
+
return value ? content : "";
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Resolve a conditional variable to a boolean value.
|
|
307
|
+
*/
|
|
308
|
+
function resolveCondition(name, context) {
|
|
309
|
+
// Synthetic language conditionals
|
|
310
|
+
if (name === "language_is_typescript") {
|
|
311
|
+
return context.language === "typescript";
|
|
312
|
+
}
|
|
313
|
+
if (name === "language_is_python") {
|
|
314
|
+
return context.language === "python";
|
|
315
|
+
}
|
|
316
|
+
// General context lookup (truthy check)
|
|
317
|
+
const value = resolveVariable(name, context);
|
|
318
|
+
return value !== undefined && value !== null && value !== "" && value !== false;
|
|
319
|
+
}
|
|
260
320
|
/**
|
|
261
321
|
* Render a template string by substituting {{variable}} placeholders.
|
|
262
|
-
* Supports {{variable | default: value}} syntax.
|
|
322
|
+
* Supports {{variable | default: value}} syntax and {{#if}}...{{/if}} conditionals.
|
|
263
323
|
*/
|
|
264
324
|
export function renderTemplate(template, context) {
|
|
265
|
-
|
|
325
|
+
// Process conditionals first, then variable substitution
|
|
326
|
+
const withConditionals = processConditionals(template, context);
|
|
327
|
+
return withConditionals.replace(/\{\{(\s*[\w.]+\s*(?:\|\s*default:\s*[^}]+)?)\}\}/g, (_match, expression) => {
|
|
266
328
|
const parts = expression.split("|").map((p) => p.trim());
|
|
267
329
|
const varName = parts[0];
|
|
268
330
|
// Look up variable in context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/registry/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/registry/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,4 +27,8 @@ export declare class AnalysisError extends ForgeError {
|
|
|
27
27
|
export declare class TemplateParseError extends ForgeError {
|
|
28
28
|
constructor(filePath: string, reason: string);
|
|
29
29
|
}
|
|
30
|
+
/** Remote MCP server discovery failed. */
|
|
31
|
+
export declare class DiscoveryError extends ForgeError {
|
|
32
|
+
constructor(message: string, url?: string);
|
|
33
|
+
}
|
|
30
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4CAA4C;AAC5C,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAErC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKnE;AAED,iEAAiE;AACjE,qBAAa,qBAAsB,SAAQ,UAAU;gBACvC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAM1C;AAED,+CAA+C;AAC/C,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAG5C;AAED,oCAAoC;AACpC,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAG9C;AAED,0CAA0C;AAC1C,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/D;AAED,kDAAkD;AAClD,qBAAa,kBAAmB,SAAQ,UAAU;gBACpC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG7C"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4CAA4C;AAC5C,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAErC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKnE;AAED,iEAAiE;AACjE,qBAAa,qBAAsB,SAAQ,UAAU;gBACvC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAM1C;AAED,+CAA+C;AAC/C,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAG5C;AAED,oCAAoC;AACpC,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAG9C;AAED,0CAA0C;AAC1C,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/D;AAED,kDAAkD;AAClD,qBAAa,kBAAmB,SAAQ,UAAU;gBACpC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG7C;AAED,0CAA0C;AAC1C,qBAAa,cAAe,SAAQ,UAAU;gBAChC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;CAG1C"}
|
|
@@ -41,4 +41,10 @@ export class TemplateParseError extends ForgeError {
|
|
|
41
41
|
super(`Failed to parse template: ${reason}`, { filePath, reason });
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
+
/** Remote MCP server discovery failed. */
|
|
45
|
+
export class DiscoveryError extends ForgeError {
|
|
46
|
+
constructor(message, url) {
|
|
47
|
+
super(message, { url });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
44
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4CAA4C;AAC5C,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnB,OAAO,CAA0B;IAEjD,YAAY,OAAe,EAAE,UAAmC,EAAE;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,iEAAiE;AACjE,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACnD,YAAY,GAAW,EAAE,OAAgB;QACvC,KAAK,CACH,2BAA2B,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACxE,EAAE,GAAG,EAAE,OAAO,EAAE,CACjB,CAAC;IACJ,CAAC;CACF;AAED,+CAA+C;AAC/C,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe,EAAE,KAAc;QACzC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,oCAAoC;AACpC,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe,EAAE,QAAgB;QAC3C,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,0CAA0C;AAC1C,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;CACF;AAED,kDAAkD;AAClD,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,6BAA6B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/errors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4CAA4C;AAC5C,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnB,OAAO,CAA0B;IAEjD,YAAY,OAAe,EAAE,UAAmC,EAAE;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,iEAAiE;AACjE,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACnD,YAAY,GAAW,EAAE,OAAgB;QACvC,KAAK,CACH,2BAA2B,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACxE,EAAE,GAAG,EAAE,OAAO,EAAE,CACjB,CAAC;IACJ,CAAC;CACF;AAED,+CAA+C;AAC/C,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe,EAAE,KAAc;QACzC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,oCAAoC;AACpC,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAY,OAAe,EAAE,QAAgB;QAC3C,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,0CAA0C;AAC1C,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,OAAe,EAAE,OAAiC;QAC5D,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;CACF;AAED,kDAAkD;AAClD,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,6BAA6B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;CACF;AAED,0CAA0C;AAC1C,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC5C,YAAY,OAAe,EAAE,GAAY;QACvC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem safety utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides safe file writing (skip existing), git status checks,
|
|
5
|
+
* and instruction file merging for tools that modify the user's project directory.
|
|
6
|
+
*/
|
|
7
|
+
/** Result of a safe file write operation. */
|
|
8
|
+
export type WriteResult = "created" | "skipped" | "overwritten";
|
|
9
|
+
/**
|
|
10
|
+
* Write a file only if it does not already exist.
|
|
11
|
+
* Creates parent directories as needed.
|
|
12
|
+
*
|
|
13
|
+
* @param filePath - Absolute path to write
|
|
14
|
+
* @param content - File content
|
|
15
|
+
* @param force - If true, overwrite existing files
|
|
16
|
+
* @returns Write status
|
|
17
|
+
*/
|
|
18
|
+
export declare function writeFileIfMissing(filePath: string, content: string, force?: boolean): WriteResult;
|
|
19
|
+
/**
|
|
20
|
+
* Check if the project directory has uncommitted git changes.
|
|
21
|
+
* Returns a warning message if dirty, null if clean or not a git repo.
|
|
22
|
+
*
|
|
23
|
+
* @param projectDir - Absolute path to project root
|
|
24
|
+
* @returns Warning string or null
|
|
25
|
+
*/
|
|
26
|
+
export declare function checkGitSafety(projectDir: string): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Merge a generated instruction file with an existing one.
|
|
29
|
+
* Preserves any custom sections (## or ###) from the existing file
|
|
30
|
+
* that are not present in the generated output.
|
|
31
|
+
*
|
|
32
|
+
* @param existing - Current file content with possible user-added sections
|
|
33
|
+
* @param generated - Newly generated content from ForgeCraft
|
|
34
|
+
* @returns Merged content with custom sections appended
|
|
35
|
+
*/
|
|
36
|
+
export declare function mergeInstructionFiles(existing: string, generated: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Write an instruction file, merging with the existing file if present.
|
|
39
|
+
* Always preserves user-added custom sections.
|
|
40
|
+
*
|
|
41
|
+
* @param filePath - Absolute path to the instruction file
|
|
42
|
+
* @param content - New generated content
|
|
43
|
+
*/
|
|
44
|
+
export declare function writeInstructionFileWithMerge(filePath: string, content: string): void;
|
|
45
|
+
//# sourceMappingURL=filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/shared/filesystem.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAEhE;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,UAAQ,GACZ,WAAW,CAcb;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CA0CR;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,IAAI,CAYN"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem safety utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides safe file writing (skip existing), git status checks,
|
|
5
|
+
* and instruction file merging for tools that modify the user's project directory.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
|
+
import { execSync } from "node:child_process";
|
|
9
|
+
import { dirname } from "node:path";
|
|
10
|
+
import { createLogger } from "./logger/index.js";
|
|
11
|
+
const logger = createLogger("shared/filesystem");
|
|
12
|
+
/**
|
|
13
|
+
* Write a file only if it does not already exist.
|
|
14
|
+
* Creates parent directories as needed.
|
|
15
|
+
*
|
|
16
|
+
* @param filePath - Absolute path to write
|
|
17
|
+
* @param content - File content
|
|
18
|
+
* @param force - If true, overwrite existing files
|
|
19
|
+
* @returns Write status
|
|
20
|
+
*/
|
|
21
|
+
export function writeFileIfMissing(filePath, content, force = false) {
|
|
22
|
+
const exists = existsSync(filePath);
|
|
23
|
+
if (exists && !force) {
|
|
24
|
+
logger.debug("Skipping existing file", { filePath });
|
|
25
|
+
return "skipped";
|
|
26
|
+
}
|
|
27
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
28
|
+
writeFileSync(filePath, content, "utf-8");
|
|
29
|
+
const result = exists ? "overwritten" : "created";
|
|
30
|
+
logger.debug("File written", { filePath, result });
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if the project directory has uncommitted git changes.
|
|
35
|
+
* Returns a warning message if dirty, null if clean or not a git repo.
|
|
36
|
+
*
|
|
37
|
+
* @param projectDir - Absolute path to project root
|
|
38
|
+
* @returns Warning string or null
|
|
39
|
+
*/
|
|
40
|
+
export function checkGitSafety(projectDir) {
|
|
41
|
+
try {
|
|
42
|
+
const output = execSync("git status --porcelain", {
|
|
43
|
+
cwd: projectDir,
|
|
44
|
+
timeout: 5_000,
|
|
45
|
+
encoding: "utf-8",
|
|
46
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
47
|
+
}).trim();
|
|
48
|
+
if (output.length > 0) {
|
|
49
|
+
const lines = output.split("\n").length;
|
|
50
|
+
return `${lines} uncommitted change${lines === 1 ? "" : "s"} detected. Consider committing or stashing before scaffolding.`;
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Not a git repo or git not available — no warning needed
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Merge a generated instruction file with an existing one.
|
|
61
|
+
* Preserves any custom sections (## or ###) from the existing file
|
|
62
|
+
* that are not present in the generated output.
|
|
63
|
+
*
|
|
64
|
+
* @param existing - Current file content with possible user-added sections
|
|
65
|
+
* @param generated - Newly generated content from ForgeCraft
|
|
66
|
+
* @returns Merged content with custom sections appended
|
|
67
|
+
*/
|
|
68
|
+
export function mergeInstructionFiles(existing, generated) {
|
|
69
|
+
const existingLines = existing.split("\n");
|
|
70
|
+
const generatedLines = generated.split("\n");
|
|
71
|
+
const generatedHeaders = new Set(generatedLines
|
|
72
|
+
.filter((l) => l.startsWith("## ") || l.startsWith("### "))
|
|
73
|
+
.map((l) => l.trim()));
|
|
74
|
+
const customSections = [];
|
|
75
|
+
let inCustomSection = false;
|
|
76
|
+
let currentSection = [];
|
|
77
|
+
for (const line of existingLines) {
|
|
78
|
+
if (line.startsWith("## ") || line.startsWith("### ")) {
|
|
79
|
+
if (inCustomSection && currentSection.length > 0) {
|
|
80
|
+
customSections.push(currentSection.join("\n"));
|
|
81
|
+
}
|
|
82
|
+
inCustomSection = !generatedHeaders.has(line.trim());
|
|
83
|
+
currentSection = inCustomSection ? [line] : [];
|
|
84
|
+
}
|
|
85
|
+
else if (inCustomSection) {
|
|
86
|
+
currentSection.push(line);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (inCustomSection && currentSection.length > 0) {
|
|
90
|
+
customSections.push(currentSection.join("\n"));
|
|
91
|
+
}
|
|
92
|
+
if (customSections.length > 0) {
|
|
93
|
+
logger.info("Preserving custom sections during merge", {
|
|
94
|
+
sectionCount: customSections.length,
|
|
95
|
+
});
|
|
96
|
+
return (generated +
|
|
97
|
+
"\n\n<!-- Custom Sections (preserved from previous file) -->\n\n" +
|
|
98
|
+
customSections.join("\n\n"));
|
|
99
|
+
}
|
|
100
|
+
return generated;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Write an instruction file, merging with the existing file if present.
|
|
104
|
+
* Always preserves user-added custom sections.
|
|
105
|
+
*
|
|
106
|
+
* @param filePath - Absolute path to the instruction file
|
|
107
|
+
* @param content - New generated content
|
|
108
|
+
*/
|
|
109
|
+
export function writeInstructionFileWithMerge(filePath, content) {
|
|
110
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
111
|
+
if (existsSync(filePath)) {
|
|
112
|
+
const existing = readFileSync(filePath, "utf-8");
|
|
113
|
+
const merged = mergeInstructionFiles(existing, content);
|
|
114
|
+
writeFileSync(filePath, merged, "utf-8");
|
|
115
|
+
logger.debug("Instruction file merged", { filePath });
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
writeFileSync(filePath, content, "utf-8");
|
|
119
|
+
logger.debug("Instruction file created", { filePath });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/shared/filesystem.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* structures are defined here as the single source of truth.
|
|
6
6
|
*/
|
|
7
7
|
/** All supported project classification tags. */
|
|
8
|
-
export declare const ALL_TAGS: readonly ["UNIVERSAL", "WEB-REACT", "WEB-STATIC", "API", "DATA-PIPELINE", "ML", "HEALTHCARE", "FINTECH", "WEB3", "REALTIME", "STATE-MACHINE", "GAME", "SOCIAL", "CLI", "LIBRARY", "INFRA", "MOBILE", "ANALYTICS"];
|
|
8
|
+
export declare const ALL_TAGS: readonly ["UNIVERSAL", "WEB-REACT", "WEB-STATIC", "API", "DATA-PIPELINE", "ML", "HEALTHCARE", "FINTECH", "WEB3", "REALTIME", "STATE-MACHINE", "GAME", "SOCIAL", "CLI", "LIBRARY", "INFRA", "MOBILE", "ANALYTICS", "HIPAA", "SOC2", "DATA-LINEAGE", "OBSERVABILITY-XRAY", "MEDALLION-ARCHITECTURE", "ZERO-TRUST"];
|
|
9
9
|
export type Tag = (typeof ALL_TAGS)[number];
|
|
10
10
|
/** Description metadata for a single tag. */
|
|
11
11
|
export interface TagInfo {
|
|
@@ -154,6 +154,18 @@ export interface NfrTemplate {
|
|
|
154
154
|
readonly section: "nfr";
|
|
155
155
|
readonly blocks: NfrBlock[];
|
|
156
156
|
}
|
|
157
|
+
/** A design reference block (DDD, CQRS, GoF patterns) served on demand, not in instruction files. */
|
|
158
|
+
export interface ReferenceBlock {
|
|
159
|
+
readonly id: string;
|
|
160
|
+
readonly title: string;
|
|
161
|
+
readonly content: string;
|
|
162
|
+
}
|
|
163
|
+
/** A reference template for a tag. */
|
|
164
|
+
export interface ReferenceTemplate {
|
|
165
|
+
readonly tag: Tag;
|
|
166
|
+
readonly section: "reference";
|
|
167
|
+
readonly blocks: ReferenceBlock[];
|
|
168
|
+
}
|
|
157
169
|
/** Hook template definition. */
|
|
158
170
|
export interface HookTemplate {
|
|
159
171
|
readonly name: string;
|
|
@@ -162,6 +174,36 @@ export interface HookTemplate {
|
|
|
162
174
|
readonly filename: string;
|
|
163
175
|
readonly script: string;
|
|
164
176
|
}
|
|
177
|
+
/** Skill template — a reusable Claude Code custom command (.claude/commands/*.md). */
|
|
178
|
+
export interface SkillTemplate {
|
|
179
|
+
/** Unique identifier for deduplication across tags. */
|
|
180
|
+
readonly id: string;
|
|
181
|
+
/** Human-readable name shown in skill listings. */
|
|
182
|
+
readonly name: string;
|
|
183
|
+
/** Filename without .md extension — becomes .claude/commands/{filename}.md. */
|
|
184
|
+
readonly filename: string;
|
|
185
|
+
/** Brief description of what the skill does. */
|
|
186
|
+
readonly description: string;
|
|
187
|
+
/** Markdown content of the skill prompt. Supports {{vars}} and $ARGUMENTS. */
|
|
188
|
+
readonly content: string;
|
|
189
|
+
/** Content tier for filtering. Skills are tier-filtered (unlike hooks). */
|
|
190
|
+
readonly tier?: ContentTier;
|
|
191
|
+
}
|
|
192
|
+
/** Information about an available skill for listing. */
|
|
193
|
+
export interface SkillInfo {
|
|
194
|
+
readonly id: string;
|
|
195
|
+
readonly name: string;
|
|
196
|
+
readonly tag: Tag;
|
|
197
|
+
readonly filename: string;
|
|
198
|
+
readonly description: string;
|
|
199
|
+
readonly tier?: ContentTier;
|
|
200
|
+
}
|
|
201
|
+
/** Shape of the skills.yaml template file. */
|
|
202
|
+
export interface SkillsTemplate {
|
|
203
|
+
readonly tag: Tag;
|
|
204
|
+
readonly section: "skills";
|
|
205
|
+
readonly skills: SkillTemplate[];
|
|
206
|
+
}
|
|
165
207
|
/** Review dimension (section) within a review template. */
|
|
166
208
|
export type ReviewDimension = "architecture" | "code-quality" | "tests" | "performance";
|
|
167
209
|
/** A single checklist item within a review block. */
|
|
@@ -205,7 +247,10 @@ export interface TagTemplateSet {
|
|
|
205
247
|
readonly nfr?: NfrTemplate;
|
|
206
248
|
readonly structure?: StructureTemplate;
|
|
207
249
|
readonly hooks?: HookTemplate[];
|
|
250
|
+
readonly skills?: SkillTemplate[];
|
|
208
251
|
readonly review?: ReviewTemplate;
|
|
252
|
+
readonly mcpServers?: McpServersTemplate;
|
|
253
|
+
readonly reference?: ReferenceTemplate;
|
|
209
254
|
/**
|
|
210
255
|
* @deprecated Use `instructions` instead. Alias kept for backward compatibility.
|
|
211
256
|
*/
|
|
@@ -223,6 +268,52 @@ export interface McpServerConfig {
|
|
|
223
268
|
readonly args: string[];
|
|
224
269
|
readonly env?: Record<string, string>;
|
|
225
270
|
}
|
|
271
|
+
/** Category grouping for MCP server recommendations. */
|
|
272
|
+
export type McpServerCategory = "scaffolding" | "code-search" | "testing" | "debugging" | "devtools" | "deployment" | "database" | "documentation" | "game-engine" | "ai-ml" | "monitoring" | "general";
|
|
273
|
+
/** An MCP server entry in a curated registry YAML file. */
|
|
274
|
+
export interface McpServerEntry {
|
|
275
|
+
readonly name: string;
|
|
276
|
+
readonly description: string;
|
|
277
|
+
readonly command: string;
|
|
278
|
+
readonly args: string[];
|
|
279
|
+
readonly env?: Record<string, string>;
|
|
280
|
+
readonly tags: Tag[];
|
|
281
|
+
readonly category: McpServerCategory;
|
|
282
|
+
readonly url?: string;
|
|
283
|
+
/** Content tier for token budget control. Defaults to "recommended" if omitted. */
|
|
284
|
+
readonly tier?: ContentTier;
|
|
285
|
+
}
|
|
286
|
+
/** Shape of the mcp-servers.yaml template file. */
|
|
287
|
+
export interface McpServersTemplate {
|
|
288
|
+
readonly tag: Tag;
|
|
289
|
+
readonly section: "mcp-servers";
|
|
290
|
+
readonly servers: McpServerEntry[];
|
|
291
|
+
}
|
|
292
|
+
/** Source of a discovered MCP server recommendation. */
|
|
293
|
+
export type McpServerSource = "built-in" | "community" | "remote";
|
|
294
|
+
/** A recommended MCP server with discovery metadata. */
|
|
295
|
+
export interface McpServerRecommendation {
|
|
296
|
+
readonly name: string;
|
|
297
|
+
readonly description: string;
|
|
298
|
+
readonly command: string;
|
|
299
|
+
readonly args: string[];
|
|
300
|
+
readonly env?: Record<string, string>;
|
|
301
|
+
readonly relevantTags: Tag[];
|
|
302
|
+
readonly category: McpServerCategory;
|
|
303
|
+
readonly url?: string;
|
|
304
|
+
readonly source: McpServerSource;
|
|
305
|
+
/** Content tier for token budget control. Defaults to "recommended" if omitted. */
|
|
306
|
+
readonly tier?: ContentTier;
|
|
307
|
+
}
|
|
308
|
+
/** Options for controlling MCP server discovery behavior. */
|
|
309
|
+
export interface McpDiscoveryOptions {
|
|
310
|
+
/** Whether to also fetch from a remote registry. Defaults to false. */
|
|
311
|
+
readonly includeRemote?: boolean;
|
|
312
|
+
/** Override the default remote registry URL. */
|
|
313
|
+
readonly remoteRegistryUrl?: string;
|
|
314
|
+
/** Request timeout in milliseconds for remote fetches. Defaults to 5000. */
|
|
315
|
+
readonly remoteTimeoutMs?: number;
|
|
316
|
+
}
|
|
226
317
|
/** User override configuration from forgecraft.yaml / .forgecraft.json. */
|
|
227
318
|
export interface ForgeCraftConfig {
|
|
228
319
|
/** Human-readable project name. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AACjD,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.js
CHANGED
|
@@ -24,6 +24,12 @@ export const ALL_TAGS = [
|
|
|
24
24
|
"INFRA",
|
|
25
25
|
"MOBILE",
|
|
26
26
|
"ANALYTICS",
|
|
27
|
+
"HIPAA",
|
|
28
|
+
"SOC2",
|
|
29
|
+
"DATA-LINEAGE",
|
|
30
|
+
"OBSERVABILITY-XRAY",
|
|
31
|
+
"MEDALLION-ARCHITECTURE",
|
|
32
|
+
"ZERO-TRUST",
|
|
27
33
|
];
|
|
28
34
|
/** All valid content tiers as a constant array for schema validation. */
|
|
29
35
|
export const CONTENT_TIERS = ["core", "recommended", "optional"];
|
package/dist/shared/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,KAAK;IACL,eAAe;IACf,IAAI;IACJ,YAAY;IACZ,SAAS;IACT,MAAM;IACN,UAAU;IACV,eAAe;IACf,MAAM;IACN,QAAQ;IACR,KAAK;IACL,SAAS;IACT,OAAO;IACP,QAAQ;IACR,WAAW;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,KAAK;IACL,eAAe;IACf,IAAI;IACJ,YAAY;IACZ,SAAS;IACT,MAAM;IACN,UAAU;IACV,eAAe;IACf,MAAM;IACN,QAAQ;IACR,KAAK;IACL,SAAS;IACT,OAAO;IACP,QAAQ;IACR,WAAW;IACX,OAAO;IACP,MAAM;IACN,cAAc;IACd,oBAAoB;IACpB,wBAAwB;IACxB,YAAY;CACJ,CAAC;AA4EX,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAU,CAAC;AAElG,wEAAwE;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;CACC,CAAC;AAoBX,8DAA8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAA6C;IAC7E,MAAM,EAAE;QACN,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,aAAa;KAC3B;IACD,MAAM,EAAE;QACN,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,uBAAuB;QACjC,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,QAAQ;QACrB,eAAe,EAAE,IAAI;KACtB;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,yBAAyB;QACnC,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,gBAAgB;KAC9B;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,UAAU;KACxB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,OAAO;KACrB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,OAAO;KACrB;CACF,CAAC;AAEF,iDAAiD;AACjD,MAAM,CAAC,MAAM,qBAAqB,GAAiB,QAAQ,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,MAAoB;IACxE,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,GAAG,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
* configure_mcp tool handler.
|
|
3
3
|
*
|
|
4
4
|
* Generates .claude/settings.json with recommended MCP servers based on tags.
|
|
5
|
+
* Uses the McpDiscoveryService to load curated servers from YAML templates
|
|
6
|
+
* and optionally fetch from a remote registry at setup time.
|
|
5
7
|
*/
|
|
6
8
|
import { z } from "zod";
|
|
9
|
+
import type { McpDiscoveryService } from "../registry/mcp-discovery.js";
|
|
7
10
|
export declare const configureMcpSchema: z.ZodObject<{
|
|
8
11
|
tags: z.ZodArray<z.ZodEnum<[string, ...string[]]>, "many">;
|
|
9
12
|
project_dir: z.ZodString;
|
|
@@ -21,15 +24,21 @@ export declare const configureMcpSchema: z.ZodObject<{
|
|
|
21
24
|
env?: Record<string, string> | undefined;
|
|
22
25
|
}>>>;
|
|
23
26
|
auto_approve_tools: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
include_remote: z.ZodDefault<z.ZodBoolean>;
|
|
28
|
+
remote_registry_url: z.ZodOptional<z.ZodString>;
|
|
29
|
+
max_servers: z.ZodOptional<z.ZodNumber>;
|
|
24
30
|
}, "strip", z.ZodTypeAny, {
|
|
25
31
|
tags: string[];
|
|
26
32
|
project_dir: string;
|
|
27
33
|
auto_approve_tools: boolean;
|
|
34
|
+
include_remote: boolean;
|
|
28
35
|
custom_servers?: Record<string, {
|
|
29
36
|
command: string;
|
|
30
37
|
args: string[];
|
|
31
38
|
env?: Record<string, string> | undefined;
|
|
32
39
|
}> | undefined;
|
|
40
|
+
remote_registry_url?: string | undefined;
|
|
41
|
+
max_servers?: number | undefined;
|
|
33
42
|
}, {
|
|
34
43
|
tags: string[];
|
|
35
44
|
project_dir: string;
|
|
@@ -39,7 +48,22 @@ export declare const configureMcpSchema: z.ZodObject<{
|
|
|
39
48
|
env?: Record<string, string> | undefined;
|
|
40
49
|
}> | undefined;
|
|
41
50
|
auto_approve_tools?: boolean | undefined;
|
|
51
|
+
include_remote?: boolean | undefined;
|
|
52
|
+
remote_registry_url?: string | undefined;
|
|
53
|
+
max_servers?: number | undefined;
|
|
42
54
|
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Inject a custom discovery service (for testing).
|
|
57
|
+
*
|
|
58
|
+
* @param service - Discovery service to use, or undefined to reset to default
|
|
59
|
+
*/
|
|
60
|
+
export declare function setDiscoveryService(service: McpDiscoveryService | undefined): void;
|
|
61
|
+
/**
|
|
62
|
+
* Generate .claude/settings.json with discovered MCP servers for active tags.
|
|
63
|
+
*
|
|
64
|
+
* @param args - Validated tool input
|
|
65
|
+
* @returns MCP tool response with configuration summary
|
|
66
|
+
*/
|
|
43
67
|
export declare function configureMcpHandler(args: z.infer<typeof configureMcpSchema>): Promise<{
|
|
44
68
|
content: Array<{
|
|
45
69
|
type: "text";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure-mcp.d.ts","sourceRoot":"","sources":["../../src/tools/configure-mcp.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"configure-mcp.d.ts","sourceRoot":"","sources":["../../src/tools/configure-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKxE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6C7B,CAAC;AAOH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,CAElF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACvC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2H7D"}
|