Skip to content

Commit 0c75dbe

Browse files
committed
feat: expose __kernalModeTrust in exec_js for dev/test access
1 parent 1853301 commit 0c75dbe

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

phoenix-builder-mcp/mcp-tools.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -322,10 +322,12 @@ export function registerTools(server, processManager, wsControlServer, phoenixDe
322322
"Execute JavaScript in the Phoenix Code browser runtime and return the result. " +
323323
"Code runs async in the page context with access to: " +
324324
"$ (jQuery) for DOM queries/clicks, " +
325-
"brackets.test.CommandManager, brackets.test.EditorManager, brackets.test.ProjectManager, " +
326-
"brackets.test.DocumentManager, brackets.test.FileSystem, brackets.test.FileUtils, " +
327-
"and 50+ other modules on brackets.test.* — " +
328-
"supports await.",
325+
"brackets.test.CommandManager, brackets.test.EditorManager, " +
326+
"brackets.test.ProjectManager, brackets.test.DocumentManager, " +
327+
"brackets.test.FileSystem, brackets.test.FileUtils, " +
328+
"and 50+ other modules on brackets.test.* — supports await. " +
329+
"__kernalModeTrust is available as a parameter " +
330+
"(deleted from window after boot, preserved here for dev/test).",
329331
{
330332
code: z.string().describe("JavaScript code to execute in Phoenix"),
331333
instance: z.string().optional().describe("Target a specific Phoenix instance by name (e.g. 'Phoenix-a3f2'). Required when multiple instances are connected.")

src/phoenix-builder/phoenix-builder-boot.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -387,10 +387,11 @@
387387

388388
// --- Register built-in handler for exec_js_request ---
389389
// Evaluates arbitrary JS in the page context and returns the result.
390+
// `__kernalModeTrust` is available inside exec_js code for dev/test access.
390391
registerHandler("exec_js_request", function (msg) {
391392
const AsyncFunction = (async function () {}).constructor;
392-
const fn = new AsyncFunction(msg.code);
393-
fn().then(function (result) {
393+
const fn = new AsyncFunction("__kernalModeTrust", msg.code);
394+
fn(_kernalModeTrust).then(function (result) {
394395
_sendMessage({
395396
type: "exec_js_response",
396397
id: msg.id,

0 commit comments

Comments
 (0)