mirror of
https://github.com/HappyLifeOk/cc-3-8-x-mcp.git
synced 2026-06-10 09:46:47 +00:00
跨平台化:移除 AppleScript + 去 macOS 硬编码
- 删除浏览器交互的 AppleScript(osascript 控 Chrome/Safari 做截图/eval/刷新/打开), 改由外部 playwright MCP 承担;保留走 Editor.Message 的跨平台编辑器操作 - openDevDir 打开命令按平台分支(mac=open / win=explorer / linux=xdg-open) - execPath 解析弱化靠注册表/进程查询,删掉 /Applications macOS 硬编码兜底 - editor-control 去 macOS-only 假设,ps 进程查询按平台分支(win 用 wmic) - build-cmd Cocos 安装路径按平台拼 Win 特定逻辑(wmic、CocosDashboard 安装路径)标 TODO[win-verify],待 Windows 实测补全。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+15
-45
@@ -8,7 +8,7 @@
|
||||
|
||||
function defineTools(ctx) {
|
||||
var msg = ctx.msg; // async (target, name, ...args) => result
|
||||
var local = ctx.local; // { getPreviewUrl, doReimport, doRefreshPreview, doOpenPreview, doScreenshot, doRefreshAssets, doReloadScene, evalInPreview, listWorktrees, openDevDir, cleanDevDir, getStatus, getPanelConfig }
|
||||
var local = ctx.local; // { getPreviewUrl, doReimport, doRefreshAssets, doReloadScene, listWorktrees, openDevDir, cleanDevDir, getStatus }
|
||||
|
||||
return [
|
||||
// ── scene 域 ──
|
||||
@@ -251,61 +251,31 @@ function defineTools(ctx) {
|
||||
return { url: await local.getPreviewUrl() };
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'preview_open_browser',
|
||||
description: '在系统默认浏览器打开预览',
|
||||
inputSchema: { type: 'object', properties: {} },
|
||||
handler: async function () {
|
||||
await local.doOpenPreview();
|
||||
return 'ok';
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'preview_refresh_browser',
|
||||
description: '刷新已打开的预览浏览器页面(AppleScript 驱动 Chrome/Safari)',
|
||||
inputSchema: { type: 'object', properties: {} },
|
||||
handler: async function () {
|
||||
await local.doRefreshPreview();
|
||||
return 'ok';
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'preview_screenshot',
|
||||
description: '截图预览页面到指定路径(默认 .dev/screenshot.png),返回路径',
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: { outputPath: { type: 'string' } },
|
||||
},
|
||||
handler: async function (args) {
|
||||
var p = args.outputPath || null;
|
||||
return await local.doScreenshot(p);
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'preview_eval_js',
|
||||
description: '向预览 Chrome 页面注入 JS 代码并返回执行结果',
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: { code: { type: 'string' } },
|
||||
required: ['code'],
|
||||
},
|
||||
handler: async function (args) {
|
||||
return await local.evalInPreview(args.code);
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'preview_refresh_and_reload',
|
||||
description: '一键:刷新资源 + 软重载场景 + 刷新预览浏览器',
|
||||
description: '一键:刷新资源 + 软重载场景',
|
||||
inputSchema: { type: 'object', properties: {} },
|
||||
handler: async function () {
|
||||
await local.doRefreshAssets();
|
||||
await local.doReloadScene();
|
||||
await local.doRefreshPreview();
|
||||
return 'ok';
|
||||
},
|
||||
},
|
||||
|
||||
// ── local 域 ──
|
||||
{
|
||||
name: 'local_reload_package',
|
||||
description: 'reload(disable→enable)指定编辑器扩展,让其 JS 代码改动生效,无需重启编辑器。本质 Editor.Package.disable→enable,fire-and-forget 立即返回。',
|
||||
inputSchema: {
|
||||
type: 'object',
|
||||
properties: { name: { type: 'string', description: '扩展名(package.json 的 name,如 state-ctrl-gen)' } },
|
||||
required: ['name'],
|
||||
},
|
||||
handler: async function (args) {
|
||||
local.reloadPackage(args.name);
|
||||
return { ok: true, reloaded: args.name };
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'local_get_status',
|
||||
description: '获取插件本地状态(git 分支/HEAD、watchers、预览、命令日志)',
|
||||
|
||||
Reference in New Issue
Block a user