init project
This commit is contained in:
+53
@@ -0,0 +1,53 @@
|
||||
import { z } from 'zod';
|
||||
import { config } from '../../config.js';
|
||||
import { detectProject, detectWorkspace, resolvePackage, summarizeDetection, summarizeWorkspace, } from '../../lib/frameworks/detect.js';
|
||||
import { errorResult, jsonResult, toErrorMessage } from '../shared.js';
|
||||
export function registerDetectFrameworkTool(server) {
|
||||
server.registerTool('detect_framework', {
|
||||
title: 'Detect Framework',
|
||||
description: 'Inspect the workspace (or a monorepo package) and report which framework adapter(s) were detected: laravel, codeigniter, symfony, django, rails, react, vue, nuxt, a backend+frontend combination, or generic. Call this first.',
|
||||
inputSchema: {
|
||||
package: z
|
||||
.string()
|
||||
.optional()
|
||||
.describe('Optional monorepo package name/path to inspect instead of the workspace root.'),
|
||||
includeWorkspace: z
|
||||
.boolean()
|
||||
.optional()
|
||||
.default(false)
|
||||
.describe('If true, also include a packages[] summary from detect_workspace.'),
|
||||
},
|
||||
}, async ({ package: packageName, includeWorkspace }) => {
|
||||
try {
|
||||
const root = packageName
|
||||
? resolvePackage(config.workspaceRoot, packageName).pkg.absolutePath
|
||||
: config.workspaceRoot;
|
||||
const detected = detectProject(root);
|
||||
const summary = summarizeDetection(detected);
|
||||
if (includeWorkspace) {
|
||||
summary.workspace = summarizeWorkspace(detectWorkspace(config.workspaceRoot));
|
||||
}
|
||||
if (packageName)
|
||||
summary.package = packageName;
|
||||
return jsonResult(summary);
|
||||
}
|
||||
catch (error) {
|
||||
return errorResult(toErrorMessage(error));
|
||||
}
|
||||
});
|
||||
}
|
||||
export function registerDetectWorkspaceTool(server) {
|
||||
server.registerTool('detect_workspace', {
|
||||
title: 'Detect Workspace Packages',
|
||||
description: 'Scan the workspace for monorepo packages (apps/*, packages/*, services/*, frontend/client/web, package.json workspaces, pnpm-workspace.yaml) and report each package’s detected framework adapter(s).',
|
||||
inputSchema: {},
|
||||
}, async () => {
|
||||
try {
|
||||
return jsonResult(summarizeWorkspace(detectWorkspace(config.workspaceRoot)));
|
||||
}
|
||||
catch (error) {
|
||||
return errorResult(toErrorMessage(error));
|
||||
}
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=detectFramework.js.map
|
||||
Reference in New Issue
Block a user