apps/desktop/package.json | 3 +- apps/desktop/src/ipc/channels.ts | 4 +- apps/desktop/src/ipc/methods/preview.ts | 19 +- apps/desktop/src/main.ts | 2 + apps/desktop/src/picked-element-payload.test.ts | 135 ++++++++++ apps/desktop/src/picked-element-payload.ts | 49 ++++ apps/desktop/src/preload.ts | 11 +- apps/desktop/src/preview-pick-label-position.ts | 46 ++++ apps/desktop/src/preview-pick-preload.test.ts | 86 +++++++ apps/desktop/src/preview-pick-preload.ts | 419 ++++++++++++++++++++++++++++++++ apps/desktop/src/preview-view-manager.ts | 124 ++++++++++ apps/desktop/src/preview-webview-preferences.test.ts | 78 ++++++ apps/desktop/src/preview-webview-preferences.ts | 42 ++++ apps/desktop/src/window/DesktopWindow.ts | 10 + apps/desktop/vite.config.ts | 10 + apps/web/src/components/ChatView.logic.test.ts | 24 ++ apps/web/src/components/ChatView.logic.ts | 12 +- apps/web/src/components/ChatView.tsx | 30 ++- apps/web/src/components/chat/ChatComposer.tsx | 45 +++- apps/web/src/components/chat/CompactComposerControlsMenu.browser.tsx | 12 +- apps/web/src/components/chat/ComposerPendingElementContexts.tsx | 95 ++++++++ apps/web/src/components/chat/MessagesTimeline.tsx | 51 +++- apps/web/src/components/preview/PreviewChromeRow.tsx | 49 +++- apps/web/src/components/preview/PreviewView.tsx | 87 ++++++- apps/web/src/components/preview/PreviewWebview.tsx | 46 +++- apps/web/src/composerDraftStore.test.ts | 93 +++++++ apps/web/src/composerDraftStore.ts | 245 ++++++++++++++++++- apps/web/src/lib/elementContext.test.ts | 294 ++++++++++++++++++++++ apps/web/src/lib/elementContext.ts | 245 +++++++++++++++++++ apps/web/src/lib/terminalContext.test.ts | 1 + apps/web/src/lib/terminalContext.ts | 23 +- packages/contracts/src/ipc.ts | 80 +++++- 32 files changed, 2416 insertions(+), 54 deletions(-)