feat(FN-3778): add reports plugin scaffold with notification service improv
The merge introduces a new `fusion-plugin-reports` plugin scaffold with settings schema, manifest, entry point, and tests, alongside a mobile session switcher in the chat header. It also adds a mailbox notifications system with ntfy/webhook providers, cleans up roadmap types from core, and includes Fusion-Task-Id: FN-3778
This commit is contained in:
@@ -36,6 +36,8 @@ const whatsappChatPluginSrc = join(__dirname, "..", "..", "plugins", "fusion-plu
|
||||
const whatsappChatPluginDest = join(__dirname, "dist", "plugins", "fusion-plugin-whatsapp-chat");
|
||||
const roadmapPluginSrc = join(__dirname, "..", "..", "plugins", "fusion-plugin-roadmap");
|
||||
const roadmapPluginDest = join(__dirname, "dist", "plugins", "fusion-plugin-roadmap");
|
||||
const reportsPluginSrc = join(__dirname, "..", "..", "plugins", "fusion-plugin-reports");
|
||||
const reportsPluginDest = join(__dirname, "dist", "plugins", "fusion-plugin-reports");
|
||||
const dashboardClientStub = `<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@@ -180,6 +182,21 @@ export default defineConfig({
|
||||
);
|
||||
}
|
||||
|
||||
if (existsSync(reportsPluginDest)) {
|
||||
rmSync(reportsPluginDest, { recursive: true, force: true });
|
||||
}
|
||||
if (existsSync(reportsPluginSrc)) {
|
||||
mkdirSync(reportsPluginDest, { recursive: true });
|
||||
cpSync(join(reportsPluginSrc, "manifest.json"), join(reportsPluginDest, "manifest.json"));
|
||||
cpSync(join(reportsPluginSrc, "package.json"), join(reportsPluginDest, "package.json"));
|
||||
cpSync(join(reportsPluginSrc, "src"), join(reportsPluginDest, "src"), { recursive: true });
|
||||
console.log("Copied reports plugin to dist/plugins/fusion-plugin-reports/");
|
||||
} else {
|
||||
console.warn(
|
||||
`WARNING: Reports plugin source not found at ${reportsPluginSrc}; bundled auto-install will be unavailable.`,
|
||||
);
|
||||
}
|
||||
|
||||
// Bundle each runtime plugin into a self-contained ESM file so npm/npx
|
||||
// installs can load them without the workspace `@fusion/plugin-sdk`.
|
||||
for (const pluginId of RUNTIME_PLUGIN_IDS) {
|
||||
|
||||
@@ -711,8 +711,8 @@
|
||||
}
|
||||
|
||||
.agent-card--clickable:focus-visible {
|
||||
outline: 2px solid var(--focus-ring, var(--state-active-border));
|
||||
outline-offset: 2px;
|
||||
outline: none;
|
||||
box-shadow: var(--focus-ring-strong);
|
||||
}
|
||||
|
||||
.agent-empty {
|
||||
|
||||
Reference in New Issue
Block a user