mp_setDefaultProject
Set the default mini program project path to prioritize it in subsequent connections, enabling retry after project selection failures.
Instructions
设置默认的小程序项目路径,设置后下次连接会优先使用该项目。通常用于修复项目选择失败后的后续重试。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes |
Implementation Reference
- src/tools/application.ts:365-387 (handler)The tool handler function that defines and executes mp_setDefaultProject. It parses the projectPath argument, calls manager.setDefaultProject(), and returns a success/error result.
function createSetDefaultProjectTool(manager: WeappAutomatorManager): AnyTool { return { name: "mp_setDefaultProject", description: "设置默认的小程序项目路径,设置后下次连接会优先使用该项目。通常用于修复项目选择失败后的后续重试。", parameters: setDefaultProjectParameters, execute: async (rawArgs) => withUserErrorResult(async () => { const args = setDefaultProjectParameters.parse(rawArgs); const success = await manager.setDefaultProject(args.projectPath); if (success) { return toTextResult( formatJson({ success: true, message: `已设置默认项目: ${args.projectPath}`, }) ); } return toErrorResult(`无效的项目路径或项目目录不存在: ${args.projectPath}`); }), timeoutMs: 5000, }; } - src/tools/application.ts:57-59 (schema)Zod schema for mp_setDefaultProject input parameter: requires a non-empty trimmed string projectPath.
const setDefaultProjectParameters = z.object({ projectPath: z.string().trim().min(1), }); - src/tools/application.ts:61-73 (registration)Registration of the tool in the createApplicationTools array. The createSetDefaultProjectTool(manager) is exported as part of the tools list.
export function createApplicationTools( manager: WeappAutomatorManager ): AnyTool[] { return [ createEnsureConnectionTool(manager), createNavigateTool(manager), createScreenshotTool(manager), createCallWxMethodTool(manager), createGetConsoleLogsTool(manager), createCurrentPageTool(manager), createListProjectsTool(manager), createSetDefaultProjectTool(manager), ]; - src/weappClient.ts:844-850 (helper)Helper method setDefaultProject on WeappAutomatorManager that validates the project path and saves it. Called by the tool handler.
async setDefaultProject(projectPath: string): Promise<boolean> { if (!(await this.isValidWeappProject(projectPath))) { return false; } await this.saveProjectPath(projectPath); return true; } - src/weappClient.ts:593-604 (helper)Helper that checks if a directory is a valid WeChat project by verifying project.config.json exists and has appid or projectname.
private async isValidWeappProject(projectPath: string): Promise<boolean> { const configPath = path.join(projectPath, "project.config.json"); try { await fs.promises.access(configPath, fs.constants.F_OK); const content = await fs.promises.readFile(configPath, "utf-8"); const config = JSON.parse(content); return !!(config.appid || config.projectname); } catch { return false; } }