Extension Points
This page documents extension points that a plugin can implement.
sourceEvidenceProvider
Returns source candidates for a selected preview element.
Required permission: project:read
export default {
async provideSourceEvidence(context) {
return [];
},
};
previewInjector
Returns JavaScript or CSS to apply to the preview frame.
Required permission: preview:inject
export default {
getPreviewInjection(context) {
return {
css: "[data-debug] { outline: 1px solid red; }",
};
},
};
captureFilter
Returns selectors or CSS to apply before screenshot capture.
Required permission: capture:filter
export default {
filterCapture(context) {
return {
hideSelectors: [".dev-toolbar"],
};
},
};
commandProvider
Adds commands to the app command and menu surface.
Required permission: command:contribute
export default {
getCommands(context) {
return [
{
id: "project-summary",
title: "Project summary",
category: "Plugin",
run() {
return { level: "info", message: "Project inspected." };
},
},
];
},
};
diffAnalyzer
Reads the current Snapshot/Diff result and returns findings.
Required permission: diff:read
export default {
analyzeDiff(context) {
if (!context.summary.changed_files) return [];
return [
{
severity: "info",
title: "Diff inspected",
message: `${context.summary.changed_files} file(s) changed.`,
},
];
},
};
workspacePanel
Returns isolated HTML for plugin settings or workspace panels.
Required permission: panel:render
export default {
getPanelHtml(context) {
return "<strong>Plugin panel</strong>";
},
};