Files
mnote/rust/crates/mnote-web/browser/sidebar-page-ai-runtime.js
T

49 lines
1.8 KiB
JavaScript
Raw Normal View History

// Page AI product facade — Pi Lab only.
// Hermes / OpenCode / ACP drawer 已物理删除;本模块仅保留 tree 需要的入口桥接。
2026-06-01 09:29:12 +08:00
export function createSidebarPageAiRuntime(context) {
const { pageUiState } = context || {};
function updatePageAiTriggerState() {
var trigger = document.querySelector('[data-testid="wolai-floating-ai"]');
if (!(trigger instanceof HTMLElement)) return;
var open = !!(pageUiState && pageUiState.pageAiOpen);
trigger.setAttribute('data-state', open ? 'open' : 'closed');
trigger.setAttribute('aria-expanded', open ? 'true' : 'false');
}
function openPageAiDrawer() {
// 产品唯一入口:Pi Lab。旧 Hermes/OpenCode/Board drawer 不再打开。
if (window.createSidebarPageAiPiLabRuntime) {
window.createSidebarPageAiPiLabRuntime({});
2026-06-25 21:08:17 +08:00
}
window.postMessage({ source: 'mnote-sidebar', type: 'mnote:pi-lab-show' }, window.location.origin);
if (pageUiState) pageUiState.pageAiOpen = true;
updatePageAiTriggerState();
}
function closePageAiDrawer() {
window.postMessage({ source: 'mnote-sidebar', type: 'mnote:pi-lab-hide' }, window.location.origin);
if (pageUiState) pageUiState.pageAiOpen = false;
updatePageAiTriggerState();
}
function isPageAiDrawerOpen() {
return !!(pageUiState && pageUiState.pageAiOpen);
2026-06-01 09:29:12 +08:00
}
function installPageAiDelegates() {
// no-opHermes/OpenCode drawer 事件委托已退役;Pi Lab 自有 runtime 处理交互。
2026-06-01 09:29:12 +08:00
}
2026-06-26 20:01:02 +08:00
var api = {
installPageAiDelegates: installPageAiDelegates,
openPageAiDrawer: openPageAiDrawer,
closePageAiDrawer: closePageAiDrawer,
isPageAiDrawerOpen: isPageAiDrawerOpen,
updatePageAiTriggerState: updatePageAiTriggerState
};
2026-06-26 20:01:02 +08:00
window.__mnoteSidebarPageAiRuntime = api;
return api;
}