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